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