0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
7
7
7
8
8
8
9
9
9
9
9
9
9
9
9
9
12
12
13
13
13
13
14
14
14
14
14
14
14
14
14
14
17
17
17
20
20
20
20
20
20
21
21
22
22
22
23
23
24
24
24
24
25
25
26
26
26
26
26
27
28
28
29
29
29
29
29
30
30
31
31
32
32
32
32
32
32
32
32
32
33
34
34
34
35
36
36
36
36
36
37
37
38
38
39
39
40
40
40
40
40
40
40
40
40
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
44
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
48
49
49
49
49
49
49
49
52
55
58
58
61
64
67
68
68
70
70
70
70
73
73
76
76
79
79
79
79
80
81
81
82
82
83
83
84
85
86
87
88
88
89
89
90
91
91
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
94
94
94
95
95
95
95
95
95
95
98
98
99
99
102
102
103
104
105
105
105
105
105
105
105
105
106
106
106
106
107
108
108
108
109
109
109
109
109
110
110
110
111
111
111
111
112
113
113
113
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
118
118
118
119
119
119
119
119
119
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
123
126
129
132
133
134
137
140
140
141
141
144
144
145
145
148
148
149
149
152
152
153
153
156
156
157
157
157
157
157
157
157
159
160
160
163
166
169
172
172
173
176
177
178
179
179
180
181
182
183
183
184
184
184
185
186
186
187
187
187
187
187
188
189
189
190
191
191
192
192
193
193
194
194
195
195
196
196
196
196
196
196
196
197
198
198
199
200
201
201
202
203
203
204
204
205
205
206
206
207
207
207
207
207
207
207
207
207
208
209
209
209
209
209
209
209
210
210
210
210
210
210
210
210
210
210
211
211
212
213
213
214
214
214
214
214
214
214
214
215
215
215
216
216
216
216
216
216
216
217
217
217
217
218
218
218
221
224
227
227
230
233
236
238
238
241
244
245
248
251
252
255
256
259
260
261
262
263
264
264
265
265
266
266
267
268
269
270
271
271
272
273
274
275
