0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
20
134
253
253
255
253
253
253
253
253
253
156
0
0
0
0
0
0
0
0
0
0
0
0
40
219
240
240
242
252
252
252
253
252
252
252
252
252
252
251
101
0
0
0
0
0
0
0
0
0
0
40
222
252
252
252
252
252
252
252
253
252
252
252
252
252
252
252
106
0
0
0
0
0
0
0
0
0
0
107
252
252
252
252
252
252
252
252
253
252
252
252
252
252
197
158
17
0
0
0
0
0
0
0
0
0
0
23
196
252
252
252
241
185
185
185
186
59
53
53
53
53
17
0
0
0
0
0
0
0
0
0
0
0
0
0
25
223
252
252
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
213
252
252
107
41
41
19
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
213
252
252
252
252
252
203
98
16
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
131
249
252
252
252
252
252
253
207
98
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
129
252
252
252
252
252
253
252
252
214
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
99
216
253
253
253
255
253
253
253
218
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
13
20
145
197
252
252
252
252
192
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
25
25
0
0
0
0
13
26
180
252
252
198
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
26
196
108
0
0
0
0
0
0
15
219
252
198
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
38
224
241
179
25
0
0
0
0
0
142
252
241
63
0
0
0
0
0
0
0
0
0
0
0
0
0
0
64
241
252
252
210
110
54
54
180
186
242
252
252
79
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
179
252
252
252
252
252
253
252
252
252
252
252
79
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
25
210
252
252
252
252
253
252
252
252
252
246
71
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
107
248
252
252
252
253
252
252
252
252
191
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
82
132
252
252
253
252
252
252
217
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
