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
