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