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
