0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
32
118
207
254
254
254
255
254
138
0
0
0
0
0
0
0
0
0
0
0
0
0
74
116
234
234
234
234
239
253
253
253
253
253
253
253
228
37
0
0
0
0
0
0
0
0
0
0
29
191
244
253
253
253
253
253
253
253
253
253
253
253
253
253
253
96
0
0
0
0
0
0
0
0
0
0
97
253
253
253
253
253
253
253
253
253
253
253
253
253
253
253
222
23
0
0
0
0
0
0
0
0
0
0
84
248
253
253
253
253
253
253
244
219
219
145
253
253
253
253
212
0
0
0
0
0
0
0
0
0
0
0
0
86
131
221
103
103
103
103
75
0
0
15
253
253
253
253
212
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
86
200
253
253
253
253
141
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
21
203
253
253
253
253
133
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
25
195
253
253
253
253
253
54
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
25
194
253
253
253
253
225
139
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
190
253
253
253
253
230
47
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
87
244
253
253
253
249
46
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
144
251
253
253
253
249
165
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
82
253
253
253
253
253
89
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
89
248
253
253
253
253
151
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
93
243
253
253
253
253
193
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
192
253
253
253
253
231
65
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
87
240
253
253
253
212
26
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
161
253
253
253
78
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
16
124
253
119
12
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
