0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
89
207
253
255
206
88
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
76
215
252
252
253
252
246
122
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
225
239
180
55
119
246
252
230
25
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
225
195
0
0
0
122
246
252
112
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
225
195
0
0
0
0
197
252
112
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
126
31
0
0
0
0
198
253
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
72
252
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
88
252
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
197
252
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
197
252
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
85
253
225
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
29
85
85
38
0
210
252
99
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
32
120
215
252
252
221
198
246
208
19
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
140
253
242
223
227
252
253
252
195
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
16
203
253
89
0
13
189
253
252
195
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
29
253
255
27
0
92
253
255
253
253
84
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
29
252
253
103
117
243
252
106
103
252
218
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
165
253
252
252
245
118
0
19
177
252
112
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
126
253
242
192
74
0
0
0
57
252
205
29
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
112
74
0
0
0
0
0
25
205
252
253
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
