0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
169
255
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
235
253
159
0
0
0
0
0
0
0
0
16
106
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
235
253
202
17
0
0
0
0
0
0
0
157
238
46
0
0
0
0
0
0
0
0
0
0
0
0
0
0
235
253
253
38
0
0
0
0
0
0
0
163
253
104
0
0
0
0
0
0
0
0
0
0
0
0
0
0
235
253
253
38
0
0
0
0
0
0
36
244
253
104
0
0
0
0
0
0
0
0
0
0
0
0
0
0
235
253
253
38
0
0
0
0
0
0
87
253
244
67
0
0
0
0
0
0
0
0
0
0
0
0
0
0
191
253
253
149
0
44
0
0
0
0
169
253
227
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
105
253
253
238
209
232
175
20
0
15
195
253
227
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
105
253
253
253
216
253
253
215
57
46
253
253
227
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
105
253
253
187
28
180
253
253
212
139
253
253
227
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
105
253
253
168
0
19
113
253
253
219
191
253
227
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
84
248
253
141
0
0
19
180
253
240
230
253
227
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
70
78
12
0
0
0
18
204
253
253
253
227
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
183
253
253
253
207
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
99
253
253
253
97
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
53
253
253
253
97
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
53
253
253
234
40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
26
213
253
220
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
24
211
253
221
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
110
253
153
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
