0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
2
2
2
2
2
2
2
2
2
3
4
5
5
6
7
7
8
8
8
8
8
8
8
8
8
8
8
8
12
14
16
16
18
18
18
18
26
28
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
46
49
53
53
53
53
53
53
53
53
53
53
53
53
53
55
55
59
63
63
63
63
63
63
63
65
65
65
65
65
65
65
68
68
79
83
96
102
105
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
115
116
116
116
116
116
116
116
120
120
120
123
123
127
130
134
138
139
140
141
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
143
143
143
144
144
144
144
144
144
144
144
144
145
146
147
147
148
149
149
150
150
150
150
150
150
150
150
150
150
150
150
155
157
160
160
162
162
162
164
170
173
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
184
184
184
185
185
186
186
186
186
186
186
186
186
186
186
186
186
186
187
187
187
187
187
187
188
188
189
189
189
189
189
189
189
189
190
190
190
190
190
190
190
191
191
191
191
191
191
191
192
193
193
193
193
193
193
193
193
193
194
194
194
194
194
194
194
195
195
195
195
196
197
197
197
197
197
197
197
197
197
198
198
198
199
199
199
201
204
208
208
208
208
208
208
210
210
210
210
210
210
210
212
212
216
220
220
220
220
221
221
221
223
223
223
224
224
224
224
228
232
243
249
262
268
271
283
283
283
283
283
283
283
283
283
283
283
283
284
285
285
285
285
285
285
285
285
285
285
285
285
285
285
286
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
287
288
289
289
289
289
289
289
289
293
293
293
297
297
301
304
308
312
313
314
315
316
316
316
316
316
316
316
316
316
316
316
316
316
316
316
317
317
317
318
318
318
318
318
318
318
318
318
319
320
321
321
322
322
322
323
323
323
323
323
324
324
324
324
325
326
326
331
333
336
338
341
341
341
341
346
349
359
359
359
359
359
359
359
359
359
359
359
359
359
359
359
359
359
359
360
360
360
360
360
360
360
360
360
360
360
360
360
360
360
360
360
361
361
361
361
361
361
361
361
361
361
361
361
362
362
363
363
363
363
364
364
364
364
365
365
365
365
365
366
366
366
366
366
367
368
368
369
370
370
371
371
371
371
372
373
373
374
375
375
375
375
376
376
377
377
377
377
378
379
380
380
380
380
380
380
380
380
380
381
381
381
381
381
381
381
382
382
382
382
383
384
384
384
384
384
384
384
384
384
385
386
387
388
388
388
390
393
398
398
398
398
401
403
407
407
407
408
408
408
409
414
419
424
428
429
432
432
435
439
441
444
444
447
450
450
455
460
465
470
481
485
498
506
511
524
524
524
524
524
524
524
524
524
524
524
525
526
527
527
527
527
528
528
528
528
528
528
529
529
529
529
530
531
531
531
531
531
531
531
532
533
533
533
533
534
535
535
535
535
535
535
535
535
535
535
535
536
536
536
537
538
539
539
539
539
539
540
540
544
544
544
548
548
553
558
563
568
569
570
571
572
