0
0
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
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
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
12
12
15
16
16
17
17
17
17
18
18
21
21
23
26
29
32
34
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
39
39
40
40
40
40
41
41
41
41
41
41
42
42
42
43
44
44
45
45
45
46
47
47
48
49
50
50
51
51
52
53
53
54
54
54
55
55
56
56
56
57
58
58
59
59
59
59
59
60
63
65
65
66
69
70
73
76
79
82
84
87
90
92
94
97
99
100
101
101
101
102
103
104
104
105
106
107
108
109
109
110
111
112
112
113
113
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
118
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
122
122
122
123
124
124
124
124
124
125
126
126
126
126
126
126
126
126
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
130
130
130
130
132
134
135
135
138
138
138
138
139
139
139
139
139
139
139
139
139
140
142
142
144
147
147
150
152
152
154
154
154
154
155
155
158
159
161
166
169
174
177
180
180
180
180
180
180
180
180
180
180
180
180
180
181
181
182
182
183
183
183
183
184
184
184
184
184
184
185
185
185
185
185
186
187
187
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
189
189
190
191
191
191
192
192
193
193
193
193
194
194
195
195
195
195
196
197
197
198
199
199
200
201
201
202
203
203
204
205
206
207
208
208
209
210
210
211
212
212
213
213
214
214
214
215
216
216
217
217
218
218
218
220
223
225
225
228
231
233
236
239
242
245
247
250
253
256
258
261
262
263
264
264
264
265
266
267
267
268
269
270
271
272
272
273
274
275
275
276
276
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
278
278
278
278
278
282
282
282
285
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
288
288
288
288
288
288
288
288
288
288
288
288
288
288
288
289
290
290
291
291
291
292
293
293
294
294
294
294
294
294
295
295
295
296
296
296
296
297
297
297
297
297
297
297
297
297
297
297
297
297
297
297
297
297
297
297
297
297
297
297
298
298
298
298
298
298
299
299
299
300
300
300
300
300
300
301
301
302
304
306
309
312
315
318
319
319
319
321
321
321
321
321
321
321
324
324
326
328
328
330
333
333
336
338
338
341
341
341
343
344
344
347
349
354
360
365
369
374
377
378
379
380
380
381
382
383
384
384
384
384
384
385
385
386
386
387
388
389
390
391
391
391
391
391
391
392
392
393
394
394
395
396
396
397
397
397
398
398
398
398
398
398
398
398
398
398
398
398
398
398
398
399
400
401
402
403
403
404
405
405
406
406
406
406
407
407
408
408
408
408
409
410
410
411
412
412
413
414
414
415
416
416
417
418
419
420
421
421
422
423
423
423
424
424
425
425
426
427
427
428
429
429
430
430
431
431
431
434
437
440
441
444
447
450
453
456
459
462
464
467
470
473
475
478
481
482
483
483
483
484
485
486
486
487
488
489
490
491
491
492
493
494
