457
426
389
460
518
155
324
209
487
440
378
663
611
483
497
489
354
501
407
603
709
471
336
326
425
612
606
389
619
536
423
175
500
601
676
721
477
460
459
693
404
683
533
368
513
465
666
444
441
199
457
228
189
659
562
572
588
507
265
676
688
413
390
358
583
576
559
611
455
470
698
232
359
251
691
640
293
595
653
576
453
481
390
353
591
421
546
424
605
299
328
610
575
522
546
385
561
554
456
423
519
604
597
751
542
652
425
491
453
623
298
390
459
185
419
152
437
596
462
297
601
580
438
516
639
346
275
412
347
363
556
590
469
411
550
78
430
204
498
449
633
285
488
502
440
304
504
577
571
615
588
541
561
414
311
639
215
694
452
579
181
695
127
683
606
317
461
365
529
481
472
408
408
333
345
599
445
548
458
599
426
323
492
423
453
376
470
430
307
618
477
482
283
415
655
533
292
617
477
482
291
582
512
212
613
454
646
334
489
546
504
450
598
330
393
492
583
585
584
648
611
0
659
504
246
412
184
337
299
624
626
465
430
296
587
582
529
463
435
384
437
387
424
435
458
391
542
581
145
377
285
281
649
440
443
626
515
498
506
528
689
346
474
501
403
542
488
470
486
457
602
374
473
625
384
434
447
295
442
470
474
362
501
270
596
357
666
325
637
677
511
424
70
320
473
721
551
541
752
437
606
308
523
409
353
484
594
533
540
252
614
749
556
320
604
538
427
701
599
425
315
584
431
525
595
373
521
544
599
491
484
549
505
479
538
560
447
601
659
458
489
606
735
467
537
700
443
574
503
427
513
347
508
372
389
688
733
497
645
607
485
422
523
360
265
554
607
582
258
623
348
545
550
386
542
315
431
398
331
253
468
652
518
412
597
665
377
437
668
634
646
547
535
511
377
579
389
227
548
474
547
551
540
555
170
588
364
688
347
507
521
277
538
573
540
440
353
247
323
380
606
405
607
588
590
198
328
616
510
589
556
231
358
502
608
510
301
445
680
636
631
681
534
288
373
488
543
379
691
572
571
613
470
541
601
492
444
534
306
488
328
642
286
443
556
673
436
455
250
278
444
347
597
192
518
361
386
493
449
536
497
377
636
621
664
223
325
461
538
355
189
578
598
615
454
357
360
486
591
332
680
540
301
406
434
594
565
663
520
186
225
677
460
730
599
478
474
520
186
413
515
502
463
617
435
403
639
196
447
399
428
547
550
397
537
571
524
456
713
638
555
412
437
586
526
431
428
533
455
570
509
492
395
734
491
577
484
319
354
534
735
558
357
533
239
623
457
141
625
289
467
543
616
521
720
454
247
367
191
457
657
264
498
506
571
514
558
241
439
661
195
567
488
357
524
567
482
316
732
385
558
583
564
315
457
285
591
629
298
716
493
586
599
607
454
474
355
568
759
462
555
445
492
407
554
429
400
508
626
260
508
461
601
330
0
295
583
608
495
0
498
523
349
676
606
509
445
167
407
400
577
437
701
289
349
359
522
365
500
724
615
535
462
323
648
409
530
538
652
367
353
482
637
699
715
671
529
571
268
285
536
540
622
402
510
327
492
300
581
612
321
392
547
544
567
509
390
546
558
520
682
550
473
509
332
671
655
540
536
181
591
200
457
586
506
695
739
454
459
194
511
408
282
602
398
621
642
707
537
371
604
153
482
701
570
313
334
374
443
563
498
296
300
393
522
580
256
350
461
309
582
352
402
369
490
399
422
312
528
523
222
528
208
438
332
326
579
591
562
286
575
583
481
484
720
506
251
474
505
178
516
477
310
279
616
537
143
482
337
413
488
319
549
288
352
397
577
321
168
279
637
583
530
511
669
469
528
590
763
480
437
535
595
747
517
735
550
372
425
431
423
449
206
450
486
523
515
591
608
405
475
640
161
504
438
467
450
687
411
627
569
541
550
520
661
395
419
641
641
602
477
571
417
235
507
544
214
538
439
504
626
211
414
462
378
587
490
702
154
339
646
535
772
770
618
329
143
388
472
404
411
595
500
418
612
389
451
103
413
586
352
412
511
403
330
431
476
719
239
474
549
749
498
541
222
496
517
450
327
476
566
315
345
436
412
357
223
498
611
515
526
698
547
707
314
492
281
476
467
574
407
555
357
463
344
415
553
232
546
588
607
403
733
404
231
567
378
318
612
646
670
511
549
439
199
599
612
492
629
337
487
659
383
412
349
358
475
294
398
444
582
128
522
126
574
492
213
389
176
718
566
596
472
551
498
526
536
389
489
95
440
113
321
408
573
544
552
378
161
508
411
458
252
403
545
468
578
552
372
565
682
333
361
526
551
655
348
480
282
623
388
699
441
256
569
386
777
593
495
628
440
476
440
584
137
304
302
496
577
461
624
777
479
485
680
531
496
447
534
533
543
71
551
461
421
687
273
659
456
480
686
395
394
486
550
548
542
562
504
467
327
438
445
560
517
401
445
418
355
454
498
601
488
79
688
412
374
579
492
529
510
387
327
313
743
518
417
503
333
454
652
600
619
535
603
443
440
210
631
383
521
571
344
586
721
263
498
559
510
140
254
579
626
497
478
368
357
629
585
319
706
269
537
582
510
752
613
445
487
589
14
585
775
538
334
310
440
408
472
699
440
506
453
603
464
237
134
361
397
193
565
406
366
640
478
169
466
541
338
550
358
0
659
394
440
349
521
654
676
774
532
478
0
590
334
538
462
463
662
455
647
179
455
0
365
555
395
705
556
584
356
565
368
565
266
405
625
506
347
629
666
490
350
374
636
585
294
404
305
609
631
445
703
237
534
481
331
587
674
569
527
571
509
326
610
605
628
561
378
627
243
511
601
137
386
660
669
512
23
387
614
399
549
301
547
663
485
280
380
524
516
537
750
333
762
596
387
544
575
718
681
683
503
438
582
493
352
302
418
524
199
197
759
73
663
4
379
458
461
207
101
226
440
566
540
446
572
518
238
590
571
634
537
500
409
375
588
520
582
491
480
461
185
566
553
535
193
453
524
477
435
513
565
227
464
650
397
457
397
576
395
552
705
424
540
509
583
539
416
583
601
627
540
542
155
234
527
645
676
624
479
628
684
333
680
548
604
333
581
454
253
465
524
501
580
675
247
473
499
576
428
554
486
366
563
490
462
523
405
435
621
457
511
300
496
263
361
511
725
412
596
519
332
452
688
582
594
452
298
265
0
322
404
609
497
381
502
359
386
714
470
300
0
577
363
658
739
389
453
417
713
516
231
628
479
455
508
496
633
661
612
664
571
532
481
415
362
366
322
465
566
633
559
398
657
625
451
293
568
241
521
504
375
491
431
478
566
681
366
473
510
702
612
627
572
495
486
454
456
548
425
523
499
589
567
345
623
373
463
551
445
662
771
388
315
285
436
412
627
517
387
204
479
535
651
410
405
656
589
491
615
600
403
714
143
450
466
645
329
634
394
265
0
463
569
360
567
330
656
699
341
487
538
235
210
375
589
620
542
749
504
362
516
497
501
385
559
645
381
253
699
546
584
334
514
176
494
387
586
566
408
484
451
613
413
492
724
706
612
561
691
436
636
324
516
590
498
577
343
568
499
428
691
445
436
545
545
415
601
661
585
588
507
537
635
319
520
614
531
448
693
491
390
308
383
685
317
432
447
584
337
269
561
589
209
430
548
567
562
448
594
713
328
581
324
558
642
627
317
0
313
514
725
561
532
441
248
544
133
466
325
497
423
451
493
497
441
549
605
579
489
131
408
594
201
448
532
724
629
695
627
601
538
588
658
457
297
520
478
494
471
698
601
326
433
372
443
375
290
210
517
451
628
103
390
363
403
481
667
465
426
480
584
428
355
556
189
583
528
517
387
628
587
546
666
360
507
491
345
534
362
479
289
312
563
479
340
63
424
232
580
641
486
350
571
537
356
549
585
728
597
512
422
430
508
461
645
180
640
315
697
182
458
649
157
467
363
387
503
558
577
563
498
518
652
520
430
496
473
434
639
652
458
420
691
474
585
665
241
578
300
361
482
537
620
402
454
690
431
597
640
671
472
506
463
476
324
475
570
429
424
612
619
604
544
590
459
345
462
482
596
418
462
699
659
332
552
339
255
313
392
504
570
363
408
386
579
554
525
136
520
476
477
402
445
592
412
572
582
446
683
507
412
462
586
562
365
655
203
686
590
401
741
619
430
340
438
506
634
66
340
400
520
430
214
488
367
400
339
778
443
564
481
576
462
392
530
579
364
619
269
697
580
313
746
601
449
64
432
623
540
293
493
402
474
463
402
621
296
481
245
467
440
696
454
543
581
434
452
640
472
553
513
487
376
368
483
478
526
475
461
559
315
419
518
616
477
528
177
495
547
370
418
604
430
457
694
371
396
421
526
513
453
503
558
693
285
464
342
352
574
367
455
453
460
273
516
515
461
461
744
392
598
430
471
487
374
552
278
648
589
531
439
0
401
441
344
491
317
654
485
579
656
463
660
340
26
560
724
626
164
619
363
519
557
674
443
512
468
511
561
468
482
611
612
447
383
644
455
435
609
413
117
604
530
632
622
410
415
683
306
421
412
389
550
368
431
413
508
452
521
301
440
519
493
570
460
398
439
789
318
466
482
558
624
348
440
479
455
572
553
622
493
679
538
397
743
241
73
634
504
101
497
593
410
465
628
53
376
423
210
604
419
508
366
326
412
332
392
440
614
397
139
390
456
481
377
499
492
402
459
611
627
560
610
486
709
585
681
324
554
523
507
431
584
603
416
282
412
567
392
454
435
603
236
395
330
611
440
396
429
475
599
591
365
296
449
615
682
417
457
313
542
496
127
534
331
353
422
458
530
414
497
480
43
465
529
340
477
538
427
470
322
377
476
701
453
513
357
202
479
501
661
466
568
491
601
629
557
362
364
403
308
319
501
532
308
538
432
503
532
535
164
434
488
597
487
580
517
384
415
662
373
319
306
497
243
479
582
459
416
267
440
550
476
680
518
0
674
641
542
652
364
513
409
694
569
651
417
500
160
469
492
465
330
278
231
421
518
276
552
616
482
588
561
700
355
507
169
312
521
550
414
514
306
400
448
449
488
455
484
450
310
0
554
559
647
470
537
234
607
599
559
271
324
384
359
487
658
538
477
434
244
594
542
439
529
431
477
593
0
678
608
331
252
490
577
529
301
667
499
312
474
434
567
518
464
493
500
645
410
574
462
720
615
533
473
328
514
583
584
568
307
549
699
546
0
694
551
354
381
398
242
560
380
551
292
600
335
622
345
322
319
441
637
552
439
441
708
736
205
380
237
580
337
639
350
496
693
442
212
527
552
503
305
246
467
423
540
478
150
755
442
552
556
557
341
493
662
641
493
540
372
289
589
669
508
605
159
585
245
346
499
665
669
523
480
427
544
322
420
542
621
347
0
294
721
556
601
727
527
582
463
262
465
227
259
646
489
501
468
343
595
505
742
606
620
672
568
596
337
375
566
708
478
528
393
334
525
536
638
698
503
339
577
119
433
543
529
436
280
520
503
229
515
286
220
274
776
353
281
537
373
472
380
571
465
389
407
399
461
633
680
505
492
446
592
559
517
525
601
341
330
654
620
573
197
53
443
251
592
375
584
521
240
370
547
748
536
395
292
610
496
587
421
486
373
385
407
219
476
773
427
406
442
616
379
422
502
631
164
386
108
437
507
691
275
625
445
496
568
548
440
285
416
252
341
635
546
387
591
184
273
361
335
386
389
750
504
685
715
293
395
403
523
333
481
425
189
550
625
570
498
409
468
379
387
598
252
524
616
669
589
548
734
552
650
537
701
561
401
477
388
684
645
472
468
332
390
646
605
676
374
455
316
465
655
0
465
503
374
616
339
320
606
596
229
524
439
483
379
630
574
560
0
328
510
521
480
593
537
664
672
573
477
403
443
481
586
287
261
442
608
544
598
422
566
609
494
785
425
666
584
586
475
425
604
671
524
453
706
471
78
516
555
439
515
607
331
312
607
720
419
466
315
561
701
596
501
334
674
75
464
495
561
184
581
437
487
442
627
438
577
617
417
450
441
710
609
39
407
338
299
670
487
489
272
552
669
612
445
673
399
160
609
415
97
703
481
507
647
479
588
741
761
333
313
509
256
502
315
559
499
245
607
513
378
406
518
433
572
494
640
638
529
377
404
465
672
487
471
680
444
643
358
611
644
585
532
663
446
389
635
533
573
192
470
699
408
190
112
671
343
592
667
530
525
403
356
578
336
680
329
479
502
428
591
566
559
369
580
512
464
338
304
237
606
256
521
542
627
634
542
445
496
576
172
451
523
552
202
560
228
281
346
280
337
558
733
571
521
512
627
584
368
535
707
700
541
456
403
338
440
532
345
261
397
458
471
501
391
605
391
453
449
336
588
460
432
603
631
405
567
397
621
186
451
539
473
344
196
208
614
454
417
538
187
510
404
680
290
515
676
430
508
587
518
525
508
582
560
212
569
488
420
0
188
623
431
337
392
421
572
497
509
359
520
511
532
549
406
139
442
140
621
533
396
487
454
540
482
400
271
492
603
561
637
329
297
309
103
639
548
549
519
565
623
474
325
418
590
457
405
370
375
494
296
553
716
646
668
320
368
584
635
502
429
568
589
639
163
647
326
332
585
356
351
283
0
431
428
294
492
424
661
370
488
411
445
383
481
462
8
599
398
188
378
461
470
472
377
441
403
315
506
515
699
357
680
531
554
412
578
632
557
579
486
649
471
560
262
314
573
313
470
497
435
382
543
0
347
285
574
723
340
416
679
413
656
720
624
446
123
600
712
505
481
282
471
291
241
715
359
614
484
492
376
449
678
483
439
648
467
544
313
335
683
706
598
511
384
332
573
572
624
635
304
482
511
246
554
497
657
614
617
525
245
282
520
675
499
501
602
408
633
618
563
510
499
489
418
606
545
505
516
514
265
514
402
668
455
380
552
284
622
520
558
608
471
360
83
151
483
695
635
367
434
500
654
651
471
548
138
642
349
189
441
261
584
195
684
568
754
608
248
597
357
203
466
705
376
437
456
502
369
670
364
447
554
729
287
351
507
19
155
576
704
579
465
309
315
32
466
416
285
434
418
491
393
398
549
469
413
501
595
585
458
449
122
456
708
478
577
508
661
528
470
316
430
514
479
623
586
375
86
297
440
447
455
459
585
594
652
357
588
577
489
478
430
404
700
434
658
558
137
618
421
460
256
704
520
412
353
585
666
460
626
452
518
687
208
608
544
582
528
490
630
251
541
407
268
375
652
536
361
181
514
624
547
472
535
391
300
575
275
295
511
557
502
567
541
414
449
453
492
542
579
519
488
585
564
471
410
615
565
623
647
689
29
387
374
409
358
469
452
497
140
610
478
395
407
453
467
377
641
449
351
333
417
602
535
358
376
410
422
295
278
0
580
480
319
618
473
271
459
630
444
583
636
474
509
663
480
574
544
382
357
474
691
454
741
396
434
254
535
395
401
396
529
682
586
390
62
343
594
156
377
554
467
575
400
478
742
465
137
287
319
588
269
624
605
667
537
586
563
541
452
562
74
708
580
0
615
416
432
567
529
508
279
147
546
714
232
164
183
609
544
480
543
503
346
456
427
374
645
516
630
628
254
462
400
456
599
474
415
701
594
381
488
556
324
394
317
587
450
530
438
588
570
453
353
469
245
518
286
745
275
397
466
418
578
781
430
609
455
502
219
602
489
399
718
636
463
366
569
477
626
396
412
511
363
445
555
283
555
646
418
643
268
579
416
423
456
376
418
386
661
512
245
465
407
357
609
456
299
380
366
458
451
429
376
366
512
435
509
558
481
299
291
571
441
617
591
530
426
221
409
433
637
547
396
462
498
566
467
412
541
549
513
566
530
515
498
511
559
547
548
485
192
663
634
547
509
469
551
301
725
446
393
439
781
512
645
574
666
445
666
439
544
430
402
595
353
621
716
648
613
639
461
208
448
203
557
405
317
758
189
346
619
474
661
622
345
762
434
614
0
580
409
759
490
599
237
324
584
416
436
472
689
430
438
491
281
538
466
602
574
372
240
189
367
278
307
550
491
390
458
219
601
622
552
478
615
324
681
440
608
342
716
582
752
497
615
232
481
467
369
469
404
529
713
433
676
0
468
677
478
568
535
550
518
503
210
109
459
562
472
587
518
502
353
448
584
313
550
467
385
622
564
392
667
469
347
493
530
553
377
401
599
315
543
212
673
286
573
676
673
584
614
463
550
516
184
602
553
530
511
457
623
524
502
388
441
464
260
625
339
153
385
494
295
115
440
481
438
497
604
152
571
572
534
251
663
574
252
633
504
506
534
488
643
439
422
452
506
416
520
559
256
578
280
553
719
595
598
735
267
520
697
368
565
395
584
316
342
656
475
528
346
281
638
283
677
311
503
601
514
726
666
438
99
564
401
397
482
530
467
455
302
539
504
237
355
499
464
609
493
438
657
546
212
649
343
497
387
635
593
565
669
330
432
464
566
567
494
540
473
328
580
266
747
285
464
497
476
438
436
195
683
380
471
585
269
642
492
589
100
277
542
680
409
147
475
461
528
506
416
482
535
564
556
549
599
603
532
568
584
615
347
520
638
481
602
120
556
491
427
246
622
650
687
541
519
586
388
543
504
252
440
255
301
355
457
531
596
611
0
507
695
493
529
737
281
489
461
697
474
609
501
514
665
525
370
389
615
295
447
501
481
520
542
519
498
479
519
547
520
401
632
629
554
641
572
595
149
94
602
401
545
298
394
453
458
720
416
516
563
490
455
590
491
230
592
483
517
383
611
554
487
394
609
357
475
529
611
521
634
634
590
418
574
617
464
619
322
375
492
344
438
698
603
552
357
580
533
581
565
268
352
423
529
483
522
548
690
732
472
429
229
274
556
466
481
484
334
710
377
362
199
525
353
706
452
435
448
481
548
551
505
458
667
248
530
635
608
547
525
512
256
262
440
450
541
258
403
289
379
508
265
497
446
242
593
521
520
512
462
403
256
598
570
486
588
411
524
379
373
524
272
557
576
493
728
497
395
536
646
545
307
718
396
530
416
534
601
635
345
626
462
715
626
357
483
592
280
378
573
608
721
356
439
439
451
427
524
456
597
413
377
469
441
411
377
578
637
428
571
634
539
444
218
590
656
565
526
474
459
325
565
275
431
706
450
385
590
575
227
538
527
299
183
554
362
552
588
434
460
304
356
620
216
265
444
284
0
514
514
561
743
366
584
622
466
525
364
387
487
508
474
595
495
468
625
567
363
439
373
597
0
604
380
479
503
523
499
413
464
443
598
537
693
503
596
354
379
390
440
442
265
119
623
659
621
654
565
505
464
124
540
409
437
449
558
626
335
620
639
599
530
725
591
590
274
448
412
458
511
484
627
547
261
400
372
337
636
597
566
497
415
604
619
472
441
518
441
659
208
374
321
468
645
526
632
372
502
361
577
421
698
555
476
474
527
547
336
467
665
475
583
387
638
392
357
517
399
564
639
695
652
543
471
195
368
530
458
590
491
327
499
563
451
419
441
188
581
429
660
496
521
0
515
506
475
466
326
601
364
430
287
404
433
433
610
425
465
510
343
465
345
442
650
197
488
509
486
556
623
609
335
475
146
677
528
707
357
768
528
493
606
499
648
311
326
481
538
468
483
408
548
522
207
430
474
265
426
428
480
451
146
436
333
586
527
588
503
568
533
641
622
330
377
768
542
375
327
431
153
344
363
616
383
376
461
727
305
571
461
612
651
309
732
498
430
226
331
352
570
551
715
671
413
290
598
501
476
406
614
631
424
362
491
470
597
589
416
407
424
663
556
339
521
507
496
541
445
232
480
251
457
564
594
548
233
575
528
482
650
578
639
365
406
533
425
525
570
501
378
457
565
103
516
601
589
497
447
533
618
463
535
479
259
268
430
401
398
606
408
404
468
738
641
571
517
469
413
464
432
387
685
409
527
286
588
483
431
336
623
577
457
192
611
514
468
576
424
583
551
388
306
571
474
551
474
333
365
688
434
654
455
553
231
276
506
339
621
649
524
199
481
478
674
612
523
344
536
471
651
430
334
528
653
318
580
648
627
389
461
112
446
368
474
457
723
369
44
512
697
146
648
373
492
625
384
511
582
500
334
343
406
717
600
637
584
585
611
598
513
694
379
342
471
70
393
720
489
623
550
512
582
586
401
315
546
122
540
426
421
278
547
443
589
375
569
339
729
309
477
307
649
663
606
676
282
413
443
579
494
539
558
520
555
513
514
695
395
644
67
410
410
548
604
605
646
323
399
526
470
399
597
741
566
632
309
419
695
566
530
487
186
504
339
273
675
413
492
604
452
417
552
486
514
346
591
607
642
389
335
269
656
516
544
758
643
403
477
590
655
626
396
667
416
484
169
392
601
535
463
512
458
442
422
232
312
515
543
585
251
506
434
8
485
548
518
539
446
472
670
644
438
545
546
468
351
277
616
425
452
391
695
328
516
391
434
374
553
530
254
338
331
745
527
373
507
443
540
507
270
516
381
683
633
643
174
595
585
501
461
430
0
356
428
236
288
363
492
220
653
527
647
652
356
346
593
325
394
677
436
616
531
468
411
453
507
556
312
328
503
336
347
583
748
352
609
578
192
519
374
381
424
304
617
454
616
544
433
619
576
511
452
434
470
467
374
479
402
524
386
265
538
366
315
637
278
421
628
387
672
670
493
371
351
279
598
104
267
532
534
509
481
454
632
605
645
432
162
576
251
25
386
467
455
533
405
137
492
541
499
589
709
333
472
426
387
543
20
586
543
505
546
362
556
416
493
675
482
552
285
329
481
615
429
280
362
265
87
387
560
341
615
644
484
443
175
508
439
434
344
459
265
581
538
431
694
621
526
510
492
575
23
438
442
680
502
512
274
497
423
506
487
462
449
430
495
303
450
698
540
489
616
346
670
628
228
575
494
626
363
574
463
409
393
689
350
502
294
652
309
561
581
582
583
428
522
712
674
596
324
487
285
610
450
508
592
607
560
395
392
523
448
140
519
549
603
551
632
370
693
650
512
293
655
616
647
336
211
704
475
603
545
586
581
630
383
620
566
533
361
384
520
666
742
504
679
463
531
568
530
241
315
474
547
485
550
687
692
441
490
412
730
272
529
619
716
246
419
476
655
504
599
467
681
513
301
461
531
204
631
434
280
527
360
281
167
478
522
472
596
132
431
508
463
666
662
473
533
380
581
650
563
447
680
535
387
431
627
507
409
471
504
745
457
128
266
631
440
426
404
260
443
497
542
515
544
563
293
604
613
630
335
428
607
327
534
161
414
702
236
387
62
473
317
180
472
341
276
443
621
487
422
621
554
495
737
390
407
611
577
208
362
246
430
288
233
427
639
450
368
473
351
519
546
627
696
732
567
424
385
473
398
398
570
178
640
553
484
600
430
209
497
667
164
415
368
97
393
433
578
430
209
585
403
175
251
538
603
358
582
491
565
692
477
603
680
328
411
50
627
548
245
418
550
527
478
533
664
448
410
450
692
626
543
500
290
602
11
602
454
581
483
646
221
637
535
559
320
507
678
420
570
344
708
558
418
648
609
652
618
358
731
546
558
510
636
603
507
469
530
578
713
714
464
716
595
234
455
537
559
549
397
629
518
230
390
349
531
405
455
558
352
214
570
240
558
449
680
431
276
583
552
555
328
650
480
343
481
612
471
92
462
591
123
423
581
341
528
583
617
399
478
429
516
579
212
665
129
391
576
276
573
249
573
363
527
492
589
417
319
290
402
441
322
299
354
726
228
357
560
566
355
632
470
626
472
612
418
450
442
336
303
362
384
513
576
220
560
649
460
566
524
394
560
672
443
207
201
384
495
496
490
553
738
405
729
543
406
500
281
615
580
534
335
544
453
580
552
412
571
610
323
419
497
365
521
599
426
547
430
415
527
548
690
254
635
509
683
491
107
646
627
666
294
363
464
499
383
587
470
386
501
621
358
566
562
512
562
650
445
428
443
488
520
482
561
487
432
248
279
426
377
446
509
94
382
321
365
606
636
510
372
629
512
573
525
474
538
462
244
664
582
727
692
382
404
617
390
425
189
526
565
487
393
471
467
516
691
507
576
381
514
315
456
253
564
659
465
450
368
352
602
432
569
555
301
487
668
455
426
687
279
614
567
448
253
370
371
568
187
451
719
667
270
407
332
421
430
522
625
454
426
671
743
473
640
337
480
553
415
554
322
512
457
575
408
629
651
370
667
572
463
693
609
656
490
149
478
333
419
300
618
630
434
450
418
310
564
578
507
440
244
659
212
518
525
516
471
570
151
464
455
478
637
538
325
718
280
611
467
282
484
403
446
768
502
457
286
755
317
358
49
670
691
464
395
405
326
476
562
563
685
333
537
529
662
496
487
576
306
482
505
471
494
503
416
474
554
702
642
759
542
412
290
654
544
244
468
523
490
763
481
290
642
88
511
582
528
531
208
545
695
740
616
685
563
435
389
547
390
369
478
522
614
439
183
462
286
419
271
685
573
240
407
742
649
432
691
686
601
382
350
346
419
374
512
617
483
636
380
469
517
563
370
665
663
499
322
531
553
407
727
585
220
436
588
639
648
580
521
580
611
727
477
0
594
167
359
472
477
445
409
463
708
417
417
541
481
506
578
734
425
253
620
416
666
703
309
428
725
538
525
497
559
633
701
472
334
714
572
499
587
554
595
345
624
475
782
444
407
542
405
405
40
180
372
566
363
559
639
498
496
459
345
510
510
562
589
595
552
490
721
693
481
462
533
502
641
527
280
506
528
398
486
621
407
457
424
611
375
473
469
471
493
574
543
507
430
676
630
596
538
549
606
613
428
423
402
466
559
409
573
368
445
474
427
484
623
516
596
704
531
474
528
577
403
420
486
670
574
539
649
377
466
305
458
368
306
594
573
460
573
344
534
675
479
220
344
488
455
457
123
651
484
511
634
310
659
573
756
596
464
307
591
476
253
504
546
385
510
292
467
414
314
642
448
278
602
424
587
709
308
516
213
662
362
554
581
444
411
463
604
470
353
667
350
583
223
488
493
294
489
466
501
454
477
558
555
370
596
396
525
351
505
497
564
442
522
494
430
518
727
731
328
446
585
667
404
574
419
586
502
444
703
566
508
599
548
504
312
494
297
454
671
529
469
361
486
291
625
438
469
649
355
459
219
238
488
620
483
635
434
287
521
381
567
122
392
490
460
489
606
226
451
348
401
442
238
341
446
463
343
575
401
634
611
480
580
420
687
382
504
544
507
540
462
479
387
760
426
468
623
546
399
568
638
569
365
433
612
616
356
338
518
425
367
336
357
415
569
293
593
458
424
67
449
459
635
69
468
687
540
634
483
615
617
561
462
663
658
152
573
296
613
713
417
705
234
366
412
584
164
102
520
517
519
506
316
359
600
708
454
471
335
582
333
410
319
359
132
513
635
583
46
602
525
29
729
216
505
631
637
549
575
425
579
187
366
350
461
517
342
405
629
480
364
122
473
466
588
495
406
601
392
753
561
105
568
634
408
359
577
387
516
445
693
534
362
583
413
642
367
648
301
449
434
444
678
536
507
194
344
521
513
367
528
720
714
469
570
663
363
564
520
436
656
427
491
557
333
129
463
409
363
474
506
477
592
448
473
123
519
610
571
500
586
607
468
544
403
177
682
527
602
612
293
82
559
421
667
544
702
424
665
411
446
630
520
601
376
581
533
393
443
496
462
457
401
443
636
331
428
536
725
397
672
315
530
410
473
515
418
604
385
528
430
548
568
620
707
490
468
468
694
551
452
93
571
630
615
380
602
572
344
505
378
449
408
208
442
69
563
364
625
423
408
582
387
375
544
52
436
308
455
233
307
504
210
397
571
515
609
374
442
381
467
497
480
550
541
448
426
630
445
705
356
334
482
623
290
759
349
513
484
245
474
584
544
338
403
266
381
366
564
421
687
144
708
542
556
472
583
610
451
587
506
446
535
429
457
621
286
454
152
499
374
559
603
590
620
454
471
649
535
459
466
464
394
650
656
306
485
351
720
406
314
338
555
595
551
744
501
595
0
697
220
372
387
421
155
240
662
538
265
544
343
489
656
519
291
507
549
431
560
233
336
447
296
532
401
547
548
715
284
649
637
530
449
438
582
587
484
544
651
335
499
587
628
668
244
209
501
483
547
623
317
276
255
314
582
450
547
572
375
270
459
743
676
641
351
429
488
0
0
592
161
423
432
614
497
655
583
577
647
595
591
507
543
304
378
723
491
534
605
0
366
621
585
321
657
543
470
483
406
301
603
316
233
468
528
480
315
513
604
427
615
489
567
500
534
470
493
518
204
600
533
664
503
553
506
335
452
708
372
209
433
475
581
589
625
326
448
644
524
236
481
703
564
497
399
524
477
515
519
420
546
298
550
472
574
486
173
473
269
412
637
386
574
400
506
697
500
535
601
277
519
458
373
253
631
438
611
539
663
480
613
347
728
247
555
522
424
591
661
597
541
513
591
574
492
524
589
585
213
454
600
646
398
450
437
637
467
420
647
381
440
520
494
214
561
276
497
530
396
370
378
397
463
695
617
434
609
545
656
311
570
672
653
367
308
572
422
650
615
278
390
394
360
390
557
582
416
616
514
658
273
497
413
553
626
527
465
291
249
404
650
536
686
411
466
720
478
202
368
684
587
424
476
598
430
168
425
420
397
228
677
491
597
404
440
461
723
697
388
454
440
702
548
511
463
518
373
545
454
332
607
447
110
584
711
445
530
523
562
677
646
358
619
176
442
431
491
614
413
649
366
454
550
440
609
650
412
556
468
503
649
537
440
503
467
631
724
477
464
540
628
407
456
215
467
458
485
513
236
400
540
577
17
317
508
586
662
504
411
392
428
449
596
446
562
647
682
447
81
536
383
461
457
415
427
221
537
436
346
663
540
413
574
662
383
324
465
560
360
556
602
500
447
494
526
366
631
769
531
646
613
648
558
682
423
450
435
256
312
536
731
411
732
461
514
569
460
505
590
408
625
352
387
226
395
546
411
455
777
516
673
410
374
476
528
433
450
465
545
388
650
546
571
479
690
456
628
146
174
228
573
654
549
653
525
391
586
731
426
184
432
468
564
316
467
534
559
205
582
409
437
384
298
338
384
451
706
0
574
613
450
515
576
346
523
498
200
454
598
213
595
329
216
334
419
381
498
600
453
586
454
449
563
516
115
638
574
329
713
367
523
425
462
420
467
610
474
496
404
468
355
625
504
270
371
406
339
736
535
358
627
404
312
431
394
402
656
489
612
329
418
452
423
591
333
478
392
490
611
255
638
608
652
305
346
489
708
570
608
591
318
541
453
334
363
477
509
543
561
679
466
540
250
435
556
461
423
599
373
714
358
479
606
493
447
547
440
537
341
270
391
633
484
282
461
356
452
587
529
682
185
468
566
571
504
662
0
360
527
336
552
446
298
772
333
406
583
305
624
700
579
474
386
452
595
146
103
676
227
470
539
152
693
387
595
523
472
311
483
406
407
644
212
609
463
162
770
588
418
652
544
591
548
390
409
670
442
519
669
677
157
540
527
696
352
296
697
489
558
483
236
527
477
244
335
542
301
59
351
371
403
545
503
480
430
419
391
700
452
521
617
408
459
660
294
602
408
413
410
713
595
451
417
326
565
620
533
338
570
519
644
686
439
565
617
580
637
506
605
482
507
60
565
396
376
648
579
510
577
467
436
488
563
495
425
378
620
299
569
538
453
635
485
153
627
664
476
657
650
632
499
416
627
395
509
586
462
426
472
382
516
572
531
478
554
386
560
494
194
481
420
277
558
492
346
470
488
599
370
351
494
396
437
372
495
366
570
483
414
498
360
384
346
325
585
271
531
510
632
416
319
573
545
695
408
462
527
165
284
479
646
469
336
685
483
422
532
623
472
311
448
568
507
497
596
460
214
784
620
448
637
304
532
363
630
484
504
540
503
370
240
571
571
393
531
652
609
627
398
597
517
500
547
233
348
234
564
474
440
244
650
128
655
415
434
580
673
533
195
615
662
253
435
232
723
434
468
222
587
581
498
407
553
356
497
554
568
596
498
276
474
285
568
471
350
612
783
678
426
467
564
620
642
599
455
606
464
586
567
536
535
184
594
327
174
630
549
502
600
488
527
458
349
616
471
653
510
521
543
449
659
388
624
250
599
306
576
523
473
463
310
362
373
372
689
402
703
438
687
422
536
608
578
417
137
582
411
636
492
538
720
495
375
454
377
426
659
380
588
705
570
602
206
755
219
431
570
157
472
298
391
470
483
495
561
719
445
443
559
554
389
533
453
430
432
432
692
196
433
431
500
326
487
497
315
637
368
488
526
450
276
456
461
711
283
571
410
419
500
518
363
671
504
311
559
318
265
744
561
373
444
343
688
778
669
545
309
608
418
324
224
520
547
550
52
542
580
353
677
381
657
232
223
561
197
242
434
574
509
503
665
309
766
232
486
312
364
389
266
214
593
351
570
389
322
652
637
612
514
640
540
177
501
640
487
317
383
335
328
686
543
400
631
398
512
625
261
638
446
479
395
464
700
483
458
426
432
691
457
349
582
563
344
539
479
475
433
465
714
606
557
301
419
313
582
471
471
597
610
536
496
357
493
433
557
545
429
472
598
619
271
453
534
347
475
604
417
694
531
0
427
463
366
138
533
507
705
304
397
527
0
406
384
327
423
517
681
450
447
739
488
633
392
481
516
409
373
527
379
671
540
80
481
420
443
506
220
363
495
707
379
443
582
471
30
455
243
337
110
521
542
422
595
413
436
552
432
454
106
387
703
418
511
463
437
512
572
440
529
347
227
582
534
608
436
288
281
541
386
106
343
221
375
588
667
292
735
608
448
677
441
458
438
454
612
475
420
552
325
617
312
586
400
498
482
611
479
603
518
705
643
210
439
460
565
534
470
478
334
432
487
497
368
577
623
643
275
451
680
532
568
396
532
576
540
535
556
352
504
356
556
404
428
248
426
629
508
479
323
567
455
435
642
633
531
562
752
413
521
432
614
486
458
384
490
617
0
363
725
84
712
437
361
562
333
366
683
502
685
299
531
525
440
156
751
444
456
627
234
456
481
19
422
225
568
733
548
520
514
527
606
493
135
604
457
659
594
644
612
551
379
493
467
423
394
337
600
380
615
309
282
253
645
627
497
569
442
335
363
364
492
628
544
561
574
469
410
480
353
417
713
620
396
552
0
448
558
59
429
467
431
465
446
165
227
80
618
624
519
449
638
376
219
416
409
324
553
570
655
412
354
603
335
526
480
541
361
574
471
429
389
469
577
626
479
550
250
593
225
495
615
569
441
142
590
470
501
242
555
481
537
708
582
348
710
598
446
503
692
286
577
404
471
770
331
467
558
550
176
627
483
576
352
654
519
290
594
664
647
425
527
519
434
565
463
364
578
406
343
733
313
398
368
582
425
297
374
651
586
659
629
596
463
584
517
578
537
501
488
476
453
510
494
529
657
705
436
539
341
581
493
58
469
118
519
551
486
658
393
232
639
349
654
525
714
601
584
536
435
190
593
96
448
390
587
497
473
456
582
598
20
515
359
746
437
492
511
670
362
299
663
550
348
580
664
349
561
477
399
572
395
604
96
559
369
587
624
580
616
635
398
558
315
672
161
584
31
579
569
259
473
508
574
461
696
622
370
234
541
540
618
537
449
0
479
472
530
587
481
634
554
500
519
444
491
642
143
547
386
298
426
603
165
605
460
308
638
555
514
530
193
496
643
216
567
392
651
443
638
368
401
595
294
612
498
429
552
438
402
402
380
752
312
461
404
194
327
433
185
681
630
476
554
599
466
353
337
444
584
663
246
704
521
212
467
440
586
623
508
256
405
544
382
703
606
634
518
0
391
550
486
643
594
550
460
484
584
593
453
297
629
383
49
554
457
591
696
264
376
394
493
468
633
479
618
707
392
561
587
411
645
169
31
573
461
356
236
631
255
602
728
353
439
390
392
658
83
424
598
557
382
533
427
685
530
522
532
379
641
485
610
417
544
421
637
398
417
559
526
476
731
378
591
123
646
504
535
556
758
452
588
361
605
508
428
317
553
468
691
502
646
583
632
519
702
541
559
320
383
516
513
632
749
549
524
651
470
359
416
538
687
427
672
445
359
639
391
469
627
487
552
398
479
493
547
567
708
542
575
457
457
416
492
639
489
461
636
450
434
123
541
215
398
252
548
344
599
620
498
303
431
599
460
362
412
515
531
497
419
345
478
615
362
559
631
522
554
506
559
502
439
698
668
355
411
616
618
589
572
533
259
443
348
621
608
666
469
622
590
394
569
404
260
486
432
482
476
324
542
536
511
378
485
574
481
525
377
535
473
312
554
463
737
297
464
346
619
275
527
441
537
155
414
511
426
304
422
662
0
476
738
495
556
466
657
297
452
598
421
459
623
634
559
613
443
583
515
583
604
550
579
281
258
478
334
14
483
440
384
530
610
455
673
690
553
638
353
643
391
504
497
462
298
690
341
615
599
301
617
396
553
377
487
273
443
321
474
505
575
437
507
350
673
426
514
328
616
384
688
457
168
508
562
414
623
447
454
391
517
301
550
372
567
339
366
546
545
440
408
615
213
467
370
563
454
423
522
585
0
593
495
245
467
699
335
611
400
597
722
450
509
524
501
744
641
597
343
634
536
492
239
438
616
562
348
329
425
673
324
601
131
131
460
405
382
786
479
548
433
554
416
203
502
461
221
467
495
370
608
464
517
443
430
196
607
529
603
539
532
560
542
572
482
372
374
588
558
377
638
593
489
376
616
533
473
610
601
405
581
468
375
451
574
447
482
572
387
370
322
481
672
350
343
587
552
379
223
331
315
391
489
447
0
506
589
428
446
366
470
599
453
209
454
507
431
632
468
527
536
423
636
547
303
464
475
591
426
563
357
456
576
745
695
490
573
226
470
408
673
611
581
618
667
541
482
186
573
494
555
193
571
544
688
569
438
621
511
393
616
345
686
309
514
665
694
517
559
562
480
642
164
578
570
663
681
553
234
293
475
363
162
305
546
448
229
639
675
283
374
523
469
510
609
585
401
592
287
637
441
446
488
486
493
361
527
355
669
555
433
511
375
554
651
458
500
125
447
540
432
487
701
578
549
162
712
591
440
445
257
342
544
503
396
370
523
397
524
344
434
483
554
542
563
625
585
480
611
542
479
757
447
570
378
777
707
266
641
269
307
331
646
673
437
388
538
518
408
448
641
288
470
500
686
690
333
449
699
287
496
616
413
313
679
469
728
534
575
739
696
588
475
501
493
672
107
603
470
585
476
749
630
310
472
238
464
597
462
630
424
555
598
483
427
358
520
585
415
406
666
522
382
447
462
475
133
356
398
445
753
633
376
294
605
417
476
241
342
414
699
232
348
233
598
183
604
578
676
650
670
422
335
247
500
575
585
501
441
375
397
450
563
329
399
299
591
642
576
764
596
624
605
551
583
0
503
692
431
509
388
452
422
442
672
439
580
544
525
421
446
401
500
284
395
353
565
522
6
547
493
516
612
574
481
514
428
306
387
574
369
521
351
630
403
464
574
450
327
480
459
614
465
393
406
316
131
449
119
363
580
537
626
427
0
506
428
251
484
610
569
693
666
697
409
450
677
538
367
479
322
561
713
591
353
750
386
552
597
498
681
611
647
322
0
546
768
346
166
466
415
495
508
562
429
673
411
421
472
386
540
306
266
557
524
574
554
584
354
406
473
335
427
668
405
481
468
491
519
502
653
392
433
348
457
527
479
498
632
538
566
666
707
593
412
652
611
658
447
108
704
536
572
494
722
668
595
584
369
251
653
591
429
688
58
458
662
436
206
374
549
651
256
286
427
664
609
447
710
235
497
554
518
368
364
604
443
392
548
151
460
583
327
418
604
703
628
525
301
626
484
326
274
614
500
430
472
646
565
509
459
605
606
573
736
488
401
303
501
508
602
399
657
426
612
420
554
625
457
638
150
794
345
226
465
404
0
611
482
585
414
671
577
494
529
630
581
457
347
534
634
751
464
445
417
530
256
575
631
581
789
454
236
363
633
594
565
501
411
389
507
359
163
458
338
0
447
509
341
326
289
668
426
570
334
594
657
182
243
444
570
564
484
315
425
332
413
633
566
138
630
552
478
605
235
421
121
703
437
459
549
458
471
524
516
435
421
294
570
366
506
487
423
554
616
311
312
614
339
170
690
751
576
744
582
111
464
390
489
395
368
275
565
644
590
340
604
258
214
345
752
640
516
401
423
638
577
194
305
388
458
497
148
600
426
157
194
430
341
353
530
364
333
570
422
391
247
465
589
525
576
598
644
521
349
615
653
365
464
515
627
301
529
490
317
421
623
652
643
395
78
625
654
83
649
561
546
613
628
379
454
528
447
308
495
0
164
488
470
568
559
406
108
562
533
532
399
621
441
623
331
682
516
363
500
514
412
513
475
617
433
419
623
635
477
597
381
137
480
587
335
415
471
568
376
778
576
773
708
408
656
517
652
538
478
413
589
613
684
717
249
439
464
520
283
588
513
164
424
515
605
352
396
460
358
457
571
0
564
456
666
521
623
352
377
215
467
734
636
544
515
571
524
454
588
382
515
410
327
372
238
439
647
573
462
535
670
451
429
605
590
459
518
607
309
437
495
623
490
554
530
523
401
535
511
337
659
431
659
444
655
487
583
145
525
608
691
746
672
266
485
496
377
446
760
641
515
624
555
311
390
688
326
469
570
549
514
446
484
634
565
385
650
580
585
638
648
43
443
586
569
469
579
681
503
569
477
424
458
325
607
551
399
495
360
439
605
500
545
299
541
383
502
535
510
379
298
495
328
426
328
384
493
643
547
99
585
618
454
465
333
473
199
608
368
626
548
644
337
525
370
520
462
384
536
392
506
378
553
515
351
434
435
411
430
278
238
577
610
543
686
573
613
399
522
672
436
532
393
696
275
486
470
356
570
394
757
468
553
523
458
503
521
455
311
312
228
659
596
541
378
472
428
638
568
400
304
262
446
691
339
517
392
494
504
424
466
436
457
556
414
621
425
734
133
480
516
484
328
446
525
294
472
565
575
643
363
651
443
438
236
377
466
499
525
312
401
681
531
701
389
514
404
558
365
391
469
506
499
302
569
383
479
338
435
501
541
362
612
646
391
478
527
570
665
622
508
523
679
733
586
568
669
456
576
317
402
505
515
635
681
99
360
324
695
701
422
476
538
546
638
469
527
578
335
246
550
628
549
428
607
477
573
0
430
386
691
427
327
713
416
620
618
626
464
573
528
543
611
586
346
528
485
267
401
412
238
416
453
67
596
544
368
579
624
490
466
354
461
290
596
346
499
502
514
317
413
465
396
406
528
655
275
493
525
598
522
556
655
436
665
409
706
749
499
466
544
621
552
219
342
507
586
334
419
283
492
666
545
392
630
574
642
474
647
348
518
448
621
577
430
479
615
418
248
515
558
484
564
498
542
509
529
410
446
346
319
527
552
394
543
671
271
360
439
396
586
241
493
586
396
422
642
521
401
554
644
382
341
383
731
247
457
364
660
567
645
388
282
525
396
308
742
418
478
408
494
444
389
312
605
460
593
552
573
414
662
558
481
461
371
380
169
254
492
358
0
396
434
670
198
212
360
456
200
457
665
388
386
422
565
440
482
554
417
483
473
594
253
513
143
651
502
562
510
401
490
457
601
144
132
562
402
427
563
656
582
561
394
607
490
21
523
344
612
674
600
436
629
221
601
456
407
627
387
399
376
338
505
665
651
468
315
458
517
466
485
372
519
134
545
469
290
719
349
606
237
472
586
613
576
733
666
512
387
445
517
247
707
486
408
208
481
368
363
618
408
543
375
287
309
423
565
517
469
529
549
483
558
569
650
487
553
560
241
604
593
718
697
586
599
414
656
459
286
367
612
517
609
364
31
548
621
310
591
502
615
573
453
638
417
140
454
414
297
493
596
505
314
387
577
239
472
436
473
493
773
568
572
582
473
455
393
677
483
562
558
481
762
398
687
493
452
468
562
716
468
0
201
315
289
245
591
567
184
493
575
578
392
351
401
597
473
400
412
550
519
298
521
290
410
286
441
258
439
723
707
529
379
199
342
571
521
376
486
428
377
423
369
595
475
530
453
389
539
620
556
82
612
361
499
346
642
476
492
623
278
638
279
442
606
147
567
71
542
371
332
327
367
337
586
670
521
606
433
478
355
547
525
512
244
581
539
355
423
564
685
649
558
249
439
405
419
537
368
711
720
412
423
165
444
392
339
365
431
610
559
559
527
663
446
0
215
494
380
513
636
592
509
378
363
261
341
389
514
653
411
106
536
631
562
451
635
432
401
449
519
349
639
453
351
512
550
507
536
287
641
368
421
427
90
472
538
492
557
408
724
393
481
412
442
365
423
586
504
580
567
406
551
564
557
687
525
586
559
364
448
443
627
98
616
687
743
387
427
493
657
310
312
387
449
425
483
616
446
693
546
538
555
636
659
370
496
163
512
448
613
495
530
418
536
397
633
531
0
486
492
375
219
670
408
568
476
386
433
594
594
449
414
520
482
644
622
391
438
587
485
403
338
372
374
487
573
534
238
706
358
524
536
159
351
483
587
492
517
325
421
599
503
384
418
535
573
523
396
452
463
391
0
290
577
402
741
453
365
569
421
463
378
441
506
477
510
453
394
500
518
645
413
723
635
306
427
504
524
408
274
526
562
605
521
743
377
545
711
610
468
294
712
616
564
433
505
436
543
431
321
412
620
341
634
372
101
660
568
599
623
590
164
325
551
599
589
650
516
650
699
325
389
242
458
627
579
601
560
517
431
542
574
532
480
697
625
536
687
539
653
429
677
586
127
613
546
539
526
396
597
175
612
617
551
693
386
345
422
508
778
398
491
537
624
591
258
488
699
434
243
378
538
359
591
413
357
593
625
536
446
636
455
391
569
642
651
344
529
353
476
429
418
322
629
409
605
416
401
260
403
671
533
307
381
625
578
773
449
638
271
193
601
680
446
417
755
605
87
397
586
0
516
480
381
492
409
477
31
447
147
496
713
391
203
435
407
673
351
280
574
388
635
447
472
484
482
467
492
531
516
415
496
413
306
568
511
389
505
300
750
528
477
436
387
551
472
377
341
375
323
294
492
570
617
470
489
475
641
552
630
568
576
549
547
469
482
480
693
84
697
306
529
410
295
322
461
783
524
450
580
668
678
256
648
497
411
584
585
368
625
614
692
543
318
341
744
692
586
522
0
247
475
335
561
600
442
668
422
474
563
650
332
264
597
322
407
515
442
483
557
610
641
358
490
634
142
308
525
640
314
420
264
527
477
583
86
62
314
457
692
399
538
524
363
379
544
521
226
579
490
561
630
432
465
560
624
627
503
630
338
527
470
574
403
726
449
396
704
573
692
378
419
514
288
455
560
388
276
458
783
533
540
356
461
531
444
530
453
531
452
578
559
507
601
577
319
408
493
604
600
522
608
632
579
242
465
451
603
557
313
463
493
416
594
266
646
227
316
681
446
531
267
611
284
531
594
709
315
321
536
654
685
602
519
569
316
25
432
752
542
442
456
574
523
716
532
646
502
494
416
535
559
427
413
632
611
682
451
610
463
435
459
612
335
445
600
496
491
524
396
543
599
331
390
352
416
541
432
374
472
544
456
539
504
400
643
591
612
401
545
196
306
695
499
463
580
529
660
613
494
563
443
569
666
600
516
647
446
520
324
557
259
403
374
507
639
259
332
513
0
655
511
181
372
373
539
534
573
313
772
319
482
729
516
538
457
636
373
489
244
434
173
656
343
457
577
379
575
389
596
418
362
644
513
539
224
246
726
267
407
436
511
503
463
426
548
518
424
481
480
347
490
445
565
166
506
574
403
383
652
469
479
447
303
529
489
456
409
700
428
514
186
636
406
441
454
576
279
333
624
718
547
584
460
512
403
534
630
303
749
369
491
570
317
369
55
450
413
394
689
696
624
460
543
618
564
560
256
436
652
350
333
452
496
445
447
484
484
423
520
430
590
313
664
478
324
546
624
516
362
470
369
477
496
0
530
600
448
517
709
453
552
545
534
568
430
369
456
405
400
439
373
466
646
623
434
44
528
609
313
679
558
486
550
504
398
724
351
476
559
430
576
513
745
419
243
518
570
565
486
599
682
319
386
566
423
500
496
377
662
380
352
565
476
247
436
635
663
269
609
573
614
315
514
457
535
380
518
743
470
549
473
268
689
633
516
639
523
427
260
472
529
406
548
545
210
429
610
664
179
90
440
494
543
426
419
660
342
422
450
447
557
422
560
327
379
512
616
555
559
442
397
367
595
647
383
511
511
563
185
538
440
622
244
682
686
471
479
591
221
435
588
215
547
395
534
521
514
329
507
78
561
285
404
717
338
489
478
493
271
360
568
234
499
718
350
472
727
281
559
516
448
168
538
385
695
502
534
470
446
446
741
338
467
475
487
170
525
522
553
569
636
483
403
344
579
203
339
536
431
427
361
618
392
390
364
531
460
621
496
462
441
509
523
524
638
420
556
368
423
202
331
444
636
600
629
437
556
0
515
662
453
556
418
394
307
443
757
437
624
486
477
655
483
589
549
308
512
346
433
360
418
394
537
664
571
523
527
541
231
439
393
534
481
459
365
688
203
272
602
718
305
508
491
402
577
574
776
374
570
242
521
574
654
684
554
482
456
437
693
301
463
589
445
528
502
336
207
346
459
534
317
489
392
466
418
620
649
558
567
689
390
454
697
661
472
452
477
498
641
698
367
458
177
568
291
570
540
551
496
480
377
474
418
328
535
341
564
479
381
315
589
147
208
597
383
738
726
602
610
290
240
356
592
338
402
268
566
572
471
653
345
512
343
679
623
640
324
324
665
302
428
436
613
657
562
541
362
276
545
702
411
378
521
374
266
707
206
589
739
433
285
637
366
428
714
465
494
597
313
419
574
416
476
333
504
471
685
526
475
748
167
197
349
470
485
581
514
360
569
335
718
501
230
719
323
352
556
443
675
473
419
379
538
206
385
578
622
480
601
462
453
25
317
487
304
524
385
322
326
576
643
464
512
527
586
381
438
495
328
651
509
428
477
478
173
522
492
612
654
348
649
563
509
207
650
532
571
708
534
619
529
664
432
539
462
146
566
594
155
622
369
499
533
315
515
361
428
741
354
449
568
450
432
336
203
575
620
460
353
561
328
447
332
707
427
679
405
585
325
463
531
603
495
425
436
561
663
637
510
436
653
454
578
447
619
512
471
474
559
567
377
346
233
389
237
578
567
521
567
589
189
408
676
504
714
570
620
576
586
422
544
736
521
631
226
559
664
465
419
240
416
557
517
149
537
515
709
464
556
9
423
599
351
646
553
593
534
518
597
455
545
278
487
348
403
536
530
513
401
552
664
579
163
411
645
558
506
590
188
504
0
478
692
568
501
510
486
739
400
382
624
423
340
372
387
520
542
717
445
535
580
417
579
378
593
552
127
652
695
263
365
241
680
659
228
377
565
385
553
396
409
761
557
684
351
579
627
518
582
493
425
524
502
486
546
623
414
325
465
713
312
311
483
386
377
475
566
654
493
348
418
534
542
316
512
441
614
505
544
404
568
423
564
630
163
536
342
368
454
392
123
439
602
385
546
555
661
487
576
219
684
249
670
490
652
525
484
708
519
395
386
401
379
434
525
723
489
261
530
503
515
487
506
597
498
436
675
457
485
377
450
498
548
694
503
533
404
405
573
491
274
345
591
496
366
107
696
479
740
669
632
416
583
564
453
415
646
333
449
567
517
566
449
774
192
671
439
438
640
556
425
474
382
398
327
519
542
418
207
582
73
415
778
528
494
490
59
549
208
509
459
619
0
355
534
676
477
438
0
403
498
577
410
469
380
362
538
436
194
505
479
455
524
567
488
523
547
310
388
608
437
570
622
371
697
292
600
626
664
564
484
484
370
460
632
588
677
294
343
240
430
593
606
318
483
609
418
646
535
546
443
584
332
238
472
372
511
668
681
369
470
599
526
600
332
631
286
375
666
516
560
674
410
407
444
660
213
613
698
603
440
617
653
582
103
595
497
445
531
550
640
482
479
248
668
304
605
596
458
0
501
473
659
586
535
379
592
330
418
424
485
532
542
14
471
469
283
511
745
742
392
415
598
632
713
362
589
366
557
385
456
623
520
432
430
638
723
632
557
593
426
565
519
120
455
699
595
715
501
224
340
593
367
498
685
600
26
494
561
577
516
374
545
399
561
554
474
392
562
412
387
262
606
173
520
695
611
676
737
497
320
475
550
731
53
405
137
180
296
612
640
372
419
494
586
560
495
224
617
647
490
478
528
475
515
293
450
489
377
361
389
532
373
670
524
395
393
653
485
506
535
149
445
503
647
500
719
621
482
565
610
418
534
533
656
691
500
407
394
461
331
424
588
287
598
682
636
452
541
298
512
605
374
546
676
331
465
524
352
553
564
506
376
680
532
236
195
546
453
574
445
681
5
632
587
182
312
618
443
533
551
342
211
278
644
633
474
541
652
602
356
384
325
605
451
660
343
610
486
322
404
420
484
538
698
342
443
478
569
479
465
537
569
344
265
217
521
507
546
532
513
467
476
591
370
535
249
721
299
484
155
682
492
470
540
660
572
579
583
238
625
471
634
372
599
322
608
425
667
489
620
583
408
423
551
294
427
529
565
460
325
605
528
580
372
480
472
390
570
529
521
466
217
400
619
575
437
617
627
444
462
0
307
201
474
517
549
697
630
369
770
389
331
608
627
537
508
406
696
391
375
615
261
458
478
635
523
616
549
373
525
572
472
640
545
227
476
529
400
637
607
238
471
484
563
338
586
310
613
581
0
456
330
196
161
409
602
579
548
616
409
363
457
574
498
461
422
554
611
575
578
650
477
548
387
501
294
422
174
222
601
543
658
374
341
500
425
204
603
566
573
608
445
456
0
391
335
648
700
672
426
530
628
459
253
495
668
628
502
305
249
270
56
574
410
503
610
558
614
630
183
501
265
497
355
319
576
742
631
401
623
532
456
621
162
672
169
392
344
640
347
408
255
490
382
488
683
373
727
592
339
195
586
731
512
177
161
667
703
109
459
411
412
640
384
507
362
288
548
679
543
546
544
593
618
656
307
520
388
584
517
355
479
569
353
625
568
564
727
477
434
585
488
466
126
546
218
564
502
396
498
593
475
660
510
540
240
569
470
500
325
493
505
525
627
608
0
458
469
207
655
143
392
479
390
573
481
432
393
669
476
490
236
568
402
526
537
535
413
450
564
532
508
437
485
427
354
478
557
491
463
542
468
452
588
388
626
727
394
384
562
469
499
683
673
430
479
515
500
568
547
559
499
541
430
243
603
216
302
540
568
411
275
532
650
563
82
532
468
591
319
324
537
606
326
527
550
517
472
279
536
644
483
199
573
518
657
581
420
672
381
349
358
476
388
388
677
564
252
270
379
506
428
461
459
476
582
696
242
482
112
413
499
527
493
638
546
398
632
608
486
629
479
586
249
506
673
31
271
642
399
313
235
334
296
468
437
642
315
457
562
580
474
234
571
437
272
401
422
643
747
456
120
545
513
586
495
707
506
467
224
253
423
349
419
457
264
507
670
402
555
553
606
576
317
714
616
471
287
403
421
466
483
644
518
574
519
473
457
395
567
465
471
530
339
430
747
638
421
495
409
369
491
451
697
285
515
457
627
394
99
573
474
391
368
556
479
494
521
426
273
445
629
583
705
639
370
425
507
602
637
451
451
638
433
455
423
358
564
499
430
426
520
687
567
524
405
624
676
284
356
570
565
506
615
278
562
458
438
590
444
344
305
571
432
576
651
355
777
488
146
97
370
330
641
493
718
608
716
204
500
528
419
679
312
503
419
517
369
466
696
676
450
203
603
668
172
554
549
677
686
407
68
626
523
253
565
601
312
510
489
434
0
232
413
584
469
409
442
562
299
376
589
250
624
599
398
569
557
488
400
630
464
361
537
643
664
455
599
525
482
253
516
401
429
387
507
543
255
482
546
465
279
527
664
553
307
64
134
299
313
504
561
566
365
579
544
747
517
487
185
269
525
662
605
518
713
353
512
590
484
648
569
552
642
390
473
629
541
641
232
460
474
514
462
172
314
620
589
321
324
341
506
618
457
359
459
653
486
359
0
615
135
311
355
164
185
510
665
562
504
463
624
454
444
480
490
478
398
203
251
600
290
391
645
687
660
625
489
690
510
459
474
353
116
714
620
446
509
382
536
521
281
639
465
492
636
458
731
509
520
627
472
606
361
284
487
234
454
703
436
311
591
561
396
477
563
631
496
238
387
623
470
545
594
495
626
627
559
28
377
524
679
318
363
419
592
435
610
528
530
627
629
452
714
502
513
649
436
503
405
542
395
537
679
544
103
438
725
447
734
562
600
721
642
417
714
493
555
368
741
394
731
658
561
432
84
234
571
436
509
499
0
396
469
374
645
671
396
621
365
488
481
548
185
528
527
316
410
556
454
613
430
362
665
469
285
523
519
477
454
716
443
25
373
458
453
532
456
583
602
389
212
144
488
553
344
488
480
430
343
517
0
437
597
363
419
390
702
695
452
490
399
418
406
418
268
587
520
545
604
752
355
537
580
472
221
542
293
501
408
356
564
487
301
491
371
488
403
24
362
442
666
612
417
516
689
692
614
553
659
458
603
660
549
613
316
5
222
542
559
615
423
429
363
351
531
483
590
498
331
677
419
449
493
503
571
398
436
253
573
533
656
424
286
661
665
546
426
629
481
681
271
431
477
349
619
655
560
485
567
575
380
419
592
374
543
647
464
96
568
364
268
406
439
544
736
601
729
672
577
505
321
568
550
689
435
487
524
525
246
630
560
539
371
708
524
651
100
631
458
466
511
559
594
377
492
431
462
548
548
534
714
517
613
346
503
521
577
637
597
328
496
230
418
423
406
590
364
377
502
713
474
671
480
378
519
493
418
434
648
520
518
718
433
336
600
640
121
321
192
672
415
679
329
424
478
429
490
729
405
495
370
581
280
454
316
351
566
681
664
329
354
722
613
572
441
684
566
400
702
542
429
488
671
361
564
306
574
432
444
318
533
471
448
0
606
535
535
524
622
529
648
607
664
525
452
266
536
527
532
522
553
552
413
272
433
556
586
322
712
577
464
552
620
459
187
336
664
318
269
334
672
285
441
492
355
467
385
549
337
555
325
451
628
362
267
341
417
172
455
499
407
635
716
296
546
393
399
328
554
386
435
103
404
469
520
256
486
193
165
422
423
585
547
247
397
285
596
233
366
445
471
554
482
463
410
310
494
197
589
623
628
704
397
314
295
626
293
437
667
373
566
331
398
657
540
519
466
473
346
761
575
401
624
668
228
709
409
307
499
436
485
0
417
705
463
539
354
467
434
504
701
352
542
471
425
350
701
325
446
703
625
531
430
646
570
264
564
227
451
530
497
188
606
24
387
549
421
429
778
577
520
541
659
784
251
766
508
426
655
412
714
520
330
583
489
533
451
465
434
519
385
646
438
714
641
623
203
560
330
380
343
584
634
387
601
471
708
475
530
495
649
547
622
600
501
396
352
662
379
268
365
639
310
431
429
374
625
303
554
495
347
495
364
384
65
422
510
508
381
582
573
380
412
635
544
274
672
494
355
370
733
342
635
502
287
454
524
624
457
493
352
747
629
642
648
120
166
597
266
495
661
366
331
240
513
433
659
538
456
466
366
438
613
608
574
544
394
560
582
606
178
471
394
424
497
359
334
393
356
476
495
633
419
513
578
380
624
256
535
468
517
553
417
426
174
476
715
453
467
499
520
749
549
657
664
559
466
666
392
314
501
393
459
416
737
286
434
423
460
490
262
440
628
178
740
387
513
540
417
497
416
516
376
388
433
729
555
498
580
581
352
400
370
636
425
490
320
650
472
535
580
512
512
532
429
454
475
346
391
527
693
678
683
538
474
565
609
559
479
661
459
478
326
574
692
412
528
561
229
112
243
489
443
376
604
681
541
550
463
520
473
699
420
657
614
333
348
385
256
508
611
130
485
629
595
457
600
374
520
320
170
577
712
339
290
724
492
588
590
755
248
542
448
756
701
291
669
156
494
462
590
626
435
215
185
548
528
680
528
423
569
667
524
452
621
412
522
213
586
484
326
195
594
603
422
130
75
341
352
589
430
633
668
279
536
492
497
402
588
659
523
329
724
531
606
486
346
450
475
498
395
665
126
672
752
455
432
265
575
657
479
404
327
389
401
521
289
416
167
690
623
621
525
402
333
650
553
333
380
569
589
609
234
440
395
591
616
516
379
358
518
669
395
542
479
374
591
590
607
621
611
391
508
424
608
575
449
434
64
650
375
447
731
538
735
228
424
252
647
86
348
346
512
256
569
445
564
499
437
226
562
546
646
464
518
626
434
389
373
561
252
599
467
405
360
59
763
628
687
533
689
510
133
442
492
415
627
585
556
197
411
399
643
511
444
578
573
410
270
588
453
431
439
444
503
599
522
541
535
532
621
550
498
627
247
496
630
587
548
710
380
637
729
430
315
546
449
381
731
151
511
538
441
545
570
56
480
558
341
464
743
550
556
475
594
292
25
475
346
209
324
615
717
390
505
558
404
473
357
411
331
501
251
348
428
659
578
246
654
569
230
393
495
487
656
516
661
682
305
647
434
327
629
718
607
581
520
343
130
200
295
450
380
596
543
412
701
343
558
401
565
729
650
384
339
558
436
432
631
484
354
524
479
404
269
499
327
347
543
541
601
355
370
313
623
559
511
455
306
372
393
502
475
338
695
627
479
340
715
283
481
477
517
475
493
788
610
371
540
148
642
544
351
553
506
498
621
494
333
586
497
503
430
648
582
611
713
593
445
575
466
429
617
484
673
324
253
414
404
250
694
560
456
609
432
518
617
284
545
459
515
610
517
430
237
439
403
555
623
333
437
200
451
593
367
354
482
703
220
527
713
171
626
697
514
516
582
744
187
416
521
357
711
416
446
388
370
632
644
642
580
612
611
567
509
482
523
306
662
253
647
414
346
366
392
529
381
493
434
510
711
675
680
512
174
530
673
503
405
520
324
724
543
497
409
499
518
503
682
188
306
471
429
435
331
500
466
387
555
284
328
218
443
571
432
453
421
301
571
562
710
431
560
673
475
461
439
369
530
468
431
436
573
454
623
297
460
576
724
552
774
593
427
556
538
625
351
721
505
286
469
451
345
605
531
363
505
473
399
597
549
601
280
669
340
158
711
446
650
731
536
431
213
325
490
482
432
647
387
121
617
611
633
691
593
368
0
286
655
356
457
540
713
364
576
503
410
400
468
423
346
334
395
553
403
653
419
535
573
428
627
445
743
418
481
499
591
576
497
599
661
447
648
517
546
357
586
719
460
265
530
462
590
592
457
368
691
514
717
388
543
614
333
643
182
537
633
171
536
546
518
300
600
464
289
493
185
442
520
510
541
652
532
604
749
604
390
238
403
626
480
365
595
375
461
594
563
363
445
383
531
667
472
583
671
255
488
276
345
395
246
250
624
539
240
481
444
668
634
325
188
403
436
278
635
419
611
507
416
0
291
293
660
307
266
704
632
696
767
714
627
0
556
347
424
350
620
742
700
507
425
663
642
100
385
520
323
528
233
213
434
440
224
503
534
470
400
494
434
349
253
505
647
428
516
505
408
0
518
445
479
448
449
592
224
380
348
597
343
451
545
180
374
605
438
523
420
348
531
415
690
571
661
600
355
501
315
596
509
492
412
171
379
554
351
715
461
519
470
776
550
606
598
527
241
640
439
545
411
688
510
364
479
493
539
253
407
364
447
721
444
399
436
598
460
622
333
502
472
424
408
542
483
453
663
556
415
407
661
498
253
393
260
448
551
554
695
528
404
666
388
415
435
383
463
538
376
551
699
349
631
660
620
332
140
620
333
647
724
443
485
576
695
470
184
483
390
478
433
471
522
373
31
621
288
599
631
476
542
473
436
394
463
438
455
502
512
505
406
546
556
546
619
596
450
573
344
460
715
489
327
530
720
483
365
144
313
539
566
584
74
554
257
434
522
536
557
450
526
566
553
0
471
411
443
373
435
678
316
706
607
172
426
414
490
497
476
507
331
620
302
593
336
375
587
302
565
431
460
346
462
552
614
149
644
527
139
608
489
648
464
700
684
639
502
567
575
519
230
716
448
541
405
500
557
492
585
470
472
473
339
586
719
490
481
237
429
445
394
533
590
298
716
658
486
550
412
610
372
624
337
314
454
639
377
643
518
0
314
619
553
631
627
430
459
315
135
453
639
583
732
451
739
690
606
232
0
164
532
434
547
534
434
326
399
427
480
466
588
415
265
384
429
575
563
455
317
534
537
0
496
352
144
517
569
610
599
513
487
493
546
669
525
531
199
101
409
641
725
562
591
430
258
574
628
478
443
607
539
714
437
454
404
531
128
548
570
472
478
459
331
435
384
546
312
627
699
579
277
371
478
457
0
508
607
523
558
421
634
207
523
388
279
550
378
386
271
404
518
374
442
537
671
459
571
270
698
623
510
510
499
712
690
487
330
290
577
450
347
83
682
335
468
448
413
741
796
232
703
314
440
435
600
360
488
263
508
398
560
626
365
560
386
504
694
468
500
194
133
371
493
708
554
549
619
567
304
673
639
522
424
603
486
188
282
530
479
187
421
540
501
629
722
306
539
637
344
313
612
164
271
523
362
370
540
475
474
659
493
461
446
392
423
640
277
514
429
473
135
475
486
577
300
622
525
510
699
664
628
654
448
384
462
434
508
458
568
549
704
464
337
482
292
469
584
691
0
397
517
363
477
441
328
685
0
513
493
558
585
494
333
334
469
444
339
302
679
678
452
568
75
449
691
497
623
452
336
315
532
542
489
426
632
559
449
437
404
420
542
520
357
635
693
623
516
541
595
336
492
520
584
364
569
592
581
407
589
600
630
313
454
507
451
570
385
599
301
631
346
480
214
42
741
513
510
371
493
522
746
534
550
450
387
609
511
569
655
200
110
328
580
424
599
586
462
557
617
545
370
384
449
739
404
161
452
272
511
280
438
375
555
458
667
447
571
671
472
487
343
267
677
486
650
496
529
575
445
502
631
573
252
490
505
478
529
579
627
541
480
398
773
701
444
704
407
277
407
610
455
511
630
408
504
502
493
540
567
476
431
416
543
281
582
494
406
683
201
409
569
546
373
636
567
560
398
642
700
583
417
295
461
583
466
568
451
342
573
590
361
480
588
125
3
515
589
457
468
559
431
612
413
500
588
394
546
547
613
519
421
655
308
491
626
420
509
563
598
480
452
374
248
301
447
285
559
233
307
406
607
309
300
555
358
552
266
549
621
673
452
484
469
425
620
454
687
496
443
530
467
571
526
611
259
572
489
341
398
537
332
640
636
429
656
537
358
452
569
570
652
287
604
168
708
569
426
505
488
31
511
381
669
356
544
520
535
453
563
346
529
218
662
563
494
301
260
443
297
0
502
346
783
391
445
547
679
619
361
468
456
477
660
403
437
494
582
659
526
475
290
420
700
731
547
267
608
511
417
643
493
256
569
539
649
403
370
372
563
433
699
654
392
461
749
337
326
315
500
499
522
511
455
685
595
429
424
640
715
446
334
434
469
520
385
633
648
250
614
621
394
613
401
619
446
564
442
230
413
680
467
318
600
548
578
350
733
376
232
438
453
486
563
215
486
277
761
467
513
534
533
395
586
565
567
326
468
381
301
476
563
598
333
669
462
484
499
622
547
422
469
623
629
494
564
641
459
470
547
430
258
227
704
623
445
387
362
309
448
721
292
495
530
87
716
271
533
505
568
462
756
524
661
191
584
605
432
682
629
574
532
620
439
517
560
577
551
655
623
512
332
522
562
160
490
361
351
373
599
369
489
481
428
519
308
194
529
385
702
579
430
377
614
547
457
463
395
433
590
485
357
425
459
407
632
635
740
486
172
431
448
480
615
780
315
331
463
366
672
547
430
630
141
454
449
126
576
477
563
715
540
367
633
0
573
644
332
371
400
417
265
428
591
491
411
448
620
450
434
493
500
551
426
701
437
557
508
593
387
232
522
327
408
332
535
736
653
507
627
438
541
267
594
648
475
570
573
512
738
451
475
330
612
356
498
578
615
564
658
498
427
477
451
435
480
273
53
460
535
683
119
197
672
490
538
405
646
633
612
307
532
440
440
307
703
304
318
291
511
369
497
311
333
558
205
643
596
419
512
546
396
222
298
394
451
610
663
234
524
521
440
459
359
289
232
460
371
592
571
376
501
419
381
347
480
453
364
586
395
559
346
682
469
560
509
315
375
559
565
605
551
640
425
366
440
555
293
566
632
68
564
583
506
455
280
475
282
695
550
468
669
456
648
676
457
490
422
383
241
358
420
220
385
516
608
525
360
340
358
633
531
643
641
600
221
5
405
431
716
292
374
512
309
662
240
223
410
195
515
420
577
643
162
458
429
449
556
565
466
694
399
556
631
526
430
632
613
493
433
456
420
498
576
283
495
616
450
578
533
624
580
227
568
582
515
274
419
625
25
361
611
641
740
173
474
251
475
440
493
603
160
541
656
563
646
574
598
545
427
656
667
350
354
496
441
510
479
650
443
537
349
304
586
709
389
139
490
616
556
676
311
389
603
412
298
587
450
409
566
741
221
445
714
457
585
483
461
547
372
324
528
635
580
266
130
550
304
482
515
566
557
450
0
392
568
442
360
227
533
454
253
618
314
525
493
603
230
502
294
484
442
326
242
283
541
332
684
546
694
450
617
707
661
529
444
469
392
298
289
543
476
584
464
642
492
479
514
598
580
402
631
518
343
518
382
447
554
591
488
412
466
480
501
564
504
303
505
356
600
637
663
260
274
667
574
466
557
161
247
683
552
375
552
299
459
320
459
386
139
581
581
244
480
605
508
529
455
566
575
490
287
643
626
428
459
580
600
370
656
225
425
587
643
514
465
0
313
370
482
614
327
333
575
629
342
546
655
374
548
501
456
538
609
497
729
572
507
331
516
483
216
550
399
742
610
349
566
620
310
492
591
171
750
325
580
571
476
519
373
291
700
573
483
0
305
521
233
482
716
243
573
498
610
667
371
533
460
643
432
659
463
485
474
272
434
532
615
532
559
472
561
600
281
375
499
582
589
472
482
442
427
468
519
417
604
414
679
463
429
242
431
582
411
656
486
383
779
540
517
614
447
352
584
546
680
502
530
657
558
521
537
573
583
523
661
199
514
434
470
377
306
463
449
425
327
538
645
469
549
658
443
504
484
622
401
533
696
507
528
595
572
382
734
494
498
518
413
561
533
467
227
418
519
548
289
293
413
505
401
642
319
597
508
592
434
374
521
0
647
330
338
582
523
0
286
446
552
374
477
491
719
594
570
403
567
392
482
211
434
589
616
649
562
446
303
654
358
428
241
0
493
252
425
377
367
369
318
480
401
616
163
169
484
379
480
406
338
677
549
560
651
484
562
243
696
379
490
559
660
484
426
523
608
658
103
245
586
309
399
430
709
419
355
177
471
163
661
711
505
508
581
223
359
664
517
430
575
450
670
210
446
522
365
483
640
360
361
540
181
481
726
488
597
409
592
314
453
607
425
636
558
365
481
409
649
502
580
527
439
108
525
427
468
285
633
444
668
567
388
474
619
159
619
594
663
650
413
480
509
254
377
585
598
558
601
262
487
587
361
331
462
685
188
462
435
450
399
451
554
557
659
425
488
481
327
588
623
667
318
453
179
590
333
475
758
363
490
81
533
517
341
589
376
341
485
380
474
430
570
520
443
558
391
336
582
233
334
591
553
667
588
450
377
371
550
507
583
595
347
477
647
492
563
460
528
304
550
304
377
564
618
480
587
458
724
580
431
362
719
532
553
525
337
228
516
329
472
546
463
292
379
489
106
506
371
469
553
505
588
422
561
333
578
439
571
554
430
512
732
482
548
75
486
397
308
571
608
554
498
584
412
668
342
664
528
343
564
623
534
569
272
260
345
551
544
783
499
443
562
355
711
0
524
663
575
317
471
410
633
537
370
529
456
560
414
644
498
253
610
414
399
428
558
454
462
551
461
516
276
357
673
479
226
601
405
544
483
601
0
550
174
668
486
473
446
466
380
368
543
548
565
315
398
326
484
467
447
612
355
671
749
459
477
602
602
684
546
611
413
685
395
442
595
581
546
385
495
315
598
416
242
0
584
626
388
309
537
366
346
460
669
308
760
520
548
343
270
424
641
536
535
504
550
507
604
680
556
647
18
619
364
365
355
307
558
354
615
416
546
629
384
406
321
489
635
629
371
434
702
466
450
238
617
545
605
502
447
477
501
614
370
514
570
635
530
453
619
338
556
509
414
212
723
724
257
543
546
528
451
262
350
410
556
540
473
521
546
537
458
419
447
562
503
445
491
640
590
459
659
402
611
509
651
556
364
42
169
521
583
574
574
309
372
430
559
478
504
459
327
42
704
700
685
535
718
527
426
243
576
773
510
558
611
459
556
496
469
593
545
458
200
443
405
501
206
131
589
446
361
424
589
513
597
389
643
515
435
549
301
293
0
526
478
572
455
269
753
99
401
671
473
177
432
692
456
547
473
473
629
623
541
425
542
605
520
276
607
737
347
671
511
326
653
682
304
506
458
427
407
735
280
637
459
482
17
526
738
467
711
622
607
630
654
188
446
582
546
494
688
548
633
598
576
408
419
427
411
492
418
505
548
426
501
512
498
492
791
396
426
739
552
498
469
181
540
351
730
456
430
493
180
354
464
328
659
458
396
616
338
469
576
542
516
315
627
430
138
767
421
335
512
724
448
485
413
631
631
603
686
580
463
673
518
270
504
473
637
489
209
645
385
418
406
225
445
633
348
287
475
483
584
461
617
532
449
240
522
699
552
586
570
174
307
523
443
633
486
479
494
489
626
629
499
379
408
391
501
593
554
597
345
537
610
260
655
623
597
456
463
457
549
437
589
276
366
512
328
532
750
567
219
688
616
581
447
451
535
738
560
477
391
0
418
221
524
568
643
512
82
707
407
535
667
575
773
373
642
482
636
612
181
497
302
316
545
601
561
594
599
457
425
427
326
402
508
522
285
488
484
270
54
569
561
387
487
757
90
681
233
450
510
409
238
454
695
624
480
236
471
586
401
650
682
453
528
570
228
392
572
676
399
691
367
383
388
505
649
560
320
529
652
551
118
294
538
428
507
696
571
632
391
564
432
535
588
564
664
623
675
245
645
374
370
602
592
401
646
224
246
554
463
319
448
592
606
430
563
302
533
334
487
514
522
416
502
334
478
388
276
586
522
191
346
430
676
569
528
431
627
339
411
503
540
468
403
493
557
605
689
562
622
556
139
228
551
541
432
284
422
386
490
367
185
716
298
548
71
730
431
329
514
355
476
529
472
596
549
529
405
532
414
603
532
558
655
606
631
388
585
631
344
249
287
483
568
567
412
106
361
523
511
527
778
774
644
272
578
318
690
506
407
582
735
653
423
295
382
172
608
435
667
370
502
497
477
542
516
431
651
366
554
507
345
609
568
611
695
308
434
171
470
514
541
533
0
421
660
470
519
460
640
332
562
735
520
591
323
446
596
673
238
597
223
539
321
529
611
91
523
370
398
535
677
361
135
675
634
530
396
405
162
394
540
294
392
341
325
586
579
607
222
194
653
553
283
507
427
426
482
581
593
351
366
572
537
385
485
469
391
594
368
752
311
336
523
534
508
554
378
654
494
501
296
275
697
351
431
305
439
511
179
695
216
557
207
608
472
368
387
716
321
669
306
486
483
487
610
311
418
447
263
573
517
614
724
705
451
218
346
636
610
408
400
387
338
506
402
649
635
358
471
586
376
555
259
577
503
574
287
338
362
541
446
485
567
613
610
371
553
435
733
431
587
546
551
490
604
485
594
658
744
479
654
402
656
570
422
642
367
442
389
383
508
217
464
508
380
464
558
448
347
619
426
345
529
583
537
653
598
484
491
449
334
492
634
301
444
447
624
402
670
130
530
365
373
342
630
600
580
276
600
678
409
246
575
648
736
324
427
604
508
489
580
626
595
374
380
368
403
714
460
383
459
519
606
771
483
726
425
594
642
104
696
341
629
682
446
336
387
479
673
37
487
447
351
529
96
661
343
406
235
440
604
636
599
408
270
614
618
416
354
465
272
536
667
586
475
613
370
591
530
294
678
584
632
252
406
288
411
622
461
642
406
445
608
327
553
453
608
636
414
259
640
552
403
441
695
649
411
272
567
401
182
361
421
461
222
415
730
664
213
562
377
434
363
126
618
732
731
427
603
672
591
402
691
710
343
331
551
418
565
369
344
204
559
614
579
755
541
685
439
327
463
372
390
465
637
696
492
670
308
447
608
511
622
738
593
491
621
286
636
236
660
88
512
205
560
87
442
590
272
480
596
461
672
489
354
344
498
486
544
146
560
499
546
380
523
555
335
553
362
382
676
566
396
641
522
467
358
450
338
643
399
215
604
452
575
383
608
646
455
503
189
505
554
241
390
124
478
295
541
635
525
473
419
533
451
423
432
467
257
544
424
248
483
657
311
622
386
417
442
617
417
623
658
488
274
439
531
287
627
679
450
669
590
474
616
494
137
552
708
521
473
507
539
498
532
275
456
315
630
301
555
343
585
561
477
704
471
459
631
560
297
405
386
539
393
551
375
377
623
508
483
536
518
332
516
546
535
440
587
452
615
529
393
154
317
104
412
561
723
533
424
542
360
485
489
590
602
639
438
494
431
350
374
483
517
485
634
550
576
617
429
279
638
630
556
394
624
325
548
518
482
631
125
561
542
493
467
248
334
468
538
488
435
447
664
630
462
553
395
542
674
641
343
282
441
312
382
476
487
300
471
694
534
589
492
454
535
587
426
469
373
312
539
491
0
472
389
718
520
506
274
380
327
580
505
469
478
585
599
548
561
607
392
376
690
382
555
316
675
309
680
506
547
428
715
372
213
254
372
759
537
607
551
777
601
433
394
574
629
544
604
580
368
470
528
565
513
546
569
368
654
373
580
492
222
462
685
612
316
195
525
433
667
473
719
342
444
726
508
413
277
413
167
459
479
418
562
662
280
423
524
350
648
461
533
465
777
412
432
485
625
511
385
567
704
139
663
339
738
415
150
416
525
518
616
580
430
622
734
436
271
559
214
533
450
502
434
421
353
600
535
553
396
408
446
200
527
583
445
327
514
472
353
564
459
534
251
327
455
360
532
546
412
555
228
525
354
750
562
268
339
614
479
402
667
523
376
528
554
655
362
373
544
724
347
395
618
366
482
507
539
694
416
704
507
619
605
292
433
352
670
457
536
473
538
435
295
442
331
470
524
409
510
544
387
305
489
434
492
634
344
459
546
502
439
236
444
574
392
465
307
454
609
544
359
634
529
267
414
393
613
688
175
516
452
718
609
364
552
463
629
604
500
345
410
158
570
512
423
281
481
440
199
584
643
475
476
459
473
611
492
666
616
70
399
417
586
661
187
411
415
579
331
208
552
410
479
511
512
546
534
578
579
364
425
169
560
513
708
434
176
745
490
281
522
484
403
381
418
621
465
563
491
632
503
547
373
532
515
457
497
357
681
423
461
539
400
619
551
526
319
548
706
431
496
562
230
601
526
585
560
616
450
505
278
343
354
460
562
387
518
415
515
495
346
529
499
503
503
515
384
326
520
431
488
414
512
503
599
658
468
357
399
607
240
344
669
590
477
349
491
506
195
167
406
448
267
627
650
415
509
506
496
735
478
497
566
418
573
540
761
460
469
612
538
677
570
527
477
559
454
583
615
640
233
682
415
452
80
482
418
594
412
326
573
378
347
726
479
645
411
394
378
519
510
576
482
402
471
255
382
465
541
267
384
372
463
517
525
621
564
504
312
441
515
504
520
276
418
0
690
605
344
336
46
663
246
675
568
420
555
271
262
320
567
605
502
508
515
593
531
197
495
566
315
561
471
323
439
0
677
470
589
556
434
523
517
344
715
690
467
548
657
711
515
338
485
539
92
518
585
362
563
475
596
502
394
626
275
541
452
679
568
481
485
444
527
551
584
549
413
542
221
413
471
663
460
210
541
607
506
545
256
461
393
621
512
563
405
618
573
419
564
568
421
303
556
562
146
616
585
650
269
406
288
423
474
667
457
608
606
510
614
682
356
691
437
565
317
682
580
700
195
426
494
440
362
537
564
322
518
517
272
460
725
359
678
477
619
603
589
414
452
397
389
495
431
509
515
0
375
719
358
390
504
600
486
428
520
444
469
412
593
735
382
644
442
492
600
545
735
73
557
344
504
575
418
517
457
439
427
549
704
617
590
546
648
477
378
408
619
555
397
304
499
596
537
469
166
371
783
642
471
459
656
572
283
423
493
331
441
451
376
536
739
301
590
0
463
409
582
477
408
565
538
332
604
622
618
254
473
411
467
424
517
557
502
536
363
737
496
723
316
740
402
618
650
448
656
505
433
591
485
578
532
463
275
612
655
422
0
401
371
491
306
492
542
369
619
373
437
557
714
244
433
522
450
149
718
698
430
555
314
479
777
583
472
738
674
340
487
432
503
552
84
393
462
343
386
599
746
685
611
451
590
366
146
188
570
723
397
653
393
526
543
387
396
551
542
658
665
659
618
595
451
556
345
394
525
658
428
736
625
690
478
585
524
431
523
608
615
424
627
723
473
509
415
444
294
302
188
267
359
522
633
395
328
435
535
619
489
73
516
421
268
512
384
485
508
525
587
563
556
417
528
152
284
353
300
532
693
135
649
410
626
596
484
325
352
88
408
597
500
664
449
533
343
361
572
404
449
509
651
452
583
501
463
375
568
556
496
477
542
508
468
546
351
431
456
315
701
304
566
465
559
202
391
398
338
536
451
624
398
523
469
203
350
634
546
334
497
341
431
661
505
693
676
764
702
634
456
650
389
640
688
458
511
344
395
548
578
495
592
207
488
375
562
516
0
516
265
623
437
591
608
591
452
491
440
505
600
451
416
269
519
492
541
622
542
406
535
527
379
497
505
623
351
71
601
635
624
586
716
568
483
355
707
466
0
450
637
525
603
605
504
245
633
638
506
778
338
46
465
377
453
0
627
437
334
542
693
463
316
506
494
0
508
549
501
579
498
601
497
332
641
430
750
655
448
527
417
506
627
590
352
583
509
370
425
83
354
487
498
393
715
685
120
308
303
666
614
694
485
486
487
384
536
552
342
406
767
285
395
648
253
521
361
601
545
58
510
778
608
150
390
398
218
559
319
547
549
534
0
532
292
699
291
0
478
456
500
595
649
516
224
536
520
543
431
570
589
556
270
636
707
449
595
334
486
542
491
688
712
474
550
311
695
436
523
381
318
437
433
515
469
379
566
575
576
645
625
496
464
567
547
454
323
455
218
416
259
531
519
250
537
504
316
421
488
496
258
680
145
313
628
608
400
76
649
559
460
430
530
215
54
190
417
107
45
654
188
508
335
618
455
559
304
121
553
405
503
157
178
465
315
578
556
612
580
555
656
394
495
559
603
548
419
429
504
575
572
470
37
354
629
426
178
474
530
505
585
521
602
731
500
517
400
510
572
528
572
621
715
459
666
505
701
421
433
503
514
481
542
738
776
596
462
443
632
628
478
373
513
551
614
538
268
443
692
593
726
346
518
546
599
708
430
155
692
353
414
653
58
402
195
594
605
224
549
564
499
483
521
498
225
700
642
241
464
500
397
514
615
467
665
595
504
159
472
270
699
703
339
443
643
263
634
523
449
435
429
528
495
648
437
488
416
558
577
515
587
262
591
516
593
468
701
447
457
697
560
350
127
594
657
625
584
541
384
421
509
493
471
172
504
289
476
471
281
369
423
427
483
461
151
603
546
103
649
575
573
467
438
641
375
355
474
611
437
274
527
556
621
636
509
401
587
515
284
278
510
617
361
349
389
471
658
382
492
588
453
581
544
387
45
624
453
362
466
460
406
270
658
476
312
526
450
266
322
251
512
567
308
477
513
312
327
348
160
632
643
433
608
299
498
488
245
596
776
437
508
493
355
390
532
628
179
0
170
690
613
330
524
586
350
512
436
311
717
247
753
390
385
449
527
713
413
253
541
417
387
362
518
279
536
592
563
585
340
521
461
525
359
122
559
378
588
467
410
307
654
549
403
346
604
285
629
391
672
674
505
428
526
501
584
508
435
584
491
43
488
237
600
503
415
514
702
106
665
273
226
265
430
554
397
572
546
400
194
493
450
657
478
366
510
322
202
421
486
561
474
488
569
490
446
176
534
554
106
532
378
284
408
744
722
576
573
500
378
294
600
403
610
624
469
430
392
414
440
471
431
534
513
363
365
467
749
165
559
728
507
330
674
495
648
387
722
538
679
309
628
219
285
548
611
115
607
588
495
443
524
510
506
453
593
402
346
378
483
603
519
385
560
513
494
533
414
573
585
431
426
625
724
523
173
367
312
399
348
522
390
594
579
526
590
601
527
593
530
414
504
120
456
619
350
602
427
228
684
256
162
309
604
487
595
276
560
341
307
392
571
461
427
313
567
512
536
670
429
287
434
444
630
503
622
658
378
523
737
694
473
410
474
379
499
448
266
396
450
456
187
723
537
570
525
423
509
585
364
711
590
716
400
373
403
465
566
681
400
258
373
439
514
412
394
503
365
242
239
693
570
556
583
751
472
294
184
461
397
474
303
437
633
629
569
685
424
420
287
500
540
506
360
526
491
558
759
505
606
541
612
546
451
384
77
609
140
602
512
599
518
472
600
454
371
547
503
377
356
508
467
223
515
390
487
457
417
529
343
122
476
634
546
508
505
391
364
559
423
568
610
349
347
727
453
543
600
282
467
383
615
408
458
304
519
212
455
585
274
754
408
556
518
395
370
581
454
0
304
455
547
451
498
407
540
513
189
592
379
632
594
614
493
529
338
188
239
527
626
482
511
646
371
446
413
610
600
630
472
507
557
395
486
631
556
355
342
328
367
480
364
487
442
342
732
652
477
676
514
558
383
649
585
401
670
551
605
471
404
507
393
486
415
252
419
570
599
513
263
583
533
461
736
744
585
548
325
549
511
489
511
534
580
403
63
555
493
346
162
540
418
545
584
502
403
694
380
422
585
547
684
496
325
563
413
647
693
554
614
488
695
551
467
169
356
590
680
523
388
503
460
523
640
528
502
501
679
376
461
599
283
365
537
473
359
626
789
630
655
475
447
582
349
476
601
208
418
672
396
591
498
570
506
668
588
274
345
512
284
451
598
593
230
340
285
666
133
263
713
519
371
296
640
655
286
563
549
589
627
361
398
499
428
509
254
162
571
503
323
656
544
480
260
499
525
510
533
376
398
415
455
543
510
389
474
378
512
505
269
290
676
712
475
716
554
175
647
476
722
635
422
535
531
630
265
491
613
658
348
399
345
582
460
503
500
587
569
611
413
600
491
427
343
273
504
484
624
386
402
509
347
537
337
510
145
655
492
476
590
533
602
529
477
703
662
608
205
467
590
436
336
499
170
425
444
447
664
476
505
501
604
336
437
652
280
539
474
531
516
367
517
496
682
560
332
703
363
475
552
476
683
445
576
528
442
450
323
629
665
741
737
611
433
784
648
636
595
334
491
419
449
603
522
333
613
597
468
572
425
420
381
533
478
362
639
414
345
463
474
638
409
394
452
224
632
472
634
655
564
510
689
382
104
363
630
550
720
471
429
624
454
741
526
504
631
582
315
567
469
641
527
405
499
553
661
418
728
605
471
317
286
617
465
552
513
437
124
434
367
624
630
141
658
655
383
427
557
255
489
524
587
532
641
451
636
500
159
590
378
543
354
461
692
654
282
654
416
403
282
406
243
469
346
459
280
412
537
502
661
713
449
475
494
485
516
668
676
574
492
726
439
394
484
417
760
404
546
600
556
355
459
405
452
360
657
380
421
264
602
579
678
652
626
442
652
556
3
555
505
379
314
508
326
536
666
585
469
147
564
609
369
238
471
484
480
292
654
210
211
619
437
306
576
399
466
612
514
309
418
493
594
416
612
172
219
482
358
690
435
531
746
601
746
523
717
437
568
512
614
474
721
293
578
398
652
699
335
498
436
597
744
346
481
485
609
600
73
605
534
449
484
499
250
484
684
679
523
307
378
0
406
414
458
470
658
309
530
656
630
479
412
407
546
548
584
373
703
518
235
337
220
359
356
436
723
450
532
390
235
572
472
490
265
590
493
415
373
542
664
636
638
369
702
542
364
409
297
496
704
559
385
597
672
591
577
448
226
636
673
425
456
760
324
451
518
313
252
536
730
385
401
527
493
514
337
413
525
571
582
537
599
384
260
441
428
431
509
517
440
512
299
575
548
666
580
500
505
674
582
388
485
519
224
406
524
389
554
582
671
441
558
399
420
661
746
559
606
625
518
516
566
413
378
687
675
540
556
629
180
0
636
631
438
245
423
397
720
619
269
610
637
706
599
527
501
495
292
260
636
545
621
204
457
381
452
554
548
438
537
666
484
637
673
628
559
190
695
499
490
502
370
494
610
464
584
383
573
368
249
669
41
703
517
435
621
517
603
298
408
0
623
372
521
674
588
413
639
476
541
481
445
351
552
491
705
431
641
498
439
113
517
545
241
613
519
435
422
577
464
599
493
420
532
322
601
391
513
420
505
432
468
677
318
562
552
607
420
484
539
467
555
364
530
486
454
529
469
649
508
581
500
569
527
628
609
461
448
477
379
252
529
604
419
426
212
465
358
515
427
272
420
458
432
401
233
414
293
619
445
699
504
563
670
474
654
463
478
708
545
591
276
625
327
112
449
338
534
526
397
428
565
434
443
665
177
115
501
519
362
197
419
320
362
193
635
237
461
669
611
451
503
686
439
447
395
152
610
463
316
266
301
411
652
383
626
627
573
388
590
573
557
712
413
557
498
393
614
151
719
398
668
712
406
687
595
463
659
583
627
649
636
572
617
534
397
556
517
469
414
442
283
599
539
365
557
430
396
462
321
551
709
135
589
468
279
335
482
322
452
96
515
531
740
412
277
449
594
379
545
547
499
625
513
24
369
543
645
0
656
261
186
363
476
637
413
486
436
499
119
437
568
410
533
514
445
557
533
456
576
139
513
435
542
440
563
564
691
576
542
592
685
510
478
613
375
547
455
558
504
417
562
387
459
415
709
417
232
523
428
67
430
512
585
403
573
441
767
374
522
561
546
696
202
427
549
443
534
454
385
624
571
536
555
431
497
695
505
524
435
423
603
660
368
464
422
465
558
588
482
703
615
594
659
535
392
417
446
194
528
596
568
468
206
789
456
720
355
639
318
560
369
573
539
301
396
0
524
577
551
616
564
468
585
544
426
417
603
367
477
427
335
587
409
463
202
451
415
524
490
342
562
357
293
196
405
500
647
469
288
593
542
511
529
488
365
509
256
156
533
601
382
546
530
100
439
488
592
635
566
567
625
282
440
500
512
460
399
145
225
573
467
470
436
556
579
438
427
423
498
455
517
388
558
397
631
753
404
573
495
552
441
651
472
620
566
433
524
510
137
528
437
434
0
562
434
444
452
164
445
481
519
722
454
557
432
423
556
289
391
425
327
443
506
656
711
655
633
636
281
530
585
505
99
158
574
530
599
366
617
665
491
389
242
628
535
627
628
628
472
504
572
567
745
528
527
562
184
313
644
488
388
509
511
406
392
474
307
265
768
433
497
402
634
552
315
355
421
447
583
538
533
336
69
447
469
337
343
418
584
719
252
477
465
563
532
747
577
531
629
172
528
630
518
435
355
431
386
571
537
719
420
357
488
564
570
491
434
657
622
595
508
411
465
583
380
687
571
357
65
541
642
11
304
556
405
362
458
720
150
542
620
348
337
58
390
476
574
398
633
588
564
445
476
513
675
516
523
324
387
513
650
657
465
472
579
487
416
509
545
549
412
169
554
108
339
387
227
509
721
565
700
389
579
731
324
637
763
657
523
683
461
653
451
491
517
634
499
497
419
588
636
514
306
250
353
47
527
270
645
498
293
600
517
498
353
272
579
195
432
699
399
691
495
687
295
389
461
221
601
542
544
457
667
362
464
462
419
429
545
291
478
524
702
319
694
536
129
267
599
504
700
533
637
637
412
318
531
645
377
494
539
481
397
378
646
677
601
542
277
167
464
426
584
405
623
629
747
467
484
434
482
83
465
309
507
509
536
583
693
618
521
533
325
453
682
555
532
497
427
583
615
482
460
488
505
481
546
427
439
478
457
412
364
603
507
366
360
459
497
625
398
665
430
467
186
426
594
606
404
334
504
442
624
398
643
529
685
628
476
373
532
507
603
700
291
388
656
500
572
267
542
274
565
280
402
613
470
524
492
534
295
626
394
400
394
432
642
366
434
451
535
469
760
595
329
469
483
579
449
588
515
653
686
550
568
476
473
413
654
503
685
429
524
643
165
341
639
689
458
394
675
295
250
723
625
759
397
394
534
343
577
589
535
590
570
471
594
365
440
726
345
448
293
389
758
493
474
468
569
604
414
475
778
274
634
359
574
523
285
379
319
537
606
350
472
361
593
321
466
619
560
306
509
334
532
680
407
235
427
569
533
717
584
470
426
447
576
685
592
551
671
617
715
304
444
582
716
419
614
635
319
782
471
371
279
454
491
482
615
547
653
702
510
481
747
569
368
510
582
768
693
394
352
447
642
236
258
622
528
417
396
397
532
0
164
680
371
585
502
391
665
421
313
433
404
426
648
586
559
659
226
404
401
506
467
358
438
578
258
491
547
493
410
532
610
569
581
672
579
450
528
500
64
624
443
570
572
467
468
621
269
702
363
404
624
503
215
455
583
603
457
622
333
248
106
550
496
481
451
520
485
685
619
497
586
640
664
553
563
524
477
711
503
493
565
526
268
292
504
445
387
728
309
587
51
374
462
491
395
155
665
343
233
570
437
343
601
513
550
592
205
454
428
641
0
523
219
399
744
568
761
384
423
446
504
256
605
605
263
542
704
583
458
606
573
286
372
330
515
277
548
253
405
84
309
465
352
412
423
420
460
191
585
668
422
409
300
0
371
477
593
472
412
457
367
439
563
699
599
372
551
501
621
489
455
536
453
554
474
385
478
581
488
490
312
533
523
538
492
439
210
446
617
455
590
506
573
608
484
412
718
434
566
230
333
582
565
402
420
440
246
461
595
550
543
342
361
282
613
386
505
586
538
297
554
448
500
597
564
280
627
431
409
257
567
470
541
538
429
343
265
479
337
465
640
514
361
593
635
327
468
537
246
664
697
474
476
579
700
337
634
485
693
546
402
575
595
338
713
383
618
641
293
249
682
557
512
579
469
513
473
412
503
561
388
135
282
611
557
520
514
601
325
581
743
482
637
274
408
396
448
504
609
273
432
571
502
560
609
557
542
497
238
292
655
601
616
213
561
503
317
403
464
266
622
357
650
525
499
474
143
420
465
556
697
274
421
495
440
683
0
554
408
550
440
572
302
513
497
627
629
627
521
437
450
378
267
531
740
471
676
530
524
383
327
548
503
497
473
551
538
0
510
524
543
580
464
625
581
621
572
475
327
298
659
438
455
567
488
0
519
694
576
586
354
410
533
0
395
99
520
331
546
485
86
554
360
527
749
473
494
368
464
621
472
289
566
556
411
554
690
311
630
598
422
486
569
489
179
467
741
541
665
461
555
458
601
465
289
504
623
688
354
589
584
528
470
319
646
315
611
314
441
501
608
583
670
342
535
510
568
336
364
537
421
378
449
568
495
395
526
623
642
608
306
655
682
570
539
508
408
450
473
469
412
506
691
530
374
441
508
420
326
542
190
522
353
353
501
381
455
662
347
570
476
550
463
336
521
531
543
450
686
403
699
737
500
196
105
715
475
412
576
534
521
578
372
364
542
439
275
586
268
420
184
416
527
445
433
420
512
533
253
491
352
574
312
445
619
536
520
478
618
494
428
583
408
429
460
562
678
737
516
598
349
550
383
293
370
565
593
358
249
462
607
650
519
607
458
559
620
577
232
647
522
425
464
673
549
193
550
573
630
481
561
586
444
610
572
455
296
443
538
210
457
625
140
375
464
485
228
535
518
613
572
575
672
640
545
357
728
587
264
524
556
467
349
307
516
607
472
511
346
489
484
427
351
556
520
690
371
401
274
384
360
722
597
479
592
462
453
657
464
334
111
470
743
325
544
657
618
601
253
651
402
280
695
0
523
203
400
538
464
416
665
490
364
629
440
503
510
681
617
494
323
475
583
507
412
159
273
373
532
374
642
356
349
593
292
481
304
438
575
203
617
166
120
465
270
315
557
650
629
401
507
479
352
429
468
184
533
516
548
392
563
601
574
711
663
479
19
426
487
698
301
482
229
314
254
484
586
417
645
613
324
372
100
648
521
510
354
656
726
575
501
215
652
486
554
593
507
628
556
373
442
644
631
313
550
244
379
416
558
484
453
386
529
320
429
518
461
686
540
311
299
551
730
653
338
580
431
605
414
422
603
646
607
593
578
658
288
274
609
562
663
500
541
593
584
365
415
566
523
190
493
729
540
670
578
604
571
482
591
505
574
439
539
461
326
639
422
596
334
475
384
597
694
503
476
456
365
497
560
449
596
500
688
597
481
232
668
726
498
609
100
312
456
584
410
483
329
498
483
521
722
543
515
713
535
602
630
394
775
509
623
629
574
664
424
396
684
463
532
387
595
312
613
667
428
354
548
343
505
470
238
635
442
550
526
562
338
327
461
318
405
602
685
171
495
281
413
410
451
642
259
667
365
309
426
603
458
573
504
361
594
645
576
362
499
391
349
467
227
598
494
554
621
74
316
539
704
167
427
486
168
584
544
189
724
513
433
109
664
337
350
431
123
571
502
539
471
516
105
402
487
503
435
488
197
394
277
374
626
485
563
474
525
431
677
453
487
184
591
519
536
280
760
583
410
490
224
580
589
249
643
311
389
392
502
146
163
461
523
103
396
590
467
742
592
415
446
434
538
93
448
418
313
637
214
430
567
625
405
279
355
512
471
513
417
675
473
382
436
524
210
615
320
664
383
664
243
488
443
564
398
286
499
603
526
439
483
453
614
338
661
637
606
396
399
574
616
628
534
545
621
734
280
686
711
536
338
364
575
538
750
565
441
395
228
663
179
373
560
389
373
353
128
360
265
420
550
518
672
667
539
379
5
678
175
430
264
312
437
375
476
372
487
647
314
208
502
500
442
371
625
371
407
532
357
600
486
336
579
352
481
476
213
523
460
318
487
383
410
361
500
319
454
524
626
442
365
480
647
527
103
476
503
163
193
504
619
484
445
690
702
662
692
251
481
586
623
623
428
393
582
558
724
244
431
514
231
561
464
494
739
426
527
542
651
514
567
471
175
397
307
192
514
392
491
583
653
448
508
475
528
604
564
380
366
404
487
619
464
403
399
395
336
570
713
525
623
462
452
0
516
706
701
745
37
637
476
559
702
438
667
603
704
444
609
386
661
683
513
402
288
637
462
586
538
664
642
514
165
504
326
496
670
520
501
323
604
365
406
739
430
587
609
312
604
552
301
487
431
666
624
386
715
574
426
313
180
481
593
686
716
233
356
521
558
393
673
524
551
633
257
260
568
419
445
619
441
550
345
573
119
618
531
381
210
501
495
637
664
287
512
344
530
496
631
661
613
525
626
558
580
558
658
664
546
587
578
517
443
639
447
331
449
677
499
219
337
531
437
550
396
550
326
103
551
577
453
622
281
571
443
528
281
724
480
553
417
464
487
413
432
526
547
451
516
26
765
383
491
730
554
641
217
213
454
663
699
472
406
665
490
690
429
665
616
502
495
341
443
218
482
490
523
435
336
475
558
389
334
428
667
357
128
232
550
240
495
408
461
369
272
547
365
366
628
333
400
386
702
494
167
452
373
507
439
417
417
545
470
493
493
485
318
609
700
143
470
654
487
593
367
439
331
378
326
678
524
205
504
286
498
581
620
591
569
378
397
332
486
346
654
490
608
628
352
551
734
589
456
377
485
420
499
321
370
654
635
421
471
521
312
559
671
557
457
440
710
372
143
488
524
487
666
591
725
493
575
196
489
569
627
343
517
544
192
424
441
107
220
610
414
573
237
496
664
667
605
654
512
444
490
678
514
607
332
387
341
403
536
649
383
179
457
590
762
341
582
558
348
519
521
453
287
50
398
637
450
512
505
380
341
414
618
458
658
377
357
568
564
402
151
547
683
483
496
523
412
631
596
654
434
681
459
293
409
662
431
432
563
490
437
365
180
523
617
429
461
460
449
527
433
131
441
378
608
306
0
594
192
184
607
575
231
539
324
561
418
537
501
600
561
474
252
456
527
442
369
391
476
484
605
719
504
450
507
640
292
483
573
714
510
573
477
194
508
213
295
673
741
534
195
601
499
623
597
402
559
381
461
607
441
377
415
694
661
569
367
176
599
470
236
650
494
468
304
627
422
625
520
525
496
405
479
619
574
572
583
412
452
614
627
515
614
466
393
421
556
534
280
685
202
448
628
512
647
480
367
501
620
533
447
555
601
240
402
596
460
636
436
541
431
565
577
490
311
240
594
690
342
220
363
550
420
448
360
556
560
633
388
568
637
369
436
558
647
657
456
661
148
504
530
496
564
667
252
508
402
616
347
490
689
243
514
488
617
549
572
521
556
213
99
534
558
466
631
425
469
591
663
148
558
660
536
722
343
601
476
247
354
568
528
458
421
546
377
544
653
691
107
493
406
616
462
400
578
420
328
459
610
419
470
467
611
365
492
527
290
411
493
519
486
469
507
501
513
533
439
481
523
505
425
450
644
424
291
492
395
462
319
505
347
655
408
329
461
411
407
486
331
476
602
474
528
318
338
413
391
497
451
553
528
488
475
646
632
700
400
475
442
353
458
506
621
484
429
575
415
357
419
526
559
695
480
613
405
486
685
539
638
567
426
404
315
543
553
333
545
350
577
661
591
485
530
35
97
443
498
445
122
361
568
389
504
299
701
515
560
574
199
617
578
626
309
0
468
535
464
616
627
399
440
93
328
427
609
614
641
576
572
595
488
543
484
558
315
471
528
631
514
387
565
532
588
555
362
564
312
378
314
718
591
35
597
584
612
477
490
492
291
574
514
474
516
408
477
456
417
349
557
556
497
550
463
472
371
456
517
264
665
475
381
371
492
484
659
528
490
571
715
451
268
434
622
538
434
601
452
687
427
429
153
390
424
437
60
379
610
637
606
482
453
382
446
448
396
464
639
641
333
309
374
580
417
576
462
470
340
140
374
740
646
591
732
81
354
436
438
321
346
345
73
549
449
427
579
557
470
557
295
422
566
553
578
365
0
583
502
610
130
409
390
485
533
438
582
398
506
460
289
382
148
686
418
638
527
563
402
476
423
315
413
194
626
337
642
497
587
604
343
638
560
513
610
691
451
659
322
434
703
204
295
491
494
604
320
512
524
636
623
375
310
492
293
494
347
579
435
631
300
538
494
463
315
667
538
514
523
408
531
231
525
416
647
385
767
379
739
429
673
552
470
420
25
562
470
358
225
666
712
423
481
638
233
405
359
418
447
596
347
435
573
525
410
558
414
146
226
344
412
460
367
443
61
488
466
693
483
610
582
318
666
286
586
202
612
748
467
479
353
416
467
352
532
527
606
94
432
485
445
559
271
304
587
416
175
597
678
464
568
484
478
470
274
380
0
392
531
490
436
349
370
670
636
348
573
369
536
449
680
612
471
545
255
472
484
466
386
559
486
443
542
122
358
352
93
365
212
555
568
633
287
317
675
555
463
431
461
513
473
121
305
696
519
263
500
98
454
765
370
476
330
505
391
604
562
667
716
244
455
515
444
515
418
143
410
546
445
475
488
646
440
228
430
533
457
449
115
468
629
432
364
454
496
552
341
524
499
556
582
410
308
436
623
621
373
261
662
368
395
383
498
772
356
404
522
510
480
494
570
449
632
624
409
464
479
344
456
544
439
596
654
464
522
282
633
616
635
476
593
367
598
351
371
619
433
538
275
474
297
399
513
258
238
542
606
467
697
635
300
629
417
432
395
590
599
317
592
553
340
397
328
448
484
524
379
312
306
679
559
425
505
433
517
429
525
591
161
489
520
534
379
330
549
452
586
617
524
528
571
394
279
567
520
499
638
683
621
244
578
623
431
371
508
778
94
376
739
477
542
402
435
622
457
636
351
695
562
323
526
530
583
482
481
508
557
316
486
749
524
405
393
529
576
303
545
439
295
693
406
471
451
381
508
0
94
567
510
412
405
430
480
621
582
555
697
601
213
241
335
444
595
546
500
493
520
434
535
421
401
455
420
547
632
290
678
635
590
393
430
522
367
350
138
559
457
536
267
546
346
436
304
577
335
628
447
643
696
241
497
481
398
387
460
519
417
570
460
374
598
710
414
549
429
554
700
0
566
487
710
373
587
519
519
425
234
253
486
649
758
206
501
447
678
411
432
407
382
459
469
624
654
685
610
533
528
431
216
388
309
515
519
485
336
308
412
184
499
517
489
419
623
640
655
333
591
518
529
577
392
380
531
521
613
278
282
453
675
575
351
425
373
731
541
571
698
606
429
552
435
396
474
413
260
509
557
0
733
701
542
284
521
553
288
368
463
28
150
537
347
570
453
562
693
444
485
697
336
592
349
443
519
328
0
384
358
413
361
392
378
509
268
597
590
287
578
172
663
0
469
416
723
567
547
521
566
152
536
577
674
722
585
474
487
145
286
739
694
649
539
492
442
507
346
354
407
287
377
493
652
375
728
721
668
437
492
260
660
524
616
389
447
563
554
486
602
657
559
401
704
565
569
251
249
610
217
414
654
388
468
425
361
306
530
562
351
217
631
497
357
716
482
327
611
459
459
467
303
162
348
625
322
456
283
454
683
560
555
442
456
458
531
696
311
197
470
582
404
426
457
536
472
128
371
479
533
396
560
394
496
503
419
236
472
469
215
374
460
544
310
364
678
540
479
380
479
301
343
438
474
478
668
504
386
459
522
361
68
610
595
385
650
588
656
737
430
308
443
275
384
435
549
555
550
588
452
640
704
577
487
471
549
101
385
405
337
406
601
330
498
260
607
393
380
563
650
633
678
518
474
590
442
435
488
153
519
573
612
396
476
519
586
461
448
707
457
168
180
520
562
336
288
333
504
545
331
600
481
541
447
362
647
52
535
452
548
650
373
630
451
747
346
467
454
310
634
547
363
560
393
294
423
506
530
435
594
425
652
521
634
518
549
713
516
548
517
344
254
484
368
466
453
640
541
541
350
556
456
356
506
689
410
520
554
626
349
486
274
559
593
571
456
266
175
0
461
575
632
385
510
436
652
354
235
692
643
465
757
561
541
565
481
540
441
669
649
186
503
409
481
524
313
361
533
464
595
535
475
617
484
264
470
0
635
517
389
634
608
498
366
601
579
629
614
579
122
500
371
641
595
526
527
538
587
216
518
643
553
453
524
497
375
578
555
537
558
594
457
595
549
111
615
562
469
479
497
449
415
627
456
371
235
671
252
335
352
469
88
199
468
610
611
614
390
747
438
490
482
245
493
554
635
309
245
475
391
365
523
486
560
641
496
548
680
343
203
636
406
629
389
493
485
441
232
142
421
607
424
697
611
439
642
412
459
407
434
456
411
452
747
554
274
104
497
724
483
640
425
582
449
518
446
436
504
613
339
584
375
479
535
645
730
595
480
215
478
531
454
539
566
455
159
514
676
392
487
654
381
383
564
402
155
324
578
633
483
314
557
572
601
352
765
346
437
364
557
512
478
271
610
572
197
455
251
532
598
588
453
675
454
283
542
671
379
713
469
514
603
45
285
510
270
337
575
628
463
319
438
489
573
409
562
460
454
657
700
355
548
553
536
584
503
599
220
454
389
665
383
299
282
657
546
765
651
341
739
386
686
458
158
531
520
565
428
601
375
699
743
470
219
493
404
384
611
447
247
520
412
439
649
467
618
598
158
528
471
599
326
546
440
567
135
518
449
371
428
621
603
509
578
442
671
595
527
206
518
315
565
549
384
387
558
338
469
441
454
546
424
598
603
605
472
613
356
492
316
517
317
314
144
470
471
577
512
317
281
0
557
64
541
684
640
650
533
611
595
453
274
364
532
534
483
292
455
664
430
679
545
350
500
473
457
462
599
355
574
401
707
426
446
530
585
317
597
508
411
266
203
245
569
468
578
497
422
470
462
467
593
518
559
266
489
518
379
594
646
427
667
402
606
554
540
680
728
525
490
276
407
634
284
590
646
630
479
582
333
324
410
475
0
324
530
507
693
328
440
489
610
538
565
501
362
554
58
370
662
375
454
547
536
273
564
443
358
528
534
552
662
494
535
64
361
483
394
670
301
304
271
352
606
628
685
410
506
296
596
517
403
375
465
431
510
295
571
479
602
345
411
383
586
121
445
640
663
255
341
679
607
453
611
627
325
615
577
500
585
409
593
458
335
426
615
425
427
532
561
398
738
768
560
542
446
500
631
590
557
471
488
418
426
481
471
234
395
434
360
480
736
549
219
373
494
509
451
405
410
589
459
474
685
337
0
350
301
416
663
559
523
0
528
477
489
493
566
410
450
526
605
656
401
282
495
564
241
384
426
528
503
523
470
183
262
558
584
135
424
537
447
488
751
502
462
601
189
359
519
457
473
277
623
599
484
711
719
301
661
686
513
484
426
539
571
475
435
232
598
227
595
622
505
642
464
238
563
492
490
324
304
520
619
375
675
574
328
547
413
400
709
556
480
587
400
417
468
689
253
273
432
398
442
394
464
673
582
658
773
552
645
580
405
492
630
706
296
397
373
593
46
440
544
631
666
518
503
675
466
691
225
618
478
317
437
600
650
635
408
679
430
540
433
480
486
708
239
160
534
233
549
420
551
462
374
644
441
508
547
614
710
364
621
711
608
579
638
460
611
276
440
464
304
602
581
363
499
365
350
452
626
271
563
299
516
419
659
416
530
556
629
510
518
540
377
458
489
362
523
595
642
593
577
291
535
472
381
659
110
662
343
531
558
521
660
486
498
520
589
287
668
657
496
573
673
355
703
441
260
711
361
676
301
657
422
529
332
522
288
538
503
452
496
437
471
547
540
0
465
393
452
646
619
387
634
361
374
695
399
479
421
322
382
270
421
140
498
203
462
493
509
508
471
696
363
598
415
523
419
437
378
541
302
653
426
522
444
454
150
572
120
498
251
437
176
429
599
503
629
453
502
614
567
497
456
400
334
628
437
249
664
534
660
265
639
403
515
400
609
425
469
363
631
407
359
347
226
544
518
534
498
656
507
386
668
73
513
524
445
506
242
346
545
696
369
481
517
437
324
604
300
542
133
305
578
451
335
687
360
349
450
617
608
606
563
509
24
416
536
485
428
376
426
416
468
156
289
513
524
416
455
648
579
550
577
206
498
677
559
270
508
606
138
533
298
431
553
565
424
450
425
48
624
559
458
331
597
530
339
593
268
510
451
452
452
155
403
592
321
492
522
577
219
565
422
466
451
523
135
300
413
475
497
735
137
489
650
579
351
442
431
635
579
454
226
519
49
441
643
499
579
396
467
505
467
328
624
384
644
310
561
312
576
535
577
556
541
614
577
346
231
492
533
259
199
677
462
575
262
399
450
470
393
276
149
430
531
709
619
340
547
565
583
421
260
542
650
529
619
536
352
649
487
547
626
565
467
554
101
565
648
686
515
144
427
689
436
238
486
707
534
502
618
608
474
398
324
261
420
667
362
250
679
520
223
111
264
129
659
310
454
451
525
601
402
686
508
447
669
221
479
293
487
350
272
227
19
616
673
370
250
632
476
439
444
544
354
105
389
591
366
521
515
559
429
611
302
636
518
324
0
496
640
351
230
396
664
427
334
443
491
657
511
366
492
347
616
509
479
21
568
699
290
454
632
435
380
629
377
593
469
547
552
464
494
561
540
665
151
664
639
486
606
238
449
592
563
580
370
552
515
471
600
356
599
415
487
497
556
583
656
341
548
697
577
538
622
505
472
610
274
722
447
514
111
427
585
323
613
491
509
394
538
266
604
235
271
619
521
489
635
655
529
667
132
601
615
498
562
476
332
569
418
594
517
338
672
358
551
669
429
538
642
181
623
469
448
167
653
531
659
458
511
413
376
383
507
480
564
356
454
489
319
501
280
557
313
299
629
442
328
412
166
509
359
751
599
598
773
393
639
420
502
397
160
400
466
496
471
562
603
567
452
411
497
289
622
266
268
636
540
326
367
538
631
592
0
428
445
605
415
616
340
506
459
600
406
450
407
723
492
498
420
492
489
593
696
562
547
535
341
294
489
497
528
237
334
445
392
447
497
562
605
512
332
482
103
554
630
324
551
314
379
558
436
556
375
432
415
740
75
555
562
515
518
595
733
479
486
468
558
359
709
608
424
645
440
390
489
296
341
503
641
195
431
609
553
425
445
159
662
311
543
380
301
554
463
511
48
588
593
285
559
554
679
559
590
689
663
469
358
236
534
570
625
321
289
667
394
591
596
627
479
550
677
465
374
401
228
698
583
143
324
449
708
404
495
480
621
630
321
585
541
334
134
621
623
343
453
559
761
548
332
487
351
524
383
459
496
405
617
572
452
475
313
556
497
381
674
544
601
317
240
482
522
582
629
608
294
630
532
601
222
753
394
680
426
532
571
485
289
557
619
260
367
505
513
450
440
325
520
442
461
577
508
518
470
554
677
353
184
343
338
411
436
420
635
500
106
505
566
630
576
654
632
406
476
519
662
442
427
500
516
452
735
443
363
519
500
484
474
433
512
401
416
481
616
484
288
520
654
154
583
557
520
430
337
578
689
309
539
386
562
397
305
451
688
517
412
398
502
308
496
561
345
412
429
456
488
679
434
601
651
489
615
385
268
571
519
482
438
661
317
493
509
492
519
430
510
752
53
547
267
381
600
393
526
287
399
395
544
451
277
398
360
599
646
486
390
552
565
449
651
359
516
384
536
434
515
578
300
642
575
653
545
746
478
399
397
400
431
349
471
570
315
485
241
732
493
316
588
643
521
477
631
571
622
545
407
423
286
422
475
550
551
424
343
645
406
449
684
291
341
571
441
561
578
560
586
572
632
366
447
183
362
613
659
417
597
331
644
409
397
509
703
453
342
578
572
520
415
373
433
476
699
659
441
474
585
676
399
520
457
448
476
0
666
764
556
400
462
737
542
433
485
492
232
349
469
649
640
433
637
554
368
387
482
253
584
381
356
428
419
659
630
437
740
575
416
426
379
208
477
539
591
447
537
685
246
612
432
349
167
656
136
654
382
444
329
618
201
341
750
451
573
383
376
442
446
438
765
634
656
543
164
248
551
484
538
85
391
441
540
498
585
559
514
470
253
458
328
172
605
462
613
447
306
398
485
657
647
460
0
506
371
315
543
256
451
311
671
698
742
545
505
312
297
483
675
615
515
630
486
439
549
365
403
606
615
582
563
412
426
515
352
454
570
447
345
457
562
597
510
493
616
464
515
500
716
363
498
609
422
302
453
340
321
773
458
508
611
542
513
399
604
556
470
203
437
470
284
637
217
574
713
604
540
657
278
231
492
504
583
667
371
544
519
611
449
239
551
613
504
497
650
587
717
590
597
569
696
427
420
628
544
707
690
454
552
572
345
464
534
519
557
173
128
592
376
662
526
304
463
557
637
281
564
311
467
457
230
360
0
73
451
414
270
712
339
537
403
546
611
444
743
515
543
560
365
372
393
726
391
596
682
568
276
468
654
536
557
497
518
597
233
437
563
471
431
570
346
425
370
685
662
335
522
648
521
569
373
295
329
415
408
652
459
517
363
272
431
419
470
642
160
285
478
557
529
464
687
415
374
743
611
616
549
515
366
497
705
667
353
487
480
560
495
477
539
31
466
338
627
410
646
442
367
423
469
570
599
494
537
462
369
609
684
412
342
639
415
515
588
612
618
410
499
181
581
540
407
564
580
322
478
422
423
94
380
671
560
660
353
278
439
437
741
417
306
377
377
543
549
491
342
701
421
347
417
533
456
107
254
430
668
450
576
257
599
341
527
300
675
646
639
552
530
592
637
518
654
125
742
280
308
557
216
219
494
564
713
476
535
648
559
322
538
445
194
339
467
382
445
454
443
455
567
514
652
520
705
480
539
505
640
449
452
562
443
546
470
498
451
488
268
484
156
643
471
699
450
491
526
627
407
327
416
331
657
403
426
697
337
93
534
771
608
360
528
173
434
505
623
385
58
653
674
422
626
614
593
422
246
538
483
478
618
619
501
665
319
418
310
541
449
429
619
436
524
481
612
693
596
668
481
547
525
637
335
440
531
484
416
474
563
489
392
480
427
422
567
421
558
342
433
533
401
668
447
595
432
476
708
652
513
558
344
518
250
713
610
98
456
221
397
432
442
405
585
426
255
621
550
312
506
480
496
434
592
326
391
684
440
501
618
543
508
541
554
326
464
242
601
562
617
384
595
402
454
507
396
516
477
425
361
493
618
557
475
457
732
449
217
497
0
446
632
443
624
295
547
335
648
480
485
717
624
574
165
401
720
0
565
364
648
660
369
373
450
485
563
349
561
331
712
228
361
513
614
429
409
305
496
615
468
437
517
468
699
277
482
307
394
474
478
538
354
639
522
512
396
527
418
679
526
451
384
694
430
441
262
716
395
484
720
432
397
634
339
603
437
403
308
241
507
549
453
219
432
375
470
462
393
388
671
539
474
643
571
588
562
272
350
179
491
689
565
529
293
486
438
469
533
518
484
21
283
226
484
671
461
416
621
164
467
521
668
418
581
533
532
667
335
152
462
183
449
537
603
738
596
421
482
593
399
508
477
486
629
637
488
702
705
477
463
132
533
140
471
488
309
575
484
478
459
0
505
385
562
401
649
457
232
138
643
357
463
467
268
480
612
671
608
692
565
375
610
505
370
490
46
577
304
369
431
379
265
463
544
300
580
535
426
408
311
564
695
243
511
379
566
624
351
692
719
285
493
434
613
473
512
666
504
505
169
464
364
465
636
397
399
415
382
497
630
492
116
550
523
84
623
414
507
389
638
347
368
556
596
570
414
414
599
434
606
360
559
582
656
501
540
216
347
516
501
455
253
266
366
536
363
411
539
435
527
749
408
165
521
424
479
489
486
445
541
617
617
221
355
346
358
289
526
513
585
625
25
323
225
27
364
733
556
524
372
642
361
365
632
422
315
641
448
662
365
304
499
202
601
581
346
537
367
505
295
666
586
537
523
3
515
626
583
477
544
376
644
687
522
510
632
553
417
280
511
471
587
561
474
649
449
595
274
390
498
543
633
269
572
545
43
573
474
555
546
561
662
431
459
521
506
629
683
618
385
13
349
537
651
529
514
378
543
473
590
680
437
597
629
265
657
562
415
488
531
399
521
335
522
567
0
590
567
529
619
430
640
543
311
429
542
388
613
553
539
421
479
698
742
154
435
209
441
322
608
476
458
462
380
506
679
548
379
642
678
783
292
625
682
540
667
556
562
455
660
476
337
240
580
624
453
631
566
522
452
334
647
658
406
53
594
520
0
574
538
409
412
618
588
544
285
597
394
406
504
396
313
605
416
141
702
586
530
577
336
514
416
493
630
406
494
605
740
464
470
665
508
415
370
484
453
482
619
352
530
530
487
523
495
596
540
723
686
361
533
445
494
450
486
633
418
535
620
383
583
494
323
245
43
562
600
435
518
230
478
590
563
488
449
156
388
682
482
472
336
535
324
434
338
446
656
586
87
607
558
580
550
340
562
562
522
347
723
645
512
521
540
602
670
518
0
509
616
368
692
559
337
279
424
548
519
558
268
443
593
399
697
746
597
388
301
668
398
694
433
461
450
596
488
675
290
557
559
470
677
609
686
444
243
620
587
605
632
367
551
500
593
584
541
196
731
659
523
543
572
552
515
279
599
709
459
602
490
419
384
669
406
557
542
634
618
340
426
394
488
554
224
124
438
609
691
729
469
538
525
447
691
390
256
521
634
621
601
684
480
361
201
512
363
253
520
514
216
272
184
422
412
569
462
486
780
347
509
157
578
597
410
430
553
527
514
185
555
592
526
614
681
445
436
127
453
323
782
458
206
502
483
507
473
453
548
345
299
645
453
333
583
737
427
477
607
657
404
483
498
711
208
527
444
565
460
461
357
109
474
630
460
338
523
398
329
602
453
434
523
540
542
555
592
227
510
497
590
689
362
641
437
661
369
418
483
287
414
655
215
503
496
434
571
412
442
578
256
25
537
639
238
593
359
396
648
441
563
679
575
540
598
632
455
617
461
705
524
406
518
309
464
583
603
505
521
591
570
691
608
334
183
338
339
592
408
339
499
368
404
479
581
476
494
512
375
506
622
416
557
505
370
321
648
395
141
590
489
590
440
673
441
317
25
467
620
612
730
466
693
420
741
400
705
617
331
338
575
289
445
431
512
676
274
488
663
508
640
702
496
324
523
775
490
540
498
661
602
406
585
317
585
379
546
553
393
593
644
632
409
570
499
502
600
474
475
187
253
498
534
530
495
528
207
556
352
395
634
395
304
107
258
404
268
460
191
548
0
310
421
506
461
433
358
586
503
529
353
168
642
0
452
243
287
513
389
574
329
582
576
539
576
588
466
531
352
372
447
281
655
516
257
357
611
440
458
510
554
374
573
585
660
495
662
403
140
542
363
546
525
549
474
360
583
455
707
454
542
477
366
362
386
551
346
533
473
315
64
251
631
533
300
557
305
397
25
587
215
549
762
391
359
391
670
421
611
359
287
495
506
430
531
302
488
465
576
510
558
125
476
750
319
370
494
451
448
418
96
741
325
457
440
525
621
200
551
526
506
580
311
546
258
524
631
417
578
268
512
634
456
632
394
527
579
372
521
108
307
416
520
210
539
623
593
616
555
673
525
563
581
585
550
666
352
413
415
445
155
374
410
255
299
550
618
501
334
392
332
0
67
348
114
627
705
584
105
477
381
443
402
562
455
266
450
548
554
632
432
416
708
422
434
171
607
463
640
180
506
254
508
235
434
387
531
502
671
534
777
519
520
537
457
602
560
575
510
392
379
165
686
622
628
599
507
498
397
425
713
422
346
485
540
510
572
693
460
656
558
24
418
492
641
525
244
409
569
407
0
143
650
642
445
306
561
737
347
576
368
332
440
553
434
634
742
564
490
464
271
328
510
648
553
616
511
510
500
567
383
447
586
463
476
135
233
208
583
601
510
644
359
503
637
599
431
492
159
385
519
501
345
558
553
610
262
532
397
634
501
509
557
623
577
506
341
574
98
403
422
450
471
288
577
551
455
498
411
348
427
391
573
627
601
518
606
320
593
357
427
86
476
599
573
333
464
596
544
345
401
289
539
337
529
518
263
768
480
686
764
412
585
344
391
421
479
466
464
566
529
519
164
540
465
733
262
241
470
656
104
337
634
226
295
489
339
516
538
525
542
499
512
617
615
426
473
542
515
558
416
486
351
391
631
570
702
520
335
344
611
626
451
0
698
130
593
374
515
476
633
445
524
464
440
629
509
416
347
495
568
343
580
334
671
258
583
458
422
558
566
352
555
597
649
494
432
306
638
443
433
358
356
333
509
387
591
262
739
459
233
626
492
702
570
547
549
347
464
512
475
432
466
592
387
550
351
585
424
667
673
71
562
557
586
607
614
410
527
583
627
555
635
612
518
732
684
517
641
472
345
379
611
0
711
618
464
381
392
288
540
683
528
473
670
564
71
573
599
314
247
406
499
396
577
557
473
490
568
652
591
575
414
596
391
708
509
556
615
528
451
533
327
599
526
722
643
437
584
189
628
566
510
413
339
403
579
593
526
633
446
303
352
451
607
524
639
350
578
687
512
743
514
575
429
497
73
413
415
242
562
553
124
485
383
538
471
481
704
0
362
464
490
525
436
633
326
303
452
577
489
445
499
711
659
689
194
688
735
425
465
638
528
480
667
122
184
602
342
567
428
612
520
587
527
586
504
450
436
589
451
514
465
595
458
494
214
244
615
427
452
325
507
391
433
728
538
422
625
675
426
472
527
564
273
503
519
566
417
162
300
666
387
224
275
200
411
449
633
558
510
310
689
501
365
134
385
573
444
502
597
629
500
338
378
518
276
0
552
626
510
589
320
465
761
573
528
676
564
353
532
224
524
352
661
504
564
631
369
576
634
634
509
378
488
464
422
595
516
719
433
527
444
515
458
625
138
510
589
572
177
599
458
612
475
537
264
687
544
184
723
521
595
501
476
704
370
228
169
270
526
141
630
390
408
352
585
136
288
564
483
596
536
530
619
555
712
451
459
395
579
428
749
331
403
258
521
448
475
347
450
449
629
366
527
645
325
523
500
199
680
413
412
424
450
303
457
601
446
639
359
327
489
475
454
598
697
426
557
487
450
516
375
180
601
376
428
622
568
448
554
231
507
388
302
501
509
370
668
639
424
498
503
722
284
487
510
514
594
284
608
77
394
578
544
564
499
620
352
176
563
661
393
325
571
536
163
433
340
477
772
411
644
298
431
601
493
377
632
696
436
444
361
650
506
714
104
444
437
605
484
473
627
600
353
426
549
529
531
489
518
223
733
601
640
534
695
556
570
741
547
676
616
363
377
505
387
681
499
444
368
321
637
0
283
524
418
555
644
735
626
511
582
393
135
506
340
732
538
518
401
209
554
667
708
509
544
672
394
549
351
182
656
448
469
726
100
233
460
458
158
688
463
307
345
470
329
309
654
463
0
493
332
267
510
347
274
344
458
581
583
484
493
483
658
452
360
515
435
591
498
396
725
93
483
545
289
581
519
484
534
421
461
463
340
571
241
696
723
759
551
586
563
559
676
421
589
490
344
337
427
498
429
505
517
551
531
433
365
177
352
297
370
616
623
737
396
235
495
681
405
401
501
719
486
535
506
565
252
293
632
452
403
518
596
313
470
348
340
588
457
651
644
285
394
633
640
331
548
432
585
592
123
324
325
375
686
553
377
331
498
380
577
504
346
407
366
496
178
356
176
444
327
282
629
501
465
510
241
338
439
540
55
472
394
502
573
597
413
364
250
351
248
412
450
492
533
513
193
510
570
404
511
381
569
408
697
613
468
669
422
511
594
358
610
488
782
510
639
300
512
138
557
449
342
528
560
494
493
349
414
354
636
129
324
260
423
534
321
526
676
287
89
18
456
510
331
462
517
614
594
398
488
461
133
470
531
579
336
471
352
591
498
477
480
296
463
343
585
528
445
410
180
502
690
755
463
452
463
539
387
520
463
673
498
465
694
366
304
428
353
652
374
304
502
516
153
514
470
711
616
564
594
429
412
599
463
508
448
651
616
541
402
565
415
438
538
517
443
574
613
403
494
277
324
376
509
517
303
506
262
296
570
114
366
617
689
320
492
359
104
539
546
425
668
713
696
551
407
708
540
631
94
354
456
630
426
576
423
487
422
567
617
670
511
527
398
422
642
280
471
511
738
182
610
559
611
415
328
240
338
602
412
356
389
220
373
447
532
520
214
441
647
628
500
730
530
487
437
457
519
743
739
558
454
618
489
122
625
549
45
543
395
520
470
466
629
436
481
564
493
387
273
395
629
416
502
564
410
549
616
452
343
283
711
557
503
586
438
522
353
639
473
491
573
560
691
532
533
437
374
653
554
570
636
744
539
401
531
143
361
514
616
747
583
424
494
540
379
365
635
382
616
372
364
446
538
667
517
422
568
357
390
194
675
444
419
496
547
705
511
503
385
0
480
326
486
471
381
397
546
346
441
533
500
394
389
663
463
516
668
512
638
533
493
314
650
328
363
559
368
458
434
593
446
418
517
340
484
230
764
535
429
627
307
493
460
546
702
743
465
545
347
590
334
509
326
461
558
430
583
308
574
482
599
535
301
550
716
467
558
200
712
623
338
626
475
479
575
573
484
419
565
387
545
355
317
611
447
461
552
641
488
655
672
546
556
372
433
543
598
491
453
575
572
454
437
623
442
487
558
576
409
379
412
639
557
653
536
656
345
699
600
640
420
443
457
86
668
415
538
399
649
556
573
506
606
573
324
295
722
452
676
532
723
614
374
443
383
614
300
209
372
657
502
228
294
450
510
498
605
437
96
296
281
607
543
507
480
524
655
519
407
684
322
569
296
662
626
449
710
490
474
292
312
385
407
645
471
605
237
549
508
285
179
201
397
575
489
351
292
335
601
262
514
512
509
641
324
728
184
514
442
441
640
393
634
413
383
510
506
455
428
678
392
313
50
609
451
236
213
577
294
238
537
586
783
677
179
620
487
544
485
406
573
268
361
592
402
352
470
619
435
474
533
625
416
317
544
561
667
298
502
501
652
368
494
504
593
465
571
278
403
370
499
278
621
468
571
615
607
683
502
488
573
596
314
622
388
267
516
440
663
410
465
457
522
387
229
481
676
704
727
554
371
544
400
686
373
468
457
577
350
311
214
487
396
297
523
746
306
549
407
341
612
361
473
587
267
594
424
712
584
603
351
133
550
629
565
338
542
640
194
544
442
464
625
387
412
343
718
486
427
517
483
565
432
447
412
500
398
607
699
539
505
444
536
581
549
478
628
342
705
721
504
492
687
688
644
729
523
286
98
463
368
253
436
391
453
515
501
565
104
573
553
678
520
309
467
538
564
442
632
562
512
530
420
558
730
173
378
642
719
60
441
335
343
426
367
449
279
678
597
525
608
366
487
667
307
653
373
314
117
619
491
511
738
216
608
614
542
509
406
467
334
316
330
580
698
347
632
436
505
219
715
455
501
449
150
354
611
393
447
357
276
0
489
441
548
644
346
477
512
93
377
651
532
200
647
444
511
342
294
563
735
433
590
605
576
277
543
640
614
512
541
362
509
291
668
592
460
360
290
414
500
646
450
0
371
580
205
254
517
608
232
349
405
304
463
531
575
374
638
473
566
340
225
535
492
621
356
671
524
379
448
632
415
543
331
466
673
359
741
313
601
527
669
532
383
483
351
651
731
492
353
174
463
665
281
414
666
577
546
407
187
472
374
706
571
647
409
550
542
726
356
558
438
330
418
256
564
500
633
357
459
384
353
522
584
657
427
306
194
527
459
479
572
573
593
747
478
163
425
402
321
580
522
377
621
446
557
415
523
742
594
499
725
514
660
278
498
593
139
583
531
472
41
346
487
777
551
512
524
717
426
337
552
625
508
265
356
765
498
162
462
585
538
427
508
530
325
446
462
382
352
569
119
250
178
498
377
583
628
167
320
668
539
334
604
491
394
411
290
412
576
705
668
649
276
474
684
417
519
385
709
184
263
438
578
413
383
627
473
484
505
563
420
412
487
392
557
426
293
583
547
430
488
267
520
670
258
512
328
288
342
552
104
247
546
204
628
398
367
476
615
533
204
519
439
579
644
492
561
337
258
258
361
468
600
429
398
354
446
428
461
387
368
280
360
544
293
569
435
550
475
658
678
402
406
540
538
718
479
404
498
657
697
531
588
488
647
699
687
492
318
0
685
648
329
545
263
419
662
592
456
517
494
432
434
430
622
505
0
337
342
275
276
527
486
325
683
498
545
689
269
420
591
237
164
413
300
467
482
426
393
454
431
395
600
315
462
658
350
494
481
61
241
516
558
410
241
510
18
689
500
507
455
603
294
458
343
652
525
654
150
386
562
454
573
603
530
437
0
571
470
585
582
543
452
400
557
326
305
263
218
517
416
548
386
482
0
476
537
553
387
423
137
513
644
381
635
356
523
549
581
478
511
249
654
339
0
516
683
447
291
420
428
448
404
421
551
487
548
692
430
458
528
461
695
695
419
591
83
510
515
345
304
559
472
540
376
568
500
585
582
436
541
480
540
496
574
499
538
595
525
388
589
533
459
573
477
536
591
366
462
468
532
535
552
430
342
344
396
373
559
465
449
119
112
502
609
330
389
281
571
603
454
611
467
476
645
266
474
438
566
637
514
417
556
543
541
552
369
377
227
370
317
465
377
350
449
679
585
475
293
463
453
117
550
596
517
531
463
313
671
695
334
413
479
419
179
467
613
554
584
290
302
501
562
0
490
319
516
520
171
496
397
526
278
264
595
512
515
169
454
527
460
422
628
444
730
594
524
629
634
269
427
633
590
353
393
642
443
532
255
452
520
689
118
629
417
714
573
480
353
633
506
476
444
516
321
556
432
388
150
642
428
516
502
567
585
515
584
410
390
549
614
447
455
261
564
487
665
461
529
716
610
392
272
234
262
394
404
477
531
495
556
683
557
471
512
424
379
566
498
648
449
743
621
528
499
139
407
740
461
219
422
100
656
421
403
547
516
551
528
638
401
409
252
512
291
595
393
145
747
371
626
406
461
677
514
391
318
517
690
389
134
478
568
425
370
471
321
556
399
289
585
328
716
346
364
300
200
536
464
706
343
543
757
584
578
472
497
546
470
350
517
416
660
434
620
451
744
427
486
703
520
418
453
376
205
478
507
528
685
556
174
548
634
412
596
212
771
509
445
471
475
589
659
555
591
242
405
426
538
353
460
414
712
401
456
533
179
268
670
526
609
463
451
650
477
512
465
519
632
634
425
555
504
608
360
474
344
223
434
559
606
507
420
415
566
334
430
285
223
248
549
472
733
531
614
601
594
454
234
198
203
324
550
363
362
546
442
635
61
164
293
491
692
236
413
515
225
477
474
420
658
558
521
728
597
455
0
673
604
459
630
179
430
636
638
394
385
566
554
412
432
362
439
578
439
410
490
557
701
557
688
596
592
434
217
704
203
480
494
575
155
708
429
158
590
218
489
495
581
514
202
643
658
440
442
547
487
595
598
358
270
540
190
643
711
543
557
341
550
332
551
333
413
451
612
474
698
576
623
369
414
630
341
630
242
668
440
656
317
49
582
640
652
412
466
482
510
651
393
497
247
593
365
482
603
226
564
563
450
283
520
473
583
530
481
373
149
238
718
621
592
697
740
397
481
377
350
482
199
332
595
485
520
140
664
0
408
574
306
148
564
709
493
567
291
463
378
700
494
481
534
391
476
451
135
566
406
504
557
549
529
506
304
339
641
591
437
148
620
595
189
577
646
454
236
544
394
328
486
535
349
474
533
378
562
518
182
597
418
609
394
299
143
437
518
540
347
264
358
510
336
295
410
530
507
645
543
510
492
545
452
718
337
265
375
643
618
424
377
666
424
608
659
641
479
342
637
491
107
459
583
559
464
511
370
452
483
430
515
511
165
460
703
562
777
432
660
736
559
558
505
505
452
516
459
412
532
283
388
576
393
691
428
391
422
254
559
560
481
687
347
504
655
240
472
654
686
393
740
475
498
408
434
592
631
412
538
336
454
391
484
89
308
257
688
477
381
351
335
542
577
476
17
596
664
551
428
398
489
435
469
235
484
383
272
291
351
475
550
438
379
669
481
380
538
659
467
561
615
515
528
537
384
563
673
439
620
538
380
424
705
461
555
291
556
446
612
593
624
411
722
697
551
662
527
566
440
280
302
392
549
503
694
601
584
387
326
535
595
572
663
266
398
689
296
606
664
570
74
552
450
725
278
507
503
463
564
595
290
259
489
192
400
421
246
621
602
718
518
431
637
443
441
489
507
739
206
345
590
358
735
591
737
703
618
655
477
401
511
430
424
493
572
429
441
416
480
386
713
632
552
356
557
685
482
445
622
227
613
415
636
495
556
501
382
244
584
449
313
482
712
639
640
492
637
540
441
436
460
624
361
540
379
567
385
513
499
523
551
439
442
118
491
546
300
298
216
288
567
385
322
619
542
306
739
551
719
562
410
462
597
530
575
462
312
610
208
396
700
352
674
673
489
401
577
215
443
513
396
573
465
569
703
601
643
470
638
495
535
294
575
461
209
449
479
483
678
568
350
352
479
664
549
583
406
551
632
377
535
560
325
638
526
695
570
707
377
161
124
312
548
412
394
225
729
578
548
561
574
730
564
550
412
739
627
583
542
390
579
303
491
621
456
194
277
652
510
359
535
466
427
491
704
179
451
473
505
625
585
470
707
589
576
438
572
498
500
564
351
432
477
494
467
418
684
428
532
334
323
746
444
553
574
579
661
576
496
602
572
178
364
632
500
644
416
577
398
535
637
693
522
434
578
611
664
527
660
688
478
273
388
694
304
706
542
449
720
615
491
681
574
525
491
366
548
449
514
356
276
337
394
328
602
265
439
431
393
366
285
528
569
553
389
247
642
239
556
49
613
722
447
632
562
449
484
349
599
444
651
623
638
470
253
516
596
723
454
571
638
610
479
715
661
528
597
590
390
679
410
439
683
140
621
501
493
579
321
410
489
467
488
559
477
570
432
371
464
407
381
556
371
539
634
410
585
535
670
352
413
304
533
348
495
610
446
381
596
366
518
470
737
323
540
730
550
471
549
499
545
384
467
769
339
619
680
474
19
501
85
403
463
611
503
596
414
325
424
619
592
488
577
692
307
253
676
637
584
530
301
515
409
543
542
210
407
466
191
495
235
469
320
596
474
283
523
584
643
487
368
679
632
427
618
632
662
739
280
623
328
571
446
383
578
475
576
615
512
451
440
510
530
549
572
316
530
582
242
381
494
722
453
479
598
488
623
634
288
504
542
312
575
641
522
454
721
445
176
527
486
524
418
333
488
406
514
567
474
73
357
280
524
358
515
591
451
474
542
539
528
483
402
397
515
527
459
452
419
489
587
467
686
583
376
648
570
487
568
661
590
265
344
64
392
127
409
524
671
444
475
373
306
651
388
557
637
507
509
295
76
543
418
629
93
446
457
746
292
443
527
574
516
418
207
356
546
431
658
730
741
370
305
434
438
496
373
439
394
239
529
467
650
452
602
344
520
477
308
539
535
366
480
634
430
160
469
502
555
435
656
257
782
483
340
372
508
758
489
444
263
458
586
383
611
197
489
342
393
472
658
566
397
536
430
657
293
603
495
548
473
331
358
434
410
586
510
604
461
766
638
687
458
326
409
169
623
266
352
523
539
590
467
472
25
554
640
523
579
600
294
515
382
427
369
66
670
489
606
416
100
541
373
37
517
412
586
255
579
533
645
498
427
506
397
576
442
668
522
467
504
527
485
490
489
712
595
503
0
441
410
326
432
760
498
416
707
620
658
408
599
337
477
614
450
576
181
511
111
473
316
430
588
335
717
400
630
404
528
624
568
516
687
482
636
194
545
449
446
569
663
450
679
629
507
300
556
209
486
489
539
597
532
429
368
465
654
731
324
534
486
479
604
530
409
563
653
688
213
342
522
584
421
633
431
595
506
493
709
576
514
550
627
225
464
452
402
358
479
653
340
715
534
532
734
378
497
366
574
491
664
688
358
500
514
409
583
464
546
616
682
246
428
459
688
354
672
384
441
383
151
667
489
509
432
373
550
0
375
555
383
560
553
447
333
388
460
481
500
571
318
657
148
454
460
573
580
270
212
532
396
596
438
499
620
557
764
600
274
541
352
583
709
633
626
194
505
773
562
421
598
269
331
555
726
414
515
307
379
585
406
555
375
508
615
449
448
625
347
623
533
562
523
0
440
535
457
158
316
684
417
457
520
404
475
508
291
681
468
573
423
404
446
396
476
545
483
358
581
400
627
373
574
521
303
496
529
467
177
569
583
724
444
580
403
591
84
260
275
461
353
170
457
738
104
620
284
380
405
511
583
455
563
370
504
398
611
376
497
655
484
447
436
780
292
701
449
455
653
524
455
452
271
509
568
589
762
591
381
462
562
343
335
410
389
367
413
445
418
630
357
536
744
467
377
484
509
678
406
419
267
569
430
347
423
231
350
339
555
583
560
292
431
174
692
464
204
395
545
111
460
590
421
764
416
433
685
622
729
491
509
480
456
679
718
406
451
576
559
775
187
351
598
467
715
389
286
459
653
511
572
165
488
630
627
306
447
620
420
582
561
529
590
619
535
568
611
637
205
456
485
268
543
361
539
513
350
682
574
567
453
552
503
408
670
571
575
343
498
476
620
483
585
573
544
454
577
545
438
545
384
447
611
615
500
425
276
546
414
272
195
478
568
402
635
388
625
557
182
252
349
432
477
277
625
268
488
222
365
327
477
320
296
709
237
443
548
495
592
372
54
393
609
396
391
676
356
443
550
375
624
426
476
476
329
604
506
586
621
580
266
408
382
560
480
389
341
225
434
468
595
671
370
384
568
496
236
689
578
393
471
524
433
240
466
646
571
386
575
458
268
607
662
279
646
195
443
239
299
455
114
182
588
218
523
509
252
583
634
513
704
491
230
592
543
389
432
434
497
311
610
361
598
598
506
600
603
687
438
300
565
389
472
396
679
496
497
641
526
568
591
405
568
531
168
649
460
403
402
401
696
641
536
312
237
669
266
322
437
230
157
532
505
203
443
390
347
560
593
411
569
323
325
454
465
760
493
682
0
523
528
554
515
430
564
580
569
441
379
523
545
499
553
454
507
444
678
302
425
241
496
412
306
495
487
384
321
497
560
541
386
478
142
452
464
694
716
379
602
165
653
583
494
537
0
466
520
232
465
548
505
563
419
403
313
567
348
377
517
342
339
518
502
590
549
656
340
396
562
558
547
527
235
381
433
375
698
641
397
561
651
662
537
539
613
374
545
502
515
343
464
583
373
561
379
461
550
346
510
398
474
547
407
468
344
214
365
660
370
469
428
464
728
586
504
593
484
492
533
495
432
439
365
371
62
724
516
607
159
402
317
518
428
151
541
440
405
466
450
309
454
406
603
489
600
624
682
361
408
639
624
291
642
321
449
368
557
533
171
248
275
343
453
360
505
663
346
572
400
175
522
414
432
585
691
482
634
544
540
456
550
301
527
658
570
270
515
497
354
392
530
413
468
353
630
602
322
738
483
551
572
499
548
60
456
538
464
590
189
566
705
439
497
747
620
175
574
434
363
764
236
262
447
445
658
523
78
429
494
653
585
635
605
429
403
552
541
645
180
476
460
616
628
573
571
341
578
502
466
468
379
288
666
608
48
548
245
479
684
269
358
416
709
432
591
483
595
289
433
439
305
509
344
279
603
395
198
575
375
603
602
521
307
411
405
611
484
596
576
427
550
400
603
525
260
655
632
747
42
398
294
468
635
619
462
528
115
459
644
318
507
267
733
502
511
381
657
358
372
568
167
373
337
505
716
346
621
694
600
99
492
230
469
647
506
551
354
646
514
447
534
517
530
459
355
506
523
442
557
584
526
418
599
640
235
650
435
335
392
441
436
454
470
373
593
559
599
561
539
403
410
527
253
608
633
601
546
389
567
625
527
515
460
535
256
734
476
419
349
607
537
491
563
533
539
389
538
611
436
602
672
718
621
751
605
505
607
455
419
475
663
554
395
555
570
290
467
405
125
437
646
518
729
555
464
0
412
196
338
108
562
359
353
336
441
434
120
531
631
480
0
518
586
606
571
67
594
487
430
626
522
471
317
368
521
553
710
727
719
454
538
703
612
391
530
601
683
277
455
466
666
516
721
469
485
489
542
566
62
536
265
604
640
488
462
505
671
634
550
536
611
601
412
411
778
566
519
565
502
201
551
444
221
390
415
612
373
411
345
243
570
582
512
479
558
300
563
442
642
434
708
680
622
413
396
425
594
573
517
544
506
300
328
363
576
350
593
368
426
433
674
356
436
672
470
619
469
686
569
398
216
664
546
605
404
417
479
357
99
608
208
392
490
472
517
535
677
512
350
616
226
574
598
527
665
580
430
542
93
654
748
365
508
778
548
730
403
434
300
655
365
505
150
561
757
510
522
507
438
682
684
0
379
454
547
688
704
472
520
249
777
491
557
456
592
436
660
482
553
607
441
325
487
466
595
365
483
244
205
626
490
537
613
461
513
436
648
525
614
585
422
532
229
732
556
548
572
559
440
326
560
404
586
646
463
597
431
562
410
524
580
89
406
511
483
676
501
326
394
307
424
483
487
153
713
452
464
512
648
391
449
415
286
625
437
0
432
660
400
566
488
424
604
421
657
332
215
392
650
704
628
547
386
591
528
531
743
259
778
375
378
625
85
525
653
506
280
345
689
322
551
405
492
425
473
162
457
471
432
367
330
478
646
492
499
482
428
449
254
343
440
409
620
510
451
469
500
333
492
502
480
508
456
359
496
469
541
437
563
580
468
279
499
438
319
604
464
517
313
449
526
545
530
721
601
515
629
635
475
461
429
544
652
523
398
385
610
399
551
514
521
380
591
365
485
458
435
753
395
554
538
525
0
657
682
680
327
675
542
627
513
554
705
336
575
298
508
545
664
93
335
639
443
363
639
380
749
467
574
364
521
555
380
222
361
513
531
473
405
470
538
323
461
305
23
643
552
480
552
616
573
384
495
545
481
739
319
483
153
493
289
569
660
593
495
172
500
459
363
512
393
661
639
681
782
524
317
464
493
337
523
692
610
551
530
697
406
426
437
488
562
407
192
209
293
592
327
137
677
520
595
452
359
517
686
555
565
384
548
335
523
340
513
714
598
599
585
536
490
493
663
561
310
507
390
431
508
415
476
533
312
530
533
515
226
620
564
566
342
452
163
587
520
267
131
174
437
384
616
731
502
327
236
363
357
97
530
526
554
411
695
659
227
558
574
403
313
439
445
722
587
392
144
563
440
290
509
509
528
289
645
573
680
560
389
485
506
342
578
634
325
164
471
609
394
514
611
738
0
780
481
381
610
758
475
368
443
367
487
622
720
625
666
558
365
582
464
418
552
684
385
401
642
338
460
465
586
524
692
367
358
598
445
310
131
515
407
133
465
411
299
304
387
459
462
376
637
675
531
534
479
566
607
727
702
392
518
258
231
437
334
725
209
294
576
721
378
591
471
542
507
356
553
696
441
529
574
606
280
408
437
526
450
333
573
241
498
171
440
44
478
545
369
574
299
524
599
753
393
448
563
236
468
540
365
545
469
174
463
582
495
260
593
397
543
597
313
606
674
450
404
535
259
615
649
630
413
541
599
454
402
568
654
474
557
571
584
544
623
630
256
519
466
385
388
650
748
573
400
353
478
477
446
527
313
532
262
410
370
567
518
497
342
446
267
455
484
93
266
251
514
549
392
186
446
736
369
334
700
526
408
578
723
267
485
448
547
495
464
682
411
450
515
608
615
438
502
591
441
394
643
320
547
374
541
436
549
258
705
194
539
513
448
491
469
669
464
476
265
685
646
578
325
329
324
615
397
418
652
542
334
474
527
593
490
485
204
382
472
255
492
533
504
620
347
382
470
712
520
789
509
295
577
437
533
636
401
505
362
316
576
624
251
188
682
5
445
385
519
200
372
761
548
480
0
443
662
703
398
586
553
521
342
536
512
265
595
606
442
432
715
540
488
521
587
297
465
9
461
584
673
355
281
371
620
429
680
409
360
469
383
0
446
552
335
449
396
783
0
661
477
543
377
770
427
626
561
616
477
419
421
334
434
425
238
372
463
509
459
699
467
554
626
569
701
493
680
381
521
560
641
395
85
631
279
715
605
491
469
674
642
341
381
533
558
441
430
80
536
499
430
524
516
245
359
386
380
482
0
443
490
653
390
654
507
324
372
443
285
575
451
87
352
370
462
592
173
507
378
491
361
78
592
591
452
760
515
399
594
293
419
531
387
626
724
720
608
339
41
583
403
619
293
651
471
284
390
535
668
326
620
373
511
430
246
405
570
344
181
395
541
577
263
530
397
442
374
544
652
312
269
402
468
482
491
497
722
402
739
601
436
202
538
576
381
541
634
268
584
440
486
458
606
415
283
422
695
492
570
420
240
521
351
501
459
480
734
463
441
248
658
626
509
525
572
315
599
514
246
685
511
468
590
458
502
537
548
504
504
698
246
444
460
411
464
648
497
508
586
722
500
292
510
476
420
602
412
626
563
635
621
551
694
370
718
657
426
562
608
582
488
174
539
468
234
455
522
506
676
459
499
13
485
384
611
259
678
704
525
416
685
521
426
581
622
418
197
486
582
499
515
200
208
364
411
510
434
174
482
622
620
665
250
598
382
347
536
338
287
580
455
695
622
327
522
555
597
336
613
512
432
396
695
457
473
398
633
393
714
751
530
403
440
602
516
371
459
423
411
171
316
762
548
541
622
314
397
489
313
334
357
593
717
386
315
393
473
459
445
406
519
415
648
603
564
494
524
258
363
383
373
614
306
520
522
657
757
578
493
423
712
406
722
488
481
168
332
387
573
479
601
437
660
647
525
460
430
459
342
400
664
587
583
780
205
160
620
158
562
584
439
306
451
685
683
527
584
463
542
347
469
380
590
309
487
265
358
398
350
412
481
353
518
399
644
415
440
580
391
589
598
478
498
783
548
540
165
638
631
295
621
532
453
505
394
347
713
106
447
588
400
621
663
660
630
322
185
528
452
445
464
559
554
314
550
590
475
294
511
460
420
478
328
271
606
585
514
422
300
449
700
528
530
415
485
669
270
375
315
654
459
564
532
513
504
720
431
570
360
584
417
551
602
572
602
467
424
466
326
465
506
591
0
304
321
562
565
563
360
514
588
238
512
600
560
725
498
78
550
518
461
612
629
624
471
528
352
528
639
611
303
627
393
422
462
469
281
546
502
493
491
507
376
508
721
713
288
431
590
324
538
467
592
237
515
559
422
619
578
681
425
210
463
262
575
353
588
378
427
596
387
488
586
437
536
317
520
569
462
489
76
533
729
625
504
709
546
490
622
498
552
482
423
533
596
469
440
601
449
453
531
630
728
728
700
525
451
350
482
30
406
379
494
621
454
455
463
472
646
543
649
628
378
587
246
545
254
478
698
499
159
621
603
568
435
470
580
565
363
501
674
546
229
251
441
254
405
381
533
279
396
479
571
521
420
529
360
366
334
322
332
542
352
464
682
568
489
494
546
528
337
506
622
150
551
704
513
365
273
577
647
422
17
370
537
777
576
402
541
43
352
253
398
577
333
433
474
725
631
468
417
327
519
426
496
530
418
530
541
409
541
428
283
423
555
395
689
84
633
277
377
0
425
465
462
654
86
484
562
536
470
417
529
531
272
507
478
307
417
550
58
334
529
563
602
536
665
560
569
665
474
519
460
354
423
441
319
0
607
244
568
517
604
475
632
320
470
573
530
665
539
522
396
526
480
600
415
549
236
591
700
677
463
648
695
616
558
681
580
0
214
451
362
417
447
535
599
469
565
620
710
451
518
597
361
663
516
448
520
614
719
625
480
546
548
333
549
507
462
620
0
586
481
507
439
467
341
609
475
506
399
622
167
455
378
414
394
603
606
755
634
565
359
640
501
555
314
704
568
360
314
530
464
568
518
696
169
512
356
325
476
460
420
720
613
712
584
559
742
240
305
560
350
172
472
485
567
679
598
483
389
584
483
439
379
687
379
595
548
78
543
316
391
688
345
496
379
512
604
640
731
576
501
483
430
733
550
261
612
346
547
556
549
440
358
572
599
576
550
430
489
648
419
467
285
380
451
282
320
301
596
469
426
364
305
699
436
699
640
301
595
432
562
596
513
504
709
442
169
698
727
529
532
488
688
493
604
442
516
521
545
387
412
372
442
416
500
364
556
628
359
129
614
615
450
509
477
361
328
671
443
561
501
530
577
541
587
567
508
427
657
603
495
721
545
174
510
453
342
441
501
621
427
353
692
459
504
747
268
476
522
616
543
735
603
452
373
671
590
374
403
328
560
294
490
252
553
599
529
404
510
315
406
497
558
452
343
527
650
392
414
575
316
160
512
226
563
652
442
434
631
370
770
594
353
515
423
497
502
269
557
455
490
462
382
221
698
500
477
433
597
592
323
463
390
380
528
586
372
633
467
324
378
616
591
539
286
332
464
366
185
654
539
691
608
599
406
426
506
444
355
630
426
481
442
602
43
706
547
333
467
614
490
473
310
434
517
159
439
507
394
164
582
464
361
167
631
577
377
585
484
244
412
457
367
316
593
278
614
539
465
406
358
376
525
556
775
479
445
558
576
558
696
300
666
293
411
407
410
580
282
0
494
666
431
382
483
555
570
692
354
533
512
395
684
462
391
342
511
525
441
694
702
221
518
602
561
458
498
432
686
589
510
325
636
119
460
531
626
613
600
366
551
746
463
549
400
588
153
54
438
457
408
358
435
427
662
465
607
685
366
523
550
565
286
512
454
498
559
644
507
408
611
352
588
695
540
688
420
359
416
523
678
420
620
438
455
184
467
511
650
619
429
517
449
487
396
632
595
565
255
700
633
531
654
285
687
441
315
430
524
608
558
595
349
530
570
382
0
671
466
335
343
598
508
591
774
454
402
0
584
551
468
522
59
558
490
608
634
747
524
314
494
352
533
636
538
436
562
384
313
637
454
515
443
358
566
422
658
448
624
523
286
580
167
621
595
500
633
291
608
382
576
604
294
382
434
219
566
632
672
624
488
455
541
315
59
456
538
632
470
425
353
424
462
570
573
351
564
666
612
723
449
549
470
571
291
541
485
409
420
686
549
467
265
623
546
581
463
462
527
488
320
588
614
488
418
491
431
673
452
647
446
181
212
493
343
655
501
655
338
456
267
499
566
580
518
571
602
454
0
190
258
570
536
363
611
460
526
400
564
645
435
532
445
0
443
517
156
590
370
422
532
609
688
604
492
476
585
467
289
301
552
404
81
541
616
519
531
427
707
522
424
556
431
492
628
685
294
481
283
444
678
678
495
557
88
655
664
303
526
477
255
441
400
208
474
218
553
484
229
566
447
486
220
557
594
601
608
391
232
641
429
440
323
584
55
734
229
542
457
446
409
604
408
399
474
406
605
621
328
614
562
622
378
624
486
459
518
370
473
0
409
576
597
649
311
646
712
416
340
492
476
378
520
215
526
504
524
327
593
122
609
535
228
385
528
406
370
495
542
491
554
442
452
401
559
678
297
402
746
493
471
205
410
518
481
245
475
644
389
621
497
401
532
541
367
426
358
543
582
471
590
600
479
435
381
466
710
671
282
619
496
429
409
470
286
575
282
260
559
484
455
305
407
28
572
265
530
500
408
673
629
651
620
465
495
400
768
443
582
441
731
582
315
404
88
334
438
382
368
511
515
639
525
649
0
397
524
556
599
512
576
487
95
551
429
318
413
352
497
362
213
623
381
471
504
418
568
405
332
293
646
347
185
557
370
194
319
508
195
519
413
413
547
671
644
659
630
501
585
520
426
522
565
603
561
567
423
327
532
352
491
644
590
560
274
300
530
472
310
397
425
469
492
507
521
629
372
457
305
503
700
565
575
694
541
513
564
582
332
680
559
268
338
687
230
465
451
628
393
249
581
222
515
233
456
474
432
347
439
468
121
723
671
559
159
419
670
583
531
371
609
475
733
594
427
602
131
460
482
426
404
451
616
519
697
547
436
761
541
448
346
413
657
329
678
442
327
746
417
109
517
461
421
601
170
613
425
597
383
776
541
387
522
394
356
610
559
486
452
648
638
738
381
333
488
480
511
716
407
585
642
435
619
594
445
416
446
649
518
582
571
405
540
453
384
476
663
627
609
482
529
487
354
342
498
440
642
552
594
682
588
655
522
352
544
497
466
333
463
456
620
701
493
205
692
422
762
621
406
332
315
459
555
545
556
300
258
479
589
528
505
426
477
424
722
540
482
591
519
460
188
508
641
561
578
588
503
454
450
417
88
366
397
477
350
636
396
580
535
620
345
387
680
497
541
732
271
370
588
353
311
134
673
338
548
650
575
668
203
461
185
518
508
704
474
381
630
563
463
436
513
526
728
402
311
742
219
498
624
510
449
501
607
313
211
549
542
472
517
560
582
364
253
615
352
649
574
394
283
383
500
665
453
480
152
483
655
436
174
583
270
642
629
600
498
435
582
343
136
520
454
298
441
430
431
567
398
362
655
699
478
426
679
322
333
608
488
562
628
321
464
516
595
501
430
467
513
511
625
679
413
262
625
456
661
521
501
462
613
663
734
330
473
371
562
356
472
365
239
455
448
413
559
273
544
184
491
379
576
500
417
533
233
718
712
364
488
229
598
747
471
445
330
656
691
621
374
448
727
356
623
463
455
519
501
224
652
271
634
582
456
389
417
514
485
730
226
457
466
378
460
598
546
281
355
415
334
734
497
551
516
515
585
419
438
352
434
547
701
404
409
479
570
503
688
504
546
651
298
248
590
663
586
574
412
309
469
265
578
627
274
681
407
580
242
490
664
293
362
486
413
528
321
354
541
391
55
415
532
234
544
449
608
582
676
732
359
142
502
296
427
710
491
350
438
588
627
501
649
639
403
474
489
384
400
634
442
562
319
527
277
589
197
520
432
699
766
129
638
716
464
314
697
138
412
352
406
519
548
229
324
367
382
605
184
579
304
555
272
596
566
635
362
223
378
468
544
621
399
438
620
424
417
556
445
517
520
456
491
598
683
628
530
717
453
439
519
569
698
529
74
527
368
482
508
486
326
537
483
496
535
530
718
487
533
178
596
498
409
307
602
547
410
380
497
537
582
603
353
479
549
560
687
491
504
365
411
490
451
429
356
504
275
399
511
476
472
530
492
532
240
514
496
446
322
367
439
495
476
471
528
501
629
515
165
689
226
552
607
559
443
453
437
605
260
526
504
434
566
602
695
493
446
646
497
596
464
469
484
679
130
597
433
719
243
419
541
382
576
502
408
287
380
335
562
445
418
404
726
497
621
235
447
594
506
493
426
530
415
324
493
476
295
426
324
139
481
577
652
156
438
613
272
589
575
194
618
246
632
365
553
408
430
687
471
666
273
481
656
454
578
242
419
535
0
330
383
326
553
267
492
440
493
591
578
434
558
441
684
639
389
272
345
548
419
660
16
442
673
436
45
533
267
381
562
547
707
499
475
657
587
661
578
218
501
383
270
161
419
522
386
683
561
95
516
335
525
576
224
688
406
430
406
503
646
508
583
385
543
439
480
627
596
415
571
511
191
620
505
288
230
285
420
466
488
545
496
404
449
470
556
446
685
473
400
407
554
640
491
448
440
395
511
268
485
579
450
419
452
626
676
0
391
550
753
626
424
397
567
669
338
628
436
375
43
362
549
740
707
510
597
660
506
481
282
402
512
189
265
563
493
359
653
597
619
574
561
50
551
480
335
556
462
686
495
380
638
527
419
355
459
165
561
560
373
0
394
403
621
587
439
333
409
371
202
476
578
613
571
561
683
297
465
253
590
387
436
101
603
434
468
276
507
510
363
258
591
480
398
565
293
621
541
524
314
394
539
503
524
394
418
533
328
353
298
541
664
715
612
716
675
210
479
480
590
474
588
348
212
583
605
568
156
447
319
329
632
578
608
321
741
477
460
406
667
445
574
360
548
458
343
637
556
526
510
543
697
579
712
597
529
524
571
393
490
438
556
679
601
635
317
519
550
428
547
27
348
633
472
387
718
226
393
582
329
505
381
492
526
491
532
577
441
528
479
508
267
632
521
217
352
595
427
365
739
323
657
339
382
461
564
485
491
595
386
610
421
646
546
290
307
470
395
305
585
669
361
670
492
514
588
214
532
532
572
510
641
142
349
122
482
434
403
518
391
578
390
684
620
288
462
577
448
479
325
546
421
573
339
645
377
374
598
457
565
598
421
583
464
624
454
473
477
481
493
669
718
248
690
286
673
381
329
630
604
681
417
321
558
449
481
216
486
418
703
363
569
571
662
386
321
281
354
538
504
379
544
247
475
491
237
548
386
532
755
396
488
466
382
545
567
417
523
625
562
475
414
364
506
667
485
350
332
596
463
187
388
439
597
359
622
445
539
450
481
556
323
549
231
665
369
721
526
647
518
412
718
645
235
566
391
578
562
722
527
341
471
326
415
490
107
563
198
469
719
743
610
489
172
286
671
462
491
0
0
375
762
518
533
514
496
525
766
617
616
498
519
377
673
421
453
646
608
670
504
636
550
288
488
608
541
564
281
374
403
521
395
236
547
732
301
586
558
644
607
448
388
303
418
276
562
356
569
547
743
478
449
512
520
461
359
614
179
434
713
572
407
359
522
313
0
363
388
383
588
355
509
390
291
542
381
335
387
785
697
368
349
595
135
499
542
569
376
367
478
660
464
456
376
424
618
583
499
508
399
547
230
488
450
704
520
0
511
460
641
399
459
377
518
599
531
664
517
484
511
199
451
479
649
587
53
581
565
714
661
502
660
315
437
301
422
471
164
311
530
434
511
681
572
594
618
281
550
188
613
536
536
237
345
335
343
559
638
481
97
222
250
532
359
658
343
129
405
366
266
643
458
543
421
377
449
385
0
333
551
513
426
527
583
451
256
457
598
774
350
571
431
123
510
368
0
326
564
549
529
498
420
585
603
540
468
397
669
387
429
575
452
0
576
455
364
464
606
585
718
517
497
457
408
696
514
603
383
541
441
399
502
552
407
671
421
475
0
482
501
491
300
469
428
555
562
397
672
450
644
288
633
370
274
518
289
661
325
350
462
583
532
456
535
323
452
483
0
219
561
438
508
691
272
197
635
283
361
615
493
365
0
571
469
469
680
568
503
345
664
406
412
551
517
375
585
471
515
399
618
580
303
679
697
375
362
596
506
584
532
474
451
651
510
351
374
564
664
406
405
367
570
299
473
335
565
518
479
626
278
397
414
456
444
640
358
317
286
301
428
500
458
556
429
302
133
403
338
536
674
550
541
622
532
433
483
541
701
429
383
46
489
564
244
641
497
570
615
351
681
484
518
505
484
554
338
342
0
441
189
338
340
378
603
573
366
587
327
311
569
778
475
735
413
626
478
364
555
626
432
316
383
530
257
750
387
605
738
638
549
197
537
512
141
437
251
577
609
596
371
460
643
639
404
388
434
462
476
531
570
294
458
527
389
492
223
489
567
285
431
462
660
499
532
342
440
566
238
490
491
222
563
453
546
257
532
378
284
620
487
534
568
306
533
648
416
703
719
540
347
571
705
331
622
676
561
395
438
539
237
372
438
629
203
536
525
457
544
588
549
482
197
353
492
573
537
302
604
423
597
392
552
501
328
675
355
378
213
441
503
577
424
608
560
596
303
656
265
567
497
577
476
327
388
616
418
625
439
317
450
487
228
195
443
516
235
186
0
374
491
569
554
398
576
430
139
576
526
465
468
393
564
587
439
548
504
356
502
332
495
331
569
269
479
415
446
494
497
419
701
516
555
712
523
304
521
614
549
629
556
143
502
612
623
564
595
416
515
352
434
424
413
312
317
456
527
565
597
299
535
444
427
614
670
681
532
531
425
280
396
489
403
197
536
185
578
646
312
594
491
674
451
599
365
464
591
387
483
561
248
398
507
401
480
748
311
668
644
660
568
558
485
528
593
657
542
238
0
633
527
491
523
711
569
507
638
529
500
490
410
573
633
515
218
521
520
394
222
224
612
468
162
741
616
613
630
502
413
495
777
425
574
487
723
603
603
178
453
171
506
520
559
627
551
689
592
258
471
511
475
681
485
277
477
627
457
504
675
464
433
52
545
526
534
399
588
425
374
537
337
608
346
309
617
599
489
605
629
318
540
527
386
578
557
731
612
531
491
467
322
639
633
516
612
642
594
454
649
449
424
573
512
358
371
548
471
252
449
538
510
295
546
503
528
730
446
426
590
529
563
315
629
719
681
538
576
500
493
402
780
184
363
442
536
436
571
490
363
0
237
165
178
540
638
109
216
636
470
591
169
106
544
490
566
590
427
575
484
413
505
463
550
523
331
477
622
640
530
570
335
597
599
414
463
349
473
426
637
571
353
620
304
446
500
470
405
189
651
596
614
502
350
489
766
123
501
482
522
535
569
523
37
374
219
373
370
619
607
229
266
519
474
453
224
442
624
374
505
697
619
626
366
289
470
525
236
668
434
540
511
623
519
639
536
537
290
525
720
528
615
397
493
417
349
578
585
551
625
477
222
376
688
384
556
306
506
270
461
396
535
534
104
728
241
351
688
459
613
536
553
488
514
448
566
583
491
585
526
635
426
284
376
492
502
459
354
558
457
541
639
382
223
179
385
738
762
606
739
415
440
297
379
459
378
594
402
560
395
533
460
199
392
622
715
583
527
728
636
497
407
581
311
591
515
573
382
725
536
585
389
520
206
572
254
543
646
552
510
409
753
618
507
441
366
734
510
597
421
0
583
245
419
118
351
568
579
375
457
302
758
545
493
498
629
452
450
651
650
590
454
509
574
379
226
346
561
415
219
313
88
717
430
513
272
591
377
589
427
422
577
559
682
342
348
551
556
393
477
574
563
237
666
503
586
735
440
549
410
386
592
341
594
444
643
491
520
431
402
783
403
606
330
689
448
569
326
473
340
606
494
278
302
426
448
527
418
478
162
545
495
368
473
623
185
412
554
535
283
601
478
482
470
387
585
365
463
295
522
385
472
230
146
608
277
215
241
421
550
614
509
452
378
456
635
590
409
381
471
180
541
315
418
447
358
574
417
584
185
622
588
261
547
484
356
425
242
356
742
667
107
405
307
450
419
391
538
516
467
421
603
726
682
617
441
474
493
540
445
291
445
643
449
351
484
577
283
495
570
244
350
552
411
342
372
702
603
470
580
260
508
494
339
442
97
640
650
561
585
724
490
482
716
603
654
221
493
678
236
363
462
80
413
408
337
375
656
392
586
763
540
306
457
328
355
614
348
546
565
313
753
460
508
612
446
688
589
473
531
471
522
595
479
569
593
161
366
366
457
409
523
486
474
159
339
580
501
531
376
379
492
299
634
259
776
337
313
614
565
421
261
97
179
544
597
297
472
518
203
0
687
345
149
622
407
638
447
683
594
324
672
687
630
289
644
263
724
572
468
616
342
532
426
446
485
505
492
531
452
568
635
618
542
493
579
703
653
411
232
457
277
587
552
329
476
470
664
319
518
510
256
553
106
420
523
218
524
383
511
359
555
595
480
612
518
551
388
682
379
562
588
607
472
312
602
418
516
411
633
385
456
519
390
338
574
497
672
241
295
490
705
321
756
523
432
343
737
630
200
468
521
550
732
327
366
716
492
518
267
403
381
430
479
639
742
532
501
365
299
480
523
668
428
509
566
507
445
618
490
541
627
352
503
450
533
400
463
508
471
426
341
417
527
382
303
605
424
400
324
537
366
295
520
579
558
0
338
29
287
573
526
455
409
82
250
723
589
592
536
430
489
399
78
458
523
294
251
612
392
407
657
703
488
435
600
518
551
533
355
515
698
521
576
623
331
523
530
592
527
234
560
399
238
623
449
344
0
363
501
334
422
479
590
365
476
558
560
524
679
391
444
556
335
548
444
477
511
492
708
421
403
542
605
138
580
632
303
534
465
601
361
517
422
572
590
562
498
548
402
489
680
617
513
559
493
504
394
538
325
359
0
272
702
231
451
216
334
655
474
312
699
434
318
552
533
705
375
266
495
669
478
523
370
488
295
445
426
456
536
483
346
403
557
317
246
466
542
322
462
597
426
525
621
515
573
670
595
256
641
247
219
352
707
663
581
257
534
506
585
564
491
587
656
543
411
681
502
443
474
375
291
601
474
388
641
576
451
232
573
401
556
476
175
712
504
394
511
629
63
260
243
448
436
457
346
617
535
397
331
562
537
404
425
606
554
546
244
419
625
624
679
332
583
466
264
435
474
337
545
576
463
627
333
604
558
616
646
407
573
373
541
529
541
585
462
650
633
566
412
212
671
397
520
406
564
659
687
577
583
466
396
488
605
480
623
517
595
483
196
551
588
635
670
565
501
590
271
525
395
339
378
335
509
661
736
517
503
480
359
553
322
517
497
455
587
454
585
504
586
402
763
381
616
649
642
572
539
367
690
299
260
521
414
645
729
447
430
583
496
648
492
593
247
489
497
512
545
501
474
465
453
468
313
515
424
546
552
344
243
478
674
457
434
598
465
472
234
436
588
173
628
540
606
435
750
665
507
381
123
343
577
691
624
737
565
541
437
489
50
367
599
334
376
590
449
455
377
654
594
399
392
291
607
599
403
516
407
440
389
444
461
463
437
413
571
554
402
748
453
374
445
249
238
523
387
585
373
734
24
348
398
518
407
707
658
509
371
539
564
481
307
436
537
579
424
499
209
295
528
291
463
101
615
70
268
601
316
680
571
464
699
476
569
587
585
327
441
638
654
384
415
462
550
430
614
498
497
494
703
600
584
485
630
655
600
158
456
600
732
626
426
41
490
488
671
430
580
568
511
443
639
482
212
526
374
603
406
455
553
563
646
236
446
695
699
506
494
714
218
654
491
416
529
423
409
685
343
557
321
329
630
414
400
649
726
31
425
494
555
422
391
374
464
355
588
538
404
544
546
363
450
484
549
442
565
357
389
410
502
540
413
507
488
507
601
562
637
490
587
707
510
436
675
463
342
516
582
768
520
485
435
329
651
225
740
546
612
631
693
266
616
51
564
253
205
318
25
608
420
413
735
507
619
514
513
570
650
648
414
409
402
467
292
240
346
635
429
349
439
714
566
674
452
568
390
445
336
230
638
478
450
426
615
691
569
262
610
569
361
444
496
373
618
472
494
289
483
629
402
347
687
491
620
509
474
363
381
572
442
350
462
350
628
278
434
306
617
544
464
499
605
346
328
618
454
513
724
524
485
519
29
661
408
579
462
564
276
302
564
304
251
357
400
362
443
251
433
571
697
590
362
567
328
235
514
423
484
468
558
293
456
625
431
249
551
588
632
334
720
520
618
472
197
630
640
511
466
529
659
396
332
631
424
306
431
410
502
323
189
538
439
322
530
519
564
555
527
424
75
643
430
357
542
513
581
579
572
404
525
434
615
429
624
429
528
371
471
746
441
122
334
523
705
568
529
465
109
497
603
585
390
653
359
272
440
460
364
305
491
438
552
382
245
758
498
672
719
454
525
587
645
362
514
341
575
497
440
344
710
472
634
482
568
321
575
584
654
537
300
445
577
535
634
307
731
472
749
513
403
299
334
402
637
310
528
458
423
669
445
489
236
387
502
396
487
259
660
285
667
394
434
307
417
648
657
453
587
529
248
485
612
388
355
474
281
669
299
624
277
610
398
269
536
554
403
524
562
378
489
729
474
500
597
487
195
760
454
537
386
627
227
236
656
463
541
458
209
461
275
553
553
522
580
315
215
543
508
654
485
447
295
512
519
346
468
441
417
520
525
568
546
617
470
204
194
370
397
378
315
492
500
662
463
254
539
548
573
576
594
430
388
219
559
475
382
292
479
614
532
551
382
485
462
356
521
705
552
369
313
500
511
277
366
455
432
435
487
514
648
609
664
550
496
461
511
472
580
546
491
524
609
364
108
468
305
575
447
527
405
445
548
509
246
481
412
355
409
566
542
585
585
308
374
577
655
370
587
482
651
394
517
622
505
710
249
350
412
517
526
313
571
505
275
269
498
488
135
455
616
525
555
298
554
463
603
433
439
379
308
11
305
347
594
516
676
484
326
0
236
365
441
569
394
392
483
730
545
554
578
462
415
471
532
663
533
484
387
249
628
626
523
408
458
529
454
586
455
248
716
354
513
591
407
572
625
560
300
87
525
505
286
480
459
212
651
516
413
501
362
531
489
475
540
360
411
533
430
709
379
572
393
587
146
599
539
503
454
649
635
505
556
615
534
423
435
456
427
484
445
503
319
673
486
527
463
503
343
490
669
494
470
555
445
507
527
341
355
441
783
535
568
728
370
544
367
504
447
522
495
593
437
570
553
476
191
303
586
509
590
575
750
467
415
648
581
523
553
420
714
527
393
385
399
440
299
482
55
419
406
497
105
269
677
715
556
343
515
632
681
623
222
644
493
599
604
320
460
651
488
717
392
525
479
604
353
256
707
615
603
84
544
580
326
454
433
493
285
0
439
462
433
551
560
732
527
638
601
567
582
514
218
578
286
619
426
574
329
404
588
393
467
359
566
332
713
483
300
449
555
240
388
512
349
465
581
0
252
553
479
677
566
467
347
624
276
492
511
402
578
453
213
431
543
583
586
402
564
387
493
350
455
46
219
536
548
587
411
394
692
640
563
369
588
438
162
467
362
462
301
499
477
339
496
481
725
667
375
541
477
470
453
419
438
389
434
725
357
491
661
420
440
630
599
369
458
441
429
482
507
490
605
361
422
597
587
567
254
503
307
432
460
610
496
423
595
481
347
282
272
450
444
419
480
568
712
588
409
665
362
654
684
583
628
322
563
463
485
596
628
708
685
449
485
193
387
557
456
302
502
358
479
575
573
559
448
622
555
525
410
419
610
334
448
758
774
714
660
630
498
758
490
404
593
371
490
522
558
235
584
364
633
567
531
296
267
348
526
565
0
505
465
246
217
472
508
454
461
235
582
554
510
606
467
658
629
300
0
439
505
490
647
562
622
534
694
693
158
567
550
482
187
541
434
477
453
559
677
236
273
268
558
329
530
554
379
439
382
363
516
707
324
637
466
615
464
509
567
523
324
624
459
347
365
540
682
451
293
471
673
450
558
602
547
512
598
468
406
466
562
458
624
530
626
346
412
597
450
579
433
530
522
471
442
197
489
681
294
466
586
446
208
680
539
390
584
536
0
517
439
632
358
169
563
637
544
453
538
533
629
558
412
617
301
341
56
588
471
726
473
111
694
420
169
484
445
451
649
454
375
481
296
627
606
723
515
543
456
534
750
208
600
477
599
575
398
487
552
399
409
415
710
404
546
510
642
623
523
286
449
671
378
316
625
412
492
295
653
348
179
413
460
253
349
577
232
487
326
188
575
639
388
272
603
354
524
746
748
434
572
657
480
443
445
505
590
148
440
743
469
602
635
324
354
424
472
629
320
608
401
302
579
408
587
575
343
458
400
609
244
525
591
232
522
667
455
576
570
498
497
410
184
494
179
713
493
452
403
282
301
272
229
512
436
413
777
418
688
432
404
439
575
693
483
725
573
475
563
378
412
543
513
539
762
306
498
520
385
409
426
533
430
617
103
701
282
314
339
709
761
559
373
634
405
563
453
553
465
418
477
503
264
642
418
292
318
395
462
489
305
401
449
448
495
275
384
536
300
553
488
509
426
278
461
385
530
510
556
469
405
608
238
416
142
321
372
592
522
711
338
528
523
512
642
352
578
469
666
744
334
411
537
342
299
421
537
568
441
509
567
258
490
370
476
216
550
626
690
528
513
464
445
638
584
552
467
178
708
419
628
409
131
415
583
382
524
551
447
481
423
431
459
633
603
700
388
660
684
571
664
478
659
615
442
696
330
433
611
670
507
509
364
465
572
294
647
592
630
558
525
658
508
214
463
552
574
530
260
534
395
614
409
414
567
399
599
420
612
307
399
474
362
530
316
308
395
706
513
439
643
427
667
443
600
573
564
519
619
450
305
400
0
479
394
646
558
527
645
513
556
488
568
463
466
488
596
572
318
379
506
642
531
77
611
157
612
494
539
310
184
404
714
250
575
352
453
508
286
425
335
134
348
544
366
612
608
342
440
668
495
540
522
630
346
640
414
386
584
548
535
376
346
209
307
314
653
513
442
337
541
682
0
716
604
228
574
644
235
521
520
554
602
687
575
491
362
599
435
396
450
691
440
664
515
383
271
314
592
481
442
543
368
455
458
556
517
547
641
362
466
392
94
684
409
611
561
634
633
458
599
558
457
346
436
79
528
608
461
564
538
428
560
515
695
484
698
743
337
596
657
400
573
493
360
469
116
553
410
521
538
562
542
485
629
529
528
430
517
290
456
332
623
653
629
668
636
362
543
483
698
710
536
717
492
650
318
361
463
725
666
483
209
430
559
743
379
392
543
592
227
640
78
494
655
428
372
625
584
328
468
469
681
569
275
542
614
624
197
284
449
298
466
313
632
486
421
536
300
227
345
481
319
505
380
440
705
512
267
399
601
459
335
713
724
213
476
509
268
488
515
585
197
609
495
634
525
457
439
416
0
287
370
695
447
516
398
176
541
610
278
528
350
148
324
539
616
238
432
384
478
454
340
557
646
476
407
725
706
243
488
473
612
167
382
307
380
542
433
491
432
606
351
614
571
568
517
648
271
504
450
399
587
242
548
114
596
514
492
185
476
571
408
571
285
216
399
501
372
214
482
487
515
615
458
551
546
554
302
649
478
467
469
589
774
401
258
547
574
485
412
579
541
329
535
524
338
735
416
256
710
262
391
620
462
554
86
463
580
439
606
520
616
640
432
514
0
477
542
472
120
521
482
605
600
540
476
675
384
658
588
308
454
408
166
312
675
463
0
402
320
309
442
570
732
395
476
345
574
459
639
590
383
315
726
254
309
584
549
515
610
568
382
492
486
250
233
218
370
581
428
547
594
286
529
670
427
564
725
565
503
565
576
315
547
455
440
502
708
412
583
391
665
627
380
621
409
652
428
715
307
512
631
500
382
274
767
637
286
666
653
583
555
6
509
395
454
378
499
442
176
533
550
557
289
630
697
627
351
459
400
456
326
339
681
555
559
375
443
539
579
453
456
684
576
274
670
754
514
503
259
356
314
471
293
653
544
428
404
445
467
209
676
450
381
584
171
281
469
291
676
641
358
566
402
556
522
453
676
561
559
453
418
471
285
700
648
618
597
536
614
442
441
614
106
522
561
149
480
427
594
501
278
597
729
493
201
536
269
450
554
379
275
738
609
623
317
348
318
471
342
445
490
439
439
542
537
325
687
554
426
650
402
472
238
325
396
475
350
671
493
681
664
379
573
476
444
509
471
502
560
295
184
418
453
429
483
481
678
397
577
394
413
504
440
403
343
698
440
619
343
634
540
495
362
315
484
593
378
692
477
266
533
499
134
406
471
529
90
446
640
587
595
519
701
565
500
177
554
771
663
398
425
170
385
586
286
590
629
339
485
689
476
541
234
485
235
422
280
580
756
208
374
627
474
548
474
260
306
369
350
391
592
666
392
518
700
370
375
505
535
401
292
340
311
508
593
515
441
483
427
651
488
647
487
727
471
479
463
528
453
303
531
526
609
601
272
0
585
185
558
470
466
479
479
510
577
566
471
463
504
494
510
368
121
649
421
643
347
331
483
431
505
367
408
345
602
753
340
476
543
348
328
199
233
676
447
422
658
502
352
408
564
694
609
532
600
405
510
527
371
570
611
234
562
335
574
655
0
294
664
542
530
0
388
462
550
525
337
466
542
375
383
62
749
468
456
314
550
536
262
670
385
579
275
400
650
334
578
546
509
346
484
569
473
394
463
694
299
617
444
104
272
455
121
579
54
528
397
558
328
415
628
737
511
574
459
402
518
437
529
389
370
503
457
587
146
533
718
526
212
449
445
145
447
527
374
479
496
455
513
476
531
544
612
278
546
645
376
345
482
253
395
547
614
644
383
566
500
401
670
314
350
382
436
545
462
297
475
600
562
610
209
407
305
569
381
478
673
518
427
618
126
581
435
675
680
461
514
353
256
293
527
525
539
611
458
534
444
369
439
460
627
350
528
715
353
611
539
544
685
512
517
589
604
459
554
727
220
566
596
549
351
264
483
473
479
526
276
413
459
558
594
663
486
428
641
673
761
384
533
226
470
645
449
402
374
357
407
447
599
473
488
347
393
475
667
585
543
541
501
442
190
638
420
269
401
622
671
598
466
509
184
468
459
636
686
774
480
411
703
532
479
357
665
567
629
429
535
465
605
237
542
300
595
579
257
599
582
414
646
540
570
434
391
435
457
475
529
374
704
416
648
342
398
282
209
439
342
622
253
489
535
477
550
680
368
766
506
573
353
598
376
559
331
665
355
466
419
610
443
368
670
313
408
324
700
533
537
378
702
464
628
243
471
268
311
358
49
609
548
534
611
576
504
409
384
758
445
729
291
328
375
301
513
384
577
448
328
510
575
597
730
454
491
483
493
619
212
583
608
452
657
498
0
455
720
417
298
471
533
445
609
364
441
408
546
335
486
510
462
720
523
482
575
299
226
629
215
316
433
509
324
623
531
365
559
649
659
361
371
68
642
453
507
394
405
456
537
500
272
630
557
413
442
230
564
492
418
460
501
557
647
520
470
504
411
603
281
643
494
369
444
519
455
415
588
413
339
630
447
386
527
541
469
397
538
491
386
237
459
645
388
399
356
513
156
373
591
771
318
628
404
589
535
406
470
557
661
749
314
600
312
418
564
338
616
396
462
549
663
554
426
374
630
497
197
483
301
241
82
463
400
431
273
236
444
576
266
358
488
556
467
457
357
335
183
584
304
337
702
342
524
539
521
625
0
538
447
215
430
559
634
589
564
707
246
364
472
593
560
408
581
464
574
496
578
540
401
638
494
480
265
542
560
607
517
515
427
430
581
490
470
287
480
456
407
627
504
658
413
674
487
273
518
432
435
292
217
426
406
568
571
492
564
469
554
403
636
608
366
614
405
443
601
339
483
333
407
584
505
453
397
419
402
246
355
349
270
606
58
540
432
597
421
586
463
558
461
499
412
480
436
461
425
323
443
612
289
441
628
231
438
598
487
427
546
513
559
549
452
352
499
517
232
720
439
658
488
685
573
403
406
456
610
547
521
222
459
276
450
749
590
394
434
437
312
561
309
566
353
435
519
471
550
584
481
452
406
635
416
325
424
476
500
417
409
455
425
50
513
191
643
307
480
445
294
431
555
521
155
400
467
350
561
726
668
569
616
447
497
372
581
586
514
127
537
389
504
434
443
536
374
537
671
523
598
586
617
355
386
738
535
440
563
603
534
635
445
540
526
160
614
349
564
346
653
162
453
606
524
449
611
661
206
533
235
468
440
412
401
567
353
715
629
420
96
551
606
606
511
502
467
664
669
221
338
507
288
372
322
394
206
513
345
422
590
601
587
729
206
566
313
489
278
521
457
417
463
342
487
463
451
358
442
397
452
264
477
522
753
632
529
196
490
426
527
519
744
386
541
503
515
418
405
286
741
515
650
574
458
507
545
649
696
551
480
413
483
579
562
482
622
470
480
596
529
0
126
486
586
629
549
546
487
518
478
262
673
290
419
212
566
629
653
379
413
332
0
600
633
551
468
622
580
609
576
456
271
341
401
314
556
468
332
699
498
503
445
546
599
637
491
569
493
531
674
460
578
408
606
324
186
413
287
629
476
202
617
315
621
666
665
346
476
575
515
520
612
551
619
683
397
488
494
670
549
410
582
394
489
618
274
452
546
584
360
521
402
177
595
487
534
488
235
488
760
342
647
372
537
601
590
408
453
490
402
527
595
263
468
642
575
277
312
527
629
398
499
678
319
335
261
368
565
206
555
488
668
671
367
708
564
650
483
586
581
389
411
523
316
652
565
340
370
548
449
170
481
532
603
450
501
567
481
562
0
318
327
389
484
471
462
415
299
406
319
466
232
283
369
599
403
508
335
521
241
602
368
349
459
569
374
0
425
387
667
626
0
140
294
537
365
599
715
182
618
604
458
457
569
398
307
196
539
590
490
298
549
731
362
430
343
423
300
218
500
338
363
583
354
366
629
461
327
341
382
425
743
665
623
686
476
412
384
307
503
771
661
541
668
374
461
611
462
645
450
459
488
481
671
650
634
409
663
397
230
490
397
471
402
508
434
396
607
582
524
372
588
67
411
338
142
704
681
562
537
266
29
678
718
151
453
497
307
521
666
446
565
705
397
517
545
530
620
397
637
468
614
370
457
515
444
402
578
413
608
325
610
557
333
494
180
628
543
648
184
758
460
567
483
553
689
622
565
693
490
367
571
459
615
217
117
387
398
518
398
403
419
563
533
403
522
574
67
0
525
642
703
299
459
572
461
432
258
629
612
2
111
349
579
403
521
562
608
178
609
465
529
331
431
487
552
394
490
401
338
379
572
300
570
385
621
513
381
509
519
583
507
413
490
536
408
434
394
663
538
460
104
634
291
327
552
528
616
494
562
641
292
646
564
624
671
316
287
475
497
445
450
636
513
492
510
695
522
666
485
404
533
309
498
610
514
412
510
305
409
571
660
583
630
520
689
518
454
378
312
637
546
644
267
605
488
585
326
607
434
449
614
527
363
503
567
345
203
648
123
321
372
637
594
504
451
592
727
432
312
485
406
418
576
604
376
654
587
578
579
697
603
492
379
549
598
642
740
637
433
369
433
299
412
527
459
471
486
228
448
418
251
317
676
457
635
36
665
431
468
544
320
454
400
261
575
431
735
124
453
576
379
454
134
234
354
452
389
388
471
510
438
539
744
464
430
569
425
379
401
511
396
516
492
402
366
299
497
549
295
545
412
315
559
468
551
363
327
627
634
115
503
393
352
559
445
2
734
441
609
511
459
194
430
586
328
678
530
532
598
676
555
40
451
437
515
527
553
434
668
380
520
475
361
592
643
489
321
547
478
449
534
500
461
212
490
634
330
313
595
442
393
641
545
346
486
606
603
171
724
206
0
499
518
513
580
449
229
508
331
666
563
450
555
488
270
589
557
601
590
308
572
204
659
462
317
615
445
455
595
0
586
520
585
401
619
283
536
640
569
606
593
543
474
268
556
689
552
345
603
684
622
498
617
542
755
481
678
570
411
239
468
644
516
542
558
459
229
421
390
300
425
302
505
248
684
559
527
407
534
444
571
747
462
298
523
667
649
671
527
0
652
502
238
252
694
450
606
510
518
562
446
724
585
520
468
335
706
565
492
346
334
644
436
647
685
579
542
539
540
448
507
334
435
652
395
496
756
538
467
501
540
455
231
541
234
407
572
264
597
493
386
464
345
459
309
426
542
699
365
435
580
400
676
459
458
629
249
439
384
537
363
294
130
545
617
576
438
421
568
537
466
0
364
358
578
358
514
636
473
546
550
527
541
56
598
665
425
562
436
425
363
465
641
553
460
539
302
486
505
497
632
703
354
372
234
636
367
496
630
697
497
454
325
415
651
713
563
570
655
417
578
542
654
560
414
382
570
538
518
528
477
470
659
400
361
448
503
638
572
440
405
417
541
577
390
501
487
490
433
446
445
419
266
396
295
413
237
0
445
639
682
509
437
359
390
522
196
617
379
482
477
0
548
723
604
439
417
254
523
120
598
495
617
637
309
288
410
527
593
145
385
711
420
465
388
438
258
621
613
356
698
404
595
537
385
553
406
365
420
358
489
785
419
394
387
485
675
494
573
288
735
269
217
309
537
584
498
427
614
654
457
487
607
307
409
568
466
411
709
324
334
656
453
262
423
596
627
253
599
569
453
488
717
443
665
569
514
545
466
500
323
778
528
416
484
611
517
574
435
648
561
495
599
481
411
415
170
522
629
642
518
458
398
641
388
699
309
746
478
464
640
315
400
785
216
263
444
346
285
529
162
510
347
410
311
452
669
203
519
149
623
516
482
473
721
571
380
559
513
576
436
532
599
627
483
445
392
573
420
584
500
714
507
347
681
390
651
539
434
391
307
667
630
0
553
602
136
228
493
507
462
380
484
187
417
489
653
619
518
615
468
312
487
497
317
392
566
559
548
465
563
432
438
53
178
316
435
586
595
460
407
448
459
649
430
357
498
433
502
710
559
247
663
669
362
579
270
421
580
468
645
532
604
446
752
616
747
415
346
319
270
459
336
366
549
386
706
480
500
476
457
397
428
495
208
358
517
0
683
430
520
341
341
620
95
449
387
516
250
675
679
682
561
392
470
639
622
708
269
541
197
111
505
400
583
428
406
641
594
346
460
152
421
623
357
663
646
633
312
558
768
522
508
729
581
503
390
441
202
464
560
272
699
0
189
505
636
527
287
550
293
470
610
519
300
578
166
286
635
179
587
458
597
667
209
457
563
628
415
458
415
456
377
621
519
166
380
269
717
493
489
291
304
568
348
200
622
334
302
649
670
459
632
576
404
530
680
537
482
414
595
430
300
504
400
693
572
189
438
576
230
524
345
507
407
537
481
658
363
350
631
520
591
573
188
629
629
476
476
274
590
260
363
541
622
435
481
334
421
608
432
587
457
591
540
620
151
416
608
501
681
349
485
398
32
354
423
180
440
0
737
384
390
584
346
370
553
366
214
659
261
524
503
475
655
365
559
393
546
448
422
540
674
378
529
540
414
221
520
518
430
480
571
333
416
340
526
96
671
781
447
574
230
239
596
457
613
590
410
718
235
393
330
649
458
618
67
235
551
422
437
322
672
687
495
12
645
456
715
504
472
485
488
478
378
437
378
595
626
727
629
386
472
432
318
376
395
615
536
585
353
657
396
487
453
453
439
493
428
486
501
298
414
378
560
521
490
384
293
641
396
463
522
522
628
226
564
255
641
699
427
380
400
466
575
539
464
585
468
405
291
540
437
416
459
381
684
440
403
329
671
435
479
741
357
658
260
412
624
359
540
643
0
507
395
216
299
431
465
425
464
492
651
55
619
430
278
426
236
373
516
29
621
232
540
384
497
521
636
627
138
463
449
252
590
491
530
731
402
744
313
504
382
575
535
601
399
582
330
511
275
497
398
584
183
686
451
204
400
631
481
556
299
199
280
0
0
607
586
511
599
258
666
368
565
670
137
534
357
319
386
649
565
497
496
370
530
413
650
544
467
347
723
507
439
337
372
68
548
272
64
538
458
568
640
694
427
509
549
544
601
635
415
463
615
147
587
342
502
147
641
443
661
314
343
434
475
438
431
426
336
509
545
746
359
379
602
498
578
431
622
174
196
585
410
458
677
422
551
644
432
661
350
600
218
316
441
641
393
561
222
394
215
634
720
597
591
530
351
520
207
231
602
449
405
768
556
594
556
593
500
700
378
59
598
300
650
515
417
334
652
652
518
253
282
575
453
500
143
393
665
655
521
438
609
512
569
335
503
611
565
139
708
488
402
438
580
256
626
168
362
598
675
377
469
406
599
528
607
708
600
406
512
656
351
620
364
716
683
551
563
274
666
655
708
613
341
674
560
428
476
610
202
423
314
578
344
139
530
264
457
357
371
410
479
524
560
588
301
433
608
352
371
500
566
611
720
619
205
663
535
676
210
414
278
595
603
404
366
454
374
496
565
553
288
544
761
577
605
629
592
641
455
710
371
250
639
393
679
516
703
399
655
369
571
495
699
284
403
545
479
614
523
364
582
404
487
523
636
512
534
381
420
416
566
656
562
250
732
704
321
402
580
409
523
773
432
515
452
478
392
543
464
684
712
449
671
366
629
314
748
625
597
420
606
413
565
551
444
569
541
613
490
289
586
615
399
585
456
648
488
537
566
553
543
599
174
434
516
454
460
415
720
449
663
578
614
538
498
626
338
460
659
437
509
545
667
169
553
676
380
576
275
514
672
588
575
456
316
438
396
451
328
437
470
533
419
258
376
445
486
447
159
554
628
430
435
644
347
730
496
471
716
604
258
527
458
593
513
262
715
715
609
723
244
664
367
408
553
382
627
543
434
492
463
370
664
122
730
732
376
257
520
396
334
515
433
618
739
719
391
587
471
539
365
419
296
333
30
252
411
562
349
611
419
487
711
442
467
457
696
555
483
307
515
340
678
423
552
685
22
67
623
602
462
337
363
109
615
401
560
389
678
464
752
472
441
636
453
470
484
469
416
333
612
420
549
313
550
553
497
483
481
453
436
392
457
479
560
360
400
667
555
756
503
546
256
431
515
598
530
573
448
445
426
572
372
633
364
179
539
535
656
368
546
404
609
425
603
460
617
433
604
349
495
575
607
534
460
400
430
578
433
628
360
419
348
344
638
507
493
511
497
327
318
187
419
19
557
316
602
400
562
591
741
613
684
519
566
324
525
608
486
196
354
669
531
697
348
395
586
191
335
505
285
611
231
122
387
301
388
648
674
422
435
305
570
676
560
519
363
498
548
458
443
267
734
432
639
596
440
549
423
633
400
486
518
500
320
350
299
370
527
554
337
585
703
176
148
393
594
767
268
546
584
636
597
439
596
476
580
434
561
634
314
453
535
0
380
522
477
526
457
453
458
552
619
401
604
356
385
512
705
549
749
66
673
594
180
406
538
761
498
483
493
467
573
412
318
644
670
277
666
448
535
619
729
286
597
496
194
266
312
680
477
551
140
33
301
572
164
556
552
660
500
356
452
485
591
582
614
547
558
453
644
444
258
453
394
596
483
616
350
587
598
556
546
633
651
506
362
584
475
402
623
454
575
573
413
279
399
516
473
321
509
426
451
355
447
671
418
499
650
563
601
442
719
394
569
668
547
544
385
211
632
584
612
540
458
645
685
524
687
464
527
599
543
699
407
454
363
496
465
530
563
681
475
489
513
605
618
437
542
471
732
394
400
502
150
462
505
520
582
722
571
0
512
145
400
693
648
536
560
571
510
520
415
446
518
442
473
456
404
524
235
471
434
369
535
0
550
312
499
326
489
561
694
384
557
650
267
546
565
616
513
557
581
512
279
426
420
453
240
592
634
533
539
542
353
472
666
234
507
410
580
450
244
572
536
500
623
311
345
412
620
488
533
432
527
328
435
482
564
395
713
658
464
457
362
404
561
747
496
349
432
410
384
478
686
444
541
248
279
503
208
351
546
512
248
670
415
679
283
286
472
484
487
693
299
575
475
636
519
592
416
398
640
741
399
635
522
528
395
587
49
477
675
403
598
511
389
560
600
514
363
25
482
570
437
558
570
392
449
412
459
466
407
306
613
635
395
29
140
465
701
648
596
704
520
542
604
665
743
347
450
470
230
374
518
437
421
679
500
535
497
343
682
357
460
347
561
178
406
486
244
260
606
362
441
718
527
596
220
474
732
594
531
349
396
317
112
647
457
486
442
617
392
365
529
610
436
489
722
352
599
506
261
518
445
516
631
481
364
547
331
753
646
654
421
75
71
448
488
245
477
312
559
119
384
576
545
393
459
338
583
547
728
105
549
149
479
624
707
510
413
534
375
349
432
498
439
497
444
636
249
544
725
680
562
556
419
477
305
271
0
583
635
586
605
385
352
195
110
584
354
460
383
530
456
579
335
362
495
398
0
709
464
437
542
476
401
133
277
476
372
152
540
432
595
382
428
562
537
453
539
442
586
351
277
652
272
498
489
46
576
500
406
493
316
437
497
506
713
648
433
461
452
323
484
222
355
387
617
611
391
512
520
508
654
758
600
506
474
576
550
361
425
687
686
390
566
464
405
453
340
352
499
360
304
588
459
454
634
530
647
498
604
431
612
477
480
622
554
495
541
339
564
567
215
721
584
286
581
399
459
354
448
75
434
517
443
438
393
397
727
396
295
513
520
0
708
640
440
414
479
599
587
711
571
503
406
419
684
488
532
424
514
696
504
699
333
332
400
697
602
534
324
490
461
341
383
252
507
541
343
697
653
429
109
520
637
674
416
298
555
539
530
457
626
591
503
457
508
277
460
646
561
564
194
553
137
603
529
144
370
0
134
532
454
501
348
471
288
285
498
540
363
608
512
533
464
558
590
436
550
596
368
511
334
672
575
559
380
318
401
642
397
658
489
632
676
266
185
437
415
515
307
472
736
284
534
513
485
434
396
383
434
475
395
413
533
422
712
334
481
428
458
547
122
733
619
504
416
356
504
433
637
565
665
294
551
303
547
491
316
372
495
557
744
314
511
400
466
764
275
398
479
332
534
430
309
593
534
497
550
582
386
701
503
419
505
579
702
468
420
388
67
589
504
602
199
549
390
504
653
582
178
533
569
302
597
225
488
285
492
651
601
533
451
234
705
255
241
432
585
591
360
436
639
283
633
273
537
246
455
496
362
427
609
385
192
712
428
294
467
515
500
482
645
475
604
543
576
264
192
441
469
459
562
241
559
450
526
577
570
553
721
575
261
366
333
440
690
201
508
563
513
450
348
459
616
430
508
631
387
599
742
407
388
550
466
523
468
537
516
220
451
650
371
174
250
657
672
349
556
479
559
435
565
500
624
412
353
588
411
466
590
709
675
528
454
387
60
606
566
622
577
462
493
475
465
583
582
400
294
367
325
395
555
441
261
514
621
540
441
672
376
614
432
355
308
338
549
523
271
515
554
421
385
500
712
447
386
598
631
660
90
513
466
532
368
219
546
599
621
143
493
588
196
423
441
484
611
445
685
508
355
639
93
500
703
379
645
216
435
685
394
377
703
615
541
533
577
609
367
295
657
626
402
564
422
307
561
220
441
306
222
529
487
345
225
570
593
570
392
690
495
536
546
616
473
358
266
208
541
445
254
402
353
545
560
436
752
507
478
574
445
533
592
441
675
541
640
720
445
309
464
414
299
634
332
396
439
597
503
541
571
549
310
602
761
465
357
624
238
611
489
461
646
351
462
684
651
335
412
416
414
344
130
569
788
595
556
577
625
448
189
242
567
557
437
235
507
477
521
472
483
447
571
560
462
537
316
361
498
397
461
328
58
313
435
474
727
547
472
575
491
594
427
525
236
553
599
429
397
122
629
510
715
402
551
379
570
443
563
677
612
338
545
578
447
743
483
491
648
88
440
584
464
679
701
569
423
649
598
369
629
671
432
576
547
532
395
705
385
621
427
408
545
444
437
328
575
702
778
526
561
625
572
665
422
352
405
535
479
511
638
368
430
314
419
435
588
360
348
379
603
316
564
596
535
484
379
396
652
277
253
583
431
562
661
528
660
668
617
655
424
576
538
665
544
468
573
101
558
531
492
322
305
515
486
630
545
517
418
508
448
219
433
577
424
675
431
283
692
418
584
501
465
618
355
389
610
539
507
684
569
623
365
641
709
208
252
637
461
513
536
526
554
432
449
624
13
334
721
519
427
312
704
363
387
345
577
301
452
672
214
650
674
313
0
417
551
421
709
657
398
525
353
593
414
358
196
561
397
584
435
247
326
414
335
264
427
546
433
621
566
568
644
139
665
512
559
476
455
423
554
628
520
496
449
452
622
518
606
436
567
737
196
728
367
37
414
679
631
557
256
394
135
544
427
394
501
329
587
470
418
618
519
397
381
447
307
501
395
614
225
358
374
438
407
484
419
460
139
447
523
273
565
702
647
235
441
619
341
675
608
379
157
388
538
283
582
399
573
515
456
459
624
552
556
525
360
522
420
637
262
527
400
8
573
335
470
383
690
480
401
503
324
647
337
493
299
532
505
84
403
628
193
552
666
349
405
484
437
544
637
576
610
392
510
692
483
426
120
492
615
463
429
415
462
355
494
194
616
634
481
693
591
613
533
542
482
755
326
663
380
112
413
481
251
561
577
366
395
295
418
567
503
205
619
456
203
608
511
673
432
745
627
609
605
501
374
434
223
638
504
495
356
261
352
249
631
477
425
388
478
457
353
655
422
600
768
548
394
323
253
164
481
529
474
327
558
415
496
151
509
469
618
600
653
461
403
499
560
554
351
252
497
369
236
260
624
324
369
464
260
438
498
503
520
639
668
603
548
100
339
601
762
501
634
552
706
441
550
382
501
467
634
613
579
477
417
689
778
580
246
538
184
685
285
631
598
761
398
602
62
435
232
658
572
289
386
516
571
319
518
396
647
504
426
670
499
633
586
405
601
622
592
767
188
657
403
533
353
488
705
469
682
479
663
64
601
501
619
493
337
403
583
332
0
652
535
516
493
378
588
501
335
417
589
349
360
589
658
560
359
520
46
528
629
579
484
574
477
348
442
536
580
459
564
226
432
566
518
350
574
539
492
439
170
398
440
524
389
121
512
239
531
349
755
385
420
547
482
322
582
609
415
591
516
376
488
603
413
346
556
243
332
337
494
531
333
473
339
605
464
583
383
444
525
533
453
378
327
526
479
506
616
549
452
616
566
293
371
146
558
541
476
279
469
773
305
561
605
477
286
557
399
588
496
66
708
394
641
138
500
396
388
549
410
255
426
412
585
478
328
724
545
659
510
376
567
384
544
387
367
617
169
510
393
477
386
420
551
682
593
569
225
401
301
536
462
505
343
674
448
369
609
380
358
214
378
162
655
571
483
315
513
408
544
548
711
383
315
548
615
477
503
524
574
344
637
408
409
194
676
450
614
454
606
535
517
528
481
525
275
283
427
582
559
642
523
542
343
641
453
645
725
585
142
442
68
509
431
519
494
528
487
709
534
487
168
417
404
558
525
469
490
522
406
548
134
512
403
389
576
512
418
412
299
466
290
671
185
645
410
498
493
595
603
241
714
456
422
216
418
563
328
619
657
444
512
417
573
551
679
702
489
525
655
368
526
546
432
426
609
0
433
402
522
325
423
328
333
461
462
344
158
604
634
382
532
381
287
532
547
241
510
383
581
713
569
546
626
467
209
465
522
601
521
402
294
407
125
332
185
358
606
594
394
464
226
534
421
442
389
586
537
588
398
422
287
525
592
552
635
377
487
450
562
591
489
449
457
576
553
551
312
548
558
390
603
559
672
362
584
556
486
594
455
574
667
496
620
561
279
599
640
521
308
603
461
544
584
294
477
459
415
387
460
596
258
0
497
534
524
480
314
538
666
505
333
175
495
403
369
451
0
532
543
457
447
610
375
233
278
498
623
619
187
380
504
554
391
462
507
562
572
725
348
568
371
608
541
319
533
648
532
547
407
379
519
379
496
577
399
449
273
510
505
513
339
282
438
519
436
428
497
483
558
715
343
488
653
676
337
544
572
507
361
419
308
466
685
767
429
303
603
533
372
506
532
712
367
365
476
653
465
528
713
530
642
595
631
294
403
644
491
498
373
58
305
247
481
658
492
501
436
590
343
688
443
530
508
185
472
625
256
379
529
591
314
572
351
457
478
651
780
623
597
564
491
175
422
524
296
406
272
342
720
560
247
396
378
450
620
548
531
704
0
651
472
476
643
436
618
430
366
730
530
517
525
412
455
621
635
424
591
583
364
473
548
765
549
544
275
567
510
676
351
331
381
431
687
316
447
268
278
448
506
578
424
372
491
378
303
521
432
578
569
255
649
368
641
437
572
567
544
488
410
0
296
541
540
614
419
501
390
597
298
456
558
432
485
558
341
415
516
581
417
623
559
581
517
530
430
588
591
409
763
540
501
582
636
419
525
433
614
342
489
687
582
628
731
493
183
632
589
600
116
447
5
503
605
616
530
574
462
391
523
494
610
579
350
270
641
492
557
478
399
397
690
377
498
537
504
457
421
459
734
697
253
409
718
513
400
465
487
491
520
391
349
510
523
581
480
603
549
653
103
541
346
418
312
583
475
483
598
697
663
643
421
616
0
124
251
521
355
424
661
392
646
489
556
373
721
294
429
505
434
503
544
378
220
691
494
251
173
529
611
450
439
648
532
550
589
560
597
371
616
639
578
527
444
87
500
356
493
536
626
395
350
368
137
387
337
490
764
630
643
549
490
550
477
519
562
473
17
379
75
399
429
485
440
305
492
484
348
578
434
549
386
625
286
215
444
507
345
477
477
477
690
581
461
522
335
419
651
499
506
574
658
451
266
469
475
0
623
407
465
583
104
573
497
500
527
546
389
516
514
339
174
642
533
653
455
385
26
404
570
342
648
365
662
349
515
536
206
423
537
631
595
500
529
280
610
482
588
473
483
677
616
325
459
577
448
430
564
508
481
652
535
634
374
548
700
555
575
441
511
712
611
548
618
705
666
452
520
656
498
463
583
510
545
200
481
234
571
440
370
531
571
700
561
594
521
475
364
725
508
323
658
421
245
394
520
158
505
608
600
572
611
0
302
551
275
564
396
476
490
333
612
599
539
213
299
684
291
561
438
436
409
499
617
112
458
485
430
295
336
416
507
394
494
648
285
315
516
454
589
361
463
532
579
491
432
587
455
418
288
417
546
362
491
272
470
438
549
332
372
549
536
605
509
415
522
729
474
528
424
253
503
494
388
400
551
551
592
536
508
583
491
507
307
680
517
638
577
717
478
327
416
268
549
452
639
588
330
627
524
58
427
256
515
646
387
174
551
337
527
681
426
337
675
454
541
528
235
406
554
587
562
499
481
484
597
398
441
691
513
354
454
655
396
362
465
403
374
523
390
577
367
489
450
530
413
343
354
295
359
562
295
409
679
747
427
504
454
557
488
651
282
602
402
600
544
483
572
484
514
284
521
431
408
585
505
638
486
522
644
582
377
134
687
606
445
494
295
526
412
394
478
471
734
312
322
377
391
613
165
498
670
701
454
562
624
481
409
545
638
539
485
614
535
282
732
586
198
367
469
549
0
520
481
455
159
487
326
504
614
506
488
628
515
557
502
158
497
452
404
688
558
427
484
411
576
472
505
257
589
651
676
611
657
351
497
501
303
68
433
399
297
397
360
538
561
308
549
524
387
611
415
30
487
545
567
540
415
137
390
310
362
236
656
581
455
759
475
435
178
367
319
432
595
504
533
338
383
668
693
720
573
637
589
482
605
464
614
701
0
301
616
629
565
486
478
609
492
524
497
511
419
551
587
272
20
748
452
558
483
713
783
394
417
664
669
694
579
357
496
363
619
580
360
457
595
459
532
688
466
398
483
315
542
322
693
537
645
663
499
474
181
225
448
140
477
569
569
522
685
569
514
557
629
455
352
527
116
582
519
646
588
422
282
373
396
471
345
408
213
461
449
562
298
316
400
535
352
335
355
631
578
621
638
563
523
594
500
303
487
397
369
665
517
273
460
592
566
288
514
651
385
417
394
234
608
434
476
570
587
446
386
498
451
730
540
415
532
589
489
615
515
427
635
437
94
617
451
451
464
601
176
360
595
603
413
441
494
342
458
464
508
632
300
542
571
185
487
624
414
576
533
652
313
366
448
434
300
693
175
647
527
450
617
521
441
506
622
186
272
701
656
488
705
722
623
425
555
97
587
480
652
545
668
467
337
438
101
508
451
450
544
461
198
309
260
355
406
372
406
385
536
532
617
738
506
494
412
548
579
437
466
254
649
333
649
304
388
488
652
485
486
601
323
325
317
215
472
532
306
458
0
603
423
362
744
574
387
517
458
413
332
455
454
391
549
495
278
571
290
532
452
500
592
695
346
296
573
737
506
424
412
419
531
483
488
530
320
460
393
430
525
323
703
10
397
461
304
384
583
502
630
371
659
343
586
606
243
466
299
657
458
588
677
766
707
449
427
145
466
241
599
350
602
306
379
261
576
517
461
551
602
467
455
395
346
453
374
599
366
478
411
703
393
452
379
644
236
609
207
555
424
333
453
471
433
452
485
170
678
292
564
556
459
450
571
666
718
332
513
414
608
428
640
0
334
407
606
495
519
551
297
477
431
588
523
567
307
549
488
658
420
0
227
551
324
439
267
549
623
292
277
691
713
478
656
420
567
582
436
286
472
402
361
482
471
575
597
416
544
331
502
476
387
361
521
458
440
456
492
398
602
521
574
225
415
292
391
441
569
509
578
613
575
475
449
529
355
439
549
348
462
633
547
371
233
216
518
613
265
610
331
504
677
356
496
703
610
313
446
297
212
257
205
761
421
408
23
468
0
638
525
463
386
636
538
568
488
455
368
511
521
542
157
345
434
472
589
487
381
618
528
653
409
433
443
192
275
318
381
366
353
192
707
587
308
549
611
212
506
536
678
346
303
536
576
175
391
347
466
561
488
391
580
611
683
580
533
676
637
310
121
722
440
548
487
568
565
260
423
486
384
537
269
604
588
542
511
439
650
386
344
567
437
460
434
605
498
607
551
528
416
435
407
703
460
558
426
428
542
715
518
640
37
477
494
747
442
586
564
478
543
385
532
418
539
478
616
564
369
520
518
542
490
263
484
348
724
601
527
573
510
380
236
304
650
425
711
209
489
489
566
424
740
575
681
567
499
236
394
536
280
575
773
386
587
367
510
514
434
470
394
343
270
402
627
591
465
465
391
260
450
596
228
517
600
343
431
570
417
543
458
452
588
477
265
241
429
475
589
615
657
476
152
152
409
740
720
577
671
517
726
525
439
542
402
475
600
589
409
521
269
480
482
78
593
616
608
670
760
460
598
260
399
641
397
563
441
537
739
616
481
573
534
304
349
623
476
420
401
577
337
335
657
439
448
494
425
553
434
631
376
503
566
275
477
602
460
42
544
444
565
284
479
614
409
674
353
502
304
606
469
460
451
400
548
494
598
566
618
578
482
531
407
396
676
691
601
447
360
276
350
591
538
529
686
406
423
386
403
515
563
426
398
571
410
408
594
464
436
326
35
333
501
604
698
562
391
432
635
482
727
600
551
542
522
390
510
727
452
124
450
0
598
373
378
93
396
458
551
511
456
196
618
510
687
529
636
154
504
328
603
427
415
759
246
579
708
420
453
731
632
433
604
464
589
325
430
479
683
353
298
608
494
465
315
243
708
566
557
270
441
301
351
492
643
152
179
530
479
636
580
769
421
556
700
335
443
571
412
312
407
569
275
323
516
228
415
410
414
626
466
526
515
177
372
630
457
470
655
481
481
548
655
441
463
419
53
672
642
77
394
390
709
676
525
696
249
597
206
583
0
324
697
584
525
466
581
546
399
393
702
485
492
357
621
394
530
484
431
594
657
470
593
387
519
491
640
643
173
480
567
686
312
304
387
542
612
547
510
524
427
558
619
564
214
507
447
460
648
584
530
686
293
539
393
560
301
421
285
283
375
580
585
554
713
610
511
652
0
485
606
356
438
512
461
383
392
273
421
170
649
591
593
664
229
486
503
347
772
435
374
445
401
582
445
556
396
328
493
457
789
438
491
500
490
570
591
0
660
236
381
397
297
339
359
479
489
581
659
721
700
416
568
512
491
456
432
435
636
430
278
461
524
303
430
448
498
531
466
342
469
684
435
367
591
430
412
554
423
409
524
333
108
638
489
391
473
281
489
445
539
537
576
496
376
625
613
463
587
576
411
366
396
341
754
463
652
522
666
419
621
675
574
653
252
561
675
299
260
330
556
298
566
294
260
304
430
556
225
610
430
378
552
602
317
542
550
530
361
548
343
561
582
346
143
484
542
332
407
482
459
506
567
280
408
254
493
683
632
409
695
535
294
489
590
320
425
290
472
462
464
357
507
398
500
384
0
295
548
392
617
447
426
358
339
616
656
433
629
438
495
629
628
699
521
563
419
535
514
686
206
333
398
473
277
479
470
418
366
210
302
603
582
390
564
377
699
567
477
318
524
618
458
536
389
315
538
450
383
619
361
173
734
346
333
143
559
556
539
446
603
426
604
687
583
473
735
269
534
645
671
613
512
539
618
382
415
338
555
389
539
360
113
430
547
346
500
510
423
746
355
523
395
178
423
378
441
698
364
464
427
422
291
652
532
597
595
246
547
332
542
535
701
393
636
641
626
672
320
26
525
389
546
477
419
368
569
571
458
617
570
317
692
511
588
389
650
2
307
307
320
441
482
336
121
265
510
383
759
583
585
374
531
383
636
393
635
467
270
404
379
443
421
635
361
396
203
134
603
417
400
566
445
256
268
467
171
484
467
361
674
373
620
703
334
520
720
493
466
464
155
332
487
316
480
411
410
517
464
419
535
426
474
624
322
470
632
402
439
482
662
253
407
592
453
628
657
316
257
88
571
530
647
542
578
480
532
563
352
340
428
586
671
79
511
551
642
459
488
373
510
518
490
638
464
372
460
527
460
447
490
506
576
637
464
608
482
623
463
458
468
494
228
434
251
526
467
591
619
374
369
513
638
624
379
449
414
330
323
551
526
609
295
559
574
731
242
534
622
297
378
282
343
541
610
339
330
727
553
648
483
288
603
209
487
429
517
453
507
597
564
373
537
456
252
593
463
465
600
236
558
707
382
627
566
480
621
637
461
342
695
482
431
298
535
518
410
542
465
372
452
753
180
474
474
688
415
489
601
613
434
656
622
528
283
648
515
472
545
323
542
681
399
549
456
549
569
526
316
535
478
470
760
592
362
50
392
512
216
584
522
607
542
746
561
638
629
242
468
648
485
577
53
657
521
117
448
599
575
525
523
537
424
445
15
783
373
512
373
379
612
668
549
178
469
399
386
540
474
271
479
355
288
438
383
552
527
199
529
400
334
487
563
465
518
436
158
617
727
237
272
205
578
608
428
360
188
641
540
478
232
391
365
761
515
515
566
380
391
588
341
350
412
454
674
122
505
518
613
360
561
415
438
563
530
739
347
611
566
445
452
722
568
496
452
512
471
244
458
333
478
426
146
433
538
559
605
199
383
494
169
539
493
614
318
601
406
356
577
375
508
647
561
767
419
167
416
676
0
405
0
669
421
334
568
520
641
499
303
673
387
699
547
667
533
704
467
504
424
653
492
705
667
598
506
632
480
400
351
426
434
517
589
550
76
702
669
783
436
464
616
491
517
598
636
601
554
501
619
740
385
446
499
450
358
606
589
221
526
489
316
330
590
587
0
673
624
409
419
504
500
674
551
490
458
549
627
183
399
403
482
245
630
355
528
328
679
407
733
700
714
470
424
606
537
470
440
480
623
587
361
462
407
476
559
712
554
170
428
404
319
511
462
581
456
64
428
692
612
514
571
529
554
586
336
775
437
582
714
520
266
562
425
638
626
518
266
603
409
503
621
447
526
125
568
708
636
658
473
600
479
337
364
479
507
560
470
130
579
464
440
218
565
418
475
519
419
430
716
549
435
493
593
538
461
515
699
418
397
212
397
438
324
380
562
569
493
620
596
343
505
240
661
625
477
745
363
444
478
440
558
616
363
645
547
413
377
483
342
439
449
697
675
437
500
359
565
639
417
480
337
294
294
437
471
767
464
419
676
430
360
700
345
508
514
435
599
428
522
368
251
651
444
380
548
644
446
559
498
470
354
561
412
439
543
578
573
423
349
392
489
414
364
422
246
505
571
362
566
478
377
582
532
315
637
440
510
384
406
394
478
498
593
575
654
591
668
550
515
469
511
492
265
540
495
661
690
668
642
556
329
498
543
487
251
551
760
545
578
274
513
587
582
508
400
420
721
515
770
222
561
488
432
492
547
372
747
450
345
461
658
498
534
558
357
660
596
586
369
568
599
497
375
328
462
402
343
331
612
486
101
469
535
391
586
383
326
457
575
483
646
562
348
405
747
668
539
506
515
619
623
54
209
550
324
395
438
576
659
541
634
439
465
455
511
368
352
453
405
429
437
416
576
411
398
234
218
451
248
469
578
348
564
219
459
494
556
0
415
428
425
367
303
400
700
137
532
621
381
544
209
286
339
495
628
479
476
397
543
623
381
405
373
268
522
555
666
537
407
224
476
597
372
559
439
412
286
442
496
648
608
0
593
435
382
635
465
300
221
359
501
268
550
655
651
357
510
387
496
359
511
418
583
417
249
624
500
495
582
338
668
427
470
326
344
550
635
599
259
598
497
364
428
367
307
509
456
395
461
600
373
363
484
497
409
588
705
264
364
252
376
307
373
563
181
426
435
516
510
363
479
473
335
651
344
486
410
472
506
556
483
195
397
111
376
536
575
500
547
225
401
388
470
383
386
601
166
585
483
104
608
536
263
474
403
379
625
443
434
432
356
334
604
617
526
631
386
513
533
393
616
593
489
456
398
498
424
124
184
318
365
639
492
580
554
649
316
454
476
577
576
345
633
644
269
495
348
511
67
504
425
531
485
702
607
19
510
442
356
313
261
506
563
437
573
374
666
275
148
345
594
468
402
684
584
175
484
331
751
417
469
610
719
335
686
577
352
321
374
437
618
405
365
498
630
438
0
703
621
759
534
584
587
379
491
268
703
469
532
582
621
491
327
426
606
696
593
624
597
656
405
483
640
272
423
467
498
214
412
262
516
546
559
459
481
540
415
543
735
507
635
532
612
648
354
381
597
208
531
438
654
590
510
241
698
345
554
293
517
472
586
654
541
472
557
571
346
410
453
460
681
139
469
385
546
443
382
572
556
789
164
565
484
503
0
591
243
499
415
470
683
443
131
269
549
699
766
575
0
237
323
221
393
601
513
738
529
501
634
351
538
630
374
768
396
626
433
749
581
376
553
651
546
551
447
466
550
285
566
439
466
261
530
502
420
426
554
650
526
450
528
527
534
462
465
407
522
519
335
411
597
419
150
414
291
684
431
581
633
459
162
476
672
591
227
380
535
512
471
536
593
394
612
281
511
750
541
437
514
432
504
632
376
496
410
335
349
367
315
437
521
683
532
543
0
375
704
627
491
159
409
278
426
341
428
405
653
372
609
510
414
525
328
525
569
188
673
516
523
519
532
541
530
395
577
479
478
650
421
378
403
361
509
338
366
210
78
506
490
641
415
296
430
684
361
560
584
386
660
508
5
408
509
466
520
640
384
466
433
500
375
545
610
466
532
392
508
431
382
763
501
620
626
78
639
664
482
558
422
285
731
530
694
427
615
631
467
555
162
389
407
117
590
578
472
146
443
513
546
491
405
342
498
443
0
461
486
260
264
618
484
532
503
652
344
328
601
559
334
432
582
274
481
476
533
513
560
517
420
528
440
574
335
728
84
279
563
406
456
573
478
318
397
551
599
453
621
384
593
232
608
651
718
407
498
0
641
507
227
758
625
484
556
661
265
652
184
360
544
369
503
485
558
471
333
360
613
277
374
415
589
559
435
474
530
582
523
552
497
391
351
553
404
586
588
415
412
413
455
715
574
231
555
604
739
696
687
694
439
580
571
391
356
431
699
445
500
175
620
32
544
489
693
461
391
453
343
511
544
609
535
312
529
491
272
583
559
521
540
275
544
556
374
430
536
493
327
507
604
559
591
500
489
560
507
556
365
451
405
313
469
403
471
464
125
470
328
653
590
271
421
467
390
558
687
647
412
639
565
296
687
496
387
530
535
414
494
493
394
499
602
468
617
180
230
466
606
501
618
356
346
351
71
542
414
399
501
579
560
572
259
387
558
213
499
475
377
445
516
338
567
665
475
308
499
590
240
679
459
393
721
393
119
476
675
538
431
429
368
562
463
558
384
360
317
675
361
308
145
407
396
326
658
523
560
300
715
432
584
692
524
279
410
564
424
413
636
185
484
550
449
547
551
531
261
678
620
478
578
637
422
317
742
407
652
535
548
653
562
526
484
332
552
327
302
578
555
618
427
601
341
563
329
445
554
564
219
318
507
457
517
0
397
721
409
512
719
404
450
19
577
439
625
575
299
459
433
649
618
526
594
565
269
542
529
498
391
476
611
582
588
144
469
412
310
345
562
433
275
242
483
511
131
535
391
521
515
604
456
344
291
497
486
304
630
435
562
539
527
403
528
189
447
430
375
251
743
31
500
11
620
536
421
426
588
550
573
232
562
515
361
434
352
226
712
188
360
625
334
593
370
272
473
419
670
493
445
229
522
169
668
589
661
529
629
514
165
438
482
486
544
624
361
542
404
522
454
8
664
653
613
536
629
556
340
478
531
611
555
663
461
611
427
570
600
442
283
572
476
531
501
242
595
410
497
557
663
449
199
649
677
489
626
610
617
555
580
628
461
484
485
454
567
423
547
43
680
385
371
788
505
5
518
610
187
464
527
398
146
285
284
530
263
702
108
339
543
536
657
432
352
471
432
335
544
564
704
311
305
416
271
529
777
189
500
303
413
460
495
608
501
292
542
577
639
392
467
587
486
497
395
103
368
610
546
549
730
715
531
581
488
318
614
599
505
589
518
548
555
470
766
610
730
503
351
457
247
583
550
418
711
490
514
434
623
635
541
626
419
311
469
420
640
219
571
486
688
458
352
535
364
505
584
487
533
287
488
523
506
533
458
532
494
564
540
586
268
432
567
592
283
620
535
686
471
631
229
531
502
493
530
612
466
260
497
565
554
532
399
701
578
451
533
470
492
585
405
502
366
278
574
412
622
504
371
366
396
398
624
387
514
461
359
486
527
535
471
365
522
290
524
582
716
438
551
421
316
553
572
454
329
220
582
308
424
627
535
433
327
654
666
493
604
667
574
614
423
442
589
485
456
559
367
483
500
594
540
455
536
534
520
476
503
506
575
175
286
561
392
662
444
233
385
441
488
397
472
609
451
711
557
630
654
284
299
294
484
345
303
529
585
486
408
242
419
485
381
620
601
638
403
371
741
423
415
487
560
465
622
705
533
542
552
553
568
448
427
521
385
588
466
450
561
400
708
316
644
642
625
421
515
602
476
520
544
507
448
529
520
484
469
406
198
416
368
427
553
508
379
354
683
398
515
426
439
621
512
359
444
563
458
540
151
359
78
616
593
496
560
433
445
631
556
439
591
688
538
583
331
511
471
446
537
389
401
486
368
588
57
720
384
506
252
324
342
698
198
336
640
177
453
469
396
355
614
347
443
245
462
501
587
478
649
443
585
480
626
687
428
718
393
376
518
724
504
281
514
461
546
620
0
616
430
483
552
536
492
586
563
430
463
464
429
551
318
248
512
580
627
669
706
269
491
577
588
615
513
392
685
557
616
381
676
483
122
600
618
693
361
486
433
505
410
216
298
455
594
441
611
708
470
534
751
255
449
356
565
443
762
696
423
482
565
483
289
481
552
615
502
528
348
609
590
736
468
575
446
555
757
631
567
405
174
319
413
476
717
440
381
651
516
580
284
495
443
576
412
400
517
734
511
394
596
353
449
396
397
370
88
631
517
565
522
463
562
556
583
95
416
429
465
477
598
681
613
379
229
415
595
512
377
283
424
524
521
501
584
456
456
367
594
568
532
356
88
573
554
486
350
0
552
426
361
375
639
496
400
629
541
316
523
347
554
594
599
531
494
483
316
319
567
542
608
368
600
424
598
281
597
405
458
522
678
604
486
468
336
717
410
630
526
689
459
564
623
495
533
583
346
526
453
677
642
343
689
447
382
170
479
297
544
640
673
483
750
383
205
410
689
411
353
596
330
223
540
405
152
681
310
587
441
409
693
580
324
303
561
526
400
508
374
574
560
340
339
759
655
156
366
705
487
441
457
368
655
382
510
282
579
455
385
561
467
486
489
449
469
485
309
309
402
183
604
608
367
472
489
548
356
611
595
514
455
710
582
416
464
226
485
437
292
564
612
586
133
495
351
607
536
452
434
565
451
467
584
233
709
534
474
478
335
314
407
595
367
552
714
400
318
417
361
532
556
552
644
538
607
707
525
516
148
527
451
439
713
719
471
618
615
415
360
476
534
442
439
380
439
586
479
483
311
313
541
0
436
521
486
463
636
7
308
405
515
430
220
495
417
649
416
516
635
669
459
755
167
473
301
161
503
446
520
648
564
497
609
359
576
369
588
494
505
573
702
648
402
585
523
627
473
559
389
535
450
483
470
570
718
585
574
636
389
655
608
268
636
384
565
497
468
759
644
536
295
463
531
539
181
130
461
607
427
485
399
580
620
515
407
665
573
320
380
292
608
505
378
506
532
533
572
505
736
407
590
558
445
496
165
133
436
447
395
488
475
363
511
404
561
344
319
406
567
534
575
550
511
455
532
412
466
599
674
680
366
664
473
474
624
513
604
370
349
426
435
455
282
401
9
434
596
349
552
506
711
406
495
620
488
515
363
299
555
250
488
345
199
207
697
339
566
545
556
440
521
675
0
498
572
532
477
549
571
287
675
730
431
539
483
361
639
334
402
547
447
476
467
653
451
589
633
555
392
382
666
453
593
423
482
524
674
239
532
510
562
446
598
539
460
520
568
590
416
547
503
278
523
603
282
614
380
691
395
558
413
401
494
636
468
481
576
476
537
106
628
552
509
449
664
581
748
428
556
549
610
316
277
535
466
566
569
379
680
121
382
620
129
567
547
648
260
774
363
293
539
469
667
537
406
548
567
499
620
489
518
486
497
513
605
234
326
569
550
719
679
519
319
567
412
430
517
606
389
258
490
531
283
498
510
481
570
576
490
426
357
252
547
520
382
683
0
578
611
155
370
391
416
558
775
361
521
677
451
641
620
528
431
332
434
616
387
497
458
397
279
578
560
607
637
307
487
315
471
460
395
490
371
407
315
571
440
356
316
414
342
366
498
715
533
325
602
179
557
412
421
167
548
445
534
207
539
453
490
398
461
366
680
374
321
398
25
358
290
664
605
672
553
520
423
500
661
294
459
369
17
320
459
432
418
340
595
241
357
468
309
473
607
592
0
604
462
527
521
291
551
376
428
334
538
611
683
396
320
668
440
608
617
421
474
442
580
583
604
472
491
529
448
595
578
612
656
594
399
609
186
497
662
87
164
318
643
420
529
543
492
599
467
478
493
415
365
647
502
332
63
579
290
374
403
474
621
299
578
519
494
394
394
666
452
618
460
669
507
520
369
575
614
630
377
313
568
562
731
497
617
619
12
579
658
582
226
554
505
490
604
704
472
446
173
401
600
697
236
614
443
591
545
486
501
471
199
341
569
459
409
499
447
412
620
709
98
301
624
509
435
424
552
540
512
654
537
486
322
667
739
470
94
535
479
506
493
239
586
480
576
476
619
559
662
462
587
511
423
619
383
398
579
710
592
604
692
687
333
542
414
625
527
614
652
578
312
502
588
584
0
530
600
464
361
661
390
31
579
477
536
563
626
554
376
413
578
639
667
161
154
471
579
632
570
648
389
356
666
497
423
263
687
446
577
555
608
531
571
415
422
601
505
423
524
115
421
247
94
184
647
402
491
508
630
396
562
260
404
465
721
667
417
657
402
669
569
504
558
288
359
742
193
609
515
436
474
623
769
113
502
511
237
383
508
499
548
584
615
196
549
413
466
553
673
398
406
423
449
506
451
556
280
140
433
378
536
365
636
212
695
132
707
713
0
715
647
602
568
416
647
540
482
679
449
537
469
608
444
418
359
348
527
485
11
521
443
212
472
552
626
614
464
462
476
180
505
638
325
247
624
719
463
637
314
608
279
477
524
446
135
561
636
531
478
375
268
536
503
610
198
498
508
395
457
550
499
273
374
112
477
433
392
368
476
502
422
596
350
405
456
448
693
658
734
557
582
278
542
641
321
0
23
527
139
700
574
337
570
148
655
379
453
584
535
664
360
559
549
237
432
513
455
678
592
374
502
302
398
617
520
654
306
570
559
441
500
746
719
592
451
426
640
192
192
565
597
581
339
588
479
538
449
324
476
359
676
349
366
777
530
629
593
507
459
614
540
516
583
566
557
500
437
592
647
608
335
587
616
538
387
499
510
247
540
418
451
506
184
346
443
556
531
302
509
666
431
688
472
484
286
592
360
507
400
463
570
528
423
414
526
577
184
409
469
561
608
381
359
377
447
536
427
512
279
455
449
438
473
535
295
551
482
499
319
696
600
536
682
397
185
572
329
476
431
685
647
304
489
434
539
545
49
217
317
727
452
674
690
505
528
451
268
338
664
637
218
450
521
548
0
500
628
395
650
658
650
380
382
403
568
631
371
163
636
247
539
355
580
542
443
415
211
423
218
738
417
644
599
590
615
618
519
418
626
618
559
488
333
269
0
382
347
88
407
544
565
340
745
312
451
428
357
529
464
530
501
449
631
399
286
524
493
411
553
579
132
591
613
537
562
425
672
523
525
613
539
551
604
614
457
358
655
531
725
633
725
390
481
519
253
127
476
247
542
474
580
244
140
691
535
513
397
687
262
332
554
175
0
356
457
680
475
393
535
403
568
352
517
557
630
646
390
611
504
546
780
459
357
677
618
604
420
226
354
419
377
496
510
386
234
535
581
629
466
296
419
636
424
385
463
506
440
442
550
351
448
321
397
667
299
147
406
580
576
556
538
493
549
653
461
605
404
632
686
471
294
495
488
430
366
555
540
605
678
695
520
631
428
318
326
316
553
576
631
375
312
408
655
412
481
361
498
489
418
557
75
450
124
733
136
261
475
30
449
487
604
620
466
470
414
548
570
592
695
290
764
361
249
406
579
657
655
703
627
320
594
768
362
665
339
230
478
359
351
153
408
417
408
345
517
452
686
534
569
466
737
429
489
573
319
703
552
549
642
587
541
558
491
228
664
424
707
310
721
677
326
485
404
430
649
59
455
145
323
416
520
520
488
613
684
550
538
645
430
618
464
474
294
477
579
501
111
458
634
394
429
443
310
544
660
359
507
728
494
201
670
625
408
438
186
405
156
325
382
385
693
524
472
330
735
703
574
286
595
589
341
281
662
387
262
444
597
604
470
92
553
523
526
456
482
382
615
651
747
480
491
690
488
409
533
544
358
556
629
574
507
216
417
573
562
489
545
413
325
554
567
456
24
621
99
472
554
532
509
293
631
491
528
591
487
600
335
514
397
607
503
544
385
290
173
452
664
350
489
660
409
304
473
347
576
476
493
390
529
612
499
279
380
304
536
354
623
668
484
446
0
406
490
540
82
407
497
505
434
600
360
582
760
467
438
246
421
583
294
633
412
670
470
246
480
582
670
547
398
301
515
374
628
500
498
536
371
466
581
346
194
292
586
389
287
555
414
713
557
232
513
440
551
396
257
638
509
541
672
476
557
699
525
600
492
461
461
575
622
400
433
435
197
401
391
491
663
0
611
336
530
786
517
349
485
574
347
209
470
571
370
139
601
578
244
549
610
475
655
605
219
140
493
595
534
488
490
291
734
683
553
497
512
344
543
444
601
492
419
489
377
309
362
643
602
517
480
525
655
648
0
672
471
700
377
697
533
749
256
280
598
536
556
476
446
167
363
701
298
502
602
596
354
558
654
623
721
443
668
548
462
413
681
551
453
300
194
529
350
546
580
501
288
477
581
175
325
718
425
446
149
564
502
437
625
441
368
451
656
498
573
428
160
519
457
476
361
187
489
462
316
618
571
537
487
310
402
547
661
21
318
297
359
641
515
619
351
347
452
318
416
651
532
612
606
447
0
609
646
523
341
490
422
585
570
679
483
444
406
183
153
458
524
173
361
617
452
446
328
707
303
255
457
709
609
390
666
629
529
731
424
518
249
329
575
331
638
572
682
416
278
592
373
704
334
128
511
532
378
596
531
538
622
605
412
560
460
475
671
560
554
577
160
543
0
471
322
111
501
385
316
608
451
400
600
562
210
271
459
516
436
620
528
612
720
499
434
413
444
477
465
660
524
595
513
475
523
433
677
453
418
463
274
587
470
517
246
115
538
562
500
200
685
474
474
294
606
165
417
670
165
381
385
349
120
257
525
616
452
343
0
464
373
746
403
724
396
461
484
516
603
519
537
264
97
637
590
557
435
316
712
657
236
684
466
342
468
375
405
242
476
509
417
339
389
498
246
273
614
488
626
338
426
579
507
329
528
544
82
593
605
472
610
516
629
639
2
378
419
386
373
645
551
540
573
531
573
532
410
543
198
574
572
460
575
128
641
395
450
589
444
435
363
633
545
490
453
588
358
652
592
600
523
642
487
491
450
538
514
565
160
642
502
326
386
382
692
555
652
473
159
416
741
277
328
532
656
692
564
562
685
571
583
627
437
395
490
288
701
568
396
414
174
253
345
609
403
552
617
523
450
547
609
373
699
481
465
453
585
600
594
472
347
425
636
482
693
281
577
744
639
481
0
432
286
551
541
593
462
599
310
719
579
268
400
163
506
533
477
459
537
617
699
399
590
564
735
629
495
740
602
453
482
496
156
0
719
147
436
436
435
587
655
626
314
275
660
164
451
155
532
631
510
590
390
391
498
508
175
584
420
701
528
725
420
379
503
599
194
568
458
509
266
526
453
143
318
618
545
270
361
621
473
515
537
447
481
390
533
343
493
226
643
237
559
641
354
426
723
388
673
554
684
444
446
592
455
501
651
368
414
654
579
486
488
376
555
365
325
580
624
410
575
614
457
460
554
511
395
423
605
434
322
539
642
605
483
664
604
281
371
580
327
724
215
256
327
559
268
277
363
537
479
414
379
549
188
318
277
272
636
622
378
567
577
314
465
621
521
392
703
398
17
385
389
469
636
654
501
411
341
695
675
448
731
352
286
404
447
454
626
632
758
621
626
425
577
480
205
558
460
413
310
532
512
357
585
487
398
587
499
440
342
333
371
455
632
193
409
421
551
441
517
711
421
530
444
510
447
327
375
649
588
334
586
530
599
264
442
689
521
336
483
172
384
587
588
513
493
395
605
241
335
389
351
481
300
579
333
564
413
719
465
506
496
601
484
356
585
546
520
548
748
374
396
654
325
613
546
678
543
376
578
685
467
500
477
246
566
305
513
528
475
480
537
477
485
379
500
626
496
623
639
378
659
417
350
306
474
437
564
545
610
180
517
680
444
0
611
115
489
447
169
495
579
463
522
346
591
428
505
302
221
410
513
434
370
562
328
311
414
719
645
487
508
605
352
524
539
587
490
421
570
497
450
549
492
460
503
429
0
488
361
29
770
515
629
401
624
318
414
476
654
523
500
385
613
526
768
436
600
467
451
516
300
489
542
583
27
322
515
621
342
483
507
375
493
476
652
211
434
448
125
634
207
483
533
685
527
304
601
364
706
418
355
658
448
606
598
456
500
185
585
670
681
673
669
390
511
356
578
507
78
590
507
417
521
546
417
472
549
651
336
555
723
609
438
412
611
524
370
563
511
327
628
453
656
651
739
447
667
550
637
397
554
679
345
402
540
529
552
566
578
543
472
478
290
745
589
658
347
427
472
353
511
465
229
326
595
450
462
342
551
400
597
571
268
344
531
546
501
590
542
518
122
566
616
218
717
673
629
488
273
676
404
643
332
546
674
664
584
513
396
381
316
377
538
512
523
559
621
398
497
313
476
477
25
624
389
672
444
513
396
671
0
598
382
409
604
427
532
440
359
420
297
544
639
672
611
400
254
267
469
407
316
291
457
387
737
663
682
213
672
534
655
475
410
553
526
430
576
393
414
78
421
405
469
516
495
590
233
348
542
382
378
548
578
500
465
492
571
517
686
608
638
612
685
467
380
193
548
582
378
279
661
473
603
477
464
642
684
501
593
84
705
481
541
457
473
570
645
625
318
139
443
581
285
528
582
567
389
441
306
483
299
478
612
350
554
523
584
264
462
350
483
499
469
437
514
719
116
486
493
397
628
164
692
748
476
526
389
601
277
460
446
404
425
500
357
714
571
452
475
597
589
442
614
521
412
539
431
586
304
525
465
538
510
493
664
542
484
603
313
322
501
394
273
463
639
481
403
530
496
477
700
497
476
590
537
316
346
418
515
398
578
689
346
287
778
710
653
291
438
505
418
23
275
668
551
686
592
558
462
544
538
441
516
350
358
300
441
417
510
462
406
399
543
689
364
442
427
482
515
416
669
518
615
520
474
592
133
479
477
497
469
533
531
534
371
732
340
463
456
380
527
169
540
559
547
406
326
339
665
577
269
672
481
541
635
323
390
693
366
473
719
218
538
465
532
533
428
391
612
482
221
510
662
647
552
368
355
597
648
675
621
319
251
552
497
575
503
304
660
602
647
348
544
217
588
652
607
469
501
332
526
481
395
676
378
381
522
650
623
415
728
433
487
546
722
324
680
566
298
733
604
399
634
374
209
619
532
396
291
583
378
516
468
397
332
410
402
559
386
474
646
571
487
468
499
184
587
419
86
435
746
754
342
537
711
571
406
513
509
553
566
412
738
421
365
537
412
538
675
533
561
579
562
402
360
600
55
560
574
675
500
622
321
508
589
409
655
521
555
518
544
612
158
625
406
546
0
368
580
147
641
294
703
236
462
425
406
465
426
406
481
657
559
410
588
660
361
705
565
575
616
510
525
188
577
474
292
566
556
594
484
481
491
379
497
342
412
517
670
315
277
585
510
743
517
484
475
565
304
129
341
760
545
556
308
452
244
434
637
522
521
603
532
593
560
579
604
484
681
568
496
683
286
310
434
609
431
257
478
334
604
587
597
470
648
400
553
510
344
336
549
473
457
340
660
730
434
672
318
463
548
595
408
436
638
475
374
647
550
656
328
404
470
208
393
625
711
513
325
493
393
190
316
339
323
433
532
574
267
466
591
391
629
296
673
504
445
564
560
509
685
623
417
614
272
423
263
626
138
106
608
306
483
638
0
229
504
406
723
630
637
678
623
590
451
344
665
544
361
684
257
598
652
634
641
560
504
612
390
313
553
467
437
638
414
435
347
338
658
584
414
469
596
632
654
533
601
367
439
709
476
384
156
589
464
474
466
440
534
486
355
677
545
582
513
239
486
558
269
315
388
543
264
479
534
598
609
275
681
331
477
381
331
447
590
536
655
780
615
378
538
620
630
619
607
346
485
420
316
593
581
573
568
521
230
757
542
492
673
558
295
546
515
535
566
445
593
598
381
551
463
216
482
318
571
373
475
368
277
314
390
584
158
542
362
389
603
431
708
443
463
513
376
640
559
238
392
631
429
227
446
275
695
510
403
572
317
461
374
530
484
523
662
525
293
716
694
678
480
336
274
539
472
652
293
379
524
441
474
600
371
646
540
540
462
494
275
170
500
497
666
594
353
347
455
551
335
593
460
543
344
429
588
517
622
517
340
159
450
582
488
750
678
350
631
635
485
318
429
667
280
533
145
548
568
571
575
603
581
463
504
655
539
397
468
266
489
656
302
497
387
418
44
307
600
597
685
575
634
579
545
709
444
529
503
0
537
23
458
314
475
581
349
465
507
386
338
322
388
442
399
390
453
401
118
623
588
404
493
318
502
654
400
690
251
528
516
479
608
469
548
97
720
544
379
727
447
587
300
720
456
593
546
375
622
299
626
454
222
397
510
599
395
448
757
336
0
100
315
362
471
387
369
516
635
399
499
456
165
447
681
214
238
583
312
327
273
487
387
250
328
404
486
557
480
439
700
438
718
648
485
679
426
700
582
469
491
287
668
453
689
364
390
702
674
387
401
400
486
566
628
707
597
409
658
570
406
536
182
414
591
122
607
660
681
559
410
686
537
622
304
548
479
525
130
605
279
716
705
383
308
394
482
488
232
346
687
511
344
652
419
511
558
518
101
486
590
463
617
511
506
627
513
616
495
375
55
554
497
516
631
515
520
476
473
565
437
357
441
682
561
417
361
520
104
322
328
427
520
526
354
461
586
616
417
434
401
499
450
377
188
593
404
114
660
292
394
127
502
305
457
479
370
559
488
668
514
707
537
472
678
247
467
462
676
416
509
633
528
590
380
172
473
562
602
542
250
405
381
478
545
507
604
307
373
648
742
517
418
520
339
0
533
593
637
94
462
717
209
658
502
423
613
524
356
514
272
421
604
379
708
675
309
710
457
454
639
595
493
663
552
598
609
603
479
199
718
375
524
615
366
538
648
460
483
473
396
458
353
483
437
329
578
527
241
269
439
507
611
447
432
334
367
539
562
567
602
698
441
495
0
471
500
510
499
629
746
178
543
418
500
729
164
269
484
126
217
557
488
562
570
752
500
435
582
367
407
385
394
369
731
196
547
360
519
186
325
424
625
706
535
539
369
607
467
585
553
652
636
632
235
570
609
604
587
428
584
281
536
387
405
309
244
324
539
531
302
546
574
439
619
470
224
510
321
217
370
691
417
445
376
263
413
503
339
464
304
425
538
711
560
366
631
625
646
453
599
667
553
523
221
441
497
418
513
327
673
571
511
325
527
492
544
398
451
488
447
590
556
570
476
73
304
165
450
475
511
562
387
328
389
530
602
580
632
727
712
420
255
735
700
566
369
369
561
441
358
518
456
517
694
375
556
389
606
443
426
445
752
469
514
512
578
362
353
630
380
343
570
121
483
430
603
356
517
616
392
543
131
614
287
551
412
222
532
708
372
504
487
601
441
612
666
412
458
406
0
645
199
522
550
474
548
284
497
333
13
462
397
96
624
537
286
523
455
511
692
508
334
410
540
440
692
721
488
495
560
465
534
575
264
353
647
338
459
183
424
347
495
631
212
511
643
618
581
661
729
387
555
424
508
633
432
539
430
595
425
464
528
488
278
395
616
762
575
412
375
644
622
622
372
413
528
696
515
58
446
466
418
458
626
667
486
638
685
663
422
277
497
602
364
207
612
331
446
450
589
374
324
567
609
533
275
553
426
426
690
530
453
199
251
431
352
411
399
268
148
348
475
301
624
521
270
564
588
462
212
264
531
500
423
244
461
651
560
529
573
387
427
411
441
528
691
533
493
301
415
372
349
324
408
408
427
285
323
403
500
501
478
432
693
620
546
512
412
301
511
640
673
640
585
338
499
428
521
593
374
459
444
624
288
240
414
391
524
448
489
711
537
547
447
369
714
358
511
542
628
518
389
658
379
306
527
431
592
625
459
538
246
168
650
398
314
464
509
522
161
325
443
335
340
338
676
500
0
683
450
503
516
583
505
527
587
526
278
404
600
0
506
562
268
231
293
558
228
672
334
345
384
347
544
452
554
359
637
508
559
482
419
692
444
571
612
494
483
301
571
311
361
223
544
384
612
53
310
256
519
785
584
387
453
544
585
493
581
488
455
370
538
476
476
305
586
594
580
388
378
549
490
361
646
450
324
586
638
342
623
554
635
404
314
432
416
463
597
482
536
457
516
481
473
579
526
313
682
536
186
463
404
525
561
39
438
472
604
658
334
391
447
410
564
471
617
409
556
472
309
596
560
271
22
552
580
627
640
376
581
200
527
559
260
324
567
760
333
403
628
608
497
465
175
527
777
771
555
364
457
421
452
646
586
542
432
462
472
687
171
549
442
506
361
494
520
633
625
585
521
502
549
388
626
516
753
549
476
565
422
431
497
580
425
556
542
421
462
325
407
436
285
487
327
270
566
631
426
343
506
293
666
440
552
178
604
0
556
623
520
615
701
499
489
505
9
495
437
636
333
379
652
346
266
527
331
560
524
596
595
395
705
143
642
517
610
463
701
554
543
539
563
555
445
579
447
578
457
446
561
386
374
312
487
598
423
676
481
613
465
463
450
640
371
539
330
469
458
293
545
525
559
550
326
395
455
473
610
654
599
464
265
610
417
468
552
746
636
406
534
433
564
368
565
372
259
486
517
680
345
639
449
642
470
679
567
613
483
633
486
0
412
441
216
380
504
274
618
561
430
560
541
572
302
155
534
447
208
487
717
347
691
455
433
0
663
426
674
508
537
455
588
0
522
556
497
403
591
334
381
29
418
676
603
674
491
430
390
510
412
531
513
514
620
515
552
554
270
232
555
207
421
527
437
475
612
498
295
569
344
451
692
489
452
268
643
535
435
313
209
505
596
363
477
557
659
326
466
582
200
430
355
681
570
493
526
532
484
516
540
378
555
466
724
486
393
647
502
530
612
548
517
371
366
567
457
485
563
392
700
702
407
517
688
421
597
538
500
603
430
165
268
319
674
382
435
481
527
578
487
384
640
403
352
528
590
716
305
600
514
584
484
550
627
511
653
715
629
313
429
399
373
688
430
374
684
509
741
308
762
352
108
517
616
265
402
550
387
474
680
426
378
551
166
315
458
456
774
535
397
358
450
425
713
324
458
508
493
413
534
286
406
327
287
283
720
691
545
358
598
527
580
618
417
414
707
354
477
491
566
447
302
0
262
426
515
365
703
602
119
550
582
335
537
527
544
504
618
539
397
322
251
251
608
656
528
517
401
662
580
523
372
748
471
647
557
454
676
631
708
552
570
577
538
81
687
378
428
345
278
454
571
603
594
424
440
533
594
435
495
229
530
676
463
600
579
526
571
571
574
8
516
583
232
599
503
93
648
526
387
571
471
247
678
430
498
210
580
545
361
324
386
256
154
487
473
412
628
190
453
459
673
281
391
445
545
595
614
412
586
373
311
565
687
380
607
561
546
226
414
617
439
610
431
455
520
552
562
376
406
496
581
480
748
647
480
382
453
282
404
530
310
442
451
506
523
479
435
516
366
725
730
415
594
361
497
296
694
418
411
361
492
472
640
520
506
541
305
414
511
415
736
320
565
656
267
582
689
762
327
684
404
476
471
152
338
362
625
410
411
483
714
598
620
321
600
548
495
427
566
2
579
500
398
546
593
591
278
388
640
184
412
254
328
505
444
473
668
456
489
490
532
199
402
427
399
532
557
551
623
490
309
287
366
509
256
495
341
522
485
499
648
708
472
494
629
450
698
356
303
417
324
557
749
300
472
571
464
343
298
452
645
553
489
406
328
247
575
501
383
599
107
700
719
544
524
548
255
470
669
618
570
392
300
82
577
442
671
536
484
574
638
469
357
582
500
220
571
504
422
556
598
655
692
507
394
397
469
510
320
501
596
473
558
332
346
361
643
446
394
402
472
685
463
650
352
458
456
522
443
450
299
600
538
562
560
739
413
744
456
192
490
517
396
629
321
474
533
619
483
601
639
578
506
338
576
394
542
747
332
351
599
389
407
344
416
363
570
775
334
416
559
518
360
389
341
443
420
691
245
615
308
708
624
545
187
351
373
162
550
332
696
499
503
491
438
458
488
505
186
469
543
486
545
60
574
659
363
628
555
335
585
446
206
460
502
514
625
456
410
485
286
465
420
230
344
576
652
583
40
629
484
308
491
167
230
468
525
755
559
348
321
637
305
621
278
538
524
477
502
449
711
534
789
362
589
316
492
334
496
582
446
574
596
262
457
392
608
491
529
569
679
343
622
427
505
558
540
463
567
443
439
139
458
507
598
484
367
524
367
527
219
422
454
442
488
281
353
659
596
560
365
552
746
416
347
550
496
409
434
510
406
307
343
627
454
495
386
530
454
401
677
313
415
453
523
539
548
560
538
604
575
615
429
239
366
454
606
500
473
465
465
436
261
261
363
611
523
620
700
705
419
619
0
480
530
380
780
626
437
377
563
580
487
512
368
716
381
557
549
576
606
533
557
534
533
571
366
710
413
487
576
529
592
442
566
465
448
295
442
645
486
282
463
598
531
595
366
525
546
525
504
717
480
661
548
378
558
532
497
229
520
386
375
264
545
317
394
562
326
361
419
517
585
453
637
520
629
704
652
0
580
511
427
598
352
394
194
323
531
374
508
636
415
433
317
412
748
672
370
733
452
533
483
379
346
150
464
196
395
356
648
484
429
261
620
545
598
232
213
357
609
636
474
543
546
560
491
0
476
442
461
567
547
381
367
130
420
483
626
532
423
535
549
480
544
615
733
688
512
319
541
480
644
416
661
566
536
134
430
168
662
671
622
433
48
441
280
311
611
506
402
498
487
476
421
588
483
549
210
607
669
623
482
426
457
474
0
261
140
619
339
520
686
458
662
333
531
275
428
602
516
528
483
465
325
413
525
472
412
367
504
481
456
567
274
730
430
423
400
417
642
467
604
559
446
549
315
324
583
450
524
212
529
504
511
561
563
362
439
101
543
615
584
487
585
397
229
467
605
478
374
311
437
447
464
784
576
470
567
427
543
300
722
476
485
521
603
443
420
253
302
485
578
78
504
686
540
442
335
330
659
616
301
490
759
540
0
486
287
628
254
571
175
625
715
388
572
655
451
603
485
541
560
502
230
436
418
502
413
557
736
88
472
510
532
616
569
468
775
185
343
493
589
579
524
684
271
501
364
385
393
675
421
655
550
643
399
484
585
255
544
102
562
684
217
598
417
592
587
578
377
348
352
489
624
575
297
626
467
391
659
523
322
651
487
500
444
608
104
563
502
487
542
550
357
590
464
303
572
604
384
670
380
494
491
573
643
333
516
359
516
536
515
489
333
599
543
488
571
423
256
589
300
733
165
574
464
631
597
548
741
237
624
442
336
422
506
370
246
194
419
565
562
260
327
577
546
619
526
135
444
355
511
18
674
351
455
535
315
453
664
624
704
755
549
351
413
546
400
724
262
427
574
451
169
592
496
533
577
542
356
597
565
513
305
580
394
332
538
615
726
589
529
565
511
358
326
390
763
417
535
570
359
500
351
620
379
513
164
552
253
299
655
651
590
399
433
336
282
634
686
179
0
521
409
366
506
435
464
689
662
493
727
293
424
570
458
663
93
530
161
585
392
422
577
367
541
338
633
385
5
524
503
536
330
562
397
468
335
655
657
467
221
395
9
578
450
495
431
22
326
492
623
500
257
297
443
561
623
534
533
536
516
749
630
515
410
371
444
512
495
216
561
662
663
541
343
677
390
507
431
237
701
194
522
600
362
406
668
362
290
599
534
575
530
573
343
407
484
628
278
536
690
359
578
621
0
218
472
429
562
225
111
451
766
731
664
547
505
523
472
565
572
601
723
444
447
476
389
487
86
94
385
563
550
483
585
610
564
509
476
429
274
475
475
603
721
518
541
642
438
587
255
301
208
488
573
353
548
501
163
242
363
582
354
761
551
758
303
549
580
498
316
573
178
470
486
584
579
636
424
557
528
629
712
648
553
467
519
275
526
699
473
439
763
490
417
487
485
325
485
511
539
473
350
455
623
513
596
461
330
471
104
497
636
428
680
512
631
417
485
647
553
494
541
395
504
256
194
671
130
689
410
476
295
743
618
347
641
434
685
558
414
605
483
372
608
78
118
458
475
434
521
423
517
590
746
292
660
505
263
551
480
664
253
629
307
719
545
367
296
547
508
200
615
528
607
429
571
207
402
500
661
692
494
277
338
456
518
318
447
635
571
692
635
621
396
678
519
555
688
166
403
467
658
484
527
539
562
413
408
514
382
536
382
535
443
673
630
365
554
263
540
632
440
434
378
409
0
615
390
293
518
603
598
504
248
650
694
210
431
572
514
277
472
675
639
554
428
342
303
459
417
346
261
324
277
536
66
124
270
592
693
446
473
650
550
236
364
347
477
504
465
780
534
607
584
537
478
520
546
645
447
580
465
379
515
481
638
643
435
391
488
586
0
625
598
233
407
544
488
51
441
679
365
430
457
574
572
522
671
463
375
583
140
433
512
265
537
713
703
546
372
568
766
517
531
657
315
534
455
678
323
651
490
343
286
746
292
639
588
400
542
432
416
388
552
449
651
435
671
351
322
470
567
245
713
27
488
499
620
278
732
528
497
588
318
469
503
380
534
563
435
584
468
292
529
720
729
375
561
580
326
232
475
647
364
628
580
499
611
619
167
633
290
170
533
425
613
608
537
398
610
615
679
521
384
336
393
249
567
606
363
730
603
596
439
361
407
599
450
488
452
279
392
528
610
427
362
564
604
559
489
628
518
622
463
728
274
343
326
208
416
370
630
314
542
306
485
418
499
434
700
531
235
596
413
317
454
622
453
613
557
307
455
467
345
579
351
652
417
540
513
342
85
423
487
11
458
746
373
576
148
348
460
481
446
423
692
546
489
664
625
363
387
182
171
569
510
423
373
381
542
439
268
294
579
559
499
454
520
750
275
602
581
412
273
516
493
631
619
394
551
517
385
401
747
53
402
555
591
689
400
718
456
610
503
576
538
642
58
592
486
361
348
394
680
412
447
550
471
425
285
571
318
373
396
403
577
429
438
300
513
490
643
569
436
490
346
453
510
585
595
538
447
395
426
311
653
542
590
412
503
327
492
495
393
647
633
421
575
740
517
489
662
483
464
534
417
600
499
669
556
499
445
480
554
519
455
503
555
445
98
515
396
555
168
322
253
610
445
215
531
720
303
363
432
318
589
562
606
577
233
406
556
404
453
470
762
553
266
488
513
588
147
553
428
388
649
278
203
551
0
523
637
676
348
460
641
0
439
409
153
321
493
552
444
467
540
641
559
655
665
553
405
233
486
544
499
402
593
609
725
513
526
615
358
289
447
483
479
483
538
367
436
702
188
339
427
523
579
596
219
536
573
530
631
600
687
10
347
423
657
479
568
411
510
415
695
596
302
222
454
645
504
600
523
219
523
334
576
633
303
575
583
588
310
391
266
566
639
642
431
484
504
654
413
538
387
378
483
627
682
0
233
411
4
466
388
692
518
547
603
260
427
140
598
186
351
560
462
723
211
209
655
463
441
561
587
288
624
377
30
183
423
270
524
258
459
194
443
629
494
436
550
724
276
382
518
426
703
320
519
409
561
521
525
646
318
448
516
100
6
432
607
565
628
408
0
612
502
388
486
514
407
662
221
359
318
556
309
249
297
557
249
248
416
555
410
726
431
575
741
456
572
507
368
675
326
641
424
548
73
268
464
655
504
292
711
572
419
443
346
707
558
652
564
455
567
312
568
542
321
303
504
367
294
434
673
383
455
441
535
242
419
173
474
415
713
408
302
648
442
445
200
88
731
599
520
434
519
579
592
433
450
203
530
439
157
358
577
396
480
588
721
535
637
536
592
464
316
622
388
494
602
386
477
531
312
497
613
439
546
291
628
666
642
505
421
213
416
240
502
587
583
607
483
621
447
446
153
579
695
299
620
604
511
295
441
576
394
450
478
25
236
649
445
428
562
554
723
644
703
577
471
546
106
538
709
335
724
708
343
322
644
650
340
412
572
469
485
436
427
608
598
515
548
480
409
252
738
489
587
305
436
727
663
456
341
604
454
544
301
386
370
447
480
605
601
527
566
649
289
596
409
772
446
315
230
335
728
446
445
376
658
695
514
354
497
413
382
666
406
675
642
680
480
492
360
632
390
598
576
237
369
595
399
565
614
295
370
654
326
411
431
246
542
529
538
449
392
0
445
491
534
575
443
686
349
500
506
312
605
703
466
575
321
396
569
554
511
558
408
503
413
734
492
401
354
216
713
340
508
350
173
247
459
523
301
173
446
479
673
394
518
559
443
623
612
528
531
523
546
471
504
354
297
359
516
498
714
695
345
509
330
483
530
599
453
374
426
565
379
375
373
416
646
621
396
700
721
392
495
299
623
698
272
668
519
614
384
347
528
242
637
383
424
324
76
597
315
466
450
530
628
531
507
612
623
353
501
628
677
553
347
526
642
649
474
724
337
384
502
374
517
395
443
541
571
509
343
275
379
638
617
396
244
637
344
373
342
622
532
626
472
417
627
374
476
610
445
532
548
437
104
509
757
233
508
684
631
477
562
245
632
554
553
283
686
363
227
604
517
526
650
644
421
155
324
739
493
629
437
521
245
432
431
494
610
514
485
339
378
388
291
365
265
145
652
648
495
454
450
545
579
422
625
441
519
409
308
450
403
168
270
148
278
460
500
504
535
594
342
630
474
630
670
530
550
535
291
251
416
427
494
511
450
571
519
381
189
539
541
481
477
535
642
663
644
687
584
651
200
462
685
418
432
618
652
420
663
509
324
452
312
124
677
329
511
0
510
395
644
671
589
431
735
575
542
587
520
512
413
372
553
359
412
318
65
481
485
659
293
383
69
456
593
640
515
655
725
617
393
475
536
337
289
569
363
394
489
564
471
649
427
253
501
297
402
415
481
510
164
123
647
570
688
490
508
394
350
407
574
612
431
88
667
278
546
511
549
419
323
608
495
470
207
429
526
329
175
501
641
605
431
584
705
546
245
226
114
377
656
498
456
256
591
311
516
493
348
212
405
544
584
562
722
732
464
519
592
17
339
413
507
620
408
432
528
424
464
535
553
465
316
381
375
291
717
433
514
479
552
196
563
453
650
392
428
426
645
498
178
224
490
415
396
590
580
317
606
701
415
497
482
465
543
513
533
742
472
422
386
512
106
557
595
408
541
673
545
300
442
741
495
447
653
515
550
325
445
611
242
450
225
558
160
308
386
549
602
501
469
618
281
271
289
324
645
575
525
623
546
390
684
261
623
462
597
516
392
160
664
189
193
522
465
289
315
501
597
318
442
88
592
311
319
604
306
408
594
458
455
664
465
460
702
120
599
331
313
700
483
562
188
561
676
414
488
436
388
445
736
454
94
164
621
437
616
538
500
513
559
512
486
556
511
602
545
229
457
560
439
602
411
443
554
496
464
527
536
627
394
250
645
622
384
638
519
545
317
290
658
536
226
323
508
584
543
526
423
442
495
538
382
462
452
242
291
369
540
511
532
677
605
550
626
509
381
304
225
414
378
569
483
441
461
507
537
444
622
616
603
234
180
440
325
557
523
425
351
370
561
533
223
534
464
411
412
531
651
382
553
573
396
639
268
525
452
375
551
526
289
461
642
504
664
188
655
492
533
457
627
454
356
599
375
614
524
696
361
659
528
438
315
727
451
326
391
356
449
538
358
464
623
407
454
559
618
457
459
600
695
593
778
434
270
361
526
412
247
389
498
566
516
0
710
429
402
230
400
440
451
640
490
478
572
669
580
746
619
563
560
564
253
458
241
437
471
280
562
271
376
372
701
478
510
355
612
559
363
445
622
737
507
459
406
531
607
499
375
458
511
344
646
550
426
409
331
527
524
567
623
424
328
425
220
289
274
85
96
429
367
553
434
0
509
374
543
436
456
363
284
480
647
335
732
622
400
659
647
536
543
637
523
771
468
431
266
665
503
663
536
345
537
316
414
391
356
656
417
413
595
347
568
491
420
712
733
612
334
592
500
205
635
384
559
45
522
446
183
582
662
539
302
325
584
531
590
417
449
315
254
698
400
640
432
370
607
273
478
566
301
230
334
421
359
66
381
616
691
377
647
317
473
503
659
514
418
606
421
316
590
532
450
435
562
435
143
372
401
610
703
655
659
129
465
214
424
636
357
439
513
549
667
285
462
648
621
462
546
551
455
476
511
689
390
627
695
347
558
512
361
454
543
665
494
633
520
497
542
605
499
566
546
568
350
450
496
551
103
548
433
589
505
570
389
494
381
501
577
608
462
357
333
545
692
509
442
417
464
300
421
634
354
159
312
231
572
579
400
521
585
764
329
527
704
522
499
297
449
449
243
498
743
648
465
715
397
740
378
234
570
634
580
520
539
713
363
435
281
528
644
573
567
516
466
632
465
208
367
527
448
557
539
462
625
438
406
664
517
326
347
362
75
498
451
468
593
509
358
584
523
580
420
549
459
609
329
468
634
632
666
536
503
647
646
338
531
411
438
334
714
479
494
556
716
0
381
345
271
324
213
184
648
539
477
650
638
554
539
653
370
507
310
315
325
299
359
627
572
689
483
604
501
580
470
629
377
391
309
546
549
635
386
501
398
533
598
437
538
622
753
653
394
551
557
565
164
292
445
514
401
462
400
438
377
675
552
660
618
575
419
577
560
375
497
599
302
591
372
507
416
576
617
331
598
676
639
548
643
602
538
572
339
543
261
261
440
508
672
123
339
500
549
637
610
386
430
512
685
443
343
361
559
537
601
663
344
595
579
577
569
459
363
175
429
412
197
571
540
385
571
540
467
610
525
625
521
543
501
718
466
400
642
471
426
511
414
328
643
623
403
620
166
348
563
417
554
365
445
571
496
532
402
678
424
220
318
241
123
432
629
540
447
696
484
430
410
428
346
231
628
512
549
513
471
691
475
499
490
773
509
597
561
419
346
537
639
518
517
436
519
478
465
711
455
469
577
464
288
476
270
550
547
432
457
445
688
477
132
590
324
595
459
556
664
632
550
640
680
632
204
494
272
558
654
313
367
684
647
500
599
554
393
583
378
664
738
474
515
542
454
639
530
602
514
580
554
526
534
513
368
652
527
596
358
492
647
720
163
535
500
476
302
612
637
374
577
518
389
352
392
284
464
0
669
535
263
253
456
476
570
610
544
451
313
524
413
611
226
483
713
579
352
450
408
582
35
463
228
303
443
523
427
635
407
493
599
694
325
609
430
372
264
439
433
330
564
483
436
319
416
479
659
431
536
746
609
490
449
426
268
719
441
754
511
621
431
523
387
433
643
624
590
404
308
604
478
389
765
301
413
516
414
366
700
425
508
535
471
552
393
680
462
376
392
554
401
405
274
586
292
705
29
382
457
469
218
670
580
439
289
333
303
701
261
257
548
434
450
0
502
492
555
210
677
667
529
663
553
352
533
567
400
112
734
554
512
257
455
113
390
739
578
310
782
530
475
691
546
366
360
715
222
243
495
501
436
557
725
346
385
573
496
654
417
470
538
543
668
452
684
485
447
346
609
453
593
456
595
353
571
466
197
510
674
606
429
355
528
778
625
134
481
229
535
554
530
595
561
476
702
629
418
517
350
504
171
359
463
485
147
375
524
475
773
587
695
300
629
507
489
525
508
396
476
126
339
380
214
405
606
236
289
458
525
532
614
567
694
331
726
514
150
435
489
506
350
479
524
284
490
320
690
501
471
529
678
666
372
608
498
739
459
556
375
431
508
456
536
525
456
743
721
311
373
202
492
210
452
571
270
506
431
258
491
518
416
372
418
496
391
629
405
86
376
370
414
463
413
485
441
612
324
450
626
643
691
329
579
430
245
601
384
510
120
425
685
670
400
617
582
506
211
415
376
643
608
507
597
361
428
286
162
649
413
0
413
687
416
392
403
437
382
432
459
527
740
468
587
430
569
582
417
732
236
707
545
266
425
256
275
246
351
453
680
403
697
514
750
232
296
529
567
584
490
437
614
540
619
655
484
657
219
634
341
285
603
526
716
482
301
393
593
590
696
429
469
593
234
571
456
397
614
213
565
661
481
332
192
444
543
666
457
432
674
368
248
312
329
424
597
593
362
458
643
574
397
477
612
291
348
437
285
328
170
219
429
592
537
324
712
446
370
590
166
252
315
619
595
463
461
315
512
384
584
575
554
678
438
614
372
522
322
373
185
438
537
440
586
341
236
324
382
467
504
385
573
448
592
578
350
578
589
486
576
568
308
627
508
427
452
440
484
590
359
754
677
606
505
455
560
443
336
88
584
480
535
314
463
607
462
503
503
500
519
623
529
417
672
360
493
475
519
491
478
462
492
488
638
469
619
383
431
526
379
645
485
655
536
511
514
511
490
383
560
272
614
677
544
299
273
368
107
338
669
444
253
381
390
448
265
586
498
661
487
481
439
546
592
574
430
615
449
350
531
483
253
607
379
366
393
239
725
507
317
545
265
545
577
0
610
533
541
361
593
438
361
436
485
418
313
393
198
547
614
278
460
469
442
660
696
316
423
279
421
551
655
371
366
493
457
576
735
405
446
257
502
391
427
551
564
530
579
533
492
376
542
633
401
498
649
376
598
462
655
624
367
668
454
450
389
560
394
545
311
545
527
170
441
315
541
435
412
655
466
135
456
556
515
582
668
412
149
751
380
630
587
146
618
716
403
418
294
492
506
430
739
738
526
610
201
364
482
573
490
568
586
265
489
546
700
340
561
633
564
411
324
195
431
495
491
276
428
494
463
344
585
540
646
642
439
460
494
740
486
521
546
514
488
285
476
267
18
463
375
513
553
520
656
47
521
444
559
778
589
490
562
473
452
538
445
531
467
374
269
338
521
540
521
120
361
475
555
580
227
388
493
585
348
457
254
636
638
250
732
402
585
433
477
347
497
407
515
230
392
482
547
568
604
585
304
641
468
328
366
313
318
384
553
273
389
308
464
381
657
598
712
361
631
506
371
493
689
189
569
662
497
598
401
717
665
333
504
524
534
415
292
540
349
557
614
401
532
231
433
551
579
671
351
564
274
571
264
562
654
446
482
376
535
471
0
490
607
476
346
540
430
641
621
510
722
462
494
555
751
497
600
619
571
501
522
737
637
209
574
711
529
620
682
274
27
385
616
178
478
508
457
581
160
366
577
591
407
486
414
394
585
463
309
492
505
566
365
628
545
341
384
339
539
428
578
460
259
469
590
500
360
582
629
514
590
633
571
558
454
338
231
505
343
655
338
530
527
556
543
480
426
574
566
480
340
641
404
183
479
647
298
459
422
216
344
507
350
565
402
508
492
379
446
499
292
557
368
639
382
680
405
383
659
477
517
316
504
275
633
531
424
546
432
362
673
541
438
352
367
715
679
333
536
364
483
223
468
474
458
491
451
550
536
93
513
0
469
200
615
430
559
556
445
611
550
571
451
533
487
316
645
161
614
439
649
553
275
533
411
602
303
538
714
350
487
462
425
523
347
348
647
512
547
604
596
353
561
505
507
475
328
379
502
392
598
387
380
565
624
624
323
711
259
612
454
539
327
400
612
533
467
585
618
537
532
566
593
477
549
366
530
329
714
600
371
470
603
567
422
334
267
423
369
436
430
467
227
433
438
468
424
728
623
479
611
647
713
525
341
464
598
581
549
401
589
491
511
513
502
434
573
514
612
702
628
147
466
180
713
458
499
705
437
556
470
436
741
578
230
634
733
546
534
453
412
208
338
641
182
169
657
351
763
519
451
617
667
590
595
515
640
546
505
464
67
467
470
523
419
547
341
391
443
640
495
473
715
609
570
586
423
747
360
486
458
327
524
347
584
365
219
490
341
429
589
522
670
600
511
532
739
287
449
560
460
315
74
387
445
611
384
429
313
592
470
355
633
557
508
682
306
164
592
344
311
179
296
281
511
107
606
516
439
433
575
522
656
559
582
329
394
433
412
623
727
632
706
489
537
641
436
489
370
488
373
431
514
407
594
651
437
274
265
726
544
450
350
224
415
573
554
692
503
525
0
340
621
410
0
542
275
549
33
648
588
649
556
586
411
482
458
522
538
485
665
553
487
483
402
370
498
636
599
584
592
502
164
654
661
574
231
319
397
611
466
354
511
458
373
464
363
488
581
619
373
492
416
102
546
427
235
533
682
426
534
307
580
446
484
478
232
301
244
227
463
501
612
407
674
533
348
617
505
631
592
423
373
566
445
571
546
560
617
329
590
476
190
748
547
386
517
378
497
503
228
230
685
599
612
501
330
240
163
483
560
370
253
362
560
620
395
613
181
407
537
488
461
478
644
616
725
659
590
672
600
660
425
579
160
383
161
551
563
466
346
544
519
729
417
449
518
261
741
479
610
531
462
471
65
437
182
397
90
102
305
509
553
657
431
408
450
565
405
561
682
325
394
459
472
373
155
395
586
536
586
503
447
508
616
563
600
480
576
389
589
585
596
327
575
511
235
387
557
436
501
647
579
572
406
545
346
650
482
360
130
471
502
601
441
391
319
563
397
360
620
75
334
390
381
422
506
419
473
423
575
296
480
705
499
446
505
397
342
381
310
568
538
536
334
608
445
286
508
392
280
484
402
643
451
693
538
2
406
446
520
327
393
439
489
247
669
301
230
590
487
320
511
464
481
728
0
287
659
581
675
372
665
412
335
160
578
539
558
0
598
384
547
509
447
402
360
564
648
409
655
269
538
496
513
503
719
646
420
436
594
367
720
459
733
500
518
386
286
270
416
588
212
655
477
410
508
492
557
153
568
507
470
231
357
506
521
173
247
591
278
483
118
551
542
257
622
523
242
662
523
485
147
501
584
604
429
605
691
438
499
556
499
505
452
582
436
431
673
187
474
707
531
352
712
304
555
411
447
147
376
0
424
589
320
578
321
783
379
683
791
386
477
324
381
484
427
391
496
181
492
468
518
316
632
610
600
423
470
201
389
371
426
594
403
544
564
563
587
538
606
701
457
601
778
455
411
346
554
272
631
406
506
317
706
350
481
473
326
501
213
634
591
428
528
444
600
589
285
461
426
650
601
692
384
498
565
635
470
521
353
629
446
571
496
609
587
664
610
568
707
594
464
468
409
561
268
478
459
438
437
618
508
500
408
523
564
295
456
524
320
417
382
331
644
681
594
434
512
550
498
501
513
677
531
231
519
585
378
173
386
583
262
575
501
388
500
412
96
464
331
419
359
94
663
363
487
679
570
401
522
559
655
222
499
504
630
321
518
527
462
421
615
559
352
505
471
449
426
692
325
414
539
535
396
249
316
616
442
479
572
453
452
477
424
428
499
447
568
262
391
500
732
361
722
486
204
628
480
81
642
177
553
281
282
449
586
568
552
741
470
542
334
612
703
630
712
421
521
526
504
519
460
413
417
513
374
218
623
542
381
400
574
626
475
571
482
558
671
327
549
563
640
580
441
233
335
250
385
321
407
190
296
423
123
374
556
238
393
610
592
512
506
487
640
512
354
535
206
569
540
405
433
552
421
316
368
518
430
524
387
633
477
421
523
368
527
242
497
661
99
430
187
300
416
438
516
396
566
676
345
479
684
547
585
216
549
380
652
620
395
473
485
355
216
521
560
664
797
662
446
636
672
217
736
615
408
492
443
398
303
640
342
642
495
363
783
450
289
266
564
617
493
647
412
555
624
527
407
434
592
601
457
573
561
386
443
176
456
465
654
390
413
214
577
533
617
578
645
503
327
461
521
648
650
515
388
381
500
334
338
635
530
397
719
377
660
637
471
455
478
731
275
383
310
644
726
491
472
532
176
540
390
402
731
525
392
513
332
240
568
476
458
282
419
512
139
735
486
0
694
563
448
436
512
479
718
608
650
349
530
634
557
437
381
572
101
648
628
472
377
661
580
408
385
335
434
685
367
466
410
351
566
575
497
367
506
639
238
289
656
439
497
547
0
492
237
541
600
563
509
311
689
406
301
649
283
517
572
735
422
757
343
585
566
363
163
273
262
546
261
303
502
679
392
265
437
287
538
558
455
369
536
536
386
514
740
512
317
292
549
563
367
549
705
680
529
626
492
438
600
470
418
683
175
198
213
321
687
698
555
553
512
639
538
445
548
352
678
385
0
472
450
371
269
391
530
292
673
401
507
483
546
143
272
465
671
473
517
453
321
379
443
721
548
494
461
687
639
146
618
457
337
638
386
498
395
491
376
538
443
520
381
274
278
369
525
499
184
164
452
486
569
228
472
496
272
482
761
327
532
144
511
486
642
411
477
487
605
430
644
453
481
697
648
483
237
125
483
396
331
540
454
74
201
605
492
632
413
632
382
622
384
507
621
454
602
240
541
447
619
628
650
549
454
443
568
646
433
335
646
429
183
241
496
439
164
351
506
438
377
450
169
391
339
510
408
619
490
671
493
345
701
611
535
305
783
227
415
402
272
463
714
438
508
568
312
653
610
494
358
597
595
568
456
475
372
426
409
531
224
583
33
249
562
391
419
334
692
410
557
532
645
544
567
634
482
695
313
662
486
483
531
517
368
649
529
576
424
259
571
668
500
209
292
493
613
447
710
697
428
644
341
413
235
478
252
226
442
398
350
623
556
175
638
400
412
294
664
492
471
728
469
643
544
459
346
567
427
447
679
589
372
435
213
198
669
488
362
193
498
680
541
493
401
206
155
641
609
675
733
397
463
255
527
642
407
601
616
440
564
449
336
424
376
560
322
366
393
555
303
481
601
655
371
499
453
521
554
534
396
589
611
577
553
603
557
280
378
446
652
402
272
325
591
191
418
442
400
493
643
746
368
396
519
655
0
372
231
561
390
447
567
565
407
576
473
536
482
354
318
576
487
547
518
141
590
578
661
261
470
515
360
684
316
434
545
338
297
497
729
338
344
519
477
109
455
526
421
348
531
615
518
687
413
506
549
248
360
530
584
630
439
523
672
525
471
492
380
708
420
599
745
534
739
603
542
456
386
474
443
445
477
662
492
307
584
508
394
475
640
345
541
221
231
440
275
670
540
421
483
630
489
578
496
209
125
309
217
465
460
368
221
253
607
421
510
445
520
477
333
367
344
173
406
355
210
414
416
531
488
473
553
555
236
380
386
522
241
576
724
323
408
531
649
611
647
653
586
488
675
692
556
465
420
680
489
584
327
554
498
583
608
424
591
584
696
232
536
546
697
385
449
602
444
651
523
489
706
593
577
659
551
632
81
499
691
394
288
620
531
498
376
441
602
546
607
425
580
436
591
271
453
524
490
601
465
512
457
442
607
465
543
555
579
401
504
424
694
455
461
482
205
267
592
350
578
580
462
471
248
23
390
582
595
224
738
518
523
618
258
495
454
624
412
180
591
357
759
713
519
526
98
563
516
67
446
738
658
435
333
662
504
427
659
483
736
615
549
228
188
685
573
449
481
552
706
531
444
524
422
783
488
429
561
600
323
473
245
480
575
318
586
447
269
316
640
401
561
773
395
344
353
489
448
380
773
212
235
454
378
608
400
378
323
645
549
528
591
677
509
273
135
486
522
460
551
426
654
607
621
604
705
613
315
452
593
319
527
590
397
615
727
706
382
356
565
503
437
153
456
588
246
553
554
458
479
346
426
722
617
638
178
537
439
653
594
348
456
199
517
533
536
579
729
506
318
209
387
518
578
522
337
293
374
326
579
631
676
318
567
284
501
516
608
347
562
451
650
637
435
567
338
468
432
611
546
360
342
495
468
512
361
261
263
596
188
343
527
390
467
640
484
591
365
238
626
453
463
436
464
577
559
575
274
468
552
608
564
522
389
179
666
589
518
195
710
570
342
629
515
448
469
488
649
370
520
437
328
559
476
597
331
507
492
611
418
565
447
456
467
524
165
318
384
585
321
393
497
546
655
334
675
493
570
489
312
565
408
510
0
375
261
469
138
379
493
670
599
392
366
668
618
406
359
439
627
359
0
381
629
511
454
606
519
619
486
544
564
370
445
451
523
480
503
389
634
581
397
569
497
562
385
553
319
406
421
592
427
383
645
526
458
441
368
410
487
565
648
606
145
661
355
280
326
449
542
464
478
430
536
287
577
494
528
674
541
488
650
458
494
282
546
608
520
371
381
685
370
475
685
450
584
284
254
442
472
510
579
534
396
468
440
514
645
393
518
10
497
495
369
489
523
517
403
505
465
553
506
507
409
577
185
470
333
580
451
580
233
590
611
640
451
576
421
180
458
626
523
645
603
628
395
417
561
443
661
445
555
503
624
142
618
475
254
460
342
598
511
600
476
545
540
319
203
0
553
333
688
484
382
452
741
555
375
365
688
497
433
703
59
637
336
347
490
456
493
404
518
310
442
618
608
289
574
476
527
577
427
515
335
476
488
636
266
627
527
644
490
551
584
379
24
527
354
686
453
643
513
488
731
588
688
629
365
389
615
465
665
434
593
411
713
398
410
360
558
448
549
747
313
371
398
513
693
654
668
392
370
473
341
189
608
522
524
194
444
441
736
503
280
564
367
423
436
493
125
491
566
542
477
577
577
386
683
316
344
700
0
373
595
703
408
538
548
318
432
136
357
388
627
653
472
789
460
525
729
536
509
727
488
483
299
531
294
542
664
382
493
176
723
392
530
563
379
576
448
471
434
216
316
520
433
703
479
534
558
693
528
240
502
483
249
654
431
362
349
635
674
199
474
453
471
512
523
650
307
483
543
673
613
443
582
613
411
558
319
388
712
621
524
548
537
506
571
582
516
524
650
421
261
364
561
421
301
564
231
343
526
361
616
466
526
395
483
428
512
420
502
729
583
597
606
532
489
426
433
343
445
236
460
278
417
544
332
569
555
491
407
474
566
433
454
638
269
217
311
397
709
421
498
356
684
547
521
434
450
617
614
454
518
379
671
195
398
423
389
333
460
451
262
529
451
646
425
445
685
428
386
555
563
542
491
611
654
0
743
572
499
560
482
542
499
620
499
480
459
294
554
459
576
628
434
671
401
584
506
404
566
537
605
540
568
198
506
590
284
546
359
269
633
600
425
293
467
414
0
565
245
459
466
389
344
377
474
506
424
69
509
310
311
381
352
676
404
597
349
486
535
486
567
547
584
401
210
609
329
464
586
574
199
461
446
497
269
651
428
303
552
566
540
396
266
621
92
408
420
273
303
405
482
535
380
648
232
440
445
352
413
460
533
541
400
630
326
316
662
376
575
520
615
592
286
459
458
312
527
199
340
641
602
471
576
703
686
620
519
232
146
562
319
560
419
656
743
682
588
132
580
370
640
329
568
554
394
569
396
414
0
365
585
564
513
412
533
632
426
655
608
617
602
379
347
347
622
663
433
440
661
388
466
592
344
409
335
528
669
571
255
170
87
512
477
503
437
495
404
590
203
358
360
375
245
430
714
515
583
469
460
458
405
467
409
311
214
531
63
299
475
461
489
528
538
494
347
647
294
312
408
555
549
314
462
642
463
528
640
525
173
314
549
488
688
235
575
630
75
44
573
98
660
565
96
680
507
228
626
265
682
543
526
526
546
569
507
476
332
534
509
535
350
572
293
488
574
671
419
415
437
278
514
517
485
457
421
420
671
441
289
589
280
472
0
493
460
557
387
652
663
338
568
542
714
387
510
457
372
541
286
216
561
478
473
455
665
720
594
623
386
262
695
688
475
452
376
319
476
620
270
655
609
478
252
422
518
459
61
432
359
643
583
594
286
336
484
560
423
529
606
329
345
493
208
469
516
622
256
557
237
451
616
483
525
436
0
344
474
682
688
480
538
417
606
589
487
444
447
528
332
541
576
774
515
189
401
409
527
601
439
551
662
429
504
530
508
522
484
290
333
546
561
671
565
557
357
646
643
712
591
381
536
461
258
626
277
207
453
462
613
416
335
584
480
345
316
522
282
568
485
605
304
403
631
573
316
467
604
552
635
596
506
664
353
354
285
220
496
577
553
583
653
233
754
441
440
464
430
459
487
441
582
529
501
640
594
476
414
618
582
276
457
533
725
512
389
415
541
101
283
589
351
430
550
429
207
522
655
241
332
531
374
88
440
503
688
453
200
539
334
0
496
638
399
475
684
558
564
406
375
696
586
577
470
543
639
563
421
565
579
496
379
507
428
508
607
713
478
547
498
622
559
494
164
398
414
373
543
479
299
408
451
637
464
389
305
350
569
453
289
528
435
134
465
411
591
108
491
569
315
525
284
214
438
598
0
625
607
613
565
562
501
545
619
451
560
539
477
356
343
123
703
715
375
249
781
286
408
650
542
417
579
447
613
518
662
658
236
618
575
307
554
629
577
523
503
457
667
456
535
0
349
682
323
442
480
517
605
363
301
460
513
516
633
654
382
491
550
509
770
386
532
583
551
347
484
437
610
484
502
719
482
0
534
484
521
533
647
632
748
525
333
589
503
608
366
620
476
438
170
203
488
703
463
662
551
572
429
487
401
488
682
382
550
669
399
412
196
432
0
527
542
412
608
549
52
437
612
291
268
241
586
286
388
140
412
661
572
101
589
556
645
559
585
588
384
524
86
321
507
152
637
338
92
503
439
715
562
485
586
589
574
558
523
475
625
393
454
621
316
568
434
742
646
111
633
314
658
466
243
529
467
370
559
557
663
530
308
348
585
406
480
541
542
384
279
101
451
285
134
483
512
412
494
504
626
425
589
725
445
414
728
470
266
459
423
456
460
470
398
491
482
427
472
383
524
360
501
331
667
366
576
512
375
497
466
519
262
505
303
359
193
476
669
577
412
425
369
577
335
361
551
476
706
288
635
134
477
573
580
676
650
652
499
561
590
678
640
658
554
699
245
570
270
191
571
672
715
562
353
730
383
392
520
664
537
759
697
394
381
475
343
352
706
483
345
586
180
542
318
419
577
677
123
173
369
439
376
440
463
0
559
504
481
445
128
384
381
303
513
441
551
589
327
528
453
649
94
469
531
346
478
588
293
439
503
353
562
129
689
515
246
445
281
542
340
414
553
420
545
464
524
545
588
318
461
458
533
374
361
209
707
635
453
659
314
461
350
542
299
412
571
306
572
363
423
733
424
719
574
636
534
516
551
386
651
519
372
593
191
539
445
539
564
493
548
173
228
377
532
625
365
565
649
605
441
616
542
718
714
613
286
535
408
592
663
620
642
489
295
709
397
601
316
693
395
559
73
310
322
577
405
616
327
737
473
488
424
492
585
492
639
622
616
519
523
578
463
500
73
324
383
451
646
505
265
761
487
378
593
475
454
487
388
291
514
644
534
527
656
409
350
587
547
580
654
379
536
564
584
267
571
709
0
289
515
649
370
464
635
358
744
489
528
501
573
587
538
499
443
517
518
508
595
499
467
320
635
567
655
302
524
405
735
464
601
503
275
586
656
591
672
565
365
633
541
518
496
412
351
624
523
511
421
566
447
685
450
647
265
591
279
508
438
526
651
444
533
426
574
558
348
356
442
611
446
521
372
404
495
362
470
382
450
469
513
495
440
673
563
623
711
500
482
421
488
306
450
582
542
447
662
697
471
456
768
580
549
684
226
549
628
318
478
536
498
575
696
160
269
387
606
595
432
684
385
437
619
657
510
608
434
583
506
455
651
667
393
19
532
515
590
501
701
0
655
764
481
578
614
582
294
305
398
500
422
0
480
519
434
487
603
473
599
432
619
734
435
327
306
431
456
345
463
685
635
348
606
453
557
723
663
633
437
573
647
416
482
700
538
356
454
546
621
435
486
184
468
463
293
724
598
416
391
555
327
711
330
508
500
547
720
617
586
690
532
553
616
526
564
283
472
259
430
97
438
559
697
303
654
448
554
311
285
219
444
366
487
595
418
259
413
75
543
476
660
459
498
727
610
237
693
620
458
570
473
333
631
402
394
623
334
478
652
380
513
453
367
428
732
507
589
0
503
633
517
138
331
370
65
573
493
506
585
244
672
516
533
584
173
707
163
426
509
589
329
492
629
605
356
629
115
585
721
722
482
600
778
376
684
488
553
538
447
431
526
403
545
594
468
514
717
596
456
382
346
399
546
570
341
300
560
459
481
437
238
658
394
658
537
502
478
506
577
536
374
437
642
335
386
684
437
714
528
203
548
439
379
415
400
567
404
371
433
633
291
529
506
569
428
333
497
648
362
424
674
694
385
409
731
619
334
554
550
389
491
408
316
257
538
298
465
411
498
550
598
459
589
408
355
555
193
417
572
162
571
541
521
444
694
658
607
208
585
343
320
544
545
387
646
673
524
465
541
543
575
697
563
732
563
545
226
408
565
377
457
636
668
652
513
532
521
498
244
538
264
704
548
619
659
552
437
580
523
654
560
603
321
547
527
338
432
373
615
409
601
514
566
477
385
545
698
511
323
378
540
353
727
649
343
659
556
73
620
689
221
648
540
586
474
594
500
170
149
589
363
358
521
450
577
357
449
560
506
714
746
548
666
465
188
532
435
648
516
264
576
596
185
719
739
704
430
568
532
656
379
471
404
310
686
630
654
603
188
394
493
644
762
596
716
431
528
476
242
314
429
555
330
679
613
418
390
413
526
484
260
337
667
131
545
547
425
0
75
569
568
424
524
481
406
659
539
428
709
382
609
496
521
30
481
410
269
441
539
716
326
639
651
305
534
518
425
473
606
275
595
495
476
776
398
549
483
628
432
640
546
563
92
553
241
508
648
413
501
551
577
442
556
257
663
292
747
418
520
223
589
562
570
421
582
408
511
548
301
574
540
419
508
589
472
483
725
499
427
477
401
571
492
606
505
502
620
540
391
555
624
0
510
334
490
228
282
301
267
586
174
553
416
604
494
463
326
670
562
637
521
633
321
292
509
254
569
624
431
389
608
695
268
432
547
507
448
449
606
474
584
276
658
346
519
477
509
519
643
501
308
723
167
560
212
310
574
123
576
408
334
506
603
359
365
709
619
517
350
624
556
438
586
467
390
554
484
438
582
615
457
469
589
515
454
475
354
585
454
516
554
532
496
744
557
401
580
555
143
393
711
473
570
435
396
405
651
431
200
547
490
494
450
703
182
401
621
486
550
627
481
435
561
553
326
420
214
701
52
431
418
469
572
481
623
536
516
439
169
249
539
705
406
638
464
555
606
611
566
410
439
423
149
666
511
550
562
315
490
511
504
538
558
272
0
533
413
730
654
309
468
556
518
637
601
478
590
495
698
556
453
686
316
372
725
413
567
610
518
388
339
635
503
459
501
311
375
273
401
577
354
610
426
538
655
618
571
246
460
640
278
677
359
587
399
350
668
529
348
283
520
498
308
721
422
223
526
701
523
347
289
500
415
612
673
477
530
639
743
400
498
667
426
689
466
520
627
418
489
628
434
464
552
550
521
0
537
506
533
632
252
531
415
724
258
434
487
313
551
469
424
143
579
692
46
609
588
447
255
515
608
286
630
394
354
517
281
568
428
428
265
347
115
574
544
391
430
583
682
320
545
631
520
664
387
546
465
672
506
338
483
539
320
374
431
529
522
173
351
541
583
524
503
604
432
464
483
641
647
620
695
594
392
609
644
415
632
581
186
458
505
481
692
301
442
702
644
270
711
293
572
589
602
572
363
375
595
372
607
597
445
312
347
336
505
723
558
458
356
678
460
266
535
585
490
465
609
404
587
553
459
698
392
454
177
577
173
493
447
498
285
517
564
303
606
459
459
436
174
467
339
668
512
619
471
366
338
610
669
498
289
169
344
509
597
356
148
699
391
335
333
391
617
510
538
402
522
0
230
453
561
446
571
553
90
237
648
606
470
557
379
477
543
268
678
505
451
511
164
715
660
493
395
415
610
349
514
445
250
413
249
606
388
512
375
580
716
576
688
364
568
446
421
635
326
349
405
588
558
498
374
551
454
565
625
439
256
553
229
251
483
635
507
448
0
475
440
424
529
457
502
455
409
679
776
465
585
343
352
339
488
472
306
383
266
347
415
408
522
570
324
351
536
726
302
332
628
592
659
618
594
681
302
591
704
649
549
612
469
693
673
402
412
640
598
241
642
600
448
395
585
566
653
594
451
608
184
480
494
638
599
501
533
492
492
577
194
445
646
500
658
417
466
337
115
430
453
475
357
564
294
646
573
605
630
463
621
461
277
517
523
573
476
685
422
363
563
449
397
413
553
319
624
506
466
0
455
513
546
405
384
548
441
747
439
685
481
448
439
498
705
538
458
539
718
345
474
435
533
283
94
181
523
658
667
532
370
217
484
658
374
348
140
476
329
430
426
590
462
587
522
530
570
563
556
623
505
67
519
534
204
691
583
405
82
474
711
434
511
532
553
430
360
350
358
463
592
308
100
555
601
377
615
573
405
383
545
441
735
577
291
422
686
402
486
608
627
381
636
537
660
597
512
619
386
392
579
284
586
480
460
310
527
418
640
130
300
511
287
609
502
424
288
303
508
424
501
472
527
380
359
505
433
749
575
557
546
654
450
454
642
521
732
103
489
402
533
493
505
499
216
516
658
518
500
465
520
385
521
603
353
305
491
596
617
479
376
536
653
309
459
541
524
512
650
621
541
416
687
557
541
466
256
432
423
554
469
356
575
578
627
670
670
486
289
609
455
657
300
461
246
527
547
571
555
676
559
521
583
399
562
196
650
481
359
497
384
627
364
507
618
440
470
447
459
442
665
437
392
442
567
407
577
573
480
465
265
485
536
439
332
426
679
471
527
379
512
318
606
486
193
713
468
555
246
295
618
0
429
440
582
313
354
436
312
579
403
128
715
285
381
456
400
336
518
604
647
515
489
272
443
437
512
317
588
390
434
541
447
226
447
456
724
496
646
560
545
470
626
532
599
649
455
429
704
555
542
477
385
674
707
318
410
316
495
355
456
481
337
412
533
605
570
81
483
565
443
552
637
382
513
430
401
437
407
488
238
504
609
458
149
641
677
493
268
562
530
345
600
601
599
509
665
277
285
653
514
561
472
491
453
292
436
519
643
527
496
603
653
572
672
536
400
647
215
747
597
322
735
394
163
314
318
515
328
503
354
556
508
476
357
397
441
513
240
365
607
537
411
270
446
665
265
371
604
265
400
614
550
579
294
531
448
382
323
603
614
675
624
501
361
609
378
193
587
272
423
403
603
521
534
536
301
651
431
550
377
481
326
471
501
467
386
255
295
588
449
593
474
589
364
287
515
325
608
96
481
460
579
335
375
262
304
224
551
448
0
450
412
435
429
470
725
520
359
512
401
563
463
554
568
582
394
338
534
580
73
434
365
607
348
425
381
299
582
639
500
515
462
588
224
587
631
678
620
503
642
73
579
354
644
414
693
584
642
427
666
452
474
506
290
550
459
339
542
690
228
438
527
482
420
538
180
301
512
748
530
212
394
559
333
267
93
724
448
443
705
397
293
357
491
402
484
570
451
338
503
486
221
376
457
265
442
628
430
431
565
560
407
558
436
464
656
468
530
729
550
540
266
424
437
452
474
540
581
524
246
611
536
393
573
736
620
232
485
613
397
470
249
404
573
512
465
182
425
514
475
654
578
558
335
492
387
281
491
336
583
690
695
490
329
676
644
491
457
761
90
570
574
513
134
641
621
564
385
534
751
317
490
650
422
459
568
79
377
478
482
647
434
389
568
710
93
464
588
708
504
420
580
678
743
475
528
509
717
299
370
489
346
432
545
431
357
431
406
696
618
506
471
388
433
352
654
579
541
356
644
471
600
735
557
432
612
673
295
687
506
457
449
483
551
342
387
290
561
612
521
517
667
250
396
358
348
383
239
509
321
714
642
343
332
633
51
502
475
435
559
15
605
535
483
512
703
617
305
308
240
669
412
649
571
529
498
377
346
717
409
533
258
552
48
592
346
517
442
419
326
511
376
597
401
655
686
484
495
535
495
664
613
538
611
641
375
708
307
598
441
753
411
412
633
581
595
458
613
655
551
659
239
586
541
556
429
429
586
407
406
611
402
451
586
432
301
469
530
347
346
647
522
560
630
360
377
451
497
375
595
434
228
497
266
559
680
303
263
569
412
563
304
658
447
257
579
425
736
588
328
422
448
556
402
560
469
394
605
580
477
340
789
658
460
611
425
289
330
314
343
665
527
597
571
536
579
550
347
453
356
664
466
246
359
444
70
650
564
593
549
697
732
597
482
579
441
633
281
325
618
664
524
642
489
326
139
134
467
575
535
520
460
172
377
615
546
663
511
540
519
357
650
525
358
648
333
451
658
371
368
172
593
545
505
500
0
558
565
408
448
311
576
695
507
408
475
341
331
447
611
774
466
327
449
180
657
397
0
541
486
489
331
449
357
346
467
450
578
657
712
317
620
475
732
334
594
655
527
624
702
659
427
608
729
366
407
493
522
498
129
424
544
401
606
329
204
512
506
0
495
450
444
460
503
484
768
545
585
336
716
682
506
601
576
456
531
791
444
419
662
604
278
668
618
736
469
538
691
145
483
513
369
522
342
528
530
688
393
441
389
356
570
348
263
439
226
773
108
478
633
553
570
157
619
723
394
386
564
397
583
637
625
594
595
618
548
455
640
487
503
514
479
694
717
405
655
345
519
693
502
605
464
526
615
429
107
181
58
480
650
98
170
651
461
376
552
565
356
319
669
636
496
693
635
297
523
508
79
476
510
577
529
441
444
569
432
355
410
512
457
633
586
407
397
263
564
395
331
556
278
526
535
450
284
430
384
481
409
585
372
314
534
761
195
579
466
595
414
582
441
290
439
490
404
416
427
473
730
608
520
363
423
516
316
460
195
493
667
674
415
673
442
630
549
625
311
563
715
633
712
394
374
381
558
301
508
488
415
474
355
597
595
255
468
33
442
410
256
578
393
402
569
0
438
649
468
240
441
353
552
383
721
501
375
712
547
435
586
493
498
573
242
347
552
436
437
376
567
280
340
386
369
459
493
230
279
411
502
448
482
525
367
516
424
470
710
471
286
721
553
528
453
629
643
368
499
424
328
516
526
574
521
333
276
280
564
344
411
297
620
446
337
263
590
303
137
484
354
213
449
526
0
200
472
619
546
424
500
483
351
290
568
567
521
599
510
417
585
352
629
451
599
580
350
280
529
485
563
331
727
177
632
439
652
634
286
213
297
505
631
587
419
480
539
501
659
638
511
523
430
481
88
371
527
680
629
644
440
372
674
456
304
481
638
487
519
570
450
162
435
592
573
672
450
519
559
502
593
447
205
586
465
399
572
434
573
449
300
403
615
465
594
347
718
506
408
409
361
589
666
609
640
598
565
286
388
678
573
712
331
443
0
141
360
463
573
620
549
352
443
744
724
559
581
535
643
503
670
569
339
608
455
308
571
570
587
185
514
381
445
376
441
197
608
463
470
420
413
435
270
509
684
341
659
93
519
667
618
427
501
481
377
689
427
713
289
552
462
489
595
557
486
615
363
573
575
350
503
168
416
587
587
612
317
446
413
511
97
575
423
633
465
546
561
324
359
561
554
594
335
605
730
686
482
585
452
501
384
357
469
363
471
569
530
585
405
201
400
451
537
505
574
309
454
463
581
533
459
676
413
643
396
745
598
580
146
527
557
405
556
452
334
395
478
561
493
409
423
541
156
598
457
282
421
614
430
484
381
554
679
0
0
410
501
353
616
123
679
486
569
535
639
652
642
521
664
511
350
374
566
432
685
415
482
380
675
571
361
637
275
281
591
428
407
752
298
419
478
412
571
566
434
431
425
152
336
666
593
473
374
216
346
512
429
505
548
426
478
442
733
613
471
421
429
594
704
519
650
544
292
500
573
440
639
510
560
307
461
514
482
539
583
358
613
427
523
370
670
460
665
430
581
403
672
541
371
544
539
442
310
689
612
610
510
387
599
546
565
522
485
735
420
426
616
473
467
591
62
575
410
534
413
550
622
590
549
534
521
501
534
432
454
502
576
468
604
574
734
647
387
746
617
497
221
401
613
442
754
219
448
460
650
566
502
775
436
68
432
478
526
525
425
309
505
397
463
403
424
486
394
550
591
375
463
592
528
510
437
551
520
398
355
651
524
447
644
553
326
348
424
645
385
456
501
654
373
424
532
320
547
370
487
582
490
379
679
410
486
466
543
222
612
569
669
603
343
581
578
399
506
471
484
571
778
678
198
688
466
553
633
250
664
587
402
432
472
610
532
437
488
463
335
545
432
673
558
73
319
262
630
597
163
352
700
421
0
494
492
625
491
529
598
648
329
530
380
435
570
263
613
444
343
185
465
590
517
517
144
432
464
451
407
451
490
403
487
501
434
661
522
465
518
541
587
609
227
676
727
492
123
474
547
507
536
711
628
594
561
481
403
387
496
533
340
644
325
357
501
589
647
549
486
711
631
576
610
322
640
182
243
587
434
714
584
429
498
458
584
262
623
450
590
415
408
557
665
489
108
734
574
408
205
363
318
474
641
589
492
385
412
482
440
641
233
603
504
680
507
666
466
453
217
467
688
457
467
418
270
508
617
544
488
332
313
426
502
337
234
605
574
445
568
512
251
367
484
0
328
538
162
452
514
301
468
461
133
436
0
501
452
542
395
342
528
694
0
559
667
579
440
635
402
644
533
623
359
435
572
603
553
457
534
699
355
476
191
548
115
637
403
530
522
426
562
424
736
464
282
608
292
541
483
527
776
581
593
572
517
495
470
401
669
301
307
461
738
657
459
590
620
688
512
644
513
523
364
477
325
633
405
372
473
426
551
582
478
642
690
384
210
461
522
327
548
595
599
533
518
630
405
434
742
271
301
486
397
644
498
418
654
492
565
133
372
454
492
506
345
517
577
701
139
581
448
690
355
442
341
342
601
440
668
408
672
649
426
526
505
491
541
623
634
365
379
585
398
274
485
587
499
542
651
547
524
724
750
551
541
576
517
266
180
421
221
472
388
321
389
352
396
598
504
529
415
737
441
537
583
425
479
424
570
226
413
644
196
598
481
583
514
606
162
348
419
236
382
289
411
232
628
553
558
605
490
274
363
531
462
403
382
500
370
180
343
578
501
457
437
472
415
495
460
517
328
603
558
454
432
622
720
510
444
145
538
590
687
179
515
450
342
250
366
462
288
543
500
492
480
485
572
524
296
423
366
595
573
497
0
534
489
389
491
582
382
464
390
653
431
253
630
282
470
711
505
545
631
563
629
558
666
439
659
524
360
431
549
419
588
524
674
531
417
401
506
464
534
668
374
622
415
568
440
544
422
441
437
603
684
510
558
441
333
488
489
675
355
362
581
432
523
306
480
406
630
601
382
574
552
633
507
590
610
578
505
350
466
425
456
596
134
559
671
445
400
617
522
535
704
396
647
0
234
403
479
422
475
495
595
383
514
513
382
584
320
484
339
328
419
585
554
488
461
445
365
521
635
463
0
610
514
571
440
431
226
502
618
230
718
482
514
483
495
682
325
257
443
662
532
139
480
389
559
529
159
245
405
487
452
652
698
528
612
435
371
388
503
246
412
515
623
341
134
466
554
480
509
570
519
209
487
376
323
404
449
613
461
415
295
599
269
343
265
588
580
540
321
230
327
601
469
460
604
583
402
446
507
391
421
501
429
436
464
383
201
541
536
502
608
288
540
477
652
647
458
518
282
600
566
560
478
504
366
294
460
454
518
438
454
228
197
573
224
443
524
572
576
581
448
389
610
301
330
174
534
338
709
283
486
482
569
364
277
390
462
542
359
415
620
486
607
660
446
524
430
307
435
533
584
395
497
728
593
637
337
440
394
454
508
280
510
455
138
723
340
424
541
453
649
471
482
472
689
272
552
388
603
374
396
420
578
494
566
455
464
605
418
415
470
455
692
335
519
433
470
695
563
595
485
365
537
617
417
216
293
653
535
310
362
721
471
587
483
587
277
209
219
540
328
327
485
372
525
334
393
495
419
705
474
745
627
718
436
513
485
431
490
358
0
689
467
474
357
608
421
414
554
427
473
574
561
355
536
491
312
427
550
313
576
25
613
532
390
506
743
418
308
355
470
551
439
575
630
510
387
638
224
409
474
676
477
172
610
608
527
443
379
482
538
591
684
584
393
486
571
664
625
657
357
550
186
404
606
363
639
451
350
499
555
430
467
327
640
541
563
724
630
463
437
457
599
639
561
518
536
461
690
103
462
600
505
492
197
739
389
336
297
427
335
573
513
599
425
677
613
338
426
430
471
435
224
318
491
450
504
402
164
570
475
581
376
511
242
470
524
543
465
321
540
434
463
445
675
571
393
279
762
446
626
316
658
566
705
416
610
491
286
361
473
591
348
402
421
509
540
600
406
600
444
539
299
0
159
566
613
448
311
530
677
641
529
560
408
672
569
510
566
387
618
538
275
208
449
507
503
378
725
292
319
567
531
505
333
594
708
288
445
544
589
509
546
499
345
294
257
693
356
666
421
484
408
589
495
675
489
463
555
636
474
527
574
266
587
473
434
687
366
534
596
642
425
378
506
555
462
397
528
518
355
469
550
522
382
605
718
763
631
543
533
671
309
719
511
370
451
583
316
597
567
368
442
486
522
375
401
390
604
255
530
446
543
311
244
527
532
746
515
256
502
508
485
429
650
705
285
229
360
502
460
613
666
470
447
613
290
648
453
278
545
345
492
209
500
413
732
601
384
644
300
468
516
0
687
422
567
470
465
618
587
305
575
410
604
351
660
416
446
567
628
492
490
441
514
483
349
673
516
324
423
387
725
604
403
713
668
583
501
548
384
722
507
387
452
563
331
483
619
662
409
402
576
589
463
333
512
632
430
362
509
558
359
512
555
534
640
397
479
409
392
451
174
582
612
500
636
538
504
545
636
536
470
446
422
410
637
452
311
414
570
432
293
214
544
503
288
491
426
588
524
253
349
429
514
609
570
361
659
428
571
328
610
594
379
318
426
543
177
673
618
530
384
514
512
392
697
454
451
405
519
220
119
577
456
410
167
500
300
265
562
587
645
479
524
425
594
311
253
389
364
694
614
554
493
578
421
430
0
472
299
570
373
271
328
334
317
227
569
397
645
457
603
459
373
441
423
164
483
540
592
484
510
238
435
547
49
661
565
605
424
550
594
491
62
733
289
361
508
575
318
565
570
387
624
270
503
386
624
302
527
476
82
362
483
559
509
663
351
599
482
653
410
516
458
272
294
434
473
502
528
593
455
428
351
447
664
376
471
458
203
432
434
488
294
585
383
705
412
324
682
253
405
387
402
267
463
583
545
343
615
460
441
501
628
467
0
476
416
569
480
396
758
483
569
271
677
392
339
418
504
299
383
607
265
514
479
392
651
0
462
466
433
539
513
353
471
564
519
596
520
497
427
582
492
688
536
621
632
707
737
466
425
566
603
667
378
664
286
548
530
410
632
589
346
483
379
512
595
483
492
464
535
450
518
521
531
318
389
132
505
312
298
295
563
444
259
353
268
451
555
769
482
320
623
530
296
693
287
501
508
363
554
395
531
589
464
664
664
616
383
192
517
474
466
371
775
301
132
59
438
643
574
326
491
617
455
576
270
528
551
704
296
508
364
371
747
572
357
696
585
408
505
346
574
546
197
314
636
624
349
547
647
383
627
557
465
489
373
505
689
408
360
707
649
650
365
692
336
590
615
433
443
310
375
260
692
348
457
728
694
553
401
672
539
398
458
166
529
614
618
623
651
362
415
540
708
500
401
524
607
500
405
321
597
478
487
585
684
567
492
709
594
509
86
644
635
410
632
277
612
542
634
673
627
544
390
512
592
593
18
491
436
398
414
648
210
598
548
530
156
370
219
622
607
709
494
597
463
301
467
235
611
232
704
570
713
497
475
467
563
228
629
676
424
501
278
691
453
564
430
698
96
451
468
641
260
360
363
440
164
593
536
382
599
566
489
395
475
586
576
629
614
526
411
639
594
574
601
566
698
608
609
441
642
263
628
533
580
634
564
609
372
586
442
613
415
548
579
274
505
433
280
508
504
466
505
327
173
363
521
589
554
308
710
591
463
535
568
580
527
204
273
585
567
607
601
608
366
711
615
617
432
714
451
616
538
468
467
312
326
513
476
462
361
490
399
726
778
526
490
602
725
265
535
400
628
549
437
475
237
381
331
575
574
421
600
425
434
694
315
350
651
407
481
567
623
23
557
654
467
591
433
429
513
414
243
516
500
618
426
487
649
333
204
347
316
376
567
596
519
615
441
556
563
471
377
561
404
408
547
647
566
634
576
351
512
310
545
276
526
139
353
479
492
613
368
112
93
611
540
470
411
473
427
194
510
342
537
587
158
528
549
115
722
281
354
332
424
658
387
487
531
379
371
0
317
513
671
614
575
501
759
102
667
442
728
693
310
364
93
479
432
398
618
616
408
368
531
271
519
317
353
610
651
359
625
399
326
386
533
312
514
450
544
567
738
349
691
246
603
185
147
515
656
244
569
365
565
494
644
608
518
239
196
306
420
568
492
417
140
630
316
634
283
568
698
547
532
568
695
458
568
410
494
481
510
265
593
313
384
194
518
417
660
433
489
393
397
538
425
778
401
482
506
219
388
229
479
604
467
638
399
515
528
550
212
408
596
584
636
648
641
531
588
377
606
497
630
235
723
629
549
524
350
356
651
661
658
440
229
428
497
493
293
383
382
604
545
346
525
408
574
508
307
497
304
543
688
340
506
409
279
452
620
359
544
434
164
367
504
93
530
617
245
511
603
555
437
467
517
514
546
343
394
633
675
216
542
482
632
530
688
531
549
370
609
709
543
508
343
445
421
253
675
660
285
108
268
435
319
423
408
469
0
617
721
439
112
603
409
492
597
534
709
272
445
629
296
614
476
310
237
411
213
563
426
227
184
444
375
719
346
620
656
429
531
365
504
580
743
373
611
273
361
754
521
457
589
561
312
613
290
551
489
380
443
688
426
268
606
459
375
554
363
540
533
487
328
743
278
668
502
417
512
595
626
69
297
677
563
585
0
492
483
403
627
472
340
531
573
437
569
525
530
273
368
543
436
679
551
509
615
499
585
326
330
471
385
629
7
506
592
517
382
708
497
561
508
410
505
241
513
288
439
70
458
286
271
358
470
497
349
146
568
338
593
484
324
236
495
609
486
341
469
262
572
339
443
673
606
502
537
713
388
350
355
469
480
683
567
524
541
562
685
198
482
243
0
486
687
378
632
504
448
515
760
440
458
505
428
403
365
335
533
464
616
573
595
0
196
717
307
531
269
262
581
506
498
275
529
690
590
428
425
463
199
407
537
500
488
608
362
585
501
535
726
643
580
476
354
648
569
639
441
368
272
231
570
385
428
691
489
418
393
516
436
596
617
668
453
575
282
431
537
344
568
562
339
436
400
561
355
463
485
376
575
372
417
592
179
420
710
383
689
613
619
529
719
397
565
322
550
657
656
727
478
476
328
355
512
450
630
515
456
473
648
502
652
489
487
317
540
219
748
684
494
398
485
590
425
644
308
754
612
480
535
412
572
498
553
380
574
684
362
299
613
475
709
466
427
615
528
509
564
507
649
285
108
575
681
375
372
525
540
468
629
680
603
489
483
289
0
504
626
395
559
402
592
406
434
494
573
197
583
670
456
395
366
763
586
335
591
576
653
10
434
428
637
598
651
503
523
369
605
467
625
753
640
0
546
445
580
493
620
310
545
536
498
554
565
383
490
396
507
311
499
195
556
462
351
747
442
185
437
406
403
361
366
731
604
481
301
563
554
519
300
505
509
124
582
421
396
444
334
460
497
508
512
475
516
684
434
609
339
683
477
305
698
343
213
526
600
408
466
604
507
669
511
399
492
306
542
394
415
365
414
436
546
449
650
398
454
396
364
536
605
482
594
417
281
514
377
579
687
654
532
512
494
577
340
528
74
366
693
532
721
493
664
328
543
513
489
399
700
391
118
516
404
522
457
419
603
670
618
253
652
559
412
149
526
337
319
358
494
578
606
608
536
316
458
608
370
623
608
497
333
407
513
372
508
619
445
427
476
601
579
0
259
625
517
272
344
557
395
418
501
633
689
487
90
493
370
471
585
532
525
432
509
669
445
282
412
134
477
632
231
144
425
623
571
513
413
300
638
437
383
580
331
682
281
298
354
520
466
453
507
378
469
304
503
327
131
713
411
343
648
281
291
608
451
447
714
662
584
331
539
568
397
676
380
599
385
451
431
285
541
451
384
359
309
501
327
370
307
548
476
623
548
336
555
671
658
510
490
515
194
565
490
263
536
328
200
399
491
605
690
624
615
535
381
438
504
300
509
594
438
507
484
452
558
571
245
522
617
571
265
464
431
601
737
469
520
391
696
610
393
591
458
534
260
587
589
665
670
339
447
337
493
490
242
334
345
524
530
511
297
416
423
124
438
482
676
503
544
508
0
564
600
470
456
368
614
535
359
642
468
488
541
340
515
216
571
301
322
595
433
669
746
560
458
425
366
468
325
511
616
533
283
547
370
442
409
583
410
608
243
499
247
518
436
361
355
598
414
609
469
654
460
469
597
369
658
406
411
344
224
352
592
368
582
428
597
571
317
380
540
299
469
522
435
559
639
220
580
560
409
673
502
25
195
660
560
499
261
619
366
206
391
716
314
483
543
628
591
413
441
483
737
490
496
231
167
695
530
532
508
473
477
88
490
690
419
387
687
154
229
385
242
625
576
514
552
406
542
687
405
592
600
446
531
403
362
430
133
403
199
580
614
546
611
641
280
492
316
313
702
607
685
406
297
509
553
580
242
402
280
476
485
289
422
400
482
450
604
453
603
560
557
504
584
279
322
685
507
508
434
555
498
391
562
439
485
388
0
611
424
492
479
445
610
552
393
591
462
181
309
205
464
692
351
454
519
626
448
691
543
725
368
491
309
558
574
122
229
447
467
421
268
272
732
526
707
667
699
441
463
631
394
537
568
685
528
566
501
661
518
674
548
584
269
673
325
530
571
665
583
580
526
562
290
464
305
232
583
749
194
435
407
412
750
556
539
533
498
505
457
406
482
615
406
399
575
406
438
415
505
549
179
519
658
431
388
3
271
572
260
304
590
492
464
564
402
456
676
644
568
402
505
465
706
551
568
503
686
335
508
279
529
476
533
428
391
93
274
451
515
584
274
546
456
537
423
751
451
295
616
648
518
368
446
461
491
411
380
540
619
470
151
329
338
476
333
485
294
567
572
234
441
347
613
268
546
649
485
499
453
686
431
386
439
574
253
483
104
759
498
504
606
429
687
286
0
529
642
555
621
367
406
530
543
531
366
422
491
656
431
53
646
567
520
378
618
531
386
679
560
669
177
714
433
377
580
564
486
630
452
631
546
452
167
444
642
730
453
632
622
472
467
675
406
306
633
429
248
577
448
592
279
637
561
662
697
0
525
706
557
608
554
458
665
578
640
487
194
314
490
476
523
510
512
402
233
484
555
237
430
346
352
437
426
344
475
544
596
730
279
574
416
568
606
477
471
629
419
302
492
643
587
309
648
524
617
196
543
504
662
390
692
334
527
333
488
515
516
376
303
526
455
462
585
683
688
185
539
581
412
541
550
439
438
588
484
470
429
503
615
413
496
341
611
605
427
560
621
670
576
671
371
31
454
407
400
661
552
618
394
262
541
241
662
664
535
362
622
530
492
561
369
419
621
320
520
212
468
407
334
651
490
724
321
565
433
464
394
422
171
566
534
272
461
338
386
429
292
244
575
720
716
678
454
658
492
424
475
572
265
227
455
538
447
445
390
492
260
522
530
430
365
237
446
501
370
507
360
346
423
378
405
385
439
493
454
378
505
501
407
427
435
432
555
447
441
710
523
592
568
439
420
565
515
424
439
480
535
620
478
531
307
479
241
570
347
506
266
495
555
492
667
473
378
374
412
468
329
526
610
517
618
199
458
386
294
429
595
326
384
644
385
570
517
694
323
415
347
374
287
560
411
461
686
289
566
519
546
578
325
625
473
659
413
462
624
414
670
375
640
307
526
566
402
373
604
490
536
628
667
309
261
428
200
367
389
492
552
363
668
675
716
369
265
502
453
457
419
631
441
500
404
500
443
720
445
348
406
453
406
174
500
437
326
664
442
602
443
360
534
789
425
172
663
431
500
424
560
289
494
693
334
594
762
447
433
387
473
644
344
292
374
389
543
571
583
560
394
498
389
487
331
508
613
561
596
482
436
356
658
397
550
435
493
352
467
426
365
511
523
630
573
623
213
538
433
556
504
445
427
726
356
493
310
596
525
205
529
617
557
584
450
546
407
353
387
562
590
422
82
285
426
595
504
532
549
388
404
609
203
517
425
275
553
290
403
633
510
482
475
360
534
132
540
643
597
577
482
747
305
667
381
405
507
305
550
389
578
491
484
407
320
629
413
474
237
327
539
3
659
543
555
521
593
438
406
155
736
536
451
250
108
658
515
355
497
498
319
539
88
477
692
230
596
435
587
484
345
241
442
399
271
465
427
690
508
444
683
506
446
457
459
410
115
533
530
485
431
450
484
350
582
366
534
452
606
670
269
524
407
419
0
764
502
569
588
194
165
186
565
700
461
739
476
563
184
484
630
386
421
651
163
553
570
550
556
472
470
484
596
484
539
436
610
395
419
595
456
304
621
615
353
425
593
673
589
345
331
582
724
508
630
392
110
605
353
346
383
698
522
391
448
246
510
664
284
664
576
374
488
315
530
574
579
666
408
497
477
605
477
668
448
228
529
540
690
462
607
550
533
587
381
406
376
268
711
477
431
240
360
481
535
409
501
684
617
669
445
262
686
579
214
616
301
430
478
564
415
455
353
676
304
414
371
474
502
251
331
736
380
376
544
442
494
425
607
93
730
210
341
588
509
709
197
775
558
152
732
710
434
405
746
447
210
415
677
477
414
403
295
649
693
431
621
584
445
425
636
439
194
348
513
531
563
550
514
734
667
429
508
633
385
405
531
635
665
606
449
626
322
356
631
445
361
465
678
681
586
160
434
629
283
448
522
143
353
400
683
338
488
473
555
530
586
676
380
115
368
773
437
491
565
677
576
295
435
76
498
345
517
612
499
536
248
263
387
446
482
706
783
455
478
636
545
469
388
502
544
469
347
562
547
128
753
0
514
644
434
448
448
322
193
490
59
370
536
110
567
364
452
455
592
542
399
431
490
635
669
486
232
427
332
562
458
376
410
717
608
365
627
542
463
491
522
560
298
478
621
578
325
381
532
393
653
501
545
567
400
133
0
564
203
502
0
600
496
549
372
501
635
240
524
719
314
453
436
498
660
639
370
608
552
710
637
579
440
484
505
653
525
740
370
588
645
444
485
519
388
613
525
599
460
647
351
721
367
419
456
448
439
424
743
459
569
466
781
679
402
442
279
299
493
305
546
432
430
406
532
498
311
356
368
155
356
610
470
435
652
740
244
426
493
402
526
384
472
727
643
610
362
541
320
640
393
589
205
617
226
585
578
548
484
482
497
444
239
308
635
432
435
478
610
557
668
332
543
392
408
34
655
386
443
514
490
529
387
465
380
0
571
669
268
372
520
347
554
659
442
548
417
714
401
537
491
502
485
537
304
688
329
499
519
675
494
359
320
510
467
528
637
409
510
726
463
565
84
540
482
462
485
514
416
660
246
462
251
685
544
397
514
149
639
555
656
622
313
566
607
519
511
505
626
452
386
164
631
573
488
449
574
558
299
309
321
574
439
471
467
505
364
461
533
582
596
667
385
0
125
519
377
486
428
389
425
475
261
307
403
717
395
366
542
252
467
397
466
417
463
529
427
291
501
704
357
529
624
247
474
500
541
262
399
484
489
494
0
484
632
534
666
314
296
0
267
0
531
711
378
377
0
414
487
502
25
436
658
238
514
512
549
216
716
577
645
463
640
571
532
621
542
492
536
256
529
242
303
626
692
339
674
716
595
421
552
590
436
491
554
405
497
519
534
465
263
573
339
659
505
500
693
567
426
496
495
416
464
492
529
537
486
350
518
376
489
294
454
430
546
567
508
470
513
491
313
370
431
602
529
515
728
392
0
433
522
709
613
609
508
613
463
317
487
371
730
562
653
712
622
521
646
145
618
578
286
0
387
465
511
679
514
562
585
616
589
73
265
547
326
424
447
528
482
489
534
636
457
523
508
410
716
620
563
558
468
307
644
468
404
472
643
518
565
559
456
507
232
659
248
45
251
538
612
398
530
335
570
381
480
355
603
498
402
399
534
408
654
434
521
125
305
435
646
601
316
471
475
338
566
664
524
589
348
514
661
692
552
555
737
371
462
701
508
418
666
426
92
534
561
649
491
181
339
533
738
448
572
495
473
303
409
474
626
448
524
415
588
468
440
567
490
510
655
546
654
227
469
651
475
546
731
597
714
685
571
513
295
447
680
397
607
598
473
494
358
175
445
657
506
502
480
457
422
239
474
334
382
517
566
509
615
492
528
459
601
513
340
550
502
410
441
488
333
133
356
469
372
453
736
560
588
418
664
605
559
583
517
401
406
436
272
464
646
353
483
611
612
573
274
549
536
257
422
442
615
257
355
518
517
702
464
294
515
189
512
525
570
655
542
367
575
534
400
359
429
742
419
559
387
434
458
489
701
510
478
477
623
558
347
739
529
592
353
514
356
345
201
709
476
144
466
549
459
521
432
436
693
0
227
533
659
463
361
374
109
504
0
602
537
583
629
85
398
432
203
646
460
529
509
335
665
370
498
361
700
130
613
370
495
429
465
564
534
431
631
502
266
339
519
517
482
450
659
708
454
385
538
570
600
548
315
671
435
419
577
371
282
424
392
383
472
539
478
464
537
319
392
371
507
635
617
94
416
347
689
608
465
262
670
388
708
476
562
421
424
507
594
352
701
737
551
393
748
428
649
505
243
608
664
497
431
371
377
484
581
322
522
620
155
460
545
371
580
402
269
275
603
682
456
624
624
656
651
586
398
473
523
446
576
724
654
160
656
341
684
470
562
395
561
407
282
620
613
423
631
338
467
688
216
569
449
627
418
269
475
284
642
610
475
514
546
612
431
685
510
482
472
479
417
477
425
378
318
561
330
543
540
362
617
426
430
287
754
221
278
454
433
636
561
386
514
511
525
572
428
469
431
783
318
469
549
290
515
510
567
375
368
539
503
406
471
721
577
298
399
264
336
442
442
521
378
512
696
334
615
407
522
480
516
341
245
616
474
375
487
513
521
316
210
685
559
595
734
531
435
414
517
508
318
534
514
646
564
558
547
607
301
550
667
392
662
443
608
506
727
378
766
421
458
462
504
492
337
506
621
459
571
555
545
228
65
420
534
439
393
412
730
391
283
407
562
373
502
472
398
421
415
644
453
359
621
0
455
548
305
318
471
268
738
676
371
369
453
513
740
538
458
431
563
152
497
608
432
526
500
692
542
344
425
558
296
110
556
450
432
609
477
414
423
378
585
566
586
120
651
361
588
119
637
610
466
636
172
330
427
643
282
532
396
423
649
653
656
600
326
296
315
457
366
513
324
501
512
17
458
424
507
635
438
511
469
495
604
390
470
526
607
407
773
581
325
227
572
544
384
165
429
522
602
480
406
508
725
216
723
319
602
547
348
226
647
507
552
344
433
483
519
451
564
405
600
426
334
451
416
746
387
254
427
305
472
215
550
487
422
444
477
474
303
590
187
490
622
0
285
291
463
412
376
350
502
527
485
431
561
556
554
613
600
405
769
446
525
372
313
463
509
558
530
507
584
530
0
414
616
466
203
376
440
493
583
423
408
293
360
418
503
537
334
604
525
430
431
736
111
379
593
668
436
535
653
631
534
355
498
565
261
610
576
519
504
256
587
508
338
280
663
428
149
754
600
674
735
487
531
240
651
603
592
620
168
672
497
473
514
285
704
433
603
371
138
530
602
165
691
591
606
551
380
380
400
626
732
200
596
424
706
555
502
441
731
508
475
493
298
563
271
610
422
702
537
595
528
492
488
489
651
653
429
516
311
487
428
603
483
535
542
547
540
604
195
506
471
179
536
665
528
518
366
430
601
557
673
720
446
573
472
486
547
366
553
707
546
415
472
608
448
528
451
546
394
217
540
416
774
526
445
429
336
385
550
136
362
447
492
487
527
650
486
420
481
563
459
498
446
500
479
652
432
604
581
586
632
432
530
434
648
445
345
513
400
658
224
511
449
484
652
130
374
489
580
543
553
777
617
593
328
350
350
539
323
363
373
688
506
545
628
512
624
406
622
374
619
745
550
544
621
624
583
471
490
368
496
270
517
643
260
392
324
517
505
442
484
617
562
619
586
386
263
730
456
581
382
439
623
292
386
418
398
642
726
528
437
579
507
505
572
612
328
446
581
510
458
648
480
232
616
580
449
560
473
492
0
570
239
455
436
464
450
354
488
362
708
698
642
487
653
411
459
394
570
183
533
465
562
687
493
132
500
638
639
403
585
323
482
648
525
596
295
510
426
724
399
516
519
365
658
335
492
507
561
388
581
352
328
719
507
252
498
544
494
675
169
297
123
715
392
324
535
294
602
557
111
627
75
273
271
471
579
478
650
339
434
589
621
385
445
550
450
275
446
461
663
539
286
492
351
533
571
567
519
333
643
596
648
496
624
543
479
650
564
456
486
518
667
507
610
397
539
586
538
504
718
330
616
429
307
408
374
492
761
288
691
682
619
588
716
42
646
599
596
495
262
435
419
486
137
378
447
332
365
494
189
598
313
205
392
478
664
448
684
457
445
585
381
188
564
524
376
392
395
418
362
705
473
549
384
492
414
469
463
412
405
421
484
676
752
721
520
512
344
418
361
326
368
522
260
471
328
481
572
674
581
441
536
706
507
514
616
633
156
421
334
473
312
485
761
610
510
672
503
293
564
478
328
615
523
449
490
212
260
526
504
414
641
606
653
471
584
651
363
715
408
451
763
484
677
569
463
348
413
611
555
622
389
278
468
519
584
513
531
364
536
513
305
448
571
555
491
397
295
146
489
442
396
281
408
455
612
204
253
459
612
521
441
554
515
544
716
555
499
540
365
609
472
275
350
562
546
498
427
23
502
537
29
617
511
568
299
68
456
196
573
541
343
546
708
371
317
224
320
519
307
234
640
488
653
543
548
636
657
241
419
199
190
671
406
604
517
652
430
474
704
417
469
687
602
441
479
300
622
431
305
566
646
313
534
473
484
149
442
125
543
655
436
665
224
484
462
390
185
361
526
432
569
297
326
456
712
403
327
502
578
128
571
421
569
464
294
385
521
518
431
575
431
633
322
594
424
519
510
519
440
511
396
470
558
426
657
780
325
465
496
623
333
443
481
417
517
673
423
531
471
583
134
589
124
502
397
584
481
462
658
645
459
650
386
496
473
311
522
339
592
573
685
265
632
580
695
443
593
434
414
447
195
568
605
441
535
546
321
407
464
399
484
723
616
543
556
469
744
577
622
646
445
336
295
124
564
569
376
586
574
473
585
317
513
278
314
536
577
585
417
417
524
476
572
526
485
235
418
450
583
430
282
647
506
437
303
411
345
486
477
600
343
567
256
704
729
510
383
513
356
0
656
534
145
317
582
506
388
446
439
450
699
436
423
481
536
371
317
593
698
708
452
317
327
546
505
525
418
538
465
669
205
443
627
544
620
703
503
512
406
108
604
349
549
556
482
489
228
603
632
632
387
605
439
576
589
708
392
0
492
570
753
576
450
339
676
525
527
144
439
541
505
475
706
539
541
548
551
672
718
396
537
587
713
515
286
474
207
66
442
200
694
568
601
352
456
283
573
527
415
0
671
488
510
489
685
654
575
400
397
138
393
601
566
594
429
578
566
763
475
373
657
314
362
529
567
478
549
504
515
424
200
451
425
575
633
431
547
567
603
446
480
604
538
542
573
456
482
473
688
569
420
606
435
607
714
6
474
689
350
403
394
231
452
553
363
465
532
282
256
354
447
550
585
521
577
607
605
565
628
510
687
577
247
425
177
613
612
422
492
267
464
431
571
374
561
238
554
445
648
283
477
452
543
582
543
538
106
711
526
480
666
521
503
414
603
528
551
767
562
447
539
645
313
488
562
591
177
307
231
630
615
547
398
584
502
653
670
470
375
549
519
613
626
455
368
492
421
511
434
259
435
611
367
252
604
26
587
393
396
223
442
571
593
663
138
537
347
389
597
486
552
441
365
282
447
734
439
417
480
22
746
26
658
627
412
381
382
550
406
340
608
365
386
415
415
427
451
510
435
599
522
492
717
423
309
519
464
629
473
470
392
368
107
421
584
481
734
469
588
459
469
61
552
672
429
342
628
434
532
523
559
547
424
465
388
366
606
640
697
465
282
705
612
376
458
497
606
505
503
600
201
366
494
563
561
555
46
584
437
515
439
586
678
429
257
441
460
538
195
489
307
412
591
250
398
750
479
582
0
679
563
645
222
599
327
455
552
370
364
619
483
548
356
399
593
524
764
569
594
474
380
173
576
214
480
425
453
590
384
578
363
491
409
438
499
330
476
254
678
661
484
622
579
266
640
426
373
385
618
333
338
464
574
475
528
388
321
417
362
316
580
484
328
606
283
501
181
600
620
549
460
347
303
472
500
463
365
428
590
510
222
470
364
615
593
566
651
628
613
173
449
0
501
468
607
515
565
632
528
532
445
726
306
567
416
612
592
551
585
589
429
592
726
419
432
555
387
483
528
436
444
417
621
588
477
184
640
400
378
594
362
422
614
590
419
529
237
526
397
514
520
441
428
562
511
600
600
357
620
523
439
713
598
476
411
643
404
483
573
466
615
573
456
618
636
584
513
546
578
526
365
582
0
394
562
593
368
625
556
447
781
501
545
476
456
582
524
462
395
325
629
513
436
168
677
352
458
522
567
740
621
597
488
662
528
671
407
449
104
672
572
444
482
763
289
656
445
512
234
55
739
288
428
661
412
586
455
560
428
438
616
405
490
375
325
399
534
481
602
455
288
286
176
377
524
432
481
541
258
414
496
397
499
364
607
457
517
503
631
548
660
455
275
460
395
523
443
371
448
313
489
219
615
392
536
460
493
683
256
460
611
508
518
576
548
467
379
282
240
554
307
338
544
374
382
412
571
494
492
480
614
297
333
237
541
557
579
361
512
469
459
577
212
0
549
450
418
576
614
727
309
581
530
205
567
470
256
284
498
549
434
447
379
77
518
314
501
599
682
420
703
705
494
436
615
450
361
466
338
427
572
564
486
635
437
400
389
608
324
533
522
457
216
599
522
596
168
508
567
494
549
327
510
635
380
403
512
262
463
707
0
586
503
385
599
574
428
450
631
719
442
44
670
589
705
281
501
321
500
388
687
274
363
546
502
0
550
601
411
587
638
493
531
519
494
520
404
256
310
541
0
401
559
314
752
526
568
456
615
486
578
559
173
374
552
540
495
355
502
399
417
470
478
663
381
478
484
762
511
657
455
461
615
524
267
562
390
562
525
546
512
464
560
717
150
461
389
494
434
303
693
454
506
615
543
662
565
476
498
246
413
427
162
402
580
282
619
343
545
450
546
448
637
479
551
385
382
622
719
455
612
527
550
522
724
551
486
516
580
699
574
406
497
508
476
283
349
490
540
250
400
476
671
577
400
614
292
276
550
427
615
705
321
642
361
352
338
623
474
547
523
419
268
447
468
427
482
447
632
623
642
606
607
454
497
390
745
705
719
534
415
564
593
366
468
405
436
660
528
469
442
319
456
490
724
705
361
487
369
253
637
469
154
546
439
661
604
610
476
409
756
631
417
453
524
412
462
397
512
0
618
477
645
505
640
513
642
399
508
453
392
291
409
501
317
479
582
598
328
202
426
518
395
372
423
500
690
609
691
588
628
409
325
537
263
522
634
467
519
448
605
195
230
506
386
513
481
679
394
322
534
419
550
390
364
605
632
626
238
127
559
490
522
399
585
523
460
591
417
555
588
617
553
517
490
483
448
730
217
519
535
550
626
584
645
368
659
382
492
387
327
324
520
423
553
542
726
246
373
629
717
551
300
423
416
328
756
607
381
512
390
510
744
474
502
507
515
171
343
686
478
593
160
398
669
538
512
387
312
407
570
374
547
413
181
353
315
620
496
325
343
693
374
615
617
452
591
521
606
774
231
493
205
572
610
546
586
499
713
571
300
422
545
331
673
628
421
564
662
666
537
486
432
607
462
456
262
483
622
489
479
280
517
639
629
474
508
198
548
558
504
485
510
547
594
560
585
506
692
357
447
532
567
402
216
520
617
464
616
370
504
475
315
536
476
0
737
579
659
492
462
108
547
196
598
406
639
584
453
549
361
452
127
371
379
690
736
448
419
287
607
783
570
120
480
376
484
507
232
466
284
488
417
729
307
535
350
0
692
469
507
331
386
487
649
546
163
410
360
366
504
645
426
404
437
541
527
632
505
495
501
256
543
463
699
511
402
443
334
466
511
463
454
460
607
645
490
338
436
618
390
595
432
464
738
524
711
519
293
500
497
539
311
474
356
414
381
500
299
655
375
464
684
476
547
448
364
347
559
511
559
608
595
552
328
576
518
442
435
507
0
599
337
621
538
435
443
617
589
470
551
427
639
293
281
447
665
608
452
378
297
490
481
477
452
486
489
563
533
343
458
390
234
326
567
274
789
286
714
687
606
314
544
429
593
724
705
529
552
232
590
706
581
468
345
602
164
568
298
462
564
419
394
617
499
609
415
341
295
593
457
501
629
529
550
610
736
297
426
410
597
498
527
352
609
506
558
718
385
535
610
374
444
502
566
311
597
496
620
622
472
562
359
378
291
690
579
443
486
607
233
592
602
559
627
457
361
392
186
527
666
623
600
562
465
656
307
440
534
470
596
626
10
589
433
519
513
299
430
287
589
544
623
598
541
601
242
462
533
429
514
610
487
596
387
431
139
534
415
316
717
513
558
678
481
441
349
579
543
515
482
250
558
522
586
589
387
464
447
224
324
473
531
407
680
437
556
546
689
494
471
481
551
453
454
484
414
638
630
385
673
648
348
621
645
187
324
246
425
652
688
472
637
265
508
573
267
440
574
459
753
386
707
612
438
514
481
488
679
558
468
712
664
512
647
582
512
397
463
573
378
676
466
549
383
474
568
343
608
407
477
439
388
655
578
678
297
248
685
92
681
581
0
60
538
550
648
544
462
588
654
581
618
613
499
459
563
352
610
768
615
651
573
383
117
455
403
472
637
441
475
631
648
485
567
543
435
533
538
476
520
676
480
473
471
287
628
667
501
437
271
523
407
532
544
588
456
667
253
544
490
552
184
228
458
589
386
519
698
610
668
532
343
523
483
579
521
458
566
487
597
424
462
439
387
150
207
640
259
562
496
682
705
565
579
570
687
355
253
493
371
311
735
551
434
530
375
671
467
709
146
727
442
601
548
407
556
701
309
462
258
324
478
634
401
496
520
586
354
646
650
650
382
263
241
649
599
627
526
460
152
430
346
696
490
629
692
598
597
508
429
566
408
564
253
344
611
370
715
213
526
469
656
526
415
476
592
551
576
615
372
524
431
326
482
607
451
425
371
527
586
611
559
768
158
374
705
460
560
488
265
767
402
616
437
516
526
582
415
0
632
317
497
431
539
610
358
612
322
392
469
630
652
685
593
717
653
283
363
604
522
560
425
533
542
405
515
491
457
465
408
700
216
471
448
642
271
599
319
526
632
425
256
676
386
580
607
647
418
252
558
541
0
494
649
554
340
637
555
505
299
455
234
521
209
567
593
545
735
662
507
547
714
690
515
449
483
566
453
551
420
479
577
576
599
304
524
518
462
361
517
628
530
304
363
500
273
439
564
435
523
574
689
526
511
515
563
429
645
368
616
510
475
492
503
449
406
484
350
459
634
411
504
373
522
381
435
561
620
523
514
287
554
0
656
392
324
411
436
344
682
547
493
606
596
436
293
477
386
529
283
627
501
635
676
481
71
565
386
187
451
472
510
587
605
388
555
642
466
432
432
524
490
381
558
455
536
467
570
405
335
442
373
556
0
497
199
492
30
670
468
588
510
509
602
0
590
671
444
430
553
609
425
552
353
274
563
414
587
431
174
518
266
450
567
495
716
513
440
551
648
419
641
251
496
531
354
551
510
459
547
370
48
358
506
456
470
360
551
629
584
569
515
548
601
568
560
423
575
558
232
396
570
673
505
567
316
334
644
587
453
451
286
540
610
396
414
351
583
472
388
468
248
749
474
437
437
378
620
743
364
593
583
498
424
512
385
476
435
479
375
541
554
629
340
580
551
460
340
576
497
556
290
321
426
471
402
381
113
538
558
750
591
511
616
287
402
599
325
116
295
652
232
491
232
484
485
418
241
559
419
514
534
671
564
554
620
648
482
361
554
598
450
490
540
365
368
643
217
620
445
369
108
372
349
566
482
428
433
540
650
280
450
634
461
447
421
705
441
577
314
290
389
560
575
325
663
239
558
543
481
457
481
424
460
290
488
538
579
468
629
338
294
595
551
434
529
616
330
521
461
515
335
464
493
520
469
700
463
248
677
652
307
608
647
451
493
514
566
544
576
376
707
696
577
507
403
260
689
434
188
615
366
159
514
326
473
704
335
545
630
575
599
710
655
284
295
307
460
433
543
380
651
589
471
648
520
466
494
278
248
454
424
511
418
699
254
343
514
529
422
620
553
512
534
365
653
400
575
626
611
363
658
304
255
502
224
502
330
333
516
541
512
621
778
605
295
401
358
447
437
571
403
555
386
367
316
579
528
483
204
188
565
490
315
332
498
315
339
436
561
530
418
591
396
367
363
282
326
588
108
549
373
565
351
493
519
703
543
303
290
357
377
289
402
341
749
585
461
586
600
330
494
397
335
630
322
384
477
580
467
616
628
377
601
478
468
483
487
617
468
468
489
406
124
557
453
228
463
588
565
377
522
299
472
445
441
601
516
61
631
465
500
333
448
345
512
596
450
488
722
712
221
583
506
289
549
483
453
446
391
537
164
429
562
562
530
642
385
437
428
585
83
642
473
578
265
457
374
580
493
468
483
623
480
295
518
577
445
456
703
462
493
260
581
490
386
499
489
581
693
571
560
718
553
636
387
432
337
398
521
620
496
196
467
146
0
337
570
633
282
336
466
267
197
279
487
263
556
427
563
467
696
578
86
613
33
717
435
240
550
316
596
344
595
498
757
745
609
594
311
93
447
128
180
576
432
355
461
736
398
323
396
571
498
372
462
361
675
513
459
406
507
497
367
278
534
650
742
509
0
667
392
541
437
564
364
674
612
526
531
533
341
438
318
426
409
482
450
407
286
710
463
295
394
611
292
669
468
549
552
188
582
396
511
393
482
507
574
240
567
403
732
590
286
547
565
662
381
390
474
705
502
494
487
186
294
444
566
417
537
639
601
512
460
561
549
467
462
709
636
304
683
368
469
511
585
381
512
611
730
429
462
612
559
265
592
401
685
533
664
631
630
96
36
657
527
533
608
577
535
422
719
492
269
415
643
719
475
678
532
711
573
339
442
438
442
557
115
448
273
397
205
593
473
590
325
463
550
134
319
343
511
384
542
488
555
432
573
323
623
452
640
494
686
0
318
369
394
638
327
465
347
490
527
608
491
374
468
354
562
398
423
489
469
526
433
615
575
573
487
350
565
640
434
426
256
395
495
469
503
343
380
417
394
674
518
432
448
609
451
461
408
610
290
522
468
464
562
550
688
469
487
546
594
638
432
412
269
681
713
477
526
441
408
657
613
731
41
474
545
527
575
415
374
514
766
253
570
481
452
576
139
689
580
702
570
637
460
205
492
575
480
539
567
108
282
331
450
400
508
233
522
555
492
488
594
638
426
350
314
343
469
677
161
523
608
287
381
676
423
523
471
397
350
528
512
231
384
622
329
514
548
423
272
290
694
610
233
630
573
486
668
301
487
418
426
454
539
518
513
337
516
401
516
607
496
369
434
657
670
369
309
426
674
482
467
532
592
478
604
438
511
486
475
395
358
455
623
489
566
517
570
496
498
411
613
317
622
357
532
497
571
511
314
564
568
384
562
674
672
559
578
460
485
411
484
516
403
412
511
321
421
454
391
365
565
549
648
484
480
0
605
494
776
440
569
512
346
344
594
315
128
546
175
575
564
378
714
442
536
365
397
585
513
248
558
552
387
314
581
508
390
706
603
629
366
219
405
652
752
429
553
489
442
508
688
534
606
607
522
541
302
714
712
301
239
525
474
436
449
674
507
607
412
376
629
625
308
409
485
481
551
450
755
478
550
553
439
458
538
562
473
425
461
515
216
528
314
512
710
764
502
467
456
586
694
355
582
510
472
501
387
501
520
487
436
582
695
412
520
553
473
670
469
527
486
402
387
574
456
639
460
623
673
258
269
453
624
611
543
549
593
496
399
502
174
581
408
550
396
516
466
468
0
451
409
636
634
587
439
464
572
387
400
400
582
339
442
532
341
447
587
504
455
662
650
562
509
413
300
264
514
702
489
481
372
362
381
410
500
451
388
725
578
74
486
526
753
677
407
619
481
493
502
687
379
516
615
451
356
552
452
676
388
178
187
608
681
402
374
389
644
455
457
228
477
196
446
353
437
516
509
752
595
423
390
390
491
596
451
575
369
500
562
592
479
259
524
56
514
556
709
416
260
378
642
684
445
537
689
215
470
639
84
67
347
595
533
685
294
377
490
491
546
559
343
691
347
332
656
414
580
630
619
580
523
607
472
619
432
190
562
575
485
535
486
375
338
561
739
353
425
547
201
449
402
507
349
545
532
543
554
49
399
259
0
627
511
520
362
362
691
71
606
590
504
489
548
609
254
487
540
605
611
399
474
419
335
266
490
411
713
593
564
651
632
600
487
313
720
450
394
543
599
567
652
541
513
480
634
658
383
400
436
0
452
367
473
238
546
397
468
547
505
379
225
384
463
498
668
283
360
402
546
498
625
606
501
624
434
628
435
220
300
553
208
565
706
733
482
471
336
466
408
221
575
536
592
346
383
387
488
513
535
597
410
419
573
336
454
372
682
644
593
341
310
375
619
421
554
588
552
465
576
456
540
598
424
679
521
447
418
548
713
404
451
429
675
598
611
460
352
509
563
390
543
374
396
319
552
592
571
587
457
334
406
510
484
482
358
576
594
468
541
229
402
741
435
87
432
528
717
677
375
605
301
646
697
379
516
427
353
531
473
386
659
451
432
355
574
426
706
448
405
716
75
491
469
647
487
692
408
558
571
666
331
553
435
632
520
288
589
312
540
543
592
387
753
729
638
477
737
621
472
357
577
338
411
222
517
487
351
426
297
532
513
413
740
659
503
752
360
550
710
509
593
509
346
507
474
576
459
447
320
559
543
627
459
600
566
558
448
410
264
590
571
535
416
258
370
378
623
505
452
377
536
523
716
400
201
558
324
670
344
655
535
427
507
467
710
577
597
621
653
422
649
443
571
394
560
287
433
605
624
286
482
301
422
406
503
627
536
327
287
538
427
222
269
375
629
466
519
471
424
630
707
559
601
515
384
476
631
503
570
452
342
499
338
507
409
412
582
269
392
503
461
427
447
566
572
444
536
565
255
508
310
481
405
540
583
283
575
368
648
572
560
580
380
476
610
603
592
451
464
610
411
524
360
564
578
595
696
492
678
256
724
422
606
480
666
642
208
472
569
485
446
523
315
395
440
373
422
443
578
414
546
607
448
322
352
293
544
536
527
764
616
516
217
712
239
531
463
253
368
541
78
446
616
419
535
529
534
360
544
633
341
206
730
570
489
334
376
489
0
625
578
0
636
629
0
728
726
429
509
624
353
527
274
660
274
715
564
456
368
462
396
486
625
585
473
747
634
462
632
567
636
634
753
420
564
326
245
432
503
355
527
519
665
554
264
603
473
577
588
669
353
614
633
385
413
539
690
180
464
701
473
429
219
604
569
370
304
290
355
549
59
489
688
306
376
526
596
591
354
408
619
622
445
637
308
335
396
550
654
493
653
486
316
630
613
567
460
694
640
278
372
371
585
638
553
697
710
194
128
489
457
511
541
485
365
415
628
422
718
573
487
639
593
346
413
203
512
653
735
788
497
625
594
654
243
519
484
492
363
646
409
542
665
514
510
324
524
526
395
603
446
523
519
250
538
670
472
565
559
499
482
684
536
498
499
431
592
351
504
562
657
634
637
579
314
459
548
447
565
480
369
514
476
225
728
489
556
543
243
660
396
500
523
470
395
724
501
582
536
592
315
525
628
462
543
445
566
392
430
560
647
633
459
558
350
380
492
434
666
446
312
557
268
684
358
246
266
434
512
337
464
467
667
0
516
370
216
536
392
652
409
434
523
603
735
382
675
353
560
629
445
713
488
562
446
341
610
465
389
635
477
488
673
277
546
577
392
409
299
627
342
536
503
403
493
716
466
549
475
494
135
561
402
401
412
646
388
634
732
115
427
230
475
620
397
499
517
441
229
532
601
349
619
674
268
536
672
624
286
523
415
307
357
567
435
441
439
595
595
0
453
432
638
492
478
481
535
506
399
540
436
397
535
469
358
469
610
474
218
134
558
406
164
656
491
777
462
465
731
548
389
555
458
614
420
490
638
251
478
562
610
372
475
652
486
375
548
432
585
761
499
538
494
459
404
495
454
370
275
480
654
449
570
409
550
526
428
544
634
237
541
561
588
370
729
494
464
519
699
550
473
675
96
445
425
622
620
459
32
676
446
296
307
584
579
416
438
500
477
566
481
682
619
446
463
432
525
535
687
487
503
493
202
386
255
212
79
718
389
612
408
547
546
462
488
392
395
421
416
560
640
415
594
336
466
498
224
398
596
616
584
348
304
339
440
278
581
278
592
378
668
381
333
293
319
399
654
777
416
640
364
448
454
570
482
482
418
329
551
379
263
522
536
740
252
620
557
761
486
613
295
734
545
568
500
655
452
503
346
515
344
513
543
432
568
336
555
481
436
450
510
611
232
78
656
461
486
577
534
553
629
303
476
468
435
415
334
421
722
413
216
663
419
480
782
580
643
577
594
438
439
185
568
156
482
355
473
370
575
670
705
541
222
640
347
518
556
414
323
610
471
574
251
268
309
523
442
516
659
592
716
468
607
381
728
342
661
249
270
468
432
475
463
392
300
784
465
444
477
744
691
394
557
501
620
437
127
746
545
550
564
595
606
589
773
425
425
553
241
579
524
451
229
436
403
629
588
629
287
309
586
614
502
703
588
657
580
442
608
483
37
321
358
594
551
473
525
403
454
427
412
290
343
369
538
577
770
283
202
309
522
450
579
477
583
572
642
303
498
560
676
572
361
656
655
224
466
743
535
554
553
421
602
545
570
426
627
444
587
404
634
271
461
647
405
472
573
331
501
674
416
614
363
549
437
497
592
205
498
393
227
257
584
411
434
548
558
630
528
385
366
596
602
603
252
637
350
316
595
422
472
498
415
575
424
501
525
593
621
290
615
516
479
571
610
364
442
524
443
686
494
410
363
265
371
479
540
556
643
571
510
318
552
557
657
516
667
643
444
567
392
664
449
623
665
542
545
275
354
598
557
649
435
358
448
258
648
576
402
296
300
464
561
633
250
573
615
286
482
435
521
487
515
354
465
607
299
689
628
349
719
304
303
452
309
662
366
689
435
324
478
326
386
238
478
173
570
444
468
576
520
548
655
540
631
481
437
338
565
592
442
601
498
331
429
403
457
606
515
569
324
549
483
422
499
421
364
501
343
536
434
263
679
571
336
540
464
556
419
460
361
484
408
308
504
583
367
570
547
460
658
548
567
730
587
482
475
244
403
400
434
584
574
629
362
630
414
534
390
560
372
647
230
372
350
228
424
570
420
636
411
479
445
558
212
434
547
452
541
346
389
663
607
584
643
326
524
510
414
283
458
532
565
450
610
301
424
628
680
699
556
643
409
589
514
554
326
29
741
599
241
620
471
292
431
522
598
617
605
300
585
280
413
632
510
520
388
278
578
497
522
517
630
215
395
279
483
283
627
474
482
355
518
621
326
752
575
667
631
552
585
436
486
456
269
718
450
552
371
623
597
531
397
751
389
435
617
407
0
306
617
609
347
473
327
411
396
422
681
502
471
495
372
665
477
489
437
734
539
522
568
639
239
666
442
430
269
216
477
392
373
403
246
563
707
559
487
363
671
715
505
674
271
285
255
633
557
464
541
477
474
441
502
395
335
739
454
596
557
620
196
522
489
562
589
589
636
534
405
573
220
653
630
417
59
555
466
402
466
697
360
360
484
621
289
557
633
594
487
443
280
764
403
437
538
724
375
477
466
608
327
381
529
491
247
545
239
578
609
429
604
315
486
150
403
514
655
488
295
366
435
729
361
416
484
186
574
432
530
306
344
396
400
444
331
576
664
432
253
456
471
531
579
584
482
331
670
307
320
692
677
435
345
468
410
377
633
393
122
493
103
723
501
307
299
422
767
537
379
143
696
422
598
674
576
443
326
524
657
575
529
409
538
482
606
418
646
566
505
232
474
566
554
528
652
425
584
520
472
643
458
336
593
628
726
539
487
572
0
532
103
517
536
469
457
342
317
445
347
372
652
598
485
487
402
510
421
604
337
418
311
592
159
510
403
639
639
0
569
327
434
343
588
552
492
278
703
291
402
595
591
592
720
639
523
540
240
452
517
494
481
470
718
623
491
667
562
651
697
345
296
138
522
689
532
580
407
618
479
493
461
432
27
627
289
377
390
625
547
508
587
388
595
656
543
429
569
466
420
559
604
519
405
65
604
612
149
263
418
299
505
183
718
328
425
729
369
495
421
281
504
565
321
356
574
741
293
480
383
457
598
440
335
493
448
438
398
447
648
499
694
517
646
367
270
556
296
436
456
668
199
431
472
294
297
439
620
479
538
564
377
452
0
690
433
259
435
267
324
497
336
612
254
678
362
368
564
346
708
393
522
358
388
421
674
282
592
433
338
458
588
503
427
636
362
533
571
607
537
577
624
284
610
692
425
428
714
325
445
561
202
375
383
366
388
539
673
324
414
591
693
583
589
609
344
217
294
381
577
188
439
698
499
224
393
548
74
327
530
603
206
451
556
532
221
704
489
544
419
68
463
474
544
415
470
649
370
430
485
507
559
293
488
559
539
372
489
395
176
661
403
380
164
525
628
524
397
604
225
494
0
374
131
484
287
622
736
553
386
539
524
451
601
476
430
367
359
615
249
308
572
683
640
464
517
310
518
572
497
669
360
399
386
490
427
443
573
656
499
476
430
655
330
501
331
561
608
415
635
250
531
348
541
488
679
236
399
479
635
430
315
466
301
704
338
647
637
260
474
201
366
747
474
666
484
527
676
272
554
378
761
515
608
426
526
524
566
555
481
458
514
224
367
585
368
612
625
161
458
537
460
295
458
524
233
126
315
588
656
497
366
570
248
630
553
586
746
368
230
477
633
554
402
310
386
542
503
279
528
304
627
615
622
486
404
601
540
478
466
527
487
332
388
120
346
588
256
325
477
459
88
545
563
296
476
408
548
577
419
242
559
368
595
586
304
648
523
495
564
449
514
514
650
504
487
453
457
653
341
513
373
388
336
364
503
564
541
628
612
579
186
265
436
565
632
570
137
505
484
704
398
398
367
217
366
451
401
558
571
559
411
660
337
494
440
594
512
288
350
230
713
481
340
531
606
200
667
506
507
467
660
448
395
777
417
555
391
465
560
429
555
307
524
557
283
471
567
428
205
475
550
555
347
205
557
513
435
432
408
690
470
505
313
475
610
405
625
507
618
604
432
553
543
632
462
262
386
495
436
541
532
459
344
220
495
446
586
180
201
476
472
347
284
397
404
594
565
360
280
486
481
510
518
485
400
575
647
368
438
329
549
141
424
280
396
501
346
457
695
541
0
302
424
616
549
242
662
572
365
526
497
672
446
644
294
477
727
347
363
300
430
417
434
531
450
440
497
399
535
190
574
427
579
452
562
457
564
530
530
757
542
465
513
596
618
455
560
539
512
602
634
526
673
554
633
401
462
510
523
598
520
683
165
150
524
232
521
610
670
523
644
685
472
476
501
588
470
751
511
625
700
395
280
386
360
422
397
569
615
630
131
168
425
693
482
553
405
500
538
545
452
439
605
237
544
505
156
577
556
343
400
574
560
580
211
456
664
309
761
558
612
671
310
473
676
716
484
487
413
275
61
504
601
480
516
627
275
472
483
524
479
410
627
548
603
617
465
563
475
660
417
562
700
611
249
638
655
478
489
595
462
631
596
485
300
226
443
229
730
498
379
517
501
579
397
351
450
569
516
466
583
605
388
597
443
381
360
684
584
576
440
635
461
739
489
603
601
441
559
422
583
467
413
571
687
445
611
587
512
477
331
395
418
461
555
453
568
466
641
557
301
396
567
563
778
454
369
0
350
567
265
430
309
546
316
478
270
568
471
361
550
450
439
673
543
571
721
558
329
435
667
510
352
522
534
661
401
521
428
383
673
276
213
311
549
506
385
501
502
603
646
520
413
487
556
500
630
572
366
334
631
549
501
267
429
493
550
694
550
589
414
260
497
346
297
500
559
540
593
444
733
578
513
602
544
469
578
631
547
252
703
235
567
468
387
490
657
482
389
577
541
395
587
179
438
573
256
379
469
720
314
470
506
641
321
538
310
361
503
443
678
544
587
385
365
575
411
621
341
580
368
507
549
370
533
473
496
311
410
532
454
322
241
336
309
689
476
0
435
213
526
741
728
571
179
326
558
399
705
693
351
472
498
464
442
324
432
334
526
644
382
660
610
320
535
572
214
360
729
581
515
666
398
636
527
626
205
507
154
444
686
493
437
670
451
550
639
630
344
457
340
543
509
418
516
583
339
323
465
459
280
559
569
529
624
468
285
576
371
593
696
712
619
689
366
410
333
711
515
396
389
345
475
222
566
374
446
431
556
697
583
463
275
410
509
208
359
514
353
538
506
443
624
547
555
405
604
525
332
717
403
128
365
40
675
564
267
319
374
518
509
105
307
422
515
628
791
698
375
517
541
460
741
480
322
549
670
400
342
237
246
518
593
486
570
595
690
334
610
466
503
430
725
590
575
344
463
613
670
505
253
460
510
551
405
718
409
518
417
737
537
512
8
563
263
679
454
532
546
411
559
470
446
386
396
561
446
491
649
730
349
527
548
461
232
29
541
524
596
437
489
585
239
249
179
452
312
452
432
576
252
676
377
574
514
553
541
712
431
511
542
683
543
455
48
468
373
383
455
519
329
502
543
321
617
296
662
431
398
414
612
577
483
570
753
417
616
534
507
576
278
470
218
592
613
618
465
728
615
536
525
565
552
591
382
548
548
681
635
475
329
546
286
298
707
501
514
73
598
583
495
305
526
441
753
448
479
398
389
553
590
434
460
352
582
491
638
465
196
358
242
614
569
512
542
566
232
525
389
648
617
447
667
641
499
601
113
391
534
310
443
441
324
403
413
74
340
621
213
560
576
539
358
368
499
460
567
431
422
417
376
148
413
205
423
651
684
481
465
386
551
581
225
525
394
0
538
407
225
609
609
504
524
546
582
406
506
430
418
242
634
579
393
466
308
450
685
619
485
594
566
339
491
507
358
746
620
607
273
702
610
310
515
533
514
322
372
335
543
539
364
647
561
477
526
391
578
585
304
114
135
208
402
352
518
536
482
132
337
165
693
409
426
254
578
491
302
606
648
639
457
573
315
274
412
717
501
351
709
629
737
451
378
653
496
407
65
665
413
473
353
286
556
546
486
24
620
548
565
392
434
341
494
538
627
607
394
508
236
359
485
503
547
536
499
464
653
441
661
369
480
611
429
430
537
415
742
533
416
487
262
471
159
293
265
452
427
506
739
651
520
251
506
570
560
393
564
419
290
416
307
257
336
740
633
331
568
420
382
530
370
587
703
46
701
649
321
589
479
622
499
521
726
122
276
559
501
449
633
499
372
357
483
472
696
356
470
535
356
548
419
657
645
377
323
343
293
573
387
597
561
640
498
419
522
352
666
599
408
270
346
441
597
386
617
647
501
590
562
425
443
516
342
309
385
193
410
232
610
715
349
492
316
352
676
238
302
283
467
255
610
561
629
431
438
625
296
701
374
377
467
646
445
554
505
658
567
661
377
353
625
645
578
456
13
354
577
344
482
334
178
312
644
652
714
268
420
134
574
533
488
651
590
701
348
556
152
391
477
491
635
773
233
358
589
542
470
549
353
456
1
627
531
459
356
664
378
493
376
468
424
418
673
531
262
683
713
481
273
626
505
662
527
472
437
345
294
350
515
153
488
235
611
368
282
426
304
58
360
612
616
615
311
381
423
419
454
506
493
414
337
572
533
653
452
454
697
697
456
565
490
459
546
607
638
176
503
668
427
472
601
353
577
561
167
479
583
560
300
469
571
130
461
356
525
513
355
252
585
485
516
363
665
668
562
425
475
287
350
246
460
751
452
494
394
538
466
541
161
574
496
666
374
606
610
453
437
594
373
506
580
616
454
419
598
635
574
536
566
412
130
604
654
501
319
483
219
501
586
623
381
621
546
677
510
138
484
654
538
360
459
462
61
594
597
140
213
251
692
474
434
364
593
678
417
253
658
733
520
578
783
449
493
614
453
570
621
435
449
573
516
475
503
527
299
607
585
322
202
472
454
275
704
594
452
638
506
219
670
411
266
551
494
649
764
609
672
553
436
418
578
694
370
641
350
466
473
679
495
372
382
570
495
624
239
450
476
675
230
387
377
486
132
474
333
350
219
587
590
623
206
563
525
365
369
640
598
467
495
662
465
337
225
526
546
450
498
487
510
425
310
280
599
673
452
229
643
602
631
551
453
546
716
524
532
491
596
496
325
522
500
342
436
596
461
649
333
530
481
421
341
468
326
417
561
553
663
429
606
415
516
299
616
605
460
656
200
531
562
481
453
248
351
678
514
517
475
466
527
552
325
413
679
564
333
509
450
369
439
289
633
558
560
163
252
423
442
328
565
479
711
491
623
578
287
581
281
360
342
490
535
524
438
493
154
453
209
594
403
352
597
365
584
373
627
421
641
718
516
231
513
537
736
362
527
472
464
480
491
417
539
637
191
369
422
457
255
520
580
526
640
332
642
447
301
278
530
508
616
296
438
350
23
480
539
434
453
465
506
456
189
340
260
496
657
382
481
640
393
546
573
299
318
342
569
291
536
368
338
458
438
564
419
535
377
530
373
387
620
296
375
616
438
636
616
284
332
449
592
0
349
498
497
484
392
530
549
135
655
504
449
510
446
505
508
565
188
659
646
470
328
504
369
389
653
698
452
481
535
194
341
346
389
491
646
145
473
528
402
193
302
507
520
487
482
609
568
331
652
661
623
578
503
720
467
465
393
618
602
457
567
294
593
565
435
733
444
474
574
664
711
691
316
667
84
320
373
351
632
564
548
483
550
553
320
369
482
429
283
307
0
658
665
644
329
592
651
497
739
470
408
689
433
301
391
562
559
535
441
566
609
557
533
364
458
428
471
586
665
484
730
598
495
218
537
478
637
553
275
547
457
480
531
555
455
385
413
411
496
504
496
389
306
410
178
373
625
514
318
269
661
358
275
386
372
687
465
489
379
663
436
473
269
585
573
469
370
158
243
140
334
401
397
378
438
233
283
49
507
359
589
583
415
450
558
97
550
469
277
730
373
651
549
415
400
526
282
295
744
758
455
545
566
461
558
677
312
364
508
615
516
397
614
352
500
600
474
667
435
532
599
316
496
565
651
291
436
656
610
209
328
384
640
393
290
632
684
364
746
528
581
428
542
486
207
0
590
671
465
494
709
582
459
631
320
269
0
250
480
427
644
264
101
452
453
702
438
453
522
261
0
604
502
343
451
524
304
482
373
560
0
414
570
464
449
502
478
555
640
227
640
568
628
545
638
463
532
587
597
302
361
662
214
506
484
617
700
440
515
331
285
575
467
306
544
306
594
588
595
582
709
515
281
541
444
584
544
412
567
241
526
193
670
383
442
593
456
425
556
451
448
610
463
399
537
438
351
508
337
412
312
593
562
386
358
393
474
581
501
358
702
464
291
307
618
715
343
685
557
670
426
338
482
437
563
301
196
219
510
354
482
396
497
475
490
181
391
700
498
495
524
640
396
615
525
490
250
58
639
582
621
675
586
695
721
518
473
566
607
70
573
380
346
495
272
601
698
713
666
372
539
571
528
457
453
609
595
717
623
463
376
710
488
598
363
395
548
167
557
652
539
381
309
382
573
622
639
318
398
131
603
489
303
609
533
526
204
482
569
404
469
518
490
490
512
550
315
518
741
311
586
466
489
506
318
754
500
536
219
468
613
593
67
475
630
475
332
699
681
516
630
227
603
320
505
466
676
516
603
550
789
383
490
371
557
599
595
670
588
439
414
252
469
431
585
493
407
474
613
480
744
440
501
234
469
572
459
514
25
499
430
726
166
647
312
275
478
293
635
543
553
308
546
710
237
739
140
476
587
612
426
385
502
589
497
668
274
439
417
428
613
318
576
429
536
439
578
650
620
405
579
673
131
438
342
99
597
0
544
435
0
515
457
431
285
406
239
510
464
590
571
373
337
473
419
375
667
327
370
457
566
344
515
410
706
518
533
570
541
285
483
498
549
497
451
412
757
558
730
725
408
647
340
597
602
325
704
516
679
573
508
462
557
535
510
303
527
584
138
290
401
518
117
361
170
506
566
357
329
540
439
433
232
302
416
481
324
351
575
628
580
113
369
457
537
376
348
425
678
653
269
310
427
164
302
544
335
292
633
458
447
0
477
626
582
434
583
540
357
356
191
611
134
342
359
248
573
268
600
569
650
590
455
179
288
442
612
758
478
634
534
644
506
294
262
262
462
355
464
324
275
476
564
324
335
279
569
417
461
658
509
694
694
414
278
540
526
276
567
550
454
330
535
640
343
515
494
471
560
369
398
452
274
685
511
548
472
612
20
531
525
307
484
582
633
206
574
570
287
662
676
444
479
634
379
640
479
424
541
203
635
516
241
468
420
473
495
407
425
233
557
484
481
576
395
735
612
482
573
220
337
546
700
429
643
628
221
582
507
511
668
459
741
599
516
374
426
670
686
477
134
668
361
325
547
468
481
180
434
495
268
514
439
425
489
478
695
657
415
698
294
307
377
398
350
682
625
438
593
310
509
415
368
294
380
266
385
409
548
464
357
463
475
551
424
261
599
378
519
372
495
602
434
545
519
353
375
361
635
610
423
501
689
435
354
562
523
557
641
593
569
197
183
511
672
636
358
711
589
550
555
460
408
190
567
410
588
521
494
344
536
553
484
642
488
360
375
463
289
600
366
480
504
516
575
546
469
456
318
669
450
580
601
615
577
207
540
314
512
587
690
501
428
343
351
530
634
721
622
529
516
558
396
472
512
310
464
316
494
755
602
505
550
319
582
456
603
347
399
465
632
406
683
559
635
342
564
515
314
624
371
439
431
365
352
452
580
525
621
589
524
645
622
387
676
443
439
522
620
487
420
592
526
446
695
534
570
421
531
553
385
425
719
508
611
470
633
599
612
296
477
164
562
640
470
484
533
422
495
509
615
710
103
389
401
480
592
603
516
380
475
642
376
192
483
604
289
697
546
341
511
362
441
595
417
368
299
428
556
558
278
373
575
581
550
435
656
328
413
494
650
284
568
520
560
626
659
212
521
528
687
559
609
578
282
293
418
317
232
445
333
442
388
729
292
760
495
438
590
436
423
609
256
465
471
336
405
622
488
592
761
600
268
288
664
492
390
392
336
567
512
463
521
698
501
561
422
491
492
342
651
465
443
508
498
722
518
513
184
468
584
587
510
370
512
241
606
439
455
644
62
476
464
393
275
324
413
609
403
485
599
294
475
352
560
388
126
509
462
300
478
314
265
472
472
213
377
627
0
525
572
481
489
688
521
142
524
376
500
56
474
472
488
660
373
616
369
524
783
685
612
640
0
538
441
438
558
536
370
508
573
566
430
660
387
607
531
588
669
561
474
638
486
647
466
353
557
238
381
669
587
443
522
574
379
404
150
784
434
464
638
286
586
481
521
582
601
429
410
519
305
183
413
492
412
768
575
434
479
248
485
304
483
396
403
472
385
681
203
578
301
520
522
377
414
681
301
519
572
541
663
631
373
609
423
651
460
406
189
210
714
447
448
245
350
222
459
470
542
205
358
643
496
399
395
392
465
308
461
483
625
436
451
480
133
566
215
481
592
399
364
339
311
660
555
555
376
708
605
217
552
438
520
494
675
389
376
521
570
421
535
432
422
437
797
627
601
516
489
164
418
404
415
75
474
556
434
679
617
549
449
265
281
418
276
350
586
526
530
501
348
520
447
656
298
394
599
274
328
542
295
347
582
479
498
540
559
477
413
0
336
653
530
616
753
540
551
759
447
401
408
408
499
436
442
564
345
366
377
711
572
148
285
448
718
610
318
439
443
331
422
445
471
246
695
273
686
608
152
401
389
359
383
486
507
533
457
429
620
496
192
471
369
750
506
472
331
717
164
715
566
442
634
504
571
467
287
409
771
289
559
406
325
368
574
704
441
339
366
608
362
482
198
314
574
553
515
328
516
633
465
233
418
307
523
289
729
503
516
0
429
430
446
416
252
610
463
526
487
349
327
587
431
605
582
550
635
570
536
285
447
282
557
104
487
436
418
572
669
587
426
368
247
611
260
406
435
508
546
362
441
420
471
613
596
435
447
530
372
536
570
590
578
555
470
566
509
626
546
610
186
629
311
554
628
449
551
328
351
652
201
340
530
500
489
322
472
358
418
402
598
314
604
604
465
504
509
594
633
477
352
584
367
379
361
481
491
385
603
573
572
565
571
646
495
447
586
610
389
440
663
519
748
530
372
550
524
564
155
629
466
642
560
757
702
492
403
192
491
99
501
505
437
655
430
514
237
247
525
644
495
629
322
545
416
713
514
298
641
657
60
482
568
331
503
494
651
514
685
413
469
280
551
530
543
488
536
486
320
311
359
263
549
312
545
382
462
556
673
430
373
546
529
534
647
399
540
107
600
641
520
0
611
588
278
662
578
733
487
417
546
618
404
460
610
519
498
0
694
357
504
460
638
582
346
454
267
407
369
505
481
661
373
167
433
578
564
144
210
487
182
551
447
467
613
129
547
510
468
551
471
422
455
220
656
638
408
165
524
428
620
445
366
563
0
141
494
393
491
544
484
462
514
477
463
528
512
525
552
515
432
519
621
661
373
148
707
448
585
477
340
515
362
463
615
624
497
539
479
498
543
475
563
697
334
732
569
555
417
500
610
459
115
465
403
676
653
358
263
455
372
384
316
431
391
469
698
590
466
311
566
539
498
590
424
543
559
674
716
648
448
600
475
536
254
504
504
476
352
745
438
490
437
683
471
501
236
521
162
334
270
643
529
306
423
603
470
446
372
383
556
437
248
762
703
419
600
419
615
583
492
256
683
207
500
688
458
682
556
624
643
203
415
393
377
428
646
422
522
503
631
382
408
690
555
455
397
198
425
525
508
304
611
485
504
633
545
721
533
362
340
585
461
522
522
228
442
394
594
754
463
650
488
332
594
330
461
246
529
605
179
502
641
401
571
538
256
220
375
334
439
384
655
197
504
598
406
308
734
510
641
238
498
344
596
661
547
294
526
526
403
546
353
437
434
313
554
514
493
539
430
383
698
723
218
448
606
492
346
496
479
632
579
597
589
544
628
307
554
332
601
523
463
586
474
283
572
456
379
461
656
268
695
500
475
546
623
534
627
480
352
474
333
554
536
510
644
293
415
442
634
482
673
663
648
592
362
515
597
395
476
376
537
437
512
659
454
490
555
267
576
570
344
355
500
420
504
515
593
441
511
361
334
539
636
600
349
615
265
583
404
423
526
540
512
707
578
590
379
575
484
545
460
431
440
371
482
574
532
706
635
607
272
293
466
306
400
532
305
679
577
488
527
328
544
342
562
521
449
358
634
633
441
351
643
596
438
475
491
662
612
672
756
434
300
492
494
426
415
478
687
330
573
605
634
7
169
438
539
615
481
361
580
533
502
417
555
727
485
317
484
529
680
543
506
527
698
465
477
307
571
496
450
581
410
702
573
424
571
276
635
491
532
402
379
599
336
317
508
452
250
521
430
394
515
348
522
580
314
161
548
131
538
350
405
240
534
524
561
441
458
548
516
699
535
499
552
615
412
400
447
610
739
299
219
692
542
299
451
294
411
686
529
563
416
585
450
526
502
518
595
352
579
370
361
325
645
326
416
370
399
707
540
443
778
760
376
447
524
608
358
413
726
540
518
472
492
609
551
492
489
280
335
272
412
614
697
741
471
417
441
470
693
593
393
617
401
533
455
231
521
581
462
531
368
596
558
317
414
507
355
340
437
321
376
453
543
650
574
364
385
444
563
352
406
632
406
438
533
552
517
438
517
383
596
681
661
575
437
496
159
491
415
242
633
572
386
627
274
502
655
461
500
380
295
455
516
590
355
446
511
124
605
522
511
483
589
122
198
469
457
475
464
199
179
577
598
543
549
461
723
432
663
463
286
603
372
359
645
365
530
592
431
634
701
418
405
383
545
434
550
616
519
538
626
683
67
684
424
351
494
52
626
80
338
505
684
516
589
483
507
643
639
565
644
495
76
237
354
290
622
498
272
133
472
643
182
558
400
494
510
550
677
528
499
387
487
215
527
625
558
515
281
390
412
306
270
576
445
237
269
495
523
403
394
552
296
629
679
521
360
265
485
651
304
232
498
460
384
525
646
0
492
542
519
471
655
358
704
544
605
778
582
542
571
342
524
509
717
609
488
568
371
689
420
562
524
347
388
0
435
272
470
483
255
329
504
487
585
720
513
536
502
456
448
554
544
546
282
401
523
122
412
482
352
441
519
448
308
504
622
600
347
471
569
412
277
657
645
495
330
291
452
545
409
379
352
641
449
436
416
367
317
547
224
599
526
318
514
389
498
613
564
109
440
395
366
559
590
258
387
674
572
539
273
505
413
701
619
476
426
341
647
236
492
339
511
513
410
334
554
642
352
417
567
465
560
22
636
258
234
239
516
666
534
575
560
577
567
454
676
446
597
678
274
407
477
529
553
610
626
258
584
310
407
610
479
682
686
623
480
428
449
436
134
588
519
278
476
489
605
605
275
152
536
369
673
532
491
598
430
349
548
546
486
455
390
410
607
622
0
532
528
416
626
634
462
341
49
583
557
455
545
602
357
385
529
482
352
164
404
210
475
360
227
556
510
406
497
600
253
581
198
248
534
87
596
358
603
463
608
404
512
523
321
339
475
334
413
504
522
272
537
501
262
330
761
237
452
452
667
582
436
499
528
573
560
673
577
479
566
587
524
590
683
325
359
597
560
606
509
331
536
475
633
557
661
186
319
352
458
705
559
548
415
482
595
519
552
366
508
657
601
672
543
482
444
664
495
487
541
613
599
93
483
623
423
572
560
195
547
346
598
454
484
487
550
456
546
386
655
421
491
454
99
760
485
497
546
440
508
657
344
413
418
332
639
0
458
557
451
501
322
516
623
428
496
437
275
362
133
498
466
452
369
364
498
633
378
304
496
582
631
566
571
408
398
657
380
526
741
0
334
447
206
593
513
353
401
573
315
424
608
626
391
559
356
393
441
423
452
304
495
514
631
433
478
376
736
545
393
552
489
547
448
614
352
536
450
347
638
595
372
523
598
314
421
554
476
276
481
566
506
407
179
222
347
509
397
529
553
652
507
455
388
662
374
647
165
266
298
612
603
432
607
702
349
97
573
489
505
527
383
404
582
497
566
555
649
446
101
581
309
412
409
508
534
423
232
183
595
208
463
334
529
358
556
389
472
240
577
674
536
664
419
455
385
343
340
610
488
336
658
575
586
428
530
561
677
508
463
260
250
512
608
595
199
0
554
511
606
558
534
400
609
611
520
73
529
201
624
338
425
225
432
435
375
531
549
347
528
418
571
517
491
441
273
427
656
185
474
540
461
576
461
255
92
444
356
405
470
46
566
426
674
623
560
626
184
430
488
452
490
498
531
498
259
612
370
381
569
665
273
519
556
107
175
533
616
518
184
666
370
618
336
536
489
585
265
562
694
656
581
444
474
620
499
669
417
667
736
485
559
604
371
503
430
577
346
534
484
492
598
706
598
525
470
130
453
525
550
499
314
347
769
359
74
606
607
593
430
403
394
729
584
269
567
458
523
403
487
668
468
502
478
435
295
501
473
353
0
585
535
571
378
359
412
289
534
286
448
656
223
570
566
453
528
500
476
549
592
461
591
669
298
359
458
148
418
532
413
355
304
634
477
540
574
599
586
663
343
467
503
467
381
241
532
623
728
540
725
395
396
318
610
372
386
590
407
626
660
472
597
385
271
789
249
412
734
184
545
300
556
543
477
213
445
696
532
489
225
538
391
400
362
355
452
527
441
253
629
293
517
690
655
478
455
453
611
463
490
458
511
514
361
402
306
366
473
679
489
521
432
362
260
669
450
420
285
571
426
663
516
708
468
485
501
461
597
670
748
597
481
518
411
325
633
376
582
210
0
470
355
429
238
697
427
512
748
477
473
631
558
361
638
521
420
0
434
701
473
282
335
371
145
433
524
274
444
400
666
457
633
516
485
501
608
663
511
349
589
377
618
481
625
532
686
344
365
398
578
583
237
452
152
498
393
324
318
577
405
448
264
520
469
406
678
509
615
311
482
604
558
0
624
562
762
700
585
0
612
454
409
604
357
229
584
269
412
439
642
586
700
335
691
489
484
392
661
256
500
430
588
452
269
735
482
516
682
669
447
440
546
633
425
376
359
553
329
696
508
252
294
459
626
380
432
530
530
230
576
255
597
567
460
600
417
438
199
506
439
508
404
430
198
465
691
406
516
452
292
361
358
596
360
545
405
564
599
301
513
628
370
366
613
253
714
402
584
342
187
600
595
584
567
559
642
674
432
557
550
743
561
364
559
689
600
354
524
529
194
284
184
662
403
117
709
178
343
492
446
502
544
490
431
466
565
25
452
501
111
531
566
502
261
456
555
675
230
482
574
649
458
649
691
570
380
736
376
465
329
550
643
429
563
482
335
451
560
558
561
605
236
372
376
669
180
638
311
637
636
625
699
293
592
243
503
364
547
403
542
0
355
302
554
364
704
594
650
688
319
252
25
622
493
329
513
527
310
462
674
531
372
506
365
475
601
632
655
305
645
647
658
621
518
462
420
624
440
489
637
418
478
573
724
202
494
548
317
392
545
601
421
376
503
639
784
658
493
122
415
534
520
334
452
412
214
679
539
103
502
471
542
222
437
617
335
538
331
642
626
403
697
484
295
308
662
182
238
560
254
530
619
375
454
485
608
584
456
572
318
633
240
347
351
592
521
0
695
380
473
583
519
515
563
624
691
569
544
495
483
642
617
571
425
403
787
567
419
456
450
233
532
495
466
523
456
374
504
535
430
566
418
313
489
767
444
682
400
749
179
414
485
531
509
583
570
411
674
704
102
596
659
390
400
608
558
450
496
343
220
201
519
113
720
88
399
635
585
318
552
0
487
620
405
365
575
380
488
239
492
371
681
537
626
400
366
693
467
365
639
399
569
541
467
235
405
557
661
463
437
540
355
549
395
390
362
405
459
712
81
299
499
329
521
316
509
24
540
516
182
361
470
535
482
516
465
361
679
713
239
245
486
524
463
578
450
574
415
311
437
176
535
478
480
431
687
744
637
436
341
192
630
670
505
489
541
441
607
471
451
673
736
485
343
489
443
618
631
732
366
521
370
574
745
477
528
276
688
586
497
548
555
622
654
65
538
244
322
315
398
491
700
392
477
81
508
585
459
432
313
428
470
750
356
375
503
468
733
628
708
628
615
442
563
390
399
720
466
439
565
545
599
371
440
598
380
569
517
552
298
385
558
332
450
533
623
544
471
433
417
440
593
346
380
458
360
526
220
569
556
625
529
480
649
80
0
607
773
473
361
618
434
400
541
354
547
52
472
575
421
372
484
348
477
440
572
323
501
345
453
386
469
648
550
581
597
294
630
435
567
471
505
580
139
42
19
628
581
611
314
199
514
451
492
545
510
400
462
331
478
542
505
447
147
473
636
551
423
483
568
513
577
367
549
490
447
423
402
559
298
523
614
427
406
664
411
596
356
345
650
373
566
581
320
518
584
631
225
493
545
324
609
286
454
571
636
484
513
530
488
675
609
435
451
351
556
316
498
459
457
465
316
406
510
733
531
335
57
457
542
241
247
150
421
560
451
502
652
351
599
389
538
594
194
472
569
544
430
284
513
383
539
734
350
741
442
381
465
488
686
617
256
163
615
605
377
572
584
639
546
556
419
489
503
276
669
526
527
470
496
616
41
566
280
590
453
506
342
667
375
498
498
268
622
461
598
606
387
445
606
432
613
360
633
471
575
426
776
584
564
309
673
472
518
606
565
474
75
403
298
502
393
721
161
545
485
505
285
452
527
586
496
533
598
576
665
186
625
566
270
625
362
483
421
498
485
229
429
531
357
360
141
694
730
454
257
617
230
309
404
572
722
381
417
465
680
606
439
627
656
360
232
385
638
693
541
616
565
700
455
0
387
343
527
670
518
736
381
527
454
478
619
528
344
621
533
622
438
617
279
474
654
445
373
302
374
396
652
536
338
411
527
565
422
693
781
556
581
400
279
313
466
337
695
436
393
233
339
303
467
429
504
550
368
389
469
461
378
638
458
555
616
393
579
389
410
561
486
549
727
212
263
765
560
590
0
504
439
357
593
544
430
579
580
498
612
631
375
327
651
571
225
617
401
526
478
643
510
520
275
707
442
541
424
545
461
475
528
435
432
596
97
364
312
585
423
422
475
560
567
130
162
434
607
658
322
488
579
585
451
580
533
455
411
523
401
549
715
624
550
659
274
387
347
690
676
655
594
550
592
386
415
548
355
397
441
431
644
528
137
290
464
386
208
390
627
475
608
594
461
431
710
433
464
469
498
424
574
543
477
706
305
515
303
372
653
262
480
479
703
368
540
321
358
573
617
530
567
522
531
485
663
491
256
409
271
428
490
241
736
0
373
415
496
469
492
446
282
351
501
0
508
424
484
580
695
664
498
311
318
663
456
399
487
389
361
417
534
774
759
492
310
295
569
409
443
589
390
480
128
561
545
352
479
412
599
432
430
422
334
456
260
491
332
746
628
583
517
647
408
688
706
651
423
529
392
173
636
285
116
493
282
606
380
370
629
479
510
397
548
552
121
370
671
760
527
585
506
605
265
221
577
156
584
385
589
674
590
393
523
529
143
484
453
522
559
446
590
26
556
582
398
560
347
548
656
497
512
605
597
453
564
508
278
702
521
695
469
156
209
562
505
502
381
436
514
526
572
546
477
330
541
479
413
694
448
469
483
586
445
687
179
688
572
446
301
345
513
617
429
397
440
348
402
512
584
334
414
447
198
562
415
483
455
579
689
429
520
690
303
492
602
420
410
536
566
403
463
246
626
624
342
561
483
464
371
681
327
385
303
558
553
399
194
621
435
546
335
480
552
652
627
673
649
594
539
601
601
459
621
680
0
574
593
388
354
332
432
599
437
382
361
643
549
398
507
412
512
640
321
732
381
406
524
412
514
655
305
708
678
631
343
431
545
289
367
550
679
561
427
329
134
340
315
604
517
427
721
412
533
245
486
465
314
430
563
516
656
443
748
362
502
374
556
385
485
586
356
335
432
584
580
334
470
430
549
460
476
506
640
468
300
392
506
318
441
484
530
459
700
452
498
544
346
710
275
463
559
502
430
571
379
504
606
291
297
620
454
376
56
471
195
424
728
718
451
567
366
542
570
604
396
540
476
378
606
495
489
582
542
734
515
647
609
371
549
536
517
665
540
455
535
740
389
463
398
678
506
690
265
421
407
423
449
479
564
550
643
537
506
587
652
429
483
563
768
594
516
524
579
471
524
714
575
654
336
663
655
478
352
592
576
432
663
600
212
501
578
432
560
520
482
588
643
262
612
481
616
588
585
554
707
536
630
429
454
413
406
632
507
594
323
541
317
454
477
191
231
573
293
295
493
744
507
638
514
340
0
375
580
654
503
545
345
450
594
417
646
522
640
357
680
320
724
568
459
542
321
442
712
445
677
582
732
684
721
396
472
539
451
510
554
476
468
462
137
718
224
451
552
538
441
455
350
514
582
647
544
612
131
441
508
521
449
404
623
411
447
385
404
272
186
593
644
644
399
630
315
534
494
350
433
545
616
484
424
533
529
479
470
538
572
444
656
554
475
587
471
351
543
404
659
493
642
310
642
470
576
647
498
450
563
510
461
513
438
501
399
500
539
588
572
430
262
391
531
664
268
454
397
732
444
552
586
556
644
588
500
527
711
372
520
621
524
454
437
465
594
477
499
468
394
411
282
678
510
576
530
443
399
615
570
617
466
508
393
122
677
737
629
414
405
324
273
380
268
499
469
228
528
304
530
562
690
678
555
490
589
396
366
415
602
483
350
460
502
656
492
699
477
428
497
0
616
426
441
685
714
486
622
494
427
642
391
616
571
488
534
409
497
639
363
480
203
615
331
343
756
579
648
585
331
239
462
629
503
469
702
595
623
366
645
405
363
567
569
353
642
357
391
646
333
563
385
607
630
562
430
470
283
556
554
733
608
553
449
767
544
492
465
431
402
331
403
608
346
613
647
323
541
445
562
572
510
414
493
628
430
316
341
449
574
524
253
550
223
454
533
707
554
340
430
536
173
667
586
348
358
614
324
469
206
461
545
552
455
647
635
411
373
630
482
468
509
64
636
684
385
547
475
495
622
654
515
403
354
429
529
554
422
513
517
294
397
678
436
249
432
425
196
544
283
638
643
294
540
621
511
471
637
450
362
625
632
555
696
570
722
400
322
700
553
406
350
554
452
735
503
450
406
584
386
668
366
545
616
509
440
234
627
381
198
617
364
359
736
331
409
233
690
493
328
605
493
407
507
585
588
240
403
347
543
543
419
658
278
484
476
215
536
578
360
414
680
615
561
382
314
679
285
594
537
441
454
514
547
290
96
346
579
206
387
480
128
560
575
219
421
453
504
477
621
560
443
650
435
610
552
328
381
630
459
470
395
573
425
182
327
581
451
615
644
411
392
497
412
416
481
412
110
613
668
326
388
732
691
479
587
450
383
535
530
614
506
244
159
384
423
538
470
181
443
492
445
425
360
454
412
507
314
184
601
597
273
156
519
618
261
663
482
487
716
521
672
246
517
609
539
641
604
679
425
572
527
411
658
614
668
561
449
407
452
573
651
646
499
763
499
527
228
567
378
465
382
604
593
698
631
646
338
520
521
701
525
418
315
484
560
381
557
488
642
406
232
633
314
0
522
482
469
462
251
761
560
494
547
680
463
537
376
524
425
676
278
365
613
418
179
627
603
624
688
241
648
389
492
577
497
476
480
509
600
595
597
67
373
533
470
414
287
471
475
452
635
440
403
569
521
557
363
697
535
474
245
596
691
638
438
235
368
462
331
678
347
609
576
475
755
198
632
643
485
662
454
382
511
529
382
351
369
540
522
593
199
448
610
589
647
695
348
560
572
352
568
330
426
399
695
448
582
525
184
619
592
635
507
599
536
536
622
492
390
434
500
740
465
322
491
350
677
726
408
434
626
469
453
454
461
603
584
647
534
358
218
620
0
520
720
463
383
397
467
284
669
677
454
460
610
298
559
471
560
499
322
523
221
618
538
624
488
314
534
564
407
570
454
543
246
395
355
485
438
651
507
583
455
392
500
35
484
683
626
649
477
543
463
433
405
134
601
355
370
508
612
545
431
361
559
584
469
623
757
408
418
293
431
512
644
441
492
378
391
335
588
629
593
327
415
345
368
431
632
562
433
510
471
607
389
611
501
554
252
469
346
510
773
325
353
272
488
543
435
564
386
322
461
422
339
400
340
493
574
404
513
468
619
515
425
645
489
429
367
604
409
275
358
429
646
533
656
511
178
342
290
0
569
540
54
500
498
447
686
757
502
587
507
372
379
610
320
403
713
617
653
647
358
453
321
461
101
559
615
609
568
510
313
447
583
719
735
322
250
694
491
240
578
498
564
453
499
637
614
459
384
735
545
247
352
475
567
473
549
566
612
479
550
730
560
373
477
311
664
0
468
708
662
581
458
438
657
437
569
621
413
321
424
428
607
478
522
573
472
450
194
732
608
534
347
75
513
327
306
563
708
694
699
299
672
672
562
508
455
591
405
604
475
345
513
647
549
577
613
502
584
718
646
450
671
453
595
609
575
185
536
490
326
470
124
453
408
620
324
469
405
619
655
512
352
693
459
344
536
299
472
380
572
280
653
38
393
573
197
0
311
433
593
303
312
284
593
653
542
733
287
604
338
569
535
555
379
685
327
204
497
570
434
420
475
632
364
586
495
710
638
455
703
507
595
378
501
512
503
392
468
640
577
461
473
766
593
251
300
435
374
289
560
347
445
285
614
542
584
621
581
717
614
549
390
394
568
301
522
328
505
531
633
423
577
441
476
290
625
423
643
387
398
578
649
123
484
364
674
591
406
500
619
413
699
314
0
588
561
220
300
359
556
537
251
273
500
589
602
411
488
660
622
432
649
771
512
378
367
56
455
364
615
358
524
452
508
453
536
406
545
574
525
448
398
467
450
393
459
521
376
564
679
648
518
270
499
621
362
579
618
548
326
523
473
318
550
574
401
497
508
519
474
584
505
476
440
608
553
512
363
326
721
413
304
579
449
105
376
277
654
657
640
606
726
642
343
655
522
704
523
367
456
581
468
537
457
668
441
410
458
423
570
275
166
574
390
742
487
276
269
374
653
587
194
313
593
329
568
438
576
501
533
487
537
475
453
670
515
470
424
528
481
322
553
337
146
357
324
516
474
442
580
722
379
538
326
398
510
381
339
221
307
338
366
296
661
402
524
218
609
594
455
269
730
593
436
516
463
730
593
453
560
484
560
509
585
324
659
449
604
510
535
387
570
442
407
546
426
463
643
586
568
436
552
632
426
710
562
713
192
549
460
606
680
199
705
101
394
358
309
279
554
695
451
409
411
404
473
560
534
497
694
418
640
507
315
159
520
571
561
546
653
104
522
535
534
578
581
471
628
390
422
727
132
374
399
558
619
58
693
282
456
636
502
304
485
476
487
470
448
525
331
589
0
303
542
517
341
537
318
298
425
615
300
352
549
619
694
410
320
670
640
380
680
472
566
632
650
393
418
67
202
533
496
606
393
646
297
445
261
764
115
57
166
561
315
546
567
507
496
386
543
393
524
483
641
556
468
479
523
510
550
413
578
685
594
757
382
711
604
339
296
659
669
322
509
627
167
743
447
640
382
399
588
442
556
418
437
541
488
654
416
571
583
381
599
339
629
384
435
430
375
135
373
535
444
199
522
372
619
285
715
393
576
230
477
320
528
408
544
231
449
547
424
569
705
356
642
262
488
383
320
440
463
450
621
635
545
456
618
777
453
334
400
327
443
602
329
575
282
446
657
455
368
544
520
505
658
412
483
459
612
120
390
338
520
357
708
608
441
442
352
516
430
386
368
609
555
487
572
471
0
497
330
618
89
637
600
452
462
601
309
125
293
453
748
631
440
511
571
349
252
435
258
445
589
776
322
501
756
137
409
311
673
488
632
579
464
537
341
556
528
459
516
431
219
578
692
612
392
519
723
413
337
740
368
304
486
209
742
271
404
614
310
441
647
644
597
762
93
671
224
364
642
559
564
295
433
583
255
418
408
424
602
187
538
369
673
558
441
345
556
581
634
638
318
182
555
555
293
504
572
588
355
418
494
535
593
347
444
231
409
407
771
389
227
757
407
410
474
231
550
757
519
464
281
398
37
557
396
387
350
475
447
505
461
670
575
706
614
426
487
603
610
495
334
339
498
286
46
362
673
329
174
642
522
553
475
734
208
547
521
496
639
368
535
402
487
202
314
468
352
511
241
512
453
378
368
364
629
666
587
402
708
316
584
703
335
585
489
431
589
465
552
494
448
367
474
518
318
423
563
327
665
598
467
430
505
393
533
591
536
467
553
519
450
442
387
612
349
168
579
566
484
660
230
219
396
529
556
417
456
480
583
705
498
500
556
571
11
636
694
230
580
506
555
555
417
165
158
504
519
479
498
245
479
375
622
529
527
459
495
537
616
465
482
267
501
603
568
582
540
651
256
289
464
360
643
434
648
634
435
392
461
737
499
523
365
512
656
514
401
245
526
436
629
512
259
458
630
578
389
535
326
491
391
560
309
510
462
498
472
408
559
203
725
461
440
221
397
624
623
368
476
481
601
294
360
712
414
645
550
591
489
455
411
643
718
482
551
401
361
616
648
700
509
464
437
606
405
560
484
409
628
689
370
464
0
299
455
682
443
345
565
336
504
556
514
605
525
526
296
484
498
631
460
79
224
56
508
378
217
485
105
521
369
482
551
464
426
439
640
366
465
248
538
584
571
495
398
556
578
443
507
576
619
599
319
35
277
409
492
572
50
391
590
182
556
513
320
548
501
367
560
591
369
609
507
481
441
418
519
390
416
530
358
569
492
582
537
714
501
355
472
595
681
492
619
334
555
319
562
555
479
485
381
478
556
461
342
476
695
205
381
503
379
254
437
492
444
253
494
385
345
559
599
425
752
658
504
163
646
473
217
492
307
541
517
401
399
696
639
471
549
298
485
726
222
653
176
732
0
523
475
532
681
583
555
515
463
480
555
455
523
233
513
595
373
370
647
361
454
621
629
480
432
229
615
518
517
507
593
379
504
253
647
511
548
664
512
519
558
627
477
488
744
640
459
588
613
410
561
520
560
394
684
236
398
436
556
404
764
654
575
276
719
537
451
579
614
437
398
392
599
519
491
501
521
511
614
597
488
242
400
292
712
647
669
519
543
306
380
165
704
746
628
471
408
399
559
586
566
500
570
371
507
496
471
510
535
629
584
492
341
347
721
363
559
0
708
609
600
488
570
468
461
508
644
477
767
628
463
393
562
537
593
451
366
588
404
342
630
201
585
548
721
601
644
491
374
496
583
454
266
410
357
462
669
412
733
292
643
349
476
496
225
354
503
390
500
436
516
405
498
516
695
104
512
557
427
581
444
478
130
216
567
472
465
629
596
631
468
506
599
587
357
405
261
458
603
378
459
483
621
550
375
260
500
469
454
519
67
478
301
631
395
547
380
721
536
335
663
184
561
387
60
229
339
514
642
699
428
626
116
539
767
457
495
586
458
275
242
541
576
492
492
645
567
583
526
578
440
441
642
558
621
561
629
381
599
425
509
225
750
480
740
643
531
286
522
604
617
260
497
580
379
638
477
581
563
684
544
481
222
613
331
293
289
478
289
653
633
408
465
295
492
588
490
473
732
694
505
295
786
450
749
637
478
571
417
441
525
706
500
388
607
394
124
479
511
344
411
393
522
662
364
257
369
116
278
336
415
488
694
667
340
478
464
412
376
509
339
477
551
467
570
525
273
574
495
545
619
263
385
193
371
530
350
500
452
265
343
278
534
523
605
659
535
631
530
480
542
422
501
549
469
485
620
510
653
377
653
164
541
605
370
364
525
596
679
355
609
409
490
615
656
456
138
530
444
273
502
439
436
433
542
347
682
437
558
301
221
380
717
653
304
329
369
413
516
655
747
512
437
610
285
324
325
489
472
433
474
391
499
588
602
344
346
614
464
476
435
570
504
478
498
386
480
524
560
575
429
315
419
326
629
595
389
671
579
404
468
505
328
521
529
430
528
400
527
482
472
521
250
161
545
333
314
662
308
644
516
11
677
374
572
721
588
146
496
485
454
305
144
335
372
526
582
562
508
272
532
512
449
325
523
692
336
606
690
111
355
662
475
460
442
421
512
515
487
331
266
467
512
472
433
435
165
405
471
321
441
244
615
301
699
326
567
21
650
410
511
461
514
387
463
484
757
416
516
473
419
423
368
364
748
628
503
527
548
534
469
622
234
231
511
0
491
475
107
556
88
544
511
530
270
665
513
605
589
559
569
398
673
607
238
415
360
425
610
603
487
709
528
396
590
420
476
597
763
618
707
494
2
587
404
191
576
656
397
501
488
537
346
458
506
434
474
488
396
516
551
461
544
500
524
637
673
379
386
489
737
468
589
620
621
465
563
500
557
100
291
774
660
510
498
691
395
322
357
753
411
587
343
508
672
629
445
456
578
472
718
645
641
553
597
239
507
664
599
327
663
693
585
570
631
558
456
376
552
459
640
350
499
383
370
591
575
311
427
546
429
321
529
581
601
436
541
437
314
667
340
152
283
424
530
163
425
572
557
699
276
332
729
495
480
432
444
517
182
573
318
463
405
333
523
519
544
544
402
130
605
442
465
313
515
588
427
381
598
579
592
514
355
287
427
492
607
535
174
567
551
426
389
488
381
260
612
632
597
249
77
278
314
424
610
321
391
458
595
726
372
196
387
468
665
370
666
131
523
316
419
352
503
516
374
558
637
501
498
592
412
520
468
415
632
476
370
538
438
332
481
511
300
475
639
261
680
282
457
450
614
429
395
253
320
652
716
582
430
656
465
652
379
328
531
730
361
413
210
620
527
469
405
387
508
209
648
495
498
443
651
370
565
741
464
643
185
389
179
612
306
532
563
741
365
649
591
571
721
606
503
620
537
500
33
554
606
481
480
685
725
339
611
538
713
473
460
482
378
542
307
594
656
362
476
283
515
521
619
469
136
384
359
613
504
575
529
403
527
400
688
596
216
561
350
0
434
347
541
301
657
435
265
377
735
507
635
102
459
391
387
482
350
407
517
262
405
297
521
508
454
493
347
315
268
294
456
481
579
478
458
396
703
619
488
659
602
263
504
364
405
726
431
358
499
447
181
536
169
516
536
513
590
642
636
436
223
635
427
600
523
479
472
400
444
569
337
642
541
575
542
530
58
575
357
448
517
492
483
670
382
551
358
523
239
611
465
674
596
537
450
445
421
278
428
556
540
489
222
513
341
335
133
743
662
718
631
519
367
406
432
355
533
587
527
578
549
311
402
383
353
292
460
561
353
639
307
84
525
547
440
538
331
372
615
424
465
545
662
437
584
492
542
434
599
485
485
209
546
235
420
635
606
477
640
285
450
634
0
439
423
509
412
329
82
711
186
356
416
251
496
463
640
370
669
434
361
550
689
565
521
595
471
700
535
543
484
601
521
640
593
434
58
273
483
574
482
506
434
316
530
587
512
590
710
88
464
501
389
590
473
521
416
735
532
564
174
107
318
176
589
611
389
280
590
570
23
430
553
585
464
392
410
328
413
478
692
448
483
398
565
442
620
537
106
282
380
684
503
535
503
594
466
93
463
500
282
516
406
303
69
343
548
642
684
534
203
653
661
481
436
542
274
437
449
514
430
231
589
589
458
332
331
396
161
466
59
404
284
582
631
87
311
287
363
493
510
332
667
345
529
722
528
415
394
430
189
533
225
362
594
510
598
247
517
415
547
93
453
498
564
344
543
566
650
671
644
536
404
484
422
600
339
330
481
450
671
538
342
594
407
402
463
137
423
324
555
668
349
591
463
615
534
499
462
530
484
697
678
384
576
516
379
433
333
678
562
313
543
396
344
398
430
509
599
328
500
144
459
638
565
335
286
0
350
573
490
421
348
366
473
559
445
617
442
446
581
319
205
631
663
620
573
595
409
668
651
544
704
604
441
551
294
505
610
553
185
466
389
334
613
481
502
463
171
272
656
632
495
455
242
238
335
361
614
499
484
500
400
344
524
531
451
432
600
395
402
639
766
538
392
568
299
631
703
379
710
318
272
321
464
383
394
398
634
562
455
410
546
660
437
644
494
146
449
539
451
547
283
537
217
723
620
483
533
561
424
311
534
421
677
592
398
445
605
460
700
596
455
409
605
84
339
649
648
289
517
462
449
602
537
625
444
480
662
518
574
366
538
459
469
659
394
422
483
529
432
283
328
692
392
575
566
598
399
703
499
386
475
691
359
344
520
527
567
557
475
354
515
556
494
462
286
433
375
493
540
542
485
465
614
341
286
451
286
538
497
649
158
408
583
346
412
169
473
577
613
462
435
685
723
387
415
502
390
389
463
576
468
708
723
673
482
379
616
308
550
372
601
528
721
433
571
437
530
590
509
512
482
629
473
602
624
346
294
464
603
323
408
633
462
405
300
379
577
419
508
719
411
437
516
229
612
500
546
440
511
516
554
458
530
596
570
527
660
543
448
372
335
378
415
572
607
479
566
411
520
646
248
436
415
180
593
460
490
489
775
348
562
233
551
468
398
652
479
587
460
729
437
656
555
290
322
448
562
581
409
648
356
662
477
670
686
541
499
450
616
580
299
524
101
502
648
272
472
77
382
476
574
485
518
208
500
441
405
503
258
496
488
520
510
355
394
598
518
470
241
575
599
402
726
475
340
97
481
674
521
325
391
523
430
616
425
552
492
366
626
479
386
362
482
574
604
626
453
364
564
585
305
390
385
394
347
538
281
526
395
471
511
583
670
457
541
462
482
611
521
396
603
557
144
579
574
604
192
484
381
479
470
410
340
649
627
418
628
561
106
710
675
606
664
531
582
603
364
506
439
640
653
670
581
559
480
380
352
427
541
426
528
422
569
556
543
583
337
371
518
494
447
684
381
453
496
337
617
393
519
444
429
465
197
513
563
334
594
588
279
445
598
521
598
466
527
392
571
511
341
506
437
631
404
304
577
642
528
431
563
249
457
581
657
463
310
688
566
577
587
539
478
554
511
427
584
233
476
628
422
399
403
512
360
335
495
558
502
454
596
528
506
122
529
702
576
409
463
713
408
347
602
602
476
497
374
524
453
529
617
600
663
599
534
612
391
567
619
671
701
601
562
500
639
583
164
588
358
313
610
694
545
368
657
599
517
366
226
451
440
689
588
248
686
214
598
540
543
579
323
480
510
674
554
497
530
321
408
649
653
406
465
282
0
224
501
602
475
549
581
611
652
620
430
456
531
447
507
338
412
572
438
537
334
481
328
601
459
594
397
479
309
619
586
724
521
558
217
532
437
600
387
422
541
264
331
639
366
407
502
402
485
437
514
655
642
575
285
715
440
445
288
616
472
435
434
523
655
442
434
410
543
569
481
409
578
501
687
760
376
619
437
391
428
568
410
190
547
429
606
305
531
443
460
528
325
315
58
580
674
133
510
469
574
719
543
358
489
610
302
56
481
588
391
556
231
596
466
590
459
512
616
722
465
536
0
540
544
432
369
441
566
530
432
676
376
195
718
444
414
510
265
505
588
547
345
510
554
613
505
621
561
648
583
315
483
619
450
239
489
676
641
716
357
400
444
436
328
519
503
478
527
452
687
452
437
630
487
507
335
247
642
495
730
374
531
601
50
711
310
456
543
618
677
493
410
335
458
522
656
410
687
569
610
512
598
476
756
541
516
605
390
473
453
276
539
595
508
279
344
554
444
532
281
285
616
429
622
386
451
649
447
180
770
547
637
340
462
480
459
366
363
542
363
530
650
295
104
243
566
444
484
181
653
557
355
481
537
629
345
585
611
505
407
534
436
578
474
362
397
224
515
370
637
629
570
789
503
635
539
527
228
519
460
460
469
344
466
582
611
231
573
552
491
62
572
488
563
356
492
97
557
545
740
283
692
374
460
283
478
347
423
490
566
474
671
577
629
458
509
618
567
247
159
271
737
665
639
353
141
657
293
491
444
588
525
312
500
573
344
307
658
356
569
401
296
283
409
333
464
412
569
371
257
366
679
379
255
386
248
471
254
572
116
526
482
88
461
478
715
576
517
583
271
489
584
631
444
527
476
328
356
737
521
513
277
613
553
411
393
201
427
289
747
510
451
622
483
667
372
169
377
421
560
532
472
269
387
528
459
612
178
295
371
529
701
311
522
570
348
543
49
368
433
360
493
489
447
526
363
430
339
498
613
398
628
478
615
483
321
372
518
393
542
613
412
431
331
442
594
156
569
159
420
413
378
397
412
521
513
383
546
493
573
633
473
700
243
546
363
191
419
532
624
419
575
493
480
369
240
403
159
613
598
472
568
516
386
678
634
575
535
81
160
561
649
266
290
628
373
503
318
310
648
366
514
558
325
574
159
455
624
610
440
481
677
524
627
387
685
516
433
482
375
406
348
641
651
397
693
327
485
519
698
664
359
565
388
537
487
536
455
253
321
662
636
61
409
421
630
380
693
267
391
676
608
566
459
505
632
682
261
0
679
750
476
518
343
408
732
112
378
655
664
370
453
535
668
420
218
627
573
361
453
499
689
382
502
399
521
96
461
579
445
447
302
434
531
453
614
638
579
421
156
603
310
429
462
618
514
548
625
437
356
306
499
592
452
526
456
433
521
519
534
669
554
346
599
536
623
543
721
487
350
458
690
458
248
258
706
285
406
544
547
416
383
677
614
485
627
252
531
299
571
49
686
359
640
514
435
586
650
549
486
436
471
412
398
530
608
620
678
473
464
462
125
684
622
447
202
405
294
610
259
409
397
490
376
673
447
321
474
696
483
563
565
683
718
730
403
552
410
636
182
543
595
620
488
563
612
475
510
411
200
425
338
524
506
508
657
552
560
99
535
493
718
543
656
553
624
543
523
281
406
487
511
618
508
685
304
499
73
562
602
483
432
469
589
502
473
510
445
653
694
497
412
552
485
457
668
319
636
375
467
544
585
403
702
457
266
563
712
534
373
344
454
693
557
441
488
457
631
664
477
350
447
427
546
601
473
713
313
566
366
305
492
435
367
314
429
536
442
319
259
285
391
306
502
486
346
612
459
475
515
282
609
329
614
376
453
524
540
304
590
695
445
670
748
698
613
145
468
737
528
408
486
472
396
279
478
534
663
513
649
388
387
614
568
518
724
384
575
251
618
543
339
783
598
218
358
221
588
583
296
708
683
429
423
435
549
459
548
432
441
400
426
472
675
412
583
269
562
521
19
481
316
513
659
373
496
476
0
490
435
712
507
375
195
320
404
447
341
375
536
433
468
499
258
228
537
462
413
446
434
389
578
480
265
751
593
265
579
451
414
677
508
350
321
464
645
415
357
420
552
494
392
721
350
455
489
550
475
425
575
323
451
419
492
416
674
373
173
660
424
366
722
459
295
470
376
392
255
508
561
463
491
399
647
419
771
563
188
449
504
331
321
581
409
520
400
440
707
611
465
395
680
518
431
318
574
499
689
457
491
512
520
556
695
558
583
285
507
486
401
458
538
73
540
531
161
353
752
281
307
568
328
355
480
537
433
418
546
206
560
425
355
638
660
392
570
554
692
621
621
381
635
411
561
327
510
475
580
449
655
514
527
549
511
457
493
449
644
171
627
408
212
490
521
414
568
511
431
586
399
476
773
421
697
340
731
443
541
449
430
436
437
320
425
489
325
381
467
469
712
663
530
462
182
585
704
452
748
293
486
465
615
541
661
548
392
310
539
220
425
625
225
715
335
525
666
390
504
505
523
312
512
554
575
723
606
370
608
494
423
545
210
370
575
0
134
333
600
544
386
407
488
421
542
313
452
702
434
312
703
556
565
662
431
463
427
271
689
446
562
605
639
522
535
582
275
355
411
606
432
236
261
315
685
489
245
445
462
439
595
594
487
501
559
436
653
567
241
515
487
464
568
522
515
394
423
601
271
447
501
377
309
511
466
426
533
530
440
455
487
520
412
553
357
552
342
586
624
394
570
640
531
658
623
239
257
324
429
552
295
298
278
582
364
213
530
536
549
595
528
491
534
295
336
385
382
527
234
418
401
674
490
690
304
422
620
398
434
693
70
505
225
609
198
278
463
74
608
442
447
489
333
343
414
290
436
523
432
536
577
308
537
355
503
284
131
241
505
643
459
503
502
494
467
516
299
601
591
431
372
564
492
584
479
537
664
415
632
456
440
669
598
430
718
498
591
422
592
448
252
457
561
411
505
546
358
383
667
625
404
98
555
459
437
455
610
504
307
660
464
179
427
642
322
422
252
634
543
732
490
369
482
585
521
510
387
616
511
250
654
696
140
452
412
458
591
477
421
498
327
332
500
526
522
485
701
464
450
438
448
736
511
373
474
328
551
203
580
615
494
242
485
431
520
421
470
406
518
651
700
226
593
698
570
638
419
698
515
213
469
409
242
597
684
393
716
361
440
473
480
395
255
409
460
605
695
688
539
641
422
716
371
326
495
457
702
442
747
362
646
403
583
544
373
556
627
408
486
385
520
475
568
525
419
596
711
430
542
674
679
628
511
310
504
373
230
375
590
551
569
443
451
594
418
338
486
602
588
611
535
124
401
605
385
301
577
471
392
501
612
468
323
283
484
695
458
626
602
131
328
230
660
516
577
714
598
521
620
491
572
655
346
224
389
485
487
531
270
477
402
572
331
588
453
314
382
427
482
518
608
475
421
257
562
405
425
484
426
554
477
526
196
637
568
620
599
598
710
541
482
569
424
506
539
580
567
588
451
120
265
336
709
610
586
123
591
613
536
273
681
638
609
359
264
574
338
363
569
581
524
431
453
457
600
552
587
370
369
483
500
217
515
465
573
202
495
626
340
423
518
443
650
394
543
417
400
569
161
602
469
764
481
322
358
391
523
516
631
600
244
285
202
517
317
696
649
351
194
342
580
371
621
547
560
322
505
555
687
450
687
693
525
588
733
540
237
411
335
702
301
578
640
486
375
393
363
476
565
373
495
390
423
655
590
571
266
374
49
258
555
403
495
369
301
232
418
416
538
333
520
431
552
458
208
723
451
347
371
318
343
527
642
631
380
343
442
468
662
402
550
360
548
337
468
636
732
748
685
586
459
524
290
304
650
519
476
479
249
479
469
414
589
496
458
78
648
541
330
715
477
711
552
456
398
656
650
530
588
502
636
344
503
466
528
538
489
490
640
471
631
391
262
341
387
676
551
338
582
452
289
594
469
475
521
483
481
444
498
539
565
441
402
0
468
458
675
529
502
517
295
346
477
347
695
439
417
412
414
681
391
505
623
563
529
372
711
549
254
584
620
513
729
438
555
516
406
637
534
571
652
462
325
542
573
500
387
400
594
522
447
234
618
419
439
729
489
506
661
465
363
565
280
483
360
591
403
411
299
508
550
563
502
652
681
492
411
549
534
474
462
374
453
517
400
544
495
355
270
431
551
493
684
387
388
122
602
435
578
513
503
505
400
551
726
530
531
415
450
612
516
534
438
547
505
467
325
572
417
461
429
631
623
234
697
492
581
515
450
375
514
479
397
528
410
651
552
446
525
725
439
379
490
368
489
389
378
589
464
587
407
748
643
316
534
591
368
414
474
88
416
538
25
485
407
572
414
419
510
485
270
122
433
698
619
286
498
405
535
349
684
683
524
554
675
369
428
579
383
639
720
549
398
293
657
633
418
382
692
607
479
597
399
500
474
593
152
550
623
258
511
514
335
707
429
516
599
239
223
531
545
487
577
589
511
610
641
0
565
406
355
298
436
520
487
272
498
766
592
578
358
186
495
503
506
390
609
360
0
482
625
561
171
570
629
436
435
548
621
565
495
468
220
354
429
569
277
276
466
489
674
460
672
387
453
309
562
167
311
615
513
467
620
51
597
0
641
576
611
162
403
375
331
671
0
589
121
349
564
451
103
265
562
587
425
626
401
590
516
484
524
268
531
487
599
190
496
566
529
433
468
512
508
545
158
61
434
423
592
430
377
549
632
209
581
375
671
226
566
144
303
563
399
521
456
394
431
395
476
382
487
605
316
412
361
568
565
188
369
265
472
714
523
509
454
238
622
530
376
695
509
520
188
422
526
411
597
711
544
452
453
523
310
531
467
516
640
587
439
400
613
543
614
617
469
611
0
356
497
528
642
343
576
199
121
507
394
538
441
359
347
481
430
689
398
447
549
454
543
620
463
480
333
516
409
395
19
401
457
701
618
295
435
533
665
608
465
684
441
250
643
580
469
374
461
557
439
572
521
530
447
398
0
496
614
507
570
715
485
371
569
434
569
427
564
455
457
606
308
543
733
514
392
587
472
347
680
281
398
307
414
0
614
467
563
580
277
657
416
358
429
576
663
533
588
460
487
290
740
351
548
26
461
720
558
616
481
500
622
463
521
614
610
598
466
493
351
435
547
540
318
432
314
540
486
537
392
449
346
680
432
58
565
432
467
79
440
334
473
635
392
545
657
548
679
458
634
606
388
458
429
458
545
569
302
520
602
467
497
420
375
412
264
447
464
554
306
362
619
602
387
274
403
432
585
481
615
181
700
523
655
548
588
461
496
582
580
605
650
671
721
247
575
717
573
551
392
622
696
294
287
379
572
565
527
334
367
430
615
520
536
454
235
255
620
652
708
397
413
397
502
467
283
435
82
375
387
641
652
622
370
290
325
607
158
656
606
482
96
646
406
631
569
688
469
620
670
387
424
433
182
565
357
746
399
504
343
601
550
595
487
193
499
260
489
554
0
396
285
102
417
763
351
391
387
544
709
545
559
462
594
547
493
695
445
477
471
363
558
586
421
222
400
551
705
437
402
566
676
638
524
594
499
491
336
408
617
631
549
591
546
486
425
393
650
544
651
702
437
235
713
530
573
447
569
354
294
434
608
436
397
675
574
556
427
558
551
464
301
544
758
302
675
534
619
537
387
569
532
498
541
675
519
471
407
411
568
538
372
521
578
392
376
505
468
347
385
458
543
685
275
569
552
505
620
335
533
409
352
649
733
420
551
391
346
619
316
474
545
504
245
403
543
346
309
478
698
326
734
422
459
639
207
619
253
448
504
109
445
745
516
512
343
685
513
512
532
502
345
602
573
566
630
385
529
290
514
607
528
470
222
378
533
701
640
609
689
445
470
627
628
547
564
564
507
417
586
501
553
0
430
503
663
549
610
400
631
397
420
559
692
463
390
655
553
175
430
342
540
631
419
484
477
530
680
494
474
697
472
258
440
506
0
375
1
760
660
564
570
304
368
307
571
701
520
443
588
461
480
470
609
150
298
148
455
460
321
610
551
271
397
614
310
418
473
631
453
457
598
238
748
519
465
551
547
498
531
537
495
462
283
590
559
666
401
183
478
589
645
241
94
477
546
389
634
506
444
224
216
525
413
287
379
382
408
569
409
548
527
229
519
452
562
553
465
386
370
343
510
107
655
371
532
261
415
262
449
650
727
0
470
643
321
596
509
374
345
445
573
421
696
605
588
531
364
430
557
358
481
758
453
632
667
224
532
400
726
545
329
444
583
189
613
366
357
367
386
306
476
664
485
418
358
532
419
523
87
529
118
495
399
576
413
313
393
553
395
304
715
601
365
583
710
665
688
631
564
562
363
653
609
569
424
668
490
663
0
445
664
431
474
512
472
653
523
405
516
553
402
270
659
437
461
575
291
550
0
602
653
546
231
658
316
399
518
510
77
514
523
629
671
502
726
444
334
204
560
493
592
482
685
424
586
547
579
396
458
265
161
597
573
531
324
501
573
687
467
570
552
457
785
432
498
410
566
468
591
613
473
440
638
404
483
500
591
388
438
639
568
406
475
595
416
590
496
313
505
569
423
604
558
577
580
636
488
411
511
146
432
414
542
511
395
488
454
419
464
492
456
600
557
539
615
480
419
485
518
472
546
722
681
345
449
783
549
570
314
616
655
289
290
218
676
362
432
278
713
394
543
656
400
316
235
647
427
493
469
645
448
644
286
503
594
347
504
714
290
364
477
273
421
586
547
568
537
702
524
456
550
81
632
368
431
85
494
758
451
307
307
449
445
537
545
470
465
292
436
486
637
309
297
731
361
268
510
262
446
615
399
693
285
611
486
279
609
575
424
559
662
455
263
381
503
611
435
301
543
411
0
596
279
610
441
534
646
591
458
534
756
268
324
282
588
351
530
214
462
678
331
498
751
588
300
518
633
440
261
554
737
394
484
463
580
339
517
559
535
721
101
487
544
780
590
497
424
621
519
602
538
505
487
629
454
440
664
257
417
319
482
553
651
601
258
378
344
501
539
766
559
538
514
551
355
271
641
538
600
111
616
485
572
508
607
427
541
541
520
537
521
330
594
347
603
460
447
495
422
668
519
398
538
510
440
570
308
440
697
533
421
322
472
423
609
305
565
778
482
428
378
595
654
637
693
484
417
497
370
451
448
637
472
390
335
253
456
186
579
478
659
584
485
327
222
637
465
602
310
708
471
464
593
488
629
428
398
594
646
482
569
357
643
472
429
553
691
647
486
603
595
542
564
380
726
244
208
560
529
500
603
587
511
399
413
594
555
551
381
578
567
315
576
327
762
673
450
683
596
227
423
438
473
304
553
419
629
453
278
354
572
392
399
459
23
663
294
208
666
463
671
387
421
439
302
549
482
603
476
584
475
245
457
530
432
375
532
342
115
521
653
378
477
565
644
670
528
464
540
622
12
277
445
477
379
426
570
186
630
466
495
513
406
688
431
437
725
360
703
506
404
732
524
562
653
600
616
610
91
263
462
377
455
366
407
134
558
259
621
472
357
356
335
466
550
548
400
561
400
597
304
448
610
464
337
540
301
502
271
446
25
582
332
696
493
454
605
717
571
167
749
599
439
424
612
567
713
659
451
530
460
418
693
212
373
595
700
490
681
448
552
487
535
552
445
391
664
517
605
460
349
474
512
505
608
386
448
588
587
342
408
376
582
666
235
182
547
459
349
496
554
514
509
474
596
534
522
457
510
562
649
549
515
312
516
287
297
494
559
724
522
537
632
584
605
424
499
351
678
581
564
472
685
405
409
291
464
467
593
612
362
626
629
390
522
498
209
340
563
552
489
458
265
507
662
720
430
531
0
515
373
620
507
123
370
532
304
468
226
478
399
355
522
202
497
630
632
246
510
600
462
540
681
398
360
516
405
331
293
610
570
541
632
494
611
337
479
238
435
650
750
506
604
378
591
126
447
175
572
464
434
512
643
267
638
432
592
317
546
151
335
406
468
510
545
255
593
738
614
395
533
386
482
527
496
339
174
427
321
521
671
563
730
572
542
670
88
556
589
613
311
366
575
531
472
448
440
560
561
612
189
200
600
715
497
464
371
632
346
472
363
342
443
609
521
470
565
532
659
412
457
351
161
554
397
472
477
19
429
440
766
634
174
494
488
562
571
639
355
361
286
504
424
276
653
637
356
622
464
381
406
630
463
420
453
689
505
219
565
303
439
348
274
635
517
535
614
222
702
525
314
529
475
553
361
546
254
336
601
290
379
380
661
324
367
457
647
0
399
463
701
577
654
0
345
454
460
0
531
411
393
378
386
420
551
293
270
718
274
449
554
472
540
392
137
524
558
503
604
549
371
663
475
577
640
724
601
459
446
352
0
716
412
218
642
446
579
441
576
485
633
385
476
702
137
718
441
417
673
573
427
248
353
283
416
486
655
427
527
725
471
489
420
462
467
353
500
672
554
222
391
497
307
538
196
392
469
385
351
351
370
416
684
624
470
668
724
242
441
584
731
326
570
372
498
532
558
523
487
544
600
572
340
452
445
535
426
292
684
542
489
458
437
0
206
654
416
287
515
720
229
641
692
543
559
465
432
291
648
451
621
605
711
583
563
436
776
619
470
312
521
445
479
714
625
462
657
362
450
530
310
266
481
447
616
638
530
536
651
403
586
498
549
385
562
538
460
527
399
699
412
554
487
440
550
601
576
107
289
161
163
58
670
520
572
432
312
502
505
365
487
651
332
620
388
632
482
596
615
494
381
585
580
403
629
482
441
505
470
45
312
722
322
410
213
502
482
561
407
431
435
356
616
461
393
496
169
186
446
452
343
0
599
225
310
517
508
515
488
138
631
492
718
492
565
524
619
266
407
599
420
261
383
367
326
477
599
555
256
585
450
425
572
489
621
381
653
517
536
693
535
476
545
374
445
733
395
375
414
551
531
471
574
536
590
226
548
480
371
621
469
280
611
660
607
482
403
491
401
331
441
352
564
605
614
50
516
497
511
278
428
553
389
434
518
50
506
241
550
521
496
433
357
712
196
318
593
286
580
238
616
371
353
631
438
598
504
421
572
351
701
561
577
571
403
205
493
742
363
477
621
680
286
481
641
450
650
602
262
623
420
603
638
29
556
272
131
574
342
179
528
509
521
364
335
689
385
583
439
578
673
386
404
407
689
569
472
206
331
326
445
473
424
546
361
670
532
270
429
0
422
451
344
737
358
240
261
397
472
459
404
666
508
482
574
497
468
685
370
547
165
501
243
452
483
232
540
325
522
584
697
503
701
436
523
617
272
356
652
608
428
439
584
499
439
553
364
419
507
563
333
531
716
630
621
365
625
144
540
707
418
360
141
298
654
566
597
453
382
424
370
558
535
563
473
651
87
447
462
747
416
580
556
478
722
353
360
529
402
521
189
335
605
574
539
649
460
409
178
668
433
472
372
468
511
585
0
612
467
378
680
248
502
422
130
251
422
605
396
503
498
645
432
311
567
623
745
479
454
411
315
372
465
344
196
266
600
547
511
548
629
633
580
505
379
184
505
424
596
432
531
499
631
735
321
344
639
579
488
511
226
475
667
598
240
0
436
593
471
562
317
502
540
389
404
284
600
441
440
356
536
493
304
561
468
465
735
634
497
536
613
468
456
666
438
612
547
601
349
556
458
527
616
504
525
336
688
396
348
171
630
493
551
497
653
671
510
74
577
249
507
511
272
428
286
563
657
423
571
396
467
643
385
503
431
643
410
531
526
630
454
584
658
388
353
505
355
543
474
224
606
145
523
701
408
582
193
182
272
335
628
561
219
246
701
719
500
546
403
465
148
595
569
439
533
418
339
591
663
377
370
425
754
442
484
641
576
532
659
531
236
733
387
296
657
730
193
232
550
272
617
348
688
579
292
398
693
569
514
393
687
571
350
483
508
721
504
462
431
541
482
462
309
532
495
387
501
522
626
537
552
430
384
449
424
501
453
440
564
391
502
646
298
445
523
444
543
469
292
401
387
297
196
387
705
379
378
523
299
334
696
424
397
620
546
394
544
437
530
0
445
538
639
244
372
607
607
649
701
774
542
534
490
709
171
515
687
434
573
687
536
570
469
436
246
413
304
568
429
335
485
481
626
585
358
386
674
269
496
576
445
651
656
566
522
648
421
706
528
505
184
305
468
559
228
520
561
731
533
712
595
124
216
659
612
514
481
345
498
399
595
391
684
301
451
731
599
352
541
580
330
201
475
529
493
479
540
316
355
632
320
632
298
451
336
573
437
597
597
692
345
490
446
533
596
729
543
433
744
111
434
288
411
250
613
712
726
517
516
612
455
421
480
748
666
693
689
621
483
558
489
454
413
210
375
244
498
265
548
295
535
438
264
434
425
517
504
439
494
282
387
386
719
498
577
469
333
675
629
277
399
569
649
365
338
413
395
426
231
282
496
622
458
618
419
304
238
394
550
338
364
553
467
596
652
322
548
585
540
533
722
314
624
448
475
355
406
301
380
712
549
404
577
246
536
359
373
482
575
517
472
496
612
325
194
245
499
564
747
497
726
756
551
461
582
641
509
524
651
597
764
566
304
685
669
102
333
498
638
133
670
434
615
635
542
394
612
332
558
476
252
499
470
574
624
484
460
382
592
565
438
558
437
154
712
600
604
399
194
351
377
395
456
389
572
531
357
188
255
363
405
615
505
279
393
670
73
504
554
262
487
438
325
364
631
390
617
771
541
537
258
560
530
656
426
499
358
461
408
481
421
470
123
532
764
422
226
625
417
454
459
605
511
450
308
634
585
640
478
438
312
578
620
543
535
489
444
424
236
490
302
604
549
345
575
594
512
272
506
346
0
300
569
417
584
182
305
324
611
220
275
600
513
471
474
615
286
555
556
427
326
468
445
611
341
184
464
352
485
350
551
411
706
560
555
601
410
266
653
490
382
625
619
553
381
433
313
213
400
311
481
728
739
501
392
523
215
289
350
736
513
512
723
577
575
605
624
261
570
195
602
337
525
648
263
309
514
406
559
603
655
374
628
378
537
655
378
358
437
462
366
528
380
420
423
582
360
521
648
621
563
601
594
464
280
668
519
408
591
599
571
501
372
533
758
483
517
449
480
635
391
428
621
491
403
379
449
457
391
511
551
324
531
548
700
440
311
315
667
637
0
480
671
271
490
655
479
654
676
340
364
726
581
384
463
638
476
544
461
464
450
371
508
616
502
130
609
283
762
408
449
713
673
471
593
506
350
409
314
357
385
270
390
393
604
554
592
292
532
423
463
638
415
402
337
446
674
468
378
550
709
786
463
553
471
463
447
496
595
713
655
493
424
536
343
625
471
501
502
366
454
608
645
343
613
451
436
581
343
363
670
322
518
582
634
210
515
390
615
629
539
548
418
542
715
197
669
475
623
617
244
33
340
739
567
554
144
552
652
440
460
513
554
461
0
373
612
595
374
333
697
569
450
536
510
553
504
593
578
489
396
622
356
224
527
632
610
662
421
259
332
589
421
416
631
655
518
368
571
378
623
559
422
543
376
496
363
471
643
482
612
664
275
366
392
457
588
555
373
567
527
438
654
405
582
513
561
563
611
453
343
395
485
664
317
315
492
494
625
525
421
348
590
470
619
533
310
654
442
341
757
413
585
282
192
473
553
654
350
280
540
533
576
540
432
671
314
604
591
497
390
362
521
565
650
582
350
552
509
668
432
547
482
655
570
605
518
245
532
682
594
415
587
566
518
143
620
578
301
664
611
639
622
485
566
770
155
667
408
392
602
549
469
561
351
407
562
376
548
282
501
667
343
402
481
433
463
546
547
463
63
689
463
668
304
619
424
515
181
478
548
242
606
397
534
536
422
499
542
513
472
712
526
470
482
253
389
426
632
598
575
107
463
524
605
515
569
484
564
438
414
400
378
378
365
291
520
440
625
436
394
674
404
378
449
309
390
499
437
491
566
523
200
678
763
452
368
255
545
644
516
617
589
648
319
659
523
70
394
379
277
330
564
569
691
550
268
556
363
561
596
747
79
559
481
330
294
666
540
700
356
418
396
397
416
573
415
498
712
576
469
531
521
676
412
578
666
526
556
375
392
440
464
636
517
256
549
493
463
548
378
426
436
511
455
502
651
556
686
282
538
768
531
225
439
386
388
431
627
341
570
413
88
388
425
477
618
653
346
379
364
440
700
555
483
738
579
595
692
733
381
485
75
534
487
264
555
381
536
285
494
322
101
317
556
328
599
673
456
236
98
660
423
523
619
328
667
665
488
587
353
332
525
115
450
342
378
557
577
580
629
486
481
78
567
612
317
609
476
450
496
231
573
554
473
610
567
250
779
503
601
406
743
298
514
757
419
383
580
382
423
502
525
608
174
546
478
536
341
478
388
386
439
580
484
312
462
455
471
361
421
315
581
364
353
302
537
735
412
420
664
462
401
558
488
577
561
551
600
450
462
578
277
683
357
532
259
683
505
334
546
271
422
480
514
595
655
464
520
603
456
367
308
401
558
472
572
676
602
490
468
583
310
5
416
517
468
452
257
469
503
626
306
612
365
547
494
341
501
504
646
410
550
447
610
257
361
427
725
393
517
618
395
507
488
527
352
625
586
457
423
527
250
751
461
451
569
563
295
624
361
366
480
521
706
319
133
653
430
572
434
498
527
371
478
483
565
488
640
415
444
566
474
452
473
585
115
631
487
485
591
641
380
578
538
608
267
335
674
508
709
240
251
401
515
563
602
514
544
147
562
406
279
504
434
644
715
190
433
579
654
509
553
616
502
416
539
372
631
48
431
685
193
520
760
740
686
277
454
403
564
594
430
642
513
555
559
455
518
322
541
734
455
592
376
371
396
584
415
134
644
565
637
689
160
485
506
479
648
469
487
447
374
264
563
0
731
503
543
326
478
151
227
310
719
585
470
152
566
406
712
322
676
550
488
462
0
576
501
481
585
194
527
589
401
745
253
610
669
566
472
525
362
589
478
212
460
483
674
590
246
394
280
452
583
308
481
425
576
153
547
517
377
453
681
684
0
410
616
446
667
427
84
575
598
538
324
346
701
591
511
472
403
171
445
324
546
520
111
482
514
525
563
542
515
525
484
662
527
634
643
446
453
521
464
230
745
515
272
156
380
638
330
595
384
565
522
639
375
567
599
165
257
464
530
474
211
257
458
490
449
487
372
310
417
398
501
434
308
626
687
472
626
475
599
655
402
669
473
416
353
487
381
226
492
454
585
518
487
472
139
539
578
612
549
395
434
689
482
176
523
621
337
392
753
474
422
625
452
722
514
707
480
555
543
413
186
361
495
181
312
432
412
392
369
521
518
542
655
393
608
476
425
518
496
569
625
616
415
425
610
578
387
643
187
423
415
546
447
606
659
583
549
404
478
449
510
469
359
557
343
581
169
693
618
695
559
224
542
629
728
770
583
655
670
448
437
560
770
214
554
688
397
678
622
520
493
457
570
581
389
146
294
408
471
587
407
376
366
533
590
482
420
490
571
451
565
83
569
656
452
637
220
559
562
541
481
499
221
644
465
458
544
657
250
395
535
518
647
449
575
576
374
663
346
559
582
463
291
320
435
249
720
539
467
404
527
549
664
325
383
512
396
426
596
0
573
519
386
559
451
453
491
540
387
488
605
507
437
745
461
565
508
451
640
595
322
556
466
369
416
427
425
500
396
569
436
584
582
547
682
351
437
609
343
560
617
583
312
299
336
630
498
574
511
519
485
402
488
512
472
484
422
569
428
536
490
437
333
498
507
477
434
690
523
313
373
428
565
610
413
579
424
315
24
412
775
419
535
651
521
511
546
428
625
605
293
348
427
746
469
579
664
689
469
499
423
624
462
623
469
671
303
446
366
498
593
357
550
482
578
532
465
429
503
292
560
555
358
661
473
574
258
331
620
640
482
404
466
617
494
502
542
286
364
484
135
486
469
477
554
358
618
456
456
208
522
338
459
566
555
493
562
530
334
593
298
662
438
343
494
609
678
603
483
468
265
489
652
537
291
551
477
681
685
530
675
658
259
101
494
426
266
552
533
568
339
452
345
581
557
619
354
577
473
246
436
621
347
450
603
679
575
477
444
575
598
674
499
488
632
466
460
434
418
286
575
555
464
139
415
318
482
523
506
375
442
369
571
458
563
468
597
387
329
361
342
164
390
426
401
388
510
582
184
434
403
423
483
485
654
619
440
0
742
343
692
635
292
504
721
510
478
512
708
473
316
359
685
507
252
393
621
627
577
714
473
582
628
684
627
613
548
566
565
446
325
688
352
304
239
585
101
409
612
665
158
414
549
483
482
587
579
215
622
209
378
578
605
346
0
485
577
326
404
615
664
397
610
323
395
155
575
355
371
554
289
495
642
523
339
107
463
642
383
587
349
441
464
402
477
469
527
559
718
497
645
581
469
508
552
468
655
497
349
327
622
665
441
169
352
339
665
397
634
536
373
583
553
555
267
527
654
524
592
583
394
461
247
413
539
548
496
689
681
442
367
71
437
378
196
534
413
576
298
570
427
485
589
473
639
173
599
412
366
594
547
545
484
604
506
662
466
629
549
565
235
517
576
557
422
528
307
531
473
577
364
463
749
263
520
488
386
537
735
605
447
488
358
598
598
646
358
519
498
311
441
303
425
528
433
301
537
334
532
528
510
436
559
568
498
680
575
447
224
0
220
650
355
401
486
642
597
469
634
583
547
351
570
493
693
520
350
515
400
516
335
461
388
575
503
413
340
300
425
445
538
440
565
546
543
407
539
742
559
687
100
0
641
372
668
396
539
483
497
277
572
733
271
401
523
599
513
599
450
261
401
448
432
373
622
518
401
475
665
653
383
235
646
299
544
351
632
389
563
413
422
576
413
554
546
588
451
640
582
580
473
205
348
229
256
541
564
289
524
652
313
155
465
306
685
573
557
329
477
178
599
661
583
415
569
614
584
701
494
245
469
585
489
573
345
647
446
305
376
449
623
642
550
477
563
556
432
465
520
506
461
662
221
390
617
446
418
321
549
538
465
437
543
546
267
464
577
461
448
517
595
625
310
208
627
363
494
573
301
482
465
607
224
680
510
425
438
538
328
513
286
399
322
139
554
565
451
169
444
670
658
390
367
435
526
623
660
485
766
365
587
310
604
501
389
400
381
407
545
447
357
580
658
436
634
735
670
506
356
438
416
505
667
550
383
540
555
540
641
200
627
447
533
735
658
425
531
341
472
253
524
460
444
601
542
535
623
425
328
463
186
408
248
573
534
226
494
301
252
530
462
668
557
573
467
220
532
500
542
522
634
600
539
363
416
579
497
506
344
574
694
601
375
410
498
383
431
496
232
631
107
583
589
604
386
369
393
510
712
576
756
638
328
406
333
370
489
374
558
445
679
645
421
699
329
275
459
543
515
347
478
594
434
509
559
368
529
506
393
510
0
622
459
319
59
659
264
503
436
491
716
345
610
594
511
319
664
539
624
479
665
548
536
543
551
536
527
573
234
580
516
505
461
446
457
521
550
374
557
499
384
289
472
326
132
441
403
600
509
526
605
361
514
511
520
431
627
651
626
345
674
418
342
527
355
307
300
435
432
489
684
564
663
467
609
309
434
701
311
408
459
352
582
230
177
490
278
455
580
459
297
413
777
600
466
517
341
597
576
514
486
348
255
407
293
503
627
484
479
646
241
630
627
131
487
532
641
280
538
530
596
222
594
470
593
746
490
587
478
336
682
579
422
565
118
689
647
638
241
518
582
657
499
688
612
473
295
516
736
316
598
479
467
741
546
463
585
446
503
613
645
534
594
426
631
499
504
531
408
428
595
666
493
350
645
496
533
303
598
598
598
206
321
558
295
524
584
387
663
559
583
469
228
517
549
680
321
455
301
280
431
512
712
533
365
411
282
524
305
532
372
313
462
604
505
528
620
499
508
578
428
271
525
629
188
592
463
614
494
498
565
275
535
450
538
660
535
362
414
653
575
606
612
467
532
440
321
622
451
622
758
556
332
658
495
324
496
248
529
529
308
673
495
389
495
577
446
577
608
463
704
497
534
445
599
473
629
537
252
426
659
642
510
535
278
609
430
0
512
485
490
534
646
435
599
580
515
707
291
585
328
429
359
471
479
384
496
261
493
479
611
239
553
371
402
582
630
558
397
563
581
383
624
455
362
314
584
409
548
605
582
278
503
303
262
303
357
423
591
460
540
558
550
636
482
603
581
114
371
460
445
337
673
239
478
415
501
209
243
464
594
637
664
310
406
389
431
517
602
673
510
0
566
388
352
320
460
350
467
475
515
452
608
509
457
329
484
672
363
607
348
707
395
433
687
633
336
450
670
467
572
606
703
496
504
532
433
522
580
480
664
431
316
570
527
476
224
594
538
416
685
380
502
427
0
218
525
694
505
433
539
58
362
473
341
511
502
485
494
356
521
419
307
622
523
564
251
411
462
384
235
310
653
461
238
758
581
609
358
513
655
616
224
724
347
344
399
458
486
615
453
476
592
599
540
322
547
306
665
627
378
485
644
347
414
408
235
616
441
705
537
179
423
504
706
442
451
664
620
476
458
773
532
566
562
562
511
369
701
326
548
466
478
501
585
668
297
464
409
486
700
535
617
185
363
424
399
190
476
618
737
492
62
247
535
164
586
563
590
668
416
521
641
620
561
359
676
555
486
618
393
610
517
490
741
314
516
79
453
327
552
427
606
540
446
578
346
553
462
515
445
511
484
384
459
436
447
676
581
408
677
569
325
511
743
483
171
475
797
393
687
667
462
566
442
374
579
523
456
543
224
664
387
445
155
251
398
521
481
313
623
461
437
381
457
553
528
648
479
434
468
285
328
289
357
699
184
160
421
316
633
507
515
573
463
560
231
576
608
691
357
540
589
501
587
554
498
335
501
520
463
468
450
424
248
376
647
628
562
470
419
556
403
428
585
486
604
611
499
592
557
335
0
176
361
643
240
598
477
529
691
242
431
292
560
623
403
347
650
324
657
331
497
466
613
449
413
680
549
445
435
510
716
418
360
519
323
133
652
620
583
583
703
561
600
328
556
486
335
625
460
409
535
354
543
455
383
301
361
506
723
420
623
482
396
400
577
459
25
582
488
412
412
684
680
274
606
641
304
630
431
442
463
366
572
459
263
301
470
565
595
636
501
508
499
679
625
707
460
446
431
597
434
520
547
635
587
518
713
450
407
508
291
583
490
454
448
383
565
271
363
502
256
388
512
232
568
447
499
323
500
629
338
257
598
549
244
504
141
296
591
381
595
591
510
666
345
457
633
582
211
331
666
654
210
438
663
482
394
583
660
490
307
576
610
537
441
615
66
757
290
489
669
375
473
454
602
667
703
500
453
359
125
589
490
522
469
419
215
258
434
456
425
328
522
679
671
501
107
191
332
429
544
558
471
359
615
556
451
316
456
588
479
495
647
243
487
480
382
478
520
446
273
490
547
475
539
489
482
358
484
506
600
646
496
638
481
456
449
592
687
508
603
58
638
605
646
595
379
425
414
658
515
426
417
367
504
592
271
456
747
535
219
500
521
464
333
352
631
409
194
536
684
544
654
491
468
681
782
568
686
618
586
604
533
513
427
297
608
598
399
620
569
658
530
325
286
582
356
546
306
550
612
599
478
467
685
417
588
575
498
602
421
499
360
230
216
378
503
206
460
586
386
576
166
546
643
640
667
537
517
517
648
612
475
582
0
513
514
468
413
580
465
410
369
453
324
526
552
449
323
21
489
506
545
564
388
452
292
549
46
507
633
537
604
374
641
607
511
383
592
618
614
336
426
558
198
556
675
609
504
698
626
406
346
504
620
503
399
629
653
592
440
640
548
347
511
609
609
429
594
439
423
572
409
398
570
502
661
400
414
389
0
508
440
583
496
476
552
534
295
686
498
577
464
220
465
415
558
466
523
567
434
550
375
242
98
448
540
636
538
368
574
572
500
672
589
452
532
355
487
386
429
616
595
668
485
472
454
743
586
329
313
402
500
344
504
465
278
225
524
418
609
499
536
366
727
733
559
554
394
526
462
428
521
271
552
566
330
651
677
391
431
465
423
461
608
106
551
560
774
355
739
436
516
697
244
431
557
594
214
318
633
496
465
318
560
339
507
566
547
397
646
528
710
122
450
494
669
225
667
80
547
299
493
287
564
220
533
507
515
535
512
125
382
478
593
239
480
368
609
381
231
503
557
442
563
615
260
490
575
635
543
587
680
343
521
234
634
585
376
596
42
692
556
578
676
183
668
416
536
687
590
627
434
534
663
459
627
474
307
541
570
457
439
445
663
672
381
510
602
600
610
447
400
451
634
511
602
401
407
453
508
357
493
135
230
420
513
655
260
509
508
550
550
373
431
594
416
645
433
577
367
679
510
487
462
571
75
712
492
684
669
690
349
635
520
249
633
196
713
434
474
304
408
17
595
605
10
574
550
600
216
307
330
459
636
122
730
687
703
587
248
431
536
507
416
273
671
560
351
337
372
356
657
326
623
343
379
357
452
583
386
522
654
560
291
656
231
702
387
415
452
440
494
547
562
493
468
721
627
618
534
539
205
386
632
605
370
523
698
519
602
493
150
261
416
590
612
0
572
548
398
485
404
639
518
342
458
493
459
497
477
487
249
269
0
467
684
574
631
525
414
279
674
313
576
512
443
487
413
656
489
646
602
129
398
499
291
197
486
608
325
19
707
746
430
533
351
302
361
364
251
504
340
495
602
426
479
683
353
502
378
467
401
586
547
526
169
323
379
397
407
248
424
371
373
623
490
377
408
409
624
681
389
380
228
358
480
449
602
566
508
510
761
471
499
125
575
360
514
501
337
665
442
527
604
422
555
383
614
678
533
433
507
535
598
347
491
408
299
258
679
289
622
394
325
731
575
612
253
615
0
331
511
181
685
285
540
573
575
322
529
539
550
405
562
619
462
304
579
458
379
623
656
453
476
567
505
654
654
576
202
376
687
418
79
440
467
294
477
403
440
300
497
441
730
515
294
472
365
441
461
0
735
218
402
357
214
303
718
584
302
406
745
546
676
455
444
412
630
492
613
442
388
365
363
717
208
652
215
200
433
593
346
450
411
481
466
377
577
642
671
446
561
328
495
490
380
345
526
461
576
341
25
650
405
454
568
369
673
229
279
302
628
304
510
406
255
498
632
480
454
588
307
597
394
660
415
274
476
567
470
568
523
537
511
519
421
624
570
362
698
528
655
235
765
712
495
272
413
416
489
587
662
558
631
280
313
308
561
573
102
639
619
686
490
321
510
546
591
718
403
233
675
515
557
617
439
510
360
712
583
408
378
303
396
345
524
666
613
352
575
364
356
461
621
593
546
591
416
491
504
421
296
600
642
525
144
393
574
469
535
262
531
521
429
596
419
667
672
675
194
481
498
717
701
201
346
575
507
430
668
563
416
478
426
497
546
679
767
637
547
320
464
24
268
534
683
542
545
520
385
312
400
577
634
560
287
614
621
712
527
410
360
604
394
374
783
614
486
356
458
348
478
623
356
492
551
340
447
548
625
539
485
234
242
546
311
146
505
635
275
457
751
453
613
329
597
437
618
218
461
669
226
505
356
465
619
665
606
678
427
645
325
600
566
235
639
630
319
738
418
459
504
441
360
510
506
337
515
566
549
328
401
479
655
403
493
703
567
581
443
314
682
233
364
492
658
612
635
510
481
331
338
194
560
394
437
403
134
182
689
517
332
454
360
598
512
517
280
495
379
675
482
517
407
360
346
460
519
652
561
0
655
311
478
510
176
344
646
256
417
489
558
458
753
520
589
338
539
673
594
213
499
561
555
528
732
616
762
507
443
443
559
650
298
486
443
537
537
600
379
328
427
558
567
517
290
632
385
641
295
435
646
508
0
458
263
469
420
251
338
462
531
61
286
313
634
645
567
235
424
460
302
565
512
402
291
477
450
453
359
719
397
492
317
554
308
442
584
30
456
284
596
533
370
479
394
542
333
103
456
430
331
337
263
531
534
604
764
355
490
689
541
458
591
366
663
763
350
537
649
719
322
378
676
434
0
441
414
679
595
394
346
512
503
530
514
248
469
570
495
567
315
603
702
556
438
759
574
324
536
601
549
415
372
564
392
512
404
396
475
456
394
493
428
442
522
361
500
375
117
494
577
559
528
591
494
617
338
635
565
272
512
583
439
730
614
724
597
691
260
443
356
485
88
444
520
711
500
100
0
395
708
36
315
573
247
625
253
630
393
512
369
575
585
465
538
409
294
565
523
477
605
126
379
543
478
688
379
653
627
650
628
605
428
537
152
434
517
314
560
497
452
700
595
191
447
554
275
468
539
559
235
382
465
592
347
622
553
307
530
694
427
474
558
684
636
318
0
518
510
365
299
360
103
203
621
693
546
465
624
465
500
602
526
506
410
714
544
689
518
524
470
574
115
513
690
467
13
520
291
331
775
311
583
491
532
209
525
532
543
430
531
429
587
692
452
585
379
536
569
149
518
427
281
222
497
372
633
369
598
712
500
482
528
494
631
253
449
531
376
390
412
615
546
476
487
485
641
223
321
778
380
492
488
693
318
58
576
508
312
518
761
644
628
485
424
467
532
311
615
307
654
785
180
445
529
369
451
0
728
298
8
538
350
497
617
436
458
484
550
358
352
253
499
641
446
644
374
540
572
364
539
555
348
587
611
579
648
719
347
523
646
485
536
367
149
498
349
641
675
600
478
478
507
445
499
566
488
390
650
565
200
725
733
337
394
585
635
452
579
569
668
175
513
710
670
658
595
331
321
683
632
604
275
500
418
336
684
517
683
372
597
516
157
632
443
544
137
316
572
536
480
503
612
479
723
490
458
445
144
424
520
497
304
372
576
702
338
185
320
366
444
576
621
325
528
369
554
487
579
602
262
501
556
399
589
323
399
397
387
643
559
427
408
85
269
463
554
444
746
383
529
477
408
382
567
492
710
560
549
370
322
348
512
560
271
559
507
629
393
428
517
131
320
506
354
571
752
571
346
214
364
364
317
559
517
539
476
237
375
496
482
487
637
616
192
478
450
524
539
202
466
536
766
523
522
333
680
414
511
516
577
699
632
379
429
544
734
513
412
577
516
324
585
667
596
361
679
550
537
0
593
483
581
702
543
486
387
415
476
300
652
512
368
408
386
459
370
532
399
671
432
566
671
627
511
766
537
600
298
546
726
606
415
419
505
502
611
541
737
502
614
430
388
374
103
353
510
575
348
358
482
264
445
508
529
628
700
637
610
482
546
468
544
488
262
208
339
354
362
552
610
325
544
411
405
546
283
476
205
680
523
445
90
620
530
610
539
430
526
544
718
657
497
457
561
676
0
416
552
426
511
337
298
581
659
393
664
370
304
197
613
333
205
647
224
470
637
392
646
447
199
544
727
457
465
422
285
612
551
445
499
120
482
521
498
653
574
302
681
412
462
389
658
210
533
714
278
283
578
497
639
629
177
535
602
580
439
419
618
343
537
446
592
419
452
483
557
382
539
354
402
534
415
604
255
468
438
478
682
543
653
375
484
508
249
438
590
705
679
629
332
504
0
720
479
444
474
270
469
616
530
536
487
545
332
513
439
83
620
382
294
306
569
138
654
773
504
657
511
133
455
674
580
686
453
320
630
706
409
156
505
569
275
703
576
431
270
718
147
596
546
249
652
615
460
32
760
607
508
716
308
636
542
550
406
557
496
428
401
632
443
747
468
501
480
553
487
514
463
575
368
438
677
523
558
376
250
431
494
628
548
506
487
346
194
424
654
400
597
464
518
471
534
514
576
469
324
188
514
301
508
499
652
480
586
359
435
213
559
304
570
486
510
452
551
516
476
406
124
469
421
491
291
411
529
318
387
412
466
506
527
547
322
526
566
268
521
495
417
302
593
412
287
315
639
0
602
479
617
550
565
559
547
704
424
655
519
615
544
268
402
447
398
297
494
466
73
392
612
666
611
489
571
258
665
678
463
413
629
56
589
715
9
293
428
369
616
475
487
298
378
600
603
266
394
330
610
304
361
296
487
547
492
387
564
257
342
705
749
711
548
502
421
501
292
713
421
464
515
527
510
519
624
557
420
640
668
507
546
408
516
102
370
292
573
314
593
516
375
609
578
646
615
599
363
415
575
454
604
503
537
188
593
612
514
425
556
614
406
533
624
553
443
644
303
263
417
517
346
309
484
445
435
576
252
600
502
759
454
449
378
499
682
561
321
597
446
258
587
155
432
504
439
590
450
421
602
85
101
572
666
172
321
253
0
367
134
472
592
416
685
199
385
508
495
565
730
478
445
629
552
735
460
549
528
463
486
581
596
511
631
627
482
432
526
352
465
389
406
386
693
550
681
622
481
435
299
259
536
583
548
289
374
602
606
405
512
495
495
406
673
612
562
425
305
471
498
431
704
425
327
440
395
237
665
514
498
466
620
107
606
319
378
327
94
471
390
489
423
152
555
604
434
455
506
656
536
491
547
435
541
445
392
203
294
621
436
629
440
491
677
390
76
484
605
395
554
397
343
592
504
521
463
617
532
507
122
416
505
418
432
24
357
324
194
508
501
372
422
107
504
325
587
311
586
461
570
449
454
515
573
539
774
363
346
579
347
539
596
615
492
648
351
461
791
267
511
311
613
466
586
640
229
288
613
605
577
548
782
262
505
429
652
410
605
407
440
496
444
569
262
449
508
423
356
160
554
621
538
579
598
541
395
264
415
577
524
640
541
369
696
640
593
357
159
610
460
639
525
500
337
439
473
524
555
673
460
485
635
467
448
594
504
305
394
624
583
350
280
447
519
596
360
371
214
487
17
566
253
459
611
439
331
330
318
611
624
689
194
636
617
418
316
572
692
477
325
584
628
396
662
486
531
591
396
557
500
627
125
435
92
605
465
337
334
550
124
199
517
508
402
508
379
505
732
428
535
659
701
334
364
344
464
464
443
402
539
525
575
543
408
580
291
524
679
489
488
450
313
595
654
557
107
409
88
493
601
763
517
327
0
526
575
578
627
443
735
536
467
320
442
416
584
396
652
468
206
360
531
489
453
633
665
460
494
488
117
409
487
598
369
631
616
278
741
527
425
309
405
589
584
552
505
546
455
622
388
408
524
656
491
501
530
114
281
401
506
490
615
397
399
521
412
492
366
605
520
758
530
221
218
432
564
245
524
318
614
522
613
695
570
261
413
444
664
287
651
557
527
729
592
566
479
321
443
690
653
340
605
577
372
253
304
656
399
667
631
610
540
529
638
127
351
485
667
391
45
681
443
137
432
724
0
470
616
423
413
481
217
411
318
567
483
695
556
464
371
644
512
588
309
335
446
702
0
353
206
478
414
637
742
356
364
437
315
712
493
458
208
484
294
455
363
525
471
387
354
627
505
638
556
560
436
663
309
286
313
710
658
334
381
368
40
574
605
517
292
259
351
692
473
433
417
380
745
72
606
749
410
500
381
483
489
344
110
498
322
357
655
316
329
530
688
531
590
584
366
672
560
548
360
290
472
593
523
569
656
744
499
428
539
471
556
749
468
432
463
439
482
546
642
506
507
99
577
516
414
495
387
648
588
437
514
631
538
556
656
402
421
143
433
500
262
398
601
656
0
286
516
513
414
575
395
495
464
369
295
401
698
578
514
385
660
559
695
606
274
302
511
285
498
589
586
538
178
523
326
746
693
490
432
436
542
380
645
481
746
327
635
686
684
517
533
475
700
285
288
503
302
465
447
521
548
281
576
566
395
400
268
436
564
461
602
348
456
338
570
300
318
462
307
0
583
445
384
735
343
695
727
341
620
508
478
599
548
589
571
553
492
476
508
451
373
771
376
367
413
396
520
429
596
187
611
613
556
607
389
696
415
515
510
554
481
447
350
532
407
486
286
360
327
603
692
337
192
477
627
528
613
737
643
298
524
728
455
272
386
259
131
739
516
654
627
681
432
352
634
508
720
440
443
270
473
415
487
497
554
704
347
0
495
317
478
235
601
673
719
575
532
224
546
280
592
294
411
714
492
454
751
341
266
343
401
607
318
259
176
399
477
512
637
424
420
514
505
537
414
584
364
454
378
585
591
605
447
635
658
434
497
572
715
611
360
538
612
559
668
224
450
460
538
631
37
544
496
569
657
674
493
557
460
492
482
107
570
123
522
340
465
618
252
493
334
494
760
469
670
352
462
268
391
334
714
431
469
549
598
467
485
331
598
380
524
269
528
59
370
446
430
629
610
448
667
566
373
346
510
588
687
473
525
280
368
515
773
217
666
419
426
520
732
619
322
352
669
654
717
538
399
632
547
520
433
487
558
636
708
535
364
485
432
536
337
369
318
626
530
373
570
707
481
476
550
443
94
697
708
446
489
369
680
657
642
341
505
488
683
629
294
471
570
526
375
494
524
554
604
397
387
658
601
585
227
479
695
461
360
205
316
470
479
90
395
615
450
736
543
509
493
177
515
556
673
503
736
432
453
427
504
417
353
577
463
164
518
454
615
427
211
662
570
673
512
365
413
505
535
515
374
703
470
513
425
433
357
367
555
435
279
276
713
573
270
635
527
330
589
408
310
0
478
355
730
406
505
493
287
26
167
387
459
0
551
609
562
404
195
365
413
382
437
520
528
323
366
525
695
445
443
645
0
292
595
471
413
366
559
509
430
525
505
462
373
447
326
383
540
333
355
566
577
354
443
443
456
454
647
488
695
307
530
526
588
699
603
559
340
406
238
559
552
59
510
349
419
515
100
561
469
536
381
428
579
431
233
345
721
228
587
751
263
232
542
669
649
534
604
195
363
562
418
381
486
371
283
631
509
584
506
365
426
462
462
309
295
440
711
432
442
576
583
761
517
501
371
572
544
568
448
577
279
450
655
353
484
594
565
223
526
527
525
325
511
534
399
450
485
558
315
665
495
427
621
414
617
443
465
584
377
203
508
373
414
643
645
204
558
541
336
555
518
447
380
391
430
546
29
332
525
391
607
494
440
380
512
473
335
706
232
676
670
222
532
561
546
584
455
510
674
323
581
562
560
565
554
732
309
693
530
418
538
225
405
564
374
550
0
660
385
527
295
600
443
695
310
359
717
505
607
595
349
590
612
401
537
584
193
470
652
403
357
230
392
731
720
304
425
341
401
412
493
437
464
653
678
561
483
560
402
621
544
553
542
250
405
427
395
435
600
629
26
402
614
411
759
704
582
318
408
290
615
542
564
508
573
366
472
0
347
576
596
559
731
492
361
457
498
516
305
488
446
358
432
532
513
541
407
526
316
737
614
545
285
449
464
551
318
347
0
708
383
545
593
43
470
541
245
590
222
643
350
556
538
253
557
402
447
653
406
497
312
343
590
631
552
555
309
552
461
381
454
334
598
478
438
612
568
455
412
372
584
158
488
545
480
0
382
537
675
404
597
527
470
605
642
524
461
547
426
705
458
561
480
448
676
359
470
511
403
374
179
307
289
467
327
639
188
608
444
292
312
465
370
353
470
278
665
615
663
512
579
778
520
460
289
386
415
611
404
426
299
621
387
561
546
523
469
525
595
387
688
313
431
361
347
58
451
549
526
671
510
447
398
82
158
603
438
483
350
396
597
597
63
679
477
362
610
353
664
542
262
612
628
373
408
497
556
402
503
584
469
525
568
551
376
753
334
552
648
464
510
426
265
583
475
626
513
437
589
549
458
711
488
425
238
594
552
649
350
479
584
710
328
617
567
590
450
360
606
491
628
298
337
593
679
328
594
220
646
248
383
726
514
649
402
627
529
566
262
513
584
597
61
582
372
577
610
316
276
314
598
333
302
593
255
506
159
588
461
709
681
320
485
482
535
453
378
373
312
231
661
406
599
406
494
261
476
206
586
450
417
529
618
642
469
432
446
561
557
489
285
412
213
608
602
596
487
360
511
475
598
412
187
438
437
193
664
623
270
530
709
472
652
366
612
380
664
595
695
458
605
391
599
499
749
464
127
488
524
497
403
553
516
220
500
546
333
692
500
615
549
210
551
350
313
161
652
446
503
406
430
351
625
555
421
270
513
472
502
472
284
489
534
600
375
412
496
472
592
392
592
735
442
477
543
387
506
563
201
346
440
341
489
235
687
513
722
660
497
427
408
436
409
410
673
131
416
311
442
473
610
592
354
343
279
226
325
633
394
527
614
518
632
623
231
464
604
520
378
407
601
270
325
334
591
561
594
551
476
510
500
505
349
668
579
487
569
283
433
727
293
352
381
477
642
431
578
411
473
179
169
493
0
497
191
344
345
757
541
545
559
511
725
543
569
603
509
382
396
466
191
516
485
570
450
615
476
0
177
0
479
639
611
484
561
413
366
331
744
488
762
753
515
82
452
453
343
430
317
665
712
397
88
411
566
414
399
233
403
397
587
598
658
376
670
642
534
399
427
530
328
522
394
524
715
286
634
415
563
433
409
287
316
402
610
543
419
570
487
488
452
713
521
453
422
606
405
382
293
416
236
696
696
572
543
442
297
545
541
272
630
442
581
494
595
400
412
596
551
439
640
104
479
678
544
377
587
249
632
536
196
448
419
378
634
346
392
527
608
531
525
549
633
472
582
550
732
547
519
679
614
607
304
597
488
454
208
577
297
475
575
441
576
510
463
567
514
617
327
527
612
456
563
702
376
511
353
384
471
585
349
384
426
293
743
364
602
548
398
320
456
65
525
562
532
494
478
422
475
626
349
675
589
540
489
508
665
508
475
524
430
522
291
598
603
509
81
640
521
657
717
535
477
139
446
513
484
500
601
577
473
499
325
501
674
639
601
463
348
321
490
423
456
463
438
85
420
382
618
450
267
677
510
577
414
404
197
587
527
421
500
452
597
324
407
468
498
447
426
488
153
483
619
666
583
447
554
436
629
433
335
599
75
453
289
556
481
437
191
321
396
691
556
633
640
580
433
256
505
407
452
404
593
222
545
553
198
490
608
490
407
303
622
399
466
624
598
507
590
602
597
425
446
308
535
193
425
423
0
321
671
629
364
471
610
552
281
620
564
481
549
532
717
627
479
612
516
293
574
559
533
412
716
470
515
605
656
570
606
494
646
541
473
535
484
335
631
487
552
447
504
492
514
569
266
697
412
595
502
304
516
455
556
668
531
554
643
483
554
565
270
566
563
666
423
588
404
635
590
695
437
270
523
663
439
256
597
698
302
344
358
481
342
679
541
572
669
528
496
216
450
290
677
352
605
523
529
377
580
684
676
536
160
446
670
534
549
411
506
528
253
472
398
609
511
370
469
325
652
549
544
566
382
591
460
689
618
580
743
377
481
364
369
737
520
313
654
727
553
472
588
510
410
320
613
434
576
653
535
604
571
656
549
394
530
315
634
751
586
458
341
677
601
366
496
689
482
522
455
482
217
352
676
291
381
436
496
453
438
738
604
521
349
308
308
394
545
480
521
435
416
552
434
381
193
535
447
714
497
759
601
46
591
549
699
673
596
296
560
549
709
376
509
280
415
270
439
598
550
589
389
513
526
459
463
405
541
438
382
545
568
572
570
510
595
440
486
466
566
634
78
682
509
697
500
507
471
640
132
389
545
464
614
618
606
656
278
473
119
466
87
529
453
399
466
179
461
347
305
488
706
555
216
367
530
437
456
424
380
776
597
321
511
564
608
543
298
428
314
727
596
87
396
624
192
621
478
600
326
615
408
650
654
458
352
425
660
496
554
497
394
93
389
623
328
512
422
564
614
399
537
561
345
462
614
389
382
590
709
466
660
293
665
448
262
524
507
492
296
319
577
374
189
662
331
449
585
177
423
410
778
584
437
476
409
525
487
408
410
736
117
429
606
702
495
592
63
210
236
572
634
367
289
417
179
131
98
397
57
715
299
496
295
347
558
572
515
572
496
533
735
589
535
465
606
404
699
612
432
756
597
760
655
607
700
480
783
565
379
629
682
678
395
628
545
600
372
385
115
595
682
560
494
504
386
357
446
616
599
497
373
573
541
285
395
165
477
361
489
540
315
534
248
494
0
365
688
455
457
408
631
523
147
348
431
599
431
17
642
158
399
649
382
341
668
375
737
335
730
171
510
488
332
445
479
470
659
729
401
463
698
554
405
524
618
513
739
42
539
744
376
664
520
486
498
431
614
728
533
642
420
582
537
214
503
653
762
298
758
597
534
484
515
237
321
456
479
269
460
528
598
673
526
488
591
575
549
325
664
594
348
0
643
644
469
456
347
247
382
731
398
561
619
526
678
147
389
568
527
505
643
392
315
654
570
629
424
480
502
498
422
685
442
405
418
438
580
471
639
556
79
441
408
677
745
415
316
549
434
493
442
560
670
701
377
451
603
557
527
473
534
347
577
571
398
346
694
360
508
475
447
550
530
560
548
277
481
596
456
513
676
497
515
437
656
329
581
216
548
571
120
361
435
623
220
568
346
493
576
196
542
679
332
602
426
652
317
440
564
479
671
500
648
573
199
502
407
440
542
582
473
620
371
426
353
242
140
283
580
539
706
321
501
397
771
373
616
532
307
322
650
740
469
365
415
338
519
459
599
382
426
665
431
590
404
365
470
327
492
424
601
438
452
463
335
565
454
324
549
279
472
626
609
347
552
677
554
598
612
697
559
560
302
580
428
442
654
539
483
490
648
414
436
538
617
477
543
363
643
477
392
487
488
430
601
353
730
408
439
359
590
549
520
524
443
577
423
450
258
166
380
423
581
330
604
543
357
481
395
781
535
575
259
199
439
766
408
328
695
260
43
569
536
621
727
546
246
491
235
521
497
703
651
378
279
366
369
0
580
415
557
4
366
659
480
0
688
515
443
447
486
479
490
425
654
232
596
437
672
583
688
575
657
339
505
502
580
558
510
474
510
639
443
761
525
522
547
253
618
520
506
671
463
479
589
456
473
689
441
522
505
488
258
598
611
570
405
360
496
505
717
527
512
509
196
536
406
0
338
599
319
291
35
445
309
423
715
571
407
411
690
542
661
557
448
739
59
708
479
515
680
427
543
351
538
471
783
563
713
567
422
499
411
507
454
585
572
610
543
672
430
403
482
451
707
781
497
393
540
615
394
323
402
445
562
576
614
394
494
505
707
678
559
574
496
421
573
421
633
444
567
388
425
189
604
341
650
445
702
527
672
554
0
532
470
555
642
503
547
508
283
511
442
228
634
536
611
413
682
366
611
583
558
294
512
524
502
522
517
494
633
716
422
502
572
610
394
417
689
577
586
359
663
440
437
552
445
427
336
595
547
464
606
395
405
373
394
287
543
433
347
563
609
436
435
351
485
675
319
462
654
269
573
470
493
568
278
703
703
551
584
507
532
417
535
512
705
236
292
586
488
519
315
635
590
568
547
391
486
508
559
501
703
607
364
591
551
485
510
456
627
547
311
460
409
271
499
507
386
616
414
375
70
313
513
630
422
352
643
292
540
563
594
493
252
541
578
339
356
610
266
368
430
430
426
394
486
174
502
526
356
101
563
607
332
612
435
623
359
494
405
527
475
577
314
554
632
511
644
408
455
502
445
572
633
355
189
465
405
361
443
326
622
397
630
573
503
333
475
521
522
452
514
488
568
464
690
408
396
514
498
613
420
436
521
633
350
638
453
466
308
263
768
222
451
420
383
413
382
725
479
563
718
625
508
278
666
577
483
724
751
428
394
643
215
371
478
306
465
399
656
516
549
499
476
560
487
639
476
321
334
247
691
434
517
651
435
578
437
573
450
528
656
701
483
484
576
677
735
555
477
310
229
337
374
589
366
570
520
384
140
361
447
493
568
446
391
381
392
552
406
414
579
627
610
534
0
369
492
615
721
258
375
431
369
789
126
633
501
505
576
531
401
419
668
353
506
592
356
441
714
330
376
325
612
614
528
374
575
236
371
538
442
320
358
256
604
422
528
517
628
477
408
299
366
445
602
497
543
519
447
627
403
476
491
509
658
533
468
396
313
605
581
572
503
509
503
575
432
480
501
661
573
589
598
444
761
414
420
690
433
328
677
627
457
708
457
620
332
520
340
583
467
589
434
445
480
224
544
679
441
449
433
462
539
524
220
494
334
535
309
525
343
281
631
452
636
348
486
501
641
286
472
458
641
606
560
349
697
338
685
432
639
612
640
560
606
475
648
538
490
741
607
391
693
479
678
213
520
490
507
721
516
567
608
514
496
320
527
607
444
405
253
389
622
482
633
452
403
602
544
631
389
431
633
470
395
359
584
148
666
504
551
512
626
662
546
615
478
6
692
410
756
496
461
429
481
585
637
265
531
618
524
593
541
466
426
387
546
322
556
490
431
462
582
452
0
386
323
536
617
463
615
362
285
362
626
436
627
495
666
312
374
236
564
541
499
188
578
604
477
341
672
669
484
343
478
575
497
592
43
234
358
127
531
478
593
577
541
426
378
558
333
428
565
595
692
595
489
255
607
532
551
406
419
554
345
493
494
607
563
686
374
439
632
452
400
435
362
567
503
580
591
527
501
593
572
691
609
423
452
586
428
656
400
334
277
428
365
572
238
461
455
668
549
420
514
658
192
613
652
640
707
506
170
467
743
382
544
352
403
439
590
403
218
207
577
514
489
491
223
564
503
580
407
429
423
260
367
529
489
139
338
441
730
0
698
319
686
535
535
346
388
566
438
726
518
346
286
463
630
474
430
388
389
700
523
557
294
642
472
573
684
355
440
623
263
586
402
578
611
622
456
450
397
121
625
644
750
585
501
489
573
638
265
515
473
513
501
99
313
422
435
435
556
0
530
631
572
335
491
333
638
327
451
540
414
518
369
556
244
516
625
431
201
344
429
0
482
463
557
624
243
319
691
463
471
301
387
453
370
637
566
410
566
562
350
730
86
608
454
610
337
434
646
497
459
573
385
392
438
302
448
475
521
598
457
629
441
655
387
508
455
558
478
580
560
521
454
641
344
747
699
278
555
609
626
334
587
423
595
553
541
262
426
271
494
298
547
197
707
616
570
744
512
132
535
436
311
320
538
417
565
635
527
537
419
426
495
557
518
344
561
516
488
558
642
667
424
619
713
607
570
474
428
692
537
637
566
410
0
508
319
425
632
464
455
561
439
440
590
503
279
504
718
669
305
561
561
652
533
528
691
535
525
407
600
647
592
522
474
422
399
484
445
325
648
502
336
221
648
546
561
384
487
567
529
518
648
642
553
692
591
750
473
446
621
569
456
414
450
463
640
437
517
489
610
641
535
459
608
605
429
421
108
515
449
369
765
493
654
638
429
542
449
443
539
394
338
640
553
500
556
338
498
507
337
581
408
585
29
199
700
391
420
660
224
388
484
557
710
441
434
387
624
91
601
669
420
422
336
326
520
602
518
537
588
550
605
679
535
290
744
555
571
671
705
414
464
389
329
600
570
434
58
475
640
590
669
510
202
645
724
774
516
621
466
631
550
333
522
390
699
343
486
531
493
392
756
389
222
663
244
404
231
663
551
533
569
524
622
486
645
455
560
615
402
565
412
341
588
523
726
311
443
528
512
611
645
178
604
378
276
551
655
672
489
423
466
411
233
663
503
410
546
202
504
409
567
299