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