0
0
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
2
3
3
4
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
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
14
15
16
16
19
19
19
19
19
20
20
20
20
23
23
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
27
28
29
30
32
34
34
35
35
37
37
37
37
37
37
37
38
39
39
40
40
40
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
44
44
44
45
45
46
47
47
47
47
47
48
48
49
50
50
50
50
50
50
51
52
53
53
53
54
54
54
55
56
56
56
56
56
56
57
58
59
59
60
60
60
60
60
60
61
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
67
70
70
70
73
76
79
79
82
85
85
88
88
90
90
93
93
94
94
95
96
97
98
98
98
98
99
100
101
101
102
102
103
104
104
105
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
108
108
108
108
108
108
108
108
108
108
111
111
112
113
114
115
115
116
117
117
117
117
117
117
117
117
118
119
119
119
119
119
119
119
120
121
121
121
122
123
123
123
124
125
125
125
126
127
127
127
128
129
129
129
129
129
129
129
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
132
133
133
133
133
133
133
133
133
133
133
134
135
135
135
135
135
136
137
137
137
137
137
138
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
142
144
146
147
150
151
154
154
154
154
154
156
156
157
158
161
161
162
163
166
166
167
168
171
171
172
173
173
173
173
173
173
175
176
177
179
182
185
185
188
188
190
191
192
193
193
194
195
196
197
197
198
199
199
200
200
201
201
202
202
202
202
202
203
203
204
204
205
206
207
207
208
209
209
209
209
209
209
209
209
209
209
209
209
209
210
211
212
212
213
214
214
215
216
217
217
218
219
220
220
221
222
222
222
222
222
222
223
224
225
226
227
228
229
229
230
231
231
231
231
231
231
232
233
234
234
235
235
235
236
237
238
239
240
241
241
241
241
241
241
241
241
241
241
241
241
241
242
242
242
245
248
251
252
254
257
260
263
263
266
269
270
273
274
276
277
280
280
281
281
282
283
284
285
286
286
286
287
288
289
289
290
290
291
292
