0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
27
56
8
0
0
0
0
0
0
0
0
0
0
0
0
99
172
46
0
0
0
0
0
0
0
0
0
0
125
253
137
8
0
0
0
0
0
0
0
0
0
0
0
254
253
223
44
0
0
0
0
0
0
0
0
0
125
253
253
136
0
0
0
0
0
0
0
0
0
0
0
124
172
253
198
0
0
0
0
0
0
0
0
0
61
247
253
191
0
0
0
0
0
0
0
0
0
0
0
0
97
253
252
139
0
0
0
0
0
0
0
0
0
107
253
252
132
0
0
0
0
0
0
0
0
0
0
0
97
253
253
231
37
0
0
0
0
0
0
0
0
67
241
253
249
86
0
0
0
0
0
0
0
0
0
0
18
221
253
253
139
0
0
0
0
0
0
0
0
0
220
253
253
96
0
0
0
0
0
0
0
0
0
0
0
187
253
253
242
24
0
0
0
0
0
0
0
0
220
253
253
96
0
0
0
0
0
0
0
0
0
0
0
68
247
253
253
208
31
3
0
0
0
0
14
28
224
253
253
96
0
0
0
0
0
0
0
0
0
0
0
0
115
253
253
253
253
155
144
144
144
144
197
253
253
253
253
173
0
0
0
0
0
0
0
0
0
0
0
0
29
146
253
253
253
253
253
253
253
253
253
253
253
253
253
243
57
0
0
0
0
0
0
0
0
0
0
0
0
2
95
203
253
253
253
253
253
253
253
211
150
231
253
253
171
0
0
0
0
0
0
0
0
0
0
0
0
0
0
18
34
156
170
231
199
93
34
20
0
81
253
253
253
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
40
19
0
0
0
0
14
54
54
54
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
