0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
87
106
79
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
36
210
250
254
248
230
202
81
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
93
254
254
254
254
254
254
249
135
81
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
230
254
254
254
254
254
254
254
254
250
216
132
0
0
0
0
0
0
0
0
0
0
0
0
0
35
133
250
254
228
176
72
45
45
45
69
188
254
254
251
135
37
0
0
0
0
0
0
0
0
0
0
131
226
254
254
181
35
0
0
0
0
0
0
8
78
254
254
254
223
36
0
0
0
0
0
0
0
0
0
249
254
254
195
54
0
0
0
0
0
0
0
0
8
72
228
254
255
124
0
0
0
0
0
0
0
0
94
253
254
176
7
0
0
0
0
0
0
0
0
0
0
0
39
172
254
221
0
0
0
0
0
0
0
0
151
254
254
55
0
0
0
0
0
0
0
0
0
0
0
6
63
224
254
227
0
0
0
0
0
0
0
0
232
255
254
183
59
6
0
0
0
0
0
0
33
47
63
185
255
254
253
102
0
0
0
0
0
0
0
0
106
254
254
254
254
181
170
170
170
170
170
170
229
254
254
254
251
208
82
0
0
0
0
0
0
0
0
0
0
149
236
254
254
254
254
254
254
254
254
254
254
254
250
140
84
0
0
0
0
0
0
0
0
0
0
0
0
0
43
98
215
228
228
228
228
228
228
228
228
140
85
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
