355
625
766
605
583
449
654
536
699
644
383
611
636
652
407
413
743
770
769
691
652
490
528
650
638
883
545
696
261
482
369
642
501
674
603
621
778
567
487
655
644
558
436
699
523
723
846
728
439
582
634
325
504
1034
567
704
578
546
587
726
261
431
715
470
612
705
509
573
775
417
637
385
196
740
690
871
797
617
520
517
660
619
727
291
418
447
546
643
543
522
605
689
950
619
779
594
484
529
758
838
532
296
614
719
479
517
658
545
615
512
890
581
685
639
419
482
471
714
642
877
444
543
701
696
955
468
754
577
653
573
614
374
652
796
436
631
727
516
841
698
712
699
697
775
730
757
497
658
737
503
681
379
550
840
414
761
596
785
767
440
680
654
696
705
510
695
554
885
659
658
362
235
728
626
514
543
647
554
724
724
590
1061
686
543
821
689
784
559
648
520
629
173
724
877
636
672
849
843
554
406
617
737
438
521
754
462
730
426
941
645
584
657
496
607
692
629
646
590
608
829
388
383
665
552
557
410
447
299
653
394
554
703
860
550
699
709
752
800
553
557
514
677
496
568
698
338
529
540
785
581
782
693
371
293
743
705
788
771
500
643
694
620
337
807
316
615
836
552
573
414
338
547
685
651
700
527
733
621
704
562
383
501
764
585
800
590
675
643
257
614
592
684
703
691
562
509
734
784
582
529
522
559
679
602
644
554
807
624
616
773
560
531
629
395
680
694
845
675
479
676
697
646
603
354
559
614
596
620
526
382
675
409
806
501
481
653
479
767
399
581
123
683
812
614
510
438
504
645
591
582
620
632
416
790
569
567
612
639
673
634
612
755
578
660
666
559
673
410
463
502
716
720
369
702
551
683
266
601
745
507
662
638
634
590
637
554
558
625
673
436
692
775
657
775
821
501
544
638
545
627
756
652
754
473
837
560
571
626
788
554
545
810
476
527
662
759
642
721
656
350
700
792
65
437
695
515
662
555
727
316
676
735
865
700
450
899
568
646
729
661
684
694
667
622
73
674
570
533
513
694
423
876
662
626
584
720
575
594
601
693
757
578
421
858
757
411
654
559
761
462
678
484
465
829
687
715
700
797
575
875
693
610
612
607
453
715
513
449
598
716
556
558
649
748
836
701
658
851
303
505
752
578
686
557
722
544
616
613
714
786
514
632
727
651
640
623
397
638
727
542
560
583
666
400
869
665
725
441
570
667
654
732
833
695
784
805
819
433
948
677
641
598
492
421
325
686
424
279
504
573
686
639
450
877
591
839
601
654
434
730
742
720
540
618
331
767
765
644
554
568
587
501
430
681
652
653
62
312
700
616
686
771
403
716
557
659
639
457
798
880
592
586
673
425
788
730
551
720
555
619
623
649
623
814
673
673
593
428
479
484
726
634
534
710
569
608
389
712
464
947
501
433
519
520
684
546
805
72
500
631
640
498
585
578
678
657
714
473
618
716
661
685
719
851
290
537
645
813
700
169
541
654
563
382
659
925
742
699
617
738
576
718
592
548
507
561
635
294
921
545
525
652
561
609
758
428
754
654
529
483
659
535
655
227
160
627
811
365
374
902
772
537
658
608
702
684
391
411
386
588
594
614
675
770
543
662
505
654
716
405
735
604
712
662
742
789
650
809
250
541
535
724
565
853
436
528
522
613
396
664
707
404
376
634
524
664
956
935
585
715
754
513
409
694
372
844
520
406
653
737
791
476
663
827
751
670
624
708
358
461
756
607
205
670
399
475
669
561
685
763
727
666
749
593
567
338
664
556
423
750
464
661
687
425
648
733
833
251
798
623
623
832
720
484
658
658
758
648
377
445
289
585
440
562
362
427
636
385
480
516
855
501
728
462
526
433
741
598
772
617
591
687
691
809
739
456
606
594
503
577
387
667
573
910
491
745
470
710
603
394
633
600
620
633
581
711
799
673
733
832
721
483
603
749
620
693
630
952
588
483
707
629
430
799
651
634
776
523
761
676
452
861
734
538
283
481
633
705
602
635
478
618
514
677
637
679
523
565
618
619
351
580
735
539
693
866
792
410
445
685
767
639
632
762
1011
528
759
765
487
686
786
663
602
619
694
614
606
614
183
580
461
75
611
663
603
220
780
347
655
675
658
383
783
428
472
715
575
615
515
714
828
599
582
715
259
632
336
548
795
426
591
402
618
546
386
752
377
644
648
866
490
730
749
793
525
752
739
591
483
806
630
494
637
511
605
694
396
586
577
308
733
766
703
371
737
535
837
677
656
889
663
572
586
681
360
508
675
761
500
402
501
770
759
661
576
669
701
708
308
672
686
504
613
672
682
582
639
932
435
598
581
660
606
804
511
496
672
547
257
804
758
610
859
778
743
428
670
547
480
658
904
603
622
482
619
688
653
576
855
705
577
935
707
573
661
658
666
633
782
337
625
291
590
552
449
809
741
642
428
735
517
718
845
750
387
478
706
524
499
541
462
592
685
655
541
462
423
692
448
404
466
631
464
784
833
730
593
524
762
482
562
564
619
712
557
652
485
682
772
455
691
505
613
613
797
405
612
750
585
881
652
589
677
702
715
492
633
457
796
599
608
504
528
558
549
634
422
859
610
629
558
477
677
405
724
635
750
682
743
533
490
728
581
598
671
680
817
568
747
664
411
684
802
654
648
618
628
351
303
474
635
719
634
691
579
350
716
975
545
468
632
789
652
671
565
596
708
682
639
460
336
767
772
762
637
658
579
426
805
637
661
474
505
541
810
552
598
696
620
681
653
380
795
419
709
729
524
631
496
0
510
612
531
868
685
817
607
614
759
983
560
715
611
733
567
406
592
679
377
748
596
721
619
686
556
627
586
329
566
784
677
753
490
701
495
459
92
562
723
627
604
607
751
479
639
583
672
807
649
570
807
607
683
586
514
588
500
805
684
508
666
842
620
560
935
814
755
565
494
336
411
682
627
682
533
806
524
817
345
513
668
653
545
491
533
524
416
786
510
756
744
572
727
693
710
517
725
871
677
714
845
695
657
589
606
638
674
720
489
560
681
722
639
586
405
538
529
679
511
545
573
502
399
829
296
597
533
632
594
454
425
784
554
622
540
801
739
643
482
378
710
732
550
603
357
694
643
468
439
675
558
881
833
400
412
515
200
765
412
535
426
528
704
630
574
730
484
720
483
499
586
895
594
523
782
456
560
612
737
716
610
611
579
577
740
220
654
564
725
671
577
772
700
997
661
631
658
832
753
375
731
616
547
559
309
790
732
710
764
594
549
832
480
452
781
340
753
612
506
614
806
733
685
634
517
632
998
621
367
561
688
957
356
681
743
156
481
786
778
550
441
651
452
728
690
585
703
799
624
694
640
692
728
312
507
560
68
573
706
365
220
709
585
769
592
522
669
407
715
501
453
458
504
761
715
737
686
669
551
880
529
518
626
449
941
593
421
598
565
646
542
844
642
470
430
841
609
764
608
667
657
693
609
356
667
656
535
681
498
530
743
553
694
27
465
579
591
668
664
603
594
663
720
843
762
531
632
666
628
675
667
681
621
751
524
753
528
691
623
811
663
560
810
696
605
615
398
735
660
698
788
689
730
611
830
610
906
292
614
616
551
641
947
762
721
547
519
344
606
651
677
482
498
778
543
656
681
643
646
417
689
609
604
441
370
681
864
592
517
414
526
1001
880
468
476
532
680
855
758
397
492
552
430
1036
668
636
824
736
585
127
644
594
717
666
693
580
611
656
723
680
628
660
605
537
592
754
304
857
825
805
676
575
644
462
697
750
749
648
722
510
831
615
566
244
802
471
536
758
508
433
373
509
747
687
703
286
430
510
602
492
669
614
345
721
236
631
594
726
700
578
634
692
750
751
720
398
240
511
557
740
671
643
418
589
203
563
497
385
710
364
758
649
536
607
489
768
552
215
372
634
677
650
713
549
410
813
566
492
613
456
472
568
661
668
603
642
561
513
795
393
534
934
664
694
373
751
595
398
719
692
694
678
550
676
430
726
737
705
437
811
641
710
664
591
692
514
609
659
262
433
696
655
694
845
532
565
584
721
545
512
509
527
494
762
142
616
467
786
705
994
637
638
238
788
569
776
695
411
713
301
553
593
488
590
538
588
490
675
320
674
713
668
589
742
531
834
721
548
665
517
819
668
516
475
775
637
601
562
612
791
696
862
746
520
602
614
773
682
664
609
338
668
290
528
684
440
603
0
575
432
596
689
336
595
771
625
411
236
589
645
569
805
640
488
560
742
562
759
729
566
641
458
366
742
499
714
629
421
672
614
619
622
632
390
543
404
871
635
498
780
458
381
560
745
478
545
582
635
589
636
565
746
521
604
464
663
554
548
415
717
574
545
516
622
677
814
735
704
521
649
794
597
705
726
521
637
655
483
833
669
279
576
437
585
413
769
568
508
572
496
444
579
584
695
353
470
677
671
591
685
427
565
143
851
291
531
696
716
416
785
393
476
612
576
657
573
705
488
638
641
549
385
800
804
690
701
782
692
667
587
493
741
439
250
444
402
663
542
681
580
692
583
479
772
591
642
691
659
675
635
688
508
699
697
606
632
475
475
625
152
758
917
683
743
416
598
560
623
611
648
374
749
775
502
522
795
620
663
758
537
561
403
580
701
1050
522
378
828
576
468
668
617
379
171
535
541
424
872
668
411
689
600
644
597
435
593
614
734
466
551
519
683
461
724
259
435
688
505
687
527
714
711
406
752
450
489
662
567
848
509
786
638
595
593
709
525
730
387
609
664
537
548
735
693
669
568
703
404
605
653
527
597
669
628
678
612
771
558
542
430
500
668
662
583
574
394
588
746
681
628
363
649
577
645
427
339
848
728
697
130
686
714
841
730
664
688
627
724
607
623
959
622
546
535
789
612
570
546
742
413
785
647
637
733
691
637
736
496
697
555
522
727
400
359
780
719
699
522
798
616
498
441
607
748
828
801
668
487
763
523
746
617
560
588
813
548
616
719
514
722
543
558
673
419
339
695
647
685
702
792
608
597
561
540
677
515
642
635
397
832
451
708
411
663
770
788
626
658
734
639
720
690
828
382
707
657
664
402
814
559
203
844
560
561
459
559
632
0
591
525
727
484
774
50
420
457
550
630
526
726
477
262
583
574
617
601
941
536
684
630
699
902
694
802
539
346
659
599
618
523
582
644
735
742
606
840
459
761
487
724
754
758
440
730
727
805
263
358
607
739
666
492
669
720
847
569
682
536
626
599
392
710
644
645
718
638
601
502
517
872
806
761
864
937
631
0
733
710
603
393
834
331
771
686
512
476
762
391
635
364
524
625
527
660
540
771
644
612
585
526
646
620
645
503
623
630
604
504
508
661
328
743
825
628
509
700
724
541
513
668
517
626
702
669
581
0
574
644
672
567
670
648
668
559
848
381
448
422
735
715
626
417
454
322
662
745
631
933
439
678
684
578
351
740
297
378
503
743
786
623
616
897
534
503
548
201
651
547
686
955
520
392
349
428
394
401
571
619
586
618
648
631
535
523
586
540
729
613
710
637
779
709
608
41
738
405
449
604
793
624
557
771
561
658
638
797
491
575
532
729
814
494
630
564
828
620
342
524
558
623
563
760
354
712
796
631
497
541
504
612
642
771
519
659
565
697
698
324
474
633
819
643
357
708
937
784
593
441
623
551
609
407
612
794
604
643
452
592
509
514
672
652
823
785
778
658
466
495
672
600
459
725
506
763
639
590
281
728
768
781
747
559
569
706
682
345
825
140
703
849
566
568
957
644
526
151
765
720
434
409
688
659
591
808
547
710
443
640
690
556
676
461
630
637
687
740
672
620
502
425
683
499
570
743
511
702
427
648
266
882
642
614
68
658
521
488
820
520
542
587
547
440
679
377
786
811
711
340
780
895
818
501
692
430
602
641
847
695
514
598
807
418
551
354
550
700
608
708
692
438
585
690
536
514
602
646
468
537
662
782
572
649
620
328
166
776
706
467
838
531
650
750
575
785
534
654
726
548
467
634
579
597
588
795
621
589
716
570
695
752
726
601
550
531
244
854
542
514
617
585
702
630
580
737
649
571
646
703
762
415
632
645
319
437
333
610
749
678
594
663
1057
159
483
785
588
442
408
277
796
587
779
649
265
799
368
743
584
496
354
681
429
557
395
702
646
677
545
596
436
754
511
787
431
432
663
745
498
854
497
638
674
611
481
905
475
752
857
456
710
738
822
274
677
586
386
634
568
512
520
524
771
695
642
677
716
667
617
711
822
663
608
657
640
503
693
646
597
817
688
779
866
403
451
598
712
779
392
300
675
775
638
654
518
695
564
354
610
328
728
677
460
474
532
716
466
816
540
730
643
607
534
441
616
600
573
607
733
541
620
557
671
877
518
756
608
511
624
595
42
597
434
664
836
738
691
641
422
688
828
722
471
581
768
468
638
491
321
610
656
254
669
679
629
382
518
608
797
755
468
783
469
489
638
635
690
268
683
712
746
631
687
363
580
866
787
651
850
632
342
667
684
398
487
190
400
621
666
709
875
637
682
682
582
648
531
676
626
669
794
433
680
596
518
819
608
437
502
505
613
633
609
402
623
671
550
589
663
601
602
470
612
383
670
523
441
409
483
639
715
538
542
732
554
481
669
403
677
532
753
652
716
579
656
816
674
638
585
485
811
676
683
763
396
587
731
658
649
660
534
687
592
628
433
877
591
484
735
565
545
558
615
592
554
466
244
614
567
657
528
672
740
648
343
532
627
502
626
879
601
761
228
487
499
418
790
409
592
709
551
338
817
554
636
716
581
740
456
627
428
539
740
673
530
359
798
612
424
856
548
687
731
712
534
396
491
625
569
683
472
1056
434
454
735
308
493
491
701
496
600
551
683
646
664
631
382
636
883
484
764
554
634
496
561
754
623
470
641
277
670
600
657
689
630
534
666
771
530
691
675
814
680
611
740
781
709
607
519
560
0
647
399
567
770
626
665
27
407
428
656
393
732
555
769
671
618
324
625
497
557
880
631
741
462
700
660
563
474
622
569
625
569
681
183
578
593
700
756
614
722
735
747
622
834
669
565
437
460
743
597
421
536
688
488
739
497
754
425
868
628
930
566
728
729
593
548
825
480
472
707
396
626
628
653
513
705
262
581
429
529
770
703
663
352
591
480
640
798
575
661
702
947
667
759
454
553
547
400
769
503
415
810
362
342
677
843
401
677
924
624
524
660
865
605
576
657
871
550
527
744
762
646
173
594
503
507
439
651
469
473
848
563
620
660
276
491
696
351
631
721
545
1058
679
724
514
657
612
542
696
633
514
292
667
472
750
753
382
789
496
869
853
671
505
506
658
758
507
695
548
751
575
782
447
664
657
621
589
369
740
538
798
724
636
888
776
709
752
719
588
689
677
738
737
605
632
783
713
809
374
569
807
565
567
587
728
806
502
601
518
832
656
372
424
979
674
561
425
688
669
589
735
722
598
577
541
750
547
540
440
647
492
567
900
740
589
533
598
626
644
885
573
628
673
789
21
595
612
505
698
349
573
527
525
621
516
340
682
623
684
613
579
555
682
680
432
505
0
655
593
625
792
633
624
891
579
556
686
741
667
283
528
414
506
235
736
694
815
480
423
364
670
692
826
714
630
288
765
710
677
632
658
553
855
624
717
691
557
647
700
662
723
565
820
657
613
667
423
686
598
521
556
501
693
274
788
848
535
663
352
831
734
497
235
717
659
584
559
651
552
820
710
422
676
625
508
661
813
842
697
679
511
738
810
613
724
659
591
493
957
569
831
515
642
597
590
542
893
468
548
411
611
407
439
674
517
808
764
636
600
619
624
423
548
861
567
764
703
514
627
718
653
561
659
629
545
566
662
724
542
559
604
834
642
701
595
561
660
450
698
611
642
532
663
603
403
632
516
304
476
613
749
888
491
416
596
444
654
842
651
554
265
658
786
775
634
717
738
807
690
753
524
503
135
551
529
450
584
682
504
511
589
705
328
420
535
554
412
675
442
463
798
633
753
625
753
561
648
566
819
436
825
711
684
483
724
696
606
278
649
667
577
697
693
801
638
671
609
640
612
748
509
580
635
709
787
823
525
784
694
401
797
595
670
944
668
533
544
491
468
446
631
799
502
715
704
543
476
562
691
657
800
606
539
755
372
600
799
891
595
292
924
594
793
598
419
720
578
557
451
712
564
200
684
569
706
436
635
554
739
459
757
628
447
708
587
730
904
502
517
885
351
776
590
684
597
711
482
685
652
602
695
658
502
983
616
524
752
692
671
771
519
676
516
514
475
739
744
347
648
592
527
667
711
449
399
725
722
440
762
719
563
488
867
486
478
775
447
677
438
647
573
369
688
581
399
427
592
425
822
518
751
704
711
774
389
559
605
556
663
852
601
700
822
735
288
537
576
578
641
258
390
664
618
752
665
299
564
499
449
592
669
526
388
621
666
358
757
599
733
696
608
754
783
734
575
603
340
903
578
694
611
589
581
625
529
605
739
718
282
629
372
473
556
706
506
689
659
467
577
617
568
663
517
535
735
728
303
875
393
307
514
548
391
601
568
716
631
614
546
788
761
562
329
617
642
678
747
690
583
475
748
760
485
667
566
673
336
435
676
589
721
612
591
887
543
623
528
629
534
637
693
815
661
668
403
763
478
796
476
292
807
696
402
266
476
548
507
349
565
332
688
517
666
544
349
670
569
692
800
704
516
290
318
575
759
856
525
586
751
555
313
578
563
864
797
538
593
294
265
619
822
752
512
492
692
709
812
595
158
639
433
620
494
583
565
725
662
875
359
786
677
613
626
692
769
575
520
449
697
592
523
507
544
662
624
891
804
578
438
613
712
420
535
497
364
523
574
508
491
677
615
778
498
432
555
340
703
468
545
718
826
722
568
886
597
198
506
465
630
543
626
540
775
741
755
852
719
424
490
590
772
411
540
724
667
607
740
774
783
638
351
607
593
201
427
837
594
723
479
453
634
580
611
643
461
677
580
776
608
508
469
521
910
574
541
738
716
500
620
687
573
807
770
532
620
863
45
637
702
784
715
745
624
650
492
652
748
791
548
402
455
745
444
524
544
530
558
638
430
610
732
625
463
497
466
561
683
672
740
764
675
631
623
281
481
821
629
503
706
342
705
432
581
548
491
460
998
696
612
254
606
340
557
655
866
346
511
620
696
494
647
226
442
692
763
660
830
590
146
721
610
92
524
478
716
721
716
467
551
678
467
674
615
688
730
645
621
410
532
476
539
814
335
529
912
686
750
148
536
687
578
575
791
537
632
504
742
654
746
567
522
580
653
722
737
760
555
516
567
568
605
743
615
740
484
746
391
556
731
592
316
766
629
359
584
723
590
843
408
553
435
350
618
693
510
705
435
602
372
620
583
452
323
838
439
612
0
661
658
605
481
446
704
672
412
443
642
553
572
591
78
636
629
584
685
759
592
776
542
340
325
611
735
443
548
612
770
604
730
677
521
346
735
430
624
760
752
690
671
477
727
562
523
436
586
555
690
636
687
640
669
331
677
650
797
679
441
769
619
611
843
601
503
471
785
398
628
805
757
576
701
668
881
556
929
595
685
560
555
583
349
559
526
525
682
735
534
742
727
799
0
643
602
539
759
667
317
762
742
838
425
655
0
731
766
663
648
533
764
378
538
560
627
541
468
682
670
776
108
624
486
658
583
439
660
397
925
226
825
652
652
839
856
628
662
473
713
660
683
721
583
748
692
782
696
567
599
679
719
516
820
716
649
582
689
626
626
717
907
568
422
754
639
255
708
744
668
600
706
659
841
359
927
741
858
828
586
700
454
202
312
543
708
697
486
583
749
608
451
530
689
806
401
534
520
647
727
787
587
815
596
840
621
910
596
764
701
658
466
703
247
655
526
708
777
634
633
541
731
530
612
747
456
592
731
731
423
319
781
589
599
592
643
750
522
608
603
180
800
677
537
452
633
799
558
451
827
622
698
357
549
443
513
791
326
825
753
708
645
424
794
744
487
760
645
602
773
597
765
770
767
829
621
911
812
516
630
618
195
107
609
428
630
611
475
625
735
528
389
573
711
399
681
697
711
534
690
436
673
562
539
497
340
335
676
669
440
349
627
476
656
579
335
713
637
432
663
624
713
463
607
678
630
647
517
633
601
809
401
894
649
415
526
513
703
648
296
562
591
457
665
304
609
664
751
257
636
808
491
710
743
671
495
471
494
578
510
654
727
518
769
511
611
583
584
715
432
686
608
725
556
836
691
662
656
519
247
682
656
340
509
762
800
674
657
665
368
633
738
271
510
567
656
503
648
853
720
419
550
619
621
531
673
521
611
743
793
888
734
708
624
672
707
775
369
661
423
392
518
601
618
462
609
541
422
366
752
560
704
611
852
498
796
772
703
535
409
684
670
642
461
590
454
700
507
598
356
554
693
228
559
711
625
627
726
676
476
531
583
413
666
671
521
493
861
627
700
441
299
526
452
607
264
681
779
605
419
555
700
740
945
574
452
621
733
898
575
582
757
551
341
681
592
352
543
772
618
522
389
576
611
504
682
299
512
643
685
805
811
691
749
257
357
771
610
486
604
765
775
586
515
549
158
626
825
478
648
695
510
691
138
391
516
600
970
556
422
559
608
495
733
672
619
326
866
703
212
586
739
487
859
329
563
544
733
622
523
563
443
643
504
414
395
675
685
714
710
465
579
687
523
543
329
457
663
679
731
729
539
277
501
384
695
431
532
603
785
553
616
695
746
414
589
612
580
341
639
398
679
478
538
750
808
766
857
765
354
516
619
630
559
646
507
786
603
963
614
227
823
756
412
498
661
538
663
427
702
551
405
364
739
735
528
494
617
417
544
442
526
675
547
636
527
850
613
447
176
621
302
514
484
702
617
620
380
691
691
225
440
817
714
474
653
598
670
495
885
597
648
640
744
595
80
534
561
0
598
526
714
657
717
867
668
566
535
657
791
831
451
606
653
771
893
505
567
706
547
165
476
402
474
648
741
985
790
509
481
747
430
919
620
503
750
307
484
393
524
739
526
659
678
637
674
743
694
564
592
522
435
602
776
722
59
662
624
610
529
509
523
271
685
630
409
803
297
758
509
691
570
787
414
862
653
731
309
203
914
491
916
531
688
692
349
748
619
655
841
781
649
809
773
703
708
617
552
415
523
753
764
507
447
550
523
598
142
835
552
669
794
694
644
572
746
215
912
744
680
443
770
714
622
387
610
468
501
370
723
651
873
669
667
616
632
666
652
751
789
591
510
220
369
484
701
646
668
662
682
702
851
535
650
708
605
701
932
527
596
715
472
769
729
509
524
752
680
815
575
683
474
765
666
658
476
850
578
556
580
732
595
635
788
456
773
672
861
371
511
853
612
563
844
703
762
507
698
655
629
840
724
732
671
537
885
591
666
610
628
646
596
659
705
174
679
516
713
729
696
753
503
105
427
895
701
606
748
660
662
806
676
401
693
610
802
640
380
760
583
432
837
736
738
571
590
513
531
651
604
533
416
531
689
555
830
682
720
658
357
601
907
577
699
715
412
192
229
469
780
828
311
457
627
505
539
626
597
689
659
692
701
420
777
705
638
689
478
875
601
668
388
496
468
800
575
732
586
662
681
836
455
570
863
491
532
705
476
656
579
649
574
692
491
612
550
725
858
584
776
774
560
770
520
788
44
572
805
239
458
762
564
459
597
869
375
610
687
521
591
938
531
693
602
565
573
603
606
750
634
651
821
671
223
760
798
624
428
751
582
413
574
486
639
681
726
638
659
356
549
519
701
813
563
698
436
145
745
495
499
697
571
640
501
590
553
706
660
580
510
810
489
486
346
718
557
755
708
627
608
575
566
608
531
594
739
715
286
575
432
861
445
680
791
589
686
709
664
604
863
574
461
550
333
774
607
730
709
896
614
603
508
246
616
486
899
702
800
570
637
589
644
339
662
605
609
466
558
584
669
589
561
733
746
668
411
567
317
815
784
669
446
676
579
633
701
507
617
0
706
820
617
634
719
666
594
728
500
477
653
109
687
565
650
591
528
554
768
779
457
659
441
868
378
687
575
990
678
732
509
366
704
715
771
702
402
548
532
746
506
624
925
648
582
551
771
611
745
709
544
737
771
404
509
561
494
647
418
737
524
579
669
564
257
612
339
625
618
530
387
676
890
754
805
482
685
644
485
409
827
768
640
706
287
576
864
460
825
662
456
434
786
428
682
686
564
500
591
572
890
667
682
623
685
434
637
674
420
462
518
650
687
478
856
728
763
604
883
472
718
492
566
325
512
799
440
912
807
498
817
810
593
640
614
535
357
708
667
581
744
684
482
508
710
605
656
540
619
714
797
604
728
705
731
701
553
423
507
570
560
663
665
325
656
447
636
474
266
665
598
770
625
688
547
394
630
693
574
485
519
729
541
682
563
675
578
299
658
539
737
573
630
719
423
491
502
685
627
730
620
466
348
600
649
653
389
548
719
650
825
779
739
658
539
532
378
377
660
629
640
229
513
429
693
701
490
742
630
592
754
251
395
592
797
558
632
827
766
59
476
0
580
664
511
523
770
753
555
633
498
691
575
629
901
527
484
605
421
435
701
765
528
731
731
287
814
610
783
656
519
409
876
713
455
608
809
590
556
709
774
441
732
743
604
784
433
568
618
557
204
726
718
465
508
730
557
439
698
631
512
539
464
545
741
445
718
684
375
762
771
461
660
728
518
853
516
552
502
486
765
593
803
631
776
604
635
702
753
530
372
458
620
685
632
874
716
493
471
425
426
673
771
723
579
528
356
847
788
553
691
725
418
532
682
694
471
578
232
615
447
662
565
693
607
855
604
561
10
552
824
673
702
817
685
802
690
724
568
728
515
433
621
452
738
832
545
627
575
763
576
631
496
576
676
577
505
813
220
695
691
632
376
627
658
734
707
741
453
517
665
496
502
417
497
602
787
643
653
365
634
500
572
539
429
634
458
707
652
451
536
613
611
734
445
690
628
308
571
604
641
654
533
485
514
696
583
716
522
390
514
604
684
206
641
645
618
401
807
488
473
1001
516
267
736
633
653
742
575
612
749
692
313
608
635
139
584
551
559
673
760
468
595
375
591
646
416
658
715
800
690
844
513
453
542
754
643
773
607
697
552
604
438
746
667
650
575
508
284
783
627
623
557
501
302
538
431
442
732
701
815
520
408
408
205
151
535
685
647
617
598
567
244
339
299
557
539
296
885
719
691
370
898
405
121
638
526
580
701
824
740
756
322
596
495
771
781
286
546
538
561
557
268
281
616
829
768
850
722
571
631
754
463
662
583
607
416
733
568
496
435
591
534
499
552
459
384
646
780
514
1007
710
608
690
772
422
562
546
640
495
768
625
448
518
585
630
181
642
711
523
934
532
700
827
464
505
459
454
799
912
560
811
720
732
365
435
537
464
578
564
535
625
538
607
672
510
464
649
565
430
630
705
230
462
749
800
565
617
542
596
469
608
759
679
332
824
580
471
475
545
843
745
491
676
768
481
469
496
252
430
389
426
814
494
617
621
520
841
594
786
324
551
695
1007
461
796
644
437
426
622
860
339
664
766
638
879
417
474
688
476
564
545
763
527
606
807
647
681
722
659
870
646
558
625
601
797
296
618
711
600
908
807
587
464
697
765
605
185
449
432
268
744
648
712
598
705
745
640
545
449
357
473
634
433
631
689
526
697
566
718
900
661
664
652
623
477
489
689
592
0
706
377
575
786
416
485
719
762
773
824
564
593
543
510
660
595
756
549
594
654
273
656
315
673
570
746
579
567
575
504
633
658
760
489
815
534
676
603
594
631
586
551
640
590
708
725
640
606
531
568
303
655
657
933
563
776
810
625
623
411
607
787
476
542
553
540
727
613
649
578
606
846
588
801
801
663
127
716
422
837
586
661
443
583
652
679
708
575
710
527
639
494
683
680
569
549
806
623
599
229
674
686
640
397
393
569
478
750
657
680
623
465
538
686
167
755
532
662
547
501
644
486
599
679
590
572
592
587
654
532
620
849
748
968
800
758
196
693
706
755
499
661
656
696
303
614
529
990
630
424
493
274
564
657
699
554
689
742
572
726
696
529
652
414
521
550
524
907
683
742
692
650
635
820
750
627
683
578
641
727
663
671
525
860
517
402
459
759
629
775
504
760
461
552
631
671
430
799
714
653
612
538
674
614
655
625
729
795
668
338
337
532
599
784
229
445
605
697
565
609
548
559
487
700
608
661
686
470
461
329
826
827
541
608
633
550
568
762
559
619
693
654
770
277
544
625
657
500
419
662
563
505
148
318
512
771
550
586
415
544
496
674
531
339
686
740
496
562
241
521
771
569
779
414
143
676
331
622
540
730
528
544
322
644
821
513
628
745
605
695
699
0
791
411
588
677
595
711
567
701
856
827
621
610
625
798
596
740
646
630
956
477
575
552
1053
596
664
722
519
641
683
889
676
567
509
470
555
627
852
867
721
621
694
716
714
689
494
455
728
519
753
842
615
739
577
196
641
910
695
658
524
743
561
523
349
617
444
572
718
674
607
706
661
804
590
643
453
537
649
726
277
747
695
393
705
599
470
769
530
501
605
598
520
474
540
802
879
730
723
654
591
599
548
515
311
717
302
711
498
355
503
671
477
662
584
504
692
589
550
821
825
220
692
581
614
316
930
574
455
779
531
544
852
619
457
651
539
176
592
685
641
504
634
728
376
518
526
813
590
296
542
526
706
428
638
466
311
691
586
610
574
620
1003
761
78
608
871
624
383
576
543
590
630
600
795
646
575
658
616
823
526
632
666
865
667
821
570
286
462
609
583
736
795
861
456
601
539
565
868
615
552
436
663
247
670
629
729
433
606
622
548
705
420
575
680
852
541
608
653
701
519
800
403
438
649
531
595
626
498
400
533
712
520
689
817
695
511
635
236
587
577
446
610
636
507
654
302
747
738
419
443
466
730
804
143
941
745
496
834
712
473
555
627
718
637
146
664
305
494
466
438
856
596
610
402
709
523
656
557
795
697
710
605
686
448
399
656
607
571
691
553
547
860
575
483
675
864
547
498
605
596
684
567
520
938
603
546
447
677
213
733
372
694
688
758
525
503
259
422
669
534
160
672
711
605
849
557
752
641
574
511
544
698
700
712
732
847
661
724
589
776
571
468
423
627
487
545
234
501
388
487
997
746
607
646
714
761
724
748
741
574
823
621
432
440
548
770
592
529
651
494
666
844
914
803
784
753
602
759
574
600
640
616
719
904
230
598
843
504
603
655
551
730
602
527
853
816
749
762
668
543
655
611
783
782
482
536
665
606
798
452
395
691
834
599
441
504
473
647
686
656
754
753
250
667
644
567
173
630
490
715
520
725
721
417
765
732
655
507
626
266
791
247
602
546
609
577
819
649
817
668
535
535
754
760
765
506
655
662
726
479
491
529
541
887
536
622
567
454
608
573
545
836
823
641
721
828
553
550
573
698
228
631
648
443
602
770
726
642
560
571
762
485
548
425
771
825
681
685
611
703
485
722
931
430
688
628
464
655
571
354
645
604
589
558
529
518
795
420
423
676
474
483
792
646
691
719
806
610
692
691
643
736
295
521
868
638
662
590
699
717
753
706
357
836
622
625
718
801
720
563
669
654
768
571
717
430
614
507
799
646
854
387
669
355
725
664
542
709
532
371
736
582
741
626
636
329
723
448
577
533
426
683
535
635
708
384
905
641
713
652
647
627
572
625
667
654
625
627
669
751
476
570
697
646
655
292
364
868
630
479
392
518
506
613
768
700
638
257
673
707
965
700
729
512
514
596
613
547
682
735
609
499
546
739
523
490
723
735
428
226
380
598
695
650
702
639
659
500
435
717
667
512
629
627
586
760
572
613
585
723
441
525
421
421
542
637
643
674
625
542
628
1000
717
776
642
177
639
453
691
423
800
554
328
678
484
509
584
691
756
690
622
986
769
631
711
680
583
549
747
605
630
575
546
726
615
551
647
484
647
904
611
578
841
465
843
453
629
508
537
642
706
725
744
563
399
551
796
684
769
657
698
546
607
606
435
466
516
632
662
800
538
396
627
496
655
831
527
398
591
1070
450
620
597
74
616
821
683
607
722
649
756
707
440
877
592
539
916
585
588
577
684
500
737
647
559
520
662
794
548
576
687
536
634
659
691
377
662
507
615
56
753
604
766
527
684
385
356
565
592
733
634
656
628
435
706
620
887
0
535
580
712
460
592
818
469
373
697
616
649
664
576
471
621
629
624
547
714
620
534
494
415
775
459
585
750
520
416
772
361
519
581
639
625
390
604
659
637
594
885
626
468
579
552
747
745
458
531
577
453
592
386
883
504
539
838
589
629
668
461
707
584
685
744
615
499
414
744
849
466
749
592
298
560
517
456
648
435
484
733
628
723
586
568
507
631
524
646
584
716
178
631
667
687
589
580
532
575
571
594
720
692
642
732
644
503
626
559
298
740
611
616
706
607
310
731
465
595
436
387
785
577
635
533
553
467
746
590
595
499
780
855
649
686
866
617
657
625
694
636
278
697
703
535
814
357
587
97
412
580
538
657
628
475
591
458
634
658
797
562
808
634
849
820
689
518
657
612
677
724
777
647
707
710
705
467
615
682
769
525
617
864
890
524
516
589
418
517
484
492
538
618
504
353
395
792
493
483
371
561
659
890
415
467
343
465
567
624
548
514
407
765
497
581
737
273
645
725
693
643
582
765
861
757
848
765
483
784
626
722
93
727
689
210
670
611
761
301
748
814
809
255
613
654
567
200
619
672
576
491
688
722
548
668
427
882
709
676
848
721
147
583
712
667
574
748
413
630
468
781
578
614
630
664
588
682
373
319
243
446
538
683
610
529
567
511
324
235
632
592
520
614
374
803
651
667
713
614
276
623
457
613
563
767
851
723
674
599
494
621
737
562
620
738
687
493
665
637
574
710
198
677
529
852
454
568
580
685
685
577
868
496
422
535
625
620
403
576
528
667
556
772
692
588
502
794
491
680
432
684
582
501
497
538
509
649
367
628
850
513
727
593
543
643
658
572
830
587
574
587
835
786
448
714
689
652
156
898
500
581
373
529
627
501
549
662
596
658
463
626
515
283
640
614
471
656
722
645
671
599
754
559
527
347
439
427
700
945
625
632
797
652
626
775
453
545
0
538
734
551
723
745
574
540
556
766
351
499
381
513
674
469
720
963
615
705
595
338
478
743
684
542
536
689
712
653
613
693
679
724
478
587
917
508
535
583
661
671
650
260
957
435
504
308
152
649
286
481
330
630
533
702
609
643
651
428
768
507
676
355
711
447
559
422
564
641
522
486
659
503
680
695
445
523
479
565
501
490
661
693
793
655
692
676
638
667
697
638
840
368
418
461
715
286
614
546
587
480
563
748
608
477
847
705
692
704
310
601
508
426
693
582
602
254
672
343
745
623
840
585
738
555
549
589
816
609
440
698
566
565
578
842
596
789
752
615
500
697
459
866
450
699
828
575
265
551
703
558
428
638
674
733
467
579
684
578
552
685
465
401
745
414
598
743
728
640
625
696
707
686
460
611
510
770
564
703
687
597
855
716
677
517
512
519
777
641
730
124
514
478
487
845
670
637
746
685
686
675
590
406
500
685
659
574
724
188
457
484
672
667
734
715
587
606
669
721
673
638
597
457
813
556
561
683
724
575
751
409
524
749
531
747
750
870
536
422
574
585
595
877
519
461
637
645
517
479
466
643
578
639
596
549
849
501
803
877
883
566
440
561
664
417
646
502
277
544
556
427
485
359
783
773
571
615
634
572
459
630
689
681
599
613
827
777
844
485
609
747
679
597
500
470
367
666
796
629
302
275
248
826
685
591
653
452
704
664
415
594
778
7
626
520
656
644
549
329
693
690
539
668
826
519
390
428
91
606
297
611
459
684
698
696
807
642
839
888
521
620
720
1062
701
388
492
638
781
571
721
687
631
624
591
588
609
533
601
573
435
645
717
558
710
437
689
592
714
648
745
627
534
507
551
638
584
677
541
767
717
693
677
632
676
671
950
422
882
532
735
531
621
354
903
755
423
680
611
450
589
544
594
382
694
418
537
517
655
749
670
631
793
767
650
382
777
478
670
688
573
655
520
730
589
475
630
762
347
530
822
597
809
860
630
470
769
577
499
749
748
738
804
690
666
719
580
599
633
564
686
544
682
549
569
776
458
509
534
359
672
463
721
745
460
538
521
222
580
768
681
396
651
372
621
771
610
585
470
414
482
586
531
583
287
630
737
474
497
661
584
561
591
448
652
713
928
695
556
508
551
543
526
528
690
526
843
570
810
540
657
861
540
740
326
594
530
341
740
378
647
513
711
567
716
545
602
752
620
834
593
574
724
548
587
714
460
658
722
662
510
359
574
294
557
642
858
504
520
598
573
622
469
718
648
828
576
636
540
624
557
747
577
404
510
656
699
678
418
624
658
566
550
276
670
756
767
804
548
492
492
783
636
924
324
560
678
745
608
542
604
560
514
678
687
621
892
882
532
713
556
539
512
828
614
632
479
379
862
697
491
606
534
464
672
733
540
840
733
588
225
677
665
568
304
563
677
593
582
719
735
526
617
626
606
530
715
463
592
663
672
837
701
648
496
898
698
626
548
692
717
412
559
930
781
700
588
703
728
753
786
549
486
536
504
556
306
71
517
547
725
699
394
555
847
528
686
558
794
467
347
697
689
429
406
694
554
461
652
568
726
546
512
889
653
700
684
694
493
434
647
533
143
310
508
706
603
678
466
458
722
670
670
374
752
429
680
596
699
452
483
725
614
508
717
731
545
684
657
574
569
733
632
656
723
699
457
283
319
547
589
642
787
738
481
510
466
376
984
599
824
757
495
622
658
624
825
682
637
738
595
649
441
731
726
681
566
562
742
736
686
420
708
471
639
725
611
670
772
638
602
589
473
833
432
491
687
375
804
450
545
597
683
189
488
745
576
569
571
618
503
642
440
826
581
600
545
789
633
604
616
733
347
619
570
627
520
437
663
663
360
629
529
601
440
625
693
726
482
968
533
585
530
770
1004
702
663
758
676
556
791
657
469
414
537
722
618
698
696
707
814
389
610
683
410
477
640
427
960
611
624
370
823
642
439
634
693
666
731
666
590
501
757
619
555
688
623
580
685
540
716
632
555
619
557
672
350
376
579
1155
440
733
529
579
618
877
849
768
509
549
582
574
613
465
460
611
539
287
619
783
497
635
484
720
492
305
503
554
669
437
411
26
205
654
646
551
491
605
665
164
600
642
669
635
762
572
550
793
590
722
651
584
731
959
603
227
643
573
252
537
487
126
295
824
756
183
607
350
467
704
432
628
562
610
436
466
723
572
480
606
661
792
537
613
710
594
895
656
650
325
603
596
618
581
632
660
581
443
543
446
559
370
660
696
446
740
697
506
683
858
374
551
657
540
381
482
537
605
771
591
404
486
678
534
638
778
640
554
733
617
269
514
675
589
503
570
755
555
700
816
599
441
743
606
722
707
531
412
721
759
693
787
656
677
725
634
754
624
578
658
646
814
614
820
594
718
527
719
618
642
605
644
464
667
438
642
496
677
417
437
819
440
676
654
635
708
770
362
772
684
547
411
526
636
704
728
695
721
475
710
738
786
635
633
747
491
682
583
633
745
505
675
600
576
595
599
546
627
677
661
771
500
522
759
679
835
732
806
488
612
637
880
662
688
712
605
634
619
679
577
695
653
754
570
601
545
685
447
582
826
387
655
740
564
724
561
548
474
556
523
501
618
483
652
625
687
570
502
556
579
731
470
658
597
671
661
680
590
746
429
542
695
592
593
686
723
282
595
471
588
136
777
977
470
604
720
661
602
525
627
524
720
229
624
645
688
607
614
424
731
610
387
132
338
542
805
411
556
480
744
771
574
401
475
604
531
666
320
765
500
576
711
419
513
594
515
472
395
646
657
631
473
639
590
450
707
546
442
664
853
632
693
620
736
834
669
593
297
775
473
561
630
723
620
654
648
759
608
587
642
515
620
698
709
195
635
651
475
747
605
801
311
260
529
201
516
635
509
625
453
657
673
579
596
739
522
610
571
667
592
791
534
722
656
723
557
701
457
396
612
679
580
698
711
492
447
871
671
281
623
381
664
542
491
700
959
563
493
504
530
722
639
695
271
878
845
681
516
750
616
635
530
362
597
497
465
572
708
424
833
918
390
610
351
682
525
569
685
642
525
502
689
464
735
730
579
571
663
566
503
400
878
624
581
747
567
714
804
567
526
654
698
574
633
749
638
598
556
308
584
570
523
590
676
440
506
427
109
651
653
721
467
728
701
642
856
577
393
586
790
570
650
467
563
631
691
707
674
529
813
696
790
460
819
768
609
731
729
590
552
666
691
641
409
725
795
411
635
620
390
570
339
694
440
784
681
717
487
672
626
695
488
716
861
363
549
598
805
773
525
648
0
567
700
491
399
626
783
783
663
757
723
755
625
671
539
566
722
529
680
483
651
945
597
773
356
493
488
699
623
794
644
612
627
463
438
658
600
477
863
432
65
370
726
675
666
611
549
681
406
681
611
408
509
570
529
395
725
872
788
740
516
620
530
721
399
520
437
879
703
631
603
535
463
587
642
602
707
783
752
481
451
697
709
694
659
520
682
405
293
769
673
415
426
637
458
733
624
602
846
845
444
574
565
518
602
649
439
85
376
826
365
557
640
526
604
644
435
580
562
575
759
586
428
655
862
512
791
708
599
347
679
304
732
593
692
870
697
608
422
214
797
671
698
777
766
507
775
570
803
876
328
630
745
543
619
634
862
567
605
609
772
514
514
1114
693
692
676
616
691
794
616
533
701
548
793
746
343
551
635
417
495
680
483
652
615
617
716
779
678
481
445
791
705
723
542
540
357
448
869
722
615
408
617
430
705
689
693
614
581
590
357
590
621
582
433
680
849
560
581
818
551
692
659
801
647
629
436
218
667
686
735
432
776
521
585
644
657
442
651
529
530
599
654
592
726
932
742
497
685
838
659
614
655
651
788
559
262
613
819
766
590
679
631
626
589
511
443
710
384
535
468
553
699
894
697
551
394
695
630
492
240
850
644
654
644
514
623
815
640
585
657
668
442
722
906
314
884
631
570
721
626
347
700
788
598
442
460
828
677
709
594
487
388
580
382
747
724
380
713
577
880
588
763
57
689
304
505
706
408
658
831
709
1075
857
597
577
432
683
526
748
312
51
786
446
842
846
578
505
819
608
529
549
708
580
876
769
642
330
478
623
808
484
567
487
802
634
271
628
805
522
471
698
662
685
890
573
622
519
715
466
464
754
767
403
323
544
1062
653
808
717
936
423
617
459
636
859
602
736
715
737
671
389
649
754
814
590
688
694
361
907
500
539
343
739
650
551
693
762
420
721
714
686
950
813
680
720
775
625
705
548
803
564
294
584
709
643
639
491
841
477
574
683
749
399
543
573
690
854
471
760
529
644
664
725
621
556
700
342
581
597
620
780
584
556
476
755
375
524
592
569
509
812
565
415
554
681
507
615
798
632
626
612
846
850
730
484
326
648
457
565
744
529
579
789
696
634
532
523
980
530
730
826
534
792
620
522
513
662
520
731
627
490
617
766
507
494
521
506
503
538
681
795
425
302
662
556
792
556
478
487
607
254
462
553
639
669
640
701
714
716
868
569
760
254
791
351
561
619
574
370
690
525
667
430
559
520
387
700
679
352
896
599
602
654
473
529
782
635
762
846
599
152
371
769
844
500
804
485
747
563
590
320
690
529
596
599
709
732
651
656
694
850
904
722
499
762
640
542
680
287
587
603
747
732
435
249
500
584
594
741
145
635
814
583
571
707
730
443
707
668
802
478
636
625
686
668
688
392
720
424
575
632
212
733
818
601
509
590
712
644
244
686
639
652
628
431
735
703
581
649
301
633
523
574
282
620
745
222
419
429
524
472
726
507
626
720
465
645
720
624
778
523
624
267
524
371
825
491
590
873
508
782
527
631
644
812
552
693
680
645
631
718
604
581
599
286
741
714
578
608
678
503
336
597
610
858
538
479
572
560
899
798
661
721
508
637
719
530
488
476
631
645
640
770
703
523
587
484
530
667
609
462
606
374
14
806
473
842
700
619
634
516
620
600
565
597
542
383
551
730
638
764
510
704
695
494
582
506
776
517
616
521
568
771
698
620
761
659
463
320
683
584
565
625
686
660
780
665
535
808
505
654
678
592
430
742
533
502
337
413
611
636
756
626
399
567
731
724
801
712
429
592
521
561
558
709
660
638
450
762
350
695
733
551
412
216
823
564
574
619
633
552
538
604
528
686
556
518
533
701
605
609
591
713
543
678
639
941
663
645
420
664
594
682
521
497
410
613
312
737
774
641
842
557
674
717
739
826
656
392
582
318
870
612
561
659
561
689
621
565
711
607
680
556
495
633
678
399
740
562
0
501
658
733
511
663
670
535
700
670
537
329
596
494
697
672
602
725
658
667
395
729
408
727
622
535
604
670
539
771
693
569
681
603
593
653
504
633
801
321
849
789
483
660
472
621
427
433
634
411
667
403
505
663
802
536
708
714
453
547
562
480
462
611
613
849
597
396
489
748
561
783
838
880
437
585
557
745
359
712
594
724
704
535
734
669
565
577
665
421
517
757
464
260
590
530
417
577
592
875
456
516
528
374
819
715
683
732
378
714
507
637
370
855
471
629
732
613
432
350
523
732
602
562
695
742
774
782
643
612
267
390
845
456
327
610
559
347
685
619
658
539
545
723
589
626
511
804
458
762
599
569
749
545
499
405
747
700
588
539
539
583
592
658
581
761
668
650
487
644
564
505
674
462
886
775
736
767
618
671
868
575
640
399
549
856
591
203
784
836
733
417
751
761
661
670
769
656
322
497
620
557
508
809
730
603
645
513
439
500
661
516
566
659
653
471
264
817
679
586
530
486
856
717
683
479
674
556
444
436
833
900
630
533
602
673
571
475
536
696
754
737
554
662
566
242
639
452
709
412
528
560
587
719
514
441
490
658
794
452
603
619
372
641
677
637
331
622
651
733
430
678
404
610
650
546
534
740
834
817
708
775
299
467
634
185
493
484
459
614
384
735
356
583
554
563
639
359
607
618
392
593
584
557
694
559
654
623
639
346
639
784
584
427
715
788
669
936
595
605
585
398
603
457
944
578
883
627
484
747
693
622
622
680
582
704
643
736
646
706
773
579
587
693
582
843
759
537
542
631
804
492
322
541
870
815
681
632
586
798
591
672
726
642
678
558
643
529
716
639
536
534
584
651
720
502
885
515
726
643
785
737
470
535
721
543
759
557
555
594
690
598
739
669
804
674
697
846
405
694
331
601
682
599
741
469
446
607
709
666
345
705
621
539
705
693
381
589
773
691
234
582
420
550
486
732
437
631
691
805
454
503
690
617
491
591
742
596
339
630
727
535
427
700
726
782
560
705
596
599
597
632
342
581
368
631
627
613
833
1102
479
575
555
770
381
507
501
818
515
442
626
541
0
530
721
408
582
565
551
611
530
451
561
480
664
573
599
509
927
672
775
337
528
447
582
650
570
664
621
650
702
729
415
465
614
578
686
697
665
482
530
554
745
567
704
702
287
671
542
757
679
804
563
439
658
702
694
439
974
574
584
719
510
518
801
871
646
539
608
784
817
473
755
616
596
588
606
563
545
603
521
618
733
487
804
292
619
719
683
574
369
719
707
723
536
782
613
477
518
356
539
515
563
560
381
631
421
689
679
279
802
665
495
640
625
699
781
396
671
814
488
694
797
95
521
174
802
546
448
668
588
526
784
570
688
559
429
850
374
703
576
786
564
459
388
761
590
710
603
461
640
701
595
480
821
547
666
418
410
340
653
384
726
452
504
572
924
832
680
673
238
692
610
509
804
745
715
646
577
568
698
624
824
758
418
574
499
700
251
550
791
690
328
480
573
445
678
685
651
615
486
701
543
715
499
615
243
445
692
849
566
556
561
462
597
420
697
588
521
558
204
559
737
550
483
713
706
445
719
706
240
617
532
819
485
557
270
703
449
597
640
0
520
512
400
748
436
827
508
599
381
362
599
578
677
338
573
386
698
527
554
273
483
532
678
439
625
617
619
647
596
724
437
459
272
760
623
686
407
523
820
685
675
318
567
597
490
564
601
513
312
747
577
665
458
676
499
509
811
506
653
656
639
53
414
848
632
366
768
721
858
745
694
663
454
307
500
786
478
405
660
504
851
904
640
844
264
694
604
538
614
392
708
215
532
607
573
914
478
737
680
651
630
509
593
740
433
533
659
581
877
527
576
644
532
637
393
622
747
446
485
652
833
560
702
427
479
644
495
694
755
644
548
187
651
651
464
632
550
720
664
705
586
757
716
767
802
412
517
439
533
789
549
402
615
653
561
572
575
472
802
618
532
770
697
595
764
610
544
745
621
733
564
635
728
657
668
579
600
556
869
446
595
546
620
789
740
817
666
629
703
601
763
614
576
494
457
469
710
273
516
730
212
662
655
661
566
771
654
606
542
542
629
518
668
551
669
678
342
628
488
546
564
787
420
733
655
859
420
545
787
538
555
638
702
554
630
781
626
578
636
517
630
602
782
801
562
427
594
573
683
734
572
645
598
696
692
650
523
752
644
759
173
578
624
307
572
826
382
577
567
688
368
456
570
716
606
749
407
428
585
754
713
649
548
616
412
686
366
806
400
645
319
534
671
354
427
557
689
122
533
710
540
507
690
793
753
708
596
717
287
324
801
694
718
640
716
921
712
518
706
542
812
548
801
652
510
697
647
692
437
752
831
219
528
658
572
581
429
479
539
718
535
585
480
685
622
489
586
815
533
911
549
662
584
672
831
548
610
514
94
542
682
598
783
628
457
708
647
918
734
674
606
500
640
632
679
599
528
568
244
697
744
601
736
715
563
533
942
403
743
681
664
381
634
633
656
750
583
418
389
553
776
577
594
277
681
344
496
647
701
844
548
587
562
703
736
610
877
570
603
540
863
658
541
715
356
713
595
830
0
551
697
529
556
618
627
647
681
682
607
540
784
524
658
466
517
507
530
682
535
545
619
650
466
717
879
506
715
661
389
542
499
734
585
577
431
550
678
782
777
614
548
548
279
421
631
712
523
607
593
597
634
798
662
794
585
415
443
423
678
630
320
692
702
397
649
605
757
602
771
639
560
587
624
707
362
743
969
456
627
652
682
398
477
729
695
759
479
495
709
654
725
579
670
544
142
584
434
563
696
558
649
521
721
535
776
833
658
528
528
770
636
401
836
685
529
631
479
812
536
669
643
816
612
646
704
723
820
739
808
625
637
186
703
557
732
601
458
646
598
456
584
526
601
514
910
387
704
600
499
771
698
595
614
498
667
537
586
463
289
413
575
483
764
749
726
677
582
617
594
535
447
577
162
590
709
719
447
626
196
715
604
704
879
637
492
539
600
678
558
331
559
776
808
695
636
630
732
379
768
649
786
828
581
629
615
968
696
714
651
840
696
683
153
676
500
522
527
655
457
516
826
714
599
181
649
708
736
666
604
574
203
480
725
817
645
245
581
630
666
391
421
444
672
823
551
654
461
778
438
841
493
614
615
584
561
477
587
625
584
680
539
384
576
638
611
768
728
559
585
823
542
642
665
471
492
660
644
696
862
810
666
769
590
649
638
613
832
648
558
730
743
662
534
521
552
627
557
797
894
736
429
452
643
639
410
581
485
440
580
604
618
603
359
672
560
818
657
707
809
446
596
622
550
619
482
769
676
608
496
439
677
469
487
679
528
545
570
729
645
596
633
628
400
579
507
205
342
759
800
666
744
714
641
581
467
770
686
567
631
311
344
603
674
480
798
548
268
606
595
523
564
741
595
549
449
582
653
639
618
670
708
662
549
330
478
481
563
654
652
740
602
681
367
359
450
793
570
774
762
475
773
367
525
406
747
616
663
747
322
764
472
697
387
608
517
391
390
502
405
658
771
745
824
623
485
557
582
493
688
578
676
498
363
406
439
645
432
535
637
391
744
716
500
671
584
575
679
943
676
717
709
739
892
651
452
425
669
839
814
612
800
671
676
142
758
767
660
581
604
438
503
732
740
721
721
568
623
717
518
402
602
558
462
535
638
659
655
467
628
572
532
591
746
477
529
703
560
713
432
596
676
684
792
725
583
563
702
580
772
547
764
474
734
541
452
580
556
769
582
521
364
719
752
0
639
667
531
455
665
576
540
752
621
645
658
692
364
664
533
644
741
645
745
440
626
657
0
452
707
358
622
568
638
591
638
784
490
511
682
642
776
515
677
533
684
461
196
840
418
543
579
607
683
476
600
638
718
705
609
686
244
443
645
286
645
536
680
693
517
543
706
507
484
533
641
614
379
456
783
658
389
795
681
608
285
716
580
398
525
774
317
663
639
596
391
601
621
608
842
534
591
788
599
612
820
710
507
589
510
761
748
823
673
535
660
523
42
541
479
906
388
635
449
645
755
587
612
50
678
747
819
749
554
634
454
674
490
341
538
662
893
691
615
641
559
559
550
634
603
605
788
652
746
735
92
433
622
630
984
488
825
610
528
593
548
455
671
867
644
412
387
881
507
773
526
448
592
619
474
562
0
709
419
531
394
747
690
723
643
339
542
512
597
731
642
293
622
753
531
880
721
711
503
363
658
618
732
544
679
689
411
367
759
489
767
753
752
931
614
371
636
485
557
341
670
595
637
855
464
888
798
610
496
725
950
647
751
359
775
595
780
586
479
889
663
630
788
497
490
514
837
796
600
706
434
637
652
721
730
517
788
666
424
764
384
757
802
769
519
896
657
731
466
689
742
269
777
540
540
411
708
784
607
698
691
620
422
619
334
69
298
653
232
525
603
803
736
563
503
248
697
288
551
80
638
716
680
713
644
503
888
703
371
652
547
722
315
763
588
458
512
347
675
558
585
630
641
521
915
375
448
622
602
692
618
737
381
569
477
435
597
591
633
779
658
747
195
634
748
471
571
760
787
676
465
765
503
569
562
754
208
578
491
266
662
726
771
613
331
701
612
465
723
480
462
537
775
978
536
659
448
844
805
470
578
586
471
708
740
552
759
625
387
859
808
525
566
743
772
588
320
673
382
521
942
692
595
1047
511
645
709
627
609
572
598
480
901
725
525
600
517
100
657
180
721
720
710
596
669
636
483
601
453
627
491
564
415
745
321
591
688
702
364
610
523
633
780
607
424
684
504
689
617
981
528
457
671
462
665
723
620
418
404
243
745
410
480
536
561
684
376
338
771
842
26
641
727
793
391
504
657
634
609
592
705
758
396
724
446
726
807
629
678
519
793
476
610
756
429
624
870
734
574
829
679
565
426
852
479
835
704
534
830
795
558
689
616
541
271
443
430
647
897
775
676
752
568
619
390
437
474
760
515
539
498
544
643
735
508
661
675
499
643
351
481
577
475
724
894
671
415
518
494
703
954
803
914
528
705
679
586
624
560
812
617
678
653
609
953
580
598
466
710
618
681
534
67
270
667
636
172
786
488
610
239
755
656
662
876
608
633
544
723
468
418
890
603
377
687
538
659
680
686
386
660
490
658
627
803
560
769
460
607
374
795
683
475
329
481
455
364
825
745
515
745
665
625
531
506
609
446
685
0
531
563
519
430
743
602
593
376
564
683
424
349
770
521
465
675
424
704
737
612
665
737
431
623
547
573
347
985
681
550
654
553
815
478
53
604
965
680
484
509
719
562
390
740
460
589
652
917
296
938
693
633
681
564
541
534
687
495
637
651
470
443
606
606
584
736
473
660
462
749
619
649
759
669
518
670
340
541
723
663
303
553
503
663
695
594
550
668
667
701
458
595
621
283
735
617
600
873
602
607
540
706
609
363
44
859
456
730
0
582
611
625
837
658
490
601
755
476
696
395
419
645
666
542
418
633
263
609
743
683
680
571
468
658
894
678
785
570
718
683
622
732
639
406
440
772
680
379
786
331
784
557
750
683
586
793
379
758
638
631
213
540
595
521
0
556
523
781
624
657
723
508
798
830
116
674
292
427
553
724
573
643
545
473
491
656
662
523
716
286
732
601
701
464
592
601
560
764
555
694
721
336
589
649
590
543
603
422
631
640
600
513
885
702
624
719
547
573
560
705
911
845
722
268
723
609
702
582
701
784
271
771
495
804
388
663
624
762
723
755
755
705
754
465
692
344
738
0
613
355
694
666
757
493
409
406
759
638
611
747
540
776
743
649
776
633
379
279
501
800
611
723
282
577
520
666
602
555
606
507
725
453
645
844
220
748
607
600
678
484
783
815
736
418
528
542
689
426
215
242
458
337
629
500
773
791
708
654
455
696
556
700
681
643
666
608
367
604
591
234
806
734
731
502
663
709
656
753
662
471
496
606
628
771
588
730
659
340
505
873
645
677
548
623
740
755
333
801
616
703
619
570
636
477
668
474
669
517
577
931
871
687
534
667
733
564
626
693
716
764
639
738
499
501
382
640
498
615
493
487
358
645
245
446
504
662
421
709
0
631
711
534
433
240
465
528
425
586
452
509
506
634
442
423
882
449
673
589
499
654
669
427
533
626
781
653
629
467
691
747
334
638
822
697
410
434
721
283
523
712
591
373
509
554
683
546
359
428
611
465
692
526
411
509
603
454
638
604
637
482
577
539
617
644
822
585
610
723
770
914
471
717
566
516
336
512
665
666
608
472
344
797
776
801
473
301
668
628
463
519
698
670
553
517
336
624
556
646
811
587
666
693
647
748
741
580
643
911
447
381
606
478
485
624
837
776
575
589
623
613
393
667
587
505
606
507
757
392
527
747
398
651
882
442
604
363
495
434
640
596
468
665
268
729
757
901
608
483
899
476
716
505
656
483
772
641
784
650
488
703
304
753
663
720
560
767
377
504
571
643
908
615
519
340
680
639
608
586
690
846
678
670
703
757
532
548
541
407
617
597
548
728
514
728
450
726
448
733
645
728
530
597
862
402
699
793
726
727
333
557
743
664
576
541
679
375
682
326
625
670
458
515
630
851
607
640
769
585
540
681
649
511
743
549
603
491
722
616
362
518
525
717
779
690
313
842
1054
722
748
698
574
494
554
351
728
528
424
753
828
542
588
645
356
632
226
599
737
455
654
271
684
825
633
626
500
525
485
272
453
538
318
706
568
639
259
479
842
806
352
677
553
592
798
824
642
427
573
401
422
693
770
659
588
257
657
320
688
516
558
705
746
336
616
369
127
728
557
449
403
781
636
667
557
686
607
596
903
403
603
534
465
628
667
377
567
740
508
703
525
683
685
486
858
750
547
581
691
753
778
741
673
534
463
769
497
735
731
748
701
569
509
482
605
588
598
507
442
702
502
470
379
165
355
698
277
550
682
247
681
564
710
837
365
460
398
416
234
764
755
441
620
683
482
544
645
720
532
471
619
591
534
336
683
603
618
604
781
581
652
262
612
708
556
597
447
821
615
495
397
573
523
288
598
380
766
539
753
752
759
696
514
607
614
779
468
585
556
465
857
917
550
739
266
798
739
932
506
530
521
582
447
549
564
580
599
255
562
353
972
603
744
364
778
535
605
771
766
564
707
620
755
442
370
758
538
700
415
571
638
648
690
510
527
715
485
570
654
468
566
828
548
785
498
786
751
834
188
911
492
47
395
500
901
602
657
453
570
757
684
535
430
551
569
753
508
795
605
891
624
659
585
606
723
736
775
672
516
795
782
459
829
503
503
929
636
459
532
740
597
529
635
728
750
594
400
699
547
788
713
658
350
606
413
589
514
414
684
543
794
687
788
602
614
266
606
748
573
607
603
521
477
377
185
648
616
578
660
407
556
508
497
612
571
647
444
449
552
788
682
518
567
572
840
550
636
331
660
615
386
627
921
548
749
282
838
610
484
762
487
529
656
611
220
464
828
796
565
500
483
784
821
628
669
496
404
672
739
500
622
716
540
577
719
602
543
678
688
747
545
664
506
664
437
379
815
950
549
639
597
602
571
549
843
454
871
498
957
512
707
721
347
668
578
520
783
677
582
631
995
471
521
546
747
646
640
887
794
613
865
579
570
865
641
686
591
506
854
844
909
624
692
804
563
494
526
453
496
679
284
871
687
727
687
448
597
434
458
665
542
272
524
466
346
809
664
383
366
561
646
552
453
753
779
529
656
773
729
661
750
595
696
671
609
648
501
535
389
581
590
587
529
691
626
735
531
278
528
812
445
673
565
735
521
630
644
676
479
332
604
678
632
822
804
288
474
681
812
625
698
655
564
128
760
659
300
549
382
664
547
526
633
707
774
297
719
594
838
485
847
917
599
707
639
359
658
578
377
408
664
780
595
680
439
752
517
679
534
680
649
584
524
842
859
781
557
726
447
770
431
752
680
923
630
463
544
604
583
655
682
812
635
716
633
647
443
745
548
738
656
832
629
591
723
645
573
696
562
417
579
677
629
718
317
652
327
721
921
664
598
834
713
839
607
592
545
742
434
555
565
634
700
689
429
398
590
540
354
492
578
677
687
372
604
704
601
296
607
462
497
692
873
623
828
765
609
689
616
753
567
711
517
796
744
562
764
640
888
671
721
809
600
678
619
711
557
616
733
507
586
650
652
556
397
707
788
590
565
546
840
517
826
695
362
704
777
564
738
697
738
596
807
794
730
445
754
690
255
604
718
597
775
233
561
604
701
548
782
782
636
727
621
724
643
381
790
441
582
557
766
736
835
635
617
684
878
960
781
377
598
688
662
516
652
719
844
423
402
582
663
356
483
551
500
385
658
540
319
693
578
512
593
765
575
465
637
114
803
507
434
305
977
804
483
706
503
636
771
553
519
670
565
708
670
405
890
817
617
629
503
602
414
500
638
513
793
671
394
585
536
744
541
696
539
922
741
605
595
683
519
600
566
512
558
259
434
847
470
614
923
546
785
795
551
684
820
828
776
717
679
553
479
574
779
598
619
597
702
470
583
408
608
429
700
385
524
647
671
690
527
476
729
669
548
640
646
438
439
791
640
612
748
485
437
277
574
623
870
470
720
639
548
670
428
893
618
317
533
365
542
572
576
469
511
611
785
614
690
692
729
393
728
436
509
606
607
411
664
629
631
724
327
597
542
675
648
734
802
741
700
600
515
889
655
763
582
755
649
485
439
697
643
664
607
418
875
772
462
290
689
725
599
668
792
695
556
840
539
152
960
639
666
839
380
684
726
382
580
466
516
816
622
537
825
216
283
870
889
613
682
407
550
736
223
746
675
512
836
591
623
767
513
853
951
614
679
260
342
687
635
284
856
665
466
731
516
652
564
845
618
641
533
839
575
557
277
674
612
651
542
627
555
982
666
753
586
366
575
634
644
465
834
747
289
790
458
670
363
630
456
459
479
855
584
428
654
846
421
597
550
888
633
390
625
544
680
622
777
758
430
513
1405
555
485
707
602
888
496
766
341
389
401
847
559
585
673
671
705
305
643
614
438
413
666
463
642
487
685
702
748
676
547
985
506
715
647
614
651
547
554
495
927
828
823
905
701
616
533
720
724
548
685
458
709
518
547
32
523
645
768
823
553
688
796
702
386
704
321
0
521
714
643
738
745
490
773
47
486
657
471
653
668
614
541
639
584
299
666
515
667
628
560
669
832
464
548
0
514
444
519
567
587
0
526
605
744
547
486
855
522
447
621
235
501
841
544
674
694
377
665
563
482
767
363
591
664
634
416
192
712
654
206
808
632
499
643
783
648
513
593
535
720
536
683
618
723
551
692
681
591
655
757
877
384
688
553
840
666
602
540
450
656
719
783
534
695
625
318
699
361
717
615
674
558
654
828
533
621
698
539
602
667
943
560
690
632
523
728
749
620
652
750
760
770
989
402
327
731
699
455
658
645
865
867
407
608
420
533
572
593
651
807
609
447
388
307
639
873
671
566
418
310
768
610
495
729
508
511
429
430
380
571
653
581
569
863
223
732
345
736
906
567
687
626
732
659
452
318
782
691
587
449
747
724
547
866
627
279
520
746
720
556
612
427
543
755
590
629
585
525
402
617
605
732
538
837
863
495
441
336
638
689
524
598
434
447
581
540
735
670
684
717
487
793
507
648
439
708
274
677
804
615
747
171
633
477
639
769
771
320
652
678
711
413
538
622
616
770
739
739
733
435
921
739
480
533
530
631
563
498
673
821
581
749
699
446
527
650
650
760
702
608
739
635
505
781
380
355
611
553
761
593
437
285
609
544
438
622
587
658
801
470
661
283
596
548
510
621
350
645
736
810
674
528
748
785
655
685
814
483
1015
591
808
673
610
699
618
773
577
331
482
697
884
777
419
714
557
119
277
543
707
661
716
553
569
761
620
796
781
745
560
511
549
1011
728
905
434
615
641
576
728
598
560
659
440
714
852
581
681
708
595
363
606
633
795
740
417
835
287
720
787
688
605
744
629
639
482
836
789
532
690
737
424
477
699
450
588
659
579
553
677
770
758
617
610
659
490
333
771
724
996
629
416
526
480
506
623
563
649
749
776
642
592
595
823
575
612
640
701
547
693
903
616
600
391
483
296
668
758
616
524
800
716
764
632
420
653
439
693
549
635
473
628
1078
639
674
806
509
690
536
0
729
832
663
720
517
628
589
732
890
302
503
548
775
730
737
691
806
339
756
640
518
635
729
639
637
417
620
596
722
629
617
619
651
659
768
334
670
662
548
784
478
483
781
500
752
897
740
611
682
669
474
737
769
556
805
903
457
551
700
547
386
774
901
793
495
533
575
582
505
445
405
618
742
646
551
773
536
622
718
720
568
513
616
411
509
532
410
545
583
633
580
706
632
750
367
511
739
390
319
396
561
711
576
264
677
354
682
533
597
517
534
716
427
540
225
816
563
479
636
482
639
583
524
648
457
677
556
768
568
463
542
592
684
584
536
838
681
336
654
589
730
656
781
613
551
748
803
599
498
760
744
778
566
510
556
426
857
615
596
471
467
424
336
674
546
754
644
511
601
778
112
418
475
668
714
582
694
469
706
785
657
815
619
633
736
588
740
630
702
433
675
578
602
619
650
490
708
760
573
750
523
638
592
609
527
642
764
665
662
404
796
385
769
474
506
547
576
684
622
623
792
589
596
399
627
437
747
657
804
547
559
473
729
656
653
675
618
593
766
551
622
498
588
426
517
484
627
616
456
573
264
630
559
728
621
798
692
682
615
479
501
569
648
531
698
656
589
777
674
806
764
574
641
548
683
666
615
517
516
477
689
714
730
522
126
727
729
584
650
336
576
662
872
653
583
525
636
375
554
304
583
564
782
793
653
621
563
671
549
547
621
727
708
0
641
351
731
531
687
607
802
740
522
606
720
457
603
534
516
362
762
498
694
608
867
732
729
585
606
603
613
544
526
679
715
385
349
384
540
778
672
523
665
871
687
646
723
691
354
471
639
782
905
555
466
465
556
870
745
664
796
566
587
703
521
520
736
419
684
636
508
575
592
529
653
757
349
375
516
750
647
334
444
548
891
490
838
849
415
563
294
545
222
839
626
517
685
677
683
452
736
0
865
473
632
403
580
558
664
611
617
643
651
477
565
538
783
656
578
764
626
706
564
966
414
616
390
658
551
175
770
417
940
612
770
652
264
581
357
573
546
680
464
414
689
414
569
814
577
175
706
635
707
708
391
828
656
558
647
797
584
646
859
646
615
513
352
759
429
305
654
662
631
475
390
651
610
725
584
576
904
441
684
852
469
520
552
296
785
831
447
748
727
268
413
513
14
690
437
604
567
425
644
612
646
585
625
566
637
626
761
869
316
692
877
596
782
547
769
493
417
477
385
547
463
476
630
733
564
589
806
903
778
697
514
654
717
307
355
626
563
828
744
836
724
352
719
853
817
700
867
842
668
488
611
416
841
680
782
537
539
823
572
758
166
527
727
694
599
565
725
577
373
531
633
814
636
811
453
206
419
436
809
854
736
550
732
637
841
457
613
761
629
520
690
678
609
689
543
638
871
450
629
715
607
589
416
542
770
720
606
722
770
753
654
540
611
432
668
695
612
674
653
511
21
719
797
554
634
575
462
710
700
412
701
821
704
544
665
467
550
500
741
578
576
844
612
766
626
579
579
673
628
868
478
643
471
593
721
613
393
717
777
571
478
773
582
412
778
565
709
580
662
453
987
556
489
1023
684
790
658
419
657
920
730
859
681
635
503
304
386
623
353
589
614
870
571
371
784
576
636
606
737
762
570
645
631
727
683
739
465
789
580
647
572
405
657
706
676
760
609
676
716
659
507
548
773
632
735
627
720
854
689
544
668
899
776
307
589
545
545
668
484
672
573
653
558
506
229
755
741
721
601
645
629
506
643
514
853
669
654
646
531
698
485
693
683
634
378
620
782
576
681
322
677
599
602
902
521
565
245
581
721
565
686
549
433
625
538
453
390
773
653
694
704
344
812
835
590
662
770
508
377
767
456
648
541
622
771
628
732
636
614
735
355
634
689
528
737
484
519
683
529
654
810
551
756
550
781
692
512
671
810
381
658
735
726
617
506
449
492
470
309
547
491
586
461
705
475
705
497
607
698
585
507
830
594
652
529
582
640
587
389
791
580
590
708
713
630
77
288
715
509
703
547
504
483
673
671
567
469
657
692
482
524
758
698
748
642
698
697
583
747
673
726
439
484
570
854
726
427
547
614
75
797
402
763
608
857
44
401
539
530
565
559
724
852
567
430
612
380
393
716
580
740
740
872
574
584
429
423
731
526
488
531
495
606
777
488
618
1025
161
513
275
494
617
627
491
703
640
631
720
797
650
821
726
710
597
671
701
565
556
422
360
902
450
635
644
716
580
339
340
515
311
664
599
608
832
705
663
278
574
710
851
885
684
448
505
565
666
631
641
760
639
585
699
616
476
825
529
921
607
534
455
716
663
769
319
552
601
572
557
688
874
459
437
580
430
489
552
465
705
794
757
739
523
246
723
623
555
714
444
533
735
794
399
509
493
692
646
512
826
706
508
584
489
553
721
653
696
736
579
999
558
699
624
461
613
357
639
500
472
490
406
542
720
600
612
640
559
660
773
611
322
398
731
764
562
768
392
576
608
784
775
771
638
792
818
657
582
741
367
709
658
716
625
738
568
644
294
750
762
432
824
497
642
923
766
590
605
844
631
625
655
533
718
653
653
394
594
246
635
212
478
713
692
498
664
680
562
558
843
685
611
28
611
789
854
699
709
954
694
536
705
379
402
513
612
661
625
763
290
974
744
549
201
544
817
376
662
420
873
367
627
430
525
791
560
655
648
735
573
590
191
624
701
123
299
812
496
512
596
447
488
531
859
682
671
833
594
404
485
584
541
749
532
699
694
622
513
656
626
535
695
528
738
369
307
353
513
528
583
529
555
539
710
705
630
377
494
494
720
699
627
473
576
620
433
499
127
436
630
219
644
866
451
524
424
727
749
541
378
645
664
592
539
609
526
461
560
473
524
732
784
542
637
586
674
271
481
898
707
342
365
686
782
516
730
720
240
708
290
617
582
491
707
535
321
602
575
623
544
659
625
552
607
651
493
533
637
723
738
660
650
400
601
669
213
743
473
622
609
659
540
693
445
307
677
396
181
471
560
586
399
757
573
561
745
585
899
619
649
613
636
360
569
654
677
681
514
542
514
609
662
735
775
606
604
691
776
610
536
484
430
494
550
773
644
593
537
850
525
594
659
751
473
381
679
640
443
695
652
660
664
682
849
753
740
484
536
659
788
896
668
561
545
552
312
596
719
633
445
500
770
613
637
687
625
635
476
686
557
676
543
633
713
849
604
490
867
682
609
579
591
658
362
516
671
513
673
449
485
716
440
527
490
605
0
684
558
706
341
611
550
1080
545
198
641
561
511
629
633
732
430
585
630
583
803
753
601
683
975
602
541
626
573
779
589
550
524
524
357
525
558
653
672
825
572
545
472
604
427
868
424
678
625
348
751
613
491
660
759
441
391
662
596
206
535
782
484
798
643
740
535
498
592
385
490
565
841
661
782
470
832
689
671
515
678
808
394
738
531
940
489
581
808
298
727
684
486
483
861
488
425
546
613
663
505
572
491
549
679
498
782
679
603
523
692
749
718
801
570
630
475
600
481
200
449
733
625
712
587
563
554
614
810
739
684
654
322
753
668
750
620
480
730
440
777
812
603
394
699
533
585
322
416
740
738
563
535
307
632
653
342
460
526
660
684
553
749
630
757
661
458
594
625
615
546
551
618
623
585
548
521
611
701
522
52
748
745
619
744
645
735
630
781
547
617
385
919
257
694
618
651
402
418
665
665
590
432
599
301
641
546
800
547
586
427
300
798
654
711
530
405
690
490
736
574
381
851
514
733
670
698
708
572
513
668
721
135
906
555
738
251
555
827
602
786
821
650
572
739
445
805
525
690
782
317
681
483
838
695
553
675
671
609
592
483
509
523
695
666
567
279
449
820
573
218
550
637
560
535
634
761
683
397
328
631
589
824
643
725
265
391
632
666
834
644
667
671
687
426
71
322
740
791
633
639
643
647
511
715
412
596
615
410
762
776
497
533
573
502
701
580
763
690
658
712
558
307
736
672
537
607
656
761
543
656
756
589
441
701
732
626
508
356
787
477
623
600
628
687
629
529
649
245
749
783
499
600
590
447
685
896
637
513
501
426
517
808
484
294
451
732
698
597
632
605
516
821
779
569
576
706
915
693
860
554
398
625
907
692
736
595
483
242
909
488
719
784
737
575
669
547
464
731
618
613
556
252
560
505
621
446
623
497
670
580
726
645
671
658
496
650
554
739
501
800
779
524
668
729
220
705
554
612
178
516
589
607
611
212
672
631
383
770
397
669
686
401
575
562
702
705
246
443
721
721
559
730
632
576
551
165
400
619
697
750
651
380
1054
649
656
912
409
637
933
720
582
539
813
479
616
571
708
617
574
655
620
718
487
547
623
677
672
876
486
682
481
648
646
609
476
453
721
736
598
226
504
599
670
850
550
691
890
625
499
240
471
353
500
833
593
818
469
601
572
603
747
470
518
661
738
347
586
885
497
351
800
499
367
682
540
706
920
627
691
731
648
677
615
540
471
587
453
0
594
576
842
694
407
535
571
517
448
494
400
540
665
843
788
695
371
623
483
667
839
694
796
712
608
697
332
535
704
585
484
511
739
699
648
761
548
427
585
565
814
550
627
844
793
579
533
672
734
589
941
792
493
488
684
577
646
606
653
500
646
655
597
641
508
607
489
804
691
706
601
735
657
763
510
667
458
757
707
615
540
636
664
610
682
563
447
839
877
565
401
574
602
603
688
738
736
820
374
462
696
0
566
590
631
691
577
669
625
627
620
722
668
927
529
501
778
690
447
790
665
488
380
480
821
683
509
750
700
597
865
652
539
851
554
507
687
699
855
513
599
637
644
663
726
687
711
694
377
864
800
794
755
560
712
545
471
738
745
767
470
520
758
664
346
618
644
618
885
445
582
608
783
596
487
717
565
800
683
925
668
495
640
626
557
547
167
548
754
591
643
722
662
848
776
482
646
56
688
264
414
631
570
623
507
278
660
651
804
670
540
685
519
290
547
697
523
440
451
492
172
700
553
700
626
713
673
578
532
563
703
639
477
682
734
712
508
682
745
161
559
890
721
718
678
586
555
693
458
524
468
335
606
750
770
371
345
593
449
486
521
630
752
585
574
375
611
656
533
538
709
540
740
514
604
640
372
709
730
436
602
525
726
726
507
726
489
553
699
405
731
823
658
640
593
537
579
696
509
610
598
666
670
656
472
770
567
564
591
646
658
508
631
477
740
453
565
826
335
639
625
640
611
395
640
501
609
849
707
620
360
851
355
685
778
330
461
817
421
263
548
584
803
341
539
536
634
624
556
527
342
607
898
460
571
673
970
668
412
631
958
624
609
15
536
709
752
624
656
812
832
483
607
682
778
616
799
573
765
735
586
590
654
556
586
705
415
643
1024
552
484
409
594
562
610
646
611
513
328
545
685
750
776
579
783
680
815
710
468
597
563
757
508
530
770
622
710
730
644
482
752
682
893
406
664
369
727
783
648
647
448
595
593
569
641
445
695
691
183
573
622
714
800
559
388
605
405
445
529
788
651
780
586
684
622
349
476
450
718
691
778
768
665
565
730
425
602
550
691
618
673
351
576
531
685
914
232
681
679
567
761
605
556
519
594
534
551
749
589
784
666
784
473
759
637
428
787
691
798
497
645
574
589
368
838
875
502
552
460
745
532
777
917
809
544
595
762
464
207
638
362
544
750
908
685
784
373
751
663
415
421
481
560
516
586
777
707
710
773
454
671
445
735
989
219
697
591
661
771
744
978
821
356
537
436
654
829
852
432
766
674
115
655
604
71
674
638
717
618
659
540
836
500
689
714
760
578
871
444
770
612
630
514
627
696
758
741
590
659
649
468
806
423
488
656
706
493
522
669
772
507
582
759
684
581
484
550
682
784
587
578
703
775
665
567
652
565
83
693
574
626
448
506
360
438
690
666
542
658
510
556
648
656
577
776
716
630
437
554
667
736
569
787
671
630
815
593
693
511
828
487
768
493
639
762
441
588
642
676
918
783
733
661
706
708
779
575
633
549
786
644
408
555
617
737
540
925
673
531
809
492
612
412
622
449
729
674
191
346
564
670
720
513
523
841
654
321
678
695
618
739
560
688
639
585
600
698
387
349
546
665
631
624
580
673
509
619
649
459
540
423
681
812
596
468
586
622
620
741
578
621
534
503
651
554
638
579
483
623
829
547
358
776
617
556
721
780
833
721
887
686
743
689
807
665
929
644
426
456
734
655
767
554
351
720
646
515
611
439
801
598
628
407
631
661
788
430
593
766
748
681
785
598
750
687
550
708
694
688
761
521
622
663
722
714
605
208
600
785
514
652
381
794
796
445
573
747
735
554
682
340
542
674
524
510
709
386
681
398
468
585
361
796
500
713
194
582
627
681
527
590
277
536
267
879
392
386
671
512
562
449
702
708
566
983
576
727
606
705
638
907
620
500
553
524
572
845
536
720
523
649
660
681
665
739
625
752
676
417
651
483
616
386
694
613
590
637
634
640
577
650
623
598
707
687
717
648
636
799
677
677
349
578
667
370
624
370
771
647
698
665
668
287
379
663
653
614
559
580
615
625
672
687
417
480
642
570
535
629
277
447
559
708
601
814
676
576
502
728
695
411
580
703
638
75
704
550
661
304
814
644
596
523
626
410
692
735
824
249
763
637
802
618
616
673
346
623
785
833
677
278
677
773
697
611
834
471
690
699
513
644
645
609
587
764
383
468
702
738
547
652
825
736
485
768
485
696
641
689
231
538
611
575
670
667
551
702
522
655
733
561
514
503
552
712
634
637
513
688
551
570
782
686
719
789
626
632
467
645
623
601
858
788
108
514
725
438
417
481
941
528
663
430
780
718
754
540
711
644
616
816
535
338
535
693
617
593
720
354
444
606
502
503
546
515
631
551
570
440
595
553
631
588
611
719
567
550
350
663
717
595
524
532
667
635
538
610
674
717
597
201
692
644
460
507
361
716
623
614
401
469
658
686
588
435
687
421
669
704
520
677
396
384
469
833
424
793
351
760
555
649
716
659
612
530
199
564
706
407
883
575
670
824
511
632
616
463
649
612
550
830
532
781
418
810
761
625
595
594
655
657
717
627
898
658
207
588
453
532
574
795
562
747
367
502
729
687
770
768
430
562
647
608
751
549
567
288
568
625
695
678
464
497
475
584
731
753
538
473
569
523
637
741
689
685
734
682
371
545
625
549
705
679
757
645
438
893
559
582
757
422
525
620
594
611
630
534
312
715
654
321
579
458
734
586
872
546
619
434
598
705
585
705
535
489
483
663
833
700
732
238
627
730
394
816
657
532
516
689
185
658
792
622
469
683
441
510
612
702
803
485
617
263
714
950
579
693
548
343
448
566
720
516
575
628
393
516
674
766
567
761
414
759
534
723
650
595
546
662
760
597
965
901
584
791
642
529
739
567
714
531
520
821
759
423
659
759
672
597
609
565
176
732
600
485
838
627
570
722
254
654
751
686
589
898
692
637
638
559
883
533
635
707
787
839
662
872
232
417
503
414
690
562
772
837
613
737
674
475
295
468
585
664
595
575
92
579
914
751
784
611
440
802
508
512
633
458
712
735
595
685
622
708
719
604
568
410
822
595
734
684
827
546
245
572
502
589
629
718
672
500
553
591
793
670
394
724
634
713
355
799
737
697
710
496
838
573
503
324
738
798
556
602
827
596
523
484
587
798
489
591
615
599
508
508
626
576
773
771
730
662
903
645
471
561
769
626
675
687
707
520
746
689
848
586
803
786
476
512
370
550
432
364
377
681
501
648
666
999
470
0
644
736
687
887
0
706
562
673
741
285
482
656
748
565
479
648
611
790
787
693
570
759
561
521
432
834
520
745
739
595
460
620
644
865
689
729
583
245
164
520
498
432
639
635
671
779
612
848
585
506
735
544
571
383
625
452
681
659
633
503
578
568
622
742
631
226
680
694
684
605
460
655
281
728
603
685
612
712
588
394
547
324
657
357
590
280
513
880
661
398
508
513
570
646
784
777
572
731
481
639
724
562
750
552
708
652
649
934
593
367
564
559
380
721
739
619
516
553
716
756
899
714
784
253
546
601
583
633
630
834
390
445
838
567
607
609
371
697
536
428
535
480
874
386
781
716
709
398
667
747
534
731
694
745
71
606
689
656
677
939
614
557
828
546
860
519
419
372
512
685
564
549
592
486
628
774
683
584
837
491
360
716
692
596
751
736
355
743
648
620
730
592
827
531
443
728
713
238
652
715
549
398
845
431
646
541
705
650
481
376
865
610
394
776
612
633
111
613
559
598
485
761
702
824
546
802
560
668
754
506
362
398
658
656
764
473
621
479
486
562
684
698
598
512
400
724
602
830
411
608
665
776
337
550
676
523
755
640
832
313
880
603
836
678
465
593
288
481
714
635
366
642
713
551
635
638
520
784
575
611
655
902
618
622
349
722
415
503
679
729
747
724
702
465
759
470
393
748
496
667
460
598
407
799
635
571
474
695
451
559
762
465
595
681
597
598
839
786
814
607
577
680
321
734
487
643
465
656
658
567
765
559
637
574
676
109
598
439
703
350
776
763
676
572
677
698
376
460
602
875
700
590
817
640
728
267
478
706
561
696
862
544
528
653
736
594
539
706
866
598
707
516
679
669
610
778
620
678
384
573
483
432
579
750
818
639
886
517
501
573
492
573
319
548
759
630
518
430
653
729
338
893
408
741
336
524
641
599
737
390
758
662
484
644
708
359
603
392
655
596
508
456
485
829
562
644
352
819
575
586
803
0
663
656
563
616
560
547
723
447
762
600
242
637
666
875
910
0
744
415
508
385
675
398
760
208
760
596
710
548
528
607
377
788
770
536
814
441
807
651
498
650
642
428
542
562
700
583
568
720
620
380
825
671
829
616
321
656
707
656
289
496
763
227
556
736
650
704
485
560
644
584
383
542
574
821
475
688
625
708
687
580
719
724
530
530
829
864
538
643
695
586
694
560
507
405
797
809
689
508
649
491
534
702
569
560
440
591
692
645
637
656
504
769
466
465
457
532
776
564
497
855
832
594
525
706
621
533
711
488
663
778
602
638
494
578
521
492
804
775
705
779
597
359
331
541
701
512
622
479
668
643
418
394
484
641
720
343
433
747
695
665
667
795
779
672
414
666
664
635
495
482
471
778
649
681
594
547
538
617
488
225
745
870
618
669
613
634
250
381
573
460
384
708
680
654
615
730
723
652
404
681
636
716
521
543
412
833
733
381
622
464
721
531
784
154
474
377
614
536
632
545
386
722
785
768
688
682
605
212
769
525
672
462
328
695
511
698
659
675
416
786
698
541
680
399
683
869
780
609
859
764
735
681
493
584
517
603
611
551
639
702
964
284
672
640
619
414
515
654
441
535
668
520
731
575
459
731
819
425
590
488
263
685
570
1056
803
630
488
488
487
552
608
501
155
961
541
529
614
998
560
840
416
802
688
509
445
574
716
905
894
715
635
824
808
679
575
478
330
685
377
563
522
616
346
603
367
738
695
671
206
679
494
710
718
0
322
638
661
736
726
570
754
465
675
633
476
445
715
329
531
852
834
576
482
726
409
732
728
698
747
633
754
714
118
398
613
534
505
759
709
619
493
500
603
689
776
704
581
513
464
470
629
651
297
433
644
649
606
291
342
578
743
599
758
670
595
692
619
592
350
687
748
533
575
782
556
612
549
752
253
861
0
765
716
674
736
710
733
664
414
731
276
607
732
437
666
595
695
524
676
412
691
665
847
592
478
665
585
794
525
652
664
631
575
636
648
624
662
854
633
459
507
494
669
692
470
621
751
919
926
562
532
821
659
540
686
546
607
363
438
709
499
465
666
739
482
592
715
810
734
526
589
0
525
534
801
732
564
598
710
776
797
692
411
633
640
664
529
496
628
608
785
528
925
697
536
548
705
742
543
640
751
653
561
789
292
523
633
608
777
736
347
591
537
638
916
881
640
389
520
714
377
655
658
937
733
379
1014
577
657
409
650
829
662
686
796
653
493
840
503
480
470
580
740
292
691
377
578
756
791
470
766
641
732
691
659
551
609
634
612
569
466
256
603
538
526
600
413
624
823
683
855
754
822
374
720
684
692
7
595
579
403
616
535
553
516
656
509
495
590
567
732
625
716
626
645
780
791
284
768
746
424
565
657
676
617
551
654
577
693
960
743
698
427
544
860
758
689
589
350
635
725
495
453
766
735
905
777
526
702
585
700
558
779
641
625
579
281
671
439
648
1020
508
749
769
468
569
760
484
586
787
539
758
387
433
501
549
644
631
711
701
444
604
526
704
782
589
495
776
669
142
486
669
468
600
626
150
728
502
586
595
793
721
275
642
342
657
453
709
391
567
731
538
401
523
427
515
772
471
733
630
711
780
559
612
435
683
695
754
589
486
663
544
566
474
645
701
250
97
706
464
561
519
568
598
587
471
534
530
598
394
497
602
517
514
627
412
426
706
711
322
649
259
787
724
617
654
583
586
559
357
290
242
529
829
608
493
613
546
800
682
261
630
610
590
509
646
456
491
558
800
781
577
543
648
633
615
499
592
448
607
161
532
515
679
474
840
663
486
541
430
796
468
502
723
711
524
571
518
538
490
580
644
646
632
596
523
506
614
644
516
745
729
666
584
496
753
856
401
444
784
703
667
642
760
784
546
512
678
586
650
319
759
732
661
786
676
480
790
295
503
745
636
615
721
406
851
796
859
731
782
586
588
849
668
822
513
498
609
755
595
648
448
376
817
602
565
755
762
467
691
403
503
675
722
555
664
804
305
485
696
453
491
778
680
299
518
522
780
497
627
550
698
756
622
760
500
573
775
648
375
673
620
551
22
398
751
868
573
889
512
560
634
618
457
697
829
924
660
862
667
592
276
439
627
768
799
709
286
127
637
585
810
319
661
471
524
652
441
564
488
523
608
854
748
618
569
732
343
643
574
681
786
672
401
687
944
783
226
739
644
809
462
878
840
645
475
559
476
647
440
606
515
708
578
590
788
819
485
389
856
684
494
666
820
636
0
700
695
599
747
521
584
602
619
744
735
324
227
666
620
658
666
602
662
857
617
843
736
516
704
681
465
702
601
574
302
165
675
726
445
560
358
304
533
739
510
566
860
685
312
624
681
767
754
731
711
757
533
552
299
394
665
541
803
834
529
540
509
775
580
532
686
641
464
815
867
717
720
555
560
583
478
616
685
567
791
790
820
635
730
922
1036
964
512
627
451
688
604
486
596
775
608
557
673
624
742
717
699
648
915
514
692
661
706
703
692
550
553
513
838
607
611
521
795
839
1079
680
682
697
667
729
474
542
606
742
423
844
791
695
857
703
670
485
501
518
684
642
583
524
439
601
490
521
849
523
630
631
427
754
464
589
531
248
408
490
833
494
321
462
723
709
614
443
475
840
488
784
403
398
711
828
472
436
646
400
549
789
813
814
672
365
1129
551
528
562
597
430
750
496
654
666
613
710
556
527
565
866
638
578
592
756
666
680
881
529
498
802
638
614
482
683
586
661
599
620
384
612
565
436
626
540
99
546
495
624
828
450
578
1017
611
709
683
595
127
519
721
684
562
649
697
826
366
631
542
218
928
636
660
528
368
501
728
602
509
579
319
659
368
742
580
635
376
687
569
659
455
71
569
503
594
509
794
580
591
278
880
768
317
482
847
426
755
641
734
576
840
720
615
817
636
578
686
773
755
905
542
591
862
680
490
687
367
526
546
944
506
737
811
665
662
637
262
421
793
453
536
636
796
529
489
529
573
441
411
677
811
678
980
704
632
797
789
585
518
731
479
493
741
365
900
514
718
647
532
752
542
537
548
729
556
450
537
491
421
411
740
706
693
757
373
675
578
678
629
633
741
406
528
480
630
560
661
592
483
562
681
379
585
624
592
901
570
574
741
386
457
615
574
516
740
643
601
811
232
455
678
546
386
480
608
630
642
607
589
687
706
519
581
343
618
380
563
654
724
551
527
579
689
545
667
739
704
289
506
639
528
430
590
703
730
568
692
379
465
851
537
662
687
873
385
659
484
371
683
755
642
631
603
568
443
261
822
868
789
780
475
650
613
419
917
616
693
342
726
689
744
541
925
762
631
520
335
675
667
691
674
828
531
876
588
691
597
489
680
524
577
603
611
657
265
282
542
738
744
521
724
540
696
733
633
196
339
646
550
704
737
679
444
609
422
683
465
403
569
567
846
536
585
659
828
789
445
940
572
354
507
685
852
701
588
882
618
473
320
811
657
561
784
722
680
910
897
596
503
181
648
680
38
438
615
719
550
646
500
539
703
449
536
569
787
167
732
897
502
495
605
648
298
618
580
595
497
727
708
655
529
506
610
566
345
718
612
555
444
704
375
566
688
631
605
530
541
516
753
497
433
453
636
542
428
416
634
532
598
645
602
650
954
561
641
585
757
342
742
561
642
402
633
429
871
457
398
631
489
143
692
546
596
694
542
581
378
495
475
556
689
1006
426
587
664
485
590
699
485
697
526
363
321
611
343
596
841
640
552
654
984
613
830
431
388
423
647
548
855
624
746
680
677
667
535
407
764
684
674
640
471
620
766
349
447
665
617
645
375
488
609
726
504
634
649
723
488
684
479
573
580
605
664
412
435
407
665
616
627
642
536
700
601
674
498
743
676
392
561
407
404
671
525
791
814
703
663
575
622
700
665
780
677
643
319
503
476
658
834
790
510
241
924
588
488
717
730
711
386
702
607
591
559
762
618
568
897
626
694
356
571
699
491
670
668
628
727
248
726
508
728
553
363
501
595
707
671
420
620
248
461
562
589
471
846
821
583
592
743
480
360
354
606
496
360
824
649
381
270
385
444
666
495
625
614
703
750
757
764
338
382
738
580
574
713
672
847
630
519
430
659
450
783
484
358
240
631
599
783
667
537
671
552
540
584
458
651
599
475
619
638
675
565
326
371
563
595
561
497
616
698
453
521
716
817
497
765
707
593
810
706
706
549
618
591
488
704
853
542
665
625
578
493
723
443
712
329
618
634
793
665
476
522
782
558
762
617
644
706
735
681
794
590
527
563
554
724
619
576
666
815
599
465
534
707
647
610
526
524
627
644
477
597
547
596
781
534
808
496
220
777
577
667
641
450
618
604
622
747
361
550
718
807
455
766
750
475
587
478
669
870
653
755
416
698
745
549
523
591
262
607
702
589
601
618
650
601
514
370
680
645
742
479
756
450
577
447
564
790
413
653
533
617
636
689
262
664
481
373
491
687
504
486
110
630
621
538
358
763
575
674
572
346
773
586
587
561
832
604
670
796
644
1019
667
719
659
980
750
379
804
666
524
722
614
474
201
640
501
570
371
524
513
671
740
566
629
594
729
853
763
564
662
711
834
684
643
305
346
635
626
336
691
784
704
832
854
668
640
541
644
609
646
631
678
943
375
647
426
801
583
673
526
792
684
723
473
737
475
487
696
710
694
640
518
477
673
722
486
583
675
476
464
497
271
647
586
535
716
313
701
641
609
589
710
642
483
753
598
649
398
737
808
780
305
744
723
705
279
435
739
737
376
535
514
490
279
618
682
645
473
736
523
564
745
625
689
700
418
974
506
654
998
498
521
591
699
643
431
750
604
533
529
576
280
715
640
632
670
705
433
490
755
457
775
651
246
766
778
644
425
497
586
504
689
455
583
264
752
491
575
864
701
589
312
614
534
443
520
618
612
453
317
646
545
664
699
506
482
620
688
725
388
687
583
637
663
502
508
671
594
721
652
656
833
374
659
573
691
428
669
845
660
589
251
470
596
766
732
486
779
707
599
704
753
681
502
640
495
692
426
349
591
491
604
675
641
580
759
481
562
524
523
764
800
531
924
646
600
668
586
759
621
185
523
718
671
677
548
748
682
683
778
654
703
585
0
662
579
631
697
207
462
642
557
838
728
681
680
736
348
627
682
630
538
686
525
769
361
568
616
624
665
541
814
534
555
563
731
739
689
397
763
436
591
419
795
710
600
579
710
459
735
762
596
458
252
491
596
711
671
572
602
405
855
341
789
629
790
734
642
616
723
598
595
657
454
357
635
571
424
443
570
352
543
604
787
898
593
748
781
700
381
658
774
668
811
499
487
607
516
591
504
669
848
755
798
649
431
511
727
280
866
603
497
439
712
632
643
706
671
855
680
433
664
346
557
425
733
729
449
298
554
554
822
697
567
593
797
729
627
691
780
624
704
573
611
732
476
324
516
755
751
712
678
673
503
638
430
530
373
664
556
680
644
570
499
819
802
542
317
805
618
660
444
650
748
550
170
262
817
647
675
596
788
529
431
775
559
692
722
561
398
257
692
724
518
615
542
480
762
533
853
659
596
649
410
625
857
374
634
662
595
566
396
451
484
467
217
782
686
719
612
568
614
558
514
282
508
599
392
471
549
728
499
721
578
668
381
614
624
487
728
510
398
698
698
698
448
520
557
631
110
508
697
715
514
468
574
618
601
651
599
304
473
715
433
567
678
790
659
427
645
659
734
741
483
525
643
409
771
495
658
858
686
373
685
578
559
623
585
644
457
701
464
511
731
712
662
764
576
512
512
556
702
539
611
925
522
295
776
628
557
462
794
556
587
549
713
468
606
750
521
375
701
560
495
318
658
605
608
620
589
523
720
622
684
858
578
537
874
433
624
576
257
420
615
742
504
658
360
658
726
386
537
720
370
804
713
620
779
782
614
553
280
483
500
552
351
420
487
435
716
474
855
679
770
560
566
559
851
701
617
508
705
690
515
762
640
386
610
691
352
761
623
542
313
792
734
826
421
464
513
458
689
651
708
657
508
691
636
708
739
439
803
703
627
694
805
801
580
533
267
618
666
737
678
608
562
620
478
618
662
644
674
591
760
757
482
535
338
577
755
582
471
610
564
641
521
670
632
818
490
436
678
465
613
704
448
734
747
663
831
610
471
767
705
448
822
562
602
613
640
474
625
752
641
644
666
574
425
609
581
713
515
457
748
697
1003
559
630
567
683
627
407
795
477
669
790
507
850
596
265
592
737
404
715
577
587
504
875
891
625
719
553
358
595
350
398
281
555
723
613
651
741
642
342
589
728
393
711
661
1010
321
549
422
440
333
177
541
589
653
663
734
645
334
592
484
705
559
785
583
620
485
658
714
485
716
242
356
665
713
721
586
600
522
526
492
471
464
522
780
588
741
772
732
580
582
546
670
571
614
642
671
529
625
421
598
537
677
633
839
653
857
736
635
531
307
663
799
605
582
496
735
562
538
112
676
432
628
493
546
347
697
426
573
803
560
438
289
827
678
828
940
548
638
458
555
739
762
585
696
562
857
643
419
580
372
849
509
659
681
555
615
622
552
647
426
665
746
572
928
1070
736
555
652
459
855
706
803
769
727
693
605
638
689
620
737
680
364
805
539
643
741
589
743
601
413
612
864
487
675
702
630
493
418
391
581
807
220
697
748
730
700
659
708
651
720
451
534
733
341
683
593
748
791
635
558
821
605
515
610
605
392
506
244
569
493
204
836
673
718
649
422
531
592
677
257
585
504
550
740
495
322
302
483
302
708
482
605
635
809
656
598
1107
609
502
574
610
703
816
711
638
488
644
769
686
714
506
728
675
836
565
717
1094
160
629
772
518
561
734
820
602
606
517
812
456
337
546
554
782
231
0
712
799
777
762
763
458
733
764
660
569
607
512
652
547
735
749
800
703
923
547
848
699
557
627
906
123
723
619
604
617
782
617
707
469
402
819
784
532
648
694
635
316
681
584
483
693
584
622
686
694
623
580
377
407
705
750
638
663
444
281
632
663
744
644
268
702
598
467
460
680
843
605
879
601
425
607
640
631
370
541
479
631
926
673
574
578
620
591
565
320
728
728
620
635
707
733
481
497
655
776
718
733
625
276
670
483
774
656
843
441
577
555
560
851
674
562
597
605
651
511
705
497
536
777
489
346
667
767
357
658
539
599
508
445
607
309
244
382
657
455
324
542
787
536
615
696
532
648
599
642
839
619
553
488
543
764
769
602
594
343
645
595
154
717
687
567
514
753
560
481
765
603
767
574
599
493
383
618
561
454
639
596
637
975
547
532
544
872
714
781
459
590
494
752
732
509
498
587
553
661
716
590
677
887
739
573
638
823
556
733
712
503
600
614
673
408
527
384
860
580
617
551
697
638
512
590
572
433
683
600
569
424
770
625
676
824
332
662
326
466
449
624
706
560
369
668
486
631
638
725
632
740
702
686
861
835
907
745
815
324
1032
652
584
778
585
507
605
586
494
559
424
692
396
806
662
622
164
675
718
573
500
490
830
769
594
659
634
656
544
172
674
548
478
739
778
601
769
543
201
523
801
246
657
701
901
628
435
465
672
519
606
628
825
615
488
727
736
678
334
454
496
489
616
755
690
543
614
576
706
558
644
856
814
575
642
598
883
575
792
532
363
639
769
586
97
542
481
260
592
638
709
518
634
724
665
653
680
645
408
684
633
690
482
576
721
611
636
596
766
0
631
412
525
721
864
664
520
731
722
807
534
762
695
526
518
712
797
757
545
572
663
615
675
787
602
505
626
776
648
252
608
641
572
571
624
609
614
465
550
533
377
755
293
405
766
553
473
346
477
414
661
380
812
481
687
380
743
749
400
699
421
448
484
606
813
609
783
670
605
773
750
719
548
756
718
587
592
903
564
594
606
567
519
628
589
742
660
518
502
451
477
669
714
767
561
684
779
833
874
564
551
402
430
577
640
444
500
421
712
636
495
855
531
727
510
695
575
496
706
512
633
702
598
686
627
813
969
581
604
531
708
292
680
792
814
725
302
937
514
475
865
511
628
744
548
240
518
566
554
588
631
572
301
703
664
500
486
741
378
588
736
745
765
643
566
649
676
679
545
0
762
470
586
766
629
576
488
829
878
625
605
728
708
460
516
680
152
697
765
642
742
653
627
557
630
272
494
649
594
733
493
506
442
621
575
666
806
640
612
542
702
419
661
585
694
601
426
570
686
737
698
531
718
687
618
496
559
508
582
787
605
500
652
889
546
570
439
667
639
232
423
704
681
514
735
578
561
516
513
723
698
555
571
282
805
745
402
632
713
779
696
433
780
496
423
454
546
644
756
538
715
732
632
631
636
310
519
658
794
615
562
194
484
695
398
566
793
321
581
635
587
420
672
479
588
590
801
452
393
659
462
584
530
511
564
781
577
563
402
626
668
670
829
613
779
563
0
681
731
694
552
718
618
438
746
621
716
497
504
512
496
626
673
526
506
770
677
562
578
662
901
698
629
544
526
500
702
666
596
551
558
521
756
594
600
863
560
645
846
667
748
773
648
743
663
475
461
387
634
507
537
633
466
777
522
682
600
528
497
641
472
783
722
626
584
568
534
680
667
526
644
715
56
682
484
676
743
827
728
577
622
759
160
792
546
835
691
733
531
617
864
624
537
647
583
327
643
689
370
454
411
592
748
460
593
566
679
367
389
503
473
581
440
470
615
424
521
592
816
490
317
588
402
543
528
795
761
610
358
706
429
753
742
638
582
454
483
646
629
626
583
489
562
637
469
467
505
371
555
668
895
596
591
746
376
582
661
494
867
594
636
646
615
631
775
693
457
630
464
480
451
676
516
423
619
393
650
779
732
448
637
667
605
789
673
455
869
744
757
819
653
605
542
789
547
478
639
618
755
742
835
680
659
771
565
745
594
736
584
691
694
582
621
708
689
535
616
633
626
755
776
605
697
387
688
658
604
483
680
564
616
500
451
704
668
779
515
820
776
559
621
641
682
687
699
838
618
361
741
756
692
592
678
609
651
378
821
493
833
509
544
742
649
302
490
561
576
462
536
654
561
606
503
724
473
608
574
546
792
463
701
529
527
608
830
713
430
706
604
546
521
641
604
699
612
533
762
694
902
804
702
440
542
592
664
600
661
618
665
670
528
556
411
419
517
663
549
885
763
618
848
512
505
747
487
707
597
645
688
699
549
590
423
569
753
491
520
643
655
295
740
836
514
597
555
724
743
734
421
438
613
698
593
615
733
618
630
638
834
759
643
477
528
652
612
507
567
563
621
619
577
555
842
533
600
739
443
726
898
687
532
437
455
569
530
700
649
670
657
476
487
635
711
758
709
694
620
629
485
455
632
716
555
497
762
501
512
590
531
482
620
311
185
715
560
627
740
585
290
352
377
655
597
729
595
590
678
788
581
172
849
474
560
708
750
487
591
487
586
753
673
722
709
299
355
900
788
528
513
481
720
585
503
688
437
361
605
545
550
376
470
612
670
556
709
619
383
641
985
686
496
591
416
763
267
912
534
0
525
491
681
741
648
529
761
569
630
578
421
759
121
641
341
716
728
640
632
687
495
741
378
243
398
778
508
807
485
608
630
375
724
626
653
647
507
309
686
88
717
850
618
416
900
647
608
619
435
617
582
759
758
565
598
656
571
745
721
740
605
500
788
695
569
583
539
849
641
616
477
360
479
696
346
587
683
114
489
356
725
816
514
712
315
401
650
658
668
748
530
712
575
523
768
613
704
540
1022
679
641
621
490
508
814
516
232
717
518
595
659
558
673
404
685
853
674
524
758
627
446
683
728
532
605
386
728
536
577
577
508
768
636
505
606
528
512
516
575
728
740
693
608
561
770
517
525
343
458
607
487
587
435
536
574
578
762
645
592
581
199
313
660
751
603
580
614
660
588
866
747
665
678
805
783
540
645
568
124
501
494
485
863
977
752
624
632
558
545
840
571
831
692
356
542
876
645
319
404
654
739
747
351
465
724
897
762
612
644
629
0
695
687
546
363
815
551
800
678
614
763
275
735
271
546
732
393
418
685
208
404
543
886
613
625
665
656
764
594
549
551
626
609
977
701
728
372
699
756
541
632
976
567
522
720
507
625
575
674
648
608
343
465
538
662
585
529
641
581
853
492
488
717
668
471
272
886
726
148
814
435
68
412
643
623
342
559
334
554
568
427
606
680
644
530
527
791
559
436
151
647
906
683
574
725
462
546
617
475
539
588
59
495
566
609
425
582
693
774
772
637
710
498
560
602
732
502
546
528
773
373
489
745
704
165
427
641
781
586
767
780
533
751
742
409
676
648
347
617
643
67
763
563
687
714
731
671
556
619
512
478
620
665
628
643
297
657
596
807
682
812
596
574
669
786
557
787
678
840
740
797
662
498
458
474
775
416
528
706
611
705
756
858
517
794
268
646
546
543
609
599
551
713
455
661
855
742
548
428
424
143
683
614
452
331
471
450
695
581
606
611
532
408
376
188
400
451
786
584
485
716
457
459
250
616
713
554
572
690
746
411
696
575
442
461
603
739
629
764
384
750
760
683
602
582
532
543
502
728
577
802
466
604
529
846
418
538
523
649
604
422
596
505
487
754
502
705
676
614
654
727
578
541
497
771
512
463
474
539
737
652
582
536
751
778
561
596
328
507
568
654
553
365
819
607
530
560
625
436
530
806
716
320
724
545
759
843
637
468
643
207
484
544
648
555
725
667
365
665
545
611
497
619
558
788
548
464
683
490
624
752
762
996
565
710
612
474
507
470
540
701
588
671
626
445
665
604
356
695
527
751
632
395
432
574
770
692
517
666
768
580
559
689
491
667
709
589
612
685
685
648
768
584
344
656
561
720
799
697
616
494
596
774
695
737
260
660
748
443
912
627
730
600
772
492
563
666
649
670
404
662
497
875
437
638
693
403
248
783
662
539
567
775
639
707
480
383
586
693
740
773
500
679
331
709
662
870
784
559
696
724
790
715
715
677
675
644
764
747
719
846
833
641
688
579
765
702
553
742
694
599
159
605
727
687
635
607
693
713
441
757
863
546
563
628
442
492
602
126
621
840
305
645
571
720
767
567
445
695
491
805
563
517
606
682
555
650
475
676
588
744
990
431
817
708
635
473
661
665
831
770
585
538
607
493
821
767
523
612
529
693
384
690
177
646
768
807
615
645
690
525
405
554
586
411
591
675
107
395
510
665
609
712
581
781
904
658
715
596
726
780
653
561
561
712
571
635
795
580
586
805
418
470
669
632
788
612
640
652
740
407
653
620
601
560
654
680
375
485
463
761
732
598
543
656
614
558
772
658
757
593
531
731
852
363
840
588
347
721
578
638
399
408
907
566
584
758
733
628
460
809
668
821
462
625
649
516
502
684
838
601
586
643
505
600
577
789
778
751
599
550
497
577
622
562
703
313
432
611
591
386
610
684
545
547
679
614
22
698
527
638
757
618
740
823
486
663
644
612
621
549
719
666
604
693
503
60
513
568
807
717
766
696
669
645
545
851
634
671
871
689
937
320
631
587
876
490
828
707
872
651
585
318
414
484
387
627
727
739
465
661
810
631
691
640
872
433
471
864
777
755
466
808
553
776
488
484
553
618
551
822
733
549
761
570
699
539
422
728
626
812
643
692
468
736
511
671
817
662
298
789
629
803
198
768
371
534
675
718
695
717
729
655
575
577
454
695
786
672
631
644
531
464
745
721
548
486
526
621
594
730
696
503
518
472
417
766
539
486
862
581
466
635
595
735
388
674
388
555
672
398
330
518
585
641
755
641
582
674
627
730
586
705
445
125
420
596
676
609
699
496
571
509
753
888
694
871
701
570
490
655
377
536
700
604
672
899
725
527
462
542
462
474
581
869
526
626
614
562
463
681
465
614
850
689
675
523
738
616
540
705
577
796
780
732
701
641
731
424
505
605
614
528
629
669
660
618
110
693
777
798
728
670
484
467
435
943
638
644
488
632
718
751
555
702
262
169
613
583
241
47
509
695
822
653
350
588
350
354
747
604
605
423
782
892
645
738
653
521
746
844
589
631
296
374
702
441
609
725
493
679
501
630
727
494
739
479
692
437
503
674
730
823
283
612
538
371
696
281
551
533
770
660
827
714
475
612
793
717
441
705
757
526
490
833
642
674
554
766
753
591
616
743
588
543
76
485
500
627
570
561
616
580
583
274
594
433
762
337
556
642
691
925
601
579
551
510
682
598
782
646
697
784
459
366
452
629
663
471
621
253
624
715
594
623
445
231
219
750
537
462
788
659
531
663
634
653
514
665
680
851
631
820
744
409
266
571
502
630
658
856
708
740
692
895
427
780
577
311
734
590
776
380
865
578
676
587
726
579
434
631
531
546
621
707
714
424
599
349
695
626
363
532
460
588
639
577
735
782
554
724
655
633
577
603
695
429
490
432
749
530
554
619
677
619
160
476
722
584
664
619
659
908
583
644
766
753
697
734
492
721
848
525
502
635
518
512
566
466
660
711
276
535
480
488
110
687
565
641
436
575
610
558
458
638
557
657
625
107
535
426
380
457
736
631
965
489
869
412
607
640
706
587
189
555
525
413
580
643
559
558
576
767
602
485
616
552
400
621
508
826
430
683
611
707
642
494
751
658
360
898
770
731
493
673
773
645
268
685
551
595
869
322
820
441
525
649
325
603
581
595
721
656
525
438
740
167
567
246
523
699
701
360
746
646
651
908
610
404
716
548
621
498
690
699
367
647
729
642
587
719
514
525
672
660
837
487
660
584
740
807
765
979
618
711
874
661
718
560
601
618
367
699
649
703
519
685
628
716
860
552
620
827
677
634
742
890
612
646
472
590
631
514
676
758
531
815
425
704
759
520
628
440
844
638
512
575
582
691
699
521
573
0
520
823
455
723
373
817
149
401
683
726
472
461
415
514
747
728
666
528
0
598
482
636
802
667
862
413
623
876
483
786
742
631
770
471
725
533
302
606
616
634
678
780
593
422
616
711
682
685
670
441
732
1052
674
649
761
599
419
763
329
702
668
568
586
561
514
445
551
787
772
460
647
649
735
676
458
630
439
778
670
810
539
597
676
755
525
643
859
613
576
643
478
560
610
812
740
660
601
622
668
650
418
469
487
578
602
520
684
608
486
538
672
517
577
574
713
769
586
488
721
369
777
566
604
413
618
355
645
695
696
561
516
726
657
439
592
776
452
516
595
491
735
789
574
572
831
625
787
848
698
781
806
586
665
566
633
646
597
643
823
692
813
680
911
699
581
556
548
682
592
432
530
555
607
725
427
707
508
836
619
446
754
573
748
503
619
622
121
696
518
630
488
742
526
602
363
497
301
804
469
639
607
547
838
632
540
625
608
414
802
1025
275
388
648
657
544
596
532
752
589
587
644
744
805
596
757
613
795
665
327
987
623
639
511
734
713
564
760
863
717
552
316
722
584
806
621
756
662
401
434
745
512
709
535
548
582
591
632
610
682
602
369
557
611
204
308
478
720
497
398
344
665
388
706
715
734
352
856
609
754
610
575
501
679
457
953
686
624
589
580
611
618
627
740
281
709
376
532
449
548
507
468
593
476
722
654
449
684
326
450
183
831
923
610
728
595
485
521
792
570
555
575
626
591
758
658
638
535
440
446
635
710
467
965
668
668
647
596
422
700
521
599
674
476
327
559
685
182
395
552
688
746
585
595
496
549
794
711
477
648
834
660
631
205
606
800
678
529
667
616
563
253
839
536
808
600
786
719
518
764
928
467
687
658
657
634
472
559
649
350
183
656
466
828
654
687
874
617
510
630
723
759
618
577
632
393
714
479
713
452
580
432
435
692
594
618
718
615
694
844
753
743
554
809
490
647
899
795
892
677
643
502
195
446
924
246
758
296
560
509
737
712
422
800
580
757
676
678
472
782
835
613
573
723
824
614
489
427
666
739
776
845
333
659
705
351
469
345
568
412
470
784
365
727
369
931
853
897
572
747
581
801
497
634
732
557
352
830
647
469
435
658
815
761
502
769
574
672
593
624
789
520
764
369
558
532
650
642
617
420
715
661
392
508
694
675
605
645
747
937
350
474
631
784
382
520
654
698
731
419
672
753
463
596
712
765
565
458
487
460
826
692
808
774
699
547
726
523
153
774
691
228
543
848
545
145
730
758
612
693
736
743
633
612
756
703
801
447
573
546
771
628
536
333
754
693
544
519
709
710
735
435
669
380
472
647
756
744
484
292
591
392
540
711
659
560
692
523
583
621
530
517
914
575
556
777
342
579
532
272
221
631
619
704
821
884
586
737
566
659
771
683
371
755
642
434
712
642
404
632
713
654
805
720
538
652
460
672
734
704
706
376
499
753
736
808
588
714
639
493
435
304
578
632
619
638
745
485
693
660
569
759
525
700
458
704
558
731
674
627
646
465
471
609
620
745
194
785
863
439
619
475
604
588
607
656
651
276
785
507
567
631
853
600
448
658
775
652
520
610
750
555
406
595
667
701
503
536
502
763
456
509
571
557
458
710
529
631
0
556
604
586
585
786
771
562
814
74
556
545
720
497
697
488
499
798
633
679
666
529
431
760
730
625
832
884
391
414
786
812
493
716
749
785
347
628
619
469
682
822
407
722
685
433
681
567
610
445
651
640
567
673
478
650
695
628
753
468
799
609
812
440
651
869
495
488
331
638
590
813
697
460
473
786
752
572
748
652
622
551
513
688
225
633
648
392
462
691
610
634
693
820
362
249
194
660
603
610
829
756
582
643
565
837
651
656
527
674
347
541
601
732
734
324
495
504
605
711
601
721
382
460
560
642
383
862
609
756
544
724
345
468
570
435
871
670
372
562
691
754
44
640
492
612
508
560
599
513
715
643
663
363
628
730
483
448
626
501
728
546
636
369
495
612
689
640
615
411
549
870
533
540
682
458
493
583
656
769
776
1008
487
341
679
731
755
824
777
672
688
26
422
544
520
700
938
658
376
228
395
724
627
483
466
223
280
431
882
700
845
596
685
535
658
21
161
56
706
549
812
473
632
692
571
585
558
759
713
623
634
312
684
628
763
585
581
585
723
490
635
429
800
353
603
575
427
536
718
477
557
619
643
843
609
889
650
734
627
683
732
849
831
815
473
748
494
677
770
597
618
650
563
584
648
370
371
626
605
694
664
384
673
789
837
695
605
878
682
764
736
636
512
578
1027
642
80
670
647
415
505
467
592
676
710
349
509
662
505
729
582
529
647
679
448
567
763
788
596
708
697
0
624
511
745
654
735
761
489
692
815
817
399
570
668
642
595
794
454
515
497
677
341
663
571
736
634
369
803
561
730
803
738
762
785
499
684
934
605
422
635
802
824
595
371
545
579
649
610
483
307
593
730
762
664
523
248
702
752
649
453
611
802
520
575
60
700
474
380
587
772
609
428
427
714
682
418
660
793
711
426
496
780
780
613
690
401
526
448
601
357
765
652
730
583
699
573
425
696
595
619
599
506
514
786
707
688
616
767
762
747
536
542
484
676
489
665
671
631
407
633
702
681
392
501
646
422
468
859
502
462
501
814
447
780
784
140
719
525
841
655
523
718
830
444
544
646
631
453
673
538
746
652
696
589
654
793
707
676
728
789
613
570
274
614
598
608
624
699
680
558
514
665
758
645
743
341
741
657
642
568
428
603
609
693
502
564
527
843
670
625
270
750
784
548
659
704
441
798
423
537
518
525
575
732
42
382
947
653
676
774
727
402
606
754
720
547
539
433
630
465
604
832
601
387
728
574
514
721
627
110
592
653
411
714
568
876
625
650
732
423
737
465
599
351
408
540
404
550
775
482
768
428
810
704
552
689
790
479
670
665
697
661
725
565
561
500
481
772
517
655
504
697
449
622
729
678
540
749
773
723
340
711
743
435
551
599
683
701
583
192
673
725
699
610
645
503
610
352
555
671
494
666
626
521
691
238
315
720
768
584
535
704
535
389
752
501
483
562
359
526
656
540
607
542
698
348
450
737
773
409
794
697
593
456
945
500
379
428
731
819
250
743
651
539
544
599
824
737
461
764
569
740
744
835
706
695
772
511
449
785
573
774
574
645
632
676
625
305
550
543
720
675
652
633
636
635
849
610
663
423
611
774
325
660
648
636
421
605
619
594
695
429
404
778
915
452
673
531
675
693
715
239
695
620
694
552
689
632
723
627
807
566
672
703
806
862
682
686
656
579
741
550
632
845
627
490
429
474
524
384
252
594
544
704
800
891
844
677
814
674
0
811
863
521
733
653
567
500
463
620
614
662
817
600
530
689
557
644
680
621
485
619
705
382
729
449
342
579
373
692
333
442
793
689
643
672
412
750
463
606
625
217
462
679
447
958
583
476
529
866
695
639
264
715
767
607
678
714
475
620
370
389
629
667
628
909
454
748
564
827
731
537
573
663
663
289
656
488
680
796
427
560
657
489
550
727
687
528
507
721
603
501
575
292
663
745
854
582
737
666
676
524
790
457
316
573
806
546
670
797
625
687
408
697
524
674
520
678
716
702
759
536
720
692
581
720
899
681
457
726
1045
681
665
696
471
374
749
429
574
426
675
607
524
410
567
0
589
568
871
638
649
685
772
712
628
837
275
573
768
664
580
582
343
655
775
698
729
319
693
675
624
659
463
664
759
641
645
631
968
678
712
458
601
612
543
563
625
603
356
817
500
610
645
710
576
607
644
598
732
472
825
686
509
753
423
695
318
453
567
504
566
447
228
601
472
517
600
692
673
574
738
659
709
632
668
635
506
689
700
507
610
607
678
613
187
768
309
587
373
719
779
344
425
797
624
742
721
687
593
630
601
723
714
491
698
705
882
71
829
27
794
472
711
731
770
627
637
360
837
671
458
610
596
488
687
608
675
805
617
467
574
620
752
817
597
427
943
742
584
660
623
479
694
599
570
593
607
395
621
726
643
643
700
682
705
684
852
800
31
627
620
594
870
854
642
704
623
711
578
489
587
566
475
716
553
550
735
660
647
577
520
463
611
592
717
625
577
486
489
386
440
792
553
618
152
400
670
723
744
643
566
433
566
734
521
405
572
212
457
658
819
668
709
426
477
651
587
472
815
506
811
74
550
435
761
847
672
395
697
635
729
722
608
693
649
620
633
544
504
557
305
434
505
736
743
710
711
558
862
710
746
334
337
618
693
463
471
478
503
742
796
771
604
594
700
564
134
342
622
711
241
688
874
521
754
513
568
699
672
619
536
722
632
593
382
59
636
665
700
528
685
279
682
526
438
600
452
687
551
430
375
579
484
592
734
612
844
823
567
503
742
472
453
653
711
153
464
628
611
644
714
631
520
775
551
488
300
393
718
772
907
672
403
594
569
658
709
463
466
841
539
456
667
426
591
464
678
766
855
560
714
448
501
436
687
0
631
619
803
518
889
726
609
758
649
729
681
378
470
484
691
890
556
711
573
654
329
463
560
464
219
729
631
0
599
628
561
519
607
455
864
850
485
616
717
632
549
704
640
690
616
707
309
641
773
776
465
865
436
429
488
550
704
460
542
654
656
583
590
442
482
693
702
592
344
700
653
688
357
703
476
810
539
576
428
620
483
555
647
368
431
692
511
625
616
619
399
795
501
544
631
737
710
593
482
722
595
549
557
574
875
286
479
602
763
514
590
611
605
535
465
521
613
257
545
549
632
638
640
645
306
668
1026
678
868
713
745
736
696
737
596
513
706
709
745
590
713
567
851
622
881
567
507
441
436
660
430
903
483
422
811
616
561
491
789
586
514
592
663
773
674
739
582
577
524
587
621
951
784
666
673
673
738
567
700
820
270
612
519
238
426
806
611
777
527
748
498
759
500
896
580
569
599
260
526
680
525
798
925
668
538
620
435
720
590
980
745
692
714
642
501
619
665
873
424
687
685
689
700
722
562
480
579
776
419
600
622
274
717
651
479
577
491
498
565
567
631
684
743
794
458
415
326
735
707
319
345
755
691
631
703
708
545
533
614
979
600
852
795
826
537
624
473
613
507
494
619
782
80
557
660
643
738
598
664
532
520
398
725
628
827
599
706
601
777
360
538
687
982
504
596
741
592
802
703
583
604
526
668
450
711
556
349
907
630
601
474
643
546
629
697
556
286
519
878
515
543
614
631
793
671
513
270
826
912
600
658
782
835
792
573
727
780
696
778
427
737
315
678
551
438
398
608
632
632
709
826
499
748
317
535
753
670
511
721
703
404
154
471
582
643
812
669
551
710
763
759
596
613
645
826
548
815
712
709
465
702
656
584
570
545
458
659
656
489
618
489
707
423
529
940
665
436
741
499
665
910
546
718
651
682
568
341
303
596
616
669
453
573
761
746
628
339
611
345
488
467
643
649
590
855
735
554
503
619
530
646
590
436
506
622
600
760
733
896
522
675
677
490
733
366
412
705
672
748
640
780
497
780
637
521
536
621
437
319
667
708
550
744
617
623
507
534
321
550
771
512
503
371
547
687
665
844
810
676
854
575
394
575
490
954
505
724
461
605
758
669
725
696
724
567
867
698
610
524
691
387
645
609
328
375
509
659
659
613
497
658
546
626
344
542
520
525
600
777
575
482
556
600
816
516
560
518
605
600
593
609
477
695
755
956
689
637
282
662
731
401
644
736
686
722
830
633
673
445
775
820
443
672
555
105
797
788
492
586
672
630
884
440
474
578
397
615
733
603
625
443
515
530
486
636
805
508
566
603
667
671
443
658
636
428
506
792
600
557
621
783
477
585
727
715
699
697
843
579
582
520
277
461
703
761
351
118
764
501
717
383
803
523
690
565
479
377
783
585
726
750
615
593
528
376
751
680
506
614
345
555
666
857
460
355
719
778
630
606
531
832
457
866
547
706
575
648
780
758
369
568
418
620
687
401
429
670
697
505
829
618
734
698
526
492
480
643
609
580
802
416
299
613
654
681
732
673
668
597
513
455
609
689
808
602
512
698
546
646
621
676
717
239
689
509
686
459
634
697
402
760
567
482
621
503
712
340
360
546
648
551
532
718
655
603
549
759
534
643
721
575
523
721
655
697
519
629
603
762
731
494
628
777
783
776
761
676
767
454
436
647
744
712
748
539
460
609
664
692
701
601
587
687
618
255
479
897
671
486
648
726
586
730
610
641
769
715
382
778
660
321
521
633
586
432
806
486
497
299
667
708
762
501
604
709
427
908
336
378
695
725
617
698
662
543
433
618
638
449
187
715
736
726
277
495
491
605
687
820
672
304
600
623
809
557
654
915
839
575
0
475
675
383
666
696
614
530
467
633
595
392
587
715
651
779
670
406
627
704
834
511
623
240
685
538
595
811
590
531
571
613
629
531
607
551
832
588
479
732
703
687
819
620
610
698
663
655
654
560
612
498
636
653
872
471
695
524
465
625
577
891
571
757
650
858
631
597
347
519
822
425
513
854
352
703
584
439
646
815
720
546
424
754
485
604
835
373
887
560
561
212
669
608
715
620
578
620
246
563
526
623
826
590
512
605
584
557
539
749
736
446
600
750
398
582
638
496
624
589
588
553
675
547
740
738
143
689
494
505
673
520
626
268
514
588
759
505
615
705
537
527
875
545
770
592
572
821
598
778
716
611
692
598
720
396
638
811
451
591
580
293
919
574
674
684
825
654
753
657
140
424
554
563
769
826
848
746
724
470
674
594
423
629
486
640
682
694
655
643
509
669
778
708
829
849
706
801
831
678
670
638
0
474
322
609
494
794
594
720
701
640
541
741
817
736
443
549
475
0
151
541
28
759
447
586
768
690
261
337
480
623
701
849
181
381
632
549
798
553
615
452
586
431
540
960
582
701
585
338
823
424
397
662
709
663
695
564
505
627
850
797
328
659
440
701
267
692
0
607
581
706
637
715
352
569
676
885
531
574
667
684
607
713
429
124
657
739
564
624
405
475
702
614
630
507
702
497
584
665
847
602
448
328
502
350
624
853
720
635
321
572
498
626
631
848
462
517
636
548
465
608
509
780
662
626
574
321
842
670
463
785
682
595
167
632
478
609
698
779
812
594
660
560
738
742
301
571
514
524
789
497
683
572
861
543
784
576
643
691
580
572
580
319
516
695
339
695
639
641
745
662
600
185
161
350
612
604
852
600
744
667
526
553
589
682
572
566
579
694
730
10
732
613
550
623
648
479
657
723
244
800
619
676
800
526
383
929
667
723
638
529
760
629
564
0
641
435
608
593
659
651
711
1014
542
652
576
589
568
598
483
685
760
589
812
723
560
734
539
138
635
693
769
521
509
675
598
772
813
785
703
709
689
662
295
719
465
448
623
808
347
672
311
691
387
564
523
726
776
551
867
469
316
578
551
742
772
689
291
694
390
612
485
793
392
605
567
580
553
667
545
519
784
396
763
429
612
658
576
701
471
676
396
320
452
424
707
669
554
445
568
568
517
366
747
606
765
731
448
795
314
698
657
325
545
512
694
789
832
782
440
572
562
617
1021
436
532
709
712
543
480
542
603
394
562
563
621
731
565
560
582
399
570
543
658
624
663
601
612
638
548
488
721
607
407
528
664
720
383
364
920
558
287
576
525
440
691
324
735
579
0
522
629
862
664
627
218
687
693
548
598
458
718
299
458
564
397
678
529
558
570
922
712
545
789
575
681
579
710
532
487
407
738
576
544
659
554
582
687
662
571
499
648
492
635
598
689
690
592
682
758
684
479
422
382
443
694
816
756
627
654
592
516
538
705
657
577
424
481
730
773
675
229
633
769
534
705
461
815
615
575
896
656
413
861
718
671
728
598
651
822
721
834
782
588
617
531
705
693
690
633
812
293
825
576
535
484
820
906
853
756
618
615
575
463
583
682
798
681
777
545
652
740
503
611
439
556
436
490
759
648
610
699
601
436
545
614
703
622
706
574
423
513
661
815
467
535
592
514
811
390
726
610
526
560
526
666
872
507
601
732
784
716
557
632
693
671
859
689
748
705
940
760
689
509
700
643
561
633
693
674
687
598
488
313
512
695
718
307
748
507
723
570
468
696
674
751
809
414
818
617
586
288
612
527
684
626
673
420
751
697
868
720
439
613
358
346
688
408
533
167
645
522
488
775
579
483
395
587
557
457
526
584
620
760
666
611
715
643
542
396
323
620
820
576
408
714
247
652
1047
756
766
765
640
653
730
528
860
631
558
730
892
454
686
768
856
819
525
627
541
743
638
426
481
695
699
748
667
635
712
581
736
620
798
661
376
637
314
305
715
744
613
602
597
499
602
583
736
550
701
876
521
562
507
373
700
668
567
748
813
665
609
554
908
553
487
654
587
860
505
468
512
815
536
709
664
605
525
768
691
895
639
871
409
525
115
229
563
642
626
535
637
678
618
669
583
745
682
387
356
618
530
457
687
486
388
629
516
669
581
583
255
689
535
607
563
576
729
339
687
599
694
617
441
425
697
529
583
521
617
1024
505
691
849
736
281
595
465
535
605
606
390
851
705
608
603
775
429
831
392
578
722
522
659
606
655
565
692
594
636
631
730
563
644
565
631
706
390
487
671
643
637
591
676
742
429
661
303
535
669
592
895
700
418
543
578
500
446
838
482
740
492
610
869
746
523
720
606
465
781
529
816
567
435
382
897
356
746
583
717
709
725
565
339
586
653
609
579
671
600
608
492
653
700
681
620
487
493
514
652
585
426
591
491
653
478
621
618
692
641
259
547
653
647
723
555
574
628
656
630
646
645
550
394
767
527
651
894
684
647
563
592
835
664
542
681
815
654
559
755
464
407
616
604
692
704
800
615
767
582
829
381
809
753
662
655
600
480
608
305
580
545
692
457
483
554
601
659
653
761
552
430
508
662
483
244
538
862
803
617
749
376
736
623
674
646
564
626
653
519
532
654
639
521
644
713
538
599
540
615
812
659
617
260
801
681
422
598
520
702
380
650
607
712
451
600
800
747
999
547
891
664
395
422
363
501
596
508
320
654
649
745
524
165
728
159
691
674
721
567
611
558
643
435
623
648
850
668
542
372
502
635
570
490
657
41
589
619
698
201
633
509
679
588
648
540
882
645
449
477
834
740
610
594
533
583
685
398
579
365
369
675
611
677
318
496
690
703
477
623
307
762
622
426
399
444
591
226
524
629
412
709
788
657
539
724
293
539
483
653
411
586
755
591
425
666
439
449
442
340
681
489
630
677
586
679
727
749
490
340
401
654
762
615
612
811
382
641
692
460
572
436
500
463
650
582
488
600
639
615
530
649
493
675
768
487
575
780
495
355
450
407
651
560
334
651
295
736
610
605
669
335
565
511
807
35
628
660
797
570
663
693
635
577
353
735
767
659
501
526
933
604
651
346
688
438
877
555
824
563
616
548
602
616
576
576
646
779
743
619
672
641
857
583
827
584
824
506
582
439
434
814
571
472
575
562
747
438
732
742
600
580
584
488
591
953
612
563
636
663
734
641
622
481
556
648
662
567
361
675
592
470
724
596
441
724
501
502
528
685
611
296
340
681
692
611
534
680
676
627
730
504
745
690
681
302
525
704
363
581
711
813
637
560
562
560
493
551
753
372
522
756
799
437
595
529
558
611
758
629
739
555
212
595
643
671
495
426
473
752
648
583
510
490
630
354
574
553
709
811
687
791
713
887
452
430
606
692
654
100
551
884
636
834
476
516
318
549
625
619
433
617
825
704
664
782
804
556
649
450
558
722
492
441
770
687
945
574
671
660
717
703
676
579
599
463
432
627
602
1055
688
852
593
589
461
473
560
746
358
761
618
633
630
516
694
614
677
557
924
566
675
508
681
675
550
592
811
833
841
518
614
667
516
788
762
542
585
620
312
625
469
429
705
696
542
508
594
575
766
684
940
625
687
610
524
497
584
432
588
785
829
714
653
385
461
526
724
714
717
636
575
519
608
471
574
747
489
516
577
656
793
674
682
430
849
757
692
932
825
824
661
563
663
534
592
631
536
584
680
479
725
670
549
574
500
358
417
692
633
695
565
430
596
623
702
543
231
617
802
496
759
677
681
460
647
480
728
615
516
655
719
443
642
345
484
649
688
661
698
576
571
398
450
726
490
727
470
773
681
392
338
605
636
749
546
674
462
720
587
454
360
487
301
559
578
809
836
625
592
533
610
566
765
611
483
712
525
707
789
737
541
425
619
532
587
705
886
712
424
201
783
453
418
697
640
552
622
860
490
794
541
494
393
607
554
723
432
561
624
481
617
485
555
690
355
567
153
340
667
926
474
676
751
901
730
690
596
948
664
683
652
801
522
477
704
563
647
438
565
595
695
595
799
591
736
669
654
654
363
463
570
598
472
647
728
685
514
700
473
642
677
757
757
550
634
558
504
725
719
702
352
534
471
872
677
443
585
717
765
589
649
638
533
589
518
662
446
662
697
799
516
482
751
455
774
731
782
406
667
638
584
683
797
712
661
617
426
619
685
462
614
628
590
194
658
643
715
765
453
675
165
553
696
479
636
606
439
818
779
682
725
551
377
767
567
723
478
848
530
665
697
587
757
442
512
873
622
485
729
700
712
776
608
574
547
560
573
758
560
520
576
366
619
454
498
526
443
609
672
419
513
673
570
742
574
461
639
823
487
698
597
629
889
748
668
540
644
513
459
489
640
454
500
515
505
713
617
772
601
617
912
709
670
640
222
379
576
491
808
631
947
694
619
654
511
756
331
656
549
717
405
603
656
697
605
602
612
580
844
590
605
657
613
568
652
691
537
452
667
698
771
828
773
658
636
650
629
746
838
804
945
678
218
527
372
632
747
754
646
684
738
763
240
569
609
891
624
613
546
650
440
786
497
455
673
876
616
701
652
752
755
497
705
761
641
651
770
585
516
622
585
755
742
864
602
594
482
685
687
671
601
467
495
547
622
455
712
479
584
964
733
489
728
726
658
616
776
713
628
895
415
705
385
559
760
705
608
418
560
994
654
528
650
552
649
591
623
405
610
562
802
640
567
720
399
457
653
670
808
819
463
674
399
555
472
755
729
539
684
526
512
607
583
823
825
526
516
430
480
626
262
482
779
658
698
616
538
731
596
621
726
742
453
573
458
589
770
563
516
728
654
638
788
674
652
592
632
379
591
766
563
601
363
591
843
612
196
583
0
926
643
798
826
322
665
530
824
713
434
945
848
631
562
791
634
785
526
597
418
593
331
617
503
555
643
740
492
478
777
454
517
788
745
622
630
381
555
196
901
687
560
588
551
714
477
638
409
667
505
499
688
786
554
657
724
952
554
408
622
637
343
579
564
683
418
535
636
719
923
650
706
795
701
674
730
660
739
541
798
718
208
605
709
623
609
825
569
985
662
640
785
607
871
514
499
652
643
436
680
440
685
336
551
495
530
683
667
592
425
662
560
736
667
638
707
566
574
974
201
590
559
625
458
414
904
776
509
547
681
641
631
642
706
475
611
737
687
943
722
178
590
719
748
527
520
628
1061
857
473
766
680
654
778
599
537
397
520
358
654
440
392
711
464
704
652
503
638
408
583
620
626
320
800
491
601
696
344
598
871
429
603
663
575
693
808
814
471
639
500
446
552
526
850
671
782
657
301
694
619
472
579
430
880
569
658
546
513
331
752
545
933
511
657
595
413
617
759
537
708
767
583
554
654
601
679
845
575
725
751
639
377
191
357
540
423
549
621
617
514
551
527
477
679
679
638
126
651
829
549
609
475
581
772
579
431
377
825
649
653
414
532
658
648
609
643
552
695
629
627
374
541
273
372
635
600
500
789
628
667
347
702
468
820
416
627
636
732
623
734
457
748
527
630
441
630
447
633
707
501
611
475
611
473
791
555
772
474
412
542
277
740
744
775
710
649
413
32
565
813
434
590
782
800
573
665
530
539
352
516
690
794
614
733
580
0
491
648
737
782
669
298
581
469
685
665
599
591
567
525
638
836
656
462
590
666
566
690
701
438
648
633
674
582
791
983
443
537
329
331
683
587
779
889
613
726
590
705
678
653
328
602
642
549
724
532
630
448
1013
663
508
652
650
568
464
761
708
560
786
793
765
694
612
749
531
697
806
499
573
352
495
762
530
623
541
620
681
546
760
438
722
549
348
0
607
672
433
686
739
647
608
622
568
696
583
507
690
542
763
684
582
710
571
614
700
644
640
377
565
696
706
650
670
0
392
608
445
557
730
545
717
310
449
578
275
886
793
996
107
455
528
594
748
609
639
758
174
812
713
422
563
740
570
602
768
436
852
304
793
473
577
543
804
631
473
540
829
667
513
580
641
863
662
749
423
466
791
681
657
280
597
923
778
651
543
564
783
564
772
573
730
516
654
638
531
624
780
664
643
668
611
640
524
830
586
777
614
490
706
718
648
489
433
345
596
919
679
599
508
245
702
465
729
450
615
859
643
614
369
500
676
685
619
792
576
167
856
635
825
575
400
452
415
507
490
545
790
500
534
574
779
540
486
181
384
770
584
466
596
548
628
612
780
484
520
496
831
553
697
609
568
616
574
399
502
589
666
744
540
733
799
799
576
664
547
521
578
506
661
684
615
638
556
633
516
762
629
559
819
668
658
310
828
819
301
578
708
888
539
638
646
738
692
482
758
601
291
817
716
772
759
536
551
429
624
708
465
753
807
499
484
569
283
734
440
641
372
463
931
496
509
615
765
279
687
741
740
557
641
591
567
852
521
872
549
735
655
624
700
377
817
938
827
770
663
578
522
495
847
794
534
402
769
643
646
641
583
741
655
558
621
686
744
668
781
531
645
559
546
707
732
405
743
130
598
538
698
633
748
468
607
633
700
752
569
706
711
786
700
623
575
377
559
870
668
525
585
655
850
716
674
568
614
669
587
788
695
358
481
459
522
646
651
128
464
758
704
597
584
630
646
468
371
608
533
655
966
710
741
546
546
378
715
605
668
504
525
454
428
597
615
679
656
589
707
724
740
927
621
555
413
660
575
546
619
472
614
758
639
487
303
744
531
837
456
774
747
507
243
691
612
604
504
519
436
472
518
675
567
694
680
394
592
596
249
597
914
689
515
682
799
649
610
672
766
601
733
747
762
765
619
810
556
731
561
760
598
779
692
631
679
574
594
370
556
455
659
622
653
498
597
273
765
560
585
340
281
815
619
821
748
747
596
672
376
449
768
484
683
588
771
662
618
720
499
757
645
681
514
644
613
444
589
646
723
828
757
698
656
518
383
861
459
932
622
681
369
499
679
620
492
496
718
612
772
700
829
273
473
498
626
657
593
636
411
859
205
327
351
702
666
626
666
548
304
623
854
682
334
479
440
726
431
502
542
603
615
376
608
640
549
377
660
692
540
550
689
780
767
461
620
798
788
697
684
613
659
691
539
509
667
598
592
800
51
786
676
206
663
538
594
738
639
681
568
522
633
435
732
486
606
874
820
667
514
711
829
645
526
732
694
369
660
953
639
755
695
637
841
561
642
639
585
842
739
567
774
800
813
916
607
598
380
494
499
488
878
680
720
835
770
869
471
572
430
799
685
773
484
318
712
577
378
686
649
682
586
673
705
656
761
879
350
669
737
1014
107
500
358
298
416
655
503
513
638
655
352
736
773
874
613
554
542
425
585
532
642
700
684
648
806
604
652
632
672
584
487
603
716
626
620
411
610
795
370
863
596
696
755
719
617
580
510
686
497
733
528
0
753
488
688
733
692
648
522
589
549
599
726
815
491
677
649
417
703
358
672
763
699
733
435
746
654
569
480
804
604
659
535
594
587
634
649
940
408
632
540
574
669
96
547
742
271
423
592
630
560
558
587
551
691
485
524
654
851
662
362
410
554
919
334
660
557
591
142
610
494
509
527
534
520
567
781
681
624
573
741
284
571
831
385
787
773
892
733
725
402
497
694
613
394
630
586
654
788
289
820
411
590
489
759
401
628
493
781
588
241
0
645
483
371
853
467
615
475
808
532
813
811
459
617
612
834
304
773
473
425
660
426
720
727
583
750
698
644
534
587
379
464
665
645
663
839
445
418
693
402
535
373
603
490
861
615
269
567
447
568
649
701
304
560
591
528
496
403
507
546
454
814
638
846
350
531
751
391
624
619
668
636
714
257
769
616
640
359
554
817
285
883
735
728
388
714
683
709
451
424
603
591
678
631
645
614
563
641
779
556
735
619
578
967
841
526
723
747
603
922
329
523
680
592
668
683
763
592
388
684
643
1025
479
653
573
421
785
496
775
513
658
680
769
698
677
563
637
419
565
713
688
789
612
684
680
890
712
669
679
638
209
601
663
698
830
863
363
511
521
785
702
761
611
449
124
532
601
603
634
562
697
847
592
347
548
640
608
557
768
735
917
386
625
624
427
174
621
831
476
707
673
737
664
712
725
308
649
526
807
334
687
636
351
724
227
803
475
601
639
683
498
706
436
640
546
404
652
635
175
671
511
684
525
264
828
501
850
491
859
650
363
437
713
647
573
841
189
689
508
55
294
230
617
788
519
661
618
430
567
795
654
427
674
640
535
465
734
354
503
760
514
871
657
504
474
756
201
736
925
559
555
747
603
519
340
614
383
318
661
636
93
338
543
655
678
719
770
991
577
328
641
344
694
471
525
421
460
565
669
603
445
862
627
576
682
564
541
712
696
124
882
518
736
700
422
561
790
462
671
811
458
652
732
573
526
439
666
570
779
864
641
632
614
623
546
588
506
613
451
516
827
900
559
659
456
868
624
549
695
614
736
827
517
584
736
729
353
560
356
816
739
518
473
680
181
547
789
690
788
732
687
477
382
749
539
705
686
625
508
615
739
564
683
695
529
589
559
618
701
411
790
579
558
583
406
527
491
524
625
890
681
717
648
361
557
626
432
616
615
546
827
823
728
573
755
776
579
470
690
712
436
192
480
455
538
541
579
630
551
688
608
632
634
586
651
667
596
784
829
616
561
453
781
625
495
635
443
489
471
312
488
634
461
632
330
728
669
602
516
752
674
620
606
804
516
788
709
935
584
821
490
623
407
274
674
764
594
708
713
519
717
719
772
363
819
548
665
495
643
540
911
665
513
190
609
471
751
935
541
457
627
652
679
241
366
671
736
823
572
597
515
740
614
606
711
677
632
480
817
670
218
729
522
495
575
595
889
645
726
564
446
915
493
689
415
501
481
543
755
620
751
726
554
585
595
760
991
526
580
433
362
749
531
551
530
561
600
570
592
807
618
802
624
889
652
244
536
461
922
639
583
602
703
636
633
575
451
777
594
836
656
846
694
667
201
404
661
344
304
700
732
627
711
418
428
820
734
347
857
364
754
576
546
608
640
918
542
644
599
722
610
697
177
516
576
589
628
661
554
764
336
438
740
492
510
341
701
504
766
640
833
258
716
557
396
515
675
655
496
556
651
472
373
225
508
616
674
634
524
586
638
344
418
570
708
512
689
890
323
443
656
666
481
648
699
693
705
841
610
443
698
422
665
701
546
393
507
746
350
366
602
805
846
651
761
743
561
404
641
549
719
550
544
879
571
714
649
415
545
616
648
641
692
209
662
644
671
587
749
621
781
413
699
480
563
526
658
605
801
668
624
398
666
336
634
626
572
451
434
562
588
594
440
500
682
617
356
568
562
553
412
547
588
655
816
757
716
654
690
574
544
734
547
605
630
551
547
669
690
661
423
696
680
490
606
492
499
420
469
646
686
347
851
542
217
672
419
727
457
693
593
607
515
631
528
500
689
578
614
343
144
695
661
233
593
782
432
505
694
684
586
620
394
619
547
780
679
729
548
505
695
458
697
728
874
468
649
411
430
438
559
801
560
564
655
561
618
575
572
655
539
591
579
498
741
714
542
353
691
385
733
570
581
389
656
667
508
398
794
663
485
550
697
637
669
618
500
631
755
668
811
766
337
741
623
738
693
634
651
232
612
619
495
602
610
618
475
273
789
695
18
657
672
808
780
820
747
527
572
570
674
381
486
613
893
586
647
824
354
540
675
737
873
506
788
365
522
697
774
500
707
472
461
412
539
570
888
591
610
404
244
713
608
630
606
638
793
761
583
617
698
538
732
552
662
337
636
683
705
437
657
802
654
247
358
782
532
639
779
719
619
731
669
603
590
473
695
312
583
525
666
680
532
475
922
357
921
682
810
694
736
726
558
517
607
589
683
564
545
741
405
635
465
686
602
391
480
544
760
678
884
583
536
691
809
608
797
740
901
595
657
451
860
463
612
640
798
854
796
736
638
396
471
646
642
943
905
545
277
439
768
594
636
565
484
776
278
711
757
690
617
614
701
827
596
733
704
445
792
470
560
502
582
703
624
302
728
541
719
583
282
664
711
850
613
531
610
734
408
581
593
501
688
595
684
695
369
175
635
788
446
609
625
590
628
519
576
703
722
649
560
436
326
396
461
802
422
639
514
396
447
516
729
635
543
738
622
646
679
381
737
634
610
575
742
649
526
173
676
199
453
686
696
694
606
656
869
177
182
639
460
638
932
474
492
343
687
396
659
574
560
665
216
713
545
487
408
556
344
644
806
744
441
510
404
533
936
766
768
450
420
687
524
695
820
512
701
606
682
837
490
492
516
555
657
475
687
441
665
689
486
627
540
696
666
511
654
751
557
522
684
351
674
818
411
813
414
637
690
539
733
800
535
776
414
708
287
153
686
686
468
575
696
512
225
659
628
811
534
268
570
545
683
695
843
590
463
590
610
320
829
610
607
828
519
395
646
755
682
746
381
722
701
519
514
606
609
609
621
624
582
613
559
605
286
578
536
452
558
375
545
711
688
349
471
627
524
695
393
345
397
569
625
383
752
664
712
118
1127
499
614
621
585
851
721
587
570
687
525
730
475
798
555
533
599
576
455
564
823
577
408
415
593
620
486
770
711
543
412
721
392
629
662
1020
574
364
753
554
445
567
451
471
833
897
660
556
628
572
847
643
585
620
320
669
402
670
727
795
916
516
369
400
433
815
626
686
769
577
319
640
498
379
667
716
366
563
116
535
401
545
644
659
429
611
758
792
470
733
710
466
710
576
686
690
738
538
444
374
848
640
571
484
406
466
546
626
737
666
650
676
642
448
609
634
842
841
652
449
702
780
648
686
500
237
688
412
545
134
529
791
689
591
583
655
633
695
425
744
452
616
596
548
534
776
727
678
782
703
628
623
715
412
581
467
713
584
630
772
687
752
826
753
523
419
614
629
818
724
643
716
391
815
500
606
470
607
459
382
657
654
510
762
522
610
601
487
537
687
567
852
664
683
566
714
845
642
648
488
669
365
688
844
574
753
679
683
620
355
565
531
545
778
552
673
573
716
652
809
662
572
631
689
709
556
578
613
437
792
654
0
773
346
585
651
563
643
548
737
857
345
903
133
521
762
21
689
499
734
763
712
516
621
665
713
553
672
635
574
483
492
767
554
547
765
582
610
659
358
800
592
813
662
0
673
727
491
407
574
612
607
412
687
658
567
583
514
787
412
494
773
724
191
923
756
599
525
506
588
725
653
478
583
370
620
608
709
586
847
624
507
731
535
628
932
830
706
660
763
740
526
449
614
712
724
560
908
625
586
312
785
764
558
706
564
683
640
843
728
659
542
719
694
604
730
717
507
694
501
375
686
280
581
590
687
840
519
510
542
328
484
474
842
416
667
580
572
165
648
395
494
484
589
754
623
703
529
431
612
781
684
606
370
592
698
686
575
742
353
550
672
653
517
832
693
563
592
865
517
271
296
611
515
585
732
630
504
451
731
691
661
701
661
623
550
649
598
492
95
459
679
329
496
561
635
618
737
383
807
665
489
558
677
1015
572
873
670
559
673
589
329
409
736
641
707
644
702
692
431
609
327
586
777
741
665
480
709
537
727
713
347
479
751
942
801
740
437
611
545
602
673
618
632
665
681
717
568
598
585
556
592
447
668
577
783
549
648
557
727
439
498
796
728
398
461
581
814
631
641
807
631
581
460
827
684
685
554
730
741
559
736
535
716
366
513
613
797
624
601
427
789
664
345
657
763
738
726
268
723
575
539
1083
324
488
716
796
520
588
704
625
621
601
370
554
669
608
773
685
658
570
628
539
664
721
562
101
761
663
837
667
819
494
544
331
498
661
567
672
507
540
601
564
723
445
637
590
497
754
677
480
610
551
0
732
601
662
584
615
566
810
750
884
595
368
618
790
707
535
176
604
680
631
533
629
870
433
485
538
560
554
720
499
774
862
527
739
517
847
655
578
395
599
587
765
130
713
604
624
325
713
657
232
619
554
151
452
785
408
552
582
440
610
569
634
354
113
648
367
570
674
585
675
483
714
424
646
524
429
576
646
390
618
433
712
567
535
741
843
840
847
647
428
393
622
578
838
797
471
389
648
691
751
569
602
724
660
487
556
571
642
646
357
338
660
263
846
677
428
609
719
390
339
833
747
587
614
587
564
599
511
780
756
579
656
557
880
536
633
695
518
568
622
576
581
729
717
519
697
691
556
656
521
650
553
678
641
864
479
637
779
701
288
492
302
774
561
740
534
686
673
414
607
698
431
736
656
424
738
645
716
779
759
448
640
744
990
295
644
457
773
647
646
849
570
551
671
402
356
645
574
618
434
485
457
429
520
673
324
544
669
389
484
689
420
475
651
357
754
647
377
691
597
372
165
580
452
644
647
694
846
724
506
630
548
139
570
901
523
699
601
491
756
379
733
622
843
684
683
493
597
627
664
643
299
470
453
570
651
463
527
650
592
637
523
650
672
816
611
749
794
707
618
712
755
643
663
617
722
524
583
762
742
490
782
976
697
375
662
547
160
665
611
598
640
730
556
856
879
566
694
616
630
490
598
479
658
541
530
625
641
791
646
670
800
579
676
555
822
513
533
450
350
509
773
748
653
476
674
239
623
619
736
553
1022
556
622
533
682
806
608
827
620
560
579
934
722
553
356
565
509
749
526
739
541
540
772
562
737
658
770
379
803
678
454
489
582
643
661
492
636
534
768
505
791
858
560
675
643
182
699
773
535
601
681
669
503
609
624
534
360
704
614
669
509
718
573
492
768
597
415
591
687
659
728
608
637
765
508
497
892
699
560
47
689
698
458
373
554
745
514
668
998
514
746
790
759
564
613
568
617
279
145
590
452
604
645
443
636
718
669
654
736
637
731
783
1059
569
440
623
649
781
555
522
459
605
849
397
548
518
645
622
612
560
698
746
684
272
638
671
737
496
395
497
736
586
556
594
642
742
632
525
461
456
635
541
591
580
306
492
505
757
412
736
988
550
638
682
455
834
485
729
658
776
539
381
752
319
765
611
627
585
351
283
903
646
469
676
820
623
479
704
792
384
498
602
576
431
853
856
476
712
543
752
540
638
474
615
418
497
527
641
378
495
628
495
575
527
282
755
763
686
466
645
539
638
611
805
498
429
906
530
721
805
620
320
594
679
717
674
749
607
321
668
571
579
634
488
905
680
472
697
563
817
313
760
786
617
452
882
659
485
679
758
498
756
766
262
680
578
790
687
560
1005
648
866
652
626
573
544
306
509
932
723
626
793
535
550
690
755
497
631
516
803
404
596
648
583
649
659
815
954
468
828
810
522
613
526
727
594
577
661
604
482
489
739
616
696
826
576
758
467
896
547
639
368
473
618
428
176
588
846
509
394
693
576
790
447
865
419
623
525
672
596
813
696
708
723
713
646
551
718
716
500
628
570
189
591
483
417
689
617
511
504
823
506
632
695
855
386
677
331
604
349
579
837
763
659
614
725
473
638
558
654
689
598
359
526
713
450
819
565
656
633
578
740
500
708
547
759
692
695
688
599
579
478
718
650
788
606
510
495
557
657
800
663
478
845
770
669
656
674
827
466
718
325
715
751
639
602
476
660
522
816
425
609
736
767
695
708
472
761
557
535
463
738
487
732
508
772
790
793
396
441
770
698
447
374
726
741
640
404
466
80
496
432
499
662
533
573
606
694
0
594
489
647
405
696
666
700
687
568
655
413
701
383
575
411
529
595
738
498
737
638
560
463
676
665
492
572
728
726
366
913
517
231
474
605
616
450
693
484
394
600
722
158
638
815
752
542
702
620
614
649
638
555
631
872
48
687
384
773
591
449
622
429
577
577
768
497
587
510
668
647
404
958
637
713
604
715
670
707
823
764
383
814
627
502
539
494
430
519
413
707
618
630
651
893
793
601
510
420
537
553
165
768
674
517
551
766
543
565
433
619
503
672
416
640
597
663
540
733
658
715
665
618
888
430
731
374
558
567
550
674
556
709
721
130
574
679
481
627
401
726
286
476
585
652
627
714
752
564
525
820
820
376
418
725
670
743
558
677
650
808
576
771
98
0
436
559
862
520
717
620
582
813
329
551
478
495
699
664
787
589
624
619
595
444
761
605
921
843
712
629
591
724
624
383
103
597
603
645
617
458
740
574
818
550
744
638
449
316
703
694
720
857
684
735
544
490
688
591
443
728
586
741
599
591
786
546
939
504
479
918
499
797
719
823
683
642
615
792
574
623
660
754
609
203
460
518
713
465
496
636
676
542
618
322
421
799
565
720
242
340
837
725
596
597
710
482
422
744
351
779
603
544
799
576
631
546
553
534
592
786
735
562
630
260
723
749
579
420
711
724
674
526
695
824
543
608
620
639
500
647
724
316
610
497
545
548
400
245
756
678
716
504
772
383
650
499
581
228
641
861
578
425
739
614
902
449
847
510
496
651
609
598
649
652
656
598
841
523
308
676
581
413
710
737
539
629
717
800
560
749
709
740
687
276
567
550
590
550
609
615
615
515
441
861
316
665
851
465
661
724
160
557
768
720
689
532
598
789
588
488
729
738
590
726
609
694
767
445
526
513
350
655
671
739
603
756
728
794
872
1031
422
678
627
559
657
370
658
491
624
547
636
508
679
623
638
517
724
608
487
628
738
327
669
395
710
724
324
708
541
740
705
455
721
550
681
418
524
618
607
844
621
748
732
629
874
787
674
912
572
610
736
697
760
459
719
444
849
465
625
584
650
534
530
708
567
794
808
692
590
714
215
649
373
736
688
616
522
599
468
686
541
698
544
548
460
606
776
781
366
876
613
786
630
607
591
642
684
366
762
730
589
596
731
661
554
811
698
539
524
485
482
752
751
574
678
698
455
725
576
741
596
0
578
554
658
780
554
560
589
656
825
567
418
456
671
776
552
839
726
577
771
737
666
601
423
717
807
268
913
530
613
602
791
456
774
661
646
545
368
381
566
790
415
649
149
591
713
471
686
742
354
415
641
590
665
714
310
605
562
815
565
582
447
376
654
502
774
602
466
701
657
569
792
536
388
647
752
704
765
672
413
658
464
444
639
496
851
610
567
650
687
570
459
612
690
290
607
747
318
592
579
510
725
744
606
418
575
528
793
624
599
663
666
539
618
185
739
575
991
555
796
702
653
420
789
723
517
575
626
598
823
605
288
594
731
773
541
667
655
902
802
526
765
609
658
664
618
627
705
677
407
527
477
712
636
617
667
777
689
544
638
484
588
536
301
677
618
632
0
737
560
1
626
655
404
393
17
671
444
551
747
757
738
662
700
820
310
805
606
668
575
519
471
592
754
729
466
611
821
641
688
638
612
257
349
696
637
565
833
406
639
746
497
698
750
554
633
542
690
431
456
624
481
690
754
681
520
691
671
633
541
431
667
592
302
844
420
625
740
387
667
523
590
225
521
844
622
678
866
434
710
569
744
710
632
531
652
609
455
612
579
638
713
638
733
639
374
687
829
776
712
911
573
401
574
663
589
634
382
701
770
620
456
699
565
863
663
394
598
683
595
661
802
465
592
355
497
132
860
551
550
590
580
710
667
587
719
634
677
716
648
559
628
692
667
677
550
589
751
577
610
683
646
675
739
603
642
476
543
790
675
413
442
500
698
592
601
702
618
586
574
439
566
602
809
366
247
656
587
567
702
749
498
633
685
598
439
452
340
580
696
684
646
955
1038
568
520
292
279
733
541
884
780
547
658
286
722
512
503
509
925
563
601
451
798
650
462
600
633
481
672
31
663
584
371
782
575
630
794
878
634
510
677
641
591
664
711
406
893
733
583
734
632
591
666
417
654
670
669
241
767
529
443
591
849
426
639
638
556
669
679
501
565
538
723
708
611
649
544
590
570
655
417
782
523
788
537
586
792
805
721
723
580
800
395
357
442
630
604
672
752
617
693
522
962
921
697
729
569
625
494
595
637
676
712
373
656
777
556
724
697
655
512
573
534
535
751
526
748
465
849
676
634
516
607
536
745
708
768
631
961
737
760
433
607
437
556
753
795
310
894
743
568
389
492
618
975
663
546
813
287
563
523
612
829
674
766
526
477
712
677
411
532
623
665
687
400
487
634
619
735
635
746
490
495
593
392
439
808
756
553
626
573
339
606
433
696
652
598
613
501
420
602
754
696
388
582
464
493
337
357
365
546
761
723
285
528
678
821
643
568
762
464
644
573
574
429
432
551
445
680
636
660
316
579
611
604
772
635
740
642
733
217
680
848
680
632
936
560
614
724
457
570
705
441
431
700
416
634
904
430
590
683
630
619
592
624
663
783
679
726
274
136
697
519
412
465
521
524
675
636
903
805
668
526
367
722
648
322
611
742
377
482
312
630
566
673
751
730
656
733
596
797
682
809
725
806
734
880
637
634
666
552
468
592
674
758
351
785
691
475
801
685
592
468
0
707
318
332
784
690
488
702
701
642
486
728
719
660
578
608
748
628
743
464
756
666
764
532
363
872
664
751
596
459
685
582
707
502
515
462
659
429
833
528
695
646
577
664
725
630
630
729
637
523
407
635
748
436
741
589
688
602
527
684
708
463
684
799
663
474
598
753
701
712
724
549
704
597
745
196
679
641
868
711
779
615
351
900
649
650
697
687
497
598
654
737
680
409
621
577
728
697
689
278
645
546
865
626
681
443
662
747
588
677
758
397
731
601
642
424
563
638
475
872
768
611
679
695
504
512
537
602
742
726
594
636
567
502
631
569
594
488
479
461
630
703
368
635
694
667
533
570
706
821
146
649
558
614
590
742
481
662
754
560
649
592
620
643
603
526
826
777
896
478
407
0
614
557
763
368
667
204
617
631
729
755
700
840
768
694
829
785
548
493
702
634
555
628
515
755
814
667
842
508
592
468
605
635
435
719
628
549
758
646
590
715
676
486
531
693
339
560
397
593
797
501
608
452
626
343
551
684
762
834
670
909
675
555
792
3
665
374
356
552
536
632
215
647
488
749
427
621
816
529
337
373
715
825
597
760
694
508
550
547
328
606
616
473
662
541
454
799
746
776
629
592
645
545
351
711
685
200
510
597
519
399
573
370
735
584
671
579
755
555
206
679
428
549
378
683
688
816
658
690
728
879
234
674
596
538
466
599
703
321
576
511
562
458
581
654
623
524
789
630
670
67
634
683
445
731
436
807
449
701
600
635
593
871
823
670
496
757
98
454
668
472
577
690
714
414
726
457
500
662
567
553
656
659
415
355
646
634
520
693
594
551
429
684
839
659
556
716
519
553
700
818
513
749
629
573
606
712
862
627
526
641
713
269
737
748
734
727
725
726
626
937
627
335
647
681
768
458
502
604
683
570
594
489
797
543
600
809
340
548
467
605
471
559
578
543
592
527
350
704
622
413
571
890
388
825
523
618
558
631
511
811
594
763
690
856
153
613
747
871
540
486
599
544
946
587
560
584
495
807
742
749
618
672
562
603
547
737
766
678
497
642
583
342
767
481
517
770
752
534
652
429
726
547
376
681
838
629
605
281
636
659
817
741
736
819
505
735
693
422
597
496
397
634
718
684
790
779
592
763
445
373
416
627
401
173
660
592
400
617
612
751
750
513
374
680
843
725
710
558
352
582
76
568
643
226
597
412
566
697
490
642
621
580
592
794
567
611
497
542
433
578
574
737
509
550
698
807
622
565
541
409
562
462
698
658
138
612
529
662
440
599
544
625
649
520
657
504
766
734
694
791
660
884
528
878
711
756
876
494
612
913
665
502
378
724
590
541
636
602
539
728
602
480
538
681
632
486
809
541
835
958
543
463
533
614
788
685
554
739
576
373
647
564
744
565
550
451
595
731
470
839
838
503
725
726
423
842
839
624
439
505
772
659
542
713
612
321
594
638
656
608
389
766
541
453
450
549
521
782
617
665
483
640
619
550
539
512
430
456
569
1001
488
804
465
675
514
493
569
592
567
726
717
753
839
710
757
487
444
706
562
732
392
573
528
798
394
725
604
506
471
773
764
445
631
737
667
633
266
520
704
687
357
595
614
541
972
625
654
597
446
608
763
782
649
518
367
459
371
640
761
674
820
637
452
819
870
703
655
580
605
584
567
750
652
674
742
347
405
732
360
775
568
675
568
578
468
770
603
553
664
651
700
621
354
506
675
789
689
733
820
509
684
622
645
654
426
489
809
604
697
549
487
724
791
624
794
641
367
648
856
515
732
796
407
240
668
395
938
747
305
755
629
587
708
559
649
713
651
659
522
508
552
751
553
531
232
345
453
531
724
508
534
792
491
831
406
789
436
437
509
755
462
755
533
435
573
628
661
675
582
697
799
864
608
732
534
775
491
486
550
629
515
630
824
391
697
888
772
436
654
603
715
701
678
740
635
550
628
725
477
613
328
817
629
686
804
514
584
773
391
672
678
593
572
807
834
752
759
483
578
374
716
767
404
539
701
471
427
789
444
573
683
627
645
795
589
720
815
603
508
624
593
553
549
665
702
537
302
329
588
665
655
666
463
793
495
760
443
700
509
171
690
421
653
485
608
732
670
568
336
365
540
676
812
554
503
581
595
510
537
839
598
715
608
429
643
816
762
625
535
863
615
422
556
491
467
586
797
495
583
459
844
488
579
206
757
864
327
643
968
560
715
564
398
825
599
595
634
594
657
518
909
686
971
403
549
794
565
613
791
458
324
720
644
652
744
543
461
452
494
672
352
564
610
363
462
783
716
481
706
431
663
705
401
467
657
692
616
488
723
627
651
622
567
487
600
931
604
634
592
771
790
736
236
585
492
615
561
586
386
892
240
549
848
654
425
637
459
572
407
409
799
815
475
742
731
658
620
562
564
531
903
591
768
599
558
762
422
362
545
692
610
385
737
598
609
562
467
769
378
482
652
789
546
547
614
639
579
420
593
398
835
570
741
566
548
515
535
529
257
618
626
748
637
793
960
586
671
191
774
549
718
508
224
485
772
418
401
569
553
480
447
805
638
621
716
590
568
554
359
538
28
420
710
563
572
542
796
448
460
496
466
711
597
685
589
661
535
841
645
285
507
272
793
617
536
543
736
626
662
261
575
637
733
570
467
570
462
756
727
905
864
656
307
674
610
577
882
765
611
234
615
761
610
268
735
530
712
645
445
588
311
417
750
561
465
581
524
342
655
571
494
639
553
455
725
592
428
818
605
586
644
630
225
638
652
500
627
439
511
667
736
347
530
439
580
416
613
746
642
725
684
677
586
512
404
625
442
694
570
362
340
670
495
527
619
738
556
701
531
214
737
563
524
559
418
598
594
744
644
733
674
495
754
482
765
607
1027
627
384
563
611
680
560
730
618
755
495
549
686
821
603
621
686
411
576
662
378
687
390
709
669
487
778
497
672
426
634
677
541
745
789
723
836
574
781
595
563
567
889
548
592
762
487
538
657
559
840
509
460
676
521
444
654
726
570
613
418
579
471
635
0
429
577
308
439
691
736
479
443
724
716
618
471
394
641
273
558
477
702
666
840
43
611
621
706
612
1030
527
429
746
643
640
471
735
704
627
422
747
126
440
808
450
605
746
555
986
577
781
889
307
645
666
732
194
568
709
621
596
727
739
524
772
710
804
680
719
808
765
776
626
679
559
325
764
453
457
765
491
628
757
750
741
669
200
698
707
736
692
627
670
479
546
677
534
772
731
674
605
801
340
699
349
701
382
541
689
715
548
785
636
924
667
716
439
188
685
491
728
718
730
715
691
381
578
513
667
775
494
707
781
572
622
314
158
77
599
586
391
536
692
749
148
729
581
815
657
643
395
628
630
229
712
491
671
654
685
574
647
735
625
655
631
534
658
635
628
601
244
559
645
689
753
570
472
555
576
858
433
579
567
597
616
714
540
499
660
703
713
535
678
471
511
670
694
451
698
784
675
522
628
755
258
722
704
864
532
634
618
806
573
410
869
745
482
311
659
567
388
557
516
663
600
514
465
558
381
580
861
413
834
785
339
711
651
360
686
811
855
610
644
719
381
496
703
752
281
647
476
619
526
684
468
751
552
815
610
996
704
500
945
278
617
709
346
767
559
778
499
491
528
543
562
571
738
608
678
501
604
464
830
570
361
262
793
734
442
558
240
653
631
673
679
561
786
733
583
684
494
818
591
541
533
609
346
772
726
728
525
635
684
753
418
637
765
688
498
606
777
518
592
603
488
599
761
874
803
536
673
594
786
606
500
736
582
496
422
117
473
671
693
398
692
897
771
86
475
730
577
841
637
618
379
358
577
733
386
843
634
710
520
774
522
622
442
240
251
708
440
411
581
138
697
613
559
516
598
524
717
558
830
295
522
678
690
562
499
709
629
514
495
521
388
785
427
595
460
747
596
708
695
761
616
660
566
750
785
714
684
628
449
733
559
520
639
615
541
623
735
555
372
692
597
615
682
701
621
470
617
447
506
743
514
729
309
546
655
591
439
590
816
718
517
436
295
247
821
612
791
630
652
501
436
334
333
512
653
671
544
235
898
779
692
641
486
650
875
589
779
699
609
623
508
817
648
740
689
636
459
929
597
711
659
883
362
313
556
459
608
455
727
832
788
434
672
371
602
592
586
634
561
712
561
839
416
676
434
718
343
268
580
678
732
465
615
680
521
822
445
451
533
616
753
631
718
313
388
626
568
613
655
707
706
906
677
634
531
350
608
591
435
92
621
559
671
461
686
778
665
606
711
808
268
739
611
506
390
617
478
360
712
567
843
344
258
553
821
478
488
490
688
523
614
837
735
518
731
644
570
643
492
580
736
549
243
566
546
777
442
822
584
483
352
554
731
649
842
420
618
645
689
695
773
611
470
764
585
552
463
607
579
721
575
553
723
723
684
302
539
660
540
681
678
616
728
500
563
520
588
655
675
723
478
604
655
416
429
703
731
710
470
935
421
538
354
799
596
883
426
618
662
700
798
627
795
755
857
683
753
700
617
627
503
737
641
869
496
592
499
357
416
466
820
574
615
701
701
751
670
688
631
509
331
666
578
513
512
704
584
614
544
391
677
848
716
858
437
654
686
604
424
216
837
633
486
587
433
514
726
823
847
709
559
500
698
641
598
395
471
567
446
680
690
365
685
683
479
730
668
577
123
816
530
673
659
471
522
716
599
804
492
492
367
583
545
587
448
739
693
451
769
492
704
611
562
595
522
471
778
709
602
93
211
587
507
437
731
728
613
521
616
676
573
651
757
308
742
725
520
439
349
648
936
593
962
863
817
667
556
632
785
784
591
709
811
484
821
440
542
819
385
768
448
847
783
647
391
373
607
426
641
747
768
792
564
340
547
643
467
598
616
696
585
544
480
600
677
541
398
792
714
667
729
753
717
465
732
674
544
652
803
471
382
541
682
716
727
709
956
628
711
574
607
581
600
418
758
585
695
415
642
583
164
542
727
831
480
579
245
585
440
592
768
514
531
631
537
431
658
551
424
650
730
328
785
601
557
596
494
536
523
471
665
662
734
602
724
699
552
841
436
770
362
772
563
544
622
838
495
628
615
714
635
700
652
507
583
503
720
688
547
630
610
509
508
644
667
905
497
615
439
352
583
604
547
1038
776
639
730
619
426
427
729
580
346
383
555
497
552
384
567
588
499
660
789
590
671
958
622
591
628
659
815
661
671
608
742
659
830
551
610
340
581
488
567
594
699
699
699
768
588
733
580
780
640
340
479
668
811
519
762
622
613
724
634
691
384
762
679
597
731
681
686
430
442
753
704
319
519
726
792
528
520
638
715
545
477
375
637
852
666
556
798
651
708
475
543
532
750
688
443
203
545
691
593
720
556
583
575
528
649
551
659
655
692
624
516
724
693
559
683
842
388
624
170
609
598
611
714
479
631
573
730
640
751
170
669
608
787
718
473
669
425
497
670
587
513
583
579
595
559
449
800
428
807
496
714
509
608
811
595
654
498
819
834
465
705
595
653
471
626
743
396
759
450
473
741
691
799
788
704
565
480
501
611
717
643
562
492
589
667
476
626
512
502
672
537
801
543
504
671
380
574
654
667
663
543
523
578
787
614
618
694
600
733
768
633
691
609
864
524
410
728
437
670
627
903
615
579
615
697
579
458
574
700
559
218
898
720
453
749
604
734
538
788
431
699
238
393
743
784
733
504
864
609
737
517
786
747
738
704
1026
606
526
431
877
624
824
593
719
718
784
549
732
762
705
573
736
571
735
467
605
485
573
640
651
568
235
642
699
601
710
476
425
643
583
506
548
760
587
405
618
480
779
849
376
636
888
350
742
922
677
879
727
602
572
746
745
503
589
562
567
332
378
684
695
411
562
588
694
540
657
729
686
642
604
521
698
0
753
651
550
571
311
750
657
817
781
538
663
779
531
589
737
775
501
687
579
715
595
529
664
746
594
596
705
464
607
317
744
829
886
538
547
898
683
809
625
431
597
576
561
640
674
755
738
429
527
500
602
457
675
646
15
704
680
486
483
612
701
678
738
595
1048
882
575
604
590
738
244
606
670
656
419
645
720
782
416
523
606
559
603
673
467
571
717
814
517
682
274
630
642
720
576
755
548
400
446
617
566
730
428
554
685
718
552
542
443
255
512
608
572
675
738
650
656
457
378
535
625
333
637
612
494
548
612
660
416
492
480
354
562
508
660
714
414
490
678
764
281
721
660
857
577
598
831
489
527
658
688
442
644
531
520
567
721
826
576
490
767
811
636
880
517
700
674
817
449
799
561
581
548
814
554
635
781
637
602
556
622
565
653
398
589
474
650
426
764
724
652
449
340
684
581
552
459
687
335
764
655
576
820
590
678
634
493
669
648
720
531
672
597
507
814
388
332
528
547
299
523
834
669
636
277
619
537
464
838
640
374
614
45
811
639
649
791
479
555
731
530
626
455
789
603
664
878
734
354
379
542
655
619
831
608
551
788
863
634
725
520
592
769
684
562
509
458
703
680
613
773
641
693
669
581
507
725
401
646
867
810
317
754
579
360
794
636
818
511
725
702
577
659
509
639
456
479
544
618
427
453
595
902
719
816
725
707
673
589
440
780
592
690
265
824
469
810
745
661
814
176
572
863
596
378
628
665
321
101
465
519
384
500
491
483
838
567
657
231
604
563
449
523
579
686
492
658
590
731
693
596
351
459
545
415
512
528
760
455
353
660
408
410
405
576
401
989
613
465
643
791
472
805
613
572
336
940
656
618
538
775
328
626
615
441
547
468
515
648
518
312
617
663
514
736
360
440
603
358
757
769
804
124
728
710
776
665
668
778
711
636
610
595
505
231
748
613
619
512
322
700
473
596
750
697
591
668
522
497
782
649
14
644
390
642
715
863
585
711
561
794
568
402
682
609
673
606
539
796
767
708
623
612
361
857
785
747
150
924
476
637
666
574
591
797
730
778
583
631
842
533
667
708
575
324
418
541
674
494
404
375
620
754
576
593
520
548
621
570
772
765
607
516
554
603
802
471
614
638
534
723
354
522
741
249
616
925
656
764
622
511
561
697
614
784
693
862
628
721
770
503
887
685
659
393
982
616
737
386
745
743
497
648
641
365
632
407
790
388
773
621
415
535
591
620
545
533
790
592
357
650
581
591
619
559
464
898
802
542
799
856
620
770
606
482
428
614
612
628
620
717
601
708
618
548
510
950
290
628
372
638
643
647
675
612
609
411
451
669
341
725
689
669
708
313
574
643
609
965
266
614
751
605
776
621
594
695
488
508
488
745
868
394
623
424
830
580
763
669
674
558
551
568
525
424
584
821
748
807
492
756
784
766
543
673
552
475
526
679
648
336
681
723
560
462
901
760
681
623
591
694
618
527
765
706
522
591
790
574
489
597
540
702
687
560
127
477
553
282
822
801
583
580
741
701
646
536
725
691
629
292
408
482
688
652
714
659
721
532
855
497
794
683
994
836
616
479
492
753
702
524
667
586
745
693
384
499
988
525
159
758
749
609
876
599
651
632
721
579
633
799
471
672
457
908
528
377
612
507
702
715
788
489
51
447
658
498
677
677
664
603
635
753
431
628
658
604
665
690
495
536
390
522
160
587
861
808
740
611
366
572
526
698
377
843
742
598
664
631
783
820
598
902
486
720
725
663
658
590
635
671
690
487
640
723
767
711
496
453
593
567
595
633
352
748
552
416
735
375
950
715
757
710
600
895
423
526
644
627
358
512
497
519
441
358
594
821
540
448
597
583
626
428
342
580
713
780
539
572
748
665
659
566
650
601
785
705
609
575
618
445
666
693
535
540
783
681
529
352
564
528
720
771
731
877
575
702
776
564
582
637
438
843
808
220
521
244
534
643
616
266
839
613
907
754
799
547
521
579
384
579
543
563
611
652
743
686
75
588
685
853
666
26
470
740
711
687
596
402
505
626
734
604
549
666
562
296
368
501
397
540
604
706
770
795
762
585
606
568
248
537
518
693
773
734
640
831
407
771
651
579
642
653
42
775
634
720
585
464
535
767
609
607
569
662
712
600
490
371
569
371
338
715
373
701
751
656
697
160
540
810
624
658
395
720
858
251
675
546
650
589
584
531
129
879
723
503
479
562
615
569
716
622
619
607
707
644
460
523
581
451
912
495
526
681
683
606
705
512
613
793
525
543
483
679
564
643
594
672
256
785
669
735
650
564
810
689
582
589
631
828
562
668
775
622
612
714
777
615
436
510
608
543
450
599
810
722
612
661
699
635
605
775
555
667
550
548
802
585
680
337
589
435
592
801
486
614
565
544
554
710
413
439
874
785
672
375
788
754
664
625
615
562
739
666
543
372
599
737
536
232
363
257
528
311
712
750
710
643
379
451
706
835
704
493
779
625
545
639
379
600
672
802
1065
394
812
857
504
638
606
594
535
550
229
710
655
577
897
648
267
516
577
413
635
282
630
710
543
265
730
830
568
489
460
724
698
645
662
453
634
832
772
501
817
612
448
538
553
556
587
448
796
610
698
656
255
618
795
458
711
654
645
589
542
486
561
719
875
657
485
810
594
717
632
900
522
656
558
613
754
591
494
504
607
862
454
422
533
376
654
686
422
614
406
494
578
626
688
802
632
743
85
694
488
691
603
653
811
661
239
313
456
609
537
422
676
601
603
515
764
624
754
718
576
616
574
571
727
614
806
500
670
629
0
537
527
283
727
398
592
690
862
977
361
534
655
517
566
670
594
526
689
650
537
502
567
626
702
473
100
28
839
827
695
652
663
631
669
758
466
585
574
496
689
780
643
692
586
571
762
271
526
663
706
416
708
711
664
774
619
431
738
579
889
549
715
655
437
797
648
676
583
743
518
556
634
356
625
814
739
697
356
941
755
507
594
714
762
259
483
729
595
630
835
453
695
711
271
733
512
556
631
482
743
648
572
601
467
846
544
864
536
798
677
657
586
703
545
738
715
750
550
722
627
535
885
790
575
198
797
829
805
607
524
650
599
549
458
822
608
832
243
701
646
287
467
606
901
471
641
897
789
637
592
778
666
614
450
520
502
536
411
577
849
610
716
681
276
684
458
685
646
257
811
646
525
679
248
564
632
619
725
942
934
720
341
760
644
487
717
250
664
452
422
544
582
215
728
528
306
645
482
647
620
471
500
834
644
261
650
627
0
307
244
775
388
683
588
563
612
638
774
560
757
620
564
746
791
564
388
561
802
462
495
603
553
636
552
742
491
424
287
512
539
729
328
573
585
647
611
953
590
410
708
772
759
723
508
511
497
584
764
571
692
751
600
577
277
655
798
772
623
549
668
654
809
740
622
565
726
477
662
645
708
970
583
799
477
595
653
593
559
853
751
788
726
523
581
823
497
738
569
843
782
549
549
647
656
181
300
907
579
726
649
700
523
584
829
732
402
401
675
640
441
649
507
452
440
310
504
558
218
460
799
718
692
388
496
941
525
582
526
757
574
663
597
525
425
635
634
496
868
716
349
540
630
578
522
444
616
646
671
640
547
596
672
358
556
459
718
364
518
733
470
731
738
604
660
563
496
686
495
484
617
692
815
623
573
761
403
658
528
412
820
698
699
602
584
384
590
750
773
642
426
511
484
585
862
924
646
658
639
608
444
711
550
640
953
500
625
637
739
728
670
652
487
716
834
853
598
742
594
474
822
542
548
665
422
825
593
715
584
507
758
375
703
793
467
578
439
589
529
466
574
710
320
605
611
550
481
548
660
517
754
849
672
547
546
174
777
781
614
737
773
399
728
638
651
529
595
462
692
547
742
497
406
550
690
310
579
292
627
954
746
874
563
603
592
757
503
771
463
16
498
882
550
698
684
616
380
720
568
542
403
627
658
603
740
403
745
432
389
393
176
626
671
688
492
662
767
718
588
611
854
853
448
278
586
478
487
593
491
893
803
600
638
568
830
686
397
674
642
494
647
71
676
670
324
778
769
673
415
829
600
656
274
618
443
585
443
557
648
560
415
506
651
685
615
753
480
627
691
614
562
866
656
777
323
455
482
586
887
625
583
409
581
419
794
748
529
644
1061
521
598
464
862
657
520
543
718
650
507
651
631
673
628
500
317
627
584
397
493
689
676
612
741
539
662
442
741
596
557
568
726
715
628
794
648
263
639
586
662
660
548
703
718
653
623
706
946
601
675
460
610
182
595
729
703
449
871
766
683
750
623
513
638
618
724
709
175
311
804
489
534
686
814
550
682
702
753
376
779
394
709
603
910
620
492
517
601
337
295
532
381
589
622
820
629
614
679
511
456
685
588
675
533
789
531
611
688
637
475
469
658
442
295
519
611
573
612
196
731
512
740
691
794
455
448
730
696
733
832
493
627
825
453
539
513
644
846
342
550
853
642
603
658
659
686
499
554
728
469
484
785
414
367
689
706
446
460
785
562
735
630
557
799
608
471
701
587
210
658
631
783
699
460
525
566
682
613
565
493
679
853
550
481
641
918
726
751
665
601
522
368
619
548
687
486
503
589
638
599
770
657
794
296
723
801
897
614
829
597
242
406
641
567
704
677
620
575
721
609
622
539
478
776
560
11
517
645
652
744
511
590
634
623
427
408
685
511
705
752
879
755
673
482
764
615
727
168
329
50
566
694
731
609
444
799
568
660
852
644
319
431
831
813
617
550
888
696
411
604
780
519
626
652
775
691
795
885
645
342
773
593
423
666
382
527
348
519
679
833
761
655
613
534
351
671
673
581
399
553
649
273
666
660
799
567
610
340
614
497
698
609
564
602
630
612
621
486
600
445
385
565
620
869
762
632
726
802
292
276
295
661
504
667
891
473
723
660
482
740
732
551
307
356
569
442
664
563
524
491
553
881
610
814
639
684
398
740
717
706
202
775
579
579
669
696
635
401
916
698
672
716
754
582
530
816
580
507
561
663
558
545
733
648
584
506
454
468
353
474
460
631
628
635
650
501
665
523
632
96
651
611
625
717
503
669
839
717
500
765
476
499
767
461
617
401
576
623
698
560
542
739
1039
490
807
757
759
726
578
186
558
460
673
660
685
606
563
641
452
407
678
709
322
722
672
596
579
544
648
600
554
625
412
731
554
669
437
730
715
775
578
618
538
501
877
796
486
621
656
703
531
717
649
568
506
786
510
507
820
700
735
678
588
632
410
517
561
619
756
618
666
586
661
628
651
408
559
478
447
684
805
677
920
628
613
427
485
733
632
551
742
660
678
376
620
417
447
684
589
342
425
757
463
458
639
691
571
814
543
557
443
704
510
407
603
458
727
588
730
327
464
723
599
501
483
527
750
581
379
681
720
732
714
601
775
638
717
481
630
585
610
581
586
572
604
669
566
657
598
641
586
787
342
275
333
679
402
746
585
771
666
710
658
670
572
353
750
709
676
675
788
681
757
712
576
699
510
681
517
742
675
637
563
448
494
521
705
649
662
527
685
567
631
547
784
457
640
699
501
522
820
533
742
484
731
787
548
293
680
692
774
219
737
649
647
677
704
580
666
551
392
651
814
677
286
414
694
615
786
730
614
554
823
334
750
490
284
579
603
554
669
804
422
777
900
903
631
588
732
706
457
573
821
627
398
652
326
548
801
606
756
589
583
480
753
802
602
469
646
741
600
728
538
574
655
738
632
166
422
753
686
552
707
644
594
722
707
687
663
544
950
709
645
527
730
649
659
892
878
532
581
474
757
605
533
782
800
745
551
694
517
625
506
588
381
442
642
742
662
480
388
650
565
564
576
443
480
473
739
671
377
842
850
668
715
734
737
800
625
453
377
657
893
493
677
603
547
290
822
934
649
437
705
803
695
454
762
430
322
704
634
391
220
734
751
649
612
592
947
589
718
839
610
616
566
635
465
685
664
477
645
620
771
574
868
355
534
630
626
586
500
839
429
721
700
454
546
495
645
706
349
852
385
660
648
528
697
779
640
540
566
756
601
585
525
655
736
445
879
723
591
681
630
534
830
570
587
547
537
537
453
741
682
542
763
711
418
525
674
647
712
590
426
627
423
744
416
744
439
778
656
731
654
443
613
840
187
566
682
511
591
684
697
655
656
620
382
404
863
788
922
768
693
691
812
486
650
345
761
769
183
580
628
721
759
647
645
735
781
574
561
645
496
659
319
484
457
463
863
698
592
730
555
751
594
715
457
553
313
734
660
637
537
475
550
591
481
425
633
663
543
716
473
644
547
848
564
823
815
52
638
525
837
704
659
729
672
344
775
713
0
681
618
291
810
675
436
577
680
700
695
587
660
673
447
544
447
646
615
713
720
600
690
789
498
777
542
815
312
261
546
448
708
595
433
752
550
849
878
240
812
513
547
510
352
569
776
647
640
614
444
695
643
553
689
662
440
713
664
551
743
778
618
492
550
768
783
521
570
510
732
567
670
682
580
528
503
514
404
638
586
622
879
737
721
773
556
746
626
520
539
657
626
589
827
275
450
560
600
707
730
708
704
472
797
626
682
634
634
611
617
659
666
623
448
703
889
668
683
613
413
695
234
636
796
633
808
527
670
757
613
516
657
302
22
618
643
457
718
158
679
340
566
590
523
104
837
710
626
305
562
220
582
203
361
534
522
718
627
731
875
656
687
756
645
539
708
685
752
820
473
785
145
558
714
723
244
485
661
528
729
662
573
495
645
541
481
690
714
478
826
461
561
501
764
484
806
637
608
627
696
428
379
702
320
541
664
732
693
737
770
453
800
547
604
858
579
726
409
793
215
518
603
719
481
565
539
603
693
639
629
745
491
671
706
667
365
709
512
704
481
638
576
488
405
440
958
213
635
401
534
540
765
513
764
700
704
728
640
511
591
853
613
625
870
522
626
875
514
597
443
719
715
718
586
462
586
670
580
813
618
448
679
868
541
577
623
345
815
660
618
690
745
749
457
322
585
592
486
811
708
716
759
563
571
659
477
630
516
601
744
771
267
664
566
735
594
435
658
959
683
686
560
819
617
464
854
804
656
763
408
502
555
540
692
582
570
754
754
855
783
631
723
591
407
599
562
490
399
787
620
621
666
648
392
605
794
701
596
624
268
678
493
706
676
488
779
546
799
714
694
675
858
550
605
775
556
526
473
600
617
645
541
821
766
699
707
720
583
603
395
684
709
628
844
700
713
174
814
619
417
661
616
7
321
529
283
680
733
574
770
479
587
605
616
616
670
583
802
614
159
600
597
331
570
535
785
500
511
730
637
745
343
615
589
298
484
519
446
316
684
440
781
646
723
716
481
491
768
728
605
195
625
575
718
719
543
452
627
762
500
541
617
489
694
589
844
681
939
501
572
629
720
751
451
548
709
605
486
418
697
611
805
419
567
595
832
285
695
692
349
651
691
679
912
704
204
349
669
741
770
413
724
818
477
405
679
521
679
81
759
310
624
473
551
644
736
564
634
549
629
674
581
624
606
683
703
593
542
621
531
368
611
759
807
739
568
550
384
709
600
681
225
341
504
707
788
590
578
604
427
614
699
657
261
649
531
794
748
305
614
700
682
698
735
268
662
888
770
644
523
783
590
957
642
528
579
495
604
724
335
554
533
581
622
646
653
627
385
411
559
604
654
752
630
535
787
572
870
683
439
737
379
618
649
448
769
710
681
528
618
821
172
496
756
931
696
478
505
795
368
546
504
453
611
496
638
784
555
815
710
611
820
664
397
681
745
691
689
629
396
348
718
516
681
636
472
803
540
670
595
618
465
676
760
862
537
706
633
786
516
487
681
459
503
774
639
819
786
542
559
531
790
402
573
609
906
871
415
527
784
691
491
748
483
706
694
661
656
644
581
523
402
374
222
777
718
729
628
778
823
836
706
577
790
522
815
591
424
601
644
716
531
660
636
684
497
651
710
818
779
691
545
536
406
487
402
510
340
711
647
340
498
784
913
709
512
726
833
463
803
600
639
671
607
599
570
582
641
662
469
726
552
483
300
746
672
827
718
772
522
614
597
548
709
422
784
766
484
742
792
384
720
505
777
647
693
275
434
650
524
625
679
874
576
648
470
508
603
909
562
490
699
664
674
781
241
491
469
611
947
707
546
891
807
491
615
608
513
635
0
657
562
589
473
436
385
678
518
466
404
649
231
312
760
429
600
623
557
340
712
621
636
693
844
704
599
637
677
605
455
325
733
589
685
718
545
718
576
700
688
1059
647
594
713
290
672
631
720
544
442
607
789
566
597
713
644
573
624
438
702
568
561
700
482
0
703
554
688
567
327
819
664
678
615
581
725
588
596
700
722
748
692
647
924
495
480
531
730
517
451
708
705
703
608
690
936
411
523
297
689
969
760
637
857
776
213
653
713
637
675
603
612
196
345
609
719
433
637
236
559
687
720
533
818
489
444
573
718
657
675
743
521
715
565
762
514
529
547
835
521
597
918
749
618
525
568
664
290
706
824
415
993
621
629
423
616
600
448
773
644
581
765
429
685
507
637
524
566
483
543
669
491
398
457
650
731
789
101
623
465
647
776
599
576
620
505
817
498
520
621
540
423
638
413
477
754
596
643
203
549
550
750
584
534
672
465
657
903
468
40
941
692
504
373
660
669
731
582
558
622
490
564
669
533
369
645
586
349
745
701
720
416
783
554
612
166
614
922
495
604
714
687
447
595
551
687
918
540
525
703
503
833
549
518
626
619
314
669
665
155
609
801
590
568
414
565
418
215
581
554
721
772
604
654
696
721
613
380
664
1015
649
859
781
775
684
726
766
800
478
665
703
783
669
559
491
699
443
530
661
721
480
321
524
451
597
740
662
466
585
594
438
515
890
757
423
518
768
788
480
568
517
546
821
708
696
597
599
657
804
722
740
551
647
489
476
875
745
351
0
398
675
515
331
491
624
350
615
816
319
634
549
179
568
734
652
621
564
368
624
760
387
604
549
452
447
508
588
713
145
489
664
470
573
626
372
542
579
693
465
697
591
989
845
371
532
496
617
672
455
621
525
634
792
549
716
897
679
532
727
692
650
736
734
659
584
709
503
567
354
503
536
682
779
503
774
490
255
548
664
934
585
571
520
658
545
640
594
612
693
524
522
685
360
583
608
614
587
614
945
321
804
590
686
479
862
847
713
641
619
661
614
718
620
496
475
717
976
632
770
603
681
714
736
667
473
727
811
376
626
786
675
682
619
575
550
928
853
612
632
702
646
491
443
744
861
788
742
710
890
512
590
805
646
654
458
825
710
406
617
497
636
898
677
650
665
525
537
642
625
634
386
579
377
785
796
573
772
724
617
740
730
633
396
849
666
817
636
266
685
319
563
379
649
663
780
320
501
683
641
571
823
487
143
841
700
598
561
570
802
776
595
531
432
829
617
217
627
636
640
646
612
413
732
755
720
794
415
627
755
644
593
754
585
503
726
637
635
608
594
615
589
510
727
589
515
670
784
677
421
482
808
647
647
358
610
724
352
578
470
383
852
589
624
813
549
366
625
650
683
706
815
608
560
633
448
902
632
564
556
501
921
559
636
569
564
794
638
303
537
611
670
753
675
889
590
619
472
634
522
503
502
668
814
310
641
797
479
784
722
752
424
756
619
772
695
469
940
638
837
694
312
498
219
708
465
678
728
449
747
468
716
261
800
403
446
659
846
431
496
671
606
880
952
336
879
423
617
475
732
567
488
705
639
656
568
646
644
187
723
694
632
552
627
688
578
709
579
407
657
706
767
491
550
640
607
662
582
344
795
419
627
672
427
601
716
552
478
615
713
666
683
567
288
598
516
578
544
681
618
648
577
764
656
578
543
573
383
547
832
613
743
702
476
720
586
907
579
289
442
730
533
556
650
432
538
679
598
926
560
721
538
467
736
669
597
596
474
520
660
513
820
521
609
621
647
629
734
449
635
777
715
674
600
870
445
794
601
531
768
546
692
683
655
699
716
266
359
748
731
641
727
778
725
656
381
621
621
818
920
526
441
264
466
625
768
857
730
691
544
856
617
620
634
580
685
540
504
570
393
551
656
475
611
620
388
740
491
674
842
580
384
543
755
841
714
618
629
795
515
642
553
669
550
354
755
715
432
632
679
719
516
709
548
608
910
791
730
617
703
563
398
513
843
568
755
615
593
603
790
625
684
692
738
448
607
418
440
502
496
680
596
467
672
403
849
411
439
736
710
735
609
694
917
609
741
640
688
605
592
666
908
641
650
682
601
478
403
464
775
514
790
670
757
444
699
79
835
549
578
640
550
519
646
775
559
540
494
506
270
458
556
587
645
78
484
572
387
897
730
598
742
807
462
563
678
523
208
642
574
705
758
592
728
656
547
691
705
727
597
647
770
449
701
402
427
586
571
204
572
657
341
639
797
726
679
641
322
640
475
436
496
379
702
61
549
841
414
440
318
770
719
709
733
695
517
616
722
615
606
690
651
565
849
881
697
610
568
813
442
497
377
387
605
889
632
755
524
539
609
605
342
653
688
835
592
665
407
631
822
520
576
636
781
583
449
522
604
564
564
911
813
636
601
425
616
814
700
493
592
593
146
774
807
655
502
675
529
616
799
755
441
498
636
600
376
705
368
642
598
677
406
656
508
254
514
713
692
565
366
764
689
399
602
613
579
287
695
505
203
625
623
683
467
475
671
555
632
592
851
678
559
626
468
734
765
412
698
695
641
652
533
681
645
628
514
816
721
747
692
544
587
471
498
754
431
685
670
493
387
496
530
479
485
631
585
302
696
705
577
770
621
656
539
722
698
613
855
291
725
518
714
519
622
584
626
965
376
617
628
514
656
462
553
720
660
611
540
379
612
731
466
411
362
158
589
666
336
834
563
507
478
661
551
411
710
562
518
743
583
734
639
660
717
732
751
624
574
444
632
698
671
623
756
591
704
898
576
787
801
585
398
653
804
374
589
797
640
534
481
565
489
621
545
515
611
580
753
733
700
674
358
523
664
516
591
637
503
559
338
609
265
630
865
592
720
678
473
711
646
255
522
685
824
316
677
507
510
506
720
645
667
785
708
351
625
484
498
587
568
710
578
682
633
622
683
984
713
143
629
768
817
771
630
728
580
396
920
789
702
486
481
530
664
609
451
641
574
398
626
636
577
534
645
739
575
524
680
552
511
611
480
617
783
468
671
695
462
849
786
773
720
807
821
520
669
632
495
490
466
828
564
381
492
760
565
853
548
742
567
594
742
698
371
781
694
527
392
736
320
545
736
472
496
576
567
914
819
723
606
744
807
662
603
784
618
411
799
691
609
404
695
472
461
821
706
408
523
551
358
646
654
553
600
476
817
536
795
840
722
664
564
433
244
722
373
621
583
798
563
697
539
716
782
567
143
587
625
728
792
494
532
663
626
524
487
775
776
730
453
553
315
515
618
637
411
735
632
581
793
571
449
659
693
481
543
537
530
651
714
643
606
463
702
244
602
653
822
596
701
490
577
620
593
771
752
297
494
525
831
727
517
646
483
636
482
573
268
520
431
613
642
708
591
538
671
663
794
451
754
554
661
531
846
614
548
394
774
634
770
857
751
565
585
228
449
332
892
155
559
727
726
618
538
554
594
441
663
610
847
644
810
551
514
423
552
799
721
772
851
126
632
425
545
403
639
727
580
702
608
634
424
552
455
580
662
605
664
654
632
547
344
725
805
593
676
710
733
373
508
659
656
344
526
453
678
671
845
636
542
506
698
200
770
454
549
574
705
789
419
980
385
782
605
510
392
435
572
663
656
474
958
507
656
498
690
631
842
427
700
525
724
727
363
477
484
61
897
612
654
767
549
547
829
616
820
511
585
380
610
609
599
586
590
653
666
697
524
530
846
642
470
585
581
570
592
764
478
782
626
612
475
755
363
655
734
778
554
674
626
794
463
538
996
269
683
248
708
893
292
672
698
608
667
590
748
778
460
694
765
807
650
693
398
747
709
388
215
642
725
664
520
619
485
416
661
769
494
709
608
529
635
723
864
765
690
530
838
832
619
505
568
580
518
258
667
708
448
568
552
373
677
784
737
685
583
759
646
574
550
613
422
597
480
363
700
637
761
683
557
567
596
654
790
756
257
728
800
98
705
574
672
590
451
433
627
658
620
597
653
744
755
736
555
806
573
595
781
619
538
666
623
687
678
302
577
251
710
430
391
608
684
708
741
577
568
543
606
835
268
586
718
877
611
392
225
516
745
649
761
424
497
757
353
775
547
764
4
508
698
653
678
383
677
497
428
653
357
510
614
424
509
853
678
819
725
475
782
647
757
540
597
739
542
247
649
488
682
643
505
872
275
749
790
625
68
578
840
621
646
647
530
720
901
416
618
592
619
732
618
613
760
677
561
885
510
501
644
641
606
594
430
557
627
751
352
640
560
712
513
596
866
640
628
640
968
547
797
740
611
923
474
607
793
774
606
755
384
668
425
793
600
441
168
620
515
667
706
544
679
615
691
675
503
480
651
213
709
308
811
398
535
622
619
529
425
569
332
479
551
599
490
726
797
128
671
629
405
846
742
615
426
804
805
471
903
755
614
432
427
631
575
262
674
837
507
737
629
734
577
762
455
614
114
525
577
516
296
783
652
452
618
714
641
669
602
563
688
925
777
572
735
460
424
698
752
732
586
601
457
715
683
614
505
529
641
580
574
760
689
723
479
930
681
570
595
301
447
876
739
302
483
423
727
942
576
666
496
509
592
551
680
611
566
656
678
640
702
598
728
700
569
704
646
712
715
503
842
749
566
440
567
675
669
736
504
678
558
479
600
679
688
789
527
731
720
477
637
276
218
843
413
680
505
597
762
196
623
707
719
451
676
668
536
490
537
762
469
551
618
497
278
518
691
744
949
552
706
388
811
649
657
616
541
425
818
419
568
412
615
296
737
649
642
670
609
65
523
653
857
665
577
585
407
557
561
677
788
562
824
656
660
450
196
445
679
856
757
607
530
543
672
796
836
427
529
430
588
516
687
506
661
536
679
479
640
624
471
422
734
595
530
463
430
515
739
682
806
272
713
451
647
619
680
772
528
397
591
560
542
703
528
539
544
799
963
560
706
657
680
477
633
738
620
648
943
541
413
645
773
803
703
795
599
800
856
631
515
176
870
676
599
300
181
587
644
545
726
554
687
616
571
721
790
704
640
661
399
611
724
403
717
524
616
350
552
832
793
759
546
687
589
516
846
325
658
529
389
470
440
595
329
436
405
487
885
628
646
645
586
671
628
700
239
369
622
543
600
573
556
748
820
576
636
700
895
430
774
716
467
450
682
747
603
922
667
447
754
693
837
312
828
562
635
433
520
360
511
761
692
517
505
528
732
737
702
591
705
779
194
502
550
697
454
225
533
476
564
609
756
748
390
597
613
702
713
507
606
753
812
463
552
729
669
723
699
547
710
553
177
715
642
591
468
696
755
589
620
802
426
647
754
371
632
762
769
804
594
543
632
536
424
608
844
911
648
781
700
644
497
535
624
786
356
574
252
813
565
543
528
635
600
518
215
577
451
428
748
766
753
642
531
775
561
496
551
641
707
629
462
765
777
563
535
511
703
451
652
746
624
647
632
885
808
669
601
50
785
734
613
595
696
272
647
513
816
612
767
545
564
728
510
850
689
719
694
571
708
504
645
539
358
744
581
756
513
724
355
711
636
718
642
717
533
458
924
696
621
590
715
618
518
548
605
797
710
323
616
630
677
543
782
823
624
688
627
654
555
766
622
724
727
605
553
579
652
451
750
693
609
688
534
622
587
503
740
667
542
501
552
717
651
534
582
427
541
875
405
774
772
615
454
555
791
465
436
768
493
649
599
453
687
690
747
783
783
601
377
762
592
971
457
756
861
717
278
656
475
576
567
619
640
530
565
710
73
615
647
582
519
776
529
602
687
770
738
639
691
482
470
289
503
608
641
599
677
629
752
354
643
716
219
650
516
387
703
745
865
517
562
562
569
650
769
620
717
310
858
863
498
629
619
608
747
618
407
692
527
522
610
669
508
770
530
654
455
32
568
634
590
750
668
801
594
643
658
673
807
551
759
555
549
801
615
604
341
747
527
522
701
741
605
409
631
623
828
432
467
623
548
899
612
769
905
755
405
600
820
512
705
697
590
354
800
743
653
602
507
775
682
699
661
619
431
507
742
262
691
0
705
565
731
384
675
146
490
573
578
391
512
646
539
358
712
764
724
376
623
843
692
769
473
650
723
637
470
441
549
627
595
816
666
788
603
359
643
671
515
593
191
511
655
621
542
329
782
624
757
474
406
709
743
556
470
907
480
613
1049
570
758
671
191
570
537
760
78
793
553
392
798
717
633
686
633
806
628
314
555
710
744
698
532
637
682
628
841
583
675
559
514
774
531
672
619
560
845
611
606
524
454
237
641
883
592
585
123
516
673
707
717
495
741
523
709
625
572
785
311
597
756
741
821
679
642
750
616
549
655
845
651
470
734
703
840
610
691
694
465
586
638
1013
785
706
600
702
745
511
617
597
540
540
512
481
905
596
620
602
251
773
551
689
432
433
753
641
503
644
859
731
596
798
436
436
404
577
225
683
455
752
598
544
846
582
819
661
808
755
688
670
818
793
752
642
750
564
609
812
1037
492
540
768
752
631
919
377
496
580
716
624
629
656
754
698
593
429
105
661
555
651
493
626
677
700
355
527
521
540
722
689
441
526
642
740
724
836
709
521
689
755
680
479
631
547
558
595
612
181
528
362
380
638
362
635
919
642
714
794
667
644
651
758
189
587
553
551
698
604
610
621
513
800
762
816
303
696
751
714
720
623
717
792
717
567
558
563
456
545
436
560
558
772
945
788
596
588
600
561
537
751
568
282
11
597
534
741
642
524
571
686
637
709
761
674
515
402
636
729
678
571
415
783
625
659
481
430
497
424
579
513
631
940
649
807
610
620
590
553
545
610
713
263
595
428
578
622
542
693
715
492
510
635
710
497
681
532
864
640
707
658
610
370
746
502
498
664
407
813
680
471
464
692
685
909
548
817
561
818
139
627
556
488
638
565
524
732
503
714
289
710
584
974
729
723
652
598
673
671
700
765
781
705
510
897
650
675
844
616
637
796
531
685
753
693
791
594
545
550
698
368
773
206
660
507
416
540
462
302
717
420
489
775
627
560
782
726
756
206
0
649
620
594
763
829
586
737
653
820
483
647
617
726
691
496
887
687
546
475
681
515
857
643
702
656
790
716
761
803
625
587
583
657
699
523
520
592
652
403
381
594
706
751
655
527
739
747
644
625
0
481
726
825
722
690
822
964
635
533
546
440
627
567
574
526
525
754
408
639
649
416
0
702
776
413
653
636
692
517
534
631
783
547
775
367
491
613
211
469
351
613
840
777
805
504
392
650
553
699
325
579
869
663
756
848
485
574
605
591
642
548
487
471
550
630
621
681
454
692
424
662
795
702
434
598
686
444
561
805
738
780
861
720
740
907
753
652
715
699
616
426
833
613
465
676
614
609
695
440
527
633
583
278
531
659
663
683
394
854
842
635
516
395
479
71
804
355
545
485
461
762
648
555
389
759
585
783
636
686
421
577
515
541
672
548
636
614
647
624
700
663
764
498
816
668
730
641
382
881
422
624
842
586
670
539
451
484
543
785
354
679
353
634
497
535
266
784
423
615
663
0
528
474
299
713
790
543
492
676
640
523
545
645
633
961
632
714
740
565
545
648
351
808
458
666
524
820
736
712
668
567
853
464
481
760
687
692
589
635
732
291
720
683
651
692
875
577
769
466
613
838
481
724
659
650
651
601
627
748
464
739
705
785
772
276
660
744
521
809
507
703
474
611
422
683
443
313
586
793
495
610
559
277
643
466
692
608
626
942
787
726
510
274
802
495
613
723
1026
835
777
388
764
511
560
726
558
644
667
915
608
286
496
621
412
640
737
726
645
305
790
681
737
589
485
604
349
865
640
748
445
731
414
654
809
443
908
667
487
541
588
913
974
495
500
499
773
587
575
757
641
644
575
174
477
313
683
812
697
133
543
561
423
622
507
544
738
509
703
348
723
600
456
756
417
526
698
606
646
474
500
646
668
596
552
533
707
706
788
760
790
550
500
641
670
776
501
529
640
504
581
388
501
624
509
647
560
630
611
617
949
685
522
435
687
638
584
601
806
619
587
705
587
738
361
442
544
728
682
622
406
733
530
592
671
697
513
522
581
545
509
559
484
379
718
717
447
603
461
719
694
362
815
477
581
591
666
605
738
637
628
572
642
663
477
854
401
590
452
579
541
329
921
664
678
556
747
479
620
474
863
800
285
392
525
233
524
553
620
699
521
611
614
751
380
790
568
616
519
406
522
520
547
608
732
701
189
669
614
612
725
552
684
845
716
684
638
460
729
593
580
870
992
619
410
812
625
507
643
678
339
509
536
483
466
864
609
825
768
561
731
553
332
396
443
643
786
537
543
493
698
496
799
645
637
609
468
662
616
587
710
609
731
507
705
623
685
791
578
663
797
539
572
855
883
582
759
748
742
744
765
684
587
628
508
697
341
639
549
456
687
380
603
631
784
675
639
624
713
531
486
637
527
277
476
747
675
566
500
715
530
659
601
576
550
810
524
571
689
673
677
611
176
594
853
663
722
920
835
685
455
344
573
600
707
536
532
414
674
738
666
816
716
722
358
592
514
452
684
281
461
683
758
706
762
534
510
468
560
681
607
573
733
611
496
538
474
581
481
785
515
328
584
634
651
659
303
506
586
717
787
230
673
497
703
663
631
501
793
568
727
586
632
658
559
580
542
532
229
408
636
652
751
548
649
688
644
583
496
636
838
822
460
806
599
627
658
895
502
783
616
587
610
924
471
432
782
754
421
657
350
624
581
759
637
682
261
765
733
412
605
603
1044
80
726
577
513
246
809
653
566
360
604
684
530
606
668
373
626
99
708
671
578
534
588
552
567
633
763
576
351
586
650
577
541
519
501
467
603
733
326
466
484
479
571
821
637
666
817
636
769
849
579
630
604
546
714
657
620
657
513
515
561
277
592
518
906
561
567
574
354
632
446
723
560
730
792
619
643
688
680
415
735
725
563
653
642
725
545
527
476
786
579
515
682
648
299
364
825
648
321
729
391
773
510
704
304
879
618
767
581
1139
648
503
453
480
581
509
853
756
932
869
619
564
609
590
578
643
680
709
658
475
144
776
642
629
637
537
619
690
816
785
647
567
516
684
818
641
773
525
683
541
617
707
747
630
444
170
462
492
723
485
670
523
591
452
678
574
677
261
535
647
607
343
597
553
593
400
710
607
579
541
810
654
606
529
953
715
740
569
663
711
458
486
605
725
514
636
642
619
647
669
676
636
750
609
844
538
700
778
739
506
734
710
636
699
882
767
683
978
566
377
638
924
732
581
540
748
765
608
546
729
662
477
730
482
742
496
728
761
693
629
574
741
485
715
695
359
455
681
680
753
725
711
550
682
639
574
633
837
514
631
919
556
778
574
551
492
687
665
570
663
915
443
830
677
545
570
501
500
718
498
671
473
415
773
530
568
704
544
582
467
675
435
571
678
777
587
440
578
747
522
504
692
566
778
718
532
498
338
392
780
706
575
756
602
623
660
575
756
479
619
847
509
595
476
372
675
841
321
628
626
440
549
687
667
765
586
708
481
501
416
649
651
840
583
803
603
622
564
381
723
648
532
746
744
759
154
585
423
585
436
663
461
798
684
648
717
570
594
408
317
581
743
824
610
603
629
676
704
738
734
577
703
629
600
745
635
328
740
619
362
998
494
628
540
764
615
730
483
703
327
801
685
663
643
782
736
599
706
591
390
502
529
501
438
133
625
602
744
724
596
680
675
629
486
458
641
505
587
850
586
961
393
689
617
518
384
525
601
685
580
670
535
757
464
545
673
624
634
321
596
627
611
830
628
739
765
526
718
162
690
428
621
771
390
595
732
586
946
568
651
529
461
575
806
563
453
579
796
453
828
540
485
626
649
758
480
404
795
816
803
633
507
305
825
658
744
463
393
813
647
270
523
656
549
888
673
271
782
715
611
666
618
622
570
256
674
554
551
113
612
665
673
516
545
632
702
691
734
556
595
660
508
451
432
310
435
788
584
658
518
585
626
537
434
623
533
532
561
890
95
439
771
716
903
519
858
576
556
712
659
568
670
740
747
660
816
561
806
532
550
819
761
617
578
635
333
627
420
268
682
387
666
433
818
185
474
715
831
626
476
316
925
443
803
531
600
624
139
702
702
609
482
726
669
657
501
633
612
616
508
778
391
443
427
645
11
559
782
966
269
554
681
392
358
573
547
540
543
527
505
695
546
629
512
808
590
637
616
508
719
589
718
572
500
655
720
542
752
419
570
524
662
823
737
698
488
792
594
621
734
739
858
579
434
631
815
579
398
429
382
810
783
550
754
620
351
712
441
879
372
519
790
633
566
591
773
831
691
632
761
625
597
706
603
696
273
703
821
616
398
829
412
657
672
673
690
814
630
466
537
914
604
595
575
568
712
831
647
273
667
721
623
740
577
623
524
509
487
505
561
508
755
652
523
543
567
583
599
675
655
530
467
572
762
651
749
596
729
620
561
716
648
571
347
596
540
442
624
555
685
539
425
742
436
703
447
512
617
673
430
856
695
649
611
519
460
652
789
392
517
608
231
659
279
542
407
636
493
731
657
848
473
287
466
349
759
544
546
506
879
773
708
761
519
631
814
642
590
111
1177
859
870
216
632
568
773
380
515
582
542
690
622
619
506
746
403
719
630
861
688
524
618
474
561
406
515
559
684
589
584
412
668
622
580
643
593
405
631
334
534
759
257
607
718
654
801
630
651
755
748
723
243
672
909
851
524
644
639
829
457
507
476
356
733
570
611
537
475
436
774
539
536
684
607
459
556
666
677
373
316
734
208
536
699
719
462
412
658
465
569
702
532
745
602
542
692
643
768
611
634
597
96
604
565
494
600
707
929
659
922
719
550
724
543
688
701
430
306
567
804
517
532
542
563
500
574
654
488
670
612
691
652
680
109
676
600
793
610
40
661
753
311
478
553
684
683
585
479
611
895
663
799
672
565
663
719
486
401
431
557
466
313
533
653
461
501
710
740
781
567
902
750
751
660
702
495
774
431
335
586
892
648
614
626
759
564
547
669
528
721
481
745
471
500
617
552
628
572
515
457
772
720
682
477
734
549
169
448
520
584
574
634
470
785
236
531
517
404
520
560
572
266
792
571
551
775
813
705
815
601
721
646
626
685
757
834
718
688
676
754
703
775
412
723
494
638
879
274
576
617
705
699
618
699
678
559
678
747
670
612
887
71
615
984
702
935
661
409
318
713
564
470
542
649
481
666
484
516
849
569
607
501
463
616
738
513
803
469
458
694
783
665
694
511
526
503
624
576
696
516
114
448
750
656
625
707
735
662
546
741
418
600
357
544
380
684
708
889
628
533
543
855
832
752
536
600
470
737
537
865
652
767
539
591
710
618
615
820
463
656
522
710
698
145
486
504
617
727
659
430
553
491
572
907
875
861
708
564
612
998
735
594
757
526
788
756
543
618
617
762
603
564
432
678
398
634
599
642
384
371
799
757
840
542
670
574
671
600
566
630
437
687
635
679
471
848
618
515
710
623
731
495
607
752
574
514
517
500
523
765
576
824
528
620
625
762
699
675
543
695
841
641
690
878
558
429
729
866
538
567
823
429
855
864
844
312
319
287
469
577
298
715
683
531
528
422
617
852
225
763
384
200
790
495
690
248
541
450
745
683
661
573
786
347
86
574
501
550
304
626
745
612
599
532
676
777
656
614
451
455
657
558
721
640
611
629
724
502
761
532
622
481
615
728
387
805
467
592
701
722
351
780
560
585
752
659
560
661
700
422
705
671
779
448
841
704
449
744
840
831
303
605
807
809
814
604
609
195
494
706
451
570
340
671
246
876
430
254
548
0
396
599
584
413
610
545
147
884
699
531
631
632
611
412
671
395
429
839
671
176
275
532
711
695
713
0
581
511
310
659
395
627
684
713
504
561
244
418
658
425
550
502
375
410
702
521
667
558
232
637
428
848
738
454
488
596
370
597
789
590
512
495
469
907
606
497
319
752
621
744
765
717
677
664
656
558
688
537
626
543
369
500
321
662
631
583
436
283
801
709
410
525
661
651
734
740
658
923
680
653
387
405
562
579
898
557
676
491
573
566
637
552
702
655
498
712
604
851
522
346
659
677
505
565
818
774
534
554
579
687
917
745
485
878
299
289
301
660
562
603
493
714
718
849
437
553
573
599
673
631
811
530
433
546
829
688
739
660
649
286
605
506
433
856
625
612
690
783
524
552
507
731
604
490
693
723
495
316
664
407
769
564
298
516
518
624
671
854
624
714
755
824
442
590
755
560
743
770
737
476
663
651
552
403
247
467
694
701
683
465
696
854
432
774
590
668
730
756
584
415
496
478
875
0
175
682
618
752
607
524
735
412
622
645
670
702
611
827
464
594
455
558
700
850
704
338
333
555
584
684
533
540
387
536
625
801
571
448
736
552
536
648
664
529
658
781
532
689
721
664
648
775
561
626
470
746
581
616
574
689
568
607
729
692
562
686
591
802
698
632
507
564
449
781
50
551
794
321
677
490
724
649
573
1062
477
871
645
866
562
612
771
687
520
521
520
803
632
734
343
737
756
368
394
611
717
655
763
276
593
701
473
338
696
600
502
718
863
861
633
558
541
925
710
731
701
444
669
507
606
597
304
626
868
214
484
670
551
523
383
823
645
787
520
195
637
523
722
897
666
643
482
549
886
592
536
579
574
777
609
690
567
498
606
751
873
534
506
572
244
509
620
671
427
374
616
570
595
622
431
760
281
679
127
372
711
694
283
562
689
495
685
665
418
598
582
459
568
507
621
862
538
595
622
550
646
512
765
698
694
729
697
571
705
593
514
759
747
846
610
589
708
607
515
573
610
537
0
497
677
238
577
621
670
617
553
560
555
510
539
492
583
801
778
563
688
727
545
394
666
562
542
517
722
665
371
203
675
656
587
517
376
561
634
441
645
401
446
662
596
569
911
591
621
433
769
704
545
597
617
495
799
680
0
260
532
427
782
652
838
490
636
354
363
494
765
533
557
582
600
475
594
631
523
678
623
704
401
810
540
757
774
826
688
421
693
628
492
684
222
703
552
490
694
561
752
613
580
478
484
679
631
622
623
525
607
889
569
481
553
561
314
740
557
521
595
757
575
773
716
862
181
725
678
385
445
477
558
741
676
412
316
745
479
445
724
423
327
673
453
637
636
566
663
540
700
708
587
826
714
513
465
665
466
768
479
485
661
658
596
642
751
738
206
584
707
706
520
442
884
704
742
789
732
445
560
462
803
596
487
638
575
791
629
476
654
798
664
512
576
662
840
91
699
628
461
972
703
654
570
745
619
669
795
674
591
571
740
64
842
670
668
709
480
589
444
465
795
627
595
310
587
642
689
481
548
541
528
620
764
737
545
562
781
352
792
558
812
727
664
624
380
540
830
577
712
473
475
347
711
712
864
664
501
762
599
544
673
462
647
625
705
519
501
721
474
642
640
693
733
628
631
683
631
613
656
428
683
392
470
484
765
335
427
684
588
655
783
422
659
846
581
715
590
280
741
619
830
351
564
711
403
850
581
483
625
761
773
558
380
677
413
627
346
754
217
693
796
293
570
418
444
684
683
700
583
906
694
582
558
653
749
577
509
496
671
586
558
646
719
874
766
697
827
679
606
747
550
700
677
440
334
516
703
817
699
583
621
643
726
481
579
672
505
471
540
656
972
620
674
594
425
669
737
803
613
646
663
368
711
573
671
696
657
833
693
476
754
682
280
767
477
360
261
366
664
735
612
370
556
678
684
541
690
676
999
637
696
652
790
596
432
574
854
798
732
243
594
743
411
160
540
575
696
479
712
128
588
549
612
757
715
413
587
571
508
566
519
757
745
811
711
181
703
542
630
414
482
764
476
857
464
232
558
598
351
498
508
795
586
439
469
577
397
813
669
590
754
723
651
429
514
438
706
454
802
434
623
413
781
884
596
699
557
547
836
645
615
743
634
57
575
458
620
588
623
713
736
541
541
454
420
376
656
563
638
451
682
633
641
383
839
509
604
709
433
917
514
534
649
526
414
574
630
713
680
560
614
543
523
642
660
464
281
700
739
880
227
635
449
609
513
564
680
666
790
641
711
436
282
558
527
668
661
501
122
657
448
508
714
651
588
926
791
911
513
680
76
818
807
608
789
632
871
505
433
295
570
779
526
761
499
576
694
516
400
702
450
719
503
467
783
823
508
604
334
661
648
622
746
557
493
471
609
581
622
492
483
674
791
754
614
605
456
696
709
643
185
327
455
634
586
656
577
0
743
530
748
690
534
861
490
675
296
569
578
232
874
512
441
608
499
773
669
602
452
686
965
531
847
611
706
400
890
150
523
602
551
318
670
701
139
591
390
588
689
698
590
477
525
448
624
412
674
776
754
604
316
489
522
681
414
273
619
453
744
594
869
594
451
704
379
569
570
571
362
715
857
514
390
455
689
388
656
740
627
660
584
559
467
594
775
714
703
806
845
264
406
606
781
766
465
658
642
772
741
828
486
722
627
707
541
576
312
612
671
598
492
532
576
568
767
652
596
404
660
687
573
519
424
709
710
592
623
610
682
423
445
724
519
459
437
578
394
619
576
502
707
774
391
590
595
529
658
609
727
611
777
418
968
710
355
390
593
663
767
610
764
603
605
808
0
278
712
617
852
393
445
608
880
577
615
338
625
800
328
481
419
745
745
762
604
678
585
611
680
647
667
585
615
609
452
689
521
687
692
674
566
569
569
675
604
625
641
732
597
419
501
679
548
417
684
662
777
927
587
910
716
475
638
688
529
876
600
674
701
610
647
530
667
586
475
455
855
714
342
826
784
520
728
542
647
453
93
656
598
369
212
591
400
632
520
784
481
758
757
589
589
883
882
818
344
630
688
539
701
637
557
580
429
778
573
703
207
541
936
718
610
492
460
473
550
420
652
321
526
636
620
497
563
914
594
647
703
648
74
658
317
631
665
794
888
318
654
597
667
594
631
742
710
742
733
821
583
667
832
551
405
850
563
525
491
599
774
679
507
732
501
582
453
595
522
538
649
560
586
740
387
571
567
760
696
658
285
586
480
747
662
716
595
887
544
652
730
662
460
243
730
577
747
823
725
608
876
594
401
497
511
823
703
629
777
706
579
403
573
606
596
614
815
752
827
665
561
751
328
665
639
237
480
724
542
730
602
673
645
255
515
756
508
760
679
586
939
756
642
617
749
189
522
573
426
748
773
737
455
709
480
617
770
576
777
687
573
787
598
627
45
620
554
640
688
630
676
663
458
585
513
527
606
572
676
598
703
522
407
630
524
638
624
300
465
825
707
580
651
587
630
583
604
526
560
767
526
551
548
609
513
752
560
501
396
800
728
356
734
668
641
381
395
458
754
480
503
483
584
501
695
649
868
702
473
419
167
713
801
589
783
528
514
428
584
256
613
468
516
604
440
481
216
668
0
524
700
355
628
831
725
534
674
728
622
513
479
741
630
498
479
626
368
662
727
729
688
607
617
505
418
376
453
604
695
611
461
776
514
669
304
604
614
640
505
852
650
842
625
853
684
463
548
724
915
660
243
521
816
422
715
592
216
386
513
561
709
537
626
702
445
880
713
627
631
716
566
599
760
633
650
853
711
632
785
733
607
658
735
347
493
351
510
477
729
628
746
416
227
750
562
607
266
349
910
675
649
628
632
464
571
568
681
743
850
676
380
792
638
788
743
751
524
604
683
485
719
318
621
711
497
599
752
719
571
729
514
662
584
436
485
630
575
543
662
341
618
651
610
823
642
604
311
735
629
474
787
362
457
764
589
592
595
800
666
251
657
801
581
435
696
590
618
624
757
412
612
707
580
484
707
721
262
556
718
580
560
732
655
119
583
489
702
388
561
349
590
358
936
638
363
401
653
576
560
540
756
519
559
594
932
679
527
728
563
675
620
693
427
647
627
536
616
745
712
614
698
731
694
906
616
542
791
542
531
754
522
438
378
652
373
418
755
692
334
729
549
526
525
590
821
286
660
822
518
908
573
563
557
602
937
817
672
726
665
634
553
813
618
640
749
841
586
433
538
594
870
655
649
363
676
504
447
565
484
421
504
392
647
674
535
324
674
661
430
206
694
103
535
610
436
567
668
617
427
441
388
355
529
470
800
635
524
820
634
475
727
736
529
607
569
705
829
586
656
508
679
627
497
401
409
697
460
697
638
726
615
658
873
550
364
525
664
580
788
673
451
442
665
677
679
584
605
598
326
638
564
433
738
383
678
587
387
337
799
502
725
844
436
717
789
622
822
698
517
668
649
650
674
681
835
500
673
622
696
827
656
528
484
554
691
195
604
516
425
489
596
591
825
544
616
811
790
449
565
614
823
444
268
600
610
626
804
397
781
586
592
763
532
474
684
770
583
486
512
724
546
781
834
551
632
701
686
659
519
717
716
556
628
479
308
488
706
573
535
772
766
806
823
820
640
419
706
558
592
636
504
509
479
743
431
768
523
641
742
569
643
790
313
637
464
734
792
161
510
513
459
432
769
488
371
351
700
746
616
590
824
530
654
503
397
583
829
843
628
730
729
681
700
601
631
665
623
577
749
737
503
849
633
455
694
661
697
882
750
602
773
767
712
538
234
812
477
859
574
492
827
778
632
708
624
846
743
764
597
688
700
605
453
137
429
772
699
704
493
490
661
442
638
595
690
698
492
638
553
597
772
637
869
880
567
470
292
682
466
759
800
559
640
519
644
890
681
442
331
464
538
631
613
682
687
576
715
424
512
422
553
637
677
313
631
366
151
452
482
630
563
406
440
685
922
691
625
545
629
424
665
596
750
584
489
628
478
574
688
667
825
550
570
724
602
775
669
111
690
656
647
374
647
531
386
599
542
483
585
594
639
645
823
829
711
598
232
409
557
900
629
475
556
512
678
734
688
762
678
616
299
685
679
741
464
466
646
568
603
634
687
478
711
862
623
532
548
677
401
638
572
910
871
714
576
611
626
919
694
452
706
699
486
590
391
768
530
237
900
542
731
740
712
739
550
795
535
825
699
594
610
499
538
628
625
757
769
499
580
544
549
585
652
797
376
400
608
794
638
725
622
858
582
412
657
741
623
844
598
693
560
700
576
591
662
699
132
717
546
540
376
632
423
547
638
775
460
587
406
775
602
523
356
609
655
764
729
569
647
525
778
451
595
657
607
647
848
139
773
591
887
412
542
964
419
717
368
690
314
618
664
778
461
669
389
684
558
503
801
841
751
661
669
695
628
507
433
460
838
590
539
507
606
612
790
720
644
813
592
736
770
980
485
292
542
566
680
629
483
653
714
539
668
555
872
31
696
667
484
415
647
244
627
726
539
540
386
683
397
696
489
551
274
589
636
827
684
656
290
599
633
708
607
742
847
580
675
524
770
538
468
557
518
665
774
713
637
475
787
594
397
343
566
786
949
616
474
567
768
681
650
589
635
750
618
738
615
440
226
569
566
731
733
419
500
52
876
384
724
650
476
592
441
550
524
563
707
401
810
0
655
569
707
730
600
697
716
581
842
587
640
622
342
683
692
539
514
690
736
596
458
535
598
745
836
610
833
628
494
542
639
410
547
696
682
603
646
728
723
620
822
703
541
580
228
544
668
595
756
510
545
564
474
649
598
418
772
632
683
711
562
868
805
595
643
218
502
871
570
689
712
663
627
614
680
610
354
834
618
730
591
640
502
494
479
536
739
458
329
649
666
553
672
671
529
504
586
471
793
785
808
560
770
501
517
555
467
726
874
631
736
381
706
579
324
390
677
581
639
747
569
350
547
480
752
638
753
693
538
845
483
462
671
682
309
703
506
727
790
419
361
543
475
718
945
543
677
555
203
794
519
430
764
540
509
545
787
587
354
588
340
272
127
744
724
463
47
603
642
662
812
740
156
739
444
598
757
622
545
661
645
564
680
755
515
706
830
811
379
233
624
536
767
359
794
144
760
801
721
591
639
640
0
235
762
415
709
392
299
594
602
554
660
569
461
427
681
754
736
431
498
660
806
556
676
692
610
810
357
652
694
687
487
730
851
696
581
750
647
661
637
635
540
461
810
850
520
239
515
538
786
576
527
766
806
598
545
963
435
667
580
257
413
656
772
562
556
376
678
683
466
602
461
623
698
662
497
708
855
511
803
642
186
482
516
722
1071
522
516
708
744
636
780
416
716
644
547
839
490
432
594
417
520
592
593
825
542
858
601
351
394
608
689
709
583
759
725
939
737
676
733
673
376
648
683
798
844
495
714
597
586
894
779
733
513
939
773
673
269
580
655
520
718
720
683
600
795
756
393
638
489
737
909
716
629
424
761
512
611
449
905
566
839
665
397
869
701
552
801
864
694
350
573
76
626
599
705
637
596
889
591
557
374
686
729
805
579
583
488
703
493
572
583
535
438
603
546
735
612
220
751
822
685
899
658
654
648
612
248
680
724
791
699
350
692
666
666
505
736
760
779
848
551
818
634
562
528
532
433
599
581
528
693
588
898
596
630
714
627
433
433
889
700
740
328
760
619
191
648
819
852
608
682
121
547
717
425
460
759
505
473
499
589
626
458
273
530
625
514
927
467
562
731
573
698
759
539
597
601
665
586
826
463
543
634
653
561
534
518
528
723
798
599
510
487
665
794
590
546
342
411
874
585
778
542
484
732
647
613
373
680
636
579
368
711
884
630
782
740
260
611
923
752
731
674
420
703
625
757
554
628
475
549
386
694
505
937
729
700
860
633
453
641
603
455
703
655
782
737
520
837
854
769
553
652
415
849
711
476
792
643
715
688
778
662
583
558
643
616
711
736
614
519
759
562
493
602
722
581
816
674
487
381
749
595
540
449
500
665
840
652
655
805
724
597
562
806
544
493
517
659
751
397
500
687
703
668
627
550
607
605
751
668
548
436
646
733
626
671
745
707
528
649
608
718
731
829
500
591
594
490
824
595
575
538
431
526
465
400
665
621
649
648
480
679
946
603
919
551
662
706
372
465
641
756
809
579
0
670
609
618
622
791
847
698
564
628
556
705
569
839
453
801
642
449
146
514
777
860
607
730
387
564
688
620
642
325
591
505
454
503
738
626
626
618
512
476
629
643
370
701
816
520
722
631
593
92
491
678
647
809
913
537
763
392
568
502
726
472
514
807
753
844
849
361
742
744
511
520
433
327
739
517
940
459
695
429
508
536
672
639
983
633
906
557
512
521
432
502
392
575
712
521
616
840
714
672
775
932
733
572
548
405
608
973
678
767
620
540
700
622
658
641
681
639
574
589
398
615
703
467
765
413
540
519
925
684
407
281
588
710
612
570
697
713
521
577
419
426
696
574
343
560
579
731
545
567
770
702
307
693
599
677
259
948
530
651
349
504
528
693
757
699
762
682
572
639
725
655
465
673
589
681
767
442
798
482
377
267
760
495
784
921
764
501
730
761
381
731
654
813
488
608
372
470
297
766
641
966
598
684
829
330
478
605
421
769
681
577
619
500
705
889
814
492
561
715
551
508
858
637
544
465
586
746
592
536
788
550
691
215
587
609
424
721
345
581
286
627
419
334
623
640
575
646
710
682
726
431
664
509
998
651
770
579
486
767
363
551
800
662
812
602
539
839
803
709
637
795
660
387
571
443
559
529
681
806
482
521
728
733
504
651
690
502
778
692
494
627
528
760
571
564
621
540
515
576
746
323
907
691
630
737
719
822
86
712
682
916
481
771
334
448
685
580
460
477
862
694
593
474
600
747
710
41
570
657
566
883
650
708
535
622
261
658
752
830
560
881
709
684
725
173
634
722
764
579
588
589
668
639
832
668
435
368
495
595
703
756
526
644
581
181
775
283
850
826
500
817
444
688
652
814
587
690
671
633
475
390
422
551
744
693
489
622
547
298
659
667
584
600
563
508
565
634
712
969
430
715
469
447
500
277
555
665
463
692
472
615
696
564
372
583
581
295
864
596
486
740
717
752
759
608
756
733
445
836
369
630
634
373
476
478
592
711
845
656
700
585
429
279
733
812
527
0
595
786
701
609
670
597
325
486
365
690
640
469
637
700
751
738
586
842
659
507
574
167
473
673
524
755
472
533
383
569
721
332
927
506
733
698
733
446
524
358
516
780
547
726
359
632
796
452
650
587
463
244
678
669
632
746
705
743
578
434
537
699
820
436
850
507
759
531
774
545
139
590
484
717
721
491
746
668
660
867
506
577
742
623
727
613
491
446
551
595
419
754
700
508
666
500
892
713
627
607
849
563
423
590
751
702
642
589
695
658
504
519
541
611
832
548
665
498
642
482
268
353
661
775
803
471
414
738
589
595
601
592
440
610
539
805
619
640
838
720
662
637
691
504
495
725
538
369
771
477
564
648
789
640
563
590
349
832
593
649
677
507
567
465
917
709
563
784
747
515
212
721
437
600
376
620
556
737
629
487
616
635
808
611
663
642
488
432
674
564
595
484
608
995
463
797
687
423
850
592
597
460
771
589
872
700
1094
605
601
439
590
669
612
750
812
386
845
839
705
1086
771
646
426
725
689
880
476
594
393
725
729
461
493
869
596
598
646
636
480
234
730
396
771
651
510
573
533
762
675
333
530
650
738
614
674
739
592
580
757
676
163
651
713
648
885
564
562
792
691
292
134
432
712
588
564
470
489
645
460
906
770
686
734
447
847
758
631
712
420
545
521
748
492
684
464
511
597
759
544
486
562
689
494
683
392
692
726
665
761
722
524
625
439
762
917
746
581
670
598
341
618
365
470
709
394
602
660
660
643
604
672
780
442
539
607
547
528
559
641
655
496
686
296
473
630
642
852
772
655
615
737
570
912
525
565
843
778
477
721
559
568
588
712
469
521
643
413
760
612
507
563
684
752
673
647
641
747
811
645
513
563
683
398
436
576
397
560
612
774
856
699
632
677
688
701
978
595
673
581
622
663
700
429
736
552
553
574
446
722
519
493
581
801
514
497
791
657
535
565
531
524
372
540
675
730
514
547
608
673
620
486
706
674
755
692
156
649
509
538
492
434
501
613
638
663
585
752
678
577
626
545
130
636
526
611
322
829
708
562
577
290
550
305
653
523
842
555
450
435
911
582
448
448
698
176
529
806
337
728
778
153
441
497
715
652
520
453
583
560
776
713
509
524
754
641
905
629
638
576
517
602
725
569
690
678
658
423
561
640
612
715
617
651
555
748
860
774
655
853
677
646
589
558
749
482
633
588
676
707
544
578
482
702
664
683
594
408
663
604
615
748
665
660
372
575
674
0
554
517
443
620
651
540
658
607
561
766
519
590
756
623
662
707
700
484
426
944
798
592
683
722
551
761
897
706
716
73
717
713
321
804
623
635
524
508
732
325
503
536
720
465
688
766
808
657
842
490
422
755
621
591
373
650
584
730
580
516
845
651
689
467
619
598
695
626
549
722
780
768
704
240
492
689
473
350
643
736
565
571
584
594
810
596
511
298
779
395
568
490
551
865
669
681
591
631
693
567
512
582
850
804
743
615
432
434
759
607
574
414
875
682
664
785
624
676
739
376
208
636
595
519
612
418
883
0
881
630
589
530
517
500
784
630
569
577
504
488
506
684
549
569
523
235
715
760
309
638
534
0
421
868
584
759
599
705
577
426
580
734
604
833
745
695
531
721
586
781
758
616
600
351
660
695
656
832
457
524
626
925
570
482
648
662
817
498
460
603
750
704
591
687
560
714
548
651
678
725
471
779
480
243
586
562
515
778
565
681
452
668
578
637
699
585
624
392
563
424
780
562
721
442
297
723
616
704
616
641
694
704
587
451
857
435
318
678
611
773
880
692
481
398
519
802
729
519
624
688
696
620
489
536
885
681
629
708
581
720
757
847
522
563
788
615
600
452
643
586
462
551
570
198
325
458
629
552
448
634
720
765
665
724
561
481
557
687
706
338
684
560
513
590
591
491
660
358
592
682
478
434
648
664
785
512
770
653
782
717
770
724
487
617
687
356
625
12
613
499
543
637
762
839
611
584
807
542
613
608
873
739
723
716
678
247
590
704
682
386
633
672
735
657
828
620
743
482
393
374
584
612
896
663
687
849
307
902
962
303
726
393
316
688
292
615
619
700
718
730
609
701
683
711
380
654
642
442
645
631
547
733
553
412
555
596
397
600
726
329
518
717
473
243
422
495
588
564
582
565
449
802
460
873
475
616
379
702
687
525
711
480
468
666
850
769
496
624
593
554
764
527
440
884
682
661
688
668
580
576
658
879
771
1054
636
433
587
751
754
853
349
490
798
629
724
561
852
645
517
722
738
475
559
737
996
646
532
430
652
573
505
656
281
628
432
538
660
591
699
277
657
411
476
580
428
813
833
441
642
525
96
451
688
540
775
442
676
302
720
535
591
774
680
482
729
778
865
687
589
581
793
543
726
603
459
483
785
560
525
465
576
682
736
847
363
345
678
694
501
647
623
619
758
398
588
642
670
616
720
349
775
632
619
601
503
666
805
668
661
538
499
625
511
776
675
626
645
665
680
498
442
508
614
543
657
683
777
730
736
826
614
693
638
545
755
497
509
638
817
365
720
572
718
615
868
637
979
595
664
666
797
732
626
615
568
681
556
769
708
406
875
898
703
490
546
866
504
585
642
623
596
633
342
671
745
667
447
688
423
417
718
474
572
688
639
585
524
654
626
807
620
396
389
702
634
668
762
728
627
755
658
753
732
664
540
453
666
791
855
549
804
621
446
580
486
826
674
800
506
349
658
502
334
698
643
574
610
537
703
549
80
362
369
688
244
592
603
601
388
507
240
392
412
838
382
632
609
1079
589
398
281
430
630
113
845
380
696
777
858
823
698
697
595
627
914
676
705
432
476
336
554
683
568
488
823
490
610
637
559
618
349
636
1040
436
883
595
550
586
931
358
560
696
599
744
741
427
584
755
629
544
723
675
149
681
615
715
551
570
609
740
553
890
663
640
531
334
629
466
531
780
700
572
936
546
845
649
688
420
650
645
571
260
736
762
692
564
639
662
542
620
489
620
657
713
573
541
682
451
517
602
620
599
631
498
580
578
597
273
564
472
794
579
565
399
528
736
640
625
846
466
684
967
586
563
401
723
778
562
559
480
753
692
681
597
495
509
517
762
588
572
137
323
513
605
363
723
548
501
423
495
967
622
514
657
753
217
877
769
505
498
706
682
731
821
0
725
610
632
700
663
721
664
575
627
661
636
336
672
739
545
619
646
599
429
523
569
712
460
757
781
785
597
787
367
552
524
825
510
712
821
665
403
667
746
611
636
425
515
564
868
655
606
651
208
557
729
896
789
786
511
760
560
472
611
567
580
653
592
719
653
662
503
765
595
467
781
738
788
450
773
842
643
755
712
638
564
743
518
536
681
853
610
423
626
735
558
623
583
605
368
592
666
562
294
784
756
515
691
476
380
606
659
499
765
529
528
12
528
914
803
641
727
628
427
752
734
559
364
868
701
966
607
577
726
625
645
555
502
320
531
521
300
792
489
406
651
692
567
427
508
780
618
639
265
524
422
496
583
648
720
711
644
267
349
523
729
603
694
750
663
604
540
578
375
441
596
215
568
641
662
738
577
767
666
196
647
690
644
561
462
380
597
592
815
705
565
739
665
674
965
598
902
669
579
345
394
608
700
747
548
490
357
517
518
890
605
580
708
540
509
448
562
908
758
751
690
506
612
664
776
477
609
484
608
448
286
561
895
589
567
654
377
588
664
657
646
606
424
781
567
229
717
823
743
688
740
807
267
490
474
659
671
619
868
716
625
723
744
654
558
561
849
367
729
448
420
847
529
478
706
615
630
636
422
502
783
562
513
440
806
510
796
242
841
620
618
651
604
727
704
508
581
288
520
800
725
384
487
651
358
635
565
484
616
474
577
665
762
541
563
666
554
561
531
604
772
728
553
539
583
735
383
742
665
674
664
552
690
671
451
571
560
776
842
598
798
596
792
715
690
646
728
665
779
758
879
194
489
481
803
464
733
625
772
460
297
726
756
671
724
573
379
705
751
688
200
601
473
514
451
698
538
483
832
541
257
687
571
782
662
539
542
645
446
552
685
649
587
504
404
884
711
871
594
756
792
797
522
413
371
738
706
533
634
655
623
899
675
733
408
744
542
664
689
601
584
356
705
719
470
602
921
1020
640
578
611
903
746
736
580
587
628
732
589
653
673
663
635
159
519
527
416
234
612
745
598
695
408
274
707
812
795
619
327
787
550
296
646
641
575
405
638
665
625
773
620
496
814
864
553
779
765
585
745
740
597
901
728
770
545
469
592
261
540
584
412
756
669
635
743
392
669
533
672
337
451
401
638
644
512
539
535
561
395
318
78
715
543
741
462
579
244
573
677
745
825
757
730
744
380
566
252
534
568
627
749
770
717
636
623
766
673
621
536
556
831
785
607
186
787
761
733
311
711
889
632
404
768
584
740
528
861
742
777
458
694
607
483
660
577
863
808
719
594
695
629
767
567
799
740
609
460
565
638
473
493
768
463
348
459
662
435
614
664
646
303
663
896
883
765
343
772
469
555
531
644
776
651
683
411
526
472
456
406
587
494
830
909
571
685
736
806
635
669
677
571
791
645
973
767
519
481
603
608
640
745
525
582
627
400
316
574
761
637
710
772
670
649
646
769
493
225
829
497
575
752
770
550
858
473
534
461
454
524
529
181
706
713
347
610
122
726
768
490
791
323
790
793
608
578
259
643
678
662
703
670
844
467
520
385
477
674
392
569
650
750
627
467
828
523
392
627
676
572
311
765
587
851
612
887
913
594
600
424
864
668
752
335
719
542
607
667
812
677
671
512
643
710
666
603
595
580
591
586
732
514
595
530
785
491
619
613
664
322
731
499
673
537
585
459
666
714
695
634
715
368
516
724
403
539
600
604
647
708
777
632
693
722
520
624
680
568
534
936
517
450
413
440
666
728
265
468
725
569
729
402
409
709
533
614
565
614
843
659
285
665
664
795
356
619
783
447
638
745
567
678
773
683
509
543
376
656
513
827
632
575
618
669
452
545
808
756
656
680
740
745
678
746
633
763
685
560
408
715
421
828
382
884
534
695
460
617
561
661
585
580
643
386
796
711
617
643
677
109
698
539
626
400
718
771
161
669
668
767
637
755
568
801
658
430
644
609
914
681
577
698
515
482
414
519
689
742
730
744
670
766
619
528
490
695
538
609
622
560
626
608
380
601
565
734
549
526
667
652
404
581
458
715
583
687
595
731
584
600
578
306
324
309
593
761
747
414
509
522
697
727
731
539
326
695
686
797
714
663
299
506
487
435
524
491
504
521
633
891
292
998
686
740
681
608
597
548
579
478
537
567
694
637
657
717
484
473
466
499
796
666
730
832
606
349
663
506
753
566
551
531
543
697
431
691
346
674
749
739
975
571
523
498
689
748
991
569
559
486
869
688
272
529
409
506
612
913
575
364
735
525
761
626
690
515
722
714
625
376
649
546
662
623
428
607
606
451
683
567
432
664
733
624
460
582
678
527
647
366
226
590
424
841
735
433
545
433
471
203
586
774
558
454
634
406
802
607
488
582
602
387
607
584
695
472
723
435
407
582
336
678
686
654
763
629
458
784
594
348
507
855
828
649
533
342
570
544
560
618
589
823
521
653
312
535
661
777
635
764
549
894
598
601
0
732
621
563
565
696
589
463
617
642
737
733
906
768
723
676
773
645
536
692
664
203
446
717
815
847
140
441
315
488
462
823
693
839
788
555
607
323
571
650
713
686
589
566
769
623
524
220
473
403
591
739
553
772
773
662
627
657
495
674
577
728
619
615
576
657
439
469
510
693
430
812
667
624
769
545
484
582
792
763
611
642
634
996
436
478
464
640
375
565
596
628
561
618
616
500
647
623
1106
728
745
642
713
654
662
593
644
462
709
572
728
677
530
442
744
524
285
553
631
630
700
602
673
778
531
586
420
614
481
397
710
526
919
745
516
788
818
693
838
582
734
793
543
447
619
572
547
615
568
707
404
729
484
686
765
699
481
593
448
522
607
637
620
645
789
513
420
777
628
685
557
622
735
446
772
703
821
599
543
796
617
506
692
638
600
635
774
476
503
547
566
662
522
689
695
485
711
574
765
755
626
680
724
607
424
549
473
640
621
382
593
685
261
602
567
736
843
662
666
805
697
573
362
525
759
556
782
510
528
327
659
721
634
698
747
572
685
507
499
757
492
402
702
635
770
798
713
668
763
673
484
611
567
418
398
222
558
789
595
657
563
763
682
702
439
419
627
559
608
598
640
826
743
601
497
392
597
883
609
611
700
541
548
534
409
670
552
647
783
669
637
718
449
805
598
532
720
416
420
751
772
432
866
711
588
605
775
667
801
589
482
584
479
628
676
817
669
789
804
473
710
760
600
547
535
586
832
509
435
647
435
778
674
493
577
642
870
533
623
554
661
728
560
537
707
521
779
366
721
523
560
331
824
663
530
527
671
213
575
613
734
880
739
720
901
422
806
666
745
623
739
782
599
463
608
465
574
721
634
695
629
532
438
731
633
740
649
484
460
538
746
626
843
704
640
598
337
575
542
641
713
765
544
644
784
464
630
593
507
612
498
797
741
535
756
724
731
484
441
739
563
527
115
562
708
503
614
431
784
558
554
442
771
404
748
843
724
764
0
823
620
960
476
510
545
610
541
556
316
472
332
495
616
892
539
606
641
547
576
742
623
711
797
798
514
531
515
720
671
678
558
585
821
700
591
527
666
343
502
447
373
645
608
608
532
649
684
644
706
540
730
689
606
611
794
358
697
320
729
746
620
630
346
774
916
624
763
571
498
735
720
403
451
947
371
539
759
621
666
538
398
584
632
474
261
632
593
574
495
376
793
673
420
287
501
775
674
653
581
705
577
629
715
823
411
271
573
418
568
366
594
445
912
745
830
447
581
669
461
468
814
483
624
409
457
818
670
686
663
327
508
813
795
613
694
755
558
831
655
541
500
634
451
558
597
634
654
715
436
631
677
587
608
503
735
583
769
282
646
384
708
646
595
577
761
498
419
698
282
479
679
538
653
546
789
456
730
406
856
582
587
611
403
663
572
653
461
328
295
501
758
503
444
674
440
788
591
540
243
628
152
556
659
431
360
797
430
723
720
589
557
563
679
546
461
581
458
580
501
714
666
568
654
548
573
654
705
478
512
747
771
649
766
630
486
527
448
355
725
582
423
499
581
541
631
540
407
842
499
387
719
612
874
909
719
509
464
678
660
746
719
613
561
738
691
383
638
698
694
763
425
658
561
558
492
548
759
770
634
840
922
421
683
525
520
563
576
440
667
470
396
572
553
444
604
533
544
777
567
664
703
536
488
344
439
606
652
345
637
658
540
603
631
535
826
690
445
769
877
486
591
817
751
617
585
481
732
404
571
277
605
874
736
885
952
642
809
480
883
709
174
747
515
734
711
468
796
481
637
654
634
349
719
601
698
601
340
621
687
691
553
597
567
591
694
761
617
728
668
449
547
650
469
506
495
1073
404
654
521
628
685
464
666
601
807
703
964
682
822
690
677
711
529
411
517
834
561
673
574
483
630
767
714
880
467
785
853
570
565
605
609
749
551
567
663
735
613
688
767
648
530
572
656
787
523
456
359
606
923
525
631
732
496
327
552
738
568
734
758
594
443
594
686
646
530
747
417
478
739
536
793
569
130
354
672
613
605
451
600
689
548
595
655
626
761
628
531
697
599
621
708
728
626
717
572
549
670
579
800
598
439
664
670
817
542
548
641
731
654
805
785
767
841
796
394
496
508
704
749
338
542
738
384
619
913
507
619
750
692
734
578
569
352
336
950
721
646
519
375
480
502
889
559
726
611
291
407
539
685
640
798
725
640
559
537
700
792
731
556
774
431
680
585
501
711
682
916
498
674
649
601
709
644
546
623
786
596
672
521
558
626
668
715
491
725
736
435
668
622
876
739
726
577
599
559
464
563
427
821
599
677
643
537
561
605
267
702
416
751
775
463
695
748
656
527
570
670
558
526
537
643
491
503
702
717
664
673
680
582
535
576
635
421
473
532
700
529
245
763
583
384
805
760
641
597
831
698
644
696
699
527
710
684
546
572
456
508
688
760
316
506
650
153
639
674
629
480
587
675
423
692
562
510
638
610
632
543
597
476
828
531
768
625
833
601
633
571
74
756
543
568
562
445
466
644
811
493
713
661
686
469
528
530
725
623
519
765
828
298
704
531
531
774
785
405
570
815
570
592
747
607
183
822
761
860
721
859
556
391
667
614
507
560
585
491
734
504
567
446
464
598
770
551
614
802
637
545
449
156
905
739
741
794
577
516
663
724
479
593
485
580
504
756
706
734
691
879
524
677
589
410
717
680
381
857
543
321
457
835
554
890
707
648
355
373
736
632
111
477
573
667
692
660
736
383
598
812
389
682
649
870
271
373
536
313
576
774
687
613
545
126
493
639
549
579
487
443
610
707
647
707
649
603
626
681
726
558
600
484
695
720
473
310
675
631
527
763
865
720
512
972
629
627
460
730
550
765
395
503
784
542
604
546
542
739
681
539
601
492
359
732
857
775
779
643
547
468
858
612
679
462
374
531
482
694
863
790
727
623
538
757
485
790
550
582
685
584
649
677
612
806
597
520
652
360
692
777
657
431
535
571
686
916
478
527
632
737
538
745
634
649
595
553
641
643
563
854
765
538
688
765
710
470
675
412
611
299
429
612
416
488
482
845
867
571
467
596
630
435
595
737
424
501
739
465
642
652
876
802
499
484
687
758
507
612
702
596
934
487
542
663
608
547
556
616
680
728
684
663
624
405
564
549
698
654
802
590
415
486
813
760
745
691
726
590
626
546
498
783
553
615
648
697
727
644
775
784
621
817
613
573
881
656
601
571
627
661
667
580
510
349
770
682
327
307
812
643
699
605
603
599
436
429
965
722
849
480
701
352
436
632
516
688
515
477
657
541
462
716
429
579
582
747
467
438
647
416
546
744
417
503
462
764
617
494
0
589
608
738
652
515
450
641
335
689
572
625
579
792
804
817
552
688
632
454
725
782
313
726
422
549
606
412
870
563
562
690
676
499
846
594
408
210
634
476
603
590
734
499
683
662
394
0
454
619
564
696
710
622
452
563
757
541
736
548
752
813
521
560
681
868
381
809
679
906
617
560
546
511
779
930
548
649
405
743
529
307
823
533
542
455
676
595
605
383
609
744
616
525
496
670
626
365
600
601
833
465
711
346
601
781
690
720
756
771
613
477
516
693
335
621
404
569
608
638
816
703
683
381
558
590
637
192
500
679
698
517
639
692
352
778
706
797
925
672
588
815
164
640
529
589
796
741
315
523
712
313
612
603
575
665
485
582
593
594
485
641
440
523
626
774
582
352
139
392
491
486
378
516
584
577
557
427
628
694
609
485
543
594
509
404
682
600
684
713
700
734
159
743
586
686
809
292
639
428
851
344
527
687
498
718
520
679
675
598
629
572
594
482
556
628
672
469
621
609
756
681
416
647
780
677
617
402
588
599
443
568
645
520
721
411
711
800
466
851
468
608
578
645
532
483
584
545
639
528
684
568
358
655
693
718
438
532
620
807
637
604
595
634
682
483
289
648
702
654
371
948
775
612
600
589
610
655
592
649
678
874
838
875
394
665
677
843
470
341
239
654
584
747
521
615
680
464
604
651
738
756
233
771
585
717
550
617
848
750
731
532
629
764
567
666
667
659
717
589
703
597
667
385
574
425
875
851
739
694
659
566
644
508
326
345
536
507
637
390
576
531
498
505
828
508
612
436
638
745
546
595
715
556
443
639
783
624
524
668
436
729
291
634
602
784
733
591
701
810
965
480
581
666
439
601
175
530
596
633
954
812
723
861
625
501
762
533
356
579
684
645
621
584
722
611
648
555
396
332
631
158
649
600
755
678
246
581
830
745
784
660
593
916
609
712
667
752
626
526
418
592
309
685
463
552
538
609
676
735
810
931
602
823
570
727
662
699
713
554
732
415
621
591
508
779
718
527
699
649
554
665
851
577
457
592
432
705
572
604
660
483
630
519
729
317
615
747
703
672
481
432
40
109
878
711
553
600
668
625
761
593
656
517
466
620
567
789
529
493
708
646
531
766
693
341
638
355
615
841
745
713
618
535
871
465
678
680
870
669
631
532
701
787
654
320
721
700
646
655
672
633
798
760
677
566
325
589
609
740
301
630
376
563
720
559
553
565
778
610
405
480
462
725
567
778
663
525
392
740
699
741
702
556
666
622
683
627
269
637
585
573
182
638
668
602
606
751
634
542
537
386
627
449
377
790
649
563
638
642
126
551
646
658
794
541
548
532
571
514
712
619
528
466
474
779
559
615
638
500
577
836
588
757
376
793
557
566
610
619
427
485
356
645
945
578
685
599
584
526
547
474
611
648
423
738
769
612
662
703
634
540
338
485
395
829
579
618
535
625
465
536
657
614
695
382
481
836
676
719
619
761
619
791
445
539
589
494
648
765
312
817
324
685
750
296
468
654
715
766
628
591
742
212
766
534
703
667
576
765
964
547
632
587
609
573
600
0
508
890
602
392
513
304
792
601
634
841
796
765
564
686
778
475
540
532
515
760
534
344
771
581
532
617
523
555
727
650
742
268
697
439
891
571
405
810
547
535
658
835
647
639
556
613
576
692
609
698
708
624
579
543
627
144
86
542
709
637
303
622
481
622
589
300
675
661
694
772
677
502
834
455
771
736
595
642
461
475
617
701
468
523
749
507
753
603
810
700
743
942
574
272
641
437
590
652
509
741
580
634
771
733
378
493
722
669
526
529
732
487
681
730
794
364
398
513
538
600
650
722
286
737
619
463
397
616
685
732
635
540
484
671
370
548
550
573
729
438
757
549
385
745
549
633
544
630
575
738
657
823
559
760
555
785
374
611
159
432
248
754
612
698
615
545
445
770
898
574
782
496
508
537
489
711
781
574
800
730
595
666
478
631
617
611
791
535
763
635
552
742
798
551
818
374
687
797
609
724
746
600
441
478
802
206
485
476
492
440
614
680
560
565
690
542
591
586
592
699
518
679
586
643
491
486
550
638
775
629
745
66
611
667
469
704
553
477
550
561
596
796
108
649
428
701
565
511
555
624
483
631
559
724
487
557
455
655
398
165
574
544
660
859
784
495
691
730
505
448
642
603
643
638
470
647
671
788
473
1000
455
684
229
527
851
526
465
675
587
357
587
800
555
567
807
739
627
580
660
885
492
634
506
732
659
603
728
560
678
713
773
536
561
937
662
488
856
514
691
405
701
452
657
684
715
358
646
579
404
464
444
662
613
661
782
637
661
546
411
642
322
629
671
645
276
486
551
672
517
784
473
679
736
721
867
854
508
805
888
928
363
458
514
532
634
411
330
478
297
532
468
287
646
553
586
765
546
697
751
690
778
493
689
854
566
547
816
590
658
794
904
174
422
819
881
469
775
83
607
504
309
606
569
692
648
742
466
651
693
740
465
566
413
481
731
776
0
304
679
332
815
657
648
591
529
550
632
462
778
697
737
460
346
704
468
0
653
630
597
661
700
504
580
665
422
388
516
716
480
601
572
270
752
641
712
445
629
505
557
483
573
479
712
753
572
702
388
845
753
396
589
613
814
640
481
597
771
635
575
481
572
714
509
666
607
773
771
399
605
555
854
501
496
690
925
407
531
251
562
840
835
781
753
538
554
527
578
531
713
741
714
544
793
527
656
735
614
516
746
529
216
752
588
411
639
593
653
734
678
628
666
518
573
379
254
681
657
544
618
612
476
398
678
713
434
678
498
758
670
523
591
664
544
606
813
679
478
266
679
304
1030
540
734
806
734
0
854
619
873
712
821
720
665
784
325
640
610
848
550
548
780
278
670
641
429
628
374
622
729
534
693
259
667
778
667
454
550
834
820
667
373
706
579
628
801
604
658
553
606
208
497
779
769
466
565
640
422
827
604
550
290
376
595
583
750
717
152
540
521
653
609
630
411
733
661
619
695
688
490
712
736
618
557
575
765
663
614
403
557
500
395
624
485
309
866
571
568
715
549
584
856
720
714
615
585
466
686
623
565
533
632
627
799
614
809
648
644
794
653
891
603
713
458
697
844
526
103
734
624
619
664
400
725
624
602
651
480
657
394
560
700
675
696
595
806
319
570
637
521
504
578
579
928
474
608
645
613
325
679
641
702
500
602
664
701
759
513
911
819
635
655
479
490
662
639
327
721
823
913
242
758
654
600
662
359
492
591
478
551
812
407
803
161
565
355
441
435
444
645
805
548
779
646
457
740
412
446
698
676
509
542
675
894
482
537
446
761
568
587
612
502
548
724
694
704
492
622
655
683
581
626
728
733
483
439
818
617
703
622
474
220
612
701
548
568
658
466
615
448
728
922
676
814
748
609
364
671
413
733
617
667
464
515
577
829
514
724
500
728
886
532
448
793
528
533
627
404
682
556
536
523
549
530
1025
511
450
688
545
753
872
700
518
737
625
639
586
1016
630
670
754
589
558
697
551
569
633
658
585
617
700
792
413
790
479
641
617
585
501
253
689
586
456
705
427
643
509
337
273
527
426
536
454
890
647
71
886
870
613
769
620
620
178
662
569
640
865
354
723
795
492
312
566
602
695
642
759
634
581
736
788
597
176
687
612
543
673
737
629
670
303
702
720
357
527
771
631
453
646
728
729
589
768
675
584
620
602
346
686
625
258
689
469
459
692
765
374
582
397
519
750
821
791
641
442
514
409
480
586
810
767
717
694
680
425
401
735
686
732
578
777
868
602
220
849
755
639
662
662
603
545
798
677
554
572
375
691
412
583
758
52
637
720
725
455
209
773
445
597
648
762
621
530
517
965
774
592
678
590
392
626
600
676
660
124
730
660
533
747
701
552
603
624
759
535
498
815
923
624
699
765
566
481
459
604
519
527
495
746
664
554
467
410
726
757
642
704
456
418
608
481
723
595
654
556
418
714
525
167
606
598
628
710
764
708
618
585
775
799
596
597
72
650
813
538
689
636
770
717
471
549
558
686
307
754
521
379
539
621
562
791
515
504
686
674
672
664
369
737
728
503
694
701
516
815
445
392
757
525
886
483
810
403
570
479
767
691
488
625
495
768
309
118
638
691
761
698
644
659
669
716
649
584
757
607
378
507
659
461
498
513
476
768
601
671
412
616
648
348
488
682
438
847
690
429
481
750
557
767
791
365
739
682
843
480
648
436
609
709
588
520
792
458
621
813
599
516
490
669
637
304
753
439
342
546
594
677
442
719
596
622
579
443
613
731
790
376
495
823
902
478
589
623
808
543
513
612
593
638
755
479
594
606
404
429
572
446
815
454
564
411
741
512
372
581
460
502
560
870
734
569
380
714
645
483
592
657
472
331
712
784
895
610
689
594
549
769
714
598
651
673
327
751
617
637
859
695
698
577
394
639
577
785
702
643
565
651
643
525
804
564
733
672
596
643
641
321
748
563
615
565
655
616
450
679
687
562
634
628
551
842
748
565
849
638
635
590
549
449
522
488
550
877
266
604
455
349
624
771
738
534
401
752
358
585
451
563
607
377
582
593
653
584
104
745
761
620
815
708
649
490
715
548
592
548
516
676
712
632
609
496
541
709
592
921
636
605
601
687
851
747
469
656
640
667
539
744
509
437
509
434
309
597
589
213
690
650
598
162
428
548
462
379
698
562
215
453
343
293
836
754
685
383
661
665
584
467
493
792
695
708
555
701
638
493
588
695
696
579
559
618
443
880
480
567
524
723
761
730
775
684
586
547
389
683
520
682
872
480
696
541
623
530
615
414
423
546
608
404
579
544
721
653
357
621
597
558
824
277
583
553
717
750
721
414
779
753
666
567
641
767
356
559
666
836
735
642
866
481
560
799
487
580
649
735
683
514
335
561
642
757
552
559
466
493
613
396
676
619
732
559
631
566
126
618
289
661
571
607
513
665
651
206
617
626
751
612
705
553
689
562
625
698
502
373
604
533
545
589
824
477
805
618
347
528
797
703
618
559
723
743
581
386
335
792
487
710
733
718
576
767
739
681
710
792
673
614
513
715
654
642
727
291
722
617
794
503
525
534
472
690
606
550
588
816
479
669
520
511
467
524
536
407
516
669
784
526
379
835
656
686
714
331
677
709
274
527
518
531
629
716
634
829
834
704
690
546
743
649
590
738
518
577
717
711
561
510
599
529
632
628
691
711
805
770
436
1037
510
532
684
584
424
478
713
683
576
651
557
835
636
731
405
580
869
546
548
735
105
698
710
613
599
621
577
585
746
608
418
528
593
533
640
439
534
494
503
556
692
755
710
714
914
690
650
636
441
391
634
498
627
682
702
791
759
611
546
539
403
697
823
176
638
720
666
641
687
657
536
686
549
594
871
746
662
592
378
392
528
684
572
757
509
453
802
68
475
486
549
720
713
400
627
524
709
773
449
478
662
1010
638
489
767
610
770
870
471
573
668
625
555
418
726
698
601
546
698
647
742
750
561
665
670
753
574
565
601
551
624
547
580
716
373
816
659
538
579
582
687
641
692
592
569
512
716
870
662
550
726
306
549
630
606
294
534
702
601
673
22
761
727
599
445
470
745
702
298
712
482
427
185
415
482
549
538
176
668
883
398
865
421
569
583
590
547
535
785
610
711
772
752
796
504
543
436
566
638
707
613
505
430
908
577
750
710
645
825
471
579
336
638
710
580
527
568
620
587
702
713
351
655
494
570
746
832
464
756
723
362
516
466
592
654
352
584
703
637
602
668
798
521
622
698
597
520
573
740
701
411
799
622
865
615
647
831
664
567
797
394
747
584
590
260
653
650
637
781
241
770
440
618
495
701
689
666
583
632
592
697
693
616
776
481
638
415
709
639
561
512
877
581
712
631
731
428
609
786
612
672
514
575
466
794
594
442
641
629
721
797
591
206
573
535
803
624
554
514
739
501
134
442
672
473
474
596
526
355
528
685
758
584
664
630
850
542
279
145
745
663
609
727
910
479
495
330
813
527
793
788
466
453
422
564
249
548
701
429
537
747
635
524
1244
615
842
364
552
630
424
642
558
549
634
643
500
723
470
683
743
321
458
679
412
479
234
690
660
523
765
492
697
542
850
722
551
762
613
581
821
685
642
531
541
338
640
665
401
670
804
398
251
613
353
699
767
645
607
833
527
670
717
698
762
268
694
638
668
560
567
955
322
698
564
583
837
634
453
835
574
373
633
431
663
429
662
478
493
602
785
441
741
349
436
885
407
872
838
627
347
697
460
686
457
318
662
665
908
689
623
655
599
567
768
697
763
672
364
536
789
541
432
541
816
603
568
615
677
269
662
541
686
754
444
900
600
539
624
706
374
772
270
775
926
501
538
661
336
716
368
732
268
531
483
722
492
1017
752
856
399
793
371
925
552
780
764
530
679
500
429
681
646
695
769
517
619
702
705
764
609
608
723
561
670
620
681
647
453
611
663
68
715
640
397
142
807
745
533
650
527
571
990
565
722
636
496
517
523
661
583
695
839
287
584
276
644
555
722
366
809
647
711
621
627
697
382
288
564
830
805
691
760
793
647
699
664
885
675
695
638
560
674
908
654
660
532
660
812
559
648
492
555
643
687
493
766
810
394
352
632
480
584
616
688
568
551
562
680
736
623
761
347
517
628
710
618
460
769
705
485
535
616
664
374
564
579
304
763
382
636
787
917
651
401
838
575
788
663
770
747
538
637
654
502
753
668
542
793
555
727
761
579
643
741
603
840
855
421
534
687
674
649
720
745
747
372
733
641
372
817
641
728
724
516
605
777
728
756
718
702
785
324
719
733
413
602
649
741
712
572
633
508
518
897
789
442
765
311
636
624
658
562
674
565
348
579
579
453
696
568
643
580
804
707
326
706
556
570
430
835
579
768
337
587
803
526
508
731
823
507
760
672
634
708
595
464
582
529
477
483
659
715
723
749
710
583
649
957
964
476
627
734
450
884
509
472
461
742
610
301
759
341
603
172
775
551
765
748
377
530
470
642
603
564
892
448
124
428
699
576
695
146
533
607
209
540
558
702
791
723
736
731
524
839
500
342
560
556
163
488
620
610
738
758
801
702
762
738
517
646
737
529
432
475
587
646
379
459
715
538
549
378
337
734
429
865
570
705
526
677
480
685
279
540
679
672
740
683
587
731
366
715
609
548
734
334
349
630
493
476
749
652
592
711
576
756
529
185
850
549
609
739
544
592
563
487
731
522
645
340
711
549
699
571
611
527
470
274
529
508
554
357
525
608
477
596
692
392
516
662
109
588
618
736
599
601
567
410
354
343
639
732
480
699
766
513
821
369
639
720
739
322
494
241
1077
278
722
357
638
676
657
657
406
823
878
639
667
778
530
659
606
770
698
712
752
651
713
791
592
841
755
480
252
385
684
535
428
497
737
539
899
667
567
683
717
476
855
600
614
766
690
590
545
659
504
490
490
569
842
203
708
479
505
653
356
723
872
257
521
452
629
581
543
538
664
548
752
466
628
329
423
769
273
826
559
612
777
565
631
495
595
289
620
594
439
680
726
690
681
529
576
469
686
795
468
597
652
469
738
677
451
738
519
758
670
535
750
703
626
509
708
782
784
734
790
685
554
268
810
589
498
550
562
502
734
461
458
669
652
723
660
662
538
382
693
723
425
544
606
748
660
402
810
595
673
763
614
700
500
697
604
611
656
1084
257
372
356
689
617
344
496
686
713
831
729
713
811
555
592
346
775
640
598
743
510
950
733
772
593
612
722
506
875
771
583
655
700
668
581
563
689
645
609
785
627
650
760
700
744
413
805
613
347
707
529
857
773
790
574
613
703
542
750
710
615
631
615
478
578
661
561
878
573
670
725
540
569
736
579
520
475
634
657
545
705
413
743
779
739
736
597
664
416
513
474
384
425
603
677
520
684
493
484
677
701
683
573
749
734
0
616
51
507
634
888
514
889
768
515
436
522
575
931
733
640
732
510
515
620
504
663
611
558
561
738
665
653
804
722
650
767
654
662
580
511
0
28
649
596
943
681
718
668
429
528
627
604
799
668
661
804
616
614
677
277
455
483
619
704
504
641
851
909
756
557
718
744
643
676
764
758
528
530
658
748
633
575
821
535
829
761
626
768
514
493
803
631
456
700
744
845
677
906
434
245
947
535
615
729
487
641
646
966
716
469
690
575
539
545
926
592
819
596
451
604
726
475
557
538
828
517
575
351
616
769
452
432
783
630
535
377
570
689
399
737
521
738
823
588
612
550
784
425
766
620
580
613
628
86
444
758
985
530
706
772
752
662
595
774
648
630
696
779
513
471
541
713
627
711
686
550
779
188
473
731
747
608
627
651
688
43
606
680
630
369
618
643
586
641
444
743
650
599
542
385
615
473
585
394
798
875
582
868
604
109
594
739
407
567
567
717
685
441
430
780
772
622
282
381
286
616
731
526
683
532
489
660
346
399
851
692
655
524
688
447
553
735
333
521
594
629
520
490
756
753
603
133
625
32
559
513
486
674
600
772
563
459
353
320
667
519
657
660
652
466
721
611
494
504
747
619
75
760
695
672
605
373
603
467
601
667
234
777
374
425
633
584
432
684
640
511
714
606
716
514
499
443
584
749
589
705
704
876
658
757
312
304
663
590
660
770
739
576
677
474
519
758
354
678
717
697
558
597
751
674
573
320
641
608
403
535
663
767
559
686
408
520
729
292
781
483
659
712
683
620
521
560
765
858
718
692
605
649
626
551
491
628
473
604
435
0
399
196
769
595
748
654
647
554
618
570
692
580
914
577
458
779
530
530
721
690
879
735
753
774
551
543
575
486
508
744
622
692
590
706
686
538
387
738
796
556
442
731
638
630
614
575
781
512
596
498
652
525
358
628
337
718
517
802
770
486
542
507
507
593
862
518
579
674
714
628
795
758
656
579
648
681
485
634
536
821
581
743
602
597
996
633
587
705
724
745
643
845
696
738
377
899
690
667
613
485
81
670
695
844
680
83
816
929
786
521
593
729
679
651
564
657
590
648
481
641
804
672
517
808
633
612
638
705
551
536
564
829
999
702
631
632
540
588
458
662
615
499
617
709
738
579
481
884
1090
825
459
773
724
687
636
508
434
263
574
805
405
703
708
842
347
481
663
673
808
521
540
248
564
751
875
365
570
696
684
301
865
317
652
619
317
669
454
697
476
530
252
905
630
706
478
562
748
596
490
794
572
545
671
422
792
679
561
983
637
554
435
470
284
666
737
539
584
459
256
486
614
566
785
497
598
520
768
522
649
475
560
529
744
567
709
683
522
607
570
582
694
596
806
639
766
642
564
451
652
780
439
629
746
749
787
630
407
796
753
715
694
622
560
792
558
498
661
764
444
604
583
512
490
609
727
848
558
546
521
669
712
632
729
611
548
828
617
663
667
439
716
611
481
429
639
564
277
591
391
763
771
545
284
574
626
479
632
607
730
598
896
399
634
667
448
528
643
636
635
752
427
571
753
514
517
726
701
591
756
671
611
509
698
424
504
828
661
562
578
200
797
561
699
470
524
651
731
373
662
517
610
641
608
590
718
312
673
874
694
531
612
704
620
839
576
702
664
359
667
984
568
486
563
932
563
447
561
669
532
565
604
617
762
254
671
724
589
503
485
775
330
371
589
768
549
449
548
538
612
495
422
584
625
579
189
726
694
785
682
549
721
667
543
818
548
795
702
743
598
635
867
737
400
775
626
266
807
667
556
746
321
696
496
592
655
647
638
619
575
721
705
522
653
326
673
583
1001
856
603
693
638
830
673
715
713
877
294
757
774
629
767
647
427
876
574
520
346
520
737
689
630
346
645
729
684
684
490
688
788
354
628
762
614
462
546
626
944
777
432
283
477
430
497
284
927
823
719
228
461
871
705
430
244
869
610
369
292
640
725
640
719
591
720
488
528
636
424
674
744
469
590
503
547
831
905
587
743
960
566
658
607
547
738
599
585
405
626
616
732
233
681
624
500
581
764
511
343
562
612
740
705
826
255
728
708
933
609
683
597
737
422
779
707
610
604
571
505
831
568
624
742
503
502
561
641
496
674
726
515
876
424
799
457
666
320
864
700
223
589
496
932
876
881
713
294
697
629
714
711
704
448
485
708
770
441
241
674
630
434
684
619
262
173
563
681
642
596
656
225
848
771
496
455
739
431
650
815
712
865
611
536
505
741
492
772
761
652
664
695
710
724
698
686
604
664
823
721
594
851
609
593
495
382
608
589
680
683
956
765
531
449
595
413
742
609
616
522
667
422
381
319
763
776
1000
558
916
861
598
767
566
695
830
640
641
730
687
613
441
660
673
627
574
500
696
799
610
803
142
522
648
574
632
524
347
505
567
591
504
697
216
709
570
698
878
518
574
693
603
595
533
760
827
295
296
553
494
337
515
655
456
706
592
603
768
521
585
597
338
712
619
457
520
792
620
694
676
771
684
906
509
470
664
704
755
561
623
970
753
698
693
721
701
575
629
1019
717
284
477
677
632
437
697
919
457
415
674
785
666
558
571
509
484
561
628
347
660
557
554
320
517
715
709
633
805
676
760
513
635
697
521
642
543
778
622
274
354
481
506
744
508
718
671
390
641
725
609
604
761
423
609
585
299
610
487
657
670
641
565
770
371
613
683
567
653
630
638
717
655
686
531
355
560
917
474
819
793
648
367
791
690
816
676
461
666
471
562
664
374
536
456
597
517
459
616
841
547
610
741
513
360
174
659
496
598
411
638
407
761
822
627
428
717
702
706
563
445
567
569
788
561
674
781
479
686
669
711
706
622
673
571
700
353
560
608
718
443
609
555
542
869
741
629
543
604
814
548
816
652
640
549
709
473
698
379
514
819
456
742
367
627
810
929
548
617
626
772
731
475
553
682
591
635
524
600
614
282
651
501
424
607
556
826
886
664
637
728
530
690
418
708
741
321
615
615
608
852
663
586
493
796
605
644
734
716
677
459
610
553
637
729
734
467
659
632
460
942
402
624
526
711
618
720
729
417
749
575
429
745
731
817
569
642
590
559
544
703
753
504
641
611
690
618
759
631
536
695
553
598
486
453
566
688
203
642
635
652
684
618
58
534
650
658
529
591
591
605
490
404
752
651
667
706
658
556
610
725
715
649
225
502
494
649
418
207
641
647
929
667
669
766
570
582
517
675
872
382
442
1037
759
767
303
612
508
402
791
823
383
532
432
766
218
733
493
653
612
653
705
558
595
534
532
707
656
574
740
522
825
242
575
572
472
566
920
715
760
455
783
663
275
549
711
503
597
768
732
608
636
868
820
661
518
509
395
460
324
721
715
694
744
625
645
522
749
493
760
411
288
443
857
479
618
457
493
504
507
630
668
866
480
443
640
757
801
95
665
402
501
619
644
567
484
411
451
381
663
364
564
673
633
607
502
643
595
641
603
527
232
815
524
667
561
618
585
795
500
657
608
499
432
874
667
536
543
687
490
261
546
641
729
516
418
658
622
658
739
468
310
636
537
533
521
406
493
283
753
838
680
561
778
597
602
360
181
670
656
607
761
576
645
449
610
563
872
611
514
549
495
745
724
554
878
572
619
897
696
535
554
579
628
662
536
460
700
609
452
584
553
612
533
584
832
613
545
711
721
501
693
682
506
638
512
449
665
770
311
559
760
481
518
460
556
502
486
650
614
378
918
491
666
666
713
626
687
644
598
711
553
755
1006
847
691
561
492
558
647
371
432
740
673
617
217
898
719
501
504
768
515
765
458
733
621
979
220
596
379
639
596
710
587
673
723
703
594
719
643
662
686
804
572
651
922
643
678
355
859
468
683
599
427
906
351
608
240
735
697
557
736
706
428
669
726
642
744
483
685
696
701
761
488
505
507
181
712
680
674
534
686
716
742
481
838
560
354
742
628
829
450
702
680
663
457
635
760
553
685
475
380
662
682
468
639
693
651
878
713
804
820
552
350
525
603
752
502
372
712
669
420
577
761
385
535
523
504
525
944
663
820
501
545
814
682
716
871
683
731
641
518
577
151
401
694
587
333
709
867
561
672
705
434
559
696
670
387
672
606
424
460
862
622
299
438
746
75
795
425
623
652
701
764
555
823
585
838
759
786
578
328
405
654
614
679
116
658
761
771
601
737
598
731
639
335
605
521
625
753
594
501
573
890
708
630
738
688
266
480
611
773
716
864
727
345
606
632
614
415
716
589
499
736
383
546
590
642
684
507
793
643
555
622
701
620
800
263
272
519
398
614
770
497
690
0
556
585
557
466
610
566
554
461
795
445
757
750
792
676
553
697
275
495
583
138
641
475
807
725
712
703
963
745
689
383
648
306
699
572
454
512
772
779
470
612
644
801
495
463
608
500
513
819
601
851
425
641
741
430
606
753
560
736
759
539
574
529
378
479
814
690
530
571
582
819
601
659
733
617
524
280
696
404
756
429
340
941
544
693
528
472
699
783
599
508
488
605
793
637
777
468
475
480
680
195
626
704
662
593
694
603
626
698
742
629
476
840
636
714
711
663
181
440
716
641
240
563
763
848
600
615
484
507
483
448
797
506
306
612
627
465
348
649
541
856
371
657
649
531
517
705
599
743
596
605
584
481
7
753
736
480
556
517
790
265
334
707
786
477
780
783
432
855
491
386
669
427
649
443
620
742
757
678
588
644
859
650
92
503
608
476
677
704
660
732
637
714
477
737
642
566
679
691
387
658
839
572
325
386
713
285
539
601
700
747
746
428
523
756
504
899
405
812
483
668
732
500
658
553
0
472
760
377
434
752
643
578
756
690
611
888
623
640
297
468
236
706
578
715
884
400
830
722
477
363
749
693
884
329
796
555
700
645
693
633
723
658
889
712
576
796
549
429
567
622
185
555
546
570
515
477
774
813
813
531
423
595
703
696
491
696
675
595
602
497
410
606
401
347
566
479
753
901
288
616
583
808
200
414
449
430
481
745
710
404
755
708
584
616
895
510
270
573
404
689
472
889
791
712
562
678
507
607
377
617
510
712
428
442
387
640
556
263
603
595
755
707
575
580
831
576
516
542
991
682
470
704
714
743
583
560
641
814
643
662
368
549
286
579
692
658
618
601
555
415
426
654
650
649
616
698
644
501
657
770
840
707
857
542
385
831
621
701
835
581
600
716
420
546
522
570
492
589
352
697
603
675
638
376
944
770
520
641
264
526
632
784
752
647
677
618
693
868
677
379
738
682
764
494
519
861
641
694
757
761
521
678
599
564
915
560
749
619
308
576
592
617
753
648
713
845
829
541
559
604
603
407
484
593
658
932
490
777
506
475
583
634
615
732
589
611
160
452
515
805
461
855
684
560
425
532
631
773
672
599
554
639
655
722
457
521
783
465
979
761
632
364
639
615
686
563
469
647
512
661
592
700
694
762
785
558
558
737
595
829
424
1010
726
442
362
349
488
399
617
873
520
824
414
642
607
486
443
292
491
574
589
538
716
725
617
680
673
744
510
607
834
343
568
476
544
581
314
311
624
437
785
655
764
368
596
429
740
645
725
546
460
657
746
610
600
841
720
518
705
501
809
572
887
499
659
692
758
849
430
853
748
337
657
614
537
519
593
414
427
826
710
666
549
879
818
593
681
811
565
776
457
740
626
659
676
471
494
617
776
371
743
645
771
747
0
744
634
450
706
547
795
587
602
722
605
671
618
594
484
656
604
613
527
815
927
290
640
605
506
382
446
678
781
583
887
458
711
674
467
526
630
640
795
541
718
414
714
706
725
547
638
573
467
432
611
493
402
452
558
823
596
730
622
363
502
766
642
505
612
595
392
695
379
689
694
706
687
370
835
571
888
607
493
569
406
744
563
707
633
404
582
629
829
718
638
693
683
545
467
133
598
574
498
577
504
861
802
622
561
44
639
713
745
637
761
335
400
553
611
625
485
618
462
488
203
698
500
242
682
640
583
161
419
492
536
684
434
542
821
413
752
585
907
637
710
630
979
631
709
617
510
628
719
544
761
280
426
517
695
573
544
646
651
715
599
790
637
612
690
608
606
661
780
686
680
643
571
911
627
528
623
682
735
831
581
596
674
716
357
482
888
545
710
519
727
758
517
564
768
553
586
796
939
657
619
570
653
524
614
385
359
579
708
566
557
508
756
682
536
829
100
474
376
488
381
666
652
394
650
612
645
639
329
834
357
652
820
710
614
748
186
672
461
468
875
637
616
579
779
506
559
588
429
472
551
544
803
592
200
526
475
465
533
513
600
651
801
384
609
506
586
642
745
756
567
643
546
767
541
608
563
692
395
673
466
717
221
474
876
586
353
563
608
691
739
581
670
612
643
555
715
759
762
359
467
724
519
520
634
601
742
557
784
631
622
492
663
525
439
645
653
521
702
672
672
592
469
561
580
361
466
715
328
617
398
365
541
257
796
618
704
404
658
626
573
738
744
617
706
769
549
665
707
104
435
920
614
468
715
787
764
646
608
617
857
530
763
350
509
731
427
582
637
291
537
610
734
716
509
710
581
554
633
539
850
586
643
634
570
662
459
412
1000
86
638
329
630
744
518
567
386
744
585
620
750
492
272
706
657
694
591
466
655
508
763
672
712
330
817
561
524
820
630
627
687
769
750
614
642
576
691
772
525
624
747
974
631
629
712
592
518
651
524
408
923
561
738
580
570
386
590
849
715
631
485
700
677
532
319
566
671
771
578
749
696
663
858
443
893
788
577
746
490
510
726
657
474
0
660
638
623
623
412
802
268
731
173
352
780
471
651
696
710
858
872
774
532
348
629
730
570
380
534
633
659
527
645
597
690
470
750
488
705
450
523
496
615
596
501
571
720
654
596
741
674
759
396
581
385
404
452
752
515
508
820
631
453
486
351
645
653
867
833
708
698
664
607
533
447
485
666
584
64
767
686
741
593
607
204
587
490
577
686
478
673
688
782
745
634
483
521
535
244
734
605
367
515
536
572
717
579
665
536
677
596
422
733
634
657
471
410
433
822
645
574
462
799
824
471
788
673
740
458
629
608
690
493
568
326
740
422
700
425
436
673
353
555
578
686
405
429
523
403
676
681
712
489
640
341
484
696
609
875
593
671
548
721
466
649
338
522
828
394
489
671
612
578
440
679
726
290
623
820
662
585
645
524
772
426
691
801
710
753
533
719
671
724
676
310
608
555
541
655
484
524
582
814
756
618
766
633
647
688
624
655
612
736
660
532
609
672
255
672
519
761
904
574
433
903
947
667
828
551
485
608
598
493
671
578
720
463
604
589
370
805
540
636
678
656
666
603
695
555
671
438
706
492
680
724
626
870
632
701
827
713
418
685
665
686
717
559
758
707
642
587
633
773
610
654
457
437
760
531
474
553
543
512
486
504
461
542
564
611
335
544
715
813
757
670
705
701
619
496
675
530
618
653
152
458
837
519
627
733
554
658
565
808
761
773
772
696
651
783
715
640
683
720
910
216
705
521
617
703
474
526
416
589
338
411
493
444
376
481
429
577
554
629
576
721
737
973
661
696
636
679
498
665
572
764
590
595
390
624
579
424
697
497
718
686
726
526
634
589
375
645
602
658
609
534
608
557
717
494
519
550
775
849
643
556
690
607
690
257
636
629
426
625
644
624
303
586
618
757
513
591
488
683
598
656
730
693
615
892
927
550
748
504
586
498
826
712
599
471
596
610
567
597
761
767
564
691
701
493
661
536
831
810
608
510
570
435
628
939
625
841
566
810
469
620
520
624
513
582
533
618
545
623
743
336
617
602
290
623
710
739
1139
546
556
410
373
854
527
634
614
718
573
657
801
607
738
533
572
487
530
816
949
759
863
618
401
819
592
553
749
640
890
580
613
666
492
536
581
257
505
543
570
456
385
437
634
866
627
727
564
687
534
735
751
874
864
787
735
632
411
0
458
631
478
647
424
401
661
312
432
678
607
554
451
296
612
662
466
487
755
729
587
642
879
585
610
530
498
691
520
765
687
620
641
645
478
510
764
893
451
670
543
268
467
417
623
615
645
618
754
596
835
740
635
743
670
692
521
603
843
367
545
449
773
535
555
722
679
550
697
268
520
382
618
785
945
640
658
713
341
688
755
557
695
716
663
838
273
670
736
603
636
684
406
342
748
266
792
498
676
497
197
496
268
637
608
826
618
722
474
671
427
668
536
598
633
528
642
425
667
987
756
535
652
607
645
576
852
440
373
669
797
704
622
880
787
556
645
466
655
603
537
801
615
707
722
473
644
587
709
611
559
609
739
463
610
552
289
601
615
595
410
756
856
686
399
375
453
733
644
533
565
523
662
495
625
743
621
710
372
448
572
793
630
848
610
858
610
491
261
740
659
606
536
283
499
906
749
830
491
736
451
837
541
1020
753
658
385
627
277
848
680
660
778
640
654
368
371
615
891
752
484
674
714
737
0
718
781
462
574
571
401
696
609
974
648
543
700
552
632
440
416
575
332
616
729
815
515
606
605
860
692
626
677
585
878
669
338
607
621
504
452
747
296
611
754
690
605
489
602
570
653
685
621
610
493
645
381
723
303
597
705
698
511
757
714
480
861
404
601
782
688
790
789
839
502
860
880
428
764
392
720
504
468
799
604
656
564
848
595
708
572
359
569
392
766
515
547
600
709
863
612
551
569
607
599
804
727
574
479
791
536
966
899
698
830
689
623
753
455
255
584
514
848
596
721
742
698
721
692
554
570
888
741
561
466
613
215
593
453
641
733
808
144
695
668
761
742
734
701
655
556
519
784
504
412
499
658
552
480
622
164
344
667
722
516
826
540
553
570
548
420
434
526
551
630
271
912
592
337
567
640
426
575
475
511
555
460
457
742
643
626
379
667
719
463
530
539
468
612
851
722
364
612
715
818
485
693
773
794
532
616
654
462
743
563
436
486
508
616
680
669
340
799
499
814
827
676
573
711
465
711
652
520
572
444
415
721
691
346
615
714
670
583
588
924
782
606
545
653
666
636
738
783
376
689
708
227
624
579
610
644
840
763
485
642
690
607
567
753
788
659
788
529
677
709
746
473
750
765
360
694
865
545
583
477
560
697
461
396
538
614
500
740
697
594
577
683
818
590
683
376
636
536
98
646
619
442
161
744
686
659
624
439
806
593
618
546
780
567
501
338
641
489
502
679
642
598
498
721
511
475
618
521
696
609
664
637
1123
310
494
541
175
484
309
831
344
599
711
585
434
649
684
376
531
620
584
714
507
399
517
807
713
699
580
490
641
315
498
692
290
465
666
752
888
528
596
658
653
610
536
389
638
715
527
525
271
698
629
542
644
738
471
285
432
561
394
717
500
662
323
459
401
606
594
772
634
693
785
579
705
450
559
486
859
575
916
202
809
790
464
472
705
755
703
483
685
463
388
471
498
317
0
345
458
585
597
530
458
761
880
520
187
520
501
1055
596
448
674
530
775
639
773
515
677
497
599
860
577
396
600
705
635
585
651
767
574
651
643
671
407
399
585
722
538
630
491
404
291
638
0
529
428
625
699
631
675
155
445
580
619
509
664
336
775
513
211
648
477
565
532
299
713
205
712
544
693
878
593
600
445
480
676
515
342
766
654
592
639
590
721
691
463
525
719
109
698
498
715
735
778
617
674
836
717
424
561
562
669
623
1050
631
758
635
571
700
328
288
375
490
580
786
783
624
757
482
627
577
325
551
235
462
878
604
379
773
623
483
629
187
641
513
850
377
580
369
734
201
142
776
656
718
338
595
555
845
603
611
370
777
453
535
344
539
769
641
364
611
609
528
692
649
485
511
612
545
590
646
692
482
422
768
768
486
481
490
843
840
516
641
649
772
698
604
191
570
428
389
725
413
868
580
595
723
799
766
626
636
677
780
754
182
607
548
220
604
442
429
655
443
491
521
1036
801
618
693
593
477
364
775
710
436
388
372
720
619
703
458
616
492
640
465
516
728
366
519
596
299
535
796
790
560
428
665
604
588
588
596
603
424
521
400
774
460
603
463
449
352
603
741
679
343
576
783
488
773
531
581
617
463
460
328
863
743
639
576
622
493
745
711
631
612
578
472
595
780
780
561
571
738
499
542
749
727
727
553
526
820
652
592
543
686
552
796
880
605
540
648
721
781
643
424
510
720
724
388
657
671
506
626
590
661
815
528
830
565
748
464
681
715
601
676
665
639
867
358
801
578
707
448
528
105
705
677
963
586
662
829
632
495
807
690
707
557
560
554
549
562
764
623
644
565
490
651
432
498
730
423
608
558
767
657
785
594
701
542
705
374
672
597
574
643
296
563
725
579
600
627
587
526
729
676
384
516
557
658
575
489
632
341
704
584
343
588
527
632
717
755
599
942
271
362
647
544
529
901
0
521
906
258
640
627
745
622
453
650
528
792
419
457
484
509
334
669
648
410
844
791
880
662
714
508
667
372
581
720
475
830
542
658
657
552
608
719
795
123
693
890
711
614
603
486
323
633
674
694
512
620
617
769
601
681
493
710
445
734
385
771
555
671
785
506
702
611
506
629
660
772
25
771
582
380
501
583
433
755
707
475
669
577
620
920
767
453
621
534
505
762
591
614
825
508
576
607
459
515
709
669
525
732
473
484
990
618
683
768
697
593
573
722
401
806
692
372
710
931
655
518
550
826
626
639
554
729
568
427
720
724
939
657
528
628
334
849
287
508
903
564
521
883
797
560
779
534
653
538
526
289
471
505
588
571
662
665
682
574
600
345
467
632
827
816
591
648
469
566
832
636
717
870
572
254
521
621
639
476
536
813
303
333
625
532
631
531
946
497
855
254
513
601
807
726
435
719
651
430
551
682
606
688
642
812
567
750
400
621
694
679
158
627
466
499
513
413
590
595
644
484
628
676
659
620
495
612
649
521
699
657
545
871
580
466
658
534
707
735
568
498
618
310
851
493
653
804
864
848
542
492
669
663
571
600
609
636
538
401
629
656
672
473
674
430
690
477
424
475
878
530
497
850
587
496
661
536
738
449
501
619
658
408
486
529
664
614
653
123
715
479
656
634
703
728
434
737
638
686
776
886
552
715
677
559
362
546
619
512
609
631
835
229
687
416
264
686
678
547
720
563
772
629
718
508
704
744
824
546
591
563
589
576
351
494
274
808
719
549
633
579
697
457
208
630
820
757
576
439
370
0
449
531
829
481
537
503
628
742
680
674
283
471
636
738
658
608
641
702
602
303
445
621
508
249
810
698
611
649
832
458
869
645
515
689
527
420
437
500
592
396
594
395
494
871
856
555
692
700
575
696
590
501
617
768
187
584
615
769
821
458
752
675
776
470
567
685
344
568
621
510
595
643
430
510
517
0
698
422
547
810
503
839
542
764
614
761
670
593
675
717
653
738
611
601
443
631
581
861
355
701
607
453
157
579
685
595
574
747
727
557
457
599
599
591
839
352
546
644
484
807
415
632
738
664
543
396
740
899
413
812
582
604
455
706
577
723
603
661
555
484
596
759
627
597
665
746
427
595
690
651
636
717
513
394
466
935
450
507
540
702
517
510
697
806
680
942
730
410
554
652
614
236
357
802
618
776
538
750
650
847
448
555
580
656
650
868
722
806
343
632
693
796
373
485
464
669
659
806
725
523
692
580
700
562
754
659
587
743
649
825
1123
387
683
628
769
537
731
395
949
549
301
675
649
592
573
868
631
551
664
729
692
626
649
374
679
737
776
577
383
628
433
293
344
448
759
844
806
794
11
540
648
616
715
686
745
638
584
478
401
536
526
701
651
597
517
595
683
793
251
589
817
768
825
616
631
656
528
853
623
452
560
661
468
545
570
787
765
674
722
535
597
604
661
687
517
701
832
715
458
435
593
645
559
674
673
647
785
643
325
479
784
571
545
718
563
638
813
573
562
656
692
630
596
844
517
508
557
656
628
868
686
628
703
413
574
612
642
614
626
866
722
557
559
717
756
584
744
457
491
629
478
639
646
583
578
785
435
479
271
600
430
409
677
606
620
621
674
763
547
532
627
279
598
577
580
729
898
523
770
758
496
594
717
385
154
736
674
472
605
28
737
888
560
515
578
606
646
604
492
346
594
613
968
659
727
740
631
619
670
493
463
763
627
554
456
758
574
739
562
740
687
578
673
831
754
752
624
678
777
566
612
715
621
535
616
621
457
797
584
608
306
743
565
516
557
609
667
952
651
613
891
758
486
329
541
578
275
786
632
540
757
473
627
597
403
689
506
612
686
754
788
543
680
594
685
740
590
721
366
634
788
769
499
491
430
574
629
718
251
958
652
677
687
731
672
507
833
556
547
819
771
642
486
683
628
561
574
431
471
548
610
597
486
465
626
403
1040
366
678
634
657
617
539
622
615
445
377
673
645
692
507
659
719
610
536
561
612
530
721
702
788
808
539
560
514
617
607
520
452
688
341
298
744
705
663
388
945
638
666
680
313
848
585
447
690
811
722
481
576
808
811
603
816
618
394
649
666
706
502
675
712
703
546
657
475
399
396
723
665
613
867
475
674
593
786
722
451
598
481
799
641
764
602
356
860
468
511
476
331
914
664
589
537
645
509
699
728
352
530
658
657
546
677
824
500
604
538
564
873
621
637
683
705
637
503
775
658
563
622
453
508
704
494
492
491
759
722
456
422
708
611
917
851
481
659
474
549
483
798
493
632
619
662
495
717
646
531
732
572
822
555
622
647
885
786
613
595
680
561
458
744
629
551
656
602
850
913
686
654
730
640
521
490
598
505
800
577
623
408
619
687
373
831
513
770
638
298
418
660
614
608
705
564
941
641
774
519
447
617
451
673
523
631
693
625
644
566
381
876
709
450
933
675
778
600
818
884
645
804
744
972
426
585
705
663
622
497
755
644
398
514
422
681
654
479
690
405
712
493
712
386
685
664
718
349
417
669
648
721
339
767
503
678
509
458
535
444
557
547
769
538
628
758
602
0
588
418
637
467
605
745
523
653
430
623
684
611
500
622
433
609
547
641
497
176
537
862
500
607
360
603
616
460
489
764
520
459
617
750
757
826
574
585
900
618
277
656
693
651
691
645
513
557
804
705
608
725
645
578
755
677
610
431
367
634
535
548
341
335
556
783
481
739
730
658
612
826
459
255
537
691
767
635
684
663
638
738
460
841
630
686
741
733
700
626
206
790
679
479
499
751
443
658
658
407
488
674
485
443
666
442
690
657
177
596
673
421
604
464
838
468
601
607
315
556
653
782
406
542
770
602
581
693
546
632
430
558
574
393
538
532
314
759
773
525
591
649
626
556
574
813
303
717
538
658
578
257
722
482
826
507
516
489
609
944
460
855
344
501
633
516
604
740
457
468
514
369
417
727
557
384
452
272
655
687
578
697
709
534
426
617
317
676
493
433
327
449
568
368
430
631
786
622
611
631
422
458
638
771
508
821
559
583
81
707
401
554
354
669
630
594
633
637
549
836
538
730
214
596
555
466
189
368
603
543
603
631
676
920
606
731
631
659
807
528
597
594
281
803
621
212
586
565
624
314
803
685
744
519
628
688
694
565
694
612
657
673
707
220
406
497
614
697
518
920
702
619
500
649
248
684
639
517
704
765
492
539
772
586
616
716
408
591
670
556
638
528
609
518
765
855
619
646
588
729
779
712
769
669
620
593
641
685
644
656
436
520
821
639
613
527
607
690
520
596
512
612
511
868
908
373
436
867
582
51
833
329
545
748
810
484
397
504
791
477
593
262
511
808
720
705
604
459
453
472
667
652
703
591
605
751
470
641
327
541
499
506
786
731
664
393
456
538
856
549
387
774
695
654
638
420
726
669
681
657
676
772
876
455
792
556
679
605
527
463
617
461
587
419
740
532
561
462
382
601
777
545
603
625
761
340
850
703
955
814
754
594
665
668
770
497
496
558
567
722
748
436
791
488
770
706
389
612
516
606
664
491
597
780
604
617
327
472
428
590
641
618
621
551
727
654
630
531
689
684
424
563
629
610
465
392
310
561
689
466
530
409
427
646
523
453
701
554
578
370
693
679
910
451
305
742
644
336
672
726
28
769
758
714
709
517
688
673
570
749
470
692
662
153
623
630
620
489
600
696
610
406
520
773
596
713
419
724
641
348
875
699
544
382
890
372
442
533
677
591
407
571
762
861
571
556
549
753
534
708
504
817
317
710
714
680
608
685
413
829
375
597
517
601
769
210
564
683
882
698
558
571
623
723
653
578
747
835
942
581
810
564
327
511
699
731
752
635
538
572
460
923
938
591
618
266
575
656
527
482
536
761
534
557
343
685
542
650
664
755
609
739
793
624
626
622
532
900
505
373
486
367
371
559
512
749
648
564
647
824
570
433
523
313
702
660
345
692
448
441
782
814
543
617
607
664
619
251
469
631
458
771
541
680
675
654
679
333
651
574
577
605
734
622
222
788
679
676
562
607
610
597
700
538
766
629
503
535
460
582
615
525
604
633
543
709
671
513
206
580
769
562
769
828
788
512
390
650
818
308
471
718
577
721
791
598
505
573
495
781
666
583
713
566
827
544
66
540
935
739
592
691
440
466
815
543
861
586
568
699
577
675
644
567
629
671
732
615
737
600
843
726
661
535
619
603
601
643
639
542
426
661
585
567
513
553
647
641
629
358
551
630
456
637
774
620
698
774
433
848
497
272
649
563
398
148
588
963
614
462
567
691
859
589
510
653
743
676
704
772
577
540
729
786
761
893
605
510
503
656
749
594
822
670
766
518
777
476
740
610
543
549
543
525
762
620
384
547
700
530
702
829
540
727
436
528
227
875
500
838
674
526
630
539
708
839
335
750
563
272
494
519
431
672
647
495
536
626
782
394
731
733
727
613
608
654
534
766
850
769
689
638
251
610
272
758
801
445
596
767
544
650
411
879
528
580
401
458
638
283
543
880
824
874
605
663
559
622
539
441
658
547
405
521
577
684
375
722
720
710
277
549
829
405
470
550
802
467
468
606
636
687
933
512
525
447
588
329
647
333
470
609
556
565
353
570
907
677
590
371
244
695
593
430
520
537
677
810
616
544
432
592
722
647
464
720
538
521
677
610
715
606
515
662
382
757
430
327
805
593
785
702
722
631
560
652
646
635
411
623
681
598
636
438
622
513
686
518
957
659
651
824
412
680
662
324
684
659
438
808
676
542
721
816
452
571
368
603
627
621
532
718
618
660
432
779
478
436
599
664
627
630
646
612
812
621
725
344
779
668
456
446
686
44
710
671
575
528
770
930
558
652
706
474
485
690
632
501
697
539
562
525
606
470
354
540
830
410
808
437
560
731
724
762
747
573
478
651
534
478
663
619
775
418
820
434
494
516
864
764
737
601
662
589
620
428
731
494
842
541
741
720
662
530
644
585
610
681
520
861
735
736
904
510
526
314
693
549
754
108
727
254
240
660
724
576
693
498
799
782
643
696
585
477
610
681
650
574
616
726
632
593
282
491
793
601
563
789
649
594
820
548
731
576
799
497
642
456
530
601
550
510
462
882
607
728
639
523
655
731
638
160
321
510
355
706
625
516
520
684
633
642
372
771
488
631
763
438
442
721
624
710
327
631
601
633
711
428
615
691
594
818
412
716
686
612
673
649
1037
768
415
358
641
581
562
696
628
611
675
637
766
525
517
321
506
160
467
652
567
689
630
569
725
668
342
493
651
489
731
658
694
608
342
684
652
489
508
741
698
731
667
458
789
388
738
529
444
523
710
460
602
679
621
158
692
587
710
470
549
684
887
682
627
529
757
362
685
661
693
617
685
476
343
677
636
739
876
571
504
592
595
638
804
794
696
735
895
228
498
630
595
540
506
611
805
658
711
601
615
624
441
799
697
565
225
673
331
592
757
412
612
643
580
588
830
843
687
203
972
676
706
418
787
659
618
690
592
531
820
686
379
625
752
523
715
563
561
406
516
606
604
610
627
482
824
674
610
620
663
517
788
494
475
701
550
817
653
764
908
293
567
667
634
849
395
710
829
787
787
618
687
720
689
821
626
727
422
697
610
411
823
565
357
775
754
574
550
527
572
668
767
671
553
423
549
743
903
551
566
648
518
799
505
596
606
825
708
434
657
719
835
832
412
517
724
762
557
764
805
485
562
677
541
662
791
666
666
567
861
586
587
560
137
664
557
499
609
733
203
567
695
442
798
745
639
534
657
474
687
631
680
553
905
766
585
731
647
575
660
615
731
716
657
549
670
523
709
490
544
706
677
422
474
651
706
501
599
883
335
693
594
582
545
588
604
558
694
729
778
704
782
486
455
369
670
678
668
411
612
320
731
711
656
759
717
390
324
633
655
701
517
742
794
681
655
675
580
465
643
652
770
651
641
697
274
573
425
474
659
632
647
331
802
737
842
714
763
579
430
466
881
756
554
707
628
781
285
518
526
535
481
655
684
398
396
577
566
588
525
522
620
626
688
134
390
775
480
735
629
483
538
785
784
938
457
299
511
458
427
540
739
653
400
498
428
470
594
453
764
151
507
540
606
460
592
425
770
441
639
423
819
332
538
713
693
555
694
695
491
543
377
740
516
677
597
575
463
419
649
591
718
648
696
723
381
769
548
890
573
682
717
640
682
723
593
730
563
707
412
382
841
671
563
557
528
472
294
546
661
372
440
626
587
560
672
616
552
585
656
401
540
838
799
430
492
637
634
506
855
502
320
558
709
698
689
530
640
618
576
784
452
325
613
618
541
562
693
449
528
650
607
491
754
562
545
708
687
466
852
781
702
653
620
437
654
803
559
692
670
375
136
669
665
657
1152
719
823
555
700
341
482
610
536
815
640
639
579
602
882
718
768
730
288
537
563
771
604
594
588
412
158
246
640
523
578
363
664
885
777
731
536
610
671
693
505
455
667
488
607
665
605
552
532
511
615
526
419
556
689
829
659
600
558
513
589
678
677
568
507
432
720
573
620
192
567
600
484
573
612
528
547
635
181
641
767
638
499
182
775
646
109
698
689
605
658
703
453
535
438
512
541
468
561
947
743
528
372
272
424
414
431
586
517
493
526
797
632
754
552
623
739
838
780
41
525
619
744
614
798
448
715
525
564
555
684
455
206
686
490
540
540
674
527
742
806
522
593
551
545
606
623
544
333
320
281
677
658
546
871
810
585
759
792
313
635
618
710
431
478
753
511
763
182
610
637
645
620
541
498
641
421
610
736
637
588
327
720
483
445
414
625
439
708
698
551
747
708
98
679
687
722
666
716
674
358
657
783
629
548
740
606
691
659
777
351
435
456
734
767
821
443
726
520
639
686
412
701
641
517
490
609
795
620
618
695
349
604
609
788
809
953
709
515
552
470
593
563
499
565
504
695
694
754
631
638
585
654
605
495
436
444
782
658
568
696
813
428
666
372
501
561
208
680
670
832
422
816
567
670
772
737
611
846
530
818
819
645
730
825
773
635
606
516
450
468
739
561
526
586
789
511
376
350
551
594
688
534
923
536
777
768
646
638
613
619
274
674
622
656
775
285
0
571
553
600
717
683
650
663
429
687
837
360
613
858
474
541
535
602
659
620
562
665
421
446
457
468
759
425
700
700
626
570
650
620
706
582
685
707
736
694
554
686
691
239
703
819
532
619
757
387
542
792
633
538
688
551
549
665
550
458
771
596
868
596
380
831
645
250
484
730
612
683
628
687
698
532
705
602
378
794
522
445
747
630
745
479
784
916
551
427
532
640
663
613
857
624
507
725
878
391
566
761
450
712
645
769
702
551
514
699
484
625
745
681
380
681
582
475
513
553
561
759
866
654
710
671
569
652
635
627
782
148
685
742
560
644
511
590
278
361
260
655
538
745
585
713
429
472
638
626
646
566
651
466
705
508
718
709
717
705
748
662
622
562
692
488
703
650
740
504
685
480
404
648
599
536
694
479
389
696
735
784
507
483
760
613
354
227
618
577
505
373
799
799
583
586
726
484
684
828
541
445
860
651
758
693
718
324
392
428
618
732
593
700
566
678
389
0
837
657
645
436
833
398
537
594
580
564
409
536
780
630
466
600
314
529
746
565
453
634
770
593
716
597
739
1000
692
543
515
317
718
477
452
626
610
589
735
797
650
715
623
710
523
529
625
658
485
630
846
720
607
697
710
523
578
762
653
369
746
546
449
615
752
609
591
467
657
662
602
449
527
668
667
633
775
579
692
764
508
577
540
419
680
544
682
609
729
763
640
631
749
675
692
641
506
266
784
580
444
564
461
307
770
614
420
516
755
670
602
626
415
700
575
541
741
515
584
735
645
644
475
544
659
519
603
848
736
692
675
512
614
362
780
402
876
886
778
576
686
609
388
625
837
721
645
821
600
625
507
515
641
617
620
818
624
455
640
591
550
660
931
490
830
526
794
618
655
506
632
489
720
657
589
696
318
236
695
628
621
608
485
494
570
632
618
787
611
358
734
765
532
311
307
485
649
645
671
628
775
641
544
464
792
572
882
608
557
463
360
511
615
535
286
534
690
546
383
697
544
718
486
607
662
446
582
523
752
727
339
440
557
618
556
556
479
685
700
701
583
513
787
390
621
583
637
632
708
640
499
611
754
403
845
551
628
504
695
804
345
479
375
518
374
424
411
496
467
748
541
494
657
830
659
714
830
381
569
556
514
706
651
630
474
484
697
722
632
743
561
587
646
744
567
524
519
532
618
692
596
312
670
681
698
575
593
781
792
375
470
501
275
376
584
573
718
607
500
556
755
389
610
406
315
479
604
624
531
682
690
738
646
635
582
550
562
199
770
719
717
451
581
371
585
615
334
467
396
599
733
696
400
451
328
689
646
677
464
491
664
758
552
528
775
585
246
737
566
724
701
710
641
210
633
533
25
550
508
721
777
397
589
530
813
470
703
828
414
774
424
646
737
689
512
687
598
657
354
559
633
532
811
684
579
479
756
695
571
568
626
660
635
660
884
871
455
709
458
524
663
654
567
821
609
419
696
609
460
482
540
747
662
680
688
636
580
600
763
721
494
404
671
702
427
724
489
540
603
837
655
779
561
558
719
761
713
764
518
753
611
842
506
689
375
583
591
757
527
449
741
696
618
465
646
788
432
705
629
636
745
718
865
883
380
728
640
540
606
648
608
638
431
376
516
701
696
561
503
148
573
655
768
593
580
665
929
528
611
385
528
507
1011
656
644
873
541
740
563
620
610
540
592
792
474
730
801
686
566
797
720
730
707
598
596
819
543
613
544
637
464
624
799
807
714
723
841
578
736
625
728
739
685
689
596
373
578
704
481
740
516
843
624
317
603
497
433
417
683
610
228
819
530
511
658
463
420
549
429
666
651
720
497
553
746
531
583
430
396
145
339
610
601
729
554
638
758
714
642
398
423
901
706
497
536
547
1174
638
645
786
494
868
563
613
774
835
636
537
532
626
694
764
556
593
670
542
559
423
691
500
556
701
560
0
652
606
564
634
835
562
692
733
600
707
714
479
579
604
687
835
695
472
596
577
646
820
664
650
486
731
387
614
688
812
724
809
414
807
386
426
586
662
590
710
426
659
387
917
567
569
576
555
630
176
731
390
879
788
685
634
650
517
660
610
497
724
626
719
577
595
621
921
366
567
589
634
572
620
560
421
683
908
470
480
763
802
471
863
407
600
658
578
620
997
672
558
533
719
639
404
683
723
616
621
360
493
186
613
532
714
695
594
378
613
679
644
568
703
469
766
727
854
865
484
731
793
593
638
536
683
503
758
517
474
820
599
708
685
618
682
631
787
716
133
884
727
523
775
662
546
419
829
669
685
519
472
844
768
0
631
416
604
658
559
285
535
1007
599
594
632
678
645
695
636
506
775
685
684
601
607
662
581
181
540
942
720
386
665
94
648
678
620
776
778
597
673
737
801
449
7
716
540
662
512
694
383
573
752
635
594
545
733
838
707
614
813
483
676
770
436
631
722
662
512
623
926
428
639
762
567
642
620
441
689
733
641
638
231
736
471
418
512
584
654
558
362
608
520
577
785
315
620
450
744
531
539
861
724
824
936
401
768
741
512
782
606
331
453
542
750
852
641
864
656
525
551
972
565
519
463
570
459
194
697
899
726
639
617
857
65
690
559
771
1050
684
457
831
673
398
604
577
632
490
377
543
516
368
664
605
465
461
403
574
480
531
222
595
731
614
858
612
809
605
681
531
355
828
531
489
527
738
632
689
825
510
570
479
506
791
614
795
1086
579
730
514
544
688
587
768
609
722
503
639
261
863
559
898
294
591
819
365
811
768
590
628
623
768
447
581
440
500
575
559
537
555
884
843
599
596
886
770
552
708
518
680
715
693
538
440
512
547
618
807
901
624
600
622
724
440
542
471
699
773
616
677
800
641
790
387
586
774
644
696
456
775
632
461
924
556
762
293
600
785
639
491
670
769
541
429
686
447
167
915
948
442
510
433
535
718
583
735
734
468
670
726
531
693
970
568
230
773
649
427
611
712
706
506
675
733
663
823
516
783
554
652
644
808
616
623
637
667
591
311
597
426
521
719
831
658
548
795
875
582
532
797
961
463
708
841
428
458
445
569
608
619
701
708
912
771
390
222
418
1029
622
488
697
716
829
554
602
334
330
785
509
642
620
479
596
586
697
634
729
697
632
686
580
439
425
508
782
869
636
531
870
692
613
590
669
665
578
655
508
462
558
707
180
778
523
587
523
611
824
610
626
393
680
583
538
659
510
398
626
539
624
613
586
712
353
695
663
618
790
256
559
566
817
778
422
718
505
738
631
911
288
599
582
582
419
737
583
840
525
663
550
794
596
665
659
313
606
723
524
455
692
546
392
937
625
634
586
559
430
594
694
620
506
655
625
372
605
662
602
748
833
715
600
761
676
311
598
634
338
709
646
585
534
609
409
457
674
662
430
728
475
418
690
686
747
560
992
564
657
602
484
692
482
703
639
641
740
549
783
713
501
454
639
804
560
575
376
585
600
794
604
975
726
863
600
855
628
200
572
748
732
667
637
617
603
665
798
160
579
690
701
589
687
430
434
460
633
310
507
591
0
512
652
652
356
766
762
589
433
742
754
795
775
782
745
618
502
641
260
572
804
672
834
734
691
790
665
610
738
484
595
571
709
914
523
560
517
478
607
636
691
530
668
788
613
715
695
506
551
774
653
699
510
7
800
719
543
706
744
557
584
663
395
681
526
843
689
402
618
377
637
702
929
546
694
534
866
614
535
655
735
659
509
711
727
395
761
595
507
679
744
798
808
719
765
599
517
591
360
546
769
471
626
595
658
466
586
730
585
600
526
0
541
694
772
552
765
226
700
708
731
700
765
466
715
825
674
347
940
832
281
701
713
624
561
708
829
596
759
845
672
614
675
675
316
762
406
642
608
854
548
613
678
569
329
763
544
687
678
883
550
632
640
717
569
674
350
499
618
649
735
813
759
501
552
846
750
627
658
304
526
733
604
969
640
392
820
532
175
712
452
558
696
546
692
646
707
458
866
710
344
494
313
768
772
724
309
477
347
641
729
525
535
555
551
530
875
924
710
665
623
633
731
734
689
442
689
439
357
821
843
679
558
673
579
714
608
696
526
581
839
402
509
444
619
491
657
729
401
424
604
492
548
340
849
478
757
550
777
172
725
651
797
423
638
527
435
708
380
571
689
542
605
580
490
580
648
557
277
465
700
869
755
683
304
575
352
632
774
614
481
500
813
715
504
618
725
674
619
902
546
677
597
857
713
609
714
532
471
422
515
596
685
653
386
668
691
621
660
655
576
570
749
882
701
820
631
736
633
611
599
610
516
512
627
616
370
593
716
722
639
513
489
261
612
520
476
818
844
681
399
579
607
566
604
604
647
671
479
758
713
617
549
491
407
435
608
648
783
0
617
777
771
629
700
627
750
773
567
275
409
283
616
534
544
448
643
318
672
553
726
679
322
696
411
754
700
488
437
670
423
462
751
471
576
568
611
792
516
622
706
508
613
463
664
761
624
593
456
502
743
503
586
628
796
613
651
629
458
718
570
569
532
404
564
574
437
509
665
776
457
509
748
595
821
555
811
686
743
846
450
602
127
633
764
521
712
586
553
417
643
587
646
328
306
588
379
539
292
493
341
646
642
383
527
419
441
679
626
790
742
745
601
309
813
558
557
762
603
638
603
758
509
687
689
461
407
567
768
555
574
300
651
639
794
399
796
834
690
745
647
582
761
883
605
825
365
639
707
670
597
529
467
382
590
716
462
337
701
314
495
0
702
533
680
865
608
786
454
566
780
718
486
517
770
478
608
486
508
472
618
444
368
523
696
444
710
572
692
604
670
658
828
925
799
677
662
644
694
282
649
388
741
481
723
335
445
454
593
643
463
621
781
681
589
540
546
734
564
730
382
776
608
759
638
653
648
608
856
747
652
533
621
613
557
542
668
887
881
719
679
722
302
638
731
743
277
617
438
582
630
509
618
594
519
699
214
660
629
779
538
815
356
884
728
762
770
733
629
394
707
484
670
843
605
598
604
370
729
497
464
723
666
831
632
531
352
478
723
842
572
589
609
153
565
846
502
737
449
695
659
721
374
643
437
583
593
543
702
160
790
742
695
745
630
656
597
568
528
464
818
617
561
804
631
492
140
845
73
510
179
659
402
463
577
755
537
701
727
716
682
614
768
575
426
540
618
555
710
774
526
767
800
472
622
501
544
667
608
714
653
647
757
537
715
461
491
432
728
662
631
545
592
526
586
601
544
741
835
623
504
285
788
556
574
777
616
527
591
540
371
687
586
551
266
619
502
174
368
445
609
638
570
618
770
1021
509
752
625
685
645
567
705
539
557
682
693
542
394
856
682
347
601
676
617
627
769
532
584
680
555
672
652
582
560
549
533
465
477
642
590
359
545
982
701
433
468
916
470
573
545
750
691
696
680
533
584
443
477
854
616
541
790
534
654
631
480
745
683
728
377
450
661
565
521
671
731
484
568
421
639
508
231
568
550
620
633
602
640
605
709
512
568
614
630
250
586
746
574
605
694
402
565
617
554
615
597
580
660
517
611
589
605
622
735
502
586
556
626
600
600
614
671
516
715
625
744
518
975
503
658
599
577
392
668
377
607
678
424
720
312
602
735
659
1034
546
678
542
504
989
432
684
710
372
597
868
751
615
654
890
700
549
775
551
482
540
609
722
693
598
905
669
648
775
673
786
495
724
354
831
624
571
559
665
385
825
394
551
467
695
712
584
702
910
422
757
464
795
604
724
551
814
723
627
555
700
0
582
729
821
702
550
506
600
545
624
658
702
507
320
648
645
671
376
724
621
457
765
664
526
628
608
704
547
676
191
676
780
627
686
790
632
667
914
414
598
681
666
240
596
148
679
736
584
589
666
559
558
551
750
478
518
634
842
542
597
647
723
509
471
303
632
163
567
589
414
863
753
917
629
571
550
692
671
488
657
500
499
688
314
720
756
686
773
794
714
665
809
592
408
580
456
365
496
592
503
708
495
527
541
567
338
618
372
557
741
692
257
824
1010
319
711
591
428
660
683
678
543
598
233
535
682
704
585
752
668
569
606
635
490
429
429
595
872
780
803
426
723
644
819
638
415
520
559
638
487
574
614
408
520
440
719
283
462
642
835
571
708
715
626
661
528
215
801
271
457
667
550
319
705
463
618
426
859
753
541
418
340
594
728
601
843
581
108
758
630
879
591
400
648
425
961
596
705
901
850
675
362
459
548
695
422
605
572
591
434
550
536
752
592
270
609
387
461
548
719
668
729
769
573
604
677
409
597
757
660
696
557
669
773
678
498
496
606
726
555
650
725
542
617
350
625
627
862
540
685
498
179
626
478
878
616
838
703
839
476
655
620
508
556
254
411
661
833
581
473
599
785
540
790
686
500
378
419
335
618
517
460
693
778
936
750
387
732
706
680
438
445
670
116
449
700
776
977
28
594
613
660
729
690
865
674
550
336
696
608
642
898
698
560
510
523
681
779
477
334
595
840
797
470
469
633
666
780
477
575
424
836
547
514
532
691
659
760
1045
654
598
466
669
687
290
825
638
618
536
526
605
692
625
563
544
662
583
587
310
577
434
459
668
700
564
901
492
698
827
603
713
677
821
607
607
744
490
467
520
816
542
869
600
677
549
490
510
322
807
702
450
380
665
619
868
824
504
760
707
413
422
670
831
760
583
526
441
506
583
781
544
583
580
616
500
943
407
770
735
547
668
583
530
588
725
713
580
586
515
758
565
265
839
747
668
4
475
754
223
459
515
393
685
758
581
804
680
867
730
578
624
583
552
662
200
625
766
542
554
154
182
700
713
669
543
603
698
588
735
554
441
432
448
616
674
781
806
603
625
572
724
575
705
520
427
440
785
536
672
553
851
656
547
647
671
501
583
770
642
491
366
281
643
717
350
691
731
655
806
561
691
550
542
387
823
636
667
810
338
569
405
637
507
401
934
447
468
281
639
807
562
601
624
645
753
379
665
661
564
499
607
716
731
635
514
527
645
799
543
334
631
422
360
608
743
378
556
584
757
227
726
606
513
463
643
678
823
365
560
540
701
601
431
711
517
465
702
233
322
544
511
410
582
675
509
608
538
645
735
648
646
675
637
466
644
605
451
649
491
720
479
469
449
506
792
522
849
599
541
525
524
556
410
404
687
742
543
457
271
390
575
449
641
655
576
565
571
667
795
685
468
684
613
379
214
504
603
496
630
600
797
616
651
576
693
554
892
720
600
500
746
585
661
655
390
692
320
723
396
449
776
564
717
545
757
695
540
91
768
645
643
450
842
765
533
643
606
435
244
638
511
544
380
413
722
796
529
433
606
602
661
647
586
779
557
678
611
607
648
654
487
374
574
597
621
615
598
661
619
840
587
502
801
743
652
583
479
490
536
521
675
569
493
566
590
697
644
664
506
1062
669
577
384
467
635
662
599
627
694
735
631
569
725
663
691
572
539
596
637
505
286
564
796
391
641
767
697
400
355
690
912
718
605
557
539
456
745
533
851
744
621
650
904
705
748
775
422
718
550
867
612
369
228
217
658
678
521
524
282
440
682
680
340
215
712
388
751
755
791
397
616
850
763
877
603
453
501
388
465
601
648
626
290
725
648
694
225
399
811
423
627
694
674
611
568
638
413
653
616
737
693
615
583
596
593
852
747
488
684
349
558
670
344
763
983
731
423
538
598
313
671
728
549
504
525
693
749
620
645
526
711
1058
548
534
585
767
476
650
813
513
555
514
506
648
476
564
816
634
460
465
611
477
683
920
716
683
468
587
607
595
623
694
781
596
548
560
768
513
655
832
402
690
393
849
693
648
525
709
546
627
562
730
682
476
133
910
536
828
557
769
534
714
759
611
598
746
535
686
742
433
782
464
741
713
455
600
578
498
704
622
690
447
531
797
465
643
707
670
513
486
679
577
760
554
436
653
571
735
557
407
369
569
475
835
557
776
721
443
559
833
587
725
550
574
688
615
596
874
683
750
606
434
604
512
669
746
173
756
673
556
729
775
884
454
697
587
675
686
591
616
718
256
635
798
642
733
709
620
441
598
616
528
585
528
824
710
756
757
492
762
610
509
598
533
641
489
600
677
680
855
666
680
448
570
809
122
495
579
751
612
761
438
552
460
652
119
603
690
633
612
637
678
935
558
676
139
659
736
430
848
648
425
762
705
632
450
422
594
670
908
894
528
486
549
609
648
648
576
449
626
644
597
835
791
292
619
638
771
845
373
176
609
738
721
291
520
205
794
540
689
559
677
851
562
546
626
598
300
702
799
719
603
700
619
693
607
755
645
725
568
737
364
597
584
615
758
631
554
731
595
410
846
558
408
256
790
521
536
707
638
688
691
545
316
509
592
420
735
725
607
356
717
754
203
633
681
297
667
471
479
644
227
0
694
606
554
683
536
418
849
573
581
626
634
312
493
596
669
405
471
675
623
560
594
705
631
732
758
836
630
423
472
738
259
761
0
746
663
555
707
410
663
649
648
827
646
704
208
689
556
739
770
798
234
629
382
599
783
575
687
961
428
681
609
641
585
839
510
576
618
494
797
682
773
629
536
635
706
383
312
708
738
645
788
508
414
538
634
681
616
580
651
724
750
979
458
535
645
619
561
485
928
710
502
690
670
737
649
494
614
362
527
319
657
507
685
780
690
346
303
506
784
382
538
239
794
451
523
635
667
682
617
619
652
546
723
775
606
204
744
576
478
571
611
574
600
536
669
560
604
327
831
811
476
678
478
368
486
573
459
745
745
824
604
495
654
591
451
388
417
585
572
626
681
608
611
695
626
541
427
704
593
911
677
479
577
557
587
596
751
494
458
601
458
404
525
434
614
392
560
398
632
540
724
625
634
559
793
537
498
788
652
10
666
467
617
693
546
577
527
691
589
598
707
257
841
649
552
419
515
682
570
610
584
798
612
700
598
759
714
598
503
544
634
647
792
694
604
527
570
744
655
127
661
804
714
581
653
485
639
416
410
644
800
831
683
801
646
658
671
715
614
458
564
676
689
908
528
514
947
619
701
363
637
581
533
929
540
612
630
798
482
629
592
576
770
498
560
701
263
222
766
512
683
631
476
865
739
289
517
742
393
524
606
148
544
707
751
763
588
779
651
674
617
595
557
645
824
822
545
237
790
691
742
647
537
548
208
757
632
649
346
900
642
586
488
451
562
829
780
545
434
286
525
376
659
360
427
607
661
719
668
562
779
644
942
503
598
801
598
717
804
794
587
409
403
697
503
609
517
433
488
653
624
329
500
616
647
703
732
702
529
458
645
583
401
577
478
774
708
515
508
650
596
632
804
357
529
660
595
731
515
643
558
650
696
697
588
731
634
336
516
605
590
591
316
610
731
761
615
449
676
676
551
426
699
623
535
385
765
399
671
540
741
693
371
254
348
837
581
687
611
467
495
897
676
614
561
641
242
436
352
871
566
489
813
758
576
499
674
422
768
681
381
812
416
199
471
718
870
569
756
735
478
283
431
392
664
965
816
658
639
466
741
422
641
611
595
510
565
632
815
512
312
635
277
604
651
537
487
767
675
297
770
490
707
778
44
870
735
586
733
730
346
528
355
380
749
563
577
618
942
830
592
515
569
819
667
537
610
622
658
530
610
643
486
401
575
728
885
371
540
525
392
908
659
570
552
517
643
728
501
882
643
647
640
404
580
791
455
686
620
641
604
596
513
564
697
319
687
674
388
367
617
633
625
642
225
753
308
1073
755
602
600
643
644
572
712
740
739
574
722
527
419
511
648
753
750
802
203
476
717
539
611
525
560
699
735
842
711
676
585
700
734
448
261
798
597
458
753
567
514
688
582
395
549
0
696
429
546
545
542
391
498
604
553
727
628
714
531
250
203
358
709
584
679
732
458
545
616
609
815
598
604
749
669
448
651
761
868
596
501
470
535
566
583
924
407
671
682
777
697
670
640
0
735
604
444
796
556
627
506
993
586
595
503
628
521
634
394
582
477
844
784
547
817
598
541
576
485
541
897
484
619
427
663
444
465
750
41
678
817
833
491
480
460
723
208
683
338
747
594
599
567
644
493
720
626
580
690
655
671
623
444
646
780
539
758
609
618
602
502
699
462
537
589
337
692
661
588
501
467
554
778
545
706
433
874
684
753
848
631
698
649
560
460
710
697
667
531
785
682
742
469
530
562
494
463
252
691
785
853
631
316
766
122
552
526
808
422
765
893
1072
595
826
587
532
599
348
224
777
586
558
775
584
542
705
738
352
542
362
525
650
535
826
467
632
618
617
543
724
415
546
471
454
666
564
609
683
559
570
355
553
974
451
517
389
551
596
567
630
650
608
518
570
764
683
674
706
709
655
710
649
874
465
544
778
602
595
630
613
538
247
695
568
663
824
660
267
497
466
734
861
690
620
694
474
589
685
466
735
551
611
713
584
695
492
538
597
567
459
735
483
493
574
470
653
591
864
370
175
483
851
570
537
575
642
548
1005
852
514
471
773
607
622
694
811
605
697
711
493
548
592
671
642
469
492
699
551
709
657
591
864
470
771
521
657
599
473
731
175
621
643
363
412
647
637
523
639
554
547
448
689
595
524
500
417
760
575
443
447
680
782
497
410
240
643
522
857
800
597
701
686
621
551
313
602
694
474
551
507
690
219
142
651
648
264
579
563
671
510
461
671
471
658
355
1040
752
348
372
267
695
678
228
405
690
712
618
456
406
537
386
784
590
687
570
659
625
700
631
519
370
587
581
411
680
584
614
656
886
530
507
251
1135
627
854
433
812
602
609
370
483
705
547
657
767
657
519
548
733
806
742
670
258
854
516
526
893
328
658
565
512
574
596
374
614
689
261
567
792
764
576
678
121
589
599
730
910
736
634
201
704
647
407
465
626
541
708
703
464
769
548
744
760
664
550
675
541
680
633
627
295
672
99
727
439
634
731
687
721
610
589
533
613
584
617
710
657
748
614
604
771
751
613
627
550
579
507
596
588
264
816
498
758
777
460
652
693
913
760
414
751
747
839
820
714
705
639
649
562
509
639
638
589
591
687
814
737
699
684
622
476
571
586
581
826
676
690
691
656
715
728
853
304
714
620
687
677
667
636
598
506
304
652
364
739
640
585
746
723
374
582
762
646
512
570
713
596
544
590
556
587
928
518
502
757
637
593
781
618
683
626
617
624
600
92
705
679
575
548
443
705
571
795
714
664
537
698
580
675
290
491
524
515
602
657
380
420
121
767
791
667
776
328
704
645
655
489
536
844
655
770
760
569
566
665
137
446
539
599
516
532
407
670
586
593
711
547
565
722
376
307
630
695
581
714
596
787
829
685
481
853
770
572
823
67
659
674
561
593
446
574
518
163
194
566
536
779
467
646
703
730
31
436
547
731
600
717
166
580
723
837
614
808
699
502
579
469
697
647
705
507
396
710
378
371
501
632
458
354
737
436
620
813
689
874
551
523
487
627
717
718
610
811
660
681
563
712
576
494
430
663
518
732
643
436
709
644
689
644
661
647
710
687
261
313
443
1015
653
206
800
532
780
702
572
659
529
761
596
655
654
381
569
758
610
737
662
598
710
621
722
797
395
404
719
227
470
691
572
675
475
572
570
537
475
548
590
638
454
628
608
583
614
762
679
663
547
497
714
706
736
755
583
361
349
740
660
695
379
756
567
694
399
837
546
724
583
631
538
565
537
766
421
689
577
843
594
752
216
698
672
834
596
671
755
596
805
544
584
477
552
794
368
510
538
802
619
734
638
686
373
591
466
587
692
794
618
449
937
807
670
703
915
628
772
421
631
561
597
585
678
535
520
412
643
631
614
492
706
503
740
782
875
795
563
638
736
637
613
728
705
511
480
741
410
706
255
659
705
622
744
607
691
474
734
442
515
560
695
542
486
713
464
456
547
550
573
735
622
449
661
586
626
349
508
857
647
661
532
872
663
465
797
756
667
631
652
536
380
375
468
418
733
804
674
640
704
567
532
807
575
73
667
704
624
771
507
660
586
807
1073
601
619
437
647
469
874
621
780
573
707
680
713
398
578
38
538
747
673
953
419
731
797
694
674
470
597
858
719
416
0
612
156
596
756
533
664
594
594
627
546
527
246
611
640
718
860
735
802
675
623
634
586
469
405
534
636
612
576
756
613
628
509
509
456
899
748
611
618
728
658
509
737
803
602
837
659
700
816
232
730
600
695
563
605
717
697
684
766
756
589
732
622
436
573
577
595
755
858
756
776
608
653
859
651
595
1016
601
461
503
785
720
867
787
730
358
778
465
418
826
535
661
615
700
584
761
691
718
557
618
451
584
776
291
660
737
598
622
617
502
686
509
181
666
614
748
685
601
645
705
348
650
584
516
215
725
605
750
698
489
367
695
760
582
615
165
615
639
597
692
777
656
712
731
807
531
654
484
549
757
635
898
512
666
804
803
512
671
466
621
749
450
574
516
607
775
560
755
606
736
628
596
736
174
651
665
675
650
709
551
455
665
472
647
774
903
752
758
489
434
709
789
433
541
719
576
546
513
586
161
441
719
378
704
539
531
573
479
384
718
611
511
607
357
479
477
544
545
768
579
639
612
765
398
617
656
512
489
755
577
580
565
816
518
719
684
759
859
699
818
495
682
671
453
700
485
616
353
539
617
708
777
589
451
818
817
794
626
718
703
793
877
543
776
540
574
496
665
478
437
629
638
799
673
760
244
581
626
650
751
408
771
416
660
529
591
611
605
239
761
639
886
726
169
769
696
549
432
715
508
389
545
563
688
616
648
731
263
869
628
532
571
651
539
731
628
567
575
587
577
655
692
378
821
143
134
746
632
619
384
559
684
609
584
523
703
834
701
397
727
557
564
652
672
744
673
679
624
829
721
551
460
496
606
638
599
703
756
473
241
25
710
373
362
535
661
490
611
285
672
416
734
526
411
619
470
587
552
637
170
647
456
571
477
499
470
641
611
673
746
497
622
708
802
538
659
722
614
430
632
734
658
652
480
730
673
851
542
614
881
600
463
609
743
643
438
225
446
287
514
324
333
836
905
589
301
422
716
451
625
544
536
331
614
683
829
495
643
619
781
533
674
735
490
714
606
729
718
479
548
679
123
549
434
545
542
451
552
548
627
607
402
573
630
483
626
655
534
613
567
621
513
677
251
717
167
630
552
557
606
725
708
834
557
576
288
846
757
770
666
440
638
614
667
711
705
522
849
834
528
614
440
631
580
582
361
562
720
512
648
760
524
703
527
618
764
500
382
704
484
655
799
674
159
680
392
529
588
351
589
863
609
632
767
682
613
650
825
730
657
482
766
727
645
435
698
812
500
473
474
601
496
666
681
427
659
769
602
726
644
763
703
579
785
843
559
505
747
749
777
644
634
612
354
563
669
341
646
808
610
770
716
649
604
744
845
319
585
867
664
655
590
641
610
643
830
656
619
511
381
441
608
602
802
706
553
695
434
449
659
691
680
14
611
730
451
768
678
500
780
647
502
654
649
686
499
612
546
0
745
416
772
468
522
612
231
436
775
223
0
737
555
796
590
609
680
530
240
575
627
569
721
562
358
689
717
736
639
711
823
640
242
390
419
623
553
363
961
921
672
763
769
822
587
734
699
612
550
755
548
677
572
648
638
674
482
660
640
798
800
823
624
654
631
697
463
893
738
562
707
569
731
717
610
665
697
784
582
488
524
709
704
865
665
691
533
569
643
656
497
490
843
755
689
728
629
750
557
592
648
647
658
660
575
739
705
688
854
507
703
634
138
556
592
560
471
695
738
620
616
483
284
412
484
678
656
651
622
700
807
551
593
609
705
708
690
373
438
577
557
535
445
589
638
655
694
712
653
788
489
667
422
824
819
797
848
634
825
495
576
579
656
381
634
501
692
543
350
549
527
536
747
626
598
603
522
529
551
500
848
350
526
608
624
460
540
807
668
689
632
849
623
463
550
610
844
388
773
481
227
377
817
678
512
425
826
652
38
706
585
756
702
705
885
561
782
789
600
501
578
721
704
608
899
683
640
664
801
705
248
719
608
657
722
581
321
480
544
577
604
636
618
602
479
539
760
426
710
455
764
543
591
596
786
784
474
754
521
338
414
606
629
652
550
559
580
495
781
531
804
482
384
613
552
771
551
561
607
655
756
316
776
788
552
365
615
656
314
624
504
659
561
349
540
678
522
513
562
390
488
569
365
415
463
729
723
662
659
387
717
799
632
685
615
927
700
592
679
515
615
901
640
699
582
606
470
649
783
536
703
537
725
523
577
801
629
706
510
355
782
546
548
426
419
835
605
667
749
618
675
539
737
709
643
804
861
607
721
491
663
723
691
644
812
513
868
564
453
679
837
682
432
637
445
530
630
918
809
997
714
289
477
165
815
719
728
755
513
621
517
253
433
821
609
545
499
735
437
629
301
792
461
670
892
271
543
546
693
605
336
684
859
1094
659
476
462
435
653
789
550
663
623
622
570
875
556
698
439
539
568
640
252
258
846
448
691
689
739
605
710
623
645
908
516
586
825
728
933
482
420
602
588
303
792
435
831
554
965
570
710
507
764
317
585
698
666
698
395
441
455
514
595
374
777
544
576
249
336
518
644
457
850
601
590
831
497
504
633
691
532
508
571
423
319
824
516
647
685
781
613
708
812
820
657
577
723
835
576
616
614
734
470
603
614
549
615
405
834
671
599
519
379
677
663
540
479
503
704
719
688
512
855
696
489
791
490
620
736
613
691
523
471
531
537
470
574
701
681
614
791
466
699
558
635
621
544
592
761
876
873
571
644
514
0
775
648
636
458
442
749
588
431
586
511
662
799
548
655
736
563
676
659
513
698
658
620
419
668
631
650
522
342
653
716
721
523
799
870
715
556
599
591
695
584
420
576
642
482
288
486
688
511
593
445
861
642
728
411
752
204
436
583
706
752
645
390
418
656
518
590
798
529
522
598
591
714
217
514
421
480
503
622
712
602
829
740
566
498
828
264
783
619
727
563
640
475
613
731
606
675
566
733
698
575
611
787
660
649
0
716
742
674
641
673
621
681
692
416
566
661
760
492
543
714
705
424
600
632
483
661
482
704
520
649
626
100
565
690
248
712
603
662
729
725
636
499
403
307
610
44
697
720
683
544
820
242
406
498
678
740
918
508
686
609
615
748
461
485
754
537
516
700
481
845
772
617
567
580
706
459
619
668
740
545
676
673
550
588
601
693
572
545
574
424
489
620
596
173
615
763
513
592
409
544
382
745
478
847
734
604
634
526
687
761
668
602
799
467
570
490
414
749
943
635
250
658
780
580
475
614
703
824
649
455
680
736
710
512
717
655
589
577
662
591
722
860
739
720
523
713
707
677
662
725
608
661
647
649
859
585
628
410
531
692
625
702
593
581
613
660
357
568
143
663
700
342
544
471
664
612
680
550
553
437
388
534
448
607
571
647
764
598
628
531
488
299
897
685
597
628
668
810
699
603
492
521
607
556
603
427
599
676
659
366
742
513
787
678
482
449
680
696
748
590
517
576
547
477
257
323
676
791
532
801
388
521
850
690
620
477
742
600
527
632
555
269
724
358
509
563
645
516
618
549
602
580
521
651
557
504
786
533
550
768
581
490
433
818
639
599
823
331
474
428
596
735
620
305
683
663
483
462
550
703
656
585
803
218
580
361
863
868
659
516
507
680
728
372
585
608
518
781
668
581
596
646
587
827
500
316
990
858
319
598
814
850
214
746
790
563
543
608
818
674
692
473
485
661
963
540
615
174
694
777
629
692
727
467
538
653
511
587
288
689
654
507
757
411
738
390
342
997
592
366
367
779
543
675
650
404
572
657
523
431
478
434
801
757
885
457
764
489
557
397
100
92
583
793
774
613
717
692
402
493
490
390
632
690
628
251
565
809
699
767
469
617
466
804
420
580
366
658
681
616
449
829
599
693
369
358
636
520
611
837
622
685
549
759
773
477
737
398
601
611
761
816
478
565
461
529
396
589
834
727
776
407
759
839
665
545
611
672
435
745
394
586
501
490
549
638
903
677
607
719
707
406
700
464
665
828
629
487
770
364
802
235
681
553
720
235
697
772
634
783
524
568
498
628
677
543
519
390
707
789
407
793
574
606
777
461
829
701
768
584
687
866
643
678
721
493
712
677
959
589
629
642
59
716
376
821
401
660
842
581
600
547
620
347
588
555
489
672
0
591
832
871
589
417
825
695
669
770
702
672
621
496
597
471
596
326
564
651
660
620
962
643
769
674
561
296
638
838
489
570
643
628
499
617
618
402
290
484
723
647
498
339
567
700
422
543
659
673
643
734
780
502
617
563
704
835
626
726
526
593
645
588
616
762
572
653
550
641
617
515
333
631
829
718
714
842
618
660
813
695
568
618
519
641
511
648
646
577
687
398
779
684
567
631
536
431
428
506
635
610
536
762
517
659
479
739
491
509
540
761
595
809
603
482
533
635
653
535
683
744
503
707
677
760
3
752
526
903
358
555
632
574
488
841
815
592
675
600
806
830
564
594
944
500
376
634
761
473
895
450
716
643
747
541
452
612
400
465
299
734
348
912
647
842
577
894
793
546
609
608
629
316
626
595
553
817
639
129
630
575
620
517
775
716
522
698
761
441
507
137
169
881
590
704
595
757
340
471
637
435
650
581
535
389
862
674
607
514
719
706
556
858
282
546
724
728
479
585
524
882
496
721
781
509
406
298
692
929
811
618
536
457
763
878
348
896
627
645
656
176
770
825
585
655
626
469
576
579
762
640
723
391
576
695
470
654
277
759
756
335
514
675
739
720
759
864
890
625
610
363
578
616
821
112
526
574
655
520
635
546
731
806
839
731
496
935
247
543
602
755
626
534
390
607
929
723
665
721
257
535
375
353
671
701
786
799
753
616
670
683
580
390
727
626
591
681
790
662
507
377
641
656
639
387
712
594
687
616
831
661
438
619
550
885
460
710
666
724
346
473
707
748
720
674
840
625
599
251
740
516
622
708
537
568
442
726
510
465
728
396
552
773
617
658
581
624
557
640
727
177
754
724
711
842
655
407
818
811
596
469
400
596
515
616
730
587
383
619
468
577
718
647
752
405
642
698
600
695
705
741
680
747
676
721
486
598
792
389
697
333
618
777
589
571
996
555
557
371
776
549
812
894
585
299
694
635
792
500
567
691
406
583
465
277
492
495
564
514
690
557
673
699
730
628
842
657
649
509
674
671
371
348
667
312
161
420
719
542
219
657
592
433
951
640
436
741
489
406
735
570
536
437
634
614
800
597
775
567
0
852
802
334
478
608
651
617
559
241
540
635
611
617
540
735
663
771
626
443
688
810
546
455
524
477
382
585
891
584
694
658
603
874
539
465
612
802
556
386
592
736
617
236
577
650
707
747
482
554
703
608
588
851
790
583
724
521
559
628
680
717
789
441
501
495
730
523
471
222
912
701
538
517
538
595
647
472
563
843
561
369
656
563
548
690
384
340
404
572
605
683
593
763
684
707
659
446
585
489
523
812
558
641
658
715
459
679
629
145
522
693
579
702
883
481
569
533
526
434
634
613
773
562
600
659
638
528
648
740
565
236
909
642
736
823
486
617
657
759
620
650
682
723
349
378
540
540
546
580
686
781
695
538
507
683
643
667
250
720
835
360
304
715
585
608
676
447
800
536
395
683
619
741
778
611
636
653
842
648
773
493
631
625
380
435
695
971
533
683
160
388
613
691
609
588
454
486
545
769
679
25
651
658
516
590
423
755
472
136
659
536
671
412
669
299
533
754
885
721
643
502
642
521
516
689
690
572
681
610
477
622
452
639
635
312
435
863
424
617
845
592
710
661
611
606
728
572
678
593
554
637
420
577
690
708
485
598
549
636
612
647
623
587
670
576
674
684
335
544
578
712
534
656
643
703
567
517
1074
666
565
761
336
797
571
591
486
292
753
362
522
623
639
555
532
176
610
819
690
831
723
695
474
813
473
752
711
730
703
684
494
596
686
659
714
605
540
811
518
228
689
904
715
785
571
320
611
758
623
722
752
585
678
659
569
778
536
762
723
593
401
600
866
436
531
616
817
266
583
701
338
761
627
440
622
738
631
735
661
606
815
842
590
808
759
575
555
277
845
637
682
587
705
564
607
620
630
757
604
664
489
519
198
719
688
735
310
822
474
892
562
298
615
788
797
569
328
555
551
478
583
430
607
601
561
559
458
578
548
690
697
404
807
226
528
722
699
675
467
290
726
638
778
727
549
788
640
424
626
640
653
662
585
556
602
549
620
483
764
776
422
759
470
646
678
315
659
743
752
724
568
572
418
626
468
643
442
492
809
470
247
341
642
511
805
433
498
614
740
571
399
602
681
544
365
782
936
664
549
505
640
594
663
637
212
567
875
466
436
673
707
761
589
542
653
609
697
839
565
681
485
487
669
563
668
893
694
522
304
683
611
667
601
560
529
453
420
754
570
683
542
423
677
284
612
582
650
775
453
664
671
271
577
766
633
347
503
703
467
772
708
774
532
436
647
669
607
588
680
697
623
637
531
391
720
865
568
575
509
503
781
555
568
842
116
569
67
567
602
509
510
596
692
594
751
729
1118
550
608
239
629
755
581
620
487
536
682
666
606
455
518
844
674
534
732
539
732
694
262
570
451
726
620
527
504
553
729
582
714
446
515
622
605
579
688
506
191
804
677
785
709
858
573
661
695
385
517
497
596
786
648
575
683
632
652
501
731
745
241
557
694
640
484
664
483
708
705
732
761
644
692
658
740
407
701
707
615
838
702
596
683
706
552
797
490
320
521
484
297
687
382
621
325
894
452
702
522
442
605
668
740
412
492
720
853
516
809
309
426
534
588
427
566
631
490
705
554
381
467
567
551
295
594
512
346
462
596
628
732
460
608
677
475
868
536
742
266
761
684
506
592
794
685
718
574
631
617
461
551
797
652
598
730
468
533
710
560
586
550
475
771
592
362
685
626
580
535
521
542
662
505
774
626
786
678
683
632
593
478
808
548
590
387
685
402
313
804
705
735
845
677
263
562
738
682
644
689
817
603
613
404
529
725
739
535
591
534
583
477
502
583
617
532
552
857
684
488
557
614
508
490
588
884
697
629
700
880
642
510
542
874
552
841
514
550
452
483
640
992
759
464
522
489
657
664
626
577
201
647
751
580
329
572
654
778
652
651
757
827
456
346
633
709
695
666
607
581
672
587
580
739
585
529
667
424
320
465
522
405
657
185
697
745
761
972
557
549
734
624
696
330
844
757
647
827
626
536
614
764
844
461
868
379
584
258
655
522
683
448
478
529
824
646
630
528
784
473
379
548
475
522
514
430
285
533
756
582
669
284
732
412
826
914
702
826
653
666
428
556
698
748
557
450
740
638
619
600
573
589
713
622
447
701
585
531
683
789
552
363
572
619
673
915
699
828
612
660
584
586
503
645
543
656
789
383
721
673
600
552
568
709
791
983
655
780
599
675
576
565
490
493
568
637
597
598
853
975
848
599
720
582
644
816
711
719
567
594
473
504
844
666
495
579
426
634
701
792
726
609
593
505
730
674
417
379
638
632
401
488
750
919
464
727
573
627
541
645
586
862
482
573
744
687
754
810
642
727
654
657
307
655
644
573
818
658
460
672
561
511
775
325
606
676
622
790
683
382
778
382
423
648
639
679
494
428
482
785
688
355
670
655
702
658
552
653
618
571
555
584
647
646
400
595
677
721
502
401
574
424
781
465
446
228
569
565
512
449
754
910
718
393
517
630
629
616
780
876
504
746
609
466
383
718
352
748
357
708
733
442
419
534
682
441
572
634
625
826
592
643
488
779
673
573
607
685
676
647
798
760
59
800
617
829
630
645
488
595
552
729
392
555
724
690
614
621
605
648
847
755
653
467
695
671
783
745
905
422
944
666
591
567
499
610
412
657
908
785
612
644
407
434
705
571
875
446
704
546
677
728
509
630
574
534
570
627
660
757
563
231
449
520
730
791
500
554
757
505
142
631
403
551
510
555
546
518
400
541
613
842
550
598
816
647
591
648
511
981
482
657
643
526
502
401
546
845
760
681
557
595
646
666
708
649
764
670
553
590
716
745
501
479
658
823
825
437
750
729
646
723
548
653
556
737
797
561
611
334
305
730
558
402
585
469
761
714
355
650
643
699
390
589
585
463
660
752
688
500
23
548
475
698
550
405
790
777
645
612
690
635
786
807
814
427
711
475
681
749
540
590
816
702
805
286
592
723
583
788
716
450
893
599
642
556
519
398
660
410
561
389
468
773
614
823
745
266
785
571
596
627
757
597
689
269
715
348
540
532
553
490
550
398
860
527
910
517
451
510
651
397
557
738
484
788
564
518
396
623
470
614
487
811
716
679
564
457
611
646
632
483
689
734
693
620
709
698
271
206
482
312
530
783
518
581
729
552
693
469
672
476
464
298
717
774
539
405
694
489
608
548
420
781
445
744
370
706
466
379
392
477
593
336
614
557
366
572
392
869
803
818
673
701
310
645
587
290
662
454
508
772
563
720
769
830
621
921
420
460
726
536
694
625
583
568
437
627
668
620
290
736
844
320
510
595
662
167
526
580
646
710
546
638
628
400
515
555
508
795
688
349
593
565
625
694
731
521
483
696
627
532
57
633
603
608
554
432
286
815
617
729
428
917
648
718
418
541
972
285
464
813
595
592
777
520
552
314
627
508
640
651
825
588
747
567
559
670
645
582
558
576
579
213
770
736
624
610
679
654
727
526
764
724
593
495
660
432
632
595
379
481
271
695
653
720
740
461
676
462
547
705
766
646
735
482
564
504
649
720
676
621
780
182
835
658
835
658
560
677
459
690
602
687
827
451
74
820
613
520
597
531
500
338
653
666
346
711
689
532
652
633
646
602
597
600
657
447
671
654
622
684
584
665
364
732
724
322
726
704
768
473
552
744
571
513
747
427
575
670
823
233
728
533
670
771
461
415
846
724
744
658
143
506
547
685
620
641
666
537
608
396
766
731
353
245
647
591
844
615
569
519
344
626
479
764
681
566
458
864
451
860
634
715
695
766
488
681
634
548
632
435
766
688
508
717
446
652
802
583
501
743
630
670
619
296
410
509
392
486
847
554
831
21
190
597
528
592
464
445
404
645
502
518
389
580
683
731
755
563
594
656
500
730
713
557
522
717
698
717
536
797
616
547
497
595
657
678
480
650
719
676
464
521
413
806
623
642
294
650
595
702
363
698
613
812
799
591
605
639
755
711
521
383
517
619
667
610
669
734
562
631
679
561
777
749
467
566
464
780
521
561
495
786
697
726
442
765
596
824
712
704
431
819
731
695
745
646
582
738
675
771
751
522
586
547
906
436
486
590
781
630
292
548
642
416
620
608
662
630
477
743
603
715
718
1142
643
572
757
808
398
782
617
710
451
532
673
617
652
618
525
689
484
578
437
564
318
789
811
752
629
843
660
731
448
447
385
721
667
708
434
424
788
735
637
650
597
689
724
492
523
811
564
326
579
263
447
697
698
536
679
457
485
626
628
659
666
537
386
543
550
0
764
635
776
798
542
692
607
473
646
807
555
503
653
448
454
697
379
579
645
568
523
569
632
507
575
682
492
562
687
561
776
572
668
218
766
826
439
887
714
510
786
490
847
425
722
666
582
715
594
467
714
753
652
659
750
580
557
558
645
331
493
486
806
471
560
509
566
638
551
816
835
750
711
527
543
635
743
378
601
555
807
640
559
302
661
413
290
285
657
172
763
666
524
586
480
584
593
287
657
821
543
634
729
516
918
724
340
319
429
669
568
683
787
479
673
597
758
726
808
445
660
687
692
763
491
467
726
861
392
638
607
578
613
778
632
652
520
582
850
742
604
548
553
638
506
622
748
622
619
499
703
615
411
578
644
697
372
667
691
690
665
525
600
667
699
602
587
664
754
673
618
677
620
729
779
772
814
710
597
654
349
628
509
477
834
627
599
614
557
672
546
401
524
560
655
700
533
592
550
678
618
741
666
536
805
695
415
567
823
124
533
591
735
838
396
786
866
639
694
607
625
566
246
593
644
469
644
531
650
431
666
639
462
607
394
660
666
682
704
501
584
717
370
608
760
637
664
591
752
564
394
650
575
556
288
715
358
534
944
618
669
543
368
738
296
682
528
882
706
825
640
531
440
698
357
893
674
599
281
816
513
571
760
686
646
721
257
596
300
460
712
124
534
744
680
404
476
660
375
426
654
496
714
699
518
691
348
754
569
542
676
723
875
801
710
549
697
400
216
721
803
549
540
732
633
719
585
597
353
591
666
520
628
701
677
640
598
612
600
600
543
371
566
341
706
798
619
915
730
841
355
552
362
538
411
526
725
760
550
473
746
503
769
583
766
556
594
782
793
21
417
609
463
614
649
741
712
581
823
661
520
678
657
484
528
464
765
729
405
741
559
689
542
753
502
604
721
620
558
872
560
0
464
248
595
739
558
466
387
500
678
663
645
667
433
637
584
495
385
749
802
351
671
571
635
576
433
608
503
585
686
660
805
756
574
580
608
580
604
735
711
628
455
717
246
661
812
579
898
626
585
714
502
624
553
522
608
801
461
315
541
698
785
619
109
696
656
412
783
614
567
445
513
687
379
462
712
325
364
612
503
730
658
532
723
850
577
398
603
522
710
498
641
325
466
720
564
40
675
779
805
411
584
246
428
811
331
608
633
837
342
512
194
594
763
504
670
391
518
578
669
665
634
506
885
309
570
521
552
414
669
676
476
713
678
639
543
563
244
435
747
514
360
657
423
706
410
643
328
576
657
461
225
473
697
716
804
623
691
412
697
716
584
645
524
349
740
602
685
522
585
492
687
622
498
619
717
760
713
756
422
422
326
324
416
560
608
596
681
528
512
665
311
512
340
631
789
466
623
933
643
489
518
429
549
786
537
800
663
862
594
459
751
649
553
483
659
860
688
632
848
727
614
217
68
648
777
466
546
638
517
712
577
152
1003
731
612
585
585
550
389
582
387
659
772
547
578
681
275
609
554
289
403
870
737
790
438
512
271
604
643
451
791
640
913
587
791
465
818
593
459
620
391
771
686
602
677
468
694
799
425
358
678
651
604
844
757
413
735
722
592
627
611
719
756
794
438
746
676
709
505
645
522
757
617
851
840
377
548
345
836
755
498
724
537
853
226
520
391
525
731
547
844
621
585
594
508
323
389
865
781
636
520
710
676
785
588
112
558
623
521
460
470
737
735
557
760
560
516
500
537
576
797
505
776
296
645
825
635
355
679
700
651
595
551
439
746
295
614
660
563
653
160
416
731
619
594
625
588
722
568
778
800
536
735
682
717
649
712
541
567
533
779
601
381
650
616
513
646
515
690
573
620
621
605
591
710
819
531
561
706
663
576
524
811
630
635
718
670
599
695
598
701
817
557
603
672
716
749
656
786
468
565
467
646
484
368
789
712
644
681
709
671
819
210
544
701
427
126
709
656
697
648
635
848
546
706
476
682
718
562
693
548
750
959
454
757
656
383
665
504
842
589
590
582
519
532
907
535
639
809
588
484
847
666
717
454
546
620
662
450
558
602
727
486
516
643
717
817
792
755
524
452
895
633
692
624
881
531
530
749
536
566
667
430
841
519
516
674
890
719
720
551
346
516
582
592
634
513
524
403
685
597
466
613
412
697
493
699
776
607
634
759
605
668
633
791
726
679
655
664
708
742
844
266
579
700
746
837
723
449
663
488
666
576
467
660
734
582
350
793
266
490
862
705
654
607
803
634
816
592
689
664
645
803
474
537
667
706
611
679
470
611
530
412
539
804
642
623
796
768
645
726
564
868
612
675
528
684
151
344
778
585
616
658
429
757
455
546
612
767
713
854
622
558
566
676
597
679
703
401
539
643
614
510
432
687
109
764
807
413
570
644
363
573
659
657
583
700
468
625
577
474
492
687
121
677
565
703
495
772
572
244
403
744
711
432
651
466
686
534
541
835
436
584
791
478
328
11
776
681
291
452
500
536
594
737
456
404
798
572
736
727
675
669
580
618
521
448
647
556
822
598
584
518
373
621
407
690
685
582
711
759
479
864
733
604
660
604
242
404
283
573
622
431
559
571
615
598
490
868
693
632
719
619
527
631
701
429
653
656
680
833
613
665
493
693
207
646
699
668
694
634
618
537
620
813
686
461
596
319
510
761
577
728
438
614
801
616
595
685
615
569
736
516
599
571
314
303
706
645
574
907
284
486
466
651
697
418
478
741
581
456
589
743
322
717
606
432
684
625
724
705
438
345
574
708
642
765
538
520
455
653
547
460
645
591
833
578
822
156
937
604
506
709
677
395
631
415
448
794
432
726
624
543
557
640
754
907
747
520
666
577
408
625
801
895
561
769
555
555
819
552
328
707
325
563
695
580
687
625
176
908
877
570
622
492
567
589
491
313
694
480
360
535
714
427
779
844
711
777
566
521
678
495
635
484
483
480
198
371
474
814
621
748
724
564
818
701
366
517
624
619
437
748
657
824
607
495
535
470
488
412
947
541
674
727
905
765
712
436
362
651
745
551
806
730
710
756
596
406
733
399
658
597
697
769
635
656
791
907
542
553
631
489
782
416
721
673
775
595
615
375
521
687
663
780
649
563
440
587
654
634
555
606
773
559
732
666
645
461
669
585
595
637
721
627
759
712
543
680
541
711
616
557
744
264
528
565
641
440
732
32
568
656
485
787
535
703
711
715
624
522
420
736
605
712
794
621
759
870
659
679
855
557
338
897
503
706
724
614
511
486
587
437
770
806
673
650
882
949
721
534
389
505
578
672
603
397
809
852
744
502
671
445
616
630
821
711
816
576
842
615
863
693
838
670
301
646
599
681
498
502
665
538
680
482
638
784
711
398
480
1024
448
453
552
780
772
744
551
466
628
448
599
542
911
616
522
798
718
857
669
679
512
628
463
360
760
629
752
526
609
725
745
677
783
673
614
191
615
675
613
532
668
802
491
393
685
541
508
748
828
924
816
623
440
648
591
501
563
233
362
662
489
538
536
851
538
639
675
715
627
698
643
709
546
659
632
586
823
746
738
820
623
752
632
646
703
687
573
513
674
560
194
571
730
592
465
676
665
637
753
645
660
798
227
650
379
591
608
714
621
712
600
670
551
452
563
439
895
820
697
712
744
819
772
425
684
473
536
688
769
480
739
534
589
689
516
607
580
599
160
794
617
578
482
666
652
651
361
642
609
477
721
493
674
700
585
720
661
591
648
433
466
837
615
712
513
582
828
690
539
508
455
342
435
602
672
952
682
519
636
694
646
396
681
611
579
582
472
571
609
611
505
592
409
465
652
735
488
691
725
622
402
647
627
392
427
404
736
426
605
409
708
732
434
825
642
472
662
705
772
679
740
476
686
622
819
714
686
0
516
491
644
715
434
625
484
468
735
725
691
627
429
697
296
844
802
728
672
962
607
487
710
636
426
693
656
628
573
554
629
543
576
653
607
554
536
590
635
706
617
921
532
425
672
587
573
613
776
560
779
658
643
806
483
695
698
723
436
594
562
643
765
693
244
847
948
744
414
689
695
501
524
799
571
333
672
699
670
557
608
756
475
233
483
668
790
684
526
607
542
580
745
470
672
483
834
917
684
608
723
617
762
654
581
958
802
492
701
669
621
467
398
651
827
440
639
746
494
0
595
402
490
507
705
756
585
739
680
396
672
610
619
634
362
576
661
611
701
689
642
754
622
584
641
684
559
571
465
413
514
632
695
731
834
357
591
654
662
759
653
693
710
454
715
584
650
0
431
559
357
732
454
586
74
826
588
628
696
786
21
803
614
664
548
661
741
313
504
616
839
377
391
636
423
722
427
516
715
752
758
690
590
451
807
779
788
29
400
644
775
564
599
649
487
451
423
604
848
615
711
690
532
580
611
579
593
638
890
584
608
733
776
470
741
461
728
561
432
684
471
664
607
603
623
878
737
375
635
578
632
610
676
741
698
613
302
493
660
459
587
319
643
491
486
643
1041
904
583
655
442
607
737
303
737
454
207
512
705
468
446
802
705
614
601
590
626
411
452
875
608
488
468
715
595
685
576
574
821
516
732
577
664
689
563
658
714
389
450
714
689
596
638
615
730
520
287
743
513
657
397
713
651
805
554
550
575
655
639
383
919
604
770
471
394
564
509
492
652
691
585
721
549
587
412
366
738
910
867
308
241
527
636
699
618
748
643
697
656
588
698
725
620
459
753
316
708
535
764
989
698
761
591
564
582
749
729
710
203
747
617
662
484
598
736
535
557
706
643
644
713
873
504
491
658
588
601
808
697
491
690
708
851
852
663
722
512
556
491
488
606
464
577
516
271
495
440
766
626
688
765
591
894
537
723
576
625
528
480
639
649
329
93
741
766
642
427
229
617
677
799
427
725
502
694
498
736
989
474
733
812
499
500
606
531
561
676
643
555
670
242
550
528
746
577
509
283
459
643
396
705
712
697
706
651
711
727
577
548
509
575
673
563
608
550
672
543
713
744
287
729
645
358
696
702
691
496
601
292
528
678
1019
736
981
397
697
641
445
603
771
573
732
648
658
715
905
569
689
896
595
531
824
587
372
806
740
737
552
605
275
429
208
583
560
613
668
794
701
615
576
770
777
561
682
849
668
657
577
725
701
548
565
699
518
627
619
385
594
630
708
608
543
683
539
656
681
720
717
580
648
500
506
596
839
757
542
551
442
1009
757
339
556
383
640
564
500
529
580
423
724
610
569
699
612
844
717
338
649
403
636
742
666
575
664
510
420
637
427
633
540
482
698
660
743
503
683
734
274
616
463
370
806
618
703
762
667
772
868
470
682
438
705
669
746
804
568
565
684
515
407
597
659
731
524
624
519
470
660
784
941
617
659
791
1080
593
634
492
570
786
641
810
364
554
664
682
430
547
608
469
551
608
631
687
596
671
663
597
579
685
492
588
772
872
466
582
625
905
372
618
660
821
728
456
684
792
721
675
790
719
673
553
651
796
707
611
642
788
865
778
451
614
755
743
733
555
614
565
683
490
885
653
509
872
615
444
487
688
837
622
569
420
284
875
398
657
729
841
592
474
624
677
454
698
729
620
411
704
801
773
428
719
620
0
555
447
559
560
367
757
776
725
573
471
659
843
695
638
655
401
454
587
796
730
493
282
653
841
473
507
500
234
780
567
589
852
380
688
566
649
443
494
165
405
610
571
720
704
699
721
635
424
222
325
693
667
282
666
718
513
745
696
691
637
575
797
413
590
833
475
706
446
578
542
492
656
655
471
660
715
437
601
317
324
398
525
445
701
664
591
469
654
645
520
704
753
873
601
735
692
627
575
756
352
474
411
752
440
557
416
720
562
687
659
658
737
709
571
774
621
780
578
456
729
851
515
541
652
650
589
691
544
651
419
493
581
721
548
779
397
656
624
705
656
640
651
688
501
602
531
608
269
513
736
631
507
612
413
598
292
583
534
579
546
713
383
556
726
575
580
793
535
598
528
744
755
770
425
846
381
658
621
777
359
544
771
741
426
800
818
620
897
637
578
624
542
677
658
476
663
795
597
637
525
397
227
688
677
711
681
374
580
543
607
479
620
674
516
717
606
749
693
467
714
651
794
780
460
618
679
680
518
697
521
572
681
528
777
729
693
709
718
547
875
576
604
634
476
941
614
820
755
702
475
748
707
362
400
556
757
727
646
568
562
514
470
571
487
721
406
764
479
608
757
747
517
695
649
663
676
311
713
551
675
864
833
610
350
488
637
548
0
684
483
388
412
706
399
548
713
627
536
440
645
894
542
355
502
812
747
702
550
538
454
191
789
400
581
590
569
769
531
814
735
724
674
565
242
654
572
855
705
576
673
344
268
657
750
725
838
849
736
610
701
395
706
825
371
757
479
540
753
904
435
592
609
682
798
549
790
428
600
844
569
608
516
655
834
492
615
652
573
655
531
494
369
598
679
605
594
438
729
811
660
746
547
701
600
509
521
1017
778
454
722
755
680
403
782
635
802
401
696
704
647
383
546
314
732
317
755
482
654
639
550
504
737
919
582
570
120
622
485
506
509
621
549
761
643
712
591
618
539
672
628
817
779
817
574
650
726
471
572
568
430
474
406
653
549
449
939
450
610
162
816
451
674
738
546
567
588
619
464
664
850
743
654
576
469
694
356
691
611
516
291
401
693
890
934
437
397
286
558
680
262
564
665
495
674
495
764
542
628
270
666
732
602
601
756
517
747
687
398
724
688
496
996
192
483
657
611
482
627
580
690
115
602
600
308
491
718
606
522
698
548
798
850
510
646
401
819
785
680
493
590
908
555
455
600
674
520
857
718
790
708
683
853
849
550
482
984
882
644
220
625
636
410
704
452
720
600
452
761
748
370
792
586
490
740
565
469
474
827
614
585
706
570
552
654
872
605
566
643
486
872
707
709
595
576
213
761
587
156
848
828
523
643
356
576
56
635
553
511
733
380
666
502
426
824
646
601
824
457
535
794
743
651
403
585
518
470
879
785
522
268
715
735
593
654
735
562
671
821
745
726
640
715
653
340
320
715
699
783
581
637
551
471
263
482
716
720
510
641
597
512
757
639
1046
696
875
533
452
307
667
570
693
595
757
791
740
699
680
440
357
549
686
531
753
546
574
500
710
690
448
681
647
517
641
424
669
673
841
444
580
565
565
286
640
617
434
517
551
615
649
317
816
315
1001
677
645
726
684
710
799
524
412
553
616
635
768
464
602
509
817
708
562
584
823
611
571
493
78
478
602
338
681
232
671
520
848
615
715
731
316
352
254
378
660
659
546
553
498
587
698
553
695
776
679
527
801
480
521
671
571
602
621
686
666
740
537
789
723
537
536
593
556
411
781
484
351
553
818
522
468
643
569
609
660
798
608
580
676
475
610
651
432
562
362
640
330
847
549
509
413
618
486
438
853
550
748
510
579
666
611
467
428
695
659
524
708
648
536
592
617
713
531
497
681
478
721
730
483
535
660
595
590
782
591
690
582
552
555
619
691
560
541
556
740
539
483
734
525
701
468
677
528
874
858
26
554
567
613
572
946
869
580
776
753
599
679
420
761
792
640
531
439
580
470
423
599
619
433
426
796
480
488
651
721
592
618
730
686
821
693
704
479
613
194
892
520
547
776
349
681
518
612
534
764
540
504
759
795
537
482
571
543
665
762
464
578
810
583
745
751
532
630
761
578
461
362
598
597
905
352
775
297
443
736
795
792
474
530
826
661
732
577
334
469
794
377
779
603
623
985
661
364
702
527
677
535
505
470
622
643
617
898
161
633
507
663
774
403
531
492
627
541
764
633
640
554
782
535
902
832
544
309
630
528
651
643
748
721
604
608
240
523
1031
732
443
611
477
492
652
570
428
650
664
810
429
595
724
716
791
731
632
548
403
666
627
609
510
648
565
600
666
618
452
784
379
741
498
435
587
594
440
760
616
554
905
449
670
628
739
666
490
550
586
609
617
836
398
566
634
643
526
528
706
541
653
820
328
450
552
569
488
663
615
626
741
515
570
532
592
620
455
512
620
692
734
477
683
668
665
607
655
614
475
564
643
662
691
317
671
731
532
658
713
510
160
243
562
707
699
755
667
677
597
790
318
583
719
824
384
525
681
600
415
574
516
726
694
525
529
365
242
742
626
551
635
479
767
649
671
342
594
410
191
200
686
566
419
547
538
662
493
604
586
513
515
565
525
776
749
640
467
599
596
359
612
519
584
596
436
569
537
363
641
698
509
826
346
429
665
887
678
759
573
381
364
526
494
538
442
662
618
674
781
570
581
745
647
411
598
591
818
706
609
738
631
777
594
478
669
794
476
832
479
493
598
840
636
932
471
614
841
544
674
401
712
354
560
545
597
393
512
640
721
997
420
292
574
596
760
569
768
690
535
684
840
706
537
618
635
564
451
565
604
654
595
552
922
563
488
527
799
645
747
726
504
584
647
815
736
349
498
757
475
651
600
706
615
545
747
519
376
322
694
597
935
735
575
604
640
380
548
660
549
560
934
669
608
558
453
492
720
439
608
684
615
578
604
649
829
484
528
743
624
680
381
409
594
615
681
538
718
457
542
274
598
920
718
496
694
516
683
735
353
613
758
456
490
121
637
686
672
621
644
762
791
774
632
571
381
946
644
612
767
786
561
550
716
764
490
786
534
579
730
550
732
841
690
767
546
604
560
656
717
496
658
427
717
808
408
315
346
863
774
547
826
544
712
592
595
526
833
728
685
340
489
516
624
721
712
690
465
725
591
564
530
730
544
695
747
423
781
524
765
723
761
600
451
389
493
635
0
736
732
888
559
683
841
690
545
405
414
302
886
294
542
703
524
777
889
559
617
697
713
713
713
707
412
347
751
405
411
711
461
506
656
797
471
545
626
674
649
971
731
325
678
109
719
800
176
735
637
643
574
634
602
692
578
726
808
582
830
670
542
719
527
686
834
799
397
819
488
347
960
600
557
461
527
768
522
557
262
637
440
577
813
718
779
584
709
793
928
490
226
738
591
751
510
554
662
781
489
655
373
681
374
911
604
776
656
33
795
571
320
673
654
480
493
656
644
556
742
720
387
468
650
710
699
530
594
619
551
812
545
611
661
423
773
660
751
585
488
591
583
626
588
657
540
431
485
698
834
586
802
590
457
757
478
793
669
697
630
759
416
716
640
757
677
346
671
473
610
432
518
405
433
643
381
680
610
670
614
664
589
495
803
661
566
492
618
521
427
723
665
641
579
436
331
577
461
626
382
551
338
735
928
580
632
560
532
457
908
55
667
571
665
706
306
699
557
726
454
613
629
788
666
886
447
706
411
531
420
640
710
630
424
832
370
551
423
534
718
751
505
485
551
686
496
538
767
421
498
624
763
560
595
825
636
666
730
778
753
430
643
690
647
717
501
413
641
442
589
898
634
851
332
682
654
628
515
717
698
553
613
761
570
483
293
646
779
618
548
844
748
359
766
719
360
785
229
297
872
706
689
421
677
236
752
533
367
801
656
434
737
540
736
692
428
781
578
594
684
473
719
588
416
750
512
359
572
595
283
665
738
821
729
123
442
677
452
520
744
412
402
666
546
491
487
656
689
570
653
676
751
558
555
654
646
701
624
812
658
566
603
656
834
463
615
719
660
757
549
710
666
509
498
502
617
801
659
615
772
436
494
598
693
979
595
519
551
632
553
664
582
600
348
759
594
830
311
789
596
573
529
751
826
390
756
735
195
599
443
595
598
541
578
430
683
549
463
620
799
542
504
539
423
482
622
494
597
564
410
540
560
459
488
681
596
527
567
723
616
354
483
661
727
885
381
578
642
518
794
586
813
455
945
647
400
482
722
657
548
637
588
389
802
613
421
519
796
418
371
657
197
50
739
656
614
634
650
946
597
669
346
420
713
670
649
513
662
696
662
760
516
591
705
636
707
385
628
527
426
488
672
571
634
592
676
350
706
799
596
412
666
640
686
676
688
739
647
660
682
444
551
316
528
373
433
554
500
758
826
717
921
508
584
649
781
724
351
667
293
640
784
592
436
478
468
495
485
585
712
731
908
337
551
777
446
803
529
714
798
704
670
624
223
446
583
529
677
693
462
618
471
622
889
402
508
770
636
459
473
661
894
915
604
400
976
782
732
291
374
550
658
534
662
410
515
801
755
470
628
554
623
661
403
589
611
450
668
606
625
651
353
692
544
692
606
687
642
508
672
436
765
650
652
640
653
121
575
765
600
623
805
641
735
542
691
640
287
650
551
669
625
805
724
427
548
767
736
595
797
621
775
381
464
658
581
684
509
394
617
941
376
720
748
729
708
655
617
714
669
736
618
541
374
635
630
420
711
589
548
512
584
718
701
365
889
649
683
382
607
667
806
540
338
206
770
631
532
606
542
712
548
634
818
843
590
569
520
659
468
670
491
739
677
718
640
570
656
663
612
563
631
468
467
634
646
517
903
535
659
552
438
183
747
730
729
520
621
574
646
575
745
496
597
664
870
542
617
628
671
734
766
538
705
635
547
796
571
434
775
675
813
716
625
705
744
656
701
550
602
743
503
765
652
514
532
782
657
632
691
491
714
686
630
704
773
310
632
627
368
575
619
653
513
546
875
542
358
532
551
729
493
649
526
699
432
434
641
752
383
772
575
700
480
488
645
407
590
764
379
469
745
751
675
558
261
512
510
700
840
500
707
758
722
612
655
709
171
320
616
560
557
831
560
786
615
659
542
831
613
491
739
501
671
790
616
964
680
533
655
795
941
721
393
604
454
191
928
706
531
631
760
578
318
687
916
467
588
581
776
645
671
442
839
615
783
592
659
683
686
762
607
703
430
643
535
814
762
608
687
517
991
605
481
590
808
653
525
554
546
659
738
693
632
714
509
538
624
633
445
892
743
533
769
403
509
205
415
513
585
331
625
737
663
563
488
643
574
564
718
444
844
678
743
659
447
711
719
556
733
778
552
662
781
503
539
610
823
746
285
499
465
690
511
530
595
720
450
602
684
917
493
886
794
593
793
664
740
547
624
603
757
584
549
598
597
547
526
338
423
363
741
758
926
748
661
401
674
533
733
680
557
535
683
644
664
487
525
318
708
741
638
792
753
597
357
807
485
353
328
638
649
656
419
445
636
690
762
550
692
519
687
927
658
689
770
489
626
786
766
701
663
860
454
659
622
639
569
463
632
277
606
649
692
389
443
507
622
609
624
603
249
737
550
573
730
627
675
568
663
355
650
614
597
607
705
588
575
382
708
746
483
733
336
454
303
604
665
792
600
512
580
481
478
436
682
766
622
541
697
411
565
524
374
575
576
614
720
863
323
312
690
483
829
750
412
488
748
486
849
780
73
639
405
731
643
707
709
751
495
260
650
758
594
377
725
350
545
641
696
660
523
759
516
569
619
523
767
622
442
794
738
642
874
649
616
555
558
810
944
604
691
601
678
602
493
614
499
686
627
844
834
617
587
244
356
686
813
546
680
706
701
750
507
513
601
734
828
415
827
698
650
662
711
837
553
501
491
875
768
585
398
864
594
745
518
829
593
1020
698
405
554
775
541
576
636
401
636
630
906
818
706
600
663
546
533
475
678
379
315
838
585
618
491
252
510
555
784
295
741
812
580
523
531
228
876
325
608
597
539
627
796
720
631
669
596
610
703
559
580
423
563
557
547
461
655
706
392
497
360
660
712
658
763
641
780
320
504
636
486
851
352
733
612
723
613
888
571
622
596
703
343
546
419
771
528
466
336
305
820
768
646
658
786
409
739
637
377
415
535
338
603
543
509
717
477
579
733
606
566
503
707
683
644
618
625
632
590
354
539
665
803
871
347
632
805
1057
598
652
778
821
810
1050
730
461
538
440
669
619
661
348
380
612
552
578
667
596
695
761
667
640
577
677
549
651
708
772
301
967
452
553
644
861
629
681
594
380
568
936
602
675
776
553
597
700
399
745
484
807
634
551
791
841
462
713
692
564
655
342
422
689
850
749
476
617
637
735
520
566
730
218
536
669
676
821
354
575
840
703
714
431
442
797
509
757
598
728
428
714
555
538
609
792
396
479
592
644
698
700
368
584
295
735
498
450
581
552
818
567
711
616
713
875
562
676
579
620
642
465
425
471
589
734
384
639
761
566
595
725
677
696
628
489
444
349
561
471
666
705
779
753
425
694
769
568
861
540
479
127
633
390
720
886
488
945
482
490
567
458
526
704
649
749
625
578
264
704
634
727
445
656
570
502
560
652
671
544
742
878
608
641
593
510
640
804
587
758
730
571
633
487
686
719
764
366
460
540
672
673
678
550
450
461
734
700
512
293
622
791
557
501
630
605
527
690
680
338
485
518
658
670
473
551
409
535
352
829
660
336
390
532
554
781
433
782
533
643
700
698
672
550
692
765
850
613
621
694
361
455
638
601
804
886
572
679
656
784
650
322
138
634
519
774
608
739
672
404
540
608
619
796
830
815
644
775
770
751
741
811
528
702
751
855
290
612
492
777
271
870
443
668
607
489
526
719
671
645
496
393
758
302
485
563
354
504
841
716
363
842
490
797
776
817
452
640
645
566
480
449
647
822
550
529
731
777
509
482
673
525
552
633
660
202
699
813
401
607
669
603
321
625
436
619
491
397
800
676
574
753
637
648
417
412
557
590
546
710
908
492
700
628
697
578
991
724
658
601
635
0
588
634
689
665
797
612
583
761
639
593
502
570
641
519
361
610
706
687
564
424
759
782
721
720
368
260
366
779
676
592
725
746
436
720
856
637
544
729
878
424
727
744
548
413
421
713
457
652
512
512
454
676
772
695
851
507
362
895
573
100
777
779
488
785
402
678
482
889
534
696
467
481
599
301
662
325
617
629
798
439
626
532
432
625
714
695
613
597
643
730
454
613
655
690
410
572
744
511
612
678
793
677
601
639
492
758
707
782
651
659
527
712
710
546
628
413
577
552
752
480
569
371
664
746
435
291
693
571
687
634
1121
611
672
601
780
468
139
757
561
371
244
770
709
662
755
575
571
612
913
620
817
670
561
706
656
687
786
786
853
696
666
594
651
634
431
704
801
618
617
593
595
729
437
596
934
548
561
776
595
697
546
271
338
850
713
706
813
792
648
745
749
668
177
475
589
520
633
605
547
701
40
562
549
651
656
661
463
667
650
785
605
636
603
430
835
641
352
716
532
650
327
821
786
740
280
509
589
691
713
692
736
411
703
850
474
491
773
609
598
505
407
579
787
542
570
787
658
791
572
677
657
689
268
442
508
676
677
590
709
684
697
741
602
314
819
594
640
571
767
570
599
719
724
683
424
599
518
521
548
799
568
327
597
554
498
678
641
561
628
573
335
739
571
609
686
624
458
583
612
741
742
673
772
608
599
506
598
546
314
736
623
698
674
819
450
600
631
796
383
379
483
482
776
91
554
688
614
615
564
468
768
785
704
752
423
854
711
605
863
837
565
570
575
553
808
822
448
457
687
321
762
830
401
703
558
600
618
669
599
452
435
790
646
324
619
338
752
516
734
433
450
830
721
575
746
740
743
310
660
686
350
571
760
344
557
732
593
644
407
658
745
810
890
630
664
772
373
612
361
748
643
796
469
828
510
901
584
480
400
523
337
737
625
611
657
631
422
806
579
485
727
276
718
613
491
538
688
799
441
659
480
865
792
394
732
474
682
356
663
738
533
469
636
669
684
716
497
615
1158
715
529
758
621
480
412
712
588
503
642
728
625
525
716
665
561
709
380
761
619
780
582
801
643
726
659
602
700
616
693
518
256
607
683
536
540
751
693
499
579
681
676
684
652
676
370
570
457
406
260
612
765
518
525
495
596
245
753
636
471
503
322
419
513
691
611
617
731
766
630
664
506
696
700
642
609
885
506
670
509
721
779
756
608
490
585
495
613
642
596
626
600
431
539
691
708
109
700
737
718
661
623
523
681
667
794
619
428
693
683
699
641
736
620
429
663
759
630
627
501
621
685
983
572
575
297
640
604
642
290
249
442
511
432
1081
175
476
292
757
299
844
675
728
573
534
519
827
491
665
598
865
601
770
546
515
369
617
488
766
547
531
416
498
952
562
631
528
729
467
754
871
599
433
609
822
640
779
725
604
640
542
383
611
732
667
775
629
604
672
761
747
870
470
474
352
618
681
543
720
605
585
838
460
566
739
524
679
627
793
891
495
619
523
640
429
671
736
754
586
701
508
266
711
491
646
667
747
671
747
725
733
533
507
857
593
496
498
593
533
780
660
412
627
538
699
124
375
582
534
400
549
759
161
496
678
450
436
628
542
592
753
860
592
718
168
422
141
517
674
531
568
682
849
880
622
617
725
181
637
541
610
473
373
706
800
468
658
584
760
696
845
611
558
719
540
782
570
664
633
560
196
529
672
674
650
896
701
658
576
891
726
598
625
614
523
401
657
690
720
898
609
794
534
526
591
561
687
538
629
691
515
589
764
596
690
741
522
589
634
344
468
459
541
682
370
875
550
331
586
728
56
602
700
522
609
664
493
897
702
864
672
677
704
524
432
698
841
566
497
586
570
618
547
585
618
698
400
485
531
605
720
986
485
536
552
597
481
710
744
515
728
612
804
262
747
682
698
502
586
634
695
646
796
787
260
858
565
450
671
703
598
575
731
540
577
745
512
435
884
606
798
965
428
765
596
734
752
647
500
479
649
616
581
849
491
642
763
711
658
498
584
619
458
683
561
776
514
578
745
748
564
683
888
475
770
326
549
470
500
859
735
447
657
740
559
755
939
800
471
236
527
701
800
589
531
398
850
683
774
642
467
462
691
807
612
622
647
558
680
757
788
523
706
702
657
656
512
752
581
588
399
590
539
1058
647
720
507
524
874
734
625
624
658
413
678
643
779
902
780
787
715
660
739
792
416
617
654
629
639
670
536
800
789
693
486
706
427
627
595
953
546
774
511
672
501
768
541
610
533
573
700
775
668
580
678
715
556
459
373
264
757
706
469
557
770
760
884
702
614
594
623
340
601
631
665
570
460
695
685
769
554
308
668
720
546
545
498
496
528
692
804
700
643
677
860
642
269
510
662
835
407
846
638
581
714
890
557
476
700
878
815
600
454
644
577
629
718
546
447
669
758
592
675
519
516
492
729
719
623
527
479
715
694
640
584
386
746
679
690
616
401
768
470
598
697
621
730
553
544
720
494
764
570
646
648
513
669
812
712
815
744
439
491
686
537
564
582
534
352
887
618
698
806
604
629
387
860
719
497
556
404
647
881
532
849
692
864
470
674
564
613
685
514
570
349
713
732
592
829
306
624
310
725
642
586
571
662
575
816
367
528
756
115
508
296
529
651
604
785
579
679
770
594
515
931
613
736
662
671
290
736
833
617
736
403
679
680
643
642
600
545
638
747
535
427
630
602
648
693
604
701
421
745
1005
814
398
619
437
412
787
124
580
608
345
569
579
477
833
612
623
478
582
624
515
586
683
661
744
397
444
561
737
780
585
511
790
10
548
554
722
807
673
876
902
600
674
409
614
546
552
580
708
605
590
704
617
525
674
851
704
762
459
693
252
740
415
757
852
680
645
748
585
572
414
740
650
527
844
467
529
750
725
517
621
494
767
636
500
527
418
649
435
548
714
431
974
488
580
757
203
664
455
446
722
356
691
723
633
437
776
824
645
446
765
542
638
775
368
231
756
557
580
851
602
558
257
315
613
83
524
553
484
693
436
751
741
509
643
286
609
566
707
568
611
766
244
740
631
372
627
679
956
577
566
682
1152
696
564
590
535
520
548
706
747
581
801
613
570
607
415
576
766
601
572
465
582
559
550
707
623
597
669
628
281
722
414
776
632
663
530
591
660
425
903
626
563
1126
577
831
536
539
365
588
589
619
305
453
703
783
248
671
544
507
723
684
868
195
685
580
684
637
441
598
885
558
526
114
647
620
647
769
676
672
555
740
771
488
457
379
683
434
811
529
452
644
608
429
338
740
665
529
660
455
662
767
651
543
592
665
421
706
639
517
484
378
469
456
705
590
397
809
583
698
779
589
622
601
579
666
665
640
536
538
672
487
644
513
574
492
585
914
619
303
558
542
542
688
406
489
546
533
570
635
637
492
649
671
518
714
500
503
770
621
454
783
446
705
631
496
322
521
635
617
618
601
659
567
541
499
496
511
337
442
113
630
808
729
713
556
604
873
705
627
563
735
542
601
669
650
563
674
924
453
819
592
498
493
451
627
443
302
497
480
828
745
719
583
662
685
545
733
639
894
621
499
618
578
454
584
719
579
863
662
440
613
586
565
659
564
565
753
624
476
452
743
745
683
630
652
402
629
568
680
736
721
718
417
305
575
559
833
548
716
887
722
591
583
630
757
550
494
551
635
544
717
634
470
702
655
459
704
480
636
663
556
628
647
540
562
414
291
641
608
579
354
522
710
570
611
616
517
791
635
408
570
647
613
535
849
569
661
560
550
741
523
748
409
687
312
782
645
364
445
599
686
668
155
486
598
643
850
617
440
765
466
584
518
477
216
714
678
504
548
760
476
645
649
821
501
743
682
677
749
393
659
562
379
759
875
704
789
682
482
748
604
611
582
937
656
413
658
721
473
615
794
553
855
621
377
468
803
527
643
835
430
788
370
541
673
509
745
403
422
908
527
566
529
705
790
490
536
806
746
661
212
684
554
622
576
681
599
412
454
696
629
451
731
650
672
588
646
724
358
558
745
746
792
552
529
328
612
727
723
476
728
715
764
767
397
467
661
677
614
501
598
464
483
621
566
715
742
253
734
561
599
517
748
523
661
705
374
742
687
844
266
927
535
719
660
674
693
399
536
714
528
506
636
509
502
882
876
790
438
682
482
662
402
411
526
720
632
765
638
547
644
623
868
596
811
570
352
751
453
667
651
609
532
540
605
161
786
335
756
620
490
780
689
427
604
501
591
699
553
832
606
744
702
532
658
644
778
962
480
680
509
479
404
312
548
704
664
563
698
441
770
530
86
784
451
578
498
489
601
511
660
429
817
582
692
440
642
794
725
411
757
349
565
591
417
622
748
784
712
479
658
586
559
683
734
668
347
414
373
792
380
593
585
490
1015
394
550
466
553
726
710
671
569
615
286
619
328
724
649
713
776
491
637
716
759
645
722
498
520
525
792
561
791
499
470
561
465
531
660
519
536
461
661
584
498
617
703
361
589
525
519
419
686
602
767
660
550
687
533
974
694
609
558
731
681
693
422
689
648
503
571
394
596
602
583
697
621
519
710
421
684
591
751
451
671
669
634
626
793
563
743
298
755
607
401
462
371
464
748
665
607
479
623
656
503
503
668
488
221
872
514
729
590
615
691
649
566
707
785
548
657
537
294
672
613
495
549
590
387
607
479
556
627
582
824
812
807
614
620
650
612
548
325
420
500
593
524
617
144
631
694
480
722
605
591
688
848
666
586
791
561
637
631
513
392
813
541
572
695
448
734
427
649
713
716
642
601
778
696
475
532
586
694
605
768
821
794
353
491
718
700
643
407
762
685
507
755
653
508
683
810
496
745
658
656
547
499
603
805
817
672
780
576
655
648
859
357
717
455
568
656
730
470
307
611
823
742
686
670
545
820
582
806
654
434
643
458
448
421
733
703
724
394
694
354
538
593
523
795
770
601
753
647
758
663
588
382
547
574
348
560
594
745
440
569
433
639
493
668
634
644
805
616
619
562
668
586
667
554
464
664
567
876
763
839
717
767
612
454
642
621
558
640
679
680
521
370
773
511
752
372
642
817
626
303
992
658
628
587
773
624
603
521
118
669
702
784
552
551
740
603
682
585
757
708
335
678
663
893
748
297
618
708
623
464
561
724
533
719
497
581
651
737
683
623
480
633
700
573
660
425
412
641
658
869
638
865
567
506
507
698
640
480
706
665
817
662
675
362
877
566
671
644
640
424
868
691
465
739
668
490
756
429
613
658
851
577
258
366
635
400
476
598
766
688
676
261
679
665
670
818
568
866
673
539
550
574
658
341
624
898
680
565
844
632
526
401
713
551
608
791
780
400
618
526
345
677
567
589
577
583
485
840
833
605
684
800
469
435
536
761
613
692
606
681
687
581
816
685
508
528
565
584
714
700
514
798
664
510
517
784
493
595
800
591
468
675
598
674
533
722
702
858
408
828
379
379
643
272
597
691
524
656
525
414
665
661
557
544
453
633
481
700
324
523
735
792
659
612
719
779
791
599
674
652
618
715
274
686
694
636
694
530
614
754
445
710
534
511
724
657
498
613
536
658
595
458
479
360
645
733
703
728
434
161
656
436
670
189
566
549
295
517
708
586
935
852
516
630
560
661
576
666
559
396
775
416
819
484
496
773
633
634
604
534
504
751
78
480
656
774
729
512
542
614
448
518
479
774
717
702
604
588
647
743
599
465
667
597
589
420
563
707
690
532
705
566
586
642
522
638
822
699
693
380
634
760
660
693
711
651
685
731
612
803
829
546
782
677
654
575
729
726
546
260
527
599
780
820
775
771
635
591
640
451
476
596
590
732
745
666
629
707
541
614
667
632
482
525
696
543
719
826
523
555
705
775
639
647
628
656
623
148
691
624
724
547
724
623
692
373
515
220
555
720
640
233
416
690
741
585
689
858
514
622
515
713
868
573
569
427
615
477
247
610
628
242
551
658
390
739
757
240
551
607
392
556
589
424
411
578
344
790
772
376
493
653
496
752
652
723
731
721
674
690
651
476
672
610
619
260
866
402
622
876
792
500
781
590
767
486
678
589
778
504
613
550
495
462
601
284
715
490
551
553
555
736
790
708
294
631
740
368
572
816
440
707
873
700
602
406
621
465
139
226
754
599
790
718
633
395
459
544
489
772
543
507
504
651
836
718
675
724
836
552
584
770
0
571
673
649
614
544
753
659
707
702
744
574
831
290
740
288
646
635
274
603
390
613
587
845
691
713
693
542
597
650
707
674
755
631
639
857
602
591
545
578
477
554
477
763
801
831
710
864
772
347
701
506
605
600
686
726
489
810
693
450
646
628
819
309
557
944
655
402
711
544
619
839
697
786
435
866
696
514
635
603
311
454
365
555
520
727
434
686
438
703
692
818
612
602
650
487
764
478
454
750
465
624
620
769
639
439
662
349
432
741
25
762
664
357
753
328
587
527
648
564
623
660
780
448
525
594
540
512
905
628
573
588
597
561
596
411
620
584
485
462
626
664
568
773
201
687
341
240
352
617
756
330
970
776
703
724
664
649
708
446
557
904
454
623
616
501
670
712
777
642
677
385
668
590
643
474
642
681
736
573
596
601
725
689
703
482
700
612
777
509
608
473
502
549
634
619
560
654
705
858
392
429
372
864
644
619
593
596
706
175
394
571
752
682
441
695
631
659
554
848
687
838
754
652
679
511
592
624
767
412
718
764
844
786
762
550
677
510
699
615
642
533
947
624
720
632
225
603
517
516
360
524
628
897
617
569
691
729
423
813
263
632
745
757
488
860
668
610
696
747
575
529
465
712
579
678
598
635
345
525
664
480
689
627
678
797
612
703
903
789
354
700
674
594
660
450
340
671
662
479
571
348
681
763
451
825
574
832
506
591
231
508
892
645
756
492
517
617
762
319
746
437
549
698
695
608
618
598
323
644
379
597
503
598
723
598
768
461
535
593
452
570
498
633
625
738
587
628
753
507
689
546
435
776
817
441
671
845
526
215
403
489
486
555
391
607
613
785
633
685
582
738
603
652
254
453
362
563
727
790
387
551
613
517
518
441
785
494
596
466
559
602
426
598
495
604
884
652
731
628
675
585
424
504
513
452
897
170
637
532
625
617
849
686
559
641
710
484
872
451
707
411
591
633
621
684
521
462
629
392
481
699
526
501
432
515
475
580
214
771
743
861
488
698
674
459
751
534
573
708
522
842
466
785
604
650
739
762
624
565
712
277
479
568
554
564
930
738
740
719
709
479
716
571
686
789
651
589
791
526
414
563
685
529
641
488
747
487
594
547
626
859
591
769
657
554
604
664
775
583
511
660
561
386
796
564
676
614
772
581
645
530
626
761
588
520
565
585
573
728
757
421
398
587
672
410
813
653
606
235
701
480
622
538
614
612
713
705
658
623
362
663
592
751
696
589
730
664
692
582
979
757
603
616
608
672
620
433
356
485
560
818
526
673
639
357
428
726
647
471
745
292
617
605
650
574
866
586
639
683
663
281
656
300
607
452
706
518
664
523
961
591
604
688
460
311
651
626
518
530
427
516
461
831
689
642
482
308
308
616
694
793
540
464
682
596
857
718
406
584
507
707
726
608
522
489
603
585
621
322
811
493
748
768
664
733
401
794
599
616
808
823
680
614
657
775
370
712
535
894
557
593
671
425
618
715
777
683
628
626
321
215
632
545
535
166
419
484
662
851
269
461
747
676
623
488
176
655
664
613
912
850
410
615
556
624
696
672
531
626
644
592
274
778
493
627
215
598
532
470
593
438
496
547
470
584
512
829
725
672
597
622
533
362
710
651
662
840
672
561
693
515
617
706
846
864
158
888
127
468
319
805
866
823
606
453
368
553
578
693
745
499
541
698
608
360
829
838
496
576
707
440
395
717
727
526
639
686
434
639
541
593
855
700
603
855
904
754
682
440
695
636
424
483
615
601
636
422
558
997
484
491
943
621
492
841
621
652
756
717
451
492
846
777
246
538
574
507
595
435
680
483
644
452
683
711
430
397
555
669
594
717
361
724
802
857
759
629
0
919
771
695
776
547
453
627
694
797
585
565
564
479
617
230
0
593
526
608
418
759
444
823
311
607
656
523
523
746
727
676
633
478
322
530
524
327
751
596
800
488
743
651
686
371
703
681
606
782
808
729
467
501
610
704
758
537
558
644
569
851
880
507
470
745
529
879
665
350
369
735
737
759
592
272
581
757
789
662
304
523
383
568
587
724
705
470
747
659
717
476
587
634
562
358
690
349
570
616
503
504
595
723
563
668
660
517
614
563
643
820
638
642
329
634
591
484
699
578
729
492
643
756
674
466
585
503
457
494
710
520
647
652
715
534
717
760
585
594
735
796
492
556
488
613
678
692
617
425
464
636
449
752
683
786
665
573
669
563
590
532
753
780
676
576
664
665
551
768
712
546
655
550
454
647
692
516
543
458
790
771
522
717
476
489
346
498
721
665
520
651
788
653
766
430
403
691
508
680
696
644
445
315
422
458
654
769
823
399
670
777
602
464
626
715
392
369
545
488
768
675
636
656
731
517
852
304
685
845
477
569
643
719
634
592
443
972
494
677
803
489
378
744
812
644
526
635
763
458
394
488
586
635
530
642
617
375
971
724
627
621
542
227
428
563
714
355
492
714
725
369
598
606
750
763
602
588
311
667
544
567
662
803
264
758
651
693
678
934
446
680
670
750
673
809
709
686
658
576
613
618
690
412
568
799
769
415
739
663
375
520
581
534
360
376
687
346
777
610
638
606
530
699
634
560
566
678
711
558
780
496
514
654
656
709
530
597
398
702
814
710
724
560
708
615
868
503
585
654
650
815
180
669
695
603
701
414
649
708
386
647
611
646
630
789
593
341
657
755
697
581
719
649
671
571
664
612
627
272
662
723
574
624
454
354
499
399
693
405
775
677
369
845
773
780
823
731
500
683
702
573
683
729
619
550
448
782
230
558
334
641
572
455
541
678
699
520
75
847
511
225
535
530
521
597
567
647
538
586
895
779
719
631
696
717
247
351
364
0
500
617
598
418
692
617
617
532
480
704
436
362
479
321
575
248
460
747
599
623
461
531
255
445
765
677
548
803
586
620
664
644
756
528
791
475
554
785
255
404
773
857
419
757
768
734
681
868
679
771
610
555
561
609
619
509
526
735
770
516
448
582
559
735
509
785
510
783
754
807
528
789
771
685
707
513
632
756
689
537
0
649
604
733
588
687
757
638
507
678
439
640
800
693
598
747
494
776
601
395
512
466
777
526
698
247
335
834
669
605
206
228
594
572
696
897
556
686
271
575
737
349
476
637
541
542
858
564
585
781
662
677
625
328
724
638
693
769
563
932
505
453
612
654
479
783
648
501
569
613
715
672
746
838
681
604
503
424
361
672
705
655
931
562
648
497
599
684
300
503
717
614
611
391
708
850
548
416
706
857
775
0
548
743
845
597
726
570
533
601
407
799
597
787
500
196
771
503
836
472
498
757
760
784
690
268
699
676
580
647
705
597
638
585
415
574
837
575
765
873
675
595
604
664
799
777
339
153
772
385
665
869
689
540
672
649
629
443
497
546
644
884
634
811
746
321
684
705
532
670
841
417
643
421
891
753
750
503
545
576
368
445
465
698
731
650
693
623
531
793
713
747
860
536
492
449
472
664
613
515
750
635
512
456
615
738
605
793
468
476
697
581
380
607
536
556
404
756
617
87
635
486
632
689
687
518
646
286
648
610
691
349
892
537
308
787
763
611
351
538
641
547
338
605
708
861
708
992
602
683
518
711
618
527
510
624
332
356
600
854
762
618
707
515
743
754
515
412
487
800
564
607
466
678
1026
746
701
526
636
626
617
642
530
753
501
823
704
548
576
500
805
331
559
574
501
461
748
629
714
577
320
318
533
407
744
268
668
780
525
682
674
903
608
521
423
561
484
643
453
557
556
467
574
84
722
333
699
634
309
645
606
952
445
664
761
732
608
637
529
463
457
670
447
639
684
719
492
730
669
552
675
701
550
557
808
827
445
598
635
423
667
396
547
781
608
589
551
728
618
275
647
708
623
319
499
705
518
494
695
277
434
583
423
697
485
575
829
629
753
727
476
359
594
753
762
681
682
653
712
694
824
630
480
675
652
453
563
505
423
603
733
707
510
581
492
836
523
552
641
685
673
652
656
569
663
362
622
661
521
806
504
126
504
344
671
465
493
518
697
539
404
671
387
565
813
697
596
215
778
401
768
864
565
770
626
637
545
501
693
728
227
692
847
569
502
592
577
521
731
613
564
654
791
313
624
540
710
866
575
565
645
898
552
709
593
538
444
454
678
427
775
644
579
769
342
756
812
544
595
552
345
675
618
586
524
709
620
724
463
788
723
826
437
610
572
453
693
490
752
616
636
437
612
720
761
667
731
788
802
716
657
792
608
221
786
447
599
605
525
554
680
328
176
635
92
512
668
841
862
638
528
307
579
860
783
673
620
631
386
859
579
345
675
388
754
496
591
617
635
750
596
601
730
1028
526
423
669
911
584
914
542
648
810
577
487
481
652
751
581
619
696
430
764
677
714
584
657
776
705
528
624
490
552
489
353
576
635
621
694
562
769
563
675
620
447
536
403
557
772
545
295
0
611
572
862
654
583
640
471
715
607
657
752
436
137
828
817
858
646
416
722
411
510
591
723
733
540
612
776
716
652
776
652
557
617
830
743
515
422
579
619
772
633
477
669
634
740
698
684
544
623
631
627
666
708
592
449
556
250
412
555
480
675
710
572
579
755
339
517
726
735
470
631
632
666
759
812
859
721
632
619
422
836
268
463
606
652
129
527
623
748
508
611
462
914
709
359
531
383
726
656
710
704
655
610
749
584
460
577
295
733
522
443
319
468
715
631
520
642
579
558
796
594
490
463
715
627
731
580
383
592
763
608
367
678
623
612
413
0
615
532
731
628
688
675
715
424
682
589
676
578
624
622
423
608
720
1012
610
577
420
771
408
883
650
532
393
434
684
814
51
343
606
32
825
464
590
774
385
706
668
477
481
801
725
574
577
611
536
743
528
605
685
515
640
622
551
932
709
691
730
563
428
777
609
595
557
770
763
768
536
566
482
496
501
520
699
325
710
780
486
490
476
838
766
518
550
539
720
787
492
703
735
637
598
815
436
620
477
844
677
531
687
620
445
574
637
665
453
643
736
770
783
666
586
575
622
730
695
808
770
501
561
389
788
573
572
557
531
694
867
491
449
640
620
624
848
754
644
541
705
620
711
604
676
782
217
641
695
513
668
541
674
614
739
275
445
760
683
592
578
509
849
544
755
681
521
523
647
663
848
358
474
562
595
444
538
549
927
574
645
358
731
690
637
735
700
910
492
529
539
698
536
784
529
527
613
882
790
691
104
769
570
795
670
604
503
684
629
662
479
529
698
424
326
626
600
328
395
695
392
539
810
652
501
589
670
690
639
942
727
642
726
549
662
856
484
580
846
605
633
676
504
617
464
246
758
453
647
622
416
507
498
528
643
665
546
309
661
573
747
779
515
466
545
708
547
634
473
663
637
494
716
522
664
656
704
262
682
791
568
541
297
1085
441
637
925
547
591
845
235
673
700
1014
640
667
684
513
600
652
458
626
892
759
676
451
739
460
428
755
410
556
805
258
464
62
464
156
527
613
587
585
631
745
384
543
723
612
547
590
757
503
685
441
767
695
517
649
849
402
831
690
929
550
567
607
1075
638
574
794
704
563
531
752
632
608
596
665
590
537
351
595
651
575
732
592
488
479
156
399
734
700
414
836
522
700
532
658
727
578
942
692
799
747
783
434
693
691
831
395
755
634
798
316
717
707
422
836
319
554
523
598
338
625
654
777
457
714
586
695
728
401
694
662
801
467
705
834
454
568
678
850
492
675
629
604
791
674
793
321
622
550
319
672
455
552
651
532
597
844
299
470
322
774
725
598
606
652
703
851
530
548
559
528
577
710
569
635
513
738
835
411
605
772
863
576
389
662
495
364
631
664
692
595
650
523
484
419
763
391
745
605
637
235
590
588
782
580
706
617
811
551
590
655
419
821
813
551
730
531
756
491
391
666
249
380
718
93
766
645
484
768
736
477
696
653
491
615
752
662
558
499
1013
590
703
743
650
704
739
355
363
778
457
430
605
658
362
619
433
347
405
435
611
681
667
794
709
801
703
640
828
227
465
724
630
799
644
485
739
321
617
707
848
631
694
490
553
634
141
599
579
454
222
670
644
630
587
779
445
659
349
703
684
698
742
667
644
662
701
784
447
637
631
531
577
712
552
698
568
646
410
159
662
644
672
505
545
215
657
436
581
667
706
727
883
691
538
752
1006
720
696
419
576
575
782
521
917
739
641
720
697
656
581
735
708
714
508
763
355
643
495
747
663
623
654
393
370
297
644
630
327
533
581
229
657
705
589
758
564
687
484
687
564
56
783
574
437
608
560
614
611
485
680
345
533
695
495
694
517
759
497
640
586
731
512
382
734
747
955
790
627
490
787
735
854
733
745
358
523
585
591
922
620
622
596
551
682
902
643
645
506
588
546
475
731
693
575
371
692
647
739
520
669
304
608
608
525
332
651
580
493
580
0
994
643
647
483
678
619
815
649
467
580
651
622
393
653
521
430
652
413
660
700
638
618
586
448
723
511
716
702
582
563
778
573
607
682
440
507
677
474
370
593
196
686
465
557
547
820
759
660
450
387
625
500
536
492
639
680
723
588
748
447
662
550
548
522
544
757
626
561
606
587
676
625
535
556
717
500
518
805
379
656
734
436
731
837
592
595
601
563
662
374
765
506
466
718
408
535
919
711
498
703
693
764
578
531
431
772
656
694
450
700
461
786
487
645
645
636
563
780
677
535
362
708
645
387
634
771
0
624
650
358
515
469
397
723
594
723
615
501
422
556
671
817
285
740
443
661
616
110
428
565
561
774
489
662
774
716
501
788
632
615
465
653
718
615
534
475
624
597
527
343
506
722
663
786
458
535
591
467
848
526
653
529
648
530
615
920
650
726
626
613
764
586
356
580
481
572
557
557
565
894
626
443
644
608
782
630
617
606
640
712
515
643
281
707
659
329
684
714
553
729
940
678
501
461
212
337
759
418
675
614
678
558
841
564
305
564
795
642
468
653
706
801
631
658
634
814
664
647
494
638
417
425
478
731
591
629
678
577
626
733
494
758
829
433
552
802
696
689
583
385
565
857
317
764
752
467
504
598
709
778
586
780
586
592
764
658
591
707
763
490
683
732
529
753
779
281
644
462
664
700
481
503
841
737
322
580
622
586
661
702
637
645
633
772
660
624
876
504
717
583
663
526
690
570
623
541
688
529
752
285
536
491
135
506
729
763
466
565
529
608
784
395
564
869
714
571
486
523
797
806
749
731
681
611
901
697
483
793
327
723
679
763
787
597
727
432
586
624
592
0
801
421
681
451
530
433
415
682
811
832
454
508
648
699
418
639
625
701
724
599
828
515
800
759
480
925
635
697
535
603
677
661
564
595
816
943
466
635
634
740
598
706
580
518
713
533
603
736
761
631
416
620
650
786
425
660
799
629
734
417
511
505
817
201
323
742
638
498
610
396
620
364
334
975
825
664
665
233
540
314
664
608
647
602
496
577
650
725
845
346
664
870
735
703
446
658
421
814
397
730
398
236
631
820
763
850
613
602
485
654
567
610
717
821
759
542
700
562
714
422
609
896
685
605
418
575
475
643
369
673
732
580
569
657
408
633
628
424
455
796
600
694
396
557
876
555
448
621
517
380
566
773
651
515
564
373
468
560
571
960
569
365
661
638
611
773
486
730
697
596
617
654
381
597
543
647
578
360
640
598
555
634
336
381
585
614
608
979
750
581
452
583
497
534
618
587
552
639
790
601
548
552
500
825
668
419
550
549
790
585
775
545
748
510
747
677
796
814
479
590
671
541
618
741
652
859
713
580
561
753
771
449
356
369
698
398
730
706
523
520
548
353
623
564
574
529
642
748
345
345
586
604
668
658
591
615
722
695
512
702
532
539
700
682
564
624
632
710
365
793
705
517
692
737
509
165
738
502
691
514
549
76
571
383
645
753
882
499
652
450
477
814
506
542
736
611
451
472
678
678
422
740
547
635
865
667
808
586
516
739
592
786
403
768
730
237
849
127
677
558
512
395
630
631
614
610
348
513
842
122
436
492
703
636
703
688
455
492
797
372
400
507
740
680
681
709
570
565
832
286
588
816
562
287
458
549
567
596
721
403
841
379
477
548
553
654
753
170
675
698
740
734
629
470
729
516
526
676
779
506
660
691
676
197
340
799
598
577
643
713
616
340
508
491
539
420
354
351
746
482
752
631
576
690
611
555
708
502
558
603
219
760
297
263
516
833
977
686
432
765
650
741
449
676
731
867
738
490
806
722
673
715
639
679
610
834
629
582
747
319
651
620
563
639
647
787
784
583
690
679
317
404
699
642
595
636
712
671
597
719
770
586
812
705
675
704
533
798
706
598
808
500
848
534
514
710
544
684
812
785
719
589
800
675
700
650
666
552
512
718
821
765
326
720
835
665
0
779
745
503
565
777
564
779
683
389
516
735
472
432
743
670
745
706
688
348
355
834
503
590
666
546
730
424
477
717
732
393
693
825
728
756
557
503
428
513
709
646
656
683
650
609
781
368
712
551
644
650
736
573
523
821
368
745
908
446
604
521
549
600
283
435
740
686
433
522
729
601
23
439
592
774
788
742
772
636
701
634
819
835
568
762
757
695
396
686
707
517
268
336
668
524
642
721
567
593
634
756
761
363
687
806
754
660
322
561
788
591
442
543
610
648
614
915
799
786
498
926
869
821
670
581
702
523
717
691
663
520
569
608
758
686
455
483
781
619
615
655
796
554
487
239
636
410
1077
682
420
441
575
617
790
787
848
401
541
720
723
358
640
389
523
391
687
829
779
706
724
474
749
694
577
712
561
496
494
658
456
508
505
530
905
624
805
770
356
613
785
528
589
592
670
630
769
433
300
435
658
485
650
751
663
615
742
679
371
606
430
570
411
549
403
600
291
716
727
693
556
440
766
500
565
543
642
615
739
654
483
678
688
728
477
617
400
587
665
663
684
777
565
317
530
411
550
541
634
558
822
524
496
797
647
688
471
584
809
605
812
349
671
826
566
729
419
564
868
652
768
280
709
640
665
736
540
592
825
514
480
575
655
724
645
362
711
828
343
677
520
476
382
788
578
683
811
626
293
929
509
767
625
530
751
583
751
497
406
634
744
573
625
447
539
468
673
648
672
812
377
542
622
802
663
483
578
584
610
870
617
584
781
461
679
413
784
498
836
724
688
844
618
913
673
568
677
534
816
492
615
777
717
589
623
521
770
743
76
613
647
593
696
737
747
612
714
567
700
656
429
519
542
778
566
586
740
682
548
664
336
318
688
532
567
625
946
594
531
782
421
631
633
250
658
271
818
663
784
654
762
521
917
502
595
590
368
724
687
614
738
769
555
551
746
622
691
795
494
167
537
842
693
585
524
696
483
662
800
110
824
727
632
895
670
674
262
733
730
670
660
505
829
675
476
724
414
528
731
641
581
763
662
735
720
463
338
612
475
582
628
538
745
532
653
727
592
696
439
654
722
395
706
574
859
923
260
793
552
616
745
1109
549
436
571
608
732
697
475
548
587
710
643
699
518
708
715
613
469
775
640
685
347
612
533
715
580
511
477
566
568
724
751
653
482
726
381
510
405
697
780
622
807
71
771
623
759
657
750
750
588
759
760
420
418
653
352
813
358
397
368
496
325
550
713
825
795
466
517
394
635
628
762
433
566
616
822
527
832
756
697
578
393
702
391
503
798
606
766
686
775
795
693
431
450
479
571
719
620
689
596
540
549
703
357
264
739
634
684
555
655
531
143
641
431
748
616
476
225
710
590
651
413
691
754
527
579
521
572
530
558
0
767
456
412
616
680
682
392
320
778
755
725
747
602
582
552
0
683
658
551
509
726
574
479
532
572
556
649
734
611
437
568
488
627
771
899
612
161
559
889
733
741
558
646
763
945
435
586
444
486
771
732
617
720
560
790
616
485
723
698
530
640
742
624
732
709
370
598
622
663
586
582
569
732
614
744
570
695
510
671
607
638
534
573
430
529
709
553
574
715
689
93
535
559
726
524
741
635
468
651
405
632
988
543
683
490
705
535
826
576
398
418
737
645
593
707
615
482
495
963
653
732
712
574
780
590
351
437
575
604
706
750
623
516
363
642
280
548
725
992
624
732
395
625
575
855
401
571
538
519
665
857
463
695
625
516
369
485
545
520
513
458
527
761
591
512
618
663
659
369
109
609
623
569
402
729
591
561
701
555
658
507
519
512
637
597
718
574
788
710
853
506
528
705
740
206
726
690
851
671
590
595
558
418
556
573
422
652
648
612
548
696
606
729
745
830
715
622
641
161
404
580
609
489
521
451
648
642
502
594
644
393
768
478
701
579
585
811
781
616
365
580
476
656
519
557
771
1081
469
246
813
316
427
611
587
301
701
771
727
462
841
338
160
524
687
517
753
354
495
609
752
596
718
662
723
626
598
748
628
507
645
251
567
704
596
592
585
694
631
604
668
421
753
594
719
71
692
731
497
880
730
629
669
673
765
691
705
677
758
491
567
607
498
614
546
597
590
583
508
710
572
740
560
683
902
691
537
741
886
576
451
632
655
723
700
376
640
616
382
578
594
655
495
460
802
433
564
440
339
785
647
859
806
499
554
704
798
514
534
640
611
525
758
579
703
614
895
578
541
604
591
757
690
588
377
528
708
752
392
689
524
858
593
630
621
426
652
626
465
725
737
759
858
420
590
311
387
388
650
736
596
605
764
181
735
616
733
783
638
487
1058
640
752
775
482
481
729
788
841
606
718
566
583
630
682
647
508
563
599
494
728
518
655
632
572
588
701
610
625
655
610
706
842
528
477
606
865
608
709
596
574
608
735
581
329
488
596
527
483
566
620
343
505
482
578
721
687
500
460
740
424
529
558
730
646
640
823
626
693
320
333
641
700
736
581
742
563
767
849
749
623
528
511
646
793
533
708
530
693
470
724
676
734
538
767
488
759
635
834
694
579
593
344
682
338
278
345
655
768
633
666
591
474
745
712
827
767
776
539
502
678
477
803
715
758
789
659
663
576
315
598
417
552
467
354
641
687
685
702
437
782
686
691
687
521
537
434
554
797
520
696
642
680
630
312
632
682
736
488
671
635
656
635
683
851
534
554
575
650
745
672
779
693
686
663
689
738
744
670
513
740
588
292
496
713
502
592
637
864
600
271
721
635
296
681
652
685
444
626
704
526
748
468
766
654
435
789
590
703
751
466
654
815
475
578
629
579
685
381
624
638
571
964
629
681
591
593
943
668
622
713
807
509
328
605
633
600
494
511
492
702
512
558
826
643
662
546
517
578
660
494
782
687
608
722
584
664
765
801
685
671
598
496
474
628
868
724
522
557
380
564
922
706
746
715
512
528
606
434
705
709
486
490
409
613
492
781
811
695
595
728
584
338
525
677
664
780
648
776
576
626
695
584
559
492
218
724
1033
765
780
534
621
712
584
726
584
376
593
653
618
937
684
952
678
604
571
526
472
557
886
605
528
529
782
549
414
615
797
399
706
449
675
488
625
743
791
655
614
689
405
731
876
703
551
680
673
357
397
496
500
780
819
769
595
327
619
729
708
749
484
386
604
530
458
665
807
891
695
757
840
533
491
715
559
410
522
708
608
591
798
771
487
326
730
455
665
710
744
760
724
761
827
640
681
507
612
471
792
504
829
799
426
260
751
605
594
586
425
716
607
414
169
558
532
623
827
534
535
478
564
424
682
684
555
549
56
573
658
611
288
575
713
593
715
529
611
633
486
501
517
494
227
694
1009
599
612
569
591
390
552
306
576
622
374
574
667
595
545
758
671
844
483
644
461
508
563
645
743
676
549
907
727
622
688
697
529
421
712
372
620
521
756
789
651
506
493
685
499
529
417
535
483
937
452
575
620
764
604
526
803
844
645
482
532
797
570
371
562
617
703
464
596
679
686
721
800
824
616
658
653
695
582
484
455
0
315
784
504
384
583
774
593
685
575
518
669
499
650
546
587
620
399
800
355
628
784
593
788
838
539
451
362
601
668
567
563
654
766
666
804
527
653
670
621
497
668
603
850
440
700
475
597
676
631
805
663
3
712
1060
572
732
551
670
725
531
383
466
438
628
745
710
577
558
633
558
586
962
623
700
640
578
654
282
724
759
755
772
752
560
661
486
747
646
638
521
709
875
610
480
663
461
672
419
490
490
806
607
670
719
555
601
545
750
589
705
554
570
507
651
763
381
608
691
480
502
424
423
571
806
832
342
525
746
715
658
401
724
566
660
502
675
386
689
725
303
578
626
690
745
364
833
302
551
743
316
625
845
783
585
677
708
708
688
523
510
428
673
398
561
670
720
670
594
683
665
602
828
585
900
591
383
582
420
333
432
515
619
657
551
819
744
694
377
518
559
694
631
273
594
624
556
513
792
428
664
805
762
626
578
572
830
549
762
767
627
610
693
542
604
658
831
432
671
487
724
537
710
586
1000
737
679
688
556
619
482
734
641
367
492
614
654
491
514
541
0
578
680
541
613
642
656
181
523
575
670
530
518
596
625
602
595
736
892
785
697
763
555
392
708
793
673
304
476
523
511
742
714
797
598
664
554
764
738
653
437
359
781
593
554
820
672
519
706
549
822
619
445
542
528
671
615
520
745
661
127
284
502
748
435
671
818
674
673
719
406
563
955
722
561
505
482
445
640
594
809
689
682
281
486
246
434
661
684
498
775
501
743
563
572
564
523
695
729
483
797
595
812
529
687
620
772
604
667
632
626
477
176
486
693
833
430
588
916
712
607
589
614
668
621
349
721
708
621
824
477
487
301
401
826
690
571
899
716
428
883
589
776
878
624
708
592
213
487
632
368
555
215
841
694
496
634
846
855
636
453
737
440
477
665
416
688
622
471
759
634
737
626
597
741
550
399
420
473
616
304
413
720
633
658
850
814
665
536
420
716
744
629
492
531
716
462
868
479
622
479
616
343
587
749
707
863
525
656
744
726
724
796
699
732
528
647
600
578
703
565
489
471
610
206
603
728
615
899
635
78
536
845
786
467
409
618
355
615
688
653
651
606
434
897
484
836
689
633
815
506
665
745
302
687
811
555
484
892
616
715
727
819
303
471
789
619
649
543
578
792
546
630
545
791
582
578
264
755
737
425
834
597
482
558
443
549
594
807
575
907
610
473
509
587
689
484
645
595
527
758
746
255
0
548
619
786
607
643
410
667
609
727
691
675
549
507
553
816
735
832
698
515
643
792
507
735
755
731
404
562
643
595
591
752
642
726
408
592
747
565
575
338
702
793
599
510
658
524
681
409
392
555
824
603
379
609
597
450
519
436
504
145
695
227
115
576
605
477
256
372
772
803
604
618
728
651
404
863
634
387
705
745
814
554
583
773
469
629
441
747
590
537
472
547
683
698
673
619
725
212
507
502
523
757
742
586
517
596
539
629
611
554
749
570
623
521
609
476
552
627
647
691
593
836
467
682
512
491
741
705
648
680
411
702
799
827
484
774
818
582
616
748
606
558
652
508
556
288
675
506
721
496
480
771
674
984
931
620
762
355
553
671
581
576
720
824
553
706
404
834
415
626
569
510
617
683
771
719
757
656
687
516
749
832
757
753
646
682
823
345
762
519
398
588
414
522
645
627
765
639
514
784
951
179
583
723
487
762
441
882
588
949
688
490
726
462
849
583
364
718
239
800
793
730
521
683
653
450
718
351
672
661
628
662
501
736
468
366
741
569
160
109
607
644
725
752
898
287
677
632
988
660
543
602
541
461
471
263
585
640
682
624
343
610
643
385
839
547
639
420
431
709
495
833
479
535
603
540
250
523
344
645
655
753
481
606
672
266
562
514
569
614
686
591
721
857
717
739
638
596
770
570
619
689
554
512
680
639
523
620
560
732
542
548
707
647
632
342
378
325
573
392
677
336
688
592
534
915
781
717
751
585
623
500
533
965
502
398
673
521
660
432
754
499
412
696
564
626
658
773
683
715
634
655
412
662
458
749
788
642
721
620
540
642
680
492
419
679
393
807
646
731
568
863
735
313
634
531
804
608
207
540
631
688
439
642
830
478
521
563
804
531
689
602
590
484
689
911
615
554
607
576
625
436
806
409
477
432
671
686
371
285
425
150
600
605
489
715
451
443
552
774
530
565
623
544
710
684
728
465
621
881
297
574
741
677
627
631
642
713
691
789
733
821
782
734
707
672
613
470
599
157
312
572
783
658
579
556
520
646
762
708
770
595
641
413
785
477
811
522
379
519
507
287
530
788
740
385
607
543
412
609
589
568
728
376
738
586
569
683
749
641
755
687
703
583
670
456
741
684
815
750
557
718
916
803
695
482
481
619
646
486
659
577
596
524
561
565
234
619
0
465
633
693
640
721
22
767
546
557
498
509
508
626
295
323
743
500
623
565
430
714
719
480
748
510
796
703
668
502
592
730
399
660
826
524
556
652
677
573
798
687
526
730
507
708
535
782
719
765
563
421
702
707
641
620
460
580
695
869
568
501
633
606
478
647
592
427
399
742
723
680
631
576
596
566
580
542
380
534
600
751
586
267
809
478
581
800
418
634
187
898
845
504
835
524
496
512
684
464
721
756
521
268
1009
600
618
556
577
672
687
634
823
458
373
416
589
1076
710
775
422
953
657
500
342
945
758
312
692
830
319
761
598
604
583
486
739
718
563
499
559
789
646
281
678
730
781
603
614
721
343
383
635
684
592
688
815
607
723
749
665
512
568
517
647
541
869
884
862
722
420
709
938
576
370
826
724
741
296
303
554
867
511
737
599
598
429
577
789
1033
163
585
176
229
734
550
499
262
695
614
562
624
358
877
742
414
555
722
675
558
699
673
793
611
562
426
608
715
783
547
646
654
663
402
652
451
607
723
563
544
844
575
784
821
588
696
699
602
459
692
654
679
738
604
567
648
608
712
743
654
600
724
347
458
745
820
759
576
662
415
795
298
590
743
484
886
587
578
844
584
662
751
544
548
617
681
749
558
405
133
465
433
649
639
542
780
607
460
646
838
527
500
723
658
421
587
583
570
765
412
697
697
605
618
555
399
456
527
100
700
560
473
782
677
671
752
663
764
413
719
631
766
548
76
832
630
816
568
557
524
772
788
517
480
535
819
766
590
269
689
592
787
482
612
591
808
837
603
304
441
441
657
574
590
522
686
653
642
541
797
530
620
615
735
607
247
810
381
597
276
677
289
526
567
702
649
643
805
641
494
466
677
531
703
571
458
167
460
547
698
692
611
796
684
403
643
668
713
796
510
423
801
450
603
594
579
538
644
535
457
17
689
499
584
720
796
722
727
663
493
518
686
705
544
530
899
488
846
751
300
954
717
671
468
667
699
633
490
913
812
460
766
700
507
594
720
861
578
848
1041
11
443
510
353
732
588
704
473
549
684
586
740
655
386
778
481
571
603
580
764
751
496
750
201
835
872
639
601
723
500
377
733
666
501
741
694
542
470
472
687
416
855
678
625
675
511
648
563
442
941
591
738
682
899
496
518
561
645
358
431
757
720
759
521
600
626
501
702
623
548
363
835
622
559
216
675
944
768
787
532
222
478
229
285
310
738
567
587
662
339
308
662
589
547
586
719
632
588
343
590
679
388
798
636
510
439
608
540
551
548
599
641
338
719
405
798
791
570
582
708
615
541
755
832
667
497
440
592
816
600
578
538
555
589
763
548
404
897
705
501
283
523
423
665
616
664
808
699
312
671
573
790
626
848
764
499
600
682
796
415
582
879
557
663
642
607
620
620
759
317
632
701
462
533
193
729
615
366
730
761
686
601
688
773
828
880
751
439
676
581
636
609
433
626
875
613
47
420
809
558
649
786
644
749
509
910
791
451
530
540
505
689
484
638
594
655
746
722
764
484
725
764
632
625
569
667
642
332
713
661
469
338
478
640
830
671
400
652
745
596
510
504
648
529
677
775
517
677
371
507
358
726
596
523
534
542
472
377
687
738
375
523
702
561
332
649
668
599
376
734
468
693
510
750
661
633
647
688
636
656
639
587
785
961
680
569
536
664
643
647
687
654
718
683
599
436
636
667
771
687
795
729
529
589
748
585
750
576
574
503
306
388
299
411
761
509
656
557
744
609
591
580
624
287
463
672
571
505
604
630
657
664
761
657
778
688
508
585
436
690
544
557
632
467
630
642
745
616
696
429
659
550
708
633
715
680
667
475
722
756
418
539
652
748
655
735
616
674
700
453
657
764
674
32
628
640
802
678
779
380
1070
793
612
303
852
735
477
532
373
500
644
629
808
536
673
710
499
184
389
748
867
383
606
786
504
494
587
505
712
793
605
453
670
526
629
411
705
452
544
785
681
774
700
642
330
463
196
611
573
640
540
797
797
324
595
608
657
372
680
888
606
0
507
781
596
651
595
714
509
818
455
325
619
665
491
669
349
616
628
645
536
557
699
702
520
575
752
855
740
375
723
512
722
675
701
827
493
505
827
577
660
723
425
432
446
686
630
744
792
443
605
254
439
643
826
690
524
607
514
697
539
637
577
668
762
697
548
649
541
493
179
915
729
496
403
737
698
617
703
949
628
399
549
556
707
830
599
613
769
706
588
648
922
366
817
666
758
779
279
494
742
756
471
740
498
577
622
666
415
699
627
672
560
596
603
836
579
472
470
576
819
687
800
582
608
591
424
529
706
947
864
412
331
771
657
677
771
630
653
653
679
586
271
706
616
641
681
635
202
789
839
532
299
611
686
612
640
511
682
481
703
621
432
776
496
357
0
686
587
600
732
642
628
709
257
593
544
176
472
533
569
683
410
603
599
378
572
702
555
570
653
725
806
499
475
730
866
559
729
551
1017
820
585
410
522
612
818
459
619
809
694
880
604
690
262
166
598
669
586
654
605
526
617
706
590
696
552
760
841
331
742
493
659
264
645
476
596
450
706
777
495
817
292
515
629
624
678
718
533
664
724
738
683
561
692
222
747
663
240
488
705
874
1030
592
603
740
425
655
551
649
709
543
822
634
567
673
778
676
613
243
714
670
302
491
714
304
759
630
776
467
577
475
642
501
519
615
715
669
503
496
815
666
623
370
578
424
649
591
853
626
464
751
543
516
735
688
668
701
722
676
434
499
441
679
670
883
725
706
788
732
690
660
780
540
427
614
759
795
709
781
681
478
714
522
488
753
746
611
887
761
697
640
621
704
330
575
650
612
678
659
260
535
731
694
538
167
634
503
698
647
615
730
515
687
590
139
442
662
664
614
583
805
575
756
677
824
525
597
576
496
543
663
370
670
674
572
441
578
636
680
525
725
384
698
430
730
885
762
441
611
710
229
498
747
617
504
625
436
430
430
767
620
362
593
572
488
613
655
952
605
690
779
358
468
540
577
638
692
740
711
192
895
567
757
675
437
709
741
634
483
658
833
804
635
699
638
438
565
666
696
775
566
642
636
217
618
358
428
605
621
421
714
531
338
601
461
474
612
629
810
618
674
675
741
633
722
737
693
707
439
597
727
632
670
594
499
624
753
678
759
655
579
557
379
554
720
724
613
575
605
750
678
493
766
503
586
707
703
424
701
577
830
445
521
291
730
616
701
624
640
536
423
671
664
705
845
720
813
331
751
569
653
604
827
603
870
758
557
499
229
672
383
673
608
439
734
479
590
618
592
764
778
559
580
716
605
701
635
518
540
785
723
651
299
540
538
203
638
512
623
226
426
465
578
574
747
669
829
763
429
799
609
835
333
370
524
658
924
740
486
401
582
743
288
398
418
523
519
616
680
225
798
666
929
659
439
707
693
576
787
590
716
815
210
601
621
557
367
499
709
683
441
684
684
645
631
576
630
673
752
638
773
706
504
691
555
615
658
801
916
715
99
659
654
957
543
501
433
856
589
303
618
592
811
512
720
602
763
441
634
434
521
640
592
540
344
443
808
477
458
714
696
708
511
676
653
426
580
550
343
693
685
561
436
613
782
675
259
597
995
512
487
781
695
748
354
735
600
677
640
627
675
878
640
559
675
639
456
354
748
579
578
528
562
531
736
559
548
488
641
196
664
483
617
572
277
722
374
782
489
927
801
791
614
658
779
447
833
619
725
468
51
676
251
594
606
488
507
667
727
686
625
739
728
860
371
603
359
623
744
471
545
634
459
462
629
798
977
521
666
526
670
480
406
633
372
728
646
531
515
604
343
828
243
696
413
599
537
654
831
450
501
693
423
780
532
546
788
618
731
466
714
988
662
762
671
363
544
909
458
470
854
585
614
448
507
493
732
291
704
642
712
562
548
516
589
725
529
542
553
675
481
490
759
788
468
346
654
639
612
532
649
805
535
443
548
375
790
774
537
783
499
438
484
383
510
710
690
778
777
621
731
657
650
747
661
567
194
901
609
707
576
769
587
548
675
607
890
729
515
660
627
619
551
878
491
571
652
606
510
489
494
705
545
636
299
675
213
694
604
669
420
458
673
780
586
507
626
638
572
480
515
485
664
856
816
518
674
662
499
538
601
779
704
609
683
388
467
586
572
556
690
571
469
722
586
604
570
538
598
615
818
517
588
56
807
721
475
642
578
551
631
514
612
647
519
418
429
638
657
761
571
570
525
532
294
596
560
598
441
483
420
487
588
612
554
779
313
775
715
799
759
580
349
796
739
750
391
598
758
552
442
523
561
737
526
438
768
637
585
483
616
616
598
700
736
797
823
356
669
695
740
555
632
715
715
501
506
344
1023
551
643
618
757
440
531
699
392
436
719
557
522
598
446
812
414
575
629
535
672
557
373
833
546
533
626
240
603
765
589
561
373
591
727
450
716
280
567
684
804
728
644
640
769
447
709
919
119
425
332
556
597
612
542
677
520
596
626
673
710
935
679
695
381
516
493
581
685
588
697
420
335
651
865
408
682
614
565
834
817
603
724
579
602
611
463
658
536
495
647
640
471
631
591
849
513
547
641
303
450
576
610
678
758
804
608
647
716
453
636
642
615
446
789
667
686
648
767
605
836
722
432
343
883
734
830
398
591
646
637
519
869
852
699
691
757
656
636
604
807
792
408
693
595
669
537
487
733
655
723
670
744
531
799
598
533
541
624
319
561
730
420
503
757
765
609
606
571
644
512
699
502
496
722
638
700
613
476
466
380
817
483
377
761
524
766
488
439
436
925
505
543
527
360
670
534
790
477
694
530
725
638
476
277
738
557
785
513
608
482
709
919
663
416
629
803
759
790
838
549
606
664
762
473
288
703
673
573
666
775
709
471
627
663
403
717
622
673
399
776
714
665
614
739
685
638
646
731
458
580
482
442
664
750
557
710
682
759
511
605
769
635
615
308
588
673
123
358
679
401
611
280
707
529
536
729
372
560
519
844
564
621
593
395
499
512
284
778
505
713
568
876
844
556
554
451
931
276
538
423
25
694
464
755
550
593
470
222
503
559
526
621
772
219
649
457
598
722
478
651
470
295
741
806
494
514
806
704
145
587
487
437
623
335
823
838
777
717
387
924
654
598
520
561
536
686
632
665
628
445
499
519
685
446
592
547
581
775
537
541
301
799
590
834
656
627
396
612
415
611
538
512
156
680
943
575
422
735
575
344
711
445
589
530
613
512
130
726
649
599
829
542
376
574
732
578
355
549
543
655
624
682
723
583
667
885
670
633
510
351
759
349
633
699
497
598
573
457
531
589
771
622
658
359
603
650
715
693
352
558
650
496
591
658
614
502
419
918
874
700
775
577
267
607
665
312
605
648
536
688
541
648
684
714
613
810
739
745
439
520
727
591
585
431
742
659
406
345
433
530
775
880
756
834
654
796
631
564
535
645
893
607
235
610
798
663
406
429
629
516
516
546
652
696
726
651
725
695
622
765
675
471
540
683
663
355
778
424
577
497
573
560
529
826
621
656
355
447
645
466
826
610
686
619
586
792
618
531
404
392
824
732
688
585
634
525
370
669
748
573
760
864
661
641
644
516
664
538
577
781
564
649
629
719
454
536
639
727
485
652
517
637
592
684
445
502
612
728
644
524
472
723
707
788
149
450
745
795
464
309
675
789
576
534
776
665
664
757
333
834
733
534
462
431
390
762
826
822
660
534
766
553
393
352
657
426
448
615
860
902
664
762
655
583
689
581
584
674
347
754
560
765
745
714
668
232
778
456
684
556
546
671
573
842
372
663
564
683
396
889
677
567
550
799
474
976
499
843
563
505
444
655
412
962
493
866
453
718
542
607
796
258
579
683
560
595
464
807
481
454
554
751
776
477
810
466
770
565
464
604
754
435
454
698
500
689
560
703
528
665
468
470
657
629
557
447
585
676
606
604
643
332
609
502
661
666
560
462
947
521
570
841
627
696
670
716
544
645
853
682
555
699
506
499
748
512
775
670
500
233
443
567
415
765
643
657
613
257
739
859
585
699
662
797
788
711
585
685
417
821
781
499
317
455
807
781
643
417
550
478
492
615
617
817
173
544
663
600
750
572
679
320
650
432
585
321
507
797
628
687
686
468
659
738
549
641
600
603
571
792
437
392
814
748
663
531
677
684
26
780
299
690
555
67
769
646
625
793
245
685
685
864
603
605
549
824
524
338
813
659
617
635
710
810
517
729
755
698
531
299
552
721
785
485
726
568
665
606
697
521
620
528
752
457
678
729
803
526
534
508
426
527
477
645
516
684
786
793
416
315
595
483
505
683
521
618
592
367
576
494
560
765
896
445
639
828
717
678
762
493
717
487
251
638
746
521
541
615
534
686
676
481
683
624
810
510
650
652
438
0
466
715
425
489
847
550
360
544
736
470
669
786
715
612
446
524
347
544
677
497
708
586
636
292
681
691
276
606
493
693
664
556
438
618
583
619
561
675
372
589
201
531
803
694
662
373
493
918
829
487
514
604
736
552
432
706
660
374
532
585
653
728
739
519
815
652
756
680
798
936
673
272
449
406
697
724
394
450
633
703
608
853
651
703
686
577
526
722
626
638
752
866
626
830
814
441
723
608
500
755
433
673
395
565
456
616
496
569
673
232
543
588
573
469
515
507
489
635
868
244
786
632
588
499
590
651
309
684
652
461
773
571
434
600
727
651
749
610
510
408
565
838
639
1273
729
771
610
484
679
882
722
350
757
537
480
894
684
479
267
766
350
574
560
557
541
630
645
448
793
489
719
540
344
677
564
435
754
960
428
590
876
500
490
590
589
774
486
638
608
266
616
22
380
575
788
802
644
542
735
749
836
739
712
817
464
833
550
498
574
782
752
604
683
586
639
480
633
688
691
235
385
175
688
451
537
459
339
669
556
607
535
741
442
855
834
661
495
892
597
880
803
711
641
765
640
690
426
698
530
346
613
639
699
769
495
591
774
661
716
548
637
562
448
647
480
577
453
576
485
454
803
520
459
768
891
871
614
651
501
577
340
526
819
500
578
772
464
599
786
592
538
660
697
596
698
660
418
605
940
523
687
742
132
582
679
762
637
495
779
571
667
312
1013
616
691
609
747
676
558
543
563
768
681
703
680
730
736
809
693
462
406
608
501
471
621
470
451
516
591
606
380
671
482
458
716
641
775
614
826
532
733
782
734
562
814
734
432
432
610
564
624
521
329
708
610
368
555
619
641
451
579
632
587
793
760
677
620
642
398
726
539
671
877
894
667
494
213
575
689
614
633
674
451
611
484
787
778
552
540
691
575
724
551
766
587
519
609
593
483
623
785
277
684
637
570
651
459
646
566
604
692
636
475
711
395
265
643
614
308
749
558
640
704
683
792
793
710
388
512
797
859
546
727
406
828
752
829
755
672
609
808
826
634
443
366
620
627
441
275
662
541
765
548
867
758
570
682
763
544
444
751
279
507
661
535
525
635
554
575
613
349
718
715
805
617
509
736
510
590
514
678
569
648
444
848
645
835
449
769
537
742
743
639
603
681
612
459
547
562
873
683
408
558
602
283
848
613
511
591
888
434
658
939
564
643
593
807
733
629
747
820
677
530
674
711
713
694
601
581
386
843
498
482
776
646
895
562
716
638
611
859
477
521
514
751
373
597
428
642
687
886
595
524
471
571
638
446
637
433
638
223
670
603
629
166
355
581
494
777
521
637
588
551
821
677
748
316
660
529
759
591
619
566
625
730
671
669
728
648
539
662
581
631
604
536
464
711
433
799
524
544
527
755
728
875
347
741
721
626
738
578
675
591
790
514
596
705
645
755
525
468
834
473
307
773
639
718
708
633
573
381
637
719
728
513
507
628
577
605
590
626
405
785
756
670
706
713
312
628
517
620
386
526
579
368
731
433
714
709
526
356
640
734
811
215
452
478
625
745
845
749
639
508
579
453
782
687
741
610
737
680
463
459
542
635
706
724
812
327
770
665
526
609
707
719
680
618
649
695
1003
765
687
868
523
674
395
698
194
760
632
624
912
930
335
559
531
309
556
654
566
613
648
595
685
544
593
657
720
671
835
646
529
566
574
913
71
621
590
621
647
604
625
561
513
437
517
671
426
620
520
626
409
522
485
623
546
723
869
583
420
619
579
450
549
723
669
181
847
564
647
566
693
610
451
484
671
580
618
649
390
841
709
573
543
317
762
779
662
608
639
376
648
729
572
604
612
489
671
593
550
684
624
416
602
377
627
618
561
644
237
1064
658
666
963
672
723
152
726
553
506
487
663
837
630
553
537
692
692
717
727
681
537
556
439
508
757
552
752
425
370
590
879
682
439
684
473
538
909
652
500
105
727
404
497
522
599
569
874
815
573
795
481
660
487
681
732
749
323
766
888
518
774
439
624
872
737
478
437
678
529
750
719
757
723
524
668
484
541
675
719
561
728
513
638
719
819
689
634
377
479
744
730
542
669
584
724
676
637
512
747
587
763
379
529
674
67
644
820
804
596
627
632
345
458
835
626
566
710
825
577
723
605
554
583
489
555
580
545
777
274
442
523
522
746
446
899
291
541
478
628
554
468
626
698
794
740
759
523
532
602
633
538
512
690
721
358
707
629
530
431
518
698
400
711
422
523
366
779
708
518
261
514
722
409
511
619
591
667
756
636
958
710
178
744
179
860
540
508
539
416
501
483
592
602
745
663
693
683
672
503
651
648
398
600
928
422
758
550
647
704
846
566
558
659
628
740
816
579
839
628
208
731
823
640
480
798
663
511
564
671
347
658
383
600
699
567
786
401
626
655
513
676
600
555
644
752
297
526
530
577
521
890
594
682
585
772
713
643
300
370
685
741
321
731
649
636
664
410
593
615
730
630
616
325
750
558
520
631
728
480
644
495
536
360
500
457
667
642
495
709
558
599
668
587
790
438
530
667
686
529
470
535
625
680
580
564
833
700
694
568
531
601
567
621
595
631
708
510
517
511
657
673
757
644
575
621
880
319
395
696
477
668
868
623
720
555
632
596
751
371
729
834
709
644
722
477
581
604
570
752
321
745
545
743
521
781
704
533
605
844
358
604
716
595
731
521
672
876
673
798
463
696
535
597
596
609
513
519
359
566
658
702
632
613
725
654
539
922
561
459
595
346
490
894
705
759
659
549
632
619
460
585
785
203
821
712
461
715
545
677
775
799
721
818
493
595
406
521
1112
486
469
490
658
522
752
482
653
670
678
719
531
711
703
525
742
693
736
731
470
497
473
803
680
464
786
698
369
606
774
526
713
382
765
687
484
507
749
663
792
625
556
516
722
821
626
630
571
824
700
554
773
907
612
524
563
540
376
603
582
756
885
675
608
569
797
754
703
619
637
799
443
484
615
773
707
286
808
602
490
571
559
980
522
820
754
617
460
721
746
394
709
664
568
323
633
939
577
697
737
734
643
626
473
1013
308
563
770
677
812
850
455
678
734
757
528
689
522
615
625
543
524
561
677
610
451
368
484
813
804
647
655
493
737
275
546
524
698
438
677
383
484
871
643
741
687
499
428
729
795
675
588
591
1046
664
659
522
304
495
451
689
1096
610
847
634
734
496
631
608
515
387
737
617
474
426
688
659
651
712
553
773
223
385
675
689
639
772
430
581
594
575
682
801
493
670
424
550
631
619
694
656
729
461
429
529
500
666
867
770
917
497
581
773
369
758
580
592
340
633
860
630
684
641
690
554
363
577
514
628
543
617
413
411
553
591
659
430
550
484
845
525
825
812
698
776
822
788
518
498
954
701
654
1008
620
514
533
21
459
540
606
837
596
459
336
363
694
578
696
691
567
558
764
780
563
483
978
573
703
585
527
550
649
504
674
276
459
168
606
421
609
601
727
543
525
740
546
526
600
461
246
543
540
644
711
284
541
474
647
718
784
347
543
630
660
746
638
596
314
440
694
717
628
953
484
832
706
656
635
546
766
596
526
685
519
753
824
887
676
512
710
800
723
599
600
611
469
540
364
609
482
783
631
525
647
350
857
711
507
439
691
765
439
624
647
639
495
603
624
839
453
454
506
782
397
699
794
573
374
662
477
681
729
585
638
716
541
551
849
660
609
733
504
642
664
682
497
681
402
458
666
592
706
662
457
460
653
853
402
582
770
703
456
546
491
382
586
485
743
707
728
720
719
750
664
667
721
596
578
593
685
530
782
444
355
581
667
522
642
446
573
505
495
507
515
380
790
451
663
652
414
468
558
701
376
611
631
668
553
659
546
459
468
498
396
497
608
514
609
686
336
833
670
917
650
537
450
661
721
748
634
499
528
234
586
730
439
778
710
416
687
607
749
622
520
644
682
503
357
408
667
391
577
688
611
573
500
452
833
663
878
763
701
734
325
384
573
741
339
383
532
538
558
757
749
574
212
409
403
355
654
526
679
601
618
584
756
604
708
549
724
587
691
603
561
721
770
651
693
560
601
591
709
561
318
511
443
576
604
570
633
514
554
401
555
649
726
684
324
721
645
535
613
635
659
719
348
541
822
538
848
812
825
738
703
507
598
550
789
567
739
667
577
431
808
759
689
668
539
595
698
607
681
601
655
467
779
790
801
647
403
526
526
670
668
721
659
770
561
552
536
360
618
604
571
714
812
1063
355
854
765
754
591
478
430
230
537
849
873
415
774
728
453
563
740
603
440
770
433
392
241
962
681
795
619
754
844
680
683
668
555
618
682
493
695
392
215
525
400
504
643
655
659
596
567
588
627
622
443
645
562
615
786
270
534
707
524
482
513
638
556
655
815
515
896
590
433
589
568
355
574
391
682
481
631
526
703
819
810
547
770
471
96
764
655
229
797
566
641
620
573
725
539
418
688
639
653
580
563
851
599
412
365
553
531
631
782
580
637
1025
544
604
952
597
527
339
576
717
310
696
428
380
842
742
634
684
577
495
198
470
631
808
148
795
612
532
512
469
577
726
776
699
502
518
543
528
609
732
724
560
482
759
431
548
283
741
503
677
686
702
577
874
768
638
622
641
606
839
641
780
663
651
686
628
835
707
928
256
532
736
502
439
757
748
423
561
638
705
581
475
542
516
745
786
675
605
149
699
728
738
613
780
473
729
409
742
650
701
522
220
867
676
501
675
539
643
662
601
688
681
424
833
535
706
846
748
458
799
625
720
633
874
623
617
694
478
736
684
408
683
597
558
767
688
707
512
816
766
560
76
382
679
624
657
525
491
573
531
602
811
435
748
609
570
766
586
635
526
722
645
814
730
464
599
925
774
674
736
741
388
640
632
488
744
514
702
623
693
428
644
527
858
513
621
775
423
519
269
416
362
561
293
536
469
595
885
657
781
638
801
785
630
712
723
707
837
568
615
630
594
467
729
498
512
615
0
541
746
732
695
597
410
606
559
625
662
563
607
672
647
686
499
278
655
772
814
820
658
751
642
516
567
619
523
718
618
647
743
723
467
601
525
629
601
504
799
626
764
698
667
28
527
468
352
588
510
633
585
770
646
652
474
581
755
699
646
624
316
608
718
681
548
278
728
345
589
278
574
667
567
734
620
521
532
503
596
648
579
782
488
211
833
730
395
527
668
774
716
540
614
660
668
825
650
466
651
554
233
563
427
717
460
839
607
622
401
664
473
630
539
503
712
868
322
621
709
233
630
478
521
540
675
591
482
513
502
464
605
598
613
495
733
680
447
670
807
641
328
577
492
668
526
514
492
762
496
434
477
424
475
606
514
597
684
655
748
736
766
861
199
673
819
364
570
636
631
477
688
607
713
598
648
699
544
735
696
738
609
507
767
608
199
604
613
645
649
449
737
638
726
1037
761
623
458
764
535
738
756
620
414
549
592
743
897
850
659
661
611
691
619
484
457
801
439
657
523
700
747
571
563
509
412
887
537
577
720
952
472
767
575
689
589
772
769
558
748
681
767
541
523
457
655
693
532
715
503
750
681
787
356
551
513
76
80
181
617
501
685
697
705
729
756
380
707
339
656
467
626
551
587
403
799
595
821
673
827
441
599
573
653
750
627
776
913
805
707
509
449
587
897
352
629
736
664
654
563
698
757
619
498
523
494
899
473
683
751
628
800
671
748
739
589
495
749
866
479
701
430
767
770
852
449
689
584
733
643
368
623
668
588
612
798
658
534
642
432
120
695
670
454
609
765
647
413
679
629
796
707
464
648
671
704
587
475
589
492
447
465
497
286
664
668
544
577
633
525
951
604
727
481
767
868
830
812
462
525
727
657
568
362
606
530
396
564
645
652
663
748
466
732
521
511
435
632
740
466
700
475
735
586
739
712
396
662
612
567
912
457
497
717
623
380
504
647
383
418
479
569
666
598
677
615
639
460
179
752
217
806
692
466
744
601
628
773
736
657
21
372
778
278
546
246
402
508
491
509
288
614
612
716
518
551
381
681
805
644
476
806
595
603
785
908
516
577
620
643
513
574
514
484
664
751
767
643
259
507
619
655
546
493
656
715
591
816
380
684
748
535
765
774
570
523
453
402
618
881
770
386
290
620
663
628
483
729
370
795
447
845
860
749
777
653
55
632
724
467
547
510
412
866
786
531
668
839
372
623
571
680
881
365
607
615
738
644
780
805
714
793
537
68
602
512
606
537
845
754
800
779
644
565
610
604
425
585
660
898
690
838
480
456
322
454
750
626
574
573
569
679
688
579
662
743
599
677
546
467
696
658
470
425
698
675
686
752
611
514
589
573
345
582
450
625
575
641
729
942
506
588
640
623
603
229
562
320
616
602
609
550
874
688
605
834
682
489
730
215
684
611
774
758
557
676
631
590
757
712
413
845
698
616
558
762
419
549
704
659
598
739
272
234
478
583
574
738
525
344
512
659
731
691
185
416
837
647
585
596
829
219
725
715
272
673
678
622
468
581
544
870
869
652
185
610
547
223
301
477
738
678
292
722
570
765
551
711
503
551
668
676
613
733
536
691
591
523
724
486
483
508
491
699
682
559
527
876
793
405
576
648
653
509
760
726
608
535
630
294
452
633
454
726
621
636
703
487
779
444
632
610
723
578
524
681
229
629
818
628
612
521
697
521
681
675
875
441
633
709
628
554
710
368
766
598
536
381
722
608
674
788
721
587
217
496
786
523
829
749
535
292
357
692
642
671
536
466
310
558
572
307
679
584
681
744
425
436
631
704
562
750
839
668
439
623
635
643
638
425
600
540
810
589
600
425
604
723
816
588
445
624
422
486
317
757
598
454
584
689
596
886
518
570
755
310
633
606
522
957
741
813
568
739
589
553
877
702
791
639
683
561
547
665
630
663
481
640
492
660
611
645
434
765
373
652
539
864
650
915
664
555
822
612
383
652
449
294
755
630
786
332
744
769
690
624
447
456
688
313
675
822
654
691
632
727
460
721
561
388
667
817
958
310
806
645
720
645
893
471
291
601
569
581
578
711
697
538
677
589
611
604
608
528
579
492
707
395
558
549
308
620
760
755
439
598
634
571
707
413
625
639
475
474
618
683
742
618
730
655
663
686
484
546
59
683
924
538
683
589
760
653
777
743
762
749
443
638
699
719
322
737
771
872
597
752
529
530
541
904
571
740
939
590
426
418
638
734
396
820
474
598
626
563
350
345
879
566
912
554
658
690
601
671
452
697
805
642
645
271
491
744
437
548
379
681
644
416
692
571
740
698
469
301
639
629
133
541
632
592
678
650
685
655
550
744
607
916
550
732
601
444
580
759
703
664
622
792
628
836
675
251
670
765
593
706
725
563
581
651
655
831
276
519
640
565
698
872
674
331
663
576
480
673
665
542
586
442
312
320
700
390
513
700
625
594
572
611
602
559
721
641
676
784
430
523
564
465
723
475
624
473
743
732
526
600
307
635
862
465
793
598
435
651
595
573
693
646
665
524
541
567
225
569
563
59
610
755
297
698
685
820
388
549
663
510
618
399
631
817
509
624
814
709
414
546
481
493
851
691
390
239
491
430
575
338
652
561
518
839
775
667
530
664
498
698
489
637
615
660
581
739
585
203
486
641
690
598
745
509
715
564
467
706
710
904
423
575
303
593
547
485
672
577
718
680
571
741
460
632
737
801
711
893
345
578
654
567
470
558
787
557
544
720
282
641
621
675
876
630
696
479
502
631
726
589
536
698
350
541
816
915
632
764
495
614
816
461
770
603
782
746
691
578
593
547
649
534
514
566
658
561
862
802
618
580
677
632
707
627
638
626
670
525
498
610
489
643
873
740
609
708
610
544
612
489
321
536
618
735
575
680
455
436
591
615
686
598
726
720
453
470
406
714
531
570
578
606
657
592
450
727
694
456
599
633
694
684
821
496
561
769
770
641
811
465
525
379
543
659
496
573
631
700
412
674
888
578
738
678
685
670
840
437
779
604
548
675
605
540
571
668
663
764
608
647
220
658
482
705
682
982
523
414
682
546
679
530
719
660
517
699
540
681
492
787
653
44
371
668
597
663
767
868
614
683
671
458
603
622
212
616
899
670
697
611
478
576
528
680
622
561
566
407
607
696
670
474
584
151
549
444
599
527
783
658
439
635
736
604
206
532
408
447
448
539
682
484
181
611
645
559
576
632
731
572
654
611
650
430
800
737
707
650
703
782
392
945
721
529
658
585
479
555
541
573
580
681
670
712
656
642
456
617
491
605
652
484
275
721
606
625
658
823
763
473
496
599
620
385
493
624
443
627
588
685
513
508
762
597
665
756
249
664
372
399
680
457
600
812
577
555
642
658
583
542
662
551
622
466
757
604
425
609
590
355
689
730
472
581
649
649
576
629
610
684
633
853
665
845
402
426
649
564
485
439
680
570
716
504
469
729
232
654
552
746
549
551
658
655
690
637
716
619
730
714
761
794
648
734
813
484
905
758
903
565
745
573
709
626
722
430
170
847
455
349
572
461
694
658
562
711
526
591
479
390
404
635
755
454
158
593
721
607
619
535
683
468
676
714
464
600
686
317
381
442
366
695
403
655
356
684
770
605
765
242
809
595
408
681
701
719
654
368
744
712
587
535
695
927
490
217
585
562
557
711
716
575
757
729
470
618
671
590
731
658
630
512
600
649
875
907
360
731
318
688
724
743
754
722
394
642
638
671
729
202
743
591
709
660
735
782
750
598
648
681
774
733
666
610
627
322
794
532
887
599
528
612
462
771
763
594
787
585
767
555
481
418
535
654
546
332
796
550
794
628
600
724
650
813
794
229
744
672
551
443
594
654
652
503
530
619
962
627
533
206
588
424
723
488
680
737
674
708
558
650
741
302
886
335
594
663
493
573
381
814
751
452
610
552
857
723
377
690
613
444
660
786
597
672
742
513
600
550
419
654
480
493
807
735
454
673
831
491
416
569
770
687
779
654
498
837
703
690
331
320
478
549
489
616
11
813
518
537
567
558
742
679
569
660
709
625
680
547
820
531
509
531
553
432
497
219
668
542
454
487
697
305
597
690
560
557
662
536
900
656
419
843
581
816
767
648
347
518
364
559
791
499
637
703
380
394
563
749
660
439
646
630
524
608
550
502
494
603
775
738
890
734
599
632
751
581
549
757
641
317
713
583
408
483
749
658
492
448
335
606
635
738
717
645
456
827
713
654
604
631
722
475
390
592
591
649
597
700
673
616
515
675
572
714
651
646
475
608
538
745
769
505
571
572
645
517
658
550
608
515
587
581
702
574
819
471
1001
455
568
839
601
188
613
631
378
684
594
708
573
637
625
519
588
668
900
574
477
430
709
765
285
763
843
636
635
507
711
669
561
399
871
735
841
592
543
510
453
734
561
567
728
392
645
784
625
446
419
790
607
626
790
748
422
794
520
466
536
686
364
393
712
415
513
351
458
709
483
690
715
596
631
662
740
715
848
388
427
347
476
555
861
642
627
661
355
500
621
762
514
678
755
629
651
414
871
613
505
366
640
442
21
690
573
811
453
525
546
779
742
684
652
448
673
513
439
548
695
724
579
301
574
699
779
360
755
712
330
493
862
586
410
752
458
706
556
708
668
722
611
271
465
738
691
301
710
548
768
636
694
624
654
577
786
497
882
434
537
557
671
716
600
665
463
294
376
611
718
686
680
662
527
412
669
506
872
411
570
703
470
513
690
381
589
798
505
534
738
740
954
799
317
534
395
652
576
730
686
597
604
379
597
569
585
512
568
291
744
540
717
558
534
709
760
580
576
495
719
574
537
793
269
447
711
668
734
384
517
563
424
623
464
680
562
616
831
501
679
805
632
567
460
706
614
683
664
652
604
683
663
276
670
792
453
791
283
735
637
706
260
443
740
643
935
705
770
693
644
421
607
813
549
853
751
408
530
416
206
621
668
572
750
710
579
536
374
543
385
545
571
677
882
650
686
458
611
780
564
930
631
778
803
683
630
74
506
702
432
668
820
776
783
623
617
912
756
314
639
678
501
379
439
262
529
608
818
863
418
669
766
716
577
639
923
663
498
528
480
624
491
415
759
681
511
805
287
600
730
595
788
357
660
674
561
728
521
360
677
496
764
637
831
718
675
458
620
723
657
694
529
581
693
573
818
714
624
472
639
714
537
542
541
654
633
542
586
312
667
436
896
474
483
705
829
623
554
622
692
554
653
474
769
378
546
512
622
503
401
585
617
535
393
628
551
683
581
496
678
613
876
635
350
519
497
254
578
681
573
681
529
33
4
581
398
697
695
581
701
348
847
753
661
645
814
606
598
469
583
772
446
453
577
712
580
590
754
502
621
669
371
696
352
536
613
853
705
686
635
729
503
575
750
829
556
566
622
546
793
613
444
488
794
1034
342
719
660
82
497
678
412
632
276
490
510
753
527
668
483
709
474
580
351
776
793
710
372
575
752
670
670
288
583
666
623
697
318
769
486
652
743
605
570
531
469
536
808
449
672
706
570
804
210
705
690
316
670
739
390
666
331
494
611
662
649
592
203
881
918
442
922
449
490
785
862
552
484
370
639
710
583
727
507
547
737
620
624
639
470
443
603
571
802
579
570
587
514
588
649
538
250
675
488
745
724
578
806
440
634
561
399
671
666
494
0
682
592
778
528
512
589
607
724
663
755
741
603
407
375
834
641
429
836
479
492
672
843
558
725
478
572
762
749
808
698
610
609
479
532
627
722
486
620
7
565
302
706
381
672
567
550
807
804
489
590
833
607
754
614
598
636
719
472
435
736
574
523
519
621
653
813
756
598
420
582
0
575
530
528
681
429
408
643
587
758
690
567
623
599
766
726
526
460
642
497
634
822
718
544
836
660
374
467
897
201
649
647
608
405
696
586
649
526
550
656
737
530
353
292
836
699
615
679
821
540
602
654
695
730
572
622
338
606
631
658
673
700
636
775
538
427
663
789
600
790
536
538
572
737
861
595
669
636
578
565
538
573
662
614
620
606
660
442
631
622
401
733
663
759
650
586
602
340
615
622
399
550
908
506
624
615
529
788
542
623
734
663
635
680
674
707
816
721
446
32
769
571
705
538
688
589
558
583
648
534
409
462
681
478
546
544
601
607
578
632
622
415
932
768
636
646
523
772
662
615
562
684
550
503
202
600
1080
588
862
840
632
683
804
743
606
781
664
714
414
677
494
749
644
771
656
565
668
738
687
635
501
730
558
488
799
461
654
825
774
308
530
827
664
484
434
461
507
655
109
677
462
580
650
575
503
546
606
571
742
500
614
746
558
531
593
695
455
801
268
634
661
583
563
623
486
609
687
337
360
610
614
709
760
603
621
479
618
824
655
446
593
182
627
598
504
564
677
655
693
182
276
679
430
627
406
631
988
477
595
633
444
823
635
658
570
850
699
586
541
574
714
838
643
700
513
671
731
577
595
858
635
678
443
635
501
589
765
623
662
583
777
628
721
680
781
649
421
716
766
611
451
451
708
255
713
463
458
445
619
675
830
666
473
937
546
609
0
312
544
720
798
572
722
564
569
558
409
715
819
507
667
584
575
839
579
672
346
636
351
488
768
459
623
677
663
659
461
673
711
192
723
627
271
246
536
625
439
616
475
688
575
650
805
644
718
536
349
627
653
674
709
517
548
803
765
715
609
469
523
309
793
671
661
652
819
660
698
437
535
619
661
657
739
659
868
586
773
664
464
630
695
18
708
292
738
559
655
588
628
639
671
943
851
472
743
643
499
607
441
555
632
624
626
484
943
687
523
712
549
518
542
659
572
584
558
725
770
682
476
590
735
481
606
449
567
773
629
429
670
784
654
703
660
594
607
695
557
667
634
776
745
674
499
684
690
569
739
797
754
556
172
543
663
690
499
329
686
414
455
399
601
678
645
906
791
678
740
933
444
634
753
624
561
699
401
589
622
711
408
652
562
433
869
591
683
816
740
508
572
414
666
614
389
422
481
76
297
387
665
632
479
837
589
768
556
596
575
715
446
641
516
633
604
625
549
566
505
556
581
602
504
672
505
415
667
730
505
670
519
619
459
653
516
744
506
667
457
515
382
712
862
484
951
625
723
522
716
738
753
661
791
564
637
519
513
554
543
805
709
508
699
842
652
574
745
767
580
615
667
562
812
487
719
440
640
422
636
511
525
612
702
450
290
619
461
479
403
553
837
579
641
581
657
288
633
717
631
662
542
821
437
647
11
817
440
381
630
641
758
710
457
630
1168
681
588
478
723
673
515
540
780
657
592
677
445
449
677
680
447
462
380
813
724
591
833
913
679
293
384
448
493
592
595
502
436
778
843
546
813
404
506
573
783
597
545
728
344
686
669
539
679
671
491
654
532
706
650
337
575
768
698
552
543
649
592
735
445
433
637
469
461
709
758
521
736
812
654
717
575
873
640
535
721
701
395
533
565
728
745
588
551
835
531
698
198
560
434
686
757
546
331
638
834
550
448
732
669
677
722
680
681
554
772
614
887
685
542
496
866
616
668
435
572
702
563
596
643
635
343
443
638
495
317
635
756
585
461
584
905
659
809
624
708
714
643
528
786
657
213
711
873
306
429
439
283
447
684
456
863
274
421
734
607
166
919
607
620
780
470
566
695
513
622
479
438
641
686
721
740
569
814
607
465
660
750
696
181
600
584
806
646
589
524
600
623
649
557
757
844
720
616
285
595
757
725
647
593
631
271
536
605
482
504
618
834
687
489
770
504
685
354
675
666
707
470
662
516
701
666
651
612
747
412
838
518
407
556
252
775
583
739
904
701
817
591
299
773
611
700
689
391
626
957
568
365
754
976
686
738
549
804
639
398
425
609
514
338
498
635
321
743
432
574
614
1010
369
757
728
635
617
440
511
1234
321
559
641
559
530
631
720
229
547
721
527
508
388
609
768
619
666
708
634
830
587
365
692
576
571
766
622
515
558
686
182
481
457
784
430
467
640
580
489
537
714
574
817
597
617
290
594
531
599
476
324
593
836
725
542
873
643
693
853
385
610
688
631
629
755
683
657
613
843
475
545
395
604
482
520
451
732
608
521
669
835
728
707
687
551
840
757
558
703
541
687
656
660
563
685
636
91
311
552
880
771
405
383
553
568
808
671
214
574
859
630
827
440
499
645
670
770
413
536
462
562
540
307
822
711
722
417
240
591
252
683
397
482
563
730
715
503
555
386
671
581
655
695
740
580
633
600
753
710
495
727
538
553
503
443
467
721
574
615
651
420
565
481
1004
593
306
827
723
560
354
701
702
563
260
631
858
834
637
608
658
369
274
733
527
576
519
436
642
508
641
522
1037
786
601
847
793
592
616
755
484
477
583
550
616
494
735
709
512
787
243
492
614
710
745
512
413
287
569
696
843
841
608
683
569
423
592
645
654
766
52
680
742
565
899
674
735
499
453
438
751
405
654
546
603
768
425
248
831
607
655
424
505
350
602
612
326
401
555
496
673
296
518
638
622
538
553
840
500
785
640
711
596
723
593
631
480
528
537
632
557
568
609
649
538
481
652
612
680
724
796
647
652
544
734
657
544
603
625
504
639
665
560
770
597
724
734
312
814
695
731
562
727
609
507
575
415
738
575
787
548
618
675
443
675
345
664
480
408
619
458
579
663
698
519
327
632
892
558
648
423
393
644
341
748
739
554
380
728
477
524
610
570
300
704
745
833
665
686
881
675
387
601
758
699
713
715
580
507
733
745
700
640
568
581
552
741
329
715
706
516
583
604
536
620
712
526
841
457
672
816
603
905
453
512
801
626
549
794
873
477
650
665
654
556
998
810
829
513
758
746
740
542
502
685
821
187
658
825
740
509
683
833
528
232
608
707
591
566
652
807
624
590
463
327
824
581
517
689
613
740
574
464
747
504
457
557
586
336
323
557
381
0
556
687
571
800
635
292
566
510
631
606
768
701
794
771
731
439
449
802
634
719
797
716
703
0
485
417
676
705
665
611
242
792
705
238
280
477
679
662
522
1010
717
616
505
652
700
428
623
740
338
363
507
493
442
585
825
244
602
251
425
354
815
578
322
619
814
769
591
517
584
700
978
423
608
504
885
569
706
866
525
856
735
607
584
460
598
495
676
486
618
686
703
598
748
526
382
553
425
679
848
343
485
554
792
654
372
769
478
578
655
773
687
618
859
640
507
648
401
671
619
732
729
665
679
719
687
598
539
324
482
503
665
391
583
625
581
457
787
654
664
756
728
573
561
747
518
660
658
655
588
903
573
611
784
665
853
628
652
610
530
528
528
650
684
561
657
600
662
734
617
746
532
651
438
613
616
769
687
621
644
545
789
594
548
463
540
587
676
599
894
327
510
825
478
827
718
690
766
691
784
701
468
494
181
601
655
857
574
256
608
398
736
742
404
864
618
570
549
554
658
468
522
742
561
595
637
327
196
535
558
550
677
581
771
400
651
585
619
371
719
620
723
398
539
460
674
450
606
572
611
699
564
686
572
468
582
653
729
649
641
519
642
662
683
506
586
645
777
825
594
227
181
769
390
767
467
405
651
430
656
145
619
625
559
746
328
624
842
615
578
653
925
582
782
651
723
399
843
593
500
568
589
595
660
497
651
863
709
713
701
717
759
693
721
539
810
612
524
507
538
866
450
516
768
427
479
707
479
671
616
666
511
719
556
501
646
716
792
344
670
510
806
933
604
674
774
514
808
807
693
439
723
254
590
509
630
1202
206
651
764
342
560
384
622
721
630
409
622
627
484
664
556
672
841
509
566
576
785
607
618
496
594
307
470
707
718
387
560
527
367
744
646
504
908
525
709
402
628
598
535
797
757
628
523
603
510
630
314
679
520
484
721
649
585
669
357
641
590
756
624
696
903
674
544
783
594
679
567
888
852
712
728
429
436
591
555
595
458
423
350
719
585
623
653
576
476
678
757
543
660
535
372
576
549
509
518
814
789
587
599
472
559
631
445
787
617
555
382
610
714
515
694
334
954
546
495
735
483
731
528
572
742
531
813
565
225
693
562
551
531
706
544
568
676
161
611
494
573
500
369
814
724
527
650
522
549
570
580
373
550
301
695
642
774
570
633
689
563
183
616
580
21
429
356
641
636
865
567
601
534
698
680
598
632
474
554
513
281
383
733
497
624
718
482
667
475
633
672
471
441
495
660
535
706
409
646
735
540
676
562
274
913
475
579
695
711
602
545
454
669
807
692
480
751
593
802
712
627
731
553
706
764
625
542
789
575
700
841
616
476
479
543
636
494
600
424
396
288
602
801
768
598
397
690
759
409
620
811
470
655
580
700
618
792
249
719
696
790
551
396
620
657
724
676
841
625
673
779
710
703
596
436
589
379
424
620
587
544
470
745
597
529
556
660
612
812
612
587
606
696
756
625
451
643
697
859
724
709
577
560
731
756
729
768
744
754
398
370
671
303
542
650
700
513
744
848
614
609
666
586
759
538
700
639
454
365
645
803
555
642
749
636
580
525
608
597
677
661
679
776
693
636
1007
665
577
519
794
737
644
603
715
792
617
507
401
830
510
713
801
475
631
634
407
791
577
613
604
501
588
574
557
515
866
624
750
351
605
589
626
614
705
656
368
575
671
666
654
389
610
657
792
489
565
638
788
558
567
558
774
937
507
685
800
482
281
797
800
649
720
532
707
464
518
605
658
850
533
617
635
600
750
402
707
477
599
496
614
708
850
543
561
659
476
434
637
711
553
405
505
589
514
628
621
375
655
227
335
701
724
776
562
647
290
459
866
600
572
465
784
584
422
558
647
744
716
250
787
12
675
829
746
638
659
455
536
650
760
836
344
639
429
598
445
550
524
606
584
524
623
794
380
753
425
519
715
366
589
716
434
272
535
692
296
375
694
299
777
664
796
778
774
697
346
350
742
322
620
721
563
718
631
719
526
486
655
694
649
598
389
559
484
712
778
571
444
414
609
628
694
337
663
570
614
707
672
940
621
706
578
593
653
669
688
674
640
828
682
645
653
751
598
731
560
500
651
751
828
759
719
435
552
182
572
666
698
666
459
784
550
640
628
599
663
837
696
625
119
650
654
370
636
615
765
767
686
651
624
577
881
774
597
770
484
436
676
716
614
713
571
523
654
693
673
442
744
570
613
567
530
512
216
751
388
145
524
469
669
576
820
478
592
613
538
670
638
585
653
684
595
654
663
580
664
491
380
497
428
224
670
449
384
468
511
533
369
649
588
588
647
812
703
495
497
711
733
697
640
494
648
689
787
684
468
556
722
618
731
659
592
479
653
620
881
484
690
905
656
736
875
698
490
588
744
852
589
700
595
567
702
500
649
287
889
817
692
768
736
311
651
515
22
699
536
1016
444
702
360
857
516
461
765
700
579
542
549
299
358
423
534
881
531
624
361
634
845
716
465
578
568
548
702
623
700
725
518
525
299
591
577
647
512
623
802
874
617
595
590
668
691
868
475
689
1058
701
645
573
491
459
843
818
541
809
556
525
689
736
435
619
832
501
507
359
737
880
591
658
691
811
695
654
706
839
604
763
828
841
655
884
586
634
397
411
599
423
780
562
817
714
467
568
757
454
558
449
405
686
622
542
586
700
719
695
573
897
540
860
602
603
724
813
655
547
608
576
303
254
293
600
598
393
744
572
399
690
557
594
526
885
598
390
636
572
576
697
322
720
679
556
667
449
723
287
637
562
744
737
759
556
704
374
714
535
644
695
600
640
778
765
57
202
687
425
648
637
517
682
669
705
458
592
363
696
623
697
517
625
590
437
657
624
762
1023
404
758
349
629
687
531
825
680
582
706
653
567
667
697
723
611
448
322
521
716
575
643
395
347
785
900
474
264
611
613
446
639
578
645
586
540
555
767
540
644
506
714
227
850
612
694
640
517
766
499
597
527
529
521
617
553
584
534
624
592
512
555
505
637
644
625
902
512
744
766
833
610
477
662
626
633
760
550
706
404
586
1019
426
376
460
699
458
852
640
774
692
809
686
570
407
590
664
737
687
711
332
623
574
546
570
441
722
612
650
757
600
441
523
838
734
752
656
451
612
530
804
688
566
654
575
598
423
463
778
664
608
398
460
524
602
711
540
522
376
839
598
771
667
473
659
672
726
597
826
357
484
592
643
589
589
628
687
711
480
390
720
728
476
528
627
521
523
622
363
662
446
474
441
638
231
309
597
758
750
701
718
792
912
630
408
507
638
482
444
822
658
722
722
504
1030
550
397
725
709
763
576
622
747
543
822
642
482
647
784
406
551
442
641
486
589
498
863
666
659
534
761
454
575
655
730
692
716
611
428
627
720
652
409
774
583
287
711
587
782
783
573
606
695
576
596
751
620
622
213
521
340
819
733
467
576
952
347
312
658
783
248
679
610
663
346
596
362
313
243
857
637
617
727
692
621
426
723
454
468
794
590
654
614
683
812
714
626
393
644
945
605
630
993
688
872
547
563
873
362
642
300
646
437
739
542
388
677
601
276
718
608
709
701
424
635
576
663
546
516
556
472
915
802
566
829
498
558
793
622
764
641
845
514
627
542
777
381
373
480
944
616
360
270
260
659
623
640
870
622
667
674
262
648
441
461
501
469
572
437
412
683
471
629
224
785
392
296
678
736
362
643
403
436
507
503
605
902
566
800
547
549
492
440
630
667
311
601
442
751
851
543
602
754
509
752
780
395
871
739
645
922
404
590
729
742
687
913
500
524
432
774
742
611
490
790
547
944
546
583
548
619
938
844
566
916
587
507
618
817
616
779
499
576
540
456
282
268
450
772
595
756
725
686
625
728
599
589
620
422
464
572
537
316
766
515
671
602
511
500
672
999
614
573
705
813
505
738
526
608
546
620
565
884
664
976
621
686
574
673
683
755
707
746
702
719
694
946
557
632
762
700
667
882
658
605
406
522
637
672
491
711
603
370
541
738
735
610
557
758
554
467
686
733
603
658
736
583
675
659
756
861
592
667
623
910
510
813
541
769
179
634
739
445
429
369
563
662
412
728
411
573
746
528
797
755
591
536
635
687
444
653
711
678
44
810
683
564
509
688
838
800
806
516
788
582
741
987
682
671
849
594
711
407
763
662
469
497
272
232
891
499
802
678
763
333
713
647
485
558
568
772
811
611
860
713
765
408
810
612
684
628
357
670
774
345
638
651
880
584
295
351
724
669
573
524
359
609
562
650
658
465
542
215
616
361
704
673
852
798
685
484
925
512
814
668
516
576
719
698
560
494
611
521
607
641
599
582
619
496
749
749
649
707
708
722
707
712
681
478
743
573
554
922
745
541
873
556
683
673
709
579
665
558
633
850
670
680
639
490
616
749
363
598
609
774
580
700
599
897
672
616
416
609
617
632
630
444
664
689
715
482
458
564
643
558
776
719
871
611
469
358
577
540
773
460
416
607
743
603
698
750
395
583
343
249
472
845
308
547
451
653
632
486
714
626
500
610
605
741
679
414
742
776
325
723
819
409
752
258
587
479
628
657
669
720
538
580
748
608
727
566
656
545
700
740
869
794
895
270
636
479
741
674
611
843
785
546
509
625
588
795
703
490
388
669
770
739
843
386
555
625
191
611
503
820
672
473
658
723
581
728
645
440
733
564
493
705
762
631
444
608
671
775
780
312
736
357
742
666
641
554
723
575
701
667
654
597
713
423
673
794
524
756
885
545
504
588
679
677
655
650
708
604
745
573
812
528
222
516
736
786
643
675
592
530
833
711
794
613
728
832
604
716
731
686
540
857
380
772
620
780
544
562
689
639
396
738
764
702
574
659
982
457
373
420
421
599
543
446
528
643
707
558
177
317
857
512
693
457
867
513
663
676
715
692
665
551
765
623
563
706
781
709
546
715
317
598
865
802
526
585
731
683
797
483
624
695
374
805
284
745
770
832
550
373
654
591
675
793
581
521
660
326
362
484
798
524
689
604
597
555
672
488
623
730
513
735
621
548
735
548
848
659
566
397
316
760
404
768
364
470
716
493
462
483
749
298
535
724
492
345
587
645
606
675
491
735
671
446
717
603
738
502
706
373
486
542
682
491
253
733
603
804
647
760
610
696
669
767
698
706
731
858
451
531
679
717
284
292
766
783
519
817
1020
660
618
649
759
726
581
522
507
520
835
595
199
539
715
529
712
570
660
614
656
764
576
698
916
763
756
589
510
577
715
550
672
421
593
716
731
733
776
788
801
497
565
657
725
597
944
519
549
673
675
711
657
727
642
637
610
810
419
256
225
356
912
551
464
649
609
677
844
628
339
573
527
633
748
544
685
709
807
691
718
556
674
236
694
740
522
539
299
825
727
810
718
545
466
637
446
653
457
589
670
630
217
571
673
552
310
363
722
884
793
479
780
568
659
769
649
719
533
595
957
568
628
596
657
805
347
465
567
536
750
561
479
363
685
649
630
497
554
657
734
413
780
694
740
414
759
593
325
706
532
859
599
612
752
535
313
486
781
668
641
542
613
658
482
627
761
511
586
435
559
816
722
717
477
537
660
663
452
674
264
544
863
539
714
440
780
517
185
510
613
689
764
543
733
559
584
585
899
440
528
546
535
508
585
621
454
555
750
613
625
761
973
645
578
548
432
502
662
722
338
710
452
629
463
589
505
713
817
918
591
869
669
706
853
534
724
665
561
638
608
522
319
648
692
711
358
839
510
214
599
543
392
774
217
581
725
505
537
493
858
615
736
547
774
614
709
622
811
431
517
541
428
692
769
719
320
697
659
738
692
837
429
634
515
423
327
737
667
406
862
632
326
521
835
466
705
602
553
761
906
481
610
365
628
534
711
603
717
565
423
577
643
589
623
768
583
701
603
614
679
737
470
676
523
491
665
596
837
641
742
461
849
793
668
641
615
441
532
596
609
661
451
521
708
704
911
839
668
642
697
675
613
690
564
693
286
699
537
605
712
620
534
794
627
685
671
783
311
505
577
658
576
433
302
708
848
595
653
605
735
471
504
628
583
453
544
662
838
593
605
485
527
508
447
347
727
473
753
536
504
681
724
449
611
225
754
48
770
686
731
726
597
637
683
646
896
514
767
553
629
644
940
586
939
323
661
993
578
802
538
553
380
713
345
659
739
412
689
529
627
867
443
426
547
524
703
699
503
478
816
738
843
665
646
583
687
499
518
756
614
569
481
662
759
606
386
553
388
595
763
652
710
474
620
667
623
827
706
603
514
493
412
744
768
828
637
756
671
371
500
625
592
772
479
650
648
500
708
729
809
805
651
562
635
512
571
783
649
607
471
601
695
728
565
562
469
658
604
660
827
510
586