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
1
1
1
1
1
1
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
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
10
11
12
12
12
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
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
24
24
27
27
27
28
28
28
28
28
28
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
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
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
38
41
43
43
43
43
44
46
46
46
46
46
46
46
46
46
46
46
46
46
50
50
50
50
50
50
50
50
52
56
58
58
58
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
71
71
71
73
75
78
81
82
83
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
88
88
88
88
88
88
89
89
89
89
91
91
93
96
96
98
99
101
101
101
101
109
118
122
133
133
133
134
134
134
134
134
134
135
135
135
135
135
135
135
135
135
135
135
135
135
136
136
136
136
136
136
136
136
136
136
136
136
136
136
137
137
137
137
138
139
139
139
139
140
140
140
140
140
140
141
142
143
143
143
143
143
143
144
145
145
145
145
145
145
145
145
145
145
145
145
145
145
146
146
146
147
147
147
147
147
147
147
147
147
147
147
147
147
148
149
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
152
156
160
161
165
167
170
173
178
183
188
188
188
188
188
188
193
193
193
196
200
200
200
200
200
200
200
200
203
215
225
236
245
259
259
259
259
259
259
259
260
261
262
262
262
262
263
263
263
263
263
263
263
264
264
264
264
264
264
264
264
264
264
264
264
264
264
265
265
265
265
265
265
265
265
266
266
266
267
267
267
267
267
271
271
271
276
281
286
291
292
293
294
