0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
123
174
51
14
0
8
78
236
49
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
253
252
252
211
190
201
252
252
163
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
253
252
252
252
252
253
252
252
247
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
71
253
252
98
154
215
253
252
252
252
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
106
253
252
21
0
18
42
42
236
252
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
107
255
253
21
0
0
0
0
233
253
60
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
106
253
252
21
0
0
0
0
232
252
147
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
106
253
252
21
0
0
0
0
232
252
147
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
80
227
252
21
0
0
0
0
232
252
147
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
42
147
12
0
0
0
0
232
252
147
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
233
253
147
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
232
252
147
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
232
252
147
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
232
252
147
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
232
252
147
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
233
253
209
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
232
252
252
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
232
252
252
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
232
252
252
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
47
217
164
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
