0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
-1
0
1
3
5
7
10
13
17
21
25
29
34
39
44
49
55
61
68
74
81
87
94
101
108
116
123
130
138
146
153
161
168
176
183
191
198
205
212
219
226
232
239
245
251
257
262
268
273
277
282
286
290
293
297
300
302
304
306
308
309
309
310
310
310
309
308
307
305
303
300
298
295
291
288
284
279
275
270
265
260
254
249
243
236
230
224
217
210
203
196
189
182
175
168
161
154
147
139
132
125
119
112
105
98
92
86
80
74
68
63
58
53
48
44
40
36
32
29
26
24
22
20
18
17
16
15
15
15
15
16
17
19
21
23
25
28
31
34
38
42
46
51
56
60
66
71
77
82
88
94
100
107
113
120
127
133
140
147
154
160
167
174
181
188
194
201
207
213
220
225
231
237
242
248
252
257
262
266
270
274
277
281
283
286
288
290
292
293
294
295
295
296
296
296
295
293
292
290
288
285
283
280
276
273
269
265
261
256
251
246
241
236
230
224
218
213
206
200
194
187
181
174
168
161
155
148
142
136
129
123
117
111
105
99
93
88
83
78
73
68
63
59
55
51
48
45
42
39
37
35
33
32
31
30
29
29
29
29
30
31
32
34
36
38
40
43
46
49
53
57
61
65
70
74
79
84
90
95
100
106
112
118
124
130
136
142
148
154
160
166
173
179
185
191
197
203
209
214
219
225
230
235
239
244
248
252
256
260
263
266
269
272
274
276
278
280
281
282
283
283
283
283
284
283
282
281
279
277
275
272
270
267
263
260
256
252
248
244
239
235
230
225
220
214
209
203
198
192
186
180
174
168
163
157
151
145
139
134
128
122
117
111
106
101
96
92
87
83
78
74
70
67
63
60
57
55
52
50
48
47
45
44
43
43
43
43
42
42
43
44
46
48
50
52
55
57
60
63
67
70
74
78
83
87
91
96
101
106
111
116
122
127
133
138
144
149
155
160
166
171
177
182
188
193
198
204
209
213
218
223
227
231
235
239
243
247
250
253
256
259
261
263
265
267
268
269
270
270
271
271
271
271
270
269
268
266
264
262
260
258
255
252
249
246
242
238
234
230
226
221
217
212
208
203
198
193
188
182
177
172
166
161
156
151
145
140
135
130
125
120
115
110
106
101
97
93
89
85
82
78
75
72
69
66
64
62
60
58
57
56
55
54
54
54
54
53
53
54
55
57
58
60
62
64
67
69
72
75
79
82
86
89
93
97
102
106
111
115
120
125
130
134
139
144
149
154
159
164
169
174
179
184
189
193
198
203
207
211
215
219
223
227
230
234
237
240
243
245
247
250
251
253
255
256
257
258
258
259
259
259
259
258
257
256
255
253
251
249
247
245
242
239
236
233
230
226
223
219
215
211
207
203
198
194
189
185
180
175
170
165
161
156
151
147
142
137
133
128
124
119
115
111
107
103
99
96
93
89
86
83
81
78
76
73
71
70
68
67
66
65
64
64
64
64
64
65
66
67
68
69
71
73
75
77
79
82
84
87
90
94
97
100
104
108
112
116
120
124
129
133
137
142
146
151
155
159
164
168
173
177
182
186
190
194
199
203
206
210
214
217
220
223
226
229
232
234
237
239
241
243
244
245
246
247
248
249
249
249
249
249
248
247
246
245
244
242
240
238
236
233
231
228
225
222
219
216
213
209
206
202
198
194
190
186
182
178
174
169
165
161
156
152
148
144
140
136
131
128
124
120
116
113
109
106
103
100
97
94
91
89
87
85
83
81
79
78
77
76
75
75
74
74
74
74
75
75
76
77
78
80
81
83
85
87
89
92
95
97
100
103
106
110
113
117
120
124
128
131
135
139
143
147
151
155
159
163
167
171
175
179
183
186
190
194
197
201
204
207
210
213
216
219
221
224
226
228
230
231
233
234
236
237
237
238
238
239
239
239
239
238
237
237
235
234
233
231
229
227
225
223
221
218
216
213
210
207
204
201
197
194
190
187
183
179
176
172
168
164
160
157
153
149
146
142
138
135
131
128
124
121
118
115
112
109
106
104
101
99
97
95
93
91
90
88
87
86
85
85
84
84
84
84
83
83
84
84
85
86
88
89
91
92
94
96
98
101
103
106
108
111
114
117
120
124
127
130
134
137
141
144
148
151
155
158
162
165
169
172
176
179
182
186
189
192
195
198
201
204
206
209
211
213
215
217
219
221
222
223
225
226
226
227
228
228
228
228
228
229
229
228
227
226
225
224
223
221
219
218
216
213
211
209
206
204
201
198
196
193
190
186
183
180
177
174
170
167
163
160
157
153
150
147
144
140
137
134
131
128
125
123
120
117
115
112
110
108
106
104
102
100
99
98
96
95
95
94
93
93
93
93
92
92
92
93
93
94
95
96
98
99
101
102
104
106
108
110
112
115
117
120
123
125
128
131
134
137
140
143
146
149
152
155
158
162
165
168
171
174
177
180
183
186
188
191
194
196
198
201
203
205
207
209
210
212
213
215
216
217
218
219
219
220
220
220
220
220
220
221
221
220
219
218
217
216
214
213
211
209
208
206
203
201
199
197
194
192
189
186
184
181
178
175
172
169
166
163
161
158
155
152
149
146
143
140
138
135
132
130
127
125
123
121
119
117
115
113
111
110
108
107
106
105
104
103
102
102
102
101
101
101
101
101
102
102
103
104
105
106
107
109
110
112
113
115
117
119
121
123
126
128
130
133
136
138
141
143
146
149
151
154
157
160
162
165
168
170
173
176
178
181
183
186
188
190
193
195
197
199
200
202
204
205
207
208
209
210
211
212
212
213
213
213
214
214
214
214
214
213
212
212
211
210
209
207
206
205
203
201
200
198
196
194
192
190
188
185
183
181
178
176
173
170
168
165
163
160
158
155
153
150
148
145
143
140
138
136
133
131
129
127
125
124
122
120
119
117
116
115
113
112
112
111
110
110
109
109
109
109
109
108
108
108
109
110
110
111
112
114
115
116
118
119
121
122
124
126
128
130
132
134
136
138
141
143
145
148
150
152
155
157
159
162
164
167
169
171
174
176
178
180
182
184
186
188
190
192
193
195
197
198
199
200
202
203
203
204
205
205
206
206
206
206
206
207
207
207
206
206
205
204
203
202
201
200
199
198
196
195
193
191
189
188
186
184
182
180
178
175
173
171
169
167
164
162
160
158
155
153
151
149
147
145
143
140
138
136
135
133
131
129
128
126
125
124
122
121
120
119
118
117
117
116
116
115
115
115
115
115
115
114
114
114
115
116
117
117
118
119
121
122
123
124
126
127
129
131
133
134
136
138
140
142
144
146
148
150
152
154
156
159
161
163
165
167
169
171
173
175
177
179
180
182
184
185
187
188
190
191
192
193
194
195
196
197
198
198
199
199
199
199
199
199
200
200
200
199
199
198
198
197
196
195
194
193
192
190
189
188
186
185
183
181
180
178
176
174
172
170
168
166
164
163
161
159
157
155
153
151
149
147
145
144
142
140
138
137
135
134
132
131
130
128
127
126
125
124
123
123
122
121
121
121
120
120
120
120
120
120
120
121
121
122
122
123
124
125
126
127
128
129
130
131
133
134
136
137
139
140
142
144
146
147
149
151
153
154
156
158
160
162
163
165
167
169
171
172
174
176
177
179
180
182
183
184
186
187
188
189
190
191
191
192
193
193
194
194
194
195
195
195
195
195
195
195
194
194
193
192
192
191
190
189
188
187
186
185
184
182
181
179
178
176
175
173
172
170
168
167
165
163
162
160
158
157
155
153
152
150
148
147
145
144
142
141
140
138
137
136
135
133
132
131
131
130
129
128
128
127
127
126
126
126
126
126
126
126
126
125
125
126
126
127
127
128
129
130
131
132
133
134
135
136
137
139
140
141
143
144
146
147
149
150
152
153
155
156
158
159
161
162
164
165
167
168
170
171
173
174
175
176
178
179
180
181
182
183
184
184
185
186
186
187
187
188
188
188
188
188
188
188
189
189
189
188
188
187
187
186
186
185
184
183
182
181
180
179
178
177
175
174
173
171
170
169
167
166
164
163
162
160
159
157
156
155
153
152
150
149
148
146
145
144
143
142
141
139
138
137
137
136
135
134
134
133
132
132
132
131
131
131
131
131
131
131
130
130
130
130
131
131
132
132
133
134
134
135
136
137
138
139
140
141
142
143
145
146
147
148
150
151
152
153
155
156
157
159
160
161
162
164
165
166
167
169
170
171
172
173
174
175
176
177
178
179
179
180
181
181
182
182
182
183
183
183
183
183
183
183
184
184
184
184
183
183
182
182
181
181
180
179
179
178
177
176
175
174
173
172
171
170
169
167
166
165
164
163
162
160
159
158
157
156
154
153
152
151
150
149
148
147
146
145
144
143
142
141
141
140
139
139
138
137
137
137
136
136
136
136
136
135
135
135
135
135
135
135
136
136
136
137
137
138
139
139
140
141
142
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
162
163
164
165
166
167
168
169
169
170
171
172
173
173
174
175
175
176
176
177
177
178
178
178
179
179
179
179
179
179
179
179
179
178
178
178
177
177
176
176
175
175
174
173
173
172
171
171
170
169
168
167
166
165
164
163
162
161
160
160
159
158
157
156
155
154
153
152
151
150
149
149
148
147
146
145
145
144
143
143
142
142
141
141
141
140
140
140
140
139
139
139
139
139
139
139
139
139
140
140
140
141
141
141
142
142
143
144
144
145
146
146
147
148
148
149
150
151
152
152
153
154
155
156
157
158
158
159
160
161
162
163
163
164
165
166
166
167
168
168
169
170
170
171
171
172
172
173
173
173
173
174
174
174
174
174
174
174
174
174
175
175
175
175
174
174
174
173
173
173
172
172
171
170
170
169
169
168
167
166
166
165
164
164
163
162
161
161
160
159
158
158
157
156
155
155
154
153
153
152
151
151
150
150
149
148
148
148
147
147
146
146
146
146
145
145
145
145
145
145
145
145
145
145
144
144
144
144
144
145
145
145
146
146
147
147
148
148
149
149
150
150
151
151
152
153
153
154
154
155
156
156
157
158
158
159
160
160
161
161
162
163
163
164
164
165
165
166
166
167
167
168
168
168
169
169
169
169
170
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
170
170
170
169
169
169
168
168
167
167
166
166
165
165
164
164
163
163
162
162
161
161
160
159
159
158
158
157
157
156
156
155
155
154
154
153
153
152
152
152
151
151
151
150
150
150
150
150
149
149
149
149
149
149
149
149
149
149
149
149
149
150
150
150
150
150
151
151
151
152
152
152
153
153
154
154
154
155
155
156
156
157
157
158
158
158
159
159
160
160
161
161
162
162
163
163
163
164
164
164
165
165
165
166
166
166
167
167
167
167
167
168
168
168
168
168
168
168
168
168
168
168
168
168
168
169
169
169
169
169
168
168
168
168
167
167
167
166
166
166
165
165
165
164
164
164
163
163
162
162
162
161
161
161
160
160
159
159
159
158
158
158
157
157
157
157
156
156
156
156
155
155
155
155
155
155
155
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
155
155
155
155
155
156
156
156
156
156
157
157
157
158
158
158
158
159
159
159
160
160
160
161
161
161
161
162
162
162
163
163
163
163
164
164
164
164
164
165
165
165
165
165
165
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
165
165
165
165
165
165
165
164
164
164
164
164
163
163
163
163
163
162
162
162
162
161
161
161
161
161
160
160
160
160
160
159
159
159
159
159
158
158
158
158
158
158
158
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
158
158
158
158
158
158
158
158
159
159
159
159
159
159
159
160
160
160
160
160
160
160
161
161
161
161
161
161
161
162
162
162
162
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
163
163
163
163
163
163
163
163
163
163
163
164
164
164
164
164
164
164
164
164
164
164
164
163
163
163
163
163
163
163
163
163
163
163
162
162
162
162
162
162
162
162
162
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
161
161
161
161
161
161
161
161
161
161
