0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
10
11
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
15
17
17
18
18
18
18
18
19
19
19
19
22
22
23
23
23
23
24
25
27
27
28
28
28
28
28
28
28
29
29
29
29
31
34
37
39
39
40
40
40
40
40
40
40
41
42
42
43
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
48
48
48
48
48
48
49
49
50
51
51
52
52
52
52
52
52
52
53
54
54
55
55
56
57
57
58
58
58
58
58
58
58
59
60
60
60
60
61
62
63
64
64
64
64
64
64
65
65
65
65
65
65
66
67
67
67
67
67
67
67
70
73
76
76
76
79
83
86
86
89
92
92
95
99
101
101
104
104
105
105
106
107
107
107
108
109
109
110
111
112
112
113
113
114
115
115
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
118
118
118
119
119
119
119
119
119
119
120
120
120
120
120
120
120
120
121
121
121
121
121
122
122
122
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
126
127
128
128
128
128
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
131
131
131
131
131
131
131
131
131
131
131
132
132
132
132
132
132
133
133
133
133
133
134
135
136
137
137
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
139
139
139
141
143
146
147
150
151
154
155
155
156
156
158
158
159
159
162
162
163
163
168
170
175
178
180
180
181
181
181
181
181
181
181
182
183
183
184
187
188
198
199
199
200
201
202
203
203
203
204
205
206
206
207
208
208
209
210
210
210
211
211
212
213
213
214
214
215
215
216
216
217
217
218
218
219
219
219
219
219
219
219
219
219
219
220
220
221
222
223
223
224
225
225
226
226
227
228
229
230
231
231
232
232
232
232
232
232
232
233
234
234
235
236
237
238
238
239
239
239
239
239
239
239
240
241
241
242
242
243
244
245
246
246
247
248
249
249
250
250
250
250
250
250
251
252
252
252
252
253
253
253
256
259
262
263
264
267
272
275
275
278
281
282
285
289
293
294
297
297
298
298
299
300
301
302
303
304
304
305
306
307
307
308
308
309
310
