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
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
128
128
128
128
128
128
127
128
128
127
128
127
127
128
128
128
127
127
128
128
128
127
127
127
128
128
127
127
127
127
128
128
128
128
127
127
128
128
127
128
127
127
127
127
127
128
128
127
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
127
128
128
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
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
127
127
127
127
127
127
127
127
128
128
128
128
128
128
127
128
127
128
127
128
127
127
128
128
128
128
127
127
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
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
127
127
127
127
127
127
127
128
128
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
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
128
128
127
127
128
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
127
127
127
128
128
128
127
127
127
128
128
127
128
128
128
128
128
128
128
127
128
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
128
127
128
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
127
128
127
127
127
127
128
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
127
128
128
128
127
128
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
128
128
128
128
128
127
127
128
128
128
128
127
127
127
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
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
128
127
127
127
128
127
128
127
128
127
127
127
128
127
128
128
128
128
127
127
127
128
128
127
127
127
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
127
127
127
127
128
127
128
127
127
127
128
127
127
128
127
127
127
127
127
128
128
128
128
128
128
128
127
127
128
127
127
127
127
128
128
128
128
127
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
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
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
128
128
128
128
128
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
128
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
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
127
127
128
128
128
128
128
128
128
128
128
128
128
127
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
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
127
128
128
128
128
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
128
127
128
127
128
127
127
127
127
127
127
127
128
128
128
127
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
127
127
127
127
128
127
128
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
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
126
127
127
126
127
126
126
126
127
126
126
126
126
126
127
126
126
126
126
126
126
127
126
126
126
126
126
126
127
126
126
126
126
126
126
126
127
127
127
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
126
126
126
126
126
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
126
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
127
127
127
127
127
127
127
128
128
127
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
128
128
128
128
128
128
128
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
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
129
129
129
129
129
129
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
128
128
128
127
128
128
127
127
128
128
128
128
128
127
128
127
128
127
128
127
127
127
128
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
127
127
127
128
127
127
127
127
127
127
128
128
128
128
128
128
127
127
128
128
128
128
128
127
128
128
128
128
128
128
127
128
128
127
128
128
127
127
127
127
128
128
127
127
127
127
127
127
128
127
128
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
128
128
127
127
127
127
127
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
128
128
128
128
128
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
128
128
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
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
128
128
128
128
128
127
128
128
128
128
128
128
127
128
128
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
128
128
128
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
129
128
127
128
128
127
129
127
128
128
128
127
128
128
128
128
127
128
127
128
127
128
127
128
128
128
127
128
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
127
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
128
127
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
126
123
131
123
125
125
127
125
127
118
113
120
119
121
129
106
116
121
128
128
129
127
125
135
125
132
127
136
148
134
123
121
134
125
125
130
126
129
126
128
131
129
128
131
128
137
122
135
127
133
122
127
137
125
135
124
130
124
131
121
129
138
112
141
121
126
134
121
138
122
133
125
130
120
127
124
132
126
127
127
133
126
133
122
128
123
134
129
124
131
133
129
127
125
129
124
129
128
128
126
130
117
129
124
125
135
130
123
135
127
132
130
127
129
130
127
127
121
130
122
137
117
130
129
122
139
118
126
129
125
127
140
115
137
120
130
129
118
140
118
134
131
121
133
124
131
126
126
136
118
136
126
130
123
131
128
128
133
125
124
128
131
127
125
132
128
127
126
125
128
122
130
125
127
120
131
127
125
129
133
127
133
133
124
132
126
129
133
114
140
121
124
131
124
131
121
129
122
131
124
121
131
98
123
138
120
145
143
122
144
112
121
128
123
119
141
119
127
127
120
129
126
126
128
130
125
127
127
131
128
127
123
133
126
125
130
123
127
122
129
130
129
129
130
126
133
124
132
133
128
127
127
132
125
137
125
142
127
133
134
135
130
131
132
128
132
129
132
132
132
130
141
130
133
136
136
138
134
134
138
133
131
126
138
132
127
132
134
128
139
134
125
139
142
128
135
134
132
133
125
133
131
128
127
126
130
144
124
132
126
128
135
121
136
132
129
129
129
130
128
128
127
118
132
126
124
129
127
124
129
130
127
125
126
121
122
131
117
128
129
127
120
119
132
121
122
127
129
125
125
127
126
123
127
123
123
131
122
122
129
124
123
125
121
125
128
121
121
123
129
124
117
125
126
124
120
118
125
129
117
123
125
124
122
120
123
126
119
121
121
126
123
121
119
122
126
126
118
116
125
132
118
120
122
124
125
119
120
123
126
119
121
122
127
121
119
120
125
124
120
120
122
124
120
121
122
123
127
122
117
123
128
123
121
123
123
127
125
119
121
126
124
123
125
123
123
127
125
124
125
124
126
122
122
124
125
125
123
124
129
125
124
127
127
126
129
128
127
128
127
128
129
126
126
127
125
128
129
128
125
128
133
131
125
130
132
131
130
128
130
131
130
130
128
128
130
129
127
127
130
129
127
129
131
130
128
128
130
131
130
127
120
130
141
122
121
127
132
132
128
133
125
126
140
138
125
132
134
137
134
133
135
130
134
136
132
128
134
138
137
131
131
137
137
134
132
133
135
135
134
129
129
133
136
131
128
129
134
135
132
132
129
131
135
133
130
129
131
133
134
132
131
131
131
132
131
131
129
130
128
126
124
122
123
123
121
123
122
121
122
122
123
128
118
117
130
122
127
127
122
133
134
144
140
131
140
145
142
145
141
141
140
144
148
144
140
143
146
148
148
151
149
144
149
152
147
142
138
138
126
117
101
82
69
72
78
82
84
92
108
121
130
133
132
129
131
135
131
113
122
121
111
117
106
105
104
109
124
119
121
132
133
136
141
141
136
132
135
137
137
139
141
141
143
150
153
154
156
158
162
165
166
164
161
161
166
147
128
114
98
87
72
49
52
57
72
94
111
125
134
147
163
170
164
161
148
134
122
117
100
80
72
75
69
74
90
97
110
126
137
139
140
141
134
128
119
112
106
104
106
109
113
118
130
139
146
150
156
157
156
157
157
153
147
148
149
148
152
159
160
159
162
171
181
173
144
112
89
75
54
51
66
63
66
88
101
123
152
170
176
169
169
166
154
147
130
109
92
69
67
66
69
75
90
100
118
128
145
148
148
148
130
120
113
113
106
106
106
105
111
124
137
141
154
159
158
158
160
159
154
155
152
147
146
150
155
160
169
168
171
180
177
157
123
91
66
61
55
55
67
67
74
98
123
148
161
177
173
163
161
151
138
134
124
108
87
71
67
70
82
100
111
125
134
140
144
144
141
136
130
119
111
106
104
105
112
118
122
125
133
141
152
158
161
159
154
150
144
145
145
146
149
152
156
160
166
172
176
178
186
181
149
129
92
57
49
51
49
68
74
84
104
122
150
166
181
186
176
161
150
132
123
113
109
98
82
73
65
76
93
118
133
147
157
149
144
134
127
124
121
117
111
104
101
104
111
124
132
143
148
149
151
150
153
153
152
151
147
142
140
142
146
155
165
169
175
175
176
179
182
171
142
116
76
40
32
28
41
72
89
108
123
141
155
163
182
185
179
170
148
123
107
95
92
86
87
80
81
90
91
116
130
149
162
162
155
135
120
109
104
107
108
107
111
111
115
124
132
146
154
160
158
150
145
139
138
141
144
146
146
147
148
151
156
163
175
182
184
184
183
177
157
133
94
54
27
22
20
44
76
94
126
144
163
168
175
180
179
173
161
140
119
106
87
81
78
86
88
90
99
104
114
133
150
158
158
154
135
115
107
97
96
100
105
110
116
122
127
134
142
149
152
152
147
141
136
131
131
134
138
142
147
150
152
155
160
165
168
174
176
174
171
169
166
146
118
94
60
34
30
35
50
88
113
129
151
159
160
164
168
165
159
155
140
117
103
90
79
79
86
92
98
111
116
121
132
140
147
150
146
135
121
111
97
93
96
103
110
122
129
135
136
138
140
142
144
143
143
139
136
133
131
133
134
139
146
153
156
159
162
164
163
164
164
164
164
166
170
161
146
118
80
46
32
32
45
72
109
126
143
154
155
153
154
158
159
156
151
133
112
101
83
78
83
93
108
124
121
120
120
112
123
130
139
145
144
135
114
97
87
84
95
116
130
146
147
143
136
129
127
128
135
140
141
143
137
131
130
131
136
144
149
154
158
159
156
154
155
154
155
159
158
160
161
164
160
138
124
94
57
39
40
48
71
105
130
139
151
152
147
148
150
151
152
149
138
120
103
91
80
84
93
104
122
128
129
127
122
121
124
130
136
137
131
122
110
97
90
95
106
120
136
143
146
141
135
128
125
127
130
134
137
136
135
133
133
135
139
145
148
151
153
153
152
152
151
152
152
152
153
152
154
158
159
165
162
141
116
84
60
42
42
58
74
108
135
148
154
151
144
142
141
144
149
146
136
127
109
89
81
83
90
108
129
135
140
135
125
117
111
117
122
126
133
130
119
112
100
96
101
110
126
138
146
144
138
128
122
119
120
125
130
134
136
135
135
135
137
141
143
145
147
146
146
146
146
147
148
150
149
150
149
148
150
152
155
159
166
160
143
130
96
62
43
40
49
75
105
127
147
156
154
149
144
139
142
145
144
141
129
117
100
87
83
85
99
119
137
150
153
139
128
113
106
107
110
118
124
126
120
114
108
102
106
120
127
139
149
144
141
133
121
116
116
119
124
131
133
133
135
136
135
140
142
143
145
142
139
137
137
136
142
145
147
146
147
143
144
144
146
148
151
153
153
157
159
153
144
125
95
80
58
49
57
69
95
121
142
151
154
152
145
141
140
137
138
135
130
119
106
95
90
90
99
112
123
138
145
148
140
129
120
106
104
106
108
116
120
120
120
116
115
115
121
128
131
138
138
134
131
122
116
115
115
120
126
131
134
135
136
136
138
139
139
139
138
136
134
133
132
133
136
140
141
144
145
144
143
143
142
143
145
145
145
146
148
146
149
152
149
145
137
116
96
85
70
67
76
93
106
126
141
147
146
145
137
134
133
132
133
131
128
121
112
104
100
100
107
116
124
135
140
143
140
134
124
115
108
100
100
100
104
114
120
127
130
130
129
127
126
125
126
127
125
126
124
121
121
120
120
125
128
131
135
138
139
139
139
137
135
135
131
130
128
128
130
132
136
138
143
145
145
145
144
142
142
140
141
142
140
140
139
140
139
142
143
146
150
146
140
133
115
100
94
83
84
91
100
114
125
134
138
138
137
133
133
134
133
134
132
127
122
114
111
108
108
114
121
126
133
137
138
136
132
128
120
116
110
103
103
101
106
116
123
128
135
136
134
130
127
123
121
122
123
125
126
124
124
123
123
124
127
132
135
137
139
138
137
134
132
132
130
130
131
131
132
133
134
137
138
139
140
139
140
140
140
141
141
141
139
138
136
134
134
134
137
140
143
146
148
148
145
137
129
118
110
105
100
98
100
102
107
112
118
122
127
132
134
136
137
136
134
131
126
121
117
115
114
114
115
117
120
124
126
127
129
129
128
128
126
122
115
113
105
99
102
105
110
122
129
136
137
134
130
124
122
119
119
120
121
123
124
123
124
123
125
128
130
132
134
135
135
134
133
131
130
130
129
129
130
129
131
132
134
136
138
139
141
141
141
140
139
138
136
136
135
134
135
135
135
137
137
138
139
140
140
140
140
138
134
131
125
122
116
109
104
101
99
98
101
105
111
119
127
130
135
138
138
136
135
130
127
124
122
119
117
115
114
114
115
116
118
121
124
128
129
129
129
125
121
114
108
105
106
109
115
122
126
130
131
131
129
127
126
125
125
125
125
124
123
122
122
123
126
128
131
133
134
134
134
134
134
134
134
133
132
131
130
129
129
130
132
134
137
139
139
140
140
138
137
137
135
135
136
135
135
134
135
136
137
137
139
139
138
137
137
136
136
135
134
132
128
123
119
112
107
103
101
101
104
108
112
120
126
131
134
136
137
136
135
133
131
129
127
124
122
119
118
118
117
119
121
123
125
128
129
130
130
129
126
123
118
114
112
112
115
120
125
129
132
133
132
130
128
127
127
127
128
128
126
125
124
123
124
126
129
132
135
136
136
136
135
134
133
132
130
130
129
128
130
131
132
134
136
138
138
138
137
135
135
134
134
134
134
133
134
134
134
135
135
135
136
137
137
137
137
136
135
135
136
136
136
135
133
132
127
121
116
113
110
110
110
110
111
112
113
116
120
124
130
133
136
138
136
134
130
126
122
121
120
119
119
119
119
119
120
121
122
124
126
128
127
125
121
114
111
110
111
118
122
126
132
131
131
129
125
124
124
125
125
126
126
124
122
123
122
125
128
131
132
134
133
133
133
133
133
133
132
131
130
128
126
126
128
131
136
137
138
138
137
136
135
134
134
135
136
136
135
134
133
134
136
138
141
143
144
143
140
137
135
134
135
138
140
141
140
137
130
123
119
113
111
113
114
118
122
121
119
118
116
116
120
126
133
139
139
136
132
125
121
118
118
121
123
126
126
125
125
123
123
125
125
124
121
114
108
107
107
112
124
130
136
139
134
128
121
117
114
117
123
125
127
128
125
123
125
124
126
130
130
129
129
127
126
126
128
129
130
129
127
126
127
127
130
134
135
136
135
132
131
131
131
132
133
132
132
132
131
132
134
137
138
139
139
137
137
137
138
140
142
145
150
156
156
142
127
104
77
63
66
76
101
133
148
164
169
159
147
139
127
117
110
105
96
92
97
103
121
144
160
167
167
153
133
120
105
98
101
105
111
118
125
128
135
140
141
135
129
125
108
106
110
105
113
120
122
129
134
134
133
131
128
121
119
119
117
122
126
127
133
135
132
130
128
123
122
124
125
127
131
134
135
135
134
128
127
126
125
129
132
134
136
136
133
132
131
129
129
130
131
134
139
140
141
142
142
140
142
145
145
150
156
158
160
143
112
94
68
53
67
85
118
155
175
177
170
151
130
118
106
97
92
92
99
112
134
156
166
171
161
137
121
102
92
94
101
113
124
135
141
147
152
150
144
131
115
102
98
101
105
117
131
130
132
135
128
126
126
114
111
115
115
117
125
133
133
137
131
123
120
122
121
125
133
133
133
134
129
126
126
126
123
126
130
130
134
139
136
134
131
125
121
124
127
131
135
133
131
131
129
130
130
131
132
129
130
130
127
128
129
134
134
133
136
133
131
130
128
128
131
132
133
135
137
135
135
132
130
130
128
129
130
129
132
128
125
121
115
110
110
114
120
129
134
132
128
124
119
119
121
122
123
126
128
130
132
132
128
124
123
122
124
128
128
128
128
127
126
127
127
126
125
126
126
128
130
129
128
123
122
125
127
131
132
130
128
125
126
128
130
131
132
128
128
130
131
133
133
130
127
128
129
133
135
136
135
131
128
127
129
131
137
138
137
139
131
123
125
121
127
136
136
137
136
130
126
126
130
129
132
133
129
128
128
126
123
124
123
121
121
122
122
123
123
123
124
125
125
125
125
125
124
124
124
124
125
126
125
125
124
124
124
126
126
127
128
129
129
129
126
123
122
123
128
133
135
135
131
125
123
123
127
131
133
134
132
129
128
129
130
131
133
132
129
128
132
132
132
133
135
135
136
136
134
131
126
133
139
141
147
152
158
163
158
111
50
31
46
99
166
194
198
163
128
115
106
102
95
87
90
114
156
183
186
164
123
91
84
93
111
124
128
134
143
154
157
148
123
98
89
94
116
139
148
149
141
135
132
127
120
110
106
108
122
140
148
149
138
124
115
114
117
120
122
124
129
136
141
140
133
121
113
112
117
126
132
134
133
131
123
108
106
123
129
127
135
129
127
120
124
123
122
126
128
129
130
129
130
123
125
125
126
129
130
133
132
130
127
127
128
128
129
130
128
130
130
129
128
126
126
128
130
132
130
127
125
125
127
129
130
129
129
128
128
128
126
125
127
127
129
128
126
126
127
129
131
131
128
124
124
125
128
130
130
130
129
128
128
128
127
127
126
126
128
130
131
129
127
125
125
127
130
132
131
130
128
128
128
127
127
125
128
132
132
132
128
126
126
127
129
129
129
129
129
129
129
130
129
128
128
126
126
128
129
129
130
128
127
129
129
128
127
126
126
126
128
129
131
131
127
126
124
126
129
130
127
127
128
127
129
130
127
126
124
126
129
131
131
129
126
124
125
128
129
129
129
128
129
130
129
126
123
123
127
132
133
131
128
125
126
127
126
128
129
129
130
131
128
125
126
126
126
127
127
129
129
130
129
125
124
125
126
131
131
128
128
126
126
127
127
127
127
128
129
130
128
126
124
125
127
129
129
128
129
128
126
127
125
125
127
127
128
129
128
127
127
127
128
126
126
127
128
128
129
128
126
126
126
126
127
128
127
127
128
127
126
126
127
127
126
127
127
127
128
129
129
127
127
125
125
127
126
128
128
128
128
127
127
126
126
126
126
127
127
129
130
128
128
127
126
126
127
127
127
128
128
128
128
127
126
126
127
127
127
128
127
127
127
127
126
127
126
127
129
127
126
126
126
127
128
127
126
126
127
127
127
128
127
127
128
127
126
126
126
126
127
129
128
127
126
127
127
126
126
126
126
128
128
127
128
127
126
128
128
126
126
126
126
127
129
129
128
128
126
125
126
126
127
129
130
128
126
126
125
125
127
128
128
129
128
126
124
124
125
128
130
128
127
126
126
126
128
128
126
126
125
127
128
128
127
126
127
127
127
127
126
126
127
129
129
128
126
126
126
126
128
129
128
126
126
127
127
127
127
127
127
128
128
128
127
126
127
127
127
128
128
128
127
127
127
129
128
127
128
127
127
128
128
128
129
129
127
127
128
128
127
127
128
128
129
129
128
128
127
128
128
128
128
128
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
127
127
127
127
128
128
128
128
128
128
127
127
128
128
128
127
127
128
129
128
127
127
127
127
128
129
128
127
128
128
128
128
127
127
127
128
128
128
128
128
128
127
126
126
128
128
129
129
128
128
127
127
127
128
128
128
127
127
127
127
128
129
128
127
126
127
128
128
128
128
127
127
128
129
129
127
126
127
127
128
129
128
127
127
127
128
129
128
127
127
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
127
128
128
128
127
128
127
128
128
128
128
128
128
128
128
127
128
128
129
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
128
128
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
128
128
127
128
128
128
128
127
127
127
127
128
128
128
128
127
127
128
128
128
128
127
127
127
127
127
128
128
128
128
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
128
129
128
128
128
128
128
128
128
128
128
128
128
128
129
129
128
128
128
127
127
128
129
129
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
129
129
128
128
127
127
127
128
128
128
128
128
127
127
128
128
128
127
128
127
128
128
128
127
127
127
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
128
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
128
128
128
128
127
127
127
127
127
128
128
127
128
128
128
128
127
127
127
128
127
128
128
128
128
128
127
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
127
127
127
127
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
126
126
126
127
126
126
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
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
127
127
127
127
127
127
127
127
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
128
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
128
128
128
128
128
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
128
127
128
127
127
127
127
127
127
127
128
128
128
128
128
128
127
127
128
128
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
128
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
128
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
128
128
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
128
127
128
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
128
128
128
128
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
127
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
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
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
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
128
128
128
128
128
128
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
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
128
128
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
127
127
127
127
127
127
127
128
128
128
128
128
127
128
127
128
128
128
128
128
128
128
128
127
127
127
127
127
127
128
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
127
127
128
128
127
128
128
128
128
128
127
128
128
128
128
128
128
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
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
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
127
128
128
128
128
128
128
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
126
127
127
126
127
126
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
128
128
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
126
127
127
127
127
126
126
127
127
126
126
126
126
126
127
127
126
126
126
126
126
126
126
126
126
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
128
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
129
128
129
129
129
128
129
128
128
128
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
129
128
128
129
129
128
129
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
127
127
127
127
127
127
127
127
127
127
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
127
128
127
127
128
128
128
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
127
127
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
128
127
127
128
128
128
127
127
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
127
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
127
127
127
127
127
127
127
127
127
127
127
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
129
128
129
128
128
128
128
128
128
128
128
128
128
129
129
128
128
128
128
128
128
128
128
129
129
129
128
129
129
129
128
128
129
129
129
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
127
128
128
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
128
127
128
127
127
128
127
127
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
127
127
127
128
128
128
128
128
128
128
128
127
128
128
127
128
127
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
127
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
127
127
127
128
127
128
128
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
127
128
128
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
128
128
127
128
128
128
128
128
128
127
128
128
128
127
127
128
128
127
127
127
127
128
128
128
128
127
127
127
128
128
127
128
127
127
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
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
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
128
127
127
127
127
127
128
128
128
127
127
128
128
127
127
127
128
128
128
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
127
128
127
127
128
128
127
128
128
128
128
128
127
127
127
127
127
128
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
127
128
128
127
127
128
128
128
128
127
128
127
127
127
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
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
128
128
127
128
128
128
128
128
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
128
127
127
128
128
127
127
128
128
128
128
128
127
127
128
128
128
128
127
128
128
128
128
127
127
128
127
127
128
128
128
128
128
128
127
127
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
128
128
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
127
128
128
128
128
127
128
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
128
128
127
127
127
128
128
127
127
127
127
127
128
127
127
128
127
128
128
128
127
127
127
127
127
128
128
128
128
127
127
128
127
127
128
127
127
128
128
128
128
128
127
128
128
127
128
128
128
127
128
127
127
127
128
127
128
128
127
128
128
128
128
128
127
128
128
128
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
128
128
127
127
127
128
128
128
127
128
128
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
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
128
127
127
127
127
127
127
127
127
128
128
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
127
127
128
127
127
127
127
128
128
128
128
127
127
128
128
128
128
128
127
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
127
128
127
128
128
128
128
128
128
127
128
128
128
128
128
127
127
127
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
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
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
128
127
127
127
128
128
128
127
128
127
127
128
128
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
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
127
127
127
128
127
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
128
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
128
128
128
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
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
127
128
128
128
128
127
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
127
128
128
128
127
127
128
128
128
128
127
127
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
127
128
128
127
128
127
127
127
127
128
128
128
127
127
127
127
127
128
128
127
127
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
127
128
127
127
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
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
127
127
128
128
128
128
127
128
127
128
128
127
128
128
128
128
127
127
127
128
128
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
127
128
128
127
128
127
127
127
128
127
127
127
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
128
127
128
127
127
127
128
128
128
128
128
127
128
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
128
128
128
128
127
127
127
127
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
127
127
128
128
128
128
128
127
128
128
128
128
128
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
127
128
128
128
128
128
128
128
127
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
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
128
128
127
127
127
127
127
128
128
127
128
127
127
127
127
127
127
127
128
128
127
127
127
127
128
128
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
128
128
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
127
127
127
127
127
128
127
128
127
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
127
128
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
128
128
127
127
128
128
128
128
127
128
128
128
128
128
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
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
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
127
128
127
125
125
128
128
127
125
126
126
128
127
127
127
126
127
128
128
127
127
127
128
127
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
127
127
128
128
128
127
127
127
127
127
127
127
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
127
128
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
128
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
128
128
128
128
128
128
128
128
128
128
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
128
128
128
127
128
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
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
127
127
128
127
127
127
128
128
127
127
128
128
128
128
127
127
127
128
128
127
127
127
127
128
127
127
128
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
128
128
127
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
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
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
127
128
127
127
127
127
127
127
127
127
128
127
128
128
128
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
128
128
127
127
127
127
128
127
127
128
128
127
128
128
127
127
127
128
127
128
128
127
127
127
127
127
128
128
128
128
127
127
128
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
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
127
128
127
127
127
127
127
128
128
127
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
127
127
128
128
128
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
127
128
128
127
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
128
127
128
128
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
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
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
128
128
128
128
127
127
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
128
128
128
127
128
127
127
127
127
127
127
128
128
128
127
128
128
128
127
127
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
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
128
127
127
127
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
128
127
128
127
127
127
127
128
127
127
127
127
127
128
128
127
127
127
128
127
128
127
128
128
127
128
128
127
127
127
128
127
127
127
127
128
128
127
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
128
128
128
128
128
127
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
127
128
127
128
128
128
127
128
128
128
127
127
127
127
127
127
128
127
128
128
128
127
127
128
128
127
127
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
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
127
128
128
127
127
127
128
128
128
127
128
128
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
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
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
128
128
128
128
128
127
126
129
128
126
127
127
127
127
127
127
125
126
128
129
129
129
126
127
128
127
127
126
126
128
128
127
127
127
127
128
128
128
127
128
128
129
128
128
127
127
127
128
127
127
127
128
128
128
120
129
130
128
126
126
128
129
129
128
127
128
128
128
119
130
133
128
128
123
124
131
130
129
127
123
129
130
129
126
124
129
126
129
127
127
126
128
129
128
127
127
127
129
128
127
127
127
128
128
128
127
127
128
128
128
127
128
128
128
128
128
127
128
127
128
127
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
128
128
127
128
127
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
128
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
128
127
127
127
128
128
127
127
128
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
128
128
128
127
127
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
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
128
128
128
128
128
128
128
128
128
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
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
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
128
128
128
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
128
127
127
127
127
127
127
128
128
127
127
128
127
128
128
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
128
128
127
128
127
128
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
128
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
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
127
128
127
127
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
127
128
128
128
128
128
127
127
127
127
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
127
127
127
127
127
127
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
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
128
128
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
127
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
127
128
127
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
129
129
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
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
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
127
128
128
128
127
128
127
127
127
128
128
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
106
109
114
132
141
144
130
127
123
129
131
133
128
125
122
126
128
131
128
125
123
125
128
131
129
128
126
126
127
129
129
128
127
125
127
128
128
128
126
126
126
128
128
128
126
126
126
127
127
127
127
126
127
127
128
128
127
127
127
127
128
127
126
126
126
127
128
128
128
126
126
126
126
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
128
127
126
126
127
127
128
129
128
127
126
126
127
128
128
128
127
127
127
128
128
129
119
125
118
122
123
130
133
138
131
128
129
135
130
128
120
121
116
124
122
123
98
107
112
132
137
140
130
127
128
141
140
139
127
122
121
127
129
128
122
122
121
129
131
134
131
130
128
132
135
135
132
129
127
128
130
129
128
125
126
127
128
129
129
128
129
128
128
128
130
130
130
129
129
129
129
130
128
127
128
128
129
128
128
127
128
128
130
130
128
129
130
129
130
131
130
127
126
129
130
130
129
125
126
129
132
132
129
127
127
128
129
129
129
127
128
130
130
130
128
128
127
128
128
130
130
129
128
127
128
129
129
128
126
127
128
128
128
127
127
128
127
128
128
129
129
130
127
124
125
130
133
130
124
125
125
130
131
130
128
125
126
126
130
131
129
128
127
127
128
131
131
128
126
126
127
129
128
126
126
130
131
128
126
126
128
130
130
127
128
126
126
127
130
129
128
125
126
128
130
131
127
124
123
126
130
131
129
127
124
125
127
130
130
126
124
125
128
130
129
126
125
127
128
129
128
125
126
128
129
128
126
126
126
127
128
127
126
127
128
128
126
126
126
128
128
127
126
125
127
129
129
126
125
126
129
130
129
127
125
127
129
131
128
126
125
127
128
130
129
128
125
124
127
128
129
128
126
125
128
129
130
128
126
124
127
130
130
128
125
124
125
128
129
129
126
125
125
126
129
129
127
127
126
126
127
127
128
126
125
124
125
127
127
126
125
125
126
128
127
125
125
124
125
127
127
126
126
125
125
125
127
127
127
127
128
129
130
129
130
130
129
128
130
131
130
129
128
129
129
128
128
130
131
129
128
127
130
131
131
130
127
126
127
128
128
127
125
123
123
125
126
126
126
125
124
125
126
126
127
126
126
125
124
125
124
124
123
121
120
119
120
120
120
120
119
118
117
119
121
123
123
124
124
124
125
127
128
128
128
127
128
129
131
131
132
134
135
136
138
139
138
135
137
139
139
137
136
135
136
136
137
138
139
139
139
139
140
140
139
138
137
137
136
135
133
127
122
118
115
111
109
109
109
108
107
105
104
105
107
110
113
113
114
115
115
116
118
120
121
121
121
120
120
120
121
123
123
124
123
124
126
127
129
130
131
131
133
135
137
140
140
139
139
139
143
143
141
141
141
143
146
147
145
143
142
143
146
148
150
151
150
151
152
150
148
139
129
108
96
89
81
83
83
91
96
98
104
111
122
130
138
147
149
151
151
149
145
144
139
132
125
115
106
100
93
86
82
83
87
95
107
114
124
131
135
138
138
140
142
143
145
144
139
136
130
122
120
121
124
125
127
130
131
133
138
144
148
154
157
157
157
156
155
155
155
153
150
148
147
148
149
143
137
124
113
100
93
87
87
91
94
98
106
111
113
121
128
133
137
145
148
148
150
148
143
138
134
130
124
119
111
107
103
96
90
89
90
91
101
108
117
127
136
139
140
142
142
139
140
140
136
135
132
127
125
125
123
121
124
125
126
131
134
136
139
141
141
142
143
143
144
146
145
145
145
144
143
144
146
144
138
129
120
108
101
98
102
99
98
102
102
100
105
111
113
118
124
127
130
139
141
142
145
143
139
138
136
131
129
128
121
116
112
108
104
101
98
100
102
103
111
114
121
128
130
130
129
132
134
136
141
140
140
140
137
134
132
131
127
128
127
126
129
131
132
136
137
137
140
142
143
145
147
148
148
149
149
150
149
136
125
125
117
110
113
112
106
104
106
101
100
107
108
111
116
120
123
130
135
138
145
146
144
144
142
137
136
136
132
128
125
121
115
113
111
108
101
103
103
102
108
114
118
121
125
125
128
133
135
140
144
142
143
142
139
138
138
135
132
131
130
129
130
131
132
135
137
139
141
143
146
148
150
151
151
153
153
151
137
130
133
118
113
120
113
105
107
102
97
100
107
104
112
117
115
123
132
134
140
148
145
144
148
143
140
142
139
133
132
129
121
118
116
113
109
104
101
101
102
104
109
115
117
123
126
126
131
135
140
143
144
143
142
141
139
139
137
134
132
131
129
130
130
131
133
136
137
140
144
147
149
152
154
155
157
158
145
133
130
127
113
113
116
102
102
103
92
96
104
102
108
114
114
117
128
129
135
148
148
147
151
149
143
145
143
135
133
130
120
116
113
107
107
105
97
99
99
98
107
110
115
122
129
131
135
138
138
141
142
140
141
139
136
135
134
130
130
128
127
128
129
129
133
135
136
140
143
146
150
153
154
158
158
162
163
149
134
124
119
103
99
104
93
92
92
93
93
101
106
108
117
121
121
128
132
137
148
152
152
156
155
151
146
142
133
129
124
114
109
108
101
100
99
97
94
97
99
101
110
115
123
127
133
138
142
145
145
145
142
138
136
131
129
126
125
123
122
122
122
125
129
133
136
139
144
148
150
154
158
161
163
164
168
172
173
164
137
117
101
73
67
78
76
73
86
89
94
106
115
120
134
135
134
141
143
144
155
160
158
160
160
147
140
135
122
113
105
97
92
92
87
89
96
96
100
106
109
116
126
129
137
141
142
142
143
141
139
139
136
134
131
128
127
125
124
125
126
127
131
135
137
143
148
153
156
159
160
163
165
164
166
169
169
171
155
131
118
96
68
59
58
51
64
79
84
103
122
130
142
147
144
145
149
147
152
162
161
160
159
147
134
127
112
100
95
89
83
88
89
89
95
100
105
108
118
124
135
141
145
149
146
143
137
131
125
122
122
120
123
124
124
127
129
132
135
140
143
148
151
152
155
156
156
158
158
159
160
162
165
167
169
173
166
144
126
100
65
44
41
38
49
77
93
115
142
155
158
159
152
139
139
138
140
153
159
158
154
143
122
110
98
86
86
90
92
96
99
100
98
103
109
115
129
142
156
159
159
152
135
126
110
101
99
103
112
122
132
136
138
139
139
142
145
150
154
157
156
153
150
145
144
144
145
149
152
154
157
157
158
161
161
154
139
119
95
66
57
53
59
79
96
122
139
149
153
147
139
130
123
126
131
141
150
152
149
138
128
117
107
104
103
105
105
101
97
90
87
87
99
112
128
150
159
161
157
141
126
114
104
100
105
112
119
131
134
135
136
135
137
142
145
150
154
154
153
150
146
144
144
144
147
150
152
153
155
156
156
163
168
163
149
125
91
59
45
40
55
79
103
133
151
157
154
143
129
124
122
127
137
143
146
143
133
121
115
112
113
122
127
127
123
107
87
77
69
75
95
114
142
160
165
158
141
122
108
102
104
109
116
121
122
122
123
124
130
139
147
152
154
152
148
146
144
143
146
147
148
149
147
145
146
149
153
160
164
169
176
172
162
132
96
62
43
35
48
71
95
126
144
152
147
141
132
132
135
137
145
140
134
126
114
110
109
117
126
136
140
134
123
106
87
77
74
78
93
106
125
139
147
147
144
136
127
122
113
107
104
103
106
113
122
128
137
142
144
143
143
144
147
150
153
155
152
148
144
138
138
142
146
155
163
168
168
169
171
177
171
148
121
76
51
30
27
54
74
115
145
155
160
148
143
135
136
144
142
142
127
118
104
95
104
112
132
147
149
147
130
111
99
85
84
89
92
100
106
116
127
132
142
145
143
137
125
114
101
99
101
107
119
124
131
135
136
138
140
147
151
156
158
155
152
145
141
140
139
144
148
155
161
164
166
166
172
180
187
176
140
102
63
26
19
34
63
102
138
152
149
147
137
144
150
156
161
146
132
105
86
85
99
117
140
153
153
143
126
114
109
113
110
105
98
85
80
88
104
124
148
158
155
146
129
114
112
112
115
120
115
112
113
114
127
138
150
156
156
150
147
148
152
157
159
156
146
140
137
139
152
162
169
174
172
173
175
183
169
133
111
62
28
31
40
73
109
132
139
138
142
146
154
169
167
154
139
108
86
85
96
108
128
137
134
130
129
130
139
145
142
119
94
81
61
71
99
109
133
144
133
131
131
127
135
137
127
115
105
101
104
120
133
134
138
133
127
135
147
155
166
161
154
148
143
144
148
154
156
155
155
157
159
169
178
185
191
172
135
92
62
35
44
70
80
94
101
104
119
148
164
179
177
163
144
120
116
109
108
110
98
90
101
111
128
146
150
145
134
131
122
110
107
101
74
81
94
89
116
131
123
130
133
130
132
135
128
119
114
116
112
115
129
122
124
132
132
139
154
152
150
153
152
152
152
155
153
149
151
152
153
162
166
166
172
181
180
164
116
82
72
58
61
77
78
68
82
110
126
151
169
165
155
150
154
147
140
125
104
88
92
102
109
108
110
114
120
135
149
150
139
119
100
102
112
108
101
98
92
101
120
127
129
124
122
129
140
141
138
133
123
125
132
134
131
127
128
133
143
148
150
148
148
153
156
152
149
139
132
135
142
141
126
130
138
147
134
124
128
135
135
130
127
122
122
124
124
120
117
117
116
112
110
113
115
117
115
114
116
123
126
125
122
123
128
132
130
127
125
128
131
130
126
122
121
122
124
123
121
120
120
122
122
121
121
121
122
123
124
124
125
126
127
128
129
129
128
128
129
129
130
129
128
129
129
129
128
128
128
129
129
128
128
128
129
129
130
130
130
131
132
132
133
133
133
134
134
134
134
132
132
131
131
129
128
127
126
125
123
122
122
121
120
120
120
120
120
121
122
122
123
124
125
126
127
128
128
128
128
128
128
127
127
127
127
126
125
124
124
124
124
124
124
124
124
125
126
126
127
128
128
129
130
130
131
131
131
131
131
131
131
130
130
130
130
130
130
130
131
131
131
132
132
132
132
133
133
134
134
135
134
133
133
133
132
131
129
128
127
126
125
123
122
122
122
122
121
121
122
122
123
123
124
125
126
127
127
128
129
129
130
130
130
130
130
129
128
128
127
126
125
125
124
124
124
123
123
124
124
124
125
126
126
128
128
128
130
130
130
130
131
130
130
130
130
130
130
130
129
129
129
129
130
130
129
130
130
130
130
131
131
131
131
133
132
132
133
132
131
131
130
130
129
128
127
127
126
124
124
123
123
122
122
121
121
122
122
122
122
123
124
125
125
125
127
128
127
128
128
127
127
127
127
124
124
125
122
121
120
118
116
117
115
86
130
101
94
133
131
132
142
128
151
146
125
131
145
133
118
132
131
128
124
126
133
135
129
128
144
142
135
142
150
144
143
148
154
153
155
157
151
135
144
133
111
108
102
93
89
85
87
91
90
94
109
112
117
126
138
142
146
152
156
154
150
151
148
144
136
131
123
119
113
110
107
76
112
114
74
109
107
96
116
121
114
133
121
131
140
131
128
138
132
130
127
131
129
124
122
129
119
121
129
128
130
131
134
140
140
138
149
149
147
149
150
154
154
150
155
156
153
158
161
158
132
143
140
110
120
104
104
94
86
91
98
84
97
105
104
112
118
128
139
132
145
152
148
149
153
150
150
141
138
138
128
122
119
116
110
107
106
103
101
110
99
109
113
110
118
118
119
126
124
128
131
128
128
128
127
127
125
124
125
122
123
124
123
124
128
128
132
133
135
138
140
142
144
145
146
149
149
149
149
148
149
151
152
153
156
157
161
135
143
146
116
127
108
110
101
89
98
96
86
97
98
100
110
112
118
134
124
142
146
144
149
150
151
151
143
144
145
131
130
122
122
116
109
109
110
105
105
100
116
109
105
116
116
119
121
128
128
126
127
133
127
127
128
127
124
123
122
126
120
121
126
126
126
127
132
135
133
137
142
141
145
145
148
147
148
149
151
148
148
152
153
153
158
162
161
138
157
126
125
123
111
121
93
96
103
87
92
92
100
102
100
110
125
123
123
141
143
147
146
153
155
148
145
150
142
135
131
127
125
112
112
113
108
103
106
109
109
110
108
120
124
106
139
125
130
132
131
135
127
123
131
123
120
117
121
118
115
118
123
119
121
128
129
129
132
139
138
139
142
147
142
143
144
146
142
141
145
142
141
147
146
148
152
157
163
139
144
148
127
129
117
115
113
100
96
104
88
95
95
102
106
101
118
122
119
131
139
142
143
147
150
152
145
148
146
140
133
130
130
120
114
114
114
105
108
107
110
108
113
116
119
120
117
133
129
121
136
127
132
124
132
131
120
121
123
117
115
116
116
116
115
120
124
121
125
132
134
133
138
142
142
141
145
146
142
143
143
142
138
141
141
141
143
148
151
156
144
143
151
133
126
125
124
109
111
100
109
98
96
104
101
104
104
118
119
118
129
136
137
137
146
148
147
145
148
145
140
137
136
132
123
123
119
117
109
112
111
111
108
113
116
117
119
124
128
128
130
135
132
133
131
127
132
121
127
123
116
120
118
119
118
119
122
120
125
127
128
131
133
135
138
138
140
139
140
139
139
140
138
138
138
138
138
140
141
144
148
153
156
121
156
134
98
149
98
145
81
104
119
100
102
100
118
106
107
118
129
118
127
137
141
133
141
152
143
140
141
150
136
131
134
136
125
118
125
122
113
112
119
117
111
114
125
119
119
124
131
127
126
134
136
128
135
131
137
125
129
133
124
124
123
127
118
123
123
119
121
120
125
124
121
126
129
127
128
131
133
129
131
135
134
133
133
135
133
132
135
134
132
132
134
130
131
132
131
131
130
131
133
132
133
132
134
131
128
133
128
125
125
126
123
121
120
123
119
119
121
123
120
121
125
125
123
126
129
129
127
130
132
130
128
131
130
127
126
128
126
123
123
124
120
120
121
120
120
120
121
122
121
123
124
125
125
127
128
127
128
130
130
130
131
132
132
132
133
134
134
134
136
137
136
137
139
139
137
136
131
134
126
125
123
121
118
115
117
115
113
114
115
117
117
119
121
125
123
129
131
131
134
137
134
136
135
136
134
132
131
130
128
127
124
123
122
120
121
120
119
120
121
122
122
124
125
126
127
129
130
130
130
132
131
131
131
131
130
129
129
128
127
126
126
125
124
124
124
124
124
124
125
124
125
125
126
127
127
128
128
128
129
129
129
129
129
129
129
128
128
128
127
127
127
127
126
126
126
126
125
125
126
126
126
127
127
127
128
128
129
129
128
129
129
129
129
129
129
129
128
128
128
128
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
127
128
128
127
127
127
127
127
127
128
128
127
128
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
127
127
128
127
127
127
127
127
127
127
128
127
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
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
128
127
127
127
127
128
127
127
127
127
127
128
128
127
127
128
128
127
127
127
128
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
128
128
128
128
128
128
127
127
128
127
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
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
128
127
128
128
128
128
128
128
127
128
127
127
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
127
128
128
127
128
128
127
127
128
128
127
127
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
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
128
128
128
127
128
128
128
128
128
127
128
127
128
127
127
127
127
127
127
127
127
128
128
127
128
128
128
127
127
128
127
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
128
127
127
127
128
128
128
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
127
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
127
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
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
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
128
128
128
128
128
128
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
127
127
128
127
128
128
128
128
128
127
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
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
126
126
127
129
127
127
127
128
129
128
129
127
127
128
128
128
128
128
128
127
128
127
128
128
128
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
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
128
128
127
128
128
127
128
128
127
127
127
127
128
128
127
128
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
127
128
128
127
128
128
127
128
128
128
127
128
128
127
128
128
127
128
128
127
127
128
127
127
128
127
127
127
128
127
127
128
127
127
128
128
127
127
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
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
128
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
127
127
128
127
128
128
127
127
128
127
127
128
127
127
127
127
127
127
128
128
127
128
128
127
128
128
128
128
127
127
128
127
127
127
127
127
128
127
127
127
128
127
128
128
128
127
128
128
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
128
128
127
128
128
128
128
128
128
127
127
127
128
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
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
127
127
128
128
127
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
127
128
128
128
127
128
128
127
128
128
128
127
128
128
127
128
128
127
128
128
127
128
128
127
127
128
128
127
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
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
128
128
127
127
128
128
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
128
127
127
127
127
128
127
128
127
127
127
127
127
127
128
128
127
127
127
128
128
127
127
128
128
128
127
128
128
127
127
128
127
127
128
128
128
127
127
127
128
127
128
128
128
127
127
128
127
127
127
127
127
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
127
127
127
128
128
127
127
127
128
128
127
127
127
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
128
127
127
127
128
127
128
128
128
127
128
128
128
127
127
127
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
127
128
127
128
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
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
128
127
127
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
128
127
127
127
127
127
128
127
127
127
128
127
127
128
127
128
128
127
128
128
127
127
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
127
128
127
127
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
127
127
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
128
128
127
127
127
127
127
128
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
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
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
128
127
128
127
128
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
128
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
127
127
127
127
127
127
126
127
127
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
127
127
127
127
127
127
127
127
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
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
127
127
127
127
127
126
127
126
126
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
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
129
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
128
129
129
128
129
129
129
129
129
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
129
129
129
128
129
129
128
129
129
129
129
129
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
129
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
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
126
126
126
126
126
126
126
126
126
127
127
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
126
126
126
126
126
126
126
125
125
126
126
126
125
125
125
125
126
126
126
126
126
126
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
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
126
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
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
129
129
129
129
129
129
129
129
129
129
128
129
129
128
129
128
129
129
129
128
128
128
128
128
128
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
128
129
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
127
127
127
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
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
126
127
126
126
126
126
126
127
127
127
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
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
129
128
128
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
128
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
126
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
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
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
128
128
128
128
128
128
128
128
128
128
128
128
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
125
126
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
125
126
126
126
126
126
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
129
130
130
129
130
130
130
130
130
129
130
129
130
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
128
128
129
129
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
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
126
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
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
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
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
129
129
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
127
128
128
127
127
127
128
127
127
127
128
128
128
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
127
127
127
127
127
127
127
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
127
127
127
128
128
127
128
128
127
127
127
127
127
127
128
128
127
128
127
127
128
128
127
127
127
127
127
127
127
128
127
127
127
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
126
127
127
127
127
127
127
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
126
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
126
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
128
128
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
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
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
129
129
129
129
130
129
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
129
129
129
129
129
129
129
129
129
129
128
128
128
128
129
129
129
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
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
126
126
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
126
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
127
127
127
127
127
127
127
127
127
127
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
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
127
127
128
127
127
127
128
128
128
128
128
128
128
128
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
126
127
126
127
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
126
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
129
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
127
128
128
128
128
128
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
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
128
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
128
127
127
127
127
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
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
127
127
127
127
127
127
128
127
127
127
128
128
128
128
127
127
127
127
127
127
128
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
127
127
127
128
128
128
128
128
127
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
128
128
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
127
128
127
128
127
128
128
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
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
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
127
127
128
128
127
127
128
128
128
128
128
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
128
128
127
127
128
128
128
128
128
128
128
127
127
127
127
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
128
127
127
127
128
128
128
128
127
127
127
127
127
128
127
127
127
127
128
128
128
127
128
128
127
127
127
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
127
127
127
127
127
127
127
127
127
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
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
128
128
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
128
127
127
127
127
128
128
127
126
127
127
128
128
127
127
128
128
128
128
127
127
128
128
128
128
127
127
128
128
128
128
128
127
127
128
128
127
127
127
127
128
128
128
127
127
127
127
127
128
128
128
128
127
127
128
128
127
127
127
127
128
128
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
127
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
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
127
127
127
127
128
127
128
127
128
127
127
127
128
127
127
127
127
127
128
128
127
127
127
127
127
127
127
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
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
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
129
128
128
128
128
128
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
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
129
129
129
129
129
129
129
129
129
129
128
129
129
129
129
129
128
128
128
128
128
128
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
128
128
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
128
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
127
127
127
127
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
128
127
128
128
127
128
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
127
127
127
126
126
126
127
127
127
127
127
126
127
127
127
127
127
127
127
126
126
127
126
126
126
126
127
126
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
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
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
128
129
129
128
128
129
128
129
128
129
128
128
128
128
129
128
128
129
129
128
128
128
128
128
128
129
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
127
128
127
127
127
127
129
127
128
128
128
128
126
127
127
129
129
128
127
127
127
129
128
128
128
127
129
130
128
127
128
127
128
128
128
128
127
127
128
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
127
127
127
127
127
127
128
128
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
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
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
127
127
127
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
127
127
128
128
127
127
128
128
128
128
127
128
128
128
128
127
127
127
128
128
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
127
127
128
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
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
128
128
127
127
127
127
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
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
128
128
128
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
128
128
127
127
127
127
127
128
127
128
128
127
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
128
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
127
127
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
128
128
127
128
128
128
128
128
127
127
128
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
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
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
128
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
127
127
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
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
127
127
127
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
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
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
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
127
127
127
127
127
127
127
128
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
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
128
128
128
127
127
128
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
128
127
127
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
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
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
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
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
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
127
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
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
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
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
127
127
128
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
127
127
127
128
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
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
128
125
130
123
135
92
119
126
119
123
123
125
130
129
127
125
125
124
127
125
124
124
123
120
122
123
123
122
126
109
114
119
121
130
127
127
125
130
129
127
123
116
120
122
123
106
109
107
113
116
120
125
131
127
129
129
130
129
129
123
119
120
117
118
121
118
121
125
130
134
139
136
137
141
140
139
138
133
129
130
129
130
131
128
128
132
134
136
139
136
135
137
137
137
135
131
129
131
130
129
129
127
131
134
135
136
138
138
137
137
136
133
132
131
130
131
130
131
133
134
135
136
136
137
138
140
139
140
140
139
140
139
137
136
136
136
137
138
138
139
139
140
140
140
141
139
139
138
137
139
140
141
142
141
140
139
140
140
139
139
138
139
140
140
139
138
137
138
138
136
135
134
133
134
133
133
133
133
133
132
131
130
129
129
129
128
127
125
124
124
124
124
123
122
123
123
123
123
121
119
118
119
118
120
119
117
117
117
117
118
118
116
116
117
116
117
117
116
115
115
115
115
117
118
117
118
118
117
118
119
119
120
120
121
122
122
124
124
124
124
123
123
125
126
126
126
125
123
124
123
124
127
127
127
126
125
125
126
126
124
123
123
120
121
121
120
123
122
121
120
121
125
126
127
125
122
122
121
123
124
123
122
118
117
115
114
114
112
111
109
107
108
111
114
115
116
116
116
117
117
118
119
119
119
120
121
123
124
126
126
127
127
127
129
130
132
134
136
137
136
136
135
135
137
140
140
142
142
141
141
142
141
141
142
139
138
140
142
143
145
145
144
144
144
139
133
126
117
111
112
111
110
109
107
105
103
106
110
118
127
134
137
137
135
129
120
113
103
95
92
86
86
94
104
119
133
142
143
138
129
118
113
111
114
122
127
129
129
128
127
127
130
132
135
137
137
139
140
141
142
143
142
141
141
142
144
150
154
157
159
156
155
153
151
151
150
153
156
159
164
162
158
150
124
98
74
46
41
47
64
94
120
144
157
164
165
160
161
157
151
144
129
112
95
82
77
81
94
110
123
129
130
123
113
110
110
116
125
130
128
121
111
101
98
104
113
126
136
139
137
132
127
124
127
130
132
131
127
122
122
124
131
138
145
148
148
146
144
143
143
146
149
151
151
149
145
141
139
140
145
151
159
164
168
165
160
150
128
103
79
56
44
46
60
81
110
134
151
161
164
160
157
154
151
147
141
130
116
102
88
81
79
84
94
101
112
117
123
128
133
138
139
137
131
121
112
105
104
109
118
128
136
141
140
137
133
131
131
133
136
139
140
138
136
132
131
131
134
137
141
145
146
149
149
149
147
145
143
140
138
136
137
140
145
149
153
154
151
146
136
123
109
95
85
80
79
87
96
110
122
132
141
145
147
148
148
147
145
141
136
128
121
113
106
98
97
95
94
100
103
112
124
134
143
148
147
140
131
122
114
114
117
124
133
139
142
141
137
133
129
129
130
133
137
140
141
140
137
133
130
128
128
131
134
138
140
141
140
137
134
131
129
129
131
134
137
139
139
137
135
132
130
130
130
130
130
128
126
121
116
112
109
110
112
115
119
123
125
127
128
129
129
131
133
134
135
135
132
127
123
117
112
109
108
110
115
121
128
135
139
140
138
133
128
124
122
123
127
131
134
136
134
131
126
122
120
121
125
131
135
138
137
134
129
125
122
123
125
130
134
136
137
135
132
129
127
127
128
130
132
133
134
133
131
128
127
126
127
129
130
130
130
129
127
124
123
122
122
124
126
128
129
129
128
127
125
124
123
123
124
125
127
127
127
127
126
126
125
125
125
126
128
129
130
130
129
128
128
127
126
126
127
128
129
130
130
130
129
128
127
127
127
128
128
129
130
130
129
129
128
127
127
128
128
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
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
128
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
126
126
126
126
126
126
127
127
127
126
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
127
126
126
127
127
127
126
126
126
126
126
126
126
127
127
127
127
126
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
127
127
127
127
127
127
127
127
126
127
126
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
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
129
129
128
127
127
127
127
127
128
128
128
129
128
128
127
127
125
127
127
128
128
128
127
127
127
127
126
127
126
126
125
125
123
123
121
120
117
118
117
111
116
117
131
141
154
152
145
132
115
106
105
109
122
135
145
145
142
135
124
119
119
122
130
136
139
136
133
124
117
118
120
125
135
137
141
140
138
132
131
124
125
122
123
120
120
116
119
124
124
127
128
121
125
123
130
131
139
135
134
130
124
120
122
122
128
131
136
135
136
133
129
129
129
129
134
133
134
131
130
126
125
125
125
127
131
132
134
132
130
126
128
128
129
132
132
130
128
126
124
125
128
131
134
134
134
132
130
128
129
129
131
132
132
131
129
129
129
131
132
132
131
131
130
130
130
132
133
134
134
133
132
130
129
130
132
134
135
136
135
134
132
131
133
134
136
137
137
136
135
133
133
134
135
135
135
135
134
134
135
136
136
136
136
135
134
133
132
132
131
132
131
131
130
130
131
131
131
130
130
129
128
126
125
126
125
126
129
129
130
129
128
127
127
128
129
133
135
137
139
138
138
136
134
133
133
134
134
136
136
136
137
137
138
138
139
138
139
138
136
134
132
130
129
130
132
135
136
136
131
119
103
85
68
59
59
68
83
102
117
125
129
125
120
114
110
108
108
109
110
111
113
114
117
119
120
124
127
130
134
138
141
143
143
140
138
135
134
137
140
146
154
163
174
183
192
200
205
191
157
118
62
10
0
4
0
16
66
111
151
176
189
197
199
189
183
165
136
109
75
46
33
32
37
58
86
99
119
133
133
144
148
142
135
120
101
85
82
82
91
111
119
130
138
137
142
149
156
160
163
157
146
142
136
138
150
160
174
187
194
200
212
228
205
150
94
8
0
5
0
6
82
141
170
190
193
186
198
211
205
196
162
104
55
21
6
23
62
97
127
144
140
141
147
147
151
144
120
92
72
61
66
89
108
123
132
129
128
135
143
154
162
160
150
141
134
131
135
139
143
148
155
166
185
205
220
234
239
247
223
139
66
1
0
4
1
7
86
143
165
184
208
219
231
252
228
184
139
70
24
13
18
38
73
100
107
123
146
154
179
194
172
145
109
67
49
59
70
89
112
117
120
137
147
158
172
166
151
144
136
135
145
152
144
140
136
134
154
182
209
232
243
241
245
234
160
85
13
0
4
2
0
48
120
149
171
204
231
241
255
241
189
136
84
38
21
31
38
54
77
95
113
143
175
186
195
185
147
113
85
58
53
62
70
80
100
119
136
160
171
165
161
150
137
140
145
145
143
140
128
125
135
151
168
193
213
221
230
238
246
241
176
89
8
0
5
0
7
55
95
127
152
186
233
255
255
242
190
131
85
62
50
46
44
42
45
70
105
138
176
189
180
166
144
123
106
89
75
65
62
74
92
117
140
151
155
154
152
155
158
160
157
147
139
133
130
134
142
150
161
177
197
214
226
236
245
232
164
81
15
0
5
0
18
50
63
92
135
179
221
252
248
219
181
151
126
107
90
69
42
27
37
64
94
118
138
147
148
153
159
156
138
111
90
82
80
88
101
109
114
120
131
144
155
161
165
162
156
152
150
148
143
136
133
136
144
157
173
184
189
191
196
203
190
144
91
57
46
52
57
59
65
72
80
98
124
153
173
174
164
155
153
155
154
142
124
107
97
97
103
106
102
96
92
98
114
131
139
136
127
120
124
131
135
133
127
122
124
129
134
135
132
127
125
126
129
131
130
127
124
124
128
132
134
134
133
132
134
137
139
141
141
141
142
144
144
139
131
122
116
114
115
117
115
111
108
109
112
116
117
116
115
117
122
127
129
128
127
128
131
132
130
125
123
124
126
125
121
117
116
119
123
125
123
122
121
123
126
127
126
126
126
127
130
132
132
131
130
130
131
132
133
133
131
131
132
134
135
136
137
138
141
145
148
146
140
132
124
121
120
121
120
115
108
103
105
110
113
113
112
113
117
122
127
131
134
136
136
134
133
135
135
133
128
123
121
122
121
117
114
113
116
120
122
121
120
121
123
126
129
131
132
132
132
133
134
135
135
133
131
130
131
133
133
131
131
131
133
136
138
139
141
144
148
153
153
146
136
125
119
118
118
116
110
103
99
100
105
110
114
118
120
122
124
130
140
147
144
134
127
129
134
131
121
114
113
116
114
106
101
99
92
89
98
115
124
123
124
135
146
142
136
136
138
134
126
123
128
131
127
125
131
140
147
150
149
154
163
168
169
171
176
180
188
193
170
126
87
58
41
45
53
60
67
69
83
117
149
172
186
182
174
168
161
160
153
130
104
84
72
75
82
83
82
85
95
114
130
139
144
139
129
126
125
124
119
109
102
101
105
117
131
137
139
139
142
150
154
155
151
144
140
141
145
151
155
160
167
175
186
202
215
228
226
174
107
67
41
19
14
25
32
38
61
109
152
183
208
217
204
188
181
170
150
122
95
67
49
54
72
89
104
115
117
125
139
156
162
149
125
106
91
85
93
101
105
106
112
118
127
136
143
142
136
134
132
133
137
137
131
125
125
133
144
157
167
170
173
179
185
191
195
196
196
204
195
142
90
53
20
13
23
38
58
76
101
136
163
190
208
198
182
160
136
119
109
97
87
79
79
90
106
127
142
141
131
124
117
116
115
106
97
93
92
99
116
131
138
139
135
127
121
122
120
117
114
111
109
116
126
134
139
141
143
147
154
162
167
167
164
159
156
160
166
172
179
185
194
201
168
122
87
46
32
35
39
59
80
99
125
151
170
183
182
168
152
130
116
106
101
99
99
103
112
125
138
146
147
137
117
101
91
85
84
83
87
96
109
126
141
150
150
142
130
118
111
108
109
111
112
113
116
123
133
142
148
150
153
158
163
167
168
164
158
155
157
163
173
180
188
197
204
168
121
80
33
9
7
37
59
96
127
140
164
176
181
181
169
146
120
101
89
88
99
108
120
131
138
146
150
146
129
110
90
74
75
77
85
102
115
127
142
151
154
151
140
122
108
98
95
102
107
112
115
118
122
130
139
144
148
150
151
152
154
153
150
148
147
147
153
160
167
176
182
188
200
208
175
130
90
34
20
15
28
67
89
123
141
157
169
170
171
155
136
117
97
95
98
108
124
134
145
145
147
143
130
117
88
73
62
61
77
88
110
129
143
157
159
157
146
131
115
100
96
96
104
114
118
121
121
126
132
139
146
149
151
154
156
159
159
156
151
148
151
157
165
175
181
184
186
188
164
124
89
54
14
13
41
58
109
138
150
163
164
159
156
149
131
114
102
92
98
117
130
148
156
152
143
134
123
105
89
69
60
63
77
95
120
140
153
160
157
146
135
121
107
100
96
99
107
117
124
128
130
129
134
139
142
147
148
149
151
153
153
152
151
150
152
158
165
172
178
179
177
179
178
145
109
78
54
45
37
63
79
101
130
139
151
154
149
142
132
120
114
112
118
123
136
144
149
153
145
134
123
105
84
71
65
65
81
96
109
131
145
154
159
152
138
125
113
103
103
105
109
116
122
124
127
130
130
135
137
138
144
147
150
155
156
153
152
151
152
157
162
167
170
171
171
173
176
179
154
112
83
61
66
66
70
85
90
108
127
142
149
145
133
123
117
122
126
135
139
140
144
148
152
149
139
120
100
78
69
69
78
88
101
113
123
138
149
152
148
136
122
116
112
110
110
112
114
119
125
127
129
129
129
131
134
137
142
146
148
151
152
153
155
155
155
156
158
161
165
168
166
166
167
174
162
124
97
79
80
83
77
77
80
92
112
131
135
132
123
122
125
134
139
139
139
140
147
152
152
143
129
112
100
94
82
73
76
80
95
115
124
129
139
141
142
141
131
121
116
113
111
115
117
120
124
124
124
125
125
125
129
131
135
141
146
150
153
154
153
154
155
155
157
158
158
160
164
163
166
170
174
151
116
97
88
93
83
73
70
80
99
117
122
117
116
120
133
137
139
134
137
145
155
157
151
141
130
125
116
106
91
75
71
83
91
100
107
111
126
141
143
139
132
126
126
125
120
115
116
119
125
126
121
118
120
123
125
126
126
132
141
147
149
150
151
155
157
156
153
153
155
156
157
155
155
159
163
166
156
127
111
110
112
88
72
74
87
99
103
101
102
117
126
133
128
130
135
148
152
150
147
146
148
143
133
119
112
106
96
86
87
88
93
97
104
115
126
131
134
133
134
134
131
127
125
128
129
131
127
126
125
125
123
121
122
123
129
132
136
139
145
148
150
151
151
152
151
151
150
150
150
150
149
148
148
150
149
135
126
124
121
104
96
95
96
95
95
97
101
108
113
117
121
129
133
138
140
142
143
144
141
138
135
131
127
123
118
113
113
112
107
107
110
111
113
116
116
119
121
122
124
127
129
131
133
133
133
133
131
130
130
129
127
127
126
126
127
128
129
130
131
133
134
134
136
138
139
141
143
144
146
148
148
150
151
151
145
139
137
132
119
113
110
101
99
100
93
94
102
104
107
116
120
126
134
135
137
144
144
142
144
142
139
139
133
126
127
122
113
111
109
106
107
106
104
109
112
112
117
121
125
131
134
134
138
139
136
136
136
133
132
129
127
128
127
125
125
126
126
127
127
128
131
133
135
138
140
141
143
145
147
149
149
149
151
150
143
137
134
129
121
113
107
103
100
96
94
97
102
104
107
114
121
126
131
135
140
143
142
142
144
142
139
135
131
128
123
117
113
112
110
108
107
107
108
111
112
116
121
125
128
132
134
136
137
137
137
136
134
133
132
130
129
128
127
127
126
126
127
129
130
131
133
136
137
139
141
143
145
146
147
149
149
150
150
145
139
136
132
123
115
110
106
103
99
95
98
103
103
107
115
120
125
130
134
140
142
142
143
145
143
140
138
134
130
126
120
114
112
110
108
108
106
106
110
112
114
118
124
128
131
134
137
139
139
139
139
138
135
132
131
130
128
128
127
127
127
127
129
130
131
133
136
137
139
141
143
145
146
147
148
149
151
148
141
136
135
128
118
114
109
104
100
96
97
101
101
104
112
117
121
127
132
137
141
141
142
144
143
140
139
137
134
128
123
122
116
109
107
108
106
105
105
108
112
113
117
124
129
130
134
138
139
139
138
138
137
134
130
130
128
126
126
126
126
125
126
128
129
130
132
135
137
138
140
142
143
144
145
146
147
147
148
145
138
134
132
125
117
112
109
106
100
97
100
103
103
106
113
118
122
126
132
137
139
139
141
142
141
138
137
136
130
126
124
120
114
109
109
108
106
105
107
110
112
114
119
125
127
130
134
138
136
137
138
137
135
133
131
129
128
126
126
125
125
126
127
129
130
131
135
137
139
141
143
144
145
146
147
148
148
149
147
144
141
133
128
123
118
107
106
103
100
96
100
101
105
107
115
121
124
129
135
140
141
143
144
144
141
140
137
133
127
123
117
113
109
105
105
106
105
106
109
112
115
119
124
129
132
135
138
140
140
139
139
137
134
132
130
127
126
125
125
125
126
127
129
131
133
135
138
140
141
143
144
145
146
146
146
146
146
147
145
141
140
131
127
122
117
107
105
104
100
97
99
103
104
108
114
122
123
129
134
140
140
143
144
144
140
138
137
132
127
123
121
114
111
108
107
103
104
108
108
110
115
119
121
125
130
134
136
139
142
141
140
138
137
134
131
129
127
125
125
126
126
127
129
132
134
136
138
140
143
144
146
146
145
146
150
147
148
149
150
144
144
141
130
129
121
119
107
108
105
101
99
102
106
107
112
119
126
127
134
139
144
144
147
147
145
143
140
138
133
129
124
121
115
110
109
108
105
106
109
111
112
115
121
122
127
132
136
137
139
143
142
141
139
138
134
131
129
127
125
124
126
126
127
129
132
134
136
139
141
142
144
146
146
147
146
147
146
146
147
148
143
140
142
130
127
121
119
109
103
106
99
98
98
103
105
108
114
123
125
131
137
142
143
145
147
145
141
139
137
131
127
122
118
112
108
105
102
104
103
104
107
110
112
116
120
124
128
131
135
136
138
139
139
137
136
134
130
127
125
124
122
122
123
125
126
128
131
134
136
140
141
143
145
145
147
145
144
146
143
145
145
146
137
136
139
123
124
117
112
110
98
104
100
95
99
102
106
108
116
123
126
132
137
144
143
145
148
144
141
137
137
129
125
122
116
110
105
105
100
99
102
104
106
110
115
118
120
126
129
132
134
137
139
137
138
138
135
132
130
128
124
123
123
123
123
125
128
130
132
136
139
140
143
146
146
147
148
147
145
146
145
143
143
145
144
132
135
136
118
121
117
109
109
102
102
102
100
102
108
113
112
122
129
129
135
141
144
144
145
145
142
139
135
132
127
122
119
115
109
104
103
103
100
101
109
111
111
119
125
124
127
133
133
133
136
138
136
134
134
133
129
127
127
125
122
123
126
126
127
131
134
134
138
142
143
143
146
148
146
147
148
146
145
145
143
143
142
145
141
127
136
129
113
116
114
106
100
103
103
98
103
106
110
114
118
127
131
134
137
143
143
141
144
141
137
133
129
126
120
116
114
110
106
103
104
103
101
106
110
113
116
122
126
127
130
132
133
131
132
132
130
129
128
127
125
124
124
124
124
125
127
130
131
134
138
140
140
143
145
145
145
146
147
146
144
145
145
143
143
145
146
144
148
142
129
135
129
115
114
113
106
101
104
103
100
107
110
113
119
125
130
133
139
141
142
143
144
142
138
136
132
126
123
120
115
112
111
108
105
104
103
107
109
109
114
122
125
124
131
135
131
131
133
132
128
127
128
125
124
123
123
124
125
126
127
131
133
135
139
142
143
144
145
147
146
145
147
147
145
144
147
145
144
147
149
148
147
153
151
133
131
133
120
107
106
107
99
95
101
101
104
110
116
121
128
135
136
139
145
145
141
141
142
136
130
128
125
119
115
114
112
109
110
107
106
109
105
107
115
118
116
121
130
130
127
131
132
129
126
125
122
120
121
118
118
121
123
123
125
131
133
134
138
141
142
143
144
144
142
143
143
141
141
143
142
142
146
145
147
150
152
154
155
158
153
136
129
124
111
100
96
95
88
92
100
99
104
115
123
126
133
142
142
142
145
144
139
137
136
130
125
124
120
115
114
114
113
111
113
113
110
112
112
109
112
118
121
119
122
127
128
127
125
122
121
121
119
115
114
117
119
120
123
126
130
134
138
139
141
143
143
142
141
139
138
137
137
137
137
140
143
146
149
151
152
155
157
159
162
163
162
158
142
122
112
101
93
87
84
83
87
100
108
113
121
132
141
145
149
148
145
144
142
135
128
125
123
120
118
115
113
114
115
116
116
117
119
120
122
120
119
120
118
118
119
124
124
121
120
118
116
115
112
110
109
113
115
118
121
125
129
134
138
140
140
142
141
139
137
134
131
129
129
129
130
132
135
140
144
148
153
158
160
158
159
160
160
161
162
162
155
136
114
97
87
82
79
78
81
90
102
116
127
134
140
146
151
153
149
142
134
129
124
120
116
113
112
113
116
118
119
120
122
124
125
123
125
123
123
125
122
121
118
116
117
117
120
119
116
113
109
109
107
108
111
114
120
124
129
133
135
138
138
140
139
137
134
131
130
128
126
126
126
128
131
136
141
145
151
154
158
159
162
161
157
156
154
154
157
158
160
157
137
110
90
83
78
79
84
86
91
105
122
135
144
149
147
146
148
144
136
126
118
110
108
111
113
114
116
119
122
127
132
131
129
127
124
123
124
123
122
118
112
116
112
114
117
118
121
119
120
114
110
108
104
106
111
117
123
128
133
134
137
138
136
135
131
128
126
125
125
123
124
125
128
132
135
139
142
146
149
152
155
157
157
156
154
151
151
153
153
154
156
159
161
146
123
99
82
75
78
86
89
96
104
115
130
145
153
153
148
142
136
132
128
120
112
106
105
109
117
124
128
129
130
131
133
135
132
126
120
116
115
116
119
119
116
115
112
115
124
124
125
123
119
114
112
110
104
104
108
113
123
131
135
136
137
135
132
132
129
127
125
123
123
123
126
127
129
132
133
138
142
146
149
150
151
150
152
152
150
149
150
149
150
152
152
157
165
169
154
134
114
91
84
82
83
81
85
97
107
125
141
148
150
149
147
141
138
133
121
113
107
105
108
115
121
123
127
131
133
138
139
135
129
123
119
117
117
116
115
115
113
115
114
121
126
124
127
125
122
120
117
112
105
105
106
111
122
129
133
136
137
137
136
135
131
127
125
122
123
123
125
126
128
132
133
138
142
144
146
148
148
148
149
149
149
149
149
149
150
151
153
154
156
158
165
159
138
125
105
94
90
86
85
81
92
104
117
133
139
142
143
146
147
142
138
126
116
111
110
111
112
115
117
120
128
133
137
137
135
131
128
128
124
120
117
111
109
111
111
108
115
122
121
126
130
126
124
123
117
111
108
106
106
115
122
125
130
134
135
135
136
132
129
128
127
126
126
126
126
127
130
132
134
137
139
143
147
149
151
152
151
151
151
149
147
147
151
150
148
150
152
156
161
146
128
123
108
101
98
90
87
86
100
111
118
128
130
135
143
147
146
138
132
127
122
121
117
111
109
112
117
121
124
126
127
131
135
135
132
130
127
125
124
122
112
108
108
101
111
118
114
116
123
127
126
125
123
115
115
117
112
113
118
121
124
128
131
130
131
134
132
130
131
129
129
129
129
128
129
132
132
133
136
138
141
145
148
149
150
151
151
152
151
150
150
147
146
149
150
151
152
147
133
129
128
113
106
102
93
93
99
102
104
110
119
128
130
136
140
138
140
141
135
129
127
125
122
118
116
115
114
117
119
119
120
125
128
129
130
131
131
131
131
129
121
117
117
114
116
118
112
113
123
125
121
122
125
129
131
128
127
129
131
130
130
128
128
130
132
131
130
129
130
131
130
127
127
129
129
128
128
128
128
130
131
130
129
130
133
132
131
130
132
133
131
130
130
132
132
131
132
132
133
133
134
133
132
132
132
130
128
126
125
123
122
121
120
120
120
120
120
120
121
122
123
123
124
126
127
127
128
128
129
129
129
128
128
128
127
127
127
126
126
126
125
124
124
123
121
122
124
122
122
123
124
124
124
124
124
125
125
125
126
127
127
128
129
129
129
130
131
130
130
130
129
130
129
128
128
128
128
127
127
127
128
128
129
129
130
130
130
131
131
132
132
132
131
131
132
132
131
132
132
131
132
132
132
132
132
132
131
130
130
129
129
128
127
127
126
125
125
124
123
124
124
123
124
124
124
125
126
126
126
127
127
128
128
128
128
128
128
128
128
127
127
127
126
126
126
125
125
125
124
123
124
124
123
123
124
123
125
124
124
120
127
132
116
127
134
122
128
133
126
129
132
128
129
130
128
129
128
128
129
127
127
128
127
127
128
128
127
128
129
129
129
129
130
130
130
130
131
130
130
131
130
130
131
130
130
130
130
130
131
129
129
130
129
129
129
128
128
128
127
126
126
126
125
125
124
125
125
124
125
125
125
125
126
125
126
126
126
126
127
127
126
127
126
126
126
125
126
126
125
125
125
124
119
133
121
120
131
121
126
126
124
127
125
126
127
126
127
127
127
128
127
127
128
128
127
128
127
128
128
127
127
127
127
126
127
126
127
126
127
125
126
98
103
132
103
128
138
133
137
133
127
141
136
118
128
140
126
117
133
129
127
128
126
129
137
128
123
138
131
124
127
132
125
125
123
122
127
120
118
124
124
119
123
125
126
126
126
128
130
128
127
130
128
126
125
126
123
122
121
120
118
115
115
114
113
114
116
116
118
120
122
124
124
126
128
128
128
129
129
128
128
127
126
125
124
124
123
122
124
125
124
126
127
129
130
131
132
132
132
133
133
132
133
132
133
133
133
133
135
134
136
137
136
139
140
140
142
142
141
145
141
137
141
135
134
132
127
128
123
120
121
119
117
117
118
118
121
121
124
128
126
131
133
134
135
136
137
138
137
136
136
135
132
132
130
128
127
126
125
125
125
125
127
123
117
127
124
117
121
126
123
119
124
126
124
122
126
129
125
126
131
131
128
130
134
133
131
133
135
132
132
134
135
133
134
136
137
135
136
139
138
138
140
143
143
143
146
146
147
147
148
150
150
147
152
152
150
153
147
147
146
135
134
130
122
120
115
112
111
107
110
110
109
114
116
120
124
128
132
136
136
139
141
140
140
139
138
136
132
129
127
124
120
118
117
115
114
114
115
116
117
119
121
122
125
118
124
126
120
122
121
122
118
117
119
117
114
115
118
115
116
119
121
121
122
126
127
126
128
131
130
129
131
131
129
129
130
130
128
128
131
130
130
132
135
136
136
140
140
142
143
144
147
145
146
149
146
146
150
142
142
140
133
128
123
118
114
108
107
102
102
103
100
106
106
110
115
118
123
126
131
133
136
137
138
139
137
136
133
132
128
125
122
119
117
114
113
112
112
112
113
115
117
119
121
125
123
123
126
125
123
122
124
121
120
119
119
117
115
117
116
116
116
119
119
120
123
124
125
126
128
129
130
130
131
131
130
130
130
130
129
129
130
130
130
131
132
133
134
136
137
139
142
142
143
145
145
145
146
146
146
146
143
142
139
136
133
127
124
120
115
113
109
106
107
105
107
108
111
114
116
120
124
127
129
133
134
137
136
138
137
135
134
132
130
127
125
123
120
118
117
116
115
115
116
117
118
119
122
122
121
122
127
121
118
126
121
119
119
119
119
114
117
119
116
116
121
122
121
124
127
128
127
131
134
132
132
135
134
133
133
135
134
133
134
135
135
135
138
139
139
141
142
141
148
143
146
152
146
151
150
150
149
145
143
137
133
124
120
115
109
105
103
104
98
103
105
103
113
112
119
125
126
136
135
141
142
144
145
143
143
140
138
134
131
127
122
121
116
116
114
112
113
113
115
117
120
122
124
128
129
133
129
124
135
126
120
124
122
119
114
116
118
112
113
119
119
117
122
127
128
128
133
137
134
135
139
137
135
136
137
134
132
133
134
132
132
135
137
136
138
141
142
142
146
149
148
152
153
154
160
150
158
154
141
145
129
113
128
101
94
109
83
103
85
96
108
94
115
113
130
125
136
145
146
151
148
160
149
150
148
143
140
130
128
124
115
113
111
109
105
105
110
109
111
115
121
124
126
132
136
138
139
142
143
141
140
134
119
140
117
108
124
106
112
103
109
111
102
113
115
118
115
126
129
128
131
135
139
131
136
139
133
132
132
132
128
127
130
128
127
128
133
133
133
138
141
142
143
147
149
150
150
156
155
154
157
156
155
136
113
151
110
86
127
79
114
73
92
115
75
110
100
127
109
123
141
138
142
138
163
147
147
151
150
145
132
135
136
118
116
116
115
105
101
112
106
104
106
117
117
114
125
131
132
130
139
143
138
137
141
140
134
128
132
112
118
117
100
113
101
108
107
105
115
112
119
121
128
129
132
136
138
140
137
141
138
135
136
132
131
128
127
128
126
127
127
129
130
131
135
137
138
141
142
144
146
147
149
151
153
147
150
147
109
154
113
98
132
80
128
77
104
111
87
114
98
128
108
125
131
136
137
134
154
143
143
147
144
145
133
136
136
122
125
116
122
110
110
114
111
110
109
118
117
117
122
128
129
129
134
138
137
136
139
139
135
134
135
132
127
126
127
122
121
117
110
128
104
114
121
110
123
112
125
123
119
130
128
130
128
134
133
131
132
133
133
127
131
131
127
128
127
129
126
127
130
129
128
130
132
132
130
133
134
133
133
135
135
134
134
135
134
133
133
134
133
131
133
132
132
132
132
134
131
133
133
124
134
125
124
126
121
126
119
122
123
120
122
121
125
123
125
127
128
128
128
131
130
130
130
131
131
129
129
129
128
126
126
126
124
124
124
124
123
123
124
124
125
125
126
126
127
128
127
129
128
128
129
128
129
128
128
128
127
127
127
126
126
126
126
126
126
126
126
126
127
127
127
128
128
129
129
129
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
130
129
128
128
126
126
125
125
124
124
124
124
124
124
124
125
125
126
127
128
128
129
130
130
130
130
130
130
129
129
129
128
128
127
126
126
126
126
126
125
126
126
126
126
127
127
128
128
128
129
129
129
129
129
129
129
128
128
128
127
127
127
127
127
126
126
126
126
127
127
127
127
127
127
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
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
127
128
127
128
128
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
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
128
128
128
128
128
128
128
128
128
127
128
127
127
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
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
127
127
127
127
127
127
128
128
128
127
128
128
127
128
128
128
128
128
127
128
128
128
128
127
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
127
127
127
128
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
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
127
127
127
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
127
128
128
128
127
128
128
128
127
128
128
128
128
128
128
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
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
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
127
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
127
127
127
127
127
127
128
127
127
128
127
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
128
127
128
128
128
128
128
128
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
127
128
128
128
128
127
127
128
128
127
128
128
128
127
127
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
127
127
127
127
128
128
127
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
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
128
128
127
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
128
128
128
128
128
127
127
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
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
127
127
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
128
127
127
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
127
127
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
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
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
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
127
127
128
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
127
127
128
128
127
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
127
128
128
127
127
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
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
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
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
127
127
127
127
127
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
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
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
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
128
128
128
127
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
128
128
128
128
128
128
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
128
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
128
128
128
128
128
128
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
127
127
127
127
128
127
127
128
128
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
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
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
127
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
127
127
128
127
127
127
127
128
128
128
127
127
127
128
127
127
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
127
127
127
127
127
127
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
127
127
127
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
128
128
128
128
128
128
128
128
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
127
127
127
127
127
128
128
128
128
127
128
127
127
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
127
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
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
127
127
128
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
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
127
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
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
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
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
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
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
127
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
127
128
128
128
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
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
127
127
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
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
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
128
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
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
128
128
127
128
128
128
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
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
128
128
128
127
127
128
127
127
128
128
128
128
128
127
128
128
128
128
127
128
128
127
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
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
127
127
128
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
128
127
128
128
128
127
128
128
128
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
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
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
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
127
127
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
128
127
128
127
127
128
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
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
127
127
128
128
128
128
128
128
128
127
128
127
128
128
128
128
128
128
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
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
127
128
128
128
128
128
128
127
127
127
127
128
128
128
128
128
128
128
128
127
128
128
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
127
127
127
127
127
127
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
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
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
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
126
127
126
127
128
126
127
128
129
128
127
127
128
128
128
128
127
127
127
126
127
127
127
127
126
128
127
128
128
127
128
127
127
128
127
127
127
127
128
128
127
127
127
127
127
128
127
127
129
129
129
128
127
127
127
127
128
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
127
127
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
126
127
127
127
127
127
126
127
127
127
127
127
127
126
126
126
126
127
127
127
127
128
127
127
127
126
126
126
126
127
127
126
126
127
127
131
118
129
123
133
124
131
123
127
128
127
129
126
126
127
127
128
128
126
127
126
127
127
127
127
126
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
128
128
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
126
127
127
127
127
127
126
126
126
129
126
128
126
127
127
127
127
127
128
126
126
126
127
127
127
127
127
126
127
127
128
127
127
128
128
128
128
127
128
128
128
129
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
125
130
126
127
128
132
130
124
128
129
128
131
125
130
129
126
129
127
129
129
127
128
127
127
128
127
129
128
129
129
128
128
128
127
129
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
127
128
128
129
127
127
127
128
126
129
129
128
130
127
127
128
127
128
128
126
128
128
129
128
128
127
127
128
128
127
128
128
128
128
128
127
127
127
128
128
128
127
127
127
128
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
129
128
127
126
126
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
127
127
127
128
128
127
127
128
129
129
127
127
126
126
126
127
126
126
127
128
128
128
126
127
128
127
128
128
127
128
128
128
127
127
127
127
127
128
128
129
128
128
127
127
127
128
129
129
129
128
128
127
128
128
128
127
127
128
128
128
127
126
127
128
128
128
127
126
127
128
128
128
127
126
126
126
126
127
126
127
127
128
128
127
127
126
127
127
128
127
128
128
129
129
128
129
129
128
127
127
129
131
130
129
129
129
131
130
130
131
130
130
131
131
132
132
131
131
130
130
130
129
129
129
128
129
129
130
130
129
129
128
128
128
128
127
127
125
125
125
125
125
125
125
124
125
125
124
124
122
123
124
126
126
125
124
124
124
125
126
126
127
127
128
128
127
127
129
132
135
136
137
135
134
131
131
135
138
140
139
135
133
135
138
139
138
137
136
137
137
138
134
132
131
129
131
133
132
130
124
120
122
124
124
118
112
106
107
114
123
125
125
120
115
114
115
118
122
122
123
124
124
124
124
122
122
122
124
127
128
128
128
127
128
129
132
135
138
140
138
137
136
135
135
135
139
145
148
145
139
136
138
144
152
156
154
155
147
143
149
155
138
111
97
76
73
94
114
136
149
147
138
121
109
100
100
108
120
144
159
162
157
139
119
107
102
98
106
115
122
130
131
119
108
100
99
121
142
149
147
125
107
107
115
127
126
122
122
126
128
127
120
116
121
128
139
142
140
138
137
138
138
138
137
138
141
143
142
140
140
143
140
141
148
155
160
159
156
161
163
153
141
103
67
8
21
100
154
216
204
152
109
70
74
92
100
112
132
163
183
196
177
121
90
60
56
90
117
140
146
136
109
98
90
97
115
125
144
147
137
129
118
107
110
115
126
134
135
133
121
115
117
123
134
144
147
148
149
148
143
138
136
144
154
159
163
162
154
154
159
169
174
190
196
125
0
1
3
72
211
255
255
177
86
51
52
63
67
83
103
162
229
245
216
136
54
26
41
92
138
149
145
128
125
122
112
91
74
88
111
147
167
153
119
100
82
93
119
134
146
135
117
109
106
115
126
131
135
139
143
146
144
137
131
131
138
146
151
148
144
144
146
150
152
158
163
162
169
180
180
157
109
60
9
10
56
137
200
210
184
131
83
63
64
75
90
120
149
187
206
188
155
100
67
64
80
105
120
132
132
130
119
101
90
84
97
125
142
156
145
119
100
99
106
120
131
133
130
123
117
115
115
123
132
136
143
146
148
148
146
141
135
136
146
160
167
164
154
146
152
157
175
191
195
206
166
58
1
2
0
114
228
255
242
154
85
52
46
47
56
88
123
194
243
233
197
116
50
36
50
92
127
130
137
144
132
115
97
70
68
98
121
155
157
143
131
105
98
98
103
120
136
138
131
123
111
112
119
125
135
145
154
157
155
145
135
128
134
152
168
173
171
159
150
158
166
183
193
195
206
120
0
0
2
55
206
255
255
182
98
67
49
46
49
58
91
167
242
255
230
149
60
30
37
74
115
140
135
134
141
130
118
82
63
68
95
137
157
159
147
124
101
96
93
105
122
132
138
134
128
117
114
114
120
134
150
159
162
156
142
136
129
134
151
160
175
173
162
161
153
157
180
185
201
220
170
93
0
2
0
85
225
255
228
167
93
65
51
48
41
53
126
211
255
255
202
105
58
35
52
89
109
127
123
138
155
139
99
72
56
57
109
152
175
179
156
108
92
81
86
115
124
145
146
144
133
116
103
103
114
137
163
170
167
158
144
134
132
137
150
168
178
182
171
156
149
148
169
195
216
226
156
0
0
0
10
173
255
255
190
132
89
84
64
44
23
56
134
219
255
255
187
103
61
51
63
85
95
93
113
156
161
135
109
49
37
93
113
169
179
160
139
116
92
84
94
102
133
153
159
147
129
109
101
105
117
141
156
175
176
165
144
133
133
146
161
171
180
170
170
162
159
158
175
189
213
170
8
2
0
1
144
218
241
185
140
115
102
91
61
30
42
94
175
226
250
209
148
111
76
70
72
71
61
70
113
147
164
142
101
75
77
93
127
141
138
139
132
123
120
110
106
108
117
126
138
139
138
132
121
116
117
131
149
163
166
165
160
154
157
153
152
156
161
162
167
167
161
171
182
195
182
114
12
1
1
24
118
173
173
166
149
134
136
130
103
79
69
75
111
156
183
187
179
158
136
129
115
90
60
52
56
76
110
133
141
147
148
147
144
136
125
115
111
110
117
127
133
137
134
132
130
130
133
135
135
139
145
152
156
161
161
161
162
165
170
175
177
179
180
181
182
184
187
187
189
190
191
189
185
182
178
170
156
148
135
122
111
106
100
89
81
77
71
71
77
80
82
85
85
85
88
93
94
95
94
89
88
89
88
84
84
82
82
88
91
90
91
93
94
99
104
107
110
114
114
115
118
118
117
117
117
116
117
119
118
117
117
115
115
117
118
118
120
120
120
122
123
123
123
124
126
128
130
131
129
129
126
127
129
129
129
128
129
126
125
125
122
117
117
118
115
114
113
112
109
111
114
116
120
124
125
127
130
130
131
131
133
130
130
130
127
124
122
120
118
120
121
121
123
125
126
128
130
130
131
131
132
133
135
136
134
134
132
132
132
133
133
134
133
133
133
133
133
131
132
132
132
136
136
137
136
136
136
137
139
138
139
139
137
137
138
135
132
130
129
126
125
124
122
116
115
115
115
116
119
120
119
121
125
126
129
131
132
133
134
134
132
130
128
125
124
122
121
120
121
120
121
122
123
125
126
128
129
131
132
132
132
132
132
131
132
132
132
132
131
130
130
130
129
128
129
128
130
130
132
131
131
131
132
133
134
136
134
135
134
135
135
133
133
133
132
131
129
128
124
121
119
118
115
114
114
112
112
113
114
115
118
121
124
127
131
132
132
133
131
130
128
126
124
123
122
118
117
117
117
117
119
121
121
125
126
128
129
131
130
131
132
132
132
131
131
130
130
129
129
129
129
129
130
130
129
128
126
129
128
131
131
133
133
134
135
135
135
134
135
135
136
134
136
136
134
131
129
126
125
123
121
118
115
112
111
111
112
112
114
116
120
123
127
129
131
133
135
136
135
134
132
130
126
123
120
119
118
117
115
115
116
117
118
120
122
125
128
130
131
132
132
132
132
133
132
132
132
132
131
130
129
128
127
127
126
127
128
129
129
130
131
133
133
134
135
135
136
136
136
136
135
136
134
136
136
136
135
136
133
129
126
125
123
120
118
115
112
111
112
111
111
112
116
120
124
127
131
133
135
137
138
138
137
136
133
129
126
123
121
118
116
116
115
115
115
116
117
115
116
114
119
124
125
129
133
136
136
135
134
133
132
131
130
128
127
126
125
123
122
122
123
124
125
127
131
132
135
137
139
141
143
144
143
143
142
141
142
141
141
140
140
142
147
152
145
131
110
103
105
104
99
94
97
101
116
121
119
120
126
133
141
143
139
136
138
145
146
144
138
133
132
131
127
111
99
99
99
100
99
96
98
109
124
131
132
134
137
141
141
135
125
121
123
122
119
116
114
116
120
122
121
118
125
129
130
132
133
136
140
142
139
137
142
144
145
146
147
147
149
150
149
151
152
155
159
158
163
171
171
173
176
181
186
190
166
101
86
108
100
63
74
101
130
140
142
139
157
177
149
130
139
155
140
130
137
146
156
151
140
139
147
130
110
103
111
105
98
98
118
131
135
132
143
157
145
125
120
116
114
99
94
103
108
104
104
119
124
122
116
126
131
127
123
126
130
130
123
123
129
127
118
120
125
123
121
121
126
129
128
128
136
139
137
143
149
148
142
145
138
132
135
132
124
125
132
129
130
138
142
149
161
138
109
65
58
97
55
39
104
126
121
118
146
137
129
117
100
120
110
96
104
134
138
123
145
150
142
127
116
104
99
87
78
94
103
102
111
142
143
136
138
137
129
115
102
95
98
94
88
108
115
113
120
126
120
117
114
112
117
116
117
128
136
133
135
139
133
127
125
120
120
119
121
124
131
132
132
138
140
138
140
143
144
145
147
146
143
149
145
134
139
139
133
132
139
137
141
143
146
151
153
155
145
132
121
78
53
111
88
57
119
140
131
132
153
139
134
126
108
126
117
109
120
147
139
135
151
151
134
124
117
105
98
93
93
111
120
123
138
156
154
150
139
149
121
107
110
112
101
99
111
119
118
119
121
128
119
112
113
119
113
118
126
135
134
138
140
138
130
123
122
123
118
118
126
131
132
136
141
141
140
140
141
140
139
138
142
142
138
140
142
144
140
138
144
144
134
138
146
145
135
151
155
148
147
152
153
152
142
127
107
61
68
116
56
71
131
143
129
139
159
141
139
122
114
131
114
111
125
148
134
135
149
147
128
121
114
107
100
93
102
120
126
134
145
159
153
149
147
140
126
113
97
102
115
94
103
132
127
121
130
134
121
119
114
115
117
115
117
130
133
131
137
137
128
120
120
118
115
117
124
129
132
135
140
142
140
138
140
140
137
135
137
136
132
131
134
134
129
134
143
140
135
141
146
144
137
140
154
148
138
148
154
146
150
164
155
136
120
48
79
116
53
62
148
139
123
145
171
137
140
117
117
125
111
99
130
145
132
134
160
149
133
122
120
104
99
89
104
117
120
128
150
159
154
149
150
139
129
114
110
109
106
107
119
128
108
129
142
115
122
136
120
113
120
122
116
125
123
129
133
124
119
128
120
109
115
121
118
121
128
132
134
134
135
141
138
135
138
141
137
135
137
135
131
129
131
129
126
131
137
137
138
140
143
147
141
138
146
141
140
148
152
155
159
152
145
99
70
86
103
58
73
133
139
129
143
159
148
131
118
121
124
106
111
130
141
132
144
155
149
130
123
120
107
95
96
105
116
121
135
148
155
150
149
149
137
122
115
113
111
108
114
122
129
130
134
136
106
126
129
102
108
136
121
120
134
139
127
130
121
117
116
106
103
121
120
118
129
138
129
131
134
131
130
131
129
137
138
136
140
143
136
131
132
126
126
126
124
130
140
138
137
145
146
135
142
149
144
148
161
154
143
145
109
92
82
109
80
80
123
135
131
134
149
140
132
124
120
124
117
114
129
140
136
137
148
144
130
120
119
109
100
100
108
117
122
134
143
150
147
146
145
137
125
118
117
114
112
117
122
127
128
131
133
131
127
125
125
123
121
125
128
132
128
138
138
131
111
130
121
101
108
121
111
107
122
128
126
129
133
136
133
128
130
133
126
122
131
132
128
126
133
131
127
126
130
127
124
128
134
130
132
134
138
132
135
135
136
133
127
129
130
126
125
132
131
129
132
138
135
135
135
133
129
128
123
122
121
121
121
125
124
124
126
125
123
124
124
122
123
125
126
127
129
130
131
131
129
127
125
123
120
120
120
121
123
124
126
128
130
130
129
128
128
128
126
125
126
127
125
126
123
125
126
124
121
124
126
125
125
127
130
130
129
131
135
130
128
133
132
127
128
131
127
124
130
129
127
127
130
130
127
129
131
130
130
131
134
133
129
131
133
128
126
133
132
126
130
137
128
119
125
126
116
119
123
125
123
125
128
131
127
125
128
129
123
123
127
126
123
126
129
128
126
127
128
126
123
122
123
123
121
124
127
127
127
129
130
129
128
127
128
127
125
126
127
127
127
128
128
128
128
128
128
127
127
128
127
128
129
129
129
129
129
128
128
128
125
126
127
125
127
128
127
126
128
127
127
127
128
127
127
128
127
127
128
127
127
127
127
125
127
127
126
126
127
126
127
127
127
127
128
127
128
128
127
127
128
128
127
127
127
128
127
126
128
128
126
127
129
128
127
128
128
127
127
127
127
127
127
127
127
127
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
127
128
127
127
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
127
127
128
128
127
128
128
128
127
127
128
128
127
127
128
128
127
128
128
127
127
128
128
127
127
128
127
127
127
128
128
128
128
127
128
127
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
127
127
128
127
128
128
127
128
127
127
128
128
127
128
128
128
127
127
127
127
127
127
128
127
127
128
128
128
127
128
128
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
128
128
127
127
128
128
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
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
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
128
128
127
127
127
127
128
127
127
127
128
127
127
128
128
127
127
128
128
127
127
127
128
127
127
127
127
127
127
128
128
127
128
128
127
127
128
127
127
128
128
128
127
128
128
127
127
128
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
128
127
127
128
128
127
127
128
128
128
127
128
128
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
129
127
127
128
127
127
127
128
127
127
128
128
127
128
128
128
127
128
128
128
127
127
128
127
127
127
128
127
127
128
128
127
127
128
128
128
128
127
128
128
127
128
128
127
127
128
127
127
128
127
127
127
128
127
128
128
127
128
128
127
127
128
127
127
128
127
127
128
128
127
128
128
127
127
128
127
127
128
127
128
128
127
128
128
127
128
128
127
127
129
128
127
128
129
127
127
129
128
127
129
129
128
129
128
128
128
128
127
128
128
127
128
129
128
127
129
129
127
128
129
127
127
129
127
128
129
128
128
128
128
128
128
127
127
129
127
128
129
128
128
128
128
128
128
127
128
128
127
128
128
128
127
129
128
126
128
128
127
128
128
127
129
129
126
128
129
127
127
129
127
126
128
128
127
128
129
127
127
128
128
127
128
129
127
127
128
128
127
128
128
127
128
128
127
127
129
127
127
129
128
127
129
129
127
128
129
127
127
127
127
128
128
127
128
129
128
126
129
128
126
128
128
128
128
128
127
129
129
126
127
129
128
127
128
129
128
127
127
129
128
126
127
130
126
126
130
129
126
127
128
127
127
127
127
128
129
128
128
129
127
125
127
128
125
127
129
127
128
129
127
126
128
128
125
129
129
126
128
130
126
128
130
127
126
130
128
125
129
128
125
128
129
126
126
129
127
126
127
128
127
127
128
127
128
128
127
127
129
127
125
128
128
126
127
129
126
127
128
127
127
127
126
127
128
126
128
129
126
127
129
127
125
129
127
126
129
129
126
127
129
126
127
128
127
127
127
128
129
127
128
129
128
127
128
128
127
128
127
127
128
127
126
128
129
127
127
129
128
126
127
129
127
127
128
128
127
128
128
127
128
128
127
129
128
126
128
129
127
127
129
128
127
127
127
127
127
127
128
128
127
127
129
127
126
127
129
128
127
128
129
127
126
128
128
126
127
128
128
127
128
128
128
128
127
127
129
128
127
127
129
129
126
127
130
127
127
129
128
126
128
128
127
128
129
127
127
129
128
126
127
128
127
126
128
129
127
126
128
129
126
126
129
129
126
127
129
128
126
128
129
127
127
129
128
126
128
127
127
128
128
127
129
128
126
128
127
126
128
128
127
127
128
128
126
127
127
128
126
127
129
128
127
128
128
127
127
128
127
128
128
127
128
128
127
126
128
127
126
128
128
127
128
128
127
128
128
127
128
129
127
127
128
128
126
127
128
128
127
127
129
128
127
128
129
128
127
129
129
128
128
128
127
126
127
128
128
128
128
128
127
127
127
126
128
128
128
129
128
127
128
128
126
127
129
127
128
129
128
128
128
128
127
127
126
127
127
126
128
128
127
128
129
127
127
129
126
126
129
128
128
129
128
126
129
127
125
128
129
126
127
129
126
127
129
128
127
129
129
127
128
127
127
129
128
128
128
128
127
128
128
127
128
127
127
128
128
128
128
128
128
128
127
127
127
126
129
129
127
129
129
127
126
128
127
126
128
129
128
128
128
128
127
126
127
128
127
126
128
129
127
127
129
128
127
127
129
127
128
129
128
128
128
127
127
127
127
128
128
128
129
128
127
128
128
126
127
128
127
128
128
127
127
127
126
126
128
127
126
127
128
127
128
127
127
127
127
127
127
127
127
127
127
126
126
127
128
128
127
128
128
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
128
128
127
128
129
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
128
127
127
128
128
128
128
128
127
127
128
128
128
127
126
127
127
127
127
127
128
127
127
127
127
127
127
127
128
129
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
127
127
128
127
126
127
128
127
127
128
127
127
127
127
127
127
127
128
128
127
128
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
128
128
127
127
128
128
127
127
128
128
127
127
128
128
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
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
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
127
128
128
127
127
128
128
128
128
128
128
127
127
128
128
127
127
127
127
127
127
128
127
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
126
126
126
126
127
127
126
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
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
127
127
127
127
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
126
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
128
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
128
127
127
127
127
127
127
128
127
128
127
127
128
127
128
128
127
127
127
128
128
128
127
127
128
128
127
128
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
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
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
128
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
126
127
127
127
126
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
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
128
129
128
128
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
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
128
128
128
129
129
129
129
128
128
128
128
128
128
128
128
128
128
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
126
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
126
126
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
127
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
129
129
129
129
129
129
129
128
128
129
129
128
129
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
128
128
128
129
129
129
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
128
128
127
127
128
128
127
127
127
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
128
128
127
127
127
127
127
127
127
128
127
128
127
127
128
127
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
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
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
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
128
127
127
128
127
127
128
127
128
127
128
128
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
130
129
129
130
130
130
130
130
130
130
130
130
130
130
129
129
129
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
125
126
125
125
126
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
129
130
130
130
130
130
130
129
130
130
129
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
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
129
129
128
128
128
129
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
128
129
129
129
129
129
129
129
129
129
128
129
129
128
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
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
129
128
129
129
129
129
129
129
128
128
128
128
128
128
129
129
129
129
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
127
127
127
127
126
127
127
127
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
125
126
126
126
125
126
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
127
127
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
128
128
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
127
127
128
128
127
127
127
127
128
128
128
127
128
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
128
127
127
127
127
128
128
127
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
127
128
128
128
127
128
128
128
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
128
128
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
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
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
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
127
127
127
128
128
128
127
128
127
127
128
128
128
127
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
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
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
128
128
128
128
127
128
127
127
127
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
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
129
129
128
129
129
129
128
128
128
129
128
129
128
129
129
129
128
128
128
129
129
128
128
128
129
129
129
129
129
129
129
129
129
129
129
128
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
127
128
127
127
127
127
128
128
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
127
128
127
127
127
127
128
128
128
128
128
128
127
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
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
127
127
127
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
127
127
127
128
128
128
127
127
127
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
128
128
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
127
127
128
127
128
127
127
128
128
128
127
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
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
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
127
127
128
128
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
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
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
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
127
128
127
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
126
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
127
127
127
127
127
127
127
127
127
128
128
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
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
127
128
127
127
127
128
128
128
128
128
128
128
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
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
128
128
128
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
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
127
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
127
127
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
128
128
128
127
127
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
128
127
127
127
127
127
127
127
127
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
128
128
128
128
127
128
128
128
128
128
127
128
128
128
127
127
127
127
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
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
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
127
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
128
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
127
128
128
127
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
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
128
128
127
127
127
127
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
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
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
128
127
127
128
128
127
127
128
128
128
127
127
127
127
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
127
127
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
127
127
127
127
128
127
127
127
128
128
127
127
128
128
128
128
127
127
128
128
128
127
128
128
127
127
127
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
127
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
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
127
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
127
127
127
127
127
128
127
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
128
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
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
128
128
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
127
128
128
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
128
129
129
128
128
126
127
129
128
127
125
127
127
129
128
127
127
127
128
129
128
126
126
127
128
128
128
127
127
128
129
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
127
127
127
127
127
127
128
128
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
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
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
127
127
127
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
127
127
128
128
127
127
128
128
128
128
127
128
128
128
128
127
127
127
128
128
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
127
127
128
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
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
128
128
127
127
127
127
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
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
128
128
128
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
128
128
127
127
127
127
127
128
127
128
128
127
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
128
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
127
127
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
128
128
127
128
128
128
128
128
127
127
128
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
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
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
128
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
127
127
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
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
127
127
127
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
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
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
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
127
127
127
127
127
127
127
128
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
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
128
128
128
127
127
128
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
128
127
127
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
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
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
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
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
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
127
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
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
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
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
127
127
128
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
127
127
127
128
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
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
128
125
130
123
135
92
119
126
119
123
123
125
130
129
127
125
125
124
127
125
124
124
123
120
122
123
123
122
126
109
114
119
121
130
127
127
125
130
129
127
123
116
120
122
123
106
109
107
113
116
120
125
131
127
129
129
130
129
129
123
119
120
117
118
121
118
121
125
130
134
139
136
137
141
140
139
138
133
129
130
129
130
131
128
128
132
134
136
139
136
135
137
137
137
135
131
129
131
130
129
129
127
131
134
135
136
138
138
137
137
136
133
132
131
130
131
130
131
133
134
135
136
136
137
138
140
139
140
140
139
140
139
137
136
136
136
137
138
138
139
139
140
140
140
141
139
139
138
137
139
140
141
142
141
140
139
140
140
139
139
138
139
140
140
139
138
137
138
138
136
135
134
133
134
133
133
133
133
133
132
131
130
129
129
129
128
127
125
124
124
124
124
123
122
123
123
123
123
121
119
118
119
118
120
119
117
117
117
117
118
118
116
116
117
116
117
117
116
115
115
115
115
117
118
117
118
118
117
118
119
119
120
120
121
122
122
124
124
124
124
123
123
125
126
126
126
125
123
124
123
124
127
127
127
126
125
125
126
126
124
123
123
120
121
121
120
123
122
121
120
121
125
126
127
125
122
122
121
123
124
123
122
118
117
115
114
114
112
111
109
107
108
111
114
115
116
116
116
117
117
118
119
119
119
120
121
123
124
126
126
127
127
127
129
130
132
134
136
137
136
136
135
135
137
140
140
142
142
141
141
142
141
141
142
139
138
140
142
143
145
145
144
144
144
139
133
126
117
111
112
111
110
109
107
105
103
106
110
118
127
134
137
137
135
129
120
113
103
95
92
86
86
94
104
119
133
142
143
138
129
118
113
111
114
122
127
129
129
128
127
127
130
132
135
137
137
139
140
141
142
143
142
141
141
142
144
150
154
157
159
156
155
153
151
151
150
153
156
159
164
162
158
150
124
98
74
46
41
47
64
94
120
144
157
164
165
160
161
157
151
144
129
112
95
82
77
81
94
110
123
129
130
123
113
110
110
116
125
130
128
121
111
101
98
104
113
126
136
139
137
132
127
124
127
130
132
131
127
122
122
124
131
138
145
148
148
146
144
143
143
146
149
151
151
149
145
141
139
140
145
151
159
164
168
165
160
150
128
103
79
56
44
46
60
81
110
134
151
161
164
160
157
154
151
147
141
130
116
102
88
81
79
84
94
101
112
117
123
128
133
138
139
137
131
121
112
105
104
109
118
128
136
141
140
137
133
131
131
133
136
139
140
138
136
132
131
131
134
137
141
145
146
149
149
149
147
145
143
140
138
136
137
140
145
149
153
154
151
146
136
123
109
95
85
80
79
87
96
110
122
132
141
145
147
148
148
147
145
141
136
128
121
113
106
98
97
95
94
100
103
112
124
134
143
148
147
140
131
122
114
114
117
124
133
139
142
141
137
133
129
129
130
133
137
140
141
140
137
133
130
128
128
131
134
138
140
141
140
137
134
131
129
129
131
134
137
139
139
137
135
132
130
130
130
130
130
128
126
121
116
112
109
110
112
115
119
123
125
127
128
129
129
131
133
134
135
135
132
127
123
117
112
109
108
110
115
121
128
135
139
140
138
133
128
124
122
123
127
131
134
136
134
131
126
122
120
121
125
131
135
138
137
134
129
125
122
123
125
130
134
136
137
135
132
129
127
127
128
130
132
133
134
133
131
128
127
126
127
129
130
130
130
129
127
124
123
122
122
124
126
128
129
129
128
127
125
124
123
123
124
125
127
127
127
127
126
126
125
125
125
126
128
129
130
130
129
128
128
127
126
126
127
128
129
130
130
130
129
128
127
127
127
128
128
129
130
130
129
129
128
127
127
128
128
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
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
128
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
126
126
126
126
126
126
127
127
127
126
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
127
126
126
127
127
127
126
126
126
126
126
126
126
127
127
127
127
126
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
127
127
127
127
127
127
127
127
126
127
126
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
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
129
129
128
127
127
127
127
127
128
128
128
129
128
128
127
127
125
127
127
128
128
128
127
127
127
127
126
127
126
126
125
125
123
123
121
120
117
118
117
111
116
117
131
141
154
152
145
132
115
106
105
109
122
135
145
145
142
135
124
119
119
122
130
136
139
136
133
124
117
118
120
125
135
137
141
140
138
132
131
124
125
122
123
120
120
116
119
124
124
127
128
121
125
123
130
131
139
135
134
130
124
120
122
122
128
131
136
135
136
133
129
129
129
129
134
133
134
131
130
126
125
125
125
127
131
132
134
132
130
126
128
128
129
132
132
130
128
126
124
125
128
131
134
134
134
132
130
128
129
129
131
132
132
131
129
129
129
131
132
132
131
131
130
130
130
132
133
134
134
133
132
130
129
130
132
134
135
136
135
134
132
131
133
134
136
137
137
136
135
133
133
134
135
135
135
135
134
134
135
136
136
136
136
135
134
133
132
132
131
132
131
131
130
130
131
131
131
130
130
129
128
126
125
126
125
126
129
129
130
129
128
127
127
128
129
133
135
137
139
138
138
136
134
133
133
134
134
136
136
136
137
137
138
138
139
138
139
138
136
134
132
130
129
130
132
135
136
136
131
119
103
85
68
59
59
68
83
102
117
125
129
125
120
114
110
108
108
109
110
111
113
114
117
119
120
124
127
130
134
138
141
143
143
140
138
135
134
137
140
146
154
163
174
183
192
200
205
191
157
118
62
10
0
4
0
16
66
111
151
176
189
197
199
189
183
165
136
109
75
46
33
32
37
58
86
99
119
133
133
144
148
142
135
120
101
85
82
82
91
111
119
130
138
137
142
149
156
160
163
157
146
142
136
138
150
160
174
187
194
200
212
228
205
150
94
8
0
5
0
6
82
141
170
190
193
186
198
211
205
196
162
104
55
21
6
23
62
97
127
144
140
141
147
147
151
144
120
92
72
61
66
89
108
123
132
129
128
135
143
154
162
160
150
141
134
131
135
139
143
148
155
166
185
205
220
234
239
247
223
139
66
1
0
4
1
7
86
143
165
184
208
219
231
252
228
184
139
70
24
13
18
38
73
100
107
123
146
154
179
194
172
145
109
67
49
59
70
89
112
117
120
137
147
158
172
166
151
144
136
135
145
152
144
140
136
134
154
182
209
232
243
241
245
234
160
85
13
0
4
2
0
48
120
149
171
204
231
241
255
241
189
136
84
38
21
31
38
54
77
95
113
143
175
186
195
185
147
113
85
58
53
62
70
80
100
119
136
160
171
165
161
150
137
140
145
145
143
140
128
125
135
151
168
193
213
221
230
238
246
241
176
89
8
0
5
0
7
55
95
127
152
186
233
255
255
242
190
131
85
62
50
46
44
42
45
70
105
138
176
189
180
166
144
123
106
89
75
65
62
74
92
117
140
151
155
154
152
155
158
160
157
147
139
133
130
134
142
150
161
177
197
214
226
236
245
232
164
81
15
0
5
0
18
50
63
92
135
179
221
252
248
219
181
151
126
107
90
69
42
27
37
64
94
118
138
147
148
153
159
156
138
111
90
82
80
88
101
109
114
120
131
144
155
161
165
162
156
152
150
148
143
136
133
136
144
157
173
184
189
191
196
203
190
144
91
57
46
52
57
59
65
72
80
98
124
153
173
174
164
155
153
155
154
142
124
107
97
97
103
106
102
96
92
98
114
131
139
136
127
120
124
131
135
133
127
122
124
129
134
135
132
127
125
126
129
131
130
127
124
124
128
132
134
134
133
132
134
137
139
141
141
141
142
144
144
139
131
122
116
114
115
117
115
111
108
109
112
116
117
116
115
117
122
127
129
128
127
128
131
132
130
125
123
124
126
125
121
117
116
119
123
125
123
122
121
123
126
127
126
126
126
127
130
132
132
131
130
130
131
132
133
133
131
131
132
134
135
136
137
138
141
145
148
146
140
132
124
121
120
121
120
115
108
103
105
110
113
113
112
113
117
122
127
131
134
136
136
134
133
135
135
133
128
123
121
122
121
117
114
113
116
120
122
121
120
121
123
126
129
131
132
132
132
133
134
135
135
133
131
130
131
133
133
131
131
131
133
136
138
139
141
144
148
153
153
146
136
125
119
118
118
116
110
103
99
100
105
110
114
118
120
122
124
130
140
147
144
134
127
129
134
131
121
114
113
116
114
106
101
99
92
89
98
115
124
123
124
135
146
142
136
136
138
134
126
123
128
131
127
125
131
140
147
150
149
154
163
168
169
171
176
180
188
193
170
126
87
58
41
45
53
60
67
69
83
117
149
172
186
182
174
168
161
160
153
130
104
84
72
75
82
83
82
85
95
114
130
139
144
139
129
126
125
124
119
109
102
101
105
117
131
137
139
139
142
150
154
155
151
144
140
141
145
151
155
160
167
175
186
202
215
228
226
174
107
67
41
19
14
25
32
38
61
109
152
183
208
217
204
188
181
170
150
122
95
67
49
54
72
89
104
115
117
125
139
156
162
149
125
106
91
85
93
101
105
106
112
118
127
136
143
142
136
134
132
133
137
137
131
125
125
133
144
157
167
170
173
179
185
191
195
196
196
204
195
142
90
53
20
13
23
38
58
76
101
136
163
190
208
198
182
160
136
119
109
97
87
79
79
90
106
127
142
141
131
124
117
116
115
106
97
93
92
99
116
131
138
139
135
127
121
122
120
117
114
111
109
116
126
134
139
141
143
147
154
162
167
167
164
159
156
160
166
172
179
185
194
201
168
122
87
46
32
35
39
59
80
99
125
151
170
183
182
168
152
130
116
106
101
99
99
103
112
125
138
146
147
137
117
101
91
85
84
83
87
96
109
126
141
150
150
142
130
118
111
108
109
111
112
113
116
123
133
142
148
150
153
158
163
167
168
164
158
155
157
163
173
180
188
197
204
168
121
80
33
9
7
37
59
96
127
140
164
176
181
181
169
146
120
101
89
88
99
108
120
131
138
146
150
146
129
110
90
74
75
77
85
102
115
127
142
151
154
151
140
122
108
98
95
102
107
112
115
118
122
130
139
144
148
150
151
152
154
153
150
148
147
147
153
160
167
176
182
188
200
208
175
130
90
34
20
15
28
67
89
123
141
157
169
170
171
155
136
117
97
95
98
108
124
134
145
145
147
143
130
117
88
73
62
61
77
88
110
129
143
157
159
157
146
131
115
100
96
96
104
114
118
121
121
126
132
139
146
149
151
154
156
159
159
156
151
148
151
157
165
175
181
184
186
188
164
124
89
54
14
13
41
58
109
138
150
163
164
159
156
149
131
114
102
92
98
117
130
148
156
152
143
134
123
105
89
69
60
63
77
95
120
140
153
160
157
146
135
121
107
100
96
99
107
117
124
128
130
129
134
139
142
147
148
149
151
153
153
152
151
150
152
158
165
172
178
179
177
179
178
145
109
78
54
45
37
63
79
101
130
139
151
154
149
142
132
120
114
112
118
123
136
144
149
153
145
134
123
105
84
71
65
65
81
96
109
131
145
154
159
152
138
125
113
103
103
105
109
116
122
124
127
130
130
135
137
138
144
147
150
155
156
153
152
151
152
157
162
167
170
171
171
173
176
179
154
112
83
61
66
66
70
85
90
108
127
142
149
145
133
123
117
122
126
135
139
140
144
148
152
149
139
120
100
78
69
69
78
88
101
113
123
138
149
152
148
136
122
116
112
110
110
112
114
119
125
127
129
129
129
131
134
137
142
146
148
151
152
153
155
155
155
156
158
161
165
168
166
166
167
174
162
124
97
79
80
83
77
77
80
92
112
131
135
132
123
122
125
134
139
139
139
140
147
152
152
143
129
112
100
94
82
73
76
80
95
115
124
129
139
141
142
141
131
121
116
113
111
115
117
120
124
124
124
125
125
125
129
131
135
141
146
150
153
154
153
154
155
155
157
158
158
160
164
163
166
170
174
151
116
97
88
93
83
73
70
80
99
117
122
117
116
120
133
137
139
134
137
145
155
157
151
141
130
125
116
106
91
75
71
83
91
100
107
111
126
141
143
139
132
126
126
125
120
115
116
119
125
126
121
118
120
123
125
126
126
132
141
147
149
150
151
155
157
156
153
153
155
156
157
155
155
159
163
166
156
127
111
110
112
88
72
74
87
99
103
101
102
117
126
133
128
130
135
148
152
150
147
146
148
143
133
119
112
106
96
86
87
88
93
97
104
115
126
131
134
133
134
134
131
127
125
128
129
131
127
126
125
125
123
121
122
123
129
132
136
139
145
148
150
151
151
152
151
151
150
150
150
150
149
148
148
150
149
135
126
124
121
104
96
95
96
95
95
97
101
108
113
117
121
129
133
138
140
142
143
144
141
138
135
131
127
123
118
113
113
112
107
107
110
111
113
116
116
119
121
122
124
127
129
131
133
133
133
133
131
130
130
129
127
127
126
126
127
128
129
130
131
133
134
134
136
138
139
141
143
144
146
148
148
150
151
151
145
139
137
132
119
113
110
101
99
100
93
94
102
104
107
116
120
126
134
135
137
144
144
142
144
142
139
139
133
126
127
122
113
111
109
106
107
106
104
109
112
112
117
121
125
131
134
134
138
139
136
136
136
133
132
129
127
128
127
125
125
126
126
127
127
128
131
133
135
138
140
141
143
145
147
149
149
149
151
150
143
137
134
129
121
113
107
103
100
96
94
97
102
104
107
114
121
126
131
135
140
143
142
142
144
142
139
135
131
128
123
117
113
112
110
108
107
107
108
111
112
116
121
125
128
132
134
136
137
137
137
136
134
133
132
130
129
128
127
127
126
126
127
129
130
131
133
136
137
139
141
143
145
146
147
149
149
150
150
145
139
136
132
123
115
110
106
103
99
95
98
103
103
107
115
120
125
130
134
140
142
142
143
145
143
140
138
134
130
126
120
114
112
110
108
108
106
106
110
112
114
118
124
128
131
134
137
139
139
139
139
138
135
132
131
130
128
128
127
127
127
127
129
130
131
133
136
137
139
141
143
145
146
147
148
149
151
148
141
136
135
128
118
114
109
104
100
96
97
101
101
104
112
117
121
127
132
137
141
141
142
144
143
140
139
137
134
128
123
122
116
109
107
108
106
105
105
108
112
113
117
124
129
130
134
138
139
139
138
138
137
134
130
130
128
126
126
126
126
125
126
128
129
130
132
135
137
138
140
142
143
144
145
146
147
147
148
145
138
134
132
125
117
112
109
106
100
97
100
103
103
106
113
118
122
126
132
137
139
139
141
142
141
138
137
136
130
126
124
120
114
109
109
108
106
105
107
110
112
114
119
125
127
130
134
138
136
137
138
137
135
133
131
129
128
126
126
125
125
126
127
129
130
131
135
137
139
141
143
144
145
146
147
148
148
149
147
144
141
133
128
123
118
107
106
103
100
96
100
101
105
107
115
121
124
129
135
140
141
143
144
144
141
140
137
133
127
123
117
113
109
105
105
106
105
106
109
112
115
119
124
129
132
135
138
140
140
139
139
137
134
132
130
127
126
125
125
125
126
127
129
131
133
135
138
140
141
143
144
145
146
146
146
146
146
147
145
141
140
131
127
122
117
107
105
104
100
97
99
103
104
108
114
122
123
129
134
140
140
143
144
144
140
138
137
132
127
123
121
114
111
108
107
103
104
108
108
110
115
119
121
125
130
134
136
139
142
141
140
138
137
134
131
129
127
125
125
126
126
127
129
132
134
136
138
140
143
144
146
146
145
146
150
147
148
149
150
144
144
141
130
129
121
119
107
108
105
101
99
102
106
107
112
119
126
127
134
139
144
144
147
147
145
143
140
138
133
129
124
121
115
110
109
108
105
106
109
111
112
115
121
122
127
132
136
137
139
143
142
141
139
138
134
131
129
127
125
124
126
126
127
129
132
134
136
139
141
142
144
146
146
147
146
147
146
146
147
148
143
140
142
130
127
121
119
109
103
106
99
98
98
103
105
108
114
123
125
131
137
142
143
145
147
145
141
139
137
131
127
122
118
112
108
105
102
104
103
104
107
110
112
116
120
124
128
131
135
136
138
139
139
137
136
134
130
127
125
124
122
122
123
125
126
128
131
134
136
140
141
143
145
145
147
145
144
146
143
145
145
146
137
136
139
123
124
117
112
110
98
104
100
95
99
102
106
108
116
123
126
132
137
144
143
145
148
144
141
137
137
129
125
122
116
110
105
105
100
99
102
104
106
110
115
118
120
126
129
132
134
137
139
137
138
138
135
132
130
128
124
123
123
123
123
125
128
130
132
136
139
140
143
146
146
147
148
147
145
146
145
143
143
145
144
132
135
136
118
121
117
109
109
102
102
102
100
102
108
113
112
122
129
129
135
141
144
144
145
145
142
139
135
132
127
122
119
115
109
104
103
103
100
101
109
111
111
119
125
124
127
133
133
133
136
138
136
134
134
133
129
127
127
125
122
123
126
126
127
131
134
134
138
142
143
143
146
148
146
147
148
146
145
145
143
143
142
145
141
127
136
129
113
116
114
106
100
103
103
98
103
106
110
114
118
127
131
134
137
143
143
141
144
141
137
133
129
126
120
116
114
110
106
103
104
103
101
106
110
113
116
122
126
127
130
132
133
131
132
132
130
129
128
127
125
124
124
124
124
125
127
130
131
134
138
140
140
143
145
145
145
146
147
146
144
145
145
143
143
145
146
144
148
142
129
135
129
115
114
113
106
101
104
103
100
107
110
113
119
125
130
133
139
141
142
143
144
142
138
136
132
126
123
120
115
112
111
108
105
104
103
107
109
109
114
122
125
124
131
135
131
131
133
132
128
127
128
125
124
123
123
124
125
126
127
131
133
135
139
142
143
144
145
147
146
145
147
147
145
144
147
145
144
147
149
148
147
153
151
133
131
133
120
107
106
107
99
95
101
101
104
110
116
121
128
135
136
139
145
145
141
141
142
136
130
128
125
119
115
114
112
109
110
107
106
109
105
107
115
118
116
121
130
130
127
131
132
129
126
125
122
120
121
118
118
121
123
123
125
131
133
134
138
141
142
143
144
144
142
143
143
141
141
143
142
142
146
145
147
150
152
154
155
158
153
136
129
124
111
100
96
95
88
92
100
99
104
115
123
126
133
142
142
142
145
144
139
137
136
130
125
124
120
115
114
114
113
111
113
113
110
112
112
109
112
118
121
119
122
127
128
127
125
122
121
121
119
115
114
117
119
120
123
126
130
134
138
139
141
143
143
142
141
139
138
137
137
137
137
140
143
146
149
151
152
155
157
159
162
163
162
158
142
122
112
101
93
87
84
83
87
100
108
113
121
132
141
145
149
148
145
144
142
135
128
125
123
120
118
115
113
114
115
116
116
117
119
120
122
120
119
120
118
118
119
124
124
121
120
118
116
115
112
110
109
113
115
118
121
125
129
134
138
140
140
142
141
139
137
134
131
129
129
129
130
132
135
140
144
148
153
158
160
158
159
160
160
161
162
162
155
136
114
97
87
82
79
78
81
90
102
116
127
134
140
146
151
153
149
142
134
129
124
120
116
113
112
113
116
118
119
120
122
124
125
123
125
123
123
125
122
121
118
116
117
117
120
119
116
113
109
109
107
108
111
114
120
124
129
133
135
138
138
140
139
137
134
131
130
128
126
126
126
128
131
136
141
145
151
154
158
159
162
161
157
156
154
154
157
158
160
157
137
110
90
83
78
79
84
86
91
105
122
135
144
149
147
146
148
144
136
126
118
110
108
111
113
114
116
119
122
127
132
131
129
127
124
123
124
123
122
118
112
116
112
114
117
118
121
119
120
114
110
108
104
106
111
117
123
128
133
134
137
138
136
135
131
128
126
125
125
123
124
125
128
132
135
139
142
146
149
152
155
157
157
156
154
151
151
153
153
154
156
159
161
146
123
99
82
75
78
86
89
96
104
115
130
145
153
153
148
142
136
132
128
120
112
106
105
109
117
124
128
129
130
131
133
135
132
126
120
116
115
116
119
119
116
115
112
115
124
124
125
123
119
114
112
110
104
104
108
113
123
131
135
136
137
135
132
132
129
127
125
123
123
123
126
127
129
132
133
138
142
146
149
150
151
150
152
152
150
149
150
149
150
152
152
157
165
169
154
134
114
91
84
82
83
81
85
97
107
125
141
148
150
149
147
141
138
133
121
113
107
105
108
115
121
123
127
131
133
138
139
135
129
123
119
117
117
116
115
115
113
115
114
121
126
124
127
125
122
120
117
112
105
105
106
111
122
129
133
136
137
137
136
135
131
127
125
122
123
123
125
126
128
132
133
138
142
144
146
148
148
148
149
149
149
149
149
149
150
151
153
154
156
158
165
159
138
125
105
94
90
86
85
81
92
104
117
133
139
142
143
146
147
142
138
126
116
111
110
111
112
115
117
120
128
133
137
137
135
131
128
128
124
120
117
111
109
111
111
108
115
122
121
126
130
126
124
123
117
111
108
106
106
115
122
125
130
134
135
135
136
132
129
128
127
126
126
126
126
127
130
132
134
137
139
143
147
149
151
152
151
151
151
149
147
147
151
150
148
150
152
156
161
146
128
123
108
101
98
90
87
86
100
111
118
128
130
135
143
147
146
138
132
127
122
121
117
111
109
112
117
121
124
126
127
131
135
135
132
130
127
125
124
122
112
108
108
101
111
118
114
116
123
127
126
125
123
115
115
117
112
113
118
121
124
128
131
130
131
134
132
130
131
129
129
129
129
128
129
132
132
133
136
138
141
145
148
149
150
151
151
152
151
150
150
147
146
149
150
151
152
147
133
129
128
113
106
102
93
93
99
102
104
110
119
128
130
136
140
138
140
141
135
129
127
125
122
118
116
115
114
117
119
119
120
125
128
129
130
131
131
131
131
129
121
117
117
114
116
118
112
113
123
125
121
122
125
129
131
128
127
129
131
130
130
128
128
130
132
131
130
129
130
131
130
127
127
129
129
128
128
128
128
130
131
130
129
130
133
132
131
130
132
133
131
130
130
132
132
131
132
132
133
133
134
133
132
132
132
130
128
126
125
123
122
121
120
120
120
120
120
120
121
122
123
123
124
126
127
127
128
128
129
129
129
128
128
128
127
127
127
126
126
126
125
124
124
123
121
122
124
122
122
123
124
124
124
124
124
125
125
125
126
127
127
128
129
129
129
130
131
130
130
130
129
130
129
128
128
128
128
127
127
127
128
128
129
129
130
130
130
131
131
132
132
132
131
131
132
132
131
132
132
131
132
132
132
132
132
132
131
130
130
129
129
128
127
127
126
125
125
124
123
124
124
123
124
124
124
125
126
126
126
127
127
128
128
128
128
128
128
128
128
127
127
127
126
126
126
125
125
125
124
123
124
124
123
123
124
123
125
124
124
120
127
132
116
127
134
122
128
133
126
129
132
128
129
130
128
129
128
128
129
127
127
128
127
127
128
128
127
128
129
129
129
129
130
130
130
130
131
130
130
131
130
130
131
130
130
130
130
130
131
129
129
130
129
129
129
128
128
128
127
126
126
126
125
125
124
125
125
124
125
125
125
125
126
125
126
126
126
126
127
127
126
127
126
126
126
125
126
126
125
125
125
124
119
133
121
120
131
121
126
126
124
127
125
126
127
126
127
127
127
128
127
127
128
128
127
128
127
128
128
127
127
127
127
126
127
126
127
126
127
125
126
98
103
132
103
128
138
133
137
133
127
141
136
118
128
140
126
117
133
129
127
128
126
129
137
128
123
138
131
124
127
132
125
125
123
122
127
120
118
124
124
119
123
125
126
126
126
128
130
128
127
130
128
126
125
126
123
122
121
120
118
115
115
114
113
114
116
116
118
120
122
124
124
126
128
128
128
129
129
128
128
127
126
125
124
124
123
122
124
125
124
126
127
129
130
131
132
132
132
133
133
132
133
132
133
133
133
133
135
134
136
137
136
139
140
140
142
142
141
145
141
137
141
135
134
132
127
128
123
120
121
119
117
117
118
118
121
121
124
128
126
131
133
134
135
136
137
138
137
136
136
135
132
132
130
128
127
126
125
125
125
125
127
123
117
127
124
117
121
126
123
119
124
126
124
122
126
129
125
126
131
131
128
130
134
133
131
133
135
132
132
134
135
133
134
136
137
135
136
139
138
138
140
143
143
143
146
146
147
147
148
150
150
147
152
152
150
153
147
147
146
135
134
130
122
120
115
112
111
107
110
110
109
114
116
120
124
128
132
136
136
139
141
140
140
139
138
136
132
129
127
124
120
118
117
115
114
114
115
116
117
119
121
122
125
118
124
126
120
122
121
122
118
117
119
117
114
115
118
115
116
119
121
121
122
126
127
126
128
131
130
129
131
131
129
129
130
130
128
128
131
130
130
132
135
136
136
140
140
142
143
144
147
145
146
149
146
146
150
142
142
140
133
128
123
118
114
108
107
102
102
103
100
106
106
110
115
118
123
126
131
133
136
137
138
139
137
136
133
132
128
125
122
119
117
114
113
112
112
112
113
115
117
119
121
125
123
123
126
125
123
122
124
121
120
119
119
117
115
117
116
116
116
119
119
120
123
124
125
126
128
129
130
130
131
131
130
130
130
130
129
129
130
130
130
131
132
133
134
136
137
139
142
142
143
145
145
145
146
146
146
146
143
142
139
136
133
127
124
120
115
113
109
106
107
105
107
108
111
114
116
120
124
127
129
133
134
137
136
138
137
135
134
132
130
127
125
123
120
118
117
116
115
115
116
117
118
119
122
122
121
122
127
121
118
126
121
119
119
119
119
114
117
119
116
116
121
122
121
124
127
128
127
131
134
132
132
135
134
133
133
135
134
133
134
135
135
135
138
139
139
141
142
141
148
143
146
152
146
151
150
150
149
145
143
137
133
124
120
115
109
105
103
104
98
103
105
103
113
112
119
125
126
136
135
141
142
144
145
143
143
140
138
134
131
127
122
121
116
116
114
112
113
113
115
117
120
122
124
128
129
133
129
124
135
126
120
124
122
119
114
116
118
112
113
119
119
117
122
127
128
128
133
137
134
135
139
137
135
136
137
134
132
133
134
132
132
135
137
136
138
141
142
142
146
149
148
152
153
154
160
150
158
154
141
145
129
113
128
101
94
109
83
103
85
96
108
94
115
113
130
125
136
145
146
151
148
160
149
150
148
143
140
130
128
124
115
113
111
109
105
105
110
109
111
115
121
124
126
132
136
138
139
142
143
141
140
134
119
140
117
108
124
106
112
103
109
111
102
113
115
118
115
126
129
128
131
135
139
131
136
139
133
132
132
132
128
127
130
128
127
128
133
133
133
138
141
142
143
147
149
150
150
156
155
154
157
156
155
136
113
151
110
86
127
79
114
73
92
115
75
110
100
127
109
123
141
138
142
138
163
147
147
151
150
145
132
135
136
118
116
116
115
105
101
112
106
104
106
117
117
114
125
131
132
130
139
143
138
137
141
140
134
128
132
112
118
117
100
113
101
108
107
105
115
112
119
121
128
129
132
136
138
140
137
141
138
135
136
132
131
128
127
128
126
127
127
129
130
131
135
137
138
141
142
144
146
147
149
151
153
147
150
147
109
154
113
98
132
80
128
77
104
111
87
114
98
128
108
125
131
136
137
134
154
143
143
147
144
145
133
136
136
122
125
116
122
110
110
114
111
110
109
118
117
117
122
128
129
129
134
138
137
136
139
139
135
134
135
132
127
126
127
122
121
117
110
128
104
114
121
110
123
112
125
123
119
130
128
130
128
134
133
131
132
133
133
127
131
131
127
128
127
129
126
127
130
129
128
130
132
132
130
133
134
133
133
135
135
134
134
135
134
133
133
134
133
131
133
132
132
132
132
134
131
133
133
124
134
125
124
126
121
126
119
122
123
120
122
121
125
123
125
127
128
128
128
131
130
130
130
131
131
129
129
129
128
126
126
126
124
124
124
124
123
123
124
124
125
125
126
126
127
128
127
129
128
128
129
128
129
128
128
128
127
127
127
126
126
126
126
126
126
126
126
126
127
127
127
128
128
129
129
129
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
130
129
128
128
126
126
125
125
124
124
124
124
124
124
124
125
125
126
127
128
128
129
130
130
130
130
130
130
129
129
129
128
128
127
126
126
126
126
126
125
126
126
126
126
127
127
128
128
128
129
129
129
129
129
129
129
128
128
128
127
127
127
127
127
126
126
126
126
127
127
127
127
127
127
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
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
127
128
127
128
128
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
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
128
128
128
128
128
128
128
128
128
127
128
127
127
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
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
127
127
127
127
127
127
128
128
128
127
128
128
127
128
128
128
128
128
127
128
128
128
128
127
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
127
127
127
128
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
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
127
127
127
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
127
128
128
128
127
128
128
128
127
128
128
128
128
128
128
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
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
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
127
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
127
127
127
127
127
127
128
127
127
128
127
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
128
127
128
128
128
128
128
128
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
127
128
128
128
128
127
127
128
128
127
128
128
128
127
127
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
127
127
127
127
128
128
127
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
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
128
128
127
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
128
128
128
128
128
127
127
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
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
127
127
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
128
127
127
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
127
127
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
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
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
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
127
127
128
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
127
127
128
128
127
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
127
128
128
127
127
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
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
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
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
127
127
127
127
127
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
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
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
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
128
128
128
127
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
128
128
128
128
128
128
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
128
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
128
128
128
128
128
128
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
127
127
127
127
128
127
127
128
128
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
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
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
127
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
127
127
128
127
127
127
127
128
128
128
127
127
127
128
127
127
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
127
127
127
127
127
127
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
127
127
127
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
128
128
128
128
128
128
128
128
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
127
127
127
127
127
128
128
128
128
127
128
127
127
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
127
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
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
127
127
128
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
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
127
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
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
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
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
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
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
127
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
127
128
128
128
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
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
127
127
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
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
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
128
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
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
128
128
127
128
128
128
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
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
128
128
128
127
127
128
127
127
128
128
128
128
128
127
128
128
128
128
127
128
128
127
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
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
127
127
128
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
128
127
128
128
128
127
128
128
128
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
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
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
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
127
127
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
128
127
128
127
127
128
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
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
127
127
128
128
128
128
128
128
128
127
128
127
128
128
128
128
128
128
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
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
127
128
128
128
128
128
128
127
127
127
127
128
128
128
128
128
128
128
128
127
128
128
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
127
127
127
127
127
127
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
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
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
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
126
127
126
127
128
126
127
128
129
128
127
127
128
128
128
128
127
127
127
126
127
127
127
127
126
128
127
128
128
127
128
127
127
128
127
127
127
127
128
128
127
127
127
127
127
128
127
127
129
129
129
128
127
127
127
127
128
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
127
127
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
126
127
127
127
127
127
126
127
127
127
127
127
127
126
126
126
126
127
127
127
127
128
127
127
127
126
126
126
126
127
127
126
126
127
127
131
118
129
123
133
124
131
123
127
128
127
129
126
126
127
127
128
128
126
127
126
127
127
127
127
126
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
128
128
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
126
127
127
127
127
127
126
126
126
129
126
128
126
127
127
127
127
127
128
126
126
126
127
127
127
127
127
126
127
127
128
127
127
128
128
128
128
127
128
128
128
129
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
125
130
126
127
128
132
130
124
128
129
128
131
125
130
129
126
129
127
129
129
127
128
127
127
128
127
129
128
129
129
128
128
128
127
129
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
127
128
128
129
127
127
127
128
126
129
129
128
130
127
127
128
127
128
128
126
128
128
129
128
128
127
127
128
128
127
128
128
128
128
128
127
127
127
128
128
128
127
127
127
128
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
129
128
127
126
126
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
127
127
127
128
128
127
127
128
129
129
127
127
126
126
126
127
126
126
127
128
128
128
126
127
128
127
128
128
127
128
128
128
127
127
127
127
127
128
128
129
128
128
127
127
127
128
129
129
129
128
128
127
128
128
128
127
127
128
128
128
127
126
127
128
128
128
127
126
127
128
128
128
127
126
126
126
126
127
126
127
127
128
128
127
127
126
127
127
128
127
128
128
129
129
128
129
129
128
127
127
129
131
130
129
129
129
131
130
130
131
130
130
131
131
132
132
131
131
130
130
130
129
129
129
128
129
129
130
130
129
129
128
128
128
128
127
127
125
125
125
125
125
125
125
124
125
125
124
124
122
123
124
126
126
125
124
124
124
125
126
126
127
127
128
128
127
127
129
132
135
136
137
135
134
131
131
135
138
140
139
135
133
135
138
139
138
137
136
137
137
138
134
132
131
129
131
133
132
130
124
120
122
124
124
118
112
106
107
114
123
125
125
120
115
114
115
118
122
122
123
124
124
124
124
122
122
122
124
127
128
128
128
127
128
129
132
135
138
140
138
137
136
135
135
135
139
145
148
145
139
136
138
144
152
156
154
155
147
143
149
155
138
111
97
76
73
94
114
136
149
147
138
121
109
100
100
108
120
144
159
162
157
139
119
107
102
98
106
115
122
130
131
119
108
100
99
121
142
149
147
125
107
107
115
127
126
122
122
126
128
127
120
116
121
128
139
142
140
138
137
138
138
138
137
138
141
143
142
140
140
143
140
141
148
155
160
159
156
161
163
153
141
103
67
8
21
100
154
216
204
152
109
70
74
92
100
112
132
163
183
196
177
121
90
60
56
90
117
140
146
136
109
98
90
97
115
125
144
147
137
129
118
107
110
115
126
134
135
133
121
115
117
123
134
144
147
148
149
148
143
138
136
144
154
159
163
162
154
154
159
169
174
190
196
125
0
1
3
72
211
255
255
177
86
51
52
63
67
83
103
162
229
245
216
136
54
26
41
92
138
149
145
128
125
122
112
91
74
88
111
147
167
153
119
100
82
93
119
134
146
135
117
109
106
115
126
131
135
139
143
146
144
137
131
131
138
146
151
148
144
144
146
150
152
158
163
162
169
180
180
157
109
60
9
10
56
137
200
210
184
131
83
63
64
75
90
120
149
187
206
188
155
100
67
64
80
105
120
132
132
130
119
101
90
84
97
125
142
156
145
119
100
99
106
120
131
133
130
123
117
115
115
123
132
136
143
146
148
148
146
141
135
136
146
160
167
164
154
146
152
157
175
191
195
206
166
58
1
2
0
114
228
255
242
154
85
52
46
47
56
88
123
194
243
233
197
116
50
36
50
92
127
130
137
144
132
115
97
70
68
98
121
155
157
143
131
105
98
98
103
120
136
138
131
123
111
112
119
125
135
145
154
157
155
145
135
128
134
152
168
173
171
159
150
158
166
183
193
195
206
120
0
0
2
55
206
255
255
182
98
67
49
46
49
58
91
167
242
255
230
149
60
30
37
74
115
140
135
134
141
130
118
82
63
68
95
137
157
159
147
124
101
96
93
105
122
132
138
134
128
117
114
114
120
134
150
159
162
156
142
136
129
134
151
160
175
173
162
161
153
157
180
185
201
220
170
93
0
2
0
85
225
255
228
167
93
65
51
48
41
53
126
211
255
255
202
105
58
35
52
89
109
127
123
138
155
139
99
72
56
57
109
152
175
179
156
108
92
81
86
115
124
145
146
144
133
116
103
103
114
137
163
170
167
158
144
134
132
137
150
168
178
182
171
156
149
148
169
195
216
226
156
0
0
0
10
173
255
255
190
132
89
84
64
44
23
56
134
219
255
255
187
103
61
51
63
85
95
93
113
156
161
135
109
49
37
93
113
169
179
160
139
116
92
84
94
102
133
153
159
147
129
109
101
105
117
141
156
175
176
165
144
133
133
146
161
171
180
170
170
162
159
158
175
189
213
170
8
2
0
1
144
218
241
185
140
115
102
91
61
30
42
94
175
226
250
209
148
111
76
70
72
71
61
70
113
147
164
142
101
75
77
93
127
141
138
139
132
123
120
110
106
108
117
126
138
139
138
132
121
116
117
131
149
163
166
165
160
154
157
153
152
156
161
162
167
167
161
171
182
195
182
114
12
1
1
24
118
173
173
166
149
134
136
130
103
79
69
75
111
156
183
187
179
158
136
129
115
90
60
52
56
76
110
133
141
147
148
147
144
136
125
115
111
110
117
127
133
137
134
132
130
130
133
135
135
139
145
152
156
161
161
161
162
165
170
175
177
179
180
181
182
184
187
187
189
190
191
189
185
182
178
170
156
148
135
122
111
106
100
89
81
77
71
71
77
80
82
85
85
85
88
93
94
95
94
89
88
89
88
84
84
82
82
88
91
90
91
93
94
99
104
107
110
114
114
115
118
118
117
117
117
116
117
119
118
117
117
115
115
117
118
118
120
120
120
122
123
123
123
124
126
128
130
131
129
129
126
127
129
129
129
128
129
126
125
125
122
117
117
118
115
114
113
112
109
111
114
116
120
124
125
127
130
130
131
131
133
130
130
130
127
124
122
120
118
120
121
121
123
125
126
128
130
130
131
131
132
133
135
136
134
134
132
132
132
133
133
134
133
133
133
133
133
131
132
132
132
136
136
137
136
136
136
137
139
138
139
139
137
137
138
135
132
130
129
126
125
124
122
116
115
115
115
116
119
120
119
121
125
126
129
131
132
133
134
134
132
130
128
125
124
122
121
120
121
120
121
122
123
125
126
128
129
131
132
132
132
132
132
131
132
132
132
132
131
130
130
130
129
128
129
128
130
130
132
131
131
131
132
133
134
136
134
135
134
135
135
133
133
133
132
131
129
128
124
121
119
118
115
114
114
112
112
113
114
115
118
121
124
127
131
132
132
133
131
130
128
126
124
123
122
118
117
117
117
117
119
121
121
125
126
128
129
131
130
131
132
132
132
131
131
130
130
129
129
129
129
129
130
130
129
128
126
129
128
131
131
133
133
134
135
135
135
134
135
135
136
134
136
136
134
131
129
126
125
123
121
118
115
112
111
111
112
112
114
116
120
123
127
129
131
133
135
136
135
134
132
130
126
123
120
119
118
117
115
115
116
117
118
120
122
125
128
130
131
132
132
132
132
133
132
132
132
132
131
130
129
128
127
127
126
127
128
129
129
130
131
133
133
134
135
135
136
136
136
136
135
136
134
136
136
136
135
136
133
129
126
125
123
120
118
115
112
111
112
111
111
112
116
120
124
127
131
133
135
137
138
138
137
136
133
129
126
123
121
118
116
116
115
115
115
116
117
115
116
114
119
124
125
129
133
136
136
135
134
133
132
131
130
128
127
126
125
123
122
122
123
124
125
127
131
132
135
137
139
141
143
144
143
143
142
141
142
141
141
140
140
142
147
152
145
131
110
103
105
104
99
94
97
101
116
121
119
120
126
133
141
143
139
136
138
145
146
144
138
133
132
131
127
111
99
99
99
100
99
96
98
109
124
131
132
134
137
141
141
135
125
121
123
122
119
116
114
116
120
122
121
118
125
129
130
132
133
136
140
142
139
137
142
144
145
146
147
147
149
150
149
151
152
155
159
158
163
171
171
173
176
181
186
190
166
101
86
108
100
63
74
101
130
140
142
139
157
177
149
130
139
155
140
130
137
146
156
151
140
139
147
130
110
103
111
105
98
98
118
131
135
132
143
157
145
125
120
116
114
99
94
103
108
104
104
119
124
122
116
126
131
127
123
126
130
130
123
123
129
127
118
120
125
123
121
121
126
129
128
128
136
139
137
143
149
148
142
145
138
132
135
132
124
125
132
129
130
138
142
149
161
138
109
65
58
97
55
39
104
126
121
118
146
137
129
117
100
120
110
96
104
134
138
123
145
150
142
127
116
104
99
87
78
94
103
102
111
142
143
136
138
137
129
115
102
95
98
94
88
108
115
113
120
126
120
117
114
112
117
116
117
128
136
133
135
139
133
127
125
120
120
119
121
124
131
132
132
138
140
138
140
143
144
145
147
146
143
149
145
134
139
139
133
132
139
137
141
143
146
151
153
155
145
132
121
78
53
111
88
57
119
140
131
132
153
139
134
126
108
126
117
109
120
147
139
135
151
151
134
124
117
105
98
93
93
111
120
123
138
156
154
150
139
149
121
107
110
112
101
99
111
119
118
119
121
128
119
112
113
119
113
118
126
135
134
138
140
138
130
123
122
123
118
118
126
131
132
136
141
141
140
140
141
140
139
138
142
142
138
140
142
144
140
138
144
144
134
138
146
145
135
151
155
148
147
152
153
152
142
127
107
61
68
116
56
71
131
143
129
139
159
141
139
122
114
131
114
111
125
148
134
135
149
147
128
121
114
107
100
93
102
120
126
134
145
159
153
149
147
140
126
113
97
102
115
94
103
132
127
121
130
134
121
119
114
115
117
115
117
130
133
131
137
137
128
120
120
118
115
117
124
129
132
135
140
142
140
138
140
140
137
135
137
136
132
131
134
134
129
134
143
140
135
141
146
144
137
140
154
148
138
148
154
146
150
164
155
136
120
48
79
116
53
62
148
139
123
145
171
137
140
117
117
125
111
99
130
145
132
134
160
149
133
122
120
104
99
89
104
117
120
128
150
159
154
149
150
139
129
114
110
109
106
107
119
128
108
129
142
115
122
136
120
113
120
122
116
125
123
129
133
124
119
128
120
109
115
121
118
121
128
132
134
134
135
141
138
135
138
141
137
135
137
135
131
129
131
129
126
131
137
137
138
140
143
147
141
138
146
141
140
148
152
155
159
152
145
99
70
86
103
58
73
133
139
129
143
159
148
131
118
121
124
106
111
130
141
132
144
155
149
130
123
120
107
95
96
105
116
121
135
148
155
150
149
149
137
122
115
113
111
108
114
122
129
130
134
136
106
126
129
102
108
136
121
120
134
139
127
130
121
117
116
106
103
121
120
118
129
138
129
131
134
131
130
131
129
137
138
136
140
143
136
131
132
126
126
126
124
130
140
138
137
145
146
135
142
149
144
148
161
154
143
145
109
92
82
109
80
80
123
135
131
134
149
140
132
124
120
124
117
114
129
140
136
137
148
144
130
120
119
109
100
100
108
117
122
134
143
150
147
146
145
137
125
118
117
114
112
117
122
127
128
131
133
131
127
125
125
123
121
125
128
132
128
138
138
131
111
130
121
101
108
121
111
107
122
128
126
129
133
136
133
128
130
133
126
122
131
132
128
126
133
131
127
126
130
127
124
128
134
130
132
134
138
132
135
135
136
133
127
129
130
126
125
132
131
129
132
138
135
135
135
133
129
128
123
122
121
121
121
125
124
124
126
125
123
124
124
122
123
125
126
127
129
130
131
131
129
127
125
123
120
120
120
121
123
124
126
128
130
130
129
128
128
128
126
125
126
127
125
126
123
125
126
124
121
124
126
125
125
127
130
130
129
131
135
130
128
133
132
127
128
131
127
124
130
129
127
127
130
130
127
129
131
130
130
131
134
133
129
131
133
128
126
133
132
126
130
137
128
119
125
126
116
119
123
125
123
125
128
131
127
125
128
129
123
123
127
126
123
126
129
128
126
127
128
126
123
122
123
123
121
124
127
127
127
129
130
129
128
127
128
127
125
126
127
127
127
128
128
128
128
128
128
127
127
128
127
128
129
129
129
129
129
128
128
128
125
126
127
125
127
128
127
126
128
127
127
127
128
127
127
128
127
127
128
127
127
127
127
125
127
127
126
126
127
126
127
127
127
127
128
127
128
128
127
127
128
128
127
127
127
128
127
126
128
128
126
127
129
128
127
128
128
127
127
127
127
127
127
127
127
127
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
127
128
127
127
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
127
127
128
128
127
128
128
128
127
127
128
128
127
127
128
128
127
128
128
127
127
128
128
127
127
128
127
127
127
128
128
128
128
127
128
127
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
127
127
128
127
128
128
127
128
127
127
128
128
127
128
128
128
127
127
127
127
127
127
128
127
127
128
128
128
127
128
128
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
128
128
127
127
128
128
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
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
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
128
128
127
127
127
127
128
127
127
127
128
127
127
128
128
127
127
128
128
127
127
127
128
127
127
127
127
127
127
128
128
127
128
128
127
127
128
127
127
128
128
128
127
128
128
127
127
128
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
128
127
127
128
128
127
127
128
128
128
127
128
128
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
129
127
127
128
127
127
127
128
127
127
128
128
127
128
128
128
127
128
128
128
127
127
128
127
127
127
128
127
127
128
128
127
127
128
128
128
128
127
128
128
127
128
128
127
127
128
127
127
128
127
127
127
128
127
128
128
127
128
128
127
127
128
127
127
128
127
127
128
128
127
128
128
127
127
128
127
127
128
127
128
128
127
128
128
127
128
128
127
127
129
128
127
128
129
127
127
129
128
127
129
129
128
129
128
128
128
128
127
128
128
127
128
129
128
127
129
129
127
128
129
127
127
129
127
128
129
128
128
128
128
128
128
127
127
129
127
128
129
128
128
128
128
128
128
127
128
128
127
128
128
128
127
129
128
126
128
128
127
128
128
127
129
129
126
128
129
127
127
129
127
126
128
128
127
128
129
127
127
128
128
127
128
129
127
127
128
128
127
128
128
127
128
128
127
127
129
127
127
129
128
127
129
129
127
128
129
127
127
127
127
128
128
127
128
129
128
126
129
128
126
128
128
128
128
128
127
129
129
126
127
129
128
127
128
129
128
127
127
129
128
126
127
130
126
126
130
129
126
127
128
127
127
127
127
128
129
128
128
129
127
125
127
128
125
127
129
127
128
129
127
126
128
128
125
129
129
126
128
130
126
128
130
127
126
130
128
125
129
128
125
128
129
126
126
129
127
126
127
128
127
127
128
127
128
128
127
127
129
127
125
128
128
126
127
129
126
127
128
127
127
127
126
127
128
126
128
129
126
127
129
127
125
129
127
126
129
129
126
127
129
126
127
128
127
127
127
128
129
127
128
129
128
127
128
128
127
128
127
127
128
127
126
128
129
127
127
129
128
126
127
129
127
127
128
128
127
128
128
127
128
128
127
129
128
126
128
129
127
127
129
128
127
127
127
127
127
127
128
128
127
127
129
127
126
127
129
128
127
128
129
127
126
128
128
126
127
128
128
127
128
128
128
128
127
127
129
128
127
127
129
129
126
127
130
127
127
129
128
126
128
128
127
128
129
127
127
129
128
126
127
128
127
126
128
129
127
126
128
129
126
126
129
129
126
127
129
128
126
128
129
127
127
129
128
126
128
127
127
128
128
127
129
128
126
128
127
126
128
128
127
127
128
128
126
127
127
128
126
127
129
128
127
128
128
127
127
128
127
128
128
127
128
128
127
126
128
127
126
128
128
127
128
128
127
128
128
127
128
129
127
127
128
128
126
127
128
128
127
127
129
128
127
128
129
128
127
129
129
128
128
128
127
126
127
128
128
128
128
128
127
127
127
126
128
128
128
129
128
127
128
128
126
127
129
127
128
129
128
128
128
128
127
127
126
127
127
126
128
128
127
128
129
127
127
129
126
126
129
128
128
129
128
126
129
127
125
128
129
126
127
129
126
127
129
128
127
129
129
127
128
127
127
129
128
128
128
128
127
128
128
127
128
127
127
128
128
128
128
128
128
128
127
127
127
126
129
129
127
129
129
127
126
128
127
126
128
129
128
128
128
128
127
126
127
128
127
126
128
129
127
127
129
128
127
127
129
127
128
129
128
128
128
127
127
127
127
128
128
128
129
128
127
128
128
126
127
128
127
128
128
127
127
127
126
126
128
127
126
127
128
127
128
127
127
127
127
127
127
127
127
127
127
126
126
127
128
128
127
128
128
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
128
128
127
128
129
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
128
127
127
128
128
128
128
128
127
127
128
128
128
127
126
127
127
127
127
127
128
127
127
127
127
127
127
127
128
129
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
127
127
128
127
126
127
128
127
127
128
127
127
127
127
127
127
127
128
128
127
128
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
128
128
127
127
128
128
127
127
128
128
127
127
128
128
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
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
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
127
128
128
127
127
128
128
128
128
128
128
127
127
128
128
127
127
127
127
127
127
128
127
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
126
126
126
126
127
127
126
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
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
127
127
127
127
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
126
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
128
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
128
127
127
127
127
127
127
128
127
128
127
127
128
127
128
128
127
127
127
128
128
128
127
127
128
128
127
128
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
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
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
128
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
126
127
127
127
126
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
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
128
129
128
128
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
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
128
128
128
129
129
129
129
128
128
128
128
128
128
128
128
128
128
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
126
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
126
126
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
127
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
129
129
129
129
129
129
129
128
128
129
129
128
129
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
128
128
128
129
129
129
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
128
128
127
127
128
128
127
127
127
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
128
128
127
127
127
127
127
127
127
128
127
128
127
127
128
127
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
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
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
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
128
127
127
128
127
127
128
127
128
127
128
128
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
130
129
129
130
130
130
130
130
130
130
130
130
130
130
129
129
129
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
125
126
125
125
126
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
129
130
130
130
130
130
130
129
130
130
129
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
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
129
129
128
128
128
129
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
128
129
129
129
129
129
129
129
129
129
128
129
129
128
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
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
129
128
129
129
129
129
129
129
128
128
128
128
128
128
129
129
129
129
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
127
127
127
127
126
127
127
127
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
125
126
126
126
125
126
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
127
127
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
128
128
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
127
127
128
128
127
127
127
127
128
128
128
127
128
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
128
127
127
127
127
128
128
127
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
127
128
128
128
127
128
128
128
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
128
128
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
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
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
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
127
127
127
128
128
128
127
128
127
127
128
128
128
127
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
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
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
128
128
128
128
127
128
127
127
127
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
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
129
129
128
129
129
129
128
128
128
129
128
129
128
129
129
129
128
128
128
129
129
128
128
128
129
129
129
129
129
129
129
129
129
129
129
128
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
127
128
127
127
127
127
128
128
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
127
128
127
127
127
127
128
128
128
128
128
128
127
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
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
127
127
127
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
127
127
127
128
128
128
127
127
127
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
128
128
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
127
127
128
127
128
127
127
128
128
128
127
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
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
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
127
127
128
128
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
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
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
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
127
128
127
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
126
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
127
127
127
127
127
127
127
127
127
128
128
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
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
127
128
127
127
127
128
128
128
128
128
128
128
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
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
128
128
128
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
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
127
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
127
127
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
128
128
128
127
127
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
128
127
127
127
127
127
127
127
127
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
128
128
128
128
127
128
128
128
128
128
127
128
128
128
127
127
127
127
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
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
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
127
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
128
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
127
128
128
127
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
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
128
128
127
127
127
127
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
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
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
128
127
127
128
128
127
127
128
128
128
127
127
127
127
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
127
127
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
127
127
127
127
128
127
127
127
128
128
127
127
128
128
128
128
127
127
128
128
128
127
128
128
127
127
127
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
127
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
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
127
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
127
127
127
127
127
128
127
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
128
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
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
128
128
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
127
128
128
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
128
129
129
128
128
126
127
129
128
127
125
127
127
129
128
127
127
127
128
129
128
126
126
127
128
128
128
127
127
128
129
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
127
127
127
127
127
127
128
128
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
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
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
127
127
127
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
127
127
128
128
127
127
128
128
128
128
127
128
128
128
128
127
127
127
128
128
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
127
127
128
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
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
128
128
127
127
127
127
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
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
128
128
128
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
128
128
127
127
127
127
127
128
127
128
128
127
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
128
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
127
127
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
128
128
127
128
128
128
128
128
127
127
128
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
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
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
128
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
127
127
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
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
127
127
127
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
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
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
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
127
127
127
127
127
127
127
128
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
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
128
128
128
127
127
128
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
128
127
127
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
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
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
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
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
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
127
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
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
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
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
127
127
128
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
127
127
127
128
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
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
128
125
130
123
135
92
119
126
119
123
123
125
130
129
127
125
125
124
127
125
124
124
123
120
122
123
123
122
126
109
114
119
121
130
127
127
125
130
129
127
123
116
120
122
123
106
109
107
113
116
120
125
131
127
129
129
130
129
129
123
119
120
117
118
121
118
121
125
130
134
139
136
137
141
140
139
138
133
129
130
129
130
131
128
128
132
134
136
139
136
135
137
137
137
135
131
129
131
130
129
129
127
131
134
135
136
138
138
137
137
136
133
132
131
130
131
130
131
133
134
135
136
136
137
138
140
139
140
140
139
140
139
137
136
136
136
137
138
138
139
139
140
140
140
141
139
139
138
137
139
140
141
142
141
140
139
140
140
139
139
138
139
140
140
139
138
137
138
138
136
135
134
133
134
133
133
133
133
133
132
131
130
129
129
129
128
127
125
124
124
124
124
123
122
123
123
123
123
121
119
118
119
118
120
119
117
117
117
117
118
118
116
116
117
116
117
117
116
115
115
115
115
117
118
117
118
118
117
118
119
119
120
120
121
122
122
124
124
124
124
123
123
125
126
126
126
125
123
124
123
124
127
127
127
126
125
125
126
126
124
123
123
120
121
121
120
123
122
121
120
121
125
126
127
125
122
122
121
123
124
123
122
118
117
115
114
114
112
111
109
107
108
111
114
115
116
116
116
117
117
118
119
119
119
120
121
123
124
126
126
127
127
127
129
130
132
134
136
137
136
136
135
135
137
140
140
142
142
141
141
142
141
141
142
139
138
140
142
143
145
145
144
144
144
139
133
126
117
111
112
111
110
109
107
105
103
106
110
118
127
134
137
137
135
129
120
113
103
95
92
86
86
94
104
119
133
142
143
138
129
118
113
111
114
122
127
129
129
128
127
127
130
132
135
137
137
139
140
141
142
143
142
141
141
142
144
150
154
157
159
156
155
153
151
151
150
153
156
159
164
162
158
150
124
98
74
46
41
47
64
94
120
144
157
164
165
160
161
157
151
144
129
112
95
82
77
81
94
110
123
129
130
123
113
110
110
116
125
130
128
121
111
101
98
104
113
126
136
139
137
132
127
124
127
130
132
131
127
122
122
124
131
138
145
148
148
146
144
143
143
146
149
151
151
149
145
141
139
140
145
151
159
164
168
165
160
150
128
103
79
56
44
46
60
81
110
134
151
161
164
160
157
154
151
147
141
130
116
102
88
81
79
84
94
101
112
117
123
128
133
138
139
137
131
121
112
105
104
109
118
128
136
141
140
137
133
131
131
133
136
139
140
138
136
132
131
131
134
137
141
145
146
149
149
149
147
145
143
140
138
136
137
140
145
149
153
154
151
146
136
123
109
95
85
80
79
87
96
110
122
132
141
145
147
148
148
147
145
141
136
128
121
113
106
98
97
95
94
100
103
112
124
134
143
148
147
140
131
122
114
114
117
124
133
139
142
141
137
133
129
129
130
133
137
140
141
140
137
133
130
128
128
131
134
138
140
141
140
137
134
131
129
129
131
134
137
139
139
137
135
132
130
130
130
130
130
128
126
121
116
112
109
110
112
115
119
123
125
127
128
129
129
131
133
134
135
135
132
127
123
117
112
109
108
110
115
121
128
135
139
140
138
133
128
124
122
123
127
131
134
136
134
131
126
122
120
121
125
131
135
138
137
134
129
125
122
123
125
130
134
136
137
135
132
129
127
127
128
130
132
133
134
133
131
128
127
126
127
129
130
130
130
129
127
124
123
122
122
124
126
128
129
129
128
127
125
124
123
123
124
125
127
127
127
127
126
126
125
125
125
126
128
129
130
130
129
128
128
127
126
126
127
128
129
130
130
130
129
128
127
127
127
128
128
129
130
130
129
129
128
127
127
128
128
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
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
128
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
126
126
126
126
126
126
127
127
127
126
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
127
126
126
127
127
127
126
126
126
126
126
126
126
127
127
127
127
126
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
127
127
127
127
127
127
127
127
126
127
126
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
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
129
129
128
127
127
127
127
127
128
128
128
129
128
128
127
127
125
127
127
128
128
128
127
127
127
127
126
127
126
126
125
125
123
123
121
120
117
118
117
111
116
117
131
141
154
152
145
132
115
106
105
109
122
135
145
145
142
135
124
119
119
122
130
136
139
136
133
124
117
118
120
125
135
137
141
140
138
132
131
124
125
122
123
120
120
116
119
124
124
127
128
121
125
123
130
131
139
135
134
130
124
120
122
122
128
131
136
135
136
133
129
129
129
129
134
133
134
131
130
126
125
125
125
127
131
132
134
132
130
126
128
128
129
132
132
130
128
126
124
125
128
131
134
134
134
132
130
128
129
129
131
132
132
131
129
129
129
131
132
132
131
131
130
130
130
132
133
134
134
133
132
130
129
130
132
134
135
136
135
134
132
131
133
134
136
137
137
136
135
133
133
134
135
135
135
135
134
134
135
136
136
136
136
135
134
133
132
132
131
132
131
131
130
130
131
131
131
130
130
129
128
126
125
126
125
126
129
129
130
129
128
127
127
128
129
133
135
137
139
138
138
136
134
133
133
134
134
136
136
136
137
137
138
138
139
138
139
138
136
134
132
130
129
130
132
135
136
136
131
119
103
85
68
59
59
68
83
102
117
125
129
125
120
114
110
108
108
109
110
111
113
114
117
119
120
124
127
130
134
138
141
143
143
140
138
135
134
137
140
146
154
163
174
183
192
200
205
191
157
118
62
10
0
4
0
16
66
111
151
176
189
197
199
189
183
165
136
109
75
46
33
32
37
58
86
99
119
133
133
144
148
142
135
120
101
85
82
82
91
111
119
130
138
137
142
149
156
160
163
157
146
142
136
138
150
160
174
187
194
200
212
228
205
150
94
8
0
5
0
6
82
141
170
190
193
186
198
211
205
196
162
104
55
21
6
23
62
97
127
144
140
141
147
147
151
144
120
92
72
61
66
89
108
123
132
129
128
135
143
154
162
160
150
141
134
131
135
139
143
148
155
166
185
205
220
234
239
247
223
139
66
1
0
4
1
7
86
143
165
184
208
219
231
252
228
184
139
70
24
13
18
38
73
100
107
123
146
154
179
194
172
145
109
67
49
59
70
89
112
117
120
137
147
158
172
166
151
144
136
135
145
152
144
140
136
134
154
182
209
232
243
241
245
234
160
85
13
0
4
2
0
48
120
149
171
204
231
241
255
241
189
136
84
38
21
31
38
54
77
95
113
143
175
186
195
185
147
113
85
58
53
62
70
80
100
119
136
160
171
165
161
150
137
140
145
145
143
140
128
125
135
151
168
193
213
221
230
238
246
241
176
89
8
0
5
0
7
55
95
127
152
186
233
255
255
242
190
131
85
62
50
46
44
42
45
70
105
138
176
189
180
166
144
123
106
89
75
65
62
74
92
117
140
151
155
154
152
155
158
160
157
147
139
133
130
134
142
150
161
177
197
214
226
236
245
232
164
81
15
0
5
0
18
50
63
92
135
179
221
252
248
219
181
151
126
107
90
69
42
27
37
64
94
118
138
147
148
153
159
156
138
111
90
82
80
88
101
109
114
120
131
144
155
161
165
162
156
152
150
148
143
136
133
136
144
157
173
184
189
191
196
203
190
144
91
57
46
52
57
59
65
72
80
98
124
153
173
174
164
155
153
155
154
142
124
107
97
97
103
106
102
96
92
98
114
131
139
136
127
120
124
131
135
133
127
122
124
129
134
135
132
127
125
126
129
131
130
127
124
124
128
132
134
134
133
132
134
137
139
141
141
141
142
144
144
139
131
122
116
114
115
117
115
111
108
109
112
116
117
116
115
117
122
127
129
128
127
128
131
132
130
125
123
124
126
125
121
117
116
119
123
125
123
122
121
123
126
127
126
126
126
127
130
132
132
131
130
130
131
132
133
133
131
131
132
134
135
136
137
138
141
145
148
146
140
132
124
121
120
121
120
115
108
103
105
110
113
113
112
113
117
122
127
131
134
136
136
134
133
135
135
133
128
123
121
122
121
117
114
113
116
120
122
121
120
121
123
126
129
131
132
132
132
133
134
135
135
133
131
130
131
133
133
131
131
131
133
136
138
139
141
144
148
153
153
146
136
125
119
118
118
116
110
103
99
100
105
110
114
118
120
122
124
130
140
147
144
134
127
129
134
131
121
114
113
116
114
106
101
99
92
89
98
115
124
123
124
135
146
142
136
136
138
134
126
123
128
131
127
125
131
140
147
150
149
154
163
168
169
171
176
180
188
193
170
126
87
58
41
45
53
60
67
69
83
117
149
172
186
182
174
168
161
160
153
130
104
84
72
75
82
83
82
85
95
114
130
139
144
139
129
126
125
124
119
109
102
101
105
117
131
137
139
139
142
150
154
155
151
144
140
141
145
151
155
160
167
175
186
202
215
228
226
174
107
67
41
19
14
25
32
38
61
109
152
183
208
217
204
188
181
170
150
122
95
67
49
54
72
89
104
115
117
125
139
156
162
149
125
106
91
85
93
101
105
106
112
118
127
136
143
142
136
134
132
133
137
137
131
125
125
133
144
157
167
170
173
179
185
191
195
196
196
204
195
142
90
53
20
13
23
38
58
76
101
136
163
190
208
198
182
160
136
119
109
97
87
79
79
90
106
127
142
141
131
124
117
116
115
106
97
93
92
99
116
131
138
139
135
127
121
122
120
117
114
111
109
116
126
134
139
141
143
147
154
162
167
167
164
159
156
160
166
172
179
185
194
201
168
122
87
46
32
35
39
59
80
99
125
151
170
183
182
168
152
130
116
106
101
99
99
103
112
125
138
146
147
137
117
101
91
85
84
83
87
96
109
126
141
150
150
142
130
118
111
108
109
111
112
113
116
123
133
142
148
150
153
158
163
167
168
164
158
155
157
163
173
180
188
197
204
168
121
80
33
9
7
37
59
96
127
140
164
176
181
181
169
146
120
101
89
88
99
108
120
131
138
146
150
146
129
110
90
74
75
77
85
102
115
127
142
151
154
151
140
122
108
98
95
102
107
112
115
118
122
130
139
144
148
150
151
152
154
153
150
148
147
147
153
160
167
176
182
188
200
208
175
130
90
34
20
15
28
67
89
123
141
157
169
170
171
155
136
117
97
95
98
108
124
134
145
145
147
143
130
117
88
73
62
61
77
88
110
129
143
157
159
157
146
131
115
100
96
96
104
114
118
121
121
126
132
139
146
149
151
154
156
159
159
156
151
148
151
157
165
175
181
184
186
188
164
124
89
54
14
13
41
58
109
138
150
163
164
159
156
149
131
114
102
92
98
117
130
148
156
152
143
134
123
105
89
69
60
63
77
95
120
140
153
160
157
146
135
121
107
100
96
99
107
117
124
128
130
129
134
139
142
147
148
149
151
153
153
152
151
150
152
158
165
172
178
179
177
179
178
145
109
78
54
45
37
63
79
101
130
139
151
154
149
142
132
120
114
112
118
123
136
144
149
153
145
134
123
105
84
71
65
65
81
96
109
131
145
154
159
152
138
125
113
103
103
105
109
116
122
124
127
130
130
135
137
138
144
147
150
155
156
153
152
151
152
157
162
167
170
171
171
173
176
179
154
112
83
61
66
66
70
85
90
108
127
142
149
145
133
123
117
122
126
135
139
140
144
148
152
149
139
120
100
78
69
69
78
88
101
113
123
138
149
152
148
136
122
116
112
110
110
112
114
119
125
127
129
129
129
131
134
137
142
146
148
151
152
153
155
155
155
156
158
161
165
168
166
166
167
174
162
124
97
79
80
83
77
77
80
92
112
131
135
132
123
122
125
134
139
139
139
140
147
152
152
143
129
112
100
94
82
73
76
80
95
115
124
129
139
141
142
141
131
121
116
113
111
115
117
120
124
124
124
125
125
125
129
131
135
141
146
150
153
154
153
154
155
155
157
158
158
160
164
163
166
170
174
151
116
97
88
93
83
73
70
80
99
117
122
117
116
120
133
137
139
134
137
145
155
157
151
141
130
125
116
106
91
75
71
83
91
100
107
111
126
141
143
139
132
126
126
125
120
115
116
119
125
126
121
118
120
123
125
126
126
132
141
147
149
150
151
155
157
156
153
153
155
156
157
155
155
159
163
166
156
127
111
110
112
88
72
74
87
99
103
101
102
117
126
133
128
130
135
148
152
150
147
146
148
143
133
119
112
106
96
86
87
88
93
97
104
115
126
131
134
133
134
134
131
127
125
128
129
131
127
126
125
125
123
121
122
123
129
132
136
139
145
148
150
151
151
152
151
151
150
150
150
150
149
148
148
150
149
135
126
124
121
104
96
95
96
95
95
97
101
108
113
117
121
129
133
138
140
142
143
144
141
138
135
131
127
123
118
113
113
112
107
107
110
111
113
116
116
119
121
122
124
127
129
131
133
133
133
133
131
130
130
129
127
127
126
126
127
128
129
130
131
133
134
134
136
138
139
141
143
144
146
148
148
150
151
151
145
139
137
132
119
113
110
101
99
100
93
94
102
104
107
116
120
126
134
135
137
144
144
142
144
142
139
139
133
126
127
122
113
111
109
106
107
106
104
109
112
112
117
121
125
131
134
134
138
139
136
136
136
133
132
129
127
128
127
125
125
126
126
127
127
128
131
133
135
138
140
141
143
145
147
149
149
149
151
150
143
137
134
129
121
113
107
103
100
96
94
97
102
104
107
114
121
126
131
135
140
143
142
142
144
142
139
135
131
128
123
117
113
112
110
108
107
107
108
111
112
116
121
125
128
132
134
136
137
137
137
136
134
133
132
130
129
128
127
127
126
126
127
129
130
131
133
136
137
139
141
143
145
146
147
149
149
150
150
145
139
136
132
123
115
110
106
103
99
95
98
103
103
107
115
120
125
130
134
140
142
142
143
145
143
140
138
134
130
126
120
114
112
110
108
108
106
106
110
112
114
118
124
128
131
134
137
139
139
139
139
138
135
132
131
130
128
128
127
127
127
127
129
130
131
133
136
137
139
141
143
145
146
147
148
149
151
148
141
136
135
128
118
114
109
104
100
96
97
101
101
104
112
117
121
127
132
137
141
141
142
144
143
140
139
137
134
128
123
122
116
109
107
108
106
105
105
108
112
113
117
124
129
130
134
138
139
139
138
138
137
134
130
130
128
126
126
126
126
125
126
128
129
130
132
135
137
138
140
142
143
144
145
146
147
147
148
145
138
134
132
125
117
112
109
106
100
97
100
103
103
106
113
118
122
126
132
137
139
139
141
142
141
138
137
136
130
126
124
120
114
109
109
108
106
105
107
110
112
114
119
125
127
130
134
138
136
137
138
137
135
133
131
129
128
126
126
125
125
126
127
129
130
131
135
137
139
141
143
144
145
146
147
148
148
149
147
144
141
133
128
123
118
107
106
103
100
96
100
101
105
107
115
121
124
129
135
140
141
143
144
144
141
140
137
133
127
123
117
113
109
105
105
106
105
106
109
112
115
119
124
129
132
135
138
140
140
139
139
137
134
132
130
127
126
125
125
125
126
127
129
131
133
135
138
140
141
143
144
145
146
146
146
146
146
147
145
141
140
131
127
122
117
107
105
104
100
97
99
103
104
108
114
122
123
129
134
140
140
143
144
144
140
138
137
132
127
123
121
114
111
108
107
103
104
108
108
110
115
119
121
125
130
134
136
139
142
141
140
138
137
134
131
129
127
125
125
126
126
127
129
132
134
136
138
140
143
144
146
146
145
146
150
147
148
149
150
144
144
141
130
129
121
119
107
108
105
101
99
102
106
107
112
119
126
127
134
139
144
144
147
147
145
143
140
138
133
129
124
121
115
110
109
108
105
106
109
111
112
115
121
122
127
132
136
137
139
143
142
141
139
138
134
131
129
127
125
124
126
126
127
129
132
134
136
139
141
142
144
146
146
147
146
147
146
146
147
148
143
140
142
130
127
121
119
109
103
106
99
98
98
103
105
108
114
123
125
131
137
142
143
145
147
145
141
139
137
131
127
122
118
112
108
105
102
104
103
104
107
110
112
116
120
124
128
131
135
136
138
139
139
137
136
134
130
127
125
124
122
122
123
125
126
128
131
134
136
140
141
143
145
145
147
145
144
146
143
145
145
146
137
136
139
123
124
117
112
110
98
104
100
95
99
102
106
108
116
123
126
132
137
144
143
145
148
144
141
137
137
129
125
122
116
110
105
105
100
99
102
104
106
110
115
118
120
126
129
132
134
137
139
137
138
138
135
132
130
128
124
123
123
123
123
125
128
130
132
136
139
140
143
146
146
147
148
147
145
146
145
143
143
145
144
132
135
136
118
121
117
109
109
102
102
102
100
102
108
113
112
122
129
129
135
141
144
144
145
145
142
139
135
132
127
122
119
115
109
104
103
103
100
101
109
111
111
119
125
124
127
133
133
133
136
138
136
134
134
133
129
127
127
125
122
123
126
126
127
131
134
134
138
142
143
143
146
148
146
147
148
146
145
145
143
143
142
145
141
127
136
129
113
116
114
106
100
103
103
98
103
106
110
114
118
127
131
134
137
143
143
141
144
141
137
133
129
126
120
116
114
110
106
103
104
103
101
106
110
113
116
122
126
127
130
132
133
131
132
132
130
129
128
127
125
124
124
124
124
125
127
130
131
134
138
140
140
143
145
145
145
146
147
146
144
145
145
143
143
145
146
144
148
142
129
135
129
115
114
113
106
101
104
103
100
107
110
113
119
125
130
133
139
141
142
143
144
142
138
136
132
126
123
120
115
112
111
108
105
104
103
107
109
109
114
122
125
124
131
135
131
131
133
132
128
127
128
125
124
123
123
124
125
126
127
131
133
135
139
142
143
144
145
147
146
145
147
147
145
144
147
145
144
147
149
148
147
153
151
133
131
133
120
107
106
107
99
95
101
101
104
110
116
121
128
135
136
139
145
145
141
141
142
136
130
128
125
119
115
114
112
109
110
107
106
109
105
107
115
118
116
121
130
130
127
131
132
129
126
125
122
120
121
118
118
121
123
123
125
131
133
134
138
141
142
143
144
144
142
143
143
141
141
143
142
142
146
145
147
150
152
154
155
158
153
136
129
124
111
100
96
95
88
92
100
99
104
115
123
126
133
142
142
142
145
144
139
137
136
130
125
124
120
115
114
114
113
111
113
113
110
112
112
109
112
118
121
119
122
127
128
127
125
122
121
121
119
115
114
117
119
120
123
126
130
134
138
139
141
143
143
142
141
139
138
137
137
137
137
140
143
146
149
151
152
155
157
159
162
163
162
158
142
122
112
101
93
87
84
83
87
100
108
113
121
132
141
145
149
148
145
144
142
135
128
125
123
120
118
115
113
114
115
116
116
117
119
120
122
120
119
120
118
118
119
124
124
121
120
118
116
115
112
110
109
113
115
118
121
125
129
134
138
140
140
142
141
139
137
134
131
129
129
129
130
132
135
140
144
148
153
158
160
158
159
160
160
161
162
162
155
136
114
97
87
82
79
78
81
90
102
116
127
134
140
146
151
153
149
142
134
129
124
120
116
113
112
113
116
118
119
120
122
124
125
123
125
123
123
125
122
121
118
116
117
117
120
119
116
113
109
109
107
108
111
114
120
124
129
133
135
138
138
140
139
137
134
131
130
128
126
126
126
128
131
136
141
145
151
154
158
159
162
161
157
156
154
154
157
158
160
157
137
110
90
83
78
79
84
86
91
105
122
135
144
149
147
146
148
144
136
126
118
110
108
111
113
114
116
119
122
127
132
131
129
127
124
123
124
123
122
118
112
116
112
114
117
118
121
119
120
114
110
108
104
106
111
117
123
128
133
134
137
138
136
135
131
128
126
125
125
123
124
125
128
132
135
139
142
146
149
152
155
157
157
156
154
151
151
153
153
154
156
159
161
146
123
99
82
75
78
86
89
96
104
115
130
145
153
153
148
142
136
132
128
120
112
106
105
109
117
124
128
129
130
131
133
135
132
126
120
116
115
116
119
119
116
115
112
115
124
124
125
123
119
114
112
110
104
104
108
113
123
131
135
136
137
135
132
132
129
127
125
123
123
123
126
127
129
132
133
138
142
146
149
150
151
150
152
152
150
149
150
149
150
152
152
157
165
169
154
134
114
91
84
82
83
81
85
97
107
125
141
148
150
149
147
141
138
133
121
113
107
105
108
115
121
123
127
131
133
138
139
135
129
123
119
117
117
116
115
115
113
115
114
121
126
124
127
125
122
120
117
112
105
105
106
111
122
129
133
136
137
137
136
135
131
127
125
122
123
123
125
126
128
132
133
138
142
144
146
148
148
148
149
149
149
149
149
149
150
151
153
154
156
158
165
159
138
125
105
94
90
86
85
81
92
104
117
133
139
142
143
146
147
142
138
126
116
111
110
111
112
115
117
120
128
133
137
137
135
131
128
128
124
120
117
111
109
111
111
108
115
122
121
126
130
126
124
123
117
111
108
106
106
115
122
125
130
134
135
135
136
132
129
128
127
126
126
126
126
127
130
132
134
137
139
143
147
149
151
152
151
151
151
149
147
147
151
150
148
150
152
156
161
146
128
123
108
101
98
90
87
86
100
111
118
128
130
135
143
147
146
138
132
127
122
121
117
111
109
112
117
121
124
126
127
131
135
135
132
130
127
125
124
122
112
108
108
101
111
118
114
116
123
127
126
125
123
115
115
117
112
113
118
121
124
128
131
130
131
134
132
130
131
129
129
129
129
128
129
132
132
133
136
138
141
145
148
149
150
151
151
152
151
150
150
147
146
149
150
151
152
147
133
129
128
113
106
102
93
93
99
102
104
110
119
128
130
136
140
138
140
141
135
129
127
125
122
118
116
115
114
117
119
119
120
125
128
129
130
131
131
131
131
129
121
117
117
114
116
118
112
113
123
125
121
122
125
129
131
128
127
129
131
130
130
128
128
130
132
131
130
129
130
131
130
127
127
129
129
128
128
128
128
130
131
130
129
130
133
132
131
130
132
133
131
130
130
132
132
131
132
132
133
133
134
133
132
132
132
130
128
126
125
123
122
121
120
120
120
120
120
120
121
122
123
123
124
126
127
127
128
128
129
129
129
128
128
128
127
127
127
126
126
126
125
124
124
123
121
122
124
122
122
123
124
124
124
124
124
125
125
125
126
127
127
128
129
129
129
130
131
130
130
130
129
130
129
128
128
128
128
127
127
127
128
128
129
129
130
130
130
131
131
132
132
132
131
131
132
132
131
132
132
131
132
132
132
132
132
132
131
130
130
129
129
128
127
127
126
125
125
124
123
124
124
123
124
124
124
125
126
126
126
127
127
128
128
128
128
128
128
128
128
127
127
127
126
126
126
125
125
125
124
123
124
124
123
123
124
123
125
124
124
120
127
132
116
127
134
122
128
133
126
129
132
128
129
130
128
129
128
128
129
127
127
128
127
127
128
128
127
128
129
129
129
129
130
130
130
130
131
130
130
131
130
130
131
130
130
130
130
130
131
129
129
130
129
129
129
128
128
128
127
126
126
126
125
125
124
125
125
124
125
125
125
125
126
125
126
126
126
126
127
127
126
127
126
126
126
125
126
126
125
125
125
124
119
133
121
120
131
121
126
126
124
127
125
126
127
126
127
127
127
128
127
127
128
128
127
128
127
128
128
127
127
127
127
126
127
126
127
126
127
125
126
98
103
132
103
128
138
133
137
133
127
141
136
118
128
140
126
117
133
129
127
128
126
129
137
128
123
138
131
124
127
132
125
125
123
122
127
120
118
124
124
119
123
125
126
126
126
128
130
128
127
130
128
126
125
126
123
122
121
120
118
115
115
114
113
114
116
116
118
120
122
124
124
126
128
128
128
129
129
128
128
127
126
125
124
124
123
122
124
125
124
126
127
129
130
131
132
132
132
133
133
132
133
132
133
133
133
133
135
134
136
137
136
139
140
140
142
142
141
145
141
137
141
135
134
132
127
128
123
120
121
119
117
117
118
118
121
121
124
128
126
131
133
134
135
136
137
138
137
136
136
135
132
132
130
128
127
126
125
125
125
125
127
123
117
127
124
117
121
126
123
119
124
126
124
122
126
129
125
126
131
131
128
130
134
133
131
133
135
132
132
134
135
133
134
136
137
135
136
139
138
138
140
143
143
143
146
146
147
147
148
150
150
147
152
152
150
153
147
147
146
135
134
130
122
120
115
112
111
107
110
110
109
114
116
120
124
128
132
136
136
139
141
140
140
139
138
136
132
129
127
124
120
118
117
115
114
114
115
116
117
119
121
122
125
118
124
126
120
122
121
122
118
117
119
117
114
115
118
115
116
119
121
121
122
126
127
126
128
131
130
129
131
131
129
129
130
130
128
128
131
130
130
132
135
136
136
140
140
142
143
144
147
145
146
149
146
146
150
142
142
140
133
128
123
118
114
108
107
102
102
103
100
106
106
110
115
118
123
126
131
133
136
137
138
139
137
136
133
132
128
125
122
119
117
114
113
112
112
112
113
115
117
119
121
125
123
123
126
125
123
122
124
121
120
119
119
117
115
117
116
116
116
119
119
120
123
124
125
126
128
129
130
130
131
131
130
130
130
130
129
129
130
130
130
131
132
133
134
136
137
139
142
142
143
145
145
145
146
146
146
146
143
142
139
136
133
127
124
120
115
113
109
106
107
105
107
108
111
114
116
120
124
127
129
133
134
137
136
138
137
135
134
132
130
127
125
123
120
118
117
116
115
115
116
117
118
119
122
122
121
122
127
121
118
126
121
119
119
119
119
114
117
119
116
116
121
122
121
124
127
128
127
131
134
132
132
135
134
133
133
135
134
133
134
135
135
135
138
139
139
141
142
141
148
143
146
152
146
151
150
150
149
145
143
137
133
124
120
115
109
105
103
104
98
103
105
103
113
112
119
125
126
136
135
141
142
144
145
143
143
140
138
134
131
127
122
121
116
116
114
112
113
113
115
117
120
122
124
128
129
133
129
124
135
126
120
124
122
119
114
116
118
112
113
119
119
117
122
127
128
128
133
137
134
135
139
137
135
136
137
134
132
133
134
132
132
135
137
136
138
141
142
142
146
149
148
152
153
154
160
150
158
154
141
145
129
113
128
101
94
109
83
103
85
96
108
94
115
113
130
125
136
145
146
151
148
160
149
150
148
143
140
130
128
124
115
113
111
109
105
105
110
109
111
115
121
124
126
132
136
138
139
142
143
141
140
134
119
140
117
108
124
106
112
103
109
111
102
113
115
118
115
126
129
128
131
135
139
131
136
139
133
132
132
132
128
127
130
128
127
128
133
133
133
138
141
142
143
147
149
150
150
156
155
154
157
156
155
136
113
151
110
86
127
79
114
73
92
115
75
110
100
127
109
123
141
138
142
138
163
147
147
151
150
145
132
135
136
118
116
116
115
105
101
112
106
104
106
117
117
114
125
131
132
130
139
143
138
137
141
140
134
128
132
112
118
117
100
113
101
108
107
105
115
112
119
121
128
129
132
136
138
140
137
141
138
135
136
132
131
128
127
128
126
127
127
129
130
131
135
137
138
141
142
144
146
147
149
151
153
147
150
147
109
154
113
98
132
80
128
77
104
111
87
114
98
128
108
125
131
136
137
134
154
143
143
147
144
145
133
136
136
122
125
116
122
110
110
114
111
110
109
118
117
117
122
128
129
129
134
138
137
136
139
139
135
134
135
132
127
126
127
122
121
117
110
128
104
114
121
110
123
112
125
123
119
130
128
130
128
134
133
131
132
133
133
127
131
131
127
128
127
129
126
127
130
129
128
130
132
132
130
133
134
133
133
135
135
134
134
135
134
133
133
134
133
131
133
132
132
132
132
134
131
133
133
124
134
125
124
126
121
126
119
122
123
120
122
121
125
123
125
127
128
128
128
131
130
130
130
131
131
129
129
129
128
126
126
126
124
124
124
124
123
123
124
124
125
125
126
126
127
128
127
129
128
128
129
128
129
128
128
128
127
127
127
126
126
126
126
126
126
126
126
126
127
127
127
128
128
129
129
129
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
130
129
128
128
126
126
125
125
124
124
124
124
124
124
124
125
125
126
127
128
128
129
130
130
130
130
130
130
129
129
129
128
128
127
126
126
126
126
126
125
126
126
126
126
127
127
128
128
128
129
129
129
129
129
129
129
128
128
128
127
127
127
127
127
126
126
126
126
127
127
127
127
127
127
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
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
127
128
127
128
128
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
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
128
128
128
128
128
128
128
128
128
127
128
127
127
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
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
127
127
127
127
127
127
128
128
128
127
128
128
127
128
128
128
128
128
127
128
128
128
128
127
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
127
127
127
128
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
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
127
127
127
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
127
128
128
128
127
128
128
128
127
128
128
128
128
128
128
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
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
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
127
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
127
127
127
127
127
127
128
127
127
128
127
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
128
127
128
128
128
128
128
128
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
127
128
128
128
128
127
127
128
128
127
128
128
128
127
127
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
127
127
127
127
128
128
127
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
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
128
128
127
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
128
128
128
128
128
127
127
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
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
127
127
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
128
127
127
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
127
127
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
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
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
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
127
127
128
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
127
127
128
128
127
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
127
128
128
127
127
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
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
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
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
127
127
127
127
127
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
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
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
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
128
128
128
127
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
128
128
128
128
128
128
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
128
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
128
128
128
128
128
128
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
127
127
127
127
128
127
127
128
128
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
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
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
127
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
127
127
128
127
127
127
127
128
128
128
127
127
127
128
127
127
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
127
127
127
127
127
127
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
127
127
127
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
128
128
128
128
128
128
128
128
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
127
127
127
127
127
128
128
128
128
127
128
127
127
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
127
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
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
127
127
128
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
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
127
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
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
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
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
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
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
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
127
127
127
127
128
127
128
128
128
128
128
127
127
127
127
127
128
128
128
127
127
128
128
128
127
128
128
128
128
128
128
127
127
128
128
127
127
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
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
128
127
127
128
128
128
128
128
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
128
128
128
128
128
128
128
128
127
128
127
127
127
128
127
127
127
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
128
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
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
127
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
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
128
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
128
128
128
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
127
128
128
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
128
128
128
128
128
128
128
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
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
127
128
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
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
127
128
128
128
128
128
128
127
128
127
127
128
127
128
128
127
128
127
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
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
128
128
127
128
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
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
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
128
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
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
128
127
127
128
127
128
127
127
128
127
127
127
128
128
127
127
127
128
127
127
128
128
128
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
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
128
128
127
128
127
127
127
127
127
128
128
127
127
128
128
128
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
128
127
127
128
128
127
128
127
127
127
127
127
127
127
128
128
127
128
128
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
128
127
127
127
128
128
128
128
128
128
127
128
128
128
127
127
127
128
128
127
128
128
127
128
128
127
128
128
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
127
127
127
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
127
127
127
127
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
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
127
127
127
127
128
127
127
127
127
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
127
127
127
127
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
128
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
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
128
127
127
128
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
127
127
128
128
127
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
128
128
128
128
128
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
127
127
128
127
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
128
127
127
128
127
127
127
128
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
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
128
128
127
127
127
127
128
127
128
128
128
128
128
127
128
127
127
127
128
127
127
127
127
127
127
128
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
127
128
127
128
128
128
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
127
127
127
127
127
128
128
127
127
128
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
127
127
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
127
127
127
128
127
127
127
127
128
127
127
127
127
127
128
128
128
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
128
128
128
127
127
127
127
127
128
127
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
127
127
128
127
128
127
127
128
127
128
127
128
127
127
128
127
128
127
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
127
127
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
128
127
127
128
128
128
128
127
127
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
127
128
127
127
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
126
127
127
126
127
126
127
127
127
127
126
128
127
128
127
127
128
126
128
127
127
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
128
126
127
127
127
128
127
127
127
126
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
127
127
127
127
127
127
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
128
127
127
128
127
128
128
128
127
128
128
127
128
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
127
128
127
128
128
128
127
128
127
127
128
127
128
128
127
127
127
128
128
127
127
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
127
128
125
130
126
127
128
126
129
126
128
126
128
128
127
127
126
127
127
127
127
127
126
127
126
128
127
127
127
127
127
126
127
126
127
127
126
127
126
126
126
127
126
127
128
126
128
126
126
127
127
127
127
126
126
127
126
127
125
126
128
126
130
125
126
126
126
129
128
126
127
126
128
127
127
126
126
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
127
127
127
127
127
126
128
126
126
130
125
128
127
125
129
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
128
127
127
128
127
128
127
127
127
128
127
127
127
127
127
128
127
129
127
124
132
124
129
128
126
128
127
130
126
128
128
126
130
127
128
128
128
128
128
128
127
128
128
127
129
127
128
129
128
128
128
128
129
128
128
128
128
129
129
129
128
128
128
128
128
128
128
128
129
129
128
128
128
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
128
128
128
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
129
129
128
128
128
128
127
128
128
128
129
129
128
128
129
129
129
129
128
128
129
129
129
128
128
128
128
128
128
128
128
128
129
129
129
129
128
128
128
129
129
128
128
128
129
128
128
127
128
129
128
128
128
128
129
129
129
128
128
128
127
128
128
129
128
128
128
128
128
128
127
127
128
128
129
129
128
127
127
126
128
128
128
128
128
128
128
127
127
127
128
128
127
127
127
128
128
128
127
127
128
128
129
126
126
128
129
129
127
126
127
129
130
128
127
127
128
128
126
126
124
127
129
129
128
126
126
128
127
128
126
131
115
117
124
129
141
135
121
118
123
129
134
130
124
125
128
127
128
124
124
128
129
127
128
126
130
130
128
125
126
129
131
132
126
124
126
126
128
127
126
128
129
128
125
126
127
130
131
128
128
126
128
130
127
126
124
126
127
125
130
128
129
129
124
123
127
128
130
132
129
128
128
128
127
128
126
126
128
132
130
127
125
122
129
132
129
127
125
127
130
130
129
126
128
127
127
125
124
129
127
130
129
123
124
125
128
132
130
126
122
124
128
130
130
130
124
124
124
125
129
128
126
129
127
125
127
125
128
127
129
124
126
129
129
132
127
123
121
130
129
130
129
123
129
132
126
126
119
121
131
135
134
130
123
123
125
127
122
132
131
126
132
120
121
123
124
132
131
130
129
128
124
122
124
128
138
139
127
118
116
121
130
133
134
129
127
127
124
125
129
125
131
134
129
127
128
124
125
128
121
129
133
128
128
124
119
133
134
132
137
124
123
129
123
127
128
129
134
133
130
123
121
125
124
129
132
133
134
134
124
118
123
126
135
138
130
123
121
121
127
133
129
131
133
129
129
125
122
125
129
133
131
130
127
125
129
126
126
129
127
133
133
126
123
122
127
134
129
134
129
124
130
124
122
129
126
131
135
128
128
125
119
130
137
136
131
123
120
125
135
133
129
127
123
122
132
129
131
132
127
129
128
124
121
123
132
139
135
128
122
122
125
127
126
129
132
132
128
125
122
128
132
129
126
122
125
135
137
131
127
119
121
129
131
134
132
120
124
127
127
132
134
132
128
125
125
124
129
129
125
131
131
128
134
128
118
126
127
131
136
127
124
125
126
132
132
128
124
125
133
133
134
125
115
124
129
130
130
124
125
135
136
128
119
112
117
130
135
133
128
125
125
121
118
115
119
134
146
141
126
111
105
116
134
138
135
128
121
122
125
120
125
127
131
139
131
127
125
121
123
128
134
140
142
136
124
122
129
134
139
138
128
128
130
132
133
130
131
139
141
138
134
128
128
128
126
128
129
133
134
132
132
131
127
125
125
124
126
123
119
119
121
126
124
120
120
119
120
126
118
110
116
114
119
132
123
119
120
113
118
121
119
123
127
127
126
122
122
121
123
126
125
132
135
132
132
130
127
132
133
129
133
136
139
141
138
132
131
138
139
138
130
126
138
150
154
155
139
125
124
138
154
161
166
164
164
159
149
149
133
78
15
0
45
138
209
224
179
111
76
70
80
95
102
111
134
159
169
154
121
88
76
84
97
110
117
119
125
130
120
105
97
100
117
136
141
134
124
114
112
116
120
127
136
140
136
128
119
113
119
127
136
142
143
141
136
136
136
136
146
149
145
148
141
135
144
145
143
154
151
153
158
153
158
167
165
190
188
197
108
0
11
0
132
255
255
192
113
76
31
75
81
57
81
159
198
230
208
123
51
59
68
95
141
136
115
107
97
101
110
100
108
127
141
148
132
105
86
95
114
135
145
143
134
130
119
114
113
117
129
138
139
133
127
125
123
129
138
146
154
154
147
141
130
128
137
142
152
158
150
146
142
138
152
167
166
161
158
156
172
209
201
180
40
0
5
30
203
255
255
152
97
59
45
77
63
46
96
191
227
240
189
82
35
58
78
126
137
95
89
115
121
126
117
80
93
130
144
144
129
97
96
116
122
128
132
131
135
141
126
113
112
115
126
138
133
131
135
134
135
133
131
136
147
154
145
134
131
138
153
159
154
136
124
128
139
156
166
171
163
152
144
140
156
184
223
204
173
53
0
5
30
185
255
255
168
107
89
48
55
46
34
80
211
242
239
194
84
36
60
83
94
91
100
114
148
160
114
78
72
92
130
152
138
123
119
120
113
112
107
120
145
153
144
123
109
108
115
128
132
135
142
141
138
128
126
132
144
156
150
139
135
135
144
153
143
142
150
143
143
148
136
140
163
158
161
168
156
147
158
203
209
195
95
0
4
10
146
251
255
198
112
122
93
58
33
20
47
180
250
235
198
116
64
70
95
82
56
74
118
157
182
140
74
64
94
118
136
130
121
132
146
126
100
93
103
135
154
150
131
125
120
115
112
112
122
143
152
145
135
130
129
135
142
137
139
145
151
150
142
137
139
144
144
143
146
146
142
153
164
165
157
133
127
154
170
182
210
192
147
32
0
0
47
172
227
241
176
150
145
103
35
9
30
94
186
225
199
168
138
112
100
66
17
51
117
141
163
149
112
110
111
97
89
101
122
144
158
136
113
110
109
112
120
125
133
148
148
129
113
106
111
125
134
138
143
147
145
136
126
126
131
142
153
148
147
141
136
137
135
132
144
158
148
140
141
146
161
161
130
129
146
159
173
164
170
196
186
124
11
0
0
79
167
185
187
175
190
177
108
33
11
46
105
153
164
163
179
184
148
91
51
46
77
99
96
120
147
148
146
122
91
96
110
110
112
125
141
148
140
119
102
109
122
125
128
132
137
144
139
123
113
114
125
135
139
143
146
147
146
138
131
126
129
139
143
150
159
146
129
138
144
135
135
134
133
160
174
150
129
133
139
146
148
137
147
178
181
155
120
60
22
52
82
92
117
137
158
179
171
138
106
94
98
96
92
100
114
133
144
142
138
126
110
101
99
93
94
107
117
125
135
135
131
131
126
121
120
124
129
131
133
135
134
134
133
128
126
132
134
134
134
133
135
136
132
133
134
132
130
133
133
130
134
134
129
127
131
130
124
127
132
126
125
130
129
125
126
128
128
128
129
129
127
127
130
128
127
127
127
128
128
126
125
126
128
130
131
128
127
128
128
127
126
126
126
126
127
128
127
125
123
122
120
121
121
121
121
121
122
122
122
122
123
123
123
124
125
125
125
125
125
124
125
125
125
126
127
127
127
126
125
126
125
125
126
126
126
128
127
126
125
126
126
127
127
126
127
127
127
127
126
127
128
128
128
128
127
128
129
128
128
128
127
128
130
129
128
127
128
128
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
126
127
127
126
126
126
126
127
126
124
123
124
126
127
125
125
125
125
126
125
123
123
125
126
126
125
125
125
125
125
124
125
126
125
125
125
125
126
125
125
125
125
126
126
126
125
125
125
124
125
125
126
126
127
126
125
125
127
125
124
124
123
122
123
122
121
121
121
123
126
126
127
128
127
124
116
120
124
130
130
134
140
136
126
124
125
126
126
124
128
137
137
132
130
133
136
135
130
129
134
135
130
125
125
127
127
125
122
124
129
128
126
127
127
127
124
119
118
117
114
113
110
110
114
113
113
116
117
117
117
116
116
117
116
116
118
120
121
121
122
124
126
125
125
125
127
127
127
129
130
130
129
130
133
135
136
135
137
140
139
138
138
141
144
141
138
140
142
138
138
141
141
146
149
140
140
151
147
141
143
146
153
161
163
155
141
133
97
39
65
88
68
83
114
137
167
161
142
155
155
125
105
99
97
106
101
104
121
137
131
131
135
130
125
113
99
96
92
90
102
110
122
132
135
137
137
128
119
116
111
112
114
118
125
129
130
131
131
129
128
127
129
132
134
136
139
141
142
140
141
140
136
135
138
141
146
145
142
147
146
144
141
141
145
145
142
145
150
149
159
169
161
137
130
77
38
79
73
57
89
123
141
167
151
150
167
147
112
110
103
94
97
93
108
129
136
133
148
152
140
123
113
101
90
86
95
91
89
117
128
126
134
139
135
132
118
111
117
112
106
116
123
124
129
130
133
136
133
129
135
137
132
133
137
140
137
138
141
145
143
142
145
148
154
150
146
152
152
140
139
148
143
142
152
160
160
162
165
177
156
132
109
52
71
87
51
67
124
135
148
165
162
175
168
131
124
128
101
90
98
107
113
125
131
148
159
152
145
147
136
124
97
84
100
98
82
82
123
139
127
131
153
150
132
117
121
121
106
99
118
130
123
127
139
146
138
134
137
143
134
130
138
144
139
136
141
147
143
132
152
164
150
137
154
164
154
141
136
148
150
139
142
162
165
163
172
162
148
117
46
78
90
36
56
111
123
134
154
158
182
171
136
136
139
101
89
94
97
98
106
114
137
149
143
148
156
143
128
121
115
103
84
95
101
98
95
96
120
134
118
122
142
134
119
119
117
112
105
102
115
120
116
123
136
137
133
135
138
135
130
129
133
132
127
132
138
136
137
143
150
148
144
148
151
144
138
141
142
143
141
149
156
158
168
156
139
114
47
74
86
34
58
110
119
128
152
159
179
167
139
141
137
101
89
93
93
90
99
113
132
142
142
151
157
145
132
127
119
108
99
93
87
108
108
107
102
115
124
125
122
119
128
121
115
114
118
111
110
113
120
121
124
130
136
136
134
137
138
133
131
133
134
134
133
137
138
140
141
147
149
148
152
153
150
150
150
150
151
154
157
168
153
132
92
47
93
71
33
75
122
121
133
160
171
179
158
142
149
129
93
92
97
90
86
104
121
135
140
148
159
159
142
136
131
118
104
99
102
102
106
111
131
124
121
144
131
121
119
116
108
102
94
106
111
108
116
133
129
129
133
134
129
125
124
126
127
124
129
134
135
133
140
139
139
137
142
144
142
143
148
150
144
144
150
150
148
155
154
159
169
163
127
102
71
72
79
47
66
111
124
126
156
173
173
165
153
147
135
105
94
96
92
85
98
116
128
137
149
158
159
150
141
137
124
109
102
102
100
101
109
121
133
127
133
149
132
121
119
110
105
102
98
109
118
113
121
135
130
128
133
133
128
125
126
128
128
125
129
135
133
132
138
138
137
141
144
142
144
145
143
144
144
144
147
150
151
156
160
168
158
115
95
78
86
69
55
88
118
122
132
163
173
167
159
155
148
126
104
100
98
90
88
105
120
127
137
153
158
156
148
145
136
122
110
105
103
99
102
112
123
129
135
146
144
139
139
131
118
108
109
104
96
101
113
116
119
132
139
138
137
137
135
129
123
122
123
120
120
126
131
130
132
137
138
137
137
137
138
135
132
133
134
131
132
133
136
137
136
137
140
139
139
142
141
140
140
141
138
119
110
112
100
96
103
109
116
126
134
143
148
145
143
142
133
123
118
114
109
108
111
115
121
127
133
139
141
140
139
136
131
125
121
117
114
108
104
116
118
116
124
133
126
127
134
129
123
124
123
122
121
120
122
127
125
127
134
135
133
136
138
135
134
134
134
132
131
132
134
131
132
135
134
133
135
135
134
134
134
133
134
135
137
137
138
131
120
120
117
110
110
115
119
123
128
133
138
138
135
135
134
128
122
121
119
117
117
120
123
126
128
132
135
135
134
134
132
127
124
123
121
120
120
121
124
126
128
131
133
133
133
132
131
128
125
124
120
115
117
118
114
116
121
122
127
132
134
136
135
135
134
129
125
124
122
119
120
123
124
125
130
133
133
134
134
135
134
130
129
131
129
129
130
131
132
133
134
133
132
134
132
131
131
131
131
132
131
131
128
120
118
122
118
115
121
126
126
128
132
134
135
133
131
132
128
123
122
122
120
119
122
124
126
128
130
133
133
132
132
132
129
126
125
124
123
122
123
126
127
127
130
132
131
131
130
130
128
126
125
125
124
124
125
126
127
128
129
130
131
130
130
130
129
127
126
126
125
125
125
126
126
127
128
130
130
130
130
130
128
128
127
126
125
125
125
126
126
127
128
129
129
129
129
129
128
128
127
127
126
126
126
126
127
127
128
128
129
129
129
129
128
127
127
127
126
126
126
127
127
127
128
128
128
128
128
128
128
128
127
127
127
126
126
126
127
127
127
128
128
128
128
128
128
128
127
127
127
127
126
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
127
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
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
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
127
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
127
128
127
128
128
127
128
127
128
128
128
128
128
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
127
127
128
127
127
127
128
127
127
128
128
128
127
127
127
127
127
127
127
127
128
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
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
126
122
126
124
123
126
128
126
127
129
127
127
128
126
125
127
128
127
129
129
129
129
129
127
127
126
125
126
127
126
127
129
128
128
129
129
128
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
126
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
127
126
127
127
126
127
128
127
127
128
128
127
127
128
128
127
127
127
127
128
127
127
128
127
127
127
128
127
127
128
128
127
128
128
128
128
128
128
128
127
127
128
128
128
127
128
128
127
127
128
127
127
127
128
128
127
127
128
128
127
128
128
127
127
128
127
127
128
128
127
128
128
127
128
128
126
127
128
127
127
129
128
127
128
127
128
128
127
127
128
127
126
128
129
127
127
129
128
127
128
128
127
127
127
127
127
128
128
127
128
127
127
128
127
126
128
127
126
128
128
127
128
129
127
127
128
127
126
128
127
126
128
128
127
127
128
127
127
126
126
128
128
127
129
129
127
127
128
127
127
127
127
128
128
127
127
128
127
127
128
127
126
127
128
128
127
128
128
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
128
127
127
128
128
127
127
127
128
127
126
128
128
127
127
128
128
127
128
128
127
127
127
128
128
127
127
129
128
126
127
129
128
127
128
129
128
126
127
128
127
127
129
128
127
128
128
127
127
129
128
127
128
128
127
127
127
128
127
127
128
128
127
127
127
127
127
126
127
128
127
127
128
128
127
127
128
127
127
128
127
128
128
127
128
128
126
127
128
127
126
128
128
127
127
128
127
127
127
127
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
128
128
128
128
128
128
127
128
128
128
128
128
128
127
127
127
128
127
127
128
128
126
127
128
128
127
128
129
128
127
127
128
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
128
128
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
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
127
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
128
127
127
127
127
126
127
127
127
127
126
127
127
127
127
128
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
127
127
127
127
127
127
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
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
128
128
128
127
127
127
128
128
127
127
128
127
127
127
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
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
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
128
128
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
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
128
128
128
128
128
127
127
127
127
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
127
127
127
128
128
127
127
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
128
128
128
128
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
127
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
128
128
128
128
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
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
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
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
129
128
128
128
128
128
128
129
128
128
129
129
129
128
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
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
129
129
129
129
129
129
129
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
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
127
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
127
127
127
127
127
127
127
127
127
127
127
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
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
126
127
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
127
127
126
127
127
127
127
127
127
126
126
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
128
128
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
127
127
127
127
126
126
127
127
127
126
127
127
127
126
126
126
126
126
126
126
126
126
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
128
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
126
126
126
126
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
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
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
128
129
128
128
129
128
128
128
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
129
129
129
129
129
129
129
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
128
127
127
128
128
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
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
127
127
127
127
127
128
128
127
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
128
128
128
128
128
128
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
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
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
127
127
127
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
127
127
127
126
126
126
126
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
126
126
127
126
127
127
126
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
128
128
127
128
127
127
127
127
127
127
127
128
128
128
127
128
127
128
128
127
128
128
128
128
128
127
127
128
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
128
128
128
128
128
129
129
128
128
129
129
129
128
128
128
129
129
128
128
129
129
129
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
127
127
127
127
127
127
128
128
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
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
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
127
127
127
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
127
127
128
128
127
127
128
128
128
128
127
128
128
128
128
127
127
127
128
128
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
127
127
128
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
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
128
128
127
127
127
127
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
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
128
128
128
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
128
128
127
127
127
127
127
128
127
128
128
127
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
128
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
127
127
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
128
128
127
128
128
128
128
128
127
127
128
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
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
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
128
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
127
127
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
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
127
127
127
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
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
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
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
127
127
127
127
127
127
127
128
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
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
128
128
128
127
127
128
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
128
127
127
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
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
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
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
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
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
127
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
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
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
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
127
127
128
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
127
127
127
128
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
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
128
125
130
123
135
92
119
126
119
123
123
125
130
129
127
125
125
124
127
125
124
124
123
120
122
123
123
122
126
109
114
119
121
130
127
127
125
130
129
127
123
116
120
122
123
106
109
107
113
116
120
125
131
127
129
129
130
129
129
123
119
120
117
118
121
118
121
125
130
134
139
136
137
141
140
139
138
133
129
130
129
130
131
128
128
132
134
136
139
136
135
137
137
137
135
131
129
131
130
129
129
127
131
134
135
136
138
138
137
137
136
133
132
131
130
131
130
131
133
134
135
136
136
137
138
140
139
140
140
139
140
139
137
136
136
136
137
138
138
139
139
140
140
140
141
139
139
138
137
139
140
141
142
141
140
139
140
140
139
139
138
139
140
140
139
138
137
138
138
136
135
134
133
134
133
133
133
133
133
132
131
130
129
129
129
128
127
125
124
124
124
124
123
122
123
123
123
123
121
119
118
119
118
120
119
117
117
117
117
118
118
116
116
117
116
117
117
116
115
115
115
115
117
118
117
118
118
117
118
119
119
120
120
121
122
122
124
124
124
124
123
123
125
126
126
126
125
123
124
123
124
127
127
127
126
125
125
126
126
124
123
123
120
121
121
120
123
122
121
120
121
125
126
127
125
122
122
121
123
124
123
122
118
117
115
114
114
112
111
109
107
108
111
114
115
116
116
116
117
117
118
119
119
119
120
121
123
124
126
126
127
127
127
129
130
132
134
136
137
136
136
135
135
137
140
140
142
142
141
141
142
141
141
142
139
138
140
142
143
145
145
144
144
144
139
133
126
117
111
112
111
110
109
107
105
103
106
110
118
127
134
137
137
135
129
120
113
103
95
92
86
86
94
104
119
133
142
143
138
129
118
113
111
114
122
127
129
129
128
127
127
130
132
135
137
137
139
140
141
142
143
142
141
141
142
144
150
154
157
159
156
155
153
151
151
150
153
156
159
164
162
158
150
124
98
74
46
41
47
64
94
120
144
157
164
165
160
161
157
151
144
129
112
95
82
77
81
94
110
123
129
130
123
113
110
110
116
125
130
128
121
111
101
98
104
113
126
136
139
137
132
127
124
127
130
132
131
127
122
122
124
131
138
145
148
148
146
144
143
143
146
149
151
151
149
145
141
139
140
145
151
159
164
168
165
160
150
128
103
79
56
44
46
60
81
110
134
151
161
164
160
157
154
151
147
141
130
116
102
88
81
79
84
94
101
112
117
123
128
133
138
139
137
131
121
112
105
104
109
118
128
136
141
140
137
133
131
131
133
136
139
140
138
136
132
131
131
134
137
141
145
146
149
149
149
147
145
143
140
138
136
137
140
145
149
153
154
151
146
136
123
109
95
85
80
79
87
96
110
122
132
141
145
147
148
148
147
145
141
136
128
121
113
106
98
97
95
94
100
103
112
124
134
143
148
147
140
131
122
114
114
117
124
133
139
142
141
137
133
129
129
130
133
137
140
141
140
137
133
130
128
128
131
134
138
140
141
140
137
134
131
129
129
131
134
137
139
139
137
135
132
130
130
130
130
130
128
126
121
116
112
109
110
112
115
119
123
125
127
128
129
129
131
133
134
135
135
132
127
123
117
112
109
108
110
115
121
128
135
139
140
138
133
128
124
122
123
127
131
134
136
134
131
126
122
120
121
125
131
135
138
137
134
129
125
122
123
125
130
134
136
137
135
132
129
127
127
128
130
132
133
134
133
131
128
127
126
127
129
130
130
130
129
127
124
123
122
122
124
126
128
129
129
128
127
125
124
123
123
124
125
127
127
127
127
126
126
125
125
125
126
128
129
130
130
129
128
128
127
126
126
127
128
129
130
130
130
129
128
127
127
127
128
128
129
130
130
129
129
128
127
127
128
128
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
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
128
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
126
126
126
126
126
126
127
127
127
126
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
127
126
126
127
127
127
126
126
126
126
126
126
126
127
127
127
127
126
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
127
127
127
127
127
127
127
127
126
127
126
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
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
129
129
128
127
127
127
127
127
128
128
128
129
128
128
127
127
125
127
127
128
128
128
127
127
127
127
126
127
126
126
125
125
123
123
121
120
117
118
117
111
116
117
131
141
154
152
145
132
115
106
105
109
122
135
145
145
142
135
124
119
119
122
130
136
139
136
133
124
117
118
120
125
135
137
141
140
138
132
131
124
125
122
123
120
120
116
119
124
124
127
128
121
125
123
130
131
139
135
134
130
124
120
122
122
128
131
136
135
136
133
129
129
129
129
134
133
134
131
130
126
125
125
125
127
131
132
134
132
130
126
128
128
129
132
132
130
128
126
124
125
128
131
134
134
134
132
130
128
129
129
131
132
132
131
129
129
129
131
132
132
131
131
130
130
130
132
133
134
134
133
132
130
129
130
132
134
135
136
135
134
132
131
133
134
136
137
137
136
135
133
133
134
135
135
135
135
134
134
135
136
136
136
136
135
134
133
132
132
131
132
131
131
130
130
131
131
131
130
130
129
128
126
125
126
125
126
129
129
130
129
128
127
127
128
129
133
135
137
139
138
138
136
134
133
133
134
134
136
136
136
137
137
138
138
139
138
139
138
136
134
132
130
129
130
132
135
136
136
131
119
103
85
68
59
59
68
83
102
117
125
129
125
120
114
110
108
108
109
110
111
113
114
117
119
120
124
127
130
134
138
141
143
143
140
138
135
134
137
140
146
154
163
174
183
192
200
205
191
157
118
62
10
0
4
0
16
66
111
151
176
189
197
199
189
183
165
136
109
75
46
33
32
37
58
86
99
119
133
133
144
148
142
135
120
101
85
82
82
91
111
119
130
138
137
142
149
156
160
163
157
146
142
136
138
150
160
174
187
194
200
212
228
205
150
94
8
0
5
0
6
82
141
170
190
193
186
198
211
205
196
162
104
55
21
6
23
62
97
127
144
140
141
147
147
151
144
120
92
72
61
66
89
108
123
132
129
128
135
143
154
162
160
150
141
134
131
135
139
143
148
155
166
185
205
220
234
239
247
223
139
66
1
0
4
1
7
86
143
165
184
208
219
231
252
228
184
139
70
24
13
18
38
73
100
107
123
146
154
179
194
172
145
109
67
49
59
70
89
112
117
120
137
147
158
172
166
151
144
136
135
145
152
144
140
136
134
154
182
209
232
243
241
245
234
160
85
13
0
4
2
0
48
120
149
171
204
231
241
255
241
189
136
84
38
21
31
38
54
77
95
113
143
175
186
195
185
147
113
85
58
53
62
70
80
100
119
136
160
171
165
161
150
137
140
145
145
143
140
128
125
135
151
168
193
213
221
230
238
246
241
176
89
8
0
5
0
7
55
95
127
152
186
233
255
255
242
190
131
85
62
50
46
44
42
45
70
105
138
176
189
180
166
144
123
106
89
75
65
62
74
92
117
140
151
155
154
152
155
158
160
157
147
139
133
130
134
142
150
161
177
197
214
226
236
245
232
164
81
15
0
5
0
18
50
63
92
135
179
221
252
248
219
181
151
126
107
90
69
42
27
37
64
94
118
138
147
148
153
159
156
138
111
90
82
80
88
101
109
114
120
131
144
155
161
165
162
156
152
150
148
143
136
133
136
144
157
173
184
189
191
196
203
190
144
91
57
46
52
57
59
65
72
80
98
124
153
173
174
164
155
153
155
154
142
124
107
97
97
103
106
102
96
92
98
114
131
139
136
127
120
124
131
135
133
127
122
124
129
134
135
132
127
125
126
129
131
130
127
124
124
128
132
134
134
133
132
134
137
139
141
141
141
142
144
144
139
131
122
116
114
115
117
115
111
108
109
112
116
117
116
115
117
122
127
129
128
127
128
131
132
130
125
123
124
126
125
121
117
116
119
123
125
123
122
121
123
126
127
126
126
126
127
130
132
132
131
130
130
131
132
133
133
131
131
132
134
135
136
137
138
141
145
148
146
140
132
124
121
120
121
120
115
108
103
105
110
113
113
112
113
117
122
127
131
134
136
136
134
133
135
135
133
128
123
121
122
121
117
114
113
116
120
122
121
120
121
123
126
129
131
132
132
132
133
134
135
135
133
131
130
131
133
133
131
131
131
133
136
138
139
141
144
148
153
153
146
136
125
119
118
118
116
110
103
99
100
105
110
114
118
120
122
124
130
140
147
144
134
127
129
134
131
121
114
113
116
114
106
101
99
92
89
98
115
124
123
124
135
146
142
136
136
138
134
126
123
128
131
127
125
131
140
147
150
149
154
163
168
169
171
176
180
188
193
170
126
87
58
41
45
53
60
67
69
83
117
149
172
186
182
174
168
161
160
153
130
104
84
72
75
82
83
82
85
95
114
130
139
144
139
129
126
125
124
119
109
102
101
105
117
131
137
139
139
142
150
154
155
151
144
140
141
145
151
155
160
167
175
186
202
215
228
226
174
107
67
41
19
14
25
32
38
61
109
152
183
208
217
204
188
181
170
150
122
95
67
49
54
72
89
104
115
117
125
139
156
162
149
125
106
91
85
93
101
105
106
112
118
127
136
143
142
136
134
132
133
137
137
131
125
125
133
144
157
167
170
173
179
185
191
195
196
196
204
195
142
90
53
20
13
23
38
58
76
101
136
163
190
208
198
182
160
136
119
109
97
87
79
79
90
106
127
142
141
131
124
117
116
115
106
97
93
92
99
116
131
138
139
135
127
121
122
120
117
114
111
109
116
126
134
139
141
143
147
154
162
167
167
164
159
156
160
166
172
179
185
194
201
168
122
87
46
32
35
39
59
80
99
125
151
170
183
182
168
152
130
116
106
101
99
99
103
112
125
138
146
147
137
117
101
91
85
84
83
87
96
109
126
141
150
150
142
130
118
111
108
109
111
112
113
116
123
133
142
148
150
153
158
163
167
168
164
158
155
157
163
173
180
188
197
204
168
121
80
33
9
7
37
59
96
127
140
164
176
181
181
169
146
120
101
89
88
99
108
120
131
138
146
150
146
129
110
90
74
75
77
85
102
115
127
142
151
154
151
140
122
108
98
95
102
107
112
115
118
122
130
139
144
148
150
151
152
154
153
150
148
147
147
153
160
167
176
182
188
200
208
175
130
90
34
20
15
28
67
89
123
141
157
169
170
171
155
136
117
97
95
98
108
124
134
145
145
147
143
130
117
88
73
62
61
77
88
110
129
143
157
159
157
146
131
115
100
96
96
104
114
118
121
121
126
132
139
146
149
151
154
156
159
159
156
151
148
151
157
165
175
181
184
186
188
164
124
89
54
14
13
41
58
109
138
150
163
164
159
156
149
131
114
102
92
98
117
130
148
156
152
143
134
123
105
89
69
60
63
77
95
120
140
153
160
157
146
135
121
107
100
96
99
107
117
124
128
130
129
134
139
142
147
148
149
151
153
153
152
151
150
152
158
165
172
178
179
177
179
178
145
109
78
54
45
37
63
79
101
130
139
151
154
149
142
132
120
114
112
118
123
136
144
149
153
145
134
123
105
84
71
65
65
81
96
109
131
145
154
159
152
138
125
113
103
103
105
109
116
122
124
127
130
130
135
137
138
144
147
150
155
156
153
152
151
152
157
162
167
170
171
171
173
176
179
154
112
83
61
66
66
70
85
90
108
127
142
149
145
133
123
117
122
126
135
139
140
144
148
152
149
139
120
100
78
69
69
78
88
101
113
123
138
149
152
148
136
122
116
112
110
110
112
114
119
125
127
129
129
129
131
134
137
142
146
148
151
152
153
155
155
155
156
158
161
165
168
166
166
167
174
162
124
97
79
80
83
77
77
80
92
112
131
135
132
123
122
125
134
139
139
139
140
147
152
152
143
129
112
100
94
82
73
76
80
95
115
124
129
139
141
142
141
131
121
116
113
111
115
117
120
124
124
124
125
125
125
129
131
135
141
146
150
153
154
153
154
155
155
157
158
158
160
164
163
166
170
174
151
116
97
88
93
83
73
70
80
99
117
122
117
116
120
133
137
139
134
137
145
155
157
151
141
130
125
116
106
91
75
71
83
91
100
107
111
126
141
143
139
132
126
126
125
120
115
116
119
125
126
121
118
120
123
125
126
126
132
141
147
149
150
151
155
157
156
153
153
155
156
157
155
155
159
163
166
156
127
111
110
112
88
72
74
87
99
103
101
102
117
126
133
128
130
135
148
152
150
147
146
148
143
133
119
112
106
96
86
87
88
93
97
104
115
126
131
134
133
134
134
131
127
125
128
129
131
127
126
125
125
123
121
122
123
129
132
136
139
145
148
150
151
151
152
151
151
150
150
150
150
149
148
148
150
149
135
126
124
121
104
96
95
96
95
95
97
101
108
113
117
121
129
133
138
140
142
143
144
141
138
135
131
127
123
118
113
113
112
107
107
110
111
113
116
116
119
121
122
124
127
129
131
133
133
133
133
131
130
130
129
127
127
126
126
127
128
129
130
131
133
134
134
136
138
139
141
143
144
146
148
148
150
151
151
145
139
137
132
119
113
110
101
99
100
93
94
102
104
107
116
120
126
134
135
137
144
144
142
144
142
139
139
133
126
127
122
113
111
109
106
107
106
104
109
112
112
117
121
125
131
134
134
138
139
136
136
136
133
132
129
127
128
127
125
125
126
126
127
127
128
131
133
135
138
140
141
143
145
147
149
149
149
151
150
143
137
134
129
121
113
107
103
100
96
94
97
102
104
107
114
121
126
131
135
140
143
142
142
144
142
139
135
131
128
123
117
113
112
110
108
107
107
108
111
112
116
121
125
128
132
134
136
137
137
137
136
134
133
132
130
129
128
127
127
126
126
127
129
130
131
133
136
137
139
141
143
145
146
147
149
149
150
150
145
139
136
132
123
115
110
106
103
99
95
98
103
103
107
115
120
125
130
134
140
142
142
143
145
143
140
138
134
130
126
120
114
112
110
108
108
106
106
110
112
114
118
124
128
131
134
137
139
139
139
139
138
135
132
131
130
128
128
127
127
127
127
129
130
131
133
136
137
139
141
143
145
146
147
148
149
151
148
141
136
135
128
118
114
109
104
100
96
97
101
101
104
112
117
121
127
132
137
141
141
142
144
143
140
139
137
134
128
123
122
116
109
107
108
106
105
105
108
112
113
117
124
129
130
134
138
139
139
138
138
137
134
130
130
128
126
126
126
126
125
126
128
129
130
132
135
137
138
140
142
143
144
145
146
147
147
148
145
138
134
132
125
117
112
109
106
100
97
100
103
103
106
113
118
122
126
132
137
139
139
141
142
141
138
137
136
130
126
124
120
114
109
109
108
106
105
107
110
112
114
119
125
127
130
134
138
136
137
138
137
135
133
131
129
128
126
126
125
125
126
127
129
130
131
135
137
139
141
143
144
145
146
147
148
148
149
147
144
141
133
128
123
118
107
106
103
100
96
100
101
105
107
115
121
124
129
135
140
141
143
144
144
141
140
137
133
127
123
117
113
109
105
105
106
105
106
109
112
115
119
124
129
132
135
138
140
140
139
139
137
134
132
130
127
126
125
125
125
126
127
129
131
133
135
138
140
141
143
144
145
146
146
146
146
146
147
145
141
140
131
127
122
117
107
105
104
100
97
99
103
104
108
114
122
123
129
134
140
140
143
144
144
140
138
137
132
127
123
121
114
111
108
107
103
104
108
108
110
115
119
121
125
130
134
136
139
142
141
140
138
137
134
131
129
127
125
125
126
126
127
129
132
134
136
138
140
143
144
146
146
145
146
150
147
148
149
150
144
144
141
130
129
121
119
107
108
105
101
99
102
106
107
112
119
126
127
134
139
144
144
147
147
145
143
140
138
133
129
124
121
115
110
109
108
105
106
109
111
112
115
121
122
127
132
136
137
139
143
142
141
139
138
134
131
129
127
125
124
126
126
127
129
132
134
136
139
141
142
144
146
146
147
146
147
146
146
147
148
143
140
142
130
127
121
119
109
103
106
99
98
98
103
105
108
114
123
125
131
137
142
143
145
147
145
141
139
137
131
127
122
118
112
108
105
102
104
103
104
107
110
112
116
120
124
128
131
135
136
138
139
139
137
136
134
130
127
125
124
122
122
123
125
126
128
131
134
136
140
141
143
145
145
147
145
144
146
143
145
145
146
137
136
139
123
124
117
112
110
98
104
100
95
99
102
106
108
116
123
126
132
137
144
143
145
148
144
141
137
137
129
125
122
116
110
105
105
100
99
102
104
106
110
115
118
120
126
129
132
134
137
139
137
138
138
135
132
130
128
124
123
123
123
123
125
128
130
132
136
139
140
143
146
146
147
148
147
145
146
145
143
143
145
144
132
135
136
118
121
117
109
109
102
102
102
100
102
108
113
112
122
129
129
135
141
144
144
145
145
142
139
135
132
127
122
119
115
109
104
103
103
100
101
109
111
111
119
125
124
127
133
133
133
136
138
136
134
134
133
129
127
127
125
122
123
126
126
127
131
134
134
138
142
143
143
146
148
146
147
148
146
145
145
143
143
142
145
141
127
136
129
113
116
114
106
100
103
103
98
103
106
110
114
118
127
131
134
137
143
143
141
144
141
137
133
129
126
120
116
114
110
106
103
104
103
101
106
110
113
116
122
126
127
130
132
133
131
132
132
130
129
128
127
125
124
124
124
124
125
127
130
131
134
138
140
140
143
145
145
145
146
147
146
144
145
145
143
143
145
146
144
148
142
129
135
129
115
114
113
106
101
104
103
100
107
110
113
119
125
130
133
139
141
142
143
144
142
138
136
132
126
123
120
115
112
111
108
105
104
103
107
109
109
114
122
125
124
131
135
131
131
133
132
128
127
128
125
124
123
123
124
125
126
127
131
133
135
139
142
143
144
145
147
146
145
147
147
145
144
147
145
144
147
149
148
147
153
151
133
131
133
120
107
106
107
99
95
101
101
104
110
116
121
128
135
136
139
145
145
141
141
142
136
130
128
125
119
115
114
112
109
110
107
106
109
105
107
115
118
116
121
130
130
127
131
132
129
126
125
122
120
121
118
118
121
123
123
125
131
133
134
138
141
142
143
144
144
142
143
143
141
141
143
142
142
146
145
147
150
152
154
155
158
153
136
129
124
111
100
96
95
88
92
100
99
104
115
123
126
133
142
142
142
145
144
139
137
136
130
125
124
120
115
114
114
113
111
113
113
110
112
112
109
112
118
121
119
122
127
128
127
125
122
121
121
119
115
114
117
119
120
123
126
130
134
138
139
141
143
143
142
141
139
138
137
137
137
137
140
143
146
149
151
152
155
157
159
162
163
162
158
142
122
112
101
93
87
84
83
87
100
108
113
121
132
141
145
149
148
145
144
142
135
128
125
123
120
118
115
113
114
115
116
116
117
119
120
122
120
119
120
118
118
119
124
124
121
120
118
116
115
112
110
109
113
115
118
121
125
129
134
138
140
140
142
141
139
137
134
131
129
129
129
130
132
135
140
144
148
153
158
160
158
159
160
160
161
162
162
155
136
114
97
87
82
79
78
81
90
102
116
127
134
140
146
151
153
149
142
134
129
124
120
116
113
112
113
116
118
119
120
122
124
125
123
125
123
123
125
122
121
118
116
117
117
120
119
116
113
109
109
107
108
111
114
120
124
129
133
135
138
138
140
139
137
134
131
130
128
126
126
126
128
131
136
141
145
151
154
158
159
162
161
157
156
154
154
157
158
160
157
137
110
90
83
78
79
84
86
91
105
122
135
144
149
147
146
148
144
136
126
118
110
108
111
113
114
116
119
122
127
132
131
129
127
124
123
124
123
122
118
112
116
112
114
117
118
121
119
120
114
110
108
104
106
111
117
123
128
133
134
137
138
136
135
131
128
126
125
125
123
124
125
128
132
135
139
142
146
149
152
155
157
157
156
154
151
151
153
153
154
156
159
161
146
123
99
82
75
78
86
89
96
104
115
130
145
153
153
148
142
136
132
128
120
112
106
105
109
117
124
128
129
130
131
133
135
132
126
120
116
115
116
119
119
116
115
112
115
124
124
125
123
119
114
112
110
104
104
108
113
123
131
135
136
137
135
132
132
129
127
125
123
123
123
126
127
129
132
133
138
142
146
149
150
151
150
152
152
150
149
150
149
150
152
152
157
165
169
154
134
114
91
84
82
83
81
85
97
107
125
141
148
150
149
147
141
138
133
121
113
107
105
108
115
121
123
127
131
133
138
139
135
129
123
119
117
117
116
115
115
113
115
114
121
126
124
127
125
122
120
117
112
105
105
106
111
122
129
133
136
137
137
136
135
131
127
125
122
123
123
125
126
128
132
133
138
142
144
146
148
148
148
149
149
149
149
149
149
150
151
153
154
156
158
165
159
138
125
105
94
90
86
85
81
92
104
117
133
139
142
143
146
147
142
138
126
116
111
110
111
112
115
117
120
128
133
137
137
135
131
128
128
124
120
117
111
109
111
111
108
115
122
121
126
130
126
124
123
117
111
108
106
106
115
122
125
130
134
135
135
136
132
129
128
127
126
126
126
126
127
130
132
134
137
139
143
147
149
151
152
151
151
151
149
147
147
151
150
148
150
152
156
161
146
128
123
108
101
98
90
87
86
100
111
118
128
130
135
143
147
146
138
132
127
122
121
117
111
109
112
117
121
124
126
127
131
135
135
132
130
127
125
124
122
112
108
108
101
111
118
114
116
123
127
126
125
123
115
115
117
112
113
118
121
124
128
131
130
131
134
132
130
131
129
129
129
129
128
129
132
132
133
136
138
141
145
148
149
150
151
151
152
151
150
150
147
146
149
150
151
152
147
133
129
128
113
106
102
93
93
99
102
104
110
119
128
130
136
140
138
140
141
135
129
127
125
122
118
116
115
114
117
119
119
120
125
128
129
130
131
131
131
131
129
121
117
117
114
116
118
112
113
123
125
121
122
125
129
131
128
127
129
131
130
130
128
128
130
132
131
130
129
130
131
130
127
127
129
129
128
128
128
128
130
131
130
129
130
133
132
131
130
132
133
131
130
130
132
132
131
132
132
133
133
134
133
132
132
132
130
128
126
125
123
122
121
120
120
120
120
120
120
121
122
123
123
124
126
127
127
128
128
129
129
129
128
128
128
127
127
127
126
126
126
125
124
124
123
121
122
124
122
122
123
124
124
124
124
124
125
125
125
126
127
127
128
129
129
129
130
131
130
130
130
129
130
129
128
128
128
128
127
127
127
128
128
129
129
130
130
130
131
131
132
132
132
131
131
132
132
131
132
132
131
132
132
132
132
132
132
131
130
130
129
129
128
127
127
126
125
125
124
123
124
124
123
124
124
124
125
126
126
126
127
127
128
128
128
128
128
128
128
128
127
127
127
126
126
126
125
125
125
124
123
124
124
123
123
124
123
125
124
124
120
127
132
116
127
134
122
128
133
126
129
132
128
129
130
128
129
128
128
129
127
127
128
127
127
128
128
127
128
129
129
129
129
130
130
130
130
131
130
130
131
130
130
131
130
130
130
130
130
131
129
129
130
129
129
129
128
128
128
127
126
126
126
125
125
124
125
125
124
125
125
125
125
126
125
126
126
126
126
127
127
126
127
126
126
126
125
126
126
125
125
125
124
119
133
121
120
131
121
126
126
124
127
125
126
127
126
127
127
127
128
127
127
128
128
127
128
127
128
128
127
127
127
127
126
127
126
127
126
127
125
126
98
103
132
103
128
138
133
137
133
127
141
136
118
128
140
126
117
133
129
127
128
126
129
137
128
123
138
131
124
127
132
125
125
123
122
127
120
118
124
124
119
123
125
126
126
126
128
130
128
127
130
128
126
125
126
123
122
121
120
118
115
115
114
113
114
116
116
118
120
122
124
124
126
128
128
128
129
129
128
128
127
126
125
124
124
123
122
124
125
124
126
127
129
130
131
132
132
132
133
133
132
133
132
133
133
133
133
135
134
136
137
136
139
140
140
142
142
141
145
141
137
141
135
134
132
127
128
123
120
121
119
117
117
118
118
121
121
124
128
126
131
133
134
135
136
137
138
137
136
136
135
132
132
130
128
127
126
125
125
125
125
127
123
117
127
124
117
121
126
123
119
124
126
124
122
126
129
125
126
131
131
128
130
134
133
131
133
135
132
132
134
135
133
134
136
137
135
136
139
138
138
140
143
143
143
146
146
147
147
148
150
150
147
152
152
150
153
147
147
146
135
134
130
122
120
115
112
111
107
110
110
109
114
116
120
124
128
132
136
136
139
141
140
140
139
138
136
132
129
127
124
120
118
117
115
114
114
115
116
117
119
121
122
125
118
124
126
120
122
121
122
118
117
119
117
114
115
118
115
116
119
121
121
122
126
127
126
128
131
130
129
131
131
129
129
130
130
128
128
131
130
130
132
135
136
136
140
140
142
143
144
147
145
146
149
146
146
150
142
142
140
133
128
123
118
114
108
107
102
102
103
100
106
106
110
115
118
123
126
131
133
136
137
138
139
137
136
133
132
128
125
122
119
117
114
113
112
112
112
113
115
117
119
121
125
123
123
126
125
123
122
124
121
120
119
119
117
115
117
116
116
116
119
119
120
123
124
125
126
128
129
130
130
131
131
130
130
130
130
129
129
130
130
130
131
132
133
134
136
137
139
142
142
143
145
145
145
146
146
146
146
143
142
139
136
133
127
124
120
115
113
109
106
107
105
107
108
111
114
116
120
124
127
129
133
134
137
136
138
137
135
134
132
130
127
125
123
120
118
117
116
115
115
116
117
118
119
122
122
121
122
127
121
118
126
121
119
119
119
119
114
117
119
116
116
121
122
121
124
127
128
127
131
134
132
132
135
134
133
133
135
134
133
134
135
135
135
138
139
139
141
142
141
148
143
146
152
146
151
150
150
149
145
143
137
133
124
120
115
109
105
103
104
98
103
105
103
113
112
119
125
126
136
135
141
142
144
145
143
143
140
138
134
131
127
122
121
116
116
114
112
113
113
115
117
120
122
124
128
129
133
129
124
135
126
120
124
122
119
114
116
118
112
113
119
119
117
122
127
128
128
133
137
134
135
139
137
135
136
137
134
132
133
134
132
132
135
137
136
138
141
142
142
146
149
148
152
153
154
160
150
158
154
141
145
129
113
128
101
94
109
83
103
85
96
108
94
115
113
130
125
136
145
146
151
148
160
149
150
148
143
140
130
128
124
115
113
111
109
105
105
110
109
111
115
121
124
126
132
136
138
139
142
143
141
140
134
119
140
117
108
124
106
112
103
109
111
102
113
115
118
115
126
129
128
131
135
139
131
136
139
133
132
132
132
128
127
130
128
127
128
133
133
133
138
141
142
143
147
149
150
150
156
155
154
157
156
155
136
113
151
110
86
127
79
114
73
92
115
75
110
100
127
109
123
141
138
142
138
163
147
147
151
150
145
132
135
136
118
116
116
115
105
101
112
106
104
106
117
117
114
125
131
132
130
139
143
138
137
141
140
134
128
132
112
118
117
100
113
101
108
107
105
115
112
119
121
128
129
132
136
138
140
137
141
138
135
136
132
131
128
127
128
126
127
127
129
130
131
135
137
138
141
142
144
146
147
149
151
153
147
150
147
109
154
113
98
132
80
128
77
104
111
87
114
98
128
108
125
131
136
137
134
154
143
143
147
144
145
133
136
136
122
125
116
122
110
110
114
111
110
109
118
117
117
122
128
129
129
134
138
137
136
139
139
135
134
135
132
127
126
127
122
121
117
110
128
104
114
121
110
123
112
125
123
119
130
128
130
128
134
133
131
132
133
133
127
131
131
127
128
127
129
126
127
130
129
128
130
132
132
130
133
134
133
133
135
135
134
134
135
134
133
133
134
133
131
133
132
132
132
132
134
131
133
133
124
134
125
124
126
121
126
119
122
123
120
122
121
125
123
125
127
128
128
128
131
130
130
130
131
131
129
129
129
128
126
126
126
124
124
124
124
123
123
124
124
125
125
126
126
127
128
127
129
128
128
129
128
129
128
128
128
127
127
127
126
126
126
126
126
126
126
126
126
127
127
127
128
128
129
129
129
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
130
129
128
128
126
126
125
125
124
124
124
124
124
124
124
125
125
126
127
128
128
129
130
130
130
130
130
130
129
129
129
128
128
127
126
126
126
126
126
125
126
126
126
126
127
127
128
128
128
129
129
129
129
129
129
129
128
128
128
127
127
127
127
127
126
126
126
126
127
127
127
127
127
127
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
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
127
128
127
128
128
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
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
128
128
128
128
128
128
128
128
128
127
128
127
127
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
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
127
127
127
127
127
127
128
128
128
127
128
128
127
128
128
128
128
128
127
128
128
128
128
127
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
127
127
127
128
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
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
127
127
127
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
127
128
128
128
127
128
128
128
127
128
128
128
128
128
128
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
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
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
127
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
127
127
127
127
127
127
128
127
127
128
127
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
128
127
128
128
128
128
128
128
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
127
128
128
128
128
127
127
128
128
127
128
128
128
127
127
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
127
127
127
127
128
128
127
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
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
128
128
127
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
128
128
128
128
128
127
127
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
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
127
127
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
128
127
127
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
127
127
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
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
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
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
127
127
128
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
127
127
128
128
127
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
127
128
128
127
127
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
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
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
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
127
127
127
127
127
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
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
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
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
128
128
128
127
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
128
128
128
128
128
128
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
128
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
128
128
128
128
128
128
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
127
127
127
127
128
127
127
128
128
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
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
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
127
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
127
127
128
127
127
127
127
128
128
128
127
127
127
128
127
127
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
127
127
127
127
127
127
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
127
127
127
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
128
128
128
128
128
128
128
128
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
127
127
127
127
127
128
128
128
128
127
128
127
127
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
127
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
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
127
127
128
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
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
127
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
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
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
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
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
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
127
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
127
128
128
128
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
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
127
127
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
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
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
128
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
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
128
128
127
128
128
128
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
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
128
128
128
127
127
128
127
127
128
128
128
128
128
127
128
128
128
128
127
128
128
127
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
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
127
127
128
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
128
127
128
128
128
127
128
128
128
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
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
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
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
127
127
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
128
127
128
127
127
128
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
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
127
127
128
128
128
128
128
128
128
127
128
127
128
128
128
128
128
128
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
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
127
128
128
128
128
128
128
127
127
127
127
128
128
128
128
128
128
128
128
127
128
128
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
127
127
127
127
127
127
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
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
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
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
126
127
126
127
128
126
127
128
129
128
127
127
128
128
128
128
127
127
127
126
127
127
127
127
126
128
127
128
128
127
128
127
127
128
127
127
127
127
128
128
127
127
127
127
127
128
127
127
129
129
129
128
127
127
127
127
128
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
127
127
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
126
127
127
127
127
127
126
127
127
127
127
127
127
126
126
126
126
127
127
127
127
128
127
127
127
126
126
126
126
127
127
126
126
127
127
131
118
129
123
133
124
131
123
127
128
127
129
126
126
127
127
128
128
126
127
126
127
127
127
127
126
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
128
128
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
126
127
127
127
127
127
126
126
126
129
126
128
126
127
127
127
127
127
128
126
126
126
127
127
127
127
127
126
127
127
128
127
127
128
128
128
128
127
128
128
128
129
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
125
130
126
127
128
132
130
124
128
129
128
131
125
130
129
126
129
127
129
129
127
128
127
127
128
127
129
128
129
129
128
128
128
127
129
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
127
128
128
129
127
127
127
128
126
129
129
128
130
127
127
128
127
128
128
126
128
128
129
128
128
127
127
128
128
127
128
128
128
128
128
127
127
127
128
128
128
127
127
127
128
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
129
128
127
126
126
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
127
127
127
128
128
127
127
128
129
129
127
127
126
126
126
127
126
126
127
128
128
128
126
127
128
127
128
128
127
128
128
128
127
127
127
127
127
128
128
129
128
128
127
127
127
128
129
129
129
128
128
127
128
128
128
127
127
128
128
128
127
126
127
128
128
128
127
126
127
128
128
128
127
126
126
126
126
127
126
127
127
128
128
127
127
126
127
127
128
127
128
128
129
129
128
129
129
128
127
127
129
131
130
129
129
129
131
130
130
131
130
130
131
131
132
132
131
131
130
130
130
129
129
129
128
129
129
130
130
129
129
128
128
128
128
127
127
125
125
125
125
125
125
125
124
125
125
124
124
122
123
124
126
126
125
124
124
124
125
126
126
127
127
128
128
127
127
129
132
135
136
137
135
134
131
131
135
138
140
139
135
133
135
138
139
138
137
136
137
137
138
134
132
131
129
131
133
132
130
124
120
122
124
124
118
112
106
107
114
123
125
125
120
115
114
115
118
122
122
123
124
124
124
124
122
122
122
124
127
128
128
128
127
128
129
132
135
138
140
138
137
136
135
135
135
139
145
148
145
139
136
138
144
152
156
154
155
147
143
149
155
138
111
97
76
73
94
114
136
149
147
138
121
109
100
100
108
120
144
159
162
157
139
119
107
102
98
106
115
122
130
131
119
108
100
99
121
142
149
147
125
107
107
115
127
126
122
122
126
128
127
120
116
121
128
139
142
140
138
137
138
138
138
137
138
141
143
142
140
140
143
140
141
148
155
160
159
156
161
163
153
141
103
67
8
21
100
154
216
204
152
109
70
74
92
100
112
132
163
183
196
177
121
90
60
56
90
117
140
146
136
109
98
90
97
115
125
144
147
137
129
118
107
110
115
126
134
135
133
121
115
117
123
134
144
147
148
149
148
143
138
136
144
154
159
163
162
154
154
159
169
174
190
196
125
0
1
3
72
211
255
255
177
86
51
52
63
67
83
103
162
229
245
216
136
54
26
41
92
138
149
145
128
125
122
112
91
74
88
111
147
167
153
119
100
82
93
119
134
146
135
117
109
106
115
126
131
135
139
143
146
144
137
131
131
138
146
151
148
144
144
146
150
152
158
163
162
169
180
180
157
109
60
9
10
56
137
200
210
184
131
83
63
64
75
90
120
149
187
206
188
155
100
67
64
80
105
120
132
132
130
119
101
90
84
97
125
142
156
145
119
100
99
106
120
131
133
130
123
117
115
115
123
132
136
143
146
148
148
146
141
135
136
146
160
167
164
154
146
152
157
175
191
195
206
166
58
1
2
0
114
228
255
242
154
85
52
46
47
56
88
123
194
243
233
197
116
50
36
50
92
127
130
137
144
132
115
97
70
68
98
121
155
157
143
131
105
98
98
103
120
136
138
131
123
111
112
119
125
135
145
154
157
155
145
135
128
134
152
168
173
171
159
150
158
166
183
193
195
206
120
0
0
2
55
206
255
255
182
98
67
49
46
49
58
91
167
242
255
230
149
60
30
37
74
115
140
135
134
141
130
118
82
63
68
95
137
157
159
147
124
101
96
93
105
122
132
138
134
128
117
114
114
120
134
150
159
162
156
142
136
129
134
151
160
175
173
162
161
153
157
180
185
201
220
170
93
0
2
0
85
225
255
228
167
93
65
51
48
41
53
126
211
255
255
202
105
58
35
52
89
109
127
123
138
155
139
99
72
56
57
109
152
175
179
156
108
92
81
86
115
124
145
146
144
133
116
103
103
114
137
163
170
167
158
144
134
132
137
150
168
178
182
171
156
149
148
169
195
216
226
156
0
0
0
10
173
255
255
190
132
89
84
64
44
23
56
134
219
255
255
187
103
61
51
63
85
95
93
113
156
161
135
109
49
37
93
113
169
179
160
139
116
92
84
94
102
133
153
159
147
129
109
101
105
117
141
156
175
176
165
144
133
133
146
161
171
180
170
170
162
159
158
175
189
213
170
8
2
0
1
144
218
241
185
140
115
102
91
61
30
42
94
175
226
250
209
148
111
76
70
72
71
61
70
113
147
164
142
101
75
77
93
127
141
138
139
132
123
120
110
106
108
117
126
138
139
138
132
121
116
117
131
149
163
166
165
160
154
157
153
152
156
161
162
167
167
161
171
182
195
182
114
12
1
1
24
118
173
173
166
149
134
136
130
103
79
69
75
111
156
183
187
179
158
136
129
115
90
60
52
56
76
110
133
141
147
148
147
144
136
125
115
111
110
117
127
133
137
134
132
130
130
133
135
135
139
145
152
156
161
161
161
162
165
170
175
177
179
180
181
182
184
187
187
189
190
191
189
185
182
178
170
156
148
135
122
111
106
100
89
81
77
71
71
77
80
82
85
85
85
88
93
94
95
94
89
88
89
88
84
84
82
82
88
91
90
91
93
94
99
104
107
110
114
114
115
118
118
117
117
117
116
117
119
118
117
117
115
115
117
118
118
120
120
120
122
123
123
123
124
126
128
130
131
129
129
126
127
129
129
129
128
129
126
125
125
122
117
117
118
115
114
113
112
109
111
114
116
120
124
125
127
130
130
131
131
133
130
130
130
127
124
122
120
118
120
121
121
123
125
126
128
130
130
131
131
132
133
135
136
134
134
132
132
132
133
133
134
133
133
133
133
133
131
132
132
132
136
136
137
136
136
136
137
139
138
139
139
137
137
138
135
132
130
129
126
125
124
122
116
115
115
115
116
119
120
119
121
125
126
129
131
132
133
134
134
132
130
128
125
124
122
121
120
121
120
121
122
123
125
126
128
129
131
132
132
132
132
132
131
132
132
132
132
131
130
130
130
129
128
129
128
130
130
132
131
131
131
132
133
134
136
134
135
134
135
135
133
133
133
132
131
129
128
124
121
119
118
115
114
114
112
112
113
114
115
118
121
124
127
131
132
132
133
131
130
128
126
124
123
122
118
117
117
117
117
119
121
121
125
126
128
129
131
130
131
132
132
132
131
131
130
130
129
129
129
129
129
130
130
129
128
126
129
128
131
131
133
133
134
135
135
135
134
135
135
136
134
136
136
134
131
129
126
125
123
121
118
115
112
111
111
112
112
114
116
120
123
127
129
131
133
135
136
135
134
132
130
126
123
120
119
118
117
115
115
116
117
118
120
122
125
128
130
131
132
132
132
132
133
132
132
132
132
131
130
129
128
127
127
126
127
128
129
129
130
131
133
133
134
135
135
136
136
136
136
135
136
134
136
136
136
135
136
133
129
126
125
123
120
118
115
112
111
112
111
111
112
116
120
124
127
131
133
135
137
138
138
137
136
133
129
126
123
121
118
116
116
115
115
115
116
117
115
116
114
119
124
125
129
133
136
136
135
134
133
132
131
130
128
127
126
125
123
122
122
123
124
125
127
131
132
135
137
139
141
143
144
143
143
142
141
142
141
141
140
140
142
147
152
145
131
110
103
105
104
99
94
97
101
116
121
119
120
126
133
141
143
139
136
138
145
146
144
138
133
132
131
127
111
99
99
99
100
99
96
98
109
124
131
132
134
137
141
141
135
125
121
123
122
119
116
114
116
120
122
121
118
125
129
130
132
133
136
140
142
139
137
142
144
145
146
147
147
149
150
149
151
152
155
159
158
163
171
171
173
176
181
186
190
166
101
86
108
100
63
74
101
130
140
142
139
157
177
149
130
139
155
140
130
137
146
156
151
140
139
147
130
110
103
111
105
98
98
118
131
135
132
143
157
145
125
120
116
114
99
94
103
108
104
104
119
124
122
116
126
131
127
123
126
130
130
123
123
129
127
118
120
125
123
121
121
126
129
128
128
136
139
137
143
149
148
142
145
138
132
135
132
124
125
132
129
130
138
142
149
161
138
109
65
58
97
55
39
104
126
121
118
146
137
129
117
100
120
110
96
104
134
138
123
145
150
142
127
116
104
99
87
78
94
103
102
111
142
143
136
138
137
129
115
102
95
98
94
88
108
115
113
120
126
120
117
114
112
117
116
117
128
136
133
135
139
133
127
125
120
120
119
121
124
131
132
132
138
140
138
140
143
144
145
147
146
143
149
145
134
139
139
133
132
139
137
141
143
146
151
153
155
145
132
121
78
53
111
88
57
119
140
131
132
153
139
134
126
108
126
117
109
120
147
139
135
151
151
134
124
117
105
98
93
93
111
120
123
138
156
154
150
139
149
121
107
110
112
101
99
111
119
118
119
121
128
119
112
113
119
113
118
126
135
134
138
140
138
130
123
122
123
118
118
126
131
132
136
141
141
140
140
141
140
139
138
142
142
138
140
142
144
140
138
144
144
134
138
146
145
135
151
155
148
147
152
153
152
142
127
107
61
68
116
56
71
131
143
129
139
159
141
139
122
114
131
114
111
125
148
134
135
149
147
128
121
114
107
100
93
102
120
126
134
145
159
153
149
147
140
126
113
97
102
115
94
103
132
127
121
130
134
121
119
114
115
117
115
117
130
133
131
137
137
128
120
120
118
115
117
124
129
132
135
140
142
140
138
140
140
137
135
137
136
132
131
134
134
129
134
143
140
135
141
146
144
137
140
154
148
138
148
154
146
150
164
155
136
120
48
79
116
53
62
148
139
123
145
171
137
140
117
117
125
111
99
130
145
132
134
160
149
133
122
120
104
99
89
104
117
120
128
150
159
154
149
150
139
129
114
110
109
106
107
119
128
108
129
142
115
122
136
120
113
120
122
116
125
123
129
133
124
119
128
120
109
115
121
118
121
128
132
134
134
135
141
138
135
138
141
137
135
137
135
131
129
131
129
126
131
137
137
138
140
143
147
141
138
146
141
140
148
152
155
159
152
145
99
70
86
103
58
73
133
139
129
143
159
148
131
118
121
124
106
111
130
141
132
144
155
149
130
123
120
107
95
96
105
116
121
135
148
155
150
149
149
137
122
115
113
111
108
114
122
129
130
134
136
106
126
129
102
108
136
121
120
134
139
127
130
121
117
116
106
103
121
120
118
129
138
129
131
134
131
130
131
129
137
138
136
140
143
136
131
132
126
126
126
124
130
140
138
137
145
146
135
142
149
144
148
161
154
143
145
109
92
82
109
80
80
123
135
131
134
149
140
132
124
120
124
117
114
129
140
136
137
148
144
130
120
119
109
100
100
108
117
122
134
143
150
147
146
145
137
125
118
117
114
112
117
122
127
128
131
133
131
127
125
125
123
121
125
128
132
128
138
138
131
111
130
121
101
108
121
111
107
122
128
126
129
133
136
133
128
130
133
126
122
131
132
128
126
133
131
127
126
130
127
124
128
134
130
132
134
138
132
135
135
136
133
127
129
130
126
125
132
131
129
132
138
135
135
135
133
129
128
123
122
121
121
121
125
124
124
126
125
123
124
124
122
123
125
126
127
129
130
131
131
129
127
125
123
120
120
120
121
123
124
126
128
130
130
129
128
128
128
126
125
126
127
125
126
123
125
126
124
121
124
126
125
125
127
130
130
129
131
135
130
128
133
132
127
128
131
127
124
130
129
127
127
130
130
127
129
131
130
130
131
134
133
129
131
133
128
126
133
132
126
130
137
128
119
125
126
116
119
123
125
123
125
128
131
127
125
128
129
123
123
127
126
123
126
129
128
126
127
128
126
123
122
123
123
121
124
127
127
127
129
130
129
128
127
128
127
125
126
127
127
127
128
128
128
128
128
128
127
127
128
127
128
129
129
129
129
129
128
128
128
125
126
127
125
127
128
127
126
128
127
127
127
128
127
127
128
127
127
128
127
127
127
127
125
127
127
126
126
127
126
127
127
127
127
128
127
128
128
127
127
128
128
127
127
127
128
127
126
128
128
126
127
129
128
127
128
128
127
127
127
127
127
127
127
127
127
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
127
128
127
127
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
127
127
128
128
127
128
128
128
127
127
128
128
127
127
128
128
127
128
128
127
127
128
128
127
127
128
127
127
127
128
128
128
128
127
128
127
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
127
127
128
127
128
128
127
128
127
127
128
128
127
128
128
128
127
127
127
127
127
127
128
127
127
128
128
128
127
128
128
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
128
128
127
127
128
128
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
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
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
128
128
127
127
127
127
128
127
127
127
128
127
127
128
128
127
127
128
128
127
127
127
128
127
127
127
127
127
127
128
128
127
128
128
127
127
128
127
127
128
128
128
127
128
128
127
127
128
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
128
127
127
128
128
127
127
128
128
128
127
128
128
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
129
127
127
128
127
127
127
128
127
127
128
128
127
128
128
128
127
128
128
128
127
127
128
127
127
127
128
127
127
128
128
127
127
128
128
128
128
127
128
128
127
128
128
127
127
128
127
127
128
127
127
127
128
127
128
128
127
128
128
127
127
128
127
127
128
127
127
128
128
127
128
128
127
127
128
127
127
128
127
128
128
127
128
128
127
128
128
127
127
129
128
127
128
129
127
127
129
128
127
129
129
128
129
128
128
128
128
127
128
128
127
128
129
128
127
129
129
127
128
129
127
127
129
127
128
129
128
128
128
128
128
128
127
127
129
127
128
129
128
128
128
128
128
128
127
128
128
127
128
128
128
127
129
128
126
128
128
127
128
128
127
129
129
126
128
129
127
127
129
127
126
128
128
127
128
129
127
127
128
128
127
128
129
127
127
128
128
127
128
128
127
128
128
127
127
129
127
127
129
128
127
129
129
127
128
129
127
127
127
127
128
128
127
128
129
128
126
129
128
126
128
128
128
128
128
127
129
129
126
127
129
128
127
128
129
128
127
127
129
128
126
127
130
126
126
130
129
126
127
128
127
127
127
127
128
129
128
128
129
127
125
127
128
125
127
129
127
128
129
127
126
128
128
125
129
129
126
128
130
126
128
130
127
126
130
128
125
129
128
125
128
129
126
126
129
127
126
127
128
127
127
128
127
128
128
127
127
129
127
125
128
128
126
127
129
126
127
128
127
127
127
126
127
128
126
128
129
126
127
129
127
125
129
127
126
129
129
126
127
129
126
127
128
127
127
127
128
129
127
128
129
128
127
128
128
127
128
127
127
128
127
126
128
129
127
127
129
128
126
127
129
127
127
128
128
127
128
128
127
128
128
127
129
128
126
128
129
127
127
129
128
127
127
127
127
127
127
128
128
127
127
129
127
126
127
129
128
127
128
129
127
126
128
128
126
127
128
128
127
128
128
128
128
127
127
129
128
127
127
129
129
126
127
130
127
127
129
128
126
128
128
127
128
129
127
127
129
128
126
127
128
127
126
128
129
127
126
128
129
126
126
129
129
126
127
129
128
126
128
129
127
127
129
128
126
128
127
127
128
128
127
129
128
126
128
127
126
128
128
127
127
128
128
126
127
127
128
126
127
129
128
127
128
128
127
127
128
127
128
128
127
128
128
127
126
128
127
126
128
128
127
128
128
127
128
128
127
128
129
127
127
128
128
126
127
128
128
127
127
129
128
127
128
129
128
127
129
129
128
128
128
127
126
127
128
128
128
128
128
127
127
127
126
128
128
128
129
128
127
128
128
126
127
129
127
128
129
128
128
128
128
127
127
126
127
127
126
128
128
127
128
129
127
127
129
126
126
129
128
128
129
128
126
129
127
125
128
129
126
127
129
126
127
129
128
127
129
129
127
128
127
127
129
128
128
128
128
127
128
128
127
128
127
127
128
128
128
128
128
128
128
127
127
127
126
129
129
127
129
129
127
126
128
127
126
128
129
128
128
128
128
127
126
127
128
127
126
128
129
127
127
129
128
127
127
129
127
128
129
128
128
128
127
127
127
127
128
128
128
129
128
127
128
128
126
127
128
127
128
128
127
127
127
126
126
128
127
126
127
128
127
128
127
127
127
127
127
127
127
127
127
127
126
126
127
128
128
127
128
128
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
128
128
127
128
129
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
128
127
127
128
128
128
128
128
127
127
128
128
128
127
126
127
127
127
127
127
128
127
127
127
127
127
127
127
128
129
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
127
127
128
127
126
127
128
127
127
128
127
127
127
127
127
127
127
128
128
127
128
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
128
128
127
127
128
128
127
127
128
128
127
127
128
128
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
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
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
127
128
128
127
127
128
128
128
128
128
128
127
127
128
128
127
127
127
127
127
127
128
127
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
126
126
126
126
127
127
126
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
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
127
127
127
127
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
126
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
128
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
128
127
127
127
127
127
127
128
127
128
127
127
128
127
128
128
127
127
127
128
128
128
127
127
128
128
127
128
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
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
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
128
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
126
127
127
127
126
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
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
128
129
128
128
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
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
128
128
128
129
129
129
129
128
128
128
128
128
128
128
128
128
128
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
126
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
126
126
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
127
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
129
129
129
129
129
129
129
128
128
129
129
128
129
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
128
128
128
129
129
129
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
128
128
127
127
128
128
127
127
127
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
128
128
127
127
127
127
127
127
127
128
127
128
127
127
128
127
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
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
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
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
128
127
127
128
127
127
128
127
128
127
128
128
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
130
129
129
130
130
130
130
130
130
130
130
130
130
130
129
129
129
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
125
126
125
125
126
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
129
130
130
130
130
130
130
129
130
130
129
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
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
129
129
128
128
128
129
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
128
129
129
129
129
129
129
129
129
129
128
129
129
128
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
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
129
128
129
129
129
129
129
129
128
128
128
128
128
128
129
129
129
129
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
127
127
127
127
126
127
127
127
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
125
126
126
126
125
126
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
127
127
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
128
128
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
127
127
128
128
127
127
127
127
128
128
128
127
128
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
128
127
127
127
127
128
128
127
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
127
128
128
128
127
128
128
128
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
128
128
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
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
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
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
127
127
127
128
128
128
127
128
127
127
128
128
128
127
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
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
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
128
128
128
128
127
128
127
127
127
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
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
129
129
128
129
129
129
128
128
128
129
128
129
128
129
129
129
128
128
128
129
129
128
128
128
129
129
129
129
129
129
129
129
129
129
129
128
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
127
128
127
127
127
127
128
128
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
127
128
127
127
127
127
128
128
128
128
128
128
127
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
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
127
127
127
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
127
127
127
128
128
128
127
127
127
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
128
128
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
127
127
128
127
128
127
127
128
128
128
127
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
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
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
127
127
128
128
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
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
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
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
127
128
127
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
126
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
127
127
127
127
127
127
127
127
127
128
128
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
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
127
128
127
127
127
128
128
128
128
128
128
128
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
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
128
128
128
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
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
127
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
127
127
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
128
128
128
127
127
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
128
127
127
127
127
127
127
127
127
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
128
128
128
128
127
128
128
128
128
128
127
128
128
128
127
127
127
127
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
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
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
127
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
128
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
127
128
128
127
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
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
128
128
127
127
127
127
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
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
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
128
127
127
128
128
127
127
128
128
128
127
127
127
127
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
127
127
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
127
127
127
127
128
127
127
127
128
128
127
127
128
128
128
128
127
127
128
128
128
127
128
128
127
127
127
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
127
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
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
127
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
127
127
127
127
127
128
127
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
128
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
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
128
128
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
127
128
128
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
128
129
129
128
128
126
127
129
128
127
125
127
127
129
128
127
127
127
128
129
128
126
126
127
128
128
128
127
127
128
129
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
127
127
127
127
127
127
128
128
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
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
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
127
127
127
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
127
127
128
128
127
127
128
128
128
128
127
128
128
128
128
127
127
127
128
128
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
127
127
128
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
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
128
128
127
127
127
127
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
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
128
128
128
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
128
128
127
127
127
127
127
128
127
128
128
127
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
128
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
127
127
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
128
128
127
128
128
128
128
128
127
127
128
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
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
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
128
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
127
127
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
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
127
127
127
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
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
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
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
127
127
127
127
127
127
127
128
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
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
128
128
128
127
127
128
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
128
127
127
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
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
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
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
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
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
127
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
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
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
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
127
127
128
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
127
127
127
128
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
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
128
125
130
123
135
92
119
126
119
123
123
125
130
129
127
125
125
124
127
125
124
124
123
120
122
123
123
122
126
109
114
119
121
130
127
127
125
130
129
127
123
116
120
122
123
106
109
107
113
116
120
125
131
127
129
129
130
129
129
123
119
120
117
118
121
118
121
125
130
134
139
136
137
141
140
139
138
133
129
130
129
130
131
128
128
132
134
136
139
136
135
137
137
137
135
131
129
131
130
129
129
127
131
134
135
136
138
138
137
137
136
133
132
131
130
131
130
131
133
134
135
136
136
137
138
140
139
140
140
139
140
139
137
136
136
136
137
138
138
139
139
140
140
140
141
139
139
138
137
139
140
141
142
141
140
139
140
140
139
139
138
139
140
140
139
138
137
138
138
136
135
134
133
134
133
133
133
133
133
132
131
130
129
129
129
128
127
125
124
124
124
124
123
122
123
123
123
123
121
119
118
119
118
120
119
117
117
117
117
118
118
116
116
117
116
117
117
116
115
115
115
115
117
118
117
118
118
117
118
119
119
120
120
121
122
122
124
124
124
124
123
123
125
126
126
126
125
123
124
123
124
127
127
127
126
125
125
126
126
124
123
123
120
121
121
120
123
122
121
120
121
125
126
127
125
122
122
121
123
124
123
122
118
117
115
114
114
112
111
109
107
108
111
114
115
116
116
116
117
117
118
119
119
119
120
121
123
124
126
126
127
127
127
129
130
132
134
136
137
136
136
135
135
137
140
140
142
142
141
141
142
141
141
142
139
138
140
142
143
145
145
144
144
144
139
133
126
117
111
112
111
110
109
107
105
103
106
110
118
127
134
137
137
135
129
120
113
103
95
92
86
86
94
104
119
133
142
143
138
129
118
113
111
114
122
127
129
129
128
127
127
130
132
135
137
137
139
140
141
142
143
142
141
141
142
144
150
154
157
159
156
155
153
151
151
150
153
156
159
164
162
158
150
124
98
74
46
41
47
64
94
120
144
157
164
165
160
161
157
151
144
129
112
95
82
77
81
94
110
123
129
130
123
113
110
110
116
125
130
128
121
111
101
98
104
113
126
136
139
137
132
127
124
127
130
132
131
127
122
122
124
131
138
145
148
148
146
144
143
143
146
149
151
151
149
145
141
139
140
145
151
159
164
168
165
160
150
128
103
79
56
44
46
60
81
110
134
151
161
164
160
157
154
151
147
141
130
116
102
88
81
79
84
94
101
112
117
123
128
133
138
139
137
131
121
112
105
104
109
118
128
136
141
140
137
133
131
131
133
136
139
140
138
136
132
131
131
134
137
141
145
146
149
149
149
147
145
143
140
138
136
137
140
145
149
153
154
151
146
136
123
109
95
85
80
79
87
96
110
122
132
141
145
147
148
148
147
145
141
136
128
121
113
106
98
97
95
94
100
103
112
124
134
143
148
147
140
131
122
114
114
117
124
133
139
142
141
137
133
129
129
130
133
137
140
141
140
137
133
130
128
128
131
134
138
140
141
140
137
134
131
129
129
131
134
137
139
139
137
135
132
130
130
130
130
130
128
126
121
116
112
109
110
112
115
119
123
125
127
128
129
129
131
133
134
135
135
132
127
123
117
112
109
108
110
115
121
128
135
139
140
138
133
128
124
122
123
127
131
134
136
134
131
126
122
120
121
125
131
135
138
137
134
129
125
122
123
125
130
134
136
137
135
132
129
127
127
128
130
132
133
134
133
131
128
127
126
127
129
130
130
130
129
127
124
123
122
122
124
126
128
129
129
128
127
125
124
123
123
124
125
127
127
127
127
126
126
125
125
125
126
128
129
130
130
129
128
128
127
126
126
127
128
129
130
130
130
129
128
127
127
127
128
128
129
130
130
129
129
128
127
127
128
128
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
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
128
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
126
126
126
126
126
126
127
127
127
126
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
127
126
126
127
127
127
126
126
126
126
126
126
126
127
127
127
127
126
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
127
127
127
127
127
127
127
127
126
127
126
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
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
129
129
128
127
127
127
127
127
128
128
128
129
128
128
127
127
125
127
127
128
128
128
127
127
127
127
126
127
126
126
125
125
123
123
121
120
117
118
117
111
116
117
131
141
154
152
145
132
115
106
105
109
122
135
145
145
142
135
124
119
119
122
130
136
139
136
133
124
117
118
120
125
135
137
141
140
138
132
131
124
125
122
123
120
120
116
119
124
124
127
128
121
125
123
130
131
139
135
134
130
124
120
122
122
128
131
136
135
136
133
129
129
129
129
134
133
134
131
130
126
125
125
125
127
131
132
134
132
130
126
128
128
129
132
132
130
128
126
124
125
128
131
134
134
134
132
130
128
129
129
131
132
132
131
129
129
129
131
132
132
131
131
130
130
130
132
133
134
134
133
132
130
129
130
132
134
135
136
135
134
132
131
133
134
136
137
137
136
135
133
133
134
135
135
135
135
134
134
135
136
136
136
136
135
134
133
132
132
131
132
131
131
130
130
131
131
131
130
130
129
128
126
125
126
125
126
129
129
130
129
128
127
127
128
129
133
135
137
139
138
138
136
134
133
133
134
134
136
136
136
137
137
138
138
139
138
139
138
136
134
132
130
129
130
132
135
136
136
131
119
103
85
68
59
59
68
83
102
117
125
129
125
120
114
110
108
108
109
110
111
113
114
117
119
120
124
127
130
134
138
141
143
143
140
138
135
134
137
140
146
154
163
174
183
192
200
205
191
157
118
62
10
0
4
0
16
66
111
151
176
189
197
199
189
183
165
136
109
75
46
33
32
37
58
86
99
119
133
133
144
148
142
135
120
101
85
82
82
91
111
119
130
138
137
142
149
156
160
163
157
146
142
136
138
150
160
174
187
194
200
212
228
205
150
94
8
0
5
0
6
82
141
170
190
193
186
198
211
205
196
162
104
55
21
6
23
62
97
127
144
140
141
147
147
151
144
120
92
72
61
66
89
108
123
132
129
128
135
143
154
162
160
150
141
134
131
135
139
143
148
155
166
185
205
220
234
239
247
223
139
66
1
0
4
1
7
86
143
165
184
208
219
231
252
228
184
139
70
24
13
18
38
73
100
107
123
146
154
179
194
172
145
109
67
49
59
70
89
112
117
120
137
147
158
172
166
151
144
136
135
145
152
144
140
136
134
154
182
209
232
243
241
245
234
160
85
13
0
4
2
0
48
120
149
171
204
231
241
255
241
189
136
84
38
21
31
38
54
77
95
113
143
175
186
195
185
147
113
85
58
53
62
70
80
100
119
136
160
171
165
161
150
137
140
145
145
143
140
128
125
135
151
168
193
213
221
230
238
246
241
176
89
8
0
5
0
7
55
95
127
152
186
233
255
255
242
190
131
85
62
50
46
44
42
45
70
105
138
176
189
180
166
144
123
106
89
75
65
62
74
92
117
140
151
155
154
152
155
158
160
157
147
139
133
130
134
142
150
161
177
197
214
226
236
245
232
164
81
15
0
5
0
18
50
63
92
135
179
221
252
248
219
181
151
126
107
90
69
42
27
37
64
94
118
138
147
148
153
159
156
138
111
90
82
80
88
101
109
114
120
131
144
155
161
165
162
156
152
150
148
143
136
133
136
144
157
173
184
189
191
196
203
190
144
91
57
46
52
57
59
65
72
80
98
124
153
173
174
164
155
153
155
154
142
124
107
97
97
103
106
102
96
92
98
114
131
139
136
127
120
124
131
135
133
127
122
124
129
134
135
132
127
125
126
129
131
130
127
124
124
128
132
134
134
133
132
134
137
139
141
141
141
142
144
144
139
131
122
116
114
115
117
115
111
108
109
112
116
117
116
115
117
122
127
129
128
127
128
131
132
130
125
123
124
126
125
121
117
116
119
123
125
123
122
121
123
126
127
126
126
126
127
130
132
132
131
130
130
131
132
133
133
131
131
132
134
135
136
137
138
141
145
148
146
140
132
124
121
120
121
120
115
108
103
105
110
113
113
112
113
117
122
127
131
134
136
136
134
133
135
135
133
128
123
121
122
121
117
114
113
116
120
122
121
120
121
123
126
129
131
132
132
132
133
134
135
135
133
131
130
131
133
133
131
131
131
133
136
138
139
141
144
148
153
153
146
136
125
119
118
118
116
110
103
99
100
105
110
114
118
120
122
124
130
140
147
144
134
127
129
134
131
121
114
113
116
114
106
101
99
92
89
98
115
124
123
124
135
146
142
136
136
138
134
126
123
128
131
127
125
131
140
147
150
149
154
163
168
169
171
176
180
188
193
170
126
87
58
41
45
53
60
67
69
83
117
149
172
186
182
174
168
161
160
153
130
104
84
72
75
82
83
82
85
95
114
130
139
144
139
129
126
125
124
119
109
102
101
105
117
131
137
139
139
142
150
154
155
151
144
140
141
145
151
155
160
167
175
186
202
215
228
226
174
107
67
41
19
14
25
32
38
61
109
152
183
208
217
204
188
181
170
150
122
95
67
49
54
72
89
104
115
117
125
139
156
162
149
125
106
91
85
93
101
105
106
112
118
127
136
143
142
136
134
132
133
137
137
131
125
125
133
144
157
167
170
173
179
185
191
195
196
196
204
195
142
90
53
20
13
23
38
58
76
101
136
163
190
208
198
182
160
136
119
109
97
87
79
79
90
106
127
142
141
131
124
117
116
115
106
97
93
92
99
116
131
138
139
135
127
121
122
120
117
114
111
109
116
126
134
139
141
143
147
154
162
167
167
164
159
156
160
166
172
179
185
194
201
168
122
87
46
32
35
39
59
80
99
125
151
170
183
182
168
152
130
116
106
101
99
99
103
112
125
138
146
147
137
117
101
91
85
84
83
87
96
109
126
141
150
150
142
130
118
111
108
109
111
112
113
116
123
133
142
148
150
153
158
163
167
168
164
158
155
157
163
173
180
188
197
204
168
121
80
33
9
7
37
59
96
127
140
164
176
181
181
169
146
120
101
89
88
99
108
120
131
138
146
150
146
129
110
90
74
75
77
85
102
115
127
142
151
154
151
140
122
108
98
95
102
107
112
115
118
122
130
139
144
148
150
151
152
154
153
150
148
147
147
153
160
167
176
182
188
200
208
175
130
90
34
20
15
28
67
89
123
141
157
169
170
171
155
136
117
97
95
98
108
124
134
145
145
147
143
130
117
88
73
62
61
77
88
110
129
143
157
159
157
146
131
115
100
96
96
104
114
118
121
121
126
132
139
146
149
151
154
156
159
159
156
151
148
151
157
165
175
181
184
186
188
164
124
89
54
14
13
41
58
109
138
150
163
164
159
156
149
131
114
102
92
98
117
130
148
156
152
143
134
123
105
89
69
60
63
77
95
120
140
153
160
157
146
135
121
107
100
96
99
107
117
124
128
130
129
134
139
142
147
148
149
151
153
153
152
151
150
152
158
165
172
178
179
177
179
178
145
109
78
54
45
37
63
79
101
130
139
151
154
149
142
132
120
114
112
118
123
136
144
149
153
145
134
123
105
84
71
65
65
81
96
109
131
145
154
159
152
138
125
113
103
103
105
109
116
122
124
127
130
130
135
137
138
144
147
150
155
156
153
152
151
152
157
162
167
170
171
171
173
176
179
154
112
83
61
66
66
70
85
90
108
127
142
149
145
133
123
117
122
126
135
139
140
144
148
152
149
139
120
100
78
69
69
78
88
101
113
123
138
149
152
148
136
122
116
112
110
110
112
114
119
125
127
129
129
129
131
134
137
142
146
148
151
152
153
155
155
155
156
158
161
165
168
166
166
167
174
162
124
97
79
80
83
77
77
80
92
112
131
135
132
123
122
125
134
139
139
139
140
147
152
152
143
129
112
100
94
82
73
76
80
95
115
124
129
139
141
142
141
131
121
116
113
111
115
117
120
124
124
124
125
125
125
129
131
135
141
146
150
153
154
153
154
155
155
157
158
158
160
164
163
166
170
174
151
116
97
88
93
83
73
70
80
99
117
122
117
116
120
133
137
139
134
137
145
155
157
151
141
130
125
116
106
91
75
71
83
91
100
107
111
126
141
143
139
132
126
126
125
120
115
116
119
125
126
121
118
120
123
125
126
126
132
141
147
149
150
151
155
157
156
153
153
155
156
157
155
155
159
163
166
156
127
111
110
112
88
72
74
87
99
103
101
102
117
126
133
128
130
135
148
152
150
147
146
148
143
133
119
112
106
96
86
87
88
93
97
104
115
126
131
134
133
134
134
131
127
125
128
129
131
127
126
125
125
123
121
122
123
129
132
136
139
145
148
150
151
151
152
151
151
150
150
150
150
149
148
148
150
149
135
126
124
121
104
96
95
96
95
95
97
101
108
113
117
121
129
133
138
140
142
143
144
141
138
135
131
127
123
118
113
113
112
107
107
110
111
113
116
116
119
121
122
124
127
129
131
133
133
133
133
131
130
130
129
127
127
126
126
127
128
129
130
131
133
134
134
136
138
139
141
143
144
146
148
148
150
151
151
145
139
137
132
119
113
110
101
99
100
93
94
102
104
107
116
120
126
134
135
137
144
144
142
144
142
139
139
133
126
127
122
113
111
109
106
107
106
104
109
112
112
117
121
125
131
134
134
138
139
136
136
136
133
132
129
127
128
127
125
125
126
126
127
127
128
131
133
135
138
140
141
143
145
147
149
149
149
151
150
143
137
134
129
121
113
107
103
100
96
94
97
102
104
107
114
121
126
131
135
140
143
142
142
144
142
139
135
131
128
123
117
113
112
110
108
107
107
108
111
112
116
121
125
128
132
134
136
137
137
137
136
134
133
132
130
129
128
127
127
126
126
127
129
130
131
133
136
137
139
141
143
145
146
147
149
149
150
150
145
139
136
132
123
115
110
106
103
99
95
98
103
103
107
115
120
125
130
134
140
142
142
143
145
143
140
138
134
130
126
120
114
112
110
108
108
106
106
110
112
114
118
124
128
131
134
137
139
139
139
139
138
135
132
131
130
128
128
127
127
127
127
129
130
131
133
136
137
139
141
143
145
146
147
148
149
151
148
141
136
135
128
118
114
109
104
100
96
97
101
101
104
112
117
121
127
132
137
141
141
142
144
143
140
139
137
134
128
123
122
116
109
107
108
106
105
105
108
112
113
117
124
129
130
134
138
139
139
138
138
137
134
130
130
128
126
126
126
126
125
126
128
129
130
132
135
137
138
140
142
143
144
145
146
147
147
148
145
138
134
132
125
117
112
109
106
100
97
100
103
103
106
113
118
122
126
132
137
139
139
141
142
141
138
137
136
130
126
124
120
114
109
109
108
106
105
107
110
112
114
119
125
127
130
134
138
136
137
138
137
135
133
131
129
128
126
126
125
125
126
127
129
130
131
135
137
139
141
143
144
145
146
147
148
148
149
147
144
141
133
128
123
118
107
106
103
100
96
100
101
105
107
115
121
124
129
135
140
141
143
144
144
141
140
137
133
127
123
117
113
109
105
105
106
105
106
109
112
115
119
124
129
132
135
138
140
140
139
139
137
134
132
130
127
126
125
125
125
126
127
129
131
133
135
138
140
141
143
144
145
146
146
146
146
146
147
145
141
140
131
127
122
117
107
105
104
100
97
99
103
104
108
114
122
123
129
134
140
140
143
144
144
140
138
137
132
127
123
121
114
111
108
107
103
104
108
108
110
115
119
121
125
130
134
136
139
142
141
140
138
137
134
131
129
127
125
125
126
126
127
129
132
134
136
138
140
143
144
146
146
145
146
150
147
148
149
150
144
144
141
130
129
121
119
107
108
105
101
99
102
106
107
112
119
126
127
134
139
144
144
147
147
145
143
140
138
133
129
124
121
115
110
109
108
105
106
109
111
112
115
121
122
127
132
136
137
139
143
142
141
139
138
134
131
129
127
125
124
126
126
127
129
132
134
136
139
141
142
144
146
146
147
146
147
146
146
147
148
143
140
142
130
127
121
119
109
103
106
99
98
98
103
105
108
114
123
125
131
137
142
143
145
147
145
141
139
137
131
127
122
118
112
108
105
102
104
103
104
107
110
112
116
120
124
128
131
135
136
138
139
139
137
136
134
130
127
125
124
122
122
123
125
126
128
131
134
136
140
141
143
145
145
147
145
144
146
143
145
145
146
137
136
139
123
124
117
112
110
98
104
100
95
99
102
106
108
116
123
126
132
137
144
143
145
148
144
141
137
137
129
125
122
116
110
105
105
100
99
102
104
106
110
115
118
120
126
129
132
134
137
139
137
138
138
135
132
130
128
124
123
123
123
123
125
128
130
132
136
139
140
143
146
146
147
148
147
145
146
145
143
143
145
144
132
135
136
118
121
117
109
109
102
102
102
100
102
108
113
112
122
129
129
135
141
144
144
145
145
142
139
135
132
127
122
119
115
109
104
103
103
100
101
109
111
111
119
125
124
127
133
133
133
136
138
136
134
134
133
129
127
127
125
122
123
126
126
127
131
134
134
138
142
143
143
146
148
146
147
148
146
145
145
143
143
142
145
141
127
136
129
113
116
114
106
100
103
103
98
103
106
110
114
118
127
131
134
137
143
143
141
144
141
137
133
129
126
120
116
114
110
106
103
104
103
101
106
110
113
116
122
126
127
130
132
133
131
132
132
130
129
128
127
125
124
124
124
124
125
127
130
131
134
138
140
140
143
145
145
145
146
147
146
144
145
145
143
143
145
146
144
148
142
129
135
129
115
114
113
106
101
104
103
100
107
110
113
119
125
130
133
139
141
142
143
144
142
138
136
132
126
123
120
115
112
111
108
105
104
103
107
109
109
114
122
125
124
131
135
131
131
133
132
128
127
128
125
124
123
123
124
125
126
127
131
133
135
139
142
143
144
145
147
146
145
147
147
145
144
147
145
144
147
149
148
147
153
151
133
131
133
120
107
106
107
99
95
101
101
104
110
116
121
128
135
136
139
145
145
141
141
142
136
130
128
125
119
115
114
112
109
110
107
106
109
105
107
115
118
116
121
130
130
127
131
132
129
126
125
122
120
121
118
118
121
123
123
125
131
133
134
138
141
142
143
144
144
142
143
143
141
141
143
142
142
146
145
147
150
152
154
155
158
153
136
129
124
111
100
96
95
88
92
100
99
104
115
123
126
133
142
142
142
145
144
139
137
136
130
125
124
120
115
114
114
113
111
113
113
110
112
112
109
112
118
121
119
122
127
128
127
125
122
121
121
119
115
114
117
119
120
123
126
130
134
138
139
141
143
143
142
141
139
138
137
137
137
137
140
143
146
149
151
152
155
157
159
162
163
162
158
142
122
112
101
93
87
84
83
87
100
108
113
121
132
141
145
149
148
145
144
142
135
128
125
123
120
118
115
113
114
115
116
116
117
119
120
122
120
119
120
118
118
119
124
124
121
120
118
116
115
112
110
109
113
115
118
121
125
129
134
138
140
140
142
141
139
137
134
131
129
129
129
130
132
135
140
144
148
153
158
160
158
159
160
160
161
162
162
155
136
114
97
87
82
79
78
81
90
102
116
127
134
140
146
151
153
149
142
134
129
124
120
116
113
112
113
116
118
119
120
122
124
125
123
125
123
123
125
122
121
118
116
117
117
120
119
116
113
109
109
107
108
111
114
120
124
129
133
135
138
138
140
139
137
134
131
130
128
126
126
126
128
131
136
141
145
151
154
158
159
162
161
157
156
154
154
157
158
160
157
137
110
90
83
78
79
84
86
91
105
122
135
144
149
147
146
148
144
136
126
118
110
108
111
113
114
116
119
122
127
132
131
129
127
124
123
124
123
122
118
112
116
112
114
117
118
121
119
120
114
110
108
104
106
111
117
123
128
133
134
137
138
136
135
131
128
126
125
125
123
124
125
128
132
135
139
142
146
149
152
155
157
157
156
154
151
151
153
153
154
156
159
161
146
123
99
82
75
78
86
89
96
104
115
130
145
153
153
148
142
136
132
128
120
112
106
105
109
117
124
128
129
130
131
133
135
132
126
120
116
115
116
119
119
116
115
112
115
124
124
125
123
119
114
112
110
104
104
108
113
123
131
135
136
137
135
132
132
129
127
125
123
123
123
126
127
129
132
133
138
142
146
149
150
151
150
152
152
150
149
150
149
150
152
152
157
165
169
154
134
114
91
84
82
83
81
85
97
107
125
141
148
150
149
147
141
138
133
121
113
107
105
108
115
121
123
127
131
133
138
139
135
129
123
119
117
117
116
115
115
113
115
114
121
126
124
127
125
122
120
117
112
105
105
106
111
122
129
133
136
137
137
136
135
131
127
125
122
123
123
125
126
128
132
133
138
142
144
146
148
148
148
149
149
149
149
149
149
150
151
153
154
156
158
165
159
138
125
105
94
90
86
85
81
92
104
117
133
139
142
143
146
147
142
138
126
116
111
110
111
112
115
117
120
128
133
137
137
135
131
128
128
124
120
117
111
109
111
111
108
115
122
121
126
130
126
124
123
117
111
108
106
106
115
122
125
130
134
135
135
136
132
129
128
127
126
126
126
126
127
130
132
134
137
139
143
147
149
151
152
151
151
151
149
147
147
151
150
148
150
152
156
161
146
128
123
108
101
98
90
87
86
100
111
118
128
130
135
143
147
146
138
132
127
122
121
117
111
109
112
117
121
124
126
127
131
135
135
132
130
127
125
124
122
112
108
108
101
111
118
114
116
123
127
126
125
123
115
115
117
112
113
118
121
124
128
131
130
131
134
132
130
131
129
129
129
129
128
129
132
132
133
136
138
141
145
148
149
150
151
151
152
151
150
150
147
146
149
150
151
152
147
133
129
128
113
106
102
93
93
99
102
104
110
119
128
130
136
140
138
140
141
135
129
127
125
122
118
116
115
114
117
119
119
120
125
128
129
130
131
131
131
131
129
121
117
117
114
116
118
112
113
123
125
121
122
125
129
131
128
127
129
131
130
130
128
128
130
132
131
130
129
130
131
130
127
127
129
129
128
128
128
128
130
131
130
129
130
133
132
131
130
132
133
131
130
130
132
132
131
132
132
133
133
134
133
132
132
132
130
128
126
125
123
122
121
120
120
120
120
120
120
121
122
123
123
124
126
127
127
128
128
129
129
129
128
128
128
127
127
127
126
126
126
125
124
124
123
121
122
124
122
122
123
124
124
124
124
124
125
125
125
126
127
127
128
129
129
129
130
131
130
130
130
129
130
129
128
128
128
128
127
127
127
128
128
129
129
130
130
130
131
131
132
132
132
131
131
132
132
131
132
132
131
132
132
132
132
132
132
131
130
130
129
129
128
127
127
126
125
125
124
123
124
124
123
124
124
124
125
126
126
126
127
127
128
128
128
128
128
128
128
128
127
127
127
126
126
126
125
125
125
124
123
124
124
123
123
124
123
125
124
124
120
127
132
116
127
134
122
128
133
126
129
132
128
129
130
128
129
128
128
129
127
127
128
127
127
128
128
127
128
129
129
129
129
130
130
130
130
131
130
130
131
130
130
131
130
130
130
130
130
131
129
129
130
129
129
129
128
128
128
127
126
126
126
125
125
124
125
125
124
125
125
125
125
126
125
126
126
126
126
127
127
126
127
126
126
126
125
126
126
125
125
125
124
119
133
121
120
131
121
126
126
124
127
125
126
127
126
127
127
127
128
127
127
128
128
127
128
127
128
128
127
127
127
127
126
127
126
127
126
127
125
126
98
103
132
103
128
138
133
137
133
127
141
136
118
128
140
126
117
133
129
127
128
126
129
137
128
123
138
131
124
127
132
125
125
123
122
127
120
118
124
124
119
123
125
126
126
126
128
130
128
127
130
128
126
125
126
123
122
121
120
118
115
115
114
113
114
116
116
118
120
122
124
124
126
128
128
128
129
129
128
128
127
126
125
124
124
123
122
124
125
124
126
127
129
130
131
132
132
132
133
133
132
133
132
133
133
133
133
135
134
136
137
136
139
140
140
142
142
141
145
141
137
141
135
134
132
127
128
123
120
121
119
117
117
118
118
121
121
124
128
126
131
133
134
135
136
137
138
137
136
136
135
132
132
130
128
127
126
125
125
125
125
127
123
117
127
124
117
121
126
123
119
124
126
124
122
126
129
125
126
131
131
128
130
134
133
131
133
135
132
132
134
135
133
134
136
137
135
136
139
138
138
140
143
143
143
146
146
147
147
148
150
150
147
152
152
150
153
147
147
146
135
134
130
122
120
115
112
111
107
110
110
109
114
116
120
124
128
132
136
136
139
141
140
140
139
138
136
132
129
127
124
120
118
117
115
114
114
115
116
117
119
121
122
125
118
124
126
120
122
121
122
118
117
119
117
114
115
118
115
116
119
121
121
122
126
127
126
128
131
130
129
131
131
129
129
130
130
128
128
131
130
130
132
135
136
136
140
140
142
143
144
147
145
146
149
146
146
150
142
142
140
133
128
123
118
114
108
107
102
102
103
100
106
106
110
115
118
123
126
131
133
136
137
138
139
137
136
133
132
128
125
122
119
117
114
113
112
112
112
113
115
117
119
121
125
123
123
126
125
123
122
124
121
120
119
119
117
115
117
116
116
116
119
119
120
123
124
125
126
128
129
130
130
131
131
130
130
130
130
129
129
130
130
130
131
132
133
134
136
137
139
142
142
143
145
145
145
146
146
146
146
143
142
139
136
133
127
124
120
115
113
109
106
107
105
107
108
111
114
116
120
124
127
129
133
134
137
136
138
137
135
134
132
130
127
125
123
120
118
117
116
115
115
116
117
118
119
122
122
121
122
127
121
118
126
121
119
119
119
119
114
117
119
116
116
121
122
121
124
127
128
127
131
134
132
132
135
134
133
133
135
134
133
134
135
135
135
138
139
139
141
142
141
148
143
146
152
146
151
150
150
149
145
143
137
133
124
120
115
109
105
103
104
98
103
105
103
113
112
119
125
126
136
135
141
142
144
145
143
143
140
138
134
131
127
122
121
116
116
114
112
113
113
115
117
120
122
124
128
129
133
129
124
135
126
120
124
122
119
114
116
118
112
113
119
119
117
122
127
128
128
133
137
134
135
139
137
135
136
137
134
132
133
134
132
132
135
137
136
138
141
142
142
146
149
148
152
153
154
160
150
158
154
141
145
129
113
128
101
94
109
83
103
85
96
108
94
115
113
130
125
136
145
146
151
148
160
149
150
148
143
140
130
128
124
115
113
111
109
105
105
110
109
111
115
121
124
126
132
136
138
139
142
143
141
140
134
119
140
117
108
124
106
112
103
109
111
102
113
115
118
115
126
129
128
131
135
139
131
136
139
133
132
132
132
128
127
130
128
127
128
133
133
133
138
141
142
143
147
149
150
150
156
155
154
157
156
155
136
113
151
110
86
127
79
114
73
92
115
75
110
100
127
109
123
141
138
142
138
163
147
147
151
150
145
132
135
136
118
116
116
115
105
101
112
106
104
106
117
117
114
125
131
132
130
139
143
138
137
141
140
134
128
132
112
118
117
100
113
101
108
107
105
115
112
119
121
128
129
132
136
138
140
137
141
138
135
136
132
131
128
127
128
126
127
127
129
130
131
135
137
138
141
142
144
146
147
149
151
153
147
150
147
109
154
113
98
132
80
128
77
104
111
87
114
98
128
108
125
131
136
137
134
154
143
143
147
144
145
133
136
136
122
125
116
122
110
110
114
111
110
109
118
117
117
122
128
129
129
134
138
137
136
139
139
135
134
135
132
127
126
127
122
121
117
110
128
104
114
121
110
123
112
125
123
119
130
128
130
128
134
133
131
132
133
133
127
131
131
127
128
127
129
126
127
130
129
128
130
132
132
130
133
134
133
133
135
135
134
134
135
134
133
133
134
133
131
133
132
132
132
132
134
131
133
133
124
134
125
124
126
121
126
119
122
123
120
122
121
125
123
125
127
128
128
128
131
130
130
130
131
131
129
129
129
128
126
126
126
124
124
124
124
123
123
124
124
125
125
126
126
127
128
127
129
128
128
129
128
129
128
128
128
127
127
127
126
126
126
126
126
126
126
126
126
127
127
127
128
128
129
129
129
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
130
129
128
128
126
126
125
125
124
124
124
124
124
124
124
125
125
126
127
128
128
129
130
130
130
130
130
130
129
129
129
128
128
127
126
126
126
126
126
125
126
126
126
126
127
127
128
128
128
129
129
129
129
129
129
129
128
128
128
127
127
127
127
127
126
126
126
126
127
127
127
127
127
127
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
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
127
128
127
128
128
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
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
128
128
128
128
128
128
128
128
128
127
128
127
127
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
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
127
127
127
127
127
127
128
128
128
127
128
128
127
128
128
128
128
128
127
128
128
128
128
127
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
127
127
127
128
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
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
127
127
127
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
127
128
128
128
127
128
128
128
127
128
128
128
128
128
128
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
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
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
127
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
127
127
127
127
127
127
128
127
127
128
127
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
128
127
128
128
128
128
128
128
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
127
128
128
128
128
127
127
128
128
127
128
128
128
127
127
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
127
127
127
127
128
128
127
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
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
128
128
127
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
128
128
128
128
128
127
127
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
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
127
127
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
128
127
127
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
127
127
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
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
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
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
127
127
128
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
127
127
128
128
127
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
127
128
128
127
127
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
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
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
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
127
127
127
127
127
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
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
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
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
128
128
128
127
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
128
128
128
128
128
128
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
128
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
128
128
128
128
128
128
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
127
127
127
127
128
127
127
128
128
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
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
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
127
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
127
127
128
127
127
127
127
128
128
128
127
127
127
128
127
127
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
127
127
127
127
127
127
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
127
127
127
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
128
128
128
128
128
128
128
128
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
127
127
127
127
127
128
128
128
128
127
128
127
127
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
127
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
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
127
127
128
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
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
127
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
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
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
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
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
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
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
127
127
127
127
128
127
128
128
128
128
128
127
127
127
127
127
128
128
128
127
127
128
128
128
127
128
128
128
128
128
128
127
127
128
128
127
127
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
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
128
127
127
128
128
128
128
128
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
128
128
128
128
128
128
128
128
127
128
127
127
127
128
127
127
127
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
128
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
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
127
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
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
128
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
128
128
128
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
127
128
128
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
128
128
128
128
128
128
128
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
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
127
128
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
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
127
128
128
128
128
128
128
127
128
127
127
128
127
128
128
127
128
127
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
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
128
128
127
128
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
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
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
128
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
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
128
127
127
128
127
128
127
127
128
127
127
127
128
128
127
127
127
128
127
127
128
128
128
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
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
128
128
127
128
127
127
127
127
127
128
128
127
127
128
128
128
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
128
127
127
128
128
127
128
127
127
127
127
127
127
127
128
128
127
128
128
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
128
127
127
127
128
128
128
128
128
128
127
128
128
128
127
127
127
128
128
127
128
128
127
128
128
127
128
128
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
127
127
127
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
127
127
127
127
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
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
127
127
127
127
128
127
127
127
127
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
127
127
127
127
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
128
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
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
128
127
127
128
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
127
127
128
128
127
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
128
128
128
128
128
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
127
127
128
127
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
128
127
127
128
127
127
127
128
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
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
128
128
127
127
127
127
128
127
128
128
128
128
128
127
128
127
127
127
128
127
127
127
127
127
127
128
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
127
128
127
128
128
128
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
127
127
127
127
127
128
128
127
127
128
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
127
127
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
127
127
127
128
127
127
127
127
128
127
127
127
127
127
128
128
128
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
128
128
128
127
127
127
127
127
128
127
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
127
127
128
127
128
127
127
128
127
128
127
128
127
127
128
127
128
127
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
127
127
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
128
127
127
128
128
128
128
127
127
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
127
128
127
127
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
126
127
127
126
127
126
127
127
127
127
126
128
127
128
127
127
128
126
128
127
127
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
128
126
127
127
127
128
127
127
127
126
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
127
127
127
127
127
127
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
128
127
127
128
127
128
128
128
127
128
128
127
128
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
127
128
127
128
128
128
127
128
127
127
128
127
128
128
127
127
127
128
128
127
127
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
127
128
125
130
126
127
128
126
129
126
128
126
128
128
127
127
126
127
127
127
127
127
126
127
126
128
127
127
127
127
127
126
127
126
127
127
126
127
126
126
126
127
126
127
128
126
128
126
126
127
127
127
127
126
126
127
126
127
125
126
128
126
130
125
126
126
126
129
128
126
127
126
128
127
127
126
126
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
127
127
127
127
127
126
128
126
126
130
125
128
127
125
129
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
128
127
127
128
127
128
127
127
127
128
127
127
127
127
127
128
127
129
127
124
132
124
129
128
126
128
127
130
126
128
128
126
130
127
128
128
128
128
128
128
127
128
128
127
129
127
128
129
128
128
128
128
129
128
128
128
128
129
129
129
128
128
128
128
128
128
128
128
129
129
128
128
128
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
128
128
128
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
129
129
128
128
128
128
127
128
128
128
129
129
128
128
129
129
129
129
128
128
129
129
129
128
128
128
128
128
128
128
128
128
129
129
129
129
128
128
128
129
129
128
128
128
129
128
128
127
128
129
128
128
128
128
129
129
129
128
128
128
127
128
128
129
128
128
128
128
128
128
127
127
128
128
129
129
128
127
127
126
128
128
128
128
128
128
128
127
127
127
128
128
127
127
127
128
128
128
127
127
128
128
129
126
126
128
129
129
127
126
127
129
130
128
127
127
128
128
126
126
124
127
129
129
128
126
126
128
127
128
126
131
115
117
124
129
141
135
121
118
123
129
134
130
124
125
128
127
128
124
124
128
129
127
128
126
130
130
128
125
126
129
131
132
126
124
126
126
128
127
126
128
129
128
125
126
127
130
131
128
128
126
128
130
127
126
124
126
127
125
130
128
129
129
124
123
127
128
130
132
129
128
128
128
127
128
126
126
128
132
130
127
125
122
129
132
129
127
125
127
130
130
129
126
128
127
127
125
124
129
127
130
129
123
124
125
128
132
130
126
122
124
128
130
130
130
124
124
124
125
129
128
126
129
127
125
127
125
128
127
129
124
126
129
129
132
127
123
121
130
129
130
129
123
129
132
126
126
119
121
131
135
134
130
123
123
125
127
122
132
131
126
132
120
121
123
124
132
131
130
129
128
124
122
124
128
138
139
127
118
116
121
130
133
134
129
127
127
124
125
129
125
131
134
129
127
128
124
125
128
121
129
133
128
128
124
119
133
134
132
137
124
123
129
123
127
128
129
134
133
130
123
121
125
124
129
132
133
134
134
124
118
123
126
135
138
130
123
121
121
127
133
129
131
133
129
129
125
122
125
129
133
131
130
127
125
129
126
126
129
127
133
133
126
123
122
127
134
129
134
129
124
130
124
122
129
126
131
135
128
128
125
119
130
137
136
131
123
120
125
135
133
129
127
123
122
132
129
131
132
127
129
128
124
121
123
132
139
135
128
122
122
125
127
126
129
132
132
128
125
122
128
132
129
126
122
125
135
137
131
127
119
121
129
131
134
132
120
124
127
127
132
134
132
128
125
125
124
129
129
125
131
131
128
134
128
118
126
127
131
136
127
124
125
126
132
132
128
124
125
133
133
134
125
115
124
129
130
130
124
125
135
136
128
119
112
117
130
135
133
128
125
125
121
118
115
119
134
146
141
126
111
105
116
134
138
135
128
121
122
125
120
125
127
131
139
131
127
125
121
123
128
134
140
142
136
124
122
129
134
139
138
128
128
130
132
133
130
131
139
141
138
134
128
128
128
126
128
129
133
134
132
132
131
127
125
125
124
126
123
119
119
121
126
124
120
120
119
120
126
118
110
116
114
119
132
123
119
120
113
118
121
119
123
127
127
126
122
122
121
123
126
125
132
135
132
132
130
127
132
133
129
133
136
139
141
138
132
131
138
139
138
130
126
138
150
154
155
139
125
124
138
154
161
166
164
164
159
149
149
133
78
15
0
45
138
209
224
179
111
76
70
80
95
102
111
134
159
169
154
121
88
76
84
97
110
117
119
125
130
120
105
97
100
117
136
141
134
124
114
112
116
120
127
136
140
136
128
119
113
119
127
136
142
143
141
136
136
136
136
146
149
145
148
141
135
144
145
143
154
151
153
158
153
158
167
165
190
188
197
108
0
11
0
132
255
255
192
113
76
31
75
81
57
81
159
198
230
208
123
51
59
68
95
141
136
115
107
97
101
110
100
108
127
141
148
132
105
86
95
114
135
145
143
134
130
119
114
113
117
129
138
139
133
127
125
123
129
138
146
154
154
147
141
130
128
137
142
152
158
150
146
142
138
152
167
166
161
158
156
172
209
201
180
40
0
5
30
203
255
255
152
97
59
45
77
63
46
96
191
227
240
189
82
35
58
78
126
137
95
89
115
121
126
117
80
93
130
144
144
129
97
96
116
122
128
132
131
135
141
126
113
112
115
126
138
133
131
135
134
135
133
131
136
147
154
145
134
131
138
153
159
154
136
124
128
139
156
166
171
163
152
144
140
156
184
223
204
173
53
0
5
30
185
255
255
168
107
89
48
55
46
34
80
211
242
239
194
84
36
60
83
94
91
100
114
148
160
114
78
72
92
130
152
138
123
119
120
113
112
107
120
145
153
144
123
109
108
115
128
132
135
142
141
138
128
126
132
144
156
150
139
135
135
144
153
143
142
150
143
143
148
136
140
163
158
161
168
156
147
158
203
209
195
95
0
4
10
146
251
255
198
112
122
93
58
33
20
47
180
250
235
198
116
64
70
95
82
56
74
118
157
182
140
74
64
94
118
136
130
121
132
146
126
100
93
103
135
154
150
131
125
120
115
112
112
122
143
152
145
135
130
129
135
142
137
139
145
151
150
142
137
139
144
144
143
146
146
142
153
164
165
157
133
127
154
170
182
210
192
147
32
0
0
47
172
227
241
176
150
145
103
35
9
30
94
186
225
199
168
138
112
100
66
17
51
117
141
163
149
112
110
111
97
89
101
122
144
158
136
113
110
109
112
120
125
133
148
148
129
113
106
111
125
134
138
143
147
145
136
126
126
131
142
153
148
147
141
136
137
135
132
144
158
148
140
141
146
161
161
130
129
146
159
173
164
170
196
186
124
11
0
0
79
167
185
187
175
190
177
108
33
11
46
105
153
164
163
179
184
148
91
51
46
77
99
96
120
147
148
146
122
91
96
110
110
112
125
141
148
140
119
102
109
122
125
128
132
137
144
139
123
113
114
125
135
139
143
146
147
146
138
131
126
129
139
143
150
159
146
129
138
144
135
135
134
133
160
174
150
129
133
139
146
148
137
147
178
181
155
120
60
22
52
82
92
117
137
158
179
171
138
106
94
98
96
92
100
114
133
144
142
138
126
110
101
99
93
94
107
117
125
135
135
131
131
126
121
120
124
129
131
133
135
134
134
133
128
126
132
134
134
134
133
135
136
132
133
134
132
130
133
133
130
134
134
129
127
131
130
124
127
132
126
125
130
129
125
126
128
128
128
129
129
127
127
130
128
127
127
127
128
128
126
125
126
128
130
131
128
127
128
128
127
126
126
126
126
127
128
127
125
123
122
120
121
121
121
121
121
122
122
122
122
123
123
123
124
125
125
125
125
125
124
125
125
125
126
127
127
127
126
125
126
125
125
126
126
126
128
127
126
125
126
126
127
127
126
127
127
127
127
126
127
128
128
128
128
127
128
129
128
128
128
127
128
130
129
128
127
128
128
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
126
127
127
126
126
126
126
127
126
124
123
124
126
127
125
125
125
125
126
125
123
123
125
126
126
125
125
125
125
125
124
125
126
125
125
125
125
126
125
125
125
125
126
126
126
125
125
125
124
125
125
126
126
127
126
125
125
127
125
124
124
123
122
123
122
121
121
121
123
126
126
127
128
127
124
116
120
124
130
130
134
140
136
126
124
125
126
126
124
128
137
137
132
130
133
136
135
130
129
134
135
130
125
125
127
127
125
122
124
129
128
126
127
127
127
124
119
118
117
114
113
110
110
114
113
113
116
117
117
117
116
116
117
116
116
118
120
121
121
122
124
126
125
125
125
127
127
127
129
130
130
129
130
133
135
136
135
137
140
139
138
138
141
144
141
138
140
142
138
138
141
141
146
149
140
140
151
147
141
143
146
153
161
163
155
141
133
97
39
65
88
68
83
114
137
167
161
142
155
155
125
105
99
97
106
101
104
121
137
131
131
135
130
125
113
99
96
92
90
102
110
122
132
135
137
137
128
119
116
111
112
114
118
125
129
130
131
131
129
128
127
129
132
134
136
139
141
142
140
141
140
136
135
138
141
146
145
142
147
146
144
141
141
145
145
142
145
150
149
159
169
161
137
130
77
38
79
73
57
89
123
141
167
151
150
167
147
112
110
103
94
97
93
108
129
136
133
148
152
140
123
113
101
90
86
95
91
89
117
128
126
134
139
135
132
118
111
117
112
106
116
123
124
129
130
133
136
133
129
135
137
132
133
137
140
137
138
141
145
143
142
145
148
154
150
146
152
152
140
139
148
143
142
152
160
160
162
165
177
156
132
109
52
71
87
51
67
124
135
148
165
162
175
168
131
124
128
101
90
98
107
113
125
131
148
159
152
145
147
136
124
97
84
100
98
82
82
123
139
127
131
153
150
132
117
121
121
106
99
118
130
123
127
139
146
138
134
137
143
134
130
138
144
139
136
141
147
143
132
152
164
150
137
154
164
154
141
136
148
150
139
142
162
165
163
172
162
148
117
46
78
90
36
56
111
123
134
154
158
182
171
136
136
139
101
89
94
97
98
106
114
137
149
143
148
156
143
128
121
115
103
84
95
101
98
95
96
120
134
118
122
142
134
119
119
117
112
105
102
115
120
116
123
136
137
133
135
138
135
130
129
133
132
127
132
138
136
137
143
150
148
144
148
151
144
138
141
142
143
141
149
156
158
168
156
139
114
47
74
86
34
58
110
119
128
152
159
179
167
139
141
137
101
89
93
93
90
99
113
132
142
142
151
157
145
132
127
119
108
99
93
87
108
108
107
102
115
124
125
122
119
128
121
115
114
118
111
110
113
120
121
124
130
136
136
134
137
138
133
131
133
134
134
133
137
138
140
141
147
149
148
152
153
150
150
150
150
151
154
157
168
153
132
92
47
93
71
33
75
122
121
133
160
171
179
158
142
149
129
93
92
97
90
86
104
121
135
140
148
159
159
142
136
131
118
104
99
102
102
106
111
131
124
121
144
131
121
119
116
108
102
94
106
111
108
116
133
129
129
133
134
129
125
124
126
127
124
129
134
135
133
140
139
139
137
142
144
142
143
148
150
144
144
150
150
148
155
154
159
169
163
127
102
71
72
79
47
66
111
124
126
156
173
173
165
153
147
135
105
94
96
92
85
98
116
128
137
149
158
159
150
141
137
124
109
102
102
100
101
109
121
133
127
133
149
132
121
119
110
105
102
98
109
118
113
121
135
130
128
133
133
128
125
126
128
128
125
129
135
133
132
138
138
137
141
144
142
144
145
143
144
144
144
147
150
151
156
160
168
158
115
95
78
86
69
55
88
118
122
132
163
173
167
159
155
148
126
104
100
98
90
88
105
120
127
137
153
158
156
148
145
136
122
110
105
103
99
102
112
123
129
135
146
144
139
139
131
118
108
109
104
96
101
113
116
119
132
139
138
137
137
135
129
123
122
123
120
120
126
131
130
132
137
138
137
137
137
138
135
132
133
134
131
132
133
136
137
136
137
140
139
139
142
141
140
140
141
138
119
110
112
100
96
103
109
116
126
134
143
148
145
143
142
133
123
118
114
109
108
111
115
121
127
133
139
141
140
139
136
131
125
121
117
114
108
104
116
118
116
124
133
126
127
134
129
123
124
123
122
121
120
122
127
125
127
134
135
133
136
138
135
134
134
134
132
131
132
134
131
132
135
134
133
135
135
134
134
134
133
134
135
137
137
138
131
120
120
117
110
110
115
119
123
128
133
138
138
135
135
134
128
122
121
119
117
117
120
123
126
128
132
135
135
134
134
132
127
124
123
121
120
120
121
124
126
128
131
133
133
133
132
131
128
125
124
120
115
117
118
114
116
121
122
127
132
134
136
135
135
134
129
125
124
122
119
120
123
124
125
130
133
133
134
134
135
134
130
129
131
129
129
130
131
132
133
134
133
132
134
132
131
131
131
131
132
131
131
128
120
118
122
118
115
121
126
126
128
132
134
135
133
131
132
128
123
122
122
120
119
122
124
126
128
130
133
133
132
132
132
129
126
125
124
123
122
123
126
127
127
130
132
131
131
130
130
128
126
125
125
124
124
125
126
127
128
129
130
131
130
130
130
129
127
126
126
125
125
125
126
126
127
128
130
130
130
130
130
128
128
127
126
125
125
125
126
126
127
128
129
129
129
129
129
128
128
127
127
126
126
126
126
127
127
128
128
129
129
129
129
128
127
127
127
126
126
126
127
127
127
128
128
128
128
128
128
128
128
127
127
127
126
126
126
127
127
127
128
128
128
128
128
128
128
127
127
127
127
126
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
127
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
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
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
127
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
127
128
127
128
128
127
128
127
128
128
128
128
128
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
127
127
128
127
127
127
128
127
127
128
128
128
127
127
127
127
127
127
127
127
128
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
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
126
122
126
124
123
126
128
126
127
129
127
127
128
126
125
127
128
127
129
129
129
129
129
127
127
126
125
126
127
126
127
129
128
128
129
129
128
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
126
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
127
126
127
127
126
127
128
127
127
128
128
127
127
128
128
127
127
127
127
128
127
127
128
127
127
127
128
127
127
128
128
127
128
128
128
128
128
128
128
127
127
128
128
128
127
128
128
127
127
128
127
127
127
128
128
127
127
128
128
127
128
128
127
127
128
127
127
128
128
127
128
128
127
128
128
126
127
128
127
127
129
128
127
128
127
128
128
127
127
128
127
126
128
129
127
127
129
128
127
128
128
127
127
127
127
127
128
128
127
128
127
127
128
127
126
128
127
126
128
128
127
128
129
127
127
128
127
126
128
127
126
128
128
127
127
128
127
127
126
126
128
128
127
129
129
127
127
128
127
127
127
127
128
128
127
127
128
127
127
128
127
126
127
128
128
127
128
128
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
128
127
127
128
128
127
127
127
128
127
126
128
128
127
127
128
128
127
128
128
127
127
127
128
128
127
127
129
128
126
127
129
128
127
128
129
128
126
127
128
127
127
129
128
127
128
128
127
127
129
128
127
128
128
127
127
127
128
127
127
128
128
127
127
127
127
127
126
127
128
127
127
128
128
127
127
128
127
127
128
127
128
128
127
128
128
126
127
128
127
126
128
128
127
127
128
127
127
127
127
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
128
128
128
128
128
128
127
128
128
128
128
128
128
127
127
127
128
127
127
128
128
126
127
128
128
127
128
129
128
127
127
128
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
128
128
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
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
127
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
128
127
127
127
127
126
127
127
127
127
126
127
127
127
127
128
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
127
127
127
127
127
127
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
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
128
128
128
127
127
127
128
128
127
127
128
127
127
127
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
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
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
128
128
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
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
128
128
128
128
128
127
127
127
127
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
127
127
127
128
128
127
127
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
128
128
128
128
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
127
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
128
128
128
128
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
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
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
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
129
128
128
128
128
128
128
129
128
128
129
129
129
128
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
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
129
129
129
129
129
129
129
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
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
127
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
127
127
127
127
127
127
127
127
127
127
127
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
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
126
127
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
127
127
126
127
127
127
127
127
127
126
126
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
128
128
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
127
127
127
127
126
126
127
127
127
126
127
127
127
126
126
126
126
126
126
126
126
126
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
128
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
126
126
126
126
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
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
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
128
129
128
128
129
128
128
128
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
129
129
129
129
129
129
129
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
128
127
127
128
128
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
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
127
127
127
127
127
128
128
127
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
128
128
128
128
128
128
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
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
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
127
127
127
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
127
127
127
126
126
126
126
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
126
126
127
126
127
127
126
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
128
128
127
128
127
127
127
127
127
127
127
128
128
128
127
128
127
128
128
127
128
128
128
128
128
127
127
128
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
128
128
128
128
128
129
129
128
128
129
129
129
128
128
128
129
129
128
128
129
129
129
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
127
127
127
127
127
127
128
128
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
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
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
127
127
127
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
127
127
128
128
127
127
128
128
128
128
127
128
128
128
128
127
127
127
128
128
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
127
127
128
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
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
128
128
127
127
127
127
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
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
128
128
128
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
128
128
127
127
127
127
127
128
127
128
128
127
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
128
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
127
127
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
128
128
127
128
128
128
128
128
127
127
128
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
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
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
128
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
127
127
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
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
127
127
127
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
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
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
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
127
127
127
127
127
127
127
128
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
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
128
128
128
127
127
128
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
128
127
127
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
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
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
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
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
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
127
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
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
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
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
127
127
128
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
127
127
127
128
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
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
128
125
130
123
135
92
119
126
119
123
123
125
130
129
127
125
125
124
127
125
124
124
123
120
122
123
123
122
126
109
114
119
121
130
127
127
125
130
129
127
123
116
120
122
123
106
109
107
113
116
120
125
131
127
129
129
130
129
129
123
119
120
117
118
121
118
121
125
130
134
139
136
137
141
140
139
138
133
129
130
129
130
131
128
128
132
134
136
139
136
135
137
137
137
135
131
129
131
130
129
129
127
131
134
135
136
138
138
137
137
136
133
132
131
130
131
130
131
133
134
135
136
136
137
138
140
139
140
140
139
140
139
137
136
136
136
137
138
138
139
139
140
140
140
141
139
139
138
137
139
140
141
142
141
140
139
140
140
139
139
138
139
140
140
139
138
137
138
138
136
135
134
133
134
133
133
133
133
133
132
131
130
129
129
129
128
127
125
124
124
124
124
123
122
123
123
123
123
121
119
118
119
118
120
119
117
117
117
117
118
118
116
116
117
116
117
117
116
115
115
115
115
117
118
117
118
118
117
118
119
119
120
120
121
122
122
124
124
124
124
123
123
125
126
126
126
125
123
124
123
124
127
127
127
126
125
125
126
126
124
123
123
120
121
121
120
123
122
121
120
121
125
126
127
125
122
122
121
123
124
123
122
118
117
115
114
114
112
111
109
107
108
111
114
115
116
116
116
117
117
118
119
119
119
120
121
123
124
126
126
127
127
127
129
130
132
134
136
137
136
136
135
135
137
140
140
142
142
141
141
142
141
141
142
139
138
140
142
143
145
145
144
144
144
139
133
126
117
111
112
111
110
109
107
105
103
106
110
118
127
134
137
137
135
129
120
113
103
95
92
86
86
94
104
119
133
142
143
138
129
118
113
111
114
122
127
129
129
128
127
127
130
132
135
137
137
139
140
141
142
143
142
141
141
142
144
150
154
157
159
156
155
153
151
151
150
153
156
159
164
162
158
150
124
98
74
46
41
47
64
94
120
144
157
164
165
160
161
157
151
144
129
112
95
82
77
81
94
110
123
129
130
123
113
110
110
116
125
130
128
121
111
101
98
104
113
126
136
139
137
132
127
124
127
130
132
131
127
122
122
124
131
138
145
148
148
146
144
143
143
146
149
151
151
149
145
141
139
140
145
151
159
164
168
165
160
150
128
103
79
56
44
46
60
81
110
134
151
161
164
160
157
154
151
147
141
130
116
102
88
81
79
84
94
101
112
117
123
128
133
138
139
137
131
121
112
105
104
109
118
128
136
141
140
137
133
131
131
133
136
139
140
138
136
132
131
131
134
137
141
145
146
149
149
149
147
145
143
140
138
136
137
140
145
149
153
154
151
146
136
123
109
95
85
80
79
87
96
110
122
132
141
145
147
148
148
147
145
141
136
128
121
113
106
98
97
95
94
100
103
112
124
134
143
148
147
140
131
122
114
114
117
124
133
139
142
141
137
133
129
129
130
133
137
140
141
140
137
133
130
128
128
131
134
138
140
141
140
137
134
131
129
129
131
134
137
139
139
137
135
132
130
130
130
130
130
128
126
121
116
112
109
110
112
115
119
123
125
127
128
129
129
131
133
134
135
135
132
127
123
117
112
109
108
110
115
121
128
135
139
140
138
133
128
124
122
123
127
131
134
136
134
131
126
122
120
121
125
131
135
138
137
134
129
125
122
123
125
130
134
136
137
135
132
129
127
127
128
130
132
133
134
133
131
128
127
126
127
129
130
130
130
129
127
124
123
122
122
124
126
128
129
129
128
127
125
124
123
123
124
125
127
127
127
127
126
126
125
125
125
126
128
129
130
130
129
128
128
127
126
126
127
128
129
130
130
130
129
128
127
127
127
128
128
129
130
130
129
129
128
127
127
128
128
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
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
128
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
126
126
126
126
126
126
127
127
127
126
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
127
126
126
127
127
127
126
126
126
126
126
126
126
127
127
127
127
126
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
127
127
127
127
127
127
127
127
126
127
126
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
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
129
129
128
127
127
127
127
127
128
128
128
129
128
128
127
127
125
127
127
128
128
128
127
127
127
127
126
127
126
126
125
125
123
123
121
120
117
118
117
111
116
117
131
141
154
152
145
132
115
106
105
109
122
135
145
145
142
135
124
119
119
122
130
136
139
136
133
124
117
118
120
125
135
137
141
140
138
132
131
124
125
122
123
120
120
116
119
124
124
127
128
121
125
123
130
131
139
135
134
130
124
120
122
122
128
131
136
135
136
133
129
129
129
129
134
133
134
131
130
126
125
125
125
127
131
132
134
132
130
126
128
128
129
132
132
130
128
126
124
125
128
131
134
134
134
132
130
128
129
129
131
132
132
131
129
129
129
131
132
132
131
131
130
130
130
132
133
134
134
133
132
130
129
130
132
134
135
136
135
134
132
131
133
134
136
137
137
136
135
133
133
134
135
135
135
135
134
134
135
136
136
136
136
135
134
133
132
132
131
132
131
131
130
130
131
131
131
130
130
129
128
126
125
126
125
126
129
129
130
129
128
127
127
128
129
133
135
137
139
138
138
136
134
133
133
134
134
136
136
136
137
137
138
138
139
138
139
138
136
134
132
130
129
130
132
135
136
136
131
119
103
85
68
59
59
68
83
102
117
125
129
125
120
114
110
108
108
109
110
111
113
114
117
119
120
124
127
130
134
138
141
143
143
140
138
135
134
137
140
146
154
163
174
183
192
200
205
191
157
118
62
10
0
4
0
16
66
111
151
176
189
197
199
189
183
165
136
109
75
46
33
32
37
58
86
99
119
133
133
144
148
142
135
120
101
85
82
82
91
111
119
130
138
137
142
149
156
160
163
157
146
142
136
138
150
160
174
187
194
200
212
228
205
150
94
8
0
5
0
6
82
141
170
190
193
186
198
211
205
196
162
104
55
21
6
23
62
97
127
144
140
141
147
147
151
144
120
92
72
61
66
89
108
123
132
129
128
135
143
154
162
160
150
141
134
131
135
139
143
148
155
166
185
205
220
234
239
247
223
139
66
1
0
4
1
7
86
143
165
184
208
219
231
252
228
184
139
70
24
13
18
38
73
100
107
123
146
154
179
194
172
145
109
67
49
59
70
89
112
117
120
137
147
158
172
166
151
144
136
135
145
152
144
140
136
134
154
182
209
232
243
241
245
234
160
85
13
0
4
2
0
48
120
149
171
204
231
241
255
241
189
136
84
38
21
31
38
54
77
95
113
143
175
186
195
185
147
113
85
58
53
62
70
80
100
119
136
160
171
165
161
150
137
140
145
145
143
140
128
125
135
151
168
193
213
221
230
238
246
241
176
89
8
0
5
0
7
55
95
127
152
186
233
255
255
242
190
131
85
62
50
46
44
42
45
70
105
138
176
189
180
166
144
123
106
89
75
65
62
74
92
117
140
151
155
154
152
155
158
160
157
147
139
133
130
134
142
150
161
177
197
214
226
236
245
232
164
81
15
0
5
0
18
50
63
92
135
179
221
252
248
219
181
151
126
107
90
69
42
27
37
64
94
118
138
147
148
153
159
156
138
111
90
82
80
88
101
109
114
120
131
144
155
161
165
162
156
152
150
148
143
136
133
136
144
157
173
184
189
191
196
203
190
144
91
57
46
52
57
59
65
72
80
98
124
153
173
174
164
155
153
155
154
142
124
107
97
97
103
106
102
96
92
98
114
131
139
136
127
120
124
131
135
133
127
122
124
129
134
135
132
127
125
126
129
131
130
127
124
124
128
132
134
134
133
132
134
137
139
141
141
141
142
144
144
139
131
122
116
114
115
117
115
111
108
109
112
116
117
116
115
117
122
127
129
128
127
128
131
132
130
125
123
124
126
125
121
117
116
119
123
125
123
122
121
123
126
127
126
126
126
127
130
132
132
131
130
130
131
132
133
133
131
131
132
134
135
136
137
138
141
145
148
146
140
132
124
121
120
121
120
115
108
103
105
110
113
113
112
113
117
122
127
131
134
136
136
134
133
135
135
133
128
123
121
122
121
117
114
113
116
120
122
121
120
121
123
126
129
131
132
132
132
133
134
135
135
133
131
130
131
133
133
131
131
131
133
136
138
139
141
144
148
153
153
146
136
125
119
118
118
116
110
103
99
100
105
110
114
118
120
122
124
130
140
147
144
134
127
129
134
131
121
114
113
116
114
106
101
99
92
89
98
115
124
123
124
135
146
142
136
136
138
134
126
123
128
131
127
125
131
140
147
150
149
154
163
168
169
171
176
180
188
193
170
126
87
58
41
45
53
60
67
69
83
117
149
172
186
182
174
168
161
160
153
130
104
84
72
75
82
83
82
85
95
114
130
139
144
139
129
126
125
124
119
109
102
101
105
117
131
137
139
139
142
150
154
155
151
144
140
141
145
151
155
160
167
175
186
202
215
228
226
174
107
67
41
19
14
25
32
38
61
109
152
183
208
217
204
188
181
170
150
122
95
67
49
54
72
89
104
115
117
125
139
156
162
149
125
106
91
85
93
101
105
106
112
118
127
136
143
142
136
134
132
133
137
137
131
125
125
133
144
157
167
170
173
179
185
191
195
196
196
204
195
142
90
53
20
13
23
38
58
76
101
136
163
190
208
198
182
160
136
119
109
97
87
79
79
90
106
127
142
141
131
124
117
116
115
106
97
93
92
99
116
131
138
139
135
127
121
122
120
117
114
111
109
116
126
134
139
141
143
147
154
162
167
167
164
159
156
160
166
172
179
185
194
201
168
122
87
46
32
35
39
59
80
99
125
151
170
183
182
168
152
130
116
106
101
99
99
103
112
125
138
146
147
137
117
101
91
85
84
83
87
96
109
126
141
150
150
142
130
118
111
108
109
111
112
113
116
123
133
142
148
150
153
158
163
167
168
164
158
155
157
163
173
180
188
197
204
168
121
80
33
9
7
37
59
96
127
140
164
176
181
181
169
146
120
101
89
88
99
108
120
131
138
146
150
146
129
110
90
74
75
77
85
102
115
127
142
151
154
151
140
122
108
98
95
102
107
112
115
118
122
130
139
144
148
150
151
152
154
153
150
148
147
147
153
160
167
176
182
188
200
208
175
130
90
34
20
15
28
67
89
123
141
157
169
170
171
155
136
117
97
95
98
108
124
134
145
145
147
143
130
117
88
73
62
61
77
88
110
129
143
157
159
157
146
131
115
100
96
96
104
114
118
121
121
126
132
139
146
149
151
154
156
159
159
156
151
148
151
157
165
175
181
184
186
188
164
124
89
54
14
13
41
58
109
138
150
163
164
159
156
149
131
114
102
92
98
117
130
148
156
152
143
134
123
105
89
69
60
63
77
95
120
140
153
160
157
146
135
121
107
100
96
99
107
117
124
128
130
129
134
139
142
147
148
149
151
153
153
152
151
150
152
158
165
172
178
179
177
179
178
145
109
78
54
45
37
63
79
101
130
139
151
154
149
142
132
120
114
112
118
123
136
144
149
153
145
134
123
105
84
71
65
65
81
96
109
131
145
154
159
152
138
125
113
103
103
105
109
116
122
124
127
130
130
135
137
138
144
147
150
155
156
153
152
151
152
157
162
167
170
171
171
173
176
179
154
112
83
61
66
66
70
85
90
108
127
142
149
145
133
123
117
122
126
135
139
140
144
148
152
149
139
120
100
78
69
69
78
88
101
113
123
138
149
152
148
136
122
116
112
110
110
112
114
119
125
127
129
129
129
131
134
137
142
146
148
151
152
153
155
155
155
156
158
161
165
168
166
166
167
174
162
124
97
79
80
83
77
77
80
92
112
131
135
132
123
122
125
134
139
139
139
140
147
152
152
143
129
112
100
94
82
73
76
80
95
115
124
129
139
141
142
141
131
121
116
113
111
115
117
120
124
124
124
125
125
125
129
131
135
141
146
150
153
154
153
154
155
155
157
158
158
160
164
163
166
170
174
151
116
97
88
93
83
73
70
80
99
117
122
117
116
120
133
137
139
134
137
145
155
157
151
141
130
125
116
106
91
75
71
83
91
100
107
111
126
141
143
139
132
126
126
125
120
115
116
119
125
126
121
118
120
123
125
126
126
132
141
147
149
150
151
155
157
156
153
153
155
156
157
155
155
159
163
166
156
127
111
110
112
88
72
74
87
99
103
101
102
117
126
133
128
130
135
148
152
150
147
146
148
143
133
119
112
106
96
86
87
88
93
97
104
115
126
131
134
133
134
134
131
127
125
128
129
131
127
126
125
125
123
121
122
123
129
132
136
139
145
148
150
151
151
152
151
151
150
150
150
150
149
148
148
150
149
135
126
124
121
104
96
95
96
95
95
97
101
108
113
117
121
129
133
138
140
142
143
144
141
138
135
131
127
123
118
113
113
112
107
107
110
111
113
116
116
119
121
122
124
127
129
131
133
133
133
133
131
130
130
129
127
127
126
126
127
128
129
130
131
133
134
134
136
138
139
141
143
144
146
148
148
150
151
151
145
139
137
132
119
113
110
101
99
100
93
94
102
104
107
116
120
126
134
135
137
144
144
142
144
142
139
139
133
126
127
122
113
111
109
106
107
106
104
109
112
112
117
121
125
131
134
134
138
139
136
136
136
133
132
129
127
128
127
125
125
126
126
127
127
128
131
133
135
138
140
141
143
145
147
149
149
149
151
150
143
137
134
129
121
113
107
103
100
96
94
97
102
104
107
114
121
126
131
135
140
143
142
142
144
142
139
135
131
128
123
117
113
112
110
108
107
107
108
111
112
116
121
125
128
132
134
136
137
137
137
136
134
133
132
130
129
128
127
127
126
126
127
129
130
131
133
136
137
139
141
143
145
146
147
149
149
150
150
145
139
136
132
123
115
110
106
103
99
95
98
103
103
107
115
120
125
130
134
140
142
142
143
145
143
140
138
134
130
126
120
114
112
110
108
108
106
106
110
112
114
118
124
128
131
134
137
139
139
139
139
138
135
132
131
130
128
128
127
127
127
127
129
130
131
133
136
137
139
141
143
145
146
147
148
149
151
148
141
136
135
128
118
114
109
104
100
96
97
101
101
104
112
117
121
127
132
137
141
141
142
144
143
140
139
137
134
128
123
122
116
109
107
108
106
105
105
108
112
113
117
124
129
130
134
138
139
139
138
138
137
134
130
130
128
126
126
126
126
125
126
128
129
130
132
135
137
138
140
142
143
144
145
146
147
147
148
145
138
134
132
125
117
112
109
106
100
97
100
103
103
106
113
118
122
126
132
137
139
139
141
142
141
138
137
136
130
126
124
120
114
109
109
108
106
105
107
110
112
114
119
125
127
130
134
138
136
137
138
137
135
133
131
129
128
126
126
125
125
126
127
129
130
131
135
137
139
141
143
144
145
146
147
148
148
149
147
144
141
133
128
123
118
107
106
103
100
96
100
101
105
107
115
121
124
129
135
140
141
143
144
144
141
140
137
133
127
123
117
113
109
105
105
106
105
106
109
112
115
119
124
129
132
135
138
140
140
139
139
137
134
132
130
127
126
125
125
125
126
127
129
131
133
135
138
140
141
143
144
145
146
146
146
146
146
147
145
141
140
131
127
122
117
107
105
104
100
97
99
103
104
108
114
122
123
129
134
140
140
143
144
144
140
138
137
132
127
123
121
114
111
108
107
103
104
108
108
110
115
119
121
125
130
134
136
139
142
141
140
138
137
134
131
129
127
125
125
126
126
127
129
132
134
136
138
140
143
144
146
146
145
146
150
147
148
149
150
144
144
141
130
129
121
119
107
108
105
101
99
102
106
107
112
119
126
127
134
139
144
144
147
147
145
143
140
138
133
129
124
121
115
110
109
108
105
106
109
111
112
115
121
122
127
132
136
137
139
143
142
141
139
138
134
131
129
127
125
124
126
126
127
129
132
134
136
139
141
142
144
146
146
147
146
147
146
146
147
148
143
140
142
130
127
121
119
109
103
106
99
98
98
103
105
108
114
123
125
131
137
142
143
145
147
145
141
139
137
131
127
122
118
112
108
105
102
104
103
104
107
110
112
116
120
124
128
131
135
136
138
139
139
137
136
134
130
127
125
124
122
122
123
125
126
128
131
134
136
140
141
143
145
145
147
145
144
146
143
145
145
146
137
136
139
123
124
117
112
110
98
104
100
95
99
102
106
108
116
123
126
132
137
144
143
145
148
144
141
137
137
129
125
122
116
110
105
105
100
99
102
104
106
110
115
118
120
126
129
132
134
137
139
137
138
138
135
132
130
128
124
123
123
123
123
125
128
130
132
136
139
140
143
146
146
147
148
147
145
146
145
143
143
145
144
132
135
136
118
121
117
109
109
102
102
102
100
102
108
113
112
122
129
129
135
141
144
144
145
145
142
139
135
132
127
122
119
115
109
104
103
103
100
101
109
111
111
119
125
124
127
133
133
133
136
138
136
134
134
133
129
127
127
125
122
123
126
126
127
131
134
134
138
142
143
143
146
148
146
147
148
146
145
145
143
143
142
145
141
127
136
129
113
116
114
106
100
103
103
98
103
106
110
114
118
127
131
134
137
143
143
141
144
141
137
133
129
126
120
116
114
110
106
103
104
103
101
106
110
113
116
122
126
127
130
132
133
131
132
132
130
129
128
127
125
124
124
124
124
125
127
130
131
134
138
140
140
143
145
145
145
146
147
146
144
145
145
143
143
145
146
144
148
142
129
135
129
115
114
113
106
101
104
103
100
107
110
113
119
125
130
133
139
141
142
143
144
142
138
136
132
126
123
120
115
112
111
108
105
104
103
107
109
109
114
122
125
124
131
135
131
131
133
132
128
127
128
125
124
123
123
124
125
126
127
131
133
135
139
142
143
144
145
147
146
145
147
147
145
144
147
145
144
147
149
148
147
153
151
133
131
133
120
107
106
107
99
95
101
101
104
110
116
121
128
135
136
139
145
145
141
141
142
136
130
128
125
119
115
114
112
109
110
107
106
109
105
107
115
118
116
121
130
130
127
131
132
129
126
125
122
120
121
118
118
121
123
123
125
131
133
134
138
141
142
143
144
144
142
143
143
141
141
143
142
142
146
145
147
150
152
154
155
158
153
136
129
124
111
100
96
95
88
92
100
99
104
115
123
126
133
142
142
142
145
144
139
137
136
130
125
124
120
115
114
114
113
111
113
113
110
112
112
109
112
118
121
119
122
127
128
127
125
122
121
121
119
115
114
117
119
120
123
126
130
134
138
139
141
143
143
142
141
139
138
137
137
137
137
140
143
146
149
151
152
155
157
159
162
163
162
158
142
122
112
101
93
87
84
83
87
100
108
113
121
132
141
145
149
148
145
144
142
135
128
125
123
120
118
115
113
114
115
116
116
117
119
120
122
120
119
120
118
118
119
124
124
121
120
118
116
115
112
110
109
113
115
118
121
125
129
134
138
140
140
142
141
139
137
134
131
129
129
129
130
132
135
140
144
148
153
158
160
158
159
160
160
161
162
162
155
136
114
97
87
82
79
78
81
90
102
116
127
134
140
146
151
153
149
142
134
129
124
120
116
113
112
113
116
118
119
120
122
124
125
123
125
123
123
125
122
121
118
116
117
117
120
119
116
113
109
109
107
108
111
114
120
124
129
133
135
138
138
140
139
137
134
131
130
128
126
126
126
128
131
136
141
145
151
154
158
159
162
161
157
156
154
154
157
158
160
157
137
110
90
83
78
79
84
86
91
105
122
135
144
149
147
146
148
144
136
126
118
110
108
111
113
114
116
119
122
127
132
131
129
127
124
123
124
123
122
118
112
116
112
114
117
118
121
119
120
114
110
108
104
106
111
117
123
128
133
134
137
138
136
135
131
128
126
125
125
123
124
125
128
132
135
139
142
146
149
152
155
157
157
156
154
151
151
153
153
154
156
159
161
146
123
99
82
75
78
86
89
96
104
115
130
145
153
153
148
142
136
132
128
120
112
106
105
109
117
124
128
129
130
131
133
135
132
126
120
116
115
116
119
119
116
115
112
115
124
124
125
123
119
114
112
110
104
104
108
113
123
131
135
136
137
135
132
132
129
127
125
123
123
123
126
127
129
132
133
138
142
146
149
150
151
150
152
152
150
149
150
149
150
152
152
157
165
169
154
134
114
91
84
82
83
81
85
97
107
125
141
148
150
149
147
141
138
133
121
113
107
105
108
115
121
123
127
131
133
138
139
135
129
123
119
117
117
116
115
115
113
115
114
121
126
124
127
125
122
120
117
112
105
105
106
111
122
129
133
136
137
137
136
135
131
127
125
122
123
123
125
126
128
132
133
138
142
144
146
148
148
148
149
149
149
149
149
149
150
151
153
154
156
158
165
159
138
125
105
94
90
86
85
81
92
104
117
133
139
142
143
146
147
142
138
126
116
111
110
111
112
115
117
120
128
133
137
137
135
131
128
128
124
120
117
111
109
111
111
108
115
122
121
126
130
126
124
123
117
111
108
106
106
115
122
125
130
134
135
135
136
132
129
128
127
126
126
126
126
127
130
132
134
137
139
143
147
149
151
152
151
151
151
149
147
147
151
150
148
150
152
156
161
146
128
123
108
101
98
90
87
86
100
111
118
128
130
135
143
147
146
138
132
127
122
121
117
111
109
112
117
121
124
126
127
131
135
135
132
130
127
125
124
122
112
108
108
101
111
118
114
116
123
127
126
125
123
115
115
117
112
113
118
121
124
128
131
130
131
134
132
130
131
129
129
129
129
128
129
132
132
133
136
138
141
145
148
149
150
151
151
152
151
150
150
147
146
149
150
151
152
147
133
129
128
113
106
102
93
93
99
102
104
110
119
128
130
136
140
138
140
141
135
129
127
125
122
118
116
115
114
117
119
119
120
125
128
129
130
131
131
131
131
129
121
117
117
114
116
118
112
113
123
125
121
122
125
129
131
128
127
129
131
130
130
128
128
130
132
131
130
129
130
131
130
127
127
129
129
128
128
128
128
130
131
130
129
130
133
132
131
130
132
133
131
130
130
132
132
131
132
132
133
133
134
133
132
132
132
130
128
126
125
123
122
121
120
120
120
120
120
120
121
122
123
123
124
126
127
127
128
128
129
129
129
128
128
128
127
127
127
126
126
126
125
124
124
123
121
122
124
122
122
123
124
124
124
124
124
125
125
125
126
127
127
128
129
129
129
130
131
130
130
130
129
130
129
128
128
128
128
127
127
127
128
128
129
129
130
130
130
131
131
132
132
132
131
131
132
132
131
132
132
131
132
132
132
132
132
132
131
130
130
129
129
128
127
127
126
125
125
124
123
124
124
123
124
124
124
125
126
126
126
127
127
128
128
128
128
128
128
128
128
127
127
127
126
126
126
125
125
125
124
123
124
124
123
123
124
123
125
124
124
120
127
132
116
127
134
122
128
133
126
129
132
128
129
130
128
129
128
128
129
127
127
128
127
127
128
128
127
128
129
129
129
129
130
130
130
130
131
130
130
131
130
130
131
130
130
130
130
130
131
129
129
130
129
129
129
128
128
128
127
126
126
126
125
125
124
125
125
124
125
125
125
125
126
125
126
126
126
126
127
127
126
127
126
126
126
125
126
126
125
125
125
124
119
133
121
120
131
121
126
126
124
127
125
126
127
126
127
127
127
128
127
127
128
128
127
128
127
128
128
127
127
127
127
126
127
126
127
126
127
125
126
98
103
132
103
128
138
133
137
133
127
141
136
118
128
140
126
117
133
129
127
128
126
129
137
128
123
138
131
124
127
132
125
125
123
122
127
120
118
124
124
119
123
125
126
126
126
128
130
128
127
130
128
126
125
126
123
122
121
120
118
115
115
114
113
114
116
116
118
120
122
124
124
126
128
128
128
129
129
128
128
127
126
125
124
124
123
122
124
125
124
126
127
129
130
131
132
132
132
133
133
132
133
132
133
133
133
133
135
134
136
137
136
139
140
140
142
142
141
145
141
137
141
135
134
132
127
128
123
120
121
119
117
117
118
118
121
121
124
128
126
131
133
134
135
136
137
138
137
136
136
135
132
132
130
128
127
126
125
125
125
125
127
123
117
127
124
117
121
126
123
119
124
126
124
122
126
129
125
126
131
131
128
130
134
133
131
133
135
132
132
134
135
133
134
136
137
135
136
139
138
138
140
143
143
143
146
146
147
147
148
150
150
147
152
152
150
153
147
147
146
135
134
130
122
120
115
112
111
107
110
110
109
114
116
120
124
128
132
136
136
139
141
140
140
139
138
136
132
129
127
124
120
118
117
115
114
114
115
116
117
119
121
122
125
118
124
126
120
122
121
122
118
117
119
117
114
115
118
115
116
119
121
121
122
126
127
126
128
131
130
129
131
131
129
129
130
130
128
128
131
130
130
132
135
136
136
140
140
142
143
144
147
145
146
149
146
146
150
142
142
140
133
128
123
118
114
108
107
102
102
103
100
106
106
110
115
118
123
126
131
133
136
137
138
139
137
136
133
132
128
125
122
119
117
114
113
112
112
112
113
115
117
119
121
125
123
123
126
125
123
122
124
121
120
119
119
117
115
117
116
116
116
119
119
120
123
124
125
126
128
129
130
130
131
131
130
130
130
130
129
129
130
130
130
131
132
133
134
136
137
139
142
142
143
145
145
145
146
146
146
146
143
142
139
136
133
127
124
120
115
113
109
106
107
105
107
108
111
114
116
120
124
127
129
133
134
137
136
138
137
135
134
132
130
127
125
123
120
118
117
116
115
115
116
117
118
119
122
122
121
122
127
121
118
126
121
119
119
119
119
114
117
119
116
116
121
122
121
124
127
128
127
131
134
132
132
135
134
133
133
135
134
133
134
135
135
135
138
139
139
141
142
141
148
143
146
152
146
151
150
150
149
145
143
137
133
124
120
115
109
105
103
104
98
103
105
103
113
112
119
125
126
136
135
141
142
144
145
143
143
140
138
134
131
127
122
121
116
116
114
112
113
113
115
117
120
122
124
128
129
133
129
124
135
126
120
124
122
119
114
116
118
112
113
119
119
117
122
127
128
128
133
137
134
135
139
137
135
136
137
134
132
133
134
132
132
135
137
136
138
141
142
142
146
149
148
152
153
154
160
150
158
154
141
145
129
113
128
101
94
109
83
103
85
96
108
94
115
113
130
125
136
145
146
151
148
160
149
150
148
143
140
130
128
124
115
113
111
109
105
105
110
109
111
115
121
124
126
132
136
138
139
142
143
141
140
134
119
140
117
108
124
106
112
103
109
111
102
113
115
118
115
126
129
128
131
135
139
131
136
139
133
132
132
132
128
127
130
128
127
128
133
133
133
138
141
142
143
147
149
150
150
156
155
154
157
156
155
136
113
151
110
86
127
79
114
73
92
115
75
110
100
127
109
123
141
138
142
138
163
147
147
151
150
145
132
135
136
118
116
116
115
105
101
112
106
104
106
117
117
114
125
131
132
130
139
143
138
137
141
140
134
128
132
112
118
117
100
113
101
108
107
105
115
112
119
121
128
129
132
136
138
140
137
141
138
135
136
132
131
128
127
128
126
127
127
129
130
131
135
137
138
141
142
144
146
147
149
151
153
147
150
147
109
154
113
98
132
80
128
77
104
111
87
114
98
128
108
125
131
136
137
134
154
143
143
147
144
145
133
136
136
122
125
116
122
110
110
114
111
110
109
118
117
117
122
128
129
129
134
138
137
136
139
139
135
134
135
132
127
126
127
122
121
117
110
128
104
114
121
110
123
112
125
123
119
130
128
130
128
134
133
131
132
133
133
127
131
131
127
128
127
129
126
127
130
129
128
130
132
132
130
133
134
133
133
135
135
134
134
135
134
133
133
134
133
131
133
132
132
132
132
134
131
133
133
124
134
125
124
126
121
126
119
122
123
120
122
121
125
123
125
127
128
128
128
131
130
130
130
131
131
129
129
129
128
126
126
126
124
124
124
124
123
123
124
124
125
125
126
126
127
128
127
129
128
128
129
128
129
128
128
128
127
127
127
126
126
126
126
126
126
126
126
126
127
127
127
128
128
129
129
129
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
130
129
128
128
126
126
125
125
124
124
124
124
124
124
124
125
125
126
127
128
128
129
130
130
130
130
130
130
129
129
129
128
128
127
126
126
126
126
126
125
126
126
126
126
127
127
128
128
128
129
129
129
129
129
129
129
128
128
128
127
127
127
127
127
126
126
126
126
127
127
127
127
127
127
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
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
127
128
127
128
128
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
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
128
128
128
128
128
128
128
128
128
127
128
127
127
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
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
127
127
127
127
127
127
128
128
128
127
128
128
127
128
128
128
128
128
127
128
128
128
128
127
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
127
127
127
128
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
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
127
127
127
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
127
128
128
128
127
128
128
128
127
128
128
128
128
128
128
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
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
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
127
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
127
127
127
127
127
127
128
127
127
128
127
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
128
127
128
128
128
128
128
128
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
127
128
128
128
128
127
127
128
128
127
128
128
128
127
127
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
127
127
127
127
128
128
127
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
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
128
128
127
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
128
128
128
128
128
127
127
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
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
127
127
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
128
127
127
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
127
127
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
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
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
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
127
127
128
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
127
127
128
128
127
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
127
128
128
127
127
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
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
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
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
127
127
127
127
127
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
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
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
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
128
128
128
127
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
128
128
128
128
128
128
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
128
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
128
128
128
128
128
128
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
127
127
127
127
128
127
127
128
128
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
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
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
127
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
127
127
128
127
127
127
127
128
128
128
127
127
127
128
127
127
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
127
127
127
127
127
127
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
127
127
127
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
128
128
128
128
128
128
128
128
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
127
127
127
127
127
128
128
128
128
127
128
127
127
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
127
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
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
127
127
128
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
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
127
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
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
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
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
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
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
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
127
127
127
127
128
127
128
128
128
128
128
127
127
127
127
127
128
128
128
127
127
128
128
128
127
128
128
128
128
128
128
127
127
128
128
127
127
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
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
128
127
127
128
128
128
128
128
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
128
128
128
128
128
128
128
128
127
128
127
127
127
128
127
127
127
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
128
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
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
127
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
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
128
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
128
128
128
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
127
128
128
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
128
128
128
128
128
128
128
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
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
127
128
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
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
127
128
128
128
128
128
128
127
128
127
127
128
127
128
128
127
128
127
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
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
128
128
127
128
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
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
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
128
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
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
128
127
127
128
127
128
127
127
128
127
127
127
128
128
127
127
127
128
127
127
128
128
128
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
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
128
128
127
128
127
127
127
127
127
128
128
127
127
128
128
128
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
128
127
127
128
128
127
128
127
127
127
127
127
127
127
128
128
127
128
128
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
128
127
127
127
128
128
128
128
128
128
127
128
128
128
127
127
127
128
128
127
128
128
127
128
128
127
128
128
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
127
127
127
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
127
127
127
127
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
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
127
127
127
127
128
127
127
127
127
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
127
127
127
127
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
128
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
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
128
127
127
128
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
127
127
128
128
127
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
128
128
128
128
128
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
127
127
128
127
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
128
127
127
128
127
127
127
128
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
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
128
128
127
127
127
127
128
127
128
128
128
128
128
127
128
127
127
127
128
127
127
127
127
127
127
128
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
127
128
127
128
128
128
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
127
127
127
127
127
128
128
127
127
128
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
127
127
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
127
127
127
128
127
127
127
127
128
127
127
127
127
127
128
128
128
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
128
128
128
127
127
127
127
127
128
127
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
127
127
128
127
128
127
127
128
127
128
127
128
127
127
128
127
128
127
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
127
127
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
128
127
127
128
128
128
128
127
127
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
127
128
127
127
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
126
127
127
126
127
126
127
127
127
127
126
128
127
128
127
127
128
126
128
127
127
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
128
126
127
127
127
128
127
127
127
126
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
127
127
127
127
127
127
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
128
127
127
128
127
128
128
128
127
128
128
127
128
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
127
128
127
128
128
128
127
128
127
127
128
127
128
128
127
127
127
128
128
127
127
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
127
128
125
130
126
127
128
126
129
126
128
126
128
128
127
127
126
127
127
127
127
127
126
127
126
128
127
127
127
127
127
126
127
126
127
127
126
127
126
126
126
127
126
127
128
126
128
126
126
127
127
127
127
126
126
127
126
127
125
126
128
126
130
125
126
126
126
129
128
126
127
126
128
127
127
126
126
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
127
127
127
127
127
126
128
126
126
130
125
128
127
125
129
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
128
127
127
128
127
128
127
127
127
128
127
127
127
127
127
128
127
129
127
124
132
124
129
128
126
128
127
130
126
128
128
126
130
127
128
128
128
128
128
128
127
128
128
127
129
127
128
129
128
128
128
128
129
128
128
128
128
129
129
129
128
128
128
128
128
128
128
128
129
129
128
128
128
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
128
128
128
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
129
129
128
128
128
128
127
128
128
128
129
129
128
128
129
129
129
129
128
128
129
129
129
128
128
128
128
128
128
128
128
128
129
129
129
129
128
128
128
129
129
128
128
128
129
128
128
127
128
129
128
128
128
128
129
129
129
128
128
128
127
128
128
129
128
128
128
128
128
128
127
127
128
128
129
129
128
127
127
126
128
128
128
128
128
128
128
127
127
127
128
128
127
127
127
128
128
128
127
127
128
128
129
126
126
128
129
129
127
126
127
129
130
128
127
127
128
128
126
126
124
127
129
129
128
126
126
128
127
128
126
131
115
117
124
129
141
135
121
118
123
129
134
130
124
125
128
127
128
124
124
128
129
127
128
126
130
130
128
125
126
129
131
132
126
124
126
126
128
127
126
128
129
128
125
126
127
130
131
128
128
126
128
130
127
126
124
126
127
125
130
128
129
129
124
123
127
128
130
132
129
128
128
128
127
128
126
126
128
132
130
127
125
122
129
132
129
127
125
127
130
130
129
126
128
127
127
125
124
129
127
130
129
123
124
125
128
132
130
126
122
124
128
130
130
130
124
124
124
125
129
128
126
129
127
125
127
125
128
127
129
124
126
129
129
132
127
123
121
130
129
130
129
123
129
132
126
126
119
121
131
135
134
130
123
123
125
127
122
132
131
126
132
120
121
123
124
132
131
130
129
128
124
122
124
128
138
139
127
118
116
121
130
133
134
129
127
127
124
125
129
125
131
134
129
127
128
124
125
128
121
129
133
128
128
124
119
133
134
132
137
124
123
129
123
127
128
129
134
133
130
123
121
125
124
129
132
133
134
134
124
118
123
126
135
138
130
123
121
121
127
133
129
131
133
129
129
125
122
125
129
133
131
130
127
125
129
126
126
129
127
133
133
126
123
122
127
134
129
134
129
124
130
124
122
129
126
131
135
128
128
125
119
130
137
136
131
123
120
125
135
133
129
127
123
122
132
129
131
132
127
129
128
124
121
123
132
139
135
128
122
122
125
127
126
129
132
132
128
125
122
128
132
129
126
122
125
135
137
131
127
119
121
129
131
134
132
120
124
127
127
132
134
132
128
125
125
124
129
129
125
131
131
128
134
128
118
126
127
131
136
127
124
125
126
132
132
128
124
125
133
133
134
125
115
124
129
130
130
124
125
135
136
128
119
112
117
130
135
133
128
125
125
121
118
115
119
134
146
141
126
111
105
116
134
138
135
128
121
122
125
120
125
127
131
139
131
127
125
121
123
128
134
140
142
136
124
122
129
134
139
138
128
128
130
132
133
130
131
139
141
138
134
128
128
128
126
128
129
133
134
132
132
131
127
125
125
124
126
123
119
119
121
126
124
120
120
119
120
126
118
110
116
114
119
132
123
119
120
113
118
121
119
123
127
127
126
122
122
121
123
126
125
132
135
132
132
130
127
132
133
129
133
136
139
141
138
132
131
138
139
138
130
126
138
150
154
155
139
125
124
138
154
161
166
164
164
159
149
149
133
78
15
0
45
138
209
224
179
111
76
70
80
95
102
111
134
159
169
154
121
88
76
84
97
110
117
119
125
130
120
105
97
100
117
136
141
134
124
114
112
116
120
127
136
140
136
128
119
113
119
127
136
142
143
141
136
136
136
136
146
149
145
148
141
135
144
145
143
154
151
153
158
153
158
167
165
190
188
197
108
0
11
0
132
255
255
192
113
76
31
75
81
57
81
159
198
230
208
123
51
59
68
95
141
136
115
107
97
101
110
100
108
127
141
148
132
105
86
95
114
135
145
143
134
130
119
114
113
117
129
138
139
133
127
125
123
129
138
146
154
154
147
141
130
128
137
142
152
158
150
146
142
138
152
167
166
161
158
156
172
209
201
180
40
0
5
30
203
255
255
152
97
59
45
77
63
46
96
191
227
240
189
82
35
58
78
126
137
95
89
115
121
126
117
80
93
130
144
144
129
97
96
116
122
128
132
131
135
141
126
113
112
115
126
138
133
131
135
134
135
133
131
136
147
154
145
134
131
138
153
159
154
136
124
128
139
156
166
171
163
152
144
140
156
184
223
204
173
53
0
5
30
185
255
255
168
107
89
48
55
46
34
80
211
242
239
194
84
36
60
83
94
91
100
114
148
160
114
78
72
92
130
152
138
123
119
120
113
112
107
120
145
153
144
123
109
108
115
128
132
135
142
141
138
128
126
132
144
156
150
139
135
135
144
153
143
142
150
143
143
148
136
140
163
158
161
168
156
147
158
203
209
195
95
0
4
10
146
251
255
198
112
122
93
58
33
20
47
180
250
235
198
116
64
70
95
82
56
74
118
157
182
140
74
64
94
118
136
130
121
132
146
126
100
93
103
135
154
150
131
125
120
115
112
112
122
143
152
145
135
130
129
135
142
137
139
145
151
150
142
137
139
144
144
143
146
146
142
153
164
165
157
133
127
154
170
182
210
192
147
32
0
0
47
172
227
241
176
150
145
103
35
9
30
94
186
225
199
168
138
112
100
66
17
51
117
141
163
149
112
110
111
97
89
101
122
144
158
136
113
110
109
112
120
125
133
148
148
129
113
106
111
125
134
138
143
147
145
136
126
126
131
142
153
148
147
141
136
137
135
132
144
158
148
140
141
146
161
161
130
129
146
159
173
164
170
196
186
124
11
0
0
79
167
185
187
175
190
177
108
33
11
46
105
153
164
163
179
184
148
91
51
46
77
99
96
120
147
148
146
122
91
96
110
110
112
125
141
148
140
119
102
109
122
125
128
132
137
144
139
123
113
114
125
135
139
143
146
147
146
138
131
126
129
139
143
150
159
146
129
138
144
135
135
134
133
160
174
150
129
133
139
146
148
137
147
178
181
155
120
60
22
52
82
92
117
137
158
179
171
138
106
94
98
96
92
100
114
133
144
142
138
126
110
101
99
93
94
107
117
125
135
135
131
131
126
121
120
124
129
131
133
135
134
134
133
128
126
132
134
134
134
133
135
136
132
133
134
132
130
133
133
130
134
134
129
127
131
130
124
127
132
126
125
130
129
125
126
128
128
128
129
129
127
127
130
128
127
127
127
128
128
126
125
126
128
130
131
128
127
128
128
127
126
126
126
126
127
128
127
125
123
122
120
121
121
121
121
121
122
122
122
122
123
123
123
124
125
125
125
125
125
124
125
125
125
126
127
127
127
126
125
126
125
125
126
126
126
128
127
126
125
126
126
127
127
126
127
127
127
127
126
127
128
128
128
128
127
128
129
128
128
128
127
128
130
129
128
127
128
128
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
126
127
127
126
126
126
126
127
126
124
123
124
126
127
125
125
125
125
126
125
123
123
125
126
126
125
125
125
125
125
124
125
126
125
125
125
125
126
125
125
125
125
126
126
126
125
125
125
124
125
125
126
126
127
126
125
125
127
125
124
124
123
122
123
122
121
121
121
123
126
126
127
128
127
124
116
120
124
130
130
134
140
136
126
124
125
126
126
124
128
137
137
132
130
133
136
135
130
129
134
135
130
125
125
127
127
125
122
124
129
128
126
127
127
127
124
119
118
117
114
113
110
110
114
113
113
116
117
117
117
116
116
117
116
116
118
120
121
121
122
124
126
125
125
125
127
127
127
129
130
130
129
130
133
135
136
135
137
140
139
138
138
141
144
141
138
140
142
138
138
141
141
146
149
140
140
151
147
141
143
146
153
161
163
155
141
133
97
39
65
88
68
83
114
137
167
161
142
155
155
125
105
99
97
106
101
104
121
137
131
131
135
130
125
113
99
96
92
90
102
110
122
132
135
137
137
128
119
116
111
112
114
118
125
129
130
131
131
129
128
127
129
132
134
136
139
141
142
140
141
140
136
135
138
141
146
145
142
147
146
144
141
141
145
145
142
145
150
149
159
169
161
137
130
77
38
79
73
57
89
123
141
167
151
150
167
147
112
110
103
94
97
93
108
129
136
133
148
152
140
123
113
101
90
86
95
91
89
117
128
126
134
139
135
132
118
111
117
112
106
116
123
124
129
130
133
136
133
129
135
137
132
133
137
140
137
138
141
145
143
142
145
148
154
150
146
152
152
140
139
148
143
142
152
160
160
162
165
177
156
132
109
52
71
87
51
67
124
135
148
165
162
175
168
131
124
128
101
90
98
107
113
125
131
148
159
152
145
147
136
124
97
84
100
98
82
82
123
139
127
131
153
150
132
117
121
121
106
99
118
130
123
127
139
146
138
134
137
143
134
130
138
144
139
136
141
147
143
132
152
164
150
137
154
164
154
141
136
148
150
139
142
162
165
163
172
162
148
117
46
78
90
36
56
111
123
134
154
158
182
171
136
136
139
101
89
94
97
98
106
114
137
149
143
148
156
143
128
121
115
103
84
95
101
98
95
96
120
134
118
122
142
134
119
119
117
112
105
102
115
120
116
123
136
137
133
135
138
135
130
129
133
132
127
132
138
136
137
143
150
148
144
148
151
144
138
141
142
143
141
149
156
158
168
156
139
114
47
74
86
34
58
110
119
128
152
159
179
167
139
141
137
101
89
93
93
90
99
113
132
142
142
151
157
145
132
127
119
108
99
93
87
108
108
107
102
115
124
125
122
119
128
121
115
114
118
111
110
113
120
121
124
130
136
136
134
137
138
133
131
133
134
134
133
137
138
140
141
147
149
148
152
153
150
150
150
150
151
154
157
168
153
132
92
47
93
71
33
75
122
121
133
160
171
179
158
142
149
129
93
92
97
90
86
104
121
135
140
148
159
159
142
136
131
118
104
99
102
102
106
111
131
124
121
144
131
121
119
116
108
102
94
106
111
108
116
133
129
129
133
134
129
125
124
126
127
124
129
134
135
133
140
139
139
137
142
144
142
143
148
150
144
144
150
150
148
155
154
159
169
163
127
102
71
72
79
47
66
111
124
126
156
173
173
165
153
147
135
105
94
96
92
85
98
116
128
137
149
158
159
150
141
137
124
109
102
102
100
101
109
121
133
127
133
149
132
121
119
110
105
102
98
109
118
113
121
135
130
128
133
133
128
125
126
128
128
125
129
135
133
132
138
138
137
141
144
142
144
145
143
144
144
144
147
150
151
156
160
168
158
115
95
78
86
69
55
88
118
122
132
163
173
167
159
155
148
126
104
100
98
90
88
105
120
127
137
153
158
156
148
145
136
122
110
105
103
99
102
112
123
129
135
146
144
139
139
131
118
108
109
104
96
101
113
116
119
132
139
138
137
137
135
129
123
122
123
120
120
126
131
130
132
137
138
137
137
137
138
135
132
133
134
131
132
133
136
137
136
137
140
139
139
142
141
140
140
141
138
119
110
112
100
96
103
109
116
126
134
143
148
145
143
142
133
123
118
114
109
108
111
115
121
127
133
139
141
140
139
136
131
125
121
117
114
108
104
116
118
116
124
133
126
127
134
129
123
124
123
122
121
120
122
127
125
127
134
135
133
136
138
135
134
134
134
132
131
132
134
131
132
135
134
133
135
135
134
134
134
133
134
135
137
137
138
131
120
120
117
110
110
115
119
123
128
133
138
138
135
135
134
128
122
121
119
117
117
120
123
126
128
132
135
135
134
134
132
127
124
123
121
120
120
121
124
126
128
131
133
133
133
132
131
128
125
124
120
115
117
118
114
116
121
122
127
132
134
136
135
135
134
129
125
124
122
119
120
123
124
125
130
133
133
134
134
135
134
130
129
131
129
129
130
131
132
133
134
133
132
134
132
131
131
131
131
132
131
131
128
120
118
122
118
115
121
126
126
128
132
134
135
133
131
132
128
123
122
122
120
119
122
124
126
128
130
133
133
132
132
132
129
126
125
124
123
122
123
126
127
127
130
132
131
131
130
130
128
126
125
125
124
124
125
126
127
128
129
130
131
130
130
130
129
127
126
126
125
125
125
126
126
127
128
130
130
130
130
130
128
128
127
126
125
125
125
126
126
127
128
129
129
129
129
129
128
128
127
127
126
126
126
126
127
127
128
128
129
129
129
129
128
127
127
127
126
126
126
127
127
127
128
128
128
128
128
128
128
128
127
127
127
126
126
126
127
127
127
128
128
128
128
128
128
128
127
127
127
127
126
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
127
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
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
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
127
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
127
128
127
128
128
127
128
127
128
128
128
128
128
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
127
127
128
127
127
127
128
127
127
128
128
128
127
127
127
127
127
127
127
127
128
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
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
126
122
126
124
123
126
128
126
127
129
127
127
128
126
125
127
128
127
129
129
129
129
129
127
127
126
125
126
127
126
127
129
128
128
129
129
128
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
126
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
127
126
127
127
126
127
128
127
127
128
128
127
127
128
128
127
127
127
127
128
127
127
128
127
127
127
128
127
127
128
128
127
128
128
128
128
128
128
128
127
127
128
128
128
127
128
128
127
127
128
127
127
127
128
128
127
127
128
128
127
128
128
127
127
128
127
127
128
128
127
128
128
127
128
128
126
127
128
127
127
129
128
127
128
127
128
128
127
127
128
127
126
128
129
127
127
129
128
127
128
128
127
127
127
127
127
128
128
127
128
127
127
128
127
126
128
127
126
128
128
127
128
129
127
127
128
127
126
128
127
126
128
128
127
127
128
127
127
126
126
128
128
127
129
129
127
127
128
127
127
127
127
128
128
127
127
128
127
127
128
127
126
127
128
128
127
128
128
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
128
127
127
128
128
127
127
127
128
127
126
128
128
127
127
128
128
127
128
128
127
127
127
128
128
127
127
129
128
126
127
129
128
127
128
129
128
126
127
128
127
127
129
128
127
128
128
127
127
129
128
127
128
128
127
127
127
128
127
127
128
128
127
127
127
127
127
126
127
128
127
127
128
128
127
127
128
127
127
128
127
128
128
127
128
128
126
127
128
127
126
128
128
127
127
128
127
127
127
127
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
128
128
128
128
128
128
127
128
128
128
128
128
128
127
127
127
128
127
127
128
128
126
127
128
128
127
128
129
128
127
127
128
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
128
128
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
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
127
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
128
127
127
127
127
126
127
127
127
127
126
127
127
127
127
128
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
127
127
127
127
127
127
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
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
128
128
128
127
127
127
128
128
127
127
128
127
127
127
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
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
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
128
128
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
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
128
128
128
128
128
127
127
127
127
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
127
127
127
128
128
127
127
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
128
128
128
128
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
127
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
128
128
128
128
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
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
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
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
129
128
128
128
128
128
128
129
128
128
129
129
129
128
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
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
129
129
129
129
129
129
129
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
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
127
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
127
127
127
127
127
127
127
127
127
127
127
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
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
126
127
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
127
127
126
127
127
127
127
127
127
126
126
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
128
128
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
127
127
127
127
126
126
127
127
127
126
127
127
127
126
126
126
126
126
126
126
126
126
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
128
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
126
126
126
126
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
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
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
128
129
128
128
129
128
128
128
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
129
129
129
129
129
129
129
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
128
127
127
128
128
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
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
127
127
127
127
127
128
128
127
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
128
128
128
128
128
128
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
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
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
127
127
127
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
127
127
127
126
126
126
126
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
126
126
127
126
127
127
126
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
128
128
127
128
127
127
127
127
127
127
127
128
128
128
127
128
127
128
128
127
128
128
128
128
128
127
127
128
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
128
128
128
128
128
129
129
128
128
129
129
129
128
128
128
129
129
128
128
129
129
129
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
127
127
127
127
127
127
128
128
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
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
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
127
127
127
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
127
127
128
128
127
127
128
128
128
128
127
128
128
128
128
127
127
127
128
128
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
127
127
128
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
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
128
128
127
127
127
127
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
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
128
128
128
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
128
128
127
127
127
127
127
128
127
128
128
127
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
128
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
127
127
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
128
128
127
128
128
128
128
128
127
127
128
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
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
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
128
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
127
127
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
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
127
127
127
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
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
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
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
127
127
127
127
127
127
127
128
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
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
128
128
128
127
127
128
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
128
127
127
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
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
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
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
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
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
127
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
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
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
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
127
127
128
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
127
127
127
128
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
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
128
125
130
123
135
92
119
126
119
123
123
125
130
129
127
125
125
124
127
125
124
124
123
120
122
123
123
122
126
109
114
119
121
130
127
127
125
130
129
127
123
116
120
122
123
106
109
107
113
116
120
125
131
127
129
129
130
129
129
123
119
120
117
118
121
118
121
125
130
134
139
136
137
141
140
139
138
133
129
130
129
130
131
128
128
132
134
136
139
136
135
137
137
137
135
131
129
131
130
129
129
127
131
134
135
136
138
138
137
137
136
133
132
131
130
131
130
131
133
134
135
136
136
137
138
140
139
140
140
139
140
139
137
136
136
136
137
138
138
139
139
140
140
140
141
139
139
138
137
139
140
141
142
141
140
139
140
140
139
139
138
139
140
140
139
138
137
138
138
136
135
134
133
134
133
133
133
133
133
132
131
130
129
129
129
128
127
125
124
124
124
124
123
122
123
123
123
123
121
119
118
119
118
120
119
117
117
117
117
118
118
116
116
117
116
117
117
116
115
115
115
115
117
118
117
118
118
117
118
119
119
120
120
121
122
122
124
124
124
124
123
123
125
126
126
126
125
123
124
123
124
127
127
127
126
125
125
126
126
124
123
123
120
121
121
120
123
122
121
120
121
125
126
127
125
122
122
121
123
124
123
122
118
117
115
114
114
112
111
109
107
108
111
114
115
116
116
116
117
117
118
119
119
119
120
121
123
124
126
126
127
127
127
129
130
132
134
136
137
136
136
135
135
137
140
140
142
142
141
141
142
141
141
142
139
138
140
142
143
145
145
144
144
144
139
133
126
117
111
112
111
110
109
107
105
103
106
110
118
127
134
137
137
135
129
120
113
103
95
92
86
86
94
104
119
133
142
143
138
129
118
113
111
114
122
127
129
129
128
127
127
130
132
135
137
137
139
140
141
142
143
142
141
141
142
144
150
154
157
159
156
155
153
151
151
150
153
156
159
164
162
158
150
124
98
74
46
41
47
64
94
120
144
157
164
165
160
161
157
151
144
129
112
95
82
77
81
94
110
123
129
130
123
113
110
110
116
125
130
128
121
111
101
98
104
113
126
136
139
137
132
127
124
127
130
132
131
127
122
122
124
131
138
145
148
148
146
144
143
143
146
149
151
151
149
145
141
139
140
145
151
159
164
168
165
160
150
128
103
79
56
44
46
60
81
110
134
151
161
164
160
157
154
151
147
141
130
116
102
88
81
79
84
94
101
112
117
123
128
133
138
139
137
131
121
112
105
104
109
118
128
136
141
140
137
133
131
131
133
136
139
140
138
136
132
131
131
134
137
141
145
146
149
149
149
147
145
143
140
138
136
137
140
145
149
153
154
151
146
136
123
109
95
85
80
79
87
96
110
122
132
141
145
147
148
148
147
145
141
136
128
121
113
106
98
97
95
94
100
103
112
124
134
143
148
147
140
131
122
114
114
117
124
133
139
142
141
137
133
129
129
130
133
137
140
141
140
137
133
130
128
128
131
134
138
140
141
140
137
134
131
129
129
131
134
137
139
139
137
135
132
130
130
130
130
130
128
126
121
116
112
109
110
112
115
119
123
125
127
128
129
129
131
133
134
135
135
132
127
123
117
112
109
108
110
115
121
128
135
139
140
138
133
128
124
122
123
127
131
134
136
134
131
126
122
120
121
125
131
135
138
137
134
129
125
122
123
125
130
134
136
137
135
132
129
127
127
128
130
132
133
134
133
131
128
127
126
127
129
130
130
130
129
127
124
123
122
122
124
126
128
129
129
128
127
125
124
123
123
124
125
127
127
127
127
126
126
125
125
125
126
128
129
130
130
129
128
128
127
126
126
127
128
129
130
130
130
129
128
127
127
127
128
128
129
130
130
129
129
128
127
127
128
128
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
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
128
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
126
126
126
126
126
126
127
127
127
126
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
127
126
126
127
127
127
126
126
126
126
126
126
126
127
127
127
127
126
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
127
127
127
127
127
127
127
127
126
127
126
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
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
129
129
128
127
127
127
127
127
128
128
128
129
128
128
127
127
125
127
127
128
128
128
127
127
127
127
126
127
126
126
125
125
123
123
121
120
117
118
117
111
116
117
131
141
154
152
145
132
115
106
105
109
122
135
145
145
142
135
124
119
119
122
130
136
139
136
133
124
117
118
120
125
135
137
141
140
138
132
131
124
125
122
123
120
120
116
119
124
124
127
128
121
125
123
130
131
139
135
134
130
124
120
122
122
128
131
136
135
136
133
129
129
129
129
134
133
134
131
130
126
125
125
125
127
131
132
134
132
130
126
128
128
129
132
132
130
128
126
124
125
128
131
134
134
134
132
130
128
129
129
131
132
132
131
129
129
129
131
132
132
131
131
130
130
130
132
133
134
134
133
132
130
129
130
132
134
135
136
135
134
132
131
133
134
136
137
137
136
135
133
133
134
135
135
135
135
134
134
135
136
136
136
136
135
134
133
132
132
131
132
131
131
130
130
131
131
131
130
130
129
128
126
125
126
125
126
129
129
130
129
128
127
127
128
129
133
135
137
139
138
138
136
134
133
133
134
134
136
136
136
137
137
138
138
139
138
139
138
136
134
132
130
129
130
132
135
136
136
131
119
103
85
68
59
59
68
83
102
117
125
129
125
120
114
110
108
108
109
110
111
113
114
117
119
120
124
127
130
134
138
141
143
143
140
138
135
134
137
140
146
154
163
174
183
192
200
205
191
157
118
62
10
0
4
0
16
66
111
151
176
189
197
199
189
183
165
136
109
75
46
33
32
37
58
86
99
119
133
133
144
148
142
135
120
101
85
82
82
91
111
119
130
138
137
142
149
156
160
163
157
146
142
136
138
150
160
174
187
194
200
212
228
205
150
94
8
0
5
0
6
82
141
170
190
193
186
198
211
205
196
162
104
55
21
6
23
62
97
127
144
140
141
147
147
151
144
120
92
72
61
66
89
108
123
132
129
128
135
143
154
162
160
150
141
134
131
135
139
143
148
155
166
185
205
220
234
239
247
223
139
66
1
0
4
1
7
86
143
165
184
208
219
231
252
228
184
139
70
24
13
18
38
73
100
107
123
146
154
179
194
172
145
109
67
49
59
70
89
112
117
120
137
147
158
172
166
151
144
136
135
145
152
144
140
136
134
154
182
209
232
243
241
245
234
160
85
13
0
4
2
0
48
120
149
171
204
231
241
255
241
189
136
84
38
21
31
38
54
77
95
113
143
175
186
195
185
147
113
85
58
53
62
70
80
100
119
136
160
171
165
161
150
137
140
145
145
143
140
128
125
135
151
168
193
213
221
230
238
246
241
176
89
8
0
5
0
7
55
95
127
152
186
233
255
255
242
190
131
85
62
50
46
44
42
45
70
105
138
176
189
180
166
144
123
106
89
75
65
62
74
92
117
140
151
155
154
152
155
158
160
157
147
139
133
130
134
142
150
161
177
197
214
226
236
245
232
164
81
15
0
5
0
18
50
63
92
135
179
221
252
248
219
181
151
126
107
90
69
42
27
37
64
94
118
138
147
148
153
159
156
138
111
90
82
80
88
101
109
114
120
131
144
155
161
165
162
156
152
150
148
143
136
133
136
144
157
173
184
189
191
196
203
190
144
91
57
46
52
57
59
65
72
80
98
124
153
173
174
164
155
153
155
154
142
124
107
97
97
103
106
102
96
92
98
114
131
139
136
127
120
124
131
135
133
127
122
124
129
134
135
132
127
125
126
129
131
130
127
124
124
128
132
134
134
133
132
134
137
139
141
141
141
142
144
144
139
131
122
116
114
115
117
115
111
108
109
112
116
117
116
115
117
122
127
129
128
127
128
131
132
130
125
123
124
126
125
121
117
116
119
123
125
123
122
121
123
126
127
126
126
126
127
130
132
132
131
130
130
131
132
133
133
131
131
132
134
135
136
137
138
141
145
148
146
140
132
124
121
120
121
120
115
108
103
105
110
113
113
112
113
117
122
127
131
134
136
136
134
133
135
135
133
128
123
121
122
121
117
114
113
116
120
122
121
120
121
123
126
129
131
132
132
132
133
134
135
135
133
131
130
131
133
133
131
131
131
133
136
138
139
141
144
148
153
153
146
136
125
119
118
118
116
110
103
99
100
105
110
114
118
120
122
124
130
140
147
144
134
127
129
134
131
121
114
113
116
114
106
101
99
92
89
98
115
124
123
124
135
146
142
136
136
138
134
126
123
128
131
127
125
131
140
147
150
149
154
163
168
169
171
176
180
188
193
170
126
87
58
41
45
53
60
67
69
83
117
149
172
186
182
174
168
161
160
153
130
104
84
72
75
82
83
82
85
95
114
130
139
144
139
129
126
125
124
119
109
102
101
105
117
131
137
139
139
142
150
154
155
151
144
140
141
145
151
155
160
167
175
186
202
215
228
226
174
107
67
41
19
14
25
32
38
61
109
152
183
208
217
204
188
181
170
150
122
95
67
49
54
72
89
104
115
117
125
139
156
162
149
125
106
91
85
93
101
105
106
112
118
127
136
143
142
136
134
132
133
137
137
131
125
125
133
144
157
167
170
173
179
185
191
195
196
196
204
195
142
90
53
20
13
23
38
58
76
101
136
163
190
208
198
182
160
136
119
109
97
87
79
79
90
106
127
142
141
131
124
117
116
115
106
97
93
92
99
116
131
138
139
135
127
121
122
120
117
114
111
109
116
126
134
139
141
143
147
154
162
167
167
164
159
156
160
166
172
179
185
194
201
168
122
87
46
32
35
39
59
80
99
125
151
170
183
182
168
152
130
116
106
101
99
99
103
112
125
138
146
147
137
117
101
91
85
84
83
87
96
109
126
141
150
150
142
130
118
111
108
109
111
112
113
116
123
133
142
148
150
153
158
163
167
168
164
158
155
157
163
173
180
188
197
204
168
121
80
33
9
7
37
59
96
127
140
164
176
181
181
169
146
120
101
89
88
99
108
120
131
138
146
150
146
129
110
90
74
75
77
85
102
115
127
142
151
154
151
140
122
108
98
95
102
107
112
115
118
122
130
139
144
148
150
151
152
154
153
150
148
147
147
153
160
167
176
182
188
200
208
175
130
90
34
20
15
28
67
89
123
141
157
169
170
171
155
136
117
97
95
98
108
124
134
145
145
147
143
130
117
88
73
62
61
77
88
110
129
143
157
159
157
146
131
115
100
96
96
104
114
118
121
121
126
132
139
146
149
151
154
156
159
159
156
151
148
151
157
165
175
181
184
186
188
164
124
89
54
14
13
41
58
109
138
150
163
164
159
156
149
131
114
102
92
98
117
130
148
156
152
143
134
123
105
89
69
60
63
77
95
120
140
153
160
157
146
135
121
107
100
96
99
107
117
124
128
130
129
134
139
142
147
148
149
151
153
153
152
151
150
152
158
165
172
178
179
177
179
178
145
109
78
54
45
37
63
79
101
130
139
151
154
149
142
132
120
114
112
118
123
136
144
149
153
145
134
123
105
84
71
65
65
81
96
109
131
145
154
159
152
138
125
113
103
103
105
109
116
122
124
127
130
130
135
137
138
144
147
150
155
156
153
152
151
152
157
162
167
170
171
171
173
176
179
154
112
83
61
66
66
70
85
90
108
127
142
149
145
133
123
117
122
126
135
139
140
144
148
152
149
139
120
100
78
69
69
78
88
101
113
123
138
149
152
148
136
122
116
112
110
110
112
114
119
125
127
129
129
129
131
134
137
142
146
148
151
152
153
155
155
155
156
158
161
165
168
166
166
167
174
162
124
97
79
80
83
77
77
80
92
112
131
135
132
123
122
125
134
139
139
139
140
147
152
152
143
129
112
100
94
82
73
76
80
95
115
124
129
139
141
142
141
131
121
116
113
111
115
117
120
124
124
124
125
125
125
129
131
135
141
146
150
153
154
153
154
155
155
157
158
158
160
164
163
166
170
174
151
116
97
88
93
83
73
70
80
99
117
122
117
116
120
133
137
139
134
137
145
155
157
151
141
130
125
116
106
91
75
71
83
91
100
107
111
126
141
143
139
132
126
126
125
120
115
116
119
125
126
121
118
120
123
125
126
126
132
141
147
149
150
151
155
157
156
153
153
155
156
157
155
155
159
163
166
156
127
111
110
112
88
72
74
87
99
103
101
102
117
126
133
128
130
135
148
152
150
147
146
148
143
133
119
112
106
96
86
87
88
93
97
104
115
126
131
134
133
134
134
131
127
125
128
129
131
127
126
125
125
123
121
122
123
129
132
136
139
145
148
150
151
151
152
151
151
150
150
150
150
149
148
148
150
149
135
126
124
121
104
96
95
96
95
95
97
101
108
113
117
121
129
133
138
140
142
143
144
141
138
135
131
127
123
118
113
113
112
107
107
110
111
113
116
116
119
121
122
124
127
129
131
133
133
133
133
131
130
130
129
127
127
126
126
127
128
129
130
131
133
134
134
136
138
139
141
143
144
146
148
148
150
151
151
145
139
137
132
119
113
110
101
99
100
93
94
102
104
107
116
120
126
134
135
137
144
144
142
144
142
139
139
133
126
127
122
113
111
109
106
107
106
104
109
112
112
117
121
125
131
134
134
138
139
136
136
136
133
132
129
127
128
127
125
125
126
126
127
127
128
131
133
135
138
140
141
143
145
147
149
149
149
151
150
143
137
134
129
121
113
107
103
100
96
94
97
102
104
107
114
121
126
131
135
140
143
142
142
144
142
139
135
131
128
123
117
113
112
110
108
107
107
108
111
112
116
121
125
128
132
134
136
137
137
137
136
134
133
132
130
129
128
127
127
126
126
127
129
130
131
133
136
137
139
141
143
145
146
147
149
149
150
150
145
139
136
132
123
115
110
106
103
99
95
98
103
103
107
115
120
125
130
134
140
142
142
143
145
143
140
138
134
130
126
120
114
112
110
108
108
106
106
110
112
114
118
124
128
131
134
137
139
139
139
139
138
135
132
131
130
128
128
127
127
127
127
129
130
131
133
136
137
139
141
143
145
146
147
148
149
151
148
141
136
135
128
118
114
109
104
100
96
97
101
101
104
112
117
121
127
132
137
141
141
142
144
143
140
139
137
134
128
123
122
116
109
107
108
106
105
105
108
112
113
117
124
129
130
134
138
139
139
138
138
137
134
130
130
128
126
126
126
126
125
126
128
129
130
132
135
137
138
140
142
143
144
145
146
147
147
148
145
138
134
132
125
117
112
109
106
100
97
100
103
103
106
113
118
122
126
132
137
139
139
141
142
141
138
137
136
130
126
124
120
114
109
109
108
106
105
107
110
112
114
119
125
127
130
134
138
136
137
138
137
135
133
131
129
128
126
126
125
125
126
127
129
130
131
135
137
139
141
143
144
145
146
147
148
148
149
147
144
141
133
128
123
118
107
106
103
100
96
100
101
105
107
115
121
124
129
135
140
141
143
144
144
141
140
137
133
127
123
117
113
109
105
105
106
105
106
109
112
115
119
124
129
132
135
138
140
140
139
139
137
134
132
130
127
126
125
125
125
126
127
129
131
133
135
138
140
141
143
144
145
146
146
146
146
146
147
145
141
140
131
127
122
117
107
105
104
100
97
99
103
104
108
114
122
123
129
134
140
140
143
144
144
140
138
137
132
127
123
121
114
111
108
107
103
104
108
108
110
115
119
121
125
130
134
136
139
142
141
140
138
137
134
131
129
127
125
125
126
126
127
129
132
134
136
138
140
143
144
146
146
145
146
150
147
148
149
150
144
144
141
130
129
121
119
107
108
105
101
99
102
106
107
112
119
126
127
134
139
144
144
147
147
145
143
140
138
133
129
124
121
115
110
109
108
105
106
109
111
112
115
121
122
127
132
136
137
139
143
142
141
139
138
134
131
129
127
125
124
126
126
127
129
132
134
136
139
141
142
144
146
146
147
146
147
146
146
147
148
143
140
142
130
127
121
119
109
103
106
99
98
98
103
105
108
114
123
125
131
137
142
143
145
147
145
141
139
137
131
127
122
118
112
108
105
102
104
103
104
107
110
112
116
120
124
128
131
135
136
138
139
139
137
136
134
130
127
125
124
122
122
123
125
126
128
131
134
136
140
141
143
145
145
147
145
144
146
143
145
145
146
137
136
139
123
124
117
112
110
98
104
100
95
99
102
106
108
116
123
126
132
137
144
143
145
148
144
141
137
137
129
125
122
116
110
105
105
100
99
102
104
106
110
115
118
120
126
129
132
134
137
139
137
138
138
135
132
130
128
124
123
123
123
123
125
128
130
132
136
139
140
143
146
146
147
148
147
145
146
145
143
143
145
144
132
135
136
118
121
117
109
109
102
102
102
100
102
108
113
112
122
129
129
135
141
144
144
145
145
142
139
135
132
127
122
119
115
109
104
103
103
100
101
109
111
111
119
125
124
127
133
133
133
136
138
136
134
134
133
129
127
127
125
122
123
126
126
127
131
134
134
138
142
143
143
146
148
146
147
148
146
145
145
143
143
142
145
141
127
136
129
113
116
114
106
100
103
103
98
103
106
110
114
118
127
131
134
137
143
143
141
144
141
137
133
129
126
120
116
114
110
106
103
104
103
101
106
110
113
116
122
126
127
130
132
133
131
132
132
130
129
128
127
125
124
124
124
124
125
127
130
131
134
138
140
140
143
145
145
145
146
147
146
144
145
145
143
143
145
146
144
148
142
129
135
129
115
114
113
106
101
104
103
100
107
110
113
119
125
130
133
139
141
142
143
144
142
138
136
132
126
123
120
115
112
111
108
105
104
103
107
109
109
114
122
125
124
131
135
131
131
133
132
128
127
128
125
124
123
123
124
125
126
127
131
133
135
139
142
143
144
145
147
146
145
147
147
145
144
147
145
144
147
149
148
147
153
151
133
131
133
120
107
106
107
99
95
101
101
104
110
116
121
128
135
136
139
145
145
141
141
142
136
130
128
125
119
115
114
112
109
110
107
106
109
105
107
115
118
116
121
130
130
127
131
132
129
126
125
122
120
121
118
118
121
123
123
125
131
133
134
138
141
142
143
144
144
142
143
143
141
141
143
142
142
146
145
147
150
152
154
155
158
153
136
129
124
111
100
96
95
88
92
100
99
104
115
123
126
133
142
142
142
145
144
139
137
136
130
125
124
120
115
114
114
113
111
113
113
110
112
112
109
112
118
121
119
122
127
128
127
125
122
121
121
119
115
114
117
119
120
123
126
130
134
138
139
141
143
143
142
141
139
138
137
137
137
137
140
143
146
149
151
152
155
157
159
162
163
162
158
142
122
112
101
93
87
84
83
87
100
108
113
121
132
141
145
149
148
145
144
142
135
128
125
123
120
118
115
113
114
115
116
116
117
119
120
122
120
119
120
118
118
119
124
124
121
120
118
116
115
112
110
109
113
115
118
121
125
129
134
138
140
140
142
141
139
137
134
131
129
129
129
130
132
135
140
144
148
153
158
160
158
159
160
160
161
162
162
155
136
114
97
87
82
79
78
81
90
102
116
127
134
140
146
151
153
149
142
134
129
124
120
116
113
112
113
116
118
119
120
122
124
125
123
125
123
123
125
122
121
118
116
117
117
120
119
116
113
109
109
107
108
111
114
120
124
129
133
135
138
138
140
139
137
134
131
130
128
126
126
126
128
131
136
141
145
151
154
158
159
162
161
157
156
154
154
157
158
160
157
137
110
90
83
78
79
84
86
91
105
122
135
144
149
147
146
148
144
136
126
118
110
108
111
113
114
116
119
122
127
132
131
129
127
124
123
124
123
122
118
112
116
112
114
117
118
121
119
120
114
110
108
104
106
111
117
123
128
133
134
137
138
136
135
131
128
126
125
125
123
124
125
128
132
135
139
142
146
149
152
155
157
157
156
154
151
151
153
153
154
156
159
161
146
123
99
82
75
78
86
89
96
104
115
130
145
153
153
148
142
136
132
128
120
112
106
105
109
117
124
128
129
130
131
133
135
132
126
120
116
115
116
119
119
116
115
112
115
124
124
125
123
119
114
112
110
104
104
108
113
123
131
135
136
137
135
132
132
129
127
125
123
123
123
126
127
129
132
133
138
142
146
149
150
151
150
152
152
150
149
150
149
150
152
152
157
165
169
154
134
114
91
84
82
83
81
85
97
107
125
141
148
150
149
147
141
138
133
121
113
107
105
108
115
121
123
127
131
133
138
139
135
129
123
119
117
117
116
115
115
113
115
114
121
126
124
127
125
122
120
117
112
105
105
106
111
122
129
133
136
137
137
136
135
131
127
125
122
123
123
125
126
128
132
133
138
142
144
146
148
148
148
149
149
149
149
149
149
150
151
153
154
156
158
165
159
138
125
105
94
90
86
85
81
92
104
117
133
139
142
143
146
147
142
138
126
116
111
110
111
112
115
117
120
128
133
137
137
135
131
128
128
124
120
117
111
109
111
111
108
115
122
121
126
130
126
124
123
117
111
108
106
106
115
122
125
130
134
135
135
136
132
129
128
127
126
126
126
126
127
130
132
134
137
139
143
147
149
151
152
151
151
151
149
147
147
151
150
148
150
152
156
161
146
128
123
108
101
98
90
87
86
100
111
118
128
130
135
143
147
146
138
132
127
122
121
117
111
109
112
117
121
124
126
127
131
135
135
132
130
127
125
124
122
112
108
108
101
111
118
114
116
123
127
126
125
123
115
115
117
112
113
118
121
124
128
131
130
131
134
132
130
131
129
129
129
129
128
129
132
132
133
136
138
141
145
148
149
150
151
151
152
151
150
150
147
146
149
150
151
152
147
133
129
128
113
106
102
93
93
99
102
104
110
119
128
130
136
140
138
140
141
135
129
127
125
122
118
116
115
114
117
119
119
120
125
128
129
130
131
131
131
131
129
121
117
117
114
116
118
112
113
123
125
121
122
125
129
131
128
127
129
131
130
130
128
128
130
132
131
130
129
130
131
130
127
127
129
129
128
128
128
128
130
131
130
129
130
133
132
131
130
132
133
131
130
130
132
132
131
132
132
133
133
134
133
132
132
132
130
128
126
125
123
122
121
120
120
120
120
120
120
121
122
123
123
124
126
127
127
128
128
129
129
129
128
128
128
127
127
127
126
126
126
125
124
124
123
121
122
124
122
122
123
124
124
124
124
124
125
125
125
126
127
127
128
129
129
129
130
131
130
130
130
129
130
129
128
128
128
128
127
127
127
128
128
129
129
130
130
130
131
131
132
132
132
131
131
132
132
131
132
132
131
132
132
132
132
132
132
131
130
130
129
129
128
127
127
126
125
125
124
123
124
124
123
124
124
124
125
126
126
126
127
127
128
128
128
128
128
128
128
128
127
127
127
126
126
126
125
125
125
124
123
124
124
123
123
124
123
125
124
124
120
127
132
116
127
134
122
128
133
126
129
132
128
129
130
128
129
128
128
129
127
127
128
127
127
128
128
127
128
129
129
129
129
130
130
130
130
131
130
130
131
130
130
131
130
130
130
130
130
131
129
129
130
129
129
129
128
128
128
127
126
126
126
125
125
124
125
125
124
125
125
125
125
126
125
126
126
126
126
127
127
126
127
126
126
126
125
126
126
125
125
125
124
119
133
121
120
131
121
126
126
124
127
125
126
127
126
127
127
127
128
127
127
128
128
127
128
127
128
128
127
127
127
127
126
127
126
127
126
127
125
126
98
103
132
103
128
138
133
137
133
127
141
136
118
128
140
126
117
133
129
127
128
126
129
137
128
123
138
131
124
127
132
125
125
123
122
127
120
118
124
124
119
123
125
126
126
126
128
130
128
127
130
128
126
125
126
123
122
121
120
118
115
115
114
113
114
116
116
118
120
122
124
124
126
128
128
128
129
129
128
128
127
126
125
124
124
123
122
124
125
124
126
127
129
130
131
132
132
132
133
133
132
133
132
133
133
133
133
135
134
136
137
136
139
140
140
142
142
141
145
141
137
141
135
134
132
127
128
123
120
121
119
117
117
118
118
121
121
124
128
126
131
133
134
135
136
137
138
137
136
136
135
132
132
130
128
127
126
125
125
125
125
127
123
117
127
124
117
121
126
123
119
124
126
124
122
126
129
125
126
131
131
128
130
134
133
131
133
135
132
132
134
135
133
134
136
137
135
136
139
138
138
140
143
143
143
146
146
147
147
148
150
150
147
152
152
150
153
147
147
146
135
134
130
122
120
115
112
111
107
110
110
109
114
116
120
124
128
132
136
136
139
141
140
140
139
138
136
132
129
127
124
120
118
117
115
114
114
115
116
117
119
121
122
125
118
124
126
120
122
121
122
118
117
119
117
114
115
118
115
116
119
121
121
122
126
127
126
128
131
130
129
131
131
129
129
130
130
128
128
131
130
130
132
135
136
136
140
140
142
143
144
147
145
146
149
146
146
150
142
142
140
133
128
123
118
114
108
107
102
102
103
100
106
106
110
115
118
123
126
131
133
136
137
138
139
137
136
133
132
128
125
122
119
117
114
113
112
112
112
113
115
117
119
121
125
123
123
126
125
123
122
124
121
120
119
119
117
115
117
116
116
116
119
119
120
123
124
125
126
128
129
130
130
131
131
130
130
130
130
129
129
130
130
130
131
132
133
134
136
137
139
142
142
143
145
145
145
146
146
146
146
143
142
139
136
133
127
124
120
115
113
109
106
107
105
107
108
111
114
116
120
124
127
129
133
134
137
136
138
137
135
134
132
130
127
125
123
120
118
117
116
115
115
116
117
118
119
122
122
121
122
127
121
118
126
121
119
119
119
119
114
117
119
116
116
121
122
121
124
127
128
127
131
134
132
132
135
134
133
133
135
134
133
134
135
135
135
138
139
139
141
142
141
148
143
146
152
146
151
150
150
149
145
143
137
133
124
120
115
109
105
103
104
98
103
105
103
113
112
119
125
126
136
135
141
142
144
145
143
143
140
138
134
131
127
122
121
116
116
114
112
113
113
115
117
120
122
124
128
129
133
129
124
135
126
120
124
122
119
114
116
118
112
113
119
119
117
122
127
128
128
133
137
134
135
139
137
135
136
137
134
132
133
134
132
132
135
137
136
138
141
142
142
146
149
148
152
153
154
160
150
158
154
141
145
129
113
128
101
94
109
83
103
85
96
108
94
115
113
130
125
136
145
146
151
148
160
149
150
148
143
140
130
128
124
115
113
111
109
105
105
110
109
111
115
121
124
126
132
136
138
139
142
143
141
140
134
119
140
117
108
124
106
112
103
109
111
102
113
115
118
115
126
129
128
131
135
139
131
136
139
133
132
132
132
128
127
130
128
127
128
133
133
133
138
141
142
143
147
149
150
150
156
155
154
157
156
155
136
113
151
110
86
127
79
114
73
92
115
75
110
100
127
109
123
141
138
142
138
163
147
147
151
150
145
132
135
136
118
116
116
115
105
101
112
106
104
106
117
117
114
125
131
132
130
139
143
138
137
141
140
134
128
132
112
118
117
100
113
101
108
107
105
115
112
119
121
128
129
132
136
138
140
137
141
138
135
136
132
131
128
127
128
126
127
127
129
130
131
135
137
138
141
142
144
146
147
149
151
153
147
150
147
109
154
113
98
132
80
128
77
104
111
87
114
98
128
108
125
131
136
137
134
154
143
143
147
144
145
133
136
136
122
125
116
122
110
110
114
111
110
109
118
117
117
122
128
129
129
134
138
137
136
139
139
135
134
135
132
127
126
127
122
121
117
110
128
104
114
121
110
123
112
125
123
119
130
128
130
128
134
133
131
132
133
133
127
131
131
127
128
127
129
126
127
130
129
128
130
132
132
130
133
134
133
133
135
135
134
134
135
134
133
133
134
133
131
133
132
132
132
132
134
131
133
133
124
134
125
124
126
121
126
119
122
123
120
122
121
125
123
125
127
128
128
128
131
130
130
130
131
131
129
129
129
128
126
126
126
124
124
124
124
123
123
124
124
125
125
126
126
127
128
127
129
128
128
129
128
129
128
128
128
127
127
127
126
126
126
126
126
126
126
126
126
127
127
127
128
128
129
129
129
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
130
129
128
128
126
126
125
125
124
124
124
124
124
124
124
125
125
126
127
128
128
129
130
130
130
130
130
130
129
129
129
128
128
127
126
126
126
126
126
125
126
126
126
126
127
127
128
128
128
129
129
129
129
129
129
129
128
128
128
127
127
127
127
127
126
126
126
126
127
127
127
127
127
127
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
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
127
128
127
128
128
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
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
128
128
128
128
128
128
128
128
128
127
128
127
127
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
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
127
127
127
127
127
127
128
128
128
127
128
128
127
128
128
128
128
128
127
128
128
128
128
127
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
127
127
127
128
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
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
127
127
127
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
127
128
128
128
127
128
128
128
127
128
128
128
128
128
128
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
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
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
127
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
127
127
127
127
127
127
128
127
127
128
127
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
128
127
128
128
128
128
128
128
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
127
128
128
128
128
127
127
128
128
127
128
128
128
127
127
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
127
127
127
127
128
128
127
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
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
128
128
127
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
128
128
128
128
128
127
127
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
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
127
127
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
128
127
127
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
127
127
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
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
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
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
127
127
128
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
127
127
128
128
127
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
127
128
128
127
127
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
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
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
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
127
127
127
127
127
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
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
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
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
128
128
128
127
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
128
128
128
128
128
128
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
128
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
128
128
128
128
128
128
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
127
127
127
127
128
127
127
128
128
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
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
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
127
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
127
127
128
127
127
127
127
128
128
128
127
127
127
128
127
127
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
127
127
127
127
127
127
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
127
127
127
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
128
128
128
128
128
128
128
128
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
127
127
127
127
127
128
128
128
128
127
128
127
127
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
127
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
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
127
127
128
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
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
127
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
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
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
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
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
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
127
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
127
128
128
128
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
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
127
127
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
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
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
128
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
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
128
128
127
128
128
128
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
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
128
128
128
127
127
128
127
127
128
128
128
128
128
127
128
128
128
128
127
128
128
127
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
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
127
127
128
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
128
127
128
128
128
127
128
128
128
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
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
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
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
127
127
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
128
127
128
127
127
128
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
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
127
127
128
128
128
128
128
128
128
127
128
127
128
128
128
128
128
128
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
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
127
128
128
128
128
128
128
127
127
127
127
128
128
128
128
128
128
128
128
127
128
128
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
127
127
127
127
127
127
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
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
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
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
126
127
126
127
128
126
127
128
129
128
127
127
128
128
128
128
127
127
127
126
127
127
127
127
126
128
127
128
128
127
128
127
127
128
127
127
127
127
128
128
127
127
127
127
127
128
127
127
129
129
129
128
127
127
127
127
128
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
127
127
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
126
127
127
127
127
127
126
127
127
127
127
127
127
126
126
126
126
127
127
127
127
128
127
127
127
126
126
126
126
127
127
126
126
127
127
131
118
129
123
133
124
131
123
127
128
127
129
126
126
127
127
128
128
126
127
126
127
127
127
127
126
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
128
128
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
126
127
127
127
127
127
126
126
126
129
126
128
126
127
127
127
127
127
128
126
126
126
127
127
127
127
127
126
127
127
128
127
127
128
128
128
128
127
128
128
128
129
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
125
130
126
127
128
132
130
124
128
129
128
131
125
130
129
126
129
127
129
129
127
128
127
127
128
127
129
128
129
129
128
128
128
127
129
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
127
128
128
129
127
127
127
128
126
129
129
128
130
127
127
128
127
128
128
126
128
128
129
128
128
127
127
128
128
127
128
128
128
128
128
127
127
127
128
128
128
127
127
127
128
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
129
128
127
126
126
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
127
127
127
128
128
127
127
128
129
129
127
127
126
126
126
127
126
126
127
128
128
128
126
127
128
127
128
128
127
128
128
128
127
127
127
127
127
128
128
129
128
128
127
127
127
128
129
129
129
128
128
127
128
128
128
127
127
128
128
128
127
126
127
128
128
128
127
126
127
128
128
128
127
126
126
126
126
127
126
127
127
128
128
127
127
126
127
127
128
127
128
128
129
129
128
129
129
128
127
127
129
131
130
129
129
129
131
130
130
131
130
130
131
131
132
132
131
131
130
130
130
129
129
129
128
129
129
130
130
129
129
128
128
128
128
127
127
125
125
125
125
125
125
125
124
125
125
124
124
122
123
124
126
126
125
124
124
124
125
126
126
127
127
128
128
127
127
129
132
135
136
137
135
134
131
131
135
138
140
139
135
133
135
138
139
138
137
136
137
137
138
134
132
131
129
131
133
132
130
124
120
122
124
124
118
112
106
107
114
123
125
125
120
115
114
115
118
122
122
123
124
124
124
124
122
122
122
124
127
128
128
128
127
128
129
132
135
138
140
138
137
136
135
135
135
139
145
148
145
139
136
138
144
152
156
154
155
147
143
149
155
138
111
97
76
73
94
114
136
149
147
138
121
109
100
100
108
120
144
159
162
157
139
119
107
102
98
106
115
122
130
131
119
108
100
99
121
142
149
147
125
107
107
115
127
126
122
122
126
128
127
120
116
121
128
139
142
140
138
137
138
138
138
137
138
141
143
142
140
140
143
140
141
148
155
160
159
156
161
163
153
141
103
67
8
21
100
154
216
204
152
109
70
74
92
100
112
132
163
183
196
177
121
90
60
56
90
117
140
146
136
109
98
90
97
115
125
144
147
137
129
118
107
110
115
126
134
135
133
121
115
117
123
134
144
147
148
149
148
143
138
136
144
154
159
163
162
154
154
159
169
174
190
196
125
0
1
3
72
211
255
255
177
86
51
52
63
67
83
103
162
229
245
216
136
54
26
41
92
138
149
145
128
125
122
112
91
74
88
111
147
167
153
119
100
82
93
119
134
146
135
117
109
106
115
126
131
135
139
143
146
144
137
131
131
138
146
151
148
144
144
146
150
152
158
163
162
169
180
180
157
109
60
9
10
56
137
200
210
184
131
83
63
64
75
90
120
149
187
206
188
155
100
67
64
80
105
120
132
132
130
119
101
90
84
97
125
142
156
145
119
100
99
106
120
131
133
130
123
117
115
115
123
132
136
143
146
148
148
146
141
135
136
146
160
167
164
154
146
152
157
175
191
195
206
166
58
1
2
0
114
228
255
242
154
85
52
46
47
56
88
123
194
243
233
197
116
50
36
50
92
127
130
137
144
132
115
97
70
68
98
121
155
157
143
131
105
98
98
103
120
136
138
131
123
111
112
119
125
135
145
154
157
155
145
135
128
134
152
168
173
171
159
150
158
166
183
193
195
206
120
0
0
2
55
206
255
255
182
98
67
49
46
49
58
91
167
242
255
230
149
60
30
37
74
115
140
135
134
141
130
118
82
63
68
95
137
157
159
147
124
101
96
93
105
122
132
138
134
128
117
114
114
120
134
150
159
162
156
142
136
129
134
151
160
175
173
162
161
153
157
180
185
201
220
170
93
0
2
0
85
225
255
228
167
93
65
51
48
41
53
126
211
255
255
202
105
58
35
52
89
109
127
123
138
155
139
99
72
56
57
109
152
175
179
156
108
92
81
86
115
124
145
146
144
133
116
103
103
114
137
163
170
167
158
144
134
132
137
150
168
178
182
171
156
149
148
169
195
216
226
156
0
0
0
10
173
255
255
190
132
89
84
64
44
23
56
134
219
255
255
187
103
61
51
63
85
95
93
113
156
161
135
109
49
37
93
113
169
179
160
139
116
92
84
94
102
133
153
159
147
129
109
101
105
117
141
156
175
176
165
144
133
133
146
161
171
180
170
170
162
159
158
175
189
213
170
8
2
0
1
144
218
241
185
140
115
102
91
61
30
42
94
175
226
250
209
148
111
76
70
72
71
61
70
113
147
164
142
101
75
77
93
127
141
138
139
132
123
120
110
106
108
117
126
138
139
138
132
121
116
117
131
149
163
166
165
160
154
157
153
152
156
161
162
167
167
161
171
182
195
182
114
12
1
1
24
118
173
173
166
149
134
136
130
103
79
69
75
111
156
183
187
179
158
136
129
115
90
60
52
56
76
110
133
141
147
148
147
144
136
125
115
111
110
117
127
133
137
134
132
130
130
133
135
135
139
145
152
156
161
161
161
162
165
170
175
177
179
180
181
182
184
187
187
189
190
191
189
185
182
178
170
156
148
135
122
111
106
100
89
81
77
71
71
77
80
82
85
85
85
88
93
94
95
94
89
88
89
88
84
84
82
82
88
91
90
91
93
94
99
104
107
110
114
114
115
118
118
117
117
117
116
117
119
118
117
117
115
115
117
118
118
120
120
120
122
123
123
123
124
126
128
130
131
129
129
126
127
129
129
129
128
129
126
125
125
122
117
117
118
115
114
113
112
109
111
114
116
120
124
125
127
130
130
131
131
133
130
130
130
127
124
122
120
118
120
121
121
123
125
126
128
130
130
131
131
132
133
135
136
134
134
132
132
132
133
133
134
133
133
133
133
133
131
132
132
132
136
136
137
136
136
136
137
139
138
139
139
137
137
138
135
132
130
129
126
125
124
122
116
115
115
115
116
119
120
119
121
125
126
129
131
132
133
134
134
132
130
128
125
124
122
121
120
121
120
121
122
123
125
126
128
129
131
132
132
132
132
132
131
132
132
132
132
131
130
130
130
129
128
129
128
130
130
132
131
131
131
132
133
134
136
134
135
134
135
135
133
133
133
132
131
129
128
124
121
119
118
115
114
114
112
112
113
114
115
118
121
124
127
131
132
132
133
131
130
128
126
124
123
122
118
117
117
117
117
119
121
121
125
126
128
129
131
130
131
132
132
132
131
131
130
130
129
129
129
129
129
130
130
129
128
126
129
128
131
131
133
133
134
135
135
135
134
135
135
136
134
136
136
134
131
129
126
125
123
121
118
115
112
111
111
112
112
114
116
120
123
127
129
131
133
135
136
135
134
132
130
126
123
120
119
118
117
115
115
116
117
118
120
122
125
128
130
131
132
132
132
132
133
132
132
132
132
131
130
129
128
127
127
126
127
128
129
129
130
131
133
133
134
135
135
136
136
136
136
135
136
134
136
136
136
135
136
133
129
126
125
123
120
118
115
112
111
112
111
111
112
116
120
124
127
131
133
135
137
138
138
137
136
133
129
126
123
121
118
116
116
115
115
115
116
117
115
116
114
119
124
125
129
133
136
136
135
134
133
132
131
130
128
127
126
125
123
122
122
123
124
125
127
131
132
135
137
139
141
143
144
143
143
142
141
142
141
141
140
140
142
147
152
145
131
110
103
105
104
99
94
97
101
116
121
119
120
126
133
141
143
139
136
138
145
146
144
138
133
132
131
127
111
99
99
99
100
99
96
98
109
124
131
132
134
137
141
141
135
125
121
123
122
119
116
114
116
120
122
121
118
125
129
130
132
133
136
140
142
139
137
142
144
145
146
147
147
149
150
149
151
152
155
159
158
163
171
171
173
176
181
186
190
166
101
86
108
100
63
74
101
130
140
142
139
157
177
149
130
139
155
140
130
137
146
156
151
140
139
147
130
110
103
111
105
98
98
118
131
135
132
143
157
145
125
120
116
114
99
94
103
108
104
104
119
124
122
116
126
131
127
123
126
130
130
123
123
129
127
118
120
125
123
121
121
126
129
128
128
136
139
137
143
149
148
142
145
138
132
135
132
124
125
132
129
130
138
142
149
161
138
109
65
58
97
55
39
104
126
121
118
146
137
129
117
100
120
110
96
104
134
138
123
145
150
142
127
116
104
99
87
78
94
103
102
111
142
143
136
138
137
129
115
102
95
98
94
88
108
115
113
120
126
120
117
114
112
117
116
117
128
136
133
135
139
133
127
125
120
120
119
121
124
131
132
132
138
140
138
140
143
144
145
147
146
143
149
145
134
139
139
133
132
139
137
141
143
146
151
153
155
145
132
121
78
53
111
88
57
119
140
131
132
153
139
134
126
108
126
117
109
120
147
139
135
151
151
134
124
117
105
98
93
93
111
120
123
138
156
154
150
139
149
121
107
110
112
101
99
111
119
118
119
121
128
119
112
113
119
113
118
126
135
134
138
140
138
130
123
122
123
118
118
126
131
132
136
141
141
140
140
141
140
139
138
142
142
138
140
142
144
140
138
144
144
134
138
146
145
135
151
155
148
147
152
153
152
142
127
107
61
68
116
56
71
131
143
129
139
159
141
139
122
114
131
114
111
125
148
134
135
149
147
128
121
114
107
100
93
102
120
126
134
145
159
153
149
147
140
126
113
97
102
115
94
103
132
127
121
130
134
121
119
114
115
117
115
117
130
133
131
137
137
128
120
120
118
115
117
124
129
132
135
140
142
140
138
140
140
137
135
137
136
132
131
134
134
129
134
143
140
135
141
146
144
137
140
154
148
138
148
154
146
150
164
155
136
120
48
79
116
53
62
148
139
123
145
171
137
140
117
117
125
111
99
130
145
132
134
160
149
133
122
120
104
99
89
104
117
120
128
150
159
154
149
150
139
129
114
110
109
106
107
119
128
108
129
142
115
122
136
120
113
120
122
116
125
123
129
133
124
119
128
120
109
115
121
118
121
128
132
134
134
135
141
138
135
138
141
137
135
137
135
131
129
131
129
126
131
137
137
138
140
143
147
141
138
146
141
140
148
152
155
159
152
145
99
70
86
103
58
73
133
139
129
143
159
148
131
118
121
124
106
111
130
141
132
144
155
149
130
123
120
107
95
96
105
116
121
135
148
155
150
149
149
137
122
115
113
111
108
114
122
129
130
134
136
106
126
129
102
108
136
121
120
134
139
127
130
121
117
116
106
103
121
120
118
129
138
129
131
134
131
130
131
129
137
138
136
140
143
136
131
132
126
126
126
124
130
140
138
137
145
146
135
142
149
144
148
161
154
143
145
109
92
82
109
80
80
123
135
131
134
149
140
132
124
120
124
117
114
129
140
136
137
148
144
130
120
119
109
100
100
108
117
122
134
143
150
147
146
145
137
125
118
117
114
112
117
122
127
128
131
133
131
127
125
125
123
121
125
128
132
128
138
138
131
111
130
121
101
108
121
111
107
122
128
126
129
133
136
133
128
130
133
126
122
131
132
128
126
133
131
127
126
130
127
124
128
134
130
132
134
138
132
135
135
136
133
127
129
130
126
125
132
131
129
132
138
135
135
135
133
129
128
123
122
121
121
121
125
124
124
126
125
123
124
124
122
123
125
126
127
129
130
131
131
129
127
125
123
120
120
120
121
123
124
126
128
130
130
129
128
128
128
126
125
126
127
125
126
123
125
126
124
121
124
126
125
125
127
130
130
129
131
135
130
128
133
132
127
128
131
127
124
130
129
127
127
130
130
127
129
131
130
130
131
134
133
129
131
133
128
126
133
132
126
130
137
128
119
125
126
116
119
123
125
123
125
128
131
127
125
128
129
123
123
127
126
123
126
129
128
126
127
128
126
123
122
123
123
121
124
127
127
127
129
130
129
128
127
128
127
125
126
127
127
127
128
128
128
128
128
128
127
127
128
127
128
129
129
129
129
129
128
128
128
125
126
127
125
127
128
127
126
128
127
127
127
128
127
127
128
127
127
128
127
127
127
127
125
127
127
126
126
127
126
127
127
127
127
128
127
128
128
127
127
128
128
127
127
127
128
127
126
128
128
126
127
129
128
127
128
128
127
127
127
127
127
127
127
127
127
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
127
128
127
127
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
127
127
128
128
127
128
128
128
127
127
128
128
127
127
128
128
127
128
128
127
127
128
128
127
127
128
127
127
127
128
128
128
128
127
128
127
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
127
127
128
127
128
128
127
128
127
127
128
128
127
128
128
128
127
127
127
127
127
127
128
127
127
128
128
128
127
128
128
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
128
128
127
127
128
128
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
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
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
128
128
127
127
127
127
128
127
127
127
128
127
127
128
128
127
127
128
128
127
127
127
128
127
127
127
127
127
127
128
128
127
128
128
127
127
128
127
127
128
128
128
127
128
128
127
127
128
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
128
127
127
128
128
127
127
128
128
128
127
128
128
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
129
127
127
128
127
127
127
128
127
127
128
128
127
128
128
128
127
128
128
128
127
127
128
127
127
127
128
127
127
128
128
127
127
128
128
128
128
127
128
128
127
128
128
127
127
128
127
127
128
127
127
127
128
127
128
128
127
128
128
127
127
128
127
127
128
127
127
128
128
127
128
128
127
127
128
127
127
128
127
128
128
127
128
128
127
128
128
127
127
129
128
127
128
129
127
127
129
128
127
129
129
128
129
128
128
128
128
127
128
128
127
128
129
128
127
129
129
127
128
129
127
127
129
127
128
129
128
128
128
128
128
128
127
127
129
127
128
129
128
128
128
128
128
128
127
128
128
127
128
128
128
127
129
128
126
128
128
127
128
128
127
129
129
126
128
129
127
127
129
127
126
128
128
127
128
129
127
127
128
128
127
128
129
127
127
128
128
127
128
128
127
128
128
127
127
129
127
127
129
128
127
129
129
127
128
129
127
127
127
127
128
128
127
128
129
128
126
129
128
126
128
128
128
128
128
127
129
129
126
127
129
128
127
128
129
128
127
127
129
128
126
127
130
126
126
130
129
126
127
128
127
127
127
127
128
129
128
128
129
127
125
127
128
125
127
129
127
128
129
127
126
128
128
125
129
129
126
128
130
126
128
130
127
126
130
128
125
129
128
125
128
129
126
126
129
127
126
127
128
127
127
128
127
128
128
127
127
129
127
125
128
128
126
127
129
126
127
128
127
127
127
126
127
128
126
128
129
126
127
129
127
125
129
127
126
129
129
126
127
129
126
127
128
127
127
127
128
129
127
128
129
128
127
128
128
127
128
127
127
128
127
126
128
129
127
127
129
128
126
127
129
127
127
128
128
127
128
128
127
128
128
127
129
128
126
128
129
127
127
129
128
127
127
127
127
127
127
128
128
127
127
129
127
126
127
129
128
127
128
129
127
126
128
128
126
127
128
128
127
128
128
128
128
127
127
129
128
127
127
129
129
126
127
130
127
127
129
128
126
128
128
127
128
129
127
127
129
128
126
127
128
127
126
128
129
127
126
128
129
126
126
129
129
126
127
129
128
126
128
129
127
127
129
128
126
128
127
127
128
128
127
129
128
126
128
127
126
128
128
127
127
128
128
126
127
127
128
126
127
129
128
127
128
128
127
127
128
127
128
128
127
128
128
127
126
128
127
126
128
128
127
128
128
127
128
128
127
128
129
127
127
128
128
126
127
128
128
127
127
129
128
127
128
129
128
127
129
129
128
128
128
127
126
127
128
128
128
128
128
127
127
127
126
128
128
128
129
128
127
128
128
126
127
129
127
128
129
128
128
128
128
127
127
126
127
127
126
128
128
127
128
129
127
127
129
126
126
129
128
128
129
128
126
129
127
125
128
129
126
127
129
126
127
129
128
127
129
129
127
128
127
127
129
128
128
128
128
127
128
128
127
128
127
127
128
128
128
128
128
128
128
127
127
127
126
129
129
127
129
129
127
126
128
127
126
128
129
128
128
128
128
127
126
127
128
127
126
128
129
127
127
129
128
127
127
129
127
128
129
128
128
128
127
127
127
127
128
128
128
129
128
127
128
128
126
127
128
127
128
128
127
127
127
126
126
128
127
126
127
128
127
128
127
127
127
127
127
127
127
127
127
127
126
126
127
128
128
127
128
128
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
128
128
127
128
129
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
128
127
127
128
128
128
128
128
127
127
128
128
128
127
126
127
127
127
127
127
128
127
127
127
127
127
127
127
128
129
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
127
127
128
127
126
127
128
127
127
128
127
127
127
127
127
127
127
128
128
127
128
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
128
128
127
127
128
128
127
127
128
128
127
127
128
128
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
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
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
127
128
128
127
127
128
128
128
128
128
128
127
127
128
128
127
127
127
127
127
127
128
127
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
126
126
126
126
127
127
126
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
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
127
127
127
127
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
126
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
128
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
128
127
127
127
127
127
127
128
127
128
127
127
128
127
128
128
127
127
127
128
128
128
127
127
128
128
127
128
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
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
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
128
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
126
127
127
127
126
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
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
128
129
128
128
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
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
128
128
128
129
129
129
129
128
128
128
128
128
128
128
128
128
128
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
126
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
126
126
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
127
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
129
129
129
129
129
129
129
128
128
129
129
128
129
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
128
128
128
129
129
129
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
128
128
127
127
128
128
127
127
127
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
128
128
127
127
127
127
127
127
127
128
127
128
127
127
128
127
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
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
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
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
128
127
127
128
127
127
128
127
128
127
128
128
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
130
129
129
130
130
130
130
130
130
130
130
130
130
130
129
129
129
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
125
126
125
125
126
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
129
130
130
130
130
130
130
129
130
130
129
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
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
129
129
128
128
128
129
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
128
129
129
129
129
129
129
129
129
129
128
129
129
128
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
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
129
128
129
129
129
129
129
129
128
128
128
128
128
128
129
129
129
129
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
127
127
127
127
126
127
127
127
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
125
126
126
126
125
126
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
127
127
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
128
128
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
127
127
128
128
127
127
127
127
128
128
128
127
128
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
128
127
127
127
127
128
128
127
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
127
128
128
128
127
128
128
128
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
128
128
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
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
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
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
127
127
127
128
128
128
127
128
127
127
128
128
128
127
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
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
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
128
128
128
128
127
128
127
127
127
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
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
129
129
128
129
129
129
128
128
128
129
128
129
128
129
129
129
128
128
128
129
129
128
128
128
129
129
129
129
129
129
129
129
129
129
129
128
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
127
128
127
127
127
127
128
128
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
127
128
127
127
127
127
128
128
128
128
128
128
127
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
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
127
127
127
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
127
127
127
128
128
128
127
127
127
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
128
128
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
127
127
128
127
128
127
127
128
128
128
127
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
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
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
127
127
128
128
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
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
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
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
127
128
127
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
126
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
127
127
127
127
127
127
127
127
127
128
128
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
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
127
128
127
127
127
128
128
128
128
128
128
128
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
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
128
128
128
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
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
127
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
127
127
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
128
128
128
127
127
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
128
127
127
127
127
127
127
127
127
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
128
128
128
128
127
128
128
128
128
128
127
128
128
128
127
127
127
127
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
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
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
127
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
128
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
127
128
128
127
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
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
128
128
127
127
127
127
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
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
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
128
127
127
128
128
127
127
128
128
128
127
127
127
127
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
127
127
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
127
127
127
127
128
127
127
127
128
128
127
127
128
128
128
128
127
127
128
128
128
127
128
128
127
127
127
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
127
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
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
127
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
127
127
127
127
127
128
127
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
128
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
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
128
128
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
127
128
128
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
128
129
129
128
128
126
127
129
128
127
125
127
127
129
128
127
127
127
128
129
128
126
126
127
128
128
128
127
127
128
129
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
127
127
127
127
127
127
128
128
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
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
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
127
127
127
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
127
127
128
128
127
127
128
128
128
128
127
128
128
128
128
127
127
127
128
128
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
127
127
128
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
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
128
128
127
127
127
127
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
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
128
128
128
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
128
128
127
127
127
127
127
128
127
128
128
127
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
128
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
127
127
128
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
128
128
127
128
128
128
128
128
127
127
128
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
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
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
128
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
128
127
127
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
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
127
127
127
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
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
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
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
127
127
127
127
127
127
127
128
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
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
128
128
128
128
127
127
128
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
128
127
127
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
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
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
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
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
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
127
127
127
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
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
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
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
127
127
128
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
128
128
127
127
127
128
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
127
127
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
128
125
130
123
135
92
119
126
119
123
123
125
130
129
127
125
125
124
127
125
124
124
123
120
122
123
123
122
126
109
114
119
121
130
127
127
125
130
129
127
123
116
120
122
123
106
109
107
113
116
120
125
131
127
129
129
130
129
129
123
119
120
117
118
121
118
121
125
130
134
139
136
137
141
140
139
138
133
129
130
129
130
131
128
128
132
134
136
139
136
135
137
137
137
135
131
129
131
130
129
129
127
131
134
135
136
138
138
137
137
136
133
132
131
130
131
130
131
133
134
135
136
136
137
138
140
139
140
140
139
140
139
137
136
136
136
137
138
138
139
139
140
140
140
141
139
139
138
137
139
140
141
142
141
140
139
140
140
139
139
138
139
140
140
139
138
137
138
138
136
135
134
133
134
133
133
133
133
133
132
131
130
129
129
129
128
127
125
124
124
124
124
123
122
123
123
123
123
121
119
118
119
118
120
119
117
117
117
117
118
118
116
116
117
116
117
117
116
115
115
115
115
117
118
117
118
118
117
118
119
119
120
120
121
122
122
124
124
124
124
123
123
125
126
126
126
125
123
124
123
124
127
127
127
126
125
125
126
126
124
123
123
120
121
121
120
123
122
121
120
121
125
126
127
125
122
122
121
123
124
123
122
118
117
115
114
114
112
111
109
107
108
111
114
115
116
116
116
117
117
118
119
119
119
120
121
123
124
126
126
127
127
127
129
130
132
134
136
137
136
136
135
135
137
140
140
142
142
141
141
142
141
141
142
139
138
140
142
143
145
145
144
144
144
139
133
126
117
111
112
111
110
109
107
105
103
106
110
118
127
134
137
137
135
129
120
113
103
95
92
86
86
94
104
119
133
142
143
138
129
118
113
111
114
122
127
129
129
128
127
127
130
132
135
137
137
139
140
141
142
143
142
141
141
142
144
150
154
157
159
156
155
153
151
151
150
153
156
159
164
162
158
150
124
98
74
46
41
47
64
94
120
144
157
164
165
160
161
157
151
144
129
112
95
82
77
81
94
110
123
129
130
123
113
110
110
116
125
130
128
121
111
101
98
104
113
126
136
139
137
132
127
124
127
130
132
131
127
122
122
124
131
138
145
148
148
146
144
143
143
146
149
151
151
149
145
141
139
140
145
151
159
164
168
165
160
150
128
103
79
56
44
46
60
81
110
134
151
161
164
160
157
154
151
147
141
130
116
102
88
81
79
84
94
101
112
117
123
128
133
138
139
137
131
121
112
105
104
109
118
128
136
141
140
137
133
131
131
133
136
139
140
138
136
132
131
131
134
137
141
145
146
149
149
149
147
145
143
140
138
136
137
140
145
149
153
154
151
146
136
123
109
95
85
80
79
87
96
110
122
132
141
145
147
148
148
147
145
141
136
128
121
113
106
98
97
95
94
100
103
112
124
134
143
148
147
140
131
122
114
114
117
124
133
139
142
141
137
133
129
129
130
133
137
140
141
140
137
133
130
128
128
131
134
138
140
141
140
137
134
131
129
129
131
134
137
139
139
137
135
132
130
130
130
130
130
128
126
121
116
112
109
110
112
115
119
123
125
127
128
129
129
131
133
134
135
135
132
127
123
117
112
109
108
110
115
121
128
135
139
140
138
133
128
124
122
123
127
131
134
136
134
131
126
122
120
121
125
131
135
138
137
134
129
125
122
123
125
130
134
136
137
135
132
129
127
127
128
130
132
133
134
133
131
128
127
126
127
129
130
130
130
129
127
124
123
122
122
124
126
128
129
129
128
127
125
124
123
123
124
125
127
127
127
127
126
126
125
125
125
126
128
129
130
130
129
128
128
127
126
126
127
128
129
130
130
130
129
128
127
127
127
128
128
129
130
130
129
129
128
127
127
128
128
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
128
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
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
128
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
126
126
126
126
126
126
127
127
127
126
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
127
126
126
127
127
127
126
126
126
126
126
126
126
127
127
127
127
126
127
126
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
126
126
127
127
127
127
127
127
127
127
126
127
126
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
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
128
127
127
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
129
129
128
127
127
127
127
127
128
128
128
129
128
128
127
127
125
127
127
128
128
128
127
127
127
127
126
127
126
126
125
125
123
123
121
120
117
118
117
111
116
117
131
141
154
152
145
132
115
106
105
109
122
135
145
145
142
135
124
119
119
122
130
136
139
136
133
124
117
118
120
125
135
137
141
140
138
132
131
124
125
122
123
120
120
116
119
124
124
127
128
121
125
123
130
131
139
135
134
130
124
120
122
122
128
131
136
135
136
133
129
129
129
129
134
133
134
131
130
126
125
125
125
127
131
132
134
132
130
126
128
128
129
132
132
130
128
126
124
125
128
131
134
134
134
132
130
128
129
129
131
132
132
131
129
129
129
131
132
132
131
131
130
130
130
132
133
134
134
133
132
130
129
130
132
134
135
136
135
134
132
131
133
134
136
137
137
136
135
133
133
134
135
135
135
135
134
134
135
136
136
136
136
135
134
133
132
132
131
132
131
131
130
130
131
131
131
130
130
129
128
126
125
126
125
126
129
129
130
129
128
127
127
128
129
133
135
137
139
138
138
136
134
133
133
134
134
136
136
136
137
137
138
138
139
138
139
138
136
134
132
130
129
130
132
135
136
136
131
119
103
85
68
59
59
68
83
102
117
125
129
125
120
114
110
108
108
109
110
111
113
114
117
119
120
124
127
130
134
138
141
143
143
140
138
135
134
137
140
146
154
163
174
183
192
200
205
191
157
118
62
10
0
4
0
16
66
111
151
176
189
197
199
189
183
165
136
109
75
46
33
32
37
58
86
99
119
133
133
144
148
142
135
120
101
85
82
82
91
111
119
130
138
137
142
149
156
160
163
157
146
142
136
138
150
160
174
187
194
200
212
228
205
150
94
8
0
5
0
6
82
141
170
190
193
186
198
211
205
196
162
104
55
21
6
23
62
97
127
144
140
141
147
147
151
144
120
92
72
61
66
89
108
123
132
129
128
135
143
154
162
160
150
141
134
131
135
139
143
148
155
166
185
205
220
234
239
247
223
139
66
1
0
4
1
7
86
143
165
184
208
219
231
252
228
184
139
70
24
13
18
38
73
100
107
123
146
154
179
194
172
145
109
67
49
59
70
89
112
117
120
137
147
158
172
166
151
144
136
135
145
152
144
140
136
134
154
182
209
232
243
241
245
234
160
85
13
0
4
2
0
48
120
149
171
204
231
241
255
241
189
136
84
38
21
31
38
54
77
95
113
143
175
186
195
185
147
113
85
58
53
62
70
80
100
119
136
160
171
165
161
150
137
140
145
145
143
140
128
125
135
151
168
193
213
221
230
238
246
241
176
89
8
0
5
0
7
55
95
127
152
186
233
255
255
242
190
131
85
62
50
46
44
42
45
70
105
138
176
189
180
166
144
123
106
89
75
65
62
74
92
117
140
151
155
154
152
155
158
160
157
147
139
133
130
134
142
150
161
177
197
214
226
236
245
232
164
81
15
0
5
0
18
50
63
92
135
179
221
252
248
219
181
151
126
107
90
69
42
27
37
64
94
118
138
147
148
153
159
156
138
111
90
82
80
88
101
109
114
120
131
144
155
161
165
162
156
152
150
148
143
136
133
136
144
157
173
184
189
191
196
203
190
144
91
57
46
52
57
59
65
72
80
98
124
153
173
174
164
155
153
155
154
142
124
107
97
97
103
106
102
96
92
98
114
131
139
136
127
120
124
131
135
133
127
122
124
129
134
135
132
127
125
126
129
131
130
127
124
124
128
132
134
134
133
132
134
137
139
141
141
141
142
144
144
139
131
122
116
114
115
117
115
111
108
109
112
116
117
116
115
117
122
127
129
128
127
128
131
132
130
125
123
124
126
125
121
117
116
119
123
125
123
122
121
123
126
127
126
126
126
127
130
132
132
131
130
130
131
132
133
133
131
131
132
134
135
136
137
138
141
145
148
146
140
132
124
121
120
121
120
115
108
103
105
110
113
113
112
113
117
122
127
131
134
136
136
134
133
135
135
133
128
123
121
122
121
117
114
113
116
120
122
121
120
121
123
126
129
131
132
132
132
133
134
135
135
133
131
130
131
133
133
131
131
131
133
136
138
139
141
144
148
153
153
146
136
125
119
118
118
116
110
103
99
100
105
110
114
118
120
122
124
130
140
147
144
134
127
129
134
131
121
114
113
116
114
106
101
99
92
89
98
115
124
123
124
135
146
142
136
136
138
134
126
123
128
131
127
125
131
140
147
150
149
154
163
168
169
171
176
180
188
193
170
126
87
58
41
45
53
60
67
69
83
117
149
172
186
182
174
168
161
160
153
130
104
84
72
75
82
83
82
85
95
114
130
139
144
139
129
126
125
124
119
109
102
101
105
117
131
137
139
139
142
150
154
155
151
144
140
141
145
151
155
160
167
175
186
202
215
228
226
174
107
67
41
19
14
25
32
38
61
109
152
183
208
217
204
188
181
170
150
122
95
67
49
54
72
89
104
115
117
125
139
156
162
149
125
106
91
85
93
101
105
106
112
118
127
136
143
142
136
134
132
133
137
137
131
125
125
133
144
157
167
170
173
179
185
191
195
196
196
204
195
142
90
53
20
13
23
38
58
76
101
136
163
190
208
198
182
160
136
119
109
97
87
79
79
90
106
127
142
141
131
124
117
116
115
106
97
93
92
99
116
131
138
139
135
127
121
122
120
117
114
111
109
116
126
134
139
141
143
147
154
162
167
167
164
159
156
160
166
172
179
185
194
201
168
122
87
46
32
35
39
59
80
99
125
151
170
183
182
168
152
130
116
106
101
99
99
103
112
125
138
146
147
137
117
101
91
85
84
83
87
96
109
126
141
150
150
142
130
118
111
108
109
111
112
113
116
123
133
142
148
150
153
158
163
167
168
164
158
155
157
163
173
180
188
197
204
168
121
80
33
9
7
37
59
96
127
140
164
176
181
181
169
146
120
101
89
88
99
108
120
131
138
146
150
146
129
110
90
74
75
77
85
102
115
127
142
151
154
151
140
122
108
98
95
102
107
112
115
118
122
130
139
144
148
150
151
152
154
153
150
148
147
147
153
160
167
176
182
188
200
208
175
130
90
34
20
15
28
67
89
123
141
157
169
170
171
155
136
117
97
95
98
108
124
134
145
145
147
143
130
117
88
73
62
61
77
88
110
129
143
157
159
157
146
131
115
100
96
96
104
114
118
121
121
126
132
139
146
149
151
154
156
159
159
156
151
148
151
157
165
175
181
184
186
188
164
124
89
54
14
13
41
58
109
138
150
163
164
159
156
149
131
114
102
92
98
117
130
148
156
152
143
134
123
105
89
69
60
63
77
95
120
140
153
160
157
146
135
121
107
100
96
99
107
117
124
128
130
129
134
139
142
147
148
149
151
153
153
152
151
150
152
158
165
172
178
179
177
179
178
145
109
78
54
45
37
63
79
101
130
139
151
154
149
142
132
120
114
112
118
123
136
144
149
153
145
134
123
105
84
71
65
65
81
96
109
131
145
154
159
152
138
125
113
103
103
105
109
116
122
124
127
130
130
135
137
138
144
147
150
155
156
153
152
151
152
157
162
167
170
171
171
173
176
179
154
112
83
61
66
66
70
85
90
108
127
142
149
145
133
123
117
122
126
135
139
140
144
148
152
149
139
120
100
78
69
69
78
88
101
113
123
138
149
152
148
136
122
116
112
110
110
112
114
119
125
127
129
129
129
131
134
137
142
146
148
151
152
153
155
155
155
156
158
161
165
168
166
166
167
174
162
124
97
79
80
83
77
77
80
92
112
131
135
132
123
122
125
134
139
139
139
140
147
152
152
143
129
112
100
94
82
73
76
80
95
115
124
129
139
141
142
141
131
121
116
113
111
115
117
120
124
124
124
125
125
125
129
131
135
141
146
150
153
154
153
154
155
155
157
158
158
160
164
163
166
170
174
151
116
97
88
93
83
73
70
80
99
117
122
117
116
120
133
137
139
134
137
145
155
157
151
141
130
125
116
106
91
75
71
83
91
100
107
111
126
141
143
139
132
126
126
125
120
115
116
119
125
126
121
118
120
123
125
126
126
132
141
147
149
150
151
155
157
156
153
153
155
156
157
155
155
159
163
166
156
127
111
110
112
88
72
74
87
99
103
101
102
117
126
133
128
130
135
148
152
150
147
146
148
143
133
119
112
106
96
86
87
88
93
97
104
115
126
131
134
133
134
134
131
127
125
128
129
131
127
126
125
125
123
121
122
123
129
132
136
139
145
148
150
151
151
152
151
151
150
150
150
150
149
148
148
150
149
135
126
124
121
104
96
95
96
95
95
97
101
108
113
117
121
129
133
138
140
142
143
144
141
138
135
131
127
123
118
113
113
112
107
107
110
111
113
116
116
119
121
122
124
127
129
131
133
133
133
133
131
130
130
129
127
127
126
126
127
128
129
130
131
133
134
134
136
138
139
141
143
144
146
148
148
150
151
151
145
139
137
132
119
113
110
101
99
100
93
94
102
104
107
116
120
126
134
135
137
144
144
142
144
142
139
139
133
126
127
122
113
111
109
106
107
106
104
109
112
112
117
121
125
131
134
134
138
139
136
136
136
133
132
129
127
128
127
125
125
126
126
127
127
128
131
133
135
138
140
141
143
145
147
149
149
149
151
150
143
137
134
129
121
113
107
103
100
96
94
97
102
104
107
114
121
126
131
135
140
143
142
142
144
142
139
135
131
128
123
117
113
112
110
108
107
107
108
111
112
116
121
125
128
132
134
136
137
137
137
136
134
133
132
130
129
128
127
127
126
126
127
129
130
131
133
136
137
139
141
143
145
146
147
149
149
150
150
145
139
136
132
123
115
110
106
103
99
95
98
103
103
107
115
120
125
130
134
140
142
142
143
145
143
140
138
134
130
126
120
114
112
110
108
108
106
106
110
112
114
118
124
128
131
134
137
139
139
139
139
138
135
132
131
130
128
128
127
127
127
127
129
130
131
133
136
137
139
141
143
145
146
147
148
149
151
148
141
136
135
128
118
114
109
104
100
96
97
101
101
104
112
117
121
127
132
137
141
141
142
144
143
140
139
137
134
128
123
122
116
109
107
108
106
105
105
108
112
113
117
124
129
130
134
138
139
139
138
138
137
134
130
130
128
126
126
126
126
125
126
128
129
130
132
135
137
138
140
142
143
144
145
146
147
147
148
145
138
134
132
125
117
112
109
106
100
97
100
103
103
106
113
118
122
126
132
137
139
139
141
142
141
138
137
136
130
126
124
120
114
109
109
108
106
105
107
110
112
114
119
125
127
130
134
138
136
137
138
137
135
133
131
129
128
126
126
125
125
126
127
129
130
131
135
137
139
141
143
144
145
146
147
148
148
149
147
144
141
133
128
123
118
107
106
103
100
96
100
101
105
107
115
121
124
129
135
140
141
143
144
144
141
140
137
133
127
123
117
113
109
105
105
106
105
106
109
112
115
119
124
129
132
135
138
140
140
139
139
137
134
132
130
127
126
125
125
125
126
127
129
131
133
135
138
140
141
143
144
145
146
146
146
146
146
147
145
141
140
131
127
122
117
107
105
104
100
97
99
103
104
108
114
122
123
129
134
140
140
143
144
144
140
138
137
132
127
123
121
114
111
108
107
103
104
108
108
110
115
119
121
125
130
134
136
139
142
141
140
138
137
134
131
129
127
125
125
126
126
127
129
132
134
136
138
140
143
144
146
146
145
146
150
147
148
149
150
144
144
141
130
129
121
119
107
108
105
101
99
102
106
107
112
119
126
127
134
139
144
144
147
147
145
143
140
138
133
129
124
121
115
110
109
108
105
106
109
111
112
115
121
122
127
132
136
137
139
143
142
141
139
138
134
131
129
127
125
124
126
126
127
129
132
134
136
139
141
142
144
146
146
147
146
147
146
146
147
148
143
140
142
130
127
121
119
109
103
106
99
98
98
103
105
108
114
123
125
131
137
142
143
145
147
145
141
139
137
131
127
122
118
112
108
105
102
104
103
104
107
110
112
116
120
124
128
131
135
136
138
139
139
137
136
134
130
127
125
124
122
122
123
125
126
128
131
134
136
140
141
143
145
145
147
145
144
146
143
145
145
146
137
136
139
123
124
117
112
110
98
104
100
95
99
102
106
108
116
123
126
132
137
144
143
145
148
144
141
137
137
129
125
122
116
110
105
105
100
99
102
104
106
110
115
118
120
126
129
132
134
137
139
137
138
138
135
132
130
128
124
123
123
123
123
125
128
130
132
136
139
140
143
146
146
147
148
147
145
146
145
143
143
145
144
132
135
136
118
121
117
109
109
102
102
102
100
102
108
113
112
122
129
129
135
141
144
144
145
145
142
139
135
132
127
122
119
115
109
104
103
103
100
101
109
111
111
119
125
124
127
133
133
133
136
138
136
134
134
133
129
127
127
125
122
123
126
126
127
131
134
134
138
142
143
143
146
148
146
147
148
146
145
145
143
143
142
145
141
127
136
129
113
116
114
106
100
103
103
98
103
106
110
114
118
127
131
134
137
143
143
141
144
141
137
133
129
126
120
116
114
110
106
103
104
103
101
106
110
113
116
122
126
127
130
132
133
131
132
132
130
129
128
127
125
124
124
124
124
125
127
130
131
134
138
140
140
143
145
145
145
146
147
146
144
145
145
143
143
145
146
144
148
142
129
135
129
115
114
113
106
101
104
103
100
107
110
113
119
125
130
133
139
141
142
143
144
142
138
136
132
126
123
120
115
112
111
108
105
104
103
107
109
109
114
122
125
124
131
135
131
131
133
132
128
127
128
125
124
123
123
124
125
126
127
131
133
135
139
142
143
144
145
147
146
145
147
147
145
144
147
145
144
147
149
148
147
153
151
133
131
133
120
107
106
107
99
95
101
101
104
110
116
121
128
135
136
139
145
145
141
141
142
136
130
128
125
119
115
114
112
109
110
107
106
109
105
107
115
118
116
121
130
130
127
131
132
129
126
125
122
120
121
118
118
121
123
123
125
131
133
134
138
141
142
143
144
144
142
143
143
141
141
143
142
142
146
145
147
150
152
154
155
158
153
136
129
124
111
100
96
95
88
92
100
99
104
115
123
126
133
142
142
142
145
144
139
137
136
130
125
124
120
115
114
114
113
111
113
113
110
112
112
109
112
118
121
119
122
127
128
127
125
122
121
121
119
115
114
117
119
120
123
126
130
134
138
139
141
143
143
142
141
139
138
137
137
137
137
140
143
146
149
151
152
155
157
159
162
163
162
158
142
122
112
101
93
87
84
83
87
100
108
113
121
132
141
145
149
148
145
144
142
135
128
125
123
120
118
115
113
114
115
116
116
117
119
120
122
120
119
120
118
118
119
124
124
121
120
118
116
115
112
110
109
113
115
118
121
125
129
134
138
140
140
142
141
139
137
134
131
129
129
129
130
132
135
140
144
148
153
158
160
158
159
160
160
161
162
162
155
136
114
97
87
82
79
78
81
90
102
116
127
134
140
146
151
153
149
142
134
129
124
120
116
113
112
113
116
118
119
120
122
124
125
123
125
123
123
125
122
121
118
116
117
117
120
119
116
113
109
109
107
108
111
114
120
124
129
133
135
138
138
140
139
137
134
131
130
128
126
126
126
128
131
136
141
145
151
154
158
159
162
161
157
156
154
154
157
158
160
157
137
110
90
83
78
79
84
86
91
105
122
135
144
149
147
146
148
144
136
126
118
110
108
111
113
114
116
119
122
127
132
131
129
127
124
123
124
123
122
118
112
116
112
114
117
118
121
119
120
114
110
108
104
106
111
117
123
128
133
134
137
138
136
135
131
128
126
125
125
123
124
125
128
132
135
139
142
146
149
152
155
157
157
156
154
151
151
153
153
154
156
159
161
146
123
99
82
75
78
86
89
96
104
115
130
145
153
153
148
142
136
132
128
120
112
106
105
109
117
124
128
129
130
131
133
135
132
126
120
116
115
116
119
119
116
115
112
115
124
124
125
123
119
114
112
110
104
104
108
113
123
131
135
136
137
135
132
132
129
127
125
123
123
123
126
127
129
132
133
138
142
146
149
150
151
150
152
152
150
149
150
149
150
152
152
157
165
169
154
134
114
91
84
82
83
81
85
97
107
125
141
148
150
149
147
141
138
133
121
113
107
105
108
115
121
123
127
131
133
138
139
135
129
123
119
117
117
116
115
115
113
115
114
121
126
124
127
125
122
120
117
112
105
105
106
111
122
129
133
136
137
137
136
135
131
127
125
122
123
123
125
126
128
132
133
138
142
144
146
148
148
148
149
149
149
149
149
149
150
151
153
154
156
158
165
159
138
125
105
94
90
86
85
81
92
104
117
133
139
142
143
146
147
142
138
126
116
111
110
111
112
115
117
120
128
133
137
137
135
131
128
128
124
120
117
111
109
111
111
108
115
122
121
126
130
126
124
123
117
111
108
106
106
115
122
125
130
134
135
135
136
132
129
128
127
126
126
126
126
127
130
132
134
137
139
143
147
149
151
152
151
151
151
149
147
147
151
150
148
150
152
156
161
146
128
123
108
101
98
90
87
86
100
111
118
128
130
135
143
147
146
138
132
127
122
121
117
111
109
112
117
121
124
126
127
131
135
135
132
130
127
125
124
122
112
108
108
101
111
118
114
116
123
127
126
125
123
115
115
117
112
113
118
121
124
128
131
130
131
134
132
130
131
129
129
129
129
128
129
132
132
133
136
138
141
145
148
149
150
151
151
152
151
150
150
147
146
149
150
151
152
147
133
129
128
113
106
102
93
93
99
102
104
110
119
128
130
136
140
138
140
141
135
129
127
125
122
118
116
115
114
117
119
119
120
125
128
129
130
131
131
131
131
129
121
117
117
114
116
118
112
113
123
125
121
122
125
129
131
128
127
129
131
130
130
128
128
130
132
131
130
129
130
131
130
127
127
129
129
128
128
128
128
130
131
130
129
130
133
132
131
130
132
133
131
130
130
132
132
131
132
132
133
133
134
133
132
132
132
130
128
126
125
123
122
121
120
120
120
120
120
120
121
122
123
123
124
126
127
127
128
128
129
129
129
128
128
128
127
127
127
126
126
126
125
124
124
123
121
122
124
122
122
123
124
124
124
124
124
125
125
125
126
127
127
128
129
129
129
130
131
130
130
130
129
130
129
128
128
128
128
127
127
127
128
128
129
129
130
130
130
131
131
132
132
132
131
131
132
132
131
132
132
131
132
132
132
132
132
132
131
130
130
129
129
128
127
127
126
125
125
124
123
124
124
123
124
124
124
125
126
126
126
127
127
128
128
128
128
128
128
128
128
127
127
127
126
126
126
125
125
125
124
123
124
124
123
123
124
123
125
124
124
120
127
132
116
127
134
122
128
133
126
129
132
128
129
130
128
129
128
128
129
127
127
128
127
127
128
128
127
128
129
129
129
129
130
130
130
130
131
130
130
131
130
130
131
130
130
130
130
130
131
129
129
130
129
129
129
128
128
128
127
126
126
126
125
125
124
125
125
124
125
125
125
125
126
125
126
126
126
126
127
127
126
127
126
126
126
125
126
126
125
125
125
124
119
133
121
120
131
121
126
126
124
127
125
126
127
126
127
127
127
128
127
127
128
128
127
128
127
128
128
127
127
127
127
126
127
126
127
126
127
125
126
98
103
132
103
128
138
133
137
133
127
141
136
118
128
140
126
117
133
129
127
128
126
129
137
128
123
138
131
124
127
132
125
125
123
122
127
120
118
124
124
119
123
125
126
126
126
128
130
128
127
130
128
126
125
126
123
122
121
120
118
115
115
114
113
114
116
116
118
120
122
124
124
126
128
128
128
129
129
128
128
127
126
125
124
124
123
122
124
125
124
126
127
129
130
131
132
132
132
133
133
132
133
132
133
133
133
133
135
134
136
137
136
139
140
140
142
142
141
145
141
137
141
135
134
132
127
128
123
120
121
119
117
117
118
118
121
121
124
128
126
131
133
134
135
136
137
138
137
136
136
135
132
132
130
128
127
126
125
125
125
125
127
123
117
127
124
117
121
126
123
119
124
126
124
122
126
129
125
126
131
131
128
130
134
133
131
133
135
132
132
134
135
133
134
136
137
135
136
139
138
138
140
143
143
143
146
146
147
147
148
150
150
147
152
152
150
153
147
147
146
135
134
130
122
120
115
112
111
107
110
110
109
114
116
120
124
128
132
136
136
139
141
140
140
139
138
136
132
129
127
124
120
118
117
115
114
114
115
116
117
119
121
122
125
118
124
126
120
122
121
122
118
117
119
117
114
115
118
115
116
119
121
121
122
126
127
126
128
131
130
129
131
131
129
129
130
130
128
128
131
130
130
132
135
136
136
140
140
142
143
144
147
145
146
149
146
146
150
142
142
140
133
128
123
118
114
108
107
102
102
103
100
106
106
110
115
118
123
126
131
133
136
137
138
139
137
136
133
132
128
125
122
119
117
114
113
112
112
112
113
115
117
119
121
125
123
123
126
125
123
122
124
121
120
119
119
117
115
117
116
116
116
119
119
120
123
124
125
126
128
129
130
130
131
131
130
130
130
130
129
129
130
130
130
131
132
133
134
136
137
139
142
142
143
145
145
145
146
146
146
146
143
142
139
136
133
127
124
120
115
113
109
106
107
105
107
108
111
114
116
120
124
127
129
133
134
137
136
138
137
135
134
132
130
127
125
123
120
118
117
116
115
115
116
117
118
119
122
122
121
122
127
121
118
126
121
119
119
119
119
114
117
119
116
116
121
122
121
124
127
128
127
131
134
132
132
135
134
133
133
135
134
133
134
135
135
135
138
139
139
141
142
141
148
143
146
152
146
151
150
150
149
145
143
137
133
124
120
115
109
105
103
104
98
103
105
103
113
112
119
125
126
136
135
141
142
144
145
143
143
140
138
134
131
127
122
121
116
116
114
112
113
113
115
117
120
122
124
128
129
133
129
124
135
126
120
124
122
119
114
116
118
112
113
119
119
117
122
127
128
128
133
137
134
135
139
137
135
136
137
134
132
133
134
132
132
135
137
136
138
141
142
142
146
149
148
152
153
154
160
150
158
154
141
145
129
113
128
101
94
109
83
103
85
96
108
94
115
113
130
125
136
145
146
151
148
160
149
150
148
143
140
130
128
124
115
113
111
109
105
105
110
109
111
115
121
124
126
132
136
138
139
142
143
141
140
134
119
140
117
108
124
106
112
103
109
111
102
113
115
118
115
126
129
128
131
135
139
131
136
139
133
132
132
132
128
127
130
128
127
128
133
133
133
138
141
142
143
147
149
150
150
156
155
154
157
156
155
136
113
151
110
86
127
79
114
73
92
115
75
110
100
127
109
123
141
138
142
138
163
147
147
151
150
145
132
135
136
118
116
116
115
105
101
112
106
104
106
117
117
114
125
131
132
130
139
143
138
137
141
140
134
128
132
112
118
117
100
113
101
108
107
105
115
112
119
121
128
129
132
136
138
140
137
141
138
135
136
132
131
128
127
128
126
127
127
129
130
131
135
137
138
141
142
144
146
147
149
151
153
147
150
147
109
154
113
98
132
80
128
77
104
111
87
114
98
128
108
125
131
136
137
134
154
143
143
147
144
145
133
136
136
122
125
116
122
110
110
114
111
110
109
118
117
117
122
128
129
129
134
138
137
136
139
139
135
134
135
132
127
126
127
122
121
117
110
128
104
114
121
110
123
112
125
123
119
130
128
130
128
134
133
131
132
133
133
127
131
131
127
128
127
129
126
127
130
129
128
130
132
132
130
133
134
133
133
135
135
134
134
135
134
133
133
134
133
131
133
132
132
132
132
134
131
133
133
124
134
125
124
126
121
126
119
122
123
120
122
121
125
123
125
127
128
128
128
131
130
130
130
131
131
129
129
129
128
126
126
126
124
124
124
124
123
123
124
124
125
125
126
126
127
128
127
129
128
128
129
128
129
128
128
128
127
127
127
126
126
126
126
126
126
126
126
126
127
127
127
128
128
129
129
129
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
130
129
128
128
126
126
125
125
124
124
124
124
124
124
124
125
125
126
127
128
128
129
130
130
130
130
130
130
129
129
129
128
128
127
126
126
126
126
126
125
126
126
126
126
127
127
128
128
128
129
129
129
129
129
129
129
128
128
128
127
127
127
127
127
126
126
126
126
127
127
127
127
127
127
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
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
127
128
127
128
128
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
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
128
128
128
128
128
128
128
128
128
127
128
127
127
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
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
127
127
127
127
127
127
128
128
128
127
128
128
127
128
128
128
128
128
127
128
128
128
128
127
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
127
127
127
128
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
128
127
127
127
127
128
128
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
127
127
127
128
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
127
128
128
128
127
128
128
128
127
128
128
128
128
128
128
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
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
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
127
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
127
127
127
127
127
127
128
127
127
128
127
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
128
127
128
128
128
128
128
128
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
127
128
128
128
128
127
127
128
128
127
128
128
128
127
127
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
127
127
127
127
128
128
127
127
128
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
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
128
128
127
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
128
128
128
128
128
127
127
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
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
127
127
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
128
127
127
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
127
127
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
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
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
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
127
127
128
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
127
127
128
128
127
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
127
128
128
127
127
128
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
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
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
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
127
127
127
127
127
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
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
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
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
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
127
127
128
128
127
128
128
128
127
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
128
128
128
128
128
128
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
128
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
128
128
128
128
128
128
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
127
127
127
127
128
127
127
128
128
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
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
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
127
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
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
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
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
127
127
128
127
127
127
127
128
128
128
127
127
127
128
127
127
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
127
127
127
127
127
127
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
127
127
127
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
128
128
128
128
128
128
128
128
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
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
127
127
127
127
127
128
128
128
128
127
128
127
127
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
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
127
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
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
127
127
128
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
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
127
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
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
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
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
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
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
127
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
127
128
128
128
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
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
127
127
128
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
127
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
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
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
128
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
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
128
128
127
128
128
128
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
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
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
128
128
128
127
127
128
127
127
128
128
128
128
128
127
128
128
128
128
127
128
128
127
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
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
127
127
128
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
127
128
127
128
128
128
127
128
128
128
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
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
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
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
128
128
127
127
128
128
128
128
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
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
128
127
128
127
127
128
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
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
127
127
128
128
128
128
128
128
128
127
128
127
128
128
128
128
128
128
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
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
127
128
128
128
128
128
128
127
127
127
127
128
128
128
128
128
128
128
128
127
128
128
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
127
127
127
127
127
127
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
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
128
128
128
128
128
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
128
128
127
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
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
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
126
127
126
127
128
126
127
128
129
128
127
127
128
128
128
128
127
127
127
126
127
127
127
127
126
128
127
128
128
127
128
127
127
128
127
127
127
127
128
128
127
127
127
127
127
128
127
127
129
129
129
128
127
127
127
127
128
128
128
127
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
127
127
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
126
127
127
127
127
127
126
127
127
127
127
127
127
126
126
126
126
127
127
127
127
128
127
127
127
126
126
126
126
127
127
126
126
127
127
131
118
129
123
133
124
131
123
127
128
127
129
126
126
127
127
128
128
126
127
126
127
127
127
127
126
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
128
128
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
126
127
127
127
127
127
126
126
126
129
126
128
126
127
127
127
127
127
128
126
126
126
127
127
127
127
127
126
127
127
128
127
127
128
128
128
128
127
128
128
128
129
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
125
130
126
127
128
132
130
124
128
129
128
131
125
130
129
126
129
127
129
129
127
128
127
127
128
127
129
128
129
129
128
128
128
127
129
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
127
128
128
129
127
127
127
128
126
129
129
128
130
127
127
128
127
128
128
126
128
128
129
128
128
127
127
128
128
127
128
128
128
128
128
127
127
127
128
128
128
127
127
127
128
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
129
128
127
126
126
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
127
127
127
128
128
127
127
128
129
129
127
127
126
126
126
127
126
126
127
128
128
128
126
127
128
127
128
128
127
128
128
128
127
127
127
127
127
128
128
129
128
128
127
127
127
128
129
129
129
128
128
127
128
128
128
127
127
128
128
128
127
126
127
128
128
128
127
126
127
128
128
128
127
126
126
126
126
127
126
127
127
128
128
127
127
126
127
127
128
127
128
128
129
129
128
129
129
128
127
127
129
131
130
129
129
129
131
130
130
131
130
130
131
131
132
132
131
131
130
130
130
129
129
129
128
129
129
130
130
129
129
128
128
128
128
127
127
125
125
125
125
125
125
125
124
125
125
124
124
122
123
124
126
126
125
124
124
124
125
126
126
127
127
128
128
127
127
129
132
135
136
137
135
134
131
131
135
138
140
139
135
133
135
138
139
138
137
136
137
137
138
134
132
131
129
131
133
132
130
124
120
122
124
124
118
112
106
107
114
123
125
125
120
115
114
115
118
122
122
123
124
124
124
124
122
122
122
124
127
128
128
128
127
128
129
132
135
138
140
138
137
136
135
135
135
139
145
148
145
139
136
138
144
152
156
154
155
147
143
149
155
138
111
97
76
73
94
114
136
149
147
138
121
109
100
100
108
120
144
159
162
157
139
119
107
102
98
106
115
122
130
131
119
108
100
99
121
142
149
147
125
107
107
115
127
126
122
122
126
128
127
120
116
121
128
139
142
140
138
137
138
138
138
137
138
141
143
142
140
140
143
140
141
148
155
160
159
156
161
163
153
141
103
67
8
21
100
154
216
204
152
109
70
74
92
100
112
132
163
183
196
177
121
90
60
56
90
117
140
146
136
109
98
90
97
115
125
144
147
137
129
118
107
110
115
126
134
135
133
121
115
117
123
134
144
147
148
149
148
143
138
136
144
154
159
163
162
154
154
159
169
174
190
196
125
0
1
3
72
211
255
255
177
86
51
52
63
67
83
103
162
229
245
216
136
54
26
41
92
138
149
145
128
125
122
112
91
74
88
111
147
167
153
119
100
82
93
119
134
146
135
117
109
106
115
126
131
135
139
143
146
144
137
131
131
138
146
151
148
144
144
146
150
152
158
163
162
169
180
180
157
109
60
9
10
56
137
200
210
184
131
83
63
64
75
90
120
149
187
206
188
155
100
67
64
80
105
120
132
132
130
119
101
90
84
97
125
142
156
145
119
100
99
106
120
131
133
130
123
117
115
115
123
132
136
143
146
148
148
146
141
135
136
146
160
167
164
154
146
152
157
175
191
195
206
166
58
1
2
0
114
228
255
242
154
85
52
46
47
56
88
123
194
243
233
197
116
50
36
50
92
127
130
137
144
132
115
97
70
68
98
121
155
157
143
131
105
98
98
103
120
136
138
131
123
111
112
119
125
135
145
154
157
155
145
135
128
134
152
168
173
171
159
150
158
166
183
193
195
206
120
0
0
2
55
206
255
255
182
98
67
49
46
49
58
91
167
242
255
230
149
60
30
37
74
115
140
135
134
141
130
118
82
63
68
95
137
157
159
147
124
101
96
93
105
122
132
138
134
128
117
114
114
120
134
150
159
162
156
142
136
129
134
151
160
175
173
162
161
153
157
180
185
201
220
170
93
0
2
0
85
225
255
228
167
93
65
51
48
41
53
126
211
255
255
202
105
58
35
52
89
109
127
123
138
155
139
99
72
56
57
109
152
175
179
156
108
92
81
86
115
124
145
146
144
133
116
103
103
114
137
163
170
167
158
144
134
132
137
150
168
178
182
171
156
149
148
169
195
216
226
156
0
0
0
10
173
255
255
190
132
89
84
64
44
23
56
134
219
255
255
187
103
61
51
63
85
95
93
113
156
161
135
109
49
37
93
113
169
179
160
139
116
92
84
94
102
133
153
159
147
129
109
101
105
117
141
156
175
176
165
144
133
133
146
161
171
180
170
170
162
159
158
175
189
213
170
8
2
0
1
144
218
241
185
140
115
102
91
61
30
42
94
175
226
250
209
148
111
76
70
72
71
61
70
113
147
164
142
101
75
77
93
127
141
138
139
132
123
120
110
106
108
117
126
138
139
138
132
121
116
117
131
149
163
166
165
160
154
157
153
152
156
161
162
167
167
161
171
182
195
182
114
12
1
1
24
118
173
173
166
149
134
136
130
103
79
69
75
111
156
183
187
179
158
136
129
115
90
60
52
56
76
110
133
141
147
148
147
144
136
125
115
111
110
117
127
133
137
134
132
130
130
133
135
135
139
145
152
156
161
161
161
162
165
170
175
177
179
180
181
182
184
187
187
189
190
191
189
185
182
178
170
156
148
135
122
111
106
100
89
81
77
71
71
77
80
82
85
85
85
88
93
94
95
94
89
88
89
88
84
84
82
82
88
91
90
91
93
94
99
104
107
110
114
114
115
118
118
117
117
117
116
117
119
118
117
117
115
115
117
118
118
120
120
120
122
123
123
123
124
126
128
130
131
129
129
126
127
129
129
129
128
129
126
125
125
122
117
117
118
115
114
113
112
109
111
114
116
120
124
125
127
130
130
131
131
133
130
130
130
127
124
122
120
118
120
121
121
123
125
126
128
130
130
131
131
132
133
135
136
134
134
132
132
132
133
133
134
133
133
133
133
133
131
132
132
132
136
136
137
136
136
136
137
139
138
139
139
137
137
138
135
132
130
129
126
125
124
122
116
115
115
115
116
119
120
119
121
125
126
129
131
132
133
134
134
132
130
128
125
124
122
121
120
121
120
121
122
123
125
126
128
129
131
132
132
132
132
132
131
132
132
132
132
131
130
130
130
129
128
129
128
130
130
132
131
131
131
132
133
134
136
134
135
134
135
135
133
133
133
132
131
129
128
124
121
119
118
115
114
114
112
112
113
114
115
118
121
124
127
131
132
132
133
131
130
128
126
124
123
122
118
117
117
117
117
119
121
121
125
126
128
129
131
130
131
132
132
132
131
131
130
130
129
129
129
129
129
130
130
129
128
126
129
128
131
131
133
133
134
135
135
135
134
135
135
136
134
136
136
134
131
129
126
125
123
121
118
115
112
111
111
112
112
114
116
120
123
127
129
131
133
135
136
135
134
132
130
126
123
120
119
118
117
115
115
116
117
118
120
122
125
128
130
131
132
132
132
132
133
132
132
132
132
131
130
129
128
127
127
126
127
128
129
129
130
131
133
133
134
135
135
136
136
136
136
135
136
134
136
136
136
135
136
133
129
126
125
123
120
118
115
112
111
112
111
111
112
116
120
124
127
131
133
135
137
138
138
137
136
133
129
126
123
121
118
116
116
115
115
115
116
117
115
116
114
119
124
125
129
133
136
136
135
134
133
132
131
130
128
127
126
125
123
122
122
123
124
125
127
131
132
135
137
139
141
143
144
143
143
142
141
142
141
141
140
140
142
147
152
145
131
110
103
105
104
99
94
97
101
116
121
119
120
126
133
141
143
139
136
138
145
146
144
138
133
132
131
127
111
99
99
99
100
99
96
98
109
124
131
132
134
137
141
141
135
125
121
123
122
119
116
114
116
120
122
121
118
125
129
130
132
133
136
140
142
139
137
142
144
145
146
147
147
149
150
149
151
152
155
159
158
163
171
171
173
176
181
186
190
166
101
86
108
100
63
74
101
130
140
142
139
157
177
149
130
139
155
140
130
137
146
156
151
140
139
147
130
110
103
111
105
98
98
118
131
135
132
143
157
145
125
120
116
114
99
94
103
108
104
104
119
124
122
116
126
131
127
123
126
130
130
123
123
129
127
118
120
125
123
121
121
126
129
128
128
136
139
137
143
149
148
142
145
138
132
135
132
124
125
132
129
130
138
142
149
161
138
109
65
58
97
55
39
104
126
121
118
146
137
129
117
100
120
110
96
104
134
138
123
145
150
142
127
116
104
99
87
78
94
103
102
111
142
143
136
138
137
129
115
102
95
98
94
88
108
115
113
120
126
120
117
114
112
117
116
117
128
136
133
135
139
133
127
125
120
120
119
121
124
131
132
132
138
140
138
140
143
144
145
147
146
143
149
145
134
139
139
133
132
139
137
141
143
146
151
153
155
145
132
121
78
53
111
88
57
119
140
131
132
153
139
134
126
108
126
117
109
120
147
139
135
151
151
134
124
117
105
98
93
93
111
120
123
138
156
154
150
139
149
121
107
110
112
101
99
111
119
118
119
121
128
119
112
113
119
113
118
126
135
134
138
140
138
130
123
122
123
118
118
126
131
132
136
141
141
140
140
141
140
139
138
142
142
138
140
142
144
140
138
144
144
134
138
146
145
135
151
155
148
147
152
153
152
142
127
107
61
68
116
56
71
131
143
129
139
159
141
139
122
114
131
114
111
125
148
134
135
149
147
128
121
114
107
100
93
102
120
126
134
145
159
153
149
147
140
126
113
97
102
115
94
103
132
127
121
130
134
121
119
114
115
117
115
117
130
133
131
137
137
128
120
120
118
115
117
124
129
132
135
140
142
140
138
140
140
137
135
137
136
132
131
134
134
129
134
143
140
135
141
146
144
137
140
154
148
138
148
154
146
150
164
155
136
120
48
79
116
53
62
148
139
123
145
171
137
140
117
117
125
111
99
130
145
132
134
160
149
133
122
120
104
99
89
104
117
120
128
150
159
154
149
150
139
129
114
110
109
106
107
119
128
108
129
142
115
122
136
120
113
120
122
116
125
123
129
133
124
119
128
120
109
115
121
118
121
128
132
134
134
135
141
138
135
138
141
137
135
137
135
131
129
131
129
126
131
137
137
138
140
143
147
141
138
146
141
140
148
152
155
159
152
145
99
70
86
103
58
73
133
139
129
143
159
148
131
118
121
124
106
111
130
141
132
144
155
149
130
123
120
107
95
96
105
116
121
135
148
155
150
149
149
137
122
115
113
111
108
114
122
129
130
134
136
106
126
129
102
108
136
121
120
134
139
127
130
121
117
116
106
103
121
120
118
129
138
129
131
134
131
130
131
129
137
138
136
140
143
136
131
132
126
126
126
124
130
140
138
137
145
146
135
142
149
144
148
161
154
143
145
109
92
82
109
80
80
123
135
131
134
149
140
132
124
120
124
117
114
129
140
136
137
148
144
130
120
119
109
100
100
108
117
122
134
143
150
147
146
145
137
125
118
117
114
112
117
122
127
128
131
133
131
127
125
125
123
121
125
128
132
128
138
138
131
111
130
121
101
108
121
111
107
122
128
126
129
133
136
133
128
130
133
126
122
131
132
128
126
133
131
127
126
130
127
124
128
134
130
132
134
138
132
135
135
136
133
127
129
130
126
125
132
131
129
132
138
135
135
135
133
129
128
123
122
121
121
121
125
124
124
126
125
123
124
124
122
123
125
126
127
129
130
131
131
129
127
125
123
120
120
120
121
123
124
126
128
130
130
129
128
128
128
126
125
126
127
125
126
123
125
126
124
121
124
126
125
125
127
130
130
129
131
135
130
128
133
132
127
128
131
127
124
130
129
127
127
130
130
127
129
131
130
130
131
134
133
129
131
133
128
126
133
132
126
130
137
128
119
125
126
116
119
123
125
123
125
128
131
127
125
128
129
123
123
127
126
123
126
129
128
126
127
128
126
123
122
123
123
121
124
127
127
127
129
130
129
128
127
128
127
125
126
127
127
127
128
128
128
128
128
128
127
127
128
127
128
129
129
129
129
129
128
128
128
125
126
127
125
127
128
127
126
128
127
127
127
128
127
127
128
127
127
128
127
127
127
127
125
127
127
126
126
127
126
127
127
127
127
128
127
128
128
127
127
128
128
127
127
127
128
127
126
128
128
126
127
129
128
127
128
128
127
127
127
127
127
127
127
127
127
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
127
128
127
127
128
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
128
127
128
128
127
127
127
127
127
127
128
128
127
128
128
128
127
127
128
128
127
127
128
128
127
128
128
127
127
128
128
127
127
128
127
127
127
128
128
128
128
127
128
127
127
128
127
127
127
127
127
127
128
128
128
127
128
127
127
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
127
127
128
127
128
128
127
128
127
127
128
128
127
128
128
128
127
127
127
127
127
127
128
127
127
128
128
128
127
128
128
127
127
128
128
128
127
128
128
127
127
128
128
127
128
128
127
128
128
128
128
127
127
128
128
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
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
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
128
128
127
127
127
127
128
127
127
127
128
127
127
128
128
127
127
128
128
127
127
127
128
127
127
127
127
127
127
128
128
127
128
128
127
127
128
127
127
128
128
128
127
128
128
127
127
128
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
128
127
127
128
128
127
127
128
128
128
127
128
128
127
127
128
128
127
127
128
128
127
128
128
128
127
128
128
127
127
128
129
127
127
128
127
127
127
128
127
127
128
128
127
128
128
128
127
128
128
128
127
127
128
127
127
127
128
127
127
128
128
127
127
128
128
128
128
127
128
128
127
128
128
127
127
128
127
127
128
127
127
127
128
127
128
128
127
128
128
127
127
128
127
127
128
127
127
128
128
127
128
128
127
127
128
127
127
128
127
128
128
127
128
128
127
128
128
127
127
129
128
127
128
129
127
127
129
128
127
129
129
128
129
128
128
128
128
127
128
128
127
128
129
128
127
129
129
127
128
129
127
127
129
127
128
129
128
128
128
128
128
128
127
127
129
127
128
129
128
128
128
128
128
128
127
128
128
127
128
128
128
127
129
128
126
128
128
127
128
128
127
129
129
126
128
129
127
127
129
127
126
128
128
127
128
129
127
127
128
128
127
128
129
127
127
128
128
127
128
128
127
128
128
127
127
129
127
127
129
128
127
129
129
127
128
129
127
127
127
127
128
128
127
128
129
128
126
129
128
126
128
128
128
128
128
127
129
129
126
127
129
128
127
128
129
128
127
127
129
128
126
127
130
126
126
130
129
126
127
128
127
127
127
127
128
129
128
128
129
127
125
127
128
125
127
129
127
128
129
127
126
128
128
125
129
129
126
128
130
126
128
130
127
126
130
128
125
129
128
125
128
129
126
126
129
127
126
127
128
127
127
128
127
128
128
127
127
129
127
125
128
128
126
127
129
126
127
128
127
127
127
126
127
128
126
128
129
126
127
129
127
125
129
127
126
129
129
126
127
129
126
127
128
127
127
127
128
129
127
128
129
128
127
128
128
127
128
127
127
128
127
126
128
129
127
127
129
128
126
127
129
127
127
128
128
127
128
128
127
128
128
127
129
128
126
128
129
127
127
129
128
127
127
127
127
127
127
128
128
127
127
129
127
126
127
129
128
127
128
129
127
126
128
128
126
127
128
128
127
128
128
128
128
127
127
129
128
127
127
129
129
126
127
130
127
127
129
128
126
128
128
127
128
129
127
127
129
128
126
127
128
127
126
128
129
127
126
128
129
126
126
129
129
126
127
129
128
126
128
129
127
127
129
128
126
128
127
127
128
128
127
129
128
126
128
127
126
128
128
127
127
128
128
126
127
127
128
126
127
129
128
127
128
128
127
127
128
127
128
128
127
128
128
127
126
128
127
126
128
128
127
128
128
127
128
128
127
128
129
127
127
128
128
126
127
128
128
127
127
129
128
127
128
129
128
127
129
129
128
128
128
127
126
127
128
128
128
128
128
127
127
127
126
128
128
128
129
128
127
128
128
126
127
129
127
128
129
128
128
128
128
127
127
126
127
127
126
128
128
127
128
129
127
127
129
126
126
129
128
128
129
128
126
129
127
125
128
129
126
127
129
126
127
129
128
127
129
129
127
128
127
127
129
128
128
128
128
127
128
128
127
128
127
127
128
128
128
128
128
128
128
127
127
127
126
129
129
127
129
129
127
126
128
127
126
128
129
128
128
128
128
127
126
127
128
127
126
128
129
127
127
129
128
127
127
129
127
128
129
128
128
128
127
127
127
127
128
128
128
129
128
127
128
128
126
127
128
127
128
128
127
127
127
126
126
128
127
126
127
128
127
128
127
127
127
127
127
127
127
127
127
127
126
126
127
128
128
127
128
128
128
127
127
128
127
128
128
128
128
128
128
127
127
127
127
128
128
127
128
129
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
128
127
127
128
128
128
128
128
127
127
128
128
128
127
126
127
127
127
127
127
128
127
127
127
127
127
127
127
128
129
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
127
127
128
127
126
127
128
127
127
128
127
127
127
127
127
127
127
128
128
127
128
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
128
128
127
127
128
128
127
127
128
128
127
127
128
128
128
127
127
128
127
127
127
128
127
127
128
127
127
127
127
127
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
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
127
128
128
127
127
128
128
128
128
128
128
127
127
128
128
127
127
127
127
127
127
128
127
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
126
126
126
126
127
127
126
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
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
127
127
127
127
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
126
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
128
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
128
127
127
127
127
127
127
128
127
128
127
127
128
127
128
128
127
127
127
128
128
128
127
127
128
128
127
128
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
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
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
128
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
126
127
127
127
126
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
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
127
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
128
129
128
128
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
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
128
128
128
129
129
129
129
128
128
128
128
128
128
128
128
128
128
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
126
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
126
126
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
127
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
129
129
129
129
129
129
129
128
128
129
129
128
129
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
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
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
129
128
128
128
129
129
129
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
128
128
127
127
128
128
127
127
127
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
128
128
127
127
127
127
127
127
127
128
127
128
127
127
128
127
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
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
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
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
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
128
128
127
127
128
127
127
128
127
128
127
128
128
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
130
129
129
130
130
130
130
130
130
130
130
130
130
130
129
129
129
129
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
126
126
126
126
126
126
126
127
126
126
126
126
126
126
126
126
126
126
126
125
126
125
125
126
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
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
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
129
130
130
130
130
130
130
129
130
130
129
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
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
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
129
129
128
128
128
129
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
128
129
129
129
129
129
129
129
129
129
128
129
129
128
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
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
129
128
129
129
129
129
129
129
128
128
128
128
128
128
129
129
129
129
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
127
127
127
127
126
127
127
127
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
125
126
126
126
125
126
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
127
127
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
128
128
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
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
127
127
128
128
127
127
127
127
128
128
128
127
128
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
128
127
127
127
127
128
128
127
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
127
128
128
128
127
128
128
128
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
128
128
127
128
128
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
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
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
127
127
127
127
127
127
127
127
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
127
127
127
128
128
128
127
128
127
127
128
128
128
127
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
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
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
128
128
128
128
127
128
127
127
127
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
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
129
129
128
129
129
129
128
128
128
129
128
129
128
129
129
129
128
128
128
129
129
128
128
128
129
129
129
129
129
129
129
129
129
129
129
128
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
127
128
127
127
127
127
128
128
128
128
127
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
128
127
128
127
127
127
127
128
128
128
128
128
128
127
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
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
127
127
127
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
127
127
127
128
128
128
127
127
127
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
128
128
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
128
128
128
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
128
127
127
128
127
128
127
127
128
128
128
127
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
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
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
127
127
128
128
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
127
127
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
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
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
127
128
127
128
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
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
126
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
127
127
127
127
127
127
127
127
127
128
128
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
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
127
128
127
127
127
128
128
128
128
128
128
128
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
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
128
128
128
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
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
127
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
128
127
128
127
127
128
128
128
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
128
128
128
127
127
128
127
127
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
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
127
127
128
128
127
127
127
127
127
127
127
127
127
127
128
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
127
128
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
128
128
128
128
127
128
128
128
128
128
127
128
128
128
127
127
127
127
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
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
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
127
128
128
128
128
127
127
128
128
127
128
128
127
127
127
127
127
127
127
128
128
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
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
127
127
127
127
127
128
127
127
127
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
127
128
128
127
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
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
128
128
127
127
128
128
127
128
127
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
127
127
128
128
128
128
128
128
127
127
127
127
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
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
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
128
127
127
128
128
127
127
128
128
128
127
127
127
127
128
128
128
128
127
128
128
128
127
127
127
128
128
127
127
127
127
127
127
128
127
127
127
128
128
128
127
127
127
127
128
127
128
128
128
128
128
128
128
128
127
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
127
127
127
127
128
127
127
127
128
128
127
127
128
128
128
128
127
127
128
128
128
127
128
128
127
127
127
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
127
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
127
127
127
127
127
127
128
128
128
128
127
127
128
127
128
127
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
127
127
127
127
127
128
127
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
128
127
128
128
128
127
127
128
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
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
128
128
128
127
128
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
127
128
128
127
128
127
127
127
128
128
127
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
128
129
129
128
128
126
127
129
128
127
125
127
127
129
128
127
127
127
128
129
128
126
126
127
128
128
128
127
127
128
129
128
127
