0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
16
191
253
253
232
109
0
32
31
63
110
109
109
109
110
109
31
0
0
0
0
0
0
0
0
0
0
21
181
252
252
252
252
252
218
227
227
237
253
252
252
252
253
252
71
0
0
0
0
0
0
0
0
0
0
73
252
252
252
252
252
252
253
252
252
252
253
252
252
252
217
91
20
0
0
0
0
0
0
0
0
0
0
31
128
252
252
252
252
252
253
252
252
252
253
252
231
108
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
83
190
252
252
252
253
252
252
252
144
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
109
252
252
252
253
252
252
252
238
154
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
211
252
252
252
253
252
252
252
253
231
72
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
252
252
252
252
253
252
252
252
253
252
215
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
110
253
253
253
208
104
21
207
255
253
253
108
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
15
159
179
97
20
0
0
20
253
252
252
108
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
253
252
252
108
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
253
252
252
190
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
255
253
253
253
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
73
73
21
0
0
0
0
0
253
252
252
252
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
105
252
252
92
0
0
0
27
120
253
252
252
148
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
144
252
252
215
0
0
0
181
252
253
252
252
108
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
145
253
253
232
109
171
253
253
253
255
253
154
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
144
252
252
252
252
253
252
252
252
222
138
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
41
215
247
252
252
253
252
246
215
41
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
134
252
252
253
128
92
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
