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
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
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
14
48
146
188
255
227
41
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
70
145
209
253
253
253
253
253
150
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
27
151
251
253
253
253
249
253
253
224
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
95
253
253
253
226
171
97
139
253
253
142
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
96
247
253
226
73
41
121
195
253
253
253
188
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
21
219
253
233
54
65
194
253
253
253
253
253
188
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
111
253
253
253
253
253
253
253
249
205
244
253
188
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
151
253
253
253
253
248
167
167
107
21
222
253
188
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
182
237
170
46
20
0
0
0
114
253
253
135
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
168
253
248
64
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
18
235
253
187
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
31
253
253
119
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
130
253
253
47
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
218
253
174
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
89
253
253
52
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
166
253
238
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
200
253
104
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
54
253
241
39
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
130
253
232
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
94
184
94
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
