nix-configs/other/assets/xenia.pnm

76805 lines
196 KiB
Plaintext

P3
# Created by GIMP version 2.10.34 PNM plug-in
160 160
255
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
114
114
114
130
130
130
61
61
61
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
28
28
194
194
194
248
248
248
249
249
249
227
227
227
117
117
117
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
146
146
146
250
250
250
253
253
252
252
252
252
255
255
255
228
228
228
101
101
101
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
53
53
53
209
209
209
255
255
255
225
225
225
163
162
162
249
249
249
255
255
255
223
223
223
69
69
69
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
124
124
124
209
209
209
217
217
217
161
161
161
38
38
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
128
128
246
246
246
252
252
252
188
187
186
166
163
159
172
171
170
250
250
250
253
253
253
201
201
201
56
56
56
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
53
53
53
168
168
168
246
246
246
255
255
255
255
255
255
254
254
254
162
162
162
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
212
212
212
255
255
255
237
237
236
172
170
165
230
226
217
187
184
179
194
194
194
253
253
253
251
251
251
170
170
170
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
71
71
71
196
196
196
251
251
251
255
255
255
234
234
233
222
221
221
255
255
255
229
229
229
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
117
117
117
251
251
251
255
255
255
175
175
173
210
208
199
231
227
218
226
222
213
142
140
136
216
216
215
255
255
255
248
248
248
132
132
132
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
83
83
83
215
215
215
253
253
253
253
253
253
216
216
215
109
109
107
146
146
145
254
254
254
246
246
246
95
95
95
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
199
199
199
255
255
255
233
234
233
167
164
159
232
228
219
231
227
218
232
228
219
192
188
181
98
97
96
230
230
229
255
255
255
232
232
232
98
98
98
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
122
122
122
227
227
227
255
255
255
250
250
250
195
195
195
121
120
117
199
196
190
150
149
146
241
241
241
251
251
251
154
154
154
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
101
101
101
237
237
237
254
254
254
189
188
187
216
212
205
232
228
219
232
228
219
231
227
218
230
226
217
119
118
113
139
139
139
245
245
245
254
254
254
194
194
194
42
42
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
110
110
110
235
235
235
255
255
255
248
248
248
171
171
171
100
99
97
212
206
200
232
228
219
171
168
164
221
221
221
254
254
254
198
198
198
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
163
163
163
251
251
251
243
243
243
183
181
177
227
223
214
232
228
219
232
228
219
232
228
219
232
228
219
200
196
189
16
14
16
190
190
190
254
254
254
249
249
249
138
138
138
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
118
118
118
236
236
236
255
255
255
246
246
246
161
161
159
67
66
64
203
199
193
234
229
221
233
229
220
204
201
194
198
198
197
254
254
254
228
228
228
83
83
83
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
53
53
53
212
212
212
255
255
255
222
222
221
189
186
180
231
227
218
232
228
219
232
228
219
232
228
219
232
228
219
227
223
214
109
108
104
63
63
62
224
224
223
255
255
255
232
232
232
93
93
93
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
130
130
130
235
235
235
255
255
255
243
242
242
152
152
151
48
47
46
180
177
171
231
227
219
234
229
223
234
229
222
221
217
211
176
175
173
251
250
250
245
245
245
117
117
117
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
98
98
98
248
248
248
254
254
254
184
183
180
216
212
204
231
227
218
231
227
218
232
228
219
233
229
220
233
228
220
231
227
218
172
168
163
12
11
12
131
131
130
246
246
246
254
254
254
199
199
199
46
46
46
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
148
148
148
244
244
244
255
255
255
244
244
243
148
148
147
26
26
26
137
135
130
230
224
218
234
230
222
234
230
223
234
229
223
230
225
218
160
157
154
246
246
246
255
255
255
153
153
153
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
176
176
176
255
255
255
243
243
242
156
154
149
231
228
219
231
227
218
232
228
219
232
228
219
233
229
220
232
228
219
233
229
220
206
203
195
71
70
68
33
33
33
187
187
186
253
253
253
247
247
247
144
144
144
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
155
155
155
244
244
244
255
255
255
237
237
237
136
136
135
0
0
0
95
94
91
216
212
205
233
229
223
234
230
223
235
230
224
235
230
224
235
230
225
166
163
159
224
223
222
255
255
255
209
209
209
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
46
46
46
235
235
235
255
255
255
198
198
197
202
200
193
231
227
217
231
227
218
231
227
218
233
229
220
233
229
220
233
229
220
233
229
220
227
223
215
117
115
111
0
0
0
74
74
73
234
233
233
255
255
255
232
232
232
98
98
98
110
110
110
124
124
124
92
92
92
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
165
165
165
246
246
246
255
255
255
236
236
235
126
126
125
15
15
15
49
48
46
195
192
185
232
228
220
234
230
224
235
230
224
235
230
224
235
230
224
236
231
225
191
187
182
185
184
184
255
255
255
233
233
233
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
148
148
148
250
250
250
250
250
250
161
161
159
228
224
215
231
226
218
232
228
219
231
227
218
233
229
220
233
229
220
233
229
220
233
229
220
234
229
220
171
168
162
11
10
12
0
0
0
141
140
140
251
251
251
255
255
255
249
249
249
253
253
253
254
254
254
249
249
249
211
211
211
132
132
132
46
46
46
0
0
0
0
0
0
0
0
0
42
42
42
178
178
178
251
251
251
255
255
254
230
230
230
112
112
111
0
0
0
20
20
19
148
147
141
228
223
214
233
229
222
234
229
223
235
230
224
235
230
224
234
229
223
234
229
223
214
209
203
146
145
144
255
255
255
251
251
251
102
102
102
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
34
34
34
201
201
201
254
254
254
225
225
225
188
187
181
230
226
217
231
227
218
232
228
219
232
228
219
233
229
220
233
229
220
233
229
220
234
230
221
233
229
220
212
209
200
28
27
27
1
1
3
43
43
43
200
200
199
254
254
254
255
255
255
255
255
254
247
246
246
255
255
255
255
255
255
246
246
246
200
200
200
110
110
110
0
0
0
0
0
0
166
166
166
248
248
248
254
254
254
221
221
221
101
101
100
0
0
0
0
0
0
88
87
83
215
211
203
234
230
221
234
229
222
234
229
223
234
229
223
235
230
224
234
229
223
234
229
223
232
227
221
127
126
124
245
245
245
254
254
254
156
156
156
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
90
90
231
231
231
253
253
253
197
197
196
211
208
198
231
226
218
231
228
219
231
227
218
232
228
219
233
229
220
233
229
221
232
228
221
234
230
221
233
228
219
231
227
218
102
100
98
0
0
0
4
4
5
93
92
92
224
224
224
211
211
209
137
133
131
100
92
88
159
157
155
233
233
233
253
253
253
254
254
254
245
245
245
206
206
206
211
211
211
250
250
250
255
255
255
226
226
226
87
86
86
6
6
6
2
2
2
0
0
1
184
180
175
229
223
216
223
219
211
234
229
223
234
229
223
235
230
224
235
230
224
234
229
223
234
229
223
235
230
223
156
155
150
223
223
222
255
255
255
203
203
203
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
141
141
141
253
253
253
249
249
249
176
175
171
223
219
210
231
227
218
232
228
219
232
228
219
232
228
219
233
229
220
233
228
221
232
227
221
233
229
220
233
229
220
233
228
219
166
163
158
0
0
0
0
0
2
15
5
2
88
65
48
121
77
38
147
96
55
153
100
58
127
81
44
107
88
78
185
184
183
236
236
236
255
255
255
255
255
255
255
255
255
255
255
255
221
220
221
89
89
89
0
0
0
2
2
2
0
0
0
115
112
109
210
206
200
164
159
154
202
197
192
233
228
223
235
230
224
235
230
224
235
230
224
235
230
224
234
229
223
233
228
220
190
188
182
196
196
196
255
255
255
219
219
219
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
193
193
193
255
255
255
234
234
234
170
168
163
231
226
217
232
228
219
232
228
219
232
228
219
232
228
220
234
229
222
234
229
222
233
228
222
233
229
220
233
229
220
231
228
219
163
161
154
0
0
0
10
5
5
87
57
33
142
92
53
154
100
55
157
101
56
157
100
56
157
101
57
149
97
54
130
89
58
120
108
102
188
188
188
249
249
249
225
225
224
175
173
171
110
99
94
71
45
28
54
35
22
22
11
7
4
0
0
106
100
96
141
117
103
136
103
83
216
212
206
235
230
224
234
229
223
234
229
223
235
230
224
236
231
225
235
230
223
233
229
220
210
206
200
176
176
176
255
255
255
230
230
230
61
61
61
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
79
79
79
241
241
241
255
255
255
190
190
189
206
203
196
231
227
218
232
228
219
232
228
219
233
229
220
233
228
220
234
229
223
234
229
221
233
229
220
233
229
220
230
226
218
171
169
163
24
23
23
3
1
3
79
52
31
141
92
53
153
99
55
155
100
56
157
101
55
158
101
56
159
102
56
158
101
57
158
101
58
152
99
58
114
79
52
106
98
95
108
84
69
147
98
60
158
102
60
159
103
59
156
102
60
148
97
59
141
92
54
151
99
58
155
102
60
164
145
134
228
224
217
234
230
224
234
229
223
235
230
224
235
230
224
235
230
224
233
228
223
233
229
221
222
219
210
162
161
161
252
251
251
241
241
241
113
113
113
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
164
164
164
254
254
254
247
247
246
150
150
146
228
224
215
232
228
219
233
229
220
232
228
219
233
229
220
233
229
221
233
228
223
233
229
221
233
229
220
231
227
218
174
172
166
46
46
45
0
0
2
78
51
30
143
93
54
155
99
55
156
100
55
157
101
56
158
101
56
160
103
58
159
102
57
159
102
57
159
101
57
158
101
56
156
102
57
136
88
50
113
75
46
153
99
58
159
103
58
160
103
58
160
103
58
160
102
58
159
103
58
159
103
58
144
104
77
208
201
196
235
230
224
234
229
223
234
229
223
234
229
223
235
230
224
235
230
224
233
229
222
234
229
222
228
224
215
167
166
165
246
246
246
245
245
245
132
132
132
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
28
28
215
215
215
255
255
255
215
215
215
172
172
164
232
228
218
233
229
220
233
229
220
232
228
219
233
229
220
233
229
221
234
229
223
232
228
221
233
228
219
182
179
172
41
40
39
0
0
2
62
41
24
141
91
52
154
100
55
157
101
55
158
100
56
158
100
56
159
102
57
159
102
57
159
102
57
159
102
57
159
102
57
159
102
57
159
102
57
157
102
56
150
97
56
122
81
50
158
103
58
159
102
57
159
102
57
158
101
56
159
102
57
140
91
51
178
173
167
234
228
221
235
230
223
235
230
224
234
229
223
235
230
224
235
230
224
235
230
224
233
228
223
234
230
224
229
225
218
172
171
168
240
240
240
250
250
250
149
149
149
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
105
105
105
240
240
240
253
253
253
170
170
170
169
167
161
232
228
220
232
228
219
232
228
219
233
229
220
233
229
220
233
229
221
233
228
222
232
227
219
193
190
184
55
55
53
0
0
2
8
4
4
124
82
49
157
101
57
157
100
55
158
101
56
158
101
56
158
101
56
158
101
56
159
102
57
159
102
57
159
102
57
159
103
58
159
102
57
159
102
57
158
102
57
158
103
57
152
99
56
152
99
57
159
102
57
159
102
57
159
102
56
158
101
58
140
90
53
145
122
109
204
199
193
232
228
221
234
229
223
234
229
223
234
229
223
235
230
224
234
229
223
234
229
222
234
229
224
230
226
219
176
174
170
236
235
235
252
252
252
158
158
158
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
155
155
155
251
251
251
243
243
242
120
121
120
126
126
121
232
228
219
232
228
219
232
228
219
233
229
220
234
230
221
233
229
220
233
229
220
218
213
206
89
87
85
4
4
4
1
1
3
25
12
9
145
95
57
157
102
56
157
100
55
159
101
56
158
101
56
158
101
56
158
101
56
158
101
56
159
102
57
159
102
57
158
101
56
159
102
57
158
101
56
159
102
57
159
103
57
159
102
57
159
103
57
160
103
58
160
103
58
160
103
58
160
103
58
159
102
58
155
102
57
142
107
84
202
197
190
235
230
223
235
230
224
235
230
224
235
230
224
234
229
223
235
230
224
234
229
223
232
228
219
183
182
176
233
233
232
254
254
254
167
167
167
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
173
173
173
254
254
254
232
232
231
54
54
53
66
65
63
210
207
199
232
228
219
232
227
221
233
228
221
233
229
220
233
229
220
233
229
220
188
187
180
0
0
0
1
1
3
26
10
6
46
26
15
154
100
58
153
99
57
149
96
56
159
102
56
158
101
56
158
101
56
158
101
56
159
102
57
158
101
56
159
102
57
159
102
57
160
103
58
159
102
57
159
102
57
160
103
58
160
103
58
160
103
58
159
102
57
159
102
57
159
102
57
159
102
57
156
101
56
158
102
57
158
102
57
135
106
88
221
216
210
235
231
224
235
230
224
234
229
223
234
229
223
234
229
223
233
229
222
232
228
219
187
184
178
228
228
228
255
255
255
185
185
185
28
28
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
28
28
183
183
183
255
255
255
226
226
226
29
30
29
23
23
24
142
140
135
226
223
214
234
229
223
233
229
222
233
229
220
233
229
220
233
229
221
135
134
129
0
0
0
17
5
4
116
54
27
108
54
29
155
101
59
136
87
52
113
73
45
159
102
57
158
101
56
157
101
56
157
101
56
157
101
55
158
101
56
158
101
56
159
102
57
159
102
57
159
102
57
159
102
57
159
102
57
159
102
57
160
103
58
159
102
57
160
103
58
160
103
58
159
102
57
140
91
54
154
100
57
156
100
56
146
96
60
171
163
154
235
231
224
235
230
224
234
229
223
234
229
223
234
229
223
235
230
224
233
228
222
185
181
176
219
219
218
255
255
255
195
195
195
38
38
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
28
28
183
183
183
255
255
255
230
229
229
40
39
39
10
11
13
31
31
31
183
181
174
232
227
220
233
228
221
233
229
220
233
229
220
227
223
214
65
64
62
3
0
0
104
48
25
178
79
39
149
69
34
138
89
52
141
84
49
114
61
36
151
100
59
158
101
56
157
101
56
156
100
56
158
101
57
158
100
56
158
101
57
157
101
56
157
101
56
159
102
57
158
101
56
160
103
58
160
103
58
160
103
58
159
102
57
160
103
58
156
102
57
160
102
58
135
88
52
151
100
59
154
100
55
123
82
50
123
116
109
226
222
216
235
230
225
233
228
223
235
230
224
235
230
224
235
230
224
233
228
222
178
175
170
213
212
211
255
255
255
196
196
196
38
38
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
173
173
173
254
254
254
238
238
238
100
100
100
13
14
16
5
7
10
59
58
57
196
193
187
233
230
221
233
229
220
234
229
220
204
201
194
20
17
17
94
41
21
171
79
39
182
81
37
174
80
39
108
66
41
141
77
44
155
74
38
122
80
47
156
101
56
156
100
56
132
88
52
142
92
54
158
101
57
157
100
55
154
99
55
150
98
56
158
101
58
159
102
57
160
103
58
160
103
58
159
102
57
160
103
58
161
104
59
131
86
52
159
103
58
134
87
52
147
97
57
143
94
55
139
91
56
154
152
150
215
211
205
234
229
222
233
228
222
235
230
224
235
230
224
235
230
224
222
217
211
97
96
94
206
206
206
255
255
255
202
202
202
46
46
46
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
125
125
125
243
243
243
253
253
253
185
185
185
39
39
39
10
10
12
8
10
12
75
73
71
137
134
128
138
135
129
139
135
130
127
122
118
70
32
19
162
75
37
181
82
37
182
81
37
182
81
38
146
69
36
134
64
36
174
80
38
137
67
38
122
78
47
152
100
58
147
95
56
84
55
34
132
88
53
157
101
56
152
99
56
128
84
51
155
100
57
159
102
57
160
103
58
160
103
58
159
102
57
159
102
57
160
103
59
122
79
49
159
103
59
128
84
51
147
97
56
129
86
53
134
90
53
142
139
136
231
227
220
233
228
220
234
229
223
235
230
224
234
230
223
230
226
218
135
133
130
63
64
63
226
226
226
255
255
255
201
201
201
42
42
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
197
197
254
254
254
248
248
248
129
130
129
0
0
0
9
10
11
54
25
17
128
62
35
141
64
37
122
56
31
84
37
21
142
65
35
180
80
38
179
81
38
179
81
37
176
80
37
164
75
37
149
69
37
146
67
33
147
68
35
127
61
35
93
52
32
114
70
42
100
64
44
59
32
19
131
85
51
153
100
57
108
70
43
146
96
56
159
102
56
160
103
58
160
103
58
158
101
56
159
102
57
157
102
59
114
75
48
155
101
58
126
83
51
150
97
58
128
85
50
108
72
44
63
61
60
198
194
189
232
228
219
235
229
224
235
230
224
224
220
215
147
144
141
42
41
41
169
169
169
250
250
250
250
250
250
156
156
156
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
79
79
79
227
227
227
255
255
255
233
233
233
105
105
104
0
1
3
6
6
8
60
26
15
113
50
29
158
71
34
170
76
36
178
81
38
179
80
37
175
79
36
156
71
36
108
49
25
81
39
23
88
46
30
96
51
31
96
51
32
91
46
31
87
44
29
106
52
30
147
70
36
154
70
36
124
61
34
133
88
52
126
76
47
123
76
47
160
103
58
159
102
57
159
102
57
159
102
57
159
102
57
145
94
55
106
70
44
145
94
55
117
75
47
134
88
53
103
67
43
108
55
31
30
4
0
130
128
124
230
225
218
236
230
225
213
209
203
129
126
124
0
0
0
156
156
155
247
246
246
255
255
255
215
215
215
64
64
64
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
131
131
131
246
246
246
254
254
254
215
215
215
80
80
80
7
8
9
46
20
13
141
66
36
176
79
38
181
81
37
181
82
37
179
81
37
149
69
36
67
31
18
95
51
33
120
65
43
127
68
42
131
68
43
132
70
42
133
70
41
128
69
41
97
52
32
86
41
22
162
76
38
175
80
39
112
64
39
134
74
46
139
70
39
152
100
58
159
103
58
159
102
57
159
102
57
158
102
57
129
79
49
116
76
50
124
70
44
138
78
46
92
56
34
141
68
37
171
79
38
128
59
31
29
30
29
214
210
205
178
175
170
79
78
76
15
15
16
131
131
131
244
244
244
255
255
255
233
233
233
90
90
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
125
125
125
230
230
230
255
255
255
254
254
254
168
168
167
46
24
19
142
66
35
178
81
39
180
80
38
182
81
37
181
81
38
158
72
36
74
36
21
112
59
38
109
57
36
95
51
32
84
45
28
73
39
26
81
43
27
108
57
36
126
67
41
135
72
44
113
60
37
96
46
27
168
77
38
153
72
37
135
64
33
161
76
41
139
90
54
159
102
57
158
102
57
159
102
59
143
92
55
123
63
39
106
59
40
152
72
38
120
62
37
133
63
37
182
82
39
179
80
37
167
77
38
72
31
11
62
60
58
0
0
0
0
0
0
117
117
117
233
232
232
255
255
255
237
237
237
128
128
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
34
34
34
77
77
77
113
113
113
190
190
190
241
241
241
255
255
255
253
253
253
203
202
202
90
87
86
137
65
35
178
80
37
179
82
37
180
81
38
182
81
38
171
78
38
93
44
24
115
61
40
136
70
44
137
71
43
135
71
43
133
69
42
125
65
40
103
54
34
63
31
22
52
26
17
78
42
27
108
58
37
100
55
37
116
57
32
177
80
39
174
79
39
171
80
40
135
87
53
159
102
57
158
102
56
140
92
55
102
60
40
81
39
24
59
30
21
73
36
22
45
23
17
83
38
23
136
63
34
175
80
39
179
80
38
117
54
25
10
1
0
0
0
0
108
107
107
234
234
234
255
255
255
247
247
247
150
150
150
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
90
90
213
213
213
251
251
251
254
254
254
255
255
255
254
254
254
239
239
238
169
169
168
58
38
33
136
63
32
178
82
38
180
81
36
180
82
37
180
81
37
180
82
37
134
62
33
100
53
34
135
70
43
136
71
43
137
72
44
137
72
44
136
71
44
137
73
44
136
72
43
136
70
44
119
63
41
88
45
30
62
30
20
69
37
25
63
32
21
154
71
38
182
81
38
168
80
40
134
87
52
156
101
56
140
90
55
70
46
30
40
37
35
63
60
57
70
68
66
71
70
67
70
69
66
64
63
60
49
48
46
90
47
31
161
74
37
143
65
34
35
20
17
121
121
121
234
234
234
255
255
255
244
244
244
144
144
144
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
182
182
182
255
255
255
255
255
255
254
254
254
236
236
235
190
190
189
110
109
108
91
38
19
149
69
36
177
80
39
179
81
35
180
81
37
179
81
38
179
81
37
173
80
40
84
40
25
127
67
42
136
71
43
137
72
44
137
72
44
137
72
44
140
75
46
144
78
49
144
77
49
138
74
46
137
72
43
138
73
45
132
70
43
128
68
41
116
62
40
107
49
26
180
82
40
163
79
39
134
89
53
119
77
46
57
40
30
53
53
50
71
68
65
79
75
72
78
77
73
78
74
71
78
75
72
80
77
74
75
74
70
63
64
61
75
44
35
131
62
35
120
115
114
236
236
236
255
255
255
246
246
246
155
155
155
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
204
204
204
255
255
255
254
254
254
214
213
213
96
96
95
66
54
53
136
67
40
170
77
38
175
79
37
176
80
39
177
80
38
179
80
37
179
80
38
180
80
38
146
68
35
86
44
29
136
71
43
136
71
43
137
72
44
137
72
44
137
72
44
138
74
45
139
77
49
125
74
52
106
69
55
91
62
52
104
64
51
129
70
45
136
71
43
133
72
44
89
41
23
173
78
39
135
65
33
108
60
39
68
36
24
58
55
52
70
69
65
73
71
67
82
78
75
84
82
78
92
89
86
98
94
91
98
95
92
87
85
82
75
75
71
69
67
64
54
34
27
141
139
139
255
255
255
253
253
253
155
155
155
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
157
157
157
251
251
251
255
255
255
250
250
250
216
215
215
177
177
175
157
147
145
142
120
114
109
73
61
100
47
25
165
74
37
179
80
37
179
80
38
179
81
39
110
49
25
111
58
37
136
71
42
136
71
42
135
71
43
136
71
44
121
64
40
97
52
33
55
30
22
82
81
78
157
154
149
161
159
154
150
148
143
103
80
72
136
72
43
135
72
43
94
46
28
168
76
36
169
76
37
154
71
36
65
47
41
69
69
65
70
69
65
76
75
71
83
79
76
89
86
82
97
93
90
106
102
99
104
100
97
100
97
93
79
78
74
74
74
70
59
59
56
83
83
83
248
248
248
254
254
254
142
142
142
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
53
53
53
169
169
169
240
240
240
254
254
254
255
255
255
254
254
254
248
248
248
222
222
222
85
75
72
145
68
32
179
80
38
179
80
37
178
80
38
179
81
38
108
48
24
118
62
38
136
71
43
134
70
41
108
57
37
78
41
26
43
21
14
3
1
2
7
9
9
117
115
110
171
169
162
170
167
162
171
168
162
135
125
120
131
69
39
135
72
43
96
50
31
137
65
34
156
72
38
137
64
32
59
57
52
68
67
63
70
69
65
78
77
73
84
80
77
91
87
84
98
94
91
109
105
102
109
105
102
106
102
99
86
83
80
76
74
70
73
72
68
67
66
66
223
222
222
255
255
255
233
233
233
141
141
141
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
73
73
73
168
168
168
244
244
244
255
255
255
248
248
248
135
133
132
118
54
29
156
70
37
174
79
37
180
80
37
179
80
38
180
81
39
128
59
30
112
58
36
136
71
43
134
71
42
132
71
44
111
61
39
43
21
15
0
0
0
72
70
69
157
154
148
170
167
160
170
167
160
170
167
160
162
149
140
134
69
37
136
71
43
78
41
25
109
49
26
110
51
28
60
31
21
59
58
55
64
63
59
70
69
65
74
73
69
78
77
74
89
87
83
99
95
92
112
108
105
114
110
107
111
107
104
99
95
92
78
74
71
74
72
68
51
50
48
161
161
161
248
248
248
255
255
255
241
241
241
90
90
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
93
93
93
203
203
203
251
251
251
252
252
252
180
181
180
55
39
36
140
67
38
169
78
37
179
80
38
179
80
37
179
80
37
179
80
38
154
71
36
85
44
28
135
72
44
134
72
43
135
72
42
135
71
43
116
62
40
98
77
68
154
150
144
170
167
160
170
166
159
170
167
161
170
168
162
161
144
133
135
68
39
129
69
44
92
42
22
177
81
39
179
80
39
111
53
30
58
58
54
64
63
60
69
68
65
73
72
69
74
73
71
82
80
78
98
94
91
110
106
103
115
111
108
114
110
107
108
104
101
85
80
77
74
72
68
53
52
48
56
55
55
185
185
183
254
254
254
255
255
255
128
128
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
130
130
130
238
238
238
253
253
253
254
254
254
214
213
213
89
68
63
146
68
36
173
78
36
177
80
36
179
80
38
178
79
37
179
80
38
179
80
37
177
79
40
94
46
27
120
65
40
135
71
43
135
71
43
135
71
43
134
70
42
133
74
48
147
115
100
163
151
141
166
157
148
161
145
134
148
117
104
136
83
62
135
71
44
98
51
33
133
63
33
181
82
37
181
81
37
138
63
33
58
56
52
64
63
61
66
65
63
72
71
69
74
73
71
78
77
74
92
90
87
106
102
99
114
110
107
112
108
105
110
106
103
92
89
86
76
74
70
61
58
55
160
161
160
246
246
246
255
255
255
251
251
251
108
108
108
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
90
90
230
230
230
255
255
255
252
251
251
207
207
207
122
89
80
159
72
34
175
78
37
178
80
37
177
80
37
178
79
37
179
80
38
179
80
38
178
80
38
179
80
39
154
71
36
91
48
30
129
69
42
135
71
42
134
70
42
134
70
42
135
71
43
134
70
41
134
73
43
135
75
47
133
66
35
134
67
36
134
68
39
118
62
39
57
29
18
128
62
35
141
64
32
157
71
35
139
64
34
60
51
47
64
63
60
64
63
60
68
67
65
73
72
70
75
74
72
85
85
83
96
93
91
105
101
98
106
103
100
103
101
97
86
85
81
76
74
70
63
59
57
172
171
171
254
254
254
255
255
255
235
235
235
135
135
135
42
42
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
124
124
124
251
251
251
250
250
250
164
163
162
127
81
68
169
76
36
177
79
36
176
79
36
177
80
37
179
82
39
179
80
38
179
80
38
179
82
40
178
82
41
179
81
40
177
80
39
140
65
35
84
43
27
127
68
43
135
71
44
134
72
45
133
74
47
136
82
58
143
99
81
149
114
98
152
124
111
154
130
118
148
122
111
67
41
34
11
7
6
8
4
3
17
6
4
47
20
11
60
25
15
35
29
28
65
64
60
63
62
60
64
63
61
69
68
66
74
73
71
78
77
75
88
87
85
92
91
88
93
93
89
84
83
79
74
73
69
73
71
67
52
40
36
136
98
89
212
209
207
254
254
254
255
255
255
244
244
244
190
190
190
50
50
50
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
117
117
117
246
246
246
253
253
253
204
204
204
121
92
85
159
73
35
176
79
37
177
80
37
178
80
37
179
80
38
180
80
38
179
80
38
181
93
59
208
167
148
201
153
134
191
135
115
190
133
113
158
131
119
97
87
80
124
100
89
150
133
123
163
153
145
170
165
156
171
167
159
170
166
159
168
165
158
156
153
147
115
113
110
165
163
159
94
93
90
0
1
1
4
4
4
2
2
2
64
63
61
121
119
115
52
53
49
64
63
59
63
62
60
64
63
61
69
68
66
72
71
69
75
74
72
80
79
77
77
76
73
69
68
64
70
69
65
58
58
55
99
47
27
172
79
40
150
78
56
192
184
183
246
245
246
255
255
255
244
244
244
114
114
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
61
61
61
202
202
202
254
254
254
254
254
254
215
215
215
119
106
102
139
60
23
175
79
37
177
81
37
179
80
38
179
80
38
179
80
37
179
82
42
196
141
122
231
220
209
233
225
216
232
226
215
231
226
217
209
205
197
168
164
160
128
126
122
105
102
99
120
117
114
131
129
125
132
129
125
120
118
113
133
132
127
202
199
192
233
228
220
202
198
192
91
90
87
0
0
0
69
68
66
185
182
176
222
218
211
134
132
127
50
50
47
65
64
62
64
63
62
64
63
61
66
65
63
66
65
63
66
65
63
65
63
61
64
63
60
60
59
55
83
46
33
168
77
39
177
80
37
143
66
32
109
71
62
197
197
197
253
253
253
250
250
250
125
125
125
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
73
73
73
201
201
201
251
251
251
254
254
254
236
236
236
141
138
138
118
63
45
165
76
38
177
79
38
178
79
37
178
80
38
178
81
38
179
81
40
204
160
144
231
221
213
232
226
218
232
227
218
231
227
218
230
226
217
224
220
211
200
196
188
168
165
159
150
148
143
150
148
144
183
180
175
225
221
214
233
229
220
233
229
220
233
229
220
216
212
204
151
149
144
211
208
201
231
227
218
232
228
219
219
217
209
128
127
123
65
64
63
66
65
62
67
66
62
67
66
62
65
64
61
64
63
60
64
64
61
60
59
56
82
46
35
162
74
38
181
82
40
181
82
38
132
62
34
143
136
134
240
240
240
254
254
254
255
255
255
226
226
226
90
90
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
28
28
170
170
170
242
242
242
255
255
255
246
246
246
175
175
174
98
69
64
137
60
22
166
75
36
176
81
38
179
80
37
179
80
37
176
80
37
203
160
144
228
220
210
231
228
219
232
228
219
232
228
219
232
228
219
233
228
220
233
229
220
231
228
218
188
185
178
159
156
152
217
214
206
234
230
222
233
229
220
234
230
221
219
214
208
192
189
182
232
229
220
234
230
221
234
229
222
228
224
218
177
176
170
154
152
149
131
129
126
91
89
88
52
51
49
42
41
38
50
50
47
101
99
96
153
151
147
194
159
147
190
112
84
182
85
43
183
82
39
183
83
39
162
75
40
161
137
133
216
215
215
250
250
250
255
255
255
210
210
210
42
42
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
28
28
126
126
126
230
230
230
255
255
255
251
251
251
218
218
218
138
135
134
81
46
36
109
54
33
130
62
36
137
64
33
148
68
34
187
132
112
228
219
209
232
228
219
232
228
219
233
229
220
233
229
220
232
228
219
233
229
220
231
227
218
227
223
214
216
211
204
179
176
169
171
169
163
184
182
176
169
167
160
141
140
136
156
155
150
150
148
145
201
197
192
207
203
197
167
165
159
176
172
164
214
210
202
227
223
215
219
214
207
207
203
196
198
194
187
206
202
195
220
214
207
232
227
221
235
227
219
230
212
200
202
146
122
182
81
36
183
82
38
182
82
37
175
78
35
150
93
76
184
184
183
253
253
253
238
238
238
93
93
93
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
122
122
122
210
210
210
233
233
233
253
253
253
255
255
255
255
255
255
252
252
252
234
233
233
205
204
204
181
180
179
107
105
104
140
99
84
207
193
180
224
219
210
231
227
218
232
228
219
232
228
219
232
228
219
233
229
220
232
228
219
233
229
220
232
228
220
232
228
219
230
227
217
222
219
210
162
159
155
180
179
172
205
201
195
203
199
193
186
184
178
134
133
128
184
181
172
215
211
201
228
223
214
231
227
218
232
228
220
234
230
221
234
229
223
234
228
222
233
228
221
234
229
223
235
228
220
226
207
196
195
135
113
182
85
44
182
81
37
169
76
37
165
75
37
147
74
49
137
121
118
228
228
228
255
255
255
227
227
227
66
66
66
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
64
64
64
225
225
225
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
234
233
233
85
79
78
111
94
88
100
97
94
152
149
144
228
224
215
232
228
219
233
229
220
232
228
219
233
229
220
232
228
219
233
229
220
233
229
222
233
228
221
233
229
220
232
228
219
225
221
213
227
223
213
229
225
215
228
224
214
224
220
211
214
211
202
227
223
214
229
225
216
232
228
219
233
229
220
233
229
220
234
230
221
234
230
222
234
229
222
233
228
220
233
223
213
210
172
156
186
103
73
182
79
32
184
82
38
183
82
38
127
60
33
79
69
67
187
187
187
240
240
240
255
255
255
246
246
246
146
146
146
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
85
85
244
244
244
255
255
255
230
230
229
254
253
253
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
235
234
234
209
209
209
227
227
227
236
236
235
189
188
188
205
200
194
231
226
217
232
228
219
232
228
219
233
229
220
234
230
221
234
230
221
234
229
223
232
228
221
233
229
220
231
227
218
230
226
217
229
225
216
229
225
216
227
223
214
228
224
215
227
223
214
230
226
217
231
227
218
233
229
220
233
229
220
233
229
220
234
230
220
232
225
217
225
207
195
209
173
161
188
117
93
177
86
49
175
80
37
174
80
39
167
79
40
147
69
36
107
58
40
59
57
57
183
183
182
252
252
252
252
252
252
161
161
161
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
61
61
61
224
224
224
255
255
255
203
203
203
206
206
206
253
253
253
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
252
252
252
181
180
180
123
120
117
217
213
205
220
216
208
232
228
218
233
229
220
234
229
222
234
229
223
234
229
223
234
229
222
234
230
222
233
229
221
232
228
219
231
227
218
232
228
219
232
228
219
231
227
218
230
226
217
231
227
218
232
228
219
233
229
220
234
229
221
233
229
221
234
229
220
227
214
202
187
128
106
139
64
30
166
75
38
144
68
39
94
46
29
75
49
44
127
125
125
154
155
155
181
180
180
209
208
208
235
235
235
254
254
254
237
237
237
98
98
98
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
34
34
34
190
190
190
255
255
255
235
235
235
134
127
122
170
166
163
237
237
236
254
254
254
255
255
255
255
255
255
255
255
255
255
255
255
249
249
249
182
181
180
110
87
72
76
65
59
157
154
151
147
144
140
231
227
217
233
229
220
233
229
221
234
229
222
233
228
222
234
229
223
235
230
224
235
230
224
234
230
222
232
228
219
233
229
220
233
229
220
232
228
219
231
227
218
231
227
218
231
227
218
233
228
221
231
222
214
213
197
187
184
159
146
158
121
107
161
92
67
140
69
43
67
32
21
82
43
30
59
35
29
59
59
58
219
219
218
251
251
251
255
255
255
255
255
255
255
255
255
249
249
249
173
173
173
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
132
132
132
245
245
245
253
253
253
182
179
178
134
92
60
126
96
78
167
160
157
205
203
201
218
217
215
215
213
213
194
190
188
131
119
112
119
80
52
121
81
51
110
76
52
60
51
45
56
47
42
204
201
193
232
228
218
232
228
219
232
228
220
233
228
222
234
229
223
235
230
224
235
230
224
234
229
223
234
230
221
233
229
220
233
229
220
231
227
218
232
228
219
232
228
219
231
227
218
226
221
213
121
114
109
134
130
129
175
174
173
195
195
194
169
167
167
145
139
138
168
168
167
231
231
230
238
238
238
245
245
244
254
254
254
253
253
253
234
234
234
212
212
212
190
190
190
114
114
114
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
64
64
64
219
219
219
255
255
255
240
240
239
140
131
126
132
85
49
141
89
46
130
80
37
128
80
43
125
78
42
128
78
36
133
85
48
136
88
54
137
90
55
124
83
55
88
60
40
87
60
42
140
138
133
229
225
216
230
226
217
232
228
219
232
228
220
234
230
222
234
229
223
233
229
221
233
229
221
233
229
220
232
228
219
232
228
219
232
228
219
231
227
218
231
227
218
231
227
218
228
223
214
122
121
119
250
250
250
255
255
255
255
255
255
255
255
255
253
253
253
247
247
247
254
254
254
255
255
255
255
255
255
251
251
251
208
208
208
88
88
88
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
118
118
118
248
248
248
255
255
255
233
232
232
114
104
100
116
78
52
133
86
51
149
96
55
150
96
55
138
90
55
126
82
49
146
94
53
137
90
55
150
98
57
103
70
46
123
83
55
80
77
75
208
204
196
232
228
219
231
227
218
231
227
218
232
228
220
233
228
222
233
229
221
233
229
219
233
229
220
233
229
220
233
229
220
233
229
220
232
228
219
231
227
218
205
203
195
224
220
211
138
137
134
248
248
247
255
255
255
231
231
231
237
237
237
246
246
246
250
250
250
245
245
245
184
184
184
168
168
168
114
114
114
56
56
56
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
173
173
173
247
247
247
255
255
255
231
231
231
162
155
153
125
96
79
127
84
48
119
78
48
129
85
51
146
95
54
144
94
52
156
101
57
138
91
53
114
78
51
116
79
52
56
41
32
166
162
158
229
225
217
232
228
219
232
228
219
232
228
219
232
228
219
232
228
219
231
227
218
232
228
219
232
228
219
232
228
219
232
228
219
232
228
219
231
227
218
137
136
132
128
129
129
135
136
136
240
240
239
254
254
254
159
159
159
0
0
0
101
101
101
140
140
140
104
104
104
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
38
38
38
175
175
175
251
251
251
255
255
255
247
247
247
182
179
178
106
72
44
149
95
54
154
98
57
152
98
56
157
101
57
144
93
54
86
56
36
122
82
52
102
68
43
111
75
48
102
97
93
223
219
210
232
228
219
232
228
219
231
227
218
232
228
219
232
228
219
232
228
219
232
228
219
232
228
219
232
228
219
233
229
220
232
228
219
232
228
219
202
199
192
196
196
195
241
241
241
252
252
252
254
254
254
142
142
142
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
79
79
79
214
214
214
254
254
254
251
251
251
203
200
198
115
84
65
118
78
49
149
96
57
150
97
54
157
101
56
146
94
55
104
68
42
137
89
52
133
87
54
135
90
53
130
85
50
75
49
29
193
188
181
232
227
218
231
227
218
233
229
220
232
228
219
232
228
219
231
227
218
232
228
219
232
228
219
231
227
218
231
227
218
232
228
219
233
229
220
225
221
212
176
175
171
246
246
246
255
255
255
242
242
242
110
110
110
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
199
199
199
254
254
254
252
252
252
190
185
182
126
93
72
123
82
50
146
96
54
147
95
53
157
102
57
150
97
57
106
70
44
137
89
54
139
89
53
144
94
55
148
95
56
133
88
53
56
38
24
123
121
117
226
221
212
231
227
218
231
227
218
230
226
217
231
227
218
232
228
219
231
227
218
231
227
218
233
229
220
233
229
220
233
229
220
233
229
220
234
230
221
196
194
187
194
194
192
255
255
255
255
255
255
235
235
235
169
169
169
115
115
115
38
38
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
167
167
167
252
252
252
254
254
254
195
192
189
128
89
61
125
82
49
150
97
54
151
97
53
154
100
56
149
98
55
104
69
42
122
81
51
125
82
48
146
96
56
155
100
55
144
93
53
105
71
44
78
55
38
62
59
55
199
195
187
228
224
215
228
224
215
229
225
216
230
226
217
231
227
218
232
228
219
232
228
219
233
229
220
232
228
219
233
229
220
234
229
222
233
229
222
232
228
221
151
150
146
194
194
194
248
248
247
255
255
255
251
251
251
247
247
247
229
229
229
185
185
185
108
108
108
53
53
53
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
108
108
108
238
238
238
255
255
255
216
214
213
134
97
73
129
84
50
150
96
54
155
100
55
153
99
54
151
97
56
109
72
42
98
67
42
125
84
50
143
93
53
147
95
53
144
93
53
129
84
49
103
69
46
108
73
48
53
43
37
172
170
162
229
225
216
230
226
217
230
226
217
230
226
217
231
227
218
232
228
219
233
229
220
232
228
219
233
229
219
233
229
221
234
230
223
235
230
224
236
229
224
229
225
218
185
183
177
172
172
170
214
214
214
243
243
242
253
253
253
255
255
255
255
255
255
248
248
248
213
213
213
174
174
174
154
154
154
137
137
137
105
105
105
64
64
64
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
38
38
38
190
190
190
254
254
254
242
241
240
154
135
123
125
81
46
143
93
53
158
101
56
151
98
55
153
100
57
94
60
35
69
46
28
111
74
43
149
97
55
145
94
54
147
95
53
133
86
48
133
88
53
112
75
47
99
65
41
102
99
95
214
210
201
228
224
215
230
226
217
230
226
217
230
226
217
231
227
218
231
227
218
233
229
220
232
228
219
233
229
221
233
229
222
234
229
223
234
230
222
235
230
223
235
230
224
235
230
224
221
217
210
187
184
179
141
140
139
146
147
146
196
196
196
240
240
240
254
254
254
255
255
255
254
254
254
251
251
251
246
246
246
239
239
239
231
231
231
203
203
203
141
141
141
50
50
50
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
64
64
64
228
228
228
255
255
255
207
204
201
127
82
46
121
78
46
158
102
56
155
100
56
151
97
55
115
75
45
72
49
30
113
74
43
147
96
53
141
91
53
147
95
53
144
94
53
142
93
52
120
79
46
106
73
47
105
100
95
210
206
198
228
224
215
229
225
216
230
226
217
231
227
218
231
227
218
231
227
218
232
228
219
233
229
220
233
229
220
233
228
220
233
228
222
235
230
224
235
230
222
235
230
223
236
231
225
235
230
224
236
230
223
235
230
223
197
193
187
59
60
61
47
52
55
81
84
85
162
162
162
216
216
216
234
234
233
240
240
240
245
245
245
251
251
251
255
255
255
255
255
255
253
253
253
221
221
221
144
144
144
59
59
59
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
99
99
99
249
249
249
254
254
254
155
145
139
118
78
44
147
96
54
157
101
56
150
97
54
143
93
54
75
50
30
112
73
43
136
88
49
145
94
54
131
86
50
148
96
54
139
90
53
141
92
53
89
59
37
113
107
102
209
204
197
229
225
216
229
225
216
229
225
216
230
226
217
231
227
218
230
226
217
231
227
218
232
228
219
232
228
219
232
228
219
233
229
220
233
229
221
234
229
223
235
230
224
235
230
224
234
229
223
235
230
224
234
230
224
232
228
222
160
158
153
36
40
42
34
39
42
38
46
48
26
37
40
46
53
54
80
84
84
113
115
114
134
136
136
158
160
159
186
187
186
225
225
225
253
253
253
255
255
255
250
250
250
209
209
209
102
102
102
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
132
132
132
255
255
255
247
246
246
110
91
78
128
84
49
151
97
54
154
99
54
151
98
55
107
70
43
84
55
34
127
82
46
145
95
55
124
80
46
146
96
55
137
88
50
133
86
50
111
73
46
107
103
99
216
212
204
231
226
218
230
225
216
229
225
216
230
226
217
231
227
218
231
227
218
231
227
218
231
227
218
231
227
218
231
227
218
231
227
218
233
229
220
233
229
221
233
228
222
234
229
223
235
230
224
235
230
224
234
229
223
235
229
224
221
216
209
105
105
102
31
35
38
31
36
39
32
36
39
31
36
39
35
40
43
31
37
39
36
42
44
35
41
44
39
46
48
51
58
59
81
85
86
146
147
147
227
227
227
252
252
252
254
254
254
230
230
230
85
85
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
134
134
134
255
255
255
244
244
243
94
78
65
128
84
48
153
100
55
152
99
54
140
92
53
71
47
29
121
80
48
137
90
50
133
86
49
126
82
48
140
91
52
128
83
50
98
66
41
126
121
116
216
212
205
232
228
218
231
227
218
230
226
217
230
226
217
231
227
218
231
227
218
231
227
218
231
227
218
231
227
218
230
226
217
231
227
218
232
228
219
233
229
219
233
229
220
233
228
222
234
229
223
234
229
223
234
229
223
234
229
223
234
229
223
183
180
175
32
37
39
28
33
36
29
34
37
32
37
40
33
38
41
33
38
41
31
36
39
33
38
41
32
37
40
34
41
44
34
41
44
34
42
44
41
50
52
76
82
82
182
182
182
247
247
247
254
254
254
213
213
213
77
77
77
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
118
118
118
255
255
255
251
251
251
99
92
87
125
80
45
155
99
55
152
98
55
105
68
40
95
64
39
132
86
49
129
84
46
132
86
50
134
88
53
117
78
49
69
43
23
120
117
113
217
213
206
231
227
218
231
227
218
230
226
217
229
225
216
230
226
217
231
227
218
231
227
218
231
227
218
231
227
218
229
225
216
230
226
217
231
227
218
231
227
218
232
228
219
232
228
220
233
229
221
233
228
222
234
229
223
235
230
222
234
230
223
215
210
204
78
78
77
23
29
32
26
31
34
31
36
39
32
36
39
32
37
40
31
36
39
33
38
41
32
37
40
34
39
42
37
43
46
36
44
46
35
43
45
41
49
51
51
59
61
70
75
77
185
185
185
252
252
252
254
254
254
196
196
196
38
38
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
98
98
98
250
250
250
254
254
254
130
129
127
126
80
42
156
99
55
145
94
55
71
45
27
112
75
44
130
85
48
134
87
50
127
83
50
95
65
42
41
31
25
0
3
8
162
160
156
233
229
220
231
227
218
230
226
217
230
226
217
229
225
216
230
226
217
231
227
218
231
227
218
231
227
218
231
227
218
230
226
217
230
226
217
230
226
217
230
226
217
232
228
219
232
228
219
233
229
220
233
229
222
234
229
223
233
228
220
223
218
212
119
118
115
31
35
38
27
32
35
28
33
36
28
33
36
25
29
32
25
30
33
30
35
38
29
34
37
31
36
39
35
40
43
38
43
46
39
48
50
37
45
47
40
48
50
45
53
55
50
57
59
63
70
71
197
197
196
254
254
253
254
254
254
190
190
190
50
50
50
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
69
69
69
233
233
233
254
254
254
179
177
175
127
79
36
155
100
55
133
85
49
73
48
30
112
75
46
134
88
51
133
88
53
82
54
33
27
24
22
21
24
27
14
19
22
104
103
99
230
225
217
230
226
217
230
226
217
230
226
217
230
226
217
229
225
216
231
227
218
231
227
218
230
226
217
230
226
217
229
225
216
229
225
216
229
225
216
231
227
218
231
227
218
232
228
219
233
229
220
233
229
221
233
228
220
226
222
213
146
143
139
39
43
45
31
35
39
28
33
36
24
29
32
26
30
33
21
25
28
25
29
32
27
32
35
29
34
37
31
36
39
35
40
43
35
41
44
35
43
45
37
46
48
41
49
51
44
52
54
45
53
55
54
61
63
82
87
87
208
208
208
254
254
254
250
250
250
170
170
170
28
28
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
50
50
50
209
209
209
255
255
255
210
208
207
128
81
39
151
98
54
125
80
46
96
64
42
94
64
41
86
57
36
46
31
20
26
27
26
23
27
28
23
27
28
16
20
21
58
59
58
198
195
188
230
226
217
230
226
217
231
227
218
230
226
217
229
225
216
230
226
217
231
227
218
230
226
217
229
225
216
227
223
214
226
222
213
229
225
216
231
227
218
232
228
219
231
227
218
233
228
220
232
227
219
221
218
210
138
136
132
36
39
41
25
30
33
28
33
36
28
33
36
24
29
32
24
28
31
22
26
29
24
29
32
29
34
37
31
36
39
35
40
43
34
39
42
33
38
41
33
42
44
37
45
47
41
49
51
44
52
54
43
51
53
46
54
55
47
56
57
88
92
91
220
221
220
255
255
255
246
246
246
126
126
126
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
28
28
184
184
184
255
255
255
229
227
227
132
89
54
146
95
53
107
71
43
47
37
29
27
21
20
13
16
18
19
23
23
19
25
26
20
25
25
18
22
23
17
21
22
26
29
30
142
141
136
226
222
212
229
225
217
229
225
216
229
225
216
228
224
215
229
225
216
229
225
216
228
224
215
227
223
214
226
222
213
226
222
213
229
225
216
231
227
218
231
227
218
231
227
218
231
227
218
204
200
191
118
119
114
31
36
39
27
32
35
22
27
31
24
29
32
24
29
32
29
34
37
28
33
36
26
31
34
24
29
32
30
35
38
32
37
40
36
43
45
36
41
44
33
39
42
35
43
45
36
44
46
37
45
47
38
45
48
41
49
51
42
50
52
46
54
56
45
54
55
107
110
109
233
233
233
255
255
255
236
236
236
108
108
108
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
167
167
167
253
253
253
235
235
234
141
107
85
129
86
51
47
38
34
21
25
29
22
26
29
18
22
25
15
20
21
16
20
21
17
21
22
17
21
22
16
20
21
17
21
24
49
51
51
166
163
157
227
223
213
228
224
216
229
225
216
228
224
215
230
226
217
229
225
216
228
224
215
228
224
215
227
223
214
225
221
212
228
224
215
230
226
217
231
225
216
220
216
208
163
161
156
82
83
81
29
35
38
30
35
38
25
30
31
21
26
29
20
25
28
22
27
30
26
31
35
28
33
36
28
33
36
24
29
31
27
32
35
30
35
38
32
37
40
35
40
43
34
39
42
33
39
42
35
43
44
34
42
44
38
44
46
38
45
47
43
51
53
44
52
54
46
54
56
47
55
56
139
140
140
243
243
243
254
254
254
220
220
220
83
83
83
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
159
159
159
252
252
252
236
236
236
140
112
94
98
66
41
15
23
25
19
23
25
19
23
24
17
21
22
15
19
21
19
23
24
18
22
23
18
22
23
15
19
20
14
18
19
19
22
24
32
34
36
130
129
125
204
200
192
224
220
211
230
226
217
230
225
216
228
224
216
228
223
215
227
223
214
227
223
214
226
222
213
223
219
211
212
209
201
177
175
168
88
89
87
29
34
36
27
32
35
24
28
30
22
26
27
21
25
26
23
28
31
22
26
29
21
25
27
22
26
28
23
28
31
28
33
36
26
31
34
24
29
32
32
37
40
29
34
37
32
37
40
33
38
41
30
36
38
32
37
40
33
40
43
37
45
47
36
44
46
39
46
49
41
49
51
42
50
52
41
49
51
52
59
61
180
181
180
252
252
252
254
254
254
171
171
171
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
172
172
172
254
254
254
238
238
238
140
118
105
55
39
30
18
22
24
16
20
21
16
20
21
14
18
19
15
19
21
18
21
23
15
17
19
19
22
24
19
23
24
14
18
19
14
18
19
19
23
24
15
20
24
72
72
71
140
137
134
182
179
172
207
204
196
220
216
208
223
219
211
220
215
206
203
200
192
172
169
162
136
135
130
87
86
85
12
20
24
23
28
32
23
28
31
19
23
26
20
25
26
18
23
23
21
25
26
19
23
25
19
23
26
17
21
23
21
25
27
23
27
30
24
29
32
25
30
33
30
35
38
31
36
39
27
32
35
34
39
42
32
37
40
28
33
36
31
36
39
32
37
40
33
40
42
34
41
43
36
43
46
43
51
53
43
51
53
40
48
50
45
53
55
81
87
88
211
211
211
255
255
255
245
245
245
130
130
130
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
143
143
143
209
209
209
201
201
201
117
117
117
38
38
38
46
46
46
190
190
190
255
255
255
236
236
235
110
97
89
33
32
30
19
23
25
19
23
26
15
19
20
13
16
17
14
15
17
12
13
15
11
12
14
15
18
19
17
21
22
14
17
18
14
18
19
18
22
23
17
22
22
20
24
25
21
25
27
45
46
46
62
62
61
74
74
72
81
81
79
74
73
70
60
61
59
40
42
41
21
25
26
21
26
26
21
26
28
18
22
25
17
22
23
18
22
23
16
20
21
12
16
17
13
16
17
13
14
16
14
15
17
12
14
15
14
16
18
22
26
29
24
29
32
24
29
32
26
31
34
29
34
37
29
34
37
30
35
38
32
37
40
27
32
35
26
31
34
27
32
35
33
40
42
38
46
48
41
49
51
42
50
52
45
53
55
47
55
57
43
51
54
54
62
63
109
113
112
233
233
233
255
255
255
230
230
230
96
96
96
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
137
137
137
248
248
248
255
255
255
255
255
255
245
245
245
196
196
196
186
186
186
241
241
241
255
255
255
213
212
211
56
44
36
24
28
29
18
21
24
16
21
23
14
17
18
12
15
16
13
14
16
11
12
13
11
12
14
12
15
17
13
16
18
14
15
17
12
14
15
11
15
16
14
16
18
13
14
16
11
14
16
16
20
21
15
18
19
12
15
16
13
16
17
12
15
16
12
15
17
14
17
19
16
19
20
18
22
22
18
22
23
14
17
18
15
17
19
13
14
16
11
12
14
12
13
15
14
19
20
15
17
19
15
16
18
12
13
15
11
12
14
17
20
22
20
24
27
21
25
29
23
26
30
26
30
33
25
30
33
25
30
33
28
33
36
26
31
34
27
32
35
30
35
38
33
38
41
40
48
50
42
50
52
42
50
52
46
54
56
50
58
60
48
56
58
45
53
55
64
72
73
155
156
156
247
247
247
254
254
254
205
205
205
56
56
56
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
184
184
184
253
253
253
244
244
244
243
243
243
255
254
254
255
255
255
255
255
255
255
255
255
246
245
244
140
131
126
42
30
24
13
17
17
14
18
20
14
18
19
13
14
16
12
13
15
12
13
15
9
10
12
9
10
12
10
11
13
11
12
14
10
11
13
10
11
13
10
12
13
10
11
13
12
13
15
13
14
16
15
18
19
13
14
16
9
10
12
9
10
12
8
9
11
8
9
11
9
10
12
10
11
13
10
11
13
12
12
14
9
11
12
9
10
12
12
13
15
12
13
15
12
14
15
13
18
18
14
16
18
14
15
17
13
13
15
11
12
14
14
15
17
13
16
18
15
19
20
18
22
24
19
23
25
23
28
30
21
27
29
26
31
34
30
35
38
32
37
40
33
38
41
34
39
42
37
44
46
34
42
44
36
44
46
43
51
53
49
57
59
49
57
59
46
54
56
46
54
56
63
70
72
183
184
184
254
254
254
252
252
252
190
190
190
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
158
158
158
251
251
251
249
249
248
165
163
162
194
190
187
229
227
225
236
233
231
220
213
208
162
132
114
112
75
50
9
15
18
13
17
18
12
15
17
9
11
13
9
10
12
9
10
12
7
8
10
7
8
10
7
9
10
8
9
11
7
8
10
9
10
12
9
10
12
8
9
11
10
11
13
12
13
15
12
13
15
12
13
15
10
11
13
8
8
10
7
8
10
7
8
10
7
8
10
8
9
11
8
8
10
8
8
10
9
9
11
11
12
14
9
10
12
10
11
13
10
11
13
12
13
15
13
17
18
14
18
19
12
14
16
11
11
13
10
11
13
10
11
13
12
14
16
13
17
19
16
20
21
18
23
24
20
26
27
22
28
31
25
30
33
31
37
39
34
41
43
33
38
41
36
41
44
39
47
49
34
42
44
37
45
47
36
44
46
41
48
51
43
51
53
43
51
53
42
50
52
44
52
54
63
69
70
205
206
205
254
254
254
251
251
251
168
168
168
28
28
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
75
75
75
231
231
231
255
255
255
235
235
235
140
130
123
120
82
51
142
105
77
132
84
45
144
95
54
57
40
27
12
17
20
15
20
21
13
15
17
9
9
12
10
11
13
11
12
14
8
9
11
8
9
11
9
10
12
10
11
13
7
8
10
8
9
11
11
12
14
9
10
12
12
13
15
14
15
17
10
11
13
8
9
11
7
8
10
8
9
11
8
9
11
8
9
11
7
8
10
7
8
10
7
7
9
8
9
11
9
10
12
9
10
12
9
10
12
9
10
12
9
10
12
11
12
14
15
16
18
13
15
17
11
12
14
9
10
12
9
10
12
10
11
13
15
18
19
18
23
24
20
25
25
21
26
26
22
27
29
24
29
32
24
29
32
28
34
36
30
35
38
32
36
39
38
43
46
41
49
51
37
45
47
35
43
45
35
43
45
35
42
44
42
50
52
43
51
53
44
52
54
39
47
49
44
53
55
94
98
98
219
219
219
254
254
254
244
244
244
143
143
143
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
129
129
129
246
246
246
255
255
255
244
243
243
180
177
174
102
76
57
126
83
49
112
74
45
19
18
19
11
14
16
16
18
20
11
13
15
12
13
15
13
15
16
10
11
13
9
10
12
8
9
11
11
12
14
12
13
15
10
11
13
8
9
11
8
9
11
8
8
10
8
8
10
8
8
10
8
8
10
7
8
10
8
9
11
7
8
10
7
8
10
6
7
9
6
7
9
7
8
10
6
7
9
7
9
11
9
11
12
10
11
13
10
11
13
14
14
14
17
16
16
13
14
16
13
16
17
11
12
14
10
11
13
9
10
12
9
10
12
10
11
13
18
20
22
20
24
24
25
30
32
21
27
29
23
29
31
24
29
32
24
29
32
24
29
32
26
31
34
28
33
36
32
36
39
35
42
44
33
39
41
32
38
41
32
38
40
33
40
42
36
44
46
41
49
51
46
53
55
42
50
52
38
46
48
49
56
58
112
115
115
235
235
235
255
255
255
244
244
244
133
133
133
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
122
122
122
242
242
242
255
255
255
242
241
240
183
169
161
144
98
62
128
83
47
62
41
26
11
11
12
9
11
13
11
13
15
14
15
16
17
20
21
15
19
20
12
15
17
8
9
11
9
10
12
11
12
14
13
14
16
12
13
15
12
12
14
9
10
12
8
9
11
8
9
12
7
7
9
9
9
11
4
7
12
0
1
10
0
0
10
0
1
11
5
9
14
0
0
6
0
3
13
13
14
16
13
17
19
17
21
23
17
21
22
21
23
24
132
112
59
109
92
50
22
26
26
21
25
28
18
22
24
15
19
21
9
11
12
10
11
13
11
12
14
12
13
15
14
16
18
20
24
26
23
28
30
22
28
30
24
29
32
23
28
31
23
28
31
23
28
31
22
26
29
24
28
31
27
32
35
31
36
39
29
34
37
28
33
36
30
35
38
30
36
38
39
47
49
46
54
56
43
51
53
39
47
49
42
50
52
48
57
58
125
127
127
236
236
235
255
255
255
236
236
236
118
118
118
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
34
34
34
222
222
222
255
255
255
238
237
236
161
139
126
139
92
54
130
83
47
101
66
40
32
23
18
8
9
11
13
15
17
15
17
18
12
14
16
16
18
20
15
18
19
14
18
18
12
13
15
17
16
17
20
18
17
14
14
17
15
17
19
24
24
21
21
22
20
25
24
21
38
33
21
28
26
22
16
17
19
77
65
35
118
101
53
125
106
55
123
105
54
72
60
33
198
164
83
201
166
81
188
156
79
13
22
28
23
29
31
24
29
31
37
35
31
219
182
87
144
120
60
22
26
27
21
25
28
18
22
25
15
19
21
12
13
16
11
12
14
10
11
13
11
11
13
14
16
18
17
21
22
18
23
24
20
26
27
25
30
33
23
28
31
23
28
31
24
29
32
23
28
31
21
26
29
24
29
32
28
33
36
28
33
36
26
31
34
28
33
36
27
32
35
38
45
48
40
48
50
38
46
48
38
46
48
40
48
50
40
48
50
45
53
54
137
138
138
242
242
242
255
255
255
232
232
232
120
120
120
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
121
121
121
248
248
248
252
252
252
174
159
152
137
90
54
132
85
48
125
81
47
77
52
34
7
10
12
8
9
11
10
11
13
13
14
16
13
14
16
12
13
15
14
15
16
13
15
17
27
23
18
136
113
59
164
137
72
28
31
29
23
27
30
185
154
77
151
126
65
165
136
72
231
190
88
151
124
63
24
25
26
164
135
64
214
177
87
200
166
80
181
148
68
101
83
43
240
196
93
213
175
82
227
185
85
53
49
36
25
29
32
20
27
32
86
73
44
232
190
88
111
94
50
21
24
28
23
27
30
19
23
27
18
20
24
11
12
15
9
10
12
9
10
12
13
14
16
16
18
20
15
19
20
15
19
20
15
20
21
20
25
28
24
29
32
26
31
34
24
29
32
29
34
37
32
37
40
29
34
37
28
32
35
28
33
36
32
37
40
30
35
38
32
37
40
41
48
50
37
45
47
36
42
45
38
46
48
37
45
47
36
44
46
35
42
44
32
40
42
159
159
159
245
245
245
255
255
255
238
238
238
88
88
88
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
151
151
151
250
250
250
238
237
237
153
124
108
130
86
50
131
84
48
116
74
45
28
20
17
8
9
11
7
9
11
9
11
13
12
15
17
22
23
24
17
17
18
10
11
13
11
13
14
48
40
23
203
166
76
221
181
85
34
36
33
58
53
40
236
194
90
175
144
67
199
163
75
250
202
88
162
132
62
34
32
23
181
148
67
203
168
80
211
174
82
172
140
65
114
94
46
240
196
91
189
155
74
233
189
85
95
81
46
22
26
29
6
20
29
144
120
63
227
187
86
65
57
38
25
29
33
23
28
31
19
23
26
15
18
21
10
11
13
9
10
12
10
11
13
11
12
14
13
14
16
15
19
20
16
20
21
14
18
19
17
21
23
21
26
29
28
33
36
26
31
34
30
35
38
27
32
35
27
32
35
29
35
37
33
39
41
33
38
41
35
42
44
41
49
51
43
51
53
39
47
49
38
46
48
34
42
44
35
43
45
37
45
47
34
43
44
37
45
46
38
46
48
154
154
154
245
245
244
251
251
251
155
155
155
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
151
151
151
250
250
250
235
234
233
138
115
101
129
85
48
127
83
48
63
40
24
7
8
11
9
10
12
8
9
11
10
10
12
28
28
29
117
117
115
72
72
71
10
11
13
9
11
12
59
49
25
218
178
81
202
166
79
33
35
35
90
78
48
239
194
86
163
133
66
212
175
80
251
203
88
165
135
63
48
41
25
198
162
73
190
156
75
222
181
87
167
136
63
119
98
48
238
194
90
161
132
67
238
194
85
122
102
52
21
24
27
0
10
27
186
153
73
209
173
81
16
25
31
27
32
35
22
27
30
21
25
27
18
22
23
13
15
17
10
11
13
11
12
14
11
12
14
13
15
17
19
22
25
18
22
24
16
20
22
17
21
22
27
32
35
33
38
41
32
37
40
29
34
37
27
32
35
28
33
36
24
30
32
34
42
44
38
46
48
40
48
50
42
50
52
38
46
48
37
45
47
40
48
50
36
44
46
41
49
51
47
54
56
38
45
47
31
37
40
36
41
43
127
127
127
244
244
244
251
251
251
155
155
155
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
150
150
150
250
250
250
238
237
237
140
118
107
111
72
43
110
73
45
28
19
14
8
9
12
9
10
12
8
9
11
0
0
2
101
100
99
136
136
134
19
19
21
9
10
12
10
12
14
69
56
26
233
190
86
179
148
70
24
27
29
115
96
53
240
195
86
151
124
62
224
185
83
252
203
87
170
138
64
60
51
28
212
175
80
173
141
68
231
189
89
160
129
59
121
98
50
236
192
89
130
107
54
241
197
89
142
117
57
23
26
30
21
26
30
214
175
82
183
150
74
0
16
29
28
32
35
26
31
34
24
28
31
20
24
26
15
17
19
9
11
13
11
14
15
14
17
18
20
23
25
24
27
31
22
26
29
19
22
24
19
22
23
22
27
30
33
38
41
31
36
39
27
32
35
24
29
32
23
27
30
21
25
28
32
38
41
41
49
51
47
55
57
42
50
52
44
52
54
39
47
49
40
48
50
36
46
48
53
46
45
97
49
35
55
27
19
5
11
13
104
104
104
230
229
229
255
255
255
237
237
237
93
93
93
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
132
132
132
249
249
249
245
245
245
150
130
119
103
68
44
74
49
32
12
12
13
10
11
13
10
11
13
5
7
8
67
68
66
164
163
159
51
51
51
13
14
16
8
9
11
11
11
14
82
66
31
245
199
91
156
128
63
17
26
28
137
115
59
241
195
86
146
121
61
231
188
83
252
203
87
174
142
65
70
58
32
227
185
86
156
128
59
239
195
92
150
123
58
119
97
51
233
191
88
107
89
42
238
195
91
158
130
60
23
27
27
71
61
37
228
187
85
145
119
63
6
19
28
23
28
31
25
30
32
27
32
35
17
21
23
14
16
17
11
12
14
13
17
18
16
20
21
20
23
26
21
25
29
22
26
29
1
8
12
168
168
168
124
124
123
22
28
32
29
34
37
31
36
39
25
30
33
27
31
34
23
27
30
31
36
39
44
50
53
44
51
53
44
52
54
48
56
58
38
46
48
41
47
49
75
49
41
152
73
37
175
80
38
132
62
33
85
86
86
223
223
222
255
255
255
246
246
246
142
142
142
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
75
75
75
109
109
109
124
124
124
125
125
125
125
125
125
106
106
106
66
66
66
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
138
138
138
249
249
249
243
243
243
138
124
115
96
66
44
26
18
15
8
9
11
10
11
13
10
11
13
40
40
39
157
155
150
79
80
77
11
16
17
15
18
20
8
10
12
7
9
13
105
84
41
250
204
94
133
108
52
12
21
26
155
129
65
241
196
87
140
119
58
236
190
83
252
203
88
177
145
67
77
64
33
235
192
90
149
122
56
242
197
92
142
118
56
114
96
49
231
190
88
100
83
42
225
185
87
175
143
66
29
29
26
109
92
48
234
192
87
96
80
43
17
24
29
23
28
31
25
30
33
27
32
35
16
20
22
11
15
16
12
16
17
15
19
20
18
22
25
25
29
32
21
25
28
19
23
26
91
91
91
234
234
234
223
223
223
77
79
79
30
35
38
31
36
39
27
32
35
34
41
44
30
36
38
30
35
38
37
42
45
43
50
53
49
57
59
40
47
49
41
41
43
100
54
39
168
77
38
181
81
38
181
81
37
169
78
38
156
147
144
248
248
248
254
254
254
182
182
182
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
42
42
42
163
163
163
223
223
223
242
242
242
252
252
252
253
253
253
252
252
252
241
241
241
218
218
218
151
151
151
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
90
90
209
209
209
253
253
253
232
231
231
114
102
96
89
61
41
2
5
9
6
7
9
9
10
12
12
13
15
105
104
102
136
134
131
26
27
28
16
20
23
17
20
23
8
9
11
0
4
11
140
115
58
245
200
91
117
96
46
5
20
24
170
140
67
242
196
90
136
113
56
238
193
84
248
201
87
183
149
68
90
74
36
239
196
92
154
127
59
241
196
90
134
111
55
111
94
48
229
189
87
98
82
42
207
170
81
193
157
73
44
40
29
138
113
55
228
187
88
52
45
28
21
25
29
25
30
33
26
31
34
24
29
32
18
22
23
13
17
18
14
18
19
16
20
22
19
23
25
24
28
31
21
25
28
33
36
38
171
171
170
252
252
252
251
251
251
173
173
173
43
47
49
30
35
38
31
37
40
38
45
48
36
42
44
33
38
41
35
40
43
43
51
53
42
50
52
35
37
38
117
57
34
172
78
37
182
82
37
182
81
37
181
82
37
179
80
37
143
92
77
229
229
229
255
255
255
205
205
205
50
50
50
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
28
28
172
172
172
249
249
249
254
254
254
251
251
251
248
248
248
246
246
246
248
248
248
251
251
251
255
255
255
248
248
248
182
182
182
50
50
50
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
71
71
71
230
230
230
254
254
254
254
254
254
203
203
203
84
66
56
36
24
18
6
7
10
7
8
10
9
10
12
27
27
27
157
156
154
60
59
59
13
15
18
15
19
22
16
17
21
8
9
11
0
0
9
169
139
68
239
193
87
105
86
45
3
18
23
184
150
72
240
194
89
139
114
56
240
196
87
232
187
82
188
153
70
112
92
47
239
196
91
169
138
70
240
195
86
123
103
53
113
95
48
229
188
87
96
80
43
186
153
73
208
171
79
56
49
32
160
131
61
214
176
84
29
28
24
22
25
28
24
29
32
26
31
34
24
29
32
15
18
20
14
17
18
14
18
19
16
20
21
17
21
21
20
24
25
22
26
29
81
82
82
236
236
235
255
255
255
255
255
255
241
241
240
108
109
108
31
36
40
39
47
49
40
46
49
37
43
45
33
38
41
36
41
44
34
41
43
53
41
37
131
61
34
176
79
39
182
81
39
183
82
38
183
82
38
182
82
38
182
81
37
160
69
27
180
174
173
254
254
254
245
245
245
98
98
98
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
86
86
86
239
239
239
255
255
255
224
224
224
200
200
199
201
201
200
200
199
199
198
198
197
201
201
200
227
227
227
254
254
255
251
251
251
170
170
170
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
166
166
166
254
254
254
249
249
249
204
204
203
100
99
98
2
0
0
7
7
8
7
8
9
8
8
11
1
2
4
82
81
79
144
143
140
0
0
0
11
14
16
16
19
23
13
14
18
8
9
12
0
0
8
191
158
75
231
186
82
92
77
42
16
21
24
193
158
73
232
190
87
145
119
56
240
197
91
215
175
81
194
157
73
135
112
58
237
193
88
180
148
76
237
192
84
111
94
50
120
99
51
230
187
87
94
78
43
160
131
63
224
184
86
72
60
33
183
150
68
193
159
76
26
26
24
20
24
27
23
28
31
29
34
37
26
30
33
13
17
19
14
18
19
14
18
19
17
21
22
15
19
20
17
21
23
0
5
9
172
172
171
255
255
255
249
249
249
248
248
248
255
255
255
217
217
217
72
74
74
34
41
43
32
37
40
29
34
37
33
39
42
46
53
56
60
43
41
136
63
34
180
80
39
184
81
38
182
81
37
183
82
38
183
82
38
183
82
38
182
81
38
179
80
37
130
93
84
242
242
242
255
255
255
188
188
188
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
132
132
132
255
255
255
249
249
249
169
169
168
247
247
247
255
255
255
255
255
255
254
254
254
245
245
245
196
195
195
218
218
217
255
255
255
246
246
246
121
121
121
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
162
162
162
254
254
254
252
252
252
224
224
224
201
201
200
145
145
144
21
22
22
6
8
9
7
8
10
3
4
7
65
65
63
142
142
139
0
0
0
13
16
18
16
20
23
12
14
17
8
8
11
0
0
5
210
172
82
223
181
80
78
67
39
33
32
25
200
164
73
224
184
85
152
124
58
237
195
93
206
169
79
198
162
74
154
128
63
233
189
85
187
154
77
235
191
83
100
86
48
128
105
53
230
187
87
91
75
43
135
110
52
236
193
91
87
72
39
205
168
80
165
135
64
21
23
21
19
23
25
22
27
30
27
32
35
22
26
29
13
17
18
14
18
19
12
16
17
15
18
19
15
19
20
13
17
19
92
93
92
239
239
238
255
255
255
202
202
202
181
181
181
253
253
253
252
252
252
178
178
178
39
44
46
33
38
41
31
37
40
40
46
49
68
49
48
150
70
38
180
80
39
182
82
37
182
81
38
183
82
38
182
81
37
183
82
38
183
82
38
183
82
38
183
82
38
156
74
38
190
189
188
255
255
255
238
238
238
66
66
66
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
160
160
160
255
255
255
236
236
235
184
184
183
255
255
255
246
246
246
218
218
218
235
235
235
254
254
254
253
253
253
191
190
189
234
234
233
255
255
255
218
218
218
53
53
53
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
64
64
64
221
221
221
252
252
252
255
255
255
255
255
255
251
251
251
174
174
173
59
59
59
5
6
8
7
8
10
19
19
20
158
158
155
14
16
17
12
16
18
16
20
21
11
13
15
7
8
10
0
0
5
226
185
87
214
173
79
61
53
35
46
42
28
208
169
75
219
178
83
161
131
61
231
190
92
200
163
77
204
168
77
171
141
68
229
185
82
193
158
78
235
191
83
95
79
45
137
114
54
228
187
86
87
73
41
116
95
46
240
197
92
109
90
46
219
180
86
138
113
54
17
20
21
19
22
25
22
26
29
24
28
31
17
21
22
14
17
18
14
16
18
14
16
17
13
15
17
18
21
22
26
29
30
186
186
185
253
253
253
244
244
244
122
122
122
59
59
59
206
206
206
254
254
254
238
238
238
112
113
113
34
39
41
36
43
45
75
48
41
151
70
37
181
82
38
183
81
37
182
81
38
182
82
38
183
82
38
182
81
37
182
81
37
183
82
38
183
82
38
182
81
38
178
81
39
146
129
125
248
248
248
251
251
251
159
159
159
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
167
167
167
255
255
255
229
229
228
195
195
194
255
255
255
218
218
218
0
0
0
88
88
88
211
211
211
255
255
255
247
247
247
196
196
195
250
250
250
247
247
247
139
139
139
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
77
77
77
159
159
159
194
194
194
230
230
230
254
254
254
252
252
251
203
203
203
80
80
80
0
0
0
16
17
18
142
140
136
97
96
94
12
16
18
17
19
21
10
10
13
7
7
9
28
23
14
237
194
89
205
167
76
36
31
24
55
48
29
213
173
78
210
172
80
170
138
63
224
184
89
192
157
73
212
172
79
188
154
73
224
182
81
197
162
77
234
189
84
88
75
44
147
122
59
227
185
84
84
70
40
100
84
43
234
192
88
143
118
59
228
187
90
116
95
46
18
23
25
22
26
28
24
28
31
23
28
30
16
19
21
12
14
16
12
13
15
13
14
16
14
16
18
15
19
20
90
90
90
230
230
230
254
254
254
200
200
200
34
34
34
0
0
0
106
106
106
242
242
242
255
255
255
195
195
195
21
25
29
81
44
34
159
76
40
182
82
37
183
82
38
183
82
38
183
82
38
183
82
38
183
82
38
182
81
37
183
82
38
182
81
37
182
81
37
183
81
38
181
81
37
151
95
80
221
222
221
255
255
255
216
216
216
64
64
64
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
166
166
166
255
255
255
232
232
232
196
196
196
255
255
255
210
210
210
0
0
0
0
0
0
104
104
104
234
234
234
254
254
254
213
213
213
235
235
235
255
255
255
192
192
192
38
38
38
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
28
28
28
38
38
38
53
53
53
64
64
64
73
73
73
88
88
88
127
127
127
159
159
159
202
202
202
216
216
216
239
239
239
255
255
255
255
255
255
254
254
254
231
231
231
126
126
125
31
32
32
99
98
96
143
141
138
29
29
29
14
15
17
10
10
12
4
6
10
75
63
33
241
197
87
195
159
74
12
18
20
63
54
32
217
176
80
201
166
77
178
145
67
218
178
87
181
149
70
220
179
81
199
164
79
220
178
81
200
164
80
233
189
83
82
72
45
158
131
65
225
182
83
78
64
36
82
69
36
224
184
82
184
152
74
228
189
87
100
84
43
22
27
30
24
28
31
27
31
34
26
31
33
15
17
19
13
14
16
12
14
15
13
14
16
13
17
18
24
27
29
174
175
173
254
254
254
247
247
247
130
130
130
0
0
0
0
0
0
0
0
0
186
186
186
255
255
255
248
248
247
158
158
157
120
58
35
178
80
38
181
81
37
183
82
38
183
82
38
183
82
38
183
82
38
183
82
38
182
81
37
182
81
37
183
82
38
183
82
38
183
82
38
182
81
36
164
74
35
185
179
179
253
252
253
246
246
246
121
121
121
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
150
150
150
255
255
255
241
241
240
184
184
183
255
255
255
230
230
230
0
0
0
0
0
0
13
13
13
185
185
185
253
253
253
231
231
231
208
208
207
255
255
255
228
228
228
66
66
66
53
53
53
96
96
96
119
119
119
151
151
151
166
166
166
186
186
186
194
194
194
212
212
212
223
223
223
236
236
236
247
247
247
255
255
255
255
255
255
255
255
255
255
255
255
255
255
255
254
254
254
249
249
249
238
238
237
226
226
226
204
205
204
122
123
120
83
82
80
145
144
141
71
71
70
10
11
13
9
10
11
1
3
9
107
89
45
243
196
87
181
150
70
8
18
24
71
61
35
220
178
79
195
161
77
187
153
70
210
172
82
169
139
66
225
184
83
208
171
83
215
175
79
201
166
80
232
188
83
75
65
41
169
140
70
221
181
82
73
61
34
57
47
29
212
174
79
228
185
84
223
184
84
83
69
40
24
29
32
26
31
34
29
34
37
24
29
31
14
17
18
11
15
16
15
20
20
12
15
17
4
8
11
105
106
106
242
242
241
255
255
255
203
203
203
0
0
0
0
0
0
0
0
0
0
0
0
93
93
93
238
238
238
255
255
255
238
238
238
110
101
100
166
75
38
182
80
37
182
82
37
182
82
38
182
82
38
182
82
38
182
82
38
183
82
38
183
82
38
183
82
38
183
82
38
182
82
38
183
81
38
176
79
35
137
103
95
242
241
241
255
255
255
191
191
191
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
122
122
122
255
255
255
252
252
251
163
163
162
255
255
255
245
245
245
98
98
98
0
0
0
0
0
0
131
131
131
249
249
249
249
248
248
171
171
170
254
254
254
251
251
251
221
221
221
230
230
230
238
238
238
242
242
242
250
250
250
253
253
253
255
255
255
255
255
255
255
255
255
254
254
254
254
254
254
254
254
254
250
250
250
239
239
239
220
220
220
201
201
200
183
183
182
165
165
163
169
170
166
184
183
178
198
196
189
208
204
197
213
209
201
205
202
193
155
154
149
54
54
53
9
11
12
8
8
10
0
0
7
128
107
52
242
197
85
170
140
65
10
19
27
77
66
38
223
182
81
189
156
77
196
159
73
201
165
79
158
130
60
231
190
88
214
177
84
212
173
78
203
166
79
231
187
83
67
59
38
179
148
73
218
178
81
65
56
32
23
22
19
197
162
75
251
202
87
213
174
79
61
54
35
26
30
33
30
35
38
32
37
40
25
30
32
14
16
18
14
17
18
16
21
21
12
15
16
0
0
0
184
184
183
255
255
255
240
240
240
101
101
101
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
143
143
143
244
244
244
253
253
253
177
178
177
112
61
46
179
82
39
180
81
37
179
81
37
180
82
37
180
82
37
180
82
37
182
82
38
182
82
37
182
82
37
183
82
38
183
82
38
182
81
37
182
81
37
147
64
23
185
182
181
255
255
255
246
246
246
95
95
95
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
83
83
83
243
243
243
254
254
254
189
188
188
239
239
238
252
252
252
181
181
181
96
96
96
129
129
129
182
182
182
251
251
251
255
255
255
169
169
169
246
246
246
255
255
255
255
255
255
255
255
255
251
251
251
246
246
246
241
241
240
235
235
235
227
227
225
219
219
218
211
210
209
193
192
191
182
180
177
161
160
156
157
156
151
162
160
153
179
178
170
199
196
188
212
209
200
219
215
206
223
219
210
224
220
210
225
221
211
226
222
212
225
222
212
227
223
213
230
226
216
122
120
114
0
2
4
7
7
9
0
0
7
146
121
60
243
197
85
156
130
63
7
17
24
82
69
39
225
184
82
185
151
75
202
164
76
192
158
75
149
122
57
238
194
91
218
180
85
210
172
77
205
169
79
229
187
84
60
52
34
184
153
73
215
176
80
60
51
29
5
14
19
176
145
67
250
201
88
200
164
76
38
39
34
26
31
34
29
34
37
27
32
35
21
26
28
13
15
17
12
15
16
14
18
18
12
15
17
11
13
13
213
213
212
255
255
255
208
208
208
50
50
50
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
28
28
205
205
205
255
255
255
242
242
241
119
115
113
146
68
33
180
81
37
179
81
37
179
81
36
180
82
37
180
81
37
179
81
36
179
81
36
180
82
37
182
82
38
183
82
38
181
81
37
182
81
37
177
81
39
119
95
90
243
243
243
254
254
254
183
183
183
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
50
50
50
209
209
209
255
255
255
227
228
227
208
208
208
254
254
254
244
244
244
236
236
236
251
251
251
255
255
255
255
255
255
255
255
255
185
184
184
218
218
218
222
222
222
199
199
198
179
179
178
175
175
173
175
174
171
177
174
170
175
172
165
175
171
162
182
176
167
190
184
176
199
194
185
210
204
195
217
212
202
221
216
206
223
218
208
223
219
209
224
220
211
225
221
212
226
222
213
227
223
214
229
225
216
229
225
216
229
225
216
225
221
212
225
221
212
229
225
216
157
155
148
0
0
0
7
7
9
0
0
6
161
132
64
244
196
86
140
117
58
9
18
23
88
73
40
228
185
84
180
147
72
207
169
77
186
152
72
139
113
53
241
196
92
223
183
86
209
171
77
206
170
80
228
187
85
56
49
33
190
157
75
214
174
78
56
48
29
6
15
20
150
124
61
246
198
86
185
152
73
10
19
26
22
27
30
31
36
39
25
30
32
20
23
26
14
15
17
10
13
14
14
18
19
18
22
23
73
74
73
234
233
233
254
254
254
180
180
180
28
28
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
102
102
102
238
238
238
255
255
255
219
219
218
99
73
65
166
76
38
179
81
37
179
81
37
179
80
38
180
81
38
180
81
37
180
82
37
180
82
37
182
81
38
182
82
37
180
82
37
181
81
36
181
81
38
151
80
56
196
196
196
255
255
255
231
231
231
71
71
71
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
50
50
50
182
182
182
253
253
253
250
250
250
185
185
184
243
243
243
255
255
255
253
253
252
248
248
248
237
237
236
210
210
209
173
173
172
113
112
111
114
112
109
178
175
169
195
190
180
209
203
193
208
202
192
208
202
191
211
205
194
214
208
197
219
212
202
220
215
204
221
217
206
221
217
206
222
218
207
224
220
211
223
219
210
223
219
210
225
221
212
226
222
213
226
222
213
226
222
213
227
223
214
228
224
215
227
223
214
229
225
216
227
223
214
227
223
214
226
221
213
163
161
154
0
0
0
7
7
9
0
0
7
172
142
67
243
196
86
126
105
53
9
17
21
91
75
39
231
187
84
174
143
68
211
172
79
179
148
70
128
104
47
241
197
90
229
188
83
209
170
75
207
170
81
227
187
84
51
44
28
193
159
76
213
173
78
53
47
29
13
19
22
113
95
50
242
196
87
164
136
65
11
21
28
27
32
35
31
36
39
24
29
31
19
23
25
13
16
17
12
14
16
17
21
22
17
21
23
114
114
114
241
241
241
250
250
250
149
149
149
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
161
161
161
252
252
252
252
252
252
190
190
189
112
63
50
175
79
38
179
81
37
179
80
38
179
81
38
180
82
37
180
82
37
180
80
38
180
82
37
180
82
37
179
82
37
179
81
37
181
82
37
173
81
38
159
147
144
248
248
248
247
247
247
140
140
140
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
184
184
184
252
252
252
255
255
255
255
255
255
205
205
204
176
176
176
209
209
209
192
191
189
165
163
158
158
155
146
182
177
168
204
199
189
195
190
182
191
186
177
216
211
199
217
211
200
219
213
203
218
213
202
219
215
204
220
216
205
220
216
205
221
216
205
221
217
206
221
217
206
222
218
207
223
219
208
223
219
210
224
220
211
224
220
211
225
221
212
226
222
213
226
222
213
225
221
212
227
223
214
227
223
214
228
224
215
228
224
215
229
225
216
230
226
217
230
225
216
176
173
166
0
0
0
6
6
8
0
0
8
184
151
70
243
197
86
108
89
48
9
15
19
94
78
39
233
189
85
169
139
67
216
176
82
174
143
68
119
97
45
242
197
89
239
194
84
209
170
76
210
173
81
227
186
83
42
36
23
195
162
78
212
172
77
51
45
27
16
21
24
90
76
43
241
197
89
171
140
67
7
20
25
30
34
37
29
34
37
23
27
30
15
19
21
14
17
18
14
17
18
18
23
25
21
25
28
149
149
149
249
249
249
242
242
242
115
115
115
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
61
61
61
203
203
203
254
254
254
245
245
245
143
143
143
130
61
32
179
81
38
179
80
38
180
81
38
180
82
37
180
82
37
179
81
37
180
81
37
180
82
37
179
81
37
179
81
36
180
82
37
178
81
37
146
96
82
231
231
231
255
255
255
197
197
197
42
42
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
99
99
99
245
245
245
255
254
254
221
221
221
162
162
161
140
139
137
165
162
154
192
189
180
202
197
188
211
204
194
216
210
198
216
212
201
219
215
204
220
216
205
219
215
204
219
215
204
220
216
205
219
215
204
219
215
204
219
215
204
220
216
205
220
216
205
220
216
205
220
216
205
221
217
206
222
218
208
223
219
210
223
219
210
224
220
211
224
220
211
225
221
212
225
221
212
225
221
212
226
222
213
228
224
215
227
223
214
229
225
216
229
225
216
230
226
217
231
227
218
230
226
217
189
187
180
0
0
0
5
5
6
2
7
12
194
158
74
243
197
89
85
71
37
11
17
19
96
80
39
235
190
85
165
135
65
220
179
84
170
138
66
111
90
43
242
195
87
249
201
86
210
171
77
214
175
83
227
184
84
27
22
19
196
163
78
213
172
78
52
45
29
16
22
26
125
104
56
245
198
87
195
160
75
28
28
25
29
34
37
28
33
36
19
25
26
14
18
19
14
18
19
16
20
21
18
22
24
27
30
31
173
173
172
254
254
254
231
231
231
64
64
64
0
0
0
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
85
85
229
229
229
255
255
255
240
240
240
126
117
114
154
69
32
179
81
37
179
81
37
180
81
37
180
81
37
180
81
37
180
80
38
179
80
38
179
80
38
180
81
37
179
81
36
179
81
36
155
67
25
190
184
184
255
255
254
239
239
239
85
85
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
133
133
133
249
249
249
244
244
244
126
126
124
182
180
174
155
152
146
214
210
200
217
213
202
218
214
203
220
215
204
221
217
206
220
216
206
221
216
205
222
218
207
219
216
205
221
217
206
221
217
206
219
215
204
219
215
204
220
216
205
220
216
205
218
214
203
220
216
205
222
218
207
222
218
207
222
218
209
223
219
210
224
220
211
223
219
210
224
220
211
224
220
211
226
222
213
226
222
213
226
222
213
227
223
214
228
224
215
229
225
216
229
225
216
230
226
217
230
226
217
230
226
217
195
192
185
0
0
0
5
5
5
28
27
22
200
164
76
242
197
90
64
54
33
14
19
21
97
81
39
235
192
85
160
131
65
224
181
84
166
135
65
102
83
40
236
191
85
253
203
86
210
172
77
219
179
84
225
183
84
4
10
16
195
161
79
213
173
78
56
49
30
9
18
23
153
127
62
247
199
88
213
175
78
61
53
31
23
28
30
23
28
31
17
22
23
15
19
20
14
18
19
13
17
18
17
21
21
50
51
51
203
203
202
255
255
255
218
218
218
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
117
117
117
240
240
240
255
255
255
228
228
228
115
94
90
166
77
39
180
80
39
179
80
38
179
80
38
180
81
39
179
80
38
179
80
38
178
79
37
179
81
36
180
82
37
180
81
36
178
79
36
130
103
96
246
246
246
255
255
255
184
184
184
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
104
104
104
248
248
248
252
252
252
137
136
135
205
202
193
149
147
141
217
213
204
222
218
208
223
219
209
222
218
209
223
219
209
222
218
208
222
218
209
223
219
210
221
217
207
222
218
208
221
217
207
220
216
205
221
217
206
221
217
206
220
216
205
220
216
205
221
217
206
222
218
207
222
218
207
222
218
209
222
218
209
223
219
210
223
219
210
224
220
211
225
221
212
225
221
212
226
222
213
226
222
213
227
223
214
228
224
215
227
223
214
228
224
215
230
226
217
230
226
217
230
225
217
207
203
194
0
0
0
6
6
6
44
37
25
205
168
77
240
195
89
37
32
21
12
15
17
99
82
39
237
194
86
156
127
62
226
184
85
163
132
64
92
76
38
230
186
83
253
203
87
212
173
78
223
182
85
224
182
83
0
0
13
193
159
77
216
175
78
61
52
31
4
14
19
175
145
68
250
202
88
229
186
84
90
76
40
23
27
29
23
27
30
18
22
23
12
16
17
13
17
18
14
18
19
17
21
22
71
71
71
233
232
232
254
254
254
180
180
180
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
150
150
150
246
246
246
254
254
253
205
206
205
108
70
60
169
77
40
180
81
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
180
82
37
180
82
37
180
81
36
183
81
37
146
70
39
194
193
192
255
255
255
235
235
235
59
59
59
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
50
50
50
238
238
238
255
255
255
164
164
163
198
195
187
147
145
139
216
211
203
223
219
210
223
219
210
223
219
210
224
220
211
224
220
211
224
220
211
224
220
211
222
218
209
223
219
210
222
218
207
221
217
206
221
217
206
221
217
206
221
217
206
221
217
206
221
217
206
222
218
207
222
218
207
221
217
208
222
218
209
223
219
210
223
219
210
223
219
210
224
220
211
226
222
213
226
222
213
226
222
213
225
221
212
227
223
214
227
223
213
227
223
214
230
226
217
231
227
218
230
226
217
212
208
200
0
0
0
5
5
7
55
45
26
213
172
76
233
190
87
12
16
17
12
14
16
101
84
39
237
194
88
153
126
61
227
185
85
159
129
62
81
66
34
224
181
82
253
204
87
215
175
79
225
184
87
224
181
84
0
0
10
190
156
74
219
178
80
68
58
33
18
22
21
194
158
75
230
186
84
237
194
89
115
94
44
23
27
31
22
26
28
18
22
22
12
16
17
12
16
17
14
18
19
11
16
18
118
118
118
254
254
254
252
252
252
119
119
119
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
85
85
85
224
224
224
255
255
255
254
254
254
193
192
191
109
57
41
172
78
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
179
81
37
179
81
37
179
81
37
180
82
37
177
80
40
141
129
127
248
248
248
251
251
251
158
158
158
22
22
22
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
215
215
215
255
255
255
201
201
201
179
175
169
164
160
154
193
190
183
224
220
211
222
218
209
223
219
210
224
220
211
224
220
211
224
220
211
224
220
211
223
219
210
223
219
210
222
218
208
221
217
207
222
218
208
222
218
206
221
217
206
221
217
206
220
216
205
221
217
206
221
217
207
222
218
209
223
219
210
224
220
211
224
220
211
224
220
211
225
221
212
225
221
212
225
221
212
226
222
213
227
223
214
227
223
214
227
223
214
228
224
215
230
226
217
229
225
216
229
225
215
206
203
195
0
0
0
6
7
8
65
53
29
218
175
78
225
184
87
0
5
14
12
14
16
102
85
41
239
195
90
150
123
59
228
186
85
158
128
62
63
53
28
216
176
80
254
204
86
218
177
80
225
184
87
224
183
84
0
0
13
184
150
72
223
180
81
77
65
37
45
41
28
208
171
79
198
162
79
231
189
88
146
119
58
25
29
31
23
26
29
17
21
21
15
19
20
15
19
20
14
18
19
0
0
0
185
185
184
255
255
255
232
232
232
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
90
90
222
222
222
254
254
254
254
254
254
230
230
230
193
189
188
118
83
75
162
73
36
178
80
37
179
80
38
179
80
38
179
80
38
179
80
38
180
82
37
179
81
37
180
81
38
180
82
37
180
81
38
145
90
76
217
217
217
255
255
255
232
232
232
183
183
183
162
162
162
85
85
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
181
181
181
255
255
255
230
230
229
141
139
134
192
188
182
156
154
149
226
221
213
223
219
210
224
220
211
224
220
211
225
221
212
224
220
211
224
220
211
223
219
210
223
219
210
225
220
210
225
221
211
225
221
212
224
220
210
221
217
206
220
216
205
220
216
205
220
216
205
221
217
208
223
219
209
223
219
210
223
219
210
224
220
211
224
220
211
224
220
211
225
221
212
225
221
212
225
221
212
226
222
213
226
222
213
226
222
213
227
223
214
229
225
216
228
224
215
229
225
216
171
169
162
0
0
0
7
8
9
72
60
33
220
179
80
218
179
84
0
0
14
12
15
15
104
85
42
240
195
89
147
121
58
228
187
87
157
128
60
45
39
22
209
169
76
254
203
86
220
179
80
220
181
87
225
185
84
29
23
17
175
144
69
228
184
82
86
72
41
74
63
38
220
180
83
167
139
68
210
171
80
185
152
72
26
26
26
19
23
24
13
16
17
13
17
18
13
17
18
13
17
18
0
0
0
231
231
231
255
255
255
190
190
190
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
175
175
175
255
255
255
251
250
250
190
188
187
145
105
96
162
74
38
172
77
36
178
79
37
178
79
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
37
179
81
36
179
81
37
179
81
36
180
81
37
166
74
38
158
149
147
249
249
249
255
255
255
255
255
255
252
252
252
231
231
231
130
130
130
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
125
125
125
254
254
254
253
252
252
141
140
137
204
201
193
126
124
119
227
222
214
223
219
210
224
220
211
224
220
211
225
221
212
225
221
212
225
221
211
223
219
210
225
221
212
212
208
200
193
189
182
216
212
202
222
218
208
220
216
205
220
216
205
220
216
204
221
217
206
222
218
208
222
218
208
222
218
208
222
218
209
224
220
211
224
220
211
223
219
210
224
220
211
225
221
212
225
221
212
225
221
212
226
222
213
226
222
213
227
223
214
227
223
214
227
223
214
226
222
213
101
100
96
1
1
3
10
11
13
79
67
37
224
182
81
213
174
81
0
0
11
11
14
14
104
86
40
240
196
89
147
121
58
228
186
87
158
129
60
26
23
17
196
160
73
252
203
87
224
181
80
212
175
84
229
187
83
57
46
26
164
135
66
231
188
85
92
77
43
91
78
42
229
188
87
134
110
54
182
148
68
218
179
85
31
29
23
17
22
22
13
15
16
12
13
15
12
13
15
10
11
13
51
52
51
242
242
242
255
255
255
154
154
154
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
182
182
182
255
255
255
241
241
241
141
132
131
144
82
63
155
74
36
156
73
38
145
68
36
166
74
38
178
80
37
178
80
37
179
80
38
179
80
38
179
80
38
179
80
38
180
82
37
180
81
36
180
80
38
178
80
39
136
60
28
173
167
165
221
220
220
227
227
226
252
252
252
255
255
255
232
232
232
69
69
69
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
75
75
75
235
235
235
254
254
254
182
182
181
194
191
184
140
139
134
215
211
203
224
220
211
225
221
212
225
221
212
225
221
212
225
221
212
224
220
211
218
215
206
216
212
204
115
113
109
0
0
0
188
185
178
214
210
200
168
164
157
189
185
178
223
219
208
221
217
206
222
218
207
222
218
207
223
219
208
222
218
209
223
219
210
224
220
211
224
220
211
224
220
211
224
220
211
224
220
211
226
222
213
225
221
212
225
221
212
227
223
214
227
223
214
226
222
213
199
196
189
55
54
52
5
5
7
11
12
16
85
71
38
227
184
82
208
170
79
0
0
8
11
12
14
106
86
40
240
196
90
145
120
57
227
186
85
160
130
62
2
6
12
183
150
70
251
202
87
226
183
81
205
167
80
233
188
84
79
65
36
153
126
63
235
190
86
97
81
44
107
89
45
236
193
91
97
80
40
151
124
59
238
194
91
72
61
34
13
18
20
9
11
12
9
10
12
10
12
14
12
13
15
0
0
0
234
234
234
255
255
255
178
178
178
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
136
136
136
253
253
253
255
255
255
237
237
237
112
112
112
95
44
27
151
70
36
175
80
37
180
80
37
179
80
38
178
79
37
179
80
38
180
81
39
179
80
38
179
80
38
179
81
38
179
81
36
179
80
38
180
82
38
177
81
40
128
56
23
55
23
6
96
95
94
207
207
206
254
254
254
248
248
248
127
127
127
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
46
46
46
204
204
204
255
255
255
219
219
219
169
166
161
179
177
170
190
187
180
225
221
212
225
221
212
225
221
212
224
220
211
224
219
210
187
183
178
112
111
108
147
145
143
36
36
36
71
69
67
201
197
190
141
138
133
24
24
24
84
82
80
214
209
201
220
216
206
221
217
206
222
218
208
223
219
209
223
219
209
222
218
208
223
219
209
224
220
210
225
221
212
224
220
211
225
221
212
226
222
213
225
221
212
226
222
213
226
222
213
226
222
214
226
221
212
155
151
146
21
20
21
6
6
7
11
12
15
91
75
38
230
187
83
201
164
79
0
0
8
11
12
15
106
87
40
241
197
90
143
118
57
226
185
85
163
134
63
0
5
12
166
136
64
250
201
87
230
185
82
195
159
79
235
189
83
94
78
42
142
117
57
238
193
87
102
84
42
122
100
47
234
192
91
76
63
32
116
95
48
237
193
87
138
114
59
0
10
19
9
9
12
9
10
12
12
14
16
16
19
20
0
0
0
213
212
211
255
255
255
203
203
203
13
13
13
0
0
0
0
0
0
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
85
85
230
230
230
255
255
255
249
248
248
157
154
154
125
63
40
170
78
38
176
80
37
177
80
37
179
81
38
178
79
37
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
179
81
37
179
80
37
180
81
37
169
76
38
137
66
39
78
50
40
144
144
144
247
247
247
255
255
255
220
220
220
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
169
169
169
253
253
253
236
236
236
159
157
153
207
203
195
161
159
153
224
220
211
225
221
212
225
221
212
224
218
210
195
191
184
71
70
68
51
51
51
48
49
49
17
18
18
141
138
133
165
162
156
10
10
10
0
0
0
144
143
137
221
217
207
221
217
206
220
216
206
221
217
207
222
218
207
222
218
207
220
216
205
221
217
206
222
218
209
223
219
211
223
219
210
223
219
210
224
220
210
224
220
211
225
221
212
226
222
213
226
222
213
215
211
202
99
97
94
6
6
8
5
5
6
10
11
13
94
77
38
232
188
84
194
160
78
0
0
9
12
13
15
107
88
40
242
197
90
141
117
57
225
183
85
166
136
65
6
8
13
145
119
58
248
200
86
233
188
84
183
151
77
236
191
83
104
88
46
132
108
53
240
196
90
107
88
43
142
115
55
228
186
88
66
54
28
62
52
28
226
185
84
189
156
74
0
2
19
9
11
12
11
12
14
13
14
16
13
14
16
0
0
0
180
180
179
255
255
255
231
231
231
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
90
90
216
216
216
254
254
254
247
247
246
161
160
159
124
57
27
174
80
38
177
80
37
177
80
37
178
80
38
178
79
37
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
180
81
39
180
81
39
165
75
40
138
64
34
111
51
21
100
90
88
182
182
182
248
247
247
255
255
255
235
235
235
120
120
120
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
133
133
133
245
245
245
246
246
246
164
163
161
216
212
205
148
146
141
218
215
206
226
222
213
225
221
212
217
213
205
104
102
99
13
13
13
61
61
61
17
18
17
56
55
53
173
170
165
85
84
81
3
3
4
63
62
61
206
203
195
213
209
201
221
217
207
219
215
203
219
215
205
221
217
206
221
217
206
221
217
206
220
216
205
221
217
207
221
217
207
222
218
207
222
218
207
222
218
207
223
219
210
225
221
212
226
222
213
225
221
212
186
183
177
12
12
13
7
7
8
5
5
6
11
12
14
97
80
39
234
190
84
189
156
74
0
0
10
10
12
14
107
87
40
242
197
91
141
117
57
222
180
83
171
140
66
11
12
12
116
96
49
247
199
87
237
191
84
175
143
71
239
194
84
119
97
48
121
100
51
242
197
91
112
92
44
167
138
66
213
175
81
56
47
26
0
0
10
200
164
78
222
181
85
41
36
25
9
11
13
10
11
13
13
14
16
13
14
16
9
14
16
136
135
134
255
255
255
246
246
246
69
69
69
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
42
42
42
212
212
212
254
254
254
251
251
251
173
172
171
131
69
47
174
79
38
178
80
38
179
80
38
178
79
37
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
37
180
81
37
176
80
38
144
67
34
58
21
5
159
159
158
242
242
242
255
255
255
239
239
239
128
128
128
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
98
98
98
238
238
238
251
251
251
165
164
163
215
211
203
148
146
140
217
212
204
226
222
213
226
222
213
168
166
160
0
0
0
53
53
53
32
32
32
0
0
0
111
110
108
148
147
143
1
1
3
16
16
17
131
131
128
93
93
91
47
46
45
150
148
142
217
214
203
220
216
205
223
219
208
221
217
206
221
217
206
222
218
208
222
218
209
223
219
210
223
219
210
223
219
210
224
220
211
225
221
212
226
222
213
227
223
214
225
221
212
115
114
110
0
0
0
7
7
8
5
5
5
12
13
14
100
81
40
236
191
86
185
153
73
0
0
10
9
11
13
107
87
40
243
197
90
140
115
56
219
178
82
177
145
69
16
15
13
81
68
36
243
198
88
241
193
85
163
133
68
241
196
87
130
105
51
109
90
44
243
198
92
118
96
45
190
157
74
199
162
74
46
39
25
0
0
9
152
126
62
235
192
86
107
89
48
12
13
16
12
13
14
13
14
15
13
14
16
12
16
17
97
97
97
253
253
253
252
252
252
106
106
106
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
34
34
34
175
175
175
254
254
254
252
251
251
181
179
178
123
58
30
172
79
37
177
80
36
178
80
37
179
80
38
178
80
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
178
79
37
179
80
38
180
80
38
180
80
38
178
81
38
153
71
36
108
85
81
163
161
161
236
236
236
255
255
255
214
214
214
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
61
61
61
230
230
230
255
255
255
176
176
175
206
201
194
163
160
155
217
210
203
225
221
212
214
210
202
81
80
78
7
7
9
40
40
40
6
6
7
0
0
0
145
143
141
52
52
51
4
4
7
61
61
61
98
97
97
16
16
17
27
27
27
52
51
51
210
206
196
220
216
206
221
217
206
221
217
206
221
217
206
222
218
209
223
220
211
224
220
211
225
221
212
226
221
213
227
222
214
226
222
213
220
217
208
215
211
203
189
186
179
35
35
33
6
6
8
6
6
7
5
5
5
11
12
14
102
82
41
237
192
86
180
150
72
0
0
11
8
10
12
107
87
40
242
198
91
139
115
57
215
175
80
183
149
71
18
17
14
38
30
20
235
191
88
244
196
86
149
121
59
243
198
89
139
114
53
99
82
41
241
197
91
121
99
46
209
172
81
180
148
67
33
30
24
6
10
14
81
66
36
239
196
91
151
125
59
13
14
14
9
10
12
12
15
17
14
16
18
14
17
19
80
80
80
243
243
243
254
254
254
147
147
147
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
153
153
153
247
247
247
254
254
254
203
203
202
129
72
55
172
78
37
177
79
36
177
80
37
177
80
37
177
80
37
178
80
38
178
79
37
178
79
37
178
79
37
179
80
38
179
80
38
179
80
38
179
80
38
180
80
39
180
80
37
175
80
39
136
61
28
150
144
141
223
223
222
254
254
254
255
255
255
248
248
248
142
142
142
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
222
222
222
255
255
255
192
191
191
191
187
182
169
165
159
214
209
201
225
221
212
175
172
165
38
37
37
39
39
39
45
45
45
6
6
8
31
30
30
99
99
97
0
0
0
13
13
14
102
102
100
50
51
50
7
7
10
73
73
71
90
89
87
217
213
204
218
214
203
218
213
203
216
212
203
217
213
204
210
206
198
196
194
186
182
180
174
167
166
161
148
146
142
126
124
120
98
96
93
71
70
68
67
66
64
66
66
65
8
8
9
6
6
8
5
5
7
5
6
6
12
13
15
104
85
41
239
193
86
177
146
70
0
0
9
9
11
13
107
87
39
242
198
91
139
114
57
209
171
79
188
153
74
21
19
16
0
0
5
221
181
86
245
198
86
134
110
50
244
199
92
148
121
57
99
80
41
240
196
91
120
98
45
224
184
85
163
133
62
20
21
21
14
18
19
29
27
19
215
177
84
189
155
71
39
33
20
8
9
12
12
14
15
12
14
16
14
16
18
64
65
65
222
221
221
255
255
255
190
190
190
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
151
151
151
247
247
247
255
255
255
226
224
224
137
98
88
171
78
38
176
79
36
176
79
36
176
79
36
177
80
37
177
80
37
178
80
37
178
79
37
178
79
37
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
179
80
38
171
78
39
131
83
70
195
193
192
249
249
249
255
255
255
249
249
249
215
215
215
129
129
129
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
202
202
202
255
255
255
215
215
214
168
166
161
170
166
160
207
203
195
221
217
209
138
136
131
12
12
13
70
70
70
48
48
48
16
15
16
109
107
107
49
49
49
0
0
0
77
77
76
94
94
94
0
0
0
20
19
20
88
87
85
138
137
132
187
183
175
168
164
158
145
143
137
117
115
112
81
80
78
46
46
46
0
2
7
0
0
0
0
0
0
0
0
0
0
0
1
3
3
6
8
8
10
53
53
53
51
51
51
7
7
9
6
6
8
5
5
6
6
7
7
14
17
18
106
86
40
240
194
87
174
143
69
0
0
7
9
10
13
107
87
40
242
198
91
138
114
57
206
167
78
193
159
75
23
20
17
0
0
10
200
164
78
247
200
88
128
104
48
241
196
92
162
132
61
118
96
49
237
195
90
114
94
45
234
192
90
147
120
56
14
17
18
13
16
17
20
21
19
168
138
65
224
184
85
64
53
27
9
10
12
12
13
15
13
14
16
13
16
17
45
47
47
197
197
196
255
255
255
219
219
219
28
28
28
0
0
0
0
0
0
0
0
0
28
28
28
149
149
149
246
246
246
255
255
255
229
229
229
148
120
113
167
74
30
176
79
36
176
79
36
176
79
36
176
79
36
177
80
37
176
79
36
177
80
37
179
80
38
178
79
37
178
79
37
179
80
38
178
79
37
179
80
38
178
80
38
160
70
27
137
103
96
208
208
208
254
254
254
254
254
254
228
228
228
150
150
150
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
167
167
167
254
254
254
235
235
234
136
135
131
174
172
165
199
196
188
216
212
204
113
112
108
13
13
15
64
64
64
39
39
39
12
12
13
63
61
62
20
20
21
0
0
0
75
74
73
28
28
29
4
4
7
8
8
10
35
35
34
51
50
48
42
41
40
10
10
10
0
0
0
0
0
0
2
2
3
5
5
8
7
7
8
7
7
9
7
8
10
7
7
9
7
7
9
7
7
9
18
18
19
57
57
57
20
20
22
7
8
11
8
8
10
5
5
6
6
7
7
10
11
12
108
88
40
241
196
87
169
139
68
0
0
6
9
11
13
107
88
40
242
198
90
136
113
54
201
163
75
201
165
78
23
21
16
0
0
12
176
144
69
249
202
89
128
104
48
226
185
86
183
149
68
168
138
68
227
186
84
112
93
49
236
193
91
129
106
51
12
13
15
12
14
16
14
17
18
119
98
46
240
196
91
103
84
40
5
8
12
13
14
16
13
14
16
13
14
16
22
24
25
162
162
161
252
252
252
237
237
237
95
95
95
0
0
0
0
0
0
13
13
13
155
155
155
246
246
246
255
255
255
230
230
230
147
121
115
166
76
36
175
79
36
176
80
36
176
79
36
176
79
36
177
80
37
176
79
36
176
79
37
177
80
37
178
80
37
177
80
37
177
79
37
178
79
37
178
80
36
177
80
38
141
70
45
155
144
142
231
231
230
254
254
254
253
253
253
200
200
200
90
90
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
118
118
118
253
253
253
252
252
252
127
126
123
178
175
168
187
185
178
220
215
207
139
137
132
19
18
19
0
0
0
0
0
0
9
9
8
48
48
47
13
13
13
26
26
26
56
56
55
40
39
39
73
72
72
83
83
82
86
86
86
106
105
105
107
106
106
94
93
93
58
58
57
0
0
0
0
0
0
6
6
8
7
7
9
8
8
10
8
8
11
9
10
12
8
9
11
3
4
6
64
64
63
54
54
54
6
6
8
6
7
9
8
8
10
5
5
6
5
5
5
7
7
9
110
89
39
243
197
87
163
133
65
0
0
6
8
9
10
105
86
40
241
197
90
133
109
53
195
159
72
208
170
80
23
20
14
0
1
11
144
120
59
251
203
93
131
105
49
191
156
73
239
194
88
243
197
89
202
166
77
121
100
54
234
191
87
105
87
45
9
11
13
9
10
12
10
11
12
80
66
33
224
183
83
171
140
69
0
0
10
13
14
16
13
14
16
12
13
15
14
17
18
133
133
133
245
245
245
247
247
247
156
156
156
22
22
22
42
42
42
156
156
156
249
249
249
255
255
255
233
233
232
149
125
119
165
75
36
175
79
35
174
80
36
176
80
36
175
80
36
176
79
36
177
79
37
176
80
37
177
80
37
176
80
37
177
80
37
177
80
37
177
80
37
177
80
36
167
75
36
138
100
90
188
187
186
250
250
249
255
255
255
246
246
246
177
177
177
28
28
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
64
64
64
245
245
245
255
255
255
154
153
152
148
145
141
136
134
130
150
147
142
144
142
139
156
156
155
165
165
164
124
124
123
159
159
158
212
212
211
193
192
192
196
196
196
215
215
215
211
210
210
222
222
222
227
227
227
229
229
229
241
240
240
241
241
241
233
233
233
216
215
215
182
182
181
130
130
129
52
52
51
0
0
0
0
0
0
6
6
9
7
7
10
6
6
8
51
51
52
90
90
88
0
0
1
7
7
9
5
6
8
7
7
9
5
5
6
5
5
5
5
6
8
110
89
39
244
198
88
153
125
64
0
0
6
4
7
11
103
84
40
240
195
90
127
104
50
188
152
69
214
174
81
23
19
13
2
5
10
110
90
44
251
204
94
133
108
50
106
88
43
221
182
84
227
186
85
122
101
51
144
119
64
228
188
87
71
58
30
7
7
9
6
7
9
7
7
9
27
23
15
164
135
66
166
138
73
0
0
8
12
13
15
11
12
14
12
14
16
13
17
18
70
70
70
228
228
228
255
255
255
241
241
241
115
115
115
189
189
189
248
248
248
255
255
255
224
223
223
121
111
109
156
70
31
173
79
36
174
79
36
175
80
36
175
80
36
175
80
36
176
79
36
176
79
36
176
79
36
176
79
36
177
80
37
177
80
37
177
80
37
176
80
38
147
69
37
157
142
140
225
225
224
255
255
255
255
255
255
224
224
224
142
142
142
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
28
28
220
220
220
255
255
255
211
211
210
118
118
118
160
160
159
192
192
192
191
190
190
249
249
249
252
252
252
249
249
249
251
251
251
255
255
255
254
254
254
254
254
254
254
254
254
254
254
254
253
253
253
252
252
252
252
252
252
251
251
251
250
250
250
252
252
252
255
255
255
253
253
253
249
249
249
239
238
238
201
201
201
140
139
138
79
79
79
52
52
52
23
23
23
84
83
82
39
38
38
7
8
10
6
7
9
6
7
9
7
8
10
7
7
9
4
4
5
5
5
7
109
88
40
242
197
89
168
138
68
127
105
54
63
53
29
95
79
37
230
189
89
117
95
47
168
139
69
201
166
85
21
17
11
5
7
9
59
48
25
167
139
72
81
66
34
19
18
14
62
51
24
66
54
24
16
16
14
78
66
40
99
82
42
16
13
11
6
6
9
6
6
8
7
7
9
9
9
12
39
33
21
43
36
25
10
11
14
11
13
14
13
14
16
12
15
16
13
17
18
7
10
12
114
115
115
244
243
243
255
255
255
239
239
239
253
253
253
254
254
254
225
225
225
102
102
101
40
18
13
106
49
31
161
74
36
174
80
36
176
80
37
176
81
37
175
80
36
175
80
36
176
79
37
176
79
36
176
79
36
177
79
36
176
79
37
168
79
41
133
86
73
185
181
181
248
247
247
255
255
255
248
248
248
188
188
188
73
73
73
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
167
167
167
253
253
253
255
255
255
254
254
254
255
255
255
249
249
249
192
192
191
249
249
249
255
255
255
251
251
251
245
245
245
222
222
222
219
219
219
217
217
217
202
202
202
198
198
198
187
187
187
168
168
168
167
167
167
151
151
151
142
142
142
169
169
169
206
206
206
231
231
231
249
249
249
255
255
255
255
255
255
255
255
255
241
241
241
210
210
210
167
167
167
69
69
69
6
6
8
6
7
9
7
8
10
8
9
11
7
8
10
6
7
9
5
5
7
4
4
5
90
73
35
201
165
76
198
162
78
178
147
72
77
65
32
42
35
22
100
84
45
41
35
20
33
27
17
30
25
15
6
8
10
6
7
9
5
6
9
0
0
5
3
5
9
7
8
10
7
8
11
8
9
11
10
10
12
9
10
14
4
5
10
6
6
8
6
6
8
6
6
8
7
8
10
12
13
15
12
16
17
11
15
16
12
14
16
14
17
18
13
15
17
12
15
16
13
17
18
12
18
20
97
97
97
247
247
247
255
255
255
255
255
255
251
251
251
202
202
201
78
76
75
14
0
0
23
6
0
22
4
1
89
39
24
144
66
34
172
77
35
175
80
36
175
80
36
175
80
36
176
80
37
176
80
36
175
80
37
172
77
34
144
70
40
158
146
143
225
225
225
255
255
255
255
255
255
229
229
229
149
149
149
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
69
69
69
192
192
192
241
241
241
252
252
252
255
255
255
255
255
255
190
189
189
245
245
245
255
255
255
183
183
183
115
115
115
71
71
71
64
64
64
59
59
59
28
28
28
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
38
38
38
88
88
88
126
126
126
173
173
173
223
223
223
251
251
251
255
255
255
255
255
255
227
227
227
62
62
62
7
8
10
8
9
11
8
10
12
8
9
11
8
8
10
7
8
10
8
9
11
9
10
11
24
21
17
49
41
22
26
20
11
0
0
4
2
4
7
6
7
9
2
4
9
5
6
8
6
7
9
6
7
10
6
7
9
7
7
10
7
7
9
7
8
10
7
8
10
7
8
10
8
9
11
7
8
10
8
9
11
14
15
17
12
13
15
10
11
13
9
10
12
8
9
11
10
11
13
12
13
15
14
17
19
13
17
18
13
17
18
11
15
16
13
15
16
12
14
15
20
24
25
24
29
30
67
68
68
191
190
190
216
216
215
202
202
201
147
146
146
59
56
54
21
3
0
23
7
0
24
7
0
23
6
0
24
7
1
112
54
33
168
78
38
174
79
36
175
80
36
176
80
35
175
80
36
176
79
36
161
77
41
129
99
91
204
202
201
246
246
246
255
255
255
252
252
252
199
199
199
95
95
95
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
53
53
53
73
73
73
212
212
212
255
255
255
206
205
205
237
237
236
255
255
255
172
172
172
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
22
22
22
168
168
168
255
255
255
253
253
253
155
155
155
0
0
0
7
8
10
8
10
12
8
9
11
9
10
12
9
10
12
9
10
12
8
9
11
8
9
11
10
11
13
7
7
8
5
5
5
6
6
7
6
6
8
7
7
9
6
6
8
7
7
9
6
7
9
7
7
9
7
7
9
7
7
9
6
6
7
5
5
7
6
7
9
6
7
9
7
8
10
6
7
9
9
10
13
13
14
16
11
12
14
12
13
15
13
14
16
12
13
15
11
12
14
12
14
15
15
18
19
13
17
18
13
17
18
12
16
17
13
16
17
12
14
16
21
21
24
16
16
18
14
14
16
24
24
25
28
28
29
26
20
18
24
10
5
22
6
0
23
6
0
24
7
0
24
7
0
24
7
0
23
7
0
29
7
2
98
45
25
169
78
38
174
79
35
173
79
37
162
74
37
143
95
82
161
156
155
237
237
237
255
255
255
254
254
254
237
237
237
159
159
159
28
28
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
192
192
192
255
255
255
219
219
218
226
226
226
255
255
255
183
183
183
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
59
59
59
232
232
232
255
255
255
221
221
220
44
43
43
6
7
9
7
8
10
7
9
11
8
9
11
10
11
13
9
10
12
10
11
13
10
11
13
10
11
13
11
12
14
9
9
11
5
6
6
5
5
6
6
6
8
7
7
8
7
7
8
6
6
9
7
7
10
7
7
9
6
6
8
6
6
7
6
6
7
6
6
6
7
8
9
7
7
9
7
7
9
7
7
9
8
9
11
9
10
12
8
9
11
11
12
14
12
14
16
13
16
17
12
16
17
11
13
15
11
15
16
14
18
19
14
19
19
17
21
22
15
17
20
14
8
8
21
5
2
21
5
0
20
6
0
20
5
0
22
6
0
24
6
0
23
6
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
23
6
1
59
26
12
131
61
34
159
72
28
129
76
59
176
167
165
223
223
222
253
252
252
255
255
255
250
250
250
191
191
191
105
105
105
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
189
189
189
255
255
255
222
222
222
223
223
223
255
255
255
183
183
183
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
178
178
178
252
252
252
249
249
249
136
136
135
10
10
12
7
7
9
7
8
10
6
7
9
8
9
11
10
11
13
10
11
13
10
11
13
10
11
13
11
12
14
11
12
14
10
11
13
7
8
10
6
6
7
6
6
8
6
6
8
6
6
8
6
6
7
6
6
7
5
5
6
5
5
6
5
5
6
5
5
5
5
5
6
6
6
8
7
7
9
7
7
9
8
8
10
9
10
12
10
11
13
10
11
13
10
11
13
12
13
15
14
16
18
12
15
16
13
15
17
13
14
16
15
16
18
15
18
19
18
20
22
16
7
5
22
5
0
23
5
1
23
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
23
6
0
23
6
0
27
16
12
81
66
63
157
150
147
231
230
229
251
251
251
255
255
255
249
249
249
215
215
215
126
126
126
38
38
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
196
196
196
255
255
255
211
211
211
227
227
226
255
255
255
183
183
183
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
110
110
110
235
235
235
254
254
254
212
212
211
61
61
61
7
8
10
8
8
10
8
9
11
7
8
10
10
11
13
10
11
13
9
11
12
10
11
13
10
11
13
11
12
14
11
12
14
10
11
13
10
11
13
8
9
11
8
8
11
7
7
10
7
7
9
7
8
9
8
9
10
5
5
6
4
4
5
5
5
5
6
6
7
6
6
8
7
7
9
8
8
10
8
9
11
7
8
11
9
9
12
9
10
12
11
12
14
11
12
14
12
13
15
14
16
17
15
18
19
15
18
20
13
15
17
13
14
16
16
15
16
19
7
4
23
6
0
24
6
0
23
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
23
7
0
24
6
0
22
4
0
0
0
0
59
56
55
152
151
151
218
218
218
254
253
253
255
255
255
249
249
249
215
215
215
149
149
149
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
218
218
218
255
255
255
201
201
200
244
244
243
255
255
255
162
162
162
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
209
209
209
255
255
255
247
247
247
131
130
130
1
1
3
7
7
9
8
9
11
9
10
12
8
9
11
10
11
13
10
11
13
9
10
12
10
11
13
11
12
14
10
11
13
10
11
13
10
11
13
11
12
14
10
11
13
9
10
12
10
11
13
9
10
12
9
10
12
10
11
13
8
9
11
5
6
7
5
5
7
7
7
9
6
6
8
6
7
9
7
8
10
8
9
11
8
10
12
9
10
12
10
11
13
9
10
12
11
12
14
15
16
18
14
15
17
14
17
18
12
15
16
12
14
16
12
12
13
21
9
6
23
6
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
23
6
0
23
6
0
24
6
0
25
13
8
53
49
49
153
152
152
224
223
223
249
249
249
255
255
255
254
254
254
218
218
218
135
135
135
64
64
64
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
85
85
235
235
235
254
254
254
194
194
193
248
248
247
253
253
253
137
137
137
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
69
69
69
247
247
247
255
255
255
172
171
170
0
0
0
7
8
9
6
6
8
7
8
11
9
10
12
9
10
12
10
11
13
10
11
13
10
11
13
9
10
12
10
11
13
10
11
13
12
13
15
11
12
14
10
11
13
11
12
14
10
11
13
11
12
14
9
10
12
8
9
11
10
11
13
8
9
11
7
8
10
6
8
9
7
7
9
6
7
9
7
8
10
9
10
12
9
10
12
9
10
12
10
11
13
11
12
13
12
13
15
14
15
17
14
15
17
13
15
16
14
16
18
17
18
19
41
41
41
41
40
40
16
5
2
23
6
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
23
6
0
22
5
0
21
5
0
21
10
6
89
88
88
164
164
164
229
229
229
253
253
253
255
255
255
250
250
250
226
226
226
153
153
153
50
50
50
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
141
141
141
247
247
247
246
246
246
201
201
200
251
251
251
241
241
241
106
106
106
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
92
92
92
251
251
251
254
254
254
150
150
149
0
0
0
6
6
6
6
6
8
6
6
9
7
7
10
9
10
12
9
10
12
10
11
13
10
11
13
9
10
12
10
11
13
12
13
15
12
13
15
11
12
14
11
12
13
10
11
13
11
12
14
10
11
13
8
10
12
9
10
12
10
11
13
8
9
11
6
7
9
7
8
10
7
7
10
7
7
10
6
7
10
8
9
11
9
10
12
12
13
15
12
13
15
12
13
15
12
13
15
13
14
16
12
13
15
9
10
11
30
30
30
55
54
52
66
65
63
65
64
61
36
34
33
20
6
1
23
6
0
24
6
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
22
6
0
19
5
2
74
74
73
216
215
215
255
255
255
255
255
255
252
252
252
222
222
222
166
166
166
64
64
64
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
34
34
34
188
188
188
255
255
255
234
234
234
211
211
210
254
254
254
222
222
222
73
73
73
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
42
42
42
230
230
230
255
255
255
247
247
246
170
170
169
19
20
18
6
6
7
6
6
8
6
7
9
8
9
11
8
9
11
11
12
13
12
13
15
13
15
16
10
12
14
11
12
14
9
10
12
7
8
10
8
9
11
8
10
12
9
10
12
11
12
14
9
10
12
8
9
11
8
9
12
7
8
10
6
7
9
7
7
9
7
7
9
7
7
9
8
9
11
9
10
12
9
11
13
15
16
18
10
11
13
12
13
15
13
14
16
13
13
15
21
21
20
52
51
50
65
64
63
68
67
65
68
67
64
68
67
64
59
58
55
23
18
17
22
6
1
23
6
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
24
7
0
23
6
0
21
10
8
158
157
157
253
253
253
253
253
253
210
210
210
125
125
125
61
61
61
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
71
71
71
231
231
231
255
255
255
211
211
209
229
229
229
254
254
254
190
190
190
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
159
159
159
255
255
255
251
251
250
154
154
153
55
54
51
41
41
39
17
17
18
5
6
7
6
7
9
7
7
10
8
9
11
11
12
14
13
15
16
9
11
12
8
8
9
7
7
9
7
7
9
7
8
10
8
9
11
8
9
12
8
9
11
8
9
11
7
8
10
7
8
10
6
7
10
6
7
9
7
7
9
6
7
9
7
7
10
9
9
11
10
11
13
11
12
14
12
14
16
12
13
15
11
12
14
25
25
25
45
45
43
63
62
59
68
67
65
68
67
65
68
67
65
68
67
65
68
67
65
68
67
64
50
48
47
16
6
4
22
6
0
23
6
0
24
6
0
24
7
0
24
7
0
24
7
0
24
7
0
22
5
1
19
14
14
187
187
186
255
255
255
248
248
248
139
139
139
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
130
130
130
254
254
254
253
253
253
176
176
175
251
251
251
249
249
249
132
132
132
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
34
34
34
218
218
218
255
255
255
232
232
231
71
70
68
67
67
63
67
67
64
61
61
59
30
29
30
8
8
10
5
6
7
6
7
9
8
9
11
7
8
10
7
7
10
7
7
8
7
7
9
7
7
9
6
7
9
7
7
9
7
8
10
6
7
9
7
9
10
8
9
11
7
8
10
8
9
11
7
8
10
8
8
10
9
10
12
9
10
12
13
15
16
15
17
18
14
17
18
13
15
16
16
18
19
46
46
45
63
62
58
67
66
63
68
67
64
68
67
65
68
67
64
68
67
63
68
67
65
68
67
65
68
67
64
68
66
64
45
43
42
15
5
3
23
5
1
23
6
0
24
7
0
24
7
0
24
7
0
24
7
0
15
3
0
83
40
25
128
108
103
233
232
232
255
255
255
238
238
238
127
127
127
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
210
210
210
255
255
255
226
226
226
203
203
202
255
255
255
231
231
231
28
28
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
113
113
113
251
251
251
255
255
255
168
167
166
58
57
54
68
67
63
69
68
64
62
61
58
45
44
43
60
59
57
44
44
41
27
26
25
14
14
15
3
3
6
4
4
6
5
5
7
5
6
8
6
7
9
6
7
9
7
8
10
6
7
9
6
7
9
6
8
10
8
9
11
8
9
11
9
10
12
8
9
11
9
10
12
8
9
12
9
9
12
13
13
16
21
21
22
32
32
31
50
49
47
64
63
61
68
67
63
68
67
63
68
67
63
68
67
63
68
67
63
67
66
64
68
67
65
68
67
65
67
66
64
68
67
64
68
67
65
66
65
63
48
48
45
27
24
23
20
10
7
20
5
1
23
6
0
23
6
0
23
6
0
7
2
1
82
38
23
143
68
36
152
141
138
241
241
241
255
255
255
240
240
240
133
133
133
38
38
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
99
99
99
245
245
245
254
254
254
182
182
181
246
246
245
255
255
255
173
173
173
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
196
196
196
255
255
255
240
240
240
92
92
90
67
66
63
68
67
63
65
64
60
48
47
45
62
61
59
66
65
61
68
67
64
65
64
61
57
56
54
42
42
40
18
18
18
0
0
1
0
0
2
2
2
4
3
3
5
5
5
7
6
7
8
6
6
8
6
7
9
7
8
10
5
6
7
5
6
7
11
11
12
23
23
23
36
36
35
46
45
43
52
51
49
60
59
56
67
66
63
69
68
63
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
68
67
65
68
67
65
68
67
65
69
68
64
68
67
63
67
66
62
67
66
62
62
62
59
52
52
50
38
37
35
21
15
13
14
2
0
16
3
0
3
1
1
17
7
6
124
61
39
140
63
28
149
140
138
239
239
238
255
255
255
246
246
246
194
194
194
95
95
95
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
175
175
175
252
252
252
239
239
239
202
202
202
254
254
254
243
243
243
88
88
88
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
99
99
99
235
235
235
255
255
255
198
198
197
72
71
70
67
66
62
64
63
61
43
42
40
59
58
55
64
63
60
69
68
64
68
67
63
68
67
63
68
67
63
67
66
63
65
65
62
57
56
54
44
43
43
26
25
25
12
12
13
10
10
10
12
12
12
20
19
19
28
28
27
39
39
38
55
54
52
59
59
56
65
65
63
66
65
63
67
66
64
67
66
64
69
68
64
69
68
64
68
67
63
69
68
63
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
68
67
64
67
66
64
68
67
65
67
66
64
68
67
63
68
67
63
67
66
62
68
67
64
67
66
63
66
65
62
65
64
61
63
63
59
58
58
54
48
47
45
31
31
29
21
18
18
82
42
28
129
62
38
149
75
42
142
132
129
233
233
233
253
253
253
253
253
253
241
241
241
176
176
176
75
75
75
22
22
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
69
69
69
220
220
220
255
255
255
215
215
215
230
230
229
255
255
255
200
200
200
46
46
46
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
66
66
66
153
153
153
211
211
211
252
252
252
248
248
247
143
143
143
63
63
60
56
55
52
40
38
38
56
55
54
65
64
61
67
66
64
68
67
64
69
68
64
69
68
64
69
68
64
68
67
64
68
67
65
68
67
65
69
68
65
68
67
65
61
60
58
57
56
54
61
60
58
65
64
62
67
67
63
69
68
64
69
68
63
65
64
60
68
67
64
68
67
65
68
67
63
68
67
64
69
68
64
68
67
64
68
67
64
68
67
64
69
68
64
68
67
64
68
67
64
68
67
63
68
67
63
68
67
64
68
67
64
62
61
59
66
65
62
67
66
62
67
66
62
67
66
62
66
65
63
67
66
63
67
66
63
67
66
64
67
66
63
66
65
62
67
66
62
66
65
61
66
64
61
64
63
60
61
34
27
142
66
34
140
67
39
148
68
30
130
93
85
194
192
191
243
243
242
255
255
255
255
255
255
229
229
229
175
175
175
112
112
112
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
120
120
120
248
248
248
251
251
251
202
202
201
245
245
244
249
249
249
153
153
153
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
79
79
79
211
211
211
250
250
250
255
255
255
254
254
254
228
228
228
84
83
82
42
41
39
51
50
48
62
60
58
67
66
64
68
67
65
68
67
64
68
67
65
68
67
63
69
68
64
69
68
64
68
67
64
68
67
65
69
68
63
69
68
63
69
68
65
69
68
65
68
67
64
69
68
66
67
66
63
66
65
61
68
67
63
69
68
64
66
65
61
67
66
64
68
67
63
68
67
62
68
67
63
68
67
64
67
66
64
68
67
65
68
67
63
68
67
63
67
66
64
67
66
64
67
66
63
68
67
62
68
67
63
67
66
62
60
59
57
61
60
56
66
65
61
67
66
62
67
66
62
67
66
62
66
65
62
67
66
62
67
66
64
67
66
64
66
65
61
67
66
62
67
66
62
66
65
61
64
64
60
77
36
22
167
76
38
166
76
37
143
68
37
161
74
38
152
77
51
138
119
114
198
198
198
250
250
250
255
255
255
253
253
253
241
241
241
210
210
210
130
130
130
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
156
156
156
255
255
255
246
246
246
193
193
192
254
254
254
236
236
236
92
92
92
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
167
167
167
255
255
255
251
251
251
226
226
225
174
174
173
84
84
82
53
52
49
62
61
57
64
63
60
67
66
62
68
67
64
67
66
64
68
67
64
68
67
63
68
67
64
68
67
63
69
68
64
68
67
65
68
67
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
67
66
62
66
65
62
68
67
63
69
68
64
66
65
61
65
64
62
67
66
64
68
67
62
67
66
62
68
66
64
67
66
65
67
66
65
68
66
63
68
67
63
68
67
63
68
67
63
67
66
62
67
66
63
68
67
64
67
66
62
60
59
56
51
50
47
64
63
59
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
67
66
63
67
66
62
66
65
61
67
66
62
67
66
62
66
65
61
57
56
54
97
43
22
175
79
37
174
79
36
169
76
37
141
66
35
161
75
39
168
78
39
133
68
44
141
126
123
212
211
209
241
241
241
253
253
253
255
255
255
251
251
251
213
213
213
122
122
122
50
50
50
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
212
212
212
255
255
255
222
222
221
213
213
213
255
255
255
209
209
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
207
207
207
255
255
255
213
213
212
59
59
57
49
48
44
62
61
57
63
62
58
62
61
57
65
64
60
67
66
62
67
66
62
67
66
63
68
67
64
67
66
64
67
66
63
68
67
62
68
67
63
68
67
64
68
67
63
68
66
62
68
67
63
68
67
63
68
67
64
68
67
64
69
68
64
67
66
62
65
64
62
67
66
64
68
67
64
66
65
62
64
63
60
68
67
63
67
66
62
66
65
62
67
66
63
67
66
62
67
66
63
67
66
62
67
66
62
67
66
63
67
66
62
66
65
61
67
66
62
67
66
62
66
65
61
64
63
59
49
49
46
55
54
51
65
64
60
66
65
61
67
66
62
67
66
62
67
66
61
66
65
63
67
66
62
67
66
62
67
66
62
66
65
61
65
64
60
49
48
45
120
55
30
175
79
36
174
78
35
174
78
37
170
77
36
149
69
36
152
69
37
172
79
38
164
73
30
140
68
37
144
120
114
176
174
173
230
230
229
255
255
255
255
255
255
245
245
245
203
203
203
129
129
129
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
104
104
104
249
249
249
255
255
255
178
178
177
244
243
243
254
254
254
160
160
160
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
219
219
219
255
255
255
185
185
185
14
12
10
62
61
57
63
62
58
62
61
57
65
64
60
67
66
62
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
68
67
63
68
67
63
66
65
61
66
65
61
67
66
62
68
67
63
68
67
65
69
68
64
67
66
62
64
63
61
68
67
65
68
67
65
67
66
64
63
62
60
68
67
63
67
66
62
66
65
61
66
65
61
67
66
62
68
67
63
67
66
62
66
65
61
67
66
63
67
66
61
67
66
62
67
66
62
67
66
62
66
65
61
66
65
61
55
54
51
39
39
37
59
59
56
65
64
60
67
66
62
67
66
62
66
65
61
66
65
63
67
66
62
67
66
62
67
66
62
67
66
62
66
65
61
48
46
44
125
56
31
172
78
36
172
79
35
173
78
36
174
78
36
169
77
35
164
75
38
143
67
37
162
74
36
172
78
36
170
77
36
158
77
45
126
87
76
160
156
155
237
236
236
252
253
252
254
254
254
245
245
245
173
173
173
64
64
64
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
143
143
143
254
254
254
252
251
251
168
167
167
255
255
255
249
249
249
88
88
88
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
22
22
206
206
206
255
255
255
205
204
204
5
4
1
62
61
57
63
62
58
62
61
57
66
65
61
67
66
62
67
66
62
67
66
63
67
66
62
66
65
61
67
66
62
67
66
62
68
67
62
67
66
62
67
66
63
67
66
64
68
67
64
66
65
62
66
65
61
67
66
62
67
66
63
68
67
63
68
67
64
64
63
61
68
67
65
68
67
65
67
66
63
63
62
59
68
67
63
67
66
62
66
65
62
67
66
62
67
66
62
67
66
62
67
66
63
67
66
64
67
66
63
67
66
62
67
66
62
67
66
62
67
66
62
66
65
61
66
65
61
64
63
60
40
39
37
41
40
39
50
49
47
61
60
57
66
65
61
67
66
61
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
65
64
60
53
52
49
103
47
27
159
73
38
160
73
37
172
79
36
173
78
36
174
78
36
170
76
35
169
76
35
159
72
37
169
76
36
173
77
35
172
77
35
173
79
37
153
67
29
131
90
81
186
183
181
238
238
238
255
255
255
255
255
255
218
218
218
132
132
132
13
13
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
166
166
166
254
254
254
233
233
233
191
191
191
255
255
255
228
228
228
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
187
187
187
255
255
255
220
220
219
0
0
0
60
59
55
61
60
56
64
63
59
66
65
61
66
65
61
67
66
62
67
66
62
67
66
61
67
66
62
67
66
63
67
66
63
67
66
62
67
66
62
67
66
62
67
66
62
66
65
62
67
66
62
66
65
61
65
64
60
66
65
61
66
65
61
68
67
63
63
62
60
67
66
64
68
67
64
67
66
62
63
62
58
67
66
62
66
65
61
67
66
62
67
66
63
67
66
63
67
66
63
67
66
62
67
66
62
67
66
61
66
65
61
66
65
61
67
66
62
66
65
61
66
65
61
67
66
62
67
66
62
60
59
55
38
37
36
32
30
30
42
41
39
61
60
57
62
61
58
63
62
58
65
64
60
67
66
61
67
66
62
67
66
62
66
65
61
60
59
56
69
33
21
135
66
36
151
71
38
150
69
37
172
77
36
173
78
36
173
78
36
170
77
34
169
75
34
172
77
35
174
77
35
168
77
37
172
78
37
173
78
37
170
77
37
156
77
45
138
114
108
211
210
209
253
253
253
255
255
255
243
243
243
175
175
175
42
42
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
197
197
255
255
255
215
215
214
214
213
213
255
255
255
212
212
212
28
28
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
177
177
177
255
255
255
227
227
227
0
0
0
56
55
51
62
61
57
64
63
59
65
64
60
65
64
60
66
65
61
66
65
61
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
66
65
61
67
66
62
67
66
62
67
66
62
66
65
61
67
66
62
66
65
61
65
64
60
66
65
61
66
65
61
61
60
58
66
65
63
67
66
62
67
66
62
62
61
57
66
65
61
67
66
62
67
66
62
67
66
62
67
66
61
67
66
61
67
66
62
67
66
62
67
66
62
65
64
60
65
64
60
66
65
61
65
64
60
66
65
61
66
65
61
66
65
61
65
64
60
64
63
59
50
49
47
39
38
38
36
35
34
44
43
41
49
47
46
54
53
52
65
64
60
67
66
62
65
64
60
65
64
60
65
64
61
75
36
25
150
70
37
139
66
37
151
70
40
153
71
37
170
77
36
173
78
36
174
78
36
170
77
34
168
75
32
172
77
35
159
73
37
142
68
37
166
76
36
173
77
35
174
78
35
171
79
39
136
72
50
166
157
154
236
236
235
255
255
255
253
253
253
186
186
186
59
59
59
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
19
18
18
0
0
0
0
0
0
38
38
38
218
218
218
255
255
255
200
200
199
223
223
222
255
255
255
245
245
245
136
136
136
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
161
161
161
255
255
255
235
235
235
37
36
35
55
54
51
63
62
58
63
62
58
64
63
59
65
64
60
65
64
60
65
64
60
66
65
61
66
65
61
66
65
61
66
65
61
66
65
61
66
65
61
66
65
61
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
66
65
61
65
64
60
66
65
61
60
59
56
66
65
62
66
65
61
66
65
61
62
61
57
66
65
61
66
65
61
67
66
62
67
66
62
66
65
61
67
66
62
67
66
62
66
65
61
66
65
61
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
64
63
59
65
64
60
65
64
60
65
64
60
60
59
56
52
51
49
51
50
48
53
52
49
61
60
57
65
64
60
67
66
62
66
65
61
65
64
60
66
65
61
68
42
35
154
70
32
165
75
36
152
70
38
151
70
36
154
72
38
165
75
37
174
78
36
173
77
35
172
77
35
170
76
35
170
76
34
165
76
37
147
69
37
158
74
38
173
79
36
174
78
36
174
79
37
158
71
28
145
119
112
211
210
209
255
255
255
253
253
253
199
199
199
69
69
69
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
34
34
33
0
0
0
0
0
0
128
128
128
244
244
244
254
254
254
195
195
194
175
174
173
240
240
240
255
255
255
221
221
221
42
42
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
142
142
142
255
255
255
245
244
244
69
68
67
53
52
49
63
62
58
63
62
58
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
66
65
61
66
65
61
66
65
61
67
66
62
66
65
61
66
65
61
65
64
61
59
58
54
61
61
57
65
64
60
65
64
60
61
60
56
65
64
60
66
65
61
66
65
61
66
65
61
65
64
60
66
65
61
66
65
61
66
65
61
64
63
59
65
64
60
64
63
59
65
64
60
64
63
59
65
64
60
65
64
60
64
63
59
65
64
60
64
63
59
65
64
60
65
64
60
64
63
60
63
62
59
63
62
58
65
64
60
66
65
61
66
65
61
66
65
61
65
64
60
65
64
60
61
45
41
144
65
31
169
76
36
169
77
35
161
74
37
156
71
37
151
70
39
164
74
39
173
77
35
173
77
35
173
77
35
171
77
35
167
74
34
171
77
36
148
69
38
155
72
37
174
78
36
173
79
36
173
78
35
170
78
37
138
90
77
202
201
200
252
252
252
254
254
254
199
199
199
50
50
50
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
19
18
18
0
0
0
0
0
0
155
155
155
251
251
251
239
239
239
107
106
105
0
0
0
160
160
159
251
251
251
240
240
240
109
109
109
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
122
122
122
249
249
249
249
249
249
121
120
120
42
41
38
63
62
58
62
61
57
64
63
59
64
63
59
65
64
60
65
64
60
64
63
59
64
63
59
65
64
60
65
64
60
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
66
65
61
65
64
60
64
63
59
64
63
59
61
61
57
52
51
48
58
57
54
58
57
55
55
54
52
63
62
58
65
65
61
65
64
60
66
65
61
66
65
61
66
65
61
66
65
61
65
64
60
64
63
59
65
64
60
65
64
60
64
63
59
65
64
60
65
64
60
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
65
64
60
65
64
60
66
65
61
65
64
60
65
64
60
53
50
48
99
48
25
152
70
35
170
77
35
173
77
35
169
76
36
163
74
35
160
72
38
167
75
36
173
77
35
174
78
36
175
79
36
171
77
35
169
75
33
171
77
35
150
71
37
154
72
37
173
78
35
173
77
35
173
78
36
171
78
35
136
78
60
199
198
197
253
253
253
254
254
254
195
195
195
56
56
56
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
155
155
155
251
251
251
237
237
237
94
94
93
1
1
3
126
126
125
244
244
244
246
246
246
134
134
134
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
99
99
99
237
237
237
252
252
252
165
164
164
19
17
16
63
62
59
63
62
58
64
63
59
65
64
60
64
63
59
64
63
59
64
63
59
64
63
59
64
63
59
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
65
64
60
64
63
59
63
62
58
46
45
43
54
53
49
63
62
58
64
63
59
62
61
57
61
60
56
65
64
60
65
64
60
66
65
61
66
65
61
66
65
61
65
64
60
64
63
59
64
63
59
65
64
60
65
64
60
64
63
59
65
64
60
64
63
59
64
63
59
65
64
60
66
65
61
65
64
60
65
64
60
66
65
61
64
63
59
64
63
59
64
63
59
64
63
59
64
63
59
65
64
60
65
64
60
64
63
59
64
63
59
57
55
52
118
55
30
141
67
36
151
69
35
172
77
36
174
77
36
172
77
36
173
77
35
172
77
35
173
77
35
174
78
36
174
78
36
173
77
35
173
77
35
171
77
34
167
74
34
147
69
37
156
72
37
173
78
35
174
77
36
174
78
35
172
78
35
143
86
68
194
193
193
253
253
253
251
251
251
185
185
185
42
42
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
142
142
142
248
248
248
240
240
240
107
107
107
0
0
0
125
125
124
244
244
244
246
246
246
136
136
136
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
66
66
66
219
219
219
254
254
254
201
201
200
32
31
31
60
59
56
63
62
59
65
64
60
65
64
60
64
63
59
65
64
60
64
63
59
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
65
64
60
65
64
60
64
63
60
53
52
49
21
20
20
33
32
30
55
54
50
59
58
55
60
58
55
65
64
60
65
64
60
66
65
61
65
64
60
65
64
60
64
63
59
64
63
59
64
63
59
65
64
60
65
64
60
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
66
65
61
65
64
60
64
63
59
65
64
60
65
64
60
65
64
60
64
63
59
65
64
60
65
64
60
65
64
60
64
63
59
64
63
59
63
62
58
57
57
56
107
51
30
164
72
36
146
68
35
152
70
34
171
77
36
169
76
36
173
78
37
173
78
36
173
77
35
173
77
35
174
78
35
174
78
36
173
77
35
173
77
35
172
77
35
167
75
36
138
64
37
161
74
38
162
74
37
173
78
36
173
78
36
172
79
37
138
85
68
212
209
209
254
254
254
251
251
251
159
159
159
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
140
140
140
247
247
247
246
246
246
146
146
145
119
118
115
175
175
175
250
250
250
244
244
244
130
130
130
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
13
13
189
189
189
253
253
253
226
226
226
79
79
79
51
50
47
63
62
58
64
63
59
65
64
60
65
64
60
65
64
60
64
63
59
63
62
58
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
49
48
46
11
11
12
6
6
7
29
28
28
48
47
45
62
61
58
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
66
65
61
66
65
61
66
65
61
66
65
61
66
65
61
66
65
61
65
64
60
65
64
60
65
64
60
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
60
60
56
85
45
33
163
73
34
168
74
35
151
69
36
139
65
34
155
72
38
150
70
36
173
78
37
173
77
35
174
78
36
174
78
36
173
77
35
174
78
36
173
77
35
174
78
36
172
77
35
167
75
36
142
66
35
160
73
37
156
71
38
174
79
36
175
80
36
170
76
34
135
93
81
216
215
215
255
255
255
243
243
243
139
139
139
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
105
105
105
238
238
238
255
255
255
199
199
199
105
104
103
207
207
206
255
255
255
227
227
227
66
66
66
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
146
146
146
250
250
250
244
244
244
115
115
115
39
38
36
64
63
59
64
63
59
65
64
60
65
64
60
65
64
60
64
63
59
63
62
58
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
64
63
59
64
63
59
66
65
61
66
65
61
66
65
61
66
65
61
65
64
60
66
65
61
61
60
57
30
30
29
21
21
21
5
5
5
7
6
6
55
55
53
64
63
58
64
63
60
65
64
60
66
65
61
65
64
60
65
64
60
65
64
60
65
64
60
66
65
61
66
65
61
66
65
61
67
66
62
66
65
61
67
66
62
66
65
61
66
65
61
65
64
60
66
65
61
66
65
61
66
65
61
66
65
61
65
64
60
66
65
61
66
65
61
66
65
61
66
65
61
64
63
59
62
61
56
58
39
32
160
73
36
168
75
34
171
76
35
158
73
37
141
67
37
152
72
39
150
71
37
174
79
38
174
79
37
174
78
36
174
78
36
174
78
36
174
78
36
174
78
36
174
78
36
173
77
36
156
74
35
151
71
38
164
76
38
163
74
36
168
77
39
153
70
36
169
78
39
140
114
108
233
233
232
255
255
255
229
229
229
98
98
98
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
196
196
196
255
255
255
247
247
247
243
243
242
253
253
253
255
255
255
178
178
178
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
88
88
242
242
242
255
255
255
171
171
170
30
30
29
62
61
57
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
65
64
60
66
65
61
67
66
62
67
66
62
67
66
62
66
65
61
66
65
61
65
64
60
50
49
48
39
39
38
24
23
23
14
13
14
46
46
44
65
64
60
65
64
60
65
64
60
66
65
61
66
65
61
65
64
60
64
63
59
65
64
60
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
66
65
61
66
65
61
67
66
62
67
66
62
66
65
61
67
66
62
67
66
62
66
65
61
66
65
61
67
66
62
66
65
61
66
65
61
64
63
59
42
38
36
146
67
37
168
75
34
171
76
34
173
78
37
158
72
34
144
69
35
155
73
38
152
72
37
171
78
38
175
78
36
174
78
36
174
78
36
174
78
36
174
78
36
174
78
36
173
78
35
173
79
36
142
65
35
160
74
36
155
70
38
167
76
38
111
52
28
124
57
31
152
71
34
160
147
144
246
246
246
255
255
255
206
206
206
42
42
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
93
93
93
227
227
227
254
254
254
254
254
254
251
251
251
199
199
199
64
64
64
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
203
203
203
255
255
255
217
217
216
29
29
29
56
55
51
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
64
63
59
64
63
59
65
64
60
65
64
60
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
66
65
61
58
57
55
40
40
38
42
41
40
35
34
34
34
33
32
65
64
60
66
65
61
65
64
60
66
65
61
65
65
61
65
64
60
65
64
60
65
64
60
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
65
65
61
65
64
59
41
43
41
119
58
34
153
70
34
171
76
35
173
77
36
173
77
36
163
75
37
144
67
35
160
76
38
149
70
37
170
77
36
174
79
35
174
78
36
174
78
36
174
78
35
174
78
35
173
77
36
173
77
35
168
78
39
138
64
33
163
75
37
149
68
35
163
76
38
76
33
18
79
36
20
110
58
38
172
170
169
254
254
254
252
252
252
170
170
170
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
66
66
66
150
150
150
158
158
158
114
114
114
34
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
153
153
153
255
255
255
244
244
244
58
57
56
46
45
42
64
63
59
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
64
63
59
64
63
59
64
63
59
66
65
61
66
65
61
66
65
61
67
66
62
67
66
62
67
66
62
65
64
61
57
56
54
51
50
48
42
41
40
43
43
42
27
26
26
60
59
56
65
64
60
65
64
60
66
65
61
65
64
60
65
64
60
65
64
60
65
64
60
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
66
65
61
65
64
60
48
49
46
105
50
31
146
68
35
162
73
37
173
78
34
173
77
34
173
77
36
160
74
36
148
69
36
167
76
38
153
71
36
172
78
37
174
78
35
173
77
35
173
77
35
174
78
36
174
78
36
173
77
36
173
77
36
154
72
37
163
76
36
151
67
35
165
75
37
140
64
35
31
24
24
68
64
63
69
62
61
210
210
209
255
255
255
239
239
239
115
115
115
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
99
99
99
250
250
250
254
254
254
132
132
131
24
23
22
63
62
59
64
63
59
65
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
64
63
59
66
65
61
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
66
65
61
59
58
56
55
54
52
48
48
46
49
48
46
33
31
30
49
48
46
65
64
61
65
64
60
66
65
61
65
64
60
65
64
60
65
64
60
66
65
61
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
66
65
61
51
50
47
41
20
15
128
59
32
145
67
37
165
76
36
173
77
35
173
77
35
174
79
36
159
74
36
148
68
34
168
76
37
154
70
36
173
78
37
173
77
35
173
77
35
174
78
36
175
79
37
174
78
36
174
78
36
167
76
37
157
72
36
169
77
36
146
67
33
169
76
39
89
48
38
168
168
168
147
147
146
115
115
114
240
240
240
255
255
255
207
207
207
53
53
53
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
64
64
64
228
228
228
255
255
255
183
183
182
0
0
0
59
59
56
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
67
66
61
63
62
60
58
57
56
51
50
48
51
50
48
54
53
52
40
39
37
64
63
59
65
64
60
66
65
61
66
65
61
66
65
61
66
65
61
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
66
65
61
50
50
47
15
16
17
55
38
35
141
67
36
147
68
38
168
76
38
173
77
35
173
78
35
174
77
36
156
73
36
157
72
35
166
76
38
155
70
36
174
77
36
172
78
35
173
77
35
174
78
36
174
78
36
173
78
37
172
78
36
154
70
36
171
78
36
154
71
36
163
75
35
139
62
30
141
142
141
242
242
242
173
173
172
183
182
182
254
254
254
252
252
252
119
119
119
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
42
42
42
200
200
200
255
255
255
223
223
222
34
34
33
47
47
44
64
63
59
64
63
59
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
65
64
60
66
65
61
66
65
61
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
66
65
63
56
55
53
57
56
54
55
54
52
60
59
57
46
46
44
60
60
56
65
64
60
66
65
61
66
65
61
66
65
61
66
65
61
67
66
62
67
66
62
67
66
62
66
65
61
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
63
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
66
65
61
48
49
46
60
59
59
160
159
159
70
46
40
151
70
37
159
72
36
172
77
35
172
76
34
172
76
34
171
77
36
148
68
35
167
77
36
161
73
36
164
74
37
172
76
35
172
76
34
172
76
34
172
76
35
172
76
35
173
78
35
152
70
34
170
76
38
159
73
36
160
74
37
158
73
34
85
68
62
240
240
240
249
249
249
196
195
195
248
248
248
255
255
255
134
134
134
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
42
41
40
53
53
51
11
11
10
0
0
0
0
0
0
13
13
13
161
161
161
251
251
251
239
239
239
110
109
108
28
27
26
65
65
61
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
67
66
62
68
67
63
68
67
63
68
67
63
69
68
64
69
68
64
69
68
64
69
68
64
69
68
65
68
67
65
56
55
54
60
59
57
64
63
61
52
52
50
61
60
57
68
67
63
68
67
63
68
67
63
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
65
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
69
68
64
68
68
64
48
48
45
88
88
87
239
239
239
130
129
129
91
43
26
158
75
40
167
78
38
174
79
38
173
79
38
174
80
38
166
79
41
143
67
39
173
80
39
152
71
38
174
80
39
174
79
38
174
79
38
174
79
38
174
79
38
174
80
39
165
77
38
161
74
39
172
80
39
148
70
37
172
79
42
99
39
7
209
209
207
254
254
254
254
254
254
254
254
254
239
239
239
90
90
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0