0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
21
176
227
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
176
251
251
142
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
251
251
220
51
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
79
253
251
235
82
0
0
0
0
0
0
32
109
93
0
0
0
0
0
0
0
0
0
0
0
0
0
0
180
253
251
86
0
0
0
0
0
0
130
202
251
215
0
0
0
0
0
0
0
0
0
0
0
0
11
150
253
255
253
35
0
0
0
0
0
110
253
255
253
216
0
0
0
0
0
0
0
0
0
0
0
0
37
251
251
253
251
35
0
0
0
0
0
109
251
253
251
215
0
0
0
0
0
0
0
0
0
0
0
0
63
251
251
253
127
5
0
0
0
0
0
93
241
253
251
215
0
0
0
0
0
0
0
0
0
0
0
0
217
251
251
253
107
0
0
0
0
0
0
47
211
253
251
215
0
0
0
0
0
0
0
0
0
0
0
0
217
251
251
253
107
0
0
0
0
0
0
109
251
253
251
215
0
0
0
0
0
0
0
0
0
0
0
0
37
253
253
255
149
10
0
0
0
42
99
253
253
255
253
216
0
0
0
0
0
0
0
0
0
0
0
0
37
251
251
253
251
159
144
144
145
206
251
251
251
253
251
215
0
0
0
0
0
0
0
0
0
0
0
0
31
230
251
253
251
251
251
251
253
251
251
251
251
253
251
215
0
0
0
0
0
0
0
0
0
0
0
0
0
62
220
253
251
251
251
251
253
251
251
251
251
253
251
215
0
0
0
0
0
0
0
0
0
0
0
0
0
0
51
253
251
251
251
251
253
147
71
148
251
253
251
215
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
255
253
216
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
109
251
253
251
215
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
15
190
253
251
215
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
103
175
251
215
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
73
251
86
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
