0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
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
2
2
2
2
2
2
2
2
2
2
2
2
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
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
10
10
10
10
10
10
17
17
17
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
22
24
24
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
34
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
40
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
47
47
47
47
51
54
64
66
66
67
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
81
84
84
86
89
92
93
94
95
95
95
95
95
95
95
96
96
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
98
98
98
98
99
100
100
101
102
102
103
103
103
103
103
103
103
106
108
111
112
112
112
113
116
119
122
124
133
141
151
159
170
170
170
170
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
171
172
172
172
172
173
173
173
173
173
173
173
174
175
176
176
176
177
177
178
178
178
178
179
179
179
179
180
181
182
182
182
183
184
184
185
186
186
186
187
187
187
187
187
187
187
188
188
188
189
190
191
191
191
191
191
191
192
193
193
193
194
195
195
195
195
195
196
197
198
198
198
198
199
199
199
200
200
200
201
202
203
203
203
203
207
212
212
212
212
212
215
218
218
218
220
224
224
227
227
227
227
227
231
231
235
239
239
244
249
254
258
271
283
294
304
317
317
317
317
317
317
317
317
317
317
317
317
318
318
318
319
320
320
320
321
322
323
323
323
323
323
323
323
323
324
325
325
325
326
327
327
327
327
327
327
327
327
327
328
328
328
328
328
329
329
329
333
337
337
342
347
351
352
353
354
