0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
112
43
0
0
0
0
0
0
0
0
0
0
0
72
190
111
4
0
0
0
0
0
0
0
0
0
0
190
251
220
48
0
0
0
0
0
0
0
0
0
0
174
251
251
110
0
0
0
0
0
0
0
0
0
84
244
251
251
94
0
0
0
0
0
0
0
0
0
0
253
251
251
148
0
0
0
0
0
0
0
0
0
194
251
251
211
35
0
0
0
0
0
0
0
0
0
0
153
251
251
31
0
0
0
0
0
0
0
0
0
255
253
253
31
0
0
0
0
0
0
0
0
0
0
0
96
253
253
91
0
0
0
0
0
0
0
0
0
253
251
251
31
0
32
32
32
171
190
191
190
190
190
190
214
251
251
196
12
0
0
0
0
0
0
0
0
253
251
251
141
127
253
251
251
251
251
253
251
251
251
251
253
251
251
251
173
0
0
0
0
0
0
0
0
253
251
251
251
251
253
251
251
251
251
253
251
251
235
228
253
251
251
251
113
0
0
0
0
0
0
0
0
153
251
251
251
251
253
251
172
94
94
95
94
94
70
59
153
251
251
251
94
0
0
0
0
0
0
0
0
0
120
158
158
158
255
63
0
0
0
0
0
0
0
0
60
230
253
253
95
0
0
0
0
0
0
0
0
0
0
0
0
0
63
16
0
0
0
0
0
0
0
0
0
71
251
251
114
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
251
251
251
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
251
251
251
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
251
251
251
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
253
253
193
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
251
251
94
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
188
219
47
0
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
23
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
