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
