0
1
2
3
3
3
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
7
10
13
16
18
18
19
22
22
22
22
22
22
22
23
25
27
33
39
44
44
44
49
49
49
49
49
49
49
49
49
49
49
50
50
50
51
51
51
51
52
53
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
57
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
67
67
70
72
76
78
81
81
83
86
90
93
96
96
97
98
99
100
101
102
103
104
105
106
107
108
109
109
109
110
111
111
111
111
111
112
112
112
112
113
113
114
114
115
117
117
119
122
124
125
125
127
129
130
133
137
141
143
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
146
146
146
146
146
146
146
147
147
147
147
147
148
148
148
148
149
149
149
149
149
149
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
151
151
152
153
153
154
154
154
154
154
155
155
156
157
158
158
158
158
158
158
158
158
158
158
158
158
160
160
160
160
160
160
160
163
164
168
171
176
178
178
179
182
182
184
186
186
187
187
189
193
195
201
208
217
220
221
227
227
227
227
227
227
227
227
227
227
227
228
228
228
229
229
229
229
230
231
232
233
233
233
233
233
233
233
233
233
233
233
233
233
233
233
233
233
234
235
236
236
236
236
236
236
236
236
236
237
237
237
237
237
237
237
238
238
239
239
239
239
239
239
240
240
241
242
242
242
243
243
243
243
243
243
243
244
244
249
250
253
256
260
263
266
269
272
275
280
284
287
287
288
289
290
291
292
293
294
295
296
297
298
299
300
300
300
301
302
302
302
302
302
303
303
303
304
305
306
307
307
308
310
310
313
316
318
319
319
322
325
326
329
333
337
339
341
341
341
341
341
341
341
341
341
341
341
341
341
341
341
341
341
341
341
341
341
341
341
341
341
342
342
342
342
343
343
343
343
344
344
345
346
346
346
346
346
347
348
348
348
349
349
349
349
349
349
350
351
351
351
351
351
351
352
352
352
352
352
352
353
353
353
353
353
353
353
353
354
355
356
357
357
358
358
359
360
360
361
362
363
363
363
363
364
364
364
364
364
364
364
365
368
368
368
370
371
372
376
381
384
388
393
398
400
401
402
406
408
412
417
417
418
418
421
426
429
435
444
453
461
463
469
469
469
469
469
469
469
469
469
469
469
470
470
470
471
471
471
471
472
473
474
475
475
475
475
476
476
477
477
478
478
478
479
479
479
479
480
480
481
482
483
483
483
484
485
486
486
487
487
488
488
488
489
490
490
491
492
492
493
494
495
495
496
496
497
497
498
499
500
500
501
502
502
503
504
504
505
506
506
511
514
517
520
525
529
532
537
541
544
549
554
557
557
558
559
560
561
562
563
564
565
566
567
568
569
570
570
570
571
572
572
572
572
572
573
573
573
574
575
576
577
577
578
580
580
582
584
585
586
586
589
592
593
600
605
609
611
614
614
614
614
615
615
615
615
615
615
616
617
617
617
617
617
617
617
618
619
619
619
619
620
621
622
623
623
623
624
624
624
624
625
626
627
628
628
629
630
631
632
633
633
633
634
634
634
634
634
634
635
636
636
636
636
636
636
637
637
637
637
637
637
638
638
638
638
639
640
641
642
643
644
645
646
646
647
647
648
649
650
651
652
653
653
653
653
654
655
655
656
658
663
667
669
674
674
679
681
682
683
688
693
696
701
706
711
714
717
719
724
727
732
736
736
737
737
740
745
748
754
763
770
777
779
785
785
786
786
786
786
787
787
787
788
789
790
791
792
793
794
794
794
795
796
797
798
799
800
801
802
803
804
804
805
805
805
806
806
806
807
808
808
809
810
811
811
812
813
814
815
816
817
817
818
818
818
819
820
821
822
823
824
825
826
827
828
829
829
830
830
830
831
832
833
834
835
836
837
838
838
839
840
840
845
850
853
856
861
866
869
874
879
882
887
892
895
896
897
898
899
900
901
902
903
904
905
906
