0
0
0
0
0
0
0
0
0
0
0
1
2
2
2
2
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
5
8
11
12
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
25
26
27
28
29
30
30
30
31
31
31
34
35
36
37
39
39
43
48
51
52
53
56
57
57
58
59
59
59
59
60
61
65
69
74
77
82
92
95
96
98
106
106
106
106
106
106
106
106
106
106
106
107
107
108
108
108
108
108
109
109
109
109
109
109
109
110
110
110
110
110
110
111
112
113
114
115
115
115
116
117
118
119
120
120
120
121
121
122
122
123
124
125
126
127
128
128
128
129
129
129
129
129
129
129
130
131
132
133
134
135
135
135
135
135
135
135
136
137
138
138
138
139
140
141
142
143
146
148
153
158
161
165
170
170
172
176
176
178
181
182
183
183
184
185
186
187
188
189
190
191
192
193
194
194
194
194
194
194
194
194
194
194
194
195
196
196
196
196
197
197
197
197
198
198
198
198
198
198
198
198
198
198
198
200
204
207
208
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
213
214
215
215
215
215
215
215
215
215
215
215
215
216
216
216
216
216
216
216
216
216
216
217
218
219
219
219
219
219
219
219
219
219
219
219
219
219
220
220
220
220
220
220
221
221
221
221
221
221
221
221
221
221
221
221
221
222
223
224
225
226
227
227
227
228
228
228
231
232
233
234
236
237
241
246
249
250
251
254
255
255
256
257
257
257
258
259
260
264
268
273
276
281
291
295
296
298
306
306
306
306
306
306
306
306
306
306
307
308
308
309
309
309
309
309
310
310
310
310
310
310
310
311
311
311
311
311
311
312
313
314
315
316
316
316
317
318
319
320
321
321
321
322
322
323
324
325
326
327
328
329
330
330
331
332
332
332
332
332
332
333
334
335
336
337
338
339
339
339
339
339
339
339
340
341
342
342
342
343
344
345
346
347
350
352
357
362
365
369
374
374
377
381
382
385
388
389
390
390
391
392
393
394
395
396
397
398
399
400
401
401
401
401
401
401
401
401
401
401
401
402
403
403
403
403
404
404
404
404
405
405
405
405
405
405
406
406
407
407
408
410
414
417
418
422
422
422
422
422
422
422
422
422
422
422
422
422
422
422
422
422
423
423
423
423
423
423
423
423
423
423
423
424
425
426
426
426
426
426
426
426
426
426
426
426
427
427
427
427
427
427
427
427
427
427
428
429
430
430
430
430
430
430
430
430
430
430
430
430
430
431
431
432
432
433
433
434
434
434
434
434
434
434
434
434
434
434
434
434
435
436
437
438
439
440
440
440
442
443
445
448
450
452
455
457
460
464
469
472
474
476
480
481
481
482
483
483
483
486
487
488
492
496
501
504
509
519
523
524
527
535
535
535
535
535
535
535
535
535
535
536
537
537
538
538
538
539
539
540
540
540
540
540
540
541
542
542
542
542
542
542
543
544
545
546
547
547
548
549
550
551
552
553
553
553
554
554
555
556
557
558
559
560
561
562
562
563
564
564
564
565
565
565
566
567
568
569
570
571
572
572
572
572
572
572
572
573
574
575
575
575
576
577
578
579
581
584
587
592
597
600
604
609
610
613
617
618
621
624
625
626
626
627
628
629
630
631
632
633
634
635
636
637
637
637
637
637
637
637
637
637
637
637
638
639
639
639
639
640
640
640
640
641
641
642
644
646
647
648
648
650
652
653
653
656
660
663
663
663
663
663
663
663
663
663
663
663
663
663
663
663
663
663
663
664
665
665
665
666
666
666
667
668
669
669
670
671
672
672
672
672
672
672
672
672
672
672
672
673
673
673
673
673
673
673
674
674
674
674
675
676
676
676
676
676
676
676
676
676
676
676
676
676
677
677
678
679
680
681
682
682
682
682
683
683
683
683
683
683
684
685
685
686
687
688
689
690
691
692
695
695
695
695
696
698
700
703
705
709
713
718
721
721
722
727
730
730
731
732
732
732
735
736
737
741
745
750
753
758
768
768
768
768
774
774
774
775
776
777
778
779
780
781
781
781
781
782
783
783
784
784
785
785
785
785
785
785
786
787
787
787
788
788
788
789
790
791
792
793
794
795
796
797
798
799
800
800
801
802
802
803
804
805
806
807
808
809
810
811
811
811
811
812
813
813
813
814
815
816
816
817
818
819
819
819
819
820
820
820
820
821
822
822
822
822
823
824
825
827
830
833
838
843
846
850
855
857
857
860
860
863
866
867
868
868
869
870
871
872
873
874
875
876
877
878
879
