0
0
1
2
2
2
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
6
6
7
8
9
9
9
9
9
11
13
15
18
22
32
36
42
42
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
54
54
55
55
56
56
56
56
56
57
58
59
60
60
60
60
61
62
63
64
64
64
64
64
64
64
64
65
65
66
66
67
68
68
68
68
68
68
69
73
73
75
78
83
83
88
92
96
101
105
109
110
110
110
111
112
112
113
114
114
115
116
116
117
118
118
118
119
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
121
121
121
121
123
123
123
123
124
124
125
126
128
128
128
128
128
131
133
135
138
148
158
166
172
172
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
183
183
184
184
185
185
185
185
185
185
185
185
185
185
185
185
185
185
186
186
187
187
188
188
189
189
189
189
189
190
191
192
193
193
193
193
194
195
196
197
197
197
197
197
198
198
198
199
200
201
201
202
203
203
203
203
203
203
208
213
213
217
220
225
225
230
235
239
244
249
253
254
255
255
256
257
257
258
259
259
260
261
261
262
263
263
263
264
265
265
265
265
265
265
265
265
265
265
265
265
265
265
265
265
266
266
267
267
267
267
267
267
268
269
271
273
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
277
277
277
278
278
279
279
280
280
280
280
280
280
280
280
280
280
280
280
281
281
281
282
283
284
284
284
284
284
284
284
284
284
284
285
285
285
286
286
286
287
287
287
288
288
289
289
290
290
291
291
291
291
291
291
291
292
293
293
293
294
295
295
295
295
297
297
298
298
298
300
303
303
304
308
311
313
315
315
318
319
322
326
329
329
329
329
329
332
334
338
341
351
361
372
381
381
391
391
391
391
391
391
391
391
391
391
391
391
391
391
391
391
391
391
391
391
391
392
392
393
393
394
394
394
394
394
394
394
394
394
394
394
394
394
394
395
395
396
397
398
399
400
400
400
400
400
401
402
403
404
405
405
406
407
408
409
410
410
410
410
410
411
412
413
414
415
416
417
418
419
419
419
419
419
419
424
429
431
435
439
444
444
449
454
458
463
468
472
473
474
474
475
476
476
477
478
478
479
480
480
481
482
482
482
483
484
484
484
484
484
484
484
484
484
484
484
484
484
484
484
484
486
486
487
487
487
488
488
488
499
502
507
510
517
517
517
517
517
517
517
517
517
517
517
517
517
517
517
518
518
518
518
518
518
518
518
518
518
518
519
519
519
520
520
520
521
521
522
522
523
523
523
523
523
523
523
523
523
523
523
523
524
524
524
525
526
527
527
527
528
528
528
528
528
528
529
530
530
530
531
532
533
534
535
535
536
536
537
537
538
538
539
539
539
539
539
539
539
540
541
541
542
543
544
546
549
553
557
557
562
563
566
569
572
575
578
583
586
590
593
598
601
604
607
612
615
615
615
615
615
618
621
626
629
640
652
664
674
679
686
687
688
688
688
689
690
690
691
692
692
692
693
693
694
695
696
696
697
698
699
700
701
702
703
704
705
706
706
706
707
707
708
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
722
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
756
761
766
771
776
781
785
790
795
800
805
810
815
816
817
817
818
819
819
820
821
822
823
824
