0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
51
238
222
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
163
238
252
252
209
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
45
203
252
253
252
252
145
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
26
156
252
252
253
252
252
242
91
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
146
252
252
252
253
252
252
252
252
141
94
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
51
238
253
253
253
255
253
253
253
253
255
168
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
159
252
252
252
204
27
74
186
252
252
253
243
97
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
253
252
252
198
25
0
0
57
252
252
253
233
74
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
253
252
252
99
16
13
29
156
252
252
253
167
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
253
252
252
239
203
191
252
252
252
252
253
89
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
141
255
253
253
253
253
255
253
253
253
253
79
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
151
240
253
252
252
252
252
253
252
252
252
252
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
45
234
252
253
252
239
102
133
253
252
252
252
252
135
6
0
0
0
0
0
0
0
0
0
0
0
0
0
150
252
252
253
195
65
0
0
146
249
252
252
252
253
122
0
0
0
0
0
0
0
0
0
0
0
0
48
227
252
252
253
89
0
0
0
0
225
252
252
252
253
167
0
0
0
0
0
0
0
0
0
0
0
0
86
253
253
253
204
15
0
13
113
255
253
253
253
253
255
106
0
0
0
0
0
0
0
0
0
0
0
0
85
252
252
252
241
146
225
228
252
253
252
252
252
252
27
3
0
0
0
0
0
0
0
0
0
0
0
0
85
252
252
252
253
252
252
252
252
253
252
252
245
118
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
215
252
252
253
252
252
252
252
225
223
223
121
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
119
252
252
253
252
252
157
112
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
