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