0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
4
3
84
116
105
122
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
5
8
26
118
204
157
54
60
36
60
172
11
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
127
53
67
110
303
327
337
189
54
61
214
58
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
267
199
125
448
289
355
342
348
233
184
189
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
52
189
292
320
101
429
245
298
327
316
290
311
167
166
41
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
7
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
55
342
366
298
310
345
318
320
381
220
284
286
240
258
169
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
18
7
0
0
4
6
8
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
29
118
145
214
332
334
343
292
313
325
279
298
189
220
187
124
304
210
71
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
13
8
2
4
6
12
4
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
2
239
358
256
213
334
228
241
300
296
241
303
213
236
206
255
247
232
178
83
37
9
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
42
103
32
0
0
8
9
1
1
11
7
8
6
0
0
0
0
0
0
0
0
7
29
56
18
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
10
28
194
169
146
336
244
102
197
370
310
280
207
231
138
87
168
52
153
113
105
65
122
79
38
7
0
0
0
0
0
0
0
0
0
0
0
0
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
125
0
0
5
20
16
172
16
7
9
2
0
0
0
0
0
0
0
17
158
250
262
200
41
7
2
0
0
0
0
0
0
0
0
0
0
0
8
48
80
52
41
188
186
331
372
244
204
322
253
266
210
235
197
222
112
95
43
61
70
116
109
94
67
20
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
15
156
26
0
1
2
5
133
160
18
5
0
0
0
0
0
0
0
0
136
274
313
409
352
220
153
19
22
19
20
32
83
57
0
24
33
69
31
67
178
224
281
225
369
262
327
104
268
298
239
227
270
222
208
211
307
224
188
118
78
55
42
41
61
60
61
18
0
0
0
0
0
0
0
0
0
0
0
0
0
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
30
0
0
4
7
81
121
53
0
0
0
0
0
0
0
0
68
209
246
286
271
199
88
249
113
38
24
50
119
256
193
188
243
265
108
70
274
218
264
303
331
362
375
305
105
224
257
218
283
245
271
267
200
235
182
208
117
84
59
52
52
67
76
83
57
15
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
18
0
1
4
8
18
110
131
47
0
1
1
0
0
0
20
208
201
181
249
289
266
224
261
263
141
172
211
212
282
270
259
290
285
244
211
296
288
259
233
288
327
362
117
0
0
26
121
176
199
229
121
228
177
177
198
95
50
61
50
35
81
63
66
55
70
91
30
0
0
0
0
0
0
0
0
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
16
61
56
9
0
9
9
8
68
271
240
182
130
45
95
69
0
3
167
263
242
275
307
215
245
257
256
145
84
219
243
251
302
228
278
295
311
270
300
308
218
268
311
308
245
4
0
0
19
299
212
268
266
200
207
224
245
225
121
94
32
31
28
48
43
38
58
62
64
25
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
54
93
71
72
12
0
6
12
5
15
165
300
273
170
183
193
173
74
7
33
55
60
182
143
125
173
3
9
6
81
256
247
343
311
239
255
118
153
325
373
286
196
253
309
254
283
133
47
0
46
398
265
265
260
262
223
254
256
182
72
65
20
25
21
38
18
11
5
2
0
0
1
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
33
74
75
37
0
3
15
32
14
9
11
193
308
318
266
187
289
302
52
45
121
114
34
66
212
160
0
0
1
3
38
147
179
244
273
299
162
306
332
296
274
302
294
280
329
301
286
96
1
45
282
240
245
218
220
270
218
121
82
87
53
72
85
37
14
23
16
19
52
63
35
63
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
5
35
75
49
1
0
11
18
19
17
7
6
85
250
295
225
239
306
105
181
213
233
232
55
164
160
0
0
0
5
7
58
1
69
156
261
235
110
176
138
162
226
224
267
300
192
195
98
76
77
241
357
353
313
160
252
212
97
56
49
72
145
179
58
5
22
22
38
66
54
61
85
80
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
40
46
17
0
0
1
2
26
7
1
3
6
14
114
337
299
300
118
18
97
255
233
119
59
27
0
15
16
8
5
157
1
6
97
236
181
84
52
9
32
46
103
112
118
185
124
106
120
121
291
348
332
289
183
165
82
12
0
1
63
161
137
84
77
54
46
49
47
43
84
95
83
52
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
17
19
0
2
1
0
2
3
3
7
5
3
7
2
220
322
306
251
14
192
282
268
206
90
116
48
80
95
126
100
123
115
91
148
54
191
342
138
33
14
6
12
3
20
95
281
150
73
117
382
372
419
386
137
105
32
13
16
18
18
74
74
87
90
130
52
49
57
76
82
76
26
30
40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
31
15
9
4
2
33
7
0
2
3
4
7
3
4
11
94
259
309
255
36
269
292
285
260
210
249
280
166
83
181
245
291
283
380
213
238
284
272
66
192
39
72
45
7
74
142
306
335
194
39
193
247
243
73
28
21
18
19
24
20
21
30
37
53
52
64
43
35
44
89
54
35
18
24
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
15
14
35
36
28
20
1
1
4
3
5
5
4
17
39
300
250
219
283
268
253
289
311
216
206
345
260
121
200
285
396
329
202
245
175
208
261
165
103
56
71
143
144
142
389
250
322
151
21
134
48
27
36
12
23
31
26
18
32
24
14
18
38
45
57
41
56
75
47
29
20
20
7
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
9
16
19
47
25
19
77
2
3
5
5
7
11
19
23
249
241
262
266
137
98
220
199
142
169
322
294
246
187
247
405
381
278
191
281
234
337
272
269
185
136
148
263
313
384
410
358
31
22
18
26
30
17
11
15
14
25
26
17
31
24
14
8
15
22
0
0
12
26
23
24
15
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
15
15
15
24
15
18
180
4
6
5
4
8
13
22
27
94
90
129
33
28
153
298
250
171
135
346
273
249
301
181
313
367
216
79
68
256
286
276
193
284
232
218
336
193
255
316
84
24
22
22
12
12
7
11
11
9
13
27
17
16
18
13
14
10
2
0
0
3
27
26
24
6
2
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
16
15
11
18
11
4
4
11
4
8
5
6
10
11
13
2
4
10
189
224
97
294
336
291
247
343
298
237
246
215
164
384
295
189
74
60
260
241
212
291
335
302
293
253
115
147
76
27
20
11
14
15
14
15
8
11
12
16
16
11
16
10
8
12
19
4
0
0
0
0
6
4
15
46
24
0
0
0
0
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
27
33
19
15
4
7
6
6
7
5
6
9
5
3
6
4
9
26
165
144
253
307
378
346
278
224
208
122
71
134
326
376
406
375
176
123
104
347
357
335
357
264
120
56
48
18
18
15
11
6
13
13
9
12
16
9
7
18
10
8
13
14
13
13
7
0
0
0
0
0
3
25
35
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
29
16
30
20
13
4
4
4
5
12
11
11
5
5
6
2
1
17
12
10
21
183
235
340
341
160
31
36
41
48
131
210
315
380
360
280
68
99
109
96
221
269
153
155
78
8
13
15
11
20
19
7
11
12
16
4
7
9
5
13
7
17
11
11
7
0
0
0
0
0
0
0
16
25
37
0
0
0
0
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
0
2
7
13
7
3
11
10
15
9
8
2
5
11
6
11
6
14
7
4
6
51
232
295
81
18
18
18
47
285
382
467
284
276
257
111
59
8
3
36
165
85
22
15
4
7
10
11
19
16
18
15
8
28
23
10
8
7
11
7
7
7
6
6
0
0
0
0
0
0
0
1
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
2
1
6
4
7
18
13
9
10
16
7
10
7
7
6
10
10
14
9
9
8
9
28
28
25
15
23
6
34
324
337
287
213
214
266
203
57
10
11
12
10
7
11
18
7
5
4
8
19
10
15
14
13
12
22
37
13
12
9
7
12
4
0
0
0
0
0
0
0
0
1
1
2
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
3
3
4
3
3
15
13
12
9
8
6
12
12
17
15
12
8
12
11
5
6
8
4
12
19
22
21
2
5
88
160
299
257
188
199
190
85
23
28
19
9
11
6
10
11
1
3
2
4
6
2
4
12
10
18
17
27
23
13
9
11
1
0
0
0
0
0
0
1
1
2
0
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
1
1
2
0
3
9
6
14
9
11
8
15
10
8
13
14
8
4
4
5
5
11
7
9
12
7
10
5
12
9
17
155
26
117
237
203
132
25
12
14
6
11
10
4
16
1
2
2
6
2
6
6
7
17
23
25
34
44
40
16
7
6
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
2
2
3
2
1
0
4
9
9
12
9
9
9
1
2
1
3
6
7
9
12
10
6
10
10
10
4
8
12
11
13
56
40
53
123
123
44
11
8
6
4
10
10
5
10
13
2
5
5
4
6
6
11
20
16
19
13
34
58
40
7
8
0
0
0
0
0
0
0
0
0
0
1
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
2
3
0
3
4
4
8
11
0
0
0
0
0
0
2
4
11
7
5
8
7
8
6
7
3
10
8
8
47
81
42
56
31
14
7
9
8
12
10
2
7
11
10
18
12
7
7
11
7
21
19
14
25
33
34
44
53
12
8
3
0
0
1
0
0
1
2
1
0
1
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
5
1
0
1
5
0
6
19
18
13
0
0
0
0
0
0
0
2
3
6
0
0
3
9
6
19
13
10
8
7
37
72
31
34
19
7
12
5
14
10
3
10
6
5
14
15
35
20
5
4
6
10
11
19
29
21
35
38
17
9
10
4
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
1
2
7
2
4
8
2
1
4
11
4
0
0
0
0
0
0
0
0
0
0
0
0
0
4
12
7
7
14
13
10
40
64
20
19
9
15
11
5
5
10
10
9
2
9
14
24
62
46
8
6
4
3
6
6
11
20
36
22
3
4
3
1
0
2
0
0
0
0
0
0
0
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
3
6
1
3
1
1
3
3
10
6
0
0
0
0
0
0
0
0
0
0
0
0
0
1
5
10
6
5
15
16
65
67
22
14
15
16
15
15
5
11
9
4
3
6
14
20
24
33
13
3
4
4
10
10
11
7
3
5
6
3
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
2
4
0
2
3
1
1
2
10
16
2
0
0
0
0
0
0
0
0
0
0
0
0
0
3
5
7
6
14
14
34
39
6
6
2
13
11
12
10
7
10
5
5
15
7
19
30
9
8
7
7
4
10
6
11
11
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
5
2
1
9
24
19
16
13
6
0
0
0
0
0
0
0
0
0
0
0
0
2
8
6
4
20
14
13
6
12
2
8
8
3
4
5
8
8
7
4
7
10
12
23
20
11
3
7
4
8
1
14
7
4
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
2
2
1
1
1
3
15
28
14
1
2
0
0
0
0
0
0
0
0
0
0
0
0
0
4
3
3
6
9
12
13
10
9
12
9
4
5
1
5
9
7
10
5
10
4
14
20
9
19
16
8
3
3
6
7
2
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
6
3
5
8
14
19
9
23
21
21
12
11
9
8
7
7
8
7
10
4
5
6
15
18
18
10
16
6
3
3
0
0
0
0
1
1
0
0
2
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
12
7
5
7
14
20
22
26
22
14
11
15
9
4
6
3
2
6
5
1
1
3
13
5
3
4
11
6
7
3
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
12
16
25
8
11
11
4
23
18
14
27
24
20
17
14
4
5
5
4
4
0
4
6
4
2
4
2
3
3
6
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
15
14
11
15
50
37
10
24
23
19
22
29
22
24
22
9
2
1
1
5
4
2
4
1
2
4
11
5
5
4
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
2
17
13
16
16
116
67
6
22
8
8
25
26
24
22
12
10
5
7
5
9
8
4
6
4
5
3
8
3
6
5
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
10
11
44
71
16
13
11
18
5
10
31
31
17
18
13
8
0
4
3
5
4
5
1
4
4
5
5
6
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
2
7
10
4
10
6
7
6
7
24
28
22
16
17
2
1
0
0
1
2
3
1
6
0
1
4
1
0
1
0
0
1
0
0
0
1
0
0
2
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
4
4
11
7
9
7
7
7
8
11
18
7
6
0
3
2
0
0
0
2
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
4
5
5
9
3
12
6
5
3
7
0
0
0
0
1
3
1
1
3
2
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
2
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
2
6
6
8
8
10
10
5
10
5
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
2
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
7
5
7
10
5
2
7
3
2
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
2
7
5
4
8
10
8
2
0
1
1
1
1
5
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
8
7
11
8
6
0
0
1
2
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
2
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
2
3
1
4
6
5
3
0
1
1
0
1
0
1
1
1
3
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
2
1
0
1
0
0
0
0
0
0
0
0
0
0
1
5
6
9
2
2
3
1
1
0
0
0
2
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
5
2
2
0
0
1
1
2
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
3
1
2
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
5
2
0
1
0
1
3
0
0
3
0
0
0
0
1
2
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
2
2
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
2
0
0
1
1
0
0
0
1
0
1
0
0
1
2
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
2
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
2
1
0
0
0
1
0
1
0
0
0
1
2
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
2
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
2
0
1
1
1
1
1
3
0
1
1
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
2
5
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
2
0
2
1
1
2
0
1
3
0
3
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
5
3
1
0
3
2
3
3
1
1
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
2
3
4
4
2
1
0
0
2
0
1
1
1
0
0
1
0
2
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
2
0
3
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
5
3
2
5
0
5
5
2
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
1
1
5
5
1
4
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
3
0
2
0
3
0
0
0
0
0
0
1
0
2
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
3
3
1
3
4
0
2
1
4
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
3
2
3
7
3
1
0
0
0
0
0
0
0
0
1
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
2
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
6
2
3
6
3
1
2
2
2
4
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
2
5
5
2
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
2
1
0
0
1
1
0
1
2
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
2
3
5
5
2
3
1
2
5
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
1
6
3
4
2
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
2
0
1
0
1
3
2
2
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
5
3
1
2
15
4
3
2
2
0
2
1
6
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
5
0
1
1
1
0
0
2
0
0
1
2
0
0
2
1
1
0
1
3
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
2
1
1
1
2
1
0
1
1
0
1
0
1
0
0
2
0
1
0
0
3
5
4
1
14
19
2
2
5
0
3
5
4
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
2
4
2
1
0
1
2
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
5
4
2
0
2
1
2
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
3
4
1
0
10
40
28
13
4
4
4
3
4
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
3
2
0
1
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
4
15
6
1
1
0
1
0
0
0
0
0
1
2
1
1
0
0
0
0
0
0
0
0
2
0
0
8
6
2
7
38
34
25
11
3
6
2
3
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
4
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
6
8
4
0
0
1
0
1
1
4
2
0
3
2
0
0
0
0
0
0
0
0
0
0
0
0
11
19
10
10
29
32
15
16
6
7
4
3
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
10
9
5
7
11
3
1
3
2
3
2
1
1
1
1
4
2
0
1
0
0
0
0
0
0
2
9
12
17
9
0
0
3
11
6
7
5
5
7
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
5
6
13
6
3
2
3
0
3
2
2
3
3
1
1
1
0
0
0
1
0
0
0
1
2
8
2
0
0
0
0
0
1
7
5
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
5
9
6
9
6
0
1
1
4
0
3
1
2
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
8
9
5
1
0
3
2
0
3
4
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
9
9
6
0
3
0
4
2
3
1
4
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
2
3
0
2
0
2
2
3
1
2
0
0
1
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
