0
0
0
1
1
1
1
1
1
2
2
2
2
3
3
4
5
5
5
6
7
10
13
13
16
19
21
23
26
29
31
34
40
42
44
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
55
55
56
57
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
60
60
60
60
61
61
61
61
61
65
66
67
69
69
71
71
71
71
75
75
75
78
83
87
92
92
93
93
93
93
94
94
95
95
97
100
104
108
118
132
143
148
153
159
159
159
159
159
159
159
159
159
159
160
161
161
161
161
161
161
161
162
162
163
163
163
163
163
163
163
163
163
163
163
163
163
164
165
166
166
167
167
167
167
167
167
167
167
167
167
167
168
168
169
169
170
170
170
171
172
172
172
172
172
172
172
172
172
172
172
172
173
173
174
174
175
175
176
176
176
176
176
176
176
177
178
179
179
180
181
182
182
183
184
185
186
186
186
187
187
187
187
187
187
188
188
189
190
190
191
191
192
196
199
203
203
207
211
214
219
223
227
231
235
239
244
249
251
256
260
261
262
262
262
263
263
264
264
265
266
267
268
269
269
270
271
272
272
272
273
273
273
273
273
273
274
274
274
274
275
275
276
277
277
277
278
279
282
282
285
288
291
293
295
300
304
307
312
318
325
331
332
332
332
332
332
332
332
332
332
332
332
332
332
332
333
333
333
333
334
334
335
335
336
337
337
337
338
339
339
339
340
340
340
340
341
342
342
342
342
342
342
342
342
342
342
342
342
342
342
342
342
342
342
342
343
343
344
344
344
344
344
344
344
344
344
344
345
345
346
346
346
346
346
346
346
347
347
347
347
347
347
348
349
350
350
351
352
353
353
353
353
354
355
356
356
356
356
357
357
358
358
359
359
360
361
362
362
362
364
364
364
364
364
369
372
375
377
377
380
380
380
380
384
384
384
389
394
399
404
406
409
414
419
421
425
430
431
431
433
438
443
447
459
473
481
483
485
490
490
490
490
490
490
490
490
490
490
491
492
492
492
493
493
494
494
495
495
496
496
497
497
497
497
497
497
497
497
497
497
497
498
499
500
500
501
501
501
501
501
501
501
502
503
503
503
504
504
505
505
505
505
506
507
508
508
508
508
508
508
508
508
509
509
510
510
511
511
512
512
513
513
514
514
515
515
516
516
516
517
518
519
520
521
522
523
523
524
525
526
527
527
527
528
528
528
528
528
528
529
530
531
532
532
533
534
535
539
543
548
549
553
558
563
568
572
577
582
587
591
596
601
604
609
614
615
616
616
616
617
617
618
618
619
620
621
622
623
623
624
625
626
