0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
6
8
11
14
17
20
24
28
33
37
43
48
53
59
65
71
78
84
91
98
105
112
119
126
133
141
148
155
162
169
177
184
191
198
205
211
218
224
230
236
242
248
253
258
263
268
272
276
280
283
286
289
292
294
296
297
298
299
300
300
300
301
301
299
298
296
294
292
289
286
283
279
276
272
267
263
258
253
248
243
237
231
226
220
214
208
201
195
189
182
176
169
163
156
150
144
137
131
125
119
113
108
102
97
92
87
82
77
73
69
65
61
58
54
51
49
46
44
42
41
39
39
38
38
38
37
37
38
39
41
42
44
47
49
52
55
58
62
65
69
73
78
82
87
91
96
101
107
112
117
123
128
134
139
145
151
156
162
168
173
179
184
190
195
200
205
210
215
220
224
228
233
237
240
244
247
250
253
256
259
261
263
264
266
267
268
269
269
269
270
270
269
268
267
266
264
262
260
258
256
253
250
247
244
240
236
233
229
225
220
216
212
207
202
197
193
188
183
178
172
167
162
158
153
148
143
138
134
129
125
120
116
111
107
103
100
96
93
89
86
83
81
78
76
74
72
70
69
68
67
66
66
66
66
66
65
65
66
67
69
70
72
73
76
78
80
83
86
89
92
95
99
102
106
110
114
118
122
126
130
134
138
143
147
152
156
160
164
169
173
178
182
186
190
194
198
201
205
209
212
215
218
221
224
226
229
231
233
235
237
238
240
241
242
243
243
244
244
244
244
243
243
242
240
239
238
236
234
232
230
228
226
223
221
218
215
212
209
206
202
199
195
192
188
184
181
177
173
169
165
161
157
154
150
146
143
139
135
132
129
125
122
119
116
113
110
107
105
102
100
98
96
95
93
92
90
89
88
88
87
87
87
87
87
86
86
87
88
88
90
91
92
94
96
97
100
102
104
106
109
112
114
117
120
123
126
129
132
135
139
142
145
149
152
155
159
162
165
169
172
175
178
182
184
187
190
193
196
198
200
203
205
207
209
211
212
214
216
217
218
219
220
221
221
222
222
222
222
222
222
221
220
220
219
218
216
215
214
212
210
208
207
205
202
200
198
196
193
191
188
186
183
180
177
174
171
168
166
163
160
157
154
151
148
146
143
140
138
135
133
130
128
126
124
121
120
118
116
114
112
111
110
108
107
106
106
105
104
104
104
104
104
103
103
103
104
104
105
106
107
108
109
110
112
113
115
117
119
120
122
124
126
129
131
133
136
138
140
143
145
148
150
153
155
157
160
162
165
167
169
172
174
177
179
181
183
185
187
189
190
192
194
195
196
198
199
200
201
202
202
203
204
204
204
204
205
205
205
205
205
204
204
203
202
201
200
199
198
196
195
194
192
191
189
187
186
184
182
180
178
176
174
172
170
167
165
163
161
159
157
155
152
150
148
146
144
143
141
139
137
135
134
132
130
129
128
126
125
124
123
122
121
120
120
119
119
118
118
118
118
118
118
117
117
117
118
118
119
120
120
121
122
123
124
126
127
128
130
131
133
134
136
137
139
141
143
144
146
148
150
152
153
155
157
159
161
162
164
166
168
169
171
173
174
176
177
179
180
181
182
184
185
186
187
187
188
189
189
190
190
191
191
191
191
191
191
192
192
192
192
191
191
190
189
189
188
187
186
185
184
183
181
180
179
178
176
175
173
172
170
169
167
166
164
163
161
160
158
156
155
153
152
150
149
147
146
145
143
142
141
140
139
137
136
135
135
134
133
132
131
131
130
130
129
129
129
129
129
129
129
128
128
128
128
129
129
130
130
131
131
132
133
134
135
136
137
138
139
140
141
142
143
144
146
147
148
150
151
152
154
155
156
157
159
160
161
163
164
165
166
167
168
170
171
172
173
174
175
175
176
177
178
178
179
179
180
180
181
181
181
181
181
181
181
181
182
182
182
182
181
181
181
180
180
179
178
178
177
176
175
174
173
172
171
170
169
168
167
166
165
164
163
162
161
160
159
158
156
155
154
153
152
151
150
149
148
147
147
146
145
144
143
143
142
141
141
140
140
139
139
139
138
138
138
138
138
138
138
138
138
137
137
137
137
138
138
139
139
139
140
141
141
142
142
143
144
145
145
146
147
148
149
150
150
151
152
153
154
155
156
156
157
158
159
160
161
162
162
163
164
165
166
166
167
168
168
169
169
170
170
171
171
171
172
172
172
172
173
173
173
173
173
173
173
173
173
173
172
172
172
171
171
170
170
170
169
169
168
168
167
166
166
165
165
164
163
162
162
161
160
160
159
158
157
157
156
155
155
154
153
153
152
151
151
150
150
149
149
148
148
147
147
146
146
146
145
145
145
145
144
144
144
144
144
144
144
144
144
144
144
144
143
143
143
143
144
144
144
145
145
145
146
146
147
147
148
148
149
149
150
150
151
151
152
152
153
153
154
154
155
155
156
156
157
157
158
158
159
159
160
160
161
161
161
162
162
162
163
163
163
163
164
164
164
164
164
164
164
164
164
164
164
164
165
165
165
165
165
165
164
164
164
163
163
163
162
162
162
162
161
161
161
160
160
160
159
159
158
158
157
157
157
156
156
155
155
154
154
154
153
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
148
148
148
148
148
148
148
148
149
149
149
149
149
149
150
150
150
150
151
151
151
151
152
152
152
153
153
153
154
154
154
154
155
155
155
155
155
156
156
156
156
157
157
157
157
157
158
158
158
158
158
158
158
158
158
158
158
158
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
158
158
158
158
158
158
158
158
157
157
157
157
157
157
157
156
156
156
156
156
155
155
155
155
155
155
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
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
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
154
154
154
154
154
154
154
154
154
154
154
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
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
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
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
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
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
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
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
151
151
151
151
151
151
151
151
151
151
151
151
151
151
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
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
150
150
150
150
150
150
150
