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