0
0
0
1
1
1
1
1
1
1
1
1
1
2
3
4
5
5
6
6
7
8
8
11
12
12
12
13
14
16
21
24
27
32
41
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
63
63
63
63
63
66
66
67
67
68
70
70
70
70
72
75
77
77
77
77
79
79
91
105
108
116
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
129
129
129
129
129
129
129
130
131
131
131
131
131
131
131
131
131
131
131
132
133
133
133
134
135
135
135
135
135
135
135
138
138
138
141
142
145
145
150
154
158
159
163
167
168
169
169
170
171
171
171
172
172
173
174
174
174
175
175
175
175
175
175
175
175
175
175
176
177
178
179
179
180
180
181
182
182
185
186
186
186
188
189
191
196
199
202
208
218
237
237
237
237
237
237
237
237
237
237
237
237
237
237
237
237
237
237
237
237
238
238
238
238
238
238
239
239
239
239
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
241
241
241
241
242
242
242
242
242
243
243
243
243
244
244
244
244
244
244
245
246
246
246
247
247
247
247
248
248
248
248
248
248
248
248
248
248
248
248
248
248
248
248
250
250
250
250
250
254
254
256
256
257
260
260
260
260
263
267
270
270
270
270
274
274
287
301
305
314
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
327
328
328
328
329
329
329
329
329
329
329
330
331
331
331
331
331
331
331
331
331
331
331
332
333
333
333
334
335
335
335
335
335
335
335
338
338
338
342
343
346
346
351
355
359
364
368
372
373
374
374
375
376
376
376
377
377
378
379
379
379
380
380
381
382
382
382
383
383
383
383
384
385
386
387
388
389
390
391
392
392
395
396
398
400
402
404
407
412
415
421
430
441
460
460
460
460
460
460
460
460
460
460
460
460
460
460
460
460
460
460
460
460
461
462
463
463
464
465
466
466
466
466
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
467
468
468
468
468
469
469
469
470
470
471
472
472
472
473
474
474
474
475
475
476
477
477
477
478
478
478
478
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
479
481
481
481
481
481
484
485
488
490
492
495
495
495
495
498
502
505
505
505
505
509
509
522
536
540
550
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
563
564
564
564
565
565
565
565
565
565
565
566
567
567
567
567
567
567
567
567
567
567
567
568
569
569
569
570
571
571
571
571
571
571
571
574
574
574
578
579
582
582
587
591
595
600
604
608
609
610
610
611
612
612
612
613
613
614
615
615
615
616
616
617
618
618
618
619
619
619
619
620
621
622
623
624
625
626
627
630
630
633
634
636
641
644
646
649
654
665
671
683
694
717
717
717
717
717
717
717
717
717
717
717
717
717
717
717
717
717
717
717
717
718
719
720
720
721
722
723
723
723
723
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
724
725
725
725
726
726
727
728
728
729
730
731
731
731
732
732
733
734
734
734
735
735
736
736
737
737
737
737
737
737
737
737
737
737
737
737
737
737
737
737
741
743
747
749
753
758
760
763
768
773
777
781
785
785
789
793
797
798
801
806
811
818
832
845
857
872
886
886
886
886
886
886
886
886
886
886
886
886
886
887
888
888
888
888
888
888
888
888
888
888
888
888
888
888
888
888
888
888
888
888
888
888
888
889
890
890
890
890
890
890
890
891
891
891
892
892
892
892
893
894
894
895
896
896
896
896
897
898
899
899
899
899
899
900
901
901
902
903
904
904
904
904
904
905
906
910
915
920
925
929
934
939
944
949
954
957
962
967
968
969
969
970
971
971
971
972
972
973
974
