0
0
0
1
1
1
1
1
1
1
1
2
3
4
5
6
7
7
7
7
8
8
8
10
10
10
10
10
12
14
17
17
17
21
25
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
34
35
36
37
37
37
37
37
37
37
37
37
37
37
37
38
39
40
40
40
40
41
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
46
46
46
46
46
48
53
57
61
62
62
64
68
70
70
70
72
76
80
81
81
83
86
89
92
97
104
109
113
120
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
123
123
124
125
126
127
128
128
128
128
128
128
128
128
128
128
128
129
130
130
130
130
130
130
130
130
130
130
130
130
135
136
136
137
142
145
148
153
158
163
168
172
173
177
178
179
179
179
180
181
182
183
184
185
185
186
187
188
188
188
189
189
189
189
189
189
189
189
190
191
192
193
194
195
195
195
195
196
196
196
198
199
199
199
199
201
204
208
208
209
214
221
228
228
228
228
228
228
228
228
228
228
228
228
228
228
228
229
229
229
229
229
229
229
229
229
230
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
231
232
233
234
235
236
236
236
236
236
236
236
236
236
236
236
236
237
238
239
239
239
239
240
241
242
242
242
242
242
242
242
242
242
242
242
242
242
242
242
242
242
245
245
245
245
245
247
252
256
260
261
261
263
267
269
269
269
271
275
279
280
280
282
285
288
291
300
311
319
325
334
334
334
334
334
334
334
335
335
335
335
335
335
335
335
335
335
335
335
335
335
335
335
335
335
335
335
335
335
335
336
336
336
336
336
336
336
336
336
336
336
336
336
336
336
337
337
337
338
338
338
338
338
338
339
340
340
341
342
343
344
345
345
345
346
346
347
347
347
347
347
347
348
349
349
349
349
349
349
349
349
349
349
349
349
354
355
355
356
361
364
368
373
378
383
388
392
393
397
398
399
399
399
400
401
402
403
404
405
405
406
407
408
408
408
409
409
409
409
409
409
409
409
410
411
412
413
414
415
415
415
415
416
416
416
418
419
419
419
419
421
424
428
428
429
434
441
449
449
449
449
449
449
449
449
449
449
449
449
449
449
449
450
450
450
450
450
450
450
450
450
451
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
452
453
454
455
456
457
457
457
457
457
457
457
457
457
457
457
457
458
459
460
460
460
460
461
462
463
463
463
463
463
463
463
463
463
463
463
463
463
463
463
463
463
466
466
466
466
466
468
473
477
481
482
482
484
488
490
490
490
492
495
499
500
500
502
505
507
507
516
527
535
541
550
550
550
550
550
550
550
551
551
551
551
551
551
551
551
551
551
551
551
551
551
551
551
551
551
551
551
551
551
551
552
552
552
552
552
552
552
552
552
552
552
552
552
552
552
553
553
553
554
554
554
554
555
555
556
557
557
558
559
560
561
562
563
563
564
564
565
565
565
565
565
565
566
567
567
567
567
567
567
567
567
567
567
568
569
573
574
574
575
580
583
587
592
597
602
607
611
612
616
617
618
618
618
619
620
621
622
623
624
624
625
626
627
627
627
628
628
628
628
628
628
628
628
629
630
631
632
633
634
634
634
634
635
635
635
637
638
638
638
638
640
643
647
647
648
653
660
667
667
667
667
667
667
667
667
667
667
667
667
667
667
667
668
668
668
668
668
668
668
668
668
669
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
670
671
672
673
674
675
675
675
675
675
675
675
675
675
675
675
675
676
677
678
678
678
678
679
680
681
682
682
682
682
683
683
683
683
683
683
683
683
683
683
683
683
686
686
686
686
691
693
698
702
706
708
708
710
714
716
716
716
718
722
726
726
727
732
736
738
742
751
757
765
771
781
781
781
781
781
781
781
782
782
782
782
782
782
782
782
782
782
782
782
782
782
782
782
782
783
783
783
783
783
783
784
784
784
784
784
784
784
784
784
784
784
784
784
784
784
785
785
785
786
786
787
787
788
789
790
791
791
792
793
794
795
796
797
798
799
800
801
801
801
801
801
802
803
804
804
805
805
805
805
805
805
805
806
807
808
813
816
818
820
825
828
832
837
842
847
852
857
859
864
865
866
866
866
867
868
869
870
871
872
872
873
874
875
