0
0
0
0
0
1
1
2
2
2
2
2
3
4
5
5
5
6
7
7
8
12
15
20
22
26
30
34
39
43
47
54
61
69
76
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
82
82
82
82
83
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
86
86
87
88
89
90
90
91
92
93
93
94
94
94
94
95
95
96
97
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
100
100
100
101
101
102
102
102
102
102
102
103
104
104
105
106
106
107
108
109
109
109
109
110
110
110
110
112
112
115
118
120
123
126
130
134
134
137
139
143
148
148
148
148
148
148
148
150
152
153
154
157
161
164
167
172
175
175
178
181
181
184
191
196
201
206
213
216
216
216
216
217
217
217
217
218
219
219
219
219
220
221
221
221
222
222
222
222
222
222
223
223
224
225
225
225
225
225
225
225
225
225
226
226
226
226
226
226
226
226
226
226
226
226
226
227
227
228
228
228
228
229
229
230
231
232
233
233
233
233
233
233
233
234
234
234
235
236
237
237
238
239
239
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
241
242
242
242
242
243
244
248
253
257
262
265
269
273
276
280
285
289
293
298
302
305
309
313
314
315
316
316
317
317
317
317
318
318
319
320
321
322
323
324
325
325
325
325
325
326
326
327
327
327
327
327
328
329
330
330
330
331
332
332
333
337
340
345
347
351
355
359
364
368
372
379
385
393
399
402
402
402
403
403
403
403
404
404
405
406
406
407
408
409
410
410
410
410
411
412
412
413
413
413
414
415
416
416
417
418
418
418
418
418
419
419
419
419
419
420
420
421
421
421
421
422
422
423
424
425
426
426
427
428
429
430
431
432
432
433
434
434
435
436
437
437
438
439
440
441
442
443
444
445
446
446
446
447
448
449
449
450
451
451
452
452
453
453
453
453
454
455
456
457
458
458
459
460
461
461
461
461
462
462
463
463
466
469
472
475
478
483
486
490
494
497
502
507
512
517
517
518
520
523
526
528
533
536
539
543
547
551
554
558
563
565
565
568
571
574
577
583
590
603
609
615
618
618
618
618
619
619
619
619
620
621
621
621
621
622
623
623
623
624
625
625
626
627
628
629
629
630
631
631
632
633
634
634
634
634
634
635
635
635
636
637
637
637
637
638
638
639
640
640
641
641
642
643
644
644
645
646
647
648
649
650
651
651
652
652
652
653
653
653
654
655
656
657
658
659
660
661
662
663
664
664
664
664
664
665
666
666
666
666
666
666
666
666
667
668
668
668
669
670
670
670
670
671
672
676
681
685
690
693
698
702
706
710
715
720
725
729
734
738
742
746
747
748
749
749
750
751
751
751
752
752
753
754
755
756
757
758
759
