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
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
0
0
0
0
0
0
1
1
3
4
6
8
11
13
17
20
23
27
31
35
40
44
49
54
59
64
69
74
80
85
90
96
101
107
113
118
123
129
134
139
144
148
153
158
162
167
171
176
180
184
188
191
195
198
201
204
206
209
211
213
215
217
218
220
221
222
223
223
224
224
225
225
225
225
225
224
223
222
221
220
219
218
216
215
213
212
210
208
206
204
202
200
198
196
194
192
190
188
186
184
181
179
177
174
172
170
168
166
163
161
159
157
156
154
152
151
149
148
146
145
144
143
142
140
139
138
137
137
136
135
135
134
134
134
133
133
133
133
133
133
133
133
134
134
134
135
135
135
136
136
137
138
138
139
140
140
141
142
143
144
145
145
146
147
148
149
150
150
151
152
153
154
154
155
156
157
157
158
159
160
160
161
162
162
163
163
164
165
165
166
166
166
167
167
167
167
168
168
168
168
168
168
168
169
169
169
169
169
169
169
169
169
169
169
168
168
168
168
167
167
167
167
166
166
166
166
165
165
165
164
164
164
163
163
163
162
162
162
161
161
161
161
160
160
160
160
160
159
159
159
159
159
158
158
158
158
158
158
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
