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