300000
23472
141
146
143
103
109
110
125
147
130
146
134
119
132
120
116
141
135
123
141
120
124
123
129
134
102
142
141
108
132
103
105
129
109
135
133
100
109
130
108
118
104
150
148
126
102
117
109
131
120
134
111
125
109
119
148
128
135
147
107
150
149
147
142
105
111
128
125
107
143
122
119
100
128
125
121
120
143
126
130
104
137
111
113
124
135
140
147
116
133
101
104
125
144
136
104
108
150
150
150
134
110
144
123
121
144
106
133
128
139
116
141
121
133
150
112
148
131
128
142
145
109
130
108
128
102
121
137
147
149
145
128
121
125
103
141
135
127
116
139
138
116
124
147
126
121
126
110
114
124
140
100
106
136
101
126
101
123
122
127
124
115
131
107
109
126
100
110
113
100
116
105
101
106
106
122
100
102
143
134
127
108
139
150
116
136
130
111
148
103
133
132
136
114
133
105
140
132
111
143
106
137
100
118
145
144
128
131
109
134
148
125
124
127
130
147
126
115
144
116
140
104
125
144
116
118
142
120
128
150
139
140
105
141
121
100
106
128
127
123
125
123
105
145
117
116
102
109
127
116
113
105
139
137
124
116
128
115
128
134
125
111
136
138
130
146
149
128
132
117
113
139
134
143
100
132
139
106
135
137
104
115
141
106
107
111
116
134
127
117
142
102
121
147
110
131
136
133
112
136
106
133
127
147
115
102
118
125
148
101
129
103
101
133
121
121
145
105
128
110
117
132
113
140
141
109
132
120
123
124
124
125
110
147
130
134
148
124
145
107
144
149
141
103
106
145
118
126
108
120
138
111
134
100
102
132
103
111
121
124
100
136
114
124
112
131
127
110
122
121
111
106
128
143
112
143
126
106
114
105
146
128
128
136
135
107
117
107
100
108
145
133
106
114
145
107
118
108
141
144
123
144
100
125
126
126
121
148
137
124
121
103
144
135
128
106
131
126
129
105
136
128
130
105
149
109
107
143
104
131
135
120
147
124
109
104
148
113
106
105
141
135
120
104
141
138
120
104
145
113
133
147
138
113
149
126
131
145
136
149
121
145
148
119
114
130
126
133
105
117
144
122
129
101
106
131
143
116
102
121
128
114
108
111
110
113
118
113
102
138
139
105
121
131
127
120
115
146
144
145
145
150
117
104
123
148
115
128
144
120
108
106
111
121
149
136
121
121
115
135
117
133
100
140
126
124
137
132
126
100
109
121
129
123
111
139
117
104
137
129
115
118
140
103
119
130
139
126
133
143
134
149
106
135
118
126
118
146
125
122
134
130
132
107
115
100
108
145
143
103
116
119
127
120
136
103
131
113
128
102
108
128
112
125
101
114
128
137
118
110
124
108
135
142
130
132
137
150
126
146
136
146
138
121
114
129
145
121
114
136
150
148
117
102
150
122
140
150
112
125
143
107
109
123
131
125
116
116
147
139
136
124
111
129
141
134
150
118
111
136
105
137
110
106
148
133
136
114
130
103
132
135
119
103
110
150
139
118
136
109
144
117
121
136
125
114
105
142
107
145
129
114
102
133
111
134
126
127
109
127
106
131
127
126
132
138
138
122
143
115
123
143
112
116
116
130
100
110
138
125
117
129
128
103
145
102
123
104
101
105
118
124
143
115
150
112
129
148
136
103
125
124
124
105
145
101
114
116
100
118
144
119
100
124
109
134
117
132
147
115
134
119
109
121
104
100
116
105
123
130
122
121
150
150
134
142
147
118
149
103
120
115
144
150
148
107
133
132
148
129
117
122
128
131
126
112
135
138
138
110
123
137
103
115
126
101
126
142
132
130
148
107
141
110
113
143
140
150
124
133
133
105
127
125
128
146
129
139
131
106
123
103
141
133
108
134
123
142
142
109
148
131
141
142
131
123
114
100
118
116
125
141
145
124
147
108
117
109
105
145
127
110
133
142
110
106
118
144
127
124
100
146
139
112
107
120
143
122
137
141
133
118
146
118
126
118
144
103
110
147
147
109
141
130
106
103
116
124
140
121
118
106
102
105
142
102
126
111
138
108
150
123
116
118
120
100
141
121
144
141
114
146
115
136
109
139
116
132
143
132
148
148
135
113
108
128
145
101
149
144
128
102
129
106
132
115
133
107
132
119
147
134
131
141
109
135
107
100
142
109
118
107
150
113
119
123
131
132
150
103
147
130
108
108
142
130
125
104
107
112
116
122
102
144
145
107
138
129
129
115
103
143
130
102
149
108
120
126
142
139
104
104
129
138
132
134
140
113
145
146
133
133
111
114
147
138
134
101
140
142
127
142
108
118
105
118
140
110
137
135
144
111
109
124
134
141
106
149
127
138
118
101
102
149
141
144
147
108
142
124
147
108
121
110
105
125
115
137
115
139
103
136
136
121
144
111
147
130
123
139
121
126
131
116
146
118
104
134
150
121
123
123
138
149
139
127
132
149
144
139
105
137
138
101
111
102
112
122
133
114
148
117
128
114
149
108
143
101
130
126
128
124
117
115
107
110
109
137
149
127
104
139
146
138
129
136
110
110
124
147
133
123
103
131
138
134
121
130
111
150
105
127
116
134
100
105
129
129
138
112
131
107
125
139
131
134
113
109
117
121
131
108
139
129
148
128
145
130
133
119
122
108
122
115
127
105
123
147
133
124
122
133
101
113
127
132
125
109
144
126
120
128
150
126
107
100
118
110
147
121
132
110
139
130
126
120
107
109
141
117
128
118
116
121
124
109
146
102
102
124
146
109
146
114
146
130
139
139
116
112
130
139
108
148
108
108
126
134
142
113
107
146
142
143
129
130
134
109
102
124
128
136
134
136
113
113
124
101
105
127
141
128
110
110
119
102
132
116
138
109
109
122
115
106
146
139
106
148
110
100
111
105
110
119
131
144
106
146
137
143
107
114
108
141
146
148
147
138
108
137
133
127
100
127
120
149
132
147
100
128
100
108
141
102
143
104
109
146
109
104
115
135
145
112
121
137
121
102
102
138
104
113
148
122
116
101
137
107
121
141
133
132
144
139
104
133
130
142
113
123
131
131
146
112
142
146
144
130
124
133
130
125
126
120
127
118
109
115
124
150
125
124
129
101
145
101
117
141
113
121
108
119
150
112
100
147
144
123
110
129
132
100
113
123
142
148
150
139
145
126
139
117
139
122
127
117
124
110
124
120
111
127
150
106
138
133
107
119
113
104
138
122
111
143
102
131
111
149
109
121
109
101
145
138
102
136
122
136
139
148
115
103
117
124
120
119
143
112
121
104
148
118
142
144
135
114
102
114
130
122
111
141
148
117
107
107
118
148
112
116
130
122
145
128
121
128
150
148
141
143
145
122
118
126
133
109
144
133
100
141
110
115
121
106
133
103
137
136
111
150
117
120
101
145
112
142
101
130
101
120
147
101
140
140
136
110
122
140
129
148
149
148
133
105
122
125
120
104
131
117
102
111
125
107
132
125
143
146
115
102
101
116
149
130
144
104
117
135
124
150
126
129
124
137
127
131
132
101
118
102
128
143
111
146
136
123
105
132
130
108
150
118
107
116
102
109
128
118
137
123
150
146
116
140
109
149
101
147
133
136
131
128
137
102
106
124
148
111
128
150
112
109
102
141
108
148
142
111
132
146
145
119
120
125
123
149
130
111
127
140
123
116
115
121
147
141
121
109
105
122
128
101
119
146
100
137
124
122
102
114
140
144
117
137
116
146
106
119
110
150
146
102
142
145
130
142
130
117
136
102
136
130
123
115
113
142
149
128
143
106
100
119
115
109
117
139
133
127
148
127
111
137
126
127
139
137
130
110
147
126
102
128
110
141
144
113
109
130
104
119
116
136
120
140
116
145
141
132
112
109
125
124
139
113
131
138
107
139
126
126
147
122
111
121
138
101
102
130
119
100
126
115
100
101
105
128
150
100
125
141
106
121
139
125
132
118
147
102
108
135
136
111
133
150
148
143
144
142
142
142
112
128
133
108
136
138
105
112
112
140
144
100
120
121
127
122
146
112
104
146
137
120
104
107
123
105
142
147
114
131
123
130
101
139
113
119
142
132
146
137
135
137
106
127
139
120
119
147
115
123
140
137
108
147
120
128
142
110
114
108
149
104
131
133
113
105
113
112
145
135
104
144
144
111
127
150
129
150
120
102
146
141
111
106
132
103
138
107
117
106
134
122
119
139
104
126
117
113
125
132
130
140
132
132
123
126
122
133
149
114
126
104
119
149
142
135
150
100
103
132
104
138
112
136
130
124
144
135
130
144
136
133
128
145
120
100
126
103
124
102
112
109
142
116
113
128
111
119
103
103
150
122
141
143
107
110
100
121
147
128
108
106
147
104
140
122
147
132
103
121
123
135
112
105
138
129
109
140
103
113
123
105
115
142
144
119
123
136
113
129
102
114
119
104
124
140
104
109
145
100
133
144
103
135
139
146
148
120
142
115
149
126
126
120
106
112
137
101
118
147
126
112
115
121
146
150
135
147
128
147
138
117
123
106
109
140
141
128
142
142
125
142
101
134
126
139
134
120
147
143
118
124
144
124
114
132
147
119
121
138
107
138
133
115
129
146
150
119
105
107
142
150
103
110
136
104
103
135
144
144
132
129
107
144
149
133
126
144
147
126
140
149
135
144
113
133
107
149
134
128
130
113
121
132
138
107
142
142
149
100
150
113
122
120
150
132
150
109
117
119
111
138
107
124
102
106
115
111
104
115
127
121
137
146
135
146
148
146
136
106
100
115
100
114
148
106
139
102
107
143
110
108
104
140
107
143
139
118
119
128
120
138
127
107
126
126
112
116
128
135
128
141
109
115
137
133
114
109
127
118
110
119
123
136
122
126
147
146
109
142
141
109
100
129
147
105
106
148
141
148
116
146
108
111
140
146
126
133
138
103
135
135
142
126
114
102
140
104
125
108
144
127
148
105
120
130
109
121
135
149
150
147
110
139
149
115
101
117
109
113
125
101
142
146
106
126
121
115
136
132
112
119
105
103
104
117
138
115
125
148
126
122
108
129
138
104
133
150
117
115
132
133
145
115
101
134
127
101
127
123
126
143
133
126
126
147
126
116
107
100
109
136
129
142
143
119
121
127
141
143
147
145
106
102
110
107
139
129
105
115
103
133
149
145
101
126
109
137
147
146
121
122
131
148
126
124
145
104
102
108
109
149
145
143
111
140
114
107
102
110
124
149
119
107
117
147
103
124
134
150
111
148
146
144
130
112
144
129
129
109
131
109
110
133
127
112
102
136
139
106
123
125
111
104
114
113
117
149
119
142
147
114
119
134
131
115
132
131
108
102
130
148
141
103
124
118
121
124
124
122
123
137
121
100
130
107
105
111
120
136
120
134
142
125
119
133
144
124
138
105
119
138
140
120
115
131
135
122
124
146
114
109
131
125
121
144
120
102
135
112
120
140
132
119
101
147
122
104
146
133
135
131
142
109
122
117
140
107
139
104
117
116
134
118
101
109
123
111
139
115
123
100
135
127
144
130
139
146
135
149
142
130
112
126
137
119
112
136
113
102
142
103
115
108
119
117
100
113
126
146
116
146
145
107
109
100
116
109
138
121
111
117
140
117
113
119
120
109
117
110
133
110
142
142
103
129
101
131
124
115
129
124
127
142
106
117
105
135
102
101
100
130
121
115
131
138
122
125
146
134
149
102
106
139
105
134
124
101
125
114
136
116
141
150
121
113
118
124
137
125
121
134
141
142
123
125
124
135
114
101
129
129
113
126
129
104
126
143
129
145
112
138
124
123
114
118
134
117
124
130
103
105
143
125
137
113
119
104
123
108
141
119
115
131
112
118
110
129
109
147
107
112
128
116
150
144
143
137
143
133
123
110
144
127
131
107
103
134
135
127
102
122
122
141
137
105
108
105
141
144
125
114
109
141
107
121
138
125
148
144
104
100
123
119
146
146
139
147
123
129
125
126
109
109
129
136
121
120
121
128
149
115
103
128
113
115
140
148
150
146
136
117
132
129
109
147
122
135
116
104
100
123
135
120
101
111
100
109
124
120
128
130
146
135
133
134
139
103
145
123
138
122
126
128
128
150
150
109
134
124
150
123
142
141
119
102
149
100
145
129
136
111
116
103
130
146
136
114
107
109
140
131
127
120
131
129
114
142
115
116
122
133
133
150
116
147
123
138
115
148
150
129
140
110
106
105
109
115
147
124
123
115
144
104
143
136
123
138
105
126
104
146
132
120
145
113
144
111
137
140
105
145
134
135
105
132
109
123
131
146
140
130
123
141
109
124
135
104
128
114
144
137
141
122
147
119
136
113
105
127
137
137
117
147
131
135
112
142
133
145
132
126
105
150
124
122
116
117
105
144
118
127
117
150
127
109
104
102
122
132
134
121
112
141
129
125
104
125
122
121
136
140
139
101
132
148
117
114
126
140
119
148
142
107
114
142
104
144
148
111
114
141
133
118
142
102
100
125
109
100
121
129
142
111
129
103
142
125
131
117
115
102
139
139
101
102
150
144
115
137
124
142
121
103
144
124
100
109
130
101
102
101
144
138
125
148
148
127
114
113
114
139
129
129
134
133
119
118
104
139
139
121
129
138
120
116
145
137
144
120
149
124
149
144
127
101
145
145
122
143
130
146
143
141
102
145
140
100
118
120
133
150
146
145
118
104
105
128
124
104
117
134
145
113
127
109
101
119
112
111
108
130
100
123
148
101
132
109
135
142
150
111
100
134
140
145
113
137
142
121
101
103
145
119
134
120
135
132
148
108
139
112
103
147
109
114
104
126
117
138
132
113
109
128
106
138
106
133
100
130
107
147
138
121
100
150
100
141
142
123
102
120
140
125
144
142
117
102
111
141
126
109
125
113
149
133
126
128
132
105
103
105
139
142
132
133
120
103
109
143
111
107
150
118
146
125
141
131
136
105
146
115
127
149
127
128
121
129
108
135
103
109
145
108
132
127
110
103
107
108
118
131
102
119
135
142
141
150
134
146
136
128
150
117
123
112
123
121
129
139
135
105
122
120
107
136
110
142
103
113
101
114
138
148
140
130
119
144
135
101
102
110
121
108
135
115
131
147
147
118
106
117
139
141
131
115
132
146
110
107
110
104
114
106
114
115
107
148
125
105
147
136
116
122
137
119
112
147
129
135
113
117
148
120
146
103
103
117
145
107
140
149
114
108
126
119
124
115
119
134
134
124
127
118
125
113
150
148
106
128
104
106
127
104
147
146
108
150
118
147
116
105
135
145
140
109
128
112
138
149
108
149
108
113
109
100
111
112
133
142
106
107
121
112
150
125
138
116
123
136
147
130
130
130
150
145
128
121
104
110
133
144
142
139
126
113
148
112
129
134
149
118
121
139
110
145
109
143
142
124
136
132
133
115
102
132
108
105
100
126
150
140
118
143
105
132
121
120
125
107
134
149
112
140
146
112
108
112
129
121
143
149
132
122
148
140
116
125
133
143
131
142
105
111
127
134
117
141
144
100
127
124
147
107
124
120
110
116
134
141
122
144
142
105
141
134
120
106
104
137
115
140
120
111
141
129
133
111
137
104
138
124
114
136
108
138
137
104
136
128
123
105
121
136
140
127
148
129
122
135
120
107
100
135
145
143
114
135
132
112
144
112
143
134
137
133
123
150
141
126
150
108
104
134
134
120
129
144
123
102
142
130
109
131
130
143
134
144
134
113
139
148
119
143
125
127
137
123
138
119
136
141
110
106
144
122
131
102
133
143
126
132
145
115
120
101
144
108
128
137
129
102
105
114
123
131
142
132
100
134
135
122
143
132
114
106
141
109
106
117
134
114
118
148
149
111
143
121
129
141
150
113
109
114
139
104
122
102
135
116
129
142
137
144
124
123
132
123
146
105
149
145
140
114
129
123
107
135
126
140
145
133
127
118
127
114
142
116
138
140
102
117
149
119
128
103
101
110
137
130
118
150
132
100
129
116
144
105
112
110
105
108
134
109
113
107
111
112
146
135
118
133
104
131
113
136
111
142
132
102
110
116
113
134
121
137
122
113
125
130
145
102
113
112
135
134
113
100
132
105
126
149
134
143
145
115
134
110
149
149
121
100
131
148
141
142
145
121
135
150
116
135
109
145
146
119
113
150
136
137
145
111
130
130
124
121
109
138
144
131
101
111
132
120
146
111
108
134
133
101
135
103
109
118
132
105
128
104
109
124
120
149
112
106
106
149
134
124
114
103
105
131
144
147
123
122
108
107
104
115
148
118
126
105
128
145
140
124
104
119
137
100
124
112
102
149
130
129
134
145
124
133
125
109
128
104
138
107
136
103
138
118
149
138
119
127
140
117
115
146
137
135
123
136
120
101
136
109
106
138
130
104
136
118
111
103
126
110
141
128
114
140
106
105
138
148
121
109
135
127
123
137
108
105
141
142
120
129
148
140
109
118
102
128
113
127
104
134
146
123
137
108
149
140
109
109
102
103
140
130
115
137
134
134
140
129
120
112
150
147
109
117
108
103
138
102
147
117
102
101
119
106
138
134
110
126
112
110
145
141
107
146
118
125
130
120
122
130
118
150
121
109
126
132
126
149
113
132
129
139
146
131
126
121
131
118
126
114
144
136
129
130
144
113
105
133
130
133
109
144
119
134
143
125
113
122
135
119
101
104
128
103
131
140
131
102
147
128
119
142
109
140
120
128
138
140
108
126
141
132
106
135
148
139
123
145
119
107
108
127
125
150
118
143
135
133
100
135
131
145
140
117
136
104
115
119
124
141
139
132
132
113
121
105
104
142
128
122
113
115
139
141
107
131
136
124
116
143
106
133
146
117
147
135
116
108
136
132
120
120
135
115
138
114
103
135
122
126
139
133
113
101
133
147
150
136
129
119
145
121
131
125
135
105
131
110
107
100
143
118
104
109
145
111
108
113
101
126
119
103
119
109
101
104
149
135
103
122
118
149
149
136
123
114
132
100
138
131
115
123
137
102
100
136
115
136
131
149
139
115
138
138
124
128
136
148
137
111
142
107
105
120
100
105
135
144
131
103
108
120
106
147
131
131
134
117
127
112
135
127
139
119
147
126
121
116
146
113
148
137
102
150
125
138
126
113
100
142
118
120
139
126
147
115
129
101
144
135
111
100
109
130
141
129
114
110
103
112
122
147
138
107
109
139
109
136
105
127
125
140
120
140
145
150
146
118
135
105
130
117
150
109
135
132
132
107
147
103
141
122
121
109
128
123
110
101
150
113
141
110
135
122
138
132
111
132
141
111
114
119
100
116
112
144
127
143
104
102
139
111
145
144
133
108
104
142
143
106
124
110
147
132
147
109
102
100
142
102
140
117
107
105
147
102
140
107
137
138
105
133
117
122
126
129
118
115
138
126
144
116
119
131
129
132
120
133
106
140
133
149
144
131
122
149
100
122
127
118
122
111
101
100
107
148
140
103
108
110
139
119
138
139
116
103
110
132
150
120
136
129
114
143
132
122
108
138
147
148
143
149
150
147
119
118
144
147
141
146
142
150
145
117
145
101
125
111
123
120
143
111
136
149
132
126
131
120
131
143
135
125
148
106
113
148
100
117
127
131
140
111
125
144
140
124
110
149
127
124
146
138
116
121
115
126
113
149
118
124
126
136
130
103
136
147
134
124
128
116
101
107
138
102
127
125
143
143
138
104
150
135
133
139
148
109
139
122
140
131
131
113
131
127
106
112
142
111
130
136
121
101
119
119
106
140
113
114
117
109
112
149
143
146
116
144
122
126
112
136
127
112
137
115
100
150
103
127
140
110
115
113
125
137
140
128
101
112
100
129
108
136
105
122
137
131
142
130
139
142
127
140
115
133
119
123
116
111
132
107
120
127
120
113
141
115
136
146
128
136
123
123
144
117
150
147
104
103
134
134
101
145
122
111
140
134
132
137
109
115
114
140
105
138
114
147
109
108
126
103
105
104
140
107
117
121
107
129
106
130
121
135
133
100
104
118
141
145
105
143
131
147
124
113
112
114
124
100
130
142
148
149
109
123
132
110
135
125
145
123
138
100
114
110
141
141
114
106
120
101
149
106
128
134
133
145
106
126
130
100
100
112
136
105
142
127
142
135
115
107
147
105
132
122
140
118
102
147
127
109
100
142
144
103
149
149
134
133
108
113
113
115
130
133
105
108
129
114
123
144
135
131
138
110
148
143
128
120
111
114
141
135
144
104
117
125
125
103
101
121
110
130
125
111
116
139
115
130
119
110
117
133
144
110
121
148
150
120
143
120
112
130
132
105
148
137
102
134
109
139
145
111
144
130
104
141
148
106
128
147
135
150
129
101
133
118
138
135
115
128
147
108
100
114
124
122
141
150
108
148
139
135
100
104
143
106
100
127
143
106
132
115
100
110
105
127
123
134
106
137
120
128
121
121
101
149
114
127
141
143
116
130
130
135
150
125
143
111
112
149
140
131
113
149
147
144
149
149
144
145
135
113
128
124
148
111
102
106
102
149
111
111
126
149
131
147
115
146
115
141
140
105
131
150
121
126
119
134
150
134
121
147
146
135
147
119
131
132
134
107
116
115
119
131
115
101
136
126
113
116
104
144
120
111
131
106
107
144
134
143
103
105
130
149
113
100
141
143
102
127
144
106
111
122
106
106
130
126
128
118
135
100
122
123
126
101
105
137
105
107
148
121
150
149
145
138
139
120
105
116
148
118
113
133
113
129
136
136
113
107
130
128
107
136
104
113
129
109
128
139
104
124
133
129
144
111
116
150
131
127
115
129
122
142
105
129
135
126
105
140
114
115
117
122
134
128
120
116
122
110
146
112
150
106
130
109
102
149
144
148
126
137
101
106
146
132
101
126
147
106
139
117
106
143
136
143
136
145
138
123
108
106
126
115
104
109
109
139
109
111
139
144
140
106
118
122
103
137
135
111
149
134
113
135
142
149
143
141
131
118
100
143
146
135
131
127
142
142
142
122
138
116
148
111
113
102
103
137
123
147
145
112
144
118
143
136
142
127
134
105
109
121
116
137
110
116
111
102
120
149
143
135
110
126
135
120
131
138
104
112
139
131
139
121
140
140
148
143
136
128
115
110
114
126
132
138
144
144
113
123
114
109
101
124
103
106
123
105
114
117
121
111
112
148
127
106
139
144
127
101
129
133
112
104
131
143
118
105
111
119
132
145
132
129
150
113
118
100
126
131
113
131
122
136
126
124
103
148
106
118
124
143
128
131
100
147
131
135
124
130
126
103
119
147
110
140
121
127
133
106
101
102
145
127
148
128
116
137
109
126
106
141
113
107
128
118
143
112
111
113
101
106
133
116
139
123
150
115
125
128
130
143
134
132
128
133
133
116
109
149
144
143
120
137
106
100
109
115
136
134
100
136
108
102
102
119
116
148
118
144
108
126
140
115
130
105
122
134
123
140
113
131
124
116
114
150
130
119
115
135
145
124
136
108
139
126
147
129
136
137
131
112
138
118
109
104
121
117
134
125
108
128
137
104
120
129
135
125
102
116
143
111
136
134
149
121
141
135
105
111
150
106
149
108
106
119
108
146
128
115
124
109
147
126
123
104
122
131
103
110
127
119
113
122
146
101
150
131
119
139
138
126
141
130
110
124
102
122
103
135
110
111
137
140
135
148
132
149
122
123
112
112
104
121
105
120
119
108
125
126
109
105
111
138
144
142
131
124
149
105
143
131
127
126
127
146
145
113
105
101
107
115
150
100
125
137
145
136
136
115
107
124
147
103
118
146
123
107
150
107
114
110
144
121
149
148
112
138
150
128
114
139
145
135
145
118
122
105
105
140
127
150
129
141
136
146
106
132
105
128
134
120
142
121
121
147
118
103
148
135
125
117
136
138
122
124
100
137
124
128
119
124
115
108
148
143
125
124
127
147
123
126
128
107
136
143
111
109
136
148
121
113
132
138
111
113
138
103
114
114
132
131
143
147
111
132
114
107
118
150
142
146
135
142
143
110
115
125
110
134
105
125
150
130
130
120
113
131
141
147
108
131
134
139
108
141
109
100
130
100
125
143
110
115
106
144
114
109
112
136
121
127
148
138
148
139
149
127
112
120
145
103
107
149
127
149
139
114
116
111
124
150
117
147
133
117
145
139
144
136
128
114
100
125
111
139
144
136
130
124
131
135
121
108
124
124
146
132
113
116
131
139
144
128
103
132
130
125
118
104
138
131
130
134
116
146
107
117
122
102
113
123
124
111
140
105
136
143
127
122
128
111
106
134
114
108
112
122
111
103
130
140
117
119
115
104
143
131
118
142
107
137
113
150
117
108
135
110
120
133
131
131
102
130
132
139
114
134
107
148
131
137
100
120
146
110
115
111
101
141
118
129
129
145
117
139
128
136
124
130
113
132
143
135
109
122
132
100
122
128
125
101
105
114
101
118
130
130
106
110
114
109
138
131
126
146
117
114
115
115
127
117
121
122
142
108
123
140
103
146
119
123
108
116
142
142
107
120
141
116
125
136
120
111
123
126
111
105
148
103
133
115
133
102
134
123
117
120
145
115
123
140
149
105
142
134
130
149
117
150
121
117
104
102
141
135
117
113
120
117
131
125
119
103
142
107
110
134
102
122
144
150
114
143
106
100
112
121
125
102
113
147
128
146
143
105
122
135
147
100
118
123
115
132
115
131
141
127
120
125
136
135
123
150
113
105
150
122
142
111
106
125
128
112
128
142
146
138
107
105
144
123
100
118
137
149
112
139
115
129
107
128
102
115
133
120
122
145
102
149
116
127
116
102
141
136
107
122
150
122
109
147
150
108
122
146
123
122
107
135
127
141
135
137
124
130
124
129
100
144
148
147
116
119
140
104
101
126
132
124
142
148
139
103
135
144
137
145
131
135
140
127
134
107
127
146
139
137
136
101
128
122
114
139
150
104
115
132
100
134
116
101
111
146
111
128
126
116
127
141
137
109
130
123
104
131
112
124
123
133
141
148
106
120
132
105
103
116
148
100
123
109
129
131
100
127
149
110
113
135
144
134
118
124
108
137
150
140
124
111
101
102
120
107
125
132
149
105
143
140
108
146
112
138
105
141
110
128
121
130
149
139
101
146
147
100
138
111
112
104
142
117
101
128
133
130
147
130
119
100
144
148
128
122
135
111
134
115
131
119
105
131
128
148
141
145
104
140
102
100
145
143
144
139
108
139
136
105
109
129
134
144
110
102
149
139
106
118
115
135
121
127
106
144
130
146
121
113
143
142
119
116
131
114
129
145
136
107
114
144
135
109
138
144
107
136
130
146
126
105
140
144
100
136
145
124
118
134
129
100
103
125
115
105
134
131
120
140
148
143
150
111
123
108
120
137
101
113
114
112
106
132
101
100
103
133
109
114
150
109
116
129
116
116
126
125
123
140
115
100
119
138
117
145
137
110
141
133
109
105
125
143
106
129
104
144
101
106
101
109
124
123
130
142
131
102
130
136
121
105
117
146
126
146
120
137
126
130
110
149
149
122
131
142
118
100
137
102
113
142
144
126
110
131
149
110
147
124
113
135
105
130
111
117
150
117
137
132
130
129
140
102
150
117
120
116
139
149
132
121
102
137
104
139
137
100
132
100
135
128
140
145
108
142
148
130
126
111
115
145
150
147
108
140
132
145
112
129
148
139
124
118
117
145
135
146
145
120
127
146
146
116
103
137
147
120
123
135
124
138
116
105
106
130
102
109
116
126
115
112
144
103
140
146
146
116
127
142
121
118
116
114
100
101
110
134
119
116
140
138
137
132
102
114
105
120
109
120
117
123
123
129
133
146
119
109
132
114
128
102
116
108
118
127
101
135
116
118
110
109
117
117
146
128
100
134
118
147
143
148
110
150
105
125
100
111
126
125
110
121
110
129
129
132
136
143
139
115
121
116
145
109
100
124
104
119
104
131
130
134
150
101
122
102
132
124
146
141
104
147
128
104
137
119
138
122
124
124
135
116
121
104
138
118
146
143
124
122
106
147
107
123
139
146
116
146
129
143
137
127
132
111
128
128
109
105
109
127
135
142
107
104
136
110
102
117
117
122
148
136
149
114
102
147
149
114
104
130
107
149
135
123
142
139
108
104
121
123
101
101
132
135
133
115
149
103
150
104
117
142
149
122
118
140
126
139
109
144
137
116
122
136
138
108
115
134
129
132
103
110
134
125
135
115
136
101
102
136
147
117
109
140
121
149
114
122
105
145
117
122
109
112
142
139
144
118
141
126
150
120
142
147
118
141
127
144
144
141
115
135
120
128
133
107
126
127
116
136
149
146
112
131
149
116
111
124
132
136
101
115
146
125
149
116
120
109
145
106
109
104
145
146
113
118
147
145
144
119
144
136
102
129
131
125
144
136
101
116
139
127
123
121
146
118
132
147
135
118
109
110
149
100
115
140
141
107
125
127
111
131
138
120
126
104
116
131
130
127
135
147
131
116
122
147
125
147
105
133
143
129
136
109
128
144
143
137
146
112
104
120
120
103
121
134
133
134
107
139
143
134
117
145
117
105
149
138
128
122
109
144
106
145
139
141
139
123
104
138
133
102
103
120
116
118
144
116
144
135
109
105
123
105
139
143
132
145
150
113
115
129
128
118
121
134
109
147
109
105
140
142
124
140
125
115
116
147
106
111
137
124
115
107
148
138
150
133
142
127
124
143
105
140
112
131
130
115
118
110
101
107
140
130
118
149
103
110
148
143
111
138
133
113
107
125
129
132
139
108
116
143
127
108
139
134
105
142
145
138
139
147
106
146
136
105
101
127
136
112
108
148
145
137
104
131
115
100
119
143
110
126
119
126
113
126
145
122
125
120
128
139
149
103
142
115
147
124
102
104
150
129
100
144
146
120
115
135
127
112
106
107
133
115
118
127
138
147
126
107
111
139
143
148
148
104
120
148
129
111
103
136
122
136
102
119
137
143
138
127
129
134
145
140
118
123
143
125
107
140
118
106
147
145
119
150
128
146
149
109
115
116
127
107
142
149
117
133
131
113
102
150
126
146
149
143
119
132
134
146
122
137
144
134
106
112
125
108
141
127
136
144
100
122
147
120
132
140
143
109
139
115
120
109
116
127
118
143
108
124
132
141
122
101
103
141
111
140
112
107
141
102
128
149
138
105
117
150
148
119
136
145
131
127
134
113
121
121
104
128
102
103
150
102
114
114
139
102
105
115
120
123
118
102
119
143
116
144
122
109
113
149
145
130
122
121
106
135
139
115
137
113
131
145
142
115
109
102
142
102
115
107
120
116
142
132
135
122
115
117
123
144
109
120
114
119
102
137
105
133
137
113
111
121
145
133
120
131
140
147
132
144
139
122
143
132
116
134
118
109
123
150
109
125
105
131
116
138
134
112
137
133
118
122
138
144
111
145
111
117
113
143
145
121
150
136
112
112
142
113
121
133
102
102
125
122
125
134
143
108
130
111
148
107
113
129
127
132
111
101
106
108
120
127
103
114
129
148
123
150
116
121
140
106
142
139
118
133
135
135
126
123
141
136
138
143
111
129
112
126
116
131
138
115
123
102
147
132
116
125
140
123
121
117
129
138
109
146
145
108
136
103
126
123
105
133
121
136
112
104
107
138
135
113
138
142
107
123
122
145
149
130
118
127
144
106
149
136
122
144
139
142
101
143
116
109
104
109
118
125
113
135
102
145
136
101
135
101
137
118
148
132
121
148
129
137
105
146
144
122
106
132
129
126
124
127
113
104
126
120
126
118
144
115
145
136
120
100
143
146
120
131
111
110
101
113
122
104
110
147
101
141
100
150
150
145
108
121
129
150
142
113
116
141
138
144
104
103
121
130
123
117
128
139
127
102
127
133
142
131
142
109
135
102
135
116
133
140
114
124
116
126
112
124
139
103
132
147
109
149
150
132
119
134
150
105
149
140
145
144
140
110
134
117
104
141
143
118
126
107
107
114
111
138
133
124
103
132
137
105
127
114
115
101
150
133
102
114
124
149
141
138
135
127
138
139
142
114
127
124
135
149
128
116
124
112
109
144
108
102
100
111
150
134
125
102
131
145
102
135
117
129
112
137
140
150
113
149
146
114
109
142
114
118
121
127
148
122
119
102
116
106
115
146
103
105
126
109
138
108
142
142
112
136
123
127
124
102
122
147
100
150
106
112
108
111
104
134
137
149
129
139
105
150
110
101
100
105
107
110
140
140
119
104
142
106
114
135
108
116
111
146
105
100
118
107
126
116
100
113
134
128
127
114
104
129
142
143
121
125
115
131
146
116
108
138
147
114
136
100
118
114
126
119
122
136
143
131
102
106
138
131
143
133
109
101
129
148
123
103
141
131
150
131
109
140
134
134
130
113
134
144
122
119
144
132
126
146
145
111
124
104
132
141
145
129
101
122
146
150
149
115
139
113
113
131
134
136
123
100
123
121
120
135
137
118
129
126
129
134
113
148
144
122
112
108
138
133
115
108
120
150
130
108
142
113
100
102
112
141
150
131
118
106
110
123
110
111
144
132
142
110
143
133
131
113
134
142
144
135
114
150
107
105
130
146
130
137
146
102
130
117
102
141
114
143
127
102
135
108
122
120
142
128
124
146
113
146
103
113
117
117
115
105
134
136
106
137
136
100
117
120
135
134
115
112
100
120
143
108
138
123
148
107
135
109
137
143
100
128
150
119
141
132
116
138
124
107
106
126
142
132
133
107
132
106
104
108
111
150
136
122
134
149
102
106
136
113
106
107
131
119
122
125
129
128
144
124
136
110
120
141
102
133
112
129
145
137
109
150
112
114
120
116
137
126
117
125
120
132
131
111
143
139
109
107
137
146
129
143
119
137
131
139
119
124
132
132
143
104
102
141
132
100
124
146
104
119
115
111
112
121
100
108
122
100
128
146
107
100
141
149
136
117
130
112
102
116
131
105
145
123
109
121
100
148
131
108
122
110
134
126
121
144
136
127
102
106
135
141
122
130
108
106
150
139
148
122
130
128
121
114
135
100
142
145
117
118
141
138
118
145
114
132
114
100
117
108
136
118
116
141
112
145
123
100
103
117
106
102
123
122
132
117
150
116
133
100
114
105
133
126
111
135
142
110
194
146
159
168
154
143
175
184
168
199
192
163
165
172
186
153
172
152
192
145
191
157
152
190
141
159
146
161
182
140
192
161
167
193
192
150
181
147
197
150
174
185
174
149
148
195
173
172
189
166
184
167
154
167
195
189
141
170
189
182
173
145
165
182
180
197
166
156
178
149
187
188
156
175
174
159
180
153
181
175
145
153
159
182
167
199
159
175
164
147
194
164
192
146
166
170
197
157
193
190
182
197
141
150
194
151
146
168
199
189
178
155
172
170
173
177
196
166
188
198
156
159
150
164
194
193
195
148
196
163
144
161
161
167
142
154
174
157
197
186
175
158
199
183
186
182
143
154
197
144
182
146
190
171
169
170
166
190
140
165
167
154
175
143
182
187
184
188
198
155
167
198
145
155
168
166
143
157
178
152
157
157
174
151
164
189
180
171
170
185
151
163
194
167
182
160
166
142
199
200
177
196
191
144
155
164
172
180
197
191
190
142
192
196
199
159
155
191
161
152
146
148
164
188
188
173
169
158
171
190
147
172
180
200
200
160
183
167
167
167
195
176
176
178
172
152
198
196
179
185
193
156
155
141
153
140
174
159
174
165
143
155
188
177
156
178
146
190
163
141
178
165
189
191
197
150
157
164
166
198
178
177
171
191
195
157
193
171
187
152
175
185
165
141
184
189
156
173
167
141
173
172
174
174
193
187
182
186
177
154
188
200
148
169
198
166
164
158
156
141
165
190
142
173
198
150
143
170
185
151
163
166
162
145
154
161
170
191
169
176
193
154
194
151
190
148
168
166
168
158
192
200
165
184
191
141
144
155
171
163
175
174
199
198
160
163
190
174
147
195
170
149
154
153
144
178
145
200
182
179
140
199
176
176
182
143
164
156
176
173
144
172
141
160
175
156
198
160
141
158
153
140
171
163
184
159
156
144
143
179
182
182
175
182
189
176
151
159
151
151
175
193
177
164
165
144
196
142
171
146
178
147
190
169
140
174
144
196
184
194
172
158
159
165
142
155
187
166
151
173
148
200
166
156
185
163
175
145
178
149
147
189
184
197
148
192
156
180
164
142
163
157
194
146
188
146
176
195
188
197
149
151
153
151
174
141
155
180
180
177
188
187
179
151
157
167
160
167
167
161
198
191
197
192
158
160
189
179
178
141
167
175
166
156
196
181
155
140
197
143
178
149
143
169
198
164
144
194
195
158
150
199
172
162
175
166
170
164
190
176
140
149
176
162
169
182
146
197
143
150
173
178
195
157
198
196
153
186
157
179
186
196
166
191
194
176
179
153
196
175
177
165
148
179
177
143
160
180
180
159
158
147
154
147
142
199
177
194
166
161
152
149
158
177
165
161
142
173
176
199
185
198
161
199
180
184
148
150
155
196
158
190
176
161
170
196
161
196
184
140
197
181
188
163
199
158
178
183
162
184
143
147
183
187
191
183
176
191
164
158
178
174
171
170
188
142
159
163
174
171
194
157
153
169
165
144
185
199
183
170
184
194
150
158
170
140
143
152
168
195
177
149
149
168
168
183
155
192
168
149
170
197
147
191
179
144
140
148
161
193
194
170
159
188
146
140
165
171
148
146
181
176
161
140
163
157
146
189
193
152
195
147
179
140
200
161
178
147
192
196
150
147
190
189
169
168
188
184
180
155
173
150
182
158
194
185
160
148
152
176
183
160
173
163
143
183
185
162
172
148
182
195
195
199
146
189
165
162
190
163
160
150
187
165
142
186
158
169
167
178
167
173
148
158
141
182
185
191
143
183
152
144
154
192
153
191
166
184
186
148
167
187
168
145
140
197
170
182
183
179
196
195
193
166
141
167
195
145
179
160
184
191
145
186
158
175
187
179
153
196
145
154
140
177
148
161
174
179
168
162
169
176
143
194
145
200
182
174
190
189
144
168
146
179
197
173
155
160
158
195
184
181
140
145
161
193
172
157
151
153
159
162
148
199
142
165
172
187
198
148
141
173
184
200
175
194
160
171
187
173
161
179
141
199
188
154
166
195
200
185
141
163
151
199
169
145
142
186
144
154
183
189
200
144
140
197
161
196
180
155
173
154
188
164
151
169
142
191
168
187
153
151
187
196
166
198
172
186
157
200
173
192
188
149
154
189
149
181
193
186
185
199
178
140
142
161
160
180
142
168
179
187
149
187
150
184
190
195
163
169
181
173
155
167
161
173
169
157
184
150
149
177
153
154
146
159
144
176
145
148
159
189
180
159
167
162
176
172
156
197
149
155
178
145
175
194
168
161
189
147
164
185
177
198
166
197
171
182
151
173
179
154
179
149
143
154
152
158
179
196
140
194
179
157
195
200
195
175
158
163
143
145
180
155
159
199
143
140
150
145
180
159
166
167
172
164
199
189
162
197
140
184
199
155
153
165
142
167
157
167
166
160
176
188
187
166
168
200
152
178
173
147
189
160
158
163
185
196
188
150
185
157
183
145
148
144
163
146
195
162
162
186
191
193
198
149
151
185
143
150
160
165
175
170
157
196
164
180
187
164
176
181
146
148
192
175
192
192
166
141
165
170
152
176
198
169
145
185
186
166
152
189
180
193
192
161
181
148
161
148
144
179
191
182
169
171
156
198
193
177
141
197
178
169
173
196
161
196
158
191
144
147
161
167
160
178
189
189
150
178
159
143
153
150
165
194
152
174
140
158
190
169
193
164
140
158
176
156
184
184
141
161
172
173
152
162
148
176
188
155
191
166
166
183
197
172
187
164
144
162
181
172
154
194
192
193
148
179
166
152
156
194
142
163
142
191
185
170
189
149
152
144
189
159
199
187
150
149
145
185
175
193
168
164
184
141
184
164
167
157
143
170
160
190
171
194
190
146
176
168
144
174
171
146
195
181
188
169
179
152
200
173
145
163
145
190
197
140
165
183
159
186
191
182
181
186
140
177
154
147
189
181
159
193
143
155
169
144
182
151
188
191
150
148
199
141
182
175
143
160
156
148
160
142
183
179
194
190
174
170
177
187
192
199
184
150
154
144
171
153
153
189
152
184
166
180
190
140
149
177
154
196
155
180
147
159
183
179
159
150
150
147
142
180
200
175
165
188
199
171
200
198
188
193
153
167
172
166
187
192
188
180
149
178
154
140
141
195
172
196
161
158
155
177
154
194
198
181
180
153
193
182
171
156
193
147
141
175
190
172
169
160
154
145
184
149
153
188
155
156
200
157
142
190
177
191
158
169
140
147
156
160
181
169
145
167
159
140
149
186
166
183
173
162
188
172
197
166
149
168
159
140
181
151
153
148
154
188
186
147
144
185
161
163
147
163
168
170
168
169
169
194
159
184
182
185
147
175
194
178
150
189
175
151
190
152
194
168
178
163
147
198
179
146
181
142
169
168
159
157
186
148
147
192
185
178
197
171
196
155
198
177
171
196
154
180
193
186
198
165
199
162
147
145
174
169
187
161
153
199
200
157
193
195
170
150
190
188
194
181
166
160
193
178
169
177
168
156
171
197
175
150
194
182
152
157
159
164
178
188
157
178
163
194
184
187
200
143
160
181
142
150
190
187
156
183
151
174
184
176
168
158
176
168
149
148
183
200
181
180
141
151
198
147
147
159
167
191
171
181
178
178
193
152
153
146
151
173
167
195
177
159
182
159
175
161
171
145
178
183
181
166
168
174
192
168
199
153
175
152
152
173
140
141
159
141
188
154
177
190
177
162
173
151
151
161
144
180
200
196
166
192
184
158
185
154
173
189
173
182
171
164
179
155
184
182
198
195
161
199
165
189
143
188
150
178
158
161
168
148
146
149
146
192
153
153
161
173
185
180
152
151
162
187
158
159
142
185
152
179
147
173
147
189
144
180
182
183
198
160
141
161
174
167
145
174
173
151
140
188
179
194
154
176
188
143
182
164
167
169
185
159
146
141
140
185
153
170
172
154
188
159
154
160
192
181
197
145
145
148
169
141
193
192
162
169
143
142
157
182
146
187
184
160
155
180
161
165
145
169
165
183
177
147
199
193
154
197
179
142
194
170
170
197
199
178
168
164
194
183
179
162
179
177
152
196
175
143
180
155
176
195
170
182
192
182
172
183
189
173
149
195
165
192
175
176
149
158
166
144
184
198
142
171
186
145
153
147
144
161
154
157
173
195
189
141
200
145
156
155
195
186
177
147
188
158
167
149
175
140
171
155
180
160
160
150
174
163
164
178
160
158
172
200
196
146
147
159
141
160
184
148
179
195
154
143
151
200
200
182
146
174
185
199
195
191
170
172
167
169
143
178
146
159
149
153
150
159
183
163
159
175
143
169
167
145
154
191
189
159
199
200
167
169
184
165
185
153
144
174
195
188
179
172
180
147
168
193
177
152
194
197
147
158
177
191
148
184
186
147
185
153
157
145
184
175
170
178
163
192
171
174
194
146
148
152
195
198
182
200
174
144
151
155
169
196
162
199
197
184
197
160
182
158
190
140
178
153
148
176
192
172
165
155
185
147
152
175
165
188
140
154
162
188
165
148
195
149
153
156
192
198
187
170
172
189
153
167
192
196
180
196
196
183
181
195
147
199
189
178
150
172
189
193
183
172
169
174
168
200
149
195
147
178
161
142
167
185
190
161
140
185
173
160
163
171
169
185
167
142
162
168
152
143
197
162
175
177
186
142
181
174
164
183
185
166
167
152
168
179
177
176
146
200
146
168
197
162
151
173
198
166
158
157
143
140
169
157
150
177
178
170
172
158
151
189
182
180
199
178
199
166
176
166
160
168
155
172
182
148
141
172
184
144
157
200
145
200
149
186
194
150
149
178
180
195
193
140
180
191
179
178
198
143
141
156
156
165
182
165
146
174
194
170
198
197
183
193
163
144
146
160
160
145
158
151
173
158
157
188
176
157
151
155
151
149
198
196
193
200
141
175
184
155
185
142
174
183
141
143
195
181
144
170
194
160
148
163
188
182
184
147
200
169
156
161
146
177
181
162
158
143
172
145
153
173
141
143
190
166
154
179
200
141
140
170
184
147
163
173
161
183
145
144
174
155
182
165
182
141
182
145
185
188
187
140
155
147
145
180
152
197
156
148
143
195
181
177
163
145
163
178
145
143
167
197
157
168
153
150
185
197
161
177
169
174
193
176
180
189
153
147
172
140
160
144
190
192
183
144
163
162
199
199
146
189
154
160
151
146
186
157
187
159
199
193
162
180
178
179
170
185
188
196
148
161
167
153
178
190
143
164
145
193
198
154
166
169
164
186
188
162
164
175
181
179
199
186
182
156
164
159
160
170
153
167
176
161
195
199
162
146
180
144
198
173
184
151
168
176
157
152
171
157
173
169
155
196
149
162
184
146
176
157
163
166
182
166
142
178
177
150
159
191
145
190
151
173
140
197
190
144
191
149
152
166
189
194
179
200
193
167
172
185
152
192
142
161
141
142
157
165
171
161
184
195
165
167
150
180
143
195
143
151
196
176
149
154
161
165
164
145
199
189
145
142
184
177
149
199
149
190
185
178
154
196
169
142
150
193
189
178
200
146
161
156
167
171
140
154
180
194
178
140
143
165
157
186
145
163
176
143
176
156
190
192
168
168
146
187
165
142
196
177
164
177
179
198
178
155
195
182
140
152
181
180
177
198
196
141
169
150
181
154
194
144
151
141
160
173
146
155
140
190
169
163
163
192
160
154
170
182
155
189
153
185
192
198
175
200
168
194
167
166
143
155
189
160
176
189
141
177
184
196
140
196
190
153
165
159
176
141
147
195
190
186
142
188
190
152
189
150
194
143
151
151
141
160
168
150
172
147
154
173
192
162
146
187
190
197
141
143
155
173
143
185
144
167
146
182
141
177
197
177
173
159
172
166
188
185
160
163
169
143
182
158
167
188
160
154
149
195
158
170
143
157
141
143
188
149
151
200
170
199
194
196
186
180
165
167
184
162
145
175
191
185
173
146
199
169
187
181
140
158
187
160
199
175
155
179
167
190
150
149
155
183
155
170
170
170
168
170
192
179
171
144
189
145
147
193
181
161
170
170
169
193
189
168
164
196
143
140
178
168
165
177
166
150
197
180
145
193
146
155
162
168
143
192
168
144
151
146
168
153
174
149
156
181
186
141
180
142
183
184
172
183
179
148
167
196
188
185
176
142
168
187
142
170
162
172
199
148
178
191
197
194
152
176
181
178
193
174
164
164
199
178
186
142
167
170
196
191
180
156
172
162
154
145
198
165
183
140
169
150
142
173
193
181
150
162
163
161
146
160
142
173
178
181
164
200
145
171
154
190
145
146
198
154
192
168
147
167
158
195
159
153
144
171
193
145
140
198
161
143
166
176
177
144
185
171
150
177
196
175
152
143
186
158
158
144
199
199
165
199
176
165
155
154
152
172
172
146
195
188
166
149
150
150
149
153
150
192
181
175
170
162
155
174
170
159
158
147
156
146
141
167
147
165
166
157
153
147
179
188
145
174
145
157
197
190
181
148
159
171
147
146
191
198
188
146
188
143
173
181
153
183
192
159
180
190
193
198
181
181
154
171
187
152
142
147
160
152
189
197
174
154
145
170
167
157
141
182
155
185
168
194
176
170
143
155
198
140
174
146
183
178
145
155
151
150
187
167
167
167
186
153
193
145
157
199
180
143
194
158
163
198
185
150
183
161
162
162
167
172
173
185
168
146
178
173
182
162
147
143
149
141
157
158
183
193
197
172
193
190
168
152
147
175
154
196
160
142
199
189
197
151
172
171
177
193
145
188
185
158
182
180
199
185
177
157
177
197
143
163
189
173
186
166
148
183
147
146
179
180
200
160
141
153
153
146
153
190
194
142
179
144
155
153
147
196
182
181
198
190
200
166
168
171
176
145
167
177
192
151
169
177
162
148
168
181
154
156
145
160
180
142
183
168
149
193
176
166
150
164
144
199
145
162
186
173
200
170
199
172
148
171
190
157
177
192
167
150
193
190
175
182
200
189
148
189
169
199
198
143
186
143
194
169
184
177
166
175
199
165
178
174
188
164
185
146
181
182
183
173
178
160
144
149
161
179
169
146
164
174
193
185
172
165
189
153
169
200
176
175
151
145
196
169
181
192
155
170
140
185
172
157
150
173
181
197
163
168
195
187
162
160
158
163
153
171
148
169
155
160
181
195
179
144
163
175
158
167
182
148
172
164
185
175
150
184
198
143
163
172
199
193
154
200
188
141
181
186
182
200
144
178
140
191
195
154
169
164
186
144
152
146
179
143
162
200
188
183
163
143
162
191
188
176
150
170
198
186
168
176
199
155
179
157
191
182
165
172
153
178
153
156
187
167
182
193
161
160
195
186
153
165
146
171
164
174
196
175
163
170
163
168
183
156
150
198
196
140
167
183
165
177
183
180
197
159
188
187
147
171
197
152
199
149
188
141
154
159
184
190
179
190
147
141
167
191
181
141
161
165
192
190
171
154
167
173
170
193
176
170
141
194
176
193
155
197
193
174
171
167
200
157
177
141
195
169
150
150
154
161
165
172
195
195
146
177
182
164
182
182
155
197
170
179
192
163
159
149
155
193
145
145
169
196
149
146
172
146
181
160
163
159
169
168
171
159
146
179
188
173
171
185
152
176
173
176
155
200
190
196
185
173
151
144
193
141
189
141
196
193
176
168
196
195
172
171
188
147
166
186
140
183
160
198
170
157
173
144
158
176
170
197
198
189
162
154
179
188
150
141
161
157
199
184
183
176
158
156
194
168
167
172
165
184
181
177
168
181
164
195
200
153
194
199
160
165
183
179
187
190
192
198
154
160
189
189
194
189
194
143
151
171
198
150
179
155
168
198
165
170
150
144
191
161
142
172
191
164
192
191
152
198
170
188
157
185
166
168
200
170
191
188
189
191
140
158
184
175
157
187
158
167
147
146
175
153
152
146
163
194
170
197
174
176
165
158
183
150
191
162
174
149
182
141
166
155
199
154
174
160
148
163
172
181
196
197
178
185
176
167
164
163
193
196
188
177
189
180
158
185
192
155
181
142
147
174
161
186
175
186
189
158
147
151
197
141
174
145
159
147
145
171
188
183
156
175
162
200
149
153
195
188
150
199
142
177
172
158
144
170
174
171
152
169
187
199
173
182
164
186
176
177
143
174
142
200
194
196
195
182
188
176
173
167
156
167
188
165
151
165
143
159
180
168
159
183
168
184
196
145
178
165
178
176
198
186
200
160
185
195
169
157
143
165
148
192
164
193
196
150
194
191
184
184
181
161
186
191
200
200
184
180
154
172
147
200
154
188
176
197
170
195
196
199
143
179
179
145
142
148
181
145
144
160
200
145
181
152
191
179
163
145
173
142
155
176
200
190
147
166
147
153
189
160
141
160
171
178
140
179
182
185
154
180
164
183
198
170
159
181
185
191
167
171
167
153
164
150
155
156
150
188
185
198
178
147
195
158
149
177
169
187
152
162
169
168
141
158
200
140
168
168
198
149
188
159
190
148
145
166
156
189
160
166
163
161
163
156
198
152
186
192
174
152
161
169
144
178
153
146
146
195
167
180
158
167
187
196
165
145
142
182
177
185
175
171
185
185
189
149
142
174
166
163
174
191
184
151
186
147
164
142
180
147
162
146
166
188
161
170
196
177
185
161
195
144
183
173
145
180
166
158
173
164
195
172
181
191
154
163
182
190
146
179
160
157
156
178
180
190
165
149
163
158
142
199
158
174
149
151
179
162
168
167
156
200
160
180
186
176
189
141
148
169
191
197
176
184
193
167
159
186
140
159
200
199
160
176
159
144
199
185
154
180
185
158
168
159
160
192
161
148
170
182
152
148
143
143
154
178
144
167
168
190
163
156
161
188
188
150
194
163
162
181
147
155
191
171
177
140
143
149
183
169
142
172
195
196
146
187
165
185
183
155
150
162
180
189
181
191
177
177
183
200
181
191
164
174
152
169
160
173
188
149
142
165
185
198
167
195
154
183
140
164
173
179
156
166
158
181
150
173
180
164
171
166
157
174
173
182
175
160
200
179
183
169
174
140
189
147
168
173
166
175
144
142
154
182
153
198
173
189
150
169
181
152
187
194
160
181
158
147
165
172
177
160
187
191
196
193
198
162
187
144
174
156
140
195
179
190
194
154
146
178
191
156
185
141
175
200
179
164
200
184
171
187
166
166
150
160
161
200
167
189
149
164
158
176
178
187
191
152
169
165
154
186
168
179
143
142
174
191
173
191
190
193
193
186
165
187
180
141
157
148
178
158
152
161
197
145
198
147
194
178
197
142
143
168
151
178
165
169
145
171
188
188
151
181
161
196
197
183
164
155
185
151
178
179
178
140
182
185
193
187
149
186
193
160
193
160
168
197
168
184
195
193
161
192
165
183
191
144
153
168
140
168
189
141
180
187
181
163
164
145
175
199
152
152
198
148
161
151
198
180
149
180
157
153
163
193
175
144
159
158
185
175
195
190
163
189
171
179
180
178
193
193
199
190
169
171
175
153
147
197
152
190
183
156
165
200
143
193
152
149
157
157
179
170
181
147
192
165
170
180
176
144
176
193
178
153
158
156
151
146
162
179
174
156
195
169
192
200
176
149
166
150
198
164
142
145
151
178
187
145
141
148
169
200
196
154
197
200
144
143
194
182
158
168
140
191
179
151
144
168
195
195
166
144
195
198
160
154
158
149
186
142
141
157
146
166
141
193
176
190
164
171
176
141
145
147
159
171
143
164
181
147
187
141
168
190
188
140
162
165
170
155
165
178
152
192
179
164
148
176
171
146
167
150
179
197
179
196
191
183
141
199
142
175
182
168
172
199
142
187
177
161
151
163
158
147
179
184
154
154
157
159
190
184
176
172
181
149
161
169
143
200
186
145
143
151
184
182
159
197
197
165
155
190
193
156
194
155
170
146
169
168
180
184
170
188
193
198
153
183
158
198
154
178
159
158
150
197
170
188
171
172
174
162
163
163
198
162
185
161
159
162
178
184
169
158
144
153
189
171
169
158
164
193
162
169
191
183
165
188
149
176
151
180
143
197
181
200
148
159
191
150
187
191
181
152
152
179
185
153
161
189
189
186
161
181
187
146
188
162
141
161
158
174
140
200
140
184
186
140
157
190
171
164
177
147
176
151
163
145
187
188
195
197
161
167
143
185
154
196
150
189
174
171
200
166
148
170
186
153
182
199
198
143
143
188
140
148
197
195
148
199
161
143
165
156
164
192
151
144
197
172
155
142
156
141
182
142
196
186
155
141
145
172
183
186
145
200
169
144
174
190
193
186
172
167
185
156
142
141
153
173
160
157
180
169
165
170
149
172
183
174
174
168
187
159
172
150
186
140
143
195
173
143
179
148
183
143
141
148
154
160
160
192
178
198
200
163
190
169
176
192
149
183
191
193
168
142
160
198
182
162
183
180
158
149
146
187
158
174
158
185
164
187
144
196
176
172
170
156
143
163
171
189
166
188
161
143
174
164
141
166
154
200
164
169
195
151
185
140
189
157
150
161
173
142
187
197
147
167
174
182
144
189
188
148
161
186
174
166
184
147
170
189
162
167
167
158
174
142
195
173
145
147
179
150
173
188
181
153
164
168
148
160
183
147
180
155
157
155
166
176
159
149
151
180
161
163
146
166
160
145
149
187
143
168
144
145
150
190
194
152
168
152
198
144
199
168
188
152
187
155
183
168
145
184
180
147
168
148
180
179
141
143
143
141
192
189
158
168
166
167
142
179
167
178
185
165
189
189
151
192
147
152
186
173
167
178
174
182
150
154
149
145
161
161
181
181
190
165
180
178
161
176
185
194
163
184
151
162
177
175
159
187
188
169
188
159
142
149
193
188
187
174
191
146
144
166
173
154
164
141
189
172
149
170
187
141
180
152
196
200
182
158
149
142
167
159
146
161
197
183
157
175
172
144
186
161
176
180
196
142
144
153
181
159
144
183
141
176
190
186
159
191
200
189
150
183
142
148
183
163
141
188
196
181
199
165
151
149
181
166
193
195
165
196
167
200
167
195
152
190
149
200
152
146
197
160
165
178
175
149
168
195
148
174
159
159
180
192
182
147
150
167
176
186
198
180
151
186
153
142
161
175
184
190
164
151
179
174
179
151
184
188
166
189
159
143
178
157
191
150
172
196
151
164
166
142
199
188
185
185
140
146
197
188
150
146
144
175
141
143
156
155
163
198
140
196
198
175
146
150
169
145
161
162
163
140
158
177
179
180
186
164
177
167
146
181
183
142
158
194
170
193
170
163
185
154
164
191
187
156
195
170
187
167
168
166
160
148
179
158
188
183
199
199
198
180
143
150
141
151
144
142
170
196
173
163
175
152
162
155
189
169
196
159
171
189
153
152
155
160
196
168
177
160
148
200
159
189
194
175
183
166
171
177
169
185
165
174
146
152
194
187
173
166
157
168
186
144
149
148
189
184
173
199
195
199
194
177
152
174
176
154
145
141
192
194
189
174
163
182
173
175
196
152
183
173
176
156
154
177
141
157
153
144
161
181
175
182
199
147
181
168
158
199
184
200
159
166
158
189
190
143
200
166
171
156
140
158
192
148
147
185
180
151
165
147
180
145
177
141
149
155
200
141
191
164
175
177
185
162
165
175
166
145
171
170
196
199
148
181
173
167
184
175
143
184
173
165
185
171
195
176
189
172
177
155
162
173
173
200
162
196
148
186
163
150
161
180
190
150
163
196
187
159
161
190
180
146
176
146
188
165
152
177
148
181
142
177
183
145
184
195
154
183
176
151
159
140
152
195
181
195
163
162
192
178
145
179
164
161
151
155
166
153
168
166
194
192
177
194
158
156
152
192
186
192
164
149
189
143
182
173
166
198
179
198
153
149
193
142
182
193
180
168
191
175
151
189
147
196
153
144
144
171
166
200
186
197
178
156
146
173
158
196
196
141
154
154
156
176
160
145
157
144
147
181
146
178
193
155
195
189
200
151
200
167
144
179
191
152
164
179
176
188
182
173
194
165
154
141
194
145
140
168
140
180
150
155
170
146
185
152
159
176
190
169
158
180
173
177
158
150
169
141
183
188
143
178
186
146
157
174
197
163
171
143
152
178
150
162
183
157
182
150
192
194
145
157
184
195
145
193
153
167
148
189
167
152
154
143
184
152
194
145
142
169
177
198
181
197
156
197
154
179
197
187
149
197
140
150
156
149
166
165
142
169
145
188
155
190
176
180
143
155
188
142
186
148
182
154
164
148
158
152
182
190
169
180
196
185
154
195
182
146
194
142
171
198
192
175
156
141
193
151
156
173
161
192
197
173
142
161
171
156
143
170
198
186
159
161
200
159
148
188
145
145
157
178
142
145
144
197
178
145
178
151
178
151
189
156
146
150
153
150
189
143
177
164
186
161
186
141
160
181
154
180
185
147
148
158
160
158
147
191
175
166
189
197
186
178
156
144
185
186
184
190
158
157
194
194
190
158
146
156
174
147
165
149
152
200
183
144
180
148
195
171
186
167
186
152
163
178
147
167
199
144
169
200
184
166
174
154
159
179
174
172
200
147
150
141
189
152
167
148
148
161
141
195
159
171
168
195
149
176
194
140
152
150
165
142
176
172
192
187
144
153
183
188
181
168
194
162
140
175
141
198
179
147
183
153
151
175
151
184
175
173
165
142
182
174
156
183
181
142
192
155
147
177
144
196
178
150
191
140
180
161
195
143
149
190
168
152
166
189
160
171
154
176
188
179
167
174
166
174
189
168
191
150
191
187
141
140
192
187
158
187
193
192
189
142
158
172
165
148
159
196
197
142
140
183
152
149
162
175
179
142
143
175
187
191
179
173
149
178
153
198
182
142
170
195
141
141
155
160
161
182
180
168
189
187
164
199
194
157
176
182
143
142
155
159
150
152
194
180
191
141
184
181
152
143
190
185
151
141
166
156
169
171
143
142
185
186
148
182
195
175
164
158
149
174
144
181
140
175
190
161
149
154
160
151
150
166
173
168
198
170
194
198
185
176
151
144
181
158
188
164
196
183
184
184
192
173
151
143
190
187
170
198
147
199
182
184
169
192
182
153
175
145
189
158
147
179
200
185
149
164
171
184
189
198
188
145
178
179
153
164
145
186
170
149
159
181
161
177
186
165
170
141
188
180
189
155
155
186
147
184
147
161
142
186
168
180
155
153
190
181
180
152
188
152
147
153
180
154
176
198
182
163
179
198
181
155
142
143
144
172
143
167
158
146
181
176
156
186
200
182
182
175
169
142
148
180
141
151
179
186
198
176
152
181
170
151
181
167
155
181
140
162
173
187
167
183
170
176
177
152
143
184
141
149
192
195
165
192
164
181
141
157
152
191
176
189
156
167
165
180
193
153
191
198
186
142
158
159
181
153
170
178
195
192
160
170
176
169
154
155
180
177
161
154
159
161
175
157
166
156
200
190
174
194
154
160
186
149
177
175
194
195
188
200
194
182
173
191
182
183
185
140
182
143
162
142
185
189
163
183
165
178
195
146
152
197
154
196
186
170
188
175
196
196
191
153
194
190
162
167
159
164
156
152
169
163
170
166
168
184
178
152
183
160
175
189
155
143
142
148
163
188
160
191
170
166
171
190
165
140
147
141
158
174
192
157
153
197
168
186
177
151
159
178
198
144
155
164
164
182
188
193
144
179
158
151
191
200
180
179
187
198
153
166
188
159
158
191
162
197
181
159
185
167
177
153
179
178
192
189
188
200
199
199
172
143
166
178
198
180
152
189
178
142
147
187
173
179
156
180
169
179
165
161
193
184
190
177
179
172
188
187
156
172
165
147
193
187
142
198
175
176
165
157
182
141
150
167
170
186
167
143
151
152
187
148
193
188
194
181
168
157
149
169
175
181
144
185
146
163
200
173
167
141
195
194
194
146
157
161
172
166
150
183
160
166
178
143
189
172
160
182
154
149
178
152
159
196
175
192
168
170
146
186
179
181
180
148
163
195
156
163
199
178
143
155
186
153
151
163
178
183
179
149
171
188
184
155
187
164
158
157
190
165
186
172
156
191
151
149
161
174
178
144
151
164
195
186
176
158
175
144
181
167
152
148
194
143
198
200
185
198
149
199
144
148
147
175
190
190
152
184
183
200
180
158
185
143
187
151
196
150
198
172
186
190
164
147
151
140
148
146
153
145
160
146
167
185
151
196
153
183
187
151
146
153
199
145
181
154
154
149
145
174
192
153
198
162
170
165
172
176
184
195
193
156
164
188
200
196
183
190
174
199
194
171
152
188
157
144
183
188
189
142
177
143
198
145
189
171
190
140
153
155
152
200
161
171
158
188
141
148
197
152
153
152
169
169
166
160
152
154
144
161
182
159
152
159
197
150
162
155
154
151
155
183
184
195
192
151
197
191
160
141
147
163
200
172
199
179
173
156
157
192
166
160
179
157
187
170
196
200
192
172
158
170
180
175
167
194
145
191
177
192
193
151
193
157
168
164
196
183
199
159
182
179
180
153
196
143
186
141
144
176
198
171
190
156
176
166
166
150
163
176
192
190
140
199
165
143
162
196
185
169
195
175
185
188
161
142
176
175
183
183
178
141
170
162
183
184
151
186
141
197
177
174
165
189
141
169
171
147
153
178
155
157
146
166
162
182
178
197
141
173
192
157
148
151
151
155
167
181
143
153
144
192
149
157
166
151
176
186
163
173
199
185
142
154
182
164
142
151
145
156
172
190
186
153
199
146
178
141
193
178
193
171
154
172
169
144
181
156
149
164
149
200
199
193
200
171
145
174
160
176
170
170
198
190
184
141
175
184
144
160
174
170
151
150
166
152
183
176
159
152
166
191
177
196
185
157
186
179
182
175
189
164
182
186
151
189
180
178
156
180
143
147
168
199
178
176
161
180
155
186
168
144
198
156
153
152
153
174
197
147
158
148
194
168
184
157
194
180
158
170
151
154
146
190
147
147
158
188
196
153
142
190
162
170
161
186
167
167
199
186
164
174
140
165
195
145
191
167
152
178
158
179
140
194
184
180
162
197
153
197
144
190
183
174
151
149
142
199
166
155
172
141
178
170
165
177
145
182
147
165
158
195
160
168
151
198
171
198
155
198
171
142
159
181
199
200
183
145
181
197
142
158
196
188
182
172
142
173
178
200
160
196
152
141
149
176
168
146
150
156
181
197
157
190
175
168
160
194
184
187
171
159
149
177
160
155
169
153
192
169
195
146
169
159
187
179
193
151
188
183
150
182
161
179
159
189
200
146
155
145
183
200
147
146
154
159
187
173
190
170
162
140
183
147
145
172
191
190
195
179
164
154
185
200
144
160
168
200
192
183
180
159
185
168
184
172
170
192
149
157
160
155
185
193
176
165
194
191
191
163
160
171
164
171
194
180
188
193
190
162
171
171
189
199
190
158
190
161
189
172
147
167
167
155
145
150
157
179
176
163
146
177
190
146
170
194
193
159
183
152
182
188
178
141
184
167
195
151
185
177
186
172
158
144
161
171
165
168
140
161
171
143
191
151
143
195
151
152
156
173
146
174
154
183
199
163
179
168
181
175
146
173
147
151
184
145
186
160
158
195
151
153
142
182
143
182
175
192
152
198
177
151
174
199
142
153
196
192
158
178
141
156
163
142
167
145
142
190
183
195
159
196
197
143
197
162
186
199
162
180
158
145
198
154
172
178
146
194
171
176
154
162
147
150
172
153
165
145
153
200
162
159
169
160
187
171
185
199
158
143
175
179
154
186
186
140
169
167
144
154
194
155
178
196
163
176
169
186
192
198
154
194
173
153
185
150
157
151
188
144
200
167
146
187
161
157
173
146
162
159
184
171
177
154
169
181
195
171
181
142
184
177
192
176
173
187
155
150
148
185
155
196
188
162
175
154
154
173
154
166
172
147
181
179
154
177
161
178
189
169
192
150
196
168
182
141
170
191
167
181
180
164
144
185
164
179
182
151
183
183
198
149
161
187
169
141
185
180
143
153
141
164
158
192
192
158
152
199
145
176
174
163
147
157
186
144
152
179
157
140
160
176
177
181
188
163
175
176
156
151
160
157
146
142
190
149
192
180
194
158
187
188
168
168
164
163
199
184
191
185
179
186
141
154
148
167
143
166
157
149
177
151
155
149
163
163
140
200
161
174
188
192
166
188
168
169
166
142
153
163
180
179
189
143
199
195
147
146
140
193
141
160
154
192
182
158
141
188
142
184
144
173
198
173
175
174
194
185
144
165
145
155
166
175
181
165
157
179
165
143
173
176
188
153
188
153
169
184
196
193
160
157
180
162
193
155
181
197
158
165
171
154
187
194
156
156
158
181
158
147
151
176
153
171
150
176
158
178
173
141
185
151
197
163
182
188
173
141
160
187
169
197
177
165
148
160
193
172
150
146
180
195
167
173
158
199
140
181
195
193
142
166
171
184
171
170
193
147
146
177
177
147
167
174
141
171
194
174
189
197
165
171
191
156
181
151
161
142
144
173
144
178
144
148
192
156
181
183
175
193
143
194
142
169
177
197
196
163
162
186
194
199
157
141
168
146
170
198
149
145
159
152
165
149
178
195
142
158
184
161
199
146
155
157
183
147
173
185
162
196
184
177
147
152
141
142
160
185
164
159
148
199
196
150
156
152
150
188
187
143
168
176
194
193
158
144
165
170
182
167
192
166
155
189
170
149
171
173
187
180
145
160
156
187
150
175
178
182
149
155
155
140
178
189
182
167
199
188
160
167
163
160
151
150
158
180
142
197
171
189
146
199
148
173
162
142
197
148
174
147
176
151
185
161
181
192
195
179
182
172
158
187
155
155
190
162
178
163
155
185
186
166
179
151
180
175
193
182
147
166
174
181
152
181
190
159
171
151
175
110
140
143
113
110
135
122
138
127
110
137
122
146
113
113
141
132
122
125
145
143
119
146
134
150
103
146
117
139
100
129
137
125
101
126
111
110
132
111
124
139
135
125
140
102
130
138
108
150
131
102
139
100
118
124
131
130
111
141
144
149
137
111
123
107
128
140
141
108
134
117
119
147
126
120
101
149
122
142
131
123
105
116
123
101
100
147
140
113
105
124
128
137
146
135
117
101
114
126
119
123
136
141
114
114
125
130
105
125
139
117
136
135
111
110
128
104
111
110
122
146
103
118
123
142
146
140
129
117
118
111
104
124
130
131
131
130
136
116
122
149
149
115
145
150
128
100
100
102
140
140
123
122
102
131
121
137
133
100
128
123
139
110
122
110
141
131
128
117
143
131
107
146
106
129
103
147
114
118
122
122
145
113
140
129
119
115
143
109
116
124
100
149
140
106
146
130
104
140
148
106
132
113
102
126
106
120
147
139
126
123
114
110
100
103
125
120
109
139
138
130
140
124
127
150
148
133
138
133
119
104
132
115
108
100
129
128
134
107
135
116
118
129
102
149
121
135
126
145
124
139
117
101
101
130
135
108
146
145
140
126
110
127
110
108
146
106
109
128
140
143
124
103
114
129
127
125
129
134
125
143
117
100
147
105
102
110
137
120
141
145
148
148
146
110
118
137
132
109
103
114
113
137
115
138
144
126
146
120
103
105
120
127
117
128
103
140
123
122
136
102
108
103
110
103
109
109
115
146
121
104
141
137
145
106
125
121
126
141
147
144
126
112
150
112
105
141
118
143
127
149
107
129
105
131
119
146
130
105
103
100
104
119
132
138
143
139
144
133
137
128
125
107
129
137
134
143
146
102
143
131
146
145
144
135
131
112
114
112
139
125
118
103
118
118
114
110
142
140
119
138
124
113
144
133
112
103
148
145
127
109
119
137
111
117
113
129
143
106
136
131
116
144
101
122
116
145
102
145
138
123
115
120
137
148
105
112
143
147
143
144
116
139
124
149
145
108
149
123
135
123
139
141
131
100
142
136
126
126
150
139
136
149
102
129
125
122
109
107
144
117
135
139
133
141
119
120
149
123
117
125
148
119
132
121
124
149
146
127
107
145
146
106
131
135
130
120
127
106
128
100
149
118
118
111
120
133
103
133
120
129
138
135
100
144
127
144
139
124
134
103
105
122
115
149
125
102
119
141
150
102
107
135
110
143
112
119
136
134
134
101
106
150
147
113
117
106
109
132
140
140
112
123
131
109
134
147
100
119
117
137
142
109
141
110
104
119
115
124
135
142
139
107
121
130
125
113
100
145
131
110
102
102
140
123
106
127
119
118
101
145
125
122
108
135
119
107
141
142
142
108
105
108
141
130
149
128
119
138
140
109
135
122
119
137
130
125
112
109
109
142
131
107
108
122
146
146
127
127
137
121
112
140
135
105
120
123
101
118
106
126
125
130
134
130
130
146
147
147
108
144
100
100
120
131
130
114
111
114
114
106
135
129
131
112
117
144
101
145
150
124
138
138
149
143
147
112
139
106
100
111
144
117
140
114
124
139
146
124
140
148
143
150
145
131
110
127
130
124
111
131
132
120
150
111
123
132
112
120
103
135
123
146
147
130
128
146
133
135
118
106
125
120
102
134
111
148
143
129
135
121
148
149
123
124
123
150
148
122
137
145
139
126
117
141
115
123
133
140
130
141
119
109
122
109
109
129
132
122
137
105
116
123
147
141
117
149
144
103
149
119
140
134
124
147
101
106
136
119
106
113
104
128
128
137
135
110
118
121
150
138
149
144
122
104
145
149
107
130
150
135
145
148
119
137
112
143
116
119
147
119
136
107
120
111
113
128
101
105
115
124
145
128
108
120
124
111
135
134
120
101
121
120
107
107
148
147
100
133
146
128
114
102
108
134
127
139
138
106
145
140
108
142
100
127
119
129
113
115
131
143
102
113
114
121
148
141
104
102
105
122
115
132
123
100
104
139
122
109
127
123
111
120
142
122
120
114
121
143
132
139
122
129
114
119
122
130
119
125
107
130
114
108
126
122
128
142
149
105
124
124
129
117
104
124
108
135
142
105
119
101
136
130
121
142
143
119
132
147
108
141
100
125
149
149
150
141
121
109
146
108
111
101
114
127
117
108
108
115
106
132
149
128
108
144
100
138
126
111
102
148
102
136
103
122
137
141
106
102
138
136
127
120
106
116
115
129
115
123
116
108
122
112
110
131
117
112
114
125
123
105
145
109
103
108
126
133
149
138
122
136
104
132
150
128
136
139
113
143
127
108
107
127
128
125
124
136
100
114
138
117
121
135
113
111
144
121
110
140
139
126
150
130
141
143
110
123
134
106
138
107
121
137
126
143
110
141
103
137
126
130
126
124
132
116
135
100
119
129
102
112
123
116
104
145
137
123
139
128
116
118
150
122
117
117
133
128
142
102
149
147
123
130
101
108
108
132
146
123
102
140
126
137
122
119
140
104
137
116
121
149
134
107
132
139
132
101
121
114
147
142
109
113
135
144
115
139
143
103
112
141
119
107
147
100
132
133
149
115
117
140
118
104
135
145
129
136
120
116
112
127
113
102
110
118
110
111
144
102
117
142
116
109
139
119
104
129
132
145
103
123
144
136
127
120
108
141
142
149
126
126
144
134
132
141
141
134
126
139
102
106
132
137
143
125
141
108
134
129
133
117
125
149
129
134
136
140
148
104
100
137
114
130
140
146
139
129
106
118
112
120
146
126
134
131
109
149
103
132
134
146
104
113
147
113
123
105
113
124
106
121
141
149
128
101
147
103
119
149
109
114
119
128
133
111
131
118
127
125
121
109
100
135
139
104
144
130
115
124
145
132
107
119
114
122
102
145
149
124
105
130
147
113
110
149
110
108
122
139
122
117
109
147
130
102
126
123
114
104
104
124
143
146
118
128
139
143
107
119
129
150
133
100
118
129
111
141
132
112
141
149
114
145
142
112
139
110
142
138
137
111
133
141
125
109
122
101
121
132
118
128
109
134
129
142
118
120
125
133
143
131
120
125
113
111
130
115
124
130
133
138
132
124
131
141
139
100
117
124
115
140
145
149
102
111
127
122
109
141
145
145
130
113
138
132
140
105
134
125
121
107
137
150
138
100
125
117
108
145
107
122
147
121
133
132
132
146
150
111
123
104
127
101
136
140
117
120
117
100
132
118
149
102
108
123
132
148
114
121
126
118
112
145
133
119
106
142
107
115
121
105
150
102
105
145
111
111
150
107
107
148
107
116
101
125
124
124
101
129
133
104
141
104
106
107
118
101
127
105
135
103
130
150
103
141
148
105
135
122
149
143
103
108
115
132
133
101
124
115
139
142
122
109
136
131
101
101
144
133
138
119
120
125
114
145
123
147
134
138
145
143
106
110
111
149
132
131
129
118
125
124
146
133
127
110
142
105
143
117
139
147
115
129
131
131
145
139
125
130
105
127
110
114
130
110
128
141
104
115
105
141
149
147
150
127
118
130
102
140
114
134
132
133
143
118
113
125
111
143
121
129
107
107
122
128
150
148
102
135
117
135
112
108
150
113
109
103
141
134
103
149
135
150
119
147
148
145
133
115
110
128
131
143
104
120
137
115
111
114
106
140
130
115
147
134
128
145
134
128
139
147
106
102
125
149
132
133
110
138
140
113
150
109
143
150
111
112
100
102
144
142
108
143
103
144
117
150
146
139
135
111
106
148
142
114
121
136
113
100
129
150
105
105
138
101
137
127
100
138
125
125
104
100
123
109
128
111
136
137
101
125
127
150
118
117
138
101
136
138
117
104
142
125
135
145
112
112
108
116
118
117
107
122
127
122
127
137
116
125
123
150
105
125
131
138
129
134
103
107
117
112
119
136
128
141
103
133
104
135
106
112
112
129
116
126
147
106
148
128
136
140
136
122
147
105
118
142
131
143
148
148
102
105
147
146
109
133
117
109
142
130
121
123
112
116
116
109
108
101
108
139
116
121
107
150
103
141
150
142
109
109
131
114
142
117
121
140
110
146
117
119
113
128
131
128
144
106
128
113
117
121
129
135
132
147
104
117
139
132
136
113
103
114
101
137
123
143
122
118
145
141
119
145
143
145
133
128
129
135
113
120
105
136
145
107
131
109
110
112
136
101
134
102
107
128
135
115
117
108
107
110
137
102
116
112
131
147
133
100
137
132
133
104
111
140
126
135
139
123
143
137
100
106
111
110
140
141
115
143
112
148
116
125
137
132
110
144
132
131
130
145
101
136
140
128
129
138
112
150
105
140
139
112
103
104
133
124
124
136
142
123
106
119
144
126
104
108
113
128
135
121
146
103
110
141
142
111
144
118
109
119
105
127
139
104
125
148
135
112
127
142
150
132
143
136
149
140
107
120
133
108
100
136
105
103
137
102
119
125
135
114
141
145
140
106
136
105
107
116
112
111
126
139
107
138
132
113
111
143
139
105
118
102
137
148
150
121
145
149
147
138
141
101
110
110
121
126
138
106
142
113
137
125
147
136
132
147
112
123
150
118
149
143
115
124
133
108
130
138
139
146
111
150
120
134
100
139
100
120
126
112
147
145
103
118
126
150
101
142
117
131
138
143
118
122
113
121
141
124
134
132
132
107
117
113
125
123
108
114
104
130
138
119
124
118
145
146
113
114
137
107
150
150
146
137
107
147
149
116
126
112
120
126
133
115
128
120
110
114
135
108
102
125
101
129
102
142
105
109
106
137
131
149
119
103
122
144
130
141
122
131
106
116
131
141
106
149
128
133
121
101
114
135
114
126
105
102
148
145
107
110
129
101
123
131
111
144
139
130
111
124
103
120
124
121
115
143
125
144
122
126
124
104
102
145
127
101
122
111
145
132
146
142
143
110
142
134
113
114
132
113
102
107
144
109
125
105
133
145
122
132
121
118
106
117
125
109
149
150
108
115
126
150
140
149
132
136
124
124
130
119
102
150
144
107
128
123
147
144
134
141
131
149
146
126
114
137
131
120
144
147
143
110
109
109
121
147
118
113
125
116
106
122
139
118
108
113
138
136
111
116
138
101
101
124
119
126
101
149
141
113
136
125
110
118
113
134
110
118
114
143
100
110
101
119
101
123
103
140
125
144
114
128
141
135
107
140
149
101
101
121
117
122
113
117
150
113
110
102
115
113
101
113
135
110
139
114
128
147
102
133
147
127
144
101
110
144
127
131
147
126
133
115
109
131
104
127
126
108
127
142
150
125
107
130
116
115
117
126
149
130
146
118
110
116
139
104
136
101
115
131
121
113
128
114
144
101
127
120
105
114
112
101
108
145
133
136
131
135
108
114
120
120
110
123
137
120
146
108
110
118
123
117
115
114
113
127
107
147
135
116
149
102
115
114
143
146
135
120
127
128
111
147
134
138
123
137
101
104
135
100
115
148
112
138
137
145
149
115
141
140
118
121
141
148
149
147
130
147
133
143
130
134
110
124
122
132
137
103
141
142
140
101
117
123
137
103
124
106
114
108
140
133
114
125
118
138
108
103
105
128
143
113
121
147
108
132
150
119
148
126
144
125
125
142
145
143
126
100
128
126
102
102
116
119
137
118
139
144
110
135
105
120
130
123
118
100
148
144
106
119
109
112
109
110
118
140
121
139
131
145
108
111
135
141
142
125
103
140
113
116
104
111
146
106
105
101
121
134
110
100
128
130
138
137
132
122
108
136
129
136
143
114
116
132
138
100
107
121
132
141
117
102
101
124
148
119
129
118
136
130
133
149
100
135
129
149
108
112
150
137
107
141
106
114
129
117
140
150
140
146
100
125
102
119
140
116
141
120
100
147
110
145
102
146
105
136
146
135
149
102
135
108
105
118
109
124
127
120
149
117
146
134
107
110
148
103
135
129
113
100
125
143
125
105
140
101
110
142
124
143
122
115
148
103
116
124
105
149
110
128
109
101
133
146
125
136
129
139
125
102
141
102
127
135
146
145
132
120
124
149
117
149
127
127
135
147
146
101
138
137
107
149
135
101
120
117
113
125
103
103
134
129
111
146
116
150
106
115
139
141
115
140
136
138
128
115
110
118
109
107
142
117
143
127
146
115
102
116
117
108
119
128
134
147
135
149
110
111
101
103
123
133
101
148
126
129
150
105
126
127
140
124
148
128
127
144
103
121
105
118
148
135
110
126
111
139
116
146
148
115
138
104
115
125
101
121
117
145
138
130
100
107
145
111
150
126
100
133
133
139
149
137
106
139
135
100
126
108
140
139
115
127
116
123
142
122
104
125
133
136
148
122
137
148
131
136
100
121
132
130
140
129
142
150
108
144
111
124
132
147
146
116
141
112
127
104
135
115
104
143
125
111
111
109
101
128
127
133
122
104
115
106
106
123
140
104
129
105
117
109
100
108
135
114
140
135
124
121
103
134
126
117
119
128
113
100
148
110
142
144
139
149
139
117
120
111
143
147
100
135
132
134
104
123
130
115
121
138
105
139
132
131
145
112
130
118
138
146
134
109
125
110
122
147
101
134
126
142
138
122
104
109
149
140
129
103
128
120
108
146
112
114
147
139
119
144
115
145
114
137
150
120
145
110
125
102
123
138
127
130
144
105
136
143
101
143
137
150
132
123
142
146
125
120
137
114
114
126
128
107
111
139
143
127
134
127
135
109
120
124
103
145
130
132
118
117
114
128
121
102
109
114
107
141
148
125
131
121
119
145
125
107
136
100
105
138
126
140
122
104
147
144
141
137
124
148
120
121
136
116
135
133
127
143
143
111
148
101
120
130
100
140
106
138
119
128
135
130
149
148
113
113
117
132
120
146
150
144
134
106
122
137
147
132
130
122
141
141
113
148
120
132
132
111
134
107
139
136
115
127
118
105
124
115
112
115
142
114
135
130
141
118
142
122
117
129
106
124
135
104
129
124
140
117
102
123
121
108
135
139
101
150
122
108
124
105
146
143
113
139
140
142
112
149
132
135
113
132
141
112
102
101
149
111
141
118
148
138
149
102
144
119
110
102
126
101
114
124
130
139
125
135
138
117
122
136
116
117
114
117
129
150
132
141
116
108
145
120
124
114
125
148
144
128
140
117
122
111
100
128
121
105
128
147
135
108
141
140
131
116
124
118
135
109
124
149
130
146
109
133
118
131
120
113
115
126
142
119
149
118
139
115
110
126
134
126
149
126
145
141
141
116
135
138
104
115
138
112
101
121
134
106
102
114
131
121
100
121
143
110
126
106
125
110
127
132
149
146
119
101
111
101
105
141
121
111
125
134
124
136
115
122
127
108
127
132
147
134
114
127
135
123
116
114
104
123
110
111
131
116
135
115
143
115
134
137
124
148
135
116
117
109
128
122
150
116
136
130
103
139
109
139
126
108
118
122
149
127
112
143
132
136
140
149
136
145
130
135
128
108
119
129
127
117
118
135
111
126
113
113
103
115
150
138
130
107
149
116
110
109
122
129
130
131
149
142
104
131
112
131
130
100
112
126
125
134
104
146
148
132
101
125
108
123
125
103
113
124
145
105
137
108
131
101
128
122
103
122
142
131
121
127
132
106
117
135
149
139
136
104
112
127
144
109
112
135
132
108
111
103
108
126
138
104
130
149
123
107
134
136
139
129
138
118
144
145
143
104
111
133
128
111
100
145
147
132
147
128
150
150
149
121
124
123
120
126
102
149
127
144
105
128
146
133
142
134
139
106
118
106
102
130
114
147
104
143
106
103
111
150
122
132
106
121
118
129
115
101
131
116
124
100
100
121
137
138
108
128
147
106
135
112
110
128
131
116
134
143
139
114
111
118
110
117
115
113
138
136
132
150
141
102
116
104
136
147
138
146
147
129
117
124
132
147
145
128
109
114
139
147
150
145
128
148
120
121
123
126
100
144
147
131
137
123
139
111
115
101
145
143
140
125
124
102
141
126
137
133
147
133
120
131
101
112
134
130
101
129
137
114
109
106
148
145
125
126
139
125
118
104
119
119
143
148
143
110
126
114
118
109
143
128
149
120
123
122
122
116
149
133
117
121
115
115
140
146
105
140
116
130
141
146
148
113
103
109
144
141
124
149
142
148
141
116
144
109
149
122
108
134
150
116
140
125
126
145
106
109
119
141
139
123
109
126
145
130
147
114
127
149
142
146
118
125
127
104
136
142
140
146
116
103
132
127
116
136
127
129
124
106
124
120
108
149
142
108
100
132
138
128
104
119
141
107
112
137
138
138
137
109
132
102
143
110
138
134
109
125
131
125
141
139
123
107
108
122
125
124
103
148
118
136
124
107
139
119
136
142
128
123
120
142
134
109
123
102
140
109
121
141
135
112
112
101
137
148
132
123
129
128
143
112
130
119
110
131
148
103
117
140
145
130
111
106
113
141
129
124
139
103
115
117
110
143
111
128
114
128
149
117
122
109
146
122
116
143
126
105
145
147
121
149
109
124
134
101
150
128
120
122
106
124
147
103
126
141
132
148
136
102
118
144
134
117
101
144
133
133
125
137
142
143
125
107
111
132
148
116
101
122
127
110
126
114
137
135
122
120
143
119
130
138
145
127
115
120
125
139
128
142
104
103
133
148
112
128
130
104
133
124
116
147
135
108
135
133
106
145
147
125
128
124
126
142
111
133
115
111
145
119
114
108
112
103
110
103
104
100
142
121
148
126
133
132
148
142
140
148
119
124
122
122
103
143
123
120
145
144
120
117
142
142
113
148
115
101
116
125
131
149
145
107
132
145
149
133
108
136
131
100
117
146
116
105
127
110
105
109
104
136
144
102
110
112
137
139
148
133
132
130
111
140
145
126
107
149
150
117
100
149
116
121
113
134
149
107
103
106
134
133
128
149
109
103
143
122
115
122
109
120
108
107
105
132
150
106
100
134
138
125
119
102
140
107
101
148
130
100
132
102
141
102
128
149
144
130
107
123
138
110
128
123
134
132
148
117
129
142
133
143
146
122
110
120
112
104
122
116
120
125
104
115
102
143
138
120
120
107
131
137
147
117
120
136
106
133
125
101
143
128
114
129
140
143
104
117
124
148
147
103
143
112
143
117
113
143
119
149
123
120
104
146
106
149
118
129
136
119
138
111
118
101
100
106
122
136
135
145
124
115
147
129
127
130
137
105
136
109
114
146
140
134
128
103
112
103
137
125
114
132
102
135
149
130
107
121
145
115
103
111
109
105
124
126
108
118
120
125
127
130
128
134
120
115
115
145
146
100
119
110
120
144
149
104
135
112
108
104
106
146
112
143
125
130
127
118
114
115
148
101
100
129
140
136
109
145
114
111
110
102
108
112
137
122
115
110
100
131
142
144
135
133
139
105
149
113
135
111
150
133
140
132
123
126
120
121
125
127
105
138
108
145
134
133
110
111
128
114
150
135
128
128
139
118
145
147
143
119
123
137
145
145
125
107
107
140
114
147
144
141
140
124
108
146
148
125
144
126
101
136
150
127
145
135
118
136
141
134
134
145
143
126
133
113
145
110
119
121
122
141
114
103
137
112
104
130
144
101
130
115
116
123
105
131
114
136
130
142
130
123
114
139
114
116
137
146
139
132
118
147
107
113
118
102
121
129
118
124
130
105
149
110
147
112
134
138
117
123
149
134
127
104
145
108
130
136
103
138
113
111
117
106
112
101
128
149
112
113
147
102
138
150
119
144
142
123
103
134
125
102
140
145
111
134
150
130
149
145
139
149
122
113
134
116
147
105
109
140
110
105
128
138
106
104
135
109
111
125
101
131
133
136
138
100
132
108
124
125
145
109
124
143
145
133
126
126
102
149
102
142
131
108
117
130
100
137
131
112
125
132
115
104
111
115
115
123
121
103
148
104
127
102
112
129
130
110
121
110
133
150
115
146
113
132
140
128
137
100
124
128
130
145
140
108
105
102
122
106
127
112
114
140
144
136
142
120
120
102
132
140
142
109
127
126
125
129
105
117
132
121
107
141
131
125
104
118
103
140
138
101
140
139
148
124
142
101
114
147
106
138
138
125
143
122
104
103
116
150
119
115
147
135
139
108
106
135
140
140
132
139
140
133
135
114
122
107
100
139
146
108
120
148
112
109
109
124
143
146
124
126
107
118
145
148
141
128
141
141
101
106
142
128
118
120
131
107
132
124
120
109
114
106
127
142
123
107
134
105
131
108
142
150
137
145
119
148
109
112
119
132
133
117
119
143
123
108
140
119
137
143
117
129
119
111
131
149
141
149
109
148
112
112
127
101
104
113
120
137
142
108
115
121
117
128
118
149
111
130
110
149
118
137
100
127
144
140
110
130
127
133
100
150
143
134
114
149
140
112
140
143
123
105
107
144
144
122
138
144
150
141
114
102
135
122
137
112
130
149
115
142
139
101
122
140
100
132
137
144
126
108
150
126
130
114
125
134
100
105
150
132
148
124
146
112
123
121
119
149
101
145
116
131
146
111
147
113
107
138
150
144
121
147
101
112
141
127
115
149
148
140
114
107
116
115
115
132
143
114
143
127
128
130
112
137
118
126
113
139
139
111
140
130
136
127
149
101
117
100
110
124
113
128
105
134
106
141
111
108
138
124
143
128
113
132
124
132
143
146
137
111
137
100
114
149
138
146
136
119
114
132
135
124
126
148
121
128
101
109
125
114
121
100
142
109
145
106
146
133
145
137
125
106
141
149
121
121
139
143
107
129
115
117
117
149
105
101
119
149
140
135
149
130
110
100
142
125
149
128
144
132
107
133
119
121
120
135
150
110
113
150
132
131
138
104
145
134
136
109
104
111
134
112
106
103
113
117
147
150
126
123
130
123
120
147
118
143
100
101
120
126
124
112
124
119
124
117
115
112
124
143
128
130
130
139
138
145
107
140
119
110
122
110
127
146
102
109
144
115
141
116
114
108
143
117
104
136
150
110
112
145
138
101
143
135
135
145
112
139
125
108
142
147
123
107
126
124
108
129
125
143
102
109
103
132
137
121
112
148
108
149
132
122
103
108
147
122
129
127
145
103
131
113
114
100
142
126
120
106
129
133
149
129
123
129
128
108
134
102
124
123
127
120
116
129
117
122
130
149
102
118
147
134
104
112
111
117
106
137
101
138
125
119
138
119
127
104
124
136
136
124
100
133
122
121
104
129
132
110
143
140
126
113
125
142
143
146
140
120
103
129
138
116
134
122
116
135
103
130
148
123
122
102
125
105
146
101
144
144
105
105
100
138
119
119
115
134
112
124
113
120
103
116
102
126
132
109
142
106
125
150
120
109
122
134
129
120
143
133
145
120
135
130
124
111
125
122
116
107
124
130
133
130
125
144
124
138
119
123
149
148
123
116
125
106
105
116
147
111
140
131
145
140
142
143
147
115
115
102
128
141
137
144
143
106
145
109
101
131
137
122
139
139
108
130
129
143
141
148
104
117
113
106
139
131
101
145
133
125
149
133
150
144
105
120
128
101
124
142
144
102
132
139
130
107
135
145
119
124
116
130
104
124
150
148
145
133
147
133
136
100
124
115
127
131
129
101
123
146
135
145
104
135
126
132
100
140
140
105
122
149
141
147
138
118
114
150
143
113
130
125
112
128
129
132
103
105
145
126
138
102
148
137
104
116
137
130
143
148
104
136
114
136
146
143
119
130
113
101
136
128
103
142
117
117
127
102
108
116
105
143
131
144
121
117
138
150
126
107
122
120
139
145
112
117
146
134
115
131
140
150
119
144
143
109
114
116
103
121
108
129
117
136
119
140
130
103
133
131
122
131
123
116
135
137
101
131
127
110
121
103
109
118
149
148
145
113
139
141
145
119
114
131
115
146
148
113
118
135
146
107
149
125
119
126
124
130
123
133
120
127
120
110
134
102
127
125
117
133
129
121
137
104
133
114
126
143
120
102
139
132
137
112
129
145
131
135
150
109
104
143
149
111
123
113
108
142
134
120
145
147
129
108
101
148
137
150
113
138
123
145
146
121
135
115
114
113
144
149
142
139
135
144
131
103
115
143
105
146
114
134
143
108
135
130
104
140
101
109
114
117
127
147
120
137
146
147
120
141
147
129
110
103
121
126
122
123
136
116
124
104
127
121
142
114
150
123
148
146
102
134
110
100
113
138
134
136
135
109
109
133
109
135
142
110
136
136
127
107
131
126
125
143
146
135
110
107
140
118
108
139
144
119
134
112
124
124
131
147
129
125
131
111
129
148
110
111
143
110
141
133
123
109
133
107
132
150
121
128
135
106
138
101
110
126
109
106
135
121
129
133
108
123
103
113
105
109
119
130
140
146
109
133
103
137
100
133
137
112
104
114
107
102
115
147
103
109
140
127
133
101
146
128
128
109
141
138
122
138
103
129
131
133
127
147
136
129
111
110
103
110
123
124
136
141
119
124
105
116
117
127
138
113
135
120
123
149
110
116
106
128
149
117
120
119
103
140
134
120
143
106
118
102
114
125
100
139
140
136
120
135
104
146
104
133
102
135
142
109
138
104
108
118
109
117
122
111
101
135
103
120
142
141
146
118
112
132
145
130
116
105
127
107
146
112
120
127
130
134
122
119
120
106
121
130
145
121
110
136
138
105
109
101
148
111
129
133
104
146
114
108
122
128
100
116
147
118
101
138
127
146
138
102
133
129
141
147
134
105
120
113
103
112
128
118
138
127
102
123
149
106
130
107
137
125
149
149
135
137
119
102
149
130
111
141
102
109
117
104
107
119
112
109
129
100
149
108
100
142
145
145
141
118
101
132
142
114
118
142
106
110
123
133
107
103
103
128
134
115
143
132
109
144
134
110
114
140
115
111
135
143
145
108
150
107
143
137
119
100
113
105
140
111
135
142
105
150
116
150
144
117
107
112
116
127
124
118
100
125
114
147
124
111
135
119
103
135
127
144
136
125
140
129
139
120
100
104
109
136
146
149
118
140
125
137
100
106
138
118
115
117
129
133
109
100
101
119
142
112
120
123
120
127
130
132
119
149
133
103
122
120
102
142
120
105
112
108
117
133
135
124
128
100
140
108
115
125
128
136
117
128
102
113
128
132
119
134
149
141
112
124
143
135
104
126
127
102
121
148
137
144
120
112
129
125
112
104
127
114
106
125
136
117
127
136
105
145
103
106
133
133
131
132
130
113
132
113
118
132
103
128
126
118
150
113
121
117
138
138
136
140
106
139
107
148
127
115
108
128
132
133
102
142
114
107
130
116
116
146
147
145
146
150
127
147
126
121
110
127
130
129
149
100
115
110
148
132
144
131
149
111
117
141
119
147
117
110
143
103
109
124
146
136
138
122
132
136
117
124
106
114
106
101
106
128
134
134
118
140
106
132
147
126
109
116
117
143
119
147
146
132
135
133
111
107
115
104
130
104
127
113
125
128
147
112
146
104
145
104
100
145
100
129
133
108
121
150
127
134
146
148
145
115
125
134
140
103
133
128
133
114
137
133
147
141
131
112
114
123
110
135
127
127
114
136
137
118
135
130
142
105
112
149
141
120
136
111
132
123
141
106
135
112
120
106
131
109
139
118
139
140
121
134
118
104
100
109
114
129
132
101
136
135
143
126
119
120
125
148
141
103
111
124
107
144
105
138
111
117
100
119
118
117
142
129
129
112
120
131
148
139
111
111
107
101
119
114
146
108
129
134
127
103
118
112
138
139
137
105
143
104
132
104
105
101
112
105
108
124
141
146
107
145
130
100
121
137
143
127
130
145
109
115
139
111
146
107
136
101
111
133
107
116
146
140
141
125
102
142
137
116
107
100
131
140
128
139
117
106
137
110
109
144
118
133
118
146
128
145
141
149
131
105
150
116
150
144
127
119
138
131
122
125
124
111
115
102
125
120
108
123
129
105
142
107
111
140
108
139
135
108
130
147
114
135
140
136
145
136
115
119
148
126
104
140
122
108
106
134
109
130
137
114
109
107
110
111
128
104
146
109
140
116
115
130
121
120
145
135
112
117
132
106
133
123
124
124
114
133
127
108
140
127
139
108
108
138
131
136
116
140
117
141
114
114
147
106
107
112
129
111
147
138
140
149
136
120
139
120
126
109
112
142
145
138
125
141
149
120
139
109
131
125
104
130
100
100
132
106
121
143
105
116
103
100
114
124
130
150
134
149
116
126
106
137
134
102
124
104
136
109
117
144
123
144
126
133
140
117
105
111
131
105
103
134
119
129
134
117
123
108
106
128
131
112
150
116
102
126
107
148
150
105
141
144
129
126
101
115
122
110
120
101
143
111
104
132
126
145
106
148
102
149
118
130
117
143
132
150
132
127
125
140
109
118
147
110
124
118
106
115
118
120
137
140
148
141
114
146
130
135
106
120
110
104
117
137
141
102
142
100
123
103
140
113
143
115
142
145
125
121
117
144
139
132
133
113
111
137
111
148
109
124
110
141
112
141
112
130
147
117
145
118
132
113
127
141
101
102
106
143
135
122
132
121
125
105
113
120
144
110
109
145
109
143
102
149
113
101
111
130
146
121
122
124
140
118
106
117
128
106
122
101
113
118
133
120
129
147
115
113
110
128
111
123
101
128
139
131
144
137
130
150
116
148
101
108
119
128
148
108
117
110
114
149
108
145
106
105
117
102
111
137
144
106
107
146
141
133
128
142
129
126
104
138
107
122
131
138
113
126
116
148
111
131
111
116
140
108
133
116
107
125
110
115
131
103
142
106
110
125
101
127
105
110
117
120
137
136
139
136
137
143
130
118
140
112
103
126
101
103
113
108
123
136
103
118
148
106
119
150
116
128
140
114
117
142
145
102
137
139
114
103
116
145
130
122
103
135
120
124
104
114
138
110
113
130
112
130
107
112
106
103
117
115
141
128
111
140
127
145
119
100
130
112
118
112
109
131
147
129
123
133
150
117
115
131
137
136
106
106
103
120
126
135
111
145
130
134
128
144
137
102
113
104
102
140
102
114
105
139
140
137
147
133
107
146
122
143
140
133
140
122
101
102
142
101
123
105
101
106
136
147
138
105
105
134
145
147
112
141
123
130
125
140
106
138
103
112
110
135
146
129
115
132
118
119
140
115
126
128
102
112
146
127
143
110
136
104
132
150
131
110
133
126
121
135
102
137
143
134
110
144
108
100
147
111
149
106
148
100
150
101
101
102
141
127
114
116
136
101
118
143
133
119
111
147
145
119
140
145
134
115
120
102
113
129
136
148
135
139
122
103
103
110
149
102
103
141
143
124
119
138
105
127
123
146
139
138
120
127
123
138
104
146
107
120
137
118
131
130
110
118
138
133
128
145
146
142
142
121
136
114
135
105
116
146
122
110
138
132
139
129
139
116
108
142
132
103
121
116
104
115
100
149
129
122
128
116
107
147
144
120
141
113
107
131
123
126
118
117
116
140
130
103
138
122
117
136
128
129
147
149
120
142
130
148
138
125
134
143
105
123
138
139
121
132
148
106
100
128
132
145
108
149
138
147
132
131
110
129
128
143
110
115
113
123
119
143
118
104
104
131
131
111
141
101
149
116
117
132
138
126
127
119
111
137
116
106
116
148
132
146
146
124
101
111
103
112
120
132
147
129
114
115
118
148
126
113
149
120
111
120
150
116
109
114
100
102
110
124
150
118
148
107
112
136
138
140
113
141
101
144
107
122
125
140
130
125
101
122
126
119
108
118
119
137
121
134
141
102
148
108
146
109
142
118
108
137
148
104
133
140
134
148
115
103
110
143
107
139
145
137
110
111
125
122
142
118
103
142
122
145
116
116
116
101
116
103
128
149
133
136
103
149
149
135
142
148
136
111
130
125
146
141
121
120
135
101
123
108
145
102
144
117
109
107
148
106
144
137
118
118
111
101
100
113
116
147
109
101
120
119
119
140
140
109
102
129
115
114
108
141
148
124
124
146
130
111
133
128
142
120
122
133
110
103
145
124
100
100
117
144
107
127
101
105
126
127
104
118
135
118
139
144
123
102
108
137
128
148
139
125
113
147
145
102
109
127
147
106
109
117
139
139
112
117
129
144
104
129
137
109
141
112
108
150
105
147
126
134
106
100
103
119
132
146
125
125
119
108
140
115
125
144
134
114
150
122
129
104
119
123
145
113
117
103
128
118
108
109
141
116
113
150
135
121
128
112
136
112
104
124
148
123
118
142
134
124
149
102
143
128
130
106
122
131
117
102
144
126
103
142
140
127
118
134
103
137
133
136
104
102
118
148
132
138
128
115
133
129
140
104
105
112
102
117
131
138
111
119
132
110
127
135
100
113
127
142
100
136
135
100
145
137
103
139
112
149
100
117
118
112
109
133
136
150
106
121
111
144
138
116
144
117
125
107
130
141
108
110
148
124
114
123
129
139
135
114
125
109
137
146
113
139
121
134
138
124
114
118
137
113
120
108
142
133
136
101
130
103
112
130
140
139
133
121
102
144
126
150
114
115
101
123
145
146
107
142
121
112
119
114
143
136
113
120
146
149
103
107
105
102
117
123
117
108
140
139
110
148
127
101
142
111
117
109
125
112
127
132
128
109
116
143
150
125
132
140
102
149
135
117
108
122
120
142
106
139
100
126
136
103
113
118
143
115
125
133
103
122
147
145
128
104
150
116
106
104
121
134
139
118
127
104
114
123
115
106
145
128
143
138
108
101
110
134
105
132
145
120
106
112
110
138
142
147
114
127
105
139
131
129
116
141
108
138
141
139
106
134
110
136
121
115
149
134
114
124
149
123
106
145
124
119
127
135
150
126
140
100
117
104
144
130
137
144
146
120
147
128
129
145
121
148
106
107
132
116
102
134
117
121
109
106
113
125
108
143
104
115
136
148
100
133
126
112
107
113
125
132
123
138
142
149
118
139
119
141
103
133
102
134
134
100
126
128
145
133
140
107
142
112
136
118
147
137
124
116
131
147
112
105
143
131
127
136
127
102
103
128
130
128
110
112
115
143
103
122
113
118
107
103
125
111
113
103
111
112
128
139
143
129
146
127
146
106
100
104
137
139
150
129
143
144
148
200
196
169
176
188
157
179
198
144
183
185
154
153
196
165
181
155
193
199
143
162
187
145
177
166
140
155
165
143
188
150
143
167
194
140
156
174
153
168
188
190
182
153
157
183
183
145
168
143
195
146
197
140
160
200
146
191
177
150
143
182
152
192
170
183
195
186
176
185
182
149
147
196
172
192
196
190
192
195
167
157
177
161
173
159
189
169
200
173
157
173
177
193
194
170
170
172
172
190
173
182
146
152
173
141
174
197
169
195
154
196
196
145
197
167
187
141
173
183
161
180
151
184
142
143
180
192
197
176
152
199
185
198
166
191
155
148
166
192
193
171
142
151
158
189
175
155
145
178
143
176
165
178
144
164
151
176
171
142
162
173
184
153
179
196
167
172
183
177
151
181
184
199
153
148
147
141
155
177
148
183
160
181
169
194
179
162
145
162
168
196
164
193
192
185
188
185
155
161
153
185
197
173
191
158
164
158
197
156
184
170
186
172
191
161
174
185
163
169
181
146
183
168
196
195
141
157
197
152
193
173
189
146
174
179
180
162
154
170
192
192
176
142
175
164
145
199
174
157
188
149
162
179
170
194
200
172
141
196
160
174
159
154
194
164
148
146
146
154
173
165
158
162
160
168
196
162
155
175
198
175
200
189
159
191
177
191
172
145
147
181
173
176
189
149
156
155
166
167
178
142
176
147
195
164
159
144
163
179
161
188
145
146
173
171
162
163
199
200
143
193
147
148
188
168
158
171
142
160
141
191
141
198
149
180
144
140
166
152
167
166
154
191
199
200
143
145
177
156
149
143
199
183
171
190
165
191
149
144
175
155
188
195
156
166
200
148
172
197
143
154
200
164
167
193
194
194
181
156
189
151
150
151
190
170
140
200
166
195
157
143
178
161
176
182
178
196
186
143
165
145
143
159
196
178
180
199
151
179
163
144
157
175
191
170
166
168
187
195
183
169
153
169
180
194
168
193
179
187
173
146
179
184
145
166
164
140
191
188
199
167
157
174
187
184
180
155
181
181
162
176
165
149
192
157
182
198
157
199
145
155
195
149
169
167
188
145
173
164
171
179
157
182
192
178
183
148
154
147
153
199
154
200
145
170
146
193
145
141
177
155
191
151
159
188
174
171
159
157
167
147
162
167
180
176
183
148
163
162
200
144
199
164
185
185
199
152
197
168
171
161
142
152
174
179
153
140
153
172
188
153
185
150
196
146
177
167
186
157
191
146
190
157
170
199
147
153
141
164
187
183
178
185
142
196
200
199
166
172
200
167
159
147
170
184
181
162
159
161
190
145
151
159
183
188
148
191
186
163
147
200
199
165
171
159
193
160
178
153
164
196
184
162
165
141
188
166
164
182
146
196
161
154
195
197
168
198
198
199
161
185
199
197
176
157
154
174
149
177
193
178
173
197
180
150
165
168
168
150
181
154
168
167
140
149
181
194
154
200
175
151
164
198
145
172
180
192
175
169
187
199
193
183
159
158
151
156
154
156
169
153
184
184
176
183
199
142
142
143
160
151
186
173
184
140
186
140
156
163
183
196
141
189
145
156
194
169
170
197
194
147
180
146
178
197
172
175
172
174
176
192
193
197
193
158
151
181
195
195
157
144
199
147
158
176
173
143
144
162
150
195
184
161
192
141
163
185
194
157
189
166
141
149
164
181
145
143
172
181
187
170
152
149
182
157
150
179
181
169
198
196
159
184
196
170
186
176
191
171
143
145
165
157
183
199
176
186
171
173
159
199
194
170
154
153
160
164
178
168
148
182
196
155
182
193
154
198
184
163
159
172
149
143
193
140
150
147
147
145
143
183
197
197
168
162
181
181
155
165
200
199
140
194
159
142
186
150
186
176
176
192
189
192
159
200
193
193
141
185
149
174
147
157
200
188
157
151
170
147
194
149
200
151
197
144
169
167
157
181
181
160
171
190
160
171
191
177
184
156
187
153
150
171
156
171
169
166
154
147
157
144
197
186
162
141
182
196
164
150
144
194
176
178
159
176
181
184
175
186
151
175
161
163
185
191
162
190
168
198
181
153
157
169
169
147
185
168
185
143
183
140
151
172
169
145
176
164
141
168
151
187
182
145
147
140
152
144
196
158
170
167
149
141
192
188
161
180
199
178
161
168
164
181
156
166
144
196
195
181
167
180
185
160
140
164
185
174
160
163
199
198
169
173
176
174
150
178
168
193
191
174
157
165
198
142
170
158
157
163
169
176
140
146
142
196
161
191
192
170
154
149
142
166
176
199
193
190
200
191
155
175
144
187
164
170
196
180
176
162
193
158
170
161
179
187
171
197
167
153
143
152
142
186
176
191
151
150
198
196
200
186
148
191
194
160
196
144
200
185
152
143
198
169
190
195
193
193
170
188
187
188
146
146
179
199
185
151
140
193
156
182
143
152
143
172
187
197
150
193
192
163
186
163
148
150
197
151
158
176
154
146
157
173
154
158
176
154
154
164
175
171
189
195
199
191
158
162
182
170
157
195
148
148
167
162
151
159
180
192
175
157
173
147
154
163
190
197
180
197
181
162
161
194
163
196
174
184
199
145
186
176
164
193
150
144
173
165
162
142
141
196
179
149
190
161
195
200
144
179
191
158
175
173
173
167
173
199
174
181
193
186
153
175
189
180
149
140
165
175
174
196
183
164
150
196
190
157
147
171
196
167
145
162
194
162
179
193
194
143
160
196
167
141
180
167
162
140
188
150
141
179
182
163
142
183
154
183
185
161
185
191
160
189
200
171
182
161
154
170
187
195
171
188
169
147
144
163
155
192
171
164
188
153
150
191
152
194
160
184
157
193
192
185
169
141
193
164
169
151
145
186
164
166
196
181
160
153
179
146
172
178
151
154
199
186
180
149
143
197
169
176
197
173
150
174
172
188
157
199
170
146
144
157
174
173
189
182
191
186
179
193
169
197
151
196
178
163
179
185
163
190
141
199
197
174
195
190
142
165
144
145
175
167
165
185
180
172
167
199
169
154
195
156
174
179
163
154
148
186
176
190
171
151
193
155
187
164
190
164
149
193
148
160
148
194
147
183
153
150
186
173
177
187
173
177
194
198
140
148
177
191
188
182
167
169
141
170
165
166
156
180
183
169
151
156
186
143
165
162
188
154
159
185
182
160
154
156
195
150
177
162
198
166
174
188
161
168
166
200
197
194
175
191
164
168
189
148
182
165
152
164
172
168
185
168
180
170
177
176
148
172
160
181
142
185
176
197
185
180
187
185
185
199
197
194
168
173
144
170
149
181
148
180
190
154
144
173
162
200
164
167
144
153
162
161
166
198
166
165
185
192
142
141
162
191
191
154
159
194
175
192
164
172
149
143
185
188
175
161
196
142
168
188
171
194
171
193
148
171
195
143
140
175
181
145
142
162
161
198
169
147
161
144
189
143
186
145
177
176
191
163
170
199
193
179
198
165
184
160
141
170
197
165
151
190
190
144
164
163
174
152
180
147
173
164
170
150
197
188
170
143
144
142
182
194
171
199
197
191
173
186
144
180
163
181
170
167
197
186
151
172
173
178
143
165
172
189
196
180
177
141
167
185
171
164
161
190
144
161
149
178
181
149
174
191
196
195
151
141
167
179
158
152
172
165
196
182
177
190
162
188
140
172
198
152
165
149
161
165
166
149
145
165
170
180
145
184
153
188
140
162
200
144
173
166
185
144
149
185
146
155
148
142
143
157
148
154
140
183
165
186
156
177
167
182
173
148
143
195
148
195
169
166
175
170
181
156
158
193
156
166
151
140
166
168
159
155
197
194
190
157
195
156
157
173
160
151
150
152
176
193
147
167
157
191
160
175
170
199
184
156
164
162
187
162
172
156
171
188
162
190
162
147
140
173
178
193
197
145
141
169
181
169
179
156
172
145
147
194
141
188
177
178
178
163
173
171
151
148
183
169
178
144
190
189
172
144
193
190
151
195
172
148
170
199
194
194
196
193
195
149
170
165
149
149
164
188
184
177
158
170
156
160
200
200
156
194
159
150
150
193
180
175
183
140
165
166
175
150
192
170
186
149
196
143
157
149
161
163
155
140
150
186
200
174
198
182
195
149
146
192
198
159
196
178
166
140
198
159
178
165
184
159
194
147
153
159
140
155
196
167
171
195
177
160
179
191
156
153
193
168
143
167
197
184
178
194
156
177
158
194
169
143
179
149
145
195
188
171
171
151
180
151
170
158
146
181
156
142
169
149
196
168
195
177
176
145
150
165
195
148
195
175
145
174
183
197
151
173
189
194
142
172
151
155
179
174
154
159
188
159
150
174
176
161
165
152
189
176
166
173
193
198
193
155
155
151
188
140
151
177
142
159
190
193
144
196
187
183
180
176
195
194
166
145
180
197
196
187
155
152
176
173
140
164
198
164
200
189
167
198
150
143
148
193
196
142
200
147
158
141
158
168
186
147
185
182
183
180
183
181
186
193
163
157
155
186
171
150
157
175
184
199
192
185
184
181
177
181
197
151
197
200
184
146
146
150
175
191
147
180
184
195
162
189
156
155
145
194
172
169
167
187
200
194
145
163
187
140
143
198
141
169
197
160
147
179
158
199
149
173
147
150
159
172
176
192
143
200
161
190
191
193
166
167
170
163
200
162
189
162
184
175
195
180
197
194
150
171
182
200
184
161
158
183
189
195
152
157
174
184
177
144
200
160
150
145
153
154
196
141
170
193
172
144
200
141
149
163
196
141
200
147
160
174
155
186
167
164
154
190
168
152
150
147
143
141
156
159
161
178
141
163
190
192
148
199
155
149
146
197
143
168
185
155
150
163
169
143
156
195
171
176
170
200
164
155
200
146
191
168
197
163
186
191
144
164
191
192
194
198
200
172
171
179
142
159
196
145
174
165
140
197
171
190
176
197
177
190
162
141
145
156
146
164
148
145
140
149
180
194
174
142
173
146
164
185
163
179
152
166
185
176
154
170
173
149
171
198
171
182
150
161
170
168
199
142
177
194
197
173
140
146
154
197
147
200
152
183
166
146
185
183
169
191
159
164
164
187
167
148
153
164
156
190
194
152
173
169
187
158
146
181
170
187
140
165
181
174
168
196
157
159
187
156
171
153
182
168
165
156
193
148
170
151
185
142
187
189
164
158
193
182
193
196
159
190
158
153
198
155
165
159
175
185
142
184
197
164
143
166
189
149
185
184
195
181
145
161
174
144
185
198
198
143
163
149
196
187
143
184
174
149
167
147
187
194
196
172
199
194
181
150
163
149
172
196
150
141
154
154
155
200
188
150
142
156
182
175
155
188
154
173
193
175
167
176
181
166
182
158
161
171
192
196
190
149
198
197
142
140
151
155
200
140
184
195
175
180
174
175
196
181
176
178
161
167
187
179
142
154
161
160
172
166
154
149
145
146
164
144
199
191
196
142
195
177
145
170
152
165
197
171
164
183
167
168
164
166
156
165
155
163
179
148
140
196
168
190
169
159
198
152
190
147
171
156
140
182
172
189
191
163
187
141
196
200
190
186
184
147
196
187
155
163
196
140
173
186
181
177
188
184
158
143
182
159
183
158
156
200
149
168
192
178
173
158
163
181
181
147
156
197
162
184
169
197
144
175
154
199
152
180
145
188
141
178
171
167
184
145
182
167
198
145
175
175
163
179
148
192
158
176
159
194
168
169
200
153
156
171
164
179
159
200
187
147
150
182
193
146
168
181
193
175
166
180
153
174
177
195
174
149
154
176
188
155
153
145
188
173
180
149
190
187
141
181
198
193
174
141
191
141
197
185
147
183
183
175
183
159
146
169
179
153
190
149
147
200
141
146
149
177
149
156
162
148
194
166
160
192
140
161
172
180
199
149
168
165
185
163
149
187
198
152
159
179
161
175
186
148
159
145
152
146
140
187
191
174
148
156
172
157
143
151
147
175
177
155
191
189
195
197
161
175
190
170
181
193
166
140
196
143
168
141
169
197
160
174
194
142
163
165
167
165
158
170
163
192
152
154
170
181
188
198
171
152
198
177
163
182
159
191
141
158
190
190
193
190
184
159
165
192
142
145
167
186
187
195
188
184
167
151
174
185
173
161
170
182
174
152
168
170
166
190
185
181
174
170
167
159
180
166
149
160
154
144
178
147
178
144
194
148
157
166
160
143
188
195
140
140
141
192
161
158
171
140
151
196
161
160
167
172
198
191
168
196
148
171
174
156
188
164
172
198
163
162
172
197
193
188
151
186
166
200
180
174
160
165
150
158
166
150
181
144
142
199
166
141
154
198
169
169
152
142
155
145
191
169
182
160
166
148
172
199
182
174
140
154
145
184
154
141
171
150
181
175
161
197
157
181
183
175
187
178
183
153
177
175
151
154
168
189
180
178
197
142
172
170
161
171
184
161
198
176
146
143
147
190
171
157
191
156
191
162
190
151
183
181
168
162
190
188
184
191
140
160
144
167
185
192
182
153
179
181
153
200
144
180
177
149
180
153
177
164
174
184
161
186
175
180
153
147
180
183
186
186
196
153
200
152
200
145
156
186
165
194
157
175
191
200
152
160
161
185
174
141
197
144
143
170
172
144
165
169
143
174
183
195
178
144
140
179
166
140
191
156
197
184
141
197
159
178
163
148
190
179
197
170
200
182
182
153
174
190
187
197
155
169
157
176
195
147
194
140
188
154
189
192
159
185
154
189
196
177
140
156
200
196
169
178
151
178
161
148
180
172
190
180
194
170
146
160
168
149
143
174
190
157
149
147
180
189
194
158
144
177
162
173
163
191
179
153
167
199
168
169
149
189
144
192
146
196
192
175
195
199
174
157
182
186
160
149
164
197
156
176
191
185
177
142
144
146
174
158
192
142
195
184
150
148
171
176
183
182
200
192
185
184
177
159
179
161
148
156
149
153
152
143
153
170
195
152
173
168
168
180
179
140
174
174
175
193
191
182
187
162
140
187
162
172
142
184
163
172
149
162
178
168
175
160
148
164
145
190
174
190
170
170
148
156
158
181
189
194
146
161
186
164
163
188
142
184
171
149
196
140
166
168
141
165
153
166
178
190
163
157
186
181
163
143
196
175
156
150
140
190
188
182
163
199
154
153
173
178
163
194
147
174
190
151
146
155
170
162
171
159
142
156
176
173
197
176
195
183
184
181
169
170
170
146
175
142
173
150
157
193
168
183
181
192
161
193
200
156
167
142
195
167
154
143
188
167
151
143
170
194
140
162
148
186
149
168
147
142
198
157
180
158
166
140
195
181
151
176
189
194
146
174
184
192
156
160
196
164
160
157
142
185
148
171
153
169
171
147
192
186
159
179
149
154
140
196
179
143
200
172
179
141
185
186
140
191
186
156
145
192
169
142
197
145
179
189
155
187
178
143
165
192
187
178
174
173
196
194
157
181
174
177
184
171
158
155
188
166
183
155
159
168
140
154
158
158
187
174
155
193
155
159
188
172
171
174
196
144
182
173
195
179
197
160
193
161
175
181
146
182
150
140
199
174
143
156
156
157
155
161
192
184
153
199
181
140
156
184
190
175
142
184
163
200
190
187
188
167
181
172
181
172
190
158
151
191
145
163
180
155
148
180
142
167
195
162
196
193
149
189
198
166
145
185
179
179
165
189
144
170
148
198
164
146
175
200
148
146
144
156
174
145
163
147
184
179
192
171
157
162
166
194
171
175
169
154
189
181
180
182
192
157
168
165
177
150
172
177
157
196
175
179
141
152
171
171
179
161
144
155
175
182
192
197
176
151
143
188
187
157
190
187
159
153
166
142
173
167
190
172
177
166
161
199
192
174
191
165
174
191
165
164
154
149
168
178
160
196
155
148
172
160
171
169
174
157
164
146
195
192
195
157
192
151
147
156
170
181
141
182
167
154
164
164
188
145
149
196
169
169
176
187
180
199
142
159
174
198
179
152
198
170
176
189
168
199
169
145
193
195
196
180
142
142
160
159
161
140
197
184
151
195
174
168
192
149
145
171
170
183
187
147
141
200
181
189
178
181
158
171
166
197
145
196
175
143
148
149
176
162
188
170
172
175
164
144
189
184
195
169
198
189
151
196
199
143
153
185
171
158
151
153
146
158
154
149
168
180
170
175
189
160
198
183
161
148
177
148
171
163
198
185
195
146
154
175
168
194
155
160
194
189
161
194
172
155
169
150
181
153
185
194
190
173
147
181
166
179
163
145
170
141
170
199
140
172
189
168
143
162
182
163
154
156
173
161
152
172
191
156
186
200
144
172
164
191
149
187
158
198
172
200
158
189
155
165
143
170
184
147
143
157
145
153
167
187
164
145
183
184
194
192
165
149
157
180
186
177
165
152
164
173
161
192
181
150
182
152
190
189
140
150
155
176
182
180
176
179
148
189
152
144
150
142
149
152
150
162
193
161
186
160
179
142
148
175
160
145
166
164
185
196
168
177
172
151
182
150
186
165
149
199
172
168
188
194
149
178
149
146
180
198
146
149
176
160
180
183
157
158
159
187
153
147
196
197
149
152
169
194
176
149
158
187
140
167
157
162
156
192
189
166
171
150
186
191
196
200
142
154
185
146
178
145
179
171
192
188
199
168
144
185
193
171
150
178
188
169
149
146
162
166
168
152
167
173
155
147
153
163
185
190
164
184
193
174
148
190
185
186
167
180
183
168
155
150
176
166
172
162
170
185
182
181
176
141
159
186
192
174
181
168
148
182
184
173
180
170
200
198
163
197
166
183
180
174
175
190
180
162
141
192
159
147
169
167
184
151
163
168
186
147
180
185
188
141
163
187
170
152
183
156
178
151
196
176
187
160
162
187
179
155
146
158
189
157
140
148
177
185
161
164
187
158
152
146
187
155
168
144
157
148
193
184
174
176
157
181
189
194
152
152
174
177
158
175
172
189
157
162
155
155
172
143
191
178
177
149
158
155
152
161
189
154
177
192
153
169
194
166
156
192
151
169
184
151
186
159
172
169
172
158
145
162
165
174
200
192
181
185
170
157
152
195
150
165
190
168
189
159
191
166
187
179
142
184
170
151
163
191
143
146
176
199
197
170
177
165
147
162
162
177
187
156
169
178
195
171
143
140
167
172
157
192
162
199
160
152
182
144
176
190
181
165
164
155
161
143
142
192
150
156
186
143
198
179
189
150
158
152
146
142
168
158
189
172
142
147
192
195
187
143
185
181
176
173
191
181
170
180
165
177
154
181
184
162
150
152
183
177
148
162
158
158
142
194
150
153
166
161
172
200
174
187
199
167
179
159
197
143
170
157
151
149
197
140
186
192
174
143
150
151
192
162
170
161
176
148
183
158
168
145
174
175
155
166
187
169
160
150
185
190
161
140
175
150
196
141
169
156
183
168
177
140
148
141
181
172
163
171
174
140
160
170
161
149
165
168
141
179
174
189
141
156
160
142
159
181
159
146
166
193
186
158
188
144
176
162
165
144
143
165
174
140
172
159
175
161
177
189
177
170
170
187
181
159
191
143
148
152
177
160
158
199
162
198
140
174
166
191
194
183
142
193
154
162
141
179
141
183
197
194
182
181
199
170
176
180
197
191
149
142
164
179
193
200
165
197
199
200
183
179
182
161
154
170
160
140
168
183
165
161
141
200
167
159
156
148
176
187
146
171
151
200
166
188
142
154
171
145
161
199
186
172
150
148
170
193
166
168
189
159
153
187
158
180
164
145
147
154
180
190
188
191
176
167
186
177
172
197
148
161
176
175
157
166
184
192
152
159
154
151
178
195
159
184
163
200
159
177
163
144
155
157
159
140
164
144
193
194
190
143
171
150
178
163
172
175
174
173
191
192
174
146
142
193
192
140
190
164
196
193
187
182
200
149
155
187
176
181
156
171
200
173
177
166
143
162
148
194
156
166
166
186
172
190
167
166
179
163
145
151
174
155
153
180
156
169
169
198
197
188
188
162
158
147
164
151
187
148
145
169
144
141
163
156
146
199
164
145
192
179
187
155
153
196
168
176
153
140
177
156
142
152
169
159
194
175
147
182
158
152
159
152
183
195
192
183
188
152
194
156
172
169
152
148
163
160
147
167
147
158
190
165
180
167
146
153
174
185
159
160
181
163
159
195
145
152
166
142
143
163
165
194
199
167
142
189
152
140
151
164
164
199
176
179
172
158
162
189
140
189
180
195
188
178
187
170
177
195
181
173
175
163
166
195
153
151
160
194
166
154
177
171
164
154
168
188
151
195
183
178
180
166
163
187
173
182
184
158
155
145
192
151
151
161
191
188
164
164
195
182
177
159
186
157
143
199
179
158
170
145
186
191
192
140
173
156
153
152
140
194
146
184
166
198
188
195
173
142
200
145
183
179
163
170
188
185
192
188
190
189
148
175
154
146
169
191
144
142
192
186
152
189
142
169
188
196
150
169
159
179
196
180
183
170
185
174
177
148
194
169
143
160
186
186
140
169
200
190
177
195
186
148
188
187
173
145
186
165
161
170
173
177
147
149
199
142
166
147
160
190
158
196
161
156
146
141
140
150
143
161
200
143
195
141
140
194
181
181
163
172
198
151
170
148
154
173
187
163
161
167
194
163
188
191
167
150
184
161
171
155
168
141
176
156
184
162
178
164
178
195
168
152
166
186
152
164
200
199
166
196
143
155
149
186
148
171
189
185
198
153
176
177
173
194
161
158
177
160
177
156
180
186
159
166
200
149
194
171
146
149
195
141
164
184
164
197
166
147
143
148
140
155
164
168
147
152
178
166
184
153
180
164
158
150
160
193
160
199
169
153
153
179
194
184
153
175
155
174
195
185
150
179
185
193
143
156
182
177
184
194
196
176
181
181
181
169
186
196
163
193
199
199
195
166
156
146
197
176
189
147
165
178
194
193
165
193
200
158
157
198
160
173
168
178
141
170
197
184
152
199
176
178
155
165
167
152
179
200
164
197
163
191
193
174
190
194
144
186
159
155
179
186
169
188
200
166
186
176
145
171
174
159
157
148
192
172
180
198
146
163
190
196
164
168
196
188
149
153
193
150
169
146
188
194
171
157
186
188
182
185
194
140
176
190
187
163
142
142
179
166
166
185
181
186
195
179
188
144
167
186
145
148
171
174
160
154
176
196
163
191
164
144
197
160
174
187
144
161
179
164
169
191
167
156
178
179
158
198
174
190
169
164
155
158
159
182
187
166
153
199
162
149
140
162
196
143
142
152
188
175
175
161
192
159
176
164
184
184
169
196
153
141
151
180
176
196
151
169
175
174
146
156
142
185
197
178
159
162
180
162
177
149
199
187
181
178
192
173
167
187
165
169
159
149
162
199
143
141
148
166
180
144
160
162
147
158
170
142
189
140
180
195
177
141
185
146
175
191
190
184
140
150
140
165
165
153
178
145
153
152
187
146
154
165
190
141
192
190
164
189
170
199
193
194
168
186
155
154
160
144
153
157
175
143
169
153
157
165
152
140
188
175
199
175
144
148
186
178
180
198
148
183
178
151
157
182
168
182
141
197
164
157
162
195
180
183
141
142
180
195
197
154
174
167
196
191
160
173
189
189
170
140
157
157
154
181
192
195
155
174
170
178
151
141
159
171
175
192
197
143
176
200
195
149
156
142
147
167
184
195
197
142
174
179
174
189
162
187
156
184
177
172
162
181
166
159
190
172
189
174
199
190
142
157
183
147
153
140
180
190
157
157
153
175
194
153
189
152
196
197
180
177
187
169
165
157
162
168
192
195
187
186
154
145
157
177
195
177
195
141
166
180
157
178
144
150
144
189
146
150
159
177
171
169
186
198
196
185
200
147
157
174
160
165
169
166
198
194
159
141
146
148
196
163
198
180
177
146
147
194
159
175
191
171
155
195
165
166
145
145
153
143
190
184
168
174
175
197
200
159
180
160
159
149
158
166
163
163
173
163
156
178
196
151
177
143
155
153
170
191
175
166
195
164
150
169
149
176
175
195
189
199
181
183
161
187
184
183
199
186
194
188
196
195
174
167
158
158
167
152
153
189
154
179
200
165
176
163
154
188
143
148
199
182
192
143
169
193
186
180
162
153
158
149
187
141
160
178
174
191
154
197
192
199
188
165
163
187
166
148
153
193
200
150
166
145
175
198
178
169
184
197
183
182
174
196
179
192
159
149
144
168
155
168
155
140
197
150
192
173
160
166
160
188
180
188
187
143
188
154
156
186
170
161
166
145
155
170
195
155
181
145
163
177
153
195
192
199
161
194
144
170
156
193
177
187
162
196
195
162
159
171
145
141
149
151
175
157
183
193
172
145
179
194
161
169
191
146
191
189
191
198
158
146
147
199
199
153
159
175
164
183
168
163
180
160
144
175
159
187
166
160
167
151
182
172
159
148
166
165
193
186
189
147
149
140
163
163
167
157
184
145
193
141
158
188
184
171
179
169
147
189
157
153
190
195
153
174
147
156
141
199
190
190
183
146
161
200
152
196
171
200
187
177
180
196
153
194
161
170
190
142
158
142
178
194
183
140
167
184
171
189
200
162
159
181
177
177
163
178
181
140
157
151
166
185
168
185
171
199
150
143
145
175
149
183
199
181
153
187
192
172
165
148
146
156
190
144
196
195
199
164
155
148
144
197
197
168
172
165
182
155
194
155
147
197
148
167
173
200
163
151
188
145
141
172
152
150
197
182
162
181
194
145
175
160
187
188
185
166
177
154
143
167
154
184
157
159
200
169
175
174
177
164
190
169
162
196
157
174
163
162
193
181
151
167
175
191
166
183
169
200
174
154
161
142
154
147
160
173
198
172
161
179
174
152
146
190
183
177
154
155
175
176
194
174
181
159
182
182
140
160
188
151
189
166
196
197
178
150
149
147
174
149
193
179
185
192
157
145
175
196
184
173
163
180
165
156
170
166
163
187
189
164
147
155
146
146
177
148
197
195
198
150
140
176
183
154
174
186
187
188
168
168
152
199
162
152
179
140
148
188
143
180
170
171
151
195
176
155
145
151
166
186
148
169
174
160
199
168
143
192
176
142
161
152
186
156
153
193
161
180
141
158
140
174
184
174
174
166
190
175
164
174
190
153
180
175
196
196
178
140
142
163
148
192
187
165
198
200
173
181
181
166
168
165
195
173
155
140
199
159
159
178
173
192
198
144
159
171
178
180
149
159
144
184
191
172
185
160
199
193
198
190
194
168
142
186
147
189
183
176
177
192
191
157
147
188
140
140
164
199
152
172
156
158
182
173
189
172
147
178
153
158
176
179
152
166
169
196
192
199
187
143
149
155
169
162
176
148
142
151
146
151
167
190
153
175
168
188
151
156
141
181
176
173
187
151
143
193
194
141
143
170
156
200
197
179
157
193
153
175
176
150
166
176
173
165
191
158
166
161
170
166
173
182
151
181
150
157
155
199
186
184
187
155
158
198
182
184
178
150
162
140
142
141
147
146
147
148
168
178
163
155
140
152
177
164
165
175
143
182
152
188
183
193
190
152
171
182
166
142
165
175
158
162
186
154
175
173
159
159
173
195
152
183
176
200
142
186
191
178
154
140
169
197
177
161
185
144
173
174
143
155
181
163
172
171
149
174
143
187
193
158
197
152
167
174
190
157
180
166
152
161
189
182
168
189
157
150
183
158
152
150
197
194
155
200
179
195
166
186
140
158
193
195
151
176
198
193
191
182
145
197
168
189
189
198
197
153
155
151
150
193
150
192
156
192
183
157
184
144
159
166
165
154
188
149
157
153
152
167
146
156
193
180
177
198
179
167
147
176
176
150
150
164
161
198
171
193
174
174
151
190
165
154
174
191
151
177
163
171
168
187
199
140
198
174
195
192
157
193
171
167
171
192
177
163
171
169
160
161
164
171
147
192
171
198
166
163
171
169
150
160
141
148
150
176
144
194
179
176
161
190
152
181
199
199
154
160
148
180
146
151
176
175
150
156
192
156
187
193
192
189
142
195
173
175
160
171
171
169
159
148
146
198
197
196
159
156
197
151
195
145
161
161
189
172
140
144
188
185
195
179
178
180
145
183
173
165
148
140
148
195
172
150
194
181
185
190
178
184
181
183
183
171
142
188
144
170
148
159
181
170
196
144
141
172
179
177
183
182
170
186
158
163
148
169
142
154
156
159
158
184
152
149
165
154
196
182
185
145
159
162
168
192
192
150
184
172
190
158
177
195
180
169
169
178
151
168
191
153
172
192
167
155
164
192
140
160
173
194
192
200
169
186
199
200
143
158
158
191
182
162
155
182
142
184
163
152
199
172
199
172
186
185
148
144
174
140
162
167
158
159
177
174
152
140
147
158
179
178
181
199
153
199
188
141
146
140
143
200
147
196
165
175
152
147
191
146
161
168
173
149
153
150
141
154
172
164
146
197
155
191
171
163
196
150
149
156
199
156
167
149
179
197
152
144
162
164
165
187
169
191
196
151
189
181
185
172
169
163
200
146
173
167
177
189
169
184
147
167
147
159
186
152
198
181
144
156
142
152
175
155
152
166
160
149
178
178
161
200
142
199
173
150
164
179
197
191
192
185
140
197
178
183
172
168
195
183
198
160
185
179
187
142
172
170
172
200
195
182
158
199
164
143
183
141
184
169
153
163
156
178
190
192
188
182
166
178
143
171
158
174
145
159
163
150
150
168
168
153
185
167
176
196
155
162
191
194
183
172
188
169
199
189
141
151
143
167
167
146
176
143
200
171
175
175
185
200
166
159
183
165
179
145
168
199
196
166
189
170
200
153
193
174
185
147
200
170
162
188
159
200
164
189
164
143
142
156
141
167
172
147
150
198
173
195
140
177
175
170
151
198
156
165
174
172
152
179
196
153
196
166
152
188
158
140
142
169
183
151
147
185
141
165
165
143
189
169
170
197
171
189
178
164
183
181
192
150
181
146
153
198
153
163
147
154
144
162
151
145
152
180
178
194
181
151
170
159
162
169
164
197
162
172
188
192
180
176
173
197
152
151
184
194
187
185
165
176
176
151
152
159
167
196
173
172
162
163
181
171
159
171
197
155
165
189
171
192
168
163
154
197
188
145
161
175
184
155
162
194
198
176
182
151
157
188
142
157
171
196
151
165
184
163
185
141
184
200
155
196
173
196
141
171
194
189
146
176
154
197
141
191
179
163
182
152
176
190
142
186
172
174
149
181
155
147
171
160
175
180
194
146
154
159
169
151
165
151
145
171
150
190
164
185
176
150
152
173
188
144
144
153
175
152
165
153
168
197
158
176
167
182
190
159
151
200
143
181
170
158
186
154
147
142
166
198
165
174
147
195
190
147
175
161
184
191
185
164
166
178
168
173
186
179
168
171
181
142
148
178
145
173
193
198
178
148
189
156
173
156
172
171
168
189
181
144
158
199
185
175
179
142
152
147
178
188
199
149
148
167
163
190
157
172
198
198
160
173
156
144
161
143
147
183
184
156
169
168
154
198
144
190
165
191
158
151
172
150
158
142
176
162
166
199
159
150
159
140
191
164
177
161
163
157
154
198
176
173
172
188
151
164
183
179
180
169
177
142
170
149
177
174
181
152
159
198
173
182
194
160
169
164
178
154
171
185
189
142
157
178
152
148
168
141
152
148
199
166
162
160
165
164
141
167
152
189
143
188
195
156
149
157
146
145
165
181
147
196
143
199
184
141
194
184
161
143
198
200
150
173
150
181
158
142
176
193
171
180
189
196
162
192
146
194
177
153
184
183
159
164
155
150
185
179
168
191
187
149
193
192
148
193
170
192
186
155
183
194
161
140
174
154
194
152
175
181
159
165
178
167
143
200
192
199
195
167
156
187
151
160
180
142
154
154
151
196
147
164
193
170
160
195
145
159
171
140
146
165
171
145
152
150
175
183
200
189
143
155
158
144
181
195
171
182
186
183
163
153
140
145
167
196
146
153
165
185
190
195
166
181
171
167
187
185
157
179
153
172
158
158
165
185
157
174
186
151
151
184
158
193
167
197
155
159
159
197
191
168
159
196
173
170
193
192
189
158
161
178
179
150
195
145
148
152
178
183
166
179
168
186
173
174
171
175
197
149
188
195
153
192
182
181
159
170
153
170
177
160
177
196
164
170
170
189
191
186
200
172
161
160
193
195
163
167
162
146
157
168
187
199
193
168
173
142
192
185
164
198
178
187
140
164
153
157
149
149
177
183
153
174
178
194
150
152
167
171
193
175
150
158
174
198
185
197
157
175
194
154
195
165
169
195
192
144
187
185
143
182
198
184
157
153
196
191
157
180
161
154
194
155
152
180
189
177
155
146
151
159
172
157
192
181
186
192
196
195
190
194
185
185
193
151
192
159
150
145
147
188
181
158
180
193
197
187
171
171
159
188
199
167
198
199
155
193
159
141
198
151
140
169
197
178
165
170
164
187
187
200
144
157
150
198
150
177
184
144
179
140
141
195
165
153
192
147
170
193
175
161
182
190
195
155
153
158
165
178
150
168
192
143
168
143
199
160
184
140
177
194
158
146
182
178
152
142
178
142
181
171
149
157
159
166
161
189
141
197
156
169
179
147
152
156
143
145
158
164
141
167
196
176
174
158
158
154
158
163
195
183
188
165
169
164
180
185
145
182
179
159
159
164
170
157
188
150
151
156
149
180
142
150
183
151
144
168
169
176
154
150
187
199
179
174
199
150
179
189
189
141
163
151
173
185
150
174
198
175
187
170
148
191
198
151
148
192
145
173
196
140
197
192
167
117
127
114
139
145
106
147
142
139
114
110
105
128
100
149
129
131
138
148
109
140
136
143
150
121
126
111
126
150
146
100
106
140
149
113
122
109
125
123
141
107
100
121
102
138
130
150
111
123
115
114
119
113
100
131
146
140
114
104
135
139
141
129
132
141
140
125
145
127
125
138
122
134
148
148
125
145
102
131
105
139
127
134
107
125
100
147
139
143
133
143
142
146
138
138
108
101
113
120
144
108
118
123
147
148
149
118
122
130
129
131
114
104
130
111
107
146
148
128
121
131
113
106
147
147
131
114
144
113
126
143
131
142
121
127
135
123
126
111
109
102
144
136
122
115
110
124
136
139
119
125
143
137
111
126
122
132
138
114
148
108
118
114
120
102
133
127
124
107
132
131
101
115
132
141
107
133
130
140
107
122
123
144
124
116
122
104
123
108
148
126
148
112
147
109
136
136
139
105
125
147
106
133
115
109
143
128
115
127
124
101
102
108
103
149
116
122
103
144
108
148
125
110
150
147
140
129
144
115
116
114
125
143
113
149
136
109
135
134
119
137
119
138
127
147
143
139
146
138
144
125
117
150
129
147
150
127
147
140
142
115
147
114
116
102
100
132
114
103
102
105
118
139
133
107
121
146
140
129
129
129
124
140
139
137
138
142
126
129
133
111
114
149
101
103
112
122
109
100
111
106
128
127
130
111
104
115
132
106
105
133
103
101
117
105
143
104
122
108
122
109
112
146
103
131
109
150
108
134
102
131
131
148
148
138
108
113
108
123
119
104
134
101
124
110
107
107
139
108
120
108
101
115
146
123
149
144
150
118
105
143
143
144
104
117
143
102
137
133
117
122
119
100
138
129
119
100
104
122
107
108
103
120
107
148
128
129
130
121
147
116
117
146
120
147
129
124
114
150
102
142
150
126
139
110
140
126
104
135
138
110
111
139
134
116
120
119
102
110
112
105
120
132
150
122
104
136
139
149
138
122
111
127
102
136
108
127
100
103
144
124
135
104
122
125
126
118
104
131
118
139
125
113
114
134
139
126
139
112
131
131
149
111
141
128
102
113
101
102
107
128
115
112
126
108
149
144
103
135
117
123
129
137
101
131
124
119
104
100
140
129
119
126
107
102
127
150
122
103
148
121
116
136
105
121
101
144
145
126
134
103
106
131
118
102
113
131
129
107
113
125
139
106
145
143
129
114
123
106
125
126
118
148
132
111
113
123
105
107
134
114
136
136
104
120
115
126
149
144
131
108
122
123
104
141
119
132
127
114
135
113
139
127
138
111
147
117
121
125
145
147
133
102
118
126
108
110
105
124
116
134
111
101
136
141
100
119
145
124
133
103
104
115
131
125
126
131
140
118
107
127
126
106
134
134
128
109
150
111
138
100
127
132
132
105
121
101
108
103
113
124
127
113
149
134
105
113
110
115
104
143
100
148
114
134
145
108
118
120
100
140
129
146
109
104
118
142
110
109
133
137
139
124
120
109
143
100
104
132
129
121
142
119
148
138
107
132
121
122
148
119
113
143
132
136
142
101
115
101
133
106
114
122
146
129
149
109
136
140
109
120
108
137
113
106
102
124
107
100
131
110
120
117
116
113
131
115
145
130
129
150
140
127
112
148
133
125
111
142
132
128
125
145
118
126
117
118
150
115
147
148
127
136
132
105
110
111
150
116
144
149
139
110
106
125
112
142
150
126
133
109
111
112
124
124
128
145
140
104
100
144
123
134
147
117
114
143
109
140
112
135
142
108
115
139
124
106
104
141
114
128
134
143
136
124
143
138
110
148
148
130
121
123
109
149
123
134
105
125
100
113
120
127
136
122
114
119
124
136
137
137
107
130
109
144
146
103
145
100
139
136
137
117
146
150
144
133
133
145
110
103
120
108
145
133
144
105
134
108
137
110
139
120
100
115
110
135
138
149
149
120
128
126
140
145
125
143
126
138
112
135
134
144
125
142
122
116
122
114
100
129
138
149
126
146
103
130
129
127
119
141
122
129
105
103
138
127
100
111
116
111
145
103
132
131
138
121
119
140
126
132
141
125
129
140
140
122
109
118
148
114
109
126
104
142
141
129
122
143
142
111
116
107
128
120
117
112
104
118
107
101
130
106
120
148
125
127
126
146
125
120
137
146
142
128
112
110
131
105
142
114
117
119
126
134
111
105
142
140
126
103
121
106
140
111
119
133
128
136
143
136
127
120
135
114
120
105
106
139
121
110
106
121
146
102
129
122
107
131
122
150
132
127
128
128
119
150
110
123
139
135
114
147
125
146
113
129
121
144
103
113
137
102
136
133
124
134
141
130
105
139
125
112
100
116
148
150
131
116
129
120
100
108
109
113
106
114
117
129
125
126
149
112
142
138
123
101
132
124
150
120
103
105
112
103
145
118
108
149
118
121
137
115
124
146
140
110
110
117
143
101
144
128
122
125
112
136
128
150
147
122
146
118
119
132
102
112
119
127
136
141
121
128
100
142
108
115
109
124
104
141
137
146
131
144
122
127
140
133
114
116
101
109
127
131
150
143
147
147
123
145
103
106
116
145
105
120
106
130
136
103
120
128
138
115
107
113
122
109
143
127
103
101
109
119
105
107
121
121
103
133
145
119
101
126
113
135
143
125
142
113
148
101
141
131
140
105
124
132
125
101
137
145
137
122
103
110
150
138
103
150
122
125
150
102
106
147
145
107
105
103
118
149
146
150
124
124
119
116
138
107
131
124
140
121
117
126
116
127
101
104
111
129
113
124
120
140
121
106
115
100
103
129
133
120
130
141
148
135
132
144
100
121
141
150
133
123
117
107
106
117
127
136
130
142
134
143
124
140
102
110
101
143
142
115
130
131
100
128
140
137
104
113
135
101
100
143
107
118
114
131
115
119
114
110
123
137
133
106
122
128
115
124
102
103
114
137
129
126
132
102
141
129
123
117
100
138
136
106
117
129
116
118
103
146
134
101
105
130
103
119
103
150
105
113
144
136
113
135
133
130
126
134
116
113
102
129
149
126
118
101
139
112
113
108
142
114
122
111
144
104
115
135
125
129
143
101
130
142
108
104
144
149
126
149
104
101
142
107
134
102
131
135
147
123
122
147
123
140
100
120
133
107
131
140
111
147
104
149
130
117
131
145
138
134
142
139
139
140
108
137
119
141
115
138
113
104
110
124
117
101
117
134
118
111
140
143
137
148
138
119
110
110
110
137
112
129
112
137
131
125
124
133
147
138
133
133
148
135
101
123
141
150
123
114
143
150
104
129
114
125
109
107
121
111
138
139
146
114
127
141
130
133
113
149
111
124
144
105
137
129
124
138
138
133
122
133
116
101
111
124
106
108
129
113
109
143
112
129
139
100
133
116
139
132
133
113
109
101
118
104
106
117
131
120
134
146
112
134
140
112
120
130
113
114
139
111
111
136
109
140
127
123
102
136
111
148
145
133
139
110
148
142
150
108
117
106
128
145
115
101
121
145
141
120
119
148
131
114
117
124
101
127
135
142
114
107
124
149
115
125
150
102
102
110
128
127
134
125
103
105
119
148
117
118
102
145
115
102
101
129
117
139
140
114
136
102
141
130
143
138
127
121
144
110
124
122
125
112
124
119
120
102
107
146
131
148
110
105
139
107
102
112
123
125
126
105
125
116
149
115
145
127
134
124
150
128
111
121
101
115
128
111
140
100
149
145
144
149
136
127
131
114
143
115
118
112
127
101
126
146
133
150
149
146
112
136
102
111
138
121
121
103
112
111
122
129
136
137
114
145
147
139
146
115
128
131
132
149
103
120
106
108
119
122
104
123
106
137
143
143
140
129
131
149
122
102
135
133
139
113
136
111
150
134
138
132
121
119
114
119
100
143
128
142
111
140
121
100
110
137
121
111
113
149
140
109
148
136
103
133
125
100
149
148
142
139
113
144
107
104
147
127
109
118
136
125
143
105
101
142
128
102
122
105
107
115
147
108
125
146
106
115
147
107
108
143
132
131
112
145
139
135
148
115
141
100
100
127
125
143
104
149
148
110
125
106
116
121
138
100
117
118
108
106
143
149
136
104
139
147
113
123
108
115
100
134
142
128
102
123
140
149
132
123
127
120
126
107
130
103
129
103
108
144
103
150
137
139
138
147
135
133
107
133
124
115
150
139
144
123
119
118
133
122
111
113
140
100
147
112
105
143
128
104
106
111
121
114
123
132
105
108
147
143
145
116
113
109
101
138
119
113
130
142
132
125
114
127
145
130
134
119
117
134
120
102
100
144
140
113
150
149
101
129
147
120
122
148
109
122
128
150
105
125
147
145
112
136
149
110
116
115
150
117
129
135
123
148
110
143
150
125
136
119
114
115
105
138
112
121
106
141
121
104
116
148
136
147
128
137
111
132
103
148
114
100
126
132
115
138
137
103
106
125
111
121
117
123
131
113
116
140
126
146
148
125
122
141
125
101
110
130
144
148
147
116
126
107
139
126
103
126
101
150
149
142
149
103
142
147
119
108
113
127
141
107
111
145
144
149
144
101
136
147
120
108
125
111
105
106
149
145
142
150
143
143
103
124
135
112
133
140
118
134
144
125
134
139
107
140
140
143
141
143
149
111
106
128
133
140
117
142
120
103
148
115
148
122
115
145
105
119
126
117
106
130
150
108
109
130
148
119
148
101
104
149
103
122
122
126
113
125
134
130
129
146
132
148
118
148
110
120
111
126
149
125
104
139
150
124
115
133
132
100
111
129
126
117
132
108
148
112
100
148
139
137
124
108
134
103
120
147
103
105
131
111
117
125
123
116
137
146
122
145
112
101
126
124
129
141
103
130
147
117
136
144
121
128
109
135
140
127
139
132
149
106
113
135
139
130
130
141
122
113
112
102
114
137
142
135
136
105
141
134
120
103
124
141
144
125
132
123
114
133
101
106
101
128
139
118
132
113
147
116
146
102
118
130
102
125
141
101
114
135
105
148
104
149
113
131
146
147
140
132
106
111
123
135
100
130
112
138
123
128
113
134
127
134
130
122
113
119
100
130
115
139
102
106
134
107
133
113
110
111
125
137
149
100
150
126
114
114
132
131
142
129
110
144
123
136
126
104
144
130
150
120
138
111
146
142
132
147
116
105
118
137
135
138
107
128
120
141
104
139
145
124
141
116
122
150
116
124
118
140
114
147
107
114
134
125
150
103
130
122
149
135
142
107
112
139
145
138
126
147
127
119
120
126
139
145
133
138
104
109
119
117
140
119
100
110
126
107
120
145
145
128
147
133
120
143
142
138
138
145
119
137
133
135
146
112
139
130
117
145
130
117
107
101
141
121
109
108
148
107
147
114
106
135
101
144
138
105
112
125
103
120
142
137
149
110
104
148
114
127
109
131
113
144
111
111
100
125
133
142
108
123
110
113
146
140
141
141
122
100
116
131
140
107
148
101
131
115
127
132
106
127
111
120
143
115
106
110
123
118
122
109
111
148
144
133
110
107
109
110
114
133
143
127
142
137
100
131
110
131
137
105
134
127
125
139
140
115
145
147
100
150
100
105
102
115
140
103
110
102
142
145
107
145
150
118
105
109
118
145
128
137
126
125
130
113
100
125
148
117
145
108
149
138
102
118
111
100
137
103
146
102
103
123
109
128
114
128
109
114
108
104
129
145
115
106
105
102
141
146
106
147
131
130
122
142
119
124
124
118
140
135
110
139
137
125
131
117
107
116
117
146
110
138
113
142
139
109
111
116
133
108
149
110
139
107
142
148
123
132
112
114
105
147
106
135
148
112
134
133
113
113
145
115
123
148
113
141
132
104
144
105
119
138
124
111
147
100
126
128
123
118
109
148
139
104
136
127
146
118
108
134
143
114
106
120
138
139
142
111
110
149
107
122
108
108
126
138
146
102
130
102
109
112
101
106
120
140
121
133
123
100
101
139
100
141
125
137
109
102
137
115
104
136
145
110
115
119
131
119
138
143
105
124
146
102
149
137
121
112
132
120
123
128
101
136
125
118
141
132
136
131
138
103
107
101
145
140
103
148
141
145
115
140
138
131
122
111
126
135
107
107
120
107
135
110
134
111
108
131
142
114
121
127
113
137
112
107
145
114
146
107
131
107
129
114
118
132
149
144
110
101
127
114
132
110
100
107
101
140
115
101
113
100
145
146
144
147
145
103
139
147
138
134
114
115
132
143
107
107
138
131
118
111
127
119
124
145
116
130
105
122
133
127
109
104
121
140
104
117
139
124
128
132
142
137
120
131
112
148
108
138
106
146
111
139
119
112
109
105
132
102
107
102
106
135
119
140
110
130
136
136
119
129
150
141
139
140
147
130
127
147
111
104
141
136
130
105
144
115
144
116
138
109
110
141
132
118
130
114
123
126
131
138
146
108
125
104
130
147
137
104
149
107
123
117
126
137
139
104
128
113
122
141
149
103
113
110
136
145
135
117
149
132
136
117
150
109
138
102
112
144
136
114
115
134
111
106
141
145
137
149
121
135
104
110
106
108
121
102
117
142
113
105
101
119
118
134
108
121
105
110
148
122
130
116
116
112
142
127
146
123
147
123
126
141
149
112
145
121
101
103
111
138
129
142
117
138
110
143
123
109
105
130
124
146
125
105
110
132
127
121
105
113
114
102
106
136
117
148
108
137
118
135
108
118
102
144
147
143
149
135
121
113
117
106
138
135
118
139
148
127
140
119
112
140
148
105
110
124
125
124
135
126
142
106
143
118
128
135
140
113
150
124
146
133
121
116
136
144
140
145
104
135
115
102
110
137
132
119
106
113
105
110
124
137
106
141
138
136
136
122
108
106
138
133
144
138
140
131
148
104
117
111
147
122
149
147
149
140
118
121
144
123
116
114
111
141
125
111
126
150
121
109
133
105
103
118
105
110
114
146
148
143
101
128
124
138
124
107
114
138
108
102
115
100
144
139
130
134
142
114
144
105
106
111
116
132
107
113
123
139
136
131
115
105
146
103
131
128
135
140
114
130
130
149
117
107
143
136
113
111
100
147
107
136
132
125
104
147
146
143
133
118
145
106
119
140
146
107
138
127
127
101
141
117
100
132
127
126
149
146
125
137
102
106
134
129
136
100
137
140
145
134
104
124
118
129
130
107
107
112
114
108
145
120
134
126
144
116
110
145
107
123
143
141
117
100
115
119
136
101
138
142
100
111
124
127
109
105
125
145
125
115
106
145
125
125
123
149
146
129
123
106
123
108
102
119
150
129
122
113
100
136
104
114
134
120
138
143
111
132
130
122
137
115
116
124
124
124
127
102
146
138
141
140
144
107
123
149
149
150
130
100
125
119
147
114
113
118
144
109
144
113
143
105
142
116
129
145
140
118
121
115
135
126
150
109
118
139
130
111
148
141
125
109
141
122
115
121
138
131
121
118
135
119
101
133
120
130
100
122
149
147
118
103
114
115
131
136
100
121
125
112
102
147
130
123
108
141
109
127
122
126
107
126
143
145
138
138
138
123
126
122
100
146
122
122
118
117
144
116
110
142
140
121
107
103
140
132
122
128
150
116
135
138
131
118
125
109
113
130
101
107
147
111
107
150
105
111
114
136
129
142
149
129
119
144
131
134
125
104
116
148
101
141
138
132
150
125
105
135
121
115
135
138
101
100
101
136
127
140
143
140
117
142
149
121
142
135
111
107
147
139
135
142
147
126
111
135
118
122
129
106
128
102
143
146
105
110
147
103
135
118
147
141
105
119
141
141
135
143
122
144
110
138
134
125
119
150
125
114
113
105
142
116
147
113
120
130
138
130
126
116
140
108
121
113
104
136
100
123
131
124
106
124
106
138
116
124
119
111
117
150
103
100
118
141
100
131
139
103
134
145
134
100
102
131
139
132
115
125
143
134
149
135
103
130
146
105
150
114
100
128
100
120
111
138
119
104
124
135
145
113
119
135
143
139
111
117
125
132
127
145
106
135
111
140
110
135
123
100
115
119
118
117
121
143
116
127
117
142
100
146
148
100
108
145
149
110
122
132
126
126
133
134
110
126
134
134
149
150
112
147
123
132
113
150
123
118
127
114
122
131
111
141
143
138
137
120
141
134
144
145
150
143
103
142
116
139
110
101
113
120
125
139
150
120
130
127
145
134
120
139
130
120
149
110
111
112
149
113
130
106
111
146
105
134
122
146
133
134
137
126
135
106
137
103
118
133
114
148
104
150
136
150
102
100
138
113
101
103
133
114
116
142
122
104
143
149
132
108
104
145
127
130
130
108
123
125
131
122
102
114
112
134
141
140
107
128
102
112
148
140
143
140
101
107
145
110
132
112
140
116
125
135
109
113
117
102
137
108
114
125
142
125
138
142
147
103
150
132
133
150
111
116
137
134
138
107
130
119
100
100
108
126
117
137
125
104
135
124
123
106
116
148
111
114
150
111
134
150
132
130
101
136
141
116
137
120
138
119
131
136
131
117
139
129
132
141
104
106
148
111
148
113
147
110
119
150
118
129
131
139
136
128
136
139
123
109
144
138
104
124
144
104
117
117
150
118
132
117
114
148
102
120
118
117
114
113
117
147
114
113
121
137
130
126
149
138
112
136
124
114
149
112
102
110
135
140
135
118
130
148
115
118
138
120
137
114
108
141
137
100
140
121
106
131
119
106
141
117
140
118
121
133
145
138
110
134
114
130
117
103
110
110
118
127
125
145
149
124
127
112
123
109
137
141
121
114
111
106
134
136
106
148
112
102
102
124
107
145
132
143
150
147
149
138
135
109
118
117
148
146
102
124
138
129
125
111
104
140
128
101
116
107
133
138
122
111
107
134
134
129
129
145
137
129
120
100
140
130
124
108
129
130
120
128
143
125
113
106
124
108
123
141
130
126
118
102
106
131
136
127
106
120
118
142
137
116
130
100
111
119
130
142
144
137
106
114
114
113
105
140
110
107
148
115
113
111
149
105
103
146
133
125
109
117
128
130
131
109
106
100
132
120
100
111
135
133
146
148
146
119
107
131
108
110
131
117
111
148
144
130
121
109
131
143
103
140
102
150
114
139
117
123
114
102
127
140
143
127
135
106
106
112
145
132
148
117
148
126
148
136
110
150
147
142
125
150
148
109
138
109
122
118
122
141
137
130
105
102
133
116
107
136
140
126
104
104
104
114
150
149
129
119
122
146
113
107
106
146
136
119
127
119
130
131
150
143
107
121
134
148
147
104
115
140
111
128
131
102
132
101
128
127
118
125
112
111
149
144
108
125
126
114
144
112
109
123
111
107
115
127
139
118
122
117
144
145
150
136
101
120
149
104
117
145
117
146
143
121
135
128
121
119
137
124
133
101
124
119
113
127
100
123
104
135
143
105
124
129
142
121
132
133
111
141
134
102
132
122
136
103
124
148
119
108
149
137
107
131
130
108
102
100
120
121
122
124
122
107
101
118
141
132
130
132
136
132
146
133
108
134
106
126
136
135
124
139
137
147
116
129
141
129
121
141
131
113
118
103
146
100
137
128
101
121
108
131
118
110
142
148
103
141
130
116
133
147
143
108
130
123
130
135
126
123
132
122
118
121
108
119
137
123
113
140
133
103
100
140
104
112
121
144
132
140
142
136
145
111
109
149
145
104
134
105
126
148
133
113
136
147
102
115
128
123
130
104
105
139
125
103
139
113
132
112
146
112
117
123
124
104
122
113
125
125
103
140
115
121
121
103
149
145
128
147
149
108
128
103
141
143
138
116
137
112
143
141
107
148
130
136
140
106
116
105
108
134
120
107
146
127
116
139
115
121
117
105
107
119
100
111
114
149
102
101
126
142
118
131
111
145
103
139
146
117
108
139
123
109
117
131
123
112
139
105
134
123
106
124
149
109
103
118
116
125
121
108
150
115
145
122
110
103
130
140
142
125
145
138
131
124
107
133
103
109
107
112
116
120
117
122
114
118
119
124
121
141
117
128
139
146
104
100
111
110
107
119
132
145
150
142
135
101
114
147
113
125
140
107
147
118
115
121
137
102
125
122
112
114
122
139
104
121
118
136
103
137
147
112
120
118
134
108
123
146
104
140
118
115
109
139
115
128
141
100
117
113
122
102
148
108
140
148
140
109
149
105
125
114
127
106
118
139
114
109
133
143
117
119
137
141
146
121
139
138
137
136
147
128
105
147
132
106
140
103
120
118
114
122
139
122
142
144
125
127
127
107
128
104
125
111
131
136
112
104
132
104
139
118
146
100
125
111
117
117
127
105
144
131
113
129
106
119
132
110
124
111
134
129
119
141
123
114
147
115
140
141
143
121
101
122
132
102
150
141
100
124
148
142
113
150
111
137
105
118
108
111
104
144
132
130
115
146
136
128
117
106
136
105
128
137
108
130
134
120
121
125
139
127
115
150
133
138
139
112
130
130
118
149
126
121
142
121
130
138
131
134
105
107
131
119
136
114
134
106
147
145
110
128
113
118
116
108
150
123
130
107
135
147
129
119
101
115
121
130
141
132
119
121
130
110
127
100
109
107
149
108
111
129
138
106
117
102
126
113
139
149
133
135
110
128
110
113
127
108
132
120
118
104
134
148
123
109
148
109
109
141
133
110
129
123
142
141
111
131
124
111
149
135
107
119
121
111
132
149
132
137
135
107
100
105
105
110
131
116
150
103
107
104
110
122
146
136
147
148
101
123
105
103
120
134
128
107
108
142
135
145
146
117
130
143
119
115
134
107
144
138
135
145
143
139
105
123
114
145
146
113
117
132
140
125
144
125
130
112
108
142
111
102
142
128
112
105
109
150
131
141
143
117
118
126
100
128
140
134
106
108
108
118
106
123
134
136
111
111
136
140
119
149
101
115
144
148
142
108
142
107
116
142
123
128
105
126
133
127
132
135
130
111
133
105
129
116
125
111
105
136
145
125
123
150
126
123
104
105
141
109
138
145
126
133
114
109
117
101
129
135
117
116
145
145
144
112
121
121
102
145
109
141
117
122
106
129
122
114
106
133
134
143
129
116
131
101
101
109
128
114
136
121
110
129
125
128
111
105
136
134
126
124
134
124
101
130
128
113
124
127
108
124
119
125
104
114
113
137
115
116
104
124
127
140
141
142
111
145
114
113
148
125
140
102
136
143
148
104
111
106
128
119
106
131
128
137
132
127
103
125
147
142
146
148
130
112
116
123
122
143
131
121
106
121
141
111
148
136
130
119
114
145
137
132
145
139
140
121
126
145
107
141
111
128
142
128
131
114
116
129
133
117
136
122
143
142
150
140
110
116
131
117
122
142
144
140
146
120
137
140
105
116
104
118
139
126
145
128
144
104
102
121
140
114
138
142
113
116
144
137
136
137
141
119
116
107
138
128
110
130
125
146
144
115
150
139
149
144
136
143
119
132
113
128
140
117
143
117
123
148
101
107
124
128
115
137
115
104
123
134
108
122
144
132
128
143
118
130
121
125
137
124
109
147
150
149
103
124
104
140
134
107
121
124
135
118
144
146
119
125
120
144
150
106
115
128
141
136
124
101
114
143
105
106
134
127
120
125
102
138
137
143
115
137
100
105
106
149
104
143
122
136
116
109
138
109
109
147
101
134
107
123
105
118
142
149
105
135
105
116
108
144
123
124
140
111
132
102
121
112
136
105
136
114
104
132
130
116
144
130
130
111
101
107
106
115
109
112
110
123
128
111
100
107
147
125
126
102
144
134
105
117
135
148
125
106
107
150
130
121
106
113
113
128
115
136
103
129
133
140
144
111
141
109
116
120
147
131
131
127
100
128
148
141
128
136
101
100
144
118
116
111
136
144
104
113
117
124
113
124
129
109
106
139
102
134
140
101
109
110
105
128
104
105
141
145
144
116
113
140
146
136
122
104
119
142
120
128
115
141
122
120
108
110
148
121
110
148
101
100
118
107
140
107
125
109
127
118
102
121
112
140
115
128
131
149
125
122
119
140
107
101
116
149
127
130
150
122
131
147
118
147
113
133
127
120
128
117
128
146
140
134
142
133
102
104
120
118
111
123
127
107
132
140
134
135
119
112
108
132
138
136
147
129
130
144
130
103
148
114
149
136
121
142
131
123
100
146
121
139
111
119
150
120
117
122
129
127
127
141
103
143
108
149
101
146
126
119
142
122
144
119
139
149
132
136
102
116
138
106
131
113
116
131
105
100
121
145
108
148
129
150
144
148
146
133
138
139
136
148
114
113
127
115
107
127
147
106
143
136
135
135
132
138
142
133
112
111
129
125
146
117
104
144
147
143
121
125
146
146
117
118
116
107
129
121
117
114
113
112
140
116
113
129
148
120
143
107
107
149
110
101
143
102
137
105
146
118
125
118
106
106
147
109
105
149
105
102
105
139
117
139
121
101
118
125
104
133
131
127
138
143
110
118
112
107
125
146
109
114
114
119
119
147
103
120
103
150
116
132
119
141
121
105
141
150
129
144
147
146
121
104
130
146
110
133
109
120
117
114
105
114
128
120
135
110
135
141
134
117
108
144
140
113
123
119
146
122
107
123
115
118
126
121
148
146
126
146
137
126
106
101
110
141
145
115
134
140
107
147
143
137
105
126
125
114
143
149
135
146
121
139
107
122
106
101
135
125
146
134
125
149
103
107
113
126
126
124
110
118
139
127
105
126
150
137
147
114
126
137
127
139
145
122
141
148
147
115
149
142
148
133
102
102
139
115
131
107
139
120
130
148
139
108
114
124
144
139
140
147
135
147
143
109
107
131
127
140
131
116
121
125
130
118
103
112
124
118
103
124
110
133
119
138
132
127
104
129
100
103
100
103
146
117
145
114
103
111
128
119
128
149
141
106
102
141
134
109
136
145
143
106
123
134
119
122
119
108
132
112
122
128
113
124
137
113
148
127
104
133
149
111
118
108
117
130
132
103
121
145
115
115
117
119
145
142
133
140
113
117
145
113
128
104
142
102
111
110
105
123
106
101
124
147
131
139
124
146
104
102
103
107
139
145
138
136
100
146
105
131
120
106
106
110
141
104
108
128
108
104
123
115
106
132
136
139
129
121
140
147
141
124
127
130
150
148
130
145
125
112
149
120
113
150
107
116
149
128
145
103
120
111
116
149
140
129
137
122
149
118
124
121
130
138
134
133
138
130
127
120
119
114
121
112
132
144
102
130
148
105
104
117
103
119
146
120
141
139
150
117
110
131
140
138
139
148
148
121
135
140
107
139
145
102
133
134
124
106
100
116
110
108
102
123
121
130
134
112
125
138
146
131
145
144
132
139
114
103
139
149
107
136
103
142
107
131
130
149
135
140
114
109
137
113
132
142
147
101
139
148
108
132
150
139
101
100
132
137
111
104
107
140
129
122
142
124
138
137
123
101
142
132
115
118
104
103
136
148
135
102
125
134
103
144
131
103
130
122
143
113
118
141
117
147
114
142
124
149
112
104
100
112
132
130
133
143
102
115
112
108
142
149
115
130
102
124
107
111
121
135
125
144
103
117
149
139
103
141
147
131
140
121
110
150
133
110
149
105
113
132
115
127
126
123
127
150
141
111
146
111
113
100
134
144
108
144
129
110
149
114
145
105
138
119
127
121
106
101
114
147
100
113
150
110
112
126
135
140
138
111
129
120
114
124
140
119
117
113
139
113
117
149
129
130
139
120
132
102
117
116
139
135
129
107
127
127
114
113
147
101
125
126
103
141
137
133
118
142
115
143
102
107
110
124
108
104
149
105
109
103
119
113
102
148
134
115
117
129
123
113
117
145
104
127
129
110
150
146
127
100
132
122
100
145
122
130
121
121
148
143
110
147
119
135
108
132
145
138
141
118
103
125
130
150
136
131
118
140
142
107
103
143
119
132
124
111
129
125
117
109
128
108
116
112
128
128
115
138
110
135
132
126
106
132
130
137
136
110
106
117
128
132
120
114
113
122
111
132
149
103
148
109
121
101
137
146
139
117
110
142
135
102
134
111
134
141
129
130
101
118
101
137
142
127
140
146
129
149
127
108
117
134
138
107
136
148
150
126
146
113
131
100
135
149
125
105
100
107
139
121
100
118
117
125
146
114
147
137
122
101
141
144
142
106
137
147
136
113
150
125
142
142
107
139
104
109
148
109
124
116
131
117
107
124
141
102
126
124
137
111
100
100
127
104
128
146
130
131
131
146
119
130
150
110
130
100
104
132
112
123
108
102
111
136
106
103
134
147
109
136
136
136
107
118
116
112
145
140
124
127
100
145
125
126
114
104
105
145
112
110
120
105
105
118
136
149
116
133
109
123
114
125
105
121
126
145
146
125
115
128
119
101
116
104
147
126
150
130
149
102
143
126
145
108
123
145
130
101
108
147
100
112
143
147
123
113
133
120
122
126
117
112
108
118
143
123
148
124
121
121
149
148
129
123
137
120
134
127
129
128
115
136
129
129
107
104
128
106
123
122
103
129
107
145
111
122
102
120
105
128
112
150
133
118
126
111
119
107
106
126
127
127
143
141
113
136
137
134
145
129
105
121
127
132
130
121
111
135
111
126
112
145
145
133
109
131
125
104
122
118
108
118
113
136
142
146
149
105
100
141
115
120
103
120
113
120
131
117
125
143
114
142
133
109
139
103
108
140
112
138
140
128
117
138
118
124
130
112
133
148
118
107
101
114
137
108
118
118
150
112
125
114
150
150
106
122
128
134
126
104
141
140
124
102
118
146
126
147
102
120
114
109
141
128
149
107
126
102
131
107
143
109
124
129
111
132
106
133
106
113
138
126
150
140
147
132
110
135
123
101
119
119
128
118
113
113
145
103
113
103
122
104
139
100
133
127
108
111
124
103
133
101
105
123
137
102
127
119
128
113
105
121
132
139
110
144
136
121
112
108
109
105
113
119
120
124
133
110
110
133
149
141
128
119
132
120
141
124
108
125
123
131
131
138
101
107
125
106
128
132
124
137
140
135
149
134
113
108
119
113
107
106
110
114
141
109
142
107
149
102
142
142
134
148
120
114
147
136
121
129
121
133
102
150
138
131
106
129
131
129
110
131
124
140
138
143
109
145
102
127
123
122
116
116
137
103
139
143
145
150
143
140
126
107
139
103
103
109
120
104
124
130
102
107
137
121
144
107
123
113
142
120
102
113
106
136
139
105
123
110
147
120
130
100
106
145
122
129
118
125
112
108
133
113
121
145
113
107
123
145
149
139
148
115
112
146
140
135
130
104
104
141
115
138
123
108
145
105
120
104
128
150
135
148
124
136
107
137
131
106
110
137
107
133
124
127
137
103
144
133
121
132
143
111
128
115
123
138
126
119
105
145
149
117
147
116
105
128
104
123
113
104
103
127
122
139
128
105
121
119
128
106
146
117
122
141
130
131
135
103
134
104
124
139
145
101
129
121
145
117
111
104
130
126
150
143
132
125
103
110
148
130
117
132
118
133
129
111
125
145
147
146
131
113
121
143
105
133
112
111
143
128
104
140
132
116
100
106
132
112
108
117
146
103
112
137
137
136
107
115
141
141
113
149
113
145
122
102
142
106
130
125
144
106
103
108
122
139
149
141
103
101
112
119
149
131
133
133
139
149
128
147
132
110
149
127
146
136
111
111
133
118
120
106
117
149
101
111
126
107
102
105
124
111
148
139
114
115
138
146
120
115
145
127
142
140
124
102
123
128
110
131
144
102
103
106
150
107
147
131
109
141
139
123
137
137
120
139
136
127
104
130
127
106
140
110
135
109
101
125
150
100
103
114
140
142
129
118
112
116
132
101
122
107
149
124
123
103
106
135
117
133
104
111
111
130
101
147
124
106
123
123
139
131
136
143
124
104
147
143
144
106
116
146
118
132
113
100
147
104
134
109
127
109
142
107
145
135
129
118
145
109
105
108
122
110
118
144
149
104
124
103
123
105
100
145
102
144
107
122
113
116
144
109
143
111
114
124
134
138
119
143
144
125
124
114
144
145
114
144
146
142
122
127
140
112
107
123
102
145
130
120
106
119
139
136
144
126
107
141
147
109
128
123
141
120
121
120
133
137
118
100
133
108
123
105
100
142
147
113
137
137
131
131
112
125
142
149
138
148
145
138
125
101
138
108
134
120
101
125
124
119
101
104
141
106
136
145
136
133
135
146
140
100
144
103
150
108
136
136
137
101
138
110
142
146
132
129
122
136
138
135
105
132
121
150
132
102
141
123
144
146
141
107
107
120
142
147
114
112
139
121
139
128
114
134
105
118
144
146
121
110
122
131
100
147
119
127
133
123
140
141
126
148
121
130
147
125
122
113
141
121
139
141
107
117
113
136
114
136
130
119
131
114
143
116
115
120
116
141
117
110
129
143
124
118
108
101
124
148
119
126
122
147
113
132
144
135
141
118
116
104
117
124
113
109
102
124
147
115
139
142
105
112
141
114
113
127
146
101
112
142
110
110
139
110
105
134
118
144
120
107
150
133
125
100
120
112
102
107
142
130
118
133
124
143
111
124
122
128
121
105
144
124
107
123
111
120
135
111
125
138
141
141
135
129
112
104
134
101
109
131
103
132
148
128
143
122
145
146
140
113
112
102
106
124
118
111
130
129
147
136
149
104
108
101
135
145
149
149
113
127
120
106
131
142
140
145
109
137
106
115
140
132
104
120
120
132
112
145
119
150
109
108
122
127
132
132
120
117
113
109
122
113
130
117
105
113
115
102
102
127
127
101
131
102
106
110
115
102
140
127
107
150
113
102
102
124
108
103
101
107
140
136
109
136
128
144
133
135
110
141
140
128
147
105
116
129
117
132
107
141
144
124
116
148
136
113
111
145
142
112
141
126
135
134
104
140
107
136
110
116
124
104
123
127
138
105
118
145
111
129
147
130
133
108
113
147
127
131
143
126
136
137
113
117
101
118
110
138
131
143
150
149
137
127
114
131
121
100
109
135
121
139
101
101
100
140
118
110
123
118
136
114
123
136
108
100
136
106
136
150
149
102
144
148
104
115
133
103
110
124
119
105
125
144
102
124
148
128
130
134
100
139
115
145
141
142
146
143
116
103
104
145
137
111
118
136
135
120
117
126
100
110
150
105
147
127
130
148
101
150
143
103
131
121
118
124
146
117
120
142
104
134
100
145
149
104
109
130
144
112
147
111
106
102
117
130
106
126
112
149
120
108
139
129
103
135
119
117
123
128
140
140
111
141
112
114
145
112
114
120
104
127
148
144
122
117
130
147
105
109
131
141
137
127
125
134
148
130
119
148
107
111
125
126
143
100
122
135
137
132
120
101
111
100
136
115
110
142
114
145
112
129
127
115
140
139
145
102
124
106
146
123
101
106
138
132
144
132
107
134
129
122
144
134
141
133
115
143
127
149
101
122
137
144
130
113
100
128
149
101
118
127
122
143
108
103
105
133
136
101
125
105
107
110
129
113
111
122
139
126
109
114
116
109
128
100
140
150
126
123
125
111
146
135
134
141
110
132
128
110
121
113
147
134
142
111
144
132
129
141
131
115
100
130
148
133
110
128
131
136
116
115
117
107
113
131
125
104
125
147
113
108
143
131
107
132
137
137
138
145
135
109
116
148
104
109
150
100
142
116
113
114
141
104
116
103
146
118
120
105
130
123
119
148
103
121
106
134
110
138
135
126
145
200
193
166
198
195
198
153
165
195
169
162
186
173
193
191
144
159
147
155
187
170
179
147
142
181
199
195
156
195
174
184
153
144
182
199
183
183
188
188
198
166
200
160
150
142
170
173
175
166
195
154
140
152
167
151
153
165
186
144
180
200
155
153
183
150
159
164
176
188
181
197
148
182
155
181
140
162
200
185
192
142
192
155
142
183
140
143
180
199
153
154
160
142
193
160
151
173
143
190
170
156
169
153
199
200
149
198
142
152
140
168
183
161
160
156
151
164
164
162
143
156
150
160
159
141
146
168
144
175
143
166
162
185
180
193
180
177
156
145
146
143
174
160
145
173
180
143
173
198
176
169
169
192
186
163
162
195
185
185
196
187
167
200
156
170
198
147
183
158
174
145
175
171
154
197
187
158
149
152
200
149
177
200
180
148
154
157
142
165
147
187
189
178
168
177
145
195
187
176
171
150
186
147
190
158
185
172
187
186
190
142
156
140
197
160
180
173
195
182
193
147
151
182
194
178
144
141
178
176
169
187
160
176
185
179
198
152
199
147
142
192
180
182
189
166
144
168
157
199
180
163
151
193
195
158
155
185
154
178
155
191
143
183
168
168
174
200
198
178
192
184
145
166
183
198
194
170
175
172
193
165
169
181
159
162
169
145
145
168
186
173
183
197
142
179
140
160
192
199
177
141
156
166
179
152
172
153
152
148
150
140
140
181
195
141
188
146
171
141
161
195
193
170
196
182
185
189
161
145
173
198
196
147
194
147
191
172
170
159
192
176
154
159
156
163
154
145
159
178
174
148
163
193
167
147
162
186
184
162
146
160
187
187
189
195
148
162
158
173
181
166
140
151
164
155
148
194
194
184
142
147
146
152
162
177
185
172
200
153
161
169
171
164
182
163
173
174
143
195
159
174
156
196
183
182
185
141
140
186
153
169
195
142
145
142
173
190
182
185
171
148
193
156
185
149
143
149
195
179
165
199
159
200
181
150
154
163
176
170
194
140
177
140
172
171
146
177
156
160
160
145
142
146
175
152
164
153
180
141
154
143
161
190
186
188
164
158
140
160
166
179
200
187
156
148
190
158
183
154
192
173
142
175
163
191
164
161
194
153
195
156
186
178
173
170
157
194
161
143
192
176
157
148
164
141
192
178
151
194
193
174
161
165
161
169
168
189
161
180
146
153
189
200
145
166
145
154
150
186
192
161
182
180
199
179
176
165
150
182
173
150
146
145
141
170
167
162
186
145
191
187
194
159
163
168
196
161
170
191
153
172
160
153
186
175
145
197
176
168
178
162
148
196
196
148
176
180
150
187
163
197
186
162
197
175
173
148
142
182
167
186
182
165
179
168
146
172
184
158
164
183
168
155
187
149
155
141
177
151
197
155
163
177
197
141
168
179
147
148
157
162
153
157
143
180
191
147
188
148
145
184
160
152
148
166
192
142
177
174
158
152
189
191
194
151
141
140
142
159
172
140
192
154
147
152
167
184
197
165
157
195
178
180
178
193
162
185
159
143
175
155
155
172
186
148
151
162
166
153
168
159
179
179
199
182
195
191
140
153
198
148
168
191
147
161
199
169
145
146
140
158
150
151
163
141
148
188
186
171
179
153
193
147
148
158
160
179
174
156
140
185
186
169
196
194
169
191
152
167
168
151
183
159
151
143
197
157
147
170
164
166
184
156
183
159
150
149
150
183
165
147
197
184
168
165
198
166
155
168
191
186
174
148
158
144
177
189
150
187
157
162
196
159
147
183
189
170
167
181
153
189
141
173
152
146
184
158
187
150
195
141
145
165
142
198
143
140
194
160
147
168
167
195
152
198
185
152
182
149
186
181
145
184
157
177
181
141
151
173
146
163
200
175
175
177
174
167
194
140
177
189
182
171
180
160
200
172
151
152
186
183
187
153
178
172
172
145
169
157
144
196
173
145
184
184
158
167
164
145
171
191
176
199
154
141
142
176
178
194
167
169
178
190
156
195
177
183
166
170
178
187
194
156
147
157
189
181
176
172
180
171
189
182
169
164
155
164
149
179
188
177
176
179
175
192
183
162
184
193
141
174
190
200
164
181
159
146
176
186
155
194
161
181
158
155
150
161
178
199
153
148
148
145
197
149
200
159
162
150
162
192
200
141
185
149
170
156
179
165
159
171
177
142
178
142
155
181
148
183
195
156
171
141
199
193
162
191
193
190
175
164
151
183
164
185
152
170
163
160
171
190
185
175
189
149
174
198
154
170
200
183
149
155
148
141
180
191
189
147
174
184
174
155
157
169
141
154
160
158
198
192
181
155
196
142
197
163
150
165
174
197
193
157
199
180
162
149
160
166
163
193
158
167
173
147
141
196
160
173
157
198
196
191
149
159
168
156
177
173
195
192
171
173
190
182
200
190
194
150
147
144
149
177
142
176
158
170
187
172
175
165
145
200
178
184
159
196
186
178
148
179
165
160
146
144
167
187
169
144
171
149
179
167
188
187
160
162
145
175
199
146
187
185
194
185
171
177
195
167
186
181
149
190
199
197
166
169
150
186
167
162
160
187
164
199
143
143
146
149
189
172
159
158
143
186
182
153
142
176
194
179
174
188
147
161
186
153
149
185
193
178
195
153
142
188
198
148
183
190
181
155
196
184
153
185
171
197
200
189
171
146
167
199
196
177
144
193
158
146
145
150
155
179
184
172
153
171
148
144
179
183
195
183
157
161
165
147
171
195
146
190
158
146
180
166
168
147
141
183
156
194
146
189
169
142
158
154
188
140
154
141
163
155
143
175
184
140
189
197
177
149
188
199
185
156
160
194
156
140
148
162
195
170
146
173
170
180
162
185
189
176
158
193
170
179
153
187
187
140
164
149
199
171
198
193
190
157
192
156
194
145
153
152
174
140
150
191
182
150
149
185
148
144
194
189
195
175
166
195
199
153
176
169
150
190
196
162
159
144
170
184
174
194
189
162
177
150
161
174
159
166
177
157
159
144
152
197
182
156
140
165
162
189
167
187
180
189
193
178
183
182
169
198
173
152
144
185
151
181
182
151
144
162
173
163
180
151
151
194
180
162
197
181
172
189
163
182
179
173
178
175
172
192
143
172
189
188
199
143
173
140
180
163
178
142
165
141
162
172
154
175
148
157
163
171
199
141
140
181
166
154
198
183
179
181
167
153
140
164
153
161
176
197
180
178
147
161
142
177
196
171
141
140
189
162
148
170
181
143
198
164
174
142
186
155
186
141
189
167
186
173
175
162
154
155
178
156
188
184
196
183
161
177
167
198
191
155
157
143
174
193
151
147
195
190
144
142
144
166
147
178
194
172
143
156
165
165
147
148
166
168
187
158
200
197
154
192
178
163
189
192
176
151
158
188
197
180
199
153
143
152
142
185
167
184
164
170
162
183
150
188
140
148
174
175
143
192
182
180
150
176
169
161
141
165
148
141
195
147
156
146
153
169
177
184
163
182
150
180
169
179
191
191
155
189
163
184
169
195
153
184
159
176
165
168
164
172
173
175
200
179
190
193
158
149
145
149
145
173
178
189
141
149
169
186
152
197
159
182
194
141
140
190
192
142
150
167
162
176
155
151
178
164
146
198
153
187
161
184
170
169
191
182
143
190
171
187
188
164
144
192
189
164
168
140
147
148
178
141
179
191
153
173
170
169
143
174
180
184
200
142
158
155
181
155
198
164
163
161
169
145
153
170
184
191
187
189
177
187
140
154
168
191
184
172
146
167
150
155
149
198
158
198
171
184
155
154
192
157
169
173
191
175
172
167
165
177
146
143
144
169
197
162
162
147
148
192
173
151
159
140
193
194
154
184
147
193
184
149
149
190
169
146
146
170
145
153
186
175
153
155
196
184
181
191
164
166
175
149
158
142
151
169
148
168
173
160
152
166
154
142
171
140
194
167
195
194
143
172
199
198
168
167
164
149
161
170
175
152
187
187
193
179
192
157
172
186
166
177
150
193
180
187
155
165
175
149
189
152
166
161
176
181
162
184
184
193
144
190
146
141
163
176
177
177
188
195
166
200
173
189
164
172
175
158
153
150
179
191
140
171
164
154
163
195
166
143
199
144
176
176
162
174
144
180
175
196
148
183
171
160
181
182
185
185
166
147
183
164
173
200
192
148
141
147
156
157
178
195
160
169
175
171
190
184
157
149
142
178
164
184
174
171
179
147
145
140
166
193
158
185
160
164
180
165
200
169
167
179
155
152
187
150
148
200
150
188
190
189
174
183
159
177
152
191
182
162
141
175
200
157
167
150
197
189
157
154
187
140
196
140
198
142
191
154
168
155
180
143
181
180
172
171
146
153
150
179
167
188
145
175
180
196
145
195
144
177
184
169
174
177
175
156
191
182
176
185
163
160
148
168
165
178
154
162
147
151
195
160
146
149
200
195
190
170
141
189
191
159
140
152
175
199
143
154
149
154
150
185
153
184
143
187
148
146
156
186
180
177
166
184
157
155
147
179
178
141
157
186
192
184
175
186
182
153
156
155
166
200
149
156
168
164
163
175
160
153
187
173
153
163
152
141
153
172
182
142
195
163
157
160
165
142
150
184
181
160
158
147
145
198
178
174
184
142
163
190
151
178
198
196
145
172
195
156
165
184
164
148
152
192
194
182
143
171
174
184
154
191
156
183
146
159
200
170
177
160
147
165
193
179
143
158
146
174
141
140
183
171
157
141
196
200
165
193
193
148
143
144
197
191
172
191
142
151
184
182
189
165
155
157
156
179
145
196
197
179
180
195
190
155
188
175
171
163
171
145
184
143
166
157
190
173
187
190
156
197
176
160
200
173
150
149
174
176
190
174
166
180
164
160
158
178
154
199
171
142
184
150
192
180
171
164
147
159
172
164
197
147
189
172
154
193
165
152
166
145
167
188
181
154
164
194
147
181
163
177
150
166
161
182
166
176
194
152
166
193
173
146
151
195
147
147
197
183
196
166
199
171
178
161
196
180
167
197
158
161
155
198
169
141
181
184
175
169
190
162
141
146
162
148
191
147
144
168
162
150
194
178
162
181
144
142
149
186
171
146
166
179
173
162
197
190
175
161
158
164
189
147
186
157
158
194
179
179
187
157
189
196
194
150
145
166
192
146
187
182
196
187
164
153
181
163
189
160
175
141
142
161
161
160
199
174
199
169
190
169
188
191
150
166
183
165
141
194
192
172
192
172
148
173
169
180
183
189
198
152
151
160
192
160
191
194
200
144
181
169
153
174
163
185
161
182
191
148
146
192
197
144
167
187
157
175
151
150
153
197
150
169
183
142
160
144
149
152
183
158
157
158
183
173
181
167
191
197
160
154
185
166
176
176
161
150
155
149
151
196
162
148
159
196
162
148
153
199
178
178
190
200
184
186
153
184
183
168
165
187
142
176
191
192
154
177
151
182
162
200
140
182
169
199
184
156
197
158
189
165
178
167
200
148
150
183
200
149
143
180
186
143
153
161
185
143
175
153
186
156
185
173
195
172
179
155
163
195
170
179
188
150
171
142
175
200
188
157
182
165
153
195
160
171
171
147
173
193
147
169
187
182
163
169
163
154
182
155
180
183
198
164
148
155
162
186
178
197
161
175
160
198
141
183
150
190
160
188
163
146
175
141
191
144
178
187
143
153
170
195
167
185
169
149
167
142
183
172
151
197
143
195
167
188
156
185
186
176
170
143
152
175
151
150
193
175
173
160
194
151
150
167
147
172
190
144
197
178
173
173
191
177
164
157
187
197
189
197
148
191
180
194
172
168
163
152
184
186
188
196
152
182
152
169
192
155
172
167
163
173
193
173
198
162
166
189
157
170
187
145
195
155
167
163
171
144
140
153
146
155
148
177
178
162
144
144
177
143
147
179
172
184
193
157
168
152
184
141
141
180
197
147
154
198
181
176
200
190
196
198
140
173
171
198
196
156
182
198
186
186
190
186
156
179
165
170
199
198
140
151
182
153
179
150
162
148
170
148
144
171
167
175
152
192
143
153
143
150
191
185
199
169
180
153
170
143
147
197
153
181
160
185
180
177
173
180
173
151
142
148
181
191
188
148
159
179
150
167
185
148
197
171
153
180
145
194
191
181
144
156
184
181
141
163
154
167
157
189
174
172
173
164
160
158
172
193
200
157
195
185
168
191
142
149
186
199
174
145
183
162
189
176
195
199
148
170
179
177
170
195
149
155
187
140
144
162
153
181
173
166
171
158
194
149
148
198
146
177
153
149
165
173
147
149
163
140
166
158
155
195
140
197
162
152
189
179
192
187
180
190
191
164
182
174
189
175
183
164
159
189
200
191
182
194
194
176
190
197
168
151
158
157
181
154
158
184
152
191
181
167
182
160
167
172
182
160
165
199
165
199
143
150
145
172
156
155
144
156
179
149
178
187
152
165
183
146
174
168
184
180
160
164
168
163
159
166
185
182
153
142
153
194
142
174
145
195
179
146
168
160
185
164
167
147
196
150
154
182
140
159
146
169
142
195
145
152
177
197
162
155
140
142
186
170
155
196
197
179
146
195
186
174
187
153
143
196
162
151
146
200
174
158
174
140
180
163
144
159
189
155
156
197
189
160
183
191
166
157
194
172
197
148
162
163
169
193
180
177
181
165
195
186
199
148
167
179
172
200
140
154
159
140
185
151
192
167
190
161
175
147
157
187
184
160
152
153
177
170
154
167
157
188
165
190
188
161
165
194
143
199
194
155
156
195
182
180
151
167
189
193
172
175
155
166
143
176
197
156
193
194
158
174
157
194
140
146
156
146
191
146
151
140
200
193
176
178
180
172
177
147
193
157
166
140
157
140
151
150
174
176
176
178
200
146
162
172
181
145
168
186
183
175
153
143
140
158
178
174
198
140
152
161
146
186
188
189
176
181
143
182
175
173
153
174
196
152
200
183
199
159
162
199
141
165
178
155
141
175
185
161
183
173
159
178
172
180
188
150
178
152
170
154
192
182
183
187
175
194
158
151
170
191
197
171
152
159
156
164
189
198
177
160
182
175
177
161
200
200
177
149
144
166
175
151
178
180
168
194
176
162
147
166
161
189
177
194
163
196
189
160
178
165
173
154
161
159
152
160
187
170
196
196
143
195
199
192
160
143
172
198
148
177
185
169
150
160
167
153
175
189
143
151
171
198
154
152
192
184
182
155
200
162
151
141
144
188
152
187
184
199
163
168
181
177
200
184
149
161
171
163
178
173
193
150
155
186
193
158
182
150
192
157
178
159
171
194
141
186
196
150
191
162
156
146
176
140
181
199
174
166
169
154
162
143
141
165
181
146
172
177
187
155
190
182
176
187
200
183
176
168
177
182
195
172
196
179
141
153
176
161
147
199
144
197
141
200
151
165
172
169
193
157
150
180
182
154
153
143
176
145
155
142
180
161
157
149
178
166
142
153
146
162
152
156
179
179
168
188
170
164
190
198
148
179
184
184
164
151
185
181
186
149
175
188
197
148
184
160
168
157
178
163
181
193
191
190
199
200
152
158
191
164
184
145
170
141
196
151
161
183
168
190
167
180
181
153
173
150
144
170
197
174
195
151
170
160
150
177
190
162
160
163
180
144
198
197
193
177
198
200
150
185
176
191
189
172
164
153
184
145
170
199
200
200
187
159
141
187
143
177
143
170
164
142
189
172
184
185
183
152
171
187
152
187
145
199
168
145
176
173
200
194
167
183
154
183
153
140
161
146
150
165
151
143
153
160
184
175
143
184
167
196
160
178
151
181
192
194
147
194
150
162
167
175
178
183
166
188
200
151
183
147
140
186
174
189
156
143
178
155
183
155
143
186
167
182
175
167
156
188
153
176
191
165
154
195
146
146
191
200
174
200
182
200
166
162
159
157
164
145
199
171
182
170
143
143
170
176
154
154
186
143
179
194
149
182
166
169
160
167
192
156
198
175
177
167
162
189
170
163
144
172
158
169
146
159
187
190
184
158
166
148
190
176
158
176
140
153
177
200
157
178
143
172
184
175
181
145
188
166
150
164
179
169
194
177
174
171
198
155
157
164
178
167
157
182
159
154
158
158
163
196
163
180
184
172
162
148
157
186
193
167
186
187
175
181
145
170
152
167
176
188
173
182
162
153
183
166
168
149
161
172
151
170
179
165
167
186
166
147
200
199
173
146
158
181
153
183
154
190
145
142
154
162
190
193
185
188
150
198
173
176
160
182
158
193
188
152
149
147
151
147
184
161
153
141
188
142
147
200
168
168
149
147
174
165
184
179
169
172
150
145
149
153
156
199
143
181
153
196
163
176
197
179
180
143
181
165
183
157
163
180
149
149
186
142
153
193
155
168
197
147
144
170
141
147
167
180
143
185
159
171
150
192
147
145
153
166
172
179
172
193
178
190
190
152
175
189
199
143
166
192
163
182
163
190
197
148
145
170
141
151
156
142
184
177
194
195
147
171
170
192
151
160
164
196
154
183
142
154
160
166
181
191
189
146
182
141
154
143
168
199
152
194
165
164
200
148
150
166
198
171
162
172
199
145
181
173
170
189
169
144
158
167
178
157
199
199
172
172
200
143
172
147
186
144
157
159
141
164
194
141
155
180
196
162
145
192
148
148
181
169
171
180
174
200
189
156
155
155
193
194
167
166
173
153
171
153
178
199
153
171
141
140
142
183
156
145
165
184
163
155
160
166
140
178
195
148
188
164
171
156
168
153
167
159
177
155
181
162
188
159
159
174
157
175
178
189
161
171
175
198
200
193
159
169
186
180
147
165
141
148
191
164
182
196
141
188
146
178
144
183
174
177
148
197
163
183
144
143
182
172
186
166
172
198
194
193
159
170
146
158
158
149
156
149
182
161
200
189
195
170
146
153
171
168
161
144
191
153
142
173
178
157
181
176
166
150
191
161
180
175
149
168
195
167
175
191
178
187
171
182
181
189
173
198
147
141
196
172
183
153
145
141
168
181
187
172
175
148
197
155
151
191
194
141
156
180
185
192
152
157
142
167
182
198
192
158
198
182
164
168
172
177
149
188
143
162
155
200
142
162
176
183
152
190
155
173
164
156
177
174
172
196
200
171
199
169
157
189
184
140
198
184
164
158
148
183
186
178
172
182
180
143
176
182
145
162
198
153
192
194
157
156
159
177
173
167
143
141
177
199
180
153
166
144
143
165
141
141
166
186
149
149
144
169
146
183
186
163
148
180
163
152
189
166
200
192
198
198
173
170
184
185
172
176
143
144
163
188
163
166
187
187
173
190
170
160
195
154
186
148
166
194
148
161
157
191
172
177
142
196
198
174
179
192
196
140
196
147
185
199
170
146
196
153
154
164
161
158
185
154
193
192
160
142
179
196
166
179
148
149
193
191
195
157
167
186
164
188
174
157
175
189
174
189
164
148
165
171
184
145
200
145
147
184
192
142
159
143
185
184
168
165
165
142
176
193
193
186
188
194
144
148
146
152
196
193
151
197
167
141
194
170
156
177
172
148
178
155
175
172
193
185
142
187
149
173
147
198
173
170
157
182
141
151
159
184
141
167
141
176
180
154
169
183
174
182
198
160
140
197
184
191
176
182
177
187
145
180
159
192
190
165
194
185
173
193
183
170
170
185
150
189
196
174
191
194
164
187
142
168
198
185
155
156
150
200
172
199
164
200
143
199
181
149
161
158
194
183
182
171
153
142
154
157
170
191
189
197
143
147
198
191
190
141
141
178
149
143
159
141
178
172
197
191
181
165
177
183
190
197
178
172
143
153
162
151
194
175
141
176
165
196
159
191
184
142
194
179
187
172
178
179
170
196
141
195
166
191
143
182
152
183
160
168
193
196
175
174
187
169
164
176
158
143
151
187
150
153
145
174
170
196
167
190
148
194
180
194
141
184
180
167
190
171
167
150
158
192
170
144
140
200
144
147
192
188
179
164
190
148
147
158
152
189
161
151
143
193
188
151
169
156
161
176
174
152
163
182
165
157
157
177
181
152
188
175
165
150
149
177
197
183
162
154
194
186
171
156
179
180
173
176
143
194
160
145
150
146
184
151
175
162
189
146
151
185
183
175
199
155
198
181
188
187
162
149
180
172
149
144
156
169
163
148
192
149
146
185
183
200
168
199
200
182
199
164
175
200
158
191
178
141
167
175
178
162
178
146
149
193
157
173
179
140
160
160
165
172
147
193
145
150
194
164
155
186
181
168
186
150
141
191
167
166
181
195
192
199
144
151
178
148
178
168
163
174
143
167
199
200
188
174
157
198
185
199
143
162
171
156
190
152
144
153
156
179
180
197
170
175
157
166
153
199
193
140
166
179
187
146
159
158
198
193
165
191
181
146
165
170
143
142
173
188
187
188
194
178
141
162
153
141
151
174
188
196
143
188
179
162
146
151
156
157
148
148
178
184
176
155
163
177
169
185
183
184
141
162
160
153
146
195
155
173
164
190
155
170
162
187
175
159
181
186
153
175
193
173
181
192
155
164
148
172
142
158
193
168
170
157
169
152
186
185
141
152
160
171
157
170
146
173
192
166
194
164
194
171
200
153
175
196
198
170
175
140
159
156
195
166
200
183
179
189
174
196
199
147
187
145
166
161
194
147
166
143
152
189
150
168
146
182
198
193
165
179
161
172
150
160
183
155
148
176
172
167
172
164
182
188
157
167
187
176
158
182
143
151
175
155
162
157
184
160
144
189
190
168
151
145
177
147
192
152
177
161
162
200
153
163
147
150
199
193
200
149
163
184
167
192
185
190
164
159
190
192
199
177
188
174
143
197
152
140
180
184
187
157
152
186
180
184
182
184
149
179
187
192
194
178
147
183
152
162
171
157
144
159
147
176
183
163
149
166
154
197
199
165
168
193
156
173
167
148
152
165
172
175
195
198
165
150
184
183
160
143
184
194
158
156
148
148
144
195
146
144
148
178
144
180
166
178
193
156
170
168
150
175
195
181
173
176
143
164
190
143
158
197
199
165
187
180
153
146
146
171
192
153
187
176
194
143
198
170
145
154
163
155
183
185
189
186
145
169
143
154
164
159
178
189
141
189
179
166
164
144
153
171
176
154
160
167
144
159
140
173
140
196
144
197
172
155
167
197
173
166
141
181
198
165
147
161
141
186
159
153
174
196
196
197
181
163
168
143
147
149
175
185
190
160
145
152
152
141
166
154
143
197
199
163
146
157
149
157
180
175
191
187
166
184
181
142
167
200
165
149
179
161
179
142
169
165
171
177
140
140
152
200
158
147
151
155
177
153
155
149
151
188
159
159
159
153
197
143
140
158
186
194
190
196
168
172
153
163
140
193
192
176
195
168
140
150
190
149
159
183
157
188
144
162
167
167
168
163
163
187
194
198
146
160
184
190
200
141
167
152
192
147
174
144
150
151
195
159
145
182
159
154
183
176
152
151
183
170
185
195
152
145
189
191
156
157
184
151
140
199
194
189
142
188
174
193
151
175
172
169
173
158
200
161
177
172
145
186
199
143
170
176
166
175
147
162
173
147
152
159
170
197
180
150
156
189
141
183
179
145
190
158
189
198
155
193
179
183
166
151
193
189
187
166
182
199
176
194
160
183
198
165
163
158
195
191
146
198
186
191
158
192
188
190
145
175
186
156
191
199
178
174
158
146
140
146
185
184
180
185
196
166
142
192
177
159
158
192
194
192
155
194
145
196
155
176
183
143
168
149
165
188
191
163
184
157
187
187
168
174
142
183
189
170
173
156
189
200
198
189
146
148
160
194
190
179
151
172
148
186
179
141
153
171
193
184
194
141
154
164
180
185
144
161
187
196
158
199
150
177
166
150
147
195
165
152
190
142
157
199
194
182
195
143
161
171
171
141
146
159
160
165
164
181
199
163
186
142
190
179
173
155
193
151
178
187
156
147
181
140
163
179
147
159
153
154
164
197
200
198
182
175
199
183
196
154
155
146
179
197
157
194
166
187
178
176
168
141
184
179
148
175
198
194
143
193
195
166
185
163
175
186
179
161
200
164
164
156
193
197
164
199
174
151
189
170
183
140
195
154
197
146
162
163
151
177
147
168
152
191
182
143
166
182
198
195
187
163
144
186
162
193
169
172
163
148
182
193
178
177
183
158
140
174
188
177
169
173
190
172
145
166
175
195
182
141
158
196
200
145
147
165
199
142
170
174
165
159
195
181
164
189
158
179
178
160
195
164
170
165
169
140
196
179
159
147
175
190
157
186
185
190
164
183
189
161
149
179
172
143
154
196
191
160
193
198
170
159
152
199
167
158
176
152
181
158
181
198
142
188
153
176
143
161
150
174
184
142
162
191
151
182
150
182
190
195
171
153
178
147
150
184
145
176
141
150
180
174
166
171
141
176
168
177
182
146
165
149
160
168
192
189
187
170
187
162
198
186
164
199
154
160
190
168
192
185
197
179
185
141
157
198
184
140
146
195
146
162
187
173
195
180
171
194
147
162
143
196
162
179
200
145
193
178
178
169
184
152
174
173
150
151
148
141
152
149
162
150
141
181
193
179
148
155
187
167
192
141
178
191
181
150
140
197
192
182
168
174
162
149
168
167
155
195
161
165
192
150
157
159
143
181
198
181
145
143
166
154
158
149
143
174
148
168
140
180
148
147
186
155
191
182
142
140
143
140
141
189
180
189
144
144
194
153
147
145
180
149
164
186
190
188
147
192
146
192
200
198
150
157
183
179
169
172
148
180
157
152
198
192
197
192
196
149
170
144
160
194
179
170
151
195
189
188
188
200
166
148
155
159
175
140
189
177
180
150
147
166
153
200
187
169
192
161
165
174
140
147
142
180
199
200
145
180
164
184
176
163
169
145
198
163
185
157
148
184
175
197
147
174
168
197
179
166
190
163
149
172
173
182
156
192
169
161
159
191
158
166
146
154
193
140
194
194
199
186
153
147
192
144
164
189
163
190
195
141
154
149
163
163
190
164
181
177
164
152
172
195
193
162
143
176
182
140
152
179
178
158
180
181
154
186
158
144
186
161
196
143
156
154
169
163
169
183
182
143
186
197
169
141
200
176
186
168
199
142
142
161
150
157
158
184
192
168
199
195
164
169
161
144
145
197
178
149
163
161
199
147
196
193
155
146
158
151
200
169
141
181
166
151
196
199
195
142
154
198
196
174
199
179
175
184
194
180
170
155
176
181
199
193
183
163
158
196
155
186
200
155
161
144
193
155
167
185
185
185
154
185
161
165
187
164
140
173
178
172
183
160
166
149
164
146
196
198
145
174
166
151
147
175
168
196
152
143
157
146
176
147
188
149
144
162
185
181
147
185
168
158
172
167
194
151
143
181
169
166
192
173
182
162
196
150
150
143
150
168
195
193
162
165
143
195
164
171
148
146
176
157
189
180
178
189
161
186
188
152
172
153
181
176
192
163
153
172
183
154
171
140
193
144
178
187
187
152
175
175
195
171
145
156
149
181
169
190
193
199
164
147
187
169
186
196
188
166
144
199
162
147
160
171
183
191
162
191
170
163
154
143
174
168
145
168
175
188
156
178
157
167
194
167
157
175
198
151
145
166
184
191
157
184
154
145
178
150
187
181
186
143
155
172
172
147
173
149
192
184
155
188
153
187
182
191
187
156
176
142
186
161
144
156
149
193
195
167
190
174
158
165
141
141
191
151
147
152
170
146
169
199
189
175
194
182
151
159
168
143
176
155
177
141
183
178
176
152
199
179
146
193
180
199
151
158
195
167
151
146
163
186
148
167
182
155
182
168
151
145
194
189
190
173
158
183
194
185
150
168
188
147
191
176
159
192
140
146
161
171
156
148
166
188
200
176
144
147
178
184
174
163
195
142
175
177
191
171
168
198
148
191
152
200
142
161
167
176
173
149
167
151
149
147
192
187
184
162
199
174
179
190
154
157
170
160
167
170
177
145
177
181
140
191
170
199
197
164
198
181
191
171
165
182
154
189
191
140
150
145
144
190
172
164
140
163
161
149
177
191
161
161
168
196
167
160
150
160
200
179
185
196
185
142
149
187
170
193
183
191
175
148
171
169
142
180
181
177
184
144
192
149
198
180
183
159
165
199
174
167
191
150
181
154
184
164
172
174
181
178
170
194
193
144
161
156
167
182
158
193
200
181
173
167
187
184
197
141
162
181
148
171
197
141
162
142
188
167
177
140
164
163
194
181
153
145
171
146
143
176
166
188
160
144
158
185
180
153
195
160
187
192
189
187
162
161
162
200
186
166
167
193
186
170
186
168
175
183
164
175
182
183
187
154
143
171
149
192
148
199
185
200
192
157
154
199
199
160
157
167
166
169
188
160
160
200
181
164
185
190
182
186
188
159
183
155
160
157
141
149
185
187
150
149
160
195
165
156
186
150
140
188
174
182
169
157
199
142
153
179
165
195
145
158
167
141
198
162
162
159
153
162
169
150
147
156
172
176
188
161
189
167
157
154
198
195
169
147
143
184
159
193
163
178
197
147
150
148
180
163
198
147
172
186
143
168
192
170
179
143
183
149
150
156
152
144
168
188
140
145
156
148
160
153
144
189
152
197
170
189
158
187
182
172
158
150
167
179
170
199
153
165
197
175
172
168
140
143
182
175
197
172
144
151
146
198
161
158
143
192
174
161
189
171
152
179
190
150
177
144
183
180
186
192
197
195
189
162
188
199
151
171
173
158
184
150
194
195
140
192
182
183
159
150
194
149
174
186
145
162
195
172
144
152
177
171
155
163
150
143
175
200
189
165
165
145
181
198
147
185
158
165
149
142
174
197
169
193
140
153
183
199
196
154
180
147
192
188
199
147
174
182
166
192
197
158
172
159
190
182
140
173
196
167
151
156
141
154
154
167
172
172
142
146
158
151
196
143
191
188
147
168
160
192
177
172
186
142
198
165
149
171
157
196
171
144
190
170
192
180
149
146
171
166
188
169
164
182
154
179
155
163
153
181
154
182
145
150
152
194
155
144
140
168
166
189
160
189
165
163
171
165
181
176
198
189
178
152
170
195
167
200
142
200
167
198
188
190
191
186
154
172
185
180
195
175
148
141
148
159
155
165
188
197
153
195
158
199
146
173
168
174
149
145
141
160
165
187
140
172
187
142
183
170
169
178
200
150
166
179
144
182
178
175
156
173
173
165
157
185
143
187
146
148
155
186
140
190
152
178
155
173
153
142
171
151
200
159
193
147
189
193
152
191
165
177
156
194
196
170
191
177
195
153
143
184
183
169
143
191
163
145
179
193
140
146
154
174
183
161
162
177
154
197
174
163
140
141
176
159
167
168
190
144
173
173
154
168
196
188
184
188
189
159
182
169
166
155
163
155
160
185
165
179
189
171
150
166
154
146
160
152
168
164
180
188
159
184
191
195
168
178
188
181
189
182
148
145
166
148
186
149
181
170
194
154
188
195
170
156
150
191
157
150
155
199
143
141
146
172
193
181
197
149
142
149
196
144
161
173
200
170
176
180
177
193
187
153
140
196
192
176
190
174
153
155
189
198
178
189
151
192
176
150
176
167
150
164
147
156
189
159
163
200
199
171
165
161
141
170
163
186
150
193
160
163
145
188
177
165
162
177
180
165
183
175
144
198
148
189
184
187
144
142
194
167
184
194
156
190
200
178
166
142
194
143
176
180
189
187
182
197
151
170
184
150
163
197
175
170
160
170
153
143
198
178
171
200
182
166
141
197
158
154
162
152
146
168
151
156
150
151
189
186
162
180
192
148
163
163
172
155
158
163
183
144
148
172
179
197
175
167
154
176
168
180
163
147
184
161
160
179
168
156
181
143
193
148
161
157
146
174
172
151
175
178
161
147
197
197
155
140
153
195
177
148
191
140
177
197
153
144
188
182
179
195
163
140
183
142
154
164
155
162
172
167
163
197
142
145
178
182
186
151
148
195
157
167
178
147
143
140
141
158
182
178
190
171
196
192
156
159
152
148
175
161
194
164
145
183
186
148
191
160
176
194
184
170
140
150
183
185
160
155
184
140
171
177
148
155
191
152
160
165
145
149
195
148
148
158
166
146
158
170
165
198
145
181
193
164
193
196
184
140
172
172
190
190
199
154
180
191
154
196
171
193
155
158
141
199
188
188
142
161
182
189
176
198
164
169
193
194
193
194
165
188
173
173
154
199
140
194
146
174
162
154
151
198
174
145
188
170
198
150
157
184
189
193
167
181
199
155
192
175
167
148
172
183
183
176
181
145
176
191
160
193
200
190
171
176
173
141
153
180
187
156
144
175
200
175
176
150
161
142
191
163
159
168
158
182
199
193
167
179
196
171
178
157
172
184
176
197
173
151
178
186
199
147
152
161
164
147
173
175
191
190
196
154
170
187
185
147
155
186
140
171
144
153
194
185
157
169
156
160
169
190
200
180
199
158
167
172
141
200
190
180
143
158
149
162
193
157
145
150
164
173
165
182
154
195
173
163
140
188
144
150
182
154
150
155
157
150
161
164
187
184
141
140
165
187
185
142
180
151
148
191
156
150
156
190
165
186
166
183
145
135
136
128
145
126
106
110
126
103
113
125
118
149
101
132
107
111
121
127
109
110
102
136
110
104
119
102
150
127
139
111
137
111
144
135
134
112
138
135
129
130
114
130
112
136
125
100
145
124
117
150
121
107
132
135
148
104
145
118
129
132
120
126
121
142
143
122
145
141
140
104
126
144
147
149
107
149
123
134
122
142
106
104
141
135
138
136
121
120
135
119
115
123
148
132
128
146
142
127
144
121
150
106
122
141
108
131
115
114
128
125
102
108
146
133
125
134
104
112
141
115
144
141
102
138
126
117
144
118
100
143
136
115
111
150
102
148
145
143
104
149
112
150
131
110
104
133
127
105
129
103
117
118
128
132
114
146
127
149
108
107
104
142
116
132
142
108
107
139
130
111
108
130
117
123
112
122
106
139
134
116
128
101
147
135
105
107
121
125
144
105
107
106
105
148
124
142
102
139
116
143
133
118
130
115
141
139
135
117
109
115
126
118
130
103
117
124
134
110
139
146
124
144
111
111
134
115
108
141
150
136
122
138
118
133
144
138
116
141
145
120
120
150
147
115
126
116
131
145
101
111
101
144
122
128
116
143
101
122
149
135
101
130
141
134
145
130
140
108
107
144
121
145
115
130
100
143
148
133
133
146
107
142
149
145
120
150
130
110
147
110
124
104
115
146
115
144
137
116
146
121
123
147
129
138
110
136
100
122
105
124
140
105
106
141
143
104
100
109
110
129
121
102
124
115
131
112
128
119
103
103
114
104
119
114
139
120
104
104
148
131
129
139
140
134
146
135
144
100
119
106
117
123
150
147
112
105
124
150
134
127
146
146
117
107
116
131
107
138
139
113
142
133
148
112
111
124
111
108
134
143
140
121
101
146
148
114
136
118
125
129
148
127
121
123
121
108
114
117
131
140
124
134
141
114
117
111
133
148
117
130
113
106
129
112
129
119
145
117
109
115
123
105
130
107
116
135
121
102
115
146
113
108
116
134
102
129
138
139
149
144
137
121
117
130
141
118
114
135
139
140
110
102
138
125
126
114
127
149
119
117
141
125
122
146
117
145
103
117
147
116
111
104
144
150
111
146
121
101
140
134
150
131
147
149
147
134
108
111
124
148
119
131
120
123
146
141
100
129
142
113
148
139
117
150
144
100
139
146
146
107
110
127
135
139
147
108
110
129
138
139
149
141
100
116
107
115
133
109
108
145
128
145
141
125
114
131
121
143
149
126
142
106
124
148
107
137
128
110
148
117
140
145
120
149
134
140
107
121
129
148
101
143
109
135
145
137
101
120
104
114
145
149
142
100
116
115
138
130
106
134
114
147
113
126
100
142
117
135
124
143
131
100
100
104
138
110
113
131
125
125
111
118
129
149
133
143
130
110
123
111
128
119
106
125
106
137
115
113
112
103
114
109
129
128
136
106
118
133
120
141
144
145
147
129
145
117
150
145
107
109
107
149
132
138
110
103
139
100
108
104
127
125
149
128
115
131
142
120
100
129
111
124
144
149
150
133
105
128
140
117
128
103
113
142
102
109
106
105
146
124
135
113
118
109
119
122
119
146
122
116
100
126
107
115
137
117
121
108
122
130
137
109
126
130
112
115
142
118
100
144
104
140
130
147
138
133
136
142
146
108
142
131
120
142
149
114
148
145
127
110
132
123
139
119
147
136
148
100
106
148
102
122
134
138
118
143
135
128
111
112
116
130
121
117
117
113
149
138
125
111
101
130
107
117
124
134
106
102
148
134
144
130
101
116
144
142
146
137
115
116
143
133
143
147
149
118
145
117
137
147
113
124
132
117
147
124
130
118
104
111
121
142
139
146
105
107
142
143
112
114
142
110
134
140
105
120
146
140
100
109
124
114
134
111
116
143
131
132
108
125
149
108
134
118
139
128
135
115
110
147
116
109
135
122
147
145
134
105
126
137
116
135
134
107
101
145
125
117
120
117
105
116
112
115
149
137
116
109
143
112
109
141
128
146
111
121
116
107
138
104
139
102
103
102
130
144
110
103
112
123
101
111
106
142
133
116
125
105
148
149
108
118
140
138
107
145
134
123
107
137
107
140
146
124
142
131
110
134
121
132
110
135
128
107
133
111
117
116
103
110
141
150
130
145
141
150
131
123
118
127
134
150
121
120
115
106
100
130
100
144
140
144
120
144
128
112
141
129
136
123
137
146
129
139
125
119
110
127
114
114
148
132
125
138
129
147
121
123
106
139
111
129
110
120
130
101
128
150
131
135
142
145
131
112
107
111
143
136
132
113
101
148
149
134
150
117
149
112
135
129
129
145
145
135
120
132
111
118
111
135
144
142
149
149
146
126
115
123
147
135
140
115
123
130
125
120
117
125
130
109
121
129
130
150
109
129
100
142
146
128
100
110
140
126
140
132
138
119
132
145
150
140
108
124
137
135
100
144
109
109
111
144
128
129
149
132
103
148
122
122
149
130
145
118
138
117
139
141
126
125
123
122
146
115
111
146
146
119
149
126
135
145
111
128
110
120
147
118
132
143
115
101
144
135
110
129
140
111
122
118
122
136
122
129
148
134
145
118
107
149
125
132
123
126
105
117
133
125
147
113
104
148
123
136
100
144
150
105
142
135
105
124
122
145
143
130
150
117
109
123
120
143
118
134
107
126
145
148
124
120
122
128
121
145
146
150
132
146
140
122
102
137
129
117
132
145
143
102
109
111
137
104
144
142
146
135
150
128
138
123
103
144
138
147
104
126
103
101
137
144
141
149
121
125
145
124
113
133
122
100
111
130
128
129
107
133
130
142
137
118
137
136
102
140
117
117
126
105
116
130
103
150
111
110
104
111
115
150
150
112
127
123
104
140
103
108
123
100
133
143
110
106
147
119
141
107
127
126
127
144
118
111
129
132
146
139
134
144
126
107
124
125
138
132
140
108
146
110
130
142
123
132
141
110
122
141
122
130
147
129
131
103
118
128
128
106
100
126
134
103
108
102
116
127
102
112
107
145
127
133
126
121
134
124
142
133
112
146
137
144
126
134
128
104
108
102
103
133
132
144
134
143
145
109
103
128
114
142
101
134
128
120
132
150
122
126
131
137
112
105
120
107
131
122
103
136
112
111
144
126
105
110
147
148
136
150
130
123
137
128
135
103
119
110
136
145
116
134
145
111
148
118
113
140
100
136
109
134
134
139
109
126
140
132
110
132
131
116
124
103
139
117
150
139
106
127
126
147
145
140
111
106
128
143
139
148
140
139
108
143
100
121
143
129
121
134
108
125
143
117
104
149
105
117
139
113
117
108
127
117
106
125
121
142
143
128
136
136
127
117
128
125
146
142
134
136
100
120
130
113
145
103
126
136
112
147
130
130
121
120
147
131
109
126
105
122
130
110
134
148
132
149
149
133
119
116
128
146
116
125
109
106
132
100
104
135
150
133
132
130
144
116
132
141
117
137
141
114
122
149
135
142
124
115
147
121
110
104
128
133
100
108
135
126
144
109
146
101
131
138
123
121
115
126
106
101
127
149
136
123
148
126
112
128
137
106
141
146
124
130
126
111
150
105
103
100
121
111
148
145
129
124
146
144
111
139
116
145
133
129
114
131
145
122
134
148
100
147
103
125
141
107
138
133
113
115
100
150
119
110
100
101
122
110
118
125
133
125
136
115
150
101
138
137
117
124
146
112
107
133
145
144
135
103
114
100
130
136
128
107
115
109
148
107
145
132
137
129
146
144
107
124
116
127
145
136
102
103
132
146
146
147
106
145
131
101
122
110
134
126
146
107
122
100
111
148
140
149
137
119
110
136
106
150
145
131
104
116
120
110
127
140
112
107
118
150
148
103
120
140
100
108
104
102
107
110
126
132
150
124
139
112
131
117
129
150
107
119
116
104
139
136
148
109
144
115
130
119
105
132
139
110
139
118
125
105
111
109
118
150
135
110
119
125
133
144
126
145
134
138
114
100
115
137
123
111
105
116
120
112
135
147
135
149
111
129
101
104
137
131
100
124
143
102
131
131
115
103
150
140
121
141
105
133
121
133
109
101
149
137
129
148
143
136
127
148
135
118
102
130
128
122
140
143
116
142
118
115
133
141
131
148
137
132
107
137
111
111
109
134
124
104
149
130
141
148
100
120
107
104
120
147
148
111
129
117
108
123
147
115
148
120
149
113
106
107
110
115
134
113
137
137
135
144
123
103
101
123
106
111
137
114
111
144
143
104
103
139
138
147
140
129
142
100
143
125
136
107
103
109
111
114
140
103
101
111
100
148
102
137
110
148
122
106
144
130
116
146
137
149
100
147
111
135
119
106
127
122
135
139
122
147
135
122
128
134
116
125
146
125
118
146
124
121
147
129
109
120
145
136
144
115
112
141
126
137
122
101
118
116
110
127
122
121
123
117
124
142
127
138
132
124
131
120
136
113
128
144
111
135
145
141
145
130
100
112
135
114
110
108
141
138
140
124
116
109
105
130
117
110
123
123
117
121
140
109
142
147
149
143
126
107
110
100
121
149
114
105
138
148
107
138
124
133
122
138
104
109
115
142
106
142
116
114
100
115
138
107
109
109
113
121
130
136
149
136
141
135
129
105
138
149
126
135
120
101
123
116
141
119
104
115
126
100
145
129
130
117
107
106
137
127
128
104
135
144
120
128
126
150
113
134
117
116
122
108
121
102
124
140
122
115
143
137
148
137
114
111
135
127
137
135
120
111
120
120
110
100
116
123
117
130
121
150
133
128
150
130
117
148
107
105
139
119
148
100
142
112
117
148
112
132
133
144
113
101
121
142
110
113
119
127
142
131
129
145
142
101
110
115
129
124
145
145
143
112
140
128
128
113
127
118
147
136
130
107
131
135
139
120
142
143
131
131
123
130
129
149
108
138
115
121
110
140
102
122
103
141
101
145
121
127
120
127
145
104
139
131
134
140
150
106
139
148
150
109
108
124
108
116
147
143
113
110
121
132
129
102
118
115
126
104
142
116
136
136
136
107
146
136
136
149
101
118
144
130
146
108
129
136
104
102
103
102
129
122
118
129
148
130
114
108
103
148
138
128
133
132
119
108
101
103
118
113
137
129
108
121
114
140
123
144
120
135
108
134
142
111
150
110
135
149
119
143
100
107
149
145
142
100
133
102
115
133
142
118
147
108
120
104
142
117
105
109
141
108
102
143
126
148
112
133
111
140
123
142
137
101
147
108
146
122
113
149
102
119
141
141
102
148
141
135
130
121
118
137
136
123
114
105
113
135
109
121
140
146
107
139
124
129
121
129
115
111
125
131
119
148
137
107
119
119
131
128
113
104
121
138
141
136
143
133
103
106
148
130
127
136
109
118
144
107
118
132
103
150
135
129
131
117
115
136
139
122
137
129
102
101
122
136
118
147
132
112
108
123
145
150
119
139
133
128
126
137
127
132
108
113
133
150
130
121
112
133
149
130
133
108
144
107
149
106
100
120
104
124
141
148
111
147
124
132
101
113
137
117
115
142
122
134
116
143
150
107
127
128
121
106
147
129
113
130
124
118
141
124
138
109
104
142
100
103
147
137
147
119
134
117
137
139
113
117
124
126
145
129
137
128
141
118
133
114
123
117
142
149
140
148
125
132
120
145
111
146
130
132
143
108
121
132
115
120
125
119
113
148
141
114
109
116
146
121
133
117
111
149
101
100
110
111
101
120
112
117
123
119
107
131
129
150
108
127
100
100
110
144
129
124
114
105
149
134
136
114
123
139
140
142
149
148
117
112
103
130
135
129
145
147
115
100
103
105
123
135
100
113
101
108
117
100
126
150
112
150
123
141
120
121
135
109
119
108
124
134
126
125
120
125
116
143
136
115
123
101
136
129
110
129
120
128
139
107
115
145
114
133
119
138
120
146
109
108
112
113
101
136
104
122
123
137
121
102
128
111
132
130
148
130
141
111
147
116
140
139
100
149
115
101
138
127
128
144
117
126
120
108
133
114
146
149
150
108
107
129
139
113
120
107
104
136
120
134
132
105
134
131
115
140
106
144
142
111
135
150
101
142
114
134
129
142
117
145
109
130
117
106
104
101
106
112
145
136
150
127
138
107
136
104
148
135
108
106
149
101
128
115
120
109
136
143
105
147
127
104
138
111
145
134
127
138
106
108
137
126
120
106
123
150
150
141
134
120
128
118
112
111
102
104
137
147
113
143
105
133
133
133
131
100
137
135
142
138
120
145
126
105
148
139
111
117
126
142
100
107
141
150
132
124
143
138
124
131
140
143
136
130
129
121
122
106
144
100
120
130
110
117
147
101
138
135
149
124
112
150
118
126
150
106
111
126
135
137
147
107
129
141
129
133
135
130
141
113
132
138
146
130
122
102
126
117
140
110
125
123
113
126
128
122
146
138
102
146
114
146
132
139
150
106
115
132
147
125
117
138
127
114
117
108
141
139
135
146
109
111
123
107
142
144
117
113
149
131
120
130
145
125
108
103
141
144
103
123
137
119
144
143
148
121
139
111
143
117
100
126
112
146
123
106
137
130
107
150
120
107
140
150
113
118
116
142
112
100
102
111
102
108
110
117
134
127
142
118
117
101
115
113
138
104
148
128
103
103
122
138
109
120
144
139
133
101
144
146
138
113
123
119
142
146
140
124
103
100
146
139
144
132
101
117
145
123
111
137
147
141
115
135
116
127
123
122
150
124
133
109
145
145
137
142
128
115
125
126
143
147
121
146
146
109
115
104
150
126
150
134
147
149
149
145
121
124
105
147
120
108
141
134
147
100
106
101
137
107
145
136
105
141
143
133
105
137
114
124
148
104
111
145
132
132
120
145
103
146
141
101
138
142
139
144
136
104
114
125
149
126
104
122
148
101
121
126
117
139
145
115
122
123
135
135
119
136
147
146
145
150
105
114
104
123
141
122
103
137
105
126
144
119
100
108
139
130
128
147
143
114
117
114
112
139
146
140
126
100
135
140
128
133
119
138
126
130
109
118
120
139
121
126
144
114
113
108
117
144
139
123
115
100
106
149
122
127
103
135
118
101
135
118
148
118
131
146
102
145
147
123
116
135
133
141
124
113
130
146
115
128
131
114
102
111
136
125
136
137
128
102
120
124
121
112
137
140
144
105
147
121
124
106
145
106
115
147
127
105
109
150
107
101
120
124
100
129
128
130
149
110
115
115
144
145
108
146
129
147
125
114
117
131
121
133
122
149
113
112
114
140
133
121
103
100
125
105
119
118
134
105
131
129
113
139
137
130
127
119
119
124
142
148
132
109
149
117
104
147
103
148
145
100
101
129
110
137
146
103
110
102
111
129
107
147
122
125
132
104
106
128
149
132
131
129
145
103
136
117
138
135
145
102
101
135
135
133
142
108
147
116
144
109
111
146
116
132
130
102
127
148
107
105
125
125
129
126
129
113
100
131
144
124
131
140
132
130
119
129
100
119
107
114
108
116
122
136
140
107
145
105
126
134
103
134
110
121
105
115
101
118
105
107
104
121
132
133
141
103
114
120
103
127
147
109
146
132
106
104
112
117
108
149
133
116
123
127
115
107
148
136
149
118
149
145
110
101
122
116
109
132
127
146
150
146
134
130
112
128
133
100
141
130
120
117
100
137
122
128
126
112
147
128
121
109
121
119
130
111
141
101
115
126
143
126
145
101
118
115
123
134
100
122
118
117
129
106
121
113
145
134
118
110
120
107
126
101
116
101
141
144
135
102
126
117
103
139
110
147
129
125
114
132
122
117
118
130
133
149
135
132
132
105
117
110
145
116
121
118
103
110
112
114
148
129
122
107
120
123
116
100
143
138
118
115
139
143
124
110
118
130
133
133
121
109
143
138
137
112
150
116
116
146
124
125
108
106
114
141
125
103
141
121
106
136
143
118
131
126
126
136
108
110
105
125
125
137
142
117
123
120
104
106
145
115
103
109
150
118
118
114
134
122
141
132
149
140
119
115
121
109
122
103
129
128
134
131
144
138
145
149
143
133
134
127
144
139
107
127
137
101
123
102
129
135
129
130
121
122
118
139
121
140
139
131
103
128
150
110
105
134
100
146
125
128
122
117
123
141
143
114
101
112
143
144
101
128
110
116
122
115
104
135
111
149
130
110
148
102
144
108
122
108
134
126
103
147
143
135
149
128
114
105
100
143
134
103
134
138
102
118
113
113
134
126
124
126
118
102
135
127
113
132
121
112
109
124
146
138
109
129
110
106
102
137
143
138
100
145
143
140
111
133
107
133
116
103
111
132
119
102
142
145
131
145
116
144
122
106
119
140
120
144
114
149
116
148
104
136
108
113
117
101
142
100
129
117
144
150
109
127
129
126
137
136
110
100
123
144
114
101
104
118
133
104
121
108
140
108
121
131
146
146
140
118
149
135
121
126
113
142
110
119
121
117
103
132
131
119
150
139
117
142
145
130
101
125
115
108
116
105
116
140
138
111
123
149
128
136
123
121
132
144
119
128
111
124
150
130
100
110
106
127
126
111
137
138
118
126
135
100
130
147
128
139
131
148
112
121
138
105
148
117
103
142
127
135
122
122
130
115
118
113
103
134
142
138
112
137
103
129
113
124
126
143
124
125
134
140
125
147
114
135
148
140
112
125
103
136
144
133
112
131
116
145
103
137
100
112
108
114
109
113
132
111
128
149
141
133
128
131
150
135
148
137
140
101
142
139
134
148
128
112
138
121
146
135
112
111
127
100
101
118
130
101
103
117
118
123
137
113
137
112
121
149
143
119
138
102
114
141
140
117
146
132
120
132
127
138
146
121
133
141
117
106
130
120
102
144
115
144
141
127
110
139
145
126
117
150
122
132
145
107
124
135
124
112
100
112
127
139
129
128
103
118
139
109
146
112
142
143
113
149
147
149
118
100
116
136
150
111
139
117
141
116
104
107
104
121
149
133
150
110
136
144
127
142
120
124
132
140
122
106
149
128
120
128
140
121
135
105
144
105
110
110
102
119
143
125
104
139
146
119
117
139
102
132
107
143
107
116
140
109
106
145
147
116
127
148
105
107
147
148
143
116
106
119
116
116
107
141
145
107
100
134
106
145
128
122
101
110
100
131
125
113
145
147
121
146
111
134
138
133
131
116
113
120
123
145
131
106
139
148
112
133
140
142
124
135
130
103
129
129
136
116
149
135
116
122
112
134
128
134
118
141
125
113
150
115
121
118
136
108
123
143
109
149
121
104
119
111
136
101
146
128
126
147
131
145
119
143
147
117
132
127
106
111
140
116
122
109
141
145
144
121
140
114
113
112
146
114
104
120
127
134
133
113
147
117
122
120
148
123
125
144
131
128
108
147
110
144
101
139
147
142
150
135
116
103
150
106
124
115
107
129
147
131
116
144
134
107
126
125
119
105
130
108
103
117
140
141
133
100
123
114
128
144
122
121
137
132
148
124
112
100
123
117
135
102
118
135
129
120
110
129
121
119
122
101
141
117
103
125
104
100
100
147
110
140
147
140
109
129
115
145
101
146
138
102
123
100
129
129
101
110
133
137
117
105
149
118
130
106
103
116
106
118
131
109
104
134
121
140
150
125
139
100
103
144
119
147
136
122
107
125
150
116
145
127
107
145
111
113
128
110
117
146
144
102
108
141
130
142
103
127
141
148
130
122
113
123
146
125
100
109
139
116
114
107
105
112
110
108
128
138
108
133
138
116
109
112
136
145
111
124
125
104
148
126
105
100
148
144
115
128
116
101
111
146
120
108
137
131
119
104
141
124
149
112
126
131
129
104
107
129
118
121
109
150
105
137
125
111
103
126
116
125
126
138
127
141
130
112
131
126
102
145
134
123
141
119
125
137
124
148
116
138
107
110
146
124
125
144
116
130
149
107
119
107
149
101
133
137
137
123
148
140
134
120
104
145
108
102
114
107
104
112
150
127
104
121
119
133
140
103
119
117
129
107
114
102
122
120
139
141
129
137
122
117
114
106
116
146
109
148
150
147
121
109
142
103
135
150
137
145
139
115
107
121
106
122
115
126
145
140
149
120
112
123
122
101
149
137
128
101
117
143
145
148
128
134
130
112
106
102
145
121
128
104
121
112
118
104
111
122
135
116
133
118
145
105
136
141
109
128
111
123
129
132
109
107
110
102
102
110
101
142
132
148
146
106
122
143
111
107
109
133
141
104
142
109
104
101
147
127
114
149
109
126
112
135
136
140
106
101
149
135
106
107
128
119
130
138
148
149
106
109
149
105
110
142
132
120
125
129
106
107
137
144
146
133
101
148
109
122
133
128
119
118
124
118
121
141
149
108
130
108
100
145
105
111
146
149
104
125
139
134
144
123
103
144
141
116
131
132
122
140
110
134
144
135
113
121
134
150
119
127
105
125
135
110
100
139
133
149
112
140
121
111
148
145
149
137
105
108
114
118
111
138
144
124
135
128
131
103
148
125
125
148
136
130
144
112
139
112
113
140
104
142
119
133
123
113
133
147
117
143
118
145
120
127
119
123
147
142
104
143
112
102
123
104
131
109
123
127
129
102
133
149
113
134
146
105
120
149
127
104
101
142
104
106
142
134
145
130
143
130
119
123
128
144
111
119
145
118
107
114
139
113
125
145
150
142
114
117
134
116
143
119
142
143
112
119
125
146
148
133
123
102
143
143
137
137
125
120
103
124
105
114
104
114
146
103
117
113
115
110
103
110
138
145
121
109
140
142
125
137
109
139
135
113
119
105
133
110
141
106
115
140
106
143
149
141
127
141
144
149
109
100
128
148
128
122
145
113
138
137
110
123
127
124
115
146
113
141
118
140
121
148
100
104
141
104
101
100
103
138
120
119
127
115
145
124
127
115
113
119
103
146
108
118
121
103
145
131
132
145
144
125
114
109
100
108
108
148
131
142
124
111
136
119
123
150
104
137
110
125
107
150
134
121
143
121
123
140
100
121
102
102
141
114
102
108
101
141
138
134
133
100
100
136
121
105
108
104
123
109
104
146
149
148
108
148
131
127
112
143
109
142
138
143
149
138
108
122
144
131
115
136
120
140
106
121
142
117
130
108
104
146
136
102
141
118
131
128
144
146
103
122
116
150
114
106
106
126
128
128
147
133
123
116
126
146
136
126
114
126
136
146
132
128
104
146
117
121
119
125
133
148
117
141
149
117
125
110
111
100
125
147
133
110
136
106
139
100
100
125
129
114
135
146
118
143
123
114
144
138
115
118
138
108
115
101
131
103
122
121
110
132
121
134
133
115
134
129
131
106
128
135
103
101
146
103
108
138
111
125
127
119
105
100
117
142
147
119
115
121
124
148
100
146
116
112
107
132
103
108
144
149
115
100
101
123
133
141
101
113
105
107
150
135
147
106
130
148
118
134
136
141
144
119
126
137
124
120
117
149
149
106
126
110
100
131
141
125
112
141
103
133
128
111
114
117
123
128
144
126
134
115
108
149
109
108
103
147
147
150
100
147
136
116
101
139
129
125
121
142
147
120
112
143
144
136
143
143
134
121
116
132
149
125
149
126
124
138
136
134
141
131
114
133
110
109
134
120
112
124
106
110
102
142
144
104
116
138
128
128
135
122
104
120
136
148
141
124
144
111
112
140
101
123
108
123
140
147
122
144
116
148
107
124
127
103
111
114
148
127
144
116
115
120
124
111
114
101
121
126
132
101
110
125
120
115
141
113
103
105
128
120
126
116
147
140
111
133
146
115
126
120
130
128
127
129
129
112
149
129
138
127
112
101
125
119
120
118
121
100
110
126
120
138
105
122
117
133
149
127
119
135
109
109
142
144
120
133
104
115
148
128
129
114
131
126
150
149
117
123
102
104
136
102
105
127
102
140
101
123
104
139
138
102
123
135
142
116
114
101
145
125
123
146
118
150
135
118
147
145
130
107
125
119
146
117
114
113
117
117
109
100
100
132
129
140
137
121
111
101
140
141
119
140
113
113
140
135
127
127
126
138
113
148
150
105
100
140
148
118
104
147
104
130
145
137
109
143
135
102
102
101
125
127
101
137
116
138
126
134
111
143
101
101
101
105
101
136
133
148
124
135
105
117
140
145
144
121
118
132
117
124
136
148
123
135
142
104
146
116
146
143
114
108
132
110
108
104
130
147
100
112
142
102
134
131
144
118
116
112
124
134
136
111
135
148
139
140
141
114
114
130
106
149
148
108
126
120
121
146
119
125
133
131
134
145
107
117
134
138
110
136
131
127
119
122
112
120
138
102
126
106
144
110
139
130
130
136
144
138
113
144
125
104
118
122
125
112
144
110
129
148
145
137
105
125
132
108
113
149
136
139
128
146
125
106
144
107
110
108
111
121
149
147
134
147
144
146
124
146
105
133
146
114
108
125
128
101
119
141
111
116
101
102
104
110
103
107
109
125
109
116
102
127
123
136
145
118
105
112
142
135
139
109
111
121
132
143
110
145
136
110
115
138
124
135
144
108
120
132
102
109
140
119
110
101
109
127
101
142
127
106
123
150
107
113
119
128
122
135
123
104
113
132
145
126
131
140
114
145
119
106
108
112
137
126
138
122
150
124
125
143
142
112
103
118
149
124
114
142
135
119
105
130
137
111
127
124
146
133
147
119
126
132
105
125
122
142
125
144
140
109
117
112
110
124
130
101
144
109
132
119
137
138
106
140
107
142
134
127
139
146
132
127
126
134
128
141
105
106
145
126
129
149
138
149
130
130
106
117
143
150
114
134
118
139
150
127
139
125
111
114
122
118
103
136
116
106
104
117
112
120
117
103
140
147
136
127
126
111
150
106
121
128
149
107
102
117
113
113
116
102
123
128
140
124
139
121
145
121
111
104
133
110
136
117
122
131
123
141
128
134
102
130
146
103
138
144
142
120
136
129
144
107
147
110
121
121
117
146
135
145
130
142
142
139
136
119
133
140
126
138
123
112
102
124
123
110
148
129
137
101
128
136
117
135
130
128
137
117
146
128
131
116
139
117
110
149
132
126
105
117
110
145
150
137
108
142
129
116
128
144
104
120
136
112
123
115
136
120
138
120
116
130
148
101
142
131
130
129
143
132
129
131
104
150
121
144
102
130
123
120
113
136
136
112
128
125
134
133
145
123
144
107
113
129
115
123
124
130
106
109
133
122
133
150
144
115
129
110
136
140
143
119
100
123
116
106
129
115
120
114
130
145
101
119
146
112
136
131
122
136
106
109
125
128
122
147
121
127
110
135
124
120
133
143
102
143
112
139
147
147
128
124
123
124
131
127
122
111
107
142
145
115
149
138
144
101
120
140
132
102
147
136
142
122
103
116
129
129
127
136
106
111
132
121
148
124
119
134
145
143
129
141
111
117
109
123
136
130
115
116
114
148
139
103
142
140
126
105
146
101
116
147
146
109
127
122
119
127
107
127
104
130
126
135
143
149
143
115
126
131
138
111
145
107
150
104
116
104
129
143
134
119
119
142
117
126
143
103
144
133
143
135
100
101
138
140
112
126
119
144
141
147
135
121
130
121
104
142
118
148
139
113
103
120
137
115
127
112
146
141
145
150
133
137
144
116
119
114
150
134
144
132
144
104
111
133
122
106
136
127
146
111
138
145
107
117
143
125
135
116
127
131
107
123
127
100
116
121
126
140
116
135
142
128
148
101
139
124
135
107
128
123
122
107
143
110
105
108
137
109
111
106
101
143
135
133
137
127
130
128
124
133
147
140
111
125
127
123
127
121
131
145
143
129
120
146
130
127
138
150
119
100
109
134
143
143
100
101
132
138
119
133
127
105
141
125
108
127
116
120
117
112
107
100
108
102
106
113
129
126
141
110
117
103
113
103
130
140
120
113
144
112
141
122
107
129
122
117
142
143
100
111
141
113
140
145
146
142
125
121
140
142
124
116
145
104
130
112
145
132
140
105
147
127
147
121
133
119
122
138
124
132
125
125
144
134
133
102
133
112
139
123
139
123
114
105
110
141
110
122
129
121
111
144
127
117
110
112
134
100
129
125
138
111
115
112
127
131
111
118
103
138
117
139
110
103
112
115
102
128
135
118
118
101
147
105
103
111
121
110
121
122
114
119
150
123
118
131
108
107
102
148
115
146
119
141
144
132
146
136
109
147
101
139
145
101
128
146
124
146
146
112
147
147
150
136
125
146
109
140
147
119
116
110
119
135
150
113
132
113
148
148
131
135
110
128
100
114
145
130
109
121
114
131
129
142
145
110
137
149
111
127
134
139
129
117
101
117
149
141
133
116
115
142
103
121
118
119
102
132
117
149
103
111
111
100
118
149
112
115
140
101
108
138
107
143
137
118
105
140
113
110
104
108
148
133
121
108
144
138
132
103
119
111
130
102
115
117
122
121
147
130
102
140
149
114
147
127
134
123
118
112
129
115
134
136
127
126
138
120
116
131
122
135
107
132
137
142
135
150
122
150
126
121
129
121
117
119
148
113
142
108
149
120
125
129
137
134
115
100
121
132
101
127
139
119
105
103
129
130
104
113
128
127
133
149
101
102
145
125
127
116
114
109
135
133
122
127
131
102
112
101
137
133
150
139
118
130
101
116
108
145
120
109
124
147
129
126
149
100
111
110
106
129
132
140
144
134
101
133
146
139
129
143
102
149
128
115
144
147
133
105
115
100
112
108
120
122
113
141
106
144
111
139
123
133
131
101
132
132
114
128
108
113
107
147
132
123
126
104
129
127
122
124
129
128
128
143
108
112
112
121
132
118
118
108
122
108
125
120
144
111
141
146
123
122
115
144
147
129
107
129
140
116
126
121
148
129
107
101
112
114
105
142
101
149
129
123
108
132
105
116
122
124
111
149
150
132
147
136
145
149
123
145
100
120
125
139
149
128
119
125
141
146
109
126
120
121
139
106
138
116
135
115
104
124
106
142
118
117
125
142
122
119
121
120
137
110
139
148
137
106
134
104
127
134
116
135
144
147
139
112
135
145
119
102
133
129
114
148
144
144
129
134
148
137
149
144
129
117
147
145
136
120
116
115
127
105
149
107
123
139
125
144
114
117
101
124
125
131
145
130
116
118
123
127
140
119
106
103
123
131
141
144
148
109
144
142
107
149
113
128
147
129
104
130
132
113
105
111
137
101
127
146
125
145
116
141
118
120
120
145
133
115
106
100
108
150
125
119
133
127
140
129
106
128
135
139
145
132
102
145
102
133
134
134
137
131
123
113
114
144
118
103
125
100
136
131
108
120
149
140
148
129
117
122
132
121
112
135
140
125
129
148
125
134
122
110
136
133
119
150
132
145
118
132
135
150
146
118
115
136
100
125
142
119
136
131
146
129
146
105
133
103
147
111
138
131
140
132
122
108
113
144
105
139
102
112
128
141
120
128
123
146
135
116
139
149
141
129
118
140
150
104
103
105
142
108
150
146
133
101
113
117
131
123
125
143
125
132
115
129
144
100
139
148
124
125
134
111
101
112
146
122
125
124
123
125
150
104
100
141
147
133
100
145
136
134
119
105
125
145
128
105
131
138
149
126
130
104
114
144
120
150
142
108
139
118
136
123
102
116
105
128
109
120
103
114
149
115
110
137
112
127
135
148
140
103
112
134
145
138
123
142
121
131
134
118
130
139
110
109
111
116
146
147
104
125
110
148
119
133
108
131
123
108
139
103
140
140
141
124
126
134
133
141
129
131
104
144
102
127
131
114
147
123
145
116
121
114
144
121
148
146
120
143
148
103
133
108
112
140
130
139
137
149
134
123
150
144
123
130
139
127
109
129
105
104
121
122
128
137
149
112
143
107
143
120
105
123
128
117
123
121
149
136
119
114
138
132
136
107
109
113
116
126
137
103
137
106
110
126
149
114
141
125
115
119
135
133
145
126
100
143
113
101
132
124
125
115
121
134
135
143
134
129
139
124
130
130
125
145
118
144
120
103
139
141
139
141
117
141
113
129
116
109
133
129
138
118
110
102
100
150
126
115
147
109
132
112
131
140
149
104
143
112
130
107
130
141
133
118
116
112
125
139
122
104
138
103
123
120
140
120
132
150
105
112
122
146
100
135
128
127
102
119
118
133
114
136
137
148
144
123
131
118
129
113
147
108
137
138
109
146
134
103
116
114
142
107
110
114
140
120
132
125
110
136
100
117
109
132
150
105
104
143
148
112
141
112
138
122
148
115
150
108
122
141
144
126
127
100
143
144
121
145
101
110
143
135
129
125
139
127
111
116
128
148
142
119
108
136
125
129
102
117
105
118
124
147
110
107
150
119
102
146
110
139
133
146
100
114
132
117
148
111
113
104
146
103
100
129
144
131
142
101
119
141
127
138
144
136
110
114
135
140
108
112
111
144
147
130
109
122
142
127
138
134
141
123
122
108
128
133
146
148
126
113
115
106
139
131
129
149
103
129
112
124
141
126
142
135
134
133
149
130
130
106
109
140
116
103
126
127
120
133
139
149
113
103
110
122
132
144
123
108
114
128
149
126
123
142
134
105
145
131
120
139
139
149
107
116
130
125
129
105
104
116
114
143
116
142
108
100
139
148
119
104
148
128
149
114
143
146
113
110
130
138
147
109
142
132
133
100
124
109
149
144
124
140
104
141
128
144
126
123
138
150
111
126
120
101
114
108
123
115
117
138
132
131
142
111
128
119
149
114
115
125
132
138
124
116
102
145
104
145
144
111
114
130
105
109
101
105
136
142
145
115
121
138
135
145
197
158
165
165
149
172
177
156
160
190
195
168
192
200
194
151
190
160
175
162
180
190
153
147
183
199
162
164
167
156
149
142
194
159
160
195
152
170
153
200
153
197
181
158
158
159
151
182
180
178
194
166
148
199
195
197
153
153
160
188
186
189
146
173
184
143
197
179
140
176
150
145
156
161
144
156
154
165
186
142
154
148
181
159
143
187
168
145
182
154
170
197
154
175
159
179
141
146
140
151
150
153
191
175
185
174
152
190
156
165
148
170
188
168
191
197
178
198
178
155
158
141
168
191
185
144
165
152
163
158
183
160
196
167
171
174
194
160
189
142
147
182
167
167
187
200
178
171
200
175
152
149
142
200
156
182
167
186
197
162
187
180
160
140
167
147
175
145
165
169
188
161
160
140
183
167
163
170
176
165
142
175
146
188
140
146
184
142
151
190
189
183
192
146
180
157
155
153
198
181
176
162
173
148
163
155
182
165
187
199
171
192
174
140
185
183
143
154
143
175
157
199
144
171
196
174
184
184
160
159
174
192
188
161
150
160
175
163
182
180
150
175
168
195
180
148
170
184
145
185
141
162
155
143
142
141
170
143
171
184
156
170
142
155
177
147
170
196
160
158
170
153
154
174
145
164
185
151
172
199
175
186
141
154
180
148
144
196
148
196
184
146
153
150
186
190
168
185
140
155
172
180
140
140
147
171
177
175
187
189
167
144
142
168
196
197
154
179
173
169
156
196
184
188
184
167
192
167
177
177
162
172
146
177
142
146
146
177
150
152
200
160
184
187
167
197
191
165
200
175
179
154
174
197
154
191
176
173
184
172
190
167
197
185
167
193
198
148
153
179
154
160
194
182
180
196
185
158
168
176
169
189
140
152
172
154
186
158
155
164
153
167
164
190
148
144
153
200
154
170
167
193
195
199
180
142
157
156
169
147
182
184
167
198
174
176
141
156
151
182
168
180
188
181
143
181
174
188
161
181
142
190
184
154
169
153
144
149
170
156
141
160
168
191
142
180
146
147
177
140
159
153
178
187
200
188
177
192
189
160
195
199
185
165
188
145
199
142
179
179
174
173
158
160
140
142
196
179
193
191
171
160
186
158
144
162
189
147
146
158
161
197
163
162
157
184
183
199
183
195
148
184
177
144
149
181
168
179
182
181
146
170
170
159
171
170
154
185
199
156
165
192
145
195
182
151
173
189
152
163
149
194
180
188
166
160
141
187
177
160
156
187
170
165
164
185
140
151
174
192
159
174
170
187
189
181
199
171
191
194
175
182
166
168
197
180
166
199
158
151
148
156
177
141
180
196
160
190
195
178
175
151
176
142
200
198
154
145
185
167
200
198
187
157
161
149
146
185
191
182
146
164
150
199
152
187
161
167
196
185
151
162
176
145
159
164
159
192
159
162
196
147
173
167
177
176
157
172
182
180
198
164
165
168
145
148
158
161
149
187
143
183
142
163
167
156
187
180
172
199
189
198
163
191
151
191
172
160
149
151
155
184
195
179
151
174
175
175
172
156
149
168
169
171
154
184
197
167
168
178
154
152
155
181
198
144
169
156
154
198
163
148
153
161
148
164
158
164
153
183
160
195
187
152
144
197
149
155
172
166
162
153
176
192
155
147
174
176
154
169
198
198
141
144
142
178
172
140
186
169
159
163
143
175
164
197
144
176
151
165
158
149
189
165
151
142
196
180
162
164
158
170
188
172
142
144
143
158
176
180
179
153
188
151
163
158
190
181
191
158
193
165
173
147
148
153
140
150
199
194
151
182
180
161
147
148
174
148
160
198
173
192
152
191
190
143
192
182
145
177
172
153
179
151
178
200
140
153
171
143
180
149
190
191
148
148
184
155
145
168
145
159
151
162
146
153
170
171
183
187
178
195
164
175
198
140
141
169
157
195
165
160
182
142
191
163
164
184
193
154
199
143
178
192
153
165
157
170
197
140
155
187
199
143
140
191
151
194
150
171
199
150
189
194
179
184
145
193
182
193
169
162
192
159
160
168
179
151
159
182
176
143
159
195
196
169
147
179
196
151
154
158
164
140
143
160
173
143
192
186
167
200
143
183
155
151
168
189
162
173
155
190
148
159
195
147
145
153
154
156
196
183
184
143
160
164
190
198
145
146
176
163
148
165
168
164
150
140
186
159
141
145
142
169
153
176
178
189
193
177
150
181
185
169
198
181
191
143
153
196
177
187
152
175
189
151
141
196
176
190
144
188
140
175
161
169
147
196
190
177
199
191
141
161
178
198
175
187
189
165
166
141
146
156
158
185
171
162
200
158
173
184
196
144
173
169
140
148
148
144
160
196
158
196
159
155
168
171
182
191
195
154
152
161
191
177
172
172
140
145
160
185
179
172
182
144
163
195
192
186
195
177
183
186
159
146
165
145
179
191
141
181
181
147
173
143
194
188
155
170
150
182
170
148
149
156
195
190
199
195
155
171
160
167
152
151
189
151
157
168
149
179
143
143
142
180
190
171
174
155
140
149
157
197
178
179
187
160
160
142
179
189
186
174
172
157
174
146
150
192
160
156
189
168
199
181
167
175
198
186
169
189
168
158
166
162
149
174
194
155
200
173
157
151
191
185
179
165
141
186
142
141
178
142
153
186
156
151
140
154
151
177
174
200
162
151
192
167
158
143
172
148
140
161
190
190
174
167
147
189
162
157
166
162
173
174
162
199
179
176
140
188
165
171
196
178
166
183
148
140
154
159
170
190
163
170
156
150
154
192
162
177
155
158
171
182
148
175
169
186
167
187
160
192
147
169
167
156
187
167
155
168
149
166
187
183
172
176
175
193
147
178
175
158
174
166
156
178
170
154
140
190
154
160
168
167
166
182
154
167
142
143
198
171
190
183
179
147
143
148
148
193
144
192
142
197
200
182
158
191
176
168
170
154
200
171
152
157
153
147
191
200
198
147
177
149
159
190
155
163
190
165
148
169
165
158
177
144
177
150
172
141
154
155
180
166
167
180
152
141
154
189
168
143
200
161
158
176
142
156
190
189
171
168
147
145
166
156
185
194
185
154
182
152
157
159
173
149
150
163
199
168
150
143
183
154
196
179
188
168
189
188
172
196
176
155
141
190
161
162
168
194
186
148
143
178
145
191
177
171
164
171
188
149
181
184
168
177
192
148
168
177
180
200
183
178
176
147
143
184
183
154
143
196
158
159
182
161
177
194
147
171
148
141
149
154
181
197
164
167
148
146
140
166
163
199
185
144
183
169
143
149
173
194
194
188
159
194
156
200
192
184
155
158
190
198
142
188
157
196
159
154
167
149
167
191
178
149
188
198
141
176
195
164
187
146
170
192
170
194
198
173
186
160
185
197
190
141
189
193
140
184
158
148
152
200
179
181
149
148
170
180
190
198
142
185
151
183
143
173
175
171
159
152
156
185
150
154
150
147
190
185
196
177
189
195
188
171
157
171
170
174
200
147
172
157
169
176
200
168
155
141
148
187
148
154
164
145
176
170
188
151
181
173
184
166
173
149
153
177
145
168
174
171
178
143
190
165
186
153
189
143
161
159
146
166
193
192
150
195
199
200
198
160
157
191
200
193
197
198
178
155
187
200
190
158
151
154
157
191
200
162
154
185
179
188
183
164
186
148
140
165
151
142
149
194
171
197
155
161
189
153
158
143
162
175
182
143
197
152
164
200
176
178
195
147
155
151
168
200
143
149
150
149
162
165
171
154
173
154
150
146
171
199
160
166
187
189
196
197
185
171
195
148
177
174
140
156
143
192
161
145
190
181
189
152
145
151
167
155
140
195
186
182
149
167
192
156
146
147
174
184
150
149
169
157
184
184
151
167
156
189
191
165
158
180
184
160
195
159
176
174
190
185
168
190
168
164
156
187
143
196
141
162
147
194
141
175
143
167
166
191
148
170
171
173
170
195
147
157
180
184
168
169
170
185
171
184
174
189
164
149
156
165
161
181
187
146
196
160
174
147
188
193
188
195
166
155
166
179
185
140
152
162
145
176
162
156
199
159
173
156
141
180
169
182
200
146
162
167
156
149
157
195
153
186
192
144
198
167
177
150
150
162
178
169
163
158
178
150
199
178
195
163
170
195
188
192
168
177
172
194
191
168
200
168
174
178
200
142
156
167
156
181
178
169
167
147
174
186
173
185
199
169
182
196
172
197
188
146
182
192
196
142
192
190
197
148
143
173
189
149
170
190
176
199
174
173
192
182
160
198
146
163
200
175
174
148
188
182
175
189
146
198
185
147
150
147
192
170
173
164
171
193
176
183
194
144
144
167
194
186
141
140
175
198
186
151
179
188
151
189
197
187
175
140
185
185
168
160
148
191
148
189
146
140
189
178
189
166
200
194
140
199
176
186
167
147
140
172
154
150
193
148
150
168
146
150
180
167
155
140
148
170
146
169
183
150
173
174
153
162
196
148
158
150
164
175
181
162
181
164
157
197
166
173
199
155
144
154
160
173
195
182
191
193
181
198
182
195
158
140
172
165
184
152
157
180
147
156
178
188
151
157
179
154
157
155
172
182
174
197
172
196
163
185
169
153
153
180
151
141
188
186
154
190
142
199
151
180
159
164
198
186
184
170
160
142
164
176
144
195
148
188
198
173
141
149
180
165
180
156
157
170
141
144
157
200
166
174
197
188
197
180
195
159
172
155
163
152
176
172
188
198
181
176
160
157
144
200
161
154
192
172
196
181
192
164
174
140
155
179
175
141
182
179
171
161
140
159
181
185
180
150
172
157
178
163
169
192
156
172
158
182
146
161
186
141
156
153
194
157
167
197
159
162
170
188
163
172
154
185
171
178
142
149
156
145
165
149
179
144
140
153
175
198
161
158
193
200
144
149
179
148
197
189
151
154
166
159
150
153
145
167
141
187
141
158
197
199
144
150
181
192
186
153
157
150
192
162
140
188
181
175
180
153
190
199
147
166
141
191
196
194
179
171
172
195
190
197
189
160
160
189
164
147
143
188
169
140
166
152
149
143
190
171
170
180
160
152
197
181
196
189
186
170
162
163
158
156
140
170
143
141
185
190
141
195
179
168
163
151
140
171
158
164
188
169
170
157
173
164
167
155
140
158
183
184
178
142
189
150
190
178
144
196
148
194
183
178
155
178
169
156
192
147
182
190
163
147
187
185
197
157
168
178
195
154
186
190
185
189
151
189
191
191
140
181
169
178
142
177
161
163
163
148
168
145
149
152
155
148
152
146
166
192
153
166
175
167
145
157
174
154
187
162
183
190
195
159
183
169
182
177
194
166
149
149
166
151
152
180
156
187
163
192
180
157
169
173
192
162
171
165
180
177
172
191
194
179
147
200
141
152
146
183
193
165
170
152
168
142
187
172
147
191
163
172
172
166
147
156
188
171
146
182
184
176
150
198
187
150
164
186
168
166
160
143
171
159
189
176
170
159
141
193
140
199
185
200
179
141
154
182
192
185
144
184
194
161
147
184
177
165
150
166
176
189
186
154
195
147
158
169
160
153
192
149
156
180
198
199
190
164
140
168
145
150
175
149
151
194
158
157
140
173
168
162
172
181
149
158
196
194
182
173
143
184
147
170
174
182
167
169
141
191
140
154
145
176
154
162
186
145
187
148
140
172
151
166
153
153
172
163
167
182
189
185
180
183
199
163
184
187
197
172
195
176
197
188
190
164
159
196
159
168
158
141
194
196
189
189
140
173
156
147
150
148
169
189
157
185
181
175
148
149
159
158
186
161
161
197
174
141
167
186
178
140
159
198
175
165
182
147
165
192
151
180
175
189
176
170
150
143
172
183
194
146
195
161
172
168
168
188
163
162
160
156
180
187
160
184
176
184
176
159
148
197
193
158
176
159
164
175
179
199
160
145
168
174
149
179
191
178
192
157
184
193
194
144
154
157
175
194
190
143
179
188
167
170
183
188
154
147
198
186
147
183
140
198
142
172
196
188
143
155
182
162
191
155
153
186
155
185
200
153
178
188
154
167
183
177
167
173
193
196
191
156
157
159
184
153
175
183
195
159
179
176
158
149
144
141
157
200
158
164
164
159
145
146
170
190
151
178
165
198
140
144
194
154
200
157
141
181
164
187
194
187
170
144
180
167
147
185
148
142
189
161
157
200
147
174
150
151
146
176
150
149
143
171
165
199
158
152
179
156
160
196
149
160
150
172
153
200
192
146
141
171
183
162
180
188
148
173
145
192
142
157
194
173
191
166
160
196
182
199
169
162
189
162
170
192
174
146
160
173
178
157
151
154
193
189
152
196
166
140
189
163
175
146
144
194
162
183
180
166
143
162
184
193
146
173
173
164
181
162
161
163
185
191
142
185
158
195
149
199
143
184
140
191
143
148
155
164
197
147
145
166
179
181
178
146
183
180
181
179
189
175
141
180
164
165
172
179
193
165
185
165
170
143
200
146
179
153
178
180
180
147
198
171
164
152
165
197
144
194
154
162
189
200
140
157
153
193
190
185
184
177
191
148
182
140
149
158
192
160
140
177
160
178
144
168
189
176
164
170
190
191
164
195
191
151
156
178
184
192
187
142
176
177
154
143
159
153
150
149
146
187
181
168
193
147
153
196
151
183
183
141
148
186
150
184
145
191
176
180
180
142
157
158
169
153
178
149
183
192
158
160
175
184
159
195
191
199
159
154
175
150
151
165
149
188
148
198
149
200
161
142
159
148
141
176
199
184
177
142
167
160
185
147
163
191
149
187
177
200
149
194
151
178
164
140
161
162
176
149
150
146
140
174
174
200
142
183
194
179
167
193
189
167
179
187
140
185
195
156
182
145
149
200
148
195
161
196
171
153
194
184
180
178
151
178
196
179
150
145
178
147
179
181
164
199
159
146
193
196
144
196
182
173
168
140
193
159
162
177
164
192
166
195
161
152
142
194
170
193
196
181
190
164
153
147
198
183
154
152
161
170
152
156
164
190
145
149
150
152
144
141
186
170
156
152
164
163
185
148
174
200
146
186
186
198
146
183
147
147
143
191
190
156
147
153
172
164
159
176
157
148
143
143
161
161
184
168
183
145
195
163
167
180
159
147
193
178
200
152
182
147
179
160
164
179
162
192
167
150
160
153
150
146
177
176
156
186
189
167
194
170
146
191
197
150
199
172
166
165
157
196
171
192
190
153
147
197
180
156
189
173
191
183
176
157
193
176
151
156
198
191
187
186
175
169
187
186
199
181
198
165
183
191
144
173
162
192
164
174
163
181
147
162
160
185
159
150
160
148
141
185
146
146
146
145
188
162
193
152
158
199
187
158
193
173
181
191
180
168
195
165
159
164
194
173
141
174
158
197
167
154
159
165
174
159
174
172
162
161
176
184
143
143
177
190
168
172
154
140
171
184
151
154
146
181
149
156
165
141
185
155
200
182
156
198
191
160
187
168
183
141
186
200
161
167
148
154
174
187
183
143
190
186
159
165
148
180
166
150
178
167
173
161
152
200
158
166
157
178
150
169
149
171
179
168
195
162
177
160
158
186
152
186
149
145
199
163
163
175
188
149
164
165
154
170
182
180
167
167
143
166
153
145
178
188
186
195
151
140
156
174
200
146
188
147
160
165
168
175
146
161
184
183
198
150
162
196
167
141
149
190
175
189
198
186
144
200
180
149
166
148
147
186
161
154
172
197
142
184
171
156
196
178
147
157
148
196
179
193
150
177
195
197
154
182
187
196
148
185
167
199
148
182
167
150
157
196
195
160
143
160
186
165
140
141
172
159
186
197
151
152
144
175
156
160
200
156
152
147
184
143
159
166
173
143
163
182
184
194
141
171
196
191
197
140
186
178
154
184
153
161
181
154
185
142
195
184
181
198
172
157
140
195
195
151
178
158
176
176
143
193
148
195
145
159
143
192
161
152
151
173
146
195
187
142
176
149
189
198
182
188
142
146
191
162
176
155
180
196
196
173
179
164
163
141
162
162
197
153
187
148
185
193
161
147
150
200
174
165
161
185
154
175
195
160
150
177
170
186
190
185
189
196
193
168
159
185
140
170
142
144
151
148
169
190
147
196
197
179
197
180
153
172
182
168
150
179
168
168
181
147
154
153
149
186
157
149
143
184
200
200
167
170
155
161
182
149
156
157
189
147
184
193
175
160
199
141
154
192
153
171
192
169
175
189
195
176
157
158
150
195
150
178
156
157
182
167
198
174
195
155
166
181
161
157
140
173
172
189
145
152
180
146
161
200
199
145
179
147
199
184
191
200
153
168
140
189
180
144
155
184
140
158
176
182
166
143
151
176
192
181
165
181
156
193
177
194
185
171
157
183
161
192
150
171
193
176
178
173
161
152
172
143
162
147
177
147
151
196
149
186
157
175
168
166
182
191
192
161
182
145
183
192
197
185
177
177
181
160
162
149
190
198
172
153
185
152
171
142
198
198
144
195
159
174
173
172
162
172
169
189
163
190
171
166
172
172
172
196
140
177
161
162
166
160
198
159
147
168
167
187
143
196
188
147
163
192
166
159
183
148
162
158
171
200
179
188
176
164
195
158
191
171
195
144
194
158
152
142
154
158
194
156
141
193
195
160
144
146
163
170
177
154
200
158
199
143
200
174
165
178
148
184
185
184
171
178
140
189
162
145
153
185
143
191
153
163
184
148
184
151
145
185
197
145
186
173
166
175
157
182
157
168
198
192
166
145
142
198
178
158
177
179
173
160
148
159
177
199
162
153
175
190
152
195
158
180
175
155
179
182
179
193
165
154
176
143
169
144
197
150
179
200
191
181
145
166
186
164
141
148
140
146
156
158
185
185
166
168
148
164
180
175
162
157
171
184
197
185
145
175
194
193
146
187
144
176
166
146
149
174
170
172
172
173
193
151
150
171
152
182
154
168
169
174
176
178
170
153
200
165
174
163
185
189
160
185
189
199
158
190
181
151
159
198
180
161
157
157
159
196
149
171
179
143
166
150
143
179
186
192
150
146
189
200
178
183
151
172
142
183
156
187
198
196
196
160
147
176
146
150
146
185
182
166
173
146
170
186
194
140
152
159
146
145
196
151
161
188
153
142
176
155
176
170
180
191
176
169
200
162
199
168
184
198
184
200
194
149
200
152
154
155
174
144
159
171
173
200
140
142
154
145
183
157
158
168
153
162
148
194
141
147
159
157
141
182
196
168
174
190
152
200
143
170
197
191
147
198
150
161
194
191
171
186
148
149
166
164
198
198
191
166
167
149
177
176
156
185
177
190
184
169
169
174
196
151
172
191
173
200
176
200
190
162
166
199
184
152
170
169
190
200
149
199
163
147
196
198
190
161
146
192
185
156
168
150
193
167
149
197
185
190
145
157
160
176
142
166
147
178
146
148
156
145
157
180
198
162
152
179
184
140
188
161
196
160
153
164
193
165
163
178
196
180
168
155
168
189
180
171
142
154
195
196
159
179
156
180
145
153
176
180
185
183
175
174
177
147
142
198
198
166
187
154
144
160
172
169
186
189
172
155
195
186
169
194
152
188
163
155
188
177
181
196
156
180
141
191
182
144
152
176
190
200
187
177
157
186
196
144
163
169
183
200
187
200
177
197
178
195
188
147
144
147
183
156
149
190
146
158
146
174
177
170
180
186
158
148
177
158
154
183
174
175
194
166
184
186
189
195
161
198
180
172
185
174
172
194
148
197
163
185
163
192
166
190
197
145
172
157
187
160
200
189
165
150
154
179
178
158
190
166
164
189
167
166
175
140
146
153
142
149
197
194
196
171
144
177
159
187
147
168
151
173
174
174
191
177
170
164
162
188
174
168
193
167
175
160
151
159
200
168
182
153
177
159
152
195
190
142
162
165
170
163
193
159
147
143
180
169
195
182
149
152
200
145
193
186
166
158
174
155
186
189
184
163
152
153
193
140
181
187
168
178
183
184
195
154
157
176
156
174
174
155
179
146
167
157
172
177
173
187
154
175
177
183
146
195
183
184
182
158
147
188
170
156
175
160
178
147
145
189
162
198
163
158
144
154
141
157
199
153
169
152
143
176
168
160
159
197
191
184
168
152
163
159
198
157
140
189
144
187
167
141
191
153
170
183
140
179
144
157
153
140
169
186
176
196
171
140
161
158
152
188
176
155
187
164
173
187
187
156
189
186
144
166
147
194
171
187
161
173
145
143
159
179
200
193
158
198
157
174
171
183
142
147
198
145
199
154
149
163
169
147
161
150
194
182
179
186
141
190
191
152
187
157
145
184
144
181
200
190
140
198
200
176
183
200
153
140
148
161
184
146
148
166
157
164
179
141
183
165
148
163
186
146
146
195
166
157
162
168
162
173
177
182
142
174
153
194
154
164
162
174
147
161
175
166
158
191
167
193
168
198
187
194
153
152
181
190
140
156
159
191
192
152
190
171
143
172
152
157
162
197
152
182
142
176
184
146
144
172
141
152
146
178
172
167
187
185
164
198
172
197
185
145
155
186
159
193
165
151
167
153
178
154
179
148
187
147
187
145
191
198
158
153
176
183
161
193
155
186
158
172
174
190
182
151
189
163
175
184
140
171
189
152
182
172
191
145
158
145
191
153
176
175
179
175
167
164
148
170
155
170
156
179
187
192
177
194
159
152
193
148
167
167
156
157
192
197
174
189
147
160
144
168
185
164
149
167
179
194
187
181
188
162
169
148
188
146
188
182
162
171
149
143
159
164
189
162
183
174
164
164
140
140
180
148
187
190
189
178
147
172
192
146
163
181
178
189
158
176
162
182
174
176
183
199
195
158
162
159
199
196
172
167
152
142
196
176
141
199
180
171
153
200
190
166
178
144
165
192
144
180
158
160
158
180
152
140
184
160
161
189
200
194
149
183
153
173
178
158
174
161
143
191
178
180
193
199
145
199
167
173
149
178
140
147
143
195
143
158
141
150
160
191
146
165
197
147
183
195
192
170
164
161
170
152
169
143
151
182
167
150
144
163
185
184
198
152
172
149
164
169
183
186
189
178
151
191
185
140
173
199
145
140
179
189
189
200
176
163
141
146
157
187
177
156
165
169
194
199
147
143
165
199
161
193
148
178
174
150
160
192
178
192
165
180
188
167
195
149
155
155
141
191
196
161
174
155
146
169
156
167
161
178
143
172
182
152
158
197
163
193
178
144
145
185
174
140
152
155
195
146
196
151
171
177
145
153
154
160
159
157
199
177
188
157
166
185
145
196
146
154
167
172
186
150
196
163
179
176
186
146
185
177
165
189
200
149
172
156
171
187
143
197
166
181
164
170
157
167
177
147
197
185
143
140
182
150
154
182
179
166
175
145
144
178
164
169
163
190
151
161
172
165
147
186
197
159
141
184
161
180
196
169
159
180
194
187
185
172
151
144
144
146
195
184
197
164
194
175
191
168
193
192
153
173
140
156
164
182
191
200
179
182
199
197
175
142
165
167
172
198
192
160
143
151
141
184
172
173
152
175
149
163
144
169
149
198
159
195
161
170
151
183
191
160
164
181
177
193
176
164
188
197
160
198
162
142
166
195
178
189
148
148
171
192
162
141
162
158
175
176
164
192
159
169
162
143
178
189
190
158
153
140
141
153
188
194
169
142
157
188
163
170
163
186
155
153
148
197
198
178
176
144
184
153
154
171
172
152
191
179
197
187
145
173
163
183
162
149
144
162
172
188
179
160
148
140
179
175
178
173
140
162
169
155
154
200
147
176
190
159
182
174
200
190
159
193
187
188
158
176
188
199
172
174
166
197
150
152
187
166
159
188
171
181
199
160
182
158
150
171
187
171
180
178
160
170
153
198
160
178
192
147
164
148
188
144
167
179
194
200
176
187
143
144
141
180
158
186
181
175
155
185
200
183
158
169
140
159
162
192
180
148
170
199
198
156
189
147
160
148
191
149
191
182
198
170
189
163
182
193
147
198
150
140
148
140
149
150
167
158
163
184
194
195
190
148
198
162
188
153
194
167
166
170
151
148
156
143
177
196
156
199
192
188
171
192
191
163
174
163
157
143
170
153
150
170
181
192
141
185
194
144
168
170
189
184
162
189
159
164
176
178
168
161
150
190
152
158
162
188
142
160
156
147
154
147
149
163
153
189
170
144
163
165
140
158
153
175
172
200
191
171
167
195
141
146
183
179
173
149
179
197
168
156
197
167
192
200
200
163
194
180
142
142
200
171
154
166
162
143
166
144
186
186
166
143
161
199
177
175
146
180
178
184
149
175
191
154
180
158
143
163
184
175
185
157
158
192
184
173
152
170
188
178
165
150
143
178
175
188
150
198
200
194
169
195
176
166
158
161
158
178
161
169
151
178
159
189
163
180
189
185
200
152
199
149
144
199
182
189
198
146
182
199
145
158
176
178
194
152
195
188
178
151
186
142
164
198
198
185
176
174
188
149
162
181
151
172
187
148
162
165
192
152
186
177
169
140
178
153
144
152
158
172
142
169
181
171
155
200
144
186
155
140
166
168
143
161
159
150
179
178
187
183
157
166
171
170
195
155
182
180
143
155
181
192
146
154
185
147
165
154
197
160
193
193
160
175
170
152
167
186
184
149
180
151
186
144
188
170
183
193
142
185
169
190
198
200
159
171
193
147
176
147
193
150
147
192
151
153
142
173
183
183
193
194
150
196
140
162
141
166
163
176
149
163
149
186
164
171
194
151
155
151
170
177
173
170
150
148
197
177
200
195
141
147
154
200
164
178
186
190
194
181
180
151
170
185
171
166
187
165
142
169
199
159
150
188
146
194
199
172
153
151
160
140
196
188
153
166
163
140
163
155
143
168
170
144
160
142
168
190
150
198
178
191
152
176
197
142
182
180
194
152
145
163
168
190
178
169
169
198
143
156
193
178
152
165
172
168
165
167
152
196
159
180
157
200
160
188
182
161
169
174
166
191
179
163
160
189
194
200
183
185
166
196
163
191
181
182
142
171
182
196
142
193
175
191
176
144
177
183
199
155
187
195
189
151
164
200
178
149
153
142
177
163
200
190
152
162
141
162
189
189
192
162
162
182
162
197
149
167
171
157
149
197
180
198
143
156
189
167
163
152
141
167
145
149
166
190
171
169
150
160
171
162
144
169
198
174
157
152
178
150
188
181
181
179
187
145
200
192
188
175
196
194
181
177
148
184
160
159
145
193
192
169
173
194
155
200
186
188
182
167
157
149
162
184
145
176
174
143
170
176
198
160
190
164
143
187
140
159
151
147
154
172
153
181
195
140
186
176
167
151
198
195
198
149
176
186
164
157
186
183
185
166
196
146
157
186
183
191
178
162
178
145
174
195
142
164
151
157
173
150
187
167
153
175
170
164
181
183
150
182
145
158
179
192
177
181
191
184
167
154
169
199
190
161
184
176
196
189
181
168
189
195
187
175
182
162
158
146
164
154
184
182
185
200
174
148
166
157
199
180
178
181
199
188
140
161
167
156
143
149
190
172
194
181
169
162
181
168
169
161
181
179
169
186
163
194
198
155
164
183
174
171
141
180
200
160
159
198
147
200
148
177
162
184
197
198
179
162
197
147
165
159
187
173
196
145
161
176
151
182
149
162
143
192
153
160
147
146
183
195
194
188
192
178
149
179
183
172
151
154
192
160
172
163
164
154
149
144
170
193
172
195
149
180
145
154
170
172
191
156
152
175
158
190
160
164
178
160
200
170
149
144
197
184
165
191
152
149
187
140
187
199
163
140
173
144
169
159
166
195
169
159
154
190
161
173
153
157
184
143
168
190
183
197
154
187
190
180
151
181
167
169
192
165
166
176
199
167
162
164
141
141
165
163
144
173
152
178
198
198
189
177
192
179
194
160
185
143
154
168
184
140
200
173
156
197
141
198
184
164
171
188
163
155
173
141
189
149
155
187
160
177
188
142
186
188
190
146
149
169
175
182
157
197
177
199
184
141
186
140
153
166
150
179
188
199
159
150
149
160
186
163
166
148
150
175
186
154
144
193
170
154
192
155
193
146
158
144
142
195
145
174
143
177
186
162
194
185
149
166
182
167
142
146
192
197
180
187
141
185
168
160
181
152
157
197
144
150
195
174
187
188
144
145
169
184
155
179
179
195
198
161
140
193
140
146
162
200
160
141
157
143
188
188
171
146
196
178
143
195
179
159
140
178
164
141
152
194
172
160
182
145
164
154
174
187
172
166
179
178
168
187
173
146
157
185
169
172
174
150
190
196
158
183
176
166
157
162
188
147
145
160
169
149
163
189
146
145
196
196
172
160
154
151
187
141
187
175
183
145
199
197
179
154
163
152
173
170
191
200
170
175
200
192
188
198
189
174
187
199
155
155
181
153
175
196
166
162
186
155
192
140
182
158
191
171
182
161
140
188
149
162
168
168
147
177
140
180
198
195
154
159
192
175
151
190
144
146
153
163
140
161
165
172
199
168
163
163
164
200
147
142
143
170
156
171
174
197
182
197
144
192
193
185
187
165
198
165
160
193
165
153
199
199
180
189
163
173
157
156
172
152
190
185
161
191
156
178
169
176
148
164
160
176
166
181
152
181
141
172
141
159
173
153
157
193
140
182
169
195
162
146
154
200
154
158
184
154
141
169
196
193
197
152
162
189
180
199
190
172
168
150
169
144
181
155
167
176
148
193
151
164
157
192
144
194
150
183
178
166
161
173
153
170
185
197
196
175
153
175
179
143
170
144
142
144
188
157
189
195
180
145
159
170
173
190
170
179
142
172
150
163
186
174
167
154
142
161
147
154
192
183
193
183
192
195
194
154
145
162
198
195
145
173
171
187
189
184
199
156
147
173
150
172
166
171
148
187
198
186
197
172
176
145
147
197
181
153
188
144
158
178
198
199
194
164
181
172
174
169
181
168
150
163
173
143
162
166
160
175
154
142
155
146
153
179
148
142
169
166
144
160
184
157
172
193
171
179
189
191
182
144
170
164
143
143
181
149
172
157
191
196
145
154
198
153
148
170
142
176
179
190
167
178
177
174
179
195
171
193
191
164
169
189
180
197
159
175
184
148
183
194
190
149
166
141
197
159
142
200
149
148
149
152
182
143
143
200
150
163
192
164
178
157
172
179
146
143
159
141
173
190
167
197
179
186
188
178
195
175
145
167
145
154
169
180
169
173
145
154
150
184
141
158
157
147
167
149
183
172
162
154
154
172
146
198
177
186
185
178
140
185
156
189
187
186
151
151
154
185
179
167
192
157
178
151
199
154
192
170
191
169
174
174
154
163
163
164
181
148
200
143
174
149
177
189
166
187
164
156
169
151
174
160
176
189
171
155
152
162
166
187
182
176
179
166
152
150
163
179
189
163
186
185
166
140
151
151
188
168
143
155
181
140
158
179
155
151
179
169
149
160
182
185
187
150
163
142
156
192
151
152
187
150
149
182
174
194
180
178
187
183
194
185
145
156
197
142
182
146
156
148
191
144
142
182
153
156
146
172
164
153
170
192
161
142
189
170
195
175
168
167
200
194
169
196
186
171
185
182
184
159
188
199
152
188
142
177
157
168
184
181
181
160
158
193
175
152
147
169
198
184
151
140
160
195
196
180
178
146
141
173
145
152
166
170
141
165
199
194
191
175
189
193
142
145
164
150
161
174
152
148
163
164
183
152
172
187
152
185
196
181
178
183
140
162
141
148
188
162
166
196
186
152
169
171
192
187
196
188
159
184
162
174
155
154
151
151
190
168
191
186
157
162
190
194
164
167
184
199
160
158
150
158
158
150
193
197
196
177
185
196
197
152
194
173
171
154
176
183
159
143
189
148
180
164
170
189
157
182
151
161
173
165
151
147
182
180
189
184
154
196
191
176
140
170
195
200
191
163
195
155
188
165
189
140
171
152
187
189
162
154
154
183
185
178
144
191
174
169
198
151
152
200
185
187
143
180
157
164
151
145
165
193
150
194
185
190
150
190
173
156
193
184
154
179
144
149
153
200
165
194
197
182
200
147
183
142
159
173
173
193
147
151
192
151
157
187
181
150
151
145
188
155
189
192
194
149
185
170
181
174
145
170
161
142
176
154
196
194
143
172
200
179
146
179
159
177
152
186
146
166
195
140
182
151
154
151
188
192
152
155
200
173
154
188
163
168
180
147
186
160
180
140
182
164
191
152
193
191
154
144
158
141
152
195
160
164
142
193
163
178
142
172
146
181
200
192
166
192
196
192
196
171
173
159
188
161
155
176
182
191
149
172
165
142
156
181
167
194
183
189
170
150
199
160
176
178
148
169
174
179
144
142
155
144
199
166
183
190
165
168
153
193
153
168
167
177
175
193
194
143
178
154
179
141
177
161
160
168
144
177
179
196
172
156
147
145
151
141
161
174
165
148
171
195
169
175
191
200
197
142
175
172
165
163
174
164
142
184
184
145
197
153
160
200
185
147
143
171
199
169
182
174
145
198
191
168
190
161
152
187
197
179
184
191
185
158
182
164
166
168
196
175
163
166
141
163
198
182
188
140
151
145
142
200
183
169
178
169
144
185
175
145
193
159
172
168
147
169
200
168
169
178
170
148
198
200
167
155
192
180
144
173
193
154
188
149
158
163
152
180
158
157
187
164
182
197
165
170
152
140
156
185
177
143
193
195
191
155
153
154
196
172
166
168
162
193
187
186
144
140
151
200
200
171
154
176
160
181
183
192
151
166
161
187
153
144
177
173
155
158
141
180
192
186
200
198
182
197
145
157
191
181
181
186
143
184
140
182
176
142
182
199
176
146
172
166
193
185
144
186
200
172
196
151
162
145
200
157
171
189
189
163
194
195
198
173
160
144
155
173
199
191
140
140
151
150
190
183
143
143
147
151
147
180
148
194
145
163
171
165
192
150
190
192
153
196
155
189
160
143
141
178
187
157
192
191
160
148
179
147
141
165
158
185
175
193
199
189
163
142
147
144
171
179
174
152
155
170
177
168
141
161
151
168
145
196
152
149
150
147
144
191
186
169
181
142
172
178
155
180
175
194
154
185
170
186
152
199
196
187
148
144
169
142
194
151
161
167
185
167
190
183
186
151
156
145
178
148
159
160
190
157
143
157
176
178
188
191
167
176
195
182
153
144
177
143
154
191
165
196
151
170
140
147
155
167
157
164
147
186
178
146
185
164
188
152
189
190
159
141
191
143
175
159
160
159
193
147
156
189
171
160
140
153
172
169
152
169
172
165
176
172
173
199
167
177
181
154
172
157
155
179
179
153
152
162
163
151
142
196
164
195
171
186
181
153
184
155
187
194
200
178
193
186
192
163
163
142
153
170
193
140
174
160
163
180
166
169
145
170
141
187
196
176
147
144
152
191
155
174
190
198
141
192
164
156
190
153
199
155
159
183
175
160
187
168
197
159
154
194
188
148
169
169
145
198
172
187
160
175
146
188
175
148
170
162
171
188
187
181
197
183
149
144
151
196
121
131
135
135
143
112
140
105
137
117
132
136
116
116
125
101
110
145
128
121
129
144
140
134
148
137
137
145
103
144
121
141
111
141
138
134
140
115
132
102
143
127
103
147
105
111
111
131
140
150
117
113
111
114
122
132
121
117
122
119
119
104
135
143
147
109
118
101
120
106
131
143
136
127
145
139
148
122
103
142
143
116
100
112
120
138
121
135
124
115
138
119
107
120
136
106
137
148
129
113
134
120
134
110
144
100
118
140
127
124
131
145
110
102
136
113
126
100
129
130
113
150
150
115
132
116
136
117
115
147
125
130
143
119
129
122
125
145
143
107
148
102
126
132
114
146
113
131
122
142
147
147
122
120
119
133
128
138
127
144
103
115
121
127
106
134
137
117
143
102
141
110
136
109
103
133
101
116
108
115
105
117
114
134
138
127
150
112
127
102
121
113
143
133
108
106
146
120
125
120
145
136
136
147
141
114
113
141
128
134
125
136
143
133
117
123
120
114
130
136
101
106
144
147
148
134
139
125
104
150
122
140
131
112
141
111
124
144
126
118
117
136
111
143
110
146
123
126
144
137
125
142
136
150
131
129
119
104
142
117
136
123
137
135
131
132
134
102
115
145
103
138
101
123
145
144
105
140
141
117
110
143
139
101
141
116
138
125
112
148
135
131
121
139
150
133
136
118
106
128
137
104
133
150
105
123
130
104
128
139
109
112
130
109
121
106
116
110
121
133
116
126
118
102
136
127
119
150
119
127
144
100
119
145
149
120
103
143
134
104
127
119
110
143
113
116
105
124
123
138
125
122
102
147
131
103
143
148
138
115
112
139
131
129
136
103
133
132
111
114
111
101
148
144
142
131
105
127
134
105
136
118
107
120
118
109
105
143
130
104
138
137
121
100
116
100
126
112
143
115
115
116
128
124
120
109
107
113
137
100
138
143
131
124
112
123
148
110
141
123
120
115
129
101
118
149
147
141
132
132
128
148
136
101
111
141
148
143
137
106
108
142
110
106
120
148
146
142
141
114
111
149
125
130
129
121
121
125
121
100
117
141
108
138
110
102
126
120
134
119
115
116
104
133
128
150
130
112
145
112
141
110
144
138
108
128
113
106
112
138
124
108
106
129
114
125
125
150
115
137
108
117
101
112
103
124
147
141
129
150
108
145
120
127
150
111
100
136
135
111
109
100
138
121
136
116
109
130
104
137
144
132
147
100
114
112
148
103
143
125
136
117
127
140
121
144
126
140
129
127
122
144
146
102
116
109
131
109
133
108
113
147
148
111
113
118
101
138
111
113
126
108
111
117
100
140
103
148
117
133
140
144
140
149
115
100
119
124
136
150
146
131
119
132
120
147
142
147
107
105
100
108
103
111
114
104
127
122
124
122
141
147
136
146
148
148
148
117
122
147
130
126
140
124
149
127
148
126
145
126
148
141
150
110
132
108
143
109
106
105
144
130
124
108
116
136
104
110
139
118
137
113
140
112
135
109
121
111
134
139
110
123
124
141
102
115
109
109
109
110
139
145
144
119
106
145
122
136
148
102
125
136
120
131
135
108
141
144
104
135
125
127
128
104
116
103
145
111
116
142
126
131
140
142
101
134
129
121
131
133
136
142
133
101
137
113
129
134
144
119
148
145
148
112
146
135
112
146
107
133
103
113
128
129
121
146
132
145
110
101
101
115
121
128
143
128
117
109
134
108
147
144
114
141
120
113
112
145
135
148
109
113
131
118
133
119
147
112
134
129
137
115
145
118
130
142
131
141
128
105
142
123
128
138
109
144
132
124
105
116
104
144
144
113
117
148
107
102
146
110
142
129
143
149
122
106
107
126
104
143
119
135
113
131
102
124
118
135
119
117
105
140
137
122
148
139
133
149
147
109
102
136
129
130
148
149
123
102
137
116
139
130
144
122
149
128
130
141
102
112
103
145
116
137
117
101
118
108
114
134
114
109
131
118
133
139
138
114
112
144
123
145
149
104
117
132
101
120
149
129
115
136
132
111
108
110
125
134
140
121
127
118
142
137
125
139
107
115
133
106
107
141
134
121
123
123
141
121
113
119
131
129
123
127
108
142
102
104
135
105
134
108
100
148
118
127
120
145
141
121
143
131
133
104
148
121
141
117
121
127
113
143
115
135
119
122
117
125
148
117
150
129
111
149
109
116
133
137
102
113
147
101
132
142
123
108
109
103
121
114
102
112
130
111
136
135
119
103
145
124
125
129
123
149
106
110
107
119
135
102
129
150
140
131
101
137
106
126
121
133
132
147
136
107
134
115
148
130
149
147
145
142
119
101
107
127
107
111
148
143
124
133
101
104
142
122
110
121
134
107
142
134
110
149
126
124
123
114
109
115
142
110
116
119
127
119
146
147
149
125
138
123
135
129
142
119
118
141
133
101
139
148
118
119
115
140
106
109
105
134
107
111
148
140
138
100
101
107
103
144
120
132
108
129
145
105
105
129
121
140
121
110
145
148
125
131
110
113
113
118
144
110
105
145
131
149
110
149
102
133
116
132
143
127
137
100
124
130
115
109
137
102
149
131
106
123
137
102
118
115
125
138
145
105
143
110
132
107
123
105
149
137
117
137
104
100
132
106
104
138
109
129
117
140
150
129
139
146
138
137
139
142
142
115
137
145
136
121
110
107
142
148
137
130
101
136
118
122
102
106
115
118
139
130
138
118
128
132
112
111
107
148
125
120
150
148
144
113
122
145
105
142
133
143
108
108
123
142
142
139
143
137
124
122
121
104
143
150
134
120
142
147
124
125
147
115
118
123
149
119
109
101
107
100
119
103
111
117
141
146
109
119
141
144
145
124
128
128
115
145
117
135
147
137
115
142
105
139
116
122
123
113
116
106
116
141
141
102
102
102
121
110
141
126
134
148
126
121
119
147
105
126
104
100
100
105
104
143
118
106
115
125
101
144
121
133
109
113
150
105
101
139
110
146
121
126
138
150
134
114
144
104
115
128
112
116
119
119
127
118
150
106
119
144
144
116
100
108
129
125
133
102
137
125
143
123
143
104
122
122
100
107
137
139
141
136
137
109
134
148
145
101
142
137
141
148
146
136
124
133
148
125
144
130
103
126
121
116
120
113
108
141
114
107
127
111
141
135
129
109
108
113
126
100
134
131
143
133
104
118
143
132
129
148
123
102
113
150
149
119
133
110
140
149
136
115
142
103
141
149
106
127
143
111
129
107
143
141
101
133
143
142
131
140
117
142
133
124
111
108
135
134
120
122
125
140
133
102
104
105
115
133
150
117
114
130
123
134
119
149
122
104
110
144
122
103
125
149
144
116
108
115
117
105
107
121
103
148
144
119
100
137
101
115
123
136
134
124
114
141
123
132
115
123
107
101
149
145
122
111
110
150
103
100
115
110
133
112
132
105
134
139
132
113
147
112
120
133
116
140
132
148
127
103
117
102
106
139
100
111
142
147
145
136
120
125
130
113
150
125
145
132
107
143
145
121
134
119
106
118
136
135
143
126
103
126
145
139
126
121
142
132
129
139
134
108
144
143
104
103
110
114
136
121
105
132
144
141
136
120
142
139
106
106
138
145
101
140
105
111
140
106
110
125
114
141
147
107
105
118
128
121
129
100
113
149
142
130
130
145
106
111
129
143
109
143
132
146
100
103
133
108
110
133
108
126
135
139
139
102
101
107
123
142
142
109
129
114
121
145
129
101
149
125
132
144
146
124
142
102
128
125
124
126
101
105
131
137
113
109
130
143
121
120
129
128
123
103
149
101
125
141
108
128
113
106
127
142
128
124
102
149
134
137
134
130
129
108
101
144
124
118
118
111
106
104
123
104
104
144
150
111
149
116
120
118
107
113
122
142
130
117
115
102
150
101
124
136
127
128
119
129
126
120
146
132
145
105
125
136
124
134
144
129
129
104
129
105
128
134
135
108
101
102
103
101
135
120
136
111
104
149
145
106
124
138
125
120
117
141
128
101
122
125
138
109
133
141
134
136
109
115
111
137
129
117
101
115
100
118
146
124
100
110
124
125
124
124
148
142
130
116
107
115
146
131
103
114
133
110
141
114
141
133
131
144
121
130
102
110
121
106
123
127
100
111
142
122
129
130
120
143
108
147
128
120
103
147
132
125
114
136
115
132
126
112
126
142
124
116
140
121
137
149
116
141
119
145
147
114
106
125
137
117
138
132
106
142
150
106
150
129
118
121
140
139
143
124
137
136
113
148
100
133
121
127
143
135
104
141
125
140
142
127
133
148
125
145
126
143
142
148
142
132
125
135
125
124
134
130
135
109
129
139
150
129
133
139
108
117
132
108
127
148
100
110
136
118
104
148
103
128
107
129
137
125
119
122
106
114
104
149
149
122
103
129
133
111
103
141
102
128
110
133
136
149
135
144
144
101
113
112
127
125
111
121
102
115
117
113
141
139
101
131
144
100
116
112
120
109
126
128
127
121
116
106
139
148
146
109
112
135
139
135
106
130
120
139
149
145
128
128
109
128
124
116
122
126
104
131
124
104
141
137
148
115
134
128
126
137
129
133
115
107
132
141
142
109
130
144
116
100
127
100
105
131
135
140
128
100
123
136
131
130
117
118
130
116
113
145
133
142
102
108
149
104
149
111
150
127
140
148
124
129
114
139
115
115
137
135
121
141
149
123
119
126
131
128
124
130
132
108
108
106
143
139
106
135
122
108
137
138
150
140
111
120
136
139
148
118
123
108
138
149
121
150
101
150
112
130
104
149
105
129
128
130
106
126
126
120
101
136
105
103
150
146
118
128
111
113
122
123
134
123
138
120
130
150
135
139
146
113
141
150
133
108
117
145
130
119
117
121
108
129
132
122
148
149
101
102
123
132
136
109
147
147
140
143
104
146
129
111
107
129
146
120
117
129
137
113
113
140
129
113
142
108
100
111
104
129
113
107
150
139
110
139
127
130
101
103
125
146
126
134
111
106
147
145
118
123
122
101
123
147
116
138
102
134
135
129
130
135
108
130
143
120
115
105
118
126
143
103
122
110
123
105
139
127
122
141
109
141
119
145
130
144
120
118
108
115
113
135
143
125
117
122
108
111
136
148
110
102
114
146
134
141
119
113
100
115
131
109
137
131
101
128
130
130
120
106
141
138
101
107
118
106
126
113
132
139
123
109
145
101
119
123
109
131
129
149
137
117
123
109
113
111
124
147
109
146
105
143
144
135
124
150
112
113
142
150
133
148
147
121
113
149
123
148
122
108
148
101
148
127
135
121
105
140
114
131
113
129
141
123
109
129
129
107
137
144
116
135
133
134
135
120
105
120
116
113
125
131
129
106
135
139
103
133
117
114
124
147
115
106
122
124
124
143
131
118
107
101
134
138
101
125
138
110
143
143
115
133
136
109
144
147
127
105
144
112
106
123
119
131
128
130
141
143
111
125
135
103
106
129
104
140
108
129
150
130
109
139
101
112
150
104
150
113
138
122
145
115
105
135
129
136
100
101
142
112
150
110
109
139
116
138
117
144
105
108
130
122
102
122
103
111
103
128
139
141
108
138
106
115
123
128
128
131
133
127
103
112
127
127
135
121
126
138
108
115
102
129
144
127
102
117
130
127
110
140
128
128
139
144
143
119
140
112
147
141
141
125
118
133
147
120
136
131
127
131
135
146
122
127
112
130
127
131
108
140
108
102
118
107
119
116
118
118
129
120
114
131
147
138
100
119
126
131
133
122
101
135
131
117
121
102
141
133
143
144
120
100
141
125
106
149
130
134
123
114
107
109
143
141
147
107
107
112
141
104
147
139
145
144
106
147
117
136
104
132
134
130
135
104
136
100
106
114
142
126
130
105
137
110
101
113
147
145
115
110
112
103
140
120
139
120
149
115
103
123
110
141
146
148
147
139
142
126
106
149
132
143
125
150
113
141
115
112
107
113
125
103
142
115
117
112
124
123
135
120
150
110
119
150
118
133
114
115
128
136
134
144
133
137
109
145
124
135
139
145
130
119
129
102
120
126
122
127
111
141
109
130
138
108
119
119
140
137
146
121
129
104
144
107
138
111
101
122
146
136
106
121
147
121
126
121
115
110
100
123
104
113
143
106
109
116
107
101
146
146
114
128
145
105
111
119
114
130
122
142
140
116
125
121
133
134
108
119
127
130
112
134
141
104
118
138
122
130
146
135
106
115
144
134
137
140
110
132
135
123
108
126
102
124
147
138
150
129
136
107
119
107
107
150
101
147
147
112
142
116
133
138
110
116
126
150
107
146
139
113
103
127
128
116
148
110
143
137
102
146
131
107
135
136
143
116
103
123
145
126
121
114
143
141
121
115
133
146
147
104
124
103
107
116
101
116
142
111
109
142
133
100
127
126
142
100
130
140
111
139
137
128
141
105
107
101
141
117
108
146
118
129
110
115
136
128
121
114
120
131
126
137
102
140
124
138
118
147
139
131
118
114
141
132
133
111
114
119
131
101
132
131
104
148
105
109
148
121
135
143
102
131
132
143
108
133
121
146
132
113
150
105
134
122
130
138
115
132
127
100
140
131
111
114
121
111
110
147
113
130
144
104
118
126
104
101
119
134
137
138
148
147
127
130
147
106
117
140
139
113
141
127
106
113
150
102
116
112
134
150
148
106
119
100
137
102
111
129
138
114
107
143
115
146
108
120
141
103
112
121
144
112
115
130
105
139
134
100
134
115
138
115
115
101
134
121
148
148
107
113
136
108
121
127
120
112
132
150
140
107
123
149
128
129
116
102
109
108
106
102
120
103
139
111
117
135
135
107
121
125
142
101
141
106
125
121
140
115
126
128
136
134
111
104
124
118
105
134
140
100
133
109
114
136
132
123
133
137
131
127
100
140
121
147
123
140
127
111
125
126
118
108
127
149
132
111
139
146
118
123
129
143
117
120
127
118
147
134
145
145
126
131
100
121
143
106
107
134
119
108
131
121
131
131
136
128
144
146
124
113
142
115
125
105
123
135
138
117
114
132
111
147
135
140
126
143
131
105
101
127
108
133
109
113
138
131
101
105
136
122
144
141
125
148
115
150
118
146
127
103
126
123
101
114
150
136
107
116
140
129
117
137
137
106
128
113
120
132
124
120
132
100
113
137
120
134
145
111
146
131
150
142
104
105
133
122
144
138
131
145
116
121
119
113
126
100
131
101
125
120
142
135
142
133
104
127
100
116
125
132
114
100
117
117
131
104
107
111
112
127
129
124
123
147
144
118
127
128
145
104
149
110
107
101
133
148
122
113
135
129
124
135
102
135
126
147
140
115
142
140
109
146
118
125
126
129
150
140
114
129
109
100
104
101
141
142
129
104
119
130
148
102
121
132
121
126
121
107
106
148
110
147
126
150
103
110
144
129
109
107
116
137
121
147
103
131
113
133
121
115
120
148
125
104
142
125
144
145
144
100
110
121
108
111
134
149
122
144
121
101
112
140
100
130
122
138
106
148
136
138
139
139
111
146
108
148
129
134
146
132
127
106
139
130
132
100
112
100
130
117
113
132
150
126
145
117
147
103
106
125
140
149
132
141
108
117
138
113
132
148
136
103
148
128
143
137
128
100
108
104
106
117
128
115
125
104
107
112
142
105
134
103
101
134
110
144
146
105
106
106
144
124
121
120
124
119
131
129
129
147
118
141
150
111
133
108
108
134
113
106
126
146
146
118
106
130
122
139
133
136
138
133
127
116
136
150
140
131
118
123
140
114
128
127
142
150
118
147
120
133
109
116
137
108
111
120
121
131
136
102
125
119
102
141
110
148
117
142
150
113
111
122
139
122
104
143
147
101
106
113
140
134
149
124
142
129
149
150
145
119
113
145
119
129
128
139
102
137
100
100
132
146
122
141
113
128
140
146
114
147
135
147
133
139
149
147
131
127
119
101
108
146
113
145
147
128
103
150
106
116
121
138
116
136
148
141
149
122
130
142
114
121
134
104
140
105
142
115
148
134
122
102
110
109
109
149
143
139
101
133
110
109
117
150
117
101
148
112
109
118
147
106
117
134
146
104
124
115
126
118
114
149
107
142
146
150
134
107
134
139
109
107
118
124
131
134
140
121
118
104
122
148
100
146
141
129
137
134
135
147
101
121
104
100
109
123
140
145
122
101
105
106
148
138
105
102
132
113
117
120
108
106
125
118
119
107
142
131
118
108
110
102
134
105
137
117
135
142
147
123
123
124
107
110
129
129
106
113
122
140
138
121
137
115
115
133
142
123
119
139
109
141
105
120
102
133
108
105
150
108
126
100
137
109
120
120
142
140
140
122
115
104
139
105
103
133
119
147
132
142
138
134
131
120
100
112
108
126
132
106
149
102
128
135
119
141
129
150
116
139
147
108
135
111
140
145
140
108
111
149
129
101
142
100
138
122
130
135
104
127
134
115
118
136
103
111
118
128
116
133
115
138
110
143
124
126
132
135
143
125
120
148
117
125
114
150
110
126
137
113
146
148
102
128
140
133
136
135
149
116
131
141
122
104
108
117
145
134
121
107
120
128
146
129
106
113
123
143
138
117
126
100
107
150
105
121
100
141
117
126
140
117
121
148
130
127
110
147
137
111
111
112
105
143
134
127
114
147
111
120
132
119
118
139
148
136
128
144
129
132
130
117
114
136
129
124
121
123
128
128
119
122
132
131
103
140
136
130
100
114
105
117
106
141
132
150
140
149
103
106
140
107
127
116
129
128
149
148
114
113
140
114
124
118
149
115
145
138
122
112
132
133
141
143
114
144
130
110
123
104
113
111
141
103
148
107
142
137
137
113
128
134
132
120
150
144
140
125
121
101
115
145
124
139
123
105
127
132
131
104
149
115
117
139
106
111
102
142
105
141
117
144
119
133
141
145
120
139
110
116
108
101
145
124
113
115
142
129
141
137
129
109
145
116
135
135
121
131
148
107
150
143
140
114
103
117
145
103
117
101
147
133
119
104
122
123
132
101
116
129
107
147
127
135
123
102
144
111
103
120
145
105
143
116
104
143
123
125
101
146
134
129
136
120
141
138
144
120
135
104
139
116
136
108
135
141
111
103
124
148
102
107
115
144
128
126
146
101
112
100
149
114
138
101
117
147
126
112
126
104
135
121
108
133
122
145
100
141
149
137
101
112
124
149
144
123
143
146
148
106
150
144
103
106
129
133
110
141
104
126
134
107
136
143
132
110
125
100
131
109
100
128
131
122
110
137
147
131
106
125
101
101
123
117
101
140
147
142
113
114
115
142
130
120
146
107
112
140
114
148
150
117
146
137
118
103
145
124
112
144
135
138
117
112
129
145
108
105
128
102
111
103
126
105
145
100
123
121
116
139
148
150
116
125
108
113
112
119
109
133
133
130
118
149
102
133
120
123
142
131
148
146
104
119
117
130
127
116
149
148
115
101
120
133
133
105
133
121
131
114
143
102
112
104
135
135
124
118
111
102
148
116
101
150
113
111
109
124
147
115
147
142
113
129
133
138
115
149
120
119
116
136
104
142
111
148
148
102
123
149
116
121
138
112
139
139
140
123
119
109
147
117
115
103
123
106
140
135
147
118
102
117
107
117
110
122
138
145
112
135
107
138
136
142
145
133
106
110
125
134
106
138
133
144
111
146
150
121
122
115
123
146
113
135
106
137
122
137
141
130
141
109
137
116
109
112
128
131
127
140
129
136
136
113
123
135
136
114
131
121
124
122
108
123
100
149
142
117
121
131
110
117
108
120
107
142
107
138
142
137
121
137
103
133
101
146
131
110
117
141
125
138
131
136
101
105
109
119
100
122
121
111
132
107
136
145
109
148
123
111
143
132
134
133
143
142
150
110
101
148
116
128
111
112
126
114
119
115
136
133
132
118
118
126
106
115
114
118
136
100
101
138
107
107
138
119
133
119
147
130
148
137
109
114
135
112
140
149
134
105
148
125
117
141
114
117
117
118
135
149
111
116
136
129
149
116
106
141
107
137
116
150
147
145
103
145
120
126
132
120
107
131
124
138
140
143
143
125
107
100
131
117
114
119
108
150
134
128
115
140
150
113
102
150
148
129
100
101
119
111
113
118
109
115
145
108
148
148
119
137
120
119
128
143
114
125
100
108
104
132
128
133
150
140
121
131
110
121
118
109
139
145
149
115
138
134
136
107
108
113
125
138
112
141
107
137
133
117
147
118
124
110
109
135
131
138
139
115
105
106
141
106
149
131
129
100
118
149
104
138
114
127
136
133
128
123
148
136
101
107
116
114
129
117
146
142
144
140
120
111
150
105
143
139
131
131
147
121
130
146
123
114
104
135
108
123
134
147
111
136
147
103
116
137
100
133
132
137
136
143
115
127
121
108
124
138
112
136
111
130
146
106
121
114
133
143
113
141
104
140
130
127
119
113
134
131
116
132
118
106
126
148
106
117
138
118
139
107
114
147
107
118
136
136
136
121
103
115
101
105
115
100
135
121
126
139
111
132
113
135
150
123
105
135
138
135
140
104
144
140
117
111
123
106
106
117
121
121
131
121
142
102
104
135
135
118
102
145
137
146
106
108
132
122
132
132
120
110
142
111
127
111
127
108
109
114
128
124
107
139
118
111
140
112
120
105
121
134
117
129
126
110
105
140
130
142
140
142
133
111
126
137
115
139
114
143
108
145
100
114
102
103
125
134
104
140
117
106
116
137
140
105
117
101
150
126
107
127
112
107
147
111
116
144
114
137
146
117
133
118
102
129
136
107
116
104
149
132
109
127
113
128
122
147
126
130
109
105
125
127
113
126
115
128
119
147
142
139
131
131
147
149
132
143
149
134
146
104
107
111
146
150
104
108
132
119
113
123
111
146
104
111
115
131
140
131
106
128
133
115
109
108
111
119
134
104
105
141
118
143
118
114
117
128
142
125
104
139
103
143
124
145
106
140
136
138
124
137
127
129
150
131
136
133
115
147
134
121
119
128
135
118
145
145
139
129
122
141
100
126
121
103
119
121
120
117
142
128
111
130
114
121
116
105
123
137
149
101
117
132
128
118
150
124
132
109
143
149
106
139
105
135
133
145
149
134
112
141
134
119
102
113
111
124
118
104
113
139
150
133
119
135
131
145
131
120
138
150
107
127
119
110
131
106
150
147
113
127
150
137
135
128
110
138
121
108
140
135
125
115
129
136
140
141
106
118
102
100
146
114
135
130
110
106
109
139
105
106
101
120
119
143
149
115
145
146
149
127
123
133
137
126
116
112
144
114
137
118
124
137
118
146
140
103
127
132
119
113
144
138
149
125
102
120
126
103
132
125
121
106
110
117
121
142
103
129
100
139
137
149
147
103
139
121
128
127
121
148
124
105
131
120
112
140
125
150
127
119
119
117
101
119
110
109
106
150
118
126
100
116
119
120
135
114
101
136
139
134
139
110
123
141
100
126
113
109
150
117
138
116
131
108
122
108
126
132
145
119
134
131
150
146
137
110
108
132
101
147
134
128
121
127
132
144
107
130
127
146
134
121
110
144
120
139
141
100
149
116
135
110
148
115
137
108
133
129
104
125
130
145
119
100
119
121
104
113
130
106
138
109
149
117
136
145
115
112
122
149
145
108
102
127
138
146
123
107
101
126
141
141
119
100
140
119
107
109
137
150
133
148
116
107
104
100
109
128
110
136
108
120
137
144
124
128
134
106
112
141
129
102
111
119
115
132
105
101
122
123
112
144
132
113
106
147
129
132
102
118
129
138
144
142
140
114
118
120
126
148
139
149
131
136
115
139
129
123
142
100
148
104
125
129
116
149
143
102
120
136
110
100
132
144
145
123
102
103
134
124
133
112
136
149
117
110
146
143
138
114
122
126
119
105
114
111
124
143
128
126
139
123
149
129
126
106
105
129
101
124
147
146
109
109
124
121
117
109
108
147
139
115
126
139
102
136
148
143
124
121
130
130
123
123
132
120
135
112
122
128
116
106
127
133
136
129
104
129
128
146
146
128
105
146
125
121
123
109
118
101
129
107
103
127
131
144
120
133
146
147
138
128
103
102
100
126
147
130
121
140
131
114
150
101
122
143
145
110
138
147
123
135
106
148
143
135
126
147
124
124
129
137
107
102
101
114
125
123
148
124
129
106
131
120
128
123
114
124
133
111
131
140
110
128
110
120
118
112
149
131
105
123
149
150
114
149
120
106
130
111
139
124
129
126
106
131
125
101
146
148
104
125
132
110
130
149
126
144
117
116
104
100
137
140
147
122
103
102
117
102
107
145
130
150
137
129
115
114
111
118
145
112
114
150
136
149
150
135
105
138
142
134
109
135
150
142
123
140
113
100
103
129
108
105
113
138
145
102
133
113
139
103
133
121
105
131
111
145
147
112
102
131
107
111
150
118
124
138
110
130
127
144
149
130
116
138
123
115
109
140
143
104
143
144
134
104
114
126
136
106
133
150
144
106
133
141
140
102
119
113
144
148
104
145
116
145
128
123
110
149
142
148
124
142
122
125
125
126
123
150
133
137
109
119
126
109
126
137
148
135
108
133
105
128
116
121
106
136
137
144
148
112
145
136
143
105
150
103
108
132
100
104
125
104
135
130
143
145
129
138
104
113
114
102
136
112
127
119
117
107
148
111
102
123
102
106
131
142
114
134
109
127
103
143
111
120
133
101
141
116
100
115
140
127
148
102
113
101
142
117
102
145
140
148
139
102
113
131
150
134
129
135
126
148
150
143
118
134
132
150
115
125
139
149
106
124
145
128
141
148
138
149
109
141
147
116
114
101
107
103
147
105
134
108
115
107
107
136
120
135
114
148
145
113
131
103
147
143
131
119
115
140
102
141
141
130
150
107
108
128
129
150
137
112
118
109
113
143
113
147
138
124
103
136
123
117
113
109
119
148
117
131
101
104
127
137
110
148
116
136
111
116
128
118
150
117
142
139
104
108
149
120
124
143
112
136
132
108
106
107
113
144
137
140
120
132
148
142
129
129
101
105
124
138
116
101
145
150
119
127
121
143
111
124
137
140
148
143
105
133
109
127
104
136
139
113
113
150
128
131
116
107
148
110
103
143
132
113
101
144
131
133
110
109
147
117
119
102
134
115
114
104
150
116
117
127
140
145
128
118
114
140
100
146
145
139
103
110
122
141
147
150
101
126
126
111
107
124
109
128
113
145
138
139
144
130
134
115
136
126
119
138
144
109
107
129
110
130
144
129
109
141
130
114
149
147
111
130
102
116
101
148
136
108
142
133
124
113
106
114
107
112
146
126
137
128
147
128
112
138
128
140
119
100
118
109
122
123
149
109
122
134
122
128
110
107
101
130
117
115
142
137
115
136
124
134
125
133
126
108
105
140
127
107
146
114
110
130
124
128
129
144
141
103
127
145
142
146
116
119
136
120
116
148
149
103
137
132
115
107
100
104
115
115
105
127
132
113
115
143
137
130
146
136
145
103
109
107
126
138
101
132
138
108
109
149
103
143
127
144
104
137
144
144
129
136
119
114
133
125
135
105
104
116
121
100
118
132
136
136
108
107
128
148
132
113
121
119
138
144
123
107
118
111
101
104
118
123
119
125
121
113
104
133
129
105
107
126
127
104
123
107
150
115
127
116
101
105
105
103
117
108
127
122
139
132
124
105
112
128
147
137
125
100
113
135
142
116
142
122
136
118
148
111
105
101
121
115
117
144
116
135
107
119
130
120
113
126
122
103
126
142
129
139
131
117
131
126
141
139
145
102
142
142
111
118
144
113
133
107
102
116
135
101
141
143
113
121
102
126
108
142
149
106
109
122
146
136
146
132
122
115
138
135
130
149
104
138
141
113
101
142
132
106
125
103
137
150
138
117
105
146
114
133
125
143
104
140
104
134
132
144
136
135
121
113
133
149
133
111
117
106
106
119
130
114
137
104
104
139
133
106
149
136
135
105
100
137
138
136
101
110
117
122
136
144
109
110
145
110
101
144
109
117
140
102
113
121
101
114
129
117
101
116
132
113
128
113
122
123
118
125
148
138
145
112
118
109
100
145
136
115
145
100
104
111
142
148
144
101
148
119
131
125
124
145
111
101
118
150
107
112
145
134
128
138
132
124
116
123
137
130
144
144
119
136
102
122
136
126
110
145
121
134
109
134
109
148
136
136
149
123
131
102
112
144
131
144
138
115
104
120
147
144
147
146
108
141
147
109
145
111
150
140
119
125
150
133
116
107
126
136
124
122
106
117
110
106
136
114
117
110
106
100
148
116
137
149
135
121
141
142
140
122
129
115
118
124
118
127
140
110
126
111
118
121
100
118
103
146
111
110
123
109
137
141
131
123
149
117
112
148
142
143
141
114
115
103
108
113
101
120
127
148
101
147
142
117
104
137
104
114
127
110
100
146
102
126
119
103
108
130
150
109
101
150
126
134
137
125
146
132
125
119
134
100
110
132
115
105
129
139
146
116
130
105
127
141
137
104
115
144
122
106
118
110
130
127
145
103
115
102
137
108
121
144
102
135
121
101
145
107
112
137
108
150
127
128
120
106
110
128
128
116
131
148
135
101
111
117
104
133
119
122
119
111
126
131
137
106
147
149
118
123
143
142
113
119
114
127
117
118
133
148
103
109
105
137
119
101
137
111
103
108
128
116
122
145
126
147
121
100
132
115
122
135
105
106
148
125
106
134
119
112
130
149
107
147
103
143
145
127
137
131
102
107
124
126
117
130
128
143
138
121
136
138
117
137
138
116
128
139
141
125
111
125
130
108
135
106
147
113
145
145
119
127
135
141
143
134
116
150
137
147
127
135
106
145
108
107
112
104
102
103
134
127
116
109
115
138
120
141
108
147
104
119
116
111
143
117
104
121
139
126
104
116
120
126
135
102
137
126
123
131
135
134
103
135
112
124
117
136
122
117
150
131
140
120
147
114
101
147
147
124
134
131
104
134
145
120
144
120
148
127
122
139
101
126
131
106
114
112
131
125
148
103
132
128
106
144
132
121
137
126
123
123
110
104
141
138
142
148
140
101
144
113
102
101
107
124
107
140
109
133
106
106
108
119
135
104
125
117
107
101
136
147
119
140
125
122
118
119
146
135
145
127
137
144
108
146
148
149
139
107
105
144
123
118
150
132
134
136
111
104
136
105
123
111
112
146
139
111
107
128
117
119
109
139
103
107
104
135
121
100
126
142
123
119
124
135
139
134
133
133
117
101
133
147
135
147
104
144
110
134
144
122
109
127
148
148
126
150
144
142
145
110
112
128
142
150
105
127
146
113
109
106
135
142
133
122
128
115
138
124
126
106
114
102
118
102
138
103
150
139
150
145
141
127
138
107
146
133
140
132
137
121
148
140
102
101
110
134
115
140
144
110
121
112
117
136
119
113
124
105
104
125
142
106
142
136
117
127
136
145
129
134
133
122
117
149
133
150
141
105
136
140
121
145
133
130
148
116
138
117
139
124
101
116
121
105
105
139
141
131
121
145
145
112
134
130
139
112
140
122
119
124
149
133
116
109
124
102
104
118
140
129
144
145
133
109
109
148
144
112
122
142
111
115
122
139
131
129
132
136
128
105
140
132
116
132
118
108
138
119
111
133
128
145
102
120
123
125
118
127
107
101
127
117
123
114
139
150
135
137
101
116
150
112
113
136
128
111
150
139
147
145
123
149
126
142
134
114
116
120
147
125
115
100
126
118
114
106
124
121
139
116
109
127
132
132
144
141
127
145
125
145
107
130
125
138
133
119
100
141
131
143
135
126
135
130
112
127
102
112
128
133
106
136
138
125
106
138
114
136
140
123
101
136
137
124
115
112
132
123
111
133
130
132
142
101
110
108
137
121
108
131
118
111
114
138
121
150
106
111
137
120
111
111
124
117
119
116
132
143
107
150
100
135
135
105
109
135
142
104
147
129
119
107
146
106
137
135
142
101
113
122
108
135
147
133
114
107
104
128
114
137
117
137
149
133
125
103
104
133
135
112
119
150
144
126
149
148
121
128
140
131
102
133
132
110
108
145
125
116
146
140
105
134
137
119
104
123
137
134
109
138
102
127
128
106
110
122
137
134
106
106
138
111
131
123
148
142
143
100
147
109
144
137
145
139
112
131
124
119
143
129
125
124
140
110
101
133
142
144
113
133
147
130
133
145
132
122
145
131
109
113
120
112
113
116
145
118
148
121
135
130
109
109
120
139
146
129
133
141
108
132
118
107
135
129
105
123
141
112
116
113
150
114
102
121
107
144
136
130
134
116
121
146
108
146
122
134
146
112
117
139
150
149
146
104
132
108
111
130
117
104
142
115
142
116
119
132
125
137
122
129
117
145
129
146
132
114
144
114
114
135
138
111
115
133
125
121
119
147
123
149
137
144
115
101
138
132
119
126
119
104
104
121
121
109
144
139
133
149
109
127
146
110
122
126
115
120
101
132
131
144
106
148
189
180
162
186
189
183
187
179
145
198
156
188
183
167
143
187
151
161
147
177
165
152
187
151
192
170
151
177
181
161
198
172
200
186
192
160
140
180
192
144
190
197
183
149
158
180
170
193
158
144
191
196
167
195
186
159
178
144
170
153
197
193
155
195
160
140
188
186
187
197
155
197
148
170
179
176
200
148
141
143
199
167
156
159
143
200
197
160
162
190
156
180
200
148
176
151
174
173
197
181
191
194
177
150
146
149
197
183
145
177
181
190
185
176
168
145
188
190
197
147
195
146
174
182
187
148
185
177
165
182
170
156
146
184
197
169
164
178
159
172
185
144
141
151
179
159
200
157
199
172
164
164
146
155
141
189
159
187
141
185
193
171
195
161
156
161
167
141
149
158
177
148
149
144
180
177
177
166
146
150
152
172
161
150
182
165
149
141
193
158
159
194
154
150
143
178
173
169
144
193
194
170
179
155
169
185
178
154
180
155
186
160
190
159
175
153
189
168
182
142
182
181
178
198
178
176
194
151
145
185
151
183
154
153
196
179
152
141
173
181
185
190
189
175
142
146
192
190
192
193
150
170
151
200
177
185
151
180
186
179
197
198
177
192
187
188
176
162
189
141
178
196
142
162
178
146
184
144
180
172
187
162
169
188
183
162
185
180
145
148
189
183
142
165
161
156
156
159
196
162
161
141
162
140
146
163
176
155
143
199
171
161
170
159
153
193
187
199
172
181
185
167
151
171
193
168
177
179
170
174
165
186
146
187
171
192
170
153
166
192
141
184
192
180
147
172
162
181
181
200
164
143
157
180
151
147
186
197
194
149
142
193
185
183
142
145
149
187
145
143
164
150
167
148
168
197
147
164
200
166
198
141
171
144
197
160
178
145
144
188
200
177
147
179
152
160
187
188
156
197
199
154
191
151
194
184
166
196
160
142
174
187
193
189
150
169
186
162
191
197
150
200
156
170
200
173
143
156
184
199
176
192
153
172
141
184
166
188
194
172
188
195
191
175
196
166
158
150
159
192
182
193
141
153
192
176
171
174
174
143
155
183
191
184
190
153
182
185
197
148
145
176
172
163
176
176
166
177
184
168
181
184
184
153
173
199
198
159
170
177
160
161
191
147
151
176
186
160
190
171
165
172
142
192
159
179
142
193
140
192
146
172
165
189
196
159
148
170
157
179
189
142
142
185
146
177
196
180
154
184
198
143
185
181
197
154
142
147
183
148
140
147
187
175
183
151
188
144
143
144
170
188
179
183
152
187
158
183
191
150
148
154
197
163
176
191
143
144
155
174
169
176
154
194
167
140
185
160
141
185
184
142
183
165
161
190
143
151
140
143
169
173
167
184
147
145
180
196
141
180
169
188
190
195
162
174
186
172
142
173
170
189
178
170
148
182
170
188
189
169
183
194
142
158
184
155
196
169
200
161
198
199
159
173
140
187
176
141
165
151
145
184
187
180
199
174
181
187
161
149
141
193
187
183
161
187
151
193
144
160
144
169
140
161
175
174
200
150
148
195
168
143
146
195
198
175
166
197
187
159
191
140
149
160
189
175
163
190
158
143
194
150
156
168
175
179
151
194
196
186
189
192
155
163
180
152
156
176
195
176
148
153
186
174
164
146
172
162
199
181
199
152
173
146
170
141
198
158
146
152
168
182
172
171
145
197
195
197
168
167
141
175
180
156
168
186
168
170
166
190
190
158
177
143
149
141
169
166
174
176
197
193
170
162
148
162
194
145
168
187
180
176
167
195
160
170
193
167
197
190
180
175
194
198
169
161
200
181
181
170
197
160
179
182
141
144
186
168
178
191
185
185
166
147
182
170
161
147
197
163
174
176
159
184
151
171
144
194
167
197
146
198
152
161
197
154
162
154
172
146
168
193
152
154
171
196
152
150
145
146
162
197
178
171
186
184
176
196
185
160
142
189
182
157
188
157
182
148
149
174
147
148
196
166
149
152
196
192
169
197
162
162
192
164
200
195
192
174
163
153
151
152
169
196
190
170
162
181
155
190
143
142
167
158
180
200
193
191
170
180
185
158
176
190
182
156
190
154
140
168
188
191
177
181
162
174
145
154
184
141
162
171
154
168
153
167
153
152
196
194
191
162
180
168
150
200
180
200
185
164
190
183
142
171
157
165
153
157
159
182
178
152
171
141
168
145
179
157
168
153
174
155
186
158
162
142
187
152
159
181
159
173
193
200
170
163
140
159
144
200
195
191
141
184
168
165
188
187
141
170
141
176
146
157
156
180
188
165
188
166
190
162
159
148
165
199
169
180
198
167
168
172
161
180
199
178
158
159
154
151
167
155
160
162
199
161
182
162
153
174
199
147
198
200
179
157
160
168
149
184
162
181
184
140
200
172
196
199
144
199
186
173
159
193
185
185
192
194
179
191
144
190
192
156
179
156
148
159
183
167
177
169
187
164
140
164
155
176
194
152
148
195
163
162
154
142
149
152
163
152
147
144
144
187
168
158
189
155
188
185
191
147
184
154
187
163
172
197
191
167
196
191
193
168
174
189
169
154
183
185
170
158
154
151
166
148
147
193
178
159
193
170
191
183
188
143
182
160
162
187
155
184
155
147
186
150
176
194
189
186
156
199
149
179
153
190
178
141
149
193
142
164
181
161
173
196
196
165
171
177
171
171
195
200
196
153
180
163
171
180
142
178
172
155
156
148
149
183
142
140
183
171
141
168
198
183
162
186
174
157
191
195
188
192
194
157
155
199
199
153
193
188
192
167
159
163
172
173
183
146
154
167
190
188
183
143
200
189
145
172
156
178
151
188
185
156
178
176
170
182
167
189
196
157
170
142
151
186
179
174
196
164
152
197
164
186
159
159
175
192
176
160
192
168
200
160
150
192
156
163
162
141
153
171
191
194
161
197
167
194
161
154
183
184
142
181
148
172
160
199
166
192
195
193
150
142
158
182
155
186
179
151
196
144
157
180
163
149
192
183
172
157
195
196
171
180
193
155
196
178
195
186
170
171
191
178
170
188
147
185
192
161
168
179
156
184
158
156
162
169
143
156
158
195
177
182
194
187
190
148
188
164
198
197
182
162
140
159
146
162
155
164
173
185
182
142
174
145
148
147
191
189
168
186
159
183
162
153
191
174
180
177
164
192
159
148
192
169
176
186
163
156
197
158
180
199
199
174
187
141
199
146
193
155
187
183
190
145
164
146
166
141
149
182
160
156
175
153
182
146
159
148
193
191
142
156
164
171
198
148
195
140
190
180
146
157
173
169
175
156
151
194
192
170
157
200
172
159
143
189
145
188
149
169
147
188
184
179
188
177
199
193
192
196
173
172
199
197
200
151
165
166
167
145
149
179
152
142
179
200
158
164
172
190
166
179
163
192
152
192
164
142
199
144
193
159
197
181
182
185
193
197
187
199
160
156
141
148
181
155
197
153
192
169
186
196
173
172
147
152
175
187
173
157
181
191
166
176
173
174
189
158
145
153
200
172
187
147
163
188
195
166
174
198
179
198
181
145
140
186
151
140
178
145
183
161
198
167
193
164
174
167
170
196
173
147
157
147
180
159
161
155
158
146
170
152
163
186
158
197
151
170
153
175
152
181
175
153
188
195
168
150
167
147
177
185
198
159
190
187
179
183
157
158
188
198
155
170
185
197
140
154
164
141
157
187
157
198
170
181
185
183
149
145
168
184
169
195
178
193
156
183
181
144
199
178
152
174
183
141
178
165
142
185
183
148
195
141
166
152
164
182
183
182
185
185
151
188
146
161
153
142
178
183
199
149
168
146
146
146
143
181
192
180
140
157
145
157
168
170
150
187
200
177
198
180
187
163
182
181
165
166
180
191
159
144
181
166
148
190
177
148
189
165
171
196
190
151
195
141
191
141
189
172
179
158
149
186
198
145
194
144
141
164
194
162
174
196
157
158
166
151
179
164
190
173
153
162
180
198
166
179
156
142
147
195
180
177
144
151
145
150
177
179
181
179
182
152
162
200
174
175
188
154
177
147
166
178
159
181
147
160
162
154
197
159
150
156
185
177
149
184
175
189
168
153
171
172
175
176
158
179
150
175
160
190
197
189
180
193
188
185
188
169
144
148
156
188
170
140
160
200
182
183
177
182
188
195
193
166
174
146
156
175
194
186
176
188
147
187
171
170
158
185
179
174
158
187
150
151
155
188
140
172
191
188
190
198
159
172
189
151
144
194
190
180
160
182
152
167
140
152
157
170
143
200
199
180
168
182
143
168
160
183
171
161
165
147
170
161
194
165
175
162
192
143
181
162
187
181
163
193
163
185
200
142
150
194
160
190
163
148
175
161
148
161
156
190
164
144
170
158
191
146
161
181
180
156
181
181
194
172
180
153
174
200
190
197
180
198
184
176
169
188
170
193
188
194
155
176
150
141
171
158
171
185
142
185
161
155
185
144
189
160
157
154
184
145
185
157
175
158
144
181
171
145
192
157
146
162
151
179
180
142
147
182
160
153
175
190
177
192
184
165
162
146
171
181
191
170
149
140
170
154
174
197
141
174
180
184
156
166
176
170
146
191
161
150
151
186
143
175
196
159
197
189
151
166
154
190
172
188
162
200
179
193
183
184
186
198
177
199
195
176
183
150
169
187
181
179
158
196
156
140
169
140
167
146
156
154
148
148
180
180
178
148
142
172
149
167
161
156
158
184
142
156
170
176
140
199
187
171
147
167
164
194
143
167
176
186
165
149
200
179
176
190
193
174
170
179
187
171
191
169
192
162
174
175
164
181
142
172
183
177
159
177
140
173
192
181
179
153
196
172
200
183
163
158
176
141
168
176
154
157
140
163
173
142
156
167
154
183
142
189
190
184
156
180
192
171
177
145
198
169
168
174
183
180
160
172
185
177
185
148
162
194
158
142
151
152
187
169
200
173
143
197
143
154
181
175
175
142
161
164
176
154
198
152
162
169
197
191
198
157
153
178
141
180
196
155
164
168
182
140
159
143
151
147
198
171
141
140
182
160
163
151
184
169
176
164
193
176
200
186
171
200
149
198
198
152
198
181
170
154
186
186
173
160
170
174
145
146
195
164
182
180
159
182
142
160
154
195
184
172
186
179
177
176
195
150
200
194
161
145
174
142
170
196
193
170
144
192
159
177
159
169
175
149
196
193
192
172
171
171
200
198
191
159
179
155
193
199
160
161
141
153
198
154
170
196
152
178
173
148
161
193
171
187
150
163
151
144
152
144
166
178
155
153
190
183
164
181
197
177
149
160
143
176
194
143
150
157
171
187
166
178
195
162
156
171
148
197
145
179
161
165
198
181
168
179
175
197
171
192
157
199
157
141
176
149
185
150
174
159
158
149
160
145
180
186
178
181
177
169
194
165
183
151
188
175
170
145
171
140
144
171
168
199
144
160
155
195
151
179
161
200
193
195
189
169
180
171
168
165
184
188
190
142
140
141
147
200
151
149
160
200
196
165
149
194
178
196
190
143
145
150
179
183
196
179
199
183
144
192
167
160
179
172
155
140
183
149
185
191
188
150
193
146
167
140
195
164
144
141
188
165
171
199
170
200
164
149
140
165
188
181
160
171
156
200
180
192
141
146
147
174
182
146
151
147
151
200
176
160
199
193
155
158
140
188
141
151
150
142
152
193
182
188
159
158
185
146
174
195
185
146
187
171
190
197
152
174
175
162
141
145
149
168
142
176
159
183
140
145
188
174
196
149
200
152
170
180
188
142
179
196
141
173
167
146
166
166
145
151
188
165
147
196
171
151
140
163
162
194
157
185
193
155
164
146
183
185
193
168
161
183
184
193
196
159
194
159
155
179
167
178
172
193
161
183
154
163
145
182
173
153
184
200
197
196
200
178
161
176
163
158
153
191
187
148
175
142
165
180
143
196
161
197
156
164
175
187
197
171
165
187
166
194
193
144
175
160
166
144
160
151
199
151
169
160
199
198
180
149
180
179
140
153
192
170
191
148
156
152
153
156
179
184
179
140
147
155
155
156
194
185
196
158
156
196
155
173
191
159
145
153
176
192
190
165
184
183
197
152
156
192
159
162
194
158
151
187
176
163
162
158
172
145
183
144
158
149
159
175
147
156
141
175
173
155
149
174
155
144
146
192
174
161
142
146
153
155
197
140
183
164
185
196
145
190
178
162
142
153
184
195
199
161
164
174
164
143
179
163
185
157
196
160
192
172
187
200
172
193
185
154
158
194
194
165
199
158
191
161
200
180
172
153
200
174
161
142
197
153
147
170
183
159
170
149
157
182
187
176
143
147
171
199
157
175
152
197
170
176
181
143
157
173
186
194
165
185
183
164
157
158
179
142
192
178
179
162
175
182
179
194
154
189
184
179
158
190
145
185
157
152
174
155
152
164
181
151
197
145
182
196
173
185
170
143
193
189
172
153
169
185
192
185
161
159
167
181
166
198
155
145
140
164
163
164
197
200
143
159
145
149
152
184
169
177
149
140
191
181
140
187
195
176
192
181
155
183
172
160
151
194
167
177
180
140
168
192
195
185
195
154
153
148
160
182
167
142
154
165
178
151
159
189
142
145
195
142
142
199
200
169
176
157
186
164
161
147
196
148
162
195
144
160
171
183
198
168
155
195
158
161
185
195
187
180
143
189
162
167
143
191
194
166
155
154
165
154
157
199
191
163
163
172
154
188
158
191
151
149
167
148
176
154
162
194
164
186
155
191
148
159
150
190
176
164
186
158
182
145
153
186
196
200
151
199
154
193
144
166
167
143
169
156
199
159
168
169
192
174
169
144
163
198
146
185
148
152
144
142
186
142
189
194
178
171
199
165
152
187
175
190
172
166
145
189
159
175
181
159
149
169
197
162
153
184
178
163
143
181
157
156
171
146
171
199
144
175
148
185
152
171
143
200
173
187
197
194
165
161
183
170
184
146
164
160
185
184
190
187
171
200
145
159
151
156
171
157
158
198
175
175
142
168
162
197
158
175
146
160
163
152
184
178
167
175
189
193
168
169
169
173
183
140
191
161
149
150
159
189
149
199
198
177
143
183
148
177
144
162
143
159
155
183
165
152
175
200
158
169
165
152
148
190
186
165
160
169
165
162
197
143
195
192
176
144
168
150
193
193
181
162
160
169
163
166
187
142
145
151
174
154
198
143
181
169
171
195
151
153
163
146
145
160
154
166
169
168
168
174
151
147
186
159
198
171
199
184
190
173
187
175
169
170
171
145
165
179
153
151
184
163
141
179
195
176
195
195
147
174
198
150
141
200
174
197
155
150
154
182
178
176
176
194
164
165
176
198
174
171
149
196
191
165
183
141
183
147
192
191
152
175
145
154
185
191
187
174
163
190
199
153
192
200
141
185
174
143
140
162
158
183
173
176
141
177
158
174
153
166
151
152
144
180
161
163
164
194
145
172
188
170
173
143
152
163
169
180
140
164
151
181
165
191
149
156
160
142
186
183
179
152
156
181
164
161
172
179
195
171
180
179
184
161
152
188
158
147
194
181
195
191
187
178
166
170
183
156
198
186
154
171
184
164
195
149
160
184
149
163
157
153
149
153
140
172
155
198
193
157
147
197
150
181
174
176
199
163
149
190
165
192
160
179
146
160
175
158
195
151
190
194
192
163
197
171
190
187
144
157
143
183
190
179
166
143
154
142
151
158
186
170
156
173
165
194
199
146
178
161
196
144
152
194
165
150
194
176
187
152
145
191
148
153
142
186
177
140
179
146
146
186
189
184
173
150
178
166
199
192
194
200
152
145
169
193
177
194
142
177
143
184
196
147
159
145
193
177
179
182
158
188
186
179
184
145
194
148
196
146
157
162
198
173
152
198
193
200
144
173
147
165
171
198
149
176
195
144
178
180
184
198
180
150
142
186
146
171
151
141
155
197
148
161
180
152
199
181
184
194
181
198
191
184
153
175
157
182
191
161
173
166
184
146
151
200
172
199
172
180
196
165
156
175
163
172
187
164
187
176
199
167
190
143
141
174
192
200
168
166
154
183
186
186
164
188
141
181
163
176
162
183
143
193
173
181
169
145
183
173
164
190
188
146
183
176
176
149
173
193
156
177
156
178
170
141
169
159
160
154
158
144
198
175
184
197
147
176
172
190
141
180
194
145
180
143
177
154
161
162
165
182
166
157
170
193
151
181
180
191
178
141
157
158
166
189
170
191
176
188
198
190
169
157
178
172
151
150
150
143
174
164
180
150
172
157
155
162
176
182
165
167
149
158
184
193
159
156
143
174
178
176
141
193
181
179
170
192
170
196
175
146
157
187
168
191
166
178
154
165
153
184
181
172
189
160
149
200
190
140
191
170
181
179
189
165
157
198
143
181
179
190
145
183
192
156
164
162
200
144
179
177
167
177
183
154
197
185
163
182
168
194
148
163
185
190
167
197
179
179
162
149
162
185
145
194
179
177
172
150
163
184
154
147
157
192
154
178
174
145
148
156
188
150
188
140
195
182
178
158
159
143
195
191
184
152
176
147
145
194
199
173
180
187
197
143
169
181
151
162
178
189
162
151
177
197
178
142
186
177
155
166
190
157
151
175
163
150
167
174
171
177
162
167
147
193
167
191
165
180
183
158
173
164
191
161
166
172
170
192
200
147
168
169
149
191
165
200
179
189
184
183
158
179
186
163
165
142
159
182
170
151
173
186
192
193
160
177
161
195
196
142
181
149
188
145
191
199
194
183
146
200
146
196
181
141
158
150
150
158
145
160
198
163
185
168
152
176
171
183
140
183
157
153
191
181
195
182
175
180
164
167
198
176
143
142
171
197
159
196
189
177
199
180
182
192
142
160
163
156
140
177
154
178
197
189
170
183
141
186
157
157
171
174
151
178
160
183
163
160
159
175
140
167
166
173
199
143
146
185
187
165
145
142
184
158
176
171
151
156
155
168
144
196
171
173
154
142
159
168
173
174
163
200
178
188
156
191
164
158
189
200
173
193
149
173
145
155
171
143
194
163
174
153
158
157
178
152
174
159
160
193
164
193
165
157
192
140
199
158
197
162
158
192
177
188
155
192
155
196
172
185
165
199
177
167
184
170
184
169
186
150
147
161
192
147
184
142
148
188
149
191
194
143
186
168
168
194
165
167
160
160
154
142
156
155
159
150
188
148
154
151
162
168
142
193
191
189
177
166
142
142
163
179
148
195
170
170
147
196
165
179
171
195
151
148
193
168
200
152
186
173
179
144
165
173
182
184
153
178
153
169
161
200
148
174
151
150
173
161
167
167
141
146
169
140
180
172
167
158
173
141
155
153
151
153
192
191
147
181
177
169
162
153
178
150
162
170
170
193
152
190
186
200
189
162
146
164
194
169
200
200
162
193
166
147
143
174
152
174
163
173
162
192
179
177
153
173
188
141
196
146
174
190
161
161
167
145
165
198
154
168
140
175
178
194
184
187
196
175
166
147
187
150
193
172
174
199
187
176
191
200
193
167
143
161
162
161
171
168
144
188
175
184
171
142
193
181
160
190
142
162
147
151
171
163
141
187
193
188
144
172
182
149
141
166
158
188
194
180
181
140
186
174
185
181
178
190
199
163
186
150
148
190
180
191
194
142
167
146
199
195
175
162
187
151
187
169
177
160
146
151
180
177
166
193
153
161
167
144
199
176
175
156
181
142
185
154
195
172
163
150
172
170
192
164
144
172
190
180
186
177
198
169
165
154
164
144
190
181
170
198
185
170
158
162
166
145
141
150
179
164
177
150
150
145
156
154
152
168
193
194
143
183
173
183
146
177
141
173
191
200
173
154
160
147
142
145
155
186
145
161
185
189
143
192
156
174
157
159
171
147
166
200
140
151
145
177
161
167
178
169
178
158
193
175
200
179
180
149
186
193
155
182
190
176
153
179
141
147
200
150
161
142
179
159
143
171
197
195
141
145
186
186
157
182
146
154
149
183
166
155
183
167
148
148
140
181
175
167
165
145
158
183
186
148
141
144
198
179
186
151
180
155
184
191
167
170
156
162
147
152
168
198
165
165
194
156
160
183
174
176
178
147
153
197
161
166
183
163
169
190
200
176
161
171
176
153
148
179
168
193
152
174
173
140
197
157
194
200
161
142
172
173
153
185
156
156
167
171
155
188
166
173
169
160
140
176
156
149
144
141
140
188
152
191
174
179
159
161
177
184
166
164
172
176
186
169
163
195
171
149
188
180
146
144
159
149
161
182
200
155
167
167
193
144
200
150
171
150
165
185
180
171
174
161
194
164
167
176
153
181
185
145
159
147
145
171
182
144
150
171
167
181
184
149
178
157
168
140
144
172
200
144
197
188
172
176
168
180
192
196
149
166
143
195
189
184
171
145
158
185
160
142
178
181
181
185
193
157
182
141
193
152
158
146
152
151
176
161
144
152
191
179
157
188
154
200
178
183
178
167
171
178
142
174
170
186
156
172
152
144
163
151
146
156
193
175
167
194
145
150
159
186
169
144
165
178
163
172
192
200
185
166
155
198
195
199
191
190
156
175
157
173
172
145
191
167
141
176
142
189
186
151
175
184
168
165
190
144
171
182
190
193
176
142
170
171
152
174
151
153
147
184
188
165
162
159
197
177
155
181
169
188
174
173
170
188
152
170
157
199
181
200
171
148
149
164
171
142
191
143
170
194
193
197
172
200
177
184
171
149
175
186
179
152
195
157
183
177
156
169
185
193
145
169
159
152
179
152
188
189
193
199
191
144
171
147
200
158
192
152
190
181
182
187
158
181
169
174
141
144
147
169
146
190
166
163
174
178
145
155
178
168
159
172
167
158
191
155
175
189
162
141
196
190
142
186
179
170
180
160
166
141
173
156
192
142
191
170
160
170
154
167
173
153
179
179
155
141
159
166
141
180
194
197
196
158
191
151
140
183
144
143
158
152
187
199
180
150
186
141
157
155
187
167
150
155
184
170
161
154
155
191
163
181
153
180
170
142
188
172
141
144
160
148
198
191
154
168
145
194
148
154
173
161
140
158
151
170
162
154
169
148
174
183
169
157
155
151
158
169
194
200
174
198
167
174
166
171
183
157
195
147
200
163
171
177
195
180
158
175
144
156
198
174
176
160
185
194
148
162
192
141
142
158
166
186
172
187
180
169
177
189
184
199
151
175
144
146
170
186
194
154
188
192
184
163
200
192
170
193
141
178
193
189
168
155
175
152
161
144
195
155
156
149
157
186
160
145
176
182
180
144
160
196
178
186
146
182
187
157
184
189
167
182
164
167
147
183
155
178
195
155
187
198
167
163
195
149
149
158
147
167
163
179
191
172
174
181
161
154
173
167
158
191
188
162
156
192
200
186
174
183
153
183
197
187
146
157
177
163
198
141
170
168
151
169
159
190
157
185
146
162
184
173
175
186
150
175
153
184
144
147
142
161
183
183
144
189
193
179
174
155
170
198
197
167
155
149
175
181
189
169
171
152
149
160
171
175
156
157
189
174
175
171
176
142
141
160
146
179
154
180
147
171
192
152
141
147
177
168
179
142
163
145
171
172
171
187
149
181
193
199
169
151
182
198
168
145
174
155
187
144
161
175
143
144
141
180
169
140
197
199
157
186
147
148
161
178
150
183
180
157
153
164
172
170
166
155
177
193
153
168
177
148
163
194
173
152
148
193
172
141
179
180
182
151
200
163
177
149
191
191
185
195
141
169
164
153
157
197
194
174
200
193
145
144
176
186
152
146
168
188
169
194
155
144
165
171
155
162
166
193
196
161
170
198
156
157
199
182
188
140
140
187
180
178
150
144
199
169
148
199
172
177
165
191
167
180
164
198
181
191
152
145
152
174
180
199
194
145
184
156
190
168
147
144
163
165
151
188
178
172
184
178
159
185
193
161
149
196
171
188
199
143
149
162
166
186
170
167
140
170
151
165
150
179
143
147
171
170
144
160
173
160
177
199
195
141
186
161
160
172
188
190
193
140
141
195
166
185
196
156
198
179
172
157
171
190
151
184
155
181
186
162
171
198
162
163
165
187
144
145
183
194
151
166
186
150
149
191
195
176
148
168
163
191
187
152
171
160
163
182
154
147
148
195
189
197
160
153
191
151
190
185
176
179
178
153
179
186
182
177
187
149
187
187
177
179
189
174
196
174
141
157
162
141
140
163
176
146
163
173
191
178
157
182
153
179
195
188
189
198
172
148
155
184
168
169
145
192
178
182
158
158
163
186
167
143
186
153
199
140
158
174
195
153
183
162
151
146
144
145
195
195
199
189
170
175
181
200
177
182
165
144
185
175
147
165
198
184
141
181
160
199
177
168
174
166
188
193
198
190
186
175
170
189
166
179
194
174
161
191
144
152
145
170
174
147
194
174
188
181
190
157
190
165
142
192
159
181
183
144
181
186
149
156
159
157
181
146
197
175
173
161
145
164
161
175
188
182
164
166
193
174
197
166
147
187
198
186
154
158
167
184
176
200
168
163
177
173
153
142
199
150
140
176
173
196
177
158
164
160
158
168
143
151
190
190
144
195
188
149
160
157
151
192
183
168
164
144
176
159
145
159
146
191
185
157
175
176
193
187
187
185
185
191
188
144
166
192
169
192
169
196
189
161
183
141
189
172
143
172
186
168
142
180
158
181
160
186
183
144
140
162
179
147
169
167
193
146
188
179
159
153
176
180
193
145
193
155
144
145
176
163
156
200
189
144
186
181
173
187
154
172
189
167
159
140
196
194
155
150
176
175
190
140
191
169
169
148
151
172
181
181
189
167
164
159
142
163
187
156
167
195
192
186
151
197
164
180
185
148
191
150
161
192
182
184
145
142
188
164
172
144
155
197
142
174
196
180
147
186
195
170
198
153
193
198
174
176
184
158
146
142
149
166
172
149
172
160
170
170
151
180
186
150
161
157
143
192
171
158
192
196
198
180
189
181
198
195
151
181
196
186
187
169
153
180
174
191
170
160
186
162
172
196
171
181
166
182
170
163
149
187
196
161
147
165
146
141
143
150
175
175
142
171
190
180
164
188
165
167
193
175
140
191
175
141
147
164
159
192
149
195
174
169
200
176
174
148
143
155
185
158
141
195
198
169
193
181
149
179
155
189
196
159
193
169
175
170
164
186
195
179
176
196
181
188
140
155
187
163
158
172
167
160
151
163
182
178
162
164
185
179
189
154
194
142
158
184
168
153
190
165
156
162
144
154
143
166
144
193
161
196
195
186
164
152
185
156
180
165
163
188
156
146
176
179
194
160
176
183
195
168
166
176
155
193
166
172
157
146
142
200
169
149
155
175
170
166
148
175
180
164
196
144
157
179
191
169
166
191
142
188
196
190
199
177
158
155
172
167
176
180
158
197
154
152
141
199
176
178
155
190
199
171
156
188
192
148
171
173
170
140
189
171
169
162
151
189
188
169
156
184
144
173
194
163
159
158
144
166
198
175
168
179
147
146
191
182
151
191
181
198
146
195
179
194
180
195
141
166
181
159
174
199
166
166
198
155
163
181
149
174
148
189
163
184
177
168
179
150
179
151
159
187
199
143
171
141
187
153
200
184
173
174
200
155
152
173
172
199
153
144
186
161
185
197
200
197
176
163
184
179
171
167
165
177
155
148
144
140
143
175
176
153
143
176
181
170
172
141
168
157
162
167
181
190
144
167
178
166
161
159
141
192
193
153
144
156
156
191
167
180
153
154
185
147
188
182
186
186
159
185
156
154
163
172
194
169
154
149
155
150
175
149
199
184
173
194
180
147
186
167
172
193
179
140
164
200
164
157
165
200
144
177
153
193
140
171
191
195
156
157
164
155
192
196
200
140
196
195
158
173
188
177
169
199
181
147
149
163
149
181
184
142
151
197
197
148
163
163
156
165
144
146
190
141
179
147
170
140
196
184
177
153
156
200
147
163
148
195
195
200
145
186
161
200
176
171
164
144
184
188
165
179
178
153
174
173
159
180
175
187
183
193
146
155
143
197
159
197
141
193
180
166
143
148
166
182
151
185
197
144
189
146
183
153
181
165
171
196
150
190
170
151
189
178
163
160
190
142
145
189
186
174
159
192
186
159
190
179
166
152
194
170
172
169
190
181
171
143
189
164
147
180
189
143
140
190
150
195
168
195
195
188
168
194
178
200
179
160
171
154
193
182
160
186
150
183
163
194
142
157
173
181
165
158
154
167
147
152
150
191
146
167
199
153
167
157
148
142
175
156
144
144
186
162
157
143
140
155
190
155
147
172
153
182
155
185
142
172
140
190
188
179
195
186
144
170
150
200
154
152
173
172
159
193
170
179
149
145
184
143
196
156
144
195
177
199
150
194
170
176
178
152
180
190
154
158
196
199
153
172
158
188
140
181
172
165
159
197
171
171
167
172
180
174
187
199
165
193
162
176
177
152
184
166
188
199
182
191
194
177
186
160
190
146
176
147
165
186
184
148
154
185
163
162
176
182
167
160
159
156
198
146
185
140
145
143
141
146
183
169
150
191
147
158
184
188
143
170
162
144
154
156
197
143
144
171
183
157
161
169
169
200
200
176
144
163
156
190
181
161
195
165
167
171
179
173
179
154
179
189
154
164
192
177
180
160
161
186
167
193
142
188
144
146
175
156
165
194
178
159
170
152
171
159
197
180
192
153
157
147
200
151
184
190
187
143
142
193
190
184
180
141
179
169
191
167
173
148
140
163
166
157
159
144
165
180
145
169
184
178
145
142
158
175
183
145
187
190
178
140
151
180
172
165
180
182
177
153
160
169
196
145
180
150
162
162
193
149
153
165
173
142
171
183
186
199
198
148
149
180
174
192
190
199
150
197
178
194
151
141
175
160
144
166
145
200
168
189
168
149
158
198
178
142
187
178
180
160
185
169
143
153
186
170
165
156
189
190
173
197
190
185
180
159
148
165
157
181
160
161
158
199
175
194
170
178
170
176
175
170
152
153
161
191
143
193
141
186
141
200
141
191
170
183
196
165
193
156
177
174
152
168
161
154
198
157
167
182
172
197
152
168
142
194
140
197
145
180
176
149
188
143
150
194
160
149
151
171
165
165
154
170
182
179
182
142
183
185
200
167
180
150
162
189
170
156
199
150
144
193
176
156
185
189
161
181
198
176
186
170
146
162
148
143
161
186
150
166
193
165
200
193
171
176
166
168
161
185
181
178
159
182
190
177
146
162
175
173
156
181
170
145
143
180
154
149
190
151
140
165
179
156
189
176
178
160
160
162
160
176
193
191
184
197
199
200
189
183
180
180
191
191
186
184
160
151
159
154
155
144
173
170
177
162
174
167
160
153
183
193
170
200
199
164
191
175
198
149
155
195
156
182
191
160
153
180
148
179
146
171
143
169
162
174
148
154
151
166
194
147
168
193
192
196
151
194
197
155
188
166
158
183
173
147
170
173
167
158
148
172
161
185
193
145
153
158
178
199
144
177
189
151
197
175
170
181
182
153
197
159
145
144
149
188
177
146
154
146
178
185
149
144
197
153
152
168
147
146
183
187
167
159
194
172
144
147
161
163
192
148
198
166
145
198
143
173
187
141
157
173
195
177
195
194
190
163
184
171
196
174
148
166
191
150
173
189
166
188
178
146
168
160
189
162
178
193
196
164
173
172
140
194
192
144
195
170
153
157
184
175
175
150
150
169
188
166
165
151
152
147
155
196
188
173
170
160
164
158
157
174
165
153
172
171
168
144
196
174
184
145
143
183
194
187
165
197
195
157
173
154
181
171
175
176
140
172
197
190
199
177
172
169
151
200
148
145
170
188
140
195
152
153
144
177
146
161
187
186
140
172
200
157
160
188
143
156
153
191
161
170
178
176
187
189
167
197
163
182
158
164
161
160
151
170
170
179
189
148
167
161
181
188
169
177
143
161
167
177
194
162
188
200
168
183
152
183
169
187
159
154
187
198
190
157
186
197
185
187
144
188
179
155
151
173
144
149
184
144
144
157
195
140
182
186
170
188
176
140
197
141
190
194
141
168
152
156
186
184
168
157
158
153
171
183
152
188
183
200
170
198
145
169
197
185
164
171
146
142
175
173
175
182
142
179
148
169
198
141
190
180
183
172
182
168
187
161
164
186
159
161
143
173
153
199
178
146
164
192
155
176
149
172
167
171
181
156
171
169
146
172
188
193
192
176
182
196
169
198
189
148
165
168
175
141
182
167
198
196
153
190
165
183
188
191
194
142
191
150
167
190
153
185
169
195
174
186
155
144
177
155
181
199
152
141
190
191
145
196
158
170
167
145
141
150
191
162
166
194
162
169
157
189
179
157
143
146
157
141
186
163
181
172
172
142
172
145
195
175
176
180
200
146
160
164
163
164
174
184
153
200
175
173
176
197
144
178
145
171
195
165
180
153
150
181
166
192
198
146
143
199
169
151
161
186
162
182
182
186
163
158
173
165
141
152
163
164
199
162
196
193
192
166
169
185
146
197
180
162
198
140
150
142
181
198
152
172
172
155
148
189
183
153
184
169
167
168
183
192
178
144
171
160
162
197
188
178
165
195
166
153
148
182
173
185
174
184
199
197
173
184
148
170
155
173
142
184
160
163
191
163
142
150
196
141
163
176
172
141
156
162
145
167
167
161
188
170
199
188
150
141
178
141
187
152
185
150
159
172
155
195
182
182
151
154
158
173
151
180
150
143
164
167
162
148
183
152
178
158
163
156
173
164
176
160
150
146
141
148
153
144
173
198
170
169
163
164
153
151
149
146
157
140
164
168
142
155
196
162
179
182
164
167
177
144
151
178
161
141
176
182
163
149
182
196
163
152
141
172
188
153
143
155
147
176
187
150
187
168
184
189
176
162
147
198
184
152
184
178
189
186
190
176
167
174
155
193
169
188
156
140
193
185
157
192
153
140
157
183
155
152
150
166
197
170
152
175
185
168
148
154
175
140
159
154
163
191
160
155
159
191
146
159
165
180
189
164
170
168
188
193
172
185
152
169
148
194
173
141
200
189
157
144
147
171
187
151
145
198
178
183
194
198
167
182
169
155
155
144
197
196
170
155
185
164
164
143
195
182
182
165
141
157
171
198
183
142
173
148
168
159
142
200
183
157
185
159
180
196
159
198
197
176
191
164
194
190
190
176
141
145
146
165
181
170
189
154
170
161
161
183
157
174
197
200
171
151
162
153
157
165
163
182
170
186
158
160
143
166
188
193
174
167
182
172
176
165
193
198
155
159
170
168
196
196
195
150
153
167
169
155
174
150
195
179
174
152
170
163
192
193
196
190
171
162
177
180
174
151
117
114
115
110
145
122
137
139
132
107
137
112
133
137
136
111
136
111
109
107
105
142
115
148
135
114
142
128
128
103
150
148
107
105
144
136
117
119
144
147
123
111
144
122
111
142
146
133
114
138
105
148
126
107
144
137
130
148
107
101
134
107
136
129
116
149
134
120
137
140
108
103
112
146
143
107
146
113
129
149
136
117
104
145
135
125
128
110
143
145
103
108
136
122
130
105
144
113
138
116
143
148
138
110
136
121
133
122
143
125
142
142
121
120
129
124
129
138
118
101
125
149
141
106
132
145
113
105
131
147
123
112
106
119
124
102
133
148
149
123
135
138
112
114
103
143
110
119
120
101
129
126
130
133
116
100
131
103
136
125
106
149
109
139
123
139
119
140
112
147
139
121
139
140
116
119
112
104
106
115
148
148
122
107
110
119
144
145
130
147
130
149
134
146
106
100
108
112
135
141
120
132
122
150
115
142
144
114
115
104
105
140
138
111
123
130
150
117
126
107
121
121
135
149
142
131
108
121
118
110
120
111
148
120
133
109
120
110
109
116
138
146
120
148
130
102
115
112
134
142
109
115
137
117
146
131
131
130
143
105
146
121
113
141
138
108
107
103
123
142
129
146
107
141
114
131
148
133
147
137
134
137
135
104
148
106
111
124
110
149
120
115
129
131
137
112
131
117
106
141
114
108
104
119
140
114
112
150
133
116
128
116
105
123
146
117
150
131
102
122
137
127
118
150
127
147
131
115
133
103
132
110
122
136
131
147
104
129
124
143
129
150
109
150
143
130
135
149
128
115
144
128
108
102
114
143
131
115
142
113
102
135
121
130
130
121
145
107
129
141
129
123
127
116
140
117
134
100
115
125
111
143
112
134
110
124
132
104
103
136
106
120
132
149
124
129
118
127
129
141
111
104
142
107
103
150
120
129
117
150
113
149
103
107
131
111
115
129
105
129
114
125
145
102
118
103
114
140
112
131
118
116
117
120
123
115
132
106
139
117
105
132
116
105
126
115
135
127
140
145
105
118
110
113
139
140
142
145
108
114
107
106
113
119
110
146
141
138
133
113
106
113
150
127
149
112
120
129
134
133
147
105
117
148
138
131
125
147
145
108
137
113
111
100
110
134
125
115
147
132
112
120
123
140
133
116
141
147
128
126
124
142
137
111
127
147
144
118
122
106
119
130
110
106
132
111
129
145
136
102
113
140
104
121
105
130
117
146
109
101
113
127
118
120
111
113
104
124
119
125
102
111
108
139
148
124
145
138
119
122
101
119
133
124
144
115
115
121
113
142
107
140
108
114
121
116
141
106
122
128
143
145
140
139
105
137
114
103
137
128
115
106
133
144
126
132
117
102
125
100
117
123
131
122
128
120
107
113
136
128
127
110
129
120
103
138
110
116
139
123
127
148
128
135
126
103
128
131
147
149
103
144
146
150
117
145
102
103
113
105
123
144
142
142
120
122
112
129
102
126
108
143
111
106
106
100
100
125
106
141
128
109
120
112
140
118
131
115
140
150
135
113
126
123
141
131
150
149
150
123
106
137
113
124
121
124
132
118
107
140
138
138
148
100
120
111
103
116
145
113
148
130
136
135
124
148
139
100
137
114
113
126
102
100
127
109
138
100
135
126
133
117
144
107
129
124
139
140
109
100
148
128
111
112
138
140
132
145
104
141
102
122
108
105
108
135
106
111
109
125
147
142
126
110
117
100
115
114
115
148
137
103
103
138
134
132
123
107
100
108
125
145
126
137
150
122
150
126
102
101
145
125
121
107
150
146
131
150
150
148
114
128
103
123
114
101
129
128
120
119
150
100
106
138
117
100
122
138
107
135
118
140
131
124
119
143
101
118
111
144
116
111
130
105
131
107
131
114
129
136
121
125
125
101
101
150
145
122
110
105
129
113
106
131
112
129
134
149
106
102
107
149
129
119
122
100
127
101
142
150
144
103
135
149
141
104
114
107
128
108
140
111
136
108
123
110
108
142
105
136
139
131
125
149
137
113
102
109
148
141
111
125
111
138
126
127
117
128
111
133
141
119
120
133
119
123
136
149
121
117
126
116
129
147
112
131
126
147
135
127
115
100
100
109
147
140
109
149
105
123
136
119
124
139
142
111
149
110
146
149
133
119
140
101
108
136
134
132
125
122
132
121
123
149
127
120
110
130
132
149
108
120
131
143
115
150
118
121
120
133
110
109
143
132
126
111
111
131
135
115
127
103
118
100
104
100
141
134
123
141
112
121
111
105
133
141
108
114
129
107
103
123
126
119
146
131
101
135
137
143
110
132
128
130
142
119
118
127
139
135
127
109
138
128
110
124
130
133
129
119
120
111
111
136
124
133
120
146
139
138
122
137
114
102
128
130
119
139
115
145
115
100
114
148
123
133
100
122
115
138
118
149
136
120
102
130
139
124
112
124
147
139
149
121
150
118
140
139
111
134
129
100
104
129
107
148
127
120
139
115
130
117
129
114
146
109
121
115
111
131
103
147
147
133
108
143
123
143
120
143
130
124
112
147
134
125
132
112
128
134
137
109
148
106
138
148
108
122
134
148
113
123
147
113
108
112
109
125
134
113
109
101
127
134
130
104
146
127
108
142
137
147
127
116
101
147
136
121
114
124
104
104
105
108
115
123
103
131
137
119
125
108
134
116
135
118
127
148
125
150
140
100
108
134
147
136
104
139
109
106
126
147
128
114
150
118
143
139
124
140
117
138
117
146
148
106
145
148
142
121
126
108
128
140
105
145
129
129
110
111
112
135
101
123
114
105
139
100
123
138
144
100
113
134
129
122
145
137
137
136
101
109
101
145
123
123
150
107
126
141
139
110
112
121
150
122
134
131
146
118
134
122
115
107
129
107
134
130
119
139
138
143
111
105
134
119
132
130
101
105
125
113
150
100
139
119
131
121
143
132
119
137
115
144
137
120
115
137
130
145
103
120
120
102
128
115
138
142
133
123
110
109
129
118
149
109
128
105
121
120
117
137
122
131
144
135
131
105
133
134
140
110
118
117
117
129
122
107
121
146
129
106
131
109
112
105
149
115
118
103
121
132
112
139
144
142
141
103
116
133
119
126
125
120
147
128
110
139
101
121
144
140
126
127
148
135
102
106
108
144
140
134
105
128
142
117
124
117
103
116
116
111
123
111
136
126
119
146
137
103
130
103
100
112
103
119
107
103
145
137
148
146
112
127
106
143
122
132
136
137
119
113
140
129
118
144
145
116
122
118
102
102
123
118
108
104
112
141
129
127
140
115
101
125
107
144
105
131
113
114
121
118
118
108
142
129
103
133
145
115
142
114
135
144
117
116
119
122
106
102
118
147
141
110
140
118
113
124
148
127
132
106
141
126
119
108
134
118
117
107
127
136
110
105
107
116
117
125
135
111
138
137
139
105
101
133
133
139
102
150
132
150
123
120
100
123
144
134
133
109
100
118
100
124
136
114
100
135
141
103
145
114
150
113
112
125
104
135
103
136
114
134
121
136
143
147
135
138
132
130
143
122
111
121
116
128
133
149
115
141
144
108
119
130
116
142
148
102
111
134
129
122
147
100
136
111
120
130
132
109
139
115
113
147
106
106
135
117
111
125
121
125
141
111
101
144
105
147
150
141
104
119
121
139
115
143
137
116
119
100
103
121
106
114
130
131
146
135
122
149
144
116
108
146
103
142
101
110
103
131
119
105
115
147
115
142
112
109
145
150
149
116
148
126
137
124
124
141
125
143
131
127
113
141
144
123
110
110
117
120
121
134
102
132
125
108
112
104
115
137
144
143
107
116
136
127
144
146
120
115
123
125
129
142
145
120
111
115
143
112
131
126
114
106
137
135
129
107
146
106
146
124
127
135
134
125
143
116
129
103
100
112
105
115
121
128
135
146
131
108
113
129
102
135
101
125
144
100
135
146
137
121
124
103
130
104
119
107
120
141
116
113
112
115
111
120
148
141
142
116
112
135
138
115
102
145
105
130
142
123
144
136
119
139
101
138
118
138
135
138
144
137
101
132
106
142
130
125
127
119
130
104
134
142
139
103
128
133
134
123
133
150
128
100
103
107
115
149
121
115
141
123
150
128
120
121
132
116
110
132
132
103
146
147
131
110
118
101
112
141
138
113
130
125
113
147
106
147
112
133
148
122
132
122
148
127
102
114
124
125
102
108
150
141
143
121
140
144
112
126
144
122
112
102
145
118
125
107
104
115
107
108
143
116
150
129
126
150
115
135
108
101
141
128
121
130
118
134
125
136
115
131
105
125
118
112
100
141
142
121
120
107
130
147
126
124
148
142
100
131
148
128
122
103
101
150
113
143
129
148
105
111
107
102
148
141
124
132
140
132
131
141
132
111
150
129
124
100
141
113
108
150
135
131
114
113
107
126
145
138
110
103
145
136
139
137
145
142
147
128
137
135
133
128
150
130
103
127
109
130
131
140
126
109
146
124
109
105
133
112
128
134
125
127
116
137
148
120
109
128
135
102
138
130
149
142
128
149
140
120
132
125
125
103
102
134
135
101
106
144
123
123
146
115
144
122
103
136
148
113
146
143
149
115
148
147
142
103
130
145
143
143
128
141
123
108
115
127
140
116
122
138
119
116
115
121
107
111
130
113
102
112
136
123
113
145
114
148
123
147
119
108
126
117
108
129
123
113
145
138
127
147
125
108
128
103
133
130
113
105
118
146
136
141
128
140
136
150
133
125
113
116
111
135
129
118
135
117
119
139
145
142
127
118
131
140
139
105
108
117
118
125
131
138
130
114
100
126
129
114
145
135
114
106
123
105
134
149
138
125
126
146
134
104
132
112
122
105
135
135
110
102
104
119
145
142
138
116
123
120
120
118
137
123
148
104
134
112
137
112
118
101
140
131
102
112
105
141
118
140
105
110
144
113
121
114
104
105
110
118
149
142
140
144
138
147
135
107
144
148
108
112
106
106
122
128
147
129
120
121
128
114
106
136
116
148
137
120
103
140
106
113
131
113
145
100
129
147
121
133
116
135
140
139
120
130
102
148
142
103
110
150
102
119
117
108
116
108
136
125
129
126
122
113
141
142
102
123
138
103
108
122
122
125
102
130
150
134
125
147
136
150
142
100
113
127
138
106
146
110
138
101
103
118
126
147
138
138
105
150
115
137
140
115
115
143
141
128
134
140
139
114
145
145
148
119
144
103
124
146
143
111
127
138
117
130
142
105
115
150
120
109
125
119
139
116
112
109
104
133
149
124
135
130
134
142
122
119
142
135
100
114
145
119
129
145
131
142
107
126
120
111
119
133
136
129
101
129
100
120
139
144
133
143
148
120
146
134
139
100
140
123
115
106
125
136
131
137
143
125
107
119
101
148
120
146
104
144
143
140
125
104
117
134
147
120
106
114
109
134
124
111
148
139
103
109
127
139
140
120
108
104
137
130
141
132
137
148
137
150
140
110
106
113
126
128
129
149
101
117
150
102
100
146
118
108
101
108
125
118
110
129
143
133
105
103
141
114
135
133
142
136
146
150
114
132
122
147
126
148
148
135
138
116
141
148
125
106
135
149
128
133
147
114
124
148
105
121
116
102
121
130
105
140
112
149
141
127
115
100
146
147
111
116
142
106
119
107
137
113
134
120
115
141
135
129
109
142
143
150
137
122
142
136
115
139
130
111
107
122
146
121
141
100
144
118
118
148
115
116
118
144
131
144
106
125
105
131
103
126
101
109
109
124
146
109
131
134
139
149
149
144
145
150
135
118
119
122
100
133
144
102
119
104
126
128
145
147
102
138
106
150
102
131
138
116
112
119
119
115
124
128
105
110
108
129
105
105
103
145
106
100
145
114
123
138
129
106
140
137
105
110
121
150
148
127
149
129
137
122
149
100
134
105
111
115
126
139
110
107
131
141
142
126
105
124
145
142
117
118
150
123
110
139
116
104
101
134
130
121
106
141
119
136
105
110
123
115
134
103
117
143
142
111
146
134
115
137
112
113
124
103
138
145
109
123
141
133
107
135
111
118
116
106
143
133
119
138
118
127
110
111
131
122
142
129
140
107
114
116
118
106
145
149
104
123
109
119
124
115
129
113
128
129
140
148
123
129
104
122
131
149
131
145
126
127
131
136
108
115
145
134
130
145
139
137
122
117
122
144
109
147
136
105
106
103
118
134
126
125
127
147
108
109
115
137
144
112
104
113
140
110
141
100
148
119
105
148
127
145
141
150
106
125
148
106
129
101
141
108
101
105
123
101
131
130
119
145
100
117
135
124
120
141
125
109
125
146
138
146
106
108
143
108
141
110
146
139
121
105
101
137
101
102
150
106
104
103
112
122
133
136
123
102
142
144
107
137
126
130
111
120
136
135
127
143
121
135
118
130
121
141
124
149
142
120
123
104
110
110
144
129
135
132
139
140
135
118
133
113
133
142
135
114
137
150
148
132
146
103
123
116
117
137
133
125
112
108
126
149
135
112
114
101
148
126
131
115
145
109
132
140
125
123
134
115
116
132
142
150
108
113
135
103
121
127
119
119
133
111
130
134
102
149
140
148
148
146
142
107
148
146
130
136
100
128
149
115
109
114
150
123
121
122
132
149
109
136
130
107
135
148
134
150
139
134
123
134
112
119
148
138
122
132
150
150
134
100
106
118
122
108
122
125
149
113
142
108
146
107
125
118
106
144
142
144
135
120
140
148
106
143
135
125
130
110
140
130
126
128
119
105
149
145
126
137
148
147
113
143
103
113
108
116
142
138
136
138
122
148
132
127
121
107
114
106
103
112
145
109
119
141
100
147
128
124
119
140
119
115
103
128
113
115
127
120
133
143
139
110
148
137
119
108
111
128
102
127
136
130
135
145
125
107
129
133
109
102
110
109
122
119
130
114
114
123
141
117
110
136
135
118
100
105
110
126
109
132
123
107
138
115
120
101
127
149
115
114
110
134
147
135
120
102
133
116
128
127
117
142
128
148
102
146
102
139
143
125
108
146
106
130
146
138
147
113
131
101
130
116
150
131
107
118
109
145
104
110
112
118
114
124
146
106
108
111
141
137
141
150
107
148
132
147
110
118
108
139
126
103
143
142
123
126
101
116
121
124
127
124
113
116
119
103
110
131
121
107
144
150
125
126
110
118
134
112
130
133
123
146
120
145
123
143
113
150
126
101
113
105
150
119
127
115
124
142
129
135
122
145
145
127
120
113
126
150
108
107
120
134
125
111
102
119
146
124
110
117
144
127
113
105
106
109
117
145
150
109
117
118
118
126
142
137
112
127
145
133
139
147
116
137
119
105
107
125
132
136
117
124
129
140
144
127
143
101
112
110
120
144
148
104
135
129
125
128
108
132
129
132
135
139
133
116
102
113
137
103
107
132
142
131
131
126
127
147
111
147
129
135
129
143
105
114
115
149
116
127
132
132
117
125
100
118
108
125
146
114
130
107
114
109
124
124
106
104
123
101
145
133
113
127
145
132
113
102
144
110
129
107
113
101
120
122
134
149
150
128
147
129
138
134
101
145
147
128
112
149
123
123
106
150
145
121
130
115
101
140
101
128
145
125
135
147
119
141
109
119
117
118
118
116
100
131
120
105
139
107
105
104
146
120
114
104
108
125
109
100
150
130
124
108
103
117
134
118
109
104
143
100
143
107
115
148
104
129
127
138
104
149
121
149
118
142
140
148
100
134
103
146
135
146
112
114
118
121
106
147
102
137
135
127
119
133
100
121
113
110
149
132
147
138
101
127
114
132
136
124
149
109
142
131
126
149
121
111
123
106
128
146
116
116
123
100
112
117
133
137
128
133
135
104
119
104
137
146
114
136
133
146
149
115
111
119
135
108
132
145
143
125
101
130
128
134
118
115
144
108
135
105
102
147
113
139
120
131
135
137
138
111
147
131
111
150
111
143
105
102
146
121
102
129
113
144
138
106
145
104
140
131
132
120
136
130
112
124
119
132
140
129
139
130
125
108
103
111
142
138
125
110
136
149
131
102
140
116
124
125
111
115
128
143
149
142
112
148
111
118
118
139
115
113
141
136
105
135
146
130
128
126
138
124
128
135
131
112
132
104
126
125
140
115
127
146
133
111
106
136
112
105
150
126
129
119
133
122
108
133
103
131
101
130
124
120
132
133
112
125
100
139
126
121
103
117
137
108
126
139
122
123
129
142
110
134
133
136
111
136
103
139
146
125
111
136
129
149
130
108
124
112
139
113
136
114
120
104
139
121
118
132
131
104
103
113
107
100
121
135
108
110
129
124
101
123
125
121
111
113
114
145
145
125
135
139
145
115
146
121
127
100
147
134
145
138
146
126
135
150
141
102
100
136
123
147
130
145
103
130
141
133
133
122
149
113
118
150
140
110
139
120
101
137
130
104
108
105
141
120
116
115
105
112
147
142
132
130
104
145
148
131
113
110
141
141
105
127
122
107
146
119
144
145
112
115
150
147
149
101
104
106
134
130
126
108
113
118
136
147
102
145
142
128
119
124
115
105
104
121
119
111
120
126
108
123
115
123
129
136
100
140
119
104
108
143
101
138
117
122
108
101
104
133
131
129
127
116
124
143
140
114
115
124
126
119
116
116
109
137
130
127
116
106
128
111
104
133
114
105
141
149
119
102
148
103
117
140
115
123
125
118
143
101
133
124
115
138
113
107
108
119
105
148
138
135
140
133
131
113
130
134
115
102
121
143
136
130
149
120
100
117
104
118
147
125
144
142
133
117
103
120
142
150
121
104
122
102
122
129
142
120
100
132
117
131
100
105
122
130
108
132
120
141
146
134
135
111
136
107
150
128
116
150
140
126
122
147
110
146
124
148
138
116
104
148
115
133
142
106
115
118
144
136
117
103
118
123
111
106
113
102
110
129
110
100
101
142
126
121
138
127
137
144
103
120
109
143
134
144
105
150
143
121
150
146
147
146
133
138
103
149
111
121
147
140
113
113
143
150
144
139
136
138
114
111
114
106
144
125
128
125
113
105
135
109
111
109
134
141
135
120
123
101
148
138
120
111
106
145
133
103
107
142
144
113
128
108
118
129
146
101
137
135
112
120
142
134
130
101
137
111
142
145
150
118
128
140
115
104
127
112
107
138
140
119
117
150
130
108
133
122
150
141
105
127
100
127
116
141
111
134
108
143
120
130
125
109
101
127
102
123
125
147
140
117
113
100
146
135
130
126
131
140
141
147
109
142
146
136
111
132
125
132
145
149
126
112
149
129
143
116
128
132
148
129
122
140
123
145
145
137
102
100
132
125
103
107
121
124
138
125
141
129
140
140
122
112
150
119
125
109
118
131
112
119
107
109
129
146
127
148
125
101
133
136
106
101
111
146
123
148
137
118
102
142
101
145
110
139
102
116
121
135
150
144
126
104
110
115
111
106
120
108
140
102
120
141
140
108
112
144
132
121
146
150
117
126
132
146
122
150
120
136
149
119
129
136
119
140
111
116
126
130
130
112
115
139
141
122
109
115
100
122
131
118
107
101
104
137
145
117
131
109
111
106
104
149
148
128
150
150
104
124
142
135
120
109
124
100
149
143
117
123
139
146
146
106
113
127
150
136
117
129
105
104
145
130
138
119
142
130
130
146
116
148
114
119
115
129
146
101
110
118
141
102
143
103
144
120
118
141
104
140
122
126
122
100
148
145
146
129
140
114
109
127
111
143
126
128
133
127
122
124
117
104
113
146
136
142
125
124
101
100
138
111
139
130
146
150
127
111
126
103
108
106
120
102
149
136
130
131
137
147
101
136
148
112
114
141
121
128
127
121
135
102
109
134
149
129
130
127
131
116
107
146
121
121
108
135
125
115
133
109
126
138
120
130
150
120
101
149
141
129
109
124
143
123
142
128
119
138
145
144
147
125
138
119
102
100
127
145
145
150
145
144
111
115
102
107
139
123
150
120
116
134
114
114
147
116
110
128
113
127
147
139
121
142
120
131
119
107
121
136
128
119
110
140
141
150
102
109
110
112
120
100
117
110
115
150
101
112
112
148
139
136
118
119
140
123
134
124
122
135
141
122
117
135
146
113
127
126
131
149
127
125
106
136
131
104
143
109
117
100
125
113
101
140
140
136
107
112
107
138
112
142
103
102
125
138
108
147
150
102
128
100
102
103
121
124
144
125
140
121
116
105
141
104
120
122
113
127
105
132
147
143
103
119
132
131
103
134
101
139
113
142
120
130
108
142
104
140
149
146
104
102
111
128
122
111
147
126
133
148
132
101
119
126
110
128
138
125
107
135
110
128
131
146
102
149
149
145
146
112
140
120
126
111
115
100
111
102
143
139
101
145
143
103
111
136
112
126
110
147
122
118
115
134
134
102
120
114
147
101
133
142
119
112
121
141
139
138
120
114
100
123
144
112
119
108
123
129
138
145
127
100
145
111
122
115
135
123
112
100
129
118
142
119
113
116
128
118
103
148
135
143
108
113
139
104
122
101
140
119
122
108
138
119
129
116
119
102
117
135
123
114
133
118
135
121
109
106
131
115
117
110
110
128
107
106
128
114
135
100
126
107
146
104
125
127
143
114
140
122
102
139
144
135
119
101
147
119
107
120
140
102
115
128
106
105
127
145
145
114
131
115
112
142
113
116
146
112
112
136
114
112
142
125
115
120
140
139
106
122
119
136
101
109
102
100
108
121
135
138
105
125
100
104
148
103
139
130
127
100
119
137
124
116
115
127
148
141
147
113
115
105
103
102
121
149
105
138
111
120
115
105
120
125
140
103
144
123
145
143
117
139
146
129
138
140
100
114
120
129
109
111
144
149
128
125
102
127
114
117
145
101
106
139
142
130
119
108
110
128
124
129
130
103
148
134
133
127
127
135
118
132
139
113
126
136
108
122
113
114
101
149
116
105
120
147
122
107
131
150
134
114
137
111
113
145
134
103
102
138
150
110
134
121
102
139
107
144
116
114
109
108
102
119
130
139
100
128
134
109
105
112
150
131
119
126
106
136
100
141
109
111
101
103
130
119
116
108
136
100
145
112
108
102
101
107
135
124
131
107
141
142
123
118
148
126
104
105
118
122
104
145
109
127
108
125
127
125
128
117
124
103
130
130
109
117
139
114
150
143
113
109
110
127
115
116
135
124
148
107
140
137
127
145
124
118
134
134
149
133
131
143
147
126
125
127
122
123
106
107
112
116
138
109
107
128
123
146
149
126
106
143
102
108
121
119
125
141
100
112
130
101
119
148
143
120
136
100
147
121
145
109
102
100
129
141
150
118
141
142
126
115
105
115
105
137
108
145
101
123
145
110
126
135
117
113
109
126
129
132
148
133
117
124
123
141
110
129
113
133
129
136
150
150
138
119
103
114
138
135
102
129
137
124
132
101
105
114
102
149
149
132
114
137
116
127
103
147
115
136
142
145
134
126
103
119
138
148
110
137
100
137
100
122
143
131
107
129
148
100
124
129
116
139
147
104
103
103
124
119
142
126
108
146
144
137
104
145
145
121
133
135
124
108
149
144
121
141
137
111
105
104
146
144
102
118
134
105
119
143
104
134
130
149
150
150
133
128
136
124
128
147
149
123
126
109
102
135
112
111
109
130
116
121
121
105
115
113
119
101
104
132
131
115
137
134
149
109
149
147
143
112
125
106
140
115
123
103
103
133
146
134
130
121
102
105
126
145
135
126
142
144
129
135
144
145
104
113
103
117
121
119
122
147
135
109
149
110
100
115
107
138
103
129
111
116
138
116
137
137
103
142
120
143
117
139
142
116
124
123
111
110
126
137
104
114
107
150
130
146
128
121
104
112
131
107
110
132
133
134
106
111
100
143
126
110
129
141
149
145
118
111
101
144
150
120
150
109
137
140
111
116
146
130
127
119
110
150
102
117
117
100
103
110
149
131
126
135
109
127
124
149
103
126
137
128
114
138
111
131
118
118
143
116
146
147
147
114
141
100
126
143
146
141
133
105
140
125
150
119
145
115
150
107
138
128
117
111
100
105
147
128
141
145
104
120
120
114
126
139
100
120
107
142
129
131
131
120
132
135
140
124
141
113
121
100
120
144
122
137
101
148
112
101
119
124
109
130
131
150
132
132
102
119
116
139
128
114
149
142
107
108
104
139
104
121
116
111
131
106
109
141
101
130
104
134
108
121
107
150
146
106
100
137
106
112
146
106
108
146
144
122
133
115
110
119
145
122
109
122
102
128
126
137
141
112
118
123
109
143
141
140
148
150
145
102
111
124
140
116
129
136
143
150
103
118
142
101
108
134
141
145
147
141
148
111
100
116
117
147
102
147
117
100
107
146
102
130
117
111
118
109
141
146
145
127
106
136
109
124
133
113
111
138
118
103
132
148
125
117
132
101
106
146
148
146
110
148
141
135
144
147
125
137
119
127
136
138
135
117
118
135
104
114
132
143
109
115
130
147
139
149
111
103
105
100
110
111
111
133
140
137
126
135
109
109
136
143
141
119
131
132
112
107
141
116
142
128
131
140
132
104
149
106
100
109
133
112
142
125
130
108
138
135
141
143
108
115
132
115
147
123
111
102
111
105
145
148
110
104
147
112
120
142
121
120
132
150
148
113
105
146
145
139
105
112
119
140
105
120
136
136
116
135
149
117
109
117
143
115
109
112
117
127
108
133
116
114
107
107
135
124
120
118
148
126
131
146
111
123
126
131
108
145
102
130
127
143
126
146
143
110
145
145
135
145
110
119
147
142
128
108
140
105
140
104
104
126
112
107
105
131
139
103
150
115
102
115
109
117
121
113
114
121
100
115
131
120
103
113
115
116
130
110
132
109
126
144
119
147
128
109
136
140
115
131
122
131
150
103
108
112
129
129
126
117
102
124
148
117
112
144
113
149
128
100
115
149
126
121
114
116
146
117
116
126
141
142
121
100
110
126
111
137
132
119
132
148
116
132
113
124
138
115
138
149
131
117
121
110
122
143
105
146
107
140
123
107
119
105
144
130
101
103
135
141
136
137
103
102
105
132
111
123
137
134
118
148
116
105
103
140
132
110
115
135
106
129
128
128
146
124
128
140
106
125
112
131
135
120
144
146
143
117
119
120
144
123
118
105
141
148
140
101
112
111
147
137
132
105
123
125
145
103
148
136
137
123
130
131
112
122
125
130
141
133
140
147
120
121
146
136
114
149
125
101
102
128
100
108
142
104
121
130
116
110
140
103
121
115
134
115
128
124
144
139
108
126
111
123
143
111
115
113
144
104
137
131
130
110
143
113
121
137
134
111
133
118
143
131
138
100
142
102
124
134
144
108
124
142
105
121
145
147
130
138
148
118
134
140
129
130
135
118
140
121
138
148
148
125
125
122
127
150
135
118
127
146
144
147
109
127
127
138
122
131
111
139
126
123
117
146
122
129
139
118
132
116
147
114
136
116
140
100
116
146
142
119
144
121
133
117
105
102
105
117
149
128
133
114
116
140
127
140
108
143
136
148
141
138
133
135
140
132
123
146
132
123
105
128
145
140
134
136
102
123
108
131
120
148
135
130
118
149
126
144
147
107
117
100
114
105
107
134
115
138
142
120
147
119
100
140
123
126
139
110
117
123
102
114
137
129
139
124
102
135
119
129
147
116
125
111
116
123
144
110
109
143
141
138
107
116
145
113
117
134
129
124
127
126
107
127
144
138
119
138
105
119
135
118
123
117
147
145
132
144
111
116
110
107
131
107
107
118
121
121
133
141
136
126
116
147
124
126
129
130
127
135
117
131
118
114
109
127
148
119
149
111
126
129
100
106
109
105
137
126
124
128
120
105
109
150
126
148
104
139
137
146
141
144
133
106
136
143
115
118
108
114
128
113
119
119
124
105
115
121
147
141
122
143
143
140
109
131
120
123
119
112
128
111
126
117
128
135
137
104
139
144
116
144
122
141
112
122
111
132
147
127
126
141
130
146
135
134
124
136
137
130
148
103
139
136
138
113
113
143
112
103
145
105
113
124
111
128
141
112
128
107
132
123
110
118
117
126
133
133
134
139
135
120
113
112
136
142
146
138
124
126
128
137
108
120
109
122
138
150
134
137
111
106
121
114
149
136
108
105
148
104
105
124
123
102
112
101
142
139
137
116
106
142
127
119
137
123
113
116
132
104
142
110
142
148
127
147
120
106
105
104
106
122
138
121
109
101
111
146
132
117
149
125
117
119
112
114
139
119
108
135
113
150
120
130
113
108
132
137
140
143
121
102
135
125
102
147
126
145
126
129
131
146
133
123
143
112
150
144
147
149
125
144
129
146
136
137
140
100
100
115
145
111
114
122
137
101
142
140
117
125
136
133
101
117
142
145
131
121
125
139
108
123
107
120
145
109
106
101
123
124
133
120
102
123
132
148
118
149
134
104
136
138
117
124
109
110
128
150
147
149
110
115
114
102
143
138
150
122
107
137
122
146
149
123
139
115
101
140
122
102
118
111
106
118
137
114
103
104
136
101
135
104
103
142
106
118
115
140
112
118
146
100
124
110
126
124
117
130
144
127
115
148
112
147
104
111
126
138
100
131
105
125
139
150
141
100
131
137
109
133
128
113
114
111
116
118
117
147
118
118
114
128
115
121
110
137
143
106
106
126
135
140
101
129
119
129
102
101
106
141
121
134
105
129
125
118
143
126
149
111
134
143
130
144
109
147
129
134
105
133
114
115
107
124
123
150
104
100
108
107
111
109
148
110
142
135
119
140
102
139
135
107
120
150
123
133
145
109
106
150
114
149
115
130
133
100
112
107
147
101
114
138
135
127
113
145
143
136
149
107
142
110
150
113
144
117
104
137
109
141
123
117
133
113
118
126
104
110
150
144
105
133
104
138
139
135
100
116
110
110
114
100
102
147
130
122
143
147
123
128
107
116
124
106
119
131
112
137
109
105
144
111
136
110
144
142
131
144
138
109
131
131
109
140
123
101
121
108
133
135
115
141
106
138
121
123
128
116
142
119
111
125
129
124
133
134
136
140
103
148
115
147
106
114
133
109
121
145
122
105
109
131
129
148
147
133
141
101
135
144
134
140
109
144
146
139
101
119
123
129
125
128
142
104
129
115
109
135
115
128
106
125
121
133
104
144
123
136
149
131
131
122
148
130
143
123
118
138
137
125
124
148
137
119
124
149
146
133
110
122
122
145
105
106
150
118
110
100
138
105
148
139
138
110
137
103
135
114
112
127
100
145
124
139
139
130
105
116
137
121
101
131
106
111
123
136
124
100
110
128
138
108
107
143
131
121
140
126
146
145
124
101
137
138
113
100
135
122
115
144
111
137
142
114
133
148
150
147
101
114
132
136
129
137
140
140
111
146
114
112
114
118
142
140
133
110
101
147
149
113
146
149
126
137
138
108
120
122
135
117
126
116
120
119
109
115
121
119
101
150
142
105
118
139
122
124
143
148
130
114
110
118
107
142
125
140
121
149
103
104
148
145
131
137
144
100
110
139
102
103
126
103
125
116
142
134
134
122
104
134
102
122
127
114
130
137
119
114
104
108
115
122
128
139
141
105
107
141
148
128
128
118
132
135
139
101
102
139
133
129
101
115
126
114
120
114
125
102
144
104
116
110
101
107
106
148
149
119
139
141
120
122
123
119
116
100
118
144
110
122
146
101
138
123
118
135
114
100
125
115
127
132
133
131
143
127
104
105
139
118
118
125
125
128
112
114
135
125
123
117
114
123
130
143
105
132
108
144
132
101
112
108
136
136
119
143
113
115
125
107
108
148
101
145
148
109
134
122
123
119
147
117
106
138
103
125
146
101
129
123
126
143
120
141
141
139
142
114
114
118
121
106
114
125
103
150
132
141
111
101
110
147
119
119
131
104
148
133
150
100
137
138
149
131
100
118
144
126
135
119
118
127
130
134
141
103
132
134
108
116
138
116
148
121
134
117
136
100
114
103
106
108
150
109
111
141
136
101
136
104
117
139
148
140
114
129
115
130
137
116
103
101
131
148
141
120
143
111
101
128
136
104
131
117
143
117
101
114
127
100
119
114
142
141
130
127
113
107
121
133
104
141
106
145
139
139
115
139
149
139
132
142
143
110
100
145
106
110
118
103
113
101
101
129
115
127
138
144
105
112
115
126
111
104
134
125
146
113
143
128
118
116
127
119
124
124
143
114
117
124
138
110
148
101
103
140
146
116
139
140
104
112
132
110
104
117
142
135
129
101
141
101
111
127
143
137
111
110
125
135
119
112
122
113
108
131
101
106
100
105
122
107
139
100
126
129
148
129
146
106
146
116
126
149
142
107
132
149
140
108
106
105
140
104
110
143
114
137
123
138
127
130
131
138
148
121
120
140
103
146
145
141
135
112
108
117
149
135
124
118
139
150
110
133
146
121
125
119
146
142
148
113
116
145
142
137
149
111
115
139
146
132
135
133
103
114
105
132
143
103
130
121
107
110
109
116
108
103
117
116
149
124
102
114
103
105
101
144
133
136
147
102
125
109
113
121
138
133
139
103
121
122
142
115
105
143
105
148
127
122
144
110
148
150
146
116
109
103
113
146
130
125
103
110
114
133
107
118
108
130
122
119
108
120
109
119
111
139
123
112
149
115
110
127
136
141
104
141
147
110
133
136
116
135
108
130
115
119
139
104
135
137
112
110
113
134
128
109
150
101
103
111
136
143
126
129
101
128
126
127
137
113
131
146
126
112
141
133
131
106
115
104
116
123
149
115
130
146
135
108
102
142
127
150
135
138
146
145
107
139
103
125
101
108
120
146
135
126
103
105
141
149
106
111
148
101
132
147
117
105
142
135
147
114
114
118
141
130
149
150
129
145
113
138
102
106
124
119
134
140
147
133
106
116
147
133
101
103
141
136
143
102
124
146
145
132
139
113
112
135
129
102
124
141
136
122
117
150
138
130
136
110
106
105
128
140
101
113
144
135
143
126
121
197
189
162
193
150
187
197
173
159
176
158
149
175
150
170
185
171
150
143
189
184
176
191
155
145
140
176
173
175
155
142
182
146
183
155
186
162
148
147
199
166
142
193
148
156
154
179
199
195
164
184
151
150
163
170
173
155
175
200
191
151
171
188
200
200
167
189
160
163
178
153
149
176
156
198
198
173
156
168
180
168
191
171
196
146
162
172
157
163
190
154
169
141
200
160
189
163
148
174
164
190
146
197
199
155
153
153
197
195
193
165
174
154
154
188
152
157
192
158
176
192
163
167
174
185
162
142
163
194
175
182
158
194
186
173
184
176
193
159
148
142
140
146
167
140
154
146
162
176
167
146
199
193
181
186
177
187
186
176
180
182
151
193
188
186
177
195
156
176
175
162
140
198
161
180
157
162
176
146
183
145
198
197
167
151
186
175
157
146
192
190
199
185
152
188
187
199
193
196
154
198
167
180
140
172
146
186
154
140
170
153
142
191
143
151
188
198
194
180
145
167
183
172
185
196
200
185
160
188
163
179
172
143
184
156
148
193
179
140
193
173
172
155
192
198
140
158
141
191
178
141
143
169
178
191
162
153
141
142
184
168
177
195
150
149
166
151
168
161
191
152
159
182
170
197
140
173
151
173
160
196
181
154
145
178
198
180
192
170
194
167
179
170
161
167
158
186
195
166
149
173
199
163
164
162
147
171
161
173
192
193
143
144
195
174
159
179
173
177
182
156
184
169
173
193
162
181
179
184
175
154
191
170
166
196
189
194
169
189
163
172
171
182
198
145
168
184
169
189
142
151
179
160
142
171
156
171
199
184
188
144
172
186
173
168
153
181
148
194
152
191
166
191
164
185
194
147
189
162
189
200
167
140
164
146
188
143
158
152
186
166
166
151
172
160
185
162
197
143
158
191
191
189
166
142
140
141
175
152
147
196
153
165
147
177
181
146
183
176
141
195
190
171
196
189
179
180
142
191
170
174
171
193
173
161
156
140
155
184
184
189
169
185
148
199
171
171
176
188
145
177
145
142
173
170
152
168
173
166
198
175
187
171
174
150
198
162
153
173
196
156
156
172
157
147
148
171
175
163
140
199
183
174
195
163
183
140
193
182
151
183
169
172
177
154
199
147
181
155
142
153
198
162
151
198
179
176
188
185
141
182
189
155
168
166
160
169
143
187
171
183
151
200
169
187
186
143
154
186
191
164
199
142
165
195
150
161
193
177
142
196
141
172
155
145
179
177
162
166
163
143
161
182
184
190
147
146
163
164
141
165
146
158
151
158
194
160
192
200
146
196
183
200
193
188
160
140
161
162
154
152
141
183
143
184
141
157
146
167
167
156
161
194
194
199
184
145
167
170
145
197
140
185
181
197
140
174
141
159
170
168
151
176
181
176
143
166
172
190
182
196
167
190
199
197
145
189
173
146
174
151
185
165
155
160
153
168
153
195
194
143
176
168
196
156
199
190
180
194
156
152
184
175
154
176
159
200
190
185
170
144
163
140
165
142
182
170
194
174
199
193
147
168
183
152
181
184
149
154
194
174
162
178
173
146
155
170
145
160
193
143
183
180
158
192
181
159
190
176
176
181
142
182
152
175
182
200
199
161
160
179
163
169
176
194
186
187
182
180
153
182
145
162
194
195
143
155
173
140
199
164
160
195
143
177
199
159
195
185
184
154
157
175
170
153
185
198
189
183
145
142
160
140
168
156
200
186
171
170
199
190
149
154
140
176
186
171
166
196
196
144
170
163
172
162
183
171
176
167
175
168
186
191
190
179
140
200
177
179
159
153
140
150
155
152
196
185
195
157
185
185
199
162
193
152
144
140
164
153
163
167
179
174
140
185
159
149
188
145
199
149
180
184
181
189
144
196
154
155
188
149
192
157
164
181
190
192
154
174
179
154
187
164
187
165
193
191
196
187
151
190
190
151
196
169
187
198
176
186
164
189
177
171
190
183
178
168
162
188
157
193
178
182
173
154
142
173
183
163
160
153
177
175
160
193
157
178
158
145
154
142
166
171
156
197
160
179
154
165
163
180
166
199
187
141
193
176
184
194
158
164
165
188
171
160
172
179
153
168
170
155
149
178
189
152
166
171
199
165
179
144
163
153
143
150
190
157
191
153
167
164
188
200
152
189
178
177
162
194
140
147
144
153
189
160
187
178
167
170
190
169
188
164
170
140
178
159
169
177
199
176
194
193
159
172
173
172
186
140
158
153
146
143
182
179
156
141
140
140
187
148
187
158
167
157
189
154
200
199
192
178
148
179
169
198
158
171
144
151
163
192
193
199
180
186
182
188
198
153
172
197
167
197
147
181
176
198
162
168
145
190
191
145
191
177
146
173
164
163
197
179
164
175
165
170
178
173
141
185
144
170
151
162
194
148
186
154
154
150
187
156
200
196
194
178
169
154
163
144
149
196
180
148
157
156
188
173
152
149
175
152
170
174
166
179
184
169
145
158
176
179
175
143
184
154
200
162
190
194
155
164
171
176
140
181
159
184
172
167
198
172
174
151
167
192
169
155
193
154
196
160
172
142
149
176
151
189
143
143
153
198
197
183
182
179
191
167
176
200
193
176
195
185
167
189
160
197
191
155
193
178
172
169
155
199
156
196
180
164
145
191
160
170
159
184
154
141
192
197
182
154
141
173
191
187
191
156
184
174
157
171
165
165
182
167
169
153
154
177
187
196
170
178
177
199
188
198
146
190
185
199
173
197
167
166
149
160
187
189
153
161
148
166
197
195
171
144
186
161
184
182
199
142
172
198
195
199
147
174
148
143
182
174
172
187
172
197
193
200
163
194
179
142
142
183
177
141
181
186
156
177
159
144
151
176
145
182
150
169
163
144
190
179
181
189
147
178
147
183
185
193
166
165
144
179
193
180
158
141
146
183
194
181
167
149
155
168
193
144
163
199
162
166
188
174
193
157
179
147
158
167
190
195
181
144
141
140
167
149
199
144
167
155
168
154
153
158
173
192
166
166
153
189
161
169
145
172
142
175
162
181
161
142
177
184
194
181
187
153
148
182
140
170
180
169
176
173
181
165
158
167
148
185
145
191
162
159
150
195
143
175
150
186
187
179
182
191
178
195
181
172
158
179
143
150
164
171
169
193
194
166
142
178
170
159
146
140
168
144
169
183
149
176
142
190
167
141
159
185
198
182
171
150
182
176
179
141
181
189
173
187
171
184
186
187
188
181
149
163
144
140
187
143
167
162
173
158
194
154
160
199
173
150
144
175
182
169
171
145
167
200
185
174
200
176
167
171
190
165
198
142
193
183
151
148
161
199
197
161
192
145
172
167
143
162
178
160
167
143
176
190
146
146
189
165
170
180
199
149
143
151
169
162
194
166
194
185
199
161
146
196
185
186
165
182
183
156
169
141
191
163
184
171
197
194
163
161
169
156
168
141
200
197
191
164
149
194
179
150
182
141
174
142
162
157
174
143
143
186
188
160
169
153
140
151
141
195
178
167
181
194
153
193
182
198
147
164
178
143
187
155
163
165
197
189
187
140
141
143
152
188
158
151
161
167
195
177
165
171
157
180
146
159
141
163
188
162
161
166
179
159
199
181
150
151
173
178
155
144
195
184
154
181
143
163
173
154
145
194
147
166
183
189
153
158
190
175
167
166
162
157
163
195
198
189
175
151
172
189
168
196
173
145
176
166
164
195
191
195
182
196
159
194
183
144
153
168
195
177
195
149
140
179
158
156
167
166
157
171
151
188
174
169
191
167
157
149
195
186
145
156
191
170
159
175
151
142
170
191
170
200
195
190
144
200
162
145
158
156
169
163
181
174
179
193
166
145
185
178
167
193
167
157
150
182
195
164
172
195
144
148
140
171
195
190
184
153
149
156
192
155
159
176
194
177
158
170
196
171
167
198
154
158
188
180
177
146
152
170
142
156
173
188
156
182
193
161
174
198
191
200
165
175
175
156
199
159
146
176
200
156
164
165
147
140
167
140
174
140
141
163
186
171
178
155
184
182
198
173
149
166
149
172
151
175
199
140
186
174
172
164
165
156
149
148
179
190
174
196
190
158
188
188
189
199
158
154
185
189
146
154
153
147
144
179
187
169
189
155
192
143
185
170
146
182
145
147
177
175
173
179
158
145
195
171
183
161
193
190
172
167
193
164
159
195
174
185
191
175
169
155
196
190
187
148
141
169
171
167
154
200
147
163
158
147
185
197
150
189
149
176
157
191
188
143
154
149
143
191
199
188
199
144
153
158
169
169
149
147
185
154
185
170
178
174
175
150
194
178
171
146
187
185
147
196
184
195
187
150
194
152
166
169
165
154
164
174
142
181
152
162
186
200
193
163
191
183
150
198
156
167
183
171
195
150
151
154
169
172
153
173
180
183
188
160
178
169
147
157
154
160
176
200
176
196
166
189
143
143
174
143
162
141
169
182
172
174
151
195
200
150
161
199
156
189
193
194
184
150
147
198
148
164
198
183
181
174
144
164
172
183
148
171
162
164
154
181
170
168
177
168
158
145
142
193
152
177
185
145
177
174
175
174
184
176
140
140
178
148
195
177
167
140
186
144
167
161
172
165
157
149
158
143
149
172
160
183
160
148
149
156
173
144
191
174
186
159
143
199
155
158
161
171
150
200
169
185
182
176
188
175
141
190
152
159
188
173
157
186
184
193
196
150
188
154
165
166
186
195
176
161
181
140
145
179
193
147
165
160
188
190
164
198
179
167
198
178
187
188
147
186
175
170
179
190
150
178
161
173
197
177
193
170
197
150
196
145
179
164
148
181
186
196
200
148
155
186
183
145
165
182
152
152
171
186
173
197
181
176
191
169
185
190
155
160
185
194
188
166
188
171
191
189
168
155
154
180
164
150
167
187
151
181
165
146
160
196
182
161
200
187
153
185
194
190
180
169
168
162
142
171
182
150
194
178
187
183
190
174
191
176
177
195
164
146
149
179
154
196
197
140
152
176
160
194
145
151
199
161
155
141
157
173
142
195
179
183
186
140
184
162
199
173
172
152
170
145
198
160
144
153
193
143
163
172
145
143
175
162
159
154
193
200
196
148
160
200
162
181
199
146
144
163
194
186
192
197
140
166
173
146
179
173
196
163
156
153
158
200
190
142
149
180
152
157
154
192
194
162
161
166
187
155
188
185
144
146
188
171
159
180
181
171
167
146
187
154
182
168
156
165
173
184
181
154
168
163
196
171
145
151
150
148
164
151
155
149
189
165
168
180
162
161
156
160
185
191
194
161
174
148
199
186
183
195
190
164
165
189
164
200
149
157
164
141
171
196
176
145
146
162
146
193
184
142
163
151
165
142
152
156
148
181
159
164
176
192
160
158
197
190
167
142
154
141
143
199
152
173
195
160
153
195
154
196
199
140
175
148
165
147
149
192
141
197
199
156
149
177
193
158
196
148
181
157
197
154
186
199
167
186
158
189
142
166
190
158
146
160
199
140
165
175
188
155
175
156
163
197
168
177
192
167
151
191
154
164
146
179
187
146
163
165
173
147
190
151
157
177
169
192
184
151
163
159
143
147
188
195
152
140
154
187
170
183
198
167
175
165
141
145
150
190
173
174
142
147
186
142
173
163
140
164
149
143
179
142
162
197
187
147
188
140
170
144
174
173
162
196
149
157
157
171
171
152
152
144
197
161
142
156
197
162
147
140
177
168
152
140
160
144
177
145
168
177
169
172
156
159
162
192
163
165
173
176
170
141
186
143
185
163
186
198
147
171
192
161
171
158
192
194
175
167
198
180
176
165
170
185
197
191
190
192
171
178
140
154
187
177
194
152
145
150
148
192
143
156
161
148
166
157
146
199
145
151
186
143
167
140
146
196
182
144
190
184
183
146
155
176
141
160
148
146
144
144
177
194
170
180
148
189
159
193
196
171
151
146
200
165
197
166
153
151
153
172
159
158
197
165
160
146
167
153
197
148
172
147
178
181
144
187
168
200
177
170
184
158
165
183
163
146
150
153
176
187
153
144
142
183
166
150
161
190
200
190
161
174
147
197
186
148
179
182
200
168
183
179
180
170
185
156
147
190
185
178
155
148
195
174
177
160
177
200
163
197
145
175
141
150
157
182
180
141
156
150
167
198
149
171
161
186
144
171
176
194
140
169
145
145
180
173
195
163
169
183
184
189
176
153
190
190
180
200
185
165
164
193
150
152
157
168
147
166
187
149
147
197
140
161
177
200
157
142
189
199
145
185
183
172
189
177
145
140
147
170
157
150
187
182
146
192
175
186
163
142
159
161
187
188
156
143
197
185
166
163
140
142
185
161
180
185
184
192
149
151
175
185
154
165
175
162
190
192
164
179
180
149
171
173
200
140
171
187
176
142
196
142
148
171
180
171
165
171
168
185
166
193
175
180
185
140
142
194
149
171
167
159
180
151
173
184
171
163
143
161
195
142
197
167
164
168
177
170
151
176
140
155
153
183
142
147
151
189
175
196
173
147
190
158
152
178
158
187
142
158
145
154
149
198
162
140
144
161
154
150
181
192
193
180
182
150
154
153
195
157
167
178
166
153
159
183
200
174
200
150
144
189
192
179
142
166
183
140
168
179
147
179
189
186
163
188
183
175
155
184
183
178
175
200
140
166
193
197
152
149
199
153
178
181
164
157
146
142
164
180
149
147
166
146
182
178
179
169
194
162
177
162
174
160
146
182
196
186
142
165
155
178
173
144
151
162
173
163
180
191
186
142
169
176
177
186
191
157
149
162
156
184
166
187
169
158
154
175
198
195
152
170
200
153
163
173
163
170
151
149
161
182
198
158
149
174
177
193
151
181
168
155
175
181
177
189
181
157
171
180
197
177
183
174
150
181
166
193
186
186
194
188
157
183
193
182
163
145
172
157
142
161
188
152
194
168
175
160
168
146
185
169
140
146
196
151
178
185
198
145
187
142
197
182
197
177
150
184
196
181
143
173
175
157
150
169
186
153
155
155
188
195
141
168
148
195
164
181
162
182
192
147
167
190
170
149
175
149
197
166
184
160
152
188
196
183
182
160
143
200
164
152
161
156
175
144
180
150
157
169
169
189
198
200
161
165
156
185
167
159
165
174
172
179
192
162
158
182
190
167
143
162
152
164
164
176
186
161
182
191
181
146
144
149
189
167
159
182
162
172
160
193
199
189
142
197
191
193
183
149
144
168
157
142
151
153
155
151
180
161
195
156
198
190
197
152
155
184
165
146
176
159
144
158
165
150
200
193
156
152
198
143
184
184
178
143
174
184
148
163
142
165
166
170
159
198
150
176
187
183
183
164
194
192
165
172
191
160
196
167
144
188
153
188
197
170
150
157
184
151
147
183
196
197
161
140
170
191
187
195
164
152
151
196
164
191
194
180
143
200
177
199
163
148
186
186
187
171
164
151
156
167
158
200
157
178
197
158
149
167
195
190
166
199
176
155
162
192
184
178
148
160
168
157
145
160
144
171
181
168
196
148
145
149
180
164
173
153
188
191
193
190
153
171
176
157
165
158
199
156
140
145
185
166
174
192
172
192
176
168
148
149
192
187
199
143
194
175
158
147
171
191
177
192
140
154
164
175
179
165
195
142
146
188
184
193
161
160
148
172
177
171
153
189
168
148
175
148
165
176
176
199
163
164
193
147
153
146
177
188
183
162
181
166
196
174
149
152
159
175
148
167
174
165
188
176
167
174
165
176
158
141
169
167
175
160
165
195
163
145
194
162
168
147
141
176
165
179
190
172
150
188
174
172
192
177
170
172
189
180
173
185
191
194
152
191
154
192
166
173
163
163
186
154
142
166
186
144
164
171
165
153
150
174
198
175
197
158
156
178
149
198
158
142
164
176
192
197
166
163
159
178
151
189
176
165
182
166
183
167
159
155
172
165
174
141
167
152
183
178
182
167
164
160
168
184
171
141
151
192
174
163
154
182
159
173
200
177
197
190
165
159
148
160
141
196
179
164
193
157
178
197
200
177
147
183
182
173
198
155
157
184
189
171
193
189
167
151
146
163
158
157
183
145
163
192
191
190
178
151
182
150
185
193
186
150
163
191
165
165
200
173
154
192
151
173
142
170
175
179
176
152
161
164
191
176
169
163
148
157
150
140
160
164
164
192
155
178
146
197
192
195
193
157
182
155
167
192
190
192
161
193
144
162
179
165
188
186
200
152
148
163
193
199
167
156
163
173
173
180
191
152
167
179
150
178
172
144
181
170
151
169
143
151
172
172
178
163
150
148
144
191
151
140
156
176
145
142
151
198
158
143
145
191
178
186
182
175
144
150
182
190
153
152
184
164
163
153
181
162
141
150
150
172
159
178
191
171
158
180
192
155
159
195
152
176
199
140
140
176
195
171
147
186
200
159
191
178
145
195
149
144
165
192
182
179
160
165
164
177
168
154
152
158
170
141
187
168
164
144
181
166
192
199
157
184
186
159
153
188
169
151
150
149
196
180
193
197
156
145
192
198
191
157
158
145
200
179
165
185
145
179
140
194
178
181
200
145
151
196
177
141
141
167
185
167
184
197
187
145
154
200
143
192
153
164
166
174
166
185
152
176
161
162
170
177
191
196
183
154
178
195
145
170
169
167
190
187
192
195
167
200
194
142
190
165
176
194
172
172
173
145
167
186
144
184
196
178
165
182
196
158
164
160
175
163
168
185
148
199
199
185
155
142
152
140
179
169
192
187
182
199
189
141
154
182
161
144
146
152
173
172
199
165
149
196
143
141
167
187
165
171
148
159
150
161
180
168
200
172
185
177
169
165
160
163
154
154
172
148
148
166
143
148
189
168
173
176
188
167
196
191
156
149
156
152
156
159
146
146
176
192
171
146
147
182
197
183
147
163
168
194
170
193
151
173
153
190
177
140
156
199
179
190
152
160
168
163
175
170
182
191
167
169
147
200
182
180
170
181
166
167
149
199
172
146
187
166
158
155
160
175
151
141
151
186
187
163
164
196
186
148
175
144
155
187
147
142
149
182
164
199
148
181
184
152
184
165
143
172
155
183
178
158
154
166
179
145
178
180
198
162
140
146
147
141
151
167
186
164
197
172
149
161
159
158
179
147
182
160
179
154
146
166
180
145
187
180
169
183
165
175
162
171
153
164
199
145
193
159
157
186
143
161
163
198
193
170
167
150
169
152
164
186
150
146
151
196
169
160
182
143
143
161
176
174
147
193
164
147
176
177
142
151
174
148
195
144
160
163
166
200
196
174
140
199
163
150
199
171
181
145
145
169
179
186
200
179
175
196
159
195
182
200
184
165
145
146
189
141
156
181
152
168
153
186
194
184
147
199
147
190
186
177
189
143
171
174
160
188
148
198
172
169
161
188
143
149
148
181
145
159
155
154
195
197
165
169
189
176
142
167
193
198
169
193
189
173
176
141
149
166
172
144
167
192
186
172
194
184
183
147
156
161
170
179
157
146
174
143
170
154
177
165
198
147
185
173
146
178
148
197
167
142
171
182
160
159
143
154
199
177
143
147
155
141
175
150
192
194
150
199
146
173
156
169
165
193
144
187
166
178
145
195
176
168
178
193
142
140
142
152
163
166
198
199
155
146
150
162
162
160
179
153
194
187
170
174
160
153
141
147
192
152
144
152
185
176
156
145
195
185
140
164
158
191
183
161
155
159
185
174
182
147
154
185
169
189
176
200
181
159
151
176
142
187
172
167
152
156
183
169
173
165
170
172
186
195
184
154
152
156
161
146
199
167
170
186
162
173
152
147
144
197
188
151
140
176
199
168
188
193
171
176
176
181
195
182
153
151
168
196
193
156
169
183
145
164
180
144
154
140
175
187
140
168
148
161
190
196
190
172
179
153
191
168
163
194
186
172
190
172
190
163
172
178
176
158
168
172
155
160
154
199
182
142
170
176
144
195
200
179
194
193
151
179
193
166
175
178
183
151
196
170
186
199
140
159
147
145
148
149
185
171
150
148
198
192
181
190
155
146
152
194
157
188
184
140
181
152
187
177
168
173
169
166
174
144
195
178
200
151
155
176
174
196
184
185
189
145
167
162
157
191
159
170
180
186
198
173
195
171
198
171
149
169
190
156
142
155
142
163
191
157
191
171
193
177
177
194
146
150
150
196
189
159
174
141
168
154
150
178
179
155
140
186
198
160
141
190
182
156
143
164
152
140
188
200
195
174
169
152
143
173
179
147
165
172
175
180
195
168
169
172
176
193
148
181
187
160
142
142
184
197
151
145
196
155
162
163
195
188
149
157
156
174
186
163
165
172
166
150
162
143
180
194
149
183
152
144
171
148
197
181
200
166
154
173
174
164
189
174
195
178
159
165
146
190
182
195
177
166
188
143
164
165
143
169
193
158
143
175
159
176
167
175
165
173
194
188
162
148
175
173
194
186
184
140
152
173
183
180
192
191
161
155
140
147
195
160
183
169
179
171
148
175
154
143
151
176
198
159
200
173
168
162
180
170
184
177
170
146
170
188
168
173
169
194
196
196
197
163
193
191
171
198
185
187
167
155
185
200
144
140
176
177
162
184
171
180
161
150
149
166
143
142
174
166
197
163
181
194
175
175
158
182
172
194
183
183
157
192
177
184
163
152
158
189
162
175
149
191
188
154
147
195
153
160
165
167
145
200
194
152
191
148
181
176
162
157
192
196
181
144
163
157
178
158
166
178
198
185
188
161
156
165
175
194
181
172
164
145
183
161
171
195
162
169
161
146
155
165
189
147
141
154
148
179
150
156
197
181
183
153
163
155
171
167
200
194
180
164
148
188
194
180
145
161
192
178
170
153
142
200
140
160
195
161
156
181
174
190
188
195
156
171
182
169
173
193
150
151
144
185
151
193
151
185
191
185
195
174
156
160
148
164
191
180
198
146
178
167
191
181
157
167
175
144
140
179
195
145
184
154
159
176
141
163
182
195
149
158
140
177
157
170
166
147
195
166
194
175
155
157
172
147
170
173
171
156
172
145
159
151
175
180
174
185
167
166
186
168
180
164
192
189
150
159
193
197
194
197
160
179
147
165
171
198
172
150
189
172
155
190
144
145
153
176
179
152
163
180
170
155
174
175
155
189
146
142
173
164
159
154
143
142
176
164
143
175
146
173
156
164
178
162
162
163
168
142
186
147
200
193
190
185
194
156
194
159
182
177
149
154
192
188
199
200
149
165
165
178
195
166
162
165
185
183
172
177
157
164
152
172
148
193
153
145
194
174
140
179
186
184
179
189
183
170
168
187
170
140
142
171
183
171
146
192
146
151
162
145
145
198
150
179
173
191
168
188
148
179
178
146
175
183
200
178
161
181
175
171
199
191
177
173
162
153
151
182
161
154
155
166
150
187
197
192
189
167
173
165
199
149
143
169
196
171
170
189
158
150
168
148
171
140
188
161
183
197
181
199
144
155
165
160
164
149
169
164
165
177
186
186
185
174
185
190
166
174
169
189
181
172
180
175
193
145
164
162
156
173
181
178
195
163
188
147
150
196
145
187
163
151
160
153
147
200
154
154
200
194
178
194
158
162
184
192
158
195
184
186
173
151
174
186
174
160
160
182
185
142
140
171
153
149
171
165
169
160
191
165
165
183
156
192
187
186
183
191
165
154
148
188
182
176
169
152
151
141
176
152
170
141
195
146
154
183
189
155
147
140
151
192
146
172
190
183
151
191
187
170
189
195
173
140
182
179
145
186
189
166
150
141
196
193
150
150
156
197
165
145
187
168
176
184
195
189
140
164
168
160
142
141
183
189
174
160
144
156
189
166
180
149
200
169
165
177
156
166
193
169
188
159
183
192
147
181
146
197
143
178
197
152
147
171
150
181
172
194
152
181
152
168
149
149
177
190
185
164
198
162
176
163
183
157
160
147
177
169
163
190
193
180
200
184
150
155
177
166
186
168
194
147
173
178
162
168
172
158
162
165
152
183
147
165
191
148
167
167
175
191
166
196
151
144
151
150
183
186
191
166
141
150
187
190
161
200
159
185
157
199
158
142
162
146
154
168
170
179
166
140
179
184
193
177
164
187
168
197
177
178
150
161
158
156
198
152
161
192
178
193
190
185
147
192
142
140
181
200
175
171
142
150
149
144
146
161
190
193
182
183
148
175
165
181
179
170
159
186
166
173
150
174
155
183
160
161
181
193
144
146
172
183
162
196
156
191
192
200
167
177
168
176
148
187
182
156
156
173
151
195
181
151
141
196
151
199
186
189
172
149
161
172
192
162
170
179
157
181
190
179
199
168
152
173
148
155
141
154
186
192
192
170
178
157
155
199
168
191
176
159
153
197
165
198
158
188
190
175
153
191
188
159
164
149
164
185
179
166
150
194
173
181
143
173
148
146
150
153
157
152
145
141
141
154
172
171
199
191
163
196
196
168
173
169
141
181
148
151
173
141
192
146
183
172
164
157
153
169
163
200
197
174
159
141
168
198
180
182
185
173
168
149
149
170
146
183
145
169
142
151
167
187
161
185
177
181
151
176
166
191
169
145
185
161
157
143
186
171
174
141
191
149
187
141
166
188
198
157
162
177
160
157
146
181
174
168
152
165
176
192
174
176
148
144
174
163
158
174
183
148
196
184
178
147
147
154
190
187
172
176
192
197
141
145
147
150
160
176
200
198
182
145
176
170
145
189
193
198
170
176
200
189
154
183
168
200
181
162
151
166
195
199
155
161
184
196
160
172
148
165
185
150
177
163
194
167
178
185
141
165
179
198
161
192
184
177
143
184
170
152
191
186
151
185
174
150
162
161
184
170
165
166
198
159
155
189
196
190
184
161
155
173
171
165
148
161
197
165
182
154
200
158
166
180
185
158
167
153
159
192
144
199
196
149
188
161
193
179
155
146
190
169
185
143
189
143
170
189
170
188
195
167
158
152
145
146
195
196
180
167
189
164
185
197
185
188
141
199
194
190
169
142
157
178
171
194
155
179
142
151
163
154
141
154
194
165
198
140
148
189
158
148
171
180
182
173
174
177
161
176
200
195
156
150
165
158
181
148
148
158
152
185
168
193
162
149
197
175
152
144
157
142
153
171
172
164
162
151
159
189
182
158
157
167
187
180
143
151
193
153
176
190
149
155
179
140
153
189
188
146
197
171
200
152
149
140
159
149
180
155
155
175
141
199
167
160
154
184
143
174
165
192
142
190
150
169
200
162
155
159
179
194
142
194
149
180
196
197
162
195
152
155
166
165
194
198
187
142
154
165
146
165
191
166
185
147
179
171
192
157
142
155
185
193
175
164
169
141
171
143
177
177
164
194
168
168
181
192
163
181
184
179
160
179
194
196
183
144
189
179
172
147
187
177
155
158
162
188
164
155
150
143
175
158
183
183
188
168
178
183
155
190
147
197
174
158
191
168
200
157
184
142
158
145
146
162
161
142
200
159
194
148
165
155
162
196
141
163
153
167
169
164
169
175
187
158
142
187
163
158
200
198
149
192
197
141
173
142
154
171
143
167
175
172
199
154
147
169
140
175
197
145
181
162
164
185
190
186
142
186
200
161
156
142
184
160
154
183
165
185
152
189
188
197
185
176
181
180
192
140
168
187
193
140
172
173
182
180
160
144
196
173
172
165
155
172
192
153
169
153
178
164
172
155
196
141
188
196
156
194
154
144
144
164
160
173
200
187
177
155
188
141
188
144
171
183
189
200
159
154
188
167
154
167
189
148
200
162
175
198
155
188
192
199
187
197
161
160
197
157
149
167
184
145
143
199
194
140
158
140
199
183
149
143
167
168
176
151
193
165
147
194
174
179
189
157
181
157
193
182
167
179
149
142
195
168
158
173
190
178
180
196
178
164
181
171
177
171
199
190
180
185
141
145
157
200
150
162
170
164
200
183
166
188
182
174
190
176
190
195
163
159
146
172
144
174
171
158
182
161
149
164
190
167
179
143
157
166
149
144
181
197
193
195
163
177
141
144
158
141
155
190
175
161
170
190
183
144
171
173
168
169
193
151
188
164
186
177
183
186
159
172
141
141
183
194
165
178
145
186
179
188
140
196
179
185
188
152
141
180
155
190
168
186
156
159
184
153
193
196
178
181
144
199
189
172
174
170
152
140
160
153
194
199
155
164
198
150
195
148
160
175
154
195
187
142
154
164
191
178
158
184
158
151
162
184
183
197
194
184
179
195
163
197
178
148
186
142
162
156
168
185
151
143
191
152
143
167
151
150
177
146
178
141
187
159
186
158
197
141
151
175
142
140
195
153
141
168
194
148
192
189
162
181
169
152
161
197
191
174
169
198
188
141
152
172
147
159
183
174
166
146
168
158
151
173
145
163
198
153
195
162
194
142
143
183
198
144
154
144
144
156
159
195
169
151
180
156
181
200
200
200
143
195
167
175
147
161
185
158
140
178
151
180
193
181
171
142
161
175
170
142
178
172
142
147
171
196
188
194
170
171
176
141
189
157
194
170
155
161
180
173
146
147
186
199
165
181
148
140
148
145
166
189
157
186
143
184
160
155
164
157
163
145
185
184
161
166
176
141
184
163
189
161
140
150
190
145
179
147
148
173
185
176
184
161
183
156
155
170
200
192
160
189
193
184
151
144
167
181
157
163
199
154
178
170
194
153
172
169
172
144
197
147
170
177
146
145
184
153
193
193
165
152
177
195
183
200
180
192
157
163
187
143
163
197
154
156
158
166
180
144
193
173
159
167
199
188
143
187
186
165
197
153
171
150
186
156
165
141
195
166
158
191
159
180
156
164
199
181
159
171
198
191
174
170
142
180
143
199
164
160
170
150
143
159
188
144
151
162
180
144
172
173
179
167
163
162
193
162
155
154
156
144
188
184
177
193
173
144
162
157
177
160
178
173
145
177
200
151
190
177
193
189
173
163
145
154
152
143
190
175
160
147
171
166
194
148
146
172
159
177
178
163
159
158
198
177
189
163
181
172
184
191
151
196
187
175
175
141
151
169
167
157
159
157
185
198
153
186
154
171
194
197
149
145
158
168
175
174
171
172
158
145
195
161
161
165
187
173
162
160
193
186
179
145
175
166
167
160
197
148
149
144
186
194
154
185
181
176
164
161
198
172
158
178
163
170
162
158
198
177
187
151
174
192
183
188
143
147
192
199
187
155
193
196
196
189
198
149
194
159
172
166
182
198
152
191
147
172
150
146
196
171
151
141
195
184
159
149
183
145
140
146
194
154
195
161
165
163
176
175
166
159
162
147
148
145
143
178
162
150
158
168
149
194
160
191
144
147
197
143
174
147
163
199
191
190
153
172
149
140
180
180
184
141
160
182
147
151
144
156
142
174
174
190
186
190
144
182
164
154
161
195
168
150
177
184
173
140
184
194
144
191
164
195
176
164
158
158
171
184
148
175
141
172
162
146
183
176
142
190
157
144
146
172
145
198
184
168
165
164
145
160
182
163
198
196
193
141
190
197
155
172
183
196
198
182
162
162
151
169
175
188
162
156
174
192
170
183
166
198
195
140
142
174
166
187
142
153
180
163
188
185
190
171
143
144
140
174
195
178
161
174
155
184
164
148
194
181
166
167
151
172
178
168
149
183
193
176
150
191
182
158
153
167
144
176
196
142
175
181
150
185
141
194
159
188
156
199
165
185
183
175
197
181
155
173
152
171
176
155
178
157
163
185
156
167
146
152
154
140
170
183
182
146
141
169
148
200
161
155
193
147
180
178
196
177
192
183
172
145
194
142
186
183
200
186
156
187
193
191
171
181
147
158
174
176
179
173
185
185
170
189
158
196
168
186
143
191
153
161
167
148
154
191
196
149
163
179
155
179
140
159
152
152
173
167
172
173
148
186
171
199
148
153
178
156
173
150
158
169
158
159
174
194
159
154
155
190
188
162
169
149
178
199
185
161
146
146
163
178
190
187
196
156
141
165
141
171
144
152
189
183
188
155
192
155
153
169
164
193
185
154
146
158
152
175
170
155
199
172
183
194
152
180
153
144
140
182
186
182
151
173
184
193
140
188
151
198
194
186
179
144
158
183
156
156
150
163
167
162
179
191
154
189
169
174
160
151
180
175
197
175
188
145
158
186
176
144
143
187
186
166
191
180
182
169
150
147
191
182
190
142
140
163
178
159
150
156
188
168
191
171
200
173
169
179
145
172
179
197
141
179
191
170
167
176
178
195
162
173
158
176
164
166
200
153
168
197
152
155
185
164
196
142
174
150
171
180
177
196
184
150
165
144
193
140
185
174
163
166
170
154
200
146
187
183
140
164
149
141
146
168
198
165
156
192
162
192
189
184
173
192
159
188
178
154
192
181
199
176
199
159
187
144
194
186
162
197
190
164
181
189
163
160
197
173
151
174
176
192
181
180
184
171
141
159
182
178
181
177
187
172
148
194
152
152
199
176
153
143
146
162
165
186
167
198
154
145
147
156
156
162
156
143
143
196
160
190
170
141
159
150
164
184
151
167
159
184
161
144
181
179
195
180
189
187
170
154
180
191
171
179
182
164
196
198
151
177
141
156
152
160
192
177
153
143
180
196
140
169
198
140
195
179
146
186
143
175
188
159
172
191
175
197
167
165
183
142
144
148
153
175
162
180
157
162
149
198
200
172
170
147
165
151
147
197
163
196
182
200
152
196
155
196
198
180
157
170
140
145
157
181
147
184
162
151
195
144
164
170
145
173
174
175
145
141
189
143
192
149
145
158
199
195
180
195
167
193
158
192
189
184
145
154
156
199
154
161
186
180
190
143
173
179
200
189
180
183
171
167
163
175
141
189
189
195
182
169
153
171
164
168
171
192
175
149
173
188
141
182
174
186
142
176
145
199
147
180
159
182
189
140
159
170
143
154
141
144
193
184
164
200
186
148
141
193
160
144
184
143
180
149
176
149
186
170
179
147
185
154
163
179
182
159
155
184
195
150
156
191
149
149
141
197
182
187
186
190
150
151
179
197
141
155
149
146
199
171
157
170
193
166
166
165
143
190
200
174
192
185
154
195
173
182
165
165
178
140
183
170
161
161
153
147
188
148
195
155
182
184
159
181
154
192
141
188
196
198
161
147
197
141
182
157
143
154
191
198
143
140
164
143
151
194
184
173
164
189
200
195
150
186
199
178
166
191
187
155
173
156
187
151
150
194
197
166
174
174
184
163
158
181
145
142
186
176
141
172
182
182
186
162
174
153
142
200
181
146
148
158
146
151
148
173
183
168
155
171
184
167
147
150
178
151
175
171
143
162
158
185
198
165
174
163
173
148
177
145
159
149
167
198
174
147
177
188
200
141
188
175
146
199
172
185
162
175
173
193
175
200
166
199
157
183
188
168
147
188
157
177
155
179
187
196
146
140
193
174
187
171
185
157
155
190
149
164
172
191
158
184
198
189
140
146
173
160
154
190
152
166
186
199
174
161
197
170
161
148
153
168
148
173
169
149
195
199
184
193
152
161
154
162
152
146
200
142
182
197
188
188
178
171
186
176
158
145
165
183
186
185
197
140
159
141
169
169
157
158
156
193
187
160
173
159
144
175
199
166
177
145
152
192
198
178
166
174
189
159
159
192
159
167
184
178
191
152
196
191
155
179
182
143
170
189
178
169
190
192
143
179
155
149
157
164
176
147
140
171
179
168
164
156
170
189
165
183
146
166
196
148
200
183
171
192
146
191
196
176
154
166
170
161
166
170
152
194
181
166
195
180
156
162
198
175
188
175
174
153
156
147
140
162
148
164
149
157
197
194
149
191
146
150
191
175
191
163
158
196
161
195
166
144
174
196
192
158
152
197
165
196
197
188
175
192
173
156
151
192
193
185
170
147
193
155
175
152
183
163
178
162
192
176
156
155
188
157
174
180
164
190
195
141
140
143
198
152
199
193
183
196
185
166
174
159
187
149
196
192
189
149
180
198
124
127
102
144
142
142
116
144
121
106
140
124
128
129
113
132
141
108
148
122
138
146
105
135
143
107
103
120
147
135
125
110
111
146
146
136
128
117
123
100
125
102
120
146
141
128
123
133
112
123
124
124
143
137
115
105
135
147
119
130
115
137
123
106
108
118
139
125
142
111
141
118
149
141
142
131
129
112
126
118
131
150
134
105
150
122
136
119
124
104
138
119
111
107
124
109
146
131
106
147
124
116
138
122
113
116
123
136
117
139
133
141
142
143
117
145
108
147
112
132
120
130
108
127
146
103
147
150
142
106
102
112
148
112
106
121
145
131
148
130
135
107
134
112
103
114
120
140
134
114
100
110
105
105
150
104
122
146
116
134
147
145
103
135
135
111
134
114
137
107
135
135
123
110
111
107
144
109
145
126
139
148
106
125
115
143
112
125
134
146
149
134
117
106
130
128
118
145
110
148
112
121
148
114
136
144
105
135
146
150
113
116
116
135
132
142
149
101
136
137
127
136
115
147
147
120
150
148
129
127
139
141
119
122
125
109
136
106
118
138
113
107
100
139
108
142
133
116
102
106
116
126
144
111
122
136
104
110
141
105
149
116
148
136
126
133
114
120
149
144
111
113
102
136
120
140
110
141
107
144
119
127
123
109
137
131
125
105
101
122
110
102
144
125
104
118
131
127
130
143
126
120
128
114
135
150
113
142
101
114
144
133
100
133
127
149
109
142
135
135
122
114
100
132
145
131
108
101
100
125
120
117
110
143
100
140
136
135
113
146
118
116
133
106
112
107
126
106
104
149
104
131
128
111
142
146
144
103
135
146
103
122
110
107
128
114
104
134
149
136
106
119
128
106
103
112
107
117
105
137
139
111
112
100
150
114
125
102
143
115
140
136
114
112
109
100
141
107
109
105
145
148
104
127
141
125
107
150
110
144
122
107
116
119
147
113
132
115
100
148
113
116
125
113
144
140
145
130
101
147
114
148
140
111
103
149
125
140
123
133
150
111
150
144
112
135
110
114
114
106
110
100
120
141
130
100
113
146
125
120
145
141
142
128
134
132
140
122
139
119
126
103
147
129
145
107
106
137
109
120
110
113
100
119
132
107
102
147
105
124
116
129
116
108
107
113
148
135
123
126
110
124
148
142
135
132
104
128
142
125
133
115
133
146
146
135
130
115
140
121
126
141
125
140
134
145
148
100
116
117
116
101
132
115
129
115
150
144
141
136
106
128
133
113
137
131
105
100
121
149
150
102
112
114
146
148
125
105
128
122
131
130
101
124
140
148
126
117
109
119
142
129
114
105
137
139
148
126
133
113
123
118
141
138
104
114
142
148
122
113
137
150
125
136
112
136
121
121
111
116
140
127
110
137
131
142
103
122
103
148
146
107
108
108
139
150
123
112
141
117
135
106
102
115
122
132
150
147
108
101
137
110
131
130
106
121
107
137
149
119
123
133
132
113
120
149
111
137
120
107
108
128
132
122
120
149
126
128
141
109
128
132
115
118
145
150
146
149
131
148
137
145
124
105
131
113
143
101
138
103
117
104
143
115
150
144
138
119
135
105
111
102
141
148
119
148
133
114
126
102
125
139
124
148
117
110
127
117
122
107
141
119
102
137
141
115
128
117
139
118
116
131
146
136
128
134
104
113
129
109
132
103
123
143
129
109
106
122
149
133
142
121
134
144
141
118
117
133
142
148
146
125
120
110
133
129
100
133
108
135
112
141
127
114
123
127
100
105
124
150
129
126
145
101
111
111
116
145
117
147
136
120
112
120
102
123
135
120
125
140
139
112
118
120
130
140
129
141
102
141
118
138
140
137
142
150
100
139
135
124
129
122
143
104
109
117
142
122
108
121
100
131
112
123
105
139
104
139
104
103
122
142
126
141
149
125
138
141
135
101
111
146
146
108
110
147
110
150
134
128
124
132
101
132
113
132
124
149
110
136
111
138
119
131
128
145
113
103
140
132
134
118
144
111
124
130
150
106
139
134
119
139
115
118
146
128
103
119
112
139
102
134
139
101
133
111
101
131
150
116
114
101
105
140
118
113
116
124
122
127
112
145
120
121
127
102
128
138
121
142
125
110
147
143
111
110
135
145
100
120
103
118
101
147
110
146
104
106
123
101
150
150
102
135
117
114
119
148
131
111
132
143
113
145
145
144
116
138
135
121
139
107
125
118
126
141
145
131
105
138
127
109
112
138
117
106
123
143
111
118
125
135
100
144
132
102
115
126
140
100
107
102
133
119
103
114
138
137
107
122
145
150
110
134
143
118
147
127
101
104
144
148
147
118
109
130
103
141
100
140
107
124
145
130
103
146
137
134
132
120
114
101
115
102
116
106
109
111
109
128
117
144
100
124
139
106
119
104
130
126
103
136
100
123
109
122
133
118
106
107
135
103
148
143
107
108
137
108
100
121
109
142
110
113
146
103
142
104
107
145
121
130
107
101
147
103
141
125
148
107
109
119
138
104
102
104
104
126
111
120
134
101
116
127
117
110
122
130
134
143
126
119
105
110
143
136
127
137
100
143
118
120
124
149
108
117
111
101
108
117
125
140
131
115
110
124
127
119
143
124
110
140
129
121
120
148
145
143
115
125
129
148
108
118
132
109
100
132
149
123
124
125
120
113
142
109
130
110
123
100
119
102
138
105
122
112
128
106
103
114
138
144
147
125
108
136
148
127
125
126
114
119
132
100
113
143
146
101
147
150
116
116
125
144
124
133
141
117
113
140
123
129
133
145
106
144
127
137
135
148
106
137
142
110
144
126
112
112
118
107
125
120
140
129
133
111
121
140
109
113
137
112
117
120
132
142
114
113
109
104
122
128
144
102
109
143
146
150
146
116
113
136
118
120
105
129
124
144
105
143
116
114
131
141
119
113
148
133
111
110
119
143
134
129
137
146
131
138
143
109
130
134
117
107
103
135
129
141
133
106
123
132
116
138
140
132
111
142
143
144
122
127
121
134
149
126
101
143
102
141
130
136
122
102
117
140
119
121
134
134
132
131
141
137
147
111
125
109
124
122
150
118
102
132
125
112
119
140
107
105
115
115
125
107
103
106
110
141
114
101
149
135
106
124
127
102
105
131
134
141
144
129
110
109
145
105
132
110
119
135
142
149
138
107
112
150
133
104
140
148
144
113
145
117
112
102
149
119
124
140
114
150
147
101
143
105
120
136
118
129
131
138
100
114
136
104
145
118
126
133
111
146
111
130
109
121
105
104
143
131
121
116
140
107
118
103
102
107
135
114
116
128
105
131
134
112
107
148
131
149
124
108
137
109
142
139
127
105
131
135
104
126
144
111
106
131
146
136
121
128
124
147
116
114
117
105
116
121
134
129
137
109
128
122
142
132
143
133
108
140
147
115
148
133
134
140
116
143
115
104
124
135
106
104
136
129
136
119
119
145
146
120
107
134
136
115
114
115
140
106
146
140
100
138
116
113
143
126
127
149
145
116
105
110
124
125
132
101
122
116
136
112
103
144
100
147
119
121
148
128
144
130
146
123
147
147
106
150
115
142
124
112
141
104
100
112
150
100
108
104
118
146
113
110
149
111
122
117
110
128
130
145
102
114
136
119
104
134
142
118
146
111
101
102
106
135
132
103
102
137
119
131
101
100
145
100
110
114
124
111
124
127
118
114
132
132
142
130
105
126
121
113
130
108
136
148
116
113
128
150
125
102
142
144
126
146
143
125
111
135
147
102
143
139
113
126
125
112
128
105
126
114
102
129
115
136
102
124
130
149
121
136
128
102
110
138
103
150
129
147
134
123
102
115
132
109
120
127
121
130
124
124
136
107
144
146
120
129
108
146
122
118
110
115
139
111
136
118
116
100
135
103
106
150
139
115
124
107
105
145
103
124
109
134
110
115
132
115
130
113
117
118
112
113
133
112
148
105
125
131
117
124
105
142
123
105
120
130
128
112
127
108
127
115
125
113
106
113
136
139
132
117
104
115
123
116
104
128
103
138
138
101
124
119
116
118
135
145
133
131
136
137
141
147
108
143
103
134
129
113
106
108
129
106
101
146
116
101
129
122
109
128
146
117
142
113
140
137
102
124
138
139
101
134
118
143
138
132
134
144
131
141
117
116
118
124
130
143
118
144
146
131
148
123
101
109
117
134
114
112
143
116
145
128
147
139
147
104
102
108
144
148
133
130
133
140
126
112
120
140
110
129
106
109
117
149
114
126
129
131
138
111
111
141
135
131
135
120
148
100
114
134
108
129
102
147
142
126
149
101
114
100
135
123
124
146
139
131
105
135
105
114
117
139
105
121
104
142
122
147
140
135
147
123
145
112
127
145
114
115
135
135
107
138
126
111
122
115
114
137
121
139
132
141
119
120
101
128
108
119
131
106
147
133
121
127
139
107
119
133
104
137
123
147
140
148
119
101
102
113
108
104
126
126
131
109
117
116
113
111
122
148
142
117
116
125
131
146
139
143
112
112
124
139
106
133
143
116
141
150
148
103
130
143
109
101
136
116
126
123
138
105
105
136
142
120
138
129
140
137
118
103
129
144
109
119
149
135
107
101
132
115
130
107
111
125
115
130
139
120
104
108
140
128
108
100
137
134
103
116
118
107
110
102
122
139
112
120
136
122
125
142
116
125
147
100
147
127
107
142
123
102
137
115
105
108
132
119
149
115
101
123
106
139
125
100
120
122
111
109
114
123
104
103
134
111
145
141
137
127
141
114
133
125
148
137
138
123
126
114
147
115
119
117
135
101
112
101
100
134
115
141
110
144
116
105
119
101
125
104
108
109
119
148
116
107
107
147
130
117
148
102
136
107
120
138
147
136
100
139
106
139
144
148
104
146
103
102
120
150
150
135
105
123
123
144
134
121
128
149
125
137
150
132
146
139
108
146
108
112
118
147
128
101
123
101
105
102
100
119
129
128
116
111
132
146
112
148
125
106
148
146
142
139
112
130
107
126
113
108
122
106
149
128
147
132
129
102
111
131
125
102
114
115
133
146
146
104
139
143
147
133
105
118
139
113
129
118
138
131
113
109
141
112
106
106
138
104
103
118
123
121
134
113
114
127
144
114
121
127
135
143
135
126
105
141
103
117
122
134
145
131
140
135
122
142
148
131
148
133
140
104
134
131
119
143
143
131
128
143
149
127
121
103
131
119
117
128
110
110
110
117
149
131
100
135
106
133
142
128
125
116
109
134
126
117
122
142
126
141
122
111
116
130
103
132
136
125
149
102
149
108
139
140
140
107
149
142
132
127
110
139
148
140
121
102
107
106
113
100
140
133
117
149
109
129
123
118
101
143
126
109
109
131
140
136
123
144
118
132
120
123
150
107
105
123
111
136
105
140
110
118
148
102
102
126
148
147
111
110
123
123
142
105
143
103
138
133
139
118
123
123
132
127
142
119
131
100
144
134
138
142
115
138
107
117
112
126
149
150
133
147
119
140
138
129
100
146
148
136
111
135
132
139
117
107
109
148
111
141
143
117
109
143
118
110
140
148
142
123
148
147
104
120
119
119
138
126
126
137
131
128
139
108
105
136
129
144
126
123
121
132
134
149
143
112
115
141
140
133
116
112
135
137
149
107
128
125
109
147
129
130
136
105
133
133
100
122
135
129
143
140
109
102
122
140
123
130
116
113
131
146
105
113
119
100
129
122
105
127
145
146
124
125
121
112
114
150
142
134
118
117
104
127
136
135
141
136
122
121
150
125
139
141
115
114
120
129
110
141
100
127
103
145
117
133
148
139
143
129
145
110
106
126
148
136
137
137
132
107
108
112
127
128
127
123
127
111
103
125
142
129
136
138
128
110
122
136
115
111
108
130
115
124
102
103
148
150
115
128
131
114
141
123
100
145
102
137
106
101
125
122
128
105
143
129
110
138
131
148
150
119
110
138
110
131
101
109
115
145
130
146
135
137
147
121
139
126
111
112
121
130
139
146
147
114
130
116
112
149
134
116
140
124
118
111
123
134
114
103
120
132
142
127
114
122
135
147
142
130
132
109
123
126
113
142
134
106
107
146
112
121
144
121
138
114
123
145
103
133
113
150
135
133
101
143
111
124
139
149
120
114
122
131
135
119
120
126
145
111
124
149
103
138
123
123
144
140
145
106
130
138
124
104
141
142
104
134
127
140
128
139
121
108
101
118
104
114
143
123
123
105
102
144
122
115
115
104
126
144
104
150
113
106
107
120
145
140
103
120
109
100
114
127
116
138
133
124
119
125
117
149
101
106
123
100
120
116
128
137
124
116
126
147
105
132
130
128
108
114
133
113
126
148
107
115
101
136
133
139
131
107
117
116
136
110
119
134
130
129
116
107
118
135
133
122
111
126
146
145
121
120
140
126
126
111
116
131
128
106
145
125
117
144
145
101
142
103
147
133
134
109
124
134
119
138
117
101
110
120
146
128
102
119
123
139
101
137
148
149
127
148
125
130
104
114
134
109
119
146
105
138
108
145
121
109
112
136
137
116
131
126
101
129
125
139
122
138
142
106
124
113
150
131
133
117
128
142
119
100
126
124
115
117
107
125
105
134
144
122
105
130
102
108
103
126
145
143
107
105
135
123
150
131
100
131
118
143
127
110
119
119
144
107
129
130
149
107
142
124
105
101
133
107
113
104
119
147
150
127
144
134
140
138
125
103
107
121
149
127
102
147
120
135
134
116
103
115
129
100
142
111
144
123
115
137
132
101
111
126
112
115
117
144
129
124
128
122
140
116
133
127
111
109
113
150
150
122
119
121
121
132
138
126
137
144
115
145
146
124
112
105
149
144
117
101
103
109
150
104
134
103
127
146
122
131
103
104
101
139
122
109
136
104
144
106
100
101
106
142
136
103
110
136
112
103
120
113
100
113
113
149
117
103
121
145
103
122
147
148
131
138
133
144
127
133
110
125
106
110
145
103
138
112
147
124
105
141
146
145
122
136
133
121
145
107
103
148
132
112
104
102
117
132
103
114
131
148
133
120
139
133
135
142
148
133
149
140
130
103
146
136
145
106
125
142
103
125
127
145
103
115
108
121
141
142
140
140
100
132
149
110
128
146
103
125
111
131
115
133
119
141
113
132
103
131
133
102
127
144
110
108
107
104
113
113
125
117
124
125
126
148
146
143
100
144
124
147
124
141
130
139
118
141
124
122
146
101
109
102
140
132
139
117
146
129
111
138
114
146
127
136
145
137
138
129
114
103
150
100
103
146
112
141
113
134
149
116
111
129
133
130
100
108
125
118
148
102
137
113
130
150
123
141
117
101
136
134
117
135
105
103
148
125
116
133
138
108
113
116
125
108
108
121
127
140
142
100
113
105
150
125
137
137
116
124
144
104
121
150
112
122
110
103
145
100
121
149
107
146
102
119
119
137
124
147
122
121
111
142
104
119
116
121
138
137
117
146
142
140
126
135
136
128
127
119
114
117
117
148
124
149
117
141
141
119
125
130
133
133
108
147
107
115
123
132
127
150
112
143
141
133
138
102
132
131
147
141
129
148
101
148
137
126
149
140
141
116
138
110
107
111
101
113
146
112
126
147
125
101
106
100
142
109
111
120
136
127
113
121
145
117
135
107
146
105
124
149
100
105
134
140
138
120
112
143
118
123
111
147
146
134
131
121
137
143
101
126
114
127
132
139
101
117
118
104
117
149
101
124
111
122
149
130
147
131
148
107
137
131
126
148
117
134
147
109
128
142
131
115
145
126
106
144
141
132
137
120
112
146
145
131
142
101
113
128
138
103
111
118
133
128
134
140
139
110
128
126
125
150
103
149
122
125
105
134
118
131
130
142
123
138
123
113
109
126
142
113
142
141
147
126
119
131
122
116
118
149
123
120
140
124
106
111
137
106
114
125
132
124
138
142
110
116
107
135
114
132
108
135
149
120
137
150
147
139
132
122
138
102
126
141
138
111
100
101
100
126
118
124
144
105
140
108
113
131
131
127
104
116
150
135
133
141
126
133
111
107
112
127
104
119
132
135
117
126
102
121
116
114
137
112
141
142
111
147
108
114
135
105
121
145
110
118
146
146
102
129
108
129
100
102
108
128
150
100
136
139
106
102
101
146
145
121
149
137
148
104
101
148
149
145
135
103
113
100
149
124
132
121
114
147
128
106
138
127
145
121
144
110
126
109
125
139
131
111
122
130
135
103
105
124
125
143
109
114
127
110
134
103
100
109
140
125
125
127
118
120
138
134
116
125
142
111
106
124
114
113
146
110
132
135
141
137
120
130
124
114
127
149
145
111
127
117
107
102
147
123
123
127
148
104
140
124
123
133
140
100
123
106
111
119
110
137
113
125
146
131
104
115
127
136
122
104
118
135
150
126
105
105
125
133
122
134
148
103
136
134
115
145
112
106
101
121
142
145
132
127
142
149
116
111
114
130
114
144
141
134
114
104
145
139
115
115
122
122
112
122
145
105
140
124
135
132
129
102
150
112
125
121
124
131
110
121
121
130
104
115
104
146
111
124
125
136
126
146
121
141
109
132
146
126
130
104
101
122
131
102
142
113
124
117
129
131
107
140
131
149
119
110
128
107
136
146
119
142
105
131
124
132
112
118
102
135
147
111
134
145
118
110
137
136
137
105
125
101
132
131
142
119
124
140
148
123
114
138
144
142
111
133
136
123
113
111
140
117
133
142
137
105
100
130
117
105
129
119
102
102
145
116
137
122
111
125
114
145
129
136
135
132
118
105
120
142
146
146
100
116
126
148
123
133
131
126
143
104
150
103
112
150
139
132
144
101
121
149
149
137
133
147
101
113
127
134
104
145
135
142
128
133
107
125
114
130
108
139
134
120
140
126
138
130
114
118
102
117
121
113
136
120
150
144
101
145
112
138
107
142
121
120
150
110
112
118
129
132
133
144
102
112
105
103
134
116
119
142
114
142
103
149
141
144
135
114
119
126
142
107
108
142
145
146
140
120
125
113
133
123
123
139
124
133
106
147
124
117
111
121
149
145
123
133
118
108
150
118
113
143
115
123
114
119
145
118
138
147
131
121
125
143
101
128
148
145
150
112
119
141
116
107
141
141
130
120
104
126
118
106
124
100
118
112
144
146
124
140
136
110
134
112
106
130
103
118
135
136
139
112
119
119
135
114
141
132
109
145
139
122
127
116
140
135
133
140
132
147
105
150
107
119
102
101
139
112
117
132
113
144
133
116
104
131
140
137
129
136
126
131
141
130
130
102
131
132
146
127
110
122
145
117
125
112
105
142
132
101
103
127
137
138
150
121
121
117
121
119
109
130
142
118
112
103
139
133
145
127
125
144
125
118
141
120
142
101
106
127
130
109
100
141
139
115
132
107
144
115
133
130
139
139
124
108
101
115
136
129
107
107
122
118
100
137
110
112
142
108
138
107
117
102
149
112
149
116
143
139
141
147
126
140
116
101
140
147
138
128
135
124
122
149
103
147
128
145
122
147
125
123
146
100
142
119
136
133
135
108
114
103
144
128
134
103
136
122
145
136
104
129
111
127
144
105
123
122
148
126
100
142
144
108
135
106
134
150
128
117
135
132
117
121
106
113
149
101
108
112
141
134
130
106
112
119
127
102
142
115
145
104
115
128
115
102
101
111
115
140
102
106
149
131
105
110
136
125
124
106
139
119
147
149
123
119
142
131
126
147
130
149
124
130
108
107
134
139
101
107
112
119
140
125
146
121
120
105
150
133
147
132
118
105
107
100
123
102
111
131
119
144
111
141
126
123
126
100
147
113
131
127
147
128
110
106
115
121
104
133
132
101
125
133
140
150
149
107
113
148
149
144
126
104
125
127
111
122
113
126
118
104
137
102
134
141
113
126
103
143
136
102
123
130
126
117
109
135
122
133
112
145
127
133
137
119
130
126
140
142
150
120
111
125
112
107
124
112
114
135
135
122
116
122
100
147
138
101
106
105
114
109
143
139
138
103
131
122
109
126
101
107
132
142
110
114
111
141
102
118
146
147
131
110
104
117
148
148
118
139
140
129
126
148
102
109
100
105
150
135
112
143
108
131
106
133
101
107
106
140
142
103
137
145
118
147
136
101
136
126
150
102
145
113
110
126
100
107
102
150
146
109
144
129
136
112
133
122
135
113
126
144
106
114
141
125
141
101
123
129
120
104
129
125
114
100
111
135
107
146
138
102
122
136
150
102
110
147
145
113
129
135
107
130
150
117
127
109
119
131
110
147
126
148
140
119
138
133
135
101
122
141
114
121
114
120
144
147
114
147
148
106
114
111
127
104
107
129
124
137
110
129
122
102
121
141
109
148
146
105
118
104
110
140
140
108
125
107
103
129
138
134
150
129
125
129
100
135
103
127
141
105
122
114
141
128
130
107
145
133
146
111
107
105
104
118
136
140
131
140
140
130
150
131
145
111
113
133
102
144
106
127
123
149
134
109
110
130
134
141
134
132
109
146
111
147
126
112
135
140
141
117
150
122
110
140
100
115
128
128
145
115
132
116
135
146
132
114
108
129
112
143
126
135
130
138
137
109
119
130
100
120
127
147
132
120
140
146
111
123
134
134
134
139
123
123
149
108
107
121
109
132
144
139
119
147
120
130
119
112
102
112
120
145
137
133
127
132
141
111
147
146
145
132
119
121
121
148
139
120
105
107
131
125
128
114
104
119
142
113
121
110
120
130
144
138
117
140
113
122
131
122
132
135
123
133
102
147
123
102
107
144
140
118
114
131
140
106
130
146
101
143
120
110
145
127
131
116
129
146
147
115
135
143
101
132
147
143
122
118
117
134
111
147
100
118
132
134
150
146
133
103
114
145
135
148
139
150
109
132
148
139
138
119
106
100
134
128
110
150
135
146
138
140
124
108
129
144
140
116
131
146
115
127
123
144
146
128
147
146
144
149
124
131
133
126
104
109
130
119
124
101
123
132
128
135
124
123
142
121
111
115
138
122
121
139
131
121
109
104
107
132
122
105
134
144
103
107
135
139
106
101
123
141
143
142
132
134
115
114
140
103
139
112
134
137
129
133
136
150
130
114
136
150
139
123
141
106
141
105
120
131
104
102
142
101
127
108
109
145
103
112
115
109
122
106
126
115
122
140
106
103
107
118
114
135
111
142
145
129
136
148
148
104
133
105
136
131
129
105
100
114
123
149
133
101
144
124
122
120
146
119
115
123
147
143
115
114
111
142
117
132
135
132
137
140
132
117
131
101
118
101
105
126
102
110
142
133
107
128
138
119
141
108
124
108
100
117
118
105
146
146
149
137
107
113
125
147
121
144
127
107
145
108
103
136
101
114
138
146
143
141
134
133
100
125
114
135
124
148
145
117
143
129
116
104
119
104
145
136
120
132
131
120
131
114
149
136
134
117
128
112
113
120
101
110
139
127
119
132
146
120
137
114
109
143
119
109
136
130
133
126
123
141
140
142
129
100
134
150
115
112
118
116
133
125
104
126
116
149
117
147
121
106
146
122
106
134
100
118
105
127
120
109
145
129
150
109
108
130
112
101
100
120
138
110
139
121
109
128
126
116
137
105
125
136
124
123
132
112
136
121
108
114
125
148
130
127
149
120
106
137
104
112
138
142
126
119
138
101
110
140
132
103
109
109
102
138
120
124
123
137
122
100
101
132
141
143
102
142
110
120
112
115
118
121
116
150
132
104
135
124
115
140
101
122
100
124
143
149
103
106
133
147
125
145
127
116
142
104
126
128
110
125
113
109
129
144
108
143
140
135
121
110
118
133
110
138
135
131
148
144
145
126
105
115
133
132
147
123
107
116
135
116
126
104
143
132
136
140
101
121
137
101
114
145
111
109
138
130
106
118
101
105
123
101
126
145
108
126
117
127
123
128
149
129
115
139
103
120
125
119
149
113
149
109
141
129
139
146
138
128
107
115
124
148
145
144
148
114
118
148
111
112
141
144
129
109
116
122
133
137
120
107
113
109
137
121
149
134
138
135
106
140
106
117
102
115
105
123
110
138
128
110
131
138
147
109
128
130
130
120
145
123
134
119
104
115
103
145
100
139
138
117
142
125
140
116
100
148
137
116
112
101
112
144
141
129
112
126
122
146
107
132
111
100
124
141
131
132
127
148
131
114
140
139
149
124
110
111
118
121
115
124
109
118
124
100
149
104
126
115
112
124
135
111
132
103
110
106
124
124
120
123
142
116
131
108
122
146
100
116
109
145
109
104
105
126
150
138
124
141
135
140
142
147
122
131
106
147
103
123
148
150
135
126
135
102
124
130
117
108
112
102
129
115
147
147
149
130
103
103
118
142
140
105
144
135
124
146
121
116
148
117
137
100
107
137
109
130
100
111
142
108
144
111
126
128
125
111
147
103
140
114
146
150
130
130
145
150
109
140
145
134
112
100
117
142
147
149
146
132
124
128
103
118
102
124
102
147
107
145
135
133
136
147
144
105
140
100
116
138
137
113
133
123
138
121
124
104
116
127
129
120
110
105
139
124
100
108
138
121
120
117
140
142
134
102
117
129
100
138
126
105
101
150
121
100
123
121
111
126
111
145
130
114
145
110
148
127
107
114
101
148
108
101
119
128
126
110
137
124
140
139
122
135
144
140
121
143
110
128
131
122
104
120
134
108
133
132
150
109
140
124
140
102
140
115
150
146
139
104
119
104
143
108
142
104
106
119
108
147
104
140
126
135
104
124
125
101
113
103
101
132
135
135
118
108
119
137
139
115
148
137
117
139
144
112
119
107
114
132
116
128
123
110
146
126
117
136
109
144
120
137
120
106
131
112
142
112
128
103
112
145
112
137
141
126
103
102
101
138
147
140
116
132
112
126
101
131
143
105
101
130
140
139
149
147
133
144
150
136
119
134
119
103
109
143
130
128
142
132
136
135
116
125
128
103
118
142
110
110
121
132
128
123
104
104
138
132
113
105
123
141
120
113
122
112
122
120
139
143
101
117
112
114
148
115
131
148
124
127
144
148
115
124
140
101
128
134
133
114
146
121
140
118
110
118
100
129
121
149
130
108
100
148
132
134
117
109
107
102
122
143
104
111
145
127
108
144
123
147
122
117
120
130
106
117
129
139
134
109
129
133
140
110
104
110
102
102
133
141
124
101
117
138
130
131
108
125
124
107
121
132
140
131
129
102
147
121
112
138
130
105
124
125
111
142
124
134
112
111
128
145
129
143
118
147
140
135
150
104
113
143
136
140
130
139
139
109
121
112
142
101
109
141
130
143
130
149
104
108
104
142
126
118
122
103
145
130
142
102
147
126
114
128
108
101
114
127
100
149
122
140
110
107
126
130
145
132
135
131
130
118
103
145
114
126
119
106
109
138
116
111
134
127
118
138
134
129
128
149
143
141
143
117
122
112
129
112
105
118
127
138
110
146
117
145
110
127
149
113
148
105
135
114
108
126
148
118
101
109
126
132
118
109
111
106
107
102
104
143
113
108
140
111
125
125
149
118
123
103
131
118
147
132
126
138
113
101
125
126
149
132
109
113
118
135
117
129
122
133
108
142
124
149
106
122
119
106
149
117
118
149
119
110
119
142
133
142
104
111
150
140
128
108
125
132
112
137
126
133
145
115
134
148
103
144
105
133
142
126
103
121
138
142
101
120
134
118
141
144
144
126
143
136
120
125
134
138
108
108
136
147
113
146
142
137
105
146
108
133
133
104
119
105
123
100
135
109
105
131
113
106
105
146
148
144
125
121
150
103
105
131
102
129
134
140
124
113
111
134
109
142
125
139
116
118
114
126
144
140
122
111
135
143
109
129
136
114
120
112
127
113
124
110
102
114
121
123
107
144
131
122
150
135
122
111
116
120
150
149
143
139
108
108
135
105
131
139
121
129
115
121
115
112
130
120
140
128
142
131
116
147
139
139
125
146
111
143
109
108
124
108
138
144
122
104
109
143
130
142
146
148
134
100
111
102
130
149
116
135
115
121
124
133
125
131
125
136
111
121
130
127
148
127
117
143
117
114
135
147
143
127
149
146
117
123
133
103
138
142
118
125
113
135
138
113
132
123
107
112
149
141
126
114
103
127
116
122
136
128
124
106
121
131
126
127
140
126
139
130
114
133
126
124
100
125
119
137
128
136
126
144
120
146
131
108
113
142
109
102
134
102
100
140
142
128
150
113
109
101
141
114
103
111
127
139
138
113
150
127
122
106
141
147
110
109
143
146
131
136
116
109
107
121
138
122
131
132
100
136
138
121
140
123
141
138
131
107
129
108
147
147
135
112
106
144
119
115
131
137
108
100
140
119
135
137
148
147
105
107
119
135
147
126
107
104
123
116
119
105
113
150
144
122
110
113
104
123
115
127
136
133
119
143
119
100
119
126
127
131
114
145
137
130
110
129
140
119
125
133
116
115
149
149
115
143
112
126
114
137
106
134
103
129
135
126
110
128
109
122
132
106
118
148
101
131
116
132
125
101
104
117
124
136
100
148
127
111
115
135
134
105
138
135
125
125
102
149
103
133
132
120
113
131
137
130
138
109
112
103
144
146
133
107
145
118
123
141
127
101
121
149
116
134
147
146
115
103
148
104
109
142
113
130
117
125
119
127
120
140
119
149
103
123
100
112
122
144
126
119
127
150
121
120
103
138
149
101
108
133
112
123
113
122
135
126
141
118
128
117
135
109
100
141
123
134
111
137
130
113
106
123
137
109
120
148
149
103
140
100
120
148
139
132
108
124
141
146
117
138
149
104
108
113
108
136
120
109
114
148
139
140
115
120
120
125
141
148
119
129
142
123
142
121
135
132
121
127
128
132
150
105
105
138
140
114
131
139
130
117
102
126
111
134
138
112
126
134
127
145
125
106
148
109
110
142
114
127
111
130
119
106
109
135
109
100
129
102
112
144
132
102
147
115
104
100
145
129
118
131
146
104
140
131
129
150
130
134
144
148
144
123
116
133
134
101
113
121
144
110
128
145
146
131
140
131
147
136
132
138
131
131
138
139
121
128
123
123
121
132
141
140
108
129
110
106
136
116
121
106
142
123
134
111
113
128
140
107
146
144
132
117
115
102
147
146
138
106
133
149
126
125
120
115
112
101
147
142
128
109
104
113
140
107
144
124
140
144
115
117
120
142
113
134
149
148
145
125
104
102
124
147
100
122
131
150
113
141
104
131
100
125
121
123
111
122
132
146
149
149
129
148
122
115
122
143
105
124
134
134
101
103
144
118
109
124
128
103
120
114
138
100
107
103
150
112
133
109
111
117
104
100
100
147
147
136
142
146
107
116
122
111
100
109
132
106
118
134
136
115
133
148
126
143
120
113
137
103
111
133
115
127
114
112
108
133
110
102
122
129
121
148
123
141
111
102
103
135
144
100
113
108
141
129
110
117
104
136
100
103
147
147
100
130
144
118
146
145
145
125
141
104
107
147
106
117
105
129
102
132
149
130
138
134
111
113
140
127
117
144
139
136
119
126
108
125
133
101
115
130
105
103
120
100
140
120
101
146
104
107
146
136
120
144
149
137
132
133
128
117
105
146
139
150
149
134
149
148
103
106
132
127
103
119
100
117
128
134
142
111
103
132
120
107
124
145
149
100
117
132
100
147
143
115
106
120
109
109
131
122
116
136
132
105
112
106
134
147
106
111
118
148
136
128
143
125
103
142
119
150
142
138
116
127
146
138
103
141
141
141
133
135
121
106
118
103
139
106
123
138
134
141
101
116
104
121
139
112
148
141
101
134
150
137
140
121
136
149
145
116
136
112
131
112
131
133
139
128
113
122
142
121
103
100
116
108
136
110
105
119
111
118
150
107
102
110
111
102
149
150
121
101
129
108
119
118
113
106
127
115
132
116
141
112
115
107
116
135
101
133
148
115
140
103
137
123
134
139
133
144
126
131
135
100
112
142
122
111
130
125
148
140
118
124
120
117
109
123
106
120
129
107
101
138
145
104
137
131
118
141
143
101
111
116
130
125
147
113
137
119
120
103
127
130
114
140
146
140
111
104
139
148
123
142
122
124
108
109
118
138
145
146
120
125
106
110
141
112
103
144
102
147
133
137
146
129
150
119
109
128
111
144
117
114
132
143
113
118
137
137
104
129
130
114
127
106
123
150
141
115
134
120
143
102
127
118
134
140
144
126
122
108
110
134
108
143
105
148
106
121
114
132
118
115
138
135
138
143
150
127
119
142
126
107
112
106
144
113
112
124
101
123
140
114
122
107
127
116
105
126
137
140
118
139
127
121
137
117
128
102
144
121
123
139
130
102
117
120
147
140
101
119
106
111
112
110
137
135
122
106
128
123
101
147
123
123
119
104
136
139
125
130
150
149
116
111
118
121
113
134
115
100
105
114
140
149
115
149
128
107
104
140
121
119
135
148
122
136
100
133
143
144
142
114
110
148
110
126
110
115
130
119
100
124
142
132
131
133
137
124
137
102
117
141
149
132
106
149
133
108
107
146
118
107
120
109
115
108
138
133
134
115
124
119
108
150
115
130
145
139
117
119
150
102
103
108
148
121
126
121
122
120
101
100
125
115
121
149
125
112
141
111
146
125
102
130
145
110
146
108
101
125
146
139
105
131
105
142
129
141
119
103
145
108
117
100
102
126
130
114
129
135
134
147
100
125
124
138
120
128
107
120
126
118
132
141
148
136
109
109
126
100
117
106
119
107
142
132
114
126
120
143
126
143
130
123
148
145
111
105
135
125
121
110
104
108
107
149
108
143
141
128
104
127
121
103
148
110
133
139
143
143
109
118
102
150
112
145
146
101
122
115
149
108
146
102
132
117
141
117
123
100
106
100
101
133
133
149
141
133
116
123
123
147
137
145
138
114
124
107
113
127
113
149
111
139
129
145
107
131
142
111
146
100
117
129
100
100
135
114
101
114
124
114
117
121
122
138
124
104
127
143
147
135
145
137
117
124
121
149
142
106
108
118
109
116
106
107
106
125
114
110
146
103
100
134
117
135
112
146
105
117
130
110
117
134
115
117
135
128
149
145
100
147
121
138
139
114
122
104
110
104
123
148
138
138
130
108
128
135
107
128
104
100
107
118
143
101
122
104
148
141
136
124
149
138
143
128
108
130
125
139
103
116
129
117
103
101
108
134
128
126
138
129
102
125
112
113
111
148
127
108
102
127
106
119
129
139
122
107
103
120
125
122
129
142
109
114
105
146
138
145
117
109
129
148
128
107
137
148
150
150
136
125
119
103
146
108
109
110
107
130
127
135
181
148
152
190
164
190
159
175
146
162
196
164
196
174
189
174
145
156
151
142
173
156
153
189
147
171
148
156
193
175
156
150
182
188
186
195
142
148
156
169
198
190
157
195
159
179
181
174
164
194
142
161
161
176
172
157
162
153
189
194
161
179
176
164
162
174
145
158
191
155
140
168
190
159
150
158
194
187
169
162
180
199
171
200
183
157
152
169
152
162
166
196
166
141
150
186
142
166
187
164
190
186
156
147
140
191
162
149
190
164
170
200
185
151
142
177
155
191
200
145
153
165
171
168
167
183
141
141
154
156
178
174
154
161
174
196
183
179
142
141
164
166
177
141
181
189
146
184
190
146
179
154
164
194
144
189
195
150
178
154
152
178
186
188
172
185
141
147
176
147
200
195
159
177
195
167
167
194
161
155
143
160
185
198
199
174
194
170
172
145
164
140
198
169
180
160
154
178
161
185
158
167
142
140
200
144
157
180
174
199
182
143
161
143
195
192
185
173
161
153
146
143
143
162
143
169
147
192
159
143
175
160
174
166
176
154
140
199
187
160
144
184
160
181
157
189
182
159
167
145
192
193
166
156
174
150
184
192
198
190
162
145
160
180
161
183
160
197
148
149
187
181
163
148
178
160
179
153
178
184
179
182
152
178
141
160
148
154
188
152
191
178
161
182
162
152
179
164
200
162
172
185
171
185
155
145
182
150
152
184
159
179
193
176
197
179
140
144
182
198
196
177
183
183
150
150
182
161
147
169
159
159
197
187
144
172
192
154
155
179
160
142
176
167
148
184
144
148
183
162
159
176
186
183
157
152
200
157
171
198
184
198
148
177
180
147
158
179
187
190
141
162
147
161
160
163
179
145
198
157
162
142
147
148
158
155
165
157
200
165
145
197
200
147
174
178
175
149
160
188
167
188
146
190
154
176
191
192
198
173
191
143
183
183
167
193
200
164
155
169
141
171
192
171
145
179
155
185
143
176
146
165
149
142
159
182
177
142
179
152
162
199
164
200
175
198
154
147
176
181
159
158
144
172
148
186
194
176
146
196
196
159
154
158
167
181
158
198
179
152
194
179
183
189
162
148
145
140
166
165
145
174
176
146
200
193
160
162
182
163
175
194
151
161
156
180
178
193
177
186
148
147
142
187
165
154
161
192
176
153
155
159
192
190
153
153
165
187
192
142
190
173
181
193
195
186
188
140
141
158
178
143
148
180
166
161
196
161
182
165
176
179
191
174
181
162
163
145
147
146
140
179
154
175
176
186
194
174
164
140
186
157
157
184
146
169
140
156
156
160
179
143
157
176
153
164
141
193
192
200
199
155
141
181
166
177
195
171
161
194
164
198
152
173
200
186
144
193
186
146
158
164
172
162
184
173
163
186
160
146
173
184
195
182
153
199
190
199
178
175
167
196
198
188
179
189
190
191
162
162
172
198
196
179
195
153
154
168
182
196
153
188
194
172
158
158
184
186
166
176
165
151
141
200
181
174
146
192
167
199
153
145
171
171
184
143
157
169
152
192
182
182
143
152
145
159
143
177
188
161
185
179
149
170
141
187
147
192
150
159
143
179
175
196
142
181
144
143
175
169
176
166
194
170
156
176
156
151
186
178
177
174
142
181
157
151
189
165
187
158
190
150
192
176
159
175
200
160
167
166
192
191
183
193
197
178
148
184
173
200
196
182
163
159
141
200
174
160
187
183
160
161
164
191
140
180
169
145
190
178
194
177
147
194
155
185
148
167
147
197
141
157
163
190
168
190
181
176
191
197
174
170
140
196
180
145
181
146
186
183
192
171
150
160
170
170
163
167
155
144
188
140
163
163
163
158
156
180
172
180
147
197
164
187
160
162
195
157
140
176
150
196
159
179
195
143
145
163
166
198
151
184
161
157
188
191
140
169
168
190
158
141
166
172
154
145
144
159
141
183
182
153
200
189
179
184
156
153
171
196
186
146
172
171
186
152
164
188
178
189
198
173
168
172
141
150
146
199
175
193
195
156
180
193
186
183
171
145
190
164
200
165
184
153
180
196
163
174
180
194
197
176
197
195
199
171
197
192
200
155
197
184
180
196
188
182
168
152
160
178
187
183
153
183
146
168
197
142
147
158
199
161
183
157
140
161
153
185
153
145
151
169
151
161
198
190
199
197
154
154
143
149
174
177
182
180
143
192
156
141
156
157
173
149
155
192
156
151
160
197
180
150
140
175
193
170
172
146
186
189
187
194
187
145
180
199
184
178
166
159
175
184
196
157
188
168
163
190
165
182
199
167
168
198
141
150
175
177
186
158
151
191
160
194
182
174
196
141
152
188
175
191
159
159
189
152
144
168
169
143
192
155
150
175
142
153
187
159
160
160
147
166
147
149
181
195
170
179
190
142
188
178
184
198
148
189
191
155
187
149
188
164
185
153
184
145
153
166
179
194
161
164
200
194
198
163
165
195
169
150
180
149
141
156
168
168
198
159
152
171
199
171
192
147
149
195
189
165
148
193
189
168
147
146
153
185
181
155
160
187
196
190
162
200
177
191
143
162
157
181
198
177
140
142
152
144
152
194
189
141
180
174
188
190
183
169
150
190
156
197
151
165
153
169
153
145
199
190
198
171
181
178
159
166
145
149
143
184
156
187
184
156
178
154
149
189
153
143
157
178
174
156
154
191
155
153
171
171
184
161
192
175
177
200
163
151
175
147
182
194
199
166
186
186
174
147
161
194
178
144
160
179
170
166
181
192
171
151
183
152
169
173
150
199
168
194
165
166
171
147
159
165
162
151
198
144
153
146
196
154
193
174
149
163
184
177
170
192
180
153
195
144
184
176
195
185
197
143
199
168
168
170
190
156
154
190
195
188
159
162
166
152
150
188
141
160
168
148
143
195
166
188
179
176
173
156
145
170
167
169
150
187
189
163
154
199
146
176
185
143
179
158
180
175
169
169
171
152
200
177
183
155
154
199
185
166
150
191
176
173
150
180
196
175
170
155
179
168
166
186
167
174
196
166
141
153
173
160
198
199
164
182
170
193
159
151
142
194
188
173
162
196
195
178
169
186
144
200
142
184
195
169
185
198
147
147
147
147
183
182
174
196
176
155
156
184
151
200
189
181
163
176
143
161
179
166
182
181
148
148
194
161
170
200
191
165
184
156
190
160
175
155
198
178
195
197
192
182
181
156
142
183
181
156
162
175
200
149
183
162
147
155
152
194
182
200
199
151
155
164
181
151
160
183
168
164
200
188
158
171
176
145
175
199
164
152
167
166
147
188
163
190
174
167
160
190
186
194
193
185
184
196
196
144
188
185
182
189
148
141
186
159
192
159
140
152
169
164
140
146
187
167
151
161
179
174
180
181
195
183
191
153
172
158
192
188
165
144
143
150
187
160
196
142
194
153
170
169
173
156
187
158
194
160
185
162
157
194
192
163
173
194
141
176
150
161
183
176
184
166
170
178
180
141
157
181
193
192
154
181
161
183
174
179
195
150
180
198
157
186
182
198
162
148
142
175
157
155
191
166
198
193
149
191
156
184
145
145
162
160
199
143
172
147
171
195
196
174
172
197
159
142
189
182
193
193
184
198
189
195
175
140
199
200
150
162
176
147
195
200
161
197
141
161
170
171
188
171
180
168
186
198
192
190
199
150
161
183
181
152
148
179
153
159
162
159
169
187
161
199
140
164
190
142
174
157
147
157
155
187
140
175
174
185
193
176
149
148
149
176
174
174
176
198
188
185
191
140
194
159
168
160
155
197
145
200
152
176
148
163
183
175
173
165
153
171
168
153
157
143
149
146
153
174
194
194
143
168
199
152
194
163
156
145
196
142
148
178
200
147
143
144
164
175
182
179
140
172
164
185
179
168
191
157
175
198
191
173
146
191
143
190
194
166
169
176
143
193
142
145
171
194
188
198
165
197
175
161
183
143
175
183
196
167
174
166
173
199
144
196
143
192
160
166
153
195
157
177
170
198
170
185
174
195
184
189
192
193
186
186
172
200
158
160
152
150
197
190
171
153
143
142
186
171
166
149
168
163
152
170
187
193
140
190
199
147
198
168
155
150
182
168
194
150
156
170
154
145
148
159
189
183
195
177
165
166
142
171
175
184
180
169
178
151
170
154
193
141
157
179
171
191
193
169
169
175
141
157
194
154
143
174
199
162
198
168
144
158
193
188
167
195
197
162
193
142
174
180
150
163
185
185
163
200
194
188
147
178
163
159
194
178
187
158
182
157
183
141
141
169
192
145
148
147
153
164
187
171
149
144
161
193
147
183
150
152
144
161
142
199
186
186
169
167
181
162
190
191
165
170
166
178
182
182
168
145
165
145
148
178
181
180
188
166
168
180
143
181
199
200
184
142
169
160
181
199
143
191
142
178
187
181
166
163
170
165
171
171
150
189
195
181
189
141
141
181
142
192
195
183
177
183
173
143
175
175
155
159
149
168
160
185
166
186
186
199
189
157
159
179
148
142
196
162
180
192
188
158
141
151
152
184
169
172
177
143
154
159
174
184
183
173
159
161
200
151
184
143
192
198
172
153
194
160
185
142
169
178
199
156
186
199
199
142
159
148
170
151
142
164
179
152
147
164
169
184
196
175
181
168
145
177
153
150
141
140
186
160
193
148
146
196
187
183
176
199
170
143
165
200
159
181
176
159
140
175
147
190
182
158
195
195
188
184
177
195
186
178
176
189
174
196
148
141
147
174
160
171
166
161
198
146
157
146
146
158
165
146
148
145
200
171
140
200
159
194
150
166
190
146
165
168
179
166
174
185
190
150
168
174
175
193
161
194
194
158
142
167
151
172
179
180
149
172
175
142
156
140
167
142
186
187
188
181
152
153
187
175
169
145
166
190
144
169
169
166
191
199
175
189
166
186
168
162
174
141
180
196
195
159
150
174
186
184
171
171
189
181
186
149
194
169
190
142
168
159
153
165
158
197
144
157
192
192
158
173
169
155
155
152
149
177
165
169
168
160
173
142
142
145
156
188
199
178
176
188
193
148
175
168
176
149
171
188
153
177
197
188
177
141
165
141
171
186
187
174
190
162
173
162
195
199
200
159
176
168
194
147
151
142
152
179
179
196
199
192
172
197
143
191
150
153
146
151
166
188
168
148
176
178
146
175
175
199
168
170
196
148
143
149
179
181
181
183
169
179
159
170
183
152
196
192
191
172
188
156
194
184
140
154
182
176
175
149
176
181
198
170
161
166
165
197
178
169
144
144
173
166
140
165
194
164
143
165
200
189
157
182
143
150
155
148
193
181
189
175
194
157
185
159
146
155
155
150
195
141
170
177
188
145
159
150
191
144
171
172
197
148
169
193
177
194
149
189
185
146
159
167
186
160
196
197
177
144
159
194
184
154
189
176
184
163
168
165
161
153
142
158
168
179
187
174
196
192
143
189
195
181
163
171
199
193
152
180
153
161
189
175
176
153
144
142
170
166
157
159
185
195
151
140
155
192
183
196
184
141
175
199
200
156
179
164
197
194
157
145
186
197
184
182
198
170
185
143
178
173
173
159
160
197
200
168
186
172
170
193
194
168
147
186
182
193
181
156
174
155
172
158
193
164
193
143
174
149
145
157
183
192
156
169
192
152
185
195
198
171
166
167
178
170
174
155
159
171
188
146
177
187
187
177
167
168
193
156
174
156
167
178
140
178
164
171
193
192
161
159
158
144
156
148
191
198
161
187
180
197
150
191
165
198
175
173
163
153
147
156
160
147
197
154
144
169
156
183
157
175
187
140
190
168
173
151
178
167
147
154
156
191
196
168
169
185
197
175
163
167
196
197
147
200
185
159
190
150
198
187
195
160
199
186
170
142
200
154
167
198
189
144
156
199
181
171
144
193
140
185
185
141
143
166
171
169
143
170
145
147
141
150
186
163
190
165
167
143
167
172
197
151
181
199
153
140
146
184
187
162
165
161
180
140
197
149
174
178
166
147
169
183
150
172
182
186
143
176
168
179
165
186
169
163
162
142
187
195
186
164
153
176
187
161
148
197
142
147
178
156
194
181
180
158
174
175
195
195
179
157
187
170
194
155
199
146
149
199
157
158
147
160
175
177
171
194
178
142
194
189
141
163
171
182
197
192
181
154
165
199
153
165
182
192
173
195
171
194
148
171
150
160
179
192
166
181
145
176
149
166
173
192
175
194
168
160
157
179
150
199
169
144
162
147
174
148
183
174
182
163
171
194
166
170
163
165
142
162
161
185
151
153
161
194
183
192
191
174
192
149
141
172
156
160
172
153
186
193
159
191
143
162
147
180
183
198
165
143
169
199
176
174
154
182
153
151
157
180
141
157
176
151
191
198
164
184
198
160
196
160
186
188
184
194
187
164
166
186
180
180
189
150
165
151
181
169
173
186
174
172
164
179
182
161
168
187
158
200
160
153
149
160
191
176
165
168
185
140
190
179
197
145
149
199
164
183
191
166
153
143
162
179
191
178
183
176
160
178
140
152
155
176
172
192
167
169
174
180
176
184
195
181
144
189
148
168
186
147
147
200
155
199
170
140
192
173
140
150
199
145
168
143
173
164
182
191
160
162
194
152
173
174
196
176
155
186
177
150
168
142
144
198
141
192
177
192
195
144
177
171
170
189
157
172
166
169
164
184
190
198
142
199
164
187
159
193
182
171
165
175
179
169
144
181
182
165
195
179
189
144
161
181
160
197
157
187
162
169
175
150
158
165
173
157
165
186
142
168
160
185
142
156
160
176
176
197
146
193
185
170
161
194
171
192
162
191
195
157
199
178
143
169
200
171
153
195
195
177
146
161
187
192
155
198
172
141
141
144
163
144
188
181
172
170
183
200
196
147
144
184
167
160
188
177
158
167
163
188
174
166
178
183
167
153
144
179
178
179
161
183
175
163
197
144
176
155
164
200
168
197
174
178
153
181
148
154
158
140
198
150
151
164
163
199
144
156
142
143
196
181
150
199
148
157
158
191
149
150
160
177
188
167
182
143
191
198
147
173
156
171
146
172
193
144
169
168
145
148
168
173
195
152
179
141
181
142
169
161
174
147
146
155
146
198
196
140
164
147
193
183
189
141
191
190
150
140
170
189
161
188
189
166
159
158
186
155
196
171
143
177
154
174
150
155
180
182
172
179
144
140
166
171
160
159
160
186
162
169
151
144
150
192
178
170
143
150
176
141
185
195
161
183
189
188
147
140
164
184
146
169
141
164
166
168
155
161
186
149
187
147
163
176
171
157
147
194
194
148
193
168
192
175
170
173
142
149
182
198
187
150
159
162
195
176
196
182
143
148
163
163
141
152
157
187
146
152
151
173
143
189
161
160
177
140
188
150
190
176
179
145
184
188
169
156
144
193
167
196
179
156
188
149
175
173
155
147
145
182
189
178
180
179
189
184
191
165
150
188
157
157
167
152
142
190
157
147
187
197
157
159
151
145
170
194
150
150
184
166
191
164
158
183
176
141
177
200
163
147
141
172
142
165
148
199
185
194
157
145
156
170
172
167
161
145
184
182
176
167
199
178
178
197
181
141
199
184
198
157
193
152
158
168
154
148
186
190
185
184
187
154
161
154
187
197
141
152
173
159
143
146
187
150
197
141
181
149
179
185
183
165
142
178
191
172
149
178
181
153
180
173
161
181
152
158
169
175
171
157
145
195
149
185
181
157
183
170
170
145
196
181
140
165
175
157
193
196
163
173
151
145
193
155
171
173
186
148
187
191
147
175
155
161
170
149
183
200
193
193
178
179
143
151
153
164
153
151
142
142
160
159
164
175
181
171
176
152
195
188
149
196
151
148
174
153
185
150
156
180
194
153
175
149
176
169
193
197
168
160
155
155
185
196
172
193
185
170
150
182
175
179
172
155
176
162
144
160
161
158
183
172
192
200
197
182
163
160
198
200
177
157
161
199
161
167
185
169
185
170
140
185
181
165
165
168
186
181
140
193
181
193
194
192
165
186
193
159
172
175
141
154
166
141
162
174
166
156
142
168
152
163
177
143
190
184
192
195
200
145
152
148
148
142
169
179
148
166
157
148
151
199
182
187
140
165
184
186
182
141
142
150
159
176
143
182
185
145
145
172
151
181
200
194
151
158
170
161
198
176
163
150
148
163
152
178
149
162
148
174
196
194
170
193
166
155
175
159
190
149
190
157
164
175
167
161
176
183
150
146
195
166
192
148
144
170
145
161
169
160
154
146
140
143
188
142
150
194
170
157
149
173
141
144
154
164
180
182
189
189
156
196
192
162
160
149
197
197
196
166
171
168
191
180
184
163
164
171
149
196
188
165
173
200
167
140
162
155
170
151
156
152
194
156
181
140
186
196
192
187
161
193
172
153
162
172
197
144
144
198
188
140
198
194
162
197
187
165
188
163
162
140
184
183
163
180
168
196
181
163
146
160
148
168
191
181
170
175
172
177
140
180
157
151
181
189
150
172
169
143
150
143
173
172
196
162
192
189
140
161
188
177
177
190
162
171
162
147
200
147
180
196
192
175
175
183
183
181
149
147
199
190
149
171
171
164
144
188
147
182
165
176
152
140
179
177
185
198
182
167
144
177
198
172
183
153
150
193
174
182
168
195
140
159
172
190
180
194
165
175
188
150
199
153
187
199
198
196
149
194
189
195
178
196
189
144
182
168
148
160
157
192
155
161
193
153
161
188
151
159
148
151
194
156
151
153
192
197
144
196
152
140
190
168
150
148
183
196
194
191
165
170
156
148
173
189
152
190
142
144
163
173
195
158
196
171
198
165
158
171
140
148
144
182
184
187
165
197
191
189
182
182
156
172
149
156
146
171
173
172
164
150
141
176
196
150
151
177
146
176
151
155
162
171
146
178
198
172
200
188
158
186
158
196
198
151
164
161
199
151
143
151
181
170
142
158
183
171
174
149
197
154
140
189
176
170
155
193
197
162
159
165
142
157
151
183
170
174
162
181
184
190
181
177
167
169
181
162
149
200
178
189
147
160
168
141
188
142
186
155
191
176
140
149
150
174
141
187
192
161
194
194
186
144
144
189
165
185
171
193
176
160
153
165
170
187
171
194
167
170
190
171
180
141
148
183
199
185
141
152
142
153
161
168
162
197
189
171
161
158
141
184
196
165
149
187
180
167
146
173
199
163
183
177
142
184
148
185
166
180
189
168
174
181
157
184
165
142
191
164
185
186
161
169
182
173
190
145
200
170
171
179
150
153
168
195
158
141
187
187
164
175
148
181
149
200
162
189
152
195
195
168
179
182
161
180
177
191
178
150
170
200
196
155
161
140
167
155
143
156
157
192
148
197
195
143
171
182
158
177
188
154
145
153
149
188
181
149
181
198
145
160
169
177
188
193
168
195
162
161
146
196
146
197
181
176
175
168
161
197
171
161
160
147
179
144
147
164
173
174
181
184
159
154
178
193
164
141
179
183
195
176
197
170
166
172
183
194
181
168
172
189
149
147
154
191
194
170
182
180
157
181
179
152
189
144
144
174
158
197
156
148
140
168
181
179
166
163
190
147
158
167
177
142
199
164
148
151
146
157
189
153
172
154
169
183
176
189
199
167
141
197
146
148
140
158
164
141
158
155
170
151
152
187
160
196
146
143
172
199
189
183
170
173
164
173
165
141
196
198
188
158
155
189
191
151
140
181
189
188
152
193
185
146
152
182
171
190
145
182
168
147
198
182
171
167
150
164
199
199
147
154
163
148
177
185
198
163
156
156
177
163
171
144
145
142
195
192
193
167
180
163
199
149
163
141
165
173
200
197
165
197
144
186
190
197
142
175
198
167
195
188
145
200
170
168
163
160
192
175
175
198
185
174
144
141
155
166
199
149
199
183
190
171
186
151
169
159
171
168
188
178
170
148
156
166
145
154
190
182
156
192
148
194
156
179
147
164
194
176
160
170
168
193
191
180
176
158
168
196
161
179
192
182
150
159
170
197
190
196
143
173
180
150
166
189
157
172
169
161
169
167
152
178
185
160
188
167
183
182
160
185
140
195
191
181
151
162
158
197
170
160
156
176
165
195
149
191
174
140
156
168
198
200
197
147
189
145
179
183
200
188
169
189
162
152
177
165
180
148
146
189
169
173
163
176
159
167
146
192
194
184
186
167
160
168
176
185
164
188
141
146
158
195
168
167
176
168
174
168
154
168
196
197
177
199
169
145
189
163
198
175
188
175
192
198
173
159
142
154
169
148
182
197
144
190
190
158
170
156
145
155
198
191
187
169
165
186
191
175
152
184
143
166
177
159
152
143
143
155
177
151
187
178
167
181
162
155
182
157
151
157
186
192
164
157
167
167
165
192
183
175
185
185
175
149
161
169
143
192
153
199
161
194
177
158
183
142
161
192
147
143
184
167
153
147
183
151
188
177
180
181
171
144
189
180
179
152
183
198
148
188
196
168
172
151
146
165
191
200
195
147
193
181
177
160
148
144
143
148
159
180
189
163
175
143
159
191
196
198
145
157
158
154
157
176
181
161
175
182
173
199
144
197
165
185
166
190
188
195
192
184
163
150
144
189
181
147
200
197
146
183
175
154
187
167
176
149
150
160
148
146
171
155
163
195
194
156
177
165
176
156
173
149
188
189
184
194
188
165
177
175
198
177
190
187
175
141
150
181
195
163
171
151
198
181
191
158
175
189
182
171
150
157
146
149
182
163
186
181
183
176
182
147
144
198
152
148
176
183
181
163
196
167
166
154
156
143
165
191
156
182
168
159
184
154
141
170
150
155
185
149
153
140
187
167
163
186
183
183
159
183
159
189
142
148
189
176
196
163
170
151
148
182
143
196
186
179
145
192
146
156
200
168
171
146
192
165
164
195
144
175
177
159
152
186
155
186
174
156
141
184
153
142
162
141
143
194
199
195
184
163
166
161
145
185
183
190
162
145
196
141
179
165
164
199
191
143
150
175
168
162
171
166
185
154
175
165
189
149
177
200
198
159
145
173
167
177
167
164
157
172
187
148
177
176
185
191
200
153
177
149
163
188
190
172
154
153
190
187
161
142
151
196
197
180
155
179
164
158
159
145
148
179
199
167
189
174
149
179
154
156
182
161
187
198
151
163
145
173
156
190
187
145
160
169
161
184
191
154
152
167
187
156
179
157
182
161
143
144
181
194
145
165
154
186
154
188
169
151
167
194
187
158
163
193
141
160
147
182
194
176
185
147
185
171
176
177
195
185
196
195
170
196
199
177
143
142
178
174
177
140
163
198
189
155
188
148
158
178
145
152
196
178
198
195
178
198
154
179
187
191
200
199
180
186
167
170
197
154
153
195
172
185
148
195
165
182
144
180
149
141
198
194
150
192
152
163
193
191
189
145
180
187
188
188
176
188
168
180
143
152
151
155
193
164
195
196
181
179
151
142
180
193
154
184
191
180
200
145
163
142
197
156
195
154
144
142
155
184
198
173
184
140
161
185
195
158
145
190
141
157
197
148
182
167
171
180
152
144
143
169
147
142
188
173
148
172
181
144
158
140
165
196
181
173
149
197
165
192
186
147
195
164
163
179
183
180
175
200
193
148
173
195
181
189
148
173
177
190
184
197
200
180
167
168
193
194
197
200
197
196
171
160
181
167
192
154
192
150
147
193
175
198
166
182
197
141
165
151
189
190
187
178
189
164
195
148
164
197
167
169
165
143
197
153
177
163
171
195
179
140
194
175
172
200
173
181
191
155
175
151
144
167
189
198
152
160
177
146
161
148
179
195
195
146
151
178
154
155
147
177
186
164
186
195
198
153
157
154
155
178
189
179
194
152
170
158
192
146
186
183
187
191
175
173
159
194
199
157
177
183
190
166
149
168
156
184
167
167
149
195
185
162
150
145
176
174
154
157
191
150
194
166
143
155
194
158
152
140
155
199
142
150
192
148
168
178
191
142
157
178
144
194
185
171
151
161
152
181
151
154
178
186
170
195
140
199
152
186
172
188
185
187
140
190
159
179
140
144
171
169
182
162
168
187
161
144
148
149
173
162
183
175
142
155
170
182
146
190
199
147
187
182
168
192
198
173
146
171
185
156
173
171
161
142
197
150
178
141
165
160
159
175
149
196
187
185
192
161
168
185
171
172
191
164
144
198
187
161
161
153
187
143
166
179
199
167
198
185
174
181
177
144
191
190
159
156
199
157
165
151
140
165
163
160
153
168
141
184
198
186
172
143
200
142
179
192
147
155
148
198
180
145
179
164
155
157
166
181
166
158
184
154
149
158
194
161
143
194
189
184
164
146
142
158
162
176
142
178
179
170
158
164
186
183
181
140
193
182
165
153
186
177
157
196
151
168
196
173
166
145
187
146
151
157
154
190
147
194
190
148
152
144
162
181
200
153
196
143
183
152
140
168
158
189
173
198
168
177
148
168
181
186
157
148
167
187
194
198
180
196
151
177
191
174
190
192
179
161
157
173
148
183
198
197
195
143
158
148
198
141
149
141
177
146
144
156
182
196
168
184
163
155
174
152
151
168
156
188
157
151
140
180
191
158
159
169
165
146
156
142
158
176
157
151
149
147
159
152
147
161
165
163
156
192
172
159
198
161
155
176
186
159
145
165
200
160
171
157
157
145
164
191
148
195
158
143
183
147
192
164
161
145
176
171
162
191
163
179
150
148
168
145
163
156
185
167
168
154
177
140
170
170
196
196
145
162
185
181
192
161
187
168
196
172
170
156
194
198
152
153
163
158
147
188
160
157
162
156
157
155
180
175
187
172
193
179
141
155
198
151
188
198
177
156
176
191
182
195
178
146
186
171
194
146
162
157
177
188
196
171
176
190
177
194
170
140
165
140
197
141
145
144
155
176
176
187
154
195
152
142
158
199
190
162
198
142
176
165
189
182
191
167
156
200
195
164
149
184
181
149
200
172
186
168
154
147
176
166
165
149
179
186
194
140
164
144
176
148
145
145
156
157
191
190
144
153
170
169
146
193
149
150
165
154
159
169
188
160
154
180
192
194
199
169
177
146
151
162
199
161
195
163
185
165
183
194
200
162
149
185
179
163
142
176
163
168
151
184
145
194
170
185
144
140
171
195
181
161
147
162
199
146
151
192
198
150
198
169
189
158
186
146
159
156
189
140
191
193
173
140
152
182
185
171
180
183
178
176
150
170
149
166
167
181
154
177
158
155
163
182
169
154
170
184
192
178
188
169
153
187
157
193
167
189
192
190
142
186
190
169
159
176
144
150
190
190
179
189
161
196
167
167
164
195
158
197
188
200
199
161
149
176
151
178
159
161
156
183
149
140
167
158
140
158
169
159
148
151
194
153
143
182
171
157
140
183
195
186
159
194
196
159
148
150
161
142
183
183
185
163
183
143
193
187
183
159
187
172
167
148
182
175
150
182
145
187
173
156
154
176
172
157
193
162
145
170
192
169
159
181
147
182
149
158
145
175
180
164
179
157
194
149
164
175
174
180
192
183
146
147
186
163
179
197
195
193
194
147
190
140
195
149
200
177
169
160
199
170
161
192
150
181
141
185
183
164
199
170
175
179
172
144
189
197
149
168
149
154
196
184
169
175
182
172
149
156
158
165
193
193
171
155
175
150
178
200
182
182
158
191
199
196
145
154
184
148
182
183
161
149
167
186
186
157
196
181
143
188
157
177
195
177
144
188
180
168
196
167
198
178
169
187
167
165
183
147
159
175
182
179
167
151
199
148
199
197
164
177
197
184
177
185
173
159
187
186
186
149
173
189
145
197
140
186
171
149
141
148
154
177
193
169
154
190
173
191
189
169
145
142
152
165
183
145
199
187
140
188
166
170
163
196
174
144
198
181
169
171
197
158
148
191
184
165
152
148
149
185
178
180
189
151
154
197
150
199
180
149
187
151
183
144
161
164
174
177
180
142
179
145
149
164
155
171
171
176
175
188
180
162
192
175
142
171
165
195
186
198
177
140
160
193
148
170
171
190
161
170
186
172
178
180
145
147
169
148
160
182
160
181
160
178
190
191
191
157
194
181
187
151
153
140
192
183
150
142
164
174
181
185
141
163
166
158
192
197
141
158
193
181
176
191
175
188
189
150
176
154
166
187
177
196
162
141
167
154
163
155
147
186
183
185
182
153
163
189
171
190
172
140
146
154
193
200
152
156
149
178
144
176
177
178
159
180
150
157
186
181
169
181
182
160
193
164
164
195
152
161
158
171
175
166
181
160
175
163
161
175
146
175
170
156
182
156
173
145
166
150
167
181
169
153
190
156
163
164
171
177
175
156
172
199
144
177
146
173
188
169
166
160
157
151
182
186
180
175
176
192
144
154
170
145
200
196
158
163
166
183
155
146
197
155
144
153
176
144
143
164
195
181
198
158
194
167
152
146
177
171
189
156
187
180
160
165
188
163
179
187
170
199
157
197
194
175
182
163
188
163
200
165
177
191
170
156
142
188
177
198
180
185
189
162
165
185
184
176
157
156
157
194
187
152
200
153
188
180
197
141
191
158
147
170
195
199
156
160
156
174
192
188
150
157
161
154
178
164
178
158
169
189
152
187
148
170
196
149
188
188
185
189
189
195
190
187
153
191
200
195
162
185
178
166
166
181
150
190
166
149
180
159
173
157
140
156
154
182
169
145
155
154
185
167
147
184
198
176
193
177
172
197
166
174
194
163
166
141
195
187
175
160
177
192
144
174
165
170
177
174
174
163
183
157
168
195
195
169
155
158
162
148
166
142
159
165
159
142
174
181
168
186
165
198
166
186
199
152
153
140
176
176
144
181
189
188
187
198
180
189
144
158
140
196
172
188
146
188
142
200
145
177
166
196
145
158
182
170
200
154
180
158
193
152
197
161
148
197
180
193
160
189
163
156
178
151
167
144
200
157
154
181
168
185
186
185
168
190
196
162
195
154
158
150
193
196
190
194
141
195
195
184
145
170
164
161
165
182
200
158
170
194
196
153
190
173
168
152
169
155
185
158
147
197
157
155
188
187
144
183
140
150
158
166
180
194
198
142
194
200
177
183
182
199
190
142
194
196
191
143
194
154
147
186
163
152
150
164
177
174
179
198
159
185
194
194
187
161
194
155
198
197
182
200
194
191
152
159
149
169
170
181
182
151
187
172
171
182
199
168
177
180
161
173
163
193
158
169
187
161
145
142
154
148
187
170
174
148
186
191
190
163
198
193
194
170
150
156
159
195
193
172
191
156
180
160
195
188
169
173
196
163
165
168
161
157
197
190
170
161
195
179
174
171
149
156
141
160
189
158
184
171
156
191
153
171
157
172
148
177
173
198
199
175
171
155
168
168
188
162
143
173
180
172
152
177
157
192
194
162
172
195
196
178
158
160
166
199
146
151
182
189
188
190
184
151
158
153
197
183
181
186
142
200
192
184
158
191
190
190
197
154
182
140
183
192
186
159
177
190
185
186
177
172
195
179
170
140
166
143
141
145
185
170
166
149
167
188
183
171
182
176
161
143
140
150
198
182
178
156
189
182
190
150
149
164
162
188
173
173
165
171
192
147
198
185
182
177
192
183
186
194
182
164
145
184
158
148
147
171
189
177
147
198
175
180
152
166
150
143
190
147
181
192
168
141
195
182
148
200
153
143
172
178
144
197
146
194
145
196
146
190
163
163
176
191
152
140
147
144
173
188
152
189
167
143
188
200
199
171
176
164
140
168
143
197
162
160
178
199
195
181
144
153
173
162
198
197
187
188
141
194
199
143
158
141
166
200
159
159
191
144
169
160
168
199
150
161
158
169
147
153
181
143
158
183
179
182
150
160
177
146
141
186
172
157
194
165
151
162
148
188
178
179
189
165
153
144
171
165
199
174
177
192
173
189
174
172
187
142
163
170
156
198
170
146
198
195
165
149
173
142
185
180
160
185
193
171
198
146
144
141
164
141
185
152
189
182
147
164
140
160
153
180
156
155
154
186
184
198
182
157
188
170
180
197
176
146
190
171
151
190
150
166
187
179
153
175
170
159
157
164
191
144
156
185
142
188
152
156
165
191
160
195
163
144
159
168
168
167
181
141
140
149
176
142
173
198
178
187
146
176
195
198
147
141
177
143
188
163
173
168
198
186
164
156
198
156
192
200
185
169
174
198
141
194
159
140
150
146
141
144
170
168
200
200
172
180
149
160
186
145
151
151
176
145
145
171
190
192
170
164
181
196
154
176
159
193
175
156
164
184
192
151
168
159
165
179
165
198
173
180
144
193
174
158
177
145
145
173
161
196
170
176
158
170
187
162
164
145
148
183
168
165
168
197
160
160
145
160
145
198
140
196
147
154
199
187
168
161
164
170
155
197
180
179
191
140
185
148
159
149
157
189
188
149
199
148
194
193
186
183
178
167
184
178
185
185
200
156
194
180
190
155
176
169
192
189
152
158
151
152
195
179
195
197
184
167
193
180
197
176
164
159
199
191
154
176
170
168
189
179
183
145
181
178
181
147
172
165
146
180
170
180
194
141
143
176
161
152
142
155
185
182
153
177
180
191
164
154
145
182
153
199
146
182
157
179
186
156
173
140
164
191
192
188
159
148
194
161
180
163
145
162
144
192
173
193
195
154
157
156
197
173
183
170
189
195
184
165
172
166
144
141
153
151
175
174
188
184
145
155
199
189
177
162
179
158
200
189
142
195
171
144
171
156
166
151
186
195
172
196
165
151
174
145
146
147
149
140
143
141
171
158
167
146
165
159
168
175
176
163
179
178
189
193
147
194
189
200
193
177
145
197
192
163
200
172
151
157
144
155
165
177
156
167
176
143
194
192
141
163
149
185
186
146
192
150
166
147
162
195
199
180
173
155
150
177
146
173
144
195
163
199
157
122
108
134
150
106
132
140
119
114
143
142
100
134
140
120
126
139
105
141
138
147
131
106
112
124
112
110
126
119
111
129
103
146
144
148
110
144
112
117
105
120
102
112
105
121
131
133
115
134
126
131
108
120
114
141
146
107
116
107
129
112
116
116
132
130
143
133
137
102
141
139
127
124
105
113
117
123
135
131
139
142
131
107
114
122
139
122
107
115
149
112
125
148
101
135
147
141
134
111
144
131
115
147
114
102
109
130
117
116
126
132
125
103
127
145
135
118
128
124
116
106
149
120
130
149
113
121
123
125
106
109
147
139
137
127
126
135
113
129
124
107
120
115
130
110
114
101
123
123
111
136
101
123
137
150
108
146
148
127
109
142
133
140
108
106
144
137
149
149
134
111
100
112
121
130
119
112
129
113
148
106
101
103
133
102
104
131
115
107
109
120
104
137
102
124
150
107
108
122
117
118
113
120
130
141
120
143
130
142
141
114
123
145
134
132
113
131
110
117
140
100
118
113
106
106
144
124
108
146
120
104
126
112
125
145
144
111
141
134
133
115
111
117
132
144
124
115
129
134
109
115
113
102
132
143
119
106
137
148
149
119
129
141
104
134
139
145
141
132
143
149
105
127
129
127
138
117
113
111
137
123
100
114
112
130
120
143
126
141
112
100
133
140
136
149
106
109
114
108
124
101
111
138
143
146
110
108
108
135
106
140
109
117
100
144
149
115
117
124
148
105
120
144
121
107
137
146
103
132
125
106
130
104
137
142
109
147
100
119
132
114
121
115
115
111
135
119
133
135
134
150
117
109
149
123
113
136
133
126
145
147
105
141
147
135
133
139
116
109
109
107
150
120
111
123
136
149
109
119
103
134
102
133
140
149
101
133
138
115
136
109
141
105
117
100
138
129
132
146
115
140
135
139
142
133
117
117
142
143
104
104
124
117
146
114
138
111
118
117
134
147
101
141
128
136
124
143
106
100
111
126
134
112
134
139
123
140
120
106
122
147
132
139
120
120
132
132
145
128
103
136
111
137
101
126
104
111
138
113
148
144
107
149
113
108
106
124
104
123
127
129
140
147
105
127
115
100
111
149
122
112
127
119
148
122
102
109
110
134
139
130
107
111
143
109
101
136
145
113
117
129
103
103
102
115
122
137
127
100
130
143
130
115
149
110
112
142
103
111
119
140
123
138
106
129
117
103
133
128
121
102
129
128
136
140
110
101
122
127
113
128
104
136
119
100
130
144
130
101
130
139
146
120
102
124
121
141
131
101
110
105
130
107
146
150
148
116
146
128
149
117
126
102
146
135
127
127
131
144
126
104
149
127
120
140
122
109
135
112
126
114
146
105
142
107
138
147
121
128
121
115
149
134
150
119
146
105
150
131
150
131
102
148
120
105
133
148
111
144
114
124
109
103
133
129
108
102
139
147
139
107
134
101
130
105
134
139
114
112
134
145
100
139
101
115
136
118
138
130
133
130
107
132
120
129
126
139
111
117
127
119
134
138
110
113
112
100
142
112
131
140
103
126
126
104
123
107
118
120
129
107
102
132
118
104
148
125
101
101
127
128
107
143
150
121
109
140
125
142
127
121
113
138
126
116
104
112
129
122
142
126
128
108
137
122
104
101
129
107
148
132
144
126
146
123
105
132
126
126
109
121
132
131
105
135
139
125
143
107
102
138
135
116
142
121
109
108
149
150
136
110
140
129
139
138
126
132
141
148
123
149
133
125
128
110
139
105
119
141
131
143
146
106
112
109
105
131
112
134
102
139
125
130
149
113
112
150
115
145
148
102
130
111
114
103
103
110
102
115
111
126
115
145
103
127
149
128
100
139
142
111
134
108
124
147
125
101
129
119
130
108
107
130
114
141
142
111
108
143
119
130
119
105
107
112
128
138
105
150
103
132
117
110
114
116
133
103
146
146
144
136
150
141
134
137
103
136
132
125
108
106
126
138
138
147
108
134
146
106
121
148
111
119
129
143
121
139
128
146
112
150
106
102
110
102
116
137
125
140
148
129
135
121
136
128
147
103
142
136
110
106
128
106
146
111
138
137
142
129
143
103
137
100
100
105
107
118
141
117
145
136
137
122
101
107
107
142
116
126
110
106
140
138
114
135
139
118
136
108
122
132
124
145
132
104
119
135
106
146
143
141
111
146
138
134
115
150
144
149
126
114
104
119
110
145
112
137
145
122
102
117
128
134
105
122
100
110
138
123
106
114
105
126
130
102
115
150
127
129
148
115
124
104
136
127
109
138
119
110
103
107
148
139
105
124
116
131
149
121
134
102
104
144
143
148
127
149
117
140
104
137
106
139
146
109
126
148
143
124
137
114
112
120
102
136
147
100
105
121
138
103
146
105
135
136
109
103
150
109
150
136
115
141
138
107
149
108
138
129
136
147
109
105
148
142
122
113
124
105
100
143
103
148
112
114
144
104
106
111
119
139
138
132
138
147
131
113
133
142
149
135
127
111
125
130
145
108
138
119
122
116
126
116
130
119
120
127
125
148
150
116
106
143
140
107
105
123
135
131
127
140
101
117
139
144
103
144
120
147
109
137
126
150
140
139
103
139
104
141
106
121
136
103
124
103
133
141
126
138
136
133
107
116
135
148
137
128
118
132
143
131
122
138
149
147
103
144
100
128
117
138
135
132
110
103
121
103
100
106
108
107
127
142
113
105
113
123
141
111
141
132
132
129
144
137
118
109
117
114
104
106
138
131
139
113
118
141
127
148
134
140
123
147
128
140
139
114
106
143
101
141
115
110
138
102
101
129
126
133
132
133
130
136
110
114
150
109
121
110
109
110
122
125
138
143
116
124
102
140
148
116
104
148
148
117
149
140
125
147
139
131
120
128
136
129
118
118
144
127
113
116
141
135
118
104
111
149
132
115
140
128
140
125
138
142
113
145
125
112
137
135
119
137
106
135
131
143
110
107
108
113
140
144
127
109
132
136
113
148
147
134
116
121
146
124
136
105
100
127
141
127
150
141
135
114
111
131
124
108
114
147
120
109
112
113
112
112
140
104
107
123
129
132
106
100
117
104
116
149
129
110
150
121
139
143
103
125
110
106
149
112
106
134
117
147
145
144
110
113
118
118
129
146
127
148
131
111
113
127
113
113
138
110
109
144
128
103
147
137
122
133
128
120
141
137
149
121
142
125
128
119
108
142
105
150
147
129
106
142
134
111
132
113
126
133
101
122
141
105
110
128
125
125
105
109
127
113
107
142
113
127
110
104
122
143
142
123
144
143
134
102
116
117
147
149
102
136
146
128
126
133
144
131
137
145
100
107
131
133
107
100
103
107
114
100
141
138
101
143
139
118
104
109
116
139
126
148
126
132
118
105
114
120
139
135
106
141
108
113
117
142
145
111
150
119
123
131
103
117
105
132
123
107
137
150
136
136
147
127
145
128
127
125
125
142
104
119
149
101
113
139
136
123
127
135
122
109
134
125
125
105
146
129
138
125
107
140
110
105
128
113
128
113
139
127
136
139
136
118
131
150
128
145
133
122
143
140
118
115
125
101
100
106
119
129
133
135
114
129
107
139
147
135
102
122
133
110
123
148
110
149
105
100
123
149
128
100
119
143
148
137
138
110
103
119
129
150
141
137
109
110
117
148
112
133
125
129
117
140
137
106
122
138
128
129
127
109
137
124
115
147
115
120
103
113
126
142
127
122
101
124
138
105
108
146
113
108
138
142
131
146
129
118
108
121
106
133
119
126
117
127
139
102
137
125
106
130
132
110
150
119
110
124
146
111
143
101
147
146
110
127
121
147
136
137
134
105
146
108
146
118
104
122
121
146
144
124
125
140
141
101
148
147
113
103
121
134
134
149
150
147
136
109
131
113
135
118
130
111
103
130
148
143
145
149
133
100
116
137
141
103
148
117
134
146
141
129
127
122
117
136
146
106
141
124
128
121
145
112
135
100
123
135
144
117
102
149
136
115
139
126
149
119
112
105
145
116
112
123
144
108
129
120
144
112
125
147
103
136
139
118
131
109
144
140
145
134
104
127
108
119
135
122
111
141
141
116
146
150
115
127
103
119
112
115
100
103
119
150
107
150
120
117
125
120
136
134
124
147
112
119
129
124
134
104
114
105
127
115
113
126
135
122
108
127
145
135
140
103
138
142
103
101
105
131
120
128
131
134
126
107
104
116
148
126
132
129
114
113
107
142
116
148
150
124
141
140
145
147
122
116
128
148
138
106
130
134
110
136
133
138
140
101
145
144
124
135
123
149
115
118
115
112
111
101
103
123
129
108
108
141
143
115
146
107
149
114
109
128
124
133
150
117
104
119
125
130
112
148
129
103
132
114
138
123
114
134
105
106
140
100
111
107
135
101
147
136
146
119
113
109
125
130
125
104
149
111
124
144
144
121
142
112
121
104
143
106
144
120
116
143
146
137
124
114
107
101
131
122
101
112
128
121
147
107
121
124
122
113
142
133
144
118
138
108
103
150
130
146
142
122
138
102
107
150
121
130
125
135
148
122
136
127
142
135
116
112
126
141
110
138
145
147
146
107
144
119
118
128
126
133
121
129
135
122
103
121
122
126
103
146
137
141
142
104
143
110
115
126
137
122
102
139
120
143
135
150
135
115
118
127
139
150
116
147
108
143
136
101
125
137
132
134
127
126
123
129
137
133
102
148
137
129
137
107
110
146
118
122
109
118
143
123
142
149
129
143
108
126
132
128
126
131
114
115
146
102
132
125
102
129
139
105
129
137
142
102
103
115
140
105
138
108
129
134
105
127
128
113
141
136
107
123
109
145
104
141
109
129
141
137
119
144
143
109
117
137
115
134
135
128
119
102
143
104
106
140
149
134
135
103
147
136
136
149
141
115
142
116
124
131
128
109
134
132
136
143
139
145
104
118
121
129
109
119
111
112
132
143
142
109
109
135
143
116
118
131
134
109
101
104
122
138
141
131
116
150
139
115
112
136
150
132
144
150
139
108
146
118
147
134
109
134
117
147
111
135
131
124
126
107
120
133
133
123
109
132
140
124
126
146
125
116
149
131
107
129
108
100
136
113
137
102
148
101
104
100
130
101
114
116
119
138
142
127
109
146
116
130
119
127
112
124
135
146
148
127
107
147
129
140
119
120
134
108
103
124
126
111
149
139
127
122
131
135
105
128
113
118
146
100
126
113
130
139
149
142
135
148
103
105
122
140
127
143
143
107
133
132
103
120
132
113
108
126
116
102
137
110
144
105
134
131
107
136
144
132
101
114
125
109
133
127
143
114
129
104
114
107
134
104
110
130
118
121
131
100
149
147
126
138
109
122
150
128
111
126
119
112
137
135
116
122
116
126
106
106
109
143
142
142
148
103
148
133
104
142
147
107
112
115
134
135
100
133
123
114
143
124
139
105
109
103
108
127
138
120
137
120
144
141
130
150
106
108
110
125
140
127
134
123
113
108
136
108
135
111
121
142
116
102
121
105
137
126
104
100
122
120
128
113
129
111
132
146
114
148
124
138
122
124
144
121
130
148
103
149
114
140
121
102
101
111
105
142
129
126
140
132
150
100
119
108
114
122
143
108
144
142
147
127
105
137
103
131
147
109
104
110
144
150
118
137
109
114
119
121
139
127
124
123
120
103
135
129
142
124
106
121
125
115
114
111
131
128
111
149
103
121
127
132
108
125
144
125
140
110
136
110
144
124
129
134
143
130
139
107
101
142
123
133
100
140
130
142
120
100
138
126
138
125
129
137
129
126
117
105
134
105
141
148
142
107
148
126
104
126
130
123
107
146
108
130
108
101
120
135
150
146
100
144
113
147
120
148
139
120
125
111
131
140
113
108
107
117
120
106
104
142
124
101
135
134
113
117
126
126
133
129
123
127
117
129
132
110
136
122
103
134
109
125
120
147
137
138
143
102
130
134
141
130
103
101
119
119
133
117
111
115
129
118
136
104
101
130
119
140
130
121
143
117
123
123
142
111
108
109
150
140
122
107
131
145
104
137
133
136
119
129
107
138
142
108
137
111
147
121
141
146
114
132
116
124
107
145
145
134
117
143
110
126
132
122
112
136
146
135
136
134
111
121
109
117
101
136
128
104
144
135
115
129
124
150
115
104
147
131
116
103
129
104
137
107
146
123
105
148
142
105
105
137
118
122
144
137
134
148
135
113
143
119
101
122
120
103
117
143
132
123
106
137
141
148
117
112
119
125
132
115
139
150
148
100
137
134
123
129
145
149
121
118
101
100
120
139
122
148
146
129
124
138
109
116
129
145
120
112
148
143
136
124
134
120
102
135
114
124
131
150
125
109
122
145
140
128
146
124
150
132
139
125
123
139
126
131
109
123
143
118
123
131
120
141
137
104
143
110
130
145
116
135
121
145
146
112
118
139
124
102
126
118
106
145
141
141
105
102
136
114
111
129
122
125
112
146
115
110
104
119
104
114
150
122
129
122
140
135
118
105
145
100
110
135
146
121
119
147
108
108
150
101
126
108
125
129
136
143
143
116
114
150
100
119
147
104
101
122
106
138
148
141
111
106
112
133
130
141
146
114
116
111
130
138
140
148
139
131
115
140
119
105
137
141
124
121
137
144
144
145
137
108
118
149
145
112
124
124
127
122
101
105
128
148
144
109
103
134
134
125
140
120
123
116
144
146
128
104
133
149
113
150
128
135
105
104
149
124
124
119
131
150
129
117
117
108
138
117
117
115
125
127
109
109
112
121
149
131
150
110
104
108
125
149
134
110
105
145
145
137
146
127
142
104
115
140
101
115
143
133
148
135
128
140
112
115
128
148
136
111
137
139
139
138
135
135
148
116
135
103
144
143
101
127
145
136
144
105
127
131
112
147
132
108
104
108
134
130
127
130
116
134
105
102
131
111
105
140
110
148
149
128
125
107
120
129
139
142
130
131
119
119
146
114
119
140
123
139
128
110
140
106
143
109
138
129
125
147
101
115
130
129
115
100
144
132
111
129
122
120
109
105
130
141
125
143
123
138
127
137
115
123
104
137
150
116
107
117
118
117
114
136
129
128
102
111
134
130
142
127
146
108
135
119
147
122
117
130
140
117
103
100
141
135
131
150
117
116
117
116
129
128
140
119
148
102
138
108
139
114
116
121
119
134
108
141
150
127
103
146
145
103
143
103
115
123
139
133
144
134
103
104
141
146
148
124
108
109
115
105
126
105
100
135
127
110
122
132
122
113
128
126
138
118
120
104
114
132
125
126
118
137
114
117
122
148
135
125
128
100
133
136
141
142
140
115
131
121
122
114
127
140
134
106
146
118
142
126
134
143
108
135
120
130
106
129
142
149
134
120
141
132
101
118
145
139
123
125
130
143
148
145
121
102
121
128
105
145
144
106
100
150
145
145
100
109
146
105
103
122
129
126
101
130
104
140
125
130
121
100
126
134
137
123
139
102
117
107
122
149
119
126
146
117
133
131
110
115
123
135
117
139
119
144
149
102
139
105
115
149
140
124
108
140
118
101
114
134
103
142
128
124
117
123
131
118
131
146
139
111
126
108
121
141
150
129
110
126
121
130
101
124
124
146
109
132
148
106
131
142
104
112
139
121
125
141
136
110
140
127
144
101
122
148
131
102
108
113
135
137
102
137
143
110
106
112
131
145
114
138
123
142
123
131
109
141
128
141
101
108
129
103
126
125
100
108
130
143
143
131
140
131
109
112
138
116
126
127
150
100
150
122
102
131
142
116
141
107
141
139
129
125
116
131
137
145
102
118
136
110
121
136
140
136
126
134
119
106
139
109
124
119
123
107
133
122
135
149
139
125
147
137
113
140
127
138
108
130
131
124
119
121
148
136
143
137
138
104
147
104
109
117
102
121
131
101
105
109
145
139
139
113
119
136
110
146
130
114
118
117
125
123
142
103
122
113
142
139
119
118
103
103
115
138
103
150
146
100
146
134
136
103
121
148
129
127
109
107
121
128
125
133
139
147
113
115
110
114
139
125
147
144
121
144
122
123
127
101
121
144
106
111
125
116
132
129
149
103
115
105
118
107
137
117
139
140
106
107
111
117
130
137
117
146
150
120
105
142
112
124
140
131
101
128
134
105
117
116
101
122
132
102
120
135
103
145
126
113
137
132
118
106
115
104
113
134
135
116
125
115
145
104
128
110
108
128
110
121
104
129
128
103
117
124
129
148
143
118
103
129
119
108
141
113
146
134
117
136
143
139
109
141
123
123
114
138
140
113
133
144
131
113
149
117
100
146
147
131
137
100
113
128
149
119
133
147
119
105
129
122
112
100
143
103
116
146
122
101
148
117
131
123
116
135
145
125
102
110
143
139
112
124
130
138
123
130
119
116
139
107
109
143
112
134
119
138
148
107
111
116
137
117
135
123
131
130
133
108
149
101
131
109
143
122
142
149
150
100
110
130
150
135
121
133
117
149
124
124
119
107
131
114
150
133
121
100
108
131
112
132
146
106
123
134
114
131
136
103
113
123
142
131
102
126
149
128
115
100
100
106
113
126
140
125
107
149
134
149
137
109
149
142
119
148
127
147
127
129
124
146
125
137
121
145
132
104
114
101
140
146
125
106
108
150
143
107
140
122
127
106
127
134
137
118
147
136
106
110
145
113
101
103
120
104
103
121
108
118
127
139
131
142
139
115
131
112
143
111
102
116
110
125
125
125
125
148
139
122
136
131
128
109
139
147
118
100
129
132
123
127
148
130
141
150
140
123
106
132
110
124
114
137
141
118
127
126
140
115
141
107
114
141
113
132
137
119
148
134
123
140
107
114
136
121
101
137
110
125
107
130
144
101
142
150
112
112
119
113
122
150
125
111
117
109
124
118
139
141
106
128
128
103
101
131
121
122
132
111
117
123
150
146
117
119
112
126
120
146
148
110
140
106
131
150
150
100
109
127
102
147
122
115
139
125
109
119
122
109
101
116
137
125
105
134
101
141
109
116
107
129
120
131
142
135
150
137
123
101
135
143
136
108
115
143
136
134
133
140
120
111
102
126
125
133
145
116
119
138
122
129
140
114
133
103
134
127
106
129
131
131
126
115
134
126
134
134
143
129
111
141
108
150
132
114
127
120
140
129
121
118
146
142
130
120
101
128
139
129
104
119
117
113
141
104
117
105
133
134
112
125
120
106
106
103
142
146
138
109
127
125
148
109
117
106
142
137
125
135
118
139
104
143
146
133
117
143
105
114
103
150
147
149
144
129
144
131
128
132
136
131
126
138
141
122
150
122
127
126
102
126
147
102
105
136
102
109
127
143
126
116
132
139
144
105
110
126
101
141
102
142
108
134
100
101
113
121
126
150
130
110
114
148
139
114
107
130
120
118
131
150
113
126
115
144
149
110
110
142
112
146
116
135
147
138
114
101
136
129
116
110
129
140
141
117
120
105
145
126
102
117
111
150
108
145
125
128
121
132
107
107
138
138
105
125
141
117
138
125
121
110
105
118
106
124
121
107
114
132
132
101
137
139
106
108
100
115
114
101
137
149
124
120
115
129
139
144
119
119
124
112
118
113
122
132
141
113
113
108
103
113
133
100
145
136
127
146
129
129
101
107
116
126
115
100
111
128
123
125
106
136
132
115
144
111
147
117
100
146
136
123
128
116
133
107
146
100
144
148
112
137
104
144
144
121
137
118
145
112
122
147
105
144
144
125
147
136
124
137
105
145
123
140
109
130
139
144
112
128
111
101
118
100
140
113
149
143
135
127
114
139
142
121
122
149
132
140
114
107
109
146
122
110
116
140
142
146
118
111
141
109
111
131
122
108
134
148
113
103
128
112
103
121
105
108
140
131
124
147
146
131
111
107
122
103
118
132
149
134
143
130
111
141
104
148
140
102
109
101
115
139
126
150
128
150
108
137
134
148
133
141
114
136
121
106
125
129
109
119
119
110
111
142
108
142
106
148
128
113
104
144
143
112
128
123
116
118
104
114
139
114
117
140
125
110
140
118
129
133
104
146
123
103
114
114
135
109
148
137
145
119
149
127
100
107
111
111
115
132
133
104
105
139
126
110
136
134
119
100
127
134
112
150
134
150
147
131
117
131
150
120
143
126
149
147
136
117
100
107
115
139
106
141
106
115
108
130
112
143
119
130
108
131
146
144
139
150
130
139
145
141
118
114
117
130
146
103
148
110
104
121
131
142
120
150
113
120
124
100
147
102
135
146
102
124
108
134
124
104
150
102
127
101
105
134
127
121
120
139
107
126
144
148
107
142
113
144
118
139
115
112
109
138
139
117
126
144
121
135
118
147
139
134
143
132
148
120
136
123
139
114
126
117
100
126
148
126
131
146
101
113
121
113
149
141
109
128
148
104
140
118
143
116
123
120
147
114
116
143
121
118
110
115
129
128
110
128
150
116
121
135
143
114
136
126
134
141
115
122
133
107
131
123
148
136
109
113
123
117
136
121
146
115
105
133
113
109
115
112
103
122
136
127
109
148
114
146
104
123
128
117
109
107
109
139
148
110
109
119
124
120
110
122
106
100
105
106
137
101
102
137
133
114
112
137
135
127
105
122
121
108
131
142
111
105
141
144
147
140
120
108
100
115
106
121
121
127
147
127
130
104
141
116
119
132
132
115
119
124
119
123
100
117
100
126
136
107
132
109
112
116
115
138
145
106
124
117
129
146
136
105
119
113
127
106
116
118
145
119
123
147
134
101
122
135
145
125
114
128
130
121
138
104
112
107
101
124
142
138
146
115
120
140
105
117
142
107
103
107
134
117
117
148
102
123
144
130
115
112
119
122
108
113
107
133
135
113
111
124
145
142
129
137
149
134
144
112
102
126
123
115
121
140
138
118
126
150
117
116
114
143
127
129
121
114
147
148
114
148
103
127
121
148
108
111
134
104
130
104
131
122
111
133
107
136
128
123
113
126
136
109
103
127
130
140
136
127
122
139
144
147
122
116
147
127
145
101
114
128
119
124
149
148
137
126
127
127
110
135
135
150
132
119
126
124
116
133
113
144
111
119
143
145
142
121
139
122
102
138
113
139
126
133
124
146
108
133
119
135
143
100
105
106
106
150
127
129
103
111
140
143
110
145
131
117
148
133
123
110
130
134
143
118
121
121
111
131
138
117
134
146
141
110
111
142
134
102
126
116
127
103
104
100
144
134
130
122
110
117
112
140
129
113
113
121
144
112
128
141
123
104
108
134
139
129
130
110
125
138
105
145
135
138
130
109
142
112
124
134
117
126
133
104
101
127
105
105
112
140
110
117
138
140
122
125
108
116
150
120
138
147
138
127
126
135
132
100
104
119
137
123
127
102
134
130
111
105
150
101
119
130
131
149
142
123
125
109
143
148
112
115
148
142
126
120
124
101
115
119
146
101
145
106
129
119
145
115
136
103
101
120
102
134
106
108
122
131
127
141
132
119
126
125
114
121
102
103
109
110
133
137
123
137
125
135
102
103
114
128
112
124
112
138
126
116
133
143
125
133
143
133
141
100
145
148
112
147
147
149
138
112
118
110
146
120
138
115
132
123
123
149
110
136
125
146
112
103
132
130
101
142
143
144
106
125
104
109
104
119
115
110
150
104
104
130
112
138
106
135
142
133
128
129
130
106
145
140
131
140
121
148
144
112
100
109
130
132
144
101
103
150
147
127
140
132
112
114
112
140
143
119
143
111
134
124
136
114
124
135
143
111
145
148
121
149
112
136
137
109
136
141
150
139
126
119
103
103
144
101
127
106
120
125
148
122
115
101
106
105
116
100
126
121
135
131
102
134
133
142
113
123
127
116
108
117
123
123
114
128
117
121
116
125
137
110
119
102
143
137
134
106
147
145
101
125
129
140
116
145
141
117
134
122
106
103
135
135
135
149
115
123
143
147
136
146
127
145
138
100
114
111
116
109
139
150
147
107
136
134
144
136
128
120
114
148
117
112
143
113
144
148
140
140
122
113
139
119
142
137
134
126
108
132
108
135
113
121
107
148
126
131
137
139
119
140
130
127
121
112
108
103
135
122
134
114
127
123
100
106
122
115
133
116
125
142
104
113
128
120
121
145
104
130
130
124
114
145
134
116
125
106
120
143
141
106
143
139
126
124
114
135
101
145
115
108
117
136
108
125
103
113
136
141
132
100
143
134
133
121
146
101
139
134
141
105
116
114
109
144
108
103
130
119
113
117
140
127
110
133
138
134
129
118
122
125
120
107
136
102
109
147
106
101
144
130
113
146
120
140
136
139
113
104
131
144
133
135
108
104
143
114
115
150
141
126
105
128
136
150
114
115
144
135
113
107
121
106
103
135
150
121
122
138
128
103
144
128
102
117
125
112
115
114
112
113
121
122
106
138
103
126
118
140
119
106
115
114
140
137
117
122
120
103
110
116
115
115
129
121
138
122
127
103
139
143
141
108
118
149
110
146
103
129
140
140
108
138
134
127
125
148
118
103
124
101
140
148
109
126
123
113
121
114
107
149
133
102
137
122
124
120
150
135
106
108
147
138
145
134
109
119
115
132
139
147
109
124
138
129
120
115
145
132
141
102
126
141
112
100
100
110
114
137
125
112
109
139
128
109
129
101
134
102
148
119
146
124
148
150
131
110
106
150
130
138
128
102
129
106
138
103
126
128
143
145
127
146
135
131
110
132
101
150
112
149
135
142
131
101
102
150
125
108
147
110
147
118
140
128
116
140
131
125
130
145
108
138
143
121
127
120
113
103
104
117
138
108
121
141
120
131
123
104
116
149
117
105
119
105
105
124
122
122
110
118
103
132
142
146
137
120
136
107
111
101
134
149
122
127
148
133
141
101
127
133
149
103
114
104
110
105
127
129
104
114
108
102
114
150
143
105
146
142
101
119
114
111
146
121
139
147
101
119
108
100
103
137
117
146
127
112
129
121
117
130
100
147
114
105
127
104
119
116
114
140
103
116
134
108
119
126
135
103
131
139
105
146
124
148
125
147
109
113
100
116
135
104
110
100
120
103
144
142
115
135
105
125
101
137
139
100
139
142
102
112
129
125
127
110
135
118
141
129
104
133
121
136
145
137
142
108
150
131
101
106
147
150
146
125
100
121
148
139
103
124
106
133
121
120
140
148
127
135
114
104
142
123
104
144
115
141
103
147
130
111
108
128
104
122
144
145
127
133
134
141
120
128
110
130
145
133
109
125
104
117
120
113
106
127
134
124
111
126
133
107
101
137
127
110
108
106
145
101
107
132
119
107
112
122
135
124
148
132
117
106
123
109
118
104
118
150
122
102
145
102
109
124
120
120
112
118
130
134
139
141
104
141
131
106
109
139
144
120
143
113
145
135
114
137
137
118
141
116
119
109
125
142
119
105
100
133
141
116
148
105
101
149
130
146
149
142
144
142
116
135
124
143
149
147
126
113
120
104
142
128
144
117
148
116
146
110
125
104
110
103
138
124
131
145
101
132
132
141
139
132
134
109
105
133
126
112
115
123
122
123
127
126
102
105
139
127
111
133
136
127
124
128
126
128
100
127
109
140
148
115
102
105
136
101
144
112
122
147
144
112
132
126
147
109
130
108
109
130
101
144
102
125
103
101
125
146
112
113
136
116
144
145
127
144
123
105
138
135
130
109
100
108
142
100
104
140
101
108
138
106
127
100
102
149
144
134
104
101
104
117
139
125
134
123
128
128
111
102
114
127
149
125
138
139
115
115
111
144
115
117
139
128
137
135
107
136
146
100
132
136
116
116
105
146
147
100
149
144
121
117
134
127
148
125
124
139
134
105
101
125
109
121
110
137
129
111
149
101
115
123
134
136
132
107
120
104
100
107
131
130
148
149
135
113
132
103
111
124
136
136
102
107
110
132
119
104
144
136
141
137
145
144
132
126
130
131
107
126
143
129
142
140
146
145
134
148
108
145
127
105
135
123
128
105
119
114
141
102
103
109
119
144
102
126
131
120
111
147
138
110
148
112
121
130
141
135
142
136
109
150
149
125
130
119
100
128
117
120
130
119
136
114
121
102
110
130
118
102
137
144
105
110
120
147
141
129
128
138
129
145
119
142
126
103
101
146
140
115
118
104
101
100
118
134
106
126
126
117
106
101
114
116
150
105
108
124
103
108
124
113
106
150
132
136
117
126
144
119
136
123
112
150
116
104
149
112
145
136
144
144
122
148
120
131
137
100
129
134
149
145
111
149
119
102
101
105
122
105
101
104
137
119
107
130
131
103
105
102
136
140
146
146
124
138
125
150
128
102
128
145
111
119
105
115
112
109
114
115
123
150
109
100
124
110
134
104
142
133
140
136
111
103
144
108
113
138
146
100
117
144
108
110
128
109
115
122
115
130
119
103
127
132
147
139
145
149
127
125
107
103
138
127
104
140
105
100
118
117
135
139
138
102
145
137
123
114
126
106
112
109
107
144
144
117
100
106
112
138
146
118
126
142
122
141
106
125
139
114
134
127
147
134
137
128
134
112
115
149
128
118
109
105
149
125
137
138
145
113
144
132
139
146
150
139
120
138
150
105
135
104
117
100
101
140
141
134
134
137
106
116
114
121
125
129
131
120
104
105
120
131
130
103
136
102
130
134
112
142
110
128
101
103
109
100
146
137
150
147
121
129
148
134
103
111
132
150
101
105
119
120
147
122
121
150
118
115
120
100
131
134
103
148
150
136
147
121
103
150
131
121
126
116
146
132
129
134
106
138
113
115
119
138
118
127
123
149
100
142
134
116
119
140
116
143
120
132
150
127
110
123
107
118
118
145
137
105
121
127
117
106
102
103
100
114
138
100
110
149
118
110
114
119
101
146
129
114
142
141
113
123
111
116
132
140
140
102
121
139
149
128
122
102
134
106
124
131
116
118
141
142
123
138
111
139
127
135
133
123
102
100
139
120
127
104
141
150
119
136
139
107
139
127
146
107
148
118
114
144
123
108
149
109
104
115
106
138
115
124
103
131
123
119
122
121
109
103
142
144
134
130
130
109
132
106
142
129
101
142
145
121
111
117
132
131
124
115
115
116
104
121
105
127
104
124
103
131
146
104
101
114
145
128
112
142
145
131
119
137
126
100
100
150
146
109
116
121
130
125
147
110
104
110
143
139
120
143
103
119
150
143
145
139
133
147
125
132
143
145
148
107
105
133
128
129
118
149
147
145
101
100
119
111
146
109
140
127
101
126
146
146
123
116
131
150
143
130
127
117
149
121
121
135
111
108
144
108
124
142
147
117
129
111
116
133
137
146
129
134
107
132
110
145
111
110
118
145
114
134
120
130
147
145
110
139
138
139
101
118
132
106
141
129
117
119
139
116
141
113
134
128
104
119
110
144
149
134
118
129
128
150
129
149
116
147
122
100
145
132
109
142
101
131
105
107
135
139
122
135
121
123
115
110
122
137
134
147
146
135
103
101
141
141
148
141
125
145
117
148
129
117
125
149
104
113
143
107
103
111
134
119
134
107
108
111
113
140
118
126
100
135
126
119
102
120
121
134
129
139
135
103
144
107
116
127
140
129
139
104
108
138
132
121
133
136
146
110
125
127
142
119
145
119
132
130
147
120
147
119
131
112
107
146
129
143
129
100
101
117
125
140
106
140
147
104
150
150
108
146
102
113
141
143
138
106
142
139
103
102
109
118
100
108
103
132
116
136
113
145
143
136
117
113
146
116
105
149
138
145
148
108
105
137
100
113
124
135
104
139
122
108
109
109
148
118
110
124
138
128
103
134
140
113
125
137
136
147
110
104
142
128
143
141
133
129
118
132
141
117
139
126
133
122
122
135
103
121
144
111
138
129
116
145
105
150
144
128
112
141
123
135
146
131
108
150
134
109
109
145
132
127
126
127
117
136
132
139
123
120
122
140
144
102
126
133
127
101
109
132
116
116
131
110
113
148
150
120
125
142
127
129
116
130
136
115
126
110
146
107
147
103
126
116
102
119
119
144
126
130
136
103
147
135
150
118
125
133
135
147
125
136
106
149
140
100
104
109
143
126
124
115
148
114
108
141
115
114
145
124
142
123
104
113
128
102
106
139
143
135
148
115
111
106
132
104
101
107
103
140
136
127
101
105
138
112
149
124
131
142
115
116
117
108
121
112
103
126
128
128
150
112
143
101
128
117
134
120
117
109
123
122
124
148
146
143
101
112
136
140
132
126
134
103
132
150
125
128
144
128
141
128
146
116
135
120
115
147
143
128
105
114
131
119
144
142
125
126
148
101
134
145
143
130
129
109
107
114
129
140
144
102
127
139
144
100
103
141
105
130
115
107
136
133
145
115
150
143
128
108
112
136
141
150
139
110
116
127
136
115
147
106
130
146
110
120
141
110
137
104
124
125
128
116
127
139
147
126
131
119
103
117
142
123
140
110
121
112
144
101
114
148
106
112
117
127
103
124
144
102
145
130
134
129
105
143
103
127
100
148
138
144
103
127
146
122
128
150
107
125
137
119
117
141
136
150
127
149
108
117
147
139
111
102
102
148
107
114
106
101
121
136
122
134
112
101
125
112
116
111
101
145
122
147
105
141
140
145
111
103
132
147
133
103
133
143
143
107
129
144
108
110
133
136
116
145
134
120
130
108
147
108
132
146
141
100
120
124
142
114
133
100
150
102
108
138
132
139
148
125
107
133
108
117
100
131
100
122
123
101
112
103
133
106
147
122
124
149
114
149
109
124
102
126
107
125
134
112
143
136
131
101
119
110
112
133
148
144
132
125
102
101
150
101
126
103
107
107
116
112
147
132
143
148
148
106
105
105
111
128
138
130
127
137
113
138
134
117
125
139
112
108
149
111
139
119
123
144
119
120
135
120
109
119
102
143
139
114
112
111
116
136
145
132
147
120
144
114
111
145
116
116
115
106
135
112
111
100
145
146
132
100
104
100
146
124
145
125
145
126
116
143
144
137
123
148
107
104
110
125
118
101
146
146
141
118
138
102
139
105
142
105
128
145
125
116
150
119
126
125
101
120
102
126
144
126
115
109
106
113
131
125
116
105
140
103
130
147
121
121
126
130
145
126
150
149
132
110
132
110
138
123
127
110
144
139
144
110
103
132
138
120
103
126
102
112
131
127
101
144
136
133
124
133
106
121
129
110
111
130
142
122
109
144
104
103
145
114
118
122
116
124
143
106
130
124
147
138
120
134
146
130
132
100
112
117
147
129
142
112
135
104
106
112
141
128
137
103
145
130
106
118
115
118
145
135
143
115
121
111
150
145
130
143
137
148
116
140
139
120
141
131
109
146
128
120
105
112
141
121
132
124
147
110
108
104
143
113
104
138
127
129
103
102
126
144
148
109
145
122
150
119
127
109
125
142
118
103
112
136
121
115
133
129
140
106
144
116
117
118
104
107
110
137
136
141
136
118
112
143
123
126
141
136
133
108
107
140
114
121
128
109
122
147
114
124
117
122
100
140
119
105
130
109
119
116
141
106
146
114
140
108
133
124
101
144
124
110
104
140
145
114
137
105
112
136
144
134
133
115
114
117
122
110
133
126
107
138
137
150
131
129
121
105
103
131
125
120
121
109
149
145
115
128
117
114
135
120
126
118
130
142
124
144
123
137
121
101
104
101
126
118
108
120
112
107
117
135
125
127
105
134
119
109
143
108
124
145
123
147
106
109
124
115
130
139
123
128
128
113
126
126
140
125
118
131
130
144
126
115
133
131
150
145
149
147
144
117
140
140
141
150
123
125
112
109
118
116
123
129
119
131
102
133
110
110
101
170
194
190
143
170
193
146
151
188
157
163
170
147
183
197
199
192
197
167
191
147
198
194
177
182
143
146
156
199
143
170
176
173
192
157
142
197
174
181
172
182
196
161
192
146
189
141
187
157
149
191
176
173
153
184
188
146
159
174
184
171
187
164
148
156
142
160
200
189
152
155
196
160
156
180
166
160
171
173
189
147
158
157
181
174
175
194
180
198
185
190
192
196
190
153
199
157
175
169
157
161
165
155
151
192
148
170
149
156
197
186
158
152
156
158
185
175
171
189
165
197
152
170
162
156
151
179
149
161
143
163
176
176
161
187
187
169
174
196
171
145
194
181
174
192
195
144
145
142
192
186
175
173
146
150
152
141
188
156
154
151
193
188
192
141
186
183
173
166
178
198
193
187
145
190
165
164
147
171
153
171
190
142
151
158
186
177
192
157
198
187
175
188
145
155
180
197
154
199
159
188
177
194
192
181
175
148
155
182
178
164
171
153
190
176
177
185
169
190
191
196
160
199
193
172
162
155
165
195
198
180
192
158
171
172
155
187
143
147
162
146
155
183
188
147
158
188
156
157
144
156
176
148
168
155
144
149
141
191
179
192
180
151
170
161
165
174
193
172
164
157
189
175
147
167
140
188
147
140
170
154
193
200
163
185
197
141
184
158
168
154
156
153
198
145
183
174
184
191
151
140
145
168
168
194
172
180
193
162
194
154
175
187
194
140
181
200
142
176
185
195
179
141
190
179
189
197
187
188
157
195
167
158
198
171
176
169
154
188
173
152
154
166
195
181
199
172
181
200
140
174
163
142
181
158
185
143
181
156
181
181
192
154
192
188
179
146
187
193
190
151
150
168
182
147
162
170
183
163
151
185
195
168
194
196
141
171
184
187
175
145
143
176
193
141
166
178
183
179
148
199
169
142
175
161
170
154
175
196
163
149
179
186
144
157
153
160
161
156
194
168
187
176
158
152
188
162
167
159
199
175
150
145
182
182
151
175
148
197
175
151
142
193
163
164
197
160
160
189
199
172
157
143
185
181
194
156
194
145
195
156
195
159
178
178
164
196
160
158
197
146
172
162
156
164
164
173
187
154
193
175
152
145
195
147
151
166
183
151
162
147
170
187
142
148
145
178
144
192
147
149
156
188
167
173
193
185
142
151
174
152
148
166
152
164
159
180
184
164
173
182
151
162
179
174
170
166
186
182
157
194
156
200
170
196
154
159
190
190
150
163
200
149
164
187
194
184
187
153
189
196
187
177
198
150
191
152
186
182
178
152
152
148
169
169
200
162
182
178
188
196
170
197
163
161
192
149
193
159
180
156
180
158
146
151
176
148
160
184
143
162
148
175
165
199
171
193
192
165
194
165
197
156
158
184
190
149
177
189
186
151
181
146
142
193
170
195
158
195
199
148
158
144
149
144
140
147
177
198
163
190
159
170
159
189
148
159
157
165
160
167
187
143
173
200
193
149
161
195
194
194
151
167
188
184
153
161
181
177
165
180
167
141
175
195
172
182
147
183
190
141
151
172
156
167
192
171
175
171
161
172
191
200
183
155
151
145
168
185
148
170
176
188
183
200
184
191
151
154
159
145
195
178
144
151
181
163
193
181
157
159
152
192
172
194
196
140
161
159
178
164
192
167
179
145
175
159
167
144
158
170
155
186
187
149
156
151
177
148
179
193
191
168
178
151
195
163
197
189
169
189
170
191
170
145
180
144
145
197
168
179
177
152
199
154
190
149
185
151
195
152
175
182
188
147
165
163
189
187
173
193
200
140
144
186
162
144
143
167
161
141
198
165
140
172
146
145
147
174
157
151
166
196
175
174
187
161
182
175
184
178
142
176
200
174
165
191
145
197
154
180
158
165
164
176
181
140
169
170
199
163
181
160
161
192
189
158
167
173
143
153
176
200
161
140
150
178
185
200
166
200
177
162
182
170
147
156
161
163
167
154
178
190
177
179
157
200
174
166
160
197
161
181
178
150
175
153
167
155
148
192
173
171
148
159
166
161
168
199
166
183
154
159
193
150
174
162
145
196
161
166
156
188
145
183
155
152
177
151
195
192
153
162
193
154
159
174
155
177
175
197
144
154
191
167
191
161
175
155
159
161
177
193
154
183
152
167
165
175
141
148
187
154
184
170
146
163
185
157
184
155
193
195
160
169
178
169
140
148
184
146
171
197
188
146
148
192
199
146
176
193
173
172
161
153
193
178
156
163
150
170
176
158
200
150
199
158
140
164
190
142
195
182
189
166
152
162
166
193
140
198
147
178
146
192
145
196
190
177
146
179
151
179
158
184
184
162
168
140
165
193
142
191
195
190
193
144
140
144
171
144
162
192
193
185
145
187
196
189
184
166
179
142
142
140
142
174
141
166
197
175
174
167
170
187
194
174
190
160
148
175
195
144
192
158
175
190
185
198
153
163
195
197
192
193
169
197
196
192
161
164
191
184
193
157
164
160
166
188
169
184
152
157
172
192
165
184
168
166
197
177
155
165
190
198
187
146
177
147
185
181
191
161
194
160
155
167
166
196
180
191
183
164
180
140
153
162
186
180
155
168
160
166
166
200
194
160
158
145
186
164
180
188
196
142
177
168
149
150
149
199
144
177
148
162
173
186
187
147
186
141
198
180
154
159
199
152
151
167
192
147
158
180
180
169
193
195
146
193
183
199
150
191
169
178
191
175
174
195
150
193
179
145
178
195
177
173
145
154
151
198
183
192
168
172
190
145
179
178
172
164
162
160
183
154
164
175
164
198
142
180
148
140
175
189
199
200
170
187
190
183
152
181
188
166
155
198
175
181
176
144
187
145
177
141
142
172
200
190
143
196
144
197
153
193
140
188
151
189
148
158
171
140
176
175
168
167
164
170
170
159
177
184
196
196
140
193
199
172
156
160
144
140
158
165
185
154
181
161
155
153
160
153
175
188
164
167
191
182
144
176
147
186
150
188
177
144
169
162
173
199
173
187
163
195
145
154
174
162
144
186
187
168
199
150
158
186
150
145
187
181
198
182
170
159
186
165
165
174
198
178
180
188
166
196
160
191
165
190
188
146
184
141
154
198
183
164
187
173
144
165
186
198
141
146
182
173
144
182
158
180
198
154
140
191
160
199
174
141
148
142
152
146
146
145
173
193
152
181
174
181
196
163
153
156
169
197
195
193
188
147
184
180
198
160
176
173
143
174
157
178
178
200
166
176
143
186
157
197
158
198
200
197
195
153
186
158
179
175
171
148
141
152
140
157
164
182
141
193
192
180
178
199
157
182
145
160
191
181
154
149
181
147
200
177
150
144
193
172
141
155
144
141
158
143
161
171
177
200
149
162
145
188
149
191
154
176
184
162
142
151
162
185
181
197
166
148
175
166
173
179
141
168
187
164
164
200
146
156
157
152
158
168
200
171
176
165
176
146
161
184
188
163
158
183
167
143
146
179
197
169
168
190
140
200
148
180
168
140
178
140
194
200
161
195
200
147
188
147
158
184
160
141
193
197
151
146
145
148
152
141
171
187
141
180
157
149
157
189
153
159
167
185
189
148
190
151
161
163
197
144
175
151
154
143
166
194
146
171
176
146
170
186
149
146
184
152
200
172
199
184
156
183
146
181
145
168
162
170
146
146
188
178
177
157
179
142
140
183
190
172
162
161
197
161
161
190
182
169
141
193
189
142
176
163
146
145
153
156
190
165
174
194
158
164
196
197
167
154
185
190
140
154
178
164
196
167
161
189
170
195
149
172
185
149
153
186
182
160
158
168
187
145
151
154
150
157
154
177
163
198
188
185
195
182
175
143
142
168
193
169
146
172
188
145
196
198
184
178
184
181
167
157
198
174
173
143
200
196
192
199
141
198
166
172
175
182
155
168
175
164
192
152
200
200
149
173
194
188
169
191
155
156
166
169
193
193
141
195
157
184
175
141
186
162
141
187
158
145
154
163
160
168
154
178
164
163
154
174
144
194
157
154
156
155
172
160
155
140
184
142
180
182
190
183
184
184
159
153
184
188
195
171
151
151
158
186
143
183
183
161
176
156
184
177
166
185
184
151
193
150
192
147
173
185
195
171
147
146
176
173
153
155
188
198
154
179
145
171
184
164
200
180
166
188
161
157
162
196
148
166
157
152
157
190
189
176
142
185
198
174
166
193
195
155
162
172
161
187
186
162
157
162
158
167
191
148
148
150
163
152
178
158
173
144
190
186
176
163
170
144
199
154
199
185
194
175
189
189
170
195
182
166
180
193
176
167
148
177
200
159
196
163
192
149
151
176
173
184
169
144
193
156
143
190
190
160
150
150
164
166
170
163
175
164
165
171
185
169
193
186
162
191
187
194
164
162
146
164
187
146
183
195
142
176
184
159
192
170
189
174
178
156
163
161
150
147
193
167
163
199
145
155
145
168
178
195
147
195
183
190
148
161
189
151
177
150
156
151
160
142
172
143
162
144
163
197
161
147
155
192
148
186
154
155
166
165
153
195
140
161
193
158
164
145
142
163
188
145
187
152
186
165
149
166
160
192
160
158
173
170
155
148
172
162
143
144
196
200
177
179
147
180
152
169
158
195
172
164
194
173
140
162
164
156
188
157
185
176
195
191
175
193
161
175
149
173
152
165
185
153
162
192
183
174
161
148
145
196
148
165
147
177
145
165
172
196
154
174
168
140
151
140
192
196
191
150
183
151
178
191
198
170
183
168
191
160
140
168
146
150
190
184
153
199
191
193
142
195
148
141
200
162
187
178
191
175
180
140
144
183
197
188
143
158
168
143
199
161
185
154
149
163
146
192
166
170
163
145
196
163
141
144
148
159
188
197
163
146
188
179
162
169
161
146
168
171
156
165
147
158
142
181
189
196
176
161
179
188
192
149
162
180
187
141
185
154
148
168
170
184
159
141
149
200
185
175
159
160
162
200
198
193
143
182
177
151
146
162
193
155
186
142
160
171
154
148
178
140
162
151
184
154
161
163
163
142
164
162
160
168
173
170
165
200
152
157
144
190
162
195
156
165
165
144
195
183
176
142
192
178
155
200
184
200
164
193
176
174
161
175
189
199
145
172
169
188
182
200
171
174
172
150
160
188
188
195
148
159
145
184
165
150
195
195
147
196
190
195
146
172
142
158
182
166
161
149
147
159
160
177
151
196
172
149
173
190
182
142
192
143
142
144
183
181
162
193
151
151
171
169
197
167
152
146
195
184
185
174
177
156
163
143
175
173
180
186
140
163
153
160
173
182
169
194
196
160
184
177
155
164
176
199
151
193
150
195
183
153
155
197
149
150
161
158
164
162
164
143
156
174
169
174
167
153
157
176
141
161
146
169
153
191
179
147
200
195
171
150
152
160
152
144
176
158
196
184
176
161
172
175
156
190
195
187
192
157
173
162
175
177
192
182
186
158
198
174
184
151
186
190
144
191
180
150
165
143
144
150
152
146
156
173
190
167
170
167
160
160
167
186
156
181
174
170
169
162
190
200
154
200
192
150
155
169
145
185
153
200
145
186
147
142
186
180
175
164
181
193
162
140
192
200
160
167
163
188
140
142
156
174
190
154
166
169
140
192
187
170
154
163
182
160
173
172
176
182
187
171
165
152
188
146
192
185
172
178
166
179
200
163
192
184
186
199
142
141
193
159
157
150
143
186
159
169
182
174
177
153
148
146
166
165
184
141
151
162
199
172
146
147
181
170
187
190
199
158
193
160
188
185
179
171
193
157
165
155
146
147
140
166
169
185
147
160
155
189
193
190
190
178
161
154
195
192
140
194
183
178
184
141
179
154
198
160
181
180
183
182
188
170
163
178
186
173
170
168
179
157
167
141
172
180
178
140
166
168
179
177
166
194
165
200
170
144
157
167
146
187
190
184
172
150
161
177
179
194
177
188
159
152
170
190
140
161
140
197
175
183
189
185
152
198
159
198
157
153
149
193
195
181
177
150
193
157
190
186
179
152
147
160
160
161
178
163
168
183
157
148
168
150
140
182
185
159
166
176
176
153
167
183
168
174
188
192
193
156
143
191
180
159
165
141
171
180
145
151
145
144
156
154
154
185
179
170
186
158
172
190
160
183
184
174
140
189
177
190
154
184
168
194
149
155
192
194
156
144
179
183
159
164
144
143
157
193
184
198
148
168
140
191
195
161
143
174
150
160
176
150
177
161
192
173
179
197
165
185
149
193
195
163
147
179
172
168
146
155
181
150
151
155
166
147
156
141
141
176
198
178
157
151
166
161
189
157
189
196
186
164
179
165
155
150
187
158
171
171
153
169
177
165
189
168
155
165
146
140
186
179
140
166
141
177
147
194
153
180
158
186
158
193
144
153
199
194
178
191
180
193
200
145
159
197
200
172
192
170
158
140
185
140
184
147
141
155
183
195
200
199
180
159
142
189
198
198
146
189
161
172
184
200
152
189
146
185
179
166
200
198
167
156
171
186
161
156
159
173
186
198
148
198
147
141
160
151
183
159
167
192
158
149
170
194
177
143
151
190
161
197
165
196
172
180
177
199
166
165
187
160
176
178
186
151
176
185
153
182
173
197
160
167
161
197
155
191
159
173
182
167
157
151
141
171
174
167
145
157
162
193
161
187
159
178
173
167
170
187
192
158
173
160
174
189
174
162
185
160
142
150
177
147
178
168
146
170
180
186
160
155
179
178
145
184
174
192
150
167
183
167
174
168
169
184
194
191
179
176
143
143
165
158
157
156
189
185
200
172
144
141
172
200
177
161
181
182
150
190
146
194
171
191
200
168
162
189
142
167
154
157
167
156
195
140
172
142
140
199
149
177
154
162
150
173
168
170
173
175
147
154
173
189
168
142
169
160
178
182
141
172
180
149
166
153
191
181
184
163
146
160
165
152
156
154
186
172
164
171
169
144
177
190
173
153
160
175
152
163
184
180
141
167
200
149
192
176
149
193
147
157
158
163
178
177
157
176
197
191
148
154
198
179
193
161
158
197
146
159
141
176
181
190
175
140
147
154
200
163
144
158
167
185
155
190
178
183
142
167
148
148
171
150
192
157
141
144
180
192
193
184
147
145
200
145
164
140
157
176
196
184
197
154
176
173
170
168
167
151
177
141
177
184
184
151
197
195
177
197
188
165
192
169
194
165
163
181
170
165
198
183
174
144
156
190
175
170
190
178
197
158
155
163
196
147
160
198
180
158
158
181
160
161
157
153
191
190
143
191
188
190
178
194
157
152
172
193
183
140
170
195
189
191
165
165
149
197
197
187
194
185
145
169
146
186
165
142
156
155
173
183
152
193
150
163
148
197
143
199
187
147
182
150
170
178
184
172
192
181
186
166
185
177
193
164
183
171
170
142
192
177
161
182
140
182
161
143
173
166
158
164
190
152
190
143
151
159
170
160
162
170
193
143
173
150
161
169
196
192
195
154
193
178
147
165
140
158
183
196
184
140
196
180
167
188
199
190
159
193
185
175
185
157
158
146
189
160
158
189
165
157
189
197
171
178
165
141
183
159
156
197
167
144
167
148
157
142
150
155
199
150
142
184
181
160
181
177
150
145
165
198
168
193
174
173
173
171
152
194
165
162
151
183
175
153
155
199
167
191
190
164
156
141
196
177
183
174
194
161
185
159
155
169
160
180
166
165
177
162
197
151
150
196
149
165
144
152
142
199
165
197
154
156
159
199
187
163
188
161
159
153
140
182
180
189
154
175
188
162
162
146
156
168
188
177
148
191
181
177
173
147
150
184
182
146
153
145
185
182
155
180
141
172
164
196
195
155
142
170
198
161
155
144
166
144
195
155
168
172
199
159
187
142
144
195
152
185
183
155
182
191
176
146
159
183
164
180
172
161
189
171
171
177
164
159
149
176
171
161
158
192
150
142
166
184
173
188
184
192
187
151
168
193
152
144
178
195
200
160
152
152
181
186
143
145
152
150
157
171
151
143
197
171
169
172
141
174
167
171
180
184
199
164
153
179
193
196
173
177
155
165
181
169
193
153
169
150
182
163
147
171
169
183
200
185
195
157
199
175
141
143
155
162
175
200
180
196
181
145
151
180
188
162
149
141
148
145
191
195
178
163
156
191
198
141
145
146
184
197
171
185
181
198
143
199
183
173
195
159
153
168
189
144
158
163
141
165
195
154
178
172
195
164
142
193
171
179
178
185
176
175
175
193
163
199
160
175
142
180
198
165
163
175
176
145
168
179
200
140
148
143
177
152
192
163
182
160
155
162
143
170
142
160
170
160
184
154
172
170
167
185
183
175
175
197
191
163
167
165
184
191
145
175
154
161
172
142
158
184
186
188
193
160
179
200
170
152
195
168
189
174
173
162
188
150
158
164
155
156
199
169
176
162
161
187
155
142
183
182
140
177
199
182
189
178
194
192
161
177
200
141
162
144
198
187
183
155
160
176
180
142
141
187
145
173
144
172
164
146
171
198
146
196
148
183
150
196
155
192
175
171
155
165
148
197
159
150
146
180
143
158
193
164
191
146
171
152
164
154
195
150
163
170
186
156
174
181
161
153
158
183
186
147
145
195
142
170
163
147
148
182
184
199
188
148
148
191
192
174
142
158
147
169
153
176
161
149
184
176
197
142
143
147
180
155
170
184
176
198
174
172
197
159
176
155
188
174
197
162
173
197
148
181
158
180
199
180
157
154
180
195
181
199
195
176
158
166
167
158
167
151
182
197
158
173
143
167
169
171
200
192
199
194
155
184
196
149
160
173
187
167
141
172
148
190
166
189
181
165
191
197
186
188
154
159
162
187
180
157
173
199
189
149
189
153
172
152
178
195
147
149
191
158
175
163
200
175
156
182
180
193
153
174
195
176
182
149
179
146
146
161
195
153
152
187
181
182
148
190
183
152
182
161
153
142
186
156
163
164
148
159
180
166
145
154
193
173
162
150
196
171
159
196
152
184
171
145
143
162
194
142
189
156
179
165
196
175
156
177
185
144
190
143
151
178
195
149
186
177
170
148
174
154
150
175
169
168
146
198
174
190
200
188
171
190
145
191
159
197
181
166
174
152
164
198
148
168
200
197
164
183
186
170
178
191
167
142
148
141
195
191
192
146
196
140
152
151
147
182
183
142
182
142
188
182
163
160
149
140
140
161
197
149
181
140
168
179
177
190
143
149
144
197
177
149
193
150
166
181
164
146
140
198
181
152
141
162
194
153
199
150
191
190
155
150
152
140
155
177
168
149
150
142
172
186
144
154
194
145
200
171
171
161
162
192
188
199
172
162
143
164
157
187
189
191
183
160
172
154
178
188
194
198
149
200
189
164
142
146
169
148
154
188
151
173
153
143
174
187
200
154
167
157
186
197
196
159
170
172
159
178
174
154
171
167
163
142
186
165
196
171
171
177
142
197
142
155
152
141
185
156
197
164
177
149
197
173
155
154
163
154
154
142
156
154
149
164
152
189
181
176
176
197
200
176
160
185
184
141
160
163
193
189
197
172
161
161
192
194
191
187
161
147
184
195
170
161
166
197
159
158
193
146
162
190
163
195
141
157
157
199
159
185
140
148
183
147
176
195
184
191
159
174
199
143
157
190
166
168
150
180
185
190
141
169
158
161
189
165
167
179
187
141
194
188
146
196
196
141
197
144
166
192
153
145
149
168
190
142
160
193
192
174
181
151
144
158
154
161
182
178
163
180
162
160
174
143
183
182
167
167
172
154
190
176
143
196
188
192
177
183
195
156
195
160
186
192
170
156
182
177
173
177
172
158
180
170
140
188
153
159
195
175
181
192
198
166
199
171
159
149
148
161
141
182
146
162
181
146
171
160
184
199
186
152
172
145
153
176
155
198
167
200
177
178
143
176
159
161
150
198
154
184
195
198
158
176
177
196
192
174
162
155
179
156
187
166
165
151
190
157
151
199
194
199
158
191
156
175
188
149
199
165
200
165
192
153
149
180
166
166
176
176
177
186
167
197
174
154
181
172
166
189
148
168
198
171
185
189
156
198
175
177
187
172
164
167
186
163
192
193
155
184
163
195
186
179
173
160
199
181
188
178
145
190
177
146
152
177
142
167
152
169
195
157
156
159
162
140
158
170
170
155
188
158
157
153
179
144
193
181
169
144
151
167
179
153
144
165
178
148
182
179
184
158
190
200
197
148
179
187
148
198
167
196
176
182
199
143
144
153
153
197
151
185
191
186
151
184
141
167
178
178
157
169
147
142
177
147
188
159
160
170
173
177
189
182
152
190
176
182
164
197
160
159
189
199
155
195
168
176
198
172
155
173
160
143
187
180
155
180
193
175
176
142
157
147
184
152
189
164
163
140
158
157
140
167
145
142
147
183
194
154
199
196
198
145
165
188
165
144
193
191
181
160
169
174
183
194
164
167
164
167
192
186
180
142
184
161
155
192
160
144
185
167
174
169
191
168
153
177
181
158
186
176
143
168
166
165
162
161
183
190
161
181
144
175
154
161
182
150
179
186
165
173
180
199
185
165
154
192
180
169
165
160
168
184
193
166
141
144
185
174
149
173
156
149
167
164
185
162
156
170
186
168
190
170
176
173
156
182
196
193
153
175
187
186
194
190
164
185
188
176
164
169
143
185
178
187
154
191
192
181
181
174
152
174
162
170
190
167
182
192
170
163
164
148
150
182
142
194
161
153
188
159
175
156
185
195
168
194
148
179
152
196
153
143
197
142
166
160
178
147
141
170
172
150
194
141
183
148
186
184
181
157
163
140
187
167
189
183
197
199
151
155
178
173
187
188
196
157
167
194
144
176
199
184
194
195
168
168
168
192
159
190
200
198
197
156
143
199
189
179
191
157
191
180
154
141
188
197
182
164
200
187
200
154
142
193
181
182
170
200
183
150
197
165
177
171
182
166
154
160
177
180
146
178
164
144
194
179
169
142
150
171
179
158
183
177
198
196
169
154
169
163
179
162
155
189
176
143
155
176
198
168
162
182
150
147
181
188
163
148
180
197
188
189
183
165
174
151
186
189
149
173
150
181
173
170
158
191
145
189
173
159
162
161
157
165
165
197
195
163
199
198
185
143
190
169
157
172
153
148
199
158
149
141
168
175
187
162
142
173
184
159
174
149
196
153
180
179
164
153
196
174
195
142
148
188
178
146
140
159
199
187
179
193
199
155
199
165
141
174
141
160
163
156
140
162
180
185
147
147
151
195
172
177
190
170
153
159
172
165
199
197
167
152
187
180
169
159
185
191
163
185
172
190
197
149
150
194
180
142
186
184
168
183
151
173
178
185
168
166
167
155
185
183
192
176
191
166
158
179
144
143
191
143
155
177
168
197
183
190
198
186
180
154
190
144
142
177
198
159
142
187
154
179
145
146
147
178
154
156
191
150
189
174
169
182
140
181
165
145
164
151
180
193
164
177
179
143
140
180
151
173
197
145
168
178
145
198
192
176
157
174
191
167
186
187
145
187
156
163
145
189
199
145
169
180
187
178
160
173
160
141
145
189
147
200
160
192
195
156
149
182
188
181
142
140
157
193
167
142
181
165
156
188
189
145
169
158
172
147
150
154
156
196
193
147
168
176
198
186
192
151
199
143
160
142
184
153
177
176
150
145
154
159
149
198
198
143
159
178
164
176
158
184
198
166
151
200
191
186
157
144
150
152
200
178
148
166
165
142
177
160
146
179
175
186
151
185
188
167
173
176
148
162
179
184
192
169
142
168
175
155
150
160
150
155
160
158
182
157
142
191
178
146
158
191
146
176
183
168
193
177
168
189
187
152
174
158
140
186
144
198
167
162
174
148
143
163
144
165
182
190
179
147
143
199
170
189
192
179
187
149
191
200
154
140
195
160
190
197
196
190
180
195
191
168
190
147
195
170
183
185
147
164
171
172
163
142
157
175
169
142
168
174
152
199
156
150
149
145
148
199
174
164
163
192
177
149
165
180
185
197
151
142
164
172
184
185
164
145
192
188
189
176
150
175
154
191
192
195
195
194
192
192
173
177
141
157
198
161
182
191
164
183
155
171
173
146
149
162
195
197
149
186
177
172
190
179
185
162
165
173
197
190
182
171
189
173
156
160
198
183
192
163
173
194
189
165
195
170
190
198
146
150
180
193
145
163
151
199
144
163
182
148
161
173
143
182
145
179
147
184
159
161
150
154
184
177
143
164
167
187
200
149
147
182
197
191
150
147
147
166
194
151
175
171
170
192
187
165
163
164
162
192
178
178
161
147
159
143
172
184
179
170
156
174
189
184
169
155
188
168
156
159
146
181
196
141
157
169
155
169
192
146
158
200
198
152
141
189
178
147
190
175
150
153
174
146
182
166
155
162
153
174
191
189
184
181
152
171
156
183
148
200
173
174
164
192
180
172
186
150
181
158
160
151
200
142
155
194
167
157
192
196
187
181
174
171
190
172
187
190
151
146
167
185
156
153
198
146
140
149
186
194
179
191
166
185
160
142
192
181
159
188
146
156
143
163
198
151
161
152
153
178
167
140
198
140
170
145
150
142
179
188
150
160
166
163
146
169
145
193
147
197
199
147
166
173
170
174
177
145
150
187
157
182
194
155
156
141
187
184
189
185
195
143
167
179
146
199
180
169
141
148
178
152
180
197
167
198
152
156
196
155
190
195
194
180
162
177
150
186
160
194
156
191
149
191
186
157
177
157
195
171
161
199
188
157
164
157
179
166
167
145
180
153
182
162
176
146
140
178
175
172
198
167
185
143
185
179
142
183
150
154
181
178
156
151
162
185
180
188
142
163
148
161
149
153
177
197
161
143
200
188
184
187
191
140
143
162
160
170
173
170
144
142
170
191
200
140
150
147
160
166
196
162
145
145
157
155
148
186
178
195
200
153
198
193
155
170
149
189
164
174
158
170
197
175
190
176
155
147
180
179
170
145
194
158
160
175
142
191
163
144
179
195
156
151
194
192
140
188
149
200
160
173
158
182
176
142
166
162
183
161
172
155
154
181
164
176
148
195
187
185
193
196
163
182
165
172
155
168
160
160
185
152
193
187
146
189
166
199
144
182
187
172
149
175
189
181
154
166
141
189
159
165
180
196
157
186
184
199
172
189
198
149
177
160
194
146
168
186
158
190
186
190
153
168
199
145
196
169
143
168
177
187
177
145
153
175
190
190
145
195
142
165
179
183
191
154
175
164
159
140
183
169
193
173
160
163
196
200
176
157
197
166
157
159
148
194
173
184
145
195
186
149
164
159
180
198
168
194
193
191
194
155
192
170
149
172
185
141
189
174
185
177
161
192
142
174
195
172
199
170
192
190
166
145
160
193
189
176
149
160
177
145
141
181
192
178
172
155
191
148
167
143
180
152
172
156
181
195
168
199
157
170
187
197
159
155
157
193
171
147
186
199
183
188
180
151
190
170
171
189
189
155
200
156
150
196
181
164
170
145
144
182
185
177
155
169
167
158
196
188
155
162
153
187
195
152
172
197
144
188
200
198
172
171
195
160
165
193
171
156
165
161
146
200
145
181
140
147
144
190
179
183
158
196
150
151
194
160
147
172
200
191
144
182
177
143
165
160
190
162
181
200
200
195
191
185
165
148
193
147
149
198
144
174
172
181
142
163
184
194
179
200
179
168
167
199
178
191
150
168
154
166
161
156
194
172
148
156
172
164
192
195
149
159
164
166
183
162
197
174
181
198
167
158
175
145
143
161
181
156
172
168
156
183
182
158
156
173
163
190
178
141
170
186
176
173
190
177
199
172
176
185
177
155
167
159
149
169
199
160
169
181
152
197
154
171
194
184
141
195
193
191
179
143
185
161
160
155
183
149
161
156
178
144
163
164
187
184
175
174
187
196
166
194
173
195
196
179
167
191
153
168
147
148
143
189
192
161
158
167
194
198
200
156
170
147
140
179
186
165
163
180
143
190
140
199
195
143
195
184
164
198
188
177
165
186
148
185
140
181
190
161
190
152
148
180
141
172
144
162
189
157
149
154
159
191
195
166
194
172
193
164
141
188
193
147
183
174
141
149
181
199
144
197
187
193
187
174
161
178
157
175
197
198
160
184
161
186
192
200
176
156
179
168
194
153
158
140
172
196
174
183
197
180
160
177
186
144
160
142
186
158
193
179
195
154
185
199
177
183
142
192
185
182
188
189
191
141
180
195
149
183
181
186
180
151
184
187
182
175
173
172
178
142
144
154
150
167
170
194
153
194
142
160
196
155
159
162
147
197
173
173
145
168
162
179
154
145
191
161
154
154
141
164
164
151
191
184
175
165
175
167
142
174
173
149
161
160
181
153
174
187
165
164
173
161
188
188
166
198
187
162
186
183
160
175
194
147
168
161
168
166
177
143
164
199
189
191
154
172
141
142
198
184
172
176
152
168
158
170
196
152
191
169
151
142
150
197
141
199
140
144
188
185
184
163
179
188
160
154
163
194
193
156
145
191
181
148
158
178
183
193
182
149
142
162
186
146
145
168
180
152
169
167
187
151
140
159
175
140
174
182
165
155
177
179
167
184
191
157
174
155
160
164
142
162
141
162
193
173
140
188
155
171
159
184
163
148
181
168
183
161
147
171
161
164
189
184
166
151
180
140
192
172
152
166
196
175
177
183
177
157
174
169
184
186
148
144
145
191
163
198
151
187
175
152
171
188
158
179
146
168
192
142
164
153
141
177
171
145
162
151
170
169
142
188
181
153
195
167
148
195
162
174
193
189
199
188
149
164
197
181
178
147
173
190
194
141
174
193
193
159
150
156
196
145
165
148
140
195
189
200
174
150
200
148
185
191
194
142
164
185
155
158
141
166
163
188
142
151
179
178
179
143
143
188
195
198
177
157
155
146
188
166
178
186
184
174
184
165
144
185
163
197
173
197
192
193
174
193
146
167
160
182
142
189
147
199
163
169
148
175
182
194
163
147
171
176
183
195
186
154
145
195
161
167
157
163
147
184
190
161
190
149
152
195
151
142
173
143
174
175
188
184
173
153
146
173
143
147
188
192
146
152
198
199
182
172
181
168
145
195
149
174
160
189
166
187
199
151
192
162
169
187
200
148
155
180
185
141
183
149
144
187
149
170
149
193
189
198
163
185
158
184
180
167
173
180
199
198
190
187
155
187
152
140
196
183
198
189
197
187
195
154
144
193
168
150
171
162
152
164
191
180
163
160
200
180
163
145
188
172
154
162
197
185
200
186
146
184
183
161
193
188
152
159
152
191
145
155
163
140
142
165
165
147
175
186
190
166
173
170
150
151
150
155
191
193
178
148
170
171
156
189
180
176
146
165
193
182
153
148
145
154
148
199
149
194
166
162
161
154
148
167
181
147
161
168
159
186
167
195
163
177
163
195
146
167
179
199
145
155
159
163
141
175
180
158
175
169
166
176
155
147
199
146
178
140
153
151
195
167
175
181
194
196
181
184
173
173
175
147
174
178
155
144
174
177
191
169
194
187
194
179
140
192
165
190
151
177
189
181
167
167
181
150
168
181
151
163
168
190
159
169
160
164
146
168
162
199
168
178
153
140
190
166
192
171
143
161
175
170
167
164
147
200
158
157
142
197
162
166
148
167
165
154
192
185
143
144
174
164
176
166
174
173
197
178
179
162
141
191
170
155
152
192
182
199
170
172
193
200
177
189
197
147
149
160
175
164
181
142
157
181
199
154
155
160
168
147
171
182
152
187
147
189
152
172
199
157
184
151
152
184
176
192
198
140
158
151
152
173
169
166
151
182
178
196
176
177
175
148
182
154
180
167
176
176
196
168
155
178
194
186
184
163
193
164
185
177
197
167
148
156
195
144
157
151
147
140
197
176
147
152
196
167
158
171
148
172
192
151
143
188
185
158
182
147
153
194
192
141
186
154
195
162
178
184
174
194
199
168
171
177
156
173
190
160
197
140
162
183
173
198
184
166
199
191
140
195
185
154
171
155
161
181
168
162
195
141
153
150
196
144
159
185
168
154
157
156
143
173
182
152
145
180
175
164
169
192
178
171
193
142
182
143
182
169
181
149
182
146
169
145
160
151
161
152
147
159
180
151
158
191
161
169
171
189
193
161
152
186
161
159
195
184
176
171
141
147
186
175
183
175
152
148
146
152
200
162
185
190
177
194
191
168
140
190
145
153
191
197
178
170
181
179
157
152
178
171
172
151
179
188
199
200
191
145
145
169
195
147
177
164
161
187
146
148
191
171
162
198
154
179
149
199
149
185
193
157
170
186
185
190
168
185
187
174
162
190
192
191
179
149
164
188
150
169
166
190
194
143
141
187
177
192
179
195
184
158
177
178
197
169
183
191
197
200
178
172
167
196
147
166
160
183
184
177
163
196
165
184
170
189
173
190
143
163
184
154
169
191
142
174
188
152
170
189
197
199
193
180
184
185
159
171
183
188
193
156
186
191
186
198
173
143
193
142
182
183
150
198
183
146
193
162
156
185
195
175
184
173
173
168
157
186
186
161
154
156
183
200
141
197
148
143
185
167
177
177
184
175
144
193
146
189
186
160
190
161
170
199
185
198
161
167
200
172
166
199
188
158
158
142
156
192
169
156
146
174
151
156
156
197
150
156
156
160
140
166
158
167
171
200
187
147
155
160
166
161
184
153
155
173
149
154
148
198
197
181
155
153
200
168
179
179
191
189
166
166
172
182
171
197
160
142
176
151
146
199
167
180
162
173
180
195
199
165
196
182
193
140
178
176
195
174
166
156
162
163
175
162
173
153
148
168
190
182
165
179
195
169
160
144
196
156
156
194
189
148
175
190
148
163
147
164
155
192
195
193
190
195
174
191
187
190
143
153
150
167
169
172
197
195
180
179
171
156
165
170
159
178
185
145
163
180
156
180
194
168
177
176
156
162
194
140
166
171
143
182
177
150
159
150
194
155
182
172
170
161
196
193
186
195
154
153
187
185
182
167
190
165
199
167
166
184
155
197
158
161
195
198
177
161
173
153
167
140
171
182
185
151
169
165
164
193
196
186
178
178
167
170
141
154
142
147
190
198
179
184
195
149
186
181
146
152
150
145
141
194
185
155
173
178
182
171
200
183
152
176
176
149
174
179
162
184
161
157
164
140
190
144
196
200
149
197
141
169
161
172
157
160
190
148
169
176
193
197
188
170
159
166
182
181
152
151
171
171
148
173
162
143
182
182
160
195
144
190
191
198
179
197
150
197
146
163
158
185
179
189
179
192
189
167
193
162
159
192
158
190
163
191
198
166
153
149
198
196
183
182
171
149
189
182
156
187
160
195
194
157
150
146
199
199
175
167
160
176
141
200
148
177
149
150
144
140
172
165
192
146
159
200
168
152
147
196
160
191
143
178
187
183
167
196
189
162
199
200
177
178
189
155
153
150
196
198
192
150
147
181
196
178
184
144
142
144
154
182
168
148
161
143
142
185
189
147
159
164
191
190
156
180
160
161
174
152
163
192
153
151
180
174
170
172
143
184
177
157
164
169
156
181
168
179
192
144
197
186
177
162
150
176
156
149
176
186
181
151
198
192
163
170
178
190
196
198
185
147
168
168
162
145
166
185
193
150
148
172
196
150
176
156
198
182
152
160
171
190
165
163
188
156
166
142
176
184
174
149
157
191
180
182
182
188
180
176
144
146
143
183
166
156
194
162
182
168
197
152
161
152
159
197
166
185
166
167
171
151
164
146
199
166
193
186
175
191
149
170
145
191
171
157
185
198
186
141
196
166
159
176
151
200
192
179
164
197
200
183
162
150
198
197
158
186
184
194
155
171
186
163
160
148
174
192
146
187
162
190
178
199
148
183
164
173
180
143
197
194
165
165
142
148
165
188
172
146
155
187
181
151
157
174
168
157
198
154
165
166
174
184
157
148
153
186
150
166
162
196
183
165
147
157
169
173
170
171
194
195
167
185
153
147
166
156
179
162
144
154
152
170
168
162
153
173
197
150
199
196
164
151
153
163
169
182
147
172
179
200
193
153
142
165
150
156
165
157
165
175
182
154
170
155
163
179
169
187
168
184
199
185
172
157
162
152
154
155
168
185
149
147
151
150
181
171
167
184
192
153
163
157
184
140
178
189
165
162
188
186
189
165
188
149
149
199
156
140
165
160
145
200
170
164
190
180
195
194
149
155
191
143
109
112
149
136
138
108
136
122
109
148
109
108
113
143
149
130
133
123
133
105
102
112
147
141
115
143
132
133
104
118
121
117
117
142
146
119
126
125
100
103
125
121
128
131
132
106
100
146
149
115
139
121
104
131
144
117
116
119
114
106
143
141
110
149
115
147
143
115
132
122
126
127
114
130
122
112
149
121
147
125
117
107
142
110
149
128
100
147
119
110
147
142
107
142
149
147
131
135
112
109
149
143
101
134
128
128
120
114
141
119
114
138
127
127
102
108
126
135
114
127
124
133
105
130
113
108
128
129
146
116
100
110
147
125
150
124
135
110
112
148
134
150
127
150
131
145
134
138
109
120
123
105
133
146
105
150
102
104
109
108
135
127
139
128
111
102
123
137
117
130
138
134
126
147
122
147
112
105
148
122
150
109
114
122
148
133
146
135
138
123
123
101
116
138
102
103
139
101
140
118
101
149
121
130
123
143
135
100
146
108
105
120
119
148
149
108
108
122
150
114
118
145
107
106
102
135
145
127
119
148
118
145
149
118
138
138
119
140
111
112
133
127
144
100
124
143
148
137
115
114
122
112
140
109
148
119
102
135
130
144
111
121
123
109
150
148
102
102
109
135
150
131
139
140
133
101
110
104
118
149
146
103
111
103
107
136
142
127
134
150
143
125
125
109
143
138
126
145
112
140
129
132
121
100
147
141
144
109
133
110
116
135
104
135
102
141
132
126
149
110
139
111
114
123
121
138
149
122
146
127
143
110
144
140
125
122
117
119
143
120
125
140
123
149
115
126
149
147
140
109
138
103
122
119
106
107
114
113
105
101
113
150
121
116
123
122
130
103
112
142
137
144
107
143
132
118
103
131
132
133
116
124
141
104
105
148
137
104
100
144
126
142
123
108
123
125
136
140
100
128
124
147
107
126
144
148
126
133
137
104
132
139
125
101
111
123
126
121
109
133
108
136
119
139
139
125
149
113
124
144
127
118
128
126
143
103
135
101
145
120
106
121
137
146
100
119
133
135
143
113
140
128
102
110
102
136
140
150
127
134
139
132
108
137
149
141
129
102
138
125
112
114
131
124
119
123
112
117
113
109
127
127
128
146
105
125
142
149
116
103
147
136
134
111
116
103
137
149
146
143
143
104
148
133
132
135
140
147
145
108
118
105
121
147
138
127
128
106
130
126
125
119
137
127
113
124
149
109
138
136
141
149
136
123
126
103
142
107
150
138
104
119
128
111
141
108
142
142
147
115
139
121
133
130
102
140
107
124
119
149
131
146
110
103
136
145
142
101
132
147
125
134
103
137
133
102
118
106
120
123
145
100
131
120
129
118
135
145
149
121
129
122
100
125
136
109
139
145
137
132
124
127
137
139
123
125
135
148
111
123
103
146
150
138
108
129
114
119
101
134
100
103
148
122
117
128
149
125
122
148
149
120
123
146
135
108
144
125
109
124
131
114
149
131
119
140
107
100
128
138
107
134
141
141
130
117
107
109
103
100
123
106
109
127
126
122
101
103
130
132
116
139
134
128
125
140
132
128
112
138
122
113
148
110
126
133
119
149
107
117
124
120
134
132
146
145
109
114
129
112
100
121
106
106
137
120
117
143
122
112
138
116
137
125
137
103
148
129
107
133
102
109
117
118
114
149
131
148
145
132
143
116
106
104
103
134
138
104
131
128
135
141
108
105
132
123
120
132
135
135
135
119
101
146
104
119
147
104
134
115
130
126
143
143
122
114
139
137
142
102
145
139
126
145
103
108
106
149
139
120
108
112
117
121
121
125
140
110
137
114
124
141
140
126
143
140
113
138
108
107
143
103
113
149
134
149
148
132
143
128
109
128
119
145
141
106
112
113
105
135
134
126
115
138
109
112
105
142
146
104
147
148
132
124
118
112
125
125
123
116
145
129
121
100
108
107
110
116
109
109
118
118
117
138
132
150
105
147
122
106
104
129
144
124
110
118
144
133
146
144
143
123
143
127
100
143
124
125
114
139
134
122
132
141
123
105
147
117
148
129
140
107
108
101
144
113
108
123
148
149
117
109
111
114
149
143
107
142
112
132
115
129
133
121
103
138
150
118
146
146
121
100
132
107
105
107
148
118
110
110
115
126
135
125
101
130
130
126
129
141
114
130
112
129
134
140
132
104
142
122
101
127
111
104
142
143
129
128
121
131
126
104
150
129
137
113
131
133
120
135
105
106
117
129
125
111
106
102
136
149
136
146
105
110
136
116
147
122
134
139
122
104
132
118
122
105
127
140
133
115
142
104
103
149
100
105
125
132
105
110
100
123
130
102
144
108
108
100
141
126
129
112
128
133
143
111
111
150
150
125
115
129
131
116
148
112
146
137
139
142
113
147
145
107
139
108
133
150
103
124
117
138
144
121
110
114
117
103
105
124
129
101
119
113
142
135
144
145
115
144
102
141
124
138
122
120
129
137
120
119
141
140
117
102
137
126
146
107
141
115
112
117
146
136
124
146
123
113
144
106
140
126
135
143
106
145
128
124
110
108
122
110
132
148
128
122
107
128
101
117
106
140
128
103
103
148
113
136
131
116
146
113
130
143
129
129
111
123
138
148
105
143
148
100
117
132
101
141
116
112
128
139
140
144
102
123
128
119
115
123
145
148
112
143
115
114
128
108
105
109
115
112
103
105
114
138
111
100
116
130
143
110
124
125
110
123
132
124
106
148
115
138
123
132
127
148
143
122
137
105
127
105
146
113
150
120
122
117
146
145
133
135
127
116
136
121
139
106
138
135
137
119
131
143
107
129
117
113
143
129
108
138
138
108
102
150
147
121
148
127
116
137
134
139
117
108
134
123
118
149
143
127
145
146
137
113
145
139
134
113
105
147
136
128
100
134
138
127
141
121
115
130
103
135
113
149
127
119
142
145
107
115
116
126
127
147
105
126
132
121
110
118
110
144
129
142
128
127
108
148
135
148
144
119
124
111
133
115
105
139
145
112
133
110
100
141
125
130
142
126
149
120
146
145
102
108
124
140
106
126
106
113
105
120
146
100
124
134
105
133
114
137
126
105
116
145
128
134
134
101
142
116
123
120
138
138
101
101
133
120
118
143
121
145
114
134
147
109
136
117
143
141
134
120
108
102
113
116
121
150
104
113
117
116
128
109
148
143
138
133
123
121
108
150
123
140
122
131
139
126
150
141
131
130
113
115
147
113
145
142
133
100
131
130
109
143
131
106
139
107
115
135
109
109
127
126
141
142
122
135
147
141
149
113
114
112
121
123
128
116
150
120
115
104
123
142
109
140
137
130
146
105
101
100
129
114
125
120
106
102
116
123
136
134
105
150
120
130
137
112
119
144
123
119
114
141
140
115
132
108
102
143
114
105
126
131
104
112
133
116
115
131
103
135
105
118
145
141
134
135
142
128
101
145
147
150
109
130
142
140
101
146
118
134
100
145
122
115
136
135
133
140
108
108
124
137
141
102
144
126
107
135
106
111
125
150
148
108
128
101
124
144
116
148
137
106
143
118
127
113
137
111
112
120
116
116
133
135
141
140
149
142
109
108
102
143
124
144
105
110
133
145
139
100
114
148
144
122
110
100
140
111
120
116
149
117
128
102
131
137
118
144
126
122
143
130
126
138
106
101
143
139
139
112
105
105
136
103
104
100
107
110
147
118
127
143
117
127
143
136
125
138
147
149
105
121
118
102
111
149
121
121
119
113
148
113
108
144
122
136
148
105
126
148
128
114
133
101
116
135
129
134
146
134
149
133
109
116
114
110
141
110
135
142
109
124
134
134
105
103
144
111
103
106
127
131
100
139
123
116
100
137
133
115
144
150
135
131
101
139
132
114
127
127
107
146
125
125
100
146
123
101
136
144
103
107
150
141
126
105
116
100
101
136
144
126
123
132
145
110
113
142
107
114
146
121
144
111
124
109
121
119
142
114
143
123
126
122
119
120
129
139
112
100
105
116
100
102
147
100
114
150
123
115
102
101
109
121
109
102
102
106
138
142
143
132
139
142
122
112
112
142
119
150
109
100
146
104
105
101
105
110
141
117
139
135
138
136
113
147
135
110
103
117
126
129
136
132
113
108
147
132
118
130
134
137
145
111
102
141
142
137
136
131
127
130
149
144
146
101
106
148
141
132
119
120
143
104
136
142
129
119
119
104
108
127
117
141
107
105
144
110
107
112
104
132
145
113
107
107
147
123
109
118
122
120
135
108
137
127
142
146
145
125
127
132
101
112
147
106
127
102
141
135
132
119
111
132
136
140
142
149
146
104
145
145
108
128
116
138
146
140
108
114
142
114
124
107
111
142
115
150
149
133
136
105
127
112
132
138
120
100
114
103
123
103
131
147
103
124
110
116
130
132
123
118
101
146
121
115
119
135
112
144
125
120
150
133
139
117
112
140
150
149
103
108
148
106
127
101
102
141
113
108
118
112
107
121
128
132
103
135
149
109
113
103
109
120
124
107
128
136
145
147
146
125
123
107
134
115
144
124
116
137
113
140
108
103
116
129
113
115
111
129
138
128
117
136
110
134
100
150
114
126
129
111
150
106
104
111
123
150
135
114
114
105
110
102
144
109
138
140
119
141
118
113
100
115
113
117
111
136
128
133
113
142
107
133
112
118
116
117
133
124
123
143
142
120
119
147
135
104
118
111
133
131
104
102
100
108
103
114
145
148
121
106
117
111
136
110
148
111
126
111
103
111
139
103
137
110
127
143
130
134
132
119
115
125
101
126
114
126
149
148
101
139
111
114
142
105
108
115
120
131
122
114
135
146
134
107
130
121
122
102
136
100
140
133
115
147
129
113
111
102
119
134
105
122
123
142
143
127
141
146
102
124
129
142
106
103
117
136
148
120
143
135
140
127
100
139
135
143
130
120
117
141
124
146
143
132
125
100
123
147
130
148
137
115
102
148
105
115
110
114
115
125
140
135
150
110
103
127
131
138
121
129
132
116
142
139
121
122
125
145
132
100
100
141
144
126
129
114
133
128
150
124
120
123
126
110
138
124
138
145
119
120
144
139
115
122
105
133
107
116
147
107
115
107
100
143
109
149
146
142
125
127
116
103
148
108
106
125
136
113
140
127
114
141
106
136
130
102
138
108
101
128
143
107
116
140
138
139
121
121
137
145
130
112
122
139
148
142
108
101
141
116
139
109
120
143
150
114
144
138
118
122
136
120
114
109
112
121
107
104
106
119
137
143
117
124
143
123
104
150
145
134
142
144
112
115
137
130
124
116
117
100
125
104
133
145
102
120
109
100
117
130
142
105
109
136
122
103
115
150
113
123
127
114
119
147
119
136
114
139
129
141
133
146
131
117
114
149
124
101
131
103
131
112
120
122
117
141
147
136
110
123
129
100
116
108
122
108
136
121
118
126
150
147
122
105
150
109
130
121
113
136
121
109
100
124
135
129
108
146
145
140
111
141
100
133
116
113
114
105
140
130
103
110
134
128
118
102
139
102
140
148
101
128
127
104
149
113
123
129
142
127
116
116
146
102
130
131
107
118
145
115
140
100
138
103
150
128
105
148
130
110
111
129
126
124
107
142
135
114
149
108
119
128
106
130
104
148
107
112
104
143
126
140
140
114
142
123
100
109
138
143
106
111
146
139
116
107
100
142
131
149
125
118
122
102
145
116
148
119
133
139
142
104
120
108
114
128
103
113
123
100
139
129
145
119
141
142
114
106
119
109
119
134
100
147
138
142
109
118
117
107
110
103
122
143
118
113
124
121
101
131
112
111
142
139
119
119
148
100
136
119
128
138
130
131
126
138
127
101
107
131
132
121
119
104
129
119
122
105
142
114
134
132
117
115
103
138
124
102
144
149
115
141
123
100
130
134
143
112
130
128
104
122
145
132
122
120
138
128
121
123
137
106
134
126
126
128
119
124
111
126
109
114
131
125
148
114
144
108
107
143
135
108
149
140
131
148
114
144
139
145
127
123
133
103
109
139
103
106
141
118
141
136
102
150
130
144
130
103
104
131
122
140
134
128
145
137
139
120
117
145
128
126
118
128
136
112
146
127
143
142
146
113
102
117
149
105
116
137
133
120
138
129
117
126
147
121
138
112
122
121
136
147
140
144
122
125
144
136
115
110
111
123
107
129
142
142
116
130
101
119
106
134
149
119
129
130
104
131
105
130
109
122
127
123
148
113
114
125
123
123
133
137
126
117
149
113
115
130
119
100
141
100
143
136
145
143
107
140
100
106
140
113
150
133
122
139
108
113
115
133
147
106
110
132
111
123
137
149
125
139
139
118
126
139
117
100
108
127
150
107
126
121
124
117
102
111
102
133
115
142
114
141
113
105
106
125
135
139
118
112
125
123
127
140
119
105
127
116
105
127
128
135
124
147
134
143
107
129
146
119
130
101
119
143
112
108
131
100
137
110
113
116
114
112
142
124
117
106
119
112
119
102
102
106
100
143
105
141
135
109
143
139
120
137
149
120
149
107
118
120
128
134
135
140
118
113
121
112
109
124
141
131
127
131
125
130
135
137
128
133
100
103
149
121
124
147
102
145
146
113
145
134
134
142
140
133
144
102
141
130
132
104
123
136
113
120
102
126
118
111
104
127
136
102
129
120
146
110
136
129
128
109
132
126
134
100
144
126
119
128
131
135
103
142
143
142
134
135
124
131
107
143
108
122
118
122
121
142
128
133
143
123
148
122
115
100
118
131
103
135
119
139
102
148
122
144
146
145
126
109
130
140
105
134
140
137
115
146
134
119
138
100
104
107
114
138
102
112
119
145
117
132
144
103
112
126
147
131
140
136
121
128
114
111
134
107
145
143
102
133
124
148
139
138
105
147
121
134
103
121
110
135
130
106
121
136
104
144
119
148
131
106
148
103
115
121
114
139
114
131
126
121
120
127
116
119
117
133
150
130
109
103
122
147
140
107
116
129
149
117
138
137
125
113
109
139
147
126
126
128
123
104
141
143
131
108
106
132
116
102
144
108
133
113
107
104
133
146
120
147
101
106
128
142
149
146
144
148
116
144
133
108
144
131
140
129
136
122
132
127
145
115
119
127
127
116
104
105
142
139
130
102
138
120
112
125
139
109
140
119
130
124
121
119
121
144
138
100
141
141
139
109
125
120
133
122
110
150
133
130
112
133
150
118
105
114
100
147
147
148
134
111
113
137
130
118
111
100
143
109
128
117
112
148
139
119
113
108
124
140
150
148
113
148
127
142
128
149
106
100
113
113
115
139
114
100
141
104
122
125
129
133
149
133
132
125
141
100
109
122
128
118
113
149
136
140
105
129
108
111
135
108
111
109
133
116
129
126
134
135
138
146
108
118
150
133
137
129
141
119
148
150
114
124
129
134
129
150
146
124
143
123
147
136
127
137
110
137
102
149
107
119
103
123
141
107
127
100
142
140
135
119
124
139
142
143
150
110
104
134
132
112
149
114
115
101
137
122
144
101
132
103
113
116
146
100
150
139
107
110
139
119
137
136
138
112
118
105
110
100
150
138
145
138
128
129
110
138
130
141
125
118
144
146
148
108
118
137
131
122
111
145
148
118
133
124
135
108
120
135
127
122
140
148
107
104
130
126
103
149
118
119
104
120
121
128
144
146
115
121
129
147
114
100
147
142
111
134
112
116
135
105
113
136
105
133
106
134
116
134
148
137
116
139
101
124
134
147
115
122
112
111
144
115
117
125
109
113
113
101
116
118
124
146
146
145
119
124
146
104
117
102
131
136
112
119
123
119
116
108
101
124
142
109
100
127
142
108
123
104
110
115
142
144
106
119
150
128
117
101
124
111
112
109
100
107
137
121
145
147
123
107
110
129
102
139
117
146
107
105
125
101
131
103
105
117
127
104
126
130
148
145
142
137
141
133
110
116
116
132
137
114
105
118
117
137
150
120
129
135
109
144
140
144
108
131
120
150
108
105
101
107
139
144
117
110
116
112
148
101
102
106
130
149
123
109
112
116
125
141
117
101
101
108
121
100
106
110
120
127
105
112
146
107
102
143
137
144
138
118
144
120
114
144
133
113
145
141
103
136
111
115
125
146
107
134
114
117
110
113
106
130
150
102
116
132
110
150
110
109
100
114
127
111
120
112
131
127
134
105
137
144
129
108
135
130
136
131
146
148
108
118
145
138
142
118
134
101
149
135
101
117
119
133
108
114
149
107
145
106
124
142
127
146
104
138
148
103
146
111
137
135
102
119
141
137
100
115
121
111
122
126
110
134
141
126
147
129
127
149
138
114
136
124
135
109
137
126
109
136
149
131
101
127
109
135
108
131
105
127
119
109
115
131
111
127
113
124
138
126
149
144
110
147
125
133
122
101
111
135
126
138
132
131
147
117
121
134
147
113
106
141
113
140
101
139
143
131
137
111
147
128
108
140
102
130
100
105
133
139
100
114
114
104
137
109
100
112
131
135
107
139
148
129
116
110
129
103
147
134
104
107
120
118
117
116
138
129
149
134
122
125
145
109
103
140
117
130
100
137
115
122
143
128
123
140
106
126
138
150
117
126
101
147
141
139
105
111
120
123
127
146
121
109
150
122
113
106
127
133
103
130
106
140
127
106
139
126
107
122
123
125
150
139
138
103
110
148
148
145
117
111
115
138
114
147
106
133
144
128
108
128
133
138
149
143
100
113
126
130
133
137
107
126
109
107
143
129
149
137
145
125
136
107
110
138
132
134
131
114
139
141
139
149
121
139
119
111
143
133
124
105
114
129
108
131
118
103
116
147
123
105
143
146
123
150
100
118
131
119
149
114
110
131
149
150
117
142
131
141
117
113
101
117
132
146
139
113
131
114
145
141
148
105
148
150
132
118
141
113
114
145
101
134
109
143
127
103
110
131
126
147
137
103
106
115
126
126
126
124
149
114
122
105
102
134
101
104
150
114
126
138
116
129
100
145
142
139
147
113
128
108
128
146
143
113
149
100
133
109
121
104
125
143
134
101
138
116
133
115
129
107
113
141
148
137
125
143
115
117
102
141
113
100
133
104
137
112
111
111
150
130
149
118
137
140
150
111
130
130
148
107
113
134
102
129
109
118
114
107
117
104
142
138
125
119
107
131
137
124
102
115
137
132
135
104
150
141
100
143
137
103
136
142
114
117
133
125
112
145
106
117
131
144
111
133
115
111
104
117
112
135
102
115
127
139
147
107
139
104
142
110
104
105
124
124
107
146
139
148
148
136
127
136
109
102
147
150
100
107
111
121
106
100
127
105
138
102
123
108
136
103
124
143
107
150
144
101
121
109
118
103
106
118
145
145
108
108
147
138
150
139
106
126
131
115
114
123
125
107
111
124
110
114
103
133
138
148
142
149
144
133
121
121
104
125
122
107
100
143
149
123
120
107
111
113
129
132
128
124
109
118
105
105
114
129
132
121
111
133
110
116
150
103
142
126
131
113
111
140
104
127
136
150
147
114
122
134
121
117
130
104
142
117
144
114
125
138
108
103
128
140
107
124
138
135
106
131
116
109
103
113
144
121
118
149
115
114
125
101
122
103
126
145
121
141
117
145
123
104
142
109
100
119
123
110
106
117
143
140
121
134
114
126
138
118
119
115
138
127
108
102
135
135
123
121
129
110
122
143
131
146
122
129
135
141
109
150
144
123
143
125
101
142
118
146
109
145
119
139
132
125
128
105
136
127
114
125
135
103
131
125
130
147
104
127
108
124
133
137
115
140
110
134
120
130
108
114
146
135
122
144
128
123
106
111
124
127
101
141
141
129
111
148
103
106
119
143
144
139
110
133
124
147
149
118
149
103
121
100
144
113
106
109
136
133
107
133
133
133
142
131
133
132
137
100
106
150
107
122
106
139
105
122
149
116
106
106
149
130
132
143
140
149
121
145
111
128
102
128
145
138
134
139
117
134
106
114
116
112
122
101
130
146
119
115
123
120
146
137
103
139
103
103
100
114
123
120
126
135
118
125
112
116
105
112
104
109
103
105
105
116
109
109
105
109
144
108
113
129
137
103
132
125
121
126
145
123
105
139
101
131
127
148
116
147
135
104
140
132
130
111
104
134
128
100
130
137
145
114
125
112
126
130
115
124
102
126
130
143
112
145
129
141
117
128
111
141
102
139
105
141
113
126
149
118
128
140
121
150
122
126
128
117
135
146
142
115
134
102
113
135
128
138
115
119
133
100
137
124
100
102
112
130
118
105
148
139
114
127
101
130
132
103
116
140
149
135
113
106
114
144
106
100
150
122
142
107
110
101
111
100
101
112
140
128
115
106
144
135
113
110
120
126
123
108
148
128
121
126
136
107
108
120
110
103
132
101
110
148
124
108
138
122
104
144
122
150
135
137
102
109
145
139
128
120
103
124
123
149
114
144
112
114
113
124
105
138
142
145
145
144
146
103
102
136
140
119
104
143
100
140
109
105
148
122
145
122
112
123
127
142
126
130
132
117
122
125
108
108
113
118
136
115
131
100
105
116
102
132
111
149
134
141
140
116
121
132
111
115
137
129
147
114
131
131
108
108
134
116
134
134
128
141
134
136
103
107
104
100
128
101
102
121
114
108
107
129
104
116
120
144
103
121
103
138
111
118
109
112
133
105
112
127
133
100
128
121
145
110
147
130
136
120
124
120
115
144
117
129
103
101
121
132
133
149
134
117
123
137
141
101
146
150
127
128
131
100
117
127
123
105
114
122
110
123
108
120
144
137
122
106
142
103
143
134
132
111
126
110
127
108
126
126
106
122
118
113
120
136
126
123
105
101
104
121
122
127
140
148
105
137
105
104
111
130
122
101
138
126
145
102
133
133
150
103
128
140
143
139
100
128
110
117
106
111
146
107
111
127
115
150
143
123
113
124
116
142
149
111
125
142
104
116
102
148
107
131
142
112
122
126
121
140
133
114
129
102
105
114
101
100
108
123
116
120
123
107
142
132
137
121
103
127
148
114
146
112
106
122
105
100
117
106
109
121
122
101
134
123
109
137
124
143
139
117
136
148
130
135
143
139
143
144
114
116
143
107
106
101
143
123
136
106
146
117
111
116
137
114
126
148
142
147
138
145
100
137
122
107
148
133
134
123
134
149
113
128
141
103
126
145
129
100
132
110
123
125
123
116
109
129
150
142
114
133
126
127
125
123
148
149
148
106
122
105
102
108
149
111
108
141
107
147
122
131
125
149
104
125
112
131
141
133
146
148
126
122
125
102
149
105
100
132
142
117
118
143
103
145
108
143
105
111
133
136
102
125
145
110
137
145
110
105
128
107
147
117
144
140
131
134
115
116
102
142
101
108
110
143
144
143
109
101
149
144
148
144
113
135
134
148
145
124
113
103
144
128
131
115
142
111
100
114
135
129
149
145
125
126
149
145
136
149
125
123
125
122
113
109
130
131
107
134
107
122
133
139
100
125
114
136
134
110
141
122
123
100
138
103
106
133
137
101
138
150
142
146
123
119
109
112
136
114
131
109
131
130
125
142
133
125
101
103
107
147
121
142
101
106
137
101
136
125
137
138
104
115
113
123
126
137
112
109
141
120
125
120
143
104
134
133
101
142
104
127
139
148
130
133
106
106
139
135
101
112
132
113
141
130
135
146
135
119
104
127
107
130
111
127
112
139
117
128
129
145
141
141
115
136
104
108
121
149
108
129
144
128
149
148
134
100
105
137
123
107
125
124
103
101
129
105
137
121
123
115
116
143
122
105
104
147
118
113
104
138
145
104
111
100
138
137
123
131
136
146
147
134
129
121
148
136
121
130
101
142
129
109
112
105
150
106
107
139
149
120
118
135
104
144
122
132
121
132
126
106
150
125
108
123
140
117
122
104
125
144
138
103
149
138
110
103
104
101
117
102
111
129
133
120
117
149
101
136
144
126
109
112
145
129
129
109
114
149
117
121
124
101
103
104
150
102
132
114
116
132
150
102
110
112
105
120
118
109
149
106
129
135
107
112
115
141
131
137
139
143
143
120
119
143
100
137
118
109
129
123
145
137
133
121
112
101
123
118
110
129
128
130
136
134
119
134
140
128
111
124
123
102
106
134
135
147
107
119
114
142
125
108
104
105
128
118
133
128
117
145
134
144
141
137
110
116
120
100
116
118
119
113
147
141
126
113
102
144
134
149
139
126
102
126
113
136
121
132
102
107
128
149
101
117
103
115
100
126
127
134
112
111
140
111
105
131
135
114
106
127
124
143
146
119
132
106
118
120
150
122
117
116
131
106
147
110
143
100
140
143
136
102
130
135
131
110
137
114
146
146
110
119
136
145
144
138
134
140
140
149
109
112
114
104
111
128
122
144
107
103
102
118
133
126
124
104
147
102
135
129
134
103
120
128
147
117
116
129
125
138
147
139
109
115
110
135
141
109
113
141
121
124
129
132
102
114
100
138
133
125
131
133
105
149
127
118
139
131
126
143
139
125
125
148
131
114
121
116
108
100
126
143
148
142
105
126
109
121
111
142
143
119
135
137
104
138
111
120
148
115
147
139
147
133
144
123
128
122
111
141
115
124
105
114
122
124
103
122
127
100
125
124
114
133
141
103
113
138
102
146
106
145
124
144
148
123
107
131
136
100
125
101
123
102
141
137
101
132
112
118
117
107
103
144
123
119
116
116
135
150
148
105
121
125
137
121
145
142
136
145
100
130
127
132
108
148
126
138
123
150
142
111
106
126
125
122
101
118
142
109
120
123
144
103
106
135
145
149
112
123
117
138
104
138
116
117
107
149
113
126
138
129
149
100
134
112
107
114
150
102
121
142
101
117
117
142
128
136
124
115
143
129
138
121
125
106
139
150
131
125
101
143
125
110
141
119
149
121
137
109
140
131
117
113
127
110
149
100
104
127
132
117
115
114
103
143
112
139
109
106
149
107
149
101
128
116
143
131
132
118
124
126
117
148
123
137
121
109
144
105
146
130
147
119
125
114
148
142
142
150
139
130
123
126
108
104
125
133
119
128
141
101
147
113
143
102
116
142
114
119
131
110
147
123
109
130
114
100
147
149
116
145
123
124
104
105
126
127
125
123
114
149
122
136
113
128
125
131
107
129
113
149
113
125
147
110
124
138
110
125
125
143
121
147
124
148
135
148
103
117
141
100
142
110
131
117
147
112
107
141
127
150
134
104
140
140
113
130
134
139
114
135
150
124
126
109
107
134
131
111
148
142
114
134
122
119
117
134
125
124
105
122
112
146
118
108
126
108
118
130
127
141
148
123
102
140
139
110
107
102
145
108
113
135
147
119
139
135
139
117
130
146
133
106
106
135
149
134
107
102
118
111
118
128
127
123
146
139
103
141
104
150
102
101
110
147
104
119
119
125
141
128
101
139
103
145
118
133
117
125
110
110
150
102
118
149
114
124
148
146
105
146
127
126
146
138
150
108
133
101
116
106
145
130
114
134
144
147
140
121
144
143
119
126
123
109
137
150
106
120
144
104
123
146
141
144
132
111
125
129
139
105
104
130
100
118
121
137
126
131
147
118
118
103
113
128
111
123
143
147
138
132
109
116
101
132
122
132
125
132
141
134
109
116
134
111
116
115
115
122
148
110
104
111
123
104
102
132
147
143
150
149
137
118
147
125
105
109
127
127
130
134
150
132
128
147
144
125
134
116
113
121
129
118
147
135
135
115
100
100
139
142
150
141
134
101
150
125
118
148
129
130
121
131
132
102
126
132
112
110
132
137
116
113
121
143
141
129
138
100
111
111
147
100
143
117
143
138
117
130
120
108
108
140
150
136
139
112
147
105
113
112
148
150
138
120
100
149
131
125
134
143
137
120
140
119
147
131
142
129
145
126
109
138
148
149
133
109
102
142
132
108
113
108
148
124
126
100
105
138
135
137
138
117
128
116
139
135
102
118
133
123
129
107
129
150
107
126
123
144
126
106
150
108
124
108
148
118
118
148
120
120
140
130
133
112
144
145
144
114
132
102
127
132
110
142
141
130
142
129
117
147
107
101
121
102
115
129
107
132
132
135
101
122
147
114
120
110
136
146
114
124
112
110
145
119
148
125
125
139
134
108
112
119
127
145
139
125
139
115
144
145
101
122
147
128
119
150
128
107
123
141
123
129
117
116
130
126
138
109
129
139
124
134
109
127
103
150
121
120
108
119
147
115
127
149
106
143
130
140
116
146
126
100
100
117
106
141
110
136
140
128
141
140
137
124
130
139
136
106
137
147
100
142
140
114
129
121
142
129
132
124
132
109
100
117
104
129
144
109
149
140
132
135
109
142
145
136
136
145
107
106
121
111
125
118
141
150
149
108
148
141
130
128
123
138
115
134
112
111
117
143
105
132
119
146
149
132
109
116
110
128
117
147
117
113
140
132
149
137
140
109
147
114
135
132
116
146
133
126
104
103
141
150
104
134
110
149
130
122
136
134
120
147
106
124
134
132
126
145
145
148
113
126
126
150
132
103
110
136
117
139
102
115
109
127
103
118
121
104
133
101
124
101
112
100
116
111
117
102
143
148
101
102
128
132
116
119
106
104
133
150
144
130
148
125
106
146
116
149
100
124
112
111
114
128
108
147
100
103
134
101
121
106
133
140
124
101
117
105
147
149
109
102
140
141
150
135
139
139
116
132
106
141
126
138
125
129
127
135
111
107
100
140
114
139
147
126
102
130
111
105
141
139
122
142
116
123
118
145
102
119
124
114
132
123
128
115
138
103
138
133
110
143
125
135
140
118
145
125
116
117
102
138
129
112
133
105
148
121
148
145
103
135
136
148
100
135
142
112
125
110
123
126
137
100
115
130
118
141
118
121
111
117
118
103
132
129
146
103
117
108
143
114
126
124
124
135
116
120
101
143
121
114
123
115
149
114
149
103
114
134
119
144
150
148
105
111
124
100
102
136
148
150
100
146
137
131
104
139
135
105
103
139
138
134
139
122
149
147
139
129
147
150
103
129
140
141
100
115
138
135
105
147
101
127
102
147
113
128
110
133
107
117
148
149
127
129
117
101
143
126
110
131
141
121
149
140
119
138
134
108
116
120
133
141
138
113
134
118
150
139
101
135
124
130
136
117
110
143
140
139
132
108
148
137
146
107
144
128
144
139
112
140
144
102
143
146
125
101
101
145
147
127
118
100
136
128
111
123
124
106
103
128
146
110
150
121
122
102
101
120
132
102
134
132
118
103
142
127
110
117
146
117
127
104
126
112
117
112
134
123
143
130
149
106
136
118
130
129
104
124
144
129
139
118
109
114
115
149
141
125
132
132
119
131
102
134
102
129
112
129
118
145
139
122
150
121
117
120
132
113
113
127
114
105
110
142
141
149
109
146
100
102
129
130
102
115
120
127
142
137
116
124
136
119
138
128
140
104
137
109
137
119
137
143
132
122
119
145
123
127
107
117
140
102
111
142
142
111
117
131
149
126
125
134
150
112
148
138
112
126
100
138
104
121
109
116
125
123
129
125
119
105
106
137
133
124
147
111
111
106
150
141
101
127
138
123
139
138
100
123
135
139
138
144
112
122
112
122
106
130
136
112
114
144
121
147
123
110
146
117
121
112
147
148
134
124
126
101
137
106
146
113
122
117
140
127
128
104
100
150
131
127
100
127
132
112
145
141
122
148
105
126
147
140
104
117
127
149
142
102
103
119
103
150
132
115
148
150
130
103
149
122
113
146
124
122
101
137
102
121
123
130
150
120
101
119
120
123
101
119
149
106
114
133
124
109
106
147
147
130
137
119
118
102
132
150
109
114
112
148
135
138
128
137
105
111
138
111
143
111
145
122
110
118
130
112
104
148
136
131
136
144
132
136
126
142
149
102
124
131
111
124
136
122
118
125
138
129
114
138
138
100
111
140
147
129
109
101
129
145
112
142
150
112
120
124
133
137
102
130
102
148
148
120
104
138
106
131
119
122
133
110
148
129
107
131
137
133
107
150
113
117
106
135
131
102
111
131
101
122
101
140
118
105
114
131
108
116
128
138
149
149
110
125
113
147
125
143
104
135
107
106
123
132
139
141
104
114
111
122
135
106
117
115
139
134
141
143
118
118
107
111
100
116
123
145
142
127
114
133
142
126
146
111
131
111
148
132
136
147
132
136
102
117
121
114
114
147
135
147
117
121
147
137
150
110
100
119
133
139
121
129
143
112
122
135
104
120
124
102
102
138
133
125
123
111
120
112
145
112
103
110
110
116
114
133
111
138
118
102
104
101
119
112
125
128
142
115
101
133
118
103
110
101
149
126
107
139
119
136
123
110
108
123
113
102
121
145
144
117
124
124
133
120
137
116
109
131
130
142
141
146
114
104
117
112
103
137
142
110
130
133
117
124
129
131
111
110
104
131
120
133
134
140
101
100
117
132
117
137
147
109
112
137
134
101
129
117
144
112
124
138
126
105
148
150
121
113
101
132
132
131
147
109
148
130
100
147
129
150
123
120
100
100
117
143
141
114
103
142
136
105
139
144
148
113
103
127
125
139
148
149
118
109
108
126
135
130
111
116
112
116
148
147
117
106
110
114
113
133
149
121
105
102
112
107
105
115
131
115
107
140
100
145
126
124
100
122
149
137
111
107
149
111
106
140
121
102
106
120
145
128
132
106
141
138
111
128
104
138
109
107
104
119
106
113
138
116
113
150
127
114
117
145
141
116
132
100
128
117
136
109
149
113
104
119
130
116
121
114
121
133
127
112
103
120
125
132
109
138
136
112
101
135
118
108
113
116
115
144
134
128
138
114
125
100
120
125
106
148
127
146
123
150
116
115
147
133
116
144
146
141
149
102
115
138
103
111
129
108
126
130
102
114
132
113
108
114
112
137
111
134
148
123
142
105
138
141
127
116
108
117
126
104
103
101
125
147
129
134
124
134
130
118
100
137
123
138
124
121
137
116
118
101
133
100
138
111
132
123
127
149
107
109
137
101
102
122
138
138
125
117
104
122
129
143
140
106
137
119
122
106
132
140
127
126
117
128
120
131
102
140
125
125
148
131
102
132
145
148
104
111
124
137
118
150
102
102
108
144
140
105
104
113
116
127
123
132
111
142
136
130
139
135
123
109
149
144
141
135
125
130
103
140
146
131
137
149
121
105
138
115
134
105
120
141
102
130
149
139
125
134
107
106
136
136
113
123
115
101
121
100
140
116
125
117
134
139
130
122
110
146
135
150
144
127
108
140
149
130
114
148
132
138
144
132
139
130
121
103
150
109
150
138
113
134
147
114
148
141
113
133
109
116
100
112
126
105
108
107
122
104
107
109
105
124
149
131
136
104
133
110
146
118
102
135
111
120
110
130
134
111
104
130
136
105
103
132
143
121
117
117
112
113
108
101
112
110
105
143
109
105
120
113
133
116
144
101
112
147
147
130
125
142
123
118
120
121
129
110
105
120
118
103
119
118
123
141
137
109
107
143
113
131
134
118
124
130
133
110
138
131
115
103
114
111
142
121
138
127
104
136
143
120
123
110
120
116
111
124
116
117
132
103
134
114
145
102
150
149
117
140
113
122
147
125
115
146
113
103
115
133
114
132
136
103
118
133
115
127
100
133
120
103
174
148
141
145
146
173
144
188
194
142
199
156
169
168
155
149
182
153
193
150
165
195
159
159
164
196
141
171
188
194
141
165
163
175
165
145
180
187
142
159
157
172
177
165
187
166
153
172
166
193
180
168
163
174
196
155
181
174
167
168
194
190
150
198
147
157
151
199
167
164
185
165
154
183
142
161
199
195
184
195
161
161
145
156
194
173
184
177
182
170
159
193
199
195
196
186
180
200
162
175
175
191
174
156
179
198
163
180
162
149
188
189
187
154
181
162
147
174
145
143
170
188
195
191
146
195
163
165
164
141
163
146
173
183
177
159
193
199
161
164
176
156
176
151
142
164
170
161
188
152
191
190
198
182
197
155
197
183
159
184
192
173
180
146
186
186
160
180
163
159
186
183
186
146
146
184
182
176
174
144
149
162
152
157
147
163
196
140
195
183
142
177
144
182
161
166
155
195
186
149
145
159
160
170
149
163
150
157
166
180
161
184
179
182
172
199
163
146
179
189
179
184
200
142
149
150
172
175
168
171
200
163
171
144
197
190
144
174
157
155
158
149
188
153
148
163
188
177
155
166
176
147
169
150
199
158
172
164
174
182
199
194
150
153
170
190
167
157
152
186
150
185
169
185
153
169
172
198
151
170
190
146
174
160
186
190
147
166
169
196
188
144
177
176
183
154
189
192
153
141
146
173
169
144
173
192
140
150
146
159
164
146
149
190
141
189
140
198
146
182
151
200
160
172
148
164
199
180
144
148
188
195
150
169
196
194
196
150
194
149
168
196
195
190
194
180
170
177
184
184
175
196
147
193
151
143
168
147
167
158
196
198
158
159
183
191
144
173
148
157
148
162
192
152
141
145
144
165
160
150
151
148
180
194
149
168
190
160
185
183
199
190
162
154
167
189
177
144
191
154
148
154
176
160
161
198
140
168
157
177
200
188
145
169
175
185
182
191
177
179
174
160
184
162
143
163
180
185
148
153
175
155
172
175
149
180
156
148
197
161
184
168
176
146
190
197
163
148
181
187
194
175
143
198
167
146
161
174
155
176
149
152
177
148
178
176
150
166
167
181
161
171
190
167
168
143
181
191
197
183
180
170
145
142
165
185
193
156
193
142
178
166
168
155
196
194
181
177
193
187
198
167
147
144
181
190
182
157
144
154
188
153
185
152
155
162
146
194
194
164
194
193
152
184
188
187
181
143
189
154
147
198
161
166
190
180
141
187
174
188
145
194
178
199
167
197
170
168
168
160
188
170
158
196
197
176
195
185
160
190
148
191
200
183
173
151
152
195
143
167
154
188
160
179
156
188
172
154
156
200
146
146
199
142
167
150
147
169
196
165
161
154
174
196
174
179
158
151
170
189
192
191
147
159
168
160
154
171
192
194
159
186
180
149
148
162
167
158
193
188
152
169
177
141
186
164
188
195
150
174
182
195
178
161
174
186
161
194
161
190
144
197
153
160
159
199
194
152
170
172
143
178
168
181
163
195
199
156
184
179
151
196
166
143
165
149
167
143
159
147
163
191
155
158
152
161
177
145
160
179
163
192
182
190
146
181
142
169
189
200
142
140
193
158
146
192
183
163
179
142
143
184
196
191
175
190
196
168
156
186
179
194
162
161
200
172
198
175
148
150
197
149
179
175
143
165
176
152
184
143
173
156
160
187
152
174
194
158
198
190
141
181
174
187
142
141
183
197
170
181
175
160
181
196
195
190
149
197
148
197
156
200
197
145
186
174
166
158
155
155
144
152
181
160
166
148
173
187
153
172
195
183
199
143
191
191
176
182
200
194
184
195
162
148
154
153
196
199
190
198
153
147
146
189
195
195
183
172
197
193
194
181
146
165
193
153
200
153
182
147
155
168
184
147
179
145
159
164
199
153
143
199
171
156
195
167
179
186
178
151
179
154
145
158
174
186
172
159
154
155
196
197
170
183
153
150
158
142
148
191
154
193
181
173
149
199
184
176
199
194
174
148
157
180
189
158
180
149
164
161
160
159
196
177
186
171
157
194
193
192
153
165
173
171
197
162
191
194
172
192
174
185
163
182
173
188
163
144
163
179
149
181
169
152
164
159
175
188
141
158
173
180
160
200
176
182
155
192
152
187
142
148
191
191
176
200
167
181
160
171
157
192
167
194
156
168
195
187
191
192
185
176
158
166
150
149
177
154
160
192
141
148
173
153
167
144
171
190
169
173
142
145
192
147
147
175
159
188
155
181
200
182
180
173
191
151
196
152
176
145
149
190
150
151
164
167
174
174
150
190
152
184
170
188
197
148
161
142
151
162
196
187
195
184
193
150
191
200
143
191
178
172
140
161
198
160
163
150
176
159
153
174
144
151
163
191
193
195
146
153
186
158
150
155
162
184
191
151
162
146
185
182
175
186
196
173
194
160
183
189
179
171
170
158
153
200
158
155
186
162
164
163
158
161
186
154
197
166
148
167
180
152
190
182
153
199
144
162
191
195
199
167
148
155
197
173
174
155
147
160
186
148
154
181
167
195
174
162
175
146
180
194
180
154
152
157
173
181
156
189
195
194
170
145
179
161
180
156
154
169
166
196
163
185
144
140
162
155
194
159
193
164
150
143
168
160
179
177
168
192
181
172
150
192
199
175
175
164
191
186
193
189
172
179
165
171
190
180
178
169
177
195
178
152
154
194
143
199
175
164
191
191
179
186
177
179
156
193
152
193
171
164
174
141
145
180
174
170
195
194
196
181
200
168
148
197
176
173
152
189
171
186
179
162
184
191
187
178
176
158
165
170
145
144
171
172
152
194
159
140
160
178
164
148
157
155
149
174
192
173
179
144
145
195
197
166
174
159
176
177
185
198
187
180
200
159
157
183
196
160
147
181
198
195
190
173
151
159
146
161
171
156
155
155
172
171
163
195
164
153
189
157
186
150
178
151
140
141
200
174
165
195
194
185
197
185
192
158
185
182
158
149
174
160
185
198
163
154
145
172
153
149
184
190
199
152
159
141
184
157
189
183
173
181
190
185
160
162
164
176
173
176
163
175
156
179
150
145
165
190
175
146
159
173
188
181
193
194
158
160
166
169
177
172
198
158
167
185
181
192
163
144
144
142
160
166
164
159
198
171
153
149
158
162
189
188
190
155
183
163
163
171
168
167
193
186
181
188
156
144
191
187
153
192
154
142
166
161
194
141
193
176
195
154
166
152
178
162
184
179
200
145
152
183
197
150
186
157
160
197
162
200
142
171
169
159
178
164
159
174
197
163
169
169
143
192
191
143
146
185
173
169
175
185
178
141
187
160
158
150
180
181
180
172
181
180
150
150
151
152
194
191
145
190
166
160
156
158
168
149
156
191
143
189
182
171
153
166
148
172
197
146
180
150
152
198
194
183
159
152
145
187
184
172
169
172
156
147
142
184
148
184
186
181
193
194
160
140
190
155
156
151
143
146
164
190
199
154
178
154
149
182
145
165
147
193
170
169
153
163
170
174
173
199
158
177
179
149
147
191
149
172
195
154
195
162
194
153
196
179
158
159
174
143
180
172
167
163
185
147
162
182
152
175
169
156
197
156
157
149
145
199
178
185
171
172
180
181
144
190
164
195
152
140
150
159
142
172
166
168
178
181
180
189
140
198
183
188
190
178
141
181
197
140
142
166
179
198
176
185
181
167
190
167
167
174
184
197
195
158
197
147
196
160
191
142
180
153
188
180
177
182
160
174
170
149
163
166
145
162
173
157
146
191
181
178
179
189
144
157
187
147
194
200
154
145
171
183
188
189
170
156
171
190
145
198
165
184
196
177
182
199
172
191
175
187
194
192
151
167
157
177
156
166
169
155
162
152
168
146
184
187
160
165
148
158
162
161
148
198
199
177
171
191
172
170
184
162
171
160
143
152
182
172
146
199
158
200
162
183
165
187
152
153
177
167
174
166
170
191
151
142
149
193
158
190
175
163
198
189
182
158
158
158
192
147
190
182
166
172
184
151
169
183
150
162
175
144
176
152
170
147
175
200
167
176
168
165
196
181
141
169
196
171
164
168
168
163
149
153
141
145
165
182
159
165
194
142
149
165
143
157
161
199
174
192
160
151
156
144
161
196
155
166
187
153
192
152
155
178
173
189
156
168
177
150
148
180
164
155
183
186
162
186
157
157
186
142
151
172
173
173
140
180
163
196
182
178
181
143
179
190
196
148
153
191
165
178
145
153
183
162
169
154
141
144
178
172
150
165
170
191
191
189
140
145
184
191
169
172
167
174
186
141
170
162
197
144
179
142
181
193
167
172
187
167
170
165
164
146
141
192
165
146
179
185
164
162
189
140
177
191
140
175
193
147
160
146
163
183
149
151
181
140
190
164
161
154
194
198
190
181
155
188
140
164
160
168
174
144
191
149
164
191
183
161
153
200
183
198
189
172
157
185
188
161
166
164
140
181
153
145
183
177
181
191
147
172
165
169
163
183
151
194
141
173
171
168
168
160
200
164
182
196
150
178
141
176
156
200
183
147
160
177
150
165
161
164
184
188
141
168
196
198
196
167
151
199
166
200
160
153
171
170
152
190
186
182
178
152
170
190
194
185
158
193
184
163
195
185
191
140
196
140
149
195
167
169
198
144
189
173
198
187
150
149
170
165
145
166
145
172
159
171
141
166
191
193
182
197
177
178
144
156
190
185
141
170
183
161
198
200
147
161
169
184
178
145
153
156
193
143
152
199
143
180
182
161
182
179
177
166
152
179
178
185
149
163
164
176
149
178
192
197
173
141
157
163
169
148
188
176
175
185
178
194
199
157
191
167
176
195
155
172
167
146
147
172
150
177
184
141
195
148
152
199
140
181
161
149
143
162
156
166
200
145
163
154
142
169
168
199
186
176
195
147
168
165
175
178
163
164
157
148
172
150
175
195
199
197
171
173
199
188
179
168
187
196
174
151
154
179
157
183
200
175
165
192
192
166
170
170
172
158
153
163
170
154
145
196
188
180
180
189
170
176
195
168
195
152
165
150
142
183
168
167
192
198
158
198
170
189
198
147
192
158
153
173
196
196
147
150
185
145
193
146
184
198
168
160
141
148
165
144
186
155
177
198
176
189
182
197
145
176
184
186
177
179
193
194
189
161
165
164
176
161
178
149
155
178
163
140
183
176
189
147
158
158
156
156
187
168
159
171
187
193
181
183
154
140
190
199
200
192
176
155
142
186
176
165
198
196
190
191
167
192
190
159
147
149
174
172
171
146
165
166
196
170
200
152
177
185
170
155
164
141
195
182
172
151
195
194
163
163
170
182
180
156
192
143
156
197
153
149
156
145
165
157
154
140
173
152
146
182
175
179
145
147
147
155
185
155
192
160
183
147
167
182
180
165
141
157
156
147
142
166
164
175
196
175
160
165
169
152
168
185
152
178
159
184
149
156
192
191
199
153
191
176
151
192
155
165
178
163
158
185
165
170
154
173
156
178
145
170
176
140
173
146
194
155
172
145
179
193
165
197
177
143
193
153
198
191
164
173
155
148
196
182
167
187
196
177
162
175
191
181
147
182
154
156
193
150
197
163
142
200
175
165
199
150
180
158
148
146
185
186
165
149
157
174
152
194
176
198
146
165
159
169
160
151
179
197
184
196
199
173
191
170
163
178
176
163
191
187
156
141
147
197
157
159
145
177
162
182
181
140
143
155
151
191
147
149
145
161
193
174
146
170
165
180
162
150
156
188
190
176
180
154
173
192
179
194
171
167
155
157
158
164
200
154
181
172
148
145
193
165
181
176
167
176
200
156
198
176
154
164
174
165
193
142
179
186
194
174
161
179
198
189
188
171
152
187
173
179
168
172
200
191
165
157
159
180
187
141
161
189
152
155
186
152
156
162
175
145
168
142
200
144
199
141
155
174
140
191
152
172
173
160
191
174
176
142
142
192
188
157
157
143
168
193
154
161
168
159
198
150
160
177
168
154
162
153
177
199
147
151
155
149
167
166
173
159
166
151
167
181
188
169
143
146
177
169
197
154
159
155
180
170
180
173
171
160
178
179
156
159
185
171
149
157
178
158
173
177
177
149
189
171
167
172
179
150
180
185
166
179
160
144
173
198
181
144
176
158
168
140
162
195
147
140
149
163
166
140
179
175
200
189
151
150
141
149
141
151
181
195
174
175
191
160
199
171
200
162
140
173
178
193
195
164
160
168
173
174
143
149
154
173
188
142
169
157
155
147
161
171
181
177
174
187
178
140
160
197
175
147
195
185
149
145
145
175
187
199
150
192
148
148
162
162
197
190
185
170
174
162
189
156
158
148
148
190
146
188
157
184
171
147
166
149
188
186
186
190
199
145
149
170
192
166
172
162
158
160
160
183
183
147
140
140
173
159
148
187
148
161
147
179
163
166
188
158
197
187
140
184
182
169
185
152
175
152
173
141
169
178
150
176
171
191
190
193
149
190
145
176
166
196
180
190
176
171
159
194
179
162
200
184
198
167
193
182
155
199
155
179
185
154
193
195
152
144
163
165
172
155
162
193
162
184
166
185
197
196
176
148
164
181
176
171
186
164
163
157
147
168
194
157
195
172
148
182
188
157
144
176
196
162
161
171
179
143
165
142
158
144
175
175
175
144
179
186
151
173
193
177
158
173
186
189
179
191
188
145
146
178
184
164
140
149
147
180
156
142
194
181
186
175
179
186
186
157
195
155
199
170
196
157
173
183
160
175
195
164
157
156
181
168
199
150
156
174
200
170
147
197
200
164
174
169
196
148
148
141
160
190
163
192
200
191
142
193
177
184
180
146
177
145
166
199
177
195
165
158
186
178
166
156
152
146
183
150
146
163
161
181
174
164
185
153
163
179
156
174
146
154
172
195
199
185
166
181
160
172
162
171
193
186
149
176
192
144
159
161
193
177
159
185
164
179
156
171
183
151
200
141
193
194
197
157
181
199
197
180
155
152
198
146
145
165
186
181
162
177
165
161
199
192
140
158
164
155
171
150
149
141
150
163
158
179
162
149
179
165
195
140
198
177
175
155
148
141
190
191
160
176
197
178
153
198
188
170
183
165
197
188
181
146
150
170
198
144
178
194
177
179
182
198
157
153
190
182
140
167
184
158
184
198
186
197
192
161
192
183
144
142
160
196
179
164
191
159
196
157
175
193
172
155
155
194
184
167
142
169
140
174
175
140
182
155
148
156
181
200
147
184
185
152
154
158
180
140
185
195
182
173
197
144
177
161
161
179
156
190
189
160
180
198
196
152
164
196
152
164
151
197
165
143
188
164
161
165
177
142
169
157
151
142
147
147
140
176
165
146
152
152
171
166
151
173
143
174
187
153
176
177
184
177
143
179
163
195
188
186
145
153
143
188
161
181
185
177
184
158
175
161
155
197
169
192
140
181
168
149
199
182
170
198
187
160
169
149
153
186
160
183
194
177
152
148
194
160
179
171
164
153
140
161
179
197
184
168
179
191
176
189
143
198
182
154
147
161
182
168
147
165
175
189
140
177
148
153
182
150
186
155
147
153
167
172
162
187
191
161
193
140
165
178
146
167
197
199
143
187
160
192
188
177
154
175
176
197
191
167
172
155
187
183
154
192
171
173
180
191
169
196
145
171
149
165
172
170
157
145
177
179
197
152
181
183
198
195
170
175
195
190
198
176
144
184
165
196
187
177
168
156
165
161
189
177
151
179
153
189
141
161
186
163
173
143
194
188
179
146
190
155
152
189
184
188
141
192
150
164
166
147
153
141
189
187
185
178
186
154
172
188
162
174
182
173
174
186
160
197
151
156
191
171
176
165
190
185
153
153
199
191
166
192
174
196
141
184
192
176
148
186
147
172
181
180
143
149
147
149
144
148
171
159
142
149
197
176
164
194
146
142
142
154
169
160
158
176
141
172
186
182
165
185
180
185
184
172
148
198
170
182
174
175
165
174
186
189
192
187
171
150
187
148
153
188
196
193
174
169
195
186
164
147
186
197
179
197
146
180
157
169
154
198
155
169
165
194
178
171
194
155
200
182
192
184
194
175
167
186
195
175
150
182
140
172
172
141
186
198
196
163
195
149
146
170
151
167
163
144
178
166
166
162
188
160
177
181
196
151
172
155
186
183
159
200
153
165
168
161
157
174
186
160
142
197
186
152
195
153
161
170
154
177
195
145
191
184
165
143
158
193
184
166
186
140
189
197
172
175
198
195
173
169
178
149
166
151
170
147
150
193
150
154
191
197
199
163
196
163
152
186
168
141
192
141
170
143
183
167
141
179
176
162
196
167
160
168
197
198
176
173
153
176
141
190
170
147
199
166
164
142
152
169
192
196
143
156
148
179
171
160
158
194
159
154
197
175
185
164
186
169
175
170
189
191
141
183
188
189
196
150
190
155
199
159
149
143
150
167
170
174
169
161
182
192
155
170
157
140
187
187
187
169
156
197
175
147
180
188
153
196
159
179
169
162
157
146
191
168
192
169
186
161
180
173
185
169
200
199
170
181
188
170
190
143
181
195
164
199
155
151
168
185
160
153
192
160
189
170
177
186
180
162
196
154
140
163
191
188
169
148
189
164
146
159
146
184
174
177
154
187
155
176
155
171
172
145
176
152
149
140
190
155
162
187
182
179
145
156
164
154
172
149
176
199
192
174
165
150
156
166
169
185
182
159
156
195
167
190
145
172
144
185
195
174
198
144
161
150
162
171
191
186
192
185
142
141
181
182
172
194
183
180
146
174
160
189
170
178
162
154
148
152
141
193
198
173
182
185
195
145
183
150
164
151
181
168
154
161
147
175
176
176
187
174
168
167
193
169
177
148
197
144
146
152
162
140
143
179
174
171
200
143
169
144
173
170
189
158
174
149
184
169
161
183
151
192
171
181
154
173
193
169
154
175
178
145
185
156
192
159
197
160
167
189
144
171
159
172
181
198
194
142
189
151
179
157
162
169
200
173
171
188
200
156
162
156
160
144
168
147
142
159
194
162
177
193
189
177
162
154
157
185
163
170
192
164
180
163
141
146
187
140
141
176
168
178
189
186
155
200
153
151
192
185
163
196
140
140
161
199
174
195
161
169
170
175
184
158
164
174
176
179
167
169
169
185
152
160
150
144
174
198
141
176
168
195
147
148
186
188
167
148
191
163
183
166
185
176
169
187
145
141
169
173
198
163
178
169
151
147
168
177
177
172
147
159
186
156
173
192
193
165
167
158
149
164
165
177
159
166
142
170
163
189
155
151
159
141
164
163
176
197
157
199
169
141
174
152
172
195
151
147
186
190
189
191
188
166
148
155
178
175
154
181
199
176
162
197
175
200
176
177
144
163
143
142
177
144
160
186
157
150
163
186
183
180
159
152
146
190
172
145
184
196
199
178
197
182
144
169
190
147
182
191
165
157
159
158
159
161
153
191
174
195
162
188
187
166
190
162
140
197
196
166
173
165
180
163
146
164
183
176
166
181
172
166
148
162
153
155
149
181
180
144
182
184
163
190
170
145
144
194
162
179
178
182
155
199
178
173
167
190
167
165
150
162
143
175
190
188
198
191
145
146
184
199
146
198
172
166
144
166
169
168
149
168
188
177
143
188
158
171
179
195
145
193
199
165
188
173
162
160
158
170
189
177
162
144
153
180
179
148
152
182
199
142
146
164
197
172
163
191
175
155
168
140
156
140
151
178
172
191
169
199
149
185
170
161
198
175
170
159
180
183
183
178
153
162
173
150
196
170
173
164
176
178
148
164
156
149
167
166
184
178
180
151
163
171
195
148
192
140
182
160
146
147
183
149
189
158
173
165
167
146
171
199
180
199
195
193
178
191
172
182
141
196
159
199
171
148
141
140
154
173
191
184
144
164
150
177
156
165
153
144
168
199
176
175
143
145
167
184
179
154
155
194
172
200
140
148
168
141
190
141
149
150
148
152
175
181
174
199
197
161
168
169
182
181
183
190
177
156
161
147
173
175
172
190
161
185
152
178
176
141
188
174
182
179
173
164
198
185
190
159
144
167
177
171
200
188
140
188
194
193
171
190
189
168
190
189
174
151
147
141
173
157
158
163
174
150
156
198
193
188
141
144
173
156
194
172
161
143
192
174
140
197
191
153
189
152
153
157
186
193
192
199
157
141
194
165
172
195
170
151
172
152
177
144
190
160
169
175
146
187
150
161
158
165
171
185
193
197
152
197
140
171
190
141
165
185
178
153
157
168
198
145
145
180
171
148
177
177
173
197
147
150
154
194
176
154
176
177
174
187
149
156
140
159
163
151
142
153
200
161
169
181
172
170
182
197
175
197
179
165
185
162
166
159
190
181
153
156
172
198
157
182
141
177
151
194
186
198
151
152
200
148
197
188
197
197
170
146
193
163
157
195
185
186
152
186
184
190
171
189
181
158
159
180
169
196
186
171
153
149
149
182
185
182
141
193
164
171
148
178
166
185
154
148
164
170
178
182
174
143
170
149
187
165
200
149
187
171
171
151
170
143
193
192
180
140
155
174
155
159
188
191
189
185
194
177
179
181
149
200
159
180
174
191
174
156
162
154
193
181
190
199
176
169
155
182
172
153
199
141
172
147
140
181
152
179
142
164
155
165
160
178
184
143
178
172
151
193
148
195
195
180
170
147
168
149
191
159
163
175
175
156
190
172
157
198
144
170
150
180
154
155
160
151
171
164
153
140
197
194
194
199
169
149
170
167
174
198
165
199
177
199
167
183
190
153
195
148
180
199
198
146
143
185
198
169
184
156
198
176
179
142
172
158
158
146
185
174
141
171
175
171
170
153
170
141
141
196
197
146
198
180
164
163
176
144
142
163
183
196
149
183
160
166
162
166
192
157
184
168
171
179
172
195
143
153
176
164
163
167
180
144
152
189
163
176
198
189
191
191
141
169
167
194
180
190
150
170
151
140
150
175
154
143
199
199
158
176
169
191
150
148
163
142
164
176
177
140
190
185
178
145
167
171
146
193
185
171
183
147
200
178
175
175
143
154
191
145
194
167
179
141
171
180
166
165
141
194
199
163
187
193
140
187
167
180
191
158
171
160
176
186
173
153
187
170
151
150
156
172
158
154
166
156
150
160
166
177
177
159
174
189
157
159
184
181
145
190
173
156
163
163
174
170
144
142
158
186
182
159
187
155
200
146
170
189
154
173
153
151
142
149
188
154
172
179
152
158
149
147
169
182
196
167
181
167
145
160
194
149
181
191
151
180
166
160
158
170
199
178
183
170
148
151
152
162
183
198
170
171
195
169
165
164
160
179
170
145
187
164
188
193
170
175
191
186
149
189
190
182
162
149
150
169
157
182
190
146
176
169
190
186
197
157
159
199
156
175
188
177
188
168
143
192
162
174
191
153
167
152
175
157
147
168
149
152
161
147
174
182
159
181
184
142
183
148
183
177
149
167
163
145
193
200
186
193
199
144
165
189
148
191
180
160
146
176
144
177
175
151
164
154
157
146
190
159
153
147
193
168
152
152
176
187
188
151
153
180
182
170
148
185
141
155
148
186
165
182
194
181
181
163
141
185
183
192
143
197
145
198
171
144
182
148
173
191
164
157
148
158
185
175
170
183
176
169
172
168
196
167
168
152
200
198
179
198
198
171
176
152
159
187
162
156
194
193
162
176
186
149
176
166
194
161
163
154
149
156
172
171
158
155
179
170
142
181
168
164
166
191
152
159
198
182
162
145
176
172
144
151
169
171
151
177
149
182
179
150
152
179
198
195
165
169
165
156
180
167
180
143
177
195
151
156
170
200
165
171
182
172
170
174
142
160
191
187
196
166
186
164
160
173
191
167
175
148
173
151
144
145
170
191
172
192
145
191
179
153
151
187
145
172
194
200
168
149
195
172
159
154
176
177
173
140
185
196
140
140
170
159
144
143
155
153
145
173
186
149
155
189
154
179
150
176
148
188
198
167
196
177
178
180
147
166
194
144
147
180
188
198
174
176
171
144
160
180
152
155
144
194
184
175
198
165
176
159
160
185
181
184
159
170
167
164
160
161
158
177
156
153
182
186
168
164
191
190
143
175
174
175
147
141
150
193
165
189
199
159
176
182
189
147
164
186
168
175
154
157
154
174
140
173
200
146
156
164
171
166
167
168
163
165
151
177
142
172
170
163
175
150
146
182
173
153
186
191
143
150
181
197
150
151
194
157
147
150
166
149
149
155
151
156
183
143
141
181
164
158
147
145
197
184
188
175
161
177
150
167
183
160
180
171
145
193
163
168
195
157
163
141
142
160
152
177
169
158
146
160
160
172
198
158
191
174
189
184
159
190
200
165
149
158
156
166
185
185
163
165
200
153
164
148
175
196
165
191
165
181
186
149
177
193
191
192
184
149
195
177
183
183
188
152
156
188
143
167
186
195
197
140
140
175
175
167
144
147
163
188
185
144
183
164
163
163
195
191
182
193
184
166
165
161
186
186
174
199
151
182
192
180
141
147
151
184
169
170
162
157
190
185
176
192
169
193
153
192
173
140
200
141
181
157
192
169
154
150
191
158
196
143
173
140
184
173
174
199
186
155
142
175
149
150
144
186
193
170
182
154
183
154
145
172
187
192
193
152
192
177
149
177
140
171
154
167
157
140
164
150
167
175
154
161
196
194
152
159
176
164
159
161
163
166
148
172
154
158
176
162
146
141
187
144
145
145
184
196
190
175
177
171
148
142
144
175
160
186
178
194
199
189
180
199
165
188
193
193
140
187
188
167
170
147
194
172
164
152
196
196
186
158
143
200
196
163
187
167
163
145
142
158
172
169
150
196
146
144
162
164
147
148
199
183
179
155
146
190
158
145
150
146
192
153
145
191
164
188
167
165
164
162
156
144
194
143
147
170
170
166
193
149
172
161
197
199
175
162
166
198
147
170
190
185
200
178
194
173
141
161
159
196
147
176
163
152
179
183
143
150
171
169
171
161
158
197
153
194
184
147
170
141
185
164
154
191
183
175
189
153
186
154
185
166
196
152
162
184
156
187
176
153
173
164
147
161
151
158
195
178
142
180
197
166
177
148
149
191
163
180
141
155
158
192
142
197
140
171
164
180
151
188
178
151
193
194
143
154
155
200
157
200
193
140
158
190
179
149
165
168
200
155
179
156
153
197
167
156
164
185
157
178
182
168
192
194
191
175
143
165
153
184
197
151
198
196
185
189
147
191
149
186
191
192
169
172
179
178
149
149
141
165
161
150
159
140
188
149
172
186
197
150
187
184
182
191
161
154
171
143
189
164
153
159
184
183
159
184
168
149
193
181
179
165
146
177
193
170
145
165
161
159
173
187
162
159
200
181
146
198
152
200
149
199
157
199
196
199
163
141
155
186
194
164
193
185
195
161
196
169
153
193
151
193
175
184
154
150
145
175
148
172
184
154
159
200
192
157
188
187
187
165
157
173
196
178
190
164
142
147
192
180
175
181
153
178
160
183
142
192
174
150
196
146
151
179
177
164
150
183
160
199
152
174
153
190
173
169
148
156
189
165
181
192
143
159
176
192
183
161
159
190
144
191
144
190
147
181
187
181
144
175
192
197
200
200
167
140
147
148
182
153
159
198
151
200
186
157
180
153
195
140
183
183
192
156
145
154
148
195
163
148
178
187
149
175
145
165
185
189
181
195
146
189
196
164
189
163
168
147
191
151
165
153
156
155
188
160
182
176
175
160
157
153
191
148
175
199
147
180
144
184
147
166
179
181
172
189
142
144
200
164
167
179
194
146
150
162
164
187
174
164
175
156
158
158
184
172
162
200
157
200
188
165
148
173
178
162
184
187
161
173
171
148
196
192
197
180
182
198
194
198
169
189
163
198
182
155
150
183
163
152
171
157
163
184
192
180
144
169
167
200
180
148
175
164
197
200
147
188
176
186
169
158
144
143
197
159
194
179
182
192
192
164
155
160
149
140
145
170
143
196
179
174
178
156
162
147
147
163
184
158
181
195
188
158
183
153
175
199
158
166
193
143
149
142
188
188
162
199
144
156
157
146
168
194
150
156
167
140
171
174
193
174
199
191
170
191
152
173
152
161
149
179
142
141
149
146
145
197
198
188
147
177
154
192
171
143
183
176
172
200
180
157
151
159
184
169
192
197
182
159
175
179
159
165
166
143
178
159
192
168
156
196
171
172
189
154
165
194
145
163
159
174
173
151
197
143
160
199
174
157
197
158
194
156
164
196
177
174
174
176
182
196
148
188
167
165
153
161
183
188
192
186
196
180
196
156
189
168
195
189
184
191
171
179
174
197
182
189
167
142
147
192
143
160
162
178
159
192
171
141
195
185
158
182
162
161
187
141
198
170
198
165
193
156
179
168
162
162
156
163
161
154
169
190
157
143
178
142
187
180
164
194
189
163
194
193
194
157
146
184
194
170
174
198
155
175
163
183
196
179
155
164
193
178
147
182
197
162
172
167
157
177
188
155
153
162
167
173
156
196
173
142
166
148
178
188
146
168
172
196
145
198
143
180
185
198
192
167
169
194
195
178
174
162
156
199
179
169
186
142
181
152
178
186
182
148
181
151
147
199
165
151
195
155
180
140
158
156
187
191
186
193
187
198
160
152
178
176
180
158
192
188
196
160
198
159
142
186
195
176
144
174
193
200
191
155
146
151
162
182
174
183
188
178
156
188
200
142
165
155
199
171
189
146
147
140
181
190
144
169
172
145
174
142
195
146
140
152
190
169
152
148
182
158
147
196
147
174
179
196
140
196
165
179
143
183
177
169
142
149
177
149
161
172
196
166
167
177
197
142
151
180
158
166
168
145
178
174
154
198
146
198
156
165
171
187
165
182
160
167
166
182
182
146
140
195
143
187
142
196
161
173
160
193
154
167
157
193
150
171
192
186
150
141
176
169
197
162
178
168
174
159
151
200
177
160
194
151
189
145
169
189
171
172
175
148
195
193
152
142
141
188
196
198
191
167
159
154
179
145
156
197
155
184
198
144
186
152
157
175
145
144
158
172
166
158
156
165
164
173
175
158
182
188
177
169
191
181
171
151
188
146
180
197
150
159
143
171
195
157
190
153
154
144
161
194
181
140
178
171
199
184
144
170
171
175
165
198
152
197
176
175
167
196
196
175
157
162
154
174
143
191
151
150
181
173
150
173
156
153
179
167
171
147
178
197
150
189
171
162
143
197
196
184
199
189
190
148
175
166
150
185
166
154
161
143
171
155
169
146
195
180
195
177
170
158
190
187
183
145
154
181
152
165
143
165
161
141
145
179
149
157
195
165
183
153
191
190
164
168
168
161
158
198
192
175
151
157
161
197
181
162
152
156
178
185
175
147
195
162
170
148
192
191
183
143
191
148
177
150
155
150
200
180
142
162
179
175
151
174
177
145
165
194
170
161
146
170
143
182
154
172
154
176
152
187
182
164
159
185
140
155
180
162
140
156
166
197
172
174
169
197
186
140
149
176
152
159
183
197
187
174
173
143
145
165
181
188
150
156
147
147
150
189
191
198
174
171
189
164
195
144
193
141
179
161
150
176
173
199
155
181
177
171
200
183
199
196
164
184
187
164
187
162
186
184
198
155
142
167
196
171
187
174
183
177
142
167
151
151
189
176
178
142
179
140
172
177
154
192
159
157
149
180
166
142
196
145
184
177
150
154
185
148
143
181
142
180
156
184
155
154
148
151
170
175
200
196
188
198
167
165
175
169
161
173
148
175
185
170
196
145
199
168
170
188
142
193
149
141
179
198
160
191
157
153
162
171
150
149
165
159
185
142
170
199
142
144
177
175
185
191
152
195
195
191
187
140
194
196
169
190
175
165
155
154
198
179
140
154
194
150
170
171
187
182
175
198
150
180
177
192
200
181
183
141
178
190
152
197
160
147
199
192
159
184
200
163
144
184
200
174
166
195
167
146
151
148
163
191
185
191
198
155
163
182
168
182
190
195
144
141
152
195
178
154
168
159
141
168
190
186
166
153
152
164
194
171
179
167
159
178
186
169
175
178
147
195
145
193
143
178
172
186
154
161
185
157
157
151
171
155
188
172
191
151
190
167
144
188
178
170
155
148
162
149
189
156
199
199
165
190
174
200
182
182
191
155
153
183
161
184
168
157
162
147
140
200
198
191
156
189
170
140
199
185
154
142
157
179
149
151
180
160
188
161
157
151
140
123
139
107
118
140
147
111
139
119
115
146
146
120
108
123
103
123
135
102
118
107
101
104
126
148
112
113
110
113
138
135
137
146
101
136
102
108
108
143
123
106
120
110
130
106
113
119
104
117
116
145
112
140
148
127
124
104
100
137
117
142
114
132
115
111
121
150
121
100
110
116
102
144
106
123
106
139
126
141
148
101
113
121
112
130
116
131
137
142
136
110
139
149
104
148
139
109
109
150
143
104
104
112
122
111
126
143
148
124
103
127
133
101
118
136
112
119
135
150
133
117
126
117
103
136
104
150
117
103
119
112
127
114
139
146
142
142
136
131
139
100
131
133
125
144
117
136
117
102
100
147
148
130
122
145
113
137
100
125
118
146
150
113
100
133
143
147
125
135
112
144
124
113
144
114
131
126
118
131
139
143
145
103
132
111
141
120
141
129
124
116
135
142
133
116
101
108
136
122
141
127
131
138
138
142
119
100
103
135
127
136
145
114
132
142
101
143
123
150
103
111
144
110
105
111
106
147
144
142
132
144
125
146
109
141
111
136
118
120
113
112
144
150
137
103
102
118
112
137
102
121
142
122
132
143
128
118
128
135
132
138
137
131
126
148
100
121
118
140
131
128
113
139
104
141
137
107
104
113
150
134
108
145
133
150
116
118
119
134
103
135
116
124
150
125
144
150
117
115
120
141
116
144
145
116
119
110
133
106
115
127
121
113
110
142
106
124
108
135
141
149
106
100
147
106
130
104
132
136
111
127
136
109
116
149
126
127
100
123
149
102
103
108
121
128
113
109
139
103
118
100
115
147
129
134
148
124
135
107
121
128
103
114
139
113
131
150
138
107
140
106
121
148
133
112
141
101
122
138
127
101
147
137
105
114
126
129
138
118
140
105
126
102
122
125
140
127
148
114
125
147
131
118
122
125
130
150
104
112
139
107
126
148
106
115
101
104
104
102
144
116
109
107
128
146
122
140
147
132
143
150
104
135
135
118
115
146
116
113
120
135
146
109
129
116
132
133
130
149
111
113
115
110
140
131
135
142
124
112
133
119
116
147
147
132
143
114
104
112
107
146
113
127
145
116
114
144
135
102
142
100
101
146
131
109
103
122
104
133
148
124
120
130
108
145
148
128
104
104
123
127
107
130
122
150
117
113
110
107
101
123
120
137
104
105
148
117
149
122
105
147
134
131
106
149
142
138
130
110
132
141
140
108
102
100
126
150
133
122
106
102
134
121
144
149
148
129
105
148
146
147
121
124
111
102
109
137
106
124
148
145
147
126
140
146
143
127
133
106
107
101
126
143
109
140
125
124
121
132
121
141
102
133
146
150
101
101
120
139
104
100
128
130
118
149
144
109
140
116
107
115
128
112
122
114
137
135
120
105
104
143
149
131
102
146
149
102
144
102
149
107
110
144
114
106
128
147
149
133
103
115
101
134
136
121
111
137
124
110
146
147
111
131
121
103
140
132
124
145
138
135
122
150
113
145
146
123
100
146
112
116
103
130
146
142
123
127
130
145
147
110
113
122
139
117
133
119
149
106
108
132
150
106
128
147
101
105
140
117
103
145
133
105
121
121
134
108
137
118
105
143
104
133
148
150
147
105
111
105
135
133
146
146
111
128
111
110
103
124
109
100
146
149
135
146
101
115
133
135
147
141
142
124
125
118
122
103
132
111
149
143
147
145
132
136
139
124
140
150
102
133
135
131
146
107
123
104
114
138
102
141
143
101
107
105
134
108
128
113
104
128
114
112
149
103
139
121
113
137
102
138
117
147
119
123
135
117
132
121
127
101
136
131
127
131
106
116
145
140
111
140
145
133
127
121
110
124
116
115
135
147
116
121
100
109
122
133
127
150
129
108
101
125
120
114
133
131
146
140
139
124
117
104
135
126
135
104
149
139
147
113
138
109
149
104
113
130
131
139
133
117
141
117
125
137
145
139
112
141
145
136
146
110
129
117
139
115
102
138
138
126
105
139
150
107
130
147
123
112
132
121
141
117
137
139
110
119
111
110
127
120
115
129
106
147
135
114
109
128
108
126
143
132
124
136
142
147
115
142
132
106
147
137
150
111
113
141
129
149
129
110
105
140
131
133
119
111
149
123
126
130
148
119
119
125
104
130
100
117
122
126
120
147
136
147
141
129
127
142
121
105
104
110
104
137
111
128
114
148
125
149
102
109
150
117
143
105
142
131
133
121
118
127
149
112
131
126
125
116
134
141
134
112
124
109
117
149
134
126
107
123
129
123
101
145
120
118
130
129
148
140
120
142
125
135
102
133
102
140
127
107
128
120
112
110
138
131
102
116
104
132
140
133
128
126
147
123
148
105
107
127
148
129
114
130
135
143
122
105
145
100
125
128
135
147
117
133
120
111
140
135
147
141
120
109
116
111
111
104
143
110
100
111
121
143
144
103
138
139
113
134
117
107
124
111
128
137
147
133
141
116
102
129
135
145
150
101
103
136
136
140
129
128
121
122
103
117
119
148
131
129
109
140
144
126
138
144
100
141
108
147
145
132
114
127
103
139
150
105
114
117
118
145
105
141
150
114
103
133
125
140
120
125
128
132
108
121
100
136
139
104
100
133
122
108
115
102
105
104
149
117
111
120
134
138
130
101
144
129
140
137
109
114
130
107
106
101
100
127
111
143
121
116
140
112
134
123
138
147
129
118
124
140
107
118
130
142
138
105
110
121
145
123
109
143
105
127
137
110
122
129
114
120
145
150
141
144
121
128
124
128
129
139
102
132
125
141
121
102
129
138
132
102
128
143
148
130
108
139
120
116
120
102
109
130
131
130
132
106
127
108
147
112
119
148
133
137
108
137
136
112
121
108
108
122
140
130
144
134
129
114
133
125
109
133
142
117
105
147
139
147
129
109
117
144
143
134
128
136
100
105
116
133
132
130
127
123
119
112
118
108
150
143
126
124
118
128
134
125
104
122
104
123
102
143
109
131
123
112
148
121
145
116
116
147
121
110
147
148
106
112
137
115
105
135
137
121
122
109
138
141
114
140
106
101
125
140
113
129
143
146
103
124
126
120
103
102
141
146
110
147
109
137
126
124
123
115
123
121
128
112
127
118
103
139
128
109
107
107
125
143
112
107
104
138
102
128
137
150
119
121
148
118
140
119
123
129
120
114
142
142
103
124
123
144
115
139
107
131
143
133
102
128
128
135
120
139
127
100
120
104
126
109
131
123
137
124
106
109
105
106
133
129
116
132
124
148
134
133
144
100
110
113
149
146
150
146
117
117
121
111
132
139
127
134
147
123
146
143
145
100
117
138
125
135
102
123
138
129
127
106
148
138
140
134
116
129
102
144
105
116
129
140
129
123
108
129
120
130
138
123
117
117
122
107
116
146
124
128
139
114
114
101
129
115
137
104
107
132
103
141
116
133
143
143
133
116
104
109
102
125
121
147
124
130
104
110
109
118
100
148
111
141
144
113
102
129
146
129
128
148
134
137
134
116
103
128
108
113
115
141
138
111
102
118
134
124
108
110
108
120
125
129
115
103
111
150
106
135
115
123
110
150
145
148
106
105
128
136
130
107
144
119
150
133
147
135
132
103
128
100
110
104
111
144
129
135
145
142
142
116
131
108
110
100
141
117
143
135
114
113
113
143
106
100
145
116
147
140
125
135
101
111
150
131
126
133
148
109
123
111
143
108
126
103
128
122
126
115
140
118
142
103
100
100
118
143
145
115
144
149
101
116
142
116
137
129
123
146
144
112
112
101
122
132
110
118
150
122
113
108
131
149
101
132
132
130
140
114
109
103
129
119
141
147
129
131
130
108
111
117
108
140
101
108
125
115
102
122
141
129
142
136
106
112
126
118
101
113
104
125
137
132
144
115
132
127
119
134
148
107
106
113
150
101
104
117
126
142
122
138
136
122
138
106
104
109
143
101
132
145
132
144
126
146
136
114
121
116
131
128
138
134
135
135
146
108
100
127
117
114
148
131
101
133
122
106
131
141
104
106
109
150
149
135
122
120
124
133
138
117
130
109
140
130
150
106
110
148
102
138
136
145
100
111
121
148
106
121
146
129
147
122
133
140
116
144
127
113
109
148
123
136
134
138
110
124
149
141
142
101
114
142
104
140
124
119
104
150
131
123
142
127
141
102
105
107
119
135
128
104
142
135
117
101
148
124
123
105
126
135
144
116
105
135
141
128
111
147
120
148
127
120
119
112
129
102
135
136
136
114
136
149
119
126
120
138
117
119
125
139
109
144
145
132
126
106
107
113
104
132
127
113
116
100
103
149
104
132
124
143
116
103
129
148
135
138
140
110
135
134
140
145
117
147
109
141
137
147
148
125
142
129
101
125
124
129
126
125
144
122
129
142
120
119
128
111
133
112
137
109
118
129
114
132
141
146
147
139
120
110
116
130
101
149
115
106
123
101
107
115
115
120
100
141
135
113
119
102
139
115
127
106
137
147
101
139
115
117
111
113
146
141
148
108
147
106
133
139
133
140
126
145
141
150
117
102
108
127
139
134
147
133
113
138
141
112
110
120
135
135
150
112
114
137
143
103
105
138
139
116
139
150
137
117
126
118
107
144
109
122
117
144
130
134
125
104
132
137
103
130
114
116
121
148
114
120
142
115
122
146
105
138
137
124
100
112
145
137
135
127
146
119
134
114
140
109
128
105
118
110
128
121
120
137
105
102
106
129
140
119
125
144
138
125
108
121
116
134
126
128
145
109
119
111
149
110
124
142
149
125
134
115
114
133
121
120
115
125
133
101
118
149
120
100
142
134
128
127
140
150
118
129
104
106
114
112
109
101
126
109
121
150
139
112
125
132
101
121
143
100
101
116
118
139
112
109
116
127
121
112
122
122
114
107
104
125
142
109
116
127
113
116
145
132
135
124
135
137
107
137
140
105
126
129
145
141
110
134
136
146
130
120
143
145
127
121
122
126
118
138
127
127
139
138
135
123
119
104
147
138
119
134
100
146
140
107
101
115
146
125
121
135
140
125
138
141
113
111
129
105
149
150
117
108
125
111
144
117
144
145
150
141
139
101
107
130
141
141
103
115
124
121
117
105
147
131
116
130
148
126
128
116
104
121
124
106
148
120
147
116
142
105
140
120
148
147
109
138
110
139
134
115
137
136
106
134
122
125
128
123
100
137
140
120
118
103
126
111
142
123
141
130
137
112
144
148
135
121
127
115
107
124
121
115
108
136
109
119
119
134
139
111
112
124
147
110
129
121
131
102
133
119
119
103
142
132
143
105
120
106
145
105
148
127
145
114
127
103
146
149
118
106
111
137
121
123
128
122
144
100
125
108
103
122
129
149
115
105
122
105
112
105
111
102
121
116
146
105
137
139
132
107
143
120
120
130
135
141
103
102
123
105
101
121
133
141
102
126
132
143
142
112
109
134
118
107
103
125
142
137
111
126
108
111
120
118
141
126
146
110
125
147
138
100
126
107
141
106
123
116
140
120
110
118
134
122
117
111
106
150
110
107
145
104
114
133
107
145
129
103
142
135
100
145
143
147
115
132
114
145
117
130
102
118
109
135
122
123
113
118
133
121
141
114
142
141
134
112
130
113
144
127
100
103
105
149
126
147
140
149
133
147
129
110
102
130
138
149
108
114
147
121
116
108
149
142
129
147
117
100
126
114
141
102
105
113
113
143
123
106
119
100
102
145
145
133
132
119
135
103
116
123
150
136
100
127
127
105
142
103
123
138
119
141
109
150
113
118
114
136
110
132
126
145
108
100
101
111
120
118
127
139
134
122
119
117
135
120
122
128
150
129
108
121
144
147
150
127
120
129
141
138
137
128
119
128
114
145
121
102
149
100
122
108
150
122
119
130
106
114
138
101
145
126
149
129
132
105
121
133
129
102
115
100
130
136
138
146
117
125
130
103
123
123
110
106
134
112
111
135
114
120
119
109
135
105
144
129
123
117
133
122
121
139
106
145
144
105
132
118
128
107
146
135
109
109
104
146
141
147
122
142
132
114
112
104
150
125
134
103
110
122
132
110
120
102
128
107
136
100
101
132
112
119
134
116
109
138
137
123
132
132
120
116
111
131
150
119
102
145
106
102
114
110
149
116
143
135
122
117
106
131
142
149
125
104
106
116
143
137
108
127
136
103
116
143
123
121
145
142
119
116
101
109
134
139
128
107
111
146
110
118
113
137
123
145
113
108
134
132
145
115
101
122
136
132
109
119
139
115
131
143
123
134
149
147
108
150
135
148
106
114
105
149
102
108
136
132
102
146
128
120
117
124
105
114
123
121
104
143
103
127
139
139
123
128
112
105
132
103
149
115
132
136
112
116
120
133
111
145
105
146
137
139
132
129
108
119
117
106
141
133
143
114
140
117
103
138
124
127
120
112
100
145
114
127
149
129
105
118
130
123
149
139
137
133
150
108
139
142
110
124
132
140
142
135
126
115
101
134
130
101
136
149
109
125
149
106
119
143
144
150
115
127
107
106
115
107
120
119
116
104
129
100
104
102
108
120
142
112
118
113
113
116
146
125
133
111
122
105
132
127
129
105
111
118
141
111
142
102
104
140
135
115
111
142
134
146
104
134
111
125
115
149
118
103
129
118
135
119
136
130
115
109
106
142
115
115
134
132
135
146
114
142
141
126
135
117
140
131
109
121
129
115
122
109
141
135
142
116
101
143
125
100
101
115
127
116
125
149
115
132
117
136
144
133
119
118
133
142
118
114
110
103
147
109
128
106
149
113
112
149
144
116
139
101
145
119
106
112
117
146
133
105
120
123
147
144
138
146
134
107
101
140
120
110
136
120
126
120
144
112
118
142
130
129
112
147
141
137
121
122
111
142
149
114
143
135
142
106
141
127
118
103
101
133
119
144
142
103
113
115
130
141
115
125
119
145
113
112
139
122
111
102
138
118
127
114
115
135
121
133
114
106
146
120
116
111
101
126
116
102
146
119
148
149
125
108
108
132
145
137
143
141
115
117
124
126
112
108
123
102
146
141
102
102
101
138
131
116
125
143
130
102
104
118
107
139
149
124
130
105
122
129
128
145
139
104
107
119
146
137
121
108
126
117
101
105
107
124
144
112
133
140
142
128
133
128
124
122
140
133
133
119
124
103
142
143
134
106
132
110
122
139
146
119
120
106
120
141
138
120
106
107
134
104
111
125
139
118
101
150
105
139
143
138
113
120
146
106
109
115
140
112
148
137
110
112
139
126
102
148
142
126
139
119
103
138
149
129
123
135
130
103
138
102
104
138
150
100
122
142
100
138
126
148
128
105
131
134
133
111
138
131
145
105
137
133
117
141
132
127
137
148
145
108
125
106
129
107
131
148
146
118
118
108
103
119
121
146
127
148
100
148
130
128
113
150
126
106
134
149
145
129
149
100
148
119
143
124
100
135
133
123
137
146
114
108
128
122
121
115
129
130
128
111
105
143
120
118
105
119
102
116
141
118
119
105
111
148
129
116
109
115
100
115
115
131
147
132
127
101
116
116
145
146
137
137
114
127
117
145
125
138
129
105
142
138
144
120
118
124
133
120
143
135
140
105
104
101
111
101
118
136
147
115
116
102
125
127
105
146
120
102
112
109
113
110
105
140
145
142
138
141
101
106
105
102
136
140
113
120
147
114
132
128
129
114
102
114
114
109
103
127
144
103
114
113
116
119
130
106
105
135
116
138
109
118
129
131
115
150
142
106
109
112
127
149
141
139
118
138
136
112
111
109
143
105
122
117
100
113
104
148
111
102
119
143
136
106
145
118
101
110
115
104
145
144
100
121
104
141
146
110
103
113
110
149
149
104
145
147
131
124
118
111
129
135
119
122
107
102
109
100
117
112
122
102
104
144
148
105
105
102
118
101
143
107
110
109
140
137
125
130
144
130
112
125
113
133
111
145
128
122
121
110
117
130
143
135
109
100
119
109
101
130
129
115
145
116
149
102
141
120
109
104
145
111
150
124
133
108
148
131
108
150
143
128
122
122
145
150
104
145
121
120
109
114
103
135
110
126
146
141
111
143
146
100
115
116
149
131
124
130
120
105
111
141
141
133
127
133
140
105
117
110
114
134
138
112
119
119
101
137
119
135
134
121
124
141
139
117
127
105
108
128
119
124
112
138
121
137
129
124
105
129
107
147
133
106
104
128
132
126
119
140
123
112
112
145
114
138
102
119
148
118
118
111
113
143
107
149
123
100
116
136
119
104
136
144
105
117
111
127
132
117
115
138
133
150
148
121
114
104
140
140
115
138
105
145
128
111
133
118
120
148
150
116
131
108
130
107
112
125
136
149
132
118
121
105
126
149
129
111
139
115
130
120
129
150
141
100
148
123
132
107
100
103
147
121
104
132
125
138
149
133
114
117
102
148
113
130
131
136
122
144
126
109
115
144
107
110
119
131
138
121
114
144
110
126
119
128
137
136
147
118
110
131
117
116
144
120
134
113
125
144
122
104
116
143
138
147
149
107
144
140
145
146
102
104
113
128
131
104
131
150
109
100
137
134
140
134
133
129
131
149
127
101
104
133
101
125
111
136
138
136
137
137
118
136
131
120
121
126
135
141
118
133
150
106
122
107
107
149
127
129
130
146
104
100
145
109
115
112
103
148
133
115
142
110
102
120
104
139
148
111
109
148
131
100
141
121
150
112
103
118
147
108
138
118
136
118
131
100
102
138
142
132
107
120
120
126
131
121
100
127
143
125
147
113
103
107
110
127
120
129
101
123
136
126
149
147
117
150
121
130
121
115
103
140
141
136
108
103
139
108
145
141
112
149
137
140
121
100
130
138
137
112
124
142
104
142
114
116
150
139
146
105
102
105
117
125
141
124
131
115
129
100
118
106
117
130
134
131
128
135
120
135
140
122
114
116
146
137
120
139
147
100
128
147
141
116
115
130
140
105
100
136
108
142
148
141
121
127
145
106
150
149
129
113
141
103
148
128
142
101
139
130
115
131
149
137
147
104
110
109
147
115
127
146
148
148
100
141
136
101
138
147
101
105
137
133
128
149
108
133
137
140
142
101
144
122
106
150
101
114
150
114
102
150
111
126
114
126
124
101
102
107
113
118
145
123
146
140
139
134
138
101
124
115
109
129
135
132
148
107
150
121
129
138
108
117
103
140
126
119
139
137
146
145
117
119
120
117
147
107
110
107
144
110
108
112
138
107
132
132
138
111
145
130
141
143
142
101
135
127
111
122
105
101
146
114
104
139
128
109
111
120
147
137
125
100
149
116
118
108
111
143
101
119
126
112
147
135
138
129
149
136
130
116
106
112
101
146
129
112
117
116
119
142
136
123
118
103
102
132
147
133
105
114
113
112
114
145
109
107
130
126
105
141
129
112
122
128
146
128
138
104
147
136
113
116
108
125
128
139
131
120
101
130
116
150
128
147
148
106
137
139
123
128
102
126
111
124
147
117
112
106
115
101
144
122
100
140
126
111
104
127
126
104
122
136
118
146
124
142
114
108
144
112
111
129
101
131
114
141
129
147
114
144
141
126
124
112
122
120
106
108
109
127
100
108
135
118
116
128
133
120
109
107
108
105
124
109
118
131
121
113
144
130
107
111
119
133
103
106
117
145
130
108
124
133
118
128
106
127
100
127
143
142
106
121
104
108
134
150
145
108
137
122
119
138
143
122
137
105
111
124
137
135
136
122
119
101
123
121
145
149
129
126
114
114
102
130
136
111
132
125
110
132
125
141
147
150
121
125
117
113
118
134
125
105
117
146
126
112
106
137
118
131
105
121
124
120
105
138
108
120
109
120
119
130
101
118
140
148
114
111
103
107
143
112
124
133
111
139
134
130
109
124
111
126
113
107
146
121
144
138
134
142
148
108
108
121
139
116
129
148
148
101
114
138
132
148
122
140
117
145
147
132
132
104
114
128
141
122
129
104
144
127
106
143
150
132
107
139
137
106
136
113
135
132
105
107
125
130
125
127
123
105
110
104
145
120
150
109
141
147
121
103
130
121
140
137
111
102
138
106
150
138
126
120
129
141
145
141
134
129
119
148
146
129
102
131
128
143
113
124
130
132
109
119
146
133
123
137
137
102
144
139
121
148
112
129
111
120
108
126
111
135
111
143
128
141
142
133
142
150
119
107
145
110
101
128
111
147
135
115
139
147
111
121
111
148
102
140
131
109
127
109
101
115
109
123
115
127
110
116
101
120
120
100
149
139
117
100
112
141
124
105
106
125
119
136
131
137
112
129
113
117
104
120
122
132
101
146
126
114
146
122
107
113
119
136
128
114
147
130
104
146
111
130
113
140
150
111
112
105
111
105
148
113
150
123
111
125
127
129
145
150
118
117
125
103
141
129
103
133
107
141
133
137
145
104
147
108
139
101
110
115
137
147
144
100
113
150
135
130
101
108
135
103
135
130
101
114
114
130
128
114
122
139
105
129
129
133
111
145
131
115
125
102
142
113
128
102
146
129
141
115
104
142
103
133
116
126
130
110
117
105
137
150
107
137
102
105
139
135
145
131
121
136
126
103
119
134
111
141
140
128
142
148
140
148
126
137
139
109
149
115
109
135
134
133
118
101
116
108
124
142
129
139
132
134
116
129
113
124
124
136
110
116
123
137
119
118
111
100
122
137
138
110
124
101
108
121
127
145
149
127
103
140
106
145
146
109
127
130
101
128
114
116
116
110
126
100
116
123
116
135
144
103
104
117
121
109
144
107
127
118
114
103
150
118
124
122
133
102
133
120
118
112
105
143
138
139
134
109
140
125
150
144
138
148
114
118
126
113
113
132
101
145
135
111
111
106
106
119
128
139
139
146
147
111
124
135
100
126
108
130
125
122
114
121
121
122
108
106
112
127
139
101
142
135
149
125
149
121
104
141
147
114
120
115
101
100
119
126
130
142
104
144
130
121
146
123
120
113
116
135
131
121
108
132
130
109
126
111
144
125
123
102
138
119
129
146
105
119
132
135
100
130
108
148
144
115
126
122
104
150
111
148
146
117
132
150
146
111
119
141
107
120
102
102
116
140
103
114
136
123
146
142
117
122
102
120
115
145
142
131
146
107
130
146
108
106
113
103
133
126
109
116
117
106
100
110
138
113
149
148
111
108
121
141
138
123
133
124
113
128
137
139
136
135
137
114
141
131
128
148
100
129
133
150
113
142
132
138
125
108
114
146
120
145
111
135
133
101
104
126
119
138
121
114
100
142
128
130
135
120
121
142
128
131
113
130
129
129
126
120
111
148
126
142
116
127
100
134
109
138
145
150
147
112
132
118
100
113
128
144
132
141
107
114
125
145
126
137
122
118
124
129
137
139
106
118
114
110
114
105
146
116
134
150
138
144
116
119
103
139
103
121
147
114
144
131
102
145
145
100
113
141
148
120
139
131
101
142
143
119
141
142
138
128
118
111
142
125
112
127
114
110
118
134
116
119
104
144
148
134
101
104
134
141
118
109
142
112
100
148
123
131
125
136
142
128
110
129
150
144
146
147
133
139
106
105
100
119
105
113
129
117
122
108
131
121
139
147
112
144
133
144
133
115
114
146
120
137
142
113
100
143
105
113
142
144
137
137
100
105
124
100
114
139
119
143
114
103
140
104
131
110
109
143
149
145
125
118
127
106
111
135
149
120
108
146
142
105
145
137
134
117
150
101
115
126
149
114
113
120
114
142
129
148
115
136
116
115
128
132
140
100
138
140
111
101
120
120
149
119
126
134
104
147
133
143
136
144
118
149
108
143
126
140
110
129
147
149
106
136
137
117
119
149
112
100
134
124
108
150
115
105
108
131
119
106
101
108
140
132
107
106
112
103
120
106
135
131
127
127
143
146
146
141
135
129
103
147
101
146
114
111
133
101
127
103
130
145
116
147
106
109
142
135
132
140
115
101
134
128
138
120
145
138
131
109
134
150
140
122
140
133
140
131
104
119
103
116
132
133
107
103
140
146
150
132
105
137
116
114
113
134
133
112
141
104
104
127
139
119
140
150
127
135
143
118
111
138
132
127
147
116
104
145
136
141
129
134
118
124
113
102
133
111
141
125
146
114
126
139
144
109
120
105
135
103
118
103
145
129
142
136
118
146
130
123
132
115
124
116
113
113
103
135
114
103
123
117
136
106
111
145
138
103
134
138
150
127
110
128
145
117
142
119
121
149
143
141
110
105
121
120
118
116
142
129
109
107
124
108
133
123
118
114
100
141
126
120
138
112
109
137
149
132
141
117
130
143
110
119
113
104
101
125
110
127
147
106
102
135
100
102
119
114
111
100
104
149
150
147
130
123
133
123
106
112
127
125
147
126
105
131
135
116
146
129
142
115
124
123
125
114
120
130
132
137
129
126
132
116
128
112
105
102
121
124
116
149
147
133
122
109
149
104
119
124
150
119
110
135
137
120
128
142
107
116
135
144
120
122
136
112
145
131
142
142
101
125
144
149
143
132
104
147
127
111
128
136
102
112
143
106
111
118
140
144
141
143
122
140
145
137
126
135
134
122
136
111
113
106
113
109
143
135
132
104
118
139
114
119
137
111
140
123
101
134
134
100
123
140
106
142
116
100
104
110
100
129
132
118
107
101
115
131
105
111
108
108
131
133
132
143
119
121
116
110
134
150
133
129
122
117
104
117
149
131
112
132
108
108
148
149
113
128
121
149
118
123
111
109
123
137
131
134
146
131
129
129
130
115
118
112
109
101
110
120
105
120
134
109
130
123
146
125
116
147
133
105
101
139
126
118
122
118
121
106
122
100
109
101
148
137
130
132
150
109
115
137
105
118
141
137
115
107
110
141
106
126
123
150
114
124
144
130
143
143
106
116
119
113
132
140
118
120
148
117
115
109
145
147
143
139
106
103
138
115
126
105
132
125
143
119
118
146
116
135
129
113
143
111
150
113
121
149
139
130
110
135
142
145
111
148
149
146
147
143
100
111
147
127
139
145
145
131
145
143
111
131
148
128
131
125
133
131
150
114
139
124
139
135
137
129
137
120
121
104
107
149
148
120
146
101
139
139
100
147
115
108
107
121
130
136
141
121
141
112
100
140
134
101
125
140
137
122
141
130
129
142
111
101
130
145
123
130
149
115
129
100
115
127
101
121
140
123
116
109
126
150
139
104
142
110
130
141
135
125
125
124
127
124
144
123
147
140
148
110
145
107
117
109
125
135
150
146
139
111
112
109
134
131
138
143
145
108
140
117
136
144
121
104
118
113
125
132
131
109
109
144
101
106
112
108
129
114
144
135
102
104
141
109
118
137
147
101
139
116
127
101
103
106
131
134
110
118
124
127
148
134
144
140
137
104
147
119
129
112
132
125
140
143
143
146
145
125
150
140
118
143
112
148
135
149
116
140
140
127
130
126
136
116
112
125
141
140
111
132
138
150
141
148
102
141
150
106
124
116
110
139
141
108
139
131
133
103
149
140
137
129
117
105
103
136
136
108
118
118
115
108
150
138
117
137
110
101
146
109
100
118
109
120
113
111
129
108
124
104
106
130
139
145
119
121
122
121
145
105
107
108
139
123
144
150
123
120
103
142
114
121
129
106
150
150
109
116
130
119
131
121
109
138
142
129
143
131
101
134
129
137
119
125
101
107
114
123
102
147
146
137
116
132
103
105
139
107
141
143
141
123
107
109
128
140
100
118
145
118
137
118
124
104
123
150
150
128
132
110
149
132
128
115
121
139
123
112
103
114
100
119
126
125
107
140
108
139
117
102
144
146
137
129
115
106
126
144
102
143
133
140
140
112
118
108
128
139
108
116
104
143
125
135
136
139
144
119
130
140
128
107
101
141
147
114
102
100
130
101
149
144
112
100
109
104
138
106
137
113
110
134
145
148
106
142
148
137
102
143
126
102
104
136
112
102
127
150
127
121
129
117
126
123
101
113
105
123
139
150
102
112
145
100
149
119
138
148
120
137
124
107
150
119
128
119
101
117
109
137
128
106
108
141
147
132
140
142
102
130
132
140
145
103
107
138
119
113
138
132
107
133
135
110
100
126
124
135
125
120
123
144
133
148
111
103
114
104
139
102
137
117
105
145
120
128
130
109
122
127
146
135
142
125
103
110
131
130
100
135
118
150
103
113
134
105
130
100
128
107
139
107
119
130
135
121
118
122
136
133
149
121
125
115
132
104
120
141
105
149
124
108
138
138
127
118
147
116
138
148
106
131
131
134
115
130
124
104
120
137
134
143
125
102
148
130
143
134
142
124
144
140
136
109
121
112
113
123
120
137
132
146
125
142
119
143
105
141
114
118
139
104
138
149
110
107
144
111
116
103
150
123
111
123
123
143
150
104
122
128
143
146
128
137
122
144
104
141
112
125
148
100
134
103
126
110
130
137
144
138
145
144
116
107
132
136
142
116
111
131
150
142
124
146
117
128
118
141
108
102
113
144
102
149
117
120
130
105
104
142
118
102
137
100
104
122
129
131
126
101
138
101
105
137
104
114
135
102
105
135
134
139
111
130
109
134
112
129
104
150
111
116
137
130
133
125
132
146
126
141
126
105
117
115
116
148
113
102
136
147
100
131
102
104
147
133
129
101
117
102
131
127
144
143
146
109
119
149
144
116
127
149
100
134
137
143
126
148
119
116
104
117
107
115
124
123
115
109
121
129
128
105
104
124
126
131
133
104
136
124
122
145
100
107
142
112
118
134
125
133
101
122
121
147
140
129
142
133
129
108
150
109
142
128
128
122
103
128
109
101
137
150
103
120
119
118
106
117
135
129
131
142
144
142
144
115
135
107
109
136
108
133
149
142
141
148
138
125
135
111
131
116
117
112
112
147
126
147
103
101
100
100
148
147
120
115
114
111
104
139
146
130
134
108
148
132
116
129
139
138
108
143
133
106
117
134
124
110
117
130
108
123
138
117
143
149
137
132
113
140
141
148
123
123
148
111
143
114
108
109
119
133
120
130
112
147
146
141
119
142
138
101
118
115
118
143
112
120
102
123
131
102
140
109
127
138
118
135
148
117
143
138
150
148
114
138
114
133
128
114
115
106
100
127
121
146
105
112
113
102
137
136
113
137
147
124
105
138
141
104
106
143
141
132
140
135
142
138
144
100
150
127
121
129
148
124
118
129
143
101
102
149
114
129
129
110
132
145
111
120
108
129
126
122
115
110
128
150
130
119
113
146
146
125
115
110
119
105
104
113
130
144
120
123
134
107
136
135
143
111
139
117
100
115
137
128
147
145
128
144
120
111
105
136
119
115
145
126
106
131
127
113
105
129
135
123
128
105
136
110
118
120
120
125
129
134
122
140
139
133
105
139
117
139
101
150
126
117
122
105
111
128
101
124
128
150
105
129
103
101
136
124
115
143
119
114
104
118
104
124
134
150
118
107
130
149
102
125
131
129
126
104
125
141
132
125
108
132
122
102
115
141
100
126
113
134
120
116
150
101
150
102
110
135
130
140
125
102
135
150
116
132
115
104
126
109
144
143
115
114
104
113
147
105
102
104
142
139
100
142
115
108
105
125
133
139
118
139
145
130
106
145
135
126
128
108
148
123
135
131
110
109
115
114
105
149
115
144
116
111
125
147
146
102
125
147
116
131
103
147
145
124
140
100
110
135
145
133
133
125
149
129
130
140
132
118
137
149
111
124
129
139
106
115
107
119
105
133
137
138
116
135
139
132
133
102
110
125
149
122
113
119
111
141
120
103
149
102
121
102
125
143
139
144
106
104
113
136
143
130
111
148
100
141
114
148
127
130
145
103
146
117
148
128
118
118
120
120
117
141
120
119
137
115
143
144
108
135
118
112
135
126
144
138
139
100
129
112
118
134
128
134
144
134
140
105
104
114
123
126
100
125
146
139
109
146
126
150
126
148
117
130
142
110
147
103
147
145
109
141
111
147
123
144
139
107
109
120
120
138
109
100
149
129
124
115
115
142
139
133
130
147
115
101
111
117
126
126
140
123
130
146
107
125
106
137
122
113
120
122
142
132
111
121
150
112
148
126
139
111
128
133
120
141
142
120
115
150
113
120
145
121
108
146
114
130
146
121
133
130
141
107
101
127
143
142
131
100
144
126
121
105
124
118
110
149
106
138
125
109
116
101
101
139
113
100
120
116
115
128
113
111
102
132
141
119
144
106
119
122
108
127
108
120
104
105
110
120
125
105
141
128
111
145
142
124
122
146
100
148
146
112
108
115
146
135
102
142
112
138
139
141
119
136
116
150
106
129
116
123
125
142
100
113
137
100
109
144
100
100
128
133
100
120
117
148
117
132
118
148
120
100
100
117
112
112
114
136
131
102
130
100
150
114
103
138
149
121
146
131
143
150
111
135
106
120
138
114
124
107
138
131
122
121
130
117
133
124
137
103
138
150
130
112
129
122
144
146
148
121
136
118
129
121
133
142
117
113
139
132
117
147
129
102
126
176
140
183
200
146
156
177
183
172
156
198
156
200
184
172
155
181
173
187
182
143
169
146
163
162
170
194
160
170
171
153
175
178
157
156
160
190
185
165
142
161
172
193
156
151
172
170
141
199
161
195
172
180
192
145
148
169
155
196
154
194
183
168
165
144
151
178
190
172
141
185
193
198
144
153
168
141
163
156
185
176
157
148
188
190
191
147
166
196
189
196
180
194
171
161
198
144
152
197
181
149
166
168
193
158
194
153
198
170
197
146
169
168
187
151
143
181
169
152
192
140
197
195
196
150
187
200
165
146
178
185
179
181
160
192
173
168
158
190
190
163
143
160
158
149
198
187
165
155
198
194
150
169
174
190
177
163
182
160
169
157
174
140
176
149
198
156
151
167
168
189
161
143
161
144
180
147
140
180
198
175
149
156
162
153
166
168
194
187
143
142
159
188
149
167
199
197
163
175
183
146
193
162
183
145
151
165
180
190
156
184
161
168
190
156
149
181
169
145
153
181
163
197
155
163
187
143
173
170
147
191
192
200
151
170
177
156
176
167
142
180
198
154
140
166
161
168
159
166
163
171
144
159
156
149
171
162
178
153
197
165
184
154
198
152
162
169
184
149
150
192
148
180
142
176
196
151
181
154
162
165
175
193
153
184
196
198
187
179
168
179
154
187
197
185
184
146
168
173
192
172
152
155
195
168
184
161
186
145
198
165
153
176
197
169
200
172
167
157
168
142
168
140
169
199
145
148
155
149
179
162
181
152
190
194
174
195
154
156
190
169
193
152
155
143
174
141
140
150
171
184
158
185
170
178
172
192
185
199
192
184
189
171
175
165
143
174
145
153
175
144
198
194
195
184
143
186
163
168
142
140
189
177
148
156
154
178
164
200
191
193
177
185
178
175
192
144
157
178
199
144
167
143
177
196
167
184
182
163
195
199
149
169
200
154
172
155
186
149
145
178
196
148
160
161
198
163
145
154
165
152
171
160
188
173
196
155
176
195
142
152
177
159
152
177
147
140
145
192
161
149
150
140
190
192
156
183
187
197
192
175
169
161
196
168
190
191
176
158
142
180
200
195
170
176
163
161
179
165
196
143
149
150
164
171
191
167
176
177
171
154
178
150
189
190
188
184
199
158
200
182
157
196
151
149
179
191
161
148
161
167
194
162
170
175
161
188
187
162
150
147
196
143
143
140
141
175
193
149
170
141
150
190
163
195
177
181
168
195
146
180
148
172
168
186
144
149
153
200
183
192
158
148
154
184
148
140
150
182
148
145
179
167
200
200
190
198
160
182
148
189
189
171
150
176
151
192
167
193
158
147
144
148
140
140
189
149
161
191
185
154
170
175
181
175
199
185
174
186
170
188
192
149
156
151
142
162
197
144
185
189
192
151
176
149
183
152
167
180
150
147
162
178
177
177
168
147
175
170
195
150
165
170
144
154
193
188
185
169
156
168
168
187
173
160
154
173
196
180
191
199
179
161
174
192
157
179
200
159
144
184
146
160
183
146
178
174
200
165
142
164
177
159
177
184
166
175
196
150
160
168
172
156
176
157
178
196
147
166
145
184
186
158
189
159
178
197
142
156
155
145
190
184
145
157
198
198
165
179
190
142
175
155
174
153
178
154
192
179
179
143
172
174
198
161
160
141
176
172
156
161
167
149
164
163
180
179
171
143
149
161
193
173
172
188
154
198
186
177
147
156
185
153
151
145
150
158
182
173
181
175
200
169
167
176
197
163
180
188
146
180
175
162
183
159
174
153
176
170
147
155
173
183
177
179
159
177
145
164
179
146
170
144
174
158
166
172
142
154
183
189
160
153
189
149
189
152
140
185
147
175
200
161
148
170
185
186
161
151
185
178
155
147
193
164
181
140
171
185
160
150
148
181
171
199
181
162
142
198
179
193
142
143
141
196
169
147
197
181
158
168
180
178
178
200
143
149
168
200
160
167
145
182
165
147
140
173
183
172
167
148
170
186
143
145
189
195
185
180
193
162
151
194
191
177
147
200
174
162
153
172
156
199
141
156
166
161
175
164
178
157
170
168
163
179
162
172
175
199
160
152
188
140
185
146
144
189
177
192
188
156
199
161
174
182
140
153
193
158
146
140
163
178
169
180
160
153
163
198
165
177
145
192
149
172
145
187
194
149
168
179
143
168
169
166
198
197
142
177
147
190
163
142
173
191
161
186
144
192
184
167
159
156
145
172
189
175
150
169
195
171
167
140
163
176
176
186
170
156
145
176
153
172
144
194
171
177
187
166
191
195
180
182
196
183
198
153
171
169
171
147
182
191
159
191
143
167
196
145
175
165
154
177
194
151
140
168
193
163
181
167
157
197
143
171
160
149
197
152
193
173
144
169
156
159
157
168
163
180
167
188
152
182
175
140
149
150
178
166
175
167
197
178
155
145
187
157
200
141
147
173
171
173
175
159
197
151
160
154
180
185
189
182
178
161
174
171
190
164
168
174
161
192
162
156
150
147
163
181
152
157
185
188
144
175
174
148
186
170
161
156
159
186
193
148
151
151
147
162
157
200
141
171
191
150
162
190
140
186
174
190
186
154
186
176
189
198
158
148
171
182
141
142
193
155
199
182
155
193
141
142
176
189
192
176
148
161
162
153
194
184
180
166
167
149
141
193
172
157
146
175
200
149
175
142
171
194
159
163
192
197
143
175
140
177
175
165
194
193
143
164
167
199
200
191
176
159
141
181
199
148
171
152
145
160
168
198
165
162
150
175
141
157
186
188
184
142
165
147
186
164
180
155
178
186
159
153
146
189
159
184
164
165
156
147
155
143
177
161
159
197
142
145
188
165
182
196
172
140
182
165
183
188
178
157
160
189
197
195
155
188
164
182
197
169
187
198
161
164
183
176
157
169
188
158
154
143
148
142
140
162
184
182
161
160
175
148
164
162
145
165
163
164
150
191
179
143
164
160
151
179
153
164
177
182
196
161
195
175
179
147
195
189
179
171
157
163
190
158
173
144
143
140
158
159
143
195
192
180
161
162
177
198
156
173
181
156
154
152
171
196
191
190
169
184
180
152
167
164
186
156
192
158
164
189
162
194
173
191
142
148
167
140
179
196
160
153
153
144
151
199
180
150
148
191
152
187
167
142
171
163
198
145
174
199
188
159
168
192
170
147
179
163
161
197
200
197
179
180
169
152
173
153
151
185
185
198
142
143
178
165
157
164
166
176
143
167
161
180
168
178
187
189
196
167
174
166
142
172
178
158
174
145
163
148
166
196
161
188
147
154
176
170
195
192
153
167
143
184
156
159
199
156
186
151
175
182
157
147
155
164
195
152
146
176
190
198
198
179
159
149
167
152
167
151
175
183
162
160
173
154
142
149
151
142
142
153
158
157
190
149
161
169
164
198
188
147
194
163
170
198
182
147
167
167
150
144
174
164
200
199
165
181
143
172
199
170
145
160
140
193
179
178
180
177
200
149
149
161
141
195
147
199
160
185
182
162
190
147
196
191
148
199
186
144
173
159
170
153
152
162
163
165
147
161
166
160
150
196
174
184
198
160
176
185
147
169
190
146
161
163
180
199
162
180
174
171
158
196
189
149
149
180
197
168
153
186
200
159
168
158
150
196
146
160
157
162
155
151
153
146
140
195
166
174
152
191
162
140
160
177
190
177
162
156
200
169
178
170
148
194
178
178
154
153
155
191
193
190
174
186
192
175
171
151
178
157
164
173
151
164
167
173
169
184
183
162
185
162
180
178
167
141
186
178
152
142
198
184
184
175
198
179
163
172
150
186
149
165
144
161
173
142
142
140
158
174
186
197
197
161
184
195
172
171
148
191
170
154
197
165
159
176
200
188
143
175
140
143
177
172
177
148
178
173
159
185
198
143
186
163
187
199
196
176
168
140
198
161
186
180
174
176
200
191
150
158
164
167
166
184
193
192
158
161
163
181
145
154
173
146
147
169
157
164
182
157
199
178
190
141
186
155
142
181
193
192
200
200
140
157
195
199
171
185
146
159
152
195
190
200
169
181
161
173
198
195
182
162
194
181
141
152
150
183
192
189
154
162
151
151
195
177
196
165
160
185
191
168
152
158
164
141
155
159
187
165
199
180
152
155
167
143
192
189
176
168
185
173
189
199
195
172
146
144
198
149
180
181
166
169
145
200
141
144
141
159
179
148
174
170
141
177
177
182
169
181
181
152
142
178
190
197
153
162
197
187
192
145
145
168
195
166
185
195
196
165
190
162
199
165
199
158
166
142
170
178
184
171
153
140
181
188
185
154
157
182
140
177
165
177
180
140
162
174
171
171
200
192
175
143
182
158
177
160
172
194
182
149
189
151
186
181
156
193
186
166
153
190
174
140
193
166
185
173
163
162
188
154
170
192
196
183
188
143
194
189
166
183
181
169
176
173
198
193
144
163
147
194
144
195
148
177
194
198
147
158
187
155
184
149
183
171
180
142
175
160
195
187
150
163
148
191
146
159
154
168
198
194
152
144
148
182
186
178
180
177
194
175
179
158
149
174
156
182
149
148
185
162
150
158
147
152
167
182
159
192
177
162
156
180
156
184
200
165
151
194
148
191
177
151
183
196
159
165
195
155
162
166
144
149
151
177
165
185
142
163
158
200
175
150
178
200
195
166
191
199
141
180
173
143
153
142
200
158
159
194
176
145
176
197
170
163
184
186
183
164
184
164
193
172
146
190
185
140
182
141
190
145
183
149
196
142
155
158
195
195
198
200
153
178
146
154
195
186
152
163
140
190
151
170
143
186
194
199
148
146
192
163
163
192
160
184
153
177
172
200
169
198
169
188
171
182
169
142
168
146
198
176
186
146
171
183
174
141
180
199
182
195
162
140
188
151
170
142
200
182
181
175
146
164
183
140
185
152
180
163
167
163
143
153
148
180
161
145
191
199
170
197
169
167
167
142
185
175
184
167
143
155
189
147
163
173
147
165
170
161
188
158
185
189
173
165
174
153
178
179
157
194
173
191
140
174
198
200
185
147
159
191
178
158
187
199
171
183
147
153
153
196
189
158
193
158
145
143
156
143
190
178
192
195
181
164
144
143
163
141
150
171
157
163
149
151
149
164
194
179
155
167
200
192
192
155
168
140
180
196
152
178
172
144
185
200
159
145
189
148
194
189
182
152
149
185
195
152
168
197
142
149
147
155
188
179
161
143
184
190
157
169
150
173
187
142
142
150
162
159
169
171
185
146
150
145
177
168
161
175
145
193
183
150
180
154
161
190
196
183
189
181
160
180
198
174
179
183
187
152
164
199
171
150
193
191
187
177
141
162
145
169
170
151
188
162
155
190
146
176
195
147
164
141
146
199
189
149
181
159
148
182
192
179
193
170
190
178
176
141
197
186
163
187
157
184
190
199
159
168
143
154
193
171
164
166
190
185
155
153
163
197
165
176
166
162
159
195
191
168
199
191
151
141
193
164
163
195
166
151
186
196
191
200
189
161
173
189
198
186
174
151
184
157
183
148
171
181
172
160
160
145
169
149
170
151
146
194
199
182
189
196
188
169
198
164
186
197
156
188
151
190
153
153
176
200
168
151
193
144
157
187
169
147
146
187
140
158
196
159
196
189
172
198
174
152
143
158
190
181
164
180
147
143
189
200
162
151
198
199
169
159
164
190
150
174
172
178
184
151
156
150
174
165
189
171
162
141
153
163
166
178
157
140
164
178
178
165
164
173
165
153
157
190
192
170
150
196
165
154
143
159
198
143
157
153
193
159
170
199
189
145
163
152
169
187
140
192
153
200
171
173
145
187
159
180
181
177
176
159
187
179
183
148
198
160
150
183
197
195
177
158
184
152
144
195
147
171
144
144
156
146
178
146
140
183
195
153
193
189
171
168
172
199
145
158
165
141
178
140
146
178
146
177
153
144
194
200
182
179
147
154
172
146
153
180
187
164
192
140
156
145
140
150
196
194
143
167
166
152
151
189
142
179
168
197
146
145
200
180
178
198
169
175
147
197
193
174
145
186
142
152
151
174
155
166
153
156
145
192
165
167
140
199
180
190
145
184
155
140
151
198
148
158
169
154
185
197
192
173
187
153
186
175
161
175
150
151
152
150
181
188
166
197
185
200
151
175
193
142
190
177
144
196
193
165
163
170
176
148
183
158
158
162
177
192
170
154
195
180
152
189
156
173
175
165
142
170
177
177
145
165
182
197
189
185
146
193
170
199
186
162
185
162
166
151
157
174
195
171
199
146
180
186
175
150
142
178
167
168
167
171
181
140
171
150
169
164
167
161
196
154
178
160
186
154
143
164
166
175
147
150
170
173
144
161
149
144
189
154
195
145
182
166
140
164
144
192
167
180
143
189
159
173
181
164
166
158
198
165
198
182
160
176
178
185
198
146
171
150
141
178
182
141
159
161
170
181
142
198
151
148
175
143
171
179
152
199
146
177
197
173
199
151
193
146
159
145
198
179
166
199
151
166
193
198
195
185
187
162
173
143
156
167
171
168
191
156
174
198
154
153
156
196
163
165
185
184
165
182
186
154
194
145
185
199
165
154
178
179
173
152
182
165
181
163
162
176
185
161
153
195
148
199
183
161
162
150
182
165
188
171
162
148
151
187
194
151
167
170
183
198
191
148
189
179
152
163
140
160
194
178
172
189
170
164
152
153
189
166
187
156
199
184
161
163
167
145
164
195
169
195
196
178
158
147
149
160
164
191
196
200
158
187
199
195
144
154
195
145
160
172
173
173
195
144
148
181
182
178
190
153
186
150
178
178
187
140
200
146
168
192
199
177
162
158
174
146
155
145
157
157
196
195
141
145
197
156
157
161
148
160
193
152
162
141
149
196
181
151
141
157
181
177
179
165
189
194
152
161
188
167
188
185
154
150
146
162
154
182
142
164
184
173
189
149
184
177
160
162
194
180
173
192
186
171
188
165
165
146
182
174
161
160
193
140
170
194
170
194
155
143
191
151
177
158
154
183
178
176
163
167
166
172
180
174
198
179
156
160
183
143
168
177
159
196
195
142
198
179
184
171
173
142
190
173
153
199
141
179
180
173
158
149
186
193
158
173
187
142
182
164
171
163
186
192
157
182
143
145
153
175
150
195
196
163
176
182
165
187
161
178
169
176
162
155
164
164
171
184
182
173
153
176
160
177
147
186
188
199
195
162
193
178
196
188
178
189
189
200
174
142
149
179
149
158
142
153
187
156
148
180
163
145
173
194
184
174
179
192
145
191
189
178
146
196
181
174
145
200
146
196
160
150
167
153
157
167
147
163
200
171
146
183
189
197
180
185
167
198
198
199
183
149
156
179
181
191
169
179
187
198
195
158
170
151
147
164
181
162
167
163
192
196
144
142
152
141
147
177
176
176
196
200
156
158
191
193
179
175
176
144
142
153
158
176
170
164
190
189
156
156
179
172
155
173
167
143
166
167
191
195
170
147
197
159
144
192
152
172
178
146
141
148
194
149
150
159
150
158
140
194
187
184
156
191
195
158
143
162
182
145
180
184
179
187
144
166
194
152
185
141
143
179
154
196
154
180
152
192
196
173
155
181
190
159
167
154
171
176
198
151
161
145
144
152
156
181
189
200
180
177
146
143
156
173
191
195
198
181
199
146
147
168
182
182
166
194
171
171
171
188
143
173
197
195
145
175
148
197
160
180
153
187
184
191
161
187
196
188
144
185
159
175
163
169
185
148
157
146
158
159
166
187
189
182
186
197
147
182
197
165
200
151
200
181
182
195
167
183
181
143
197
144
167
170
164
141
200
169
149
145
176
195
154
171
181
165
166
185
190
185
180
156
188
169
192
168
141
158
187
181
186
192
149
150
166
147
144
167
144
151
156
198
185
141
177
167
191
168
188
192
153
187
188
156
149
162
187
159
161
147
155
173
180
186
156
144
175
147
161
159
151
197
178
141
142
169
181
143
166
199
140
149
186
191
185
179
144
170
175
143
173
174
185
156
199
177
144
158
195
169
180
197
163
191
169
146
191
183
177
143
144
143
151
140
171
198
163
197
145
152
186
172
154
157
142
179
184
167
197
149
191
198
196
195
156
154
181
163
174
164
175
151
152
147
187
196
151
170
168
162
187
160
159
197
143
161
157
162
174
162
175
199
174
158
178
148
186
176
140
157
176
184
175
154
168
187
190
178
191
168
142
200
151
180
161
146
186
155
156
149
192
170
194
174
149
157
167
142
159
189
187
163
182
196
184
176
182
140
189
199
188
151
160
171
196
146
141
160
145
197
142
180
189
142
157
179
195
140
162
185
197
186
141
184
189
154
157
173
167
154
168
171
164
199
151
151
176
194
157
167
173
164
176
155
169
152
142
180
173
158
193
140
186
142
151
166
197
155
159
178
186
178
152
158
165
148
174
183
163
163
180
162
140
178
183
157
187
169
142
155
197
172
191
174
181
148
154
187
176
141
187
191
182
149
151
185
175
143
191
183
157
181
151
186
140
155
183
186
168
171
185
154
149
146
173
183
199
193
168
178
162
194
184
200
193
145
180
182
156
156
140
158
172
200
200
168
140
190
194
151
194
167
170
164
172
185
160
151
175
146
177
143
142
166
167
190
187
200
152
164
159
147
191
182
167
142
167
181
159
187
165
179
191
143
193
182
190
153
167
197
149
175
174
162
185
162
195
168
170
166
182
191
175
148
180
162
165
190
182
156
145
156
187
165
167
197
171
150
157
142
154
179
171
164
180
188
183
149
168
161
186
199
153
195
150
190
169
151
188
181
183
173
193
141
159
193
179
191
147
159
146
172
200
194
155
167
158
196
150
184
151
179
168
196
155
198
194
176
165
192
169
173
144
151
144
145
191
162
144
197
183
161
180
188
192
146
169
157
155
147
174
199
142
152
187
167
160
143
183
190
177
182
163
181
187
200
158
166
155
186
169
156
149
176
198
144
158
162
190
159
163
193
152
155
173
187
172
174
180
197
172
145
171
164
199
173
152
155
175
168
173
164
167
140
196
150
143
144
140
171
184
151
196
179
149
188
141
151
142
143
163
159
169
166
161
159
158
196
198
159
144
167
183
184
181
198
144
165
180
185
199
172
182
169
147
140
170
194
173
156
174
175
168
141
141
149
163
179
157
175
183
177
141
151
140
199
176
200
180
181
188
189
147
157
196
189
179
160
187
153
183
141
141
198
184
181
163
155
146
148
179
191
145
199
159
192
150
187
182
178
155
158
168
200
160
143
144
145
159
169
197
198
178
179
151
142
156
193
179
178
150
197
179
190
182
164
186
176
186
144
185
167
179
161
159
185
179
196
156
143
152
155
173
184
188
170
168
150
188
147
175
187
163
169
187
180
194
197
169
160
192
160
152
189
144
186
179
192
148
180
148
150
188
187
153
179
189
145
196
149
180
154
181
159
168
191
170
160
185
158
190
146
173
172
164
166
162
167
147
176
140
185
164
197
195
177
170
148
151
147
193
188
186
166
148
149
185
152
166
162
199
159
157
185
191
169
179
141
180
171
140
167
141
169
147
142
181
197
199
185
156
160
194
198
143
144
145
148
188
179
185
155
189
166
152
197
181
171
160
142
156
181
195
190
162
168
188
164
194
157
190
189
178
169
157
148
198
182
183
182
180
196
159
189
144
177
152
193
190
198
148
164
176
180
145
198
144
168
197
145
180
166
171
143
198
153
199
177
168
150
180
183
167
190
182
151
141
185
176
143
153
180
190
150
181
181
177
200
164
142
172
175
197
193
197
149
191
196
188
148
192
199
149
181
165
167
187
182
158
157
167
182
156
166
157
176
182
148
176
154
149
194
151
168
153
165
189
146
142
176
163
148
171
160
185
179
141
192
141
168
192
146
177
172
159
178
161
187
192
168
166
168
196
142
183
156
195
163
173
183
150
184
161
166
151
194
166
189
140
197
171
189
149
146
171
195
152
162
190
183
178
186
167
184
193
180
194
184
149
186
150
180
179
196
198
176
149
141
172
200
148
167
181
170
189
176
181
172
146
154
200
141
196
194
142
185
195
177
157
153
154
152
191
191
169
196
156
187
144
171
200
148
141
159
172
187
192
186
153
157
158
164
172
150
195
177
169
148
165
186
169
171
169
200
167
164
160
144
180
200
181
160
169
172
188
154
199
141
172
176
144
191
156
149
147
159
190
167
164
150
197
197
158
192
171
181
183
181
191
165
140
146
148
171
185
165
170
159
168
167
169
146
144
161
184
149
200
169
154
154
166
159
185
186
166
162
155
174
174
159
185
200
196
159
161
193
188
170
173
154
166
168
173
144
190
190
199
191
181
171
163
159
145
155
161
144
198
169
151
154
178
193
178
193
188
140
177
162
171
140
198
154
179
185
199
189
164
177
152
180
156
160
187
142
166
192
182
146
161
147
162
190
174
181
146
172
146
163
175
185
196
168
176
176
194
152
161
181
197
187
150
158
147
141
155
159
148
168
176
164
180
187
188
197
142
169
200
186
155
178
169
165
198
154
144
175
178
186
178
175
191
154
189
143
197
148
153
159
155
148
180
175
179
199
154
199
171
146
193
141
189
150
168
149
193
158
190
192
156
193
151
150
146
200
192
142
167
188
194
147
161
164
163
171
153
150
191
172
154
187
151
153
145
157
168
144
144
166
189
143
141
190
196
193
153
156
148
150
170
149
153
185
180
187
198
180
164
187
189
166
164
178
155
150
167
163
199
182
189
147
154
184
188
185
152
150
140
157
156
187
154
181
179
197
145
185
147
182
192
168
144
141
188
146
188
153
188
168
163
199
142
151
143
155
148
178
140
143
154
164
143
155
172
160
171
165
177
185
179
152
155
140
147
178
188
199
198
179
172
190
165
186
155
200
177
162
183
197
142
199
143
185
191
174
185
154
168
192
174
163
200
189
158
200
160
184
162
181
147
159
149
154
196
195
176
159
189
161
184
147
177
146
158
146
192
152
150
142
148
161
190
189
180
164
158
154
157
153
198
156
163
200
144
143
187
195
188
142
157
154
174
188
143
146
176
163
193
159
185
158
156
178
180
153
167
180
197
155
186
198
146
172
174
193
143
157
148
158
157
155
186
153
184
188
166
192
151
165
200
180
154
143
191
172
188
174
178
179
189
143
150
143
182
179
187
141
140
183
143
164
161
155
182
166
189
146
141
142
184
142
159
193
193
169
179
187
160
168
148
198
191
154
178
140
171
152
191
187
147
162
148
198
173
200
166
189
197
167
146
180
192
142
152
153
174
167
143
162
160
146
153
179
152
169
159
170
145
189
152
142
184
159
178
155
185
165
191
157
146
174
157
145
172
190
153
189
158
200
140
172
162
169
177
187
200
142
180
177
189
185
168
181
160
162
179
178
189
160
198
151
190
175
176
174
151
154
165
159
154
156
160
178
180
187
190
140
183
195
176
146
167
171
179
200
155
152
184
140
193
198
164
190
200
195
170
184
186
148
187
156
146
146
161
140
178
196
150
164
150
196
191
158
196
159
194
188
180
189
181
182
140
142
200
156
147
145
149
141
181
193
183
175
144
186
172
151
143
200
191
171
168
170
148
145
160
163
148
188
195
183
173
190
175
197
191
173
153
156
175
182
155
200
182
188
143
186
177
196
197
173
172
184
156
152
181
180
179
161
142
196
186
183
141
180
159
198
174
184
177
181
182
147
158
152
150
180
172
189
140
184
187
143
165
184
150
149
142
143
150
156
186
168
168
144
197
144
179
188
167
176
158
178
179
164
166
150
155
157
189
166
155
200
168
177
178
158
155
157
198
179
188
141
165
164
181
157
147
141
189
151
149
165
197
177
189
158
150
148
143
177
165
150
192
176
183
188
189
150
200
140
153
165
159
142
196
167
185
161
165
166
174
172
183
184
190
195
145
186
191
175
179
179
185
161
171
169
159
171
162
172
154
160
154
142
157
167
183
156
165
184
154
181
155
152
152
183
148
144
143
166
158
188
169
187
194
146
157
167
167
167
141
140
163
149
148
143
191
195
143
186
197
175
192
184
184
154
155
167
154
163
150
191
179
151
197
196
157
168
159
185
149
146
171
190
183
180
163
173
156
154
190
195
179
189
175
189
174
200
171
186
171
190
200
177
169
191
184
142
186
164
177
144
187
167
150
150
143
160
187
194
172
158
148
150
144
172
174
188
148
159
144
192
196
200
159
175
148
173
182
194
181
192
155
182
183
167
155
191
174
146
143
160
162
171
168
162
164
199
169
149
192
160
178
182
156
183
170
163
186
155
184
187
197
145
184
154
191
148
154
147
177
183
147
166
173
158
167
184
161
143
193
158
172
149
175
200
144
179
183
166
149
187
183
149
150
174
171
152
161
153
148
173
144
169
167
150
173
175
155
143
175
175
159
143
185
188
148
145
159
162
196
159
171
160
174
151
174
169
147
148
175
173
160
188
176
157
162
158
172
155
189
173
177
182
158
194
151
156
142
172
186
168
171
156
185
197
176
179
195
192
143
197
185
154
183
170
153
141
173
198
176
145
157
199
193
147
196
184
159
195
161
147
193
169
151
162
198
180
194
147
160
195
165
175
197
157
164
175
148
140
158
197
158
157
175
164
180
196
151
178
193
190
154
148
184
156
171
184
171
143
184
196
152
159
158
171
148
140
169
186
175
192
140
190
191
160
152
163
146
179
157
156
178
163
155
196
159
181
197
163
145
146
160
167
190
182
150
164
158
143
174
152
143
193
168
199
198
145
194
183
190
146
176
158
195
142
142
157
183
172
158
153
150
174
178
182
155
199
169
150
164
156
163
169
177
160
165
176
185
182
189
155
149
184
150
192
179
156
159
184
188
189
195
169
148
180
147
193
182
194
175
171
181
189
193
178
164
156
182
146
165
158
167
199
153
166
156
145
200
178
158
164
195
150
199
166
148
157
199
193
167
162
150
155
141
168
190
180
169
171
142
143
173
198
144
181
163
198
180
190
174
199
175
169
142
183
190
177
187
175
154
167
146
157
162
159
148
146
174
140
178
146
146
154
178
151
193
189
155
193
168
170
146
198
152
190
171
160
155
152
191
194
145
146
154
188
190
191
151
160
160
173
171
184
154
159
191
176
189
158
179
199
191
194
195
174
159
184
197
179
190
193
163
151
157
148
187
149
154
187
140
158
189
170
144
189
181
173
152
154
184
161
194
162
178
153
177
192
145
143
150
151
152
200
166
192
189
151
158
153
152
140
197
166
160
186
197
179
148
146
156
150
180
141
170
197
164
150
189
190
147
161
172
196
165
144
156
199
171
168
172
156
197
140
160
192
143
162
152
192
155
178
175
184
167
155
159
173
177
146
200
174
200
168
160
191
162
188
144
194
141
156
162
179
189
173
148
172
194
163
156
152
143
148
143
177
190
152
151
172
151
169
148
169
176
159
163
159
195
144
195
163
180
148
160
178
180
151
198
179
180
180
144
176
156
161
166
154
175
155
200
140
149
196
141
177
165
182
200
199
169
181
183
200
175
157
173
140
179
161
175
156
177
151
149
172
146
158
192
179
196
165
147
166
194
152
189
154
174
173
179
189
158
160
150
141
141
179
194
162
148
143
148
154
158
165
168
183
173
154
145
170
190
143
168
141
144
162
169
180
186
162
183
186
181
180
157
189
183
161
142
170
152
145
197
188
147
193
185
194
190
149
199
140
185
172
186
161
175
189
181
146
168
187
165
143
179
153
188
162
157
189
171
179
199
199
176
142
180
151
175
151
200
153
200
177
143
186
167
191
191
188
152
173
157
164
182
178
145
150
171
178
144
200
167
163
169
164
145
194
150
142
168
176
172
146
169
192
157
183
197
171
163
173
144
155
192
141
190
198
151
184
156
196
185
164
185
177
188
166
143
190
184
170
141
182
181
143
192
194
173
143
163
164
181
154
142
141
161
188
181
148
198
195
143
196
152
176
178
174
147
192
195
142
152
177
167
192
146
194
165
146
155
168
192
173
144
143
190
177
188
192
171
152
170
174
165
142
186
194
171
141
180
141
158
182
170
147
159
174
157
199
157
165
187
166
189
169
155
158
189
182
167
141
188
179
171
174
163
151
157
186
188
154
146
142
168
163
152
178
159
140
161
182
187
189
158
162
166
150
181
198
165
172
141
187
165
187
179
193
167
142
161
184
168
161
140
198
185
179
165
173
157
150
153
154
198
175
195
161
191
180
178
194
200
146
174
175
187
161
140
163
200
170
195
177
176
163
196
159
144
186
159
193
175
199
173
182
186
163
170
161
158
145
143
173
154
158
177
155
169
178
169
172
157
196
177
159
143
173
152
151
175
176
192
175
161
193
144
183
148
174
162
182
164
161
147
158
150
159
199
176
186
188
160
197
149
165
185
148
140
175
175
153
162
190
194
184
164
180
158
148
186
142
163
164
146
163
177
168
190
143
156
159
171
154
173
184
187
183
196
163
152
140
173
185
152
197
183
166
188
170
194
164
194
154
172
177
193
183
145
197
162
144
185
157
158
193
161
194
145
168
150
181
170
166
173
142
157
195
197
164
142
171
173
198
183
141
177
189
169
184
185
153
193
150
181
178
176
195
181
153
144
198
193
179
146
150
180
186
161
168
194
163
156
156
164
151
187
164
148
152
155
178
195
155
173
175
182
172
156
177
171
170
192
146
150
141
143
163
175
157
160
152
151
145
181
191
183
185
199
150
142
193
169
180
178
193
179
147
199
197
153
188
180
142
181
148
155
161
143
186
176
151
181
144
187
145
140
146
160
144
188
178
200
155
188
192
184
183
142
171
169
174
145
141
198
177
172
155
189
145
145
143
145
152
159
183
172
156
177
157
181
165
182
196
157
148
165
184
183
184
140
195
141
150
171
193
195
181
191
155
189
146
151
163
150
177
189
170
194
146
156
184
193
149
147
179
171
140
154
195
162
170
140
179
195
148
153
181
153
200
193
146
148
196
182
153
179
158
187
153
152
176
165
150
191
158
177
199
186
150
155
197
163
197
184
199
198
200
172
148
154
183
190
150
175
148
151
177
147
181
196
152
151
144
175
141
178
188
158
146
160
194
160
200
156
181
193
149
140
171
185
193
170
166
191
184
184
164
164
148
166
190
183
166
145
165
196
149
158
175
178
160
160
179
175
183
170
143
167
175
171
188
164
173
158
147
141
145
160
149
154
170
168
168
181
146
190
166
152
195
159
175
182
145
188
145
148
148
147
182
179
149
200
179
187
142
151
199
200
195
171
160
171
161
194
161
141
200
195
176
164
162
177
172
167
140
162
156
147
167
153
187
153
183
157
156
173
145
174
197
162
143
148
195
181
196
173
176
143
157
165
178
157
194
187
175
184
183
179
174
175
146
146
180
175
192
185
200
189
197
149
150
143
187
164
195
186
145
194
151
150
159
181
200
175
145
151
196
149
192
155
191
161
171
155
168
160
171
164
167
199
193
180
164
168
168
177
185
193
142
174
168
149
192
191
179
173
193
162
146
177
177
172
168
182
165
153
196
166
155
182
186
164
151
160
147
166
177
142
142
190
156
173
192
172
198
177
156
188
200
200
157
198
167
178
148
151
177
193
141
193
149
176
153
166
152
167
181
194
163
177
148
189
169
164
181
193
180
169
156
150
180
156
152
152
184
174
147
152
157
186
153
141
155
144
191
171
151
143
195
177
163
166
186
191
177
171
194
157
155
198
169
145
186
200
157
180
143
186
197
183
194
148
149
171
147
194
168
181
177
158
146
171
151
177
169
152
192
155
150
198
150
196
185
179
197
194
153
191
185
146
173
181
183
179
153
174
161
199
194
141
190
166
174
193
184
194
164
194
183
174
196
181
181
176
193
157
161
185
195
165
147
192
199
183
171
194
163
143
165
188
164
173
193
141
194
172
187
198
170
199
144
176
172
178
142
164
194
176
172
190
167
168
184
140
165
157
162
179
191
150
182
181
156
146
174
192
163
173
156
157
158
186
161
198
174
192
177
194
157
148
172
195
141
156
169
165
199
170
169
199
159
161
177
189
190
173
151
164
150
142
164
180
144
152
184
179
148
169
153
162
188
177
170
180
179
148
179
168
174
195
188
197
186
154
194
168
162
197
191
167
149
181
190
157
182
142
161
143
175
147
177
172
146
156
156
192
170
193
195
168
173
161
151
153
183
183
143
180
177
170
197
197
192
198
183
174
175
190
167
159
182
156
159
195
143
152
173
187
173
157
150
168
189
184
140
160
169
141
140
150
151
191
150
163
153
165
181
175
171
147
197
186
185
191
151
147
184
168
151
149
178
142
157
145
156
167
167
187
177
197
199
199
175
163
156
174
193
175
177
144
183
170
162
187
146
186
184
163
158
168
192
198
179
150
195
170
185
164
199
186
150
195
157
200
195
145
190
163
190
184
175
140
164
165
177
200
145
179
140
152
165
176
198
150
160
165
140
168
173
151
199
194
170
174
177
158
159
146
172
157
177
173
164
154
196
158
152
164
146
167
151
190
170
149
181
174
164
153
163
192
160
193
151
165
179
197
155
186
167
143
182
145
152
173
158
195
156
147
179
147
173
162
190
183
181
200
185
174
182
197
152
178
180
153
163
164
165
144
175
194
141
195
195
179
160
159
168
176
151
175
141
151
153
176
183
179
170
153
141
199
153
169
155
179
182
159
199
166
199
156
171
148
193
196
145
175
196
180
168
142
172
170
179
179
162
159
175
142
157
145
180
197
142
194
159
152
186
185
178
166
143
143
177
185
143
176
197
192
197
159
173
163
165
182
160
195
159
182
153
190
157
140
165
177
188
190
155
194
199
200
151
194
186
173
182
181
151
143
171
179
189
195
145
152
176
177
155
164
186
199
162
173
176
199
155
152
169
196
151
160
189
169
148
199
143
164
150
157
144
179
146
198
192
153
169
147
160
191
172
164
172
178
163
193
178
189
169
174
182
176
168
170
185
149
176
168
182
162
152
197
173
171
169
165
168
193
172
141
198
184
190
157
153
170
169
176
173
149
185
160
140
157
176
178
173
145
145
170
194
169
152
171
170
175
165
197
144
149
157
195
182
185
155
183
194
154
167
193
151
197
181
173
198
184
149
179
147
142
167
182
176
186
162
188
149
169
163
173
151
158
199
168
197
140
196
174
154
168
165
200
140
192
181
186
145
197
166
178
177
140
177
173
157
162
176
178
176
144
187
143
144
144
196
145
157
175
194
173
155
160
198
165
158
161
141
177
184
156
150
165
147
183
188
156
157
175
150
157
168
185
145
195
164
177
158
189
181
189
120
107
145
140
111
145
128
111
127
114
135
127
116
106
106
106
124
110
147
102
137
103
100
137
100
108
108
145
113
105
149
138
122
147
133
130
122
137
138
109
115
117
104
129
103
113
113
125
144
114
148
100
134
127
127
106
129
118
106
123
109
112
109
109
119
109
102
118
107
149
126
137
141
148
100
128
143
100
119
150
144
148
128
125
147
101
107
140
110
108
128
140
112
102
133
124
126
146
141
116
106
139
127
106
100
112
100
130
114
118
132
137
108
125
105
118
147
124
101
122
126
128
112
147
135
121
122
108
107
112
116
138
127
138
126
150
122
130
119
141
150
132
121
111
144
138
105
121
124
104
116
124
125
145
103
131
101
102
144
133
132
112
107
130
127
117
110
115
135
132
129
100
112
144
110
143
139
116
136
124
122
137
129
146
100
149
118
140
112
117
124
132
126
118
111
106
150
132
143
138
101
104
147
115
120
139
148
113
119
136
111
101
132
111
136
127
133
111
124
115
123
135
140
135
150
146
102
105
130
112
118
111
128
111
110
149
135
120
127
130
131
126
113
129
124
105
121
142
113
147
117
105
131
110
110
143
136
142
134
150
147
121
139
146
150
107
141
110
103
134
147
135
126
120
129
132
100
109
114
141
105
102
103
148
108
129
135
117
116
145
150
103
105
118
119
108
103
123
128
105
132
144
142
141
141
121
118
139
108
128
125
100
117
149
138
150
140
134
132
148
140
106
134
108
143
109
114
146
149
100
148
132
110
111
116
140
126
150
143
119
127
150
143
118
112
105
118
115
100
141
119
127
126
142
143
146
148
104
103
142
122
145
125
108
134
127
140
111
107
126
143
102
105
142
129
136
104
106
129
148
147
115
149
123
135
136
108
145
145
138
148
135
145
127
107
132
109
129
111
129
139
130
123
150
118
104
136
123
134
132
141
118
123
105
134
141
127
134
115
145
120
123
115
135
135
131
135
138
112
140
140
139
128
100
122
139
140
105
115
125
140
136
128
140
147
143
105
109
112
134
129
133
139
110
147
113
129
147
136
112
108
147
114
144
102
142
107
104
104
103
146
148
136
100
135
103
118
146
106
125
112
108
119
128
124
111
141
139
123
114
136
112
128
120
119
129
101
104
102
129
119
121
109
115
123
122
109
104
106
116
146
150
106
144
142
123
108
112
105
100
106
107
106
109
142
126
137
141
137
113
124
121
119
104
106
130
142
124
112
139
133
141
113
138
106
140
106
146
123
104
103
143
111
118
122
114
127
134
118
134
121
146
141
101
122
119
123
135
107
145
140
125
132
130
128
149
104
139
107
146
146
145
110
124
110
118
147
107
136
132
149
128
143
137
120
115
103
117
135
129
131
107
108
127
112
122
150
131
145
143
119
139
104
113
100
149
146
150
119
121
137
120
148
103
143
105
128
134
148
127
136
107
101
115
110
145
115
112
122
120
130
118
118
140
131
131
113
143
109
110
115
144
135
113
118
100
126
133
136
128
141
135
136
106
110
124
149
124
100
129
107
137
121
112
134
109
118
144
144
119
142
116
140
144
115
137
104
114
150
117
102
108
113
138
127
123
148
119
132
147
136
140
119
139
120
111
118
141
130
113
130
129
113
123
100
104
105
146
100
120
132
148
148
115
128
146
120
140
103
148
147
139
126
118
107
110
101
119
142
101
117
107
122
140
131
110
119
149
136
146
118
112
105
109
142
120
121
142
148
121
112
144
129
125
126
147
137
120
118
107
114
125
135
147
120
103
136
120
141
114
126
128
121
105
138
109
138
103
102
130
120
117
119
146
149
108
105
131
139
123
116
104
105
105
138
138
124
126
143
138
102
130
125
146
105
146
129
127
105
147
141
133
137
144
129
103
150
120
132
100
114
108
141
103
109
111
103
106
122
129
118
120
114
126
150
107
148
106
148
140
143
122
115
107
114
109
117
148
123
145
101
115
104
125
130
115
119
103
108
107
112
106
108
116
142
142
113
142
106
101
141
101
120
145
114
102
130
104
124
130
121
136
112
116
136
150
128
118
117
136
111
101
149
107
103
124
112
119
132
116
109
128
143
141
134
137
129
118
139
130
114
146
145
140
137
103
145
122
150
115
139
114
134
104
137
135
119
144
126
141
108
144
119
101
145
139
108
106
124
132
116
114
147
109
146
131
120
130
136
117
103
125
118
149
149
137
134
112
122
106
121
128
133
134
115
144
120
125
108
103
102
113
125
123
122
130
139
129
107
101
101
148
107
100
150
118
144
146
145
110
128
150
112
122
128
102
126
146
113
132
107
117
140
150
106
130
108
114
145
101
110
145
132
116
112
133
132
149
142
140
119
148
128
108
111
128
108
111
149
129
102
114
132
112
121
147
139
104
133
129
138
105
142
127
126
108
100
130
129
149
144
135
107
134
125
136
119
104
142
137
150
126
133
103
116
150
119
141
108
114
101
129
115
134
129
116
121
100
138
105
110
141
134
140
131
116
121
112
102
149
148
144
103
116
140
102
137
127
124
149
112
114
144
128
134
124
149
131
127
115
119
150
136
100
124
110
138
135
109
138
144
108
118
110
128
131
127
137
150
140
118
136
149
130
149
134
142
125
114
116
126
141
106
103
149
111
118
131
130
142
125
127
142
101
127
110
123
115
132
149
134
142
146
111
125
150
136
149
142
127
140
108
123
118
147
112
105
131
118
148
140
117
118
149
145
141
121
126
142
146
138
127
146
137
134
134
140
109
136
105
109
150
100
147
123
126
142
116
142
145
111
107
110
104
117
143
131
129
112
109
139
125
139
149
146
132
131
122
112
121
134
104
125
135
141
100
123
148
146
139
101
136
106
115
130
150
137
149
147
144
127
132
100
145
113
128
110
142
147
103
119
133
147
132
132
113
123
150
133
119
106
142
131
139
114
123
103
121
121
112
115
142
119
105
148
125
150
140
127
104
110
135
143
133
144
145
114
136
150
115
118
110
125
148
150
135
109
142
124
119
117
113
133
146
130
137
128
102
121
139
137
149
127
147
121
116
111
124
150
137
115
132
136
126
120
132
121
133
108
110
115
139
150
116
129
135
110
135
146
144
123
135
142
126
108
122
137
120
129
118
122
111
107
100
125
124
139
134
101
138
150
134
127
142
102
107
117
114
146
149
118
105
132
111
136
142
119
111
130
122
103
150
148
147
103
107
115
133
107
109
124
110
126
100
116
113
133
123
142
136
116
135
137
140
117
120
119
146
103
126
128
144
112
109
101
144
126
148
111
148
113
105
106
113
141
129
105
124
108
102
121
124
108
102
103
140
115
104
144
130
103
139
145
136
120
126
140
143
111
115
145
138
111
124
102
116
101
134
147
131
128
105
113
132
115
113
128
107
126
120
139
133
123
149
124
141
110
113
142
121
118
150
107
100
134
106
111
121
131
127
136
106
126
111
132
124
107
139
148
124
133
126
115
100
147
142
137
119
100
119
148
105
118
121
122
105
126
135
103
119
142
137
119
128
127
104
112
134
147
116
131
120
115
132
128
131
143
148
104
127
123
105
147
114
109
147
144
135
136
108
148
143
130
133
115
123
102
118
117
110
124
115
129
136
132
121
145
118
103
141
135
117
112
100
103
123
128
124
106
108
123
127
143
143
105
126
102
128
113
108
101
109
105
130
141
148
122
137
139
115
116
136
143
145
133
110
141
120
137
145
117
140
129
127
141
149
142
121
131
100
127
148
125
115
107
127
145
121
112
109
146
118
125
128
143
126
109
104
108
114
140
121
148
144
143
132
126
117
114
146
118
118
125
109
119
116
109
145
124
136
130
140
122
109
116
133
114
119
107
130
132
142
118
148
125
102
123
124
136
146
105
146
146
130
120
135
133
112
143
104
104
116
119
105
133
139
126
139
106
113
133
127
100
116
100
124
115
110
138
130
143
145
122
105
141
102
125
137
105
148
138
114
140
146
103
143
149
101
149
136
138
118
108
101
108
128
116
115
141
125
117
132
147
129
136
140
136
133
112
132
110
144
147
117
129
124
143
118
118
105
131
108
125
125
124
144
131
142
145
141
106
119
126
138
101
141
131
137
125
114
108
136
115
121
136
103
112
108
105
123
100
146
104
105
140
129
133
135
114
115
120
132
134
145
114
128
113
116
102
134
120
140
118
141
105
139
120
114
123
115
146
113
128
125
150
100
104
143
149
144
113
138
129
125
140
149
118
143
111
137
107
138
118
133
126
133
141
145
139
118
138
130
114
150
146
124
143
147
110
125
112
138
104
150
118
129
112
143
120
138
120
114
116
128
125
122
105
105
143
101
103
117
114
141
131
143
135
133
141
130
132
124
115
113
137
122
112
146
131
101
117
106
129
106
130
146
104
134
108
123
104
113
114
111
123
140
106
116
144
108
123
137
107
104
111
139
138
121
149
135
147
126
145
100
112
116
109
138
103
110
127
131
128
118
122
140
117
129
103
127
142
146
148
102
113
101
110
134
134
133
125
129
118
146
120
137
102
136
117
143
103
143
125
133
119
139
100
150
101
100
133
124
111
127
131
115
118
148
116
123
120
122
105
118
134
145
141
134
128
100
137
109
118
133
131
144
128
134
125
123
131
134
127
145
120
127
150
126
114
134
112
122
126
129
140
136
100
125
113
126
108
108
145
138
126
119
127
138
100
109
135
106
112
125
145
128
116
149
119
126
109
139
124
146
128
143
126
146
132
116
122
113
123
147
129
127
145
100
104
120
142
123
147
146
140
110
144
101
138
124
110
113
130
119
131
146
130
122
103
142
106
100
114
113
104
138
101
144
137
105
111
115
107
130
101
146
101
118
128
126
124
133
123
116
123
117
117
128
119
140
138
110
131
130
129
149
122
120
145
140
139
108
119
130
142
121
100
117
101
111
127
105
107
145
142
125
120
132
138
150
142
146
140
128
114
141
124
108
105
143
126
135
118
143
128
146
120
123
131
122
117
112
115
128
135
123
114
124
135
131
139
136
147
101
130
111
106
130
114
148
128
148
136
132
132
105
117
136
127
143
113
102
109
122
106
127
149
135
141
118
113
149
119
108
131
147
102
147
111
128
130
117
100
113
150
122
102
109
136
109
119
103
150
105
117
142
114
124
118
116
125
132
119
103
102
110
100
150
141
109
124
110
127
139
106
143
121
111
134
110
140
145
111
145
101
127
143
139
109
137
104
143
112
149
126
124
114
142
135
140
134
104
121
134
101
130
139
103
138
146
116
149
141
122
147
116
150
118
106
115
100
118
132
138
148
145
115
148
134
135
112
112
116
146
133
108
103
139
115
117
135
119
116
142
100
139
109
132
114
138
116
124
103
123
136
131
147
102
111
125
111
150
117
118
107
111
108
115
104
130
137
131
106
104
130
142
119
143
126
126
100
118
133
134
112
138
149
127
112
131
109
147
120
128
135
148
129
142
107
140
114
112
147
148
108
104
127
124
133
100
135
111
130
125
142
118
143
149
105
105
104
143
134
125
120
122
150
139
122
149
115
103
127
150
146
106
147
119
113
132
141
125
113
142
100
107
131
119
105
148
115
150
102
112
106
105
133
100
107
124
108
101
150
129
118
109
120
141
111
123
114
131
141
130
128
131
130
142
119
108
100
102
132
139
135
125
110
149
129
108
107
119
112
138
149
133
141
112
130
101
123
127
145
149
132
106
148
120
105
117
141
124
106
104
134
115
120
122
130
118
145
132
103
106
145
120
149
129
101
110
111
146
147
145
122
148
142
120
116
126
136
137
132
103
134
117
107
138
114
132
123
149
120
138
140
118
126
116
140
150
111
126
116
110
119
100
109
127
110
130
120
122
143
135
101
119
136
103
111
110
141
146
132
108
113
142
124
148
150
129
143
117
114
120
110
131
124
122
132
135
103
100
124
141
148
117
124
136
123
114
148
129
133
102
141
120
109
104
150
118
147
120
132
121
143
117
110
132
145
130
143
143
131
118
137
110
101
105
116
144
147
120
136
150
139
104
125
132
107
131
112
142
105
141
114
127
148
106
110
103
123
130
122
149
120
119
127
115
113
115
140
132
148
126
118
114
150
125
127
113
100
123
130
137
111
122
138
111
132
107
136
118
143
132
142
142
141
127
122
141
135
111
134
129
108
150
101
118
104
131
138
132
110
110
117
150
138
103
121
131
134
131
127
104
150
146
117
143
117
121
100
119
108
138
132
120
142
135
118
118
134
134
121
131
114
103
130
150
142
149
134
150
145
135
134
143
136
147
146
142
135
141
122
148
137
141
121
135
135
105
129
116
134
131
101
129
101
110
133
115
124
139
121
135
138
146
128
113
114
132
137
128
137
150
127
124
117
148
116
113
130
131
124
130
109
140
107
106
125
143
129
122
104
111
104
122
138
147
120
143
118
133
133
119
145
134
117
121
104
108
133
115
130
150
106
136
134
106
147
135
127
116
104
104
130
103
146
122
114
142
143
105
102
150
134
106
132
106
139
103
125
100
143
136
124
110
134
139
112
108
111
141
109
110
141
109
125
135
128
125
120
131
119
119
145
147
145
127
136
150
143
131
134
133
125
137
105
124
139
119
145
101
101
111
115
121
134
105
103
144
112
138
140
107
119
144
109
104
105
126
112
117
117
113
112
137
135
111
143
126
125
115
121
109
106
115
142
106
148
104
113
146
132
121
134
146
106
139
105
104
141
144
107
110
108
118
139
120
137
135
135
100
131
144
135
112
101
143
139
120
145
112
103
116
129
145
112
113
106
101
129
149
140
148
126
131
137
107
104
129
128
131
121
120
135
111
149
105
118
118
101
107
116
126
116
144
117
105
136
116
110
104
102
101
108
130
105
124
113
104
139
103
110
120
134
120
126
124
144
148
101
129
140
123
125
104
129
132
105
143
139
103
118
111
149
112
121
111
121
122
110
132
137
121
143
105
121
112
102
144
113
137
122
143
139
111
100
129
124
126
144
143
109
147
113
141
141
133
135
133
126
108
145
121
134
141
119
120
134
105
149
132
102
123
146
131
127
121
131
148
132
115
111
115
122
102
128
131
101
119
136
145
111
100
145
124
113
103
135
114
123
146
144
118
119
101
112
100
139
123
119
133
119
121
103
106
138
135
143
127
139
124
127
114
100
137
136
131
138
112
120
123
117
140
129
109
118
137
118
142
149
102
117
140
139
105
124
110
141
139
100
102
124
105
111
113
126
101
144
118
129
114
110
126
129
139
126
147
110
123
133
137
103
134
135
137
142
101
137
146
149
120
107
145
110
118
148
141
109
126
130
147
111
113
143
110
129
113
139
128
136
124
149
117
137
106
104
138
124
112
107
124
123
136
142
102
116
150
141
118
140
137
105
114
124
138
135
135
114
114
133
129
118
122
110
100
149
122
132
144
120
125
144
114
130
108
104
147
105
117
120
115
148
146
142
113
103
110
134
136
104
119
125
112
106
123
104
146
106
133
115
100
119
123
141
119
108
104
125
120
144
127
133
109
136
144
112
117
114
103
109
140
144
116
123
139
125
120
150
101
128
120
131
108
135
118
140
127
135
135
115
148
140
129
101
119
112
111
141
116
111
116
106
143
140
107
130
140
136
116
105
112
106
133
114
101
124
118
138
147
141
144
121
140
108
100
120
142
116
149
117
139
109
134
122
147
135
107
111
117
126
149
126
144
116
124
121
124
130
100
126
147
107
150
124
101
116
127
105
123
123
112
124
146
142
118
146
110
132
124
142
126
119
104
129
123
128
149
126
106
125
124
111
124
114
120
144
109
106
142
126
133
110
132
114
131
131
101
111
133
136
113
113
142
131
137
144
113
142
102
146
136
110
103
134
104
108
121
134
102
118
131
133
136
123
143
137
124
142
135
149
132
140
125
131
133
123
143
114
112
100
150
109
127
100
113
103
149
104
106
115
133
147
129
134
126
147
148
121
150
140
113
148
142
106
137
113
112
132
142
117
130
141
143
120
113
125
111
111
106
142
107
138
130
146
101
105
114
111
115
131
106
102
133
139
121
105
124
102
148
110
123
125
110
106
132
122
107
121
114
143
113
127
126
144
103
116
112
115
110
119
108
133
143
146
106
140
100
128
117
148
130
103
116
115
147
145
143
128
149
100
115
103
106
124
143
126
135
116
139
141
122
136
103
101
114
145
122
147
107
109
123
125
125
109
148
123
131
144
113
150
120
120
106
133
102
103
147
111
133
133
144
140
127
126
139
116
137
148
118
134
136
121
128
109
121
125
127
137
141
124
101
150
121
128
118
148
127
129
103
122
146
145
138
118
144
134
119
103
133
110
106
136
125
129
149
129
100
122
123
116
124
149
103
109
133
104
114
150
125
139
121
132
120
104
106
110
146
123
118
129
136
126
124
148
126
149
129
147
104
118
114
130
119
113
120
126
106
139
125
144
101
110
106
125
145
104
123
117
116
140
120
128
150
141
146
144
150
123
143
132
106
139
125
112
135
125
103
145
149
115
139
138
119
145
116
127
150
141
109
116
110
146
109
148
110
125
142
111
129
143
143
125
100
138
118
112
126
143
128
124
128
138
134
136
124
109
104
136
108
115
118
123
126
137
142
108
119
102
145
149
123
138
136
113
110
128
127
141
136
129
144
113
135
124
141
101
100
127
109
100
140
125
150
129
130
105
100
102
120
107
103
114
148
143
103
115
140
142
104
133
117
104
126
107
129
128
143
125
135
121
106
131
126
148
114
122
124
125
127
133
112
100
149
148
125
150
128
120
148
137
100
113
103
132
115
117
119
104
109
110
106
105
139
121
103
114
124
116
108
148
126
117
111
144
103
108
116
141
117
148
105
120
126
120
141
140
119
118
133
135
125
108
133
111
107
106
149
123
107
127
118
142
142
135
115
148
119
108
142
133
123
103
123
100
139
132
110
122
102
112
113
121
110
126
126
106
136
114
143
148
102
128
127
130
100
105
126
137
135
122
111
127
118
105
108
130
108
135
137
144
102
141
135
103
123
104
144
146
118
142
118
127
103
106
148
137
137
120
124
112
122
134
119
115
118
118
132
101
136
140
140
131
149
117
119
135
134
125
108
147
131
130
142
135
127
118
133
105
122
150
140
148
112
140
146
150
127
119
137
107
131
135
126
148
130
109
121
123
116
132
122
119
111
121
136
150
138
144
137
107
136
124
122
121
115
110
148
136
108
115
102
111
127
115
117
115
148
110
115
129
116
108
136
116
130
150
118
127
118
149
109
125
144
107
132
124
107
109
139
123
137
100
150
144
147
132
119
103
112
140
148
139
145
146
109
120
136
121
149
133
123
138
103
136
128
146
144
101
115
148
150
109
110
133
119
146
130
136
132
126
128
133
147
129
145
114
113
145
136
110
140
117
147
146
131
111
114
129
131
123
133
144
104
148
133
147
137
136
145
128
148
130
146
106
119
146
146
105
148
150
105
112
106
104
106
142
135
110
119
143
114
143
136
119
104
122
150
148
134
144
124
107
138
106
101
143
129
142
136
117
105
123
101
132
131
150
144
144
116
133
118
103
131
101
111
122
105
111
124
135
147
122
143
132
132
136
101
124
137
132
113
121
149
150
142
111
136
109
101
105
101
128
114
103
120
126
108
122
124
111
128
133
104
126
125
149
109
116
141
131
126
132
118
147
114
140
122
124
100
104
109
127
124
130
121
138
145
146
124
118
130
141
143
118
114
144
106
127
129
128
142
120
111
109
144
137
144
133
134
121
134
127
136
123
143
101
128
133
114
101
109
144
135
125
148
118
139
118
106
149
130
118
108
142
135
130
135
105
128
131
150
149
143
150
122
134
117
103
150
111
133
128
144
135
132
143
117
129
147
149
130
133
135
102
118
130
120
100
139
113
121
123
144
119
107
148
117
117
105
123
108
113
105
123
147
139
125
132
139
115
149
101
135
140
133
122
129
145
134
120
138
149
117
104
120
100
148
111
144
140
118
105
102
120
147
147
115
117
145
145
133
114
141
136
144
132
141
129
103
126
140
126
110
146
105
150
120
138
100
123
148
121
130
112
132
115
142
147
117
137
131
122
145
106
129
110
126
122
107
127
126
150
126
138
113
137
109
110
108
117
115
133
125
150
117
140
138
100
138
149
108
130
114
118
140
127
133
147
129
120
107
110
102
103
134
131
119
139
114
145
147
108
126
132
126
126
100
114
141
110
139
149
115
149
122
135
118
116
126
133
123
147
126
127
107
112
150
137
110
132
129
144
115
129
127
142
127
139
137
143
126
148
150
107
108
102
116
114
108
147
126
129
120
120
129
136
144
124
101
135
145
111
124
133
148
137
123
143
146
103
130
139
100
115
131
136
145
145
109
115
137
111
127
117
110
131
106
146
118
134
133
129
146
135
116
132
113
112
102
117
131
112
149
113
122
110
129
126
100
149
109
146
117
136
101
103
126
121
142
143
105
137
105
145
112
128
106
138
116
132
135
137
140
108
117
114
124
111
133
100
119
147
107
130
142
101
143
104
133
122
136
127
106
138
121
146
129
146
118
102
117
145
128
140
150
107
106
141
108
125
138
132
107
119
115
105
125
146
136
148
119
150
131
137
117
106
150
118
124
149
145
129
111
143
123
117
114
121
139
122
145
133
132
124
138
113
131
137
141
142
137
130
146
128
140
131
119
124
117
104
102
137
149
126
142
119
100
103
102
136
123
143
128
114
123
123
105
114
101
146
119
113
127
104
125
127
148
140
101
128
127
114
148
121
148
101
146
101
132
141
107
111
100
134
147
121
132
113
142
100
102
117
104
130
139
114
144
124
119
140
106
134
144
113
100
126
122
150
143
142
102
126
138
106
117
127
136
112
142
139
150
120
129
128
127
101
119
120
145
129
133
101
112
116
135
122
134
137
132
101
149
119
148
110
104
137
116
131
133
103
108
114
132
107
103
132
138
132
118
129
100
112
111
140
127
122
150
148
131
115
117
134
129
132
149
121
117
149
100
124
127
129
145
104
104
110
102
112
126
133
117
141
106
148
115
105
109
101
129
143
123
145
148
147
145
121
116
150
117
103
142
138
137
103
149
149
140
149
121
108
108
114
132
122
141
148
130
112
139
130
130
118
120
148
132
136
143
134
147
150
131
101
135
108
148
109
109
133
107
146
121
101
116
123
103
119
127
122
130
145
116
113
107
107
121
142
125
116
143
104
121
131
132
122
148
120
107
112
111
125
104
140
142
116
135
128
135
125
135
106
123
135
145
121
127
141
109
132
129
119
137
103
143
123
144
123
142
118
135
107
119
131
107
107
147
116
145
121
132
143
102
108
150
116
129
138
124
149
115
118
111
127
110
104
112
114
101
104
112
109
106
112
125
120
131
130
104
120
103
135
144
140
132
150
149
102
144
116
107
131
131
122
105
147
137
102
139
126
116
115
134
110
136
116
102
146
143
144
140
146
115
105
116
106
128
123
138
107
135
138
112
107
120
143
126
145
127
124
143
110
108
137
132
136
102
132
146
105
130
123
133
109
139
124
128
107
125
106
139
145
143
115
126
141
125
115
127
150
115
128
119
127
121
123
121
100
146
148
127
101
148
136
142
114
100
143
131
130
101
104
102
128
112
121
135
139
101
122
120
117
116
108
141
129
115
133
101
121
113
135
140
110
117
104
103
143
109
105
119
132
117
123
146
137
117
125
143
122
150
126
103
138
106
121
142
138
102
122
131
102
131
101
148
135
136
127
127
126
138
140
111
135
138
109
102
111
132
123
141
106
110
112
110
124
138
134
105
139
145
101
113
146
108
136
126
112
135
144
116
114
114
131
136
137
121
110
115
147
133
114
146
144
130
102
145
127
149
129
120
140
145
132
117
100
130
135
145
149
120
111
139
133
129
144
122
105
102
123
116
132
125
118
111
104
121
101
150
150
130
100
117
121
141
108
100
127
135
128
146
140
142
108
145
137
150
134
102
129
120
100
118
141
100
101
111
118
143
128
145
141
112
103
127
125
102
107
149
134
120
140
130
127
114
143
134
119
126
130
114
131
140
138
135
144
145
133
124
133
147
133
131
141
144
130
121
116
132
127
145
101
113
137
119
150
149
135
148
124
131
108
143
115
149
114
140
117
103
104
134
132
145
129
121
122
122
126
143
120
108
101
136
102
122
127
122
108
132
113
133
142
117
113
135
148
145
123
147
111
143
149
134
113
148
120
120
119
125
145
149
147
139
149
136
139
100
107
130
113
116
128
108
126
124
112
131
101
143
100
123
148
119
110
149
136
140
112
144
122
133
140
143
107
109
112
125
115
138
144
143
136
106
102
125
143
121
102
119
123
103
147
119
136
100
127
106
150
132
108
113
104
100
135
117
144
142
111
143
115
120
150
117
113
108
137
131
131
130
133
102
128
135
117
143
122
137
140
130
115
132
114
107
127
134
144
138
107
116
132
136
108
138
143
102
140
102
111
130
124
117
146
116
109
133
107
112
150
139
148
131
105
123
105
140
140
130
117
135
137
130
100
133
135
141
110
146
138
124
100
118
117
149
103
112
126
118
134
137
131
107
104
120
109
100
127
148
136
111
134
142
149
128
136
147
101
111
137
110
132
121
106
142
134
125
147
139
136
149
137
128
126
136
148
119
104
101
106
132
143
129
142
137
119
108
118
130
119
140
105
112
138
140
110
106
109
135
133
111
143
147
147
124
119
129
130
144
129
109
101
129
144
140
130
106
107
137
116
122
138
143
105
121
144
124
138
104
148
118
102
104
132
147
126
115
113
128
122
130
140
133
130
111
101
137
142
135
118
126
139
150
117
125
133
131
115
103
114
101
120
119
105
142
109
141
150
117
132
138
108
146
107
128
141
145
136
114
114
149
109
125
137
109
147
146
136
111
114
101
119
113
113
147
128
150
129
114
140
101
135
110
105
130
119
124
113
125
118
144
122
109
105
130
100
140
125
104
139
119
139
112
120
133
120
125
104
128
102
107
107
126
137
126
128
148
129
148
121
145
135
145
139
149
141
101
122
122
143
111
147
105
109
136
113
134
126
108
105
128
119
116
100
137
132
105
124
105
134
138
107
142
106
149
102
121
103
102
117
135
117
100
120
129
143
120
111
123
117
105
115
131
128
120
139
112
149
147
137
147
124
117
141
124
104
130
102
138
108
137
133
130
110
120
138
123
102
129
120
113
135
139
126
116
147
122
122
112
101
149
123
136
113
108
110
103
125
133
142
121
102
125
130
129
100
134
128
119
109
134
111
100
117
121
122
126
116
136
132
130
142
145
141
103
106
124
128
134
135
117
149
110
113
140
138
107
134
104
128
117
130
104
101
110
101
118
121
124
129
127
101
144
130
116
132
147
111
125
147
104
119
119
139
121
138
107
115
142
105
142
129
117
102
101
113
143
132
143
116
100
123
134
135
145
113
124
101
115
105
137
132
111
110
108
124
102
149
150
129
131
119
102
139
125
108
124
132
148
121
118
121
112
110
146
113
124
140
130
122
140
121
105
120
110
137
136
149
142
139
110
143
135
105
131
129
137
113
144
106
116
107
132
105
137
109
120
108
103
109
113
147
133
113
104
116
102
130
108
147
107
109
103
102
115
115
127
100
103
102
128
134
125
124
108
150
142
146
147
121
148
112
144
141
112
122
140
126
147
130
142
150
146
119
112
146
110
120
132
116
149
106
112
117
107
124
145
140
128
102
131
135
150
124
126
132
121
137
106
114
129
140
147
120
127
132
144
140
150
119
114
145
140
129
133
142
113
124
107
112
122
114
124
103
126
145
134
131
148
110
135
113
132
140
126
137
121
118
127
119
141
123
143
120
136
104
130
104
133
106
115
129
149
115
147
105
128
138
111
109
141
102
119
105
123
142
140
145
119
136
122
102
148
140
148
119
146
116
115
104
129
137
146
112
134
146
106
127
118
141
103
101
147
135
112
144
103
107
118
137
132
119
121
126
103
102
113
150
103
119
110
104
104
110
150
133
101
123
112
111
134
130
147
131
123
118
101
134
106
132
140
113
138
131
136
118
148
137
150
129
109
117
122
131
111
149
118
124
134
118
134
144
117
150
129
106
138
133
144
105
135
118
104
108
110
112
101
108
104
115
131
134
143
124
113
141
145
121
124
138
104
144
107
148
110
102
109
108
136
148
145
105
116
106
122
115
117
144
132
124
118
119
141
130
103
129
113
130
142
108
105
118
135
148
130
139
113
121
107
133
109
133
113
119
104
106
124
119
119
149
143
105
144
102
147
150
108
149
125
110
124
132
110
116
132
122
134
149
134
109
128
120
123
130
104
135
142
107
141
145
149
136
150
131
149
129
142
106
145
124
138
149
103
141
131
126
137
145
120
149
120
109
139
141
138
134
134
109
121
133
121
137
110
134
114
103
100
106
138
100
144
139
125
102
138
103
120
109
129
102
149
117
120
139
142
138
107
141
133
130
113
111
150
133
132
145
107
105
150
101
125
134
142
130
113
119
113
132
125
149
107
150
112
148
146
109
107
136
139
109
130
121
108
128
102
142
120
129
148
115
144
132
106
102
140
116
134
125
148
150
134
102
139
128
136
105
102
132
109
149
114
104
116
106
105
124
102
110
134
141
144
130
148
127
126
114
144
121
110
112
122
120
124
115
126
121
101
123
137
130
108
100
147
131
113
108
117
132
108
132
144
126
116
117
124
142
100
132
105
118
112
135
105
137
114
143
141
142
130
104
148
150
115
113
144
110
133
133
139
148
134
137
131
106
109
138
148
133
134
126
149
140
127
125
132
120
140
149
109
130
145
127
136
141
135
105
108
135
150
138
119
123
128
144
118
138
148
144
122
132
122
145
113
129
148
125
103
114
148
105
109
108
122
135
120
109
137
105
126
144
150
136
138
140
122
129
101
125
122
136
145
131
136
100
116
145
130
113
109
107
123
110
115
149
122
137
137
103
147
121
104
104
127
112
109
101
104
100
130
111
119
135
130
116
117
139
102
100
115
142
133
143
114
122
136
123
125
131
115
136
107
109
107
139
106
123
150
119
103
112
111
101
145
111
122
135
128
106
138
100
143
121
139
127
125
110
150
116
150
148
130
113
119
147
147
128
108
135
113
125
121
117
116
103
126
141
111
117
117
106
141
148
130
141
127
111
145
131
105
117
112
111
104
133
130
139
122
142
115
110
119
139
129
101
114
113
106
108
104
149
142
116
134
113
127
133
125
137
140
109
142
124
132
121
117
112
119
135
117
116
111
101
100
132
114
112
131
134
137
137
118
107
142
141
111
109
121
110
105
134
106
102
130
137
150
105
136
129
102
127
135
108
149
105
140
126
114
116
126
145
142
148
110
117
115
122
142
100
103
129
107
108
111
117
107
123
106
137
128
146
125
133
130
125
150
149
130
110
120
150
108
123
109
139
115
116
104
121
118
129
138
114
101
103
145
140
109
108
122
107
117
129
133
137
150
100
150
143
142
142
130
101
114
123
120
147
146
102
115
149
123
122
100
130
103
106
136
108
137
111
114
129
111
139
136
143
129
106
148
134
124
115
105
112
122
105
129
102
113
134
124
132
108
129
144
109
121
150
130
101
105
127
122
120
127
124
110
131
125
122
116
135
132
141
118
131
131
142
104
121
125
128
139
127
138
137
110
141
133
104
129
130
101
107
105
100
147
110
125
125
113
123
124
145
105
124
145
134
103
132
133
131
124
102
123
114
108
125
112
147
135
100
114
110
117
136
143
143
106
137
115
123
136
103
117
145
115
112
120
137
120
136
138
118
122
110
150
140
142
116
125
132
121
144
144
135
123
129
118
126
149
145
119
150
121
110
141
143
128
109
146
134
118
147
139
133
108
111
149
117
117
119
127
123
123
112
142
137
112
130
106
128
141
137
110
135
125
122
114
144
105
126
104
130
106
136
117
134
127
116
120
145
145
142
104
146
140
146
148
149
144
101
127
149
134
138
135
106
146
102
122
136
131
142
136
109
122
150
134
121
147
123
133
117
103
123
143
150
102
136
135
125
118
144
117
136
109
123
126
111
135
131
115
127
127
139
131
114
122
113
142
133
135
141
101
122
100
131
150
115
150
130
130
139
111
126
106
122
142
131
147
127
132
107
122
135
108
117
123
136
146
137
114
105
144
108
103
127
134
138
124
116
138
135
103
111
139
147
126
146
102
108
137
117
118
135
140
113
113
129
118
118
129
146
125
123
121
139
128
138
120
123
113
107
120
110
117
125
107
118
119
148
144
124
110
122
124
120
125
138
143
125
124
146
144
124
110
102
143
109
104
107
133
142
118
120
128
120
139
113
137
140
148
130
115
134
105
105
128
133
129
134
126
115
142
126
134
121
103
144
115
148
101
131
133
115
131
106
119
110
139
105
149
149
116
122
122
142
142
125
131
136
129
123
146
142
108
117
113
103
116
120
143
108
121
133
148
107
128
143
133
126
104
132
135
114
113
126
120
115
125
108
149
112
145
130
137
150
121
117
149
118
188
148
182
179
199
144
143
141
184
153
173
164
168
156
171
154
154
149
194
150
157
188
200
172
142
196
181
170
146
195
183
198
164
148
190
159
160
152
163
166
189
152
144
157
193
195
182
157
148
148
190
198
147
172
189
143
179
155
179
191
143
197
175
182
162
148
154
190
166
162
200
162
182
144
179
169
193
185
172
192
149
191
167
197
151
154
174
145
197
175
184
183
166
164
150
174
183
182
184
181
185
168
193
156
177
179
177
199
194
158
153
154
156
192
188
152
194
184
200
162
188
149
179
182
168
194
170
151
199
144
176
151
194
187
154
141
173
199
149
174
152
196
189
176
145
161
187
144
148
181
157
180
149
170
153
176
166
178
191
144
182
196
181
140
175
168
196
182
141
145
185
166
185
178
188
172
143
142
193
160
197
200
154
161
169
162
183
144
165
199
181
140
167
183
188
192
178
156
154
179
177
170
170
149
153
181
195
185
169
193
175
197
145
197
147
197
165
178
163
178
158
184
174
159
143
146
180
184
149
200
166
166
188
187
198
184
150
200
187
143
140
181
147
187
179
150
146
179
146
164
141
171
186
145
181
189
197
196
166
173
177
189
142
187
155
157
143
194
156
184
159
177
144
162
194
159
142
182
173
145
181
141
149
189
168
152
165
171
169
140
177
190
165
172
165
163
176
198
173
145
158
148
153
164
193
150
152
197
149
194
165
170
174
151
150
178
146
172
191
142
146
140
177
145
180
199
168
194
179
193
157
199
196
177
144
178
146
169
196
161
154
141
144
172
186
145
198
159
178
180
200
187
192
173
181
160
167
143
167
183
197
151
158
195
174
185
173
196
161
175
141
172
173
160
189
166
151
181
183
196
181
144
143
183
187
183
167
145
141
177
195
191
198
192
166
170
157
180
166
156
145
150
149
199
199
157
140
194
181
177
188
183
190
150
171
143
149
196
141
174
148
183
191
180
171
177
144
147
142
166
172
158
185
172
168
157
149
167
197
193
162
197
154
173
144
167
141
171
142
186
159
163
170
159
186
187
193
182
163
191
171
190
166
143
194
187
147
198
193
178
147
179
167
140
152
192
162
199
164
167
193
166
156
174
189
144
157
185
148
140
159
148
174
142
147
170
182
168
141
141
190
174
161
183
169
198
189
147
151
171
146
170
180
168
154
189
141
142
153
188
198
196
173
143
148
177
182
189
177
171
163
155
175
195
167
163
156
149
151
140
151
186
148
154
188
170
146
153
195
162
185
171
148
163
196
140
142
179
173
162
144
168
174
172
141
183
169
195
177
170
194
157
195
176
162
154
167
173
195
165
193
189
174
182
145
195
192
153
187
140
192
166
183
180
173
196
199
153
190
143
165
199
164
187
176
172
140
153
152
167
183
190
164
141
154
185
159
188
170
182
166
192
189
182
159
170
187
175
160
155
173
149
161
200
200
187
143
174
183
170
177
185
163
169
160
148
199
175
188
143
162
199
142
153
171
153
181
199
193
178
149
188
189
167
174
146
189
147
177
187
196
179
145
180
169
150
190
190
193
149
158
197
158
143
154
188
143
179
180
162
152
188
171
148
175
160
169
164
164
192
142
171
186
164
141
173
141
185
176
183
140
198
190
182
164
175
182
193
164
175
168
184
182
186
159
169
148
174
162
157
141
164
185
157
142
182
144
160
165
144
163
157
153
183
172
153
175
140
158
167
142
200
160
194
173
180
187
181
155
163
198
200
195
164
192
168
195
145
182
186
146
148
184
199
155
195
156
147
147
186
166
173
178
162
198
167
193
165
189
186
185
190
196
161
200
160
163
163
183
154
177
167
186
170
145
144
186
156
169
146
168
183
161
176
163
169
184
180
176
169
149
178
142
177
168
166
182
157
181
155
165
193
198
160
187
156
168
180
188
161
162
164
179
177
185
144
181
187
163
190
142
195
158
149
143
175
174
166
155
141
175
188
146
169
145
182
170
149
197
153
145
192
189
151
157
186
141
152
148
197
185
176
185
154
175
198
196
169
167
164
191
178
200
163
155
197
142
200
185
148
142
166
193
161
170
187
182
165
147
141
182
167
193
156
155
190
168
152
149
159
197
141
177
142
157
194
143
178
187
171
140
166
196
180
157
164
177
178
165
140
144
159
194
186
194
169
189
175
158
147
179
149
177
180
155
200
200
166
163
169
146
189
149
173
158
170
168
151
195
154
183
179
182
200
173
162
189
142
153
144
161
191
145
154
142
147
171
160
159
162
189
172
151
190
165
145
161
155
160
193
161
156
184
155
170
167
176
150
180
162
174
193
144
179
157
145
140
184
154
175
191
160
169
165
196
144
157
184
155
144
195
190
198
186
168
178
166
150
193
150
174
188
199
164
198
175
189
160
164
155
173
158
168
179
192
166
193
151
164
162
185
169
154
150
160
141
162
187
196
172
171
161
167
171
172
196
155
170
178
180
169
142
164
188
146
181
155
168
196
189
171
200
154
151
153
192
175
148
142
189
193
174
172
189
170
174
197
154
180
183
189
194
184
194
141
185
175
174
167
167
187
172
170
167
148
168
180
152
174
193
149
194
173
154
200
198
152
163
171
155
167
183
184
188
188
167
152
144
188
193
145
193
191
173
200
150
173
197
150
197
178
153
178
152
151
173
160
145
142
161
185
158
196
172
191
195
167
146
160
198
179
183
188
171
148
152
188
176
146
176
192
181
144
165
161
193
176
200
168
156
150
191
166
178
156
171
153
167
151
166
198
176
147
179
168
175
183
140
166
159
170
169
160
195
168
174
175
174
142
144
176
151
171
157
159
161
170
170
174
157
157
149
169
177
181
150
162
187
186
192
165
178
199
175
169
163
141
186
155
154
150
153
155
166
177
144
196
168
141
155
197
166
156
181
152
144
159
140
184
194
173
186
197
152
156
156
140
148
143
188
198
147
182
162
194
143
153
141
173
183
152
170
159
156
182
153
178
197
144
192
143
167
195
168
150
150
192
142
164
188
198
155
186
182
187
162
175
141
175
183
199
157
177
163
154
187
179
154
191
168
160
194
154
175
167
189
197
188
181
194
180
174
183
159
181
184
182
198
173
159
163
190
169
159
150
148
189
191
165
189
168
177
163
145
177
158
177
144
197
145
195
179
172
164
185
147
200
172
158
159
161
197
165
198
177
151
145
162
174
172
197
146
173
190
194
140
147
182
148
175
179
150
150
166
176
148
155
168
151
156
200
168
167
162
200
160
147
198
177
183
190
200
149
183
192
185
178
151
186
176
174
196
165
177
153
178
183
165
142
154
194
165
158
150
148
144
193
166
185
159
179
186
187
147
162
162
179
199
144
171
184
170
145
148
158
174
180
159
161
192
177
161
166
143
191
177
176
160
144
157
157
171
144
183
194
151
191
153
148
200
152
198
176
166
164
157
161
190
156
198
164
200
143
144
196
192
150
185
195
155
160
170
166
151
145
200
181
160
181
184
191
161
158
140
151
162
144
159
169
170
162
179
177
153
200
147
180
160
186
142
186
150
156
158
178
142
148
187
143
168
163
143
187
175
140
146
178
184
180
164
176
197
184
188
186
192
151
146
177
147
155
165
151
196
142
145
144
158
192
171
169
169
186
191
142
177
140
144
192
192
164
147
167
196
188
143
163
146
174
178
159
167
164
158
142
184
148
195
177
141
186
148
172
149
152
191
181
143
165
142
165
169
198
163
144
175
194
187
149
189
183
190
142
173
152
178
177
140
164
194
180
166
175
175
156
164
178
181
188
178
174
152
195
159
158
169
164
144
163
197
195
167
180
179
196
165
169
173
187
185
197
143
154
184
195
179
161
198
173
185
195
183
172
141
169
199
198
157
188
146
169
163
157
146
161
161
187
165
200
176
154
176
198
162
188
154
140
166
162
184
200
193
169
200
141
165
189
147
152
199
182
184
188
167
200
146
158
189
192
152
193
187
185
192
187
149
151
143
198
147
154
166
162
150
195
153
140
144
185
193
183
190
147
146
145
151
186
199
141
155
143
168
149
196
198
196
140
189
193
173
168
143
199
188
160
146
175
141
199
156
191
163
155
172
162
151
159
184
191
154
170
176
154
151
165
161
159
185
155
183
175
145
162
167
152
152
169
156
159
195
164
154
184
165
172
174
169
162
140
162
154
150
166
150
192
175
147
161
189
194
164
164
166
200
142
157
160
195
155
167
191
155
160
164
175
195
163
198
146
171
143
188
164
169
189
154
196
165
188
155
179
148
191
159
140
200
189
193
152
175
166
175
198
171
196
151
141
180
147
167
190
175
179
193
190
153
191
186
146
157
151
155
176
149
146
160
152
147
194
176
171
162
187
192
172
166
151
167
172
153
197
189
199
158
181
191
144
158
170
197
148
152
181
182
179
185
170
153
161
173
154
150
197
174
183
186
196
169
185
183
151
164
185
159
152
165
165
195
165
158
168
150
174
185
189
164
140
180
149
180
149
162
160
161
175
175
180
156
183
153
175
187
173
163
191
196
154
144
166
148
157
143
161
175
175
153
168
154
166
163
195
162
192
141
186
197
168
170
176
142
174
188
196
162
161
180
158
154
158
197
143
143
144
157
175
146
156
195
187
176
150
177
142
180
142
195
163
162
157
148
170
165
173
188
159
154
159
188
143
155
144
145
189
156
199
158
179
143
141
156
164
168
141
151
155
143
193
173
181
177
148
158
170
197
160
200
176
193
159
177
164
194
143
192
171
195
146
172
181
155
160
175
171
158
200
150
194
174
144
179
180
163
162
141
160
175
155
194
192
198
200
166
187
159
174
176
174
143
160
142
190
189
171
153
157
151
140
155
164
192
141
152
178
200
191
185
173
194
196
147
190
180
193
191
170
150
144
142
165
147
189
149
171
156
153
180
199
153
176
157
186
199
179
154
197
167
142
172
175
177
186
156
142
153
180
162
198
155
153
187
174
195
154
195
186
162
186
188
180
199
153
145
174
154
186
169
157
145
158
200
200
193
150
144
141
168
142
174
190
166
157
169
190
199
164
182
168
162
192
151
156
148
179
165
180
171
198
192
149
165
165
179
174
187
173
181
192
197
186
148
171
140
146
200
185
172
193
167
163
192
173
179
176
165
151
158
177
177
184
200
185
181
152
189
149
193
145
146
171
185
161
180
190
144
169
146
178
172
182
164
170
151
180
176
164
165
190
168
196
156
178
161
197
173
149
187
182
173
151
176
167
192
190
147
188
170
159
174
182
166
165
158
189
159
145
200
182
187
147
141
184
197
157
157
149
158
163
194
159
186
187
155
149
161
147
198
188
189
193
173
172
149
143
197
173
163
185
182
190
180
147
163
162
171
177
199
176
176
178
160
189
173
158
186
186
198
183
141
185
194
200
152
200
180
162
165
198
170
159
186
194
141
146
171
181
179
187
163
200
171
153
164
190
179
172
143
193
192
186
159
168
162
170
199
160
180
148
174
160
172
199
200
156
162
159
150
184
144
170
176
170
190
175
153
161
159
143
159
164
167
168
157
170
181
143
187
179
148
172
162
186
142
164
154
183
174
154
177
173
163
146
174
195
146
167
142
162
188
183
191
156
157
195
191
184
169
141
141
186
189
191
140
196
189
141
170
161
182
156
166
166
145
180
159
158
193
167
179
185
162
157
153
167
164
163
162
169
199
143
177
157
175
145
164
193
152
189
150
191
165
191
171
192
195
144
153
190
167
189
185
172
195
188
167
146
171
193
143
192
192
200
167
142
174
197
165
177
183
181
162
164
198
176
165
157
160
160
191
152
188
142
172
179
192
181
156
162
182
145
167
198
169
185
162
188
180
177
200
184
153
145
168
158
189
166
195
165
183
188
146
194
164
196
183
156
140
159
172
191
188
185
143
180
148
188
148
170
166
149
166
149
187
184
170
193
160
171
175
163
145
198
196
152
200
179
153
158
174
140
179
176
175
168
168
153
198
156
155
169
148
166
180
157
194
187
149
156
164
141
197
164
146
146
178
168
196
187
142
181
195
198
153
169
164
187
175
169
181
177
178
153
187
189
151
194
167
153
146
168
168
192
173
167
160
155
186
165
144
193
143
179
181
177
189
177
180
182
196
140
150
174
140
170
194
158
171
145
197
154
156
150
188
152
165
154
183
155
200
145
195
177
189
149
197
160
173
180
196
176
164
163
184
179
163
181
160
181
144
144
179
166
169
153
163
140
185
146
174
155
177
143
145
183
200
190
196
153
150
172
172
164
141
192
153
168
147
159
198
190
161
143
186
175
190
162
190
160
180
181
172
186
158
181
178
165
178
160
167
155
200
183
148
167
157
149
141
145
148
159
153
197
140
187
183
154
172
192
178
174
165
200
153
192
146
148
151
165
154
156
196
177
140
147
179
164
152
167
175
155
179
144
185
158
196
168
171
157
171
164
150
173
183
174
177
171
140
156
193
191
195
157
176
164
200
187
146
173
149
167
145
141
146
154
178
189
148
154
196
192
169
197
170
170
151
199
164
179
182
156
186
169
182
145
180
168
200
167
197
199
167
193
169
186
174
183
197
200
144
189
144
166
184
179
171
143
152
151
194
176
187
152
155
191
159
157
183
178
170
186
148
160
169
198
192
192
169
189
191
177
150
193
173
162
162
195
152
192
198
175
145
152
145
156
161
178
188
158
190
200
149
193
191
186
195
151
194
188
177
192
194
142
149
187
149
155
162
169
144
154
175
184
141
149
198
140
148
160
196
149
152
179
155
178
196
175
151
158
193
192
174
156
196
160
191
181
151
161
198
173
189
190
183
190
154
152
195
150
179
184
193
154
149
183
172
174
188
191
146
165
189
157
174
176
157
182
140
144
145
154
192
141
198
187
140
187
146
173
177
174
156
192
187
141
194
158
186
147
163
194
200
163
194
184
162
158
179
181
166
200
192
176
199
190
190
158
156
196
183
192
181
177
161
185
144
179
189
150
198
183
157
178
171
157
162
185
143
165
183
153
170
166
199
182
187
157
179
182
166
187
175
194
196
189
175
173
146
173
200
156
153
150
196
189
164
153
156
151
172
194
152
193
160
148
177
175
152
168
189
159
142
142
161
177
194
197
162
182
171
146
185
189
190
199
159
145
184
151
149
170
198
143
157
151
162
157
178
140
146
194
154
184
180
171
144
168
142
149
190
162
186
191
155
161
172
181
155
151
146
159
163
164
145
176
157
156
159
146
153
145
180
190
140
162
198
191
153
189
191
187
163
178
163
152
149
164
193
170
170
172
157
199
153
141
151
166
144
157
192
148
180
140
186
153
142
154
169
178
197
148
182
143
161
160
170
178
147
145
172
189
171
158
197
170
199
181
161
170
176
171
159
145
140
198
177
155
147
180
146
171
164
169
176
187
157
177
147
142
179
148
192
184
178
188
180
186
167
145
197
166
200
189
173
194
154
161
182
151
186
172
166
195
171
184
198
164
178
191
169
141
186
147
176
193
156
161
150
153
188
196
179
180
141
148
170
163
180
170
141
151
183
193
177
152
151
193
197
167
183
173
158
147
191
145
168
149
174
155
196
188
169
155
178
192
143
154
200
156
161
200
178
158
148
191
153
143
166
174
194
153
157
175
160
194
159
200
144
174
180
168
176
166
187
153
158
186
151
167
155
185
181
156
148
167
156
147
162
196
146
154
164
192
162
160
148
144
175
147
189
145
190
180
147
164
153
147
150
158
153
183
175
161
177
158
150
169
147
180
160
189
189
183
162
189
174
145
192
177
196
148
197
188
145
158
186
140
185
161
156
190
172
162
142
163
170
177
155
156
161
186
197
148
146
162
141
162
180
176
142
177
165
173
177
183
179
166
180
178
183
173
185
197
188
190
140
185
165
180
165
147
164
182
174
190
193
181
170
186
143
178
146
158
192
186
150
144
185
191
146
170
175
167
143
182
195
161
175
154
200
155
159
184
181
165
149
178
162
169
170
167
200
193
154
200
189
193
167
170
170
169
182
157
173
140
152
177
155
143
161
155
186
176
144
196
189
145
173
180
193
168
184
195
174
182
196
185
182
150
156
152
147
152
145
164
190
160
175
187
177
200
183
140
153
200
169
178
166
176
147
143
174
174
145
162
159
160
174
154
185
172
197
164
142
153
177
180
192
195
193
165
167
165
170
145
160
168
146
197
182
178
158
184
179
162
141
160
186
195
148
166
157
162
194
182
168
166
165
150
143
161
193
178
151
148
158
173
160
150
191
143
155
141
191
188
185
170
160
200
179
197
184
163
187
179
157
168
185
183
166
168
185
187
191
189
178
197
142
164
171
164
199
168
154
188
188
164
186
145
147
166
181
174
142
178
147
158
150
172
165
145
150
175
161
176
198
175
151
164
161
179
151
166
140
148
172
143
150
174
181
156
166
171
164
156
150
191
188
183
147
184
190
175
149
177
144
189
186
158
185
165
194
175
164
147
143
194
143
192
164
181
146
168
190
187
187
171
183
163
152
179
164
173
165
159
140
160
176
189
192
166
200
160
193
179
143
157
188
179
161
196
165
163
173
141
184
151
196
175
175
179
199
167
146
196
190
145
157
144
151
189
156
177
146
187
154
188
179
191
199
188
158
153
175
173
183
174
191
160
164
175
160
173
161
147
167
146
167
157
157
180
150
176
198
194
191
200
144
149
171
178
181
193
198
168
155
190
156
167
142
144
200
173
177
182
172
159
200
168
185
147
150
182
172
192
183
152
199
194
195
154
179
142
146
189
170
161
153
179
179
160
167
152
179
180
172
194
151
199
155
174
155
157
153
140
140
152
163
167
163
193
199
175
140
170
191
140
172
144
169
158
165
180
157
192
150
175
149
149
187
173
147
145
155
151
166
150
155
158
172
169
155
196
168
185
162
170
192
171
163
147
165
166
188
141
160
194
196
143
190
200
159
167
169
140
144
152
152
167
168
197
163
189
192
182
186
198
190
176
155
155
181
170
193
159
165
185
182
176
166
165
167
171
184
179
154
188
142
169
166
183
151
158
144
160
191
144
178
196
172
198
147
170
195
178
190
195
171
166
140
143
194
166
191
167
169
172
188
174
145
165
179
177
164
193
165
178
175
162
167
166
171
194
184
145
161
199
192
169
161
170
177
163
166
155
148
151
155
153
158
173
151
199
173
143
143
192
191
162
166
145
158
196
164
145
175
146
146
188
161
199
185
172
189
183
188
162
192
183
177
198
175
158
146
178
173
187
185
147
189
145
141
175
151
145
147
159
168
155
149
183
165
141
160
142
174
144
149
185
165
168
182
182
159
158
151
143
188
146
180
170
167
165
143
198
141
167
197
163
150
178
190
143
168
198
172
190
163
145
179
151
197
158
196
152
157
163
183
173
154
199
196
186
184
172
172
197
192
170
156
160
175
155
156
155
184
191
158
178
196
159
149
190
145
148
196
146
188
166
176
154
143
144
149
146
189
190
174
152
194
167
180
197
166
200
141
194
145
198
199
177
169
189
175
171
169
184
153
171
147
142
157
177
142
152
160
199
189
146
157
166
167
162
175
165
185
153
197
198
151
179
158
143
154
195
162
183
179
164
147
181
200
145
191
164
180
200
141
176
140
198
162
193
147
166
186
159
192
197
150
179
182
178
198
186
174
177
186
151
165
176
181
194
162
187
144
192
193
163
181
199
155
167
197
179
181
154
194
196
200
167
157
154
197
163
154
182
195
194
145
140
175
170
179
189
147
163
197
165
175
192
173
145
183
157
197
182
140
196
142
171
162
182
177
194
164
147
142
183
184
181
195
182
178
170
163
200
142
155
143
180
195
171
172
153
158
147
183
155
153
155
164
166
148
149
185
148
195
162
158
192
155
199
200
162
147
183
197
174
178
190
167
188
150
155
179
148
194
152
160
140
165
182
195
182
180
152
149
165
190
152
154
156
143
160
158
149
162
156
144
153
157
177
156
168
166
180
170
158
166
167
196
143
177
169
140
180
176
150
200
170
164
163
182
178
164
181
144
182
185
193
162
174
170
175
141
197
148
164
161
145
143
192
197
148
179
170
158
151
170
187
145
176
164
142
189
188
181
161
150
187
168
191
168
180
143
151
167
176
150
161
147
147
189
141
152
187
150
143
170
182
192
176
150
177
143
147
196
167
159
184
166
200
190
171
146
179
168
188
157
200
173
183
192
168
160
149
199
142
147
142
198
144
152
161
144
149
149
161
198
185
143
179
182
188
191
161
162
142
163
197
164
142
156
156
182
191
168
164
198
190
199
162
193
141
156
172
147
164
163
152
184
196
174
200
182
163
158
152
140
184
156
196
180
195
174
198
184
141
174
172
145
193
149
195
197
168
142
143
140
189
194
155
197
141
153
172
163
197
184
147
183
188
143
151
185
142
189
179
161
200
187
180
165
152
143
142
167
182
170
187
167
195
199
176
152
161
173
149
163
197
153
183
163
154
194
199
145
171
168
195
140
162
154
188
191
177
172
166
147
200
179
169
142
192
154
160
170
167
191
172
151
166
147
191
181
198
146
198
151
150
169
153
197
169
181
148
170
158
198
163
157
164
164
164
177
182
188
174
186
168
148
179
166
187
150
176
149
155
141
200
185
175
179
156
174
198
184
149
172
171
172
177
189
195
147
165
159
190
177
170
141
148
171
171
193
158
142
156
197
158
156
190
159
189
159
165
189
184
141
187
171
178
154
158
154
180
162
182
157
148
164
157
163
148
197
145
179
198
159
143
154
198
194
145
199
172
157
166
143
179
152
196
175
196
157
142
199
186
190
198
200
152
160
199
198
143
144
177
198
171
200
185
181
141
175
149
196
151
153
160
142
174
191
157
142
197
196
177
163
189
157
167
153
141
165
176
160
198
194
160
148
167
169
178
200
171
143
149
191
196
178
171
160
189
197
178
153
175
193
186
143
165
174
152
142
140
179
166
143
151
162
159
156
156
153
189
182
152
187
200
180
187
189
140
141
166
189
148
192
180
198
142
146
154
192
147
184
182
180
179
182
199
175
200
196
197
157
145
173
178
151
182
150
146
167
196
168
184
145
170
198
164
181
158
154
189
193
170
153
165
182
183
190
155
144
162
185
150
145
165
168
150
188
160
162
171
198
155
184
158
164
182
182
144
185
174
166
162
167
146
168
175
169
184
195
165
190
164
144
150
149
151
146
172
181
177
144
162
166
170
140
190
143
188
163
195
172
163
141
198
177
141
142
161
178
143
176
199
157
192
148
162
170
196
176
151
172
197
191
151
170
141
164
196
162
170
145
196
174
168
155
195
177
185
198
181
142
198
157
156
199
148
178
163
171
166
168
171
179
148
197
196
182
142
145
144
154
161
168
140
142
140
181
170
153
149
168
167
182
187
141
166
154
142
185
192
151
154
164
189
140
184
157
164
193
159
179
173
194
151
151
161
148
165
179
190
189
186
160
178
178
198
182
200
172
143
177
184
198
185
152
188
166
170
200
143
200
173
185
149
164
184
171
162
176
156
190
140
143
195
141
149
148
175
158
178
140
184
141
177
143
176
175
158
146
163
181
155
191
166
148
161
145
188
183
179
197
194
192
178
199
149
141
173
140
178
194
146
163
184
188
196
148
175
154
148
178
192
156
194
165
176
193
195
176
180
160
148
197
160
190
167
140
164
173
192
163
146
173
196
151
189
167
187
174
198
192
163
194
196
172
156
146
192
192
149
151
182
174
154
197
200
200
155
152
183
155
140
173
189
166
150
170
170
141
163
145
157
200
183
172
197
157
181
172
181
183
168
160
170
153
164
143
154
163
155
172
161
151
156
198
167
194
157
182
177
140
141
144
178
167
161
170
164
156
195
200
182
189
181
196
142
198
158
182
193
183
165
159
194
186
184
178
141
188
200
145
191
188
140
148
156
140
185
151
147
187
174
140
177
183
183
165
175
152
195
179
197
194
150
170
160
150
152
180
171
152
196
156
183
155
175
153
181
198
199
145
149
185
173
148
156
200
174
189
167
200
187
162
189
141
168
174
158
179
183
140
159
161
182
165
184
166
162
155
163
141
153
200
140
178
193
194
184
140
165
164
170
197
168
151
141
145
144
199
166
142
145
168
173
194
171
162
146
180
171
156
178
184
173
194
183
197
146
143
184
159
164
173
176
184
143
174
155
143
190
151
175
177
140
194
185
174
150
187
177
144
160
191
150
178
188
170
162
168
191
148
163
157
185
155
180
199
187
157
195
167
186
156
171
198
182
180
178
181
190
181
195
177
192
159
191
180
190
156
148
151
198
140
188
184
178
156
195
182
200
168
152
181
183
153
199
141
174
165
158
186
194
168
195
168
170
150
155
165
157
147
194
174
195
193
152
158
157
185
165
184
186
190
166
185
141
185
186
159
183
189
147
171
195
144
189
192
142
200
152
177
145
181
181
142
174
164
143
187
195
195
144
151
164
184
145
169
178
189
142
157
154
190
172
184
165
184
149
148
176
146
160
170
178
145
148
176
166
142
172
188
178
159
184
182
158
156
141
166
154
176
147
197
176
200
151
151
191
198
173
173
185
162
165
158
199
180
154
169
158
184
195
194
188
163
192
178
165
161
159
148
146
154
157
179
180
198
156
143
158
183
154
151
191
181
192
183
171
190
141
156
146
173
174
191
168
159
154
155
180
185
166
154
173
141
182
181
191
165
143
162
183
159
167
173
167
185
195
175
179
194
152
187
154
199
188
145
148
157
165
186
183
200
197
180
153
154
146
182
198
147
163
193
170
160
185
159
185
181
199
157
141
150
145
163
170
196
141
193
143
196
200
151
162
172
182
181
160
185
147
179
142
142
190
151
173
147
198
177
161
178
195
169
179
151
175
174
196
170
150
147
191
177
165
157
191
171
156
175
158
191
144
156
197
196
169
162
156
159
144
188
146
154
142
185
181
187
197
159
171
170
150
145
151
162
162
163
164
194
143
170
167
152
153
179
145
144
176
160
158
157
199
175
195
163
164
162
141
168
141
196
200
174
186
142
151
185
145
193
185
158
183
151
161
193
140
188
184
146
179
154
180
152
192
168
192
170
183
191
183
142
158
199
146
148
164
161
143
185
142
149
144
190
199
143
192
154
152
181
159
164
158
168
173
147
179
180
176
160
161
199
141
195
140
162
154
146
164
179
174
153
157
185
184
143
147
196
199
176
160
152
190
151
147
170
164
199
140
176
157
148
165
163
159
189
172
170
169
155
161
179
194
169
184
148
167
187
184
147
174
145
154
155
182
164
185
167
188
153
169
174
172
165
167
181
175
180
180
186
140
154
170
193
192
169
194
187
155
195
190
164
177
167
150
159
193
165
141
178
162
171
151
195
177
146
166
142
195
153
196
147
195
177
174
141
190
144
143
177
143
153
182
142
163
153
189
189
182
148
174
184
196
144
162
181
165
149
168
166
182
153
151
179
160
151
184
153
148
190
176
148
189
152
197
190
167
181
171
190
182
160
152
180
162
143
194
178
156
194
169
162
158
157
140
186
143
166
171
140
191
153
181
166
157
182
142
166
145
155
160
141
199
150
151
174
177
186
168
173
195
165
199
143
199
148
170
194
166
175
165
155
147
143
158
158
177
183
159
150
193
184
168
177
140
197
184
151
183
170
186
152
179
182
176
166
140
194
184
144
180
147
149
173
153
145
186
147
151
149
179
175
189
187
160
168
191
199
185
166
191
177
155
177
179
159
180
152
152
158
180
200
176
171
171
194
187
169
144
182
178
165
199
163
153
158
165
178
170
200
189
163
148
143
191
175
157
165
187
142
162
159
199
192
190
157
148
167
186
151
154
199
193
146
200
142
163
162
149
181
200
170
153
155
144
144
177
199
180
148
149
181
176
178
185
193
197
196
185
140
187
181
164
185
155
179
192
184
147
174
147
166
172
162
163
150
146
172
196
196
166
186
145
152
200
153
183
156
184
175
158
154
150
165
167
152
149
195
159
199
189
154
147
191
157
186
152
186
141
152
185
145
165
145
152
155
177
160
140
155
152
166
178
182
156
153
147
170
152
191
169
196
171
144
154
196
158
157
198
152
190
194
172
182
172
169
197
159
184
149
168
155
149
187
193
185
160
162
148
198
146
196
144
193
167
166
155
200
145
158
142
180
191
168
151
166
144
147
173
147
147
190
185
153
159
191
181
198
144
177
193
181
155
190
183
169
188
154
197
192
160
171
154
194
182
174
172
172
179
152
165
194
148
175
170
167
189
164
200
190
171
145
151
170
188
193
156
182
174
166
168
170
156
184
183
151
173
165
189
160
183
199
149
187
151
190
184
186
176
140
162
183
173
148
189
158
163
172
148
193
193
146
185
179
192
196
194
173
145
147
200
160
192
194
176
166
171
166
150
195
199
140
182
141
188
173
185
143
176
193
149
189
168
154
154
170
165
166
187
151
174
164
191
169
172
185
199
159
152
147
189
153
200
156
166
183
140
166
151
183
144
145
143
191
165
190
152
195
154
169
151
163
140
167
191
145
187
176
183
158
164
199
154
141
153
185
189
157
156
151
185
155
142
192
148
142
150
144
189
157
198
192
164
171
148
154
191
197
140
144
163
157
188
195
166
191
156
166
178
177
156
187
141
157
181
187
186
175
184
171
164
151
153
188
195
172
184
163
187
140
142
196
178
182
169
169
155
145
164
173
184
173
165
175
154
198
146
182
184
177
163
169
188
174
167
154
163
163
173
199
189
170
152
178
187
149
194
174
159
169
171
140
155
175
153
163
176
164
191
145
183
199
150
174
193
173
173
146
187
156
171
147
186
154
180
186
190
156
150
151
184
155
185
193
158
181
165
198
185
167
147
166
172
149
156
141
177
147
162
141
194
177
192
167
198
183
188
161
196
147
176
184
192
191
147
161
189
178
163
180
163
140
179
170
174
199
196
181
146
156
149
200
174
188
158
178
144
148
176
178
144
158
171
185
175
151
199
184
177
181
156
182
178
168
142
175
196
182
165
159
192
195
181
174
189
191
143
153
196
162
172
200
185
168
157
160
196
149
160
194
170
153
162
179
156
195
145
185
169
180
169
143
170
165
182
151
164
178
153
143
186
193
148
185
160
160
182
158
162
198
143
169
191
197
160
147
175
162
159
154
156
181
177
183
179
188
179
171
160
145
184
197
182
163
147
147
179
169
170
179
140
183
151
147
141
162
178
151
172
141
164
169
151
179
159
168
180
178
190
158
188
155
176
164
183
187
157
142
161
156
148
198
183
176
173
194
157
167
169
188
193
148
151
164
168
195
186
168
165
176
148
165
149
190
148
162
181
164
188
195
154
187
143
149
164
164
146
143
188
172
181
174
152
194
160
172
148
148
170
173
168
177
185
190
149
183
150
175
141
198
168
160
181
193
187
193
165
151
157
197
189
187
167
158
186
172
171
152
158
179
179
157
194
189
183
153
162
163
147
192
168
175
151
145
180
151
188
180
145
147
200
148
143
175
145
162
198
193
164
178
184
165
156
183
170
197
164
173
186
140
155
156
151
173
176
173
149
146
153
176
143
159
184
192
152
172
144
184
193
146
146
144
195
165
140
174
196
185
191
196
171
154
140
152
155
151
186
179
156
146
197
160
195
165
171
171
195
174
178
153
166
165
168
182
163
190
184
167
196
175
141
186
147
190
140
143
166
164
141
167
147
177
148
155
196
153
179
185
174
158
186
156
179
168
180
140
198
158
142
140
177
150
194
200
165
160
171
148
161
170
194
192
145
164
183
179
177
196
160
150
170
195
140
190
153
183
188
168
191
155
161
161
199
178
167
182
144
143
164
143
191
162
166
153
181
187
160
198
185
146
165
200
167
142
167
184
175
142
194
187
170
170
182
177
145
166
171
198
156
159
183
158
181
156
149
198
170
187
172
160
195
143
175
150
142
146
161
168
145
179
175
186
142
154
175
164
194
190
175
179
156
151
176
157
185
194
186
149
200
173
148
196
181
161
193
179
173
140
159
151
186
172
168
156
192
190
151
173
173
150
167
194
169
143
194
180
160
186
166
151
165
175
196
180
174
156
184
183
190
193
197
152
200
164
144
155
182
150
182
194
158
172
181
165
195
148
140
151
191
156
168
147
174
159
170
189
196
195
163
186
178
156
189
174
141
184
166
170
167
157
144
147
143
166
143
150
198
177
177
169
193
143
153
166
160
156
173
200
161
191
162
161
178
186
162
162
162
180
153
177
142
182
199
186
158
193
191
166
173
173
173
193
173
173
196
158
170
186
160
193
179
170
193
141
157
172
200
147
181
188
191
199
197
161
197
165
185
160
144
181
172
190
165
182
150
154
185
157
159
152
151
160
157
153
140
147
165
169
175
178
141
140
180
163
154
192
188
175
181
197
161
152
190
174
181
194
152
159
200
178
197
188
180
165
180
199
192
196
141
178
193
144
165
144
157
198
192
178
165
169
167
147
146
176
170
171
141
199
174
178
159
185
140
140
180
189
173
182
179
194
181
171
200
174
175
155
159
140
169
155
187
192
145
196
149
171
144
152
186
163
162
197
165
175
141
156
197
188
173
164
161
162
181
164
187
148
152
180
176
181
184
165
199
199
196
199
170
191
150
192
197
146
181
196
157
150
188
172
192
144
183
185
188
152
172
156
162
189
159
188
167
185
145
173
191
194
158
154
199
188
151
145
141
182
198
158
153
179
175
144
155
199
144
173
142
193
183
157
166
150
150
193
149
161
190
200
187
158
168
145
180
179
148
168
185
191
172
172
171
141
177
150
190
150
170
183
147
183
178
184
141
168
166
194
160
185
183
165
167
156
155
185
152
156
143
186
199
186
182
188
165
142
143
187
174
167
160
198
152
159
182
200
175
184
164
195
190
192
152
150
170
151
153
160
146
147
199
141
177
176
175
175
161
193
157
177
171
172
159
154
153
154
170
191
188
165
145
143
155
197
178
199
171
178
166
184
186
167
187
173
159
178
147
170
144
146
140
182
189
194
161
176
188
199
169
149
193
167
200
171
154
163
168
141
162
188
189
155
177
184
173
161
179
151
177
171
144
148
154
167
141
197
184
198
163
198
171
194
151
177
185
160
149
145
172
198
183
151
194
166
192
153
193
190
166
184
147
188
146
152
155
172
170
141
142
171
154
150
186
150
179
142
180
162
178
153
193
200
184
167
170
143
162
189
173
192
161
160
187
188
188
198
184
192
162
183
152
182
161
171
192
196
156
165
198
188
177
179
146
198
162
166
174
177
153
156
160
192
149
172
192
181
170
144
161
172
168
151
191
187
197
182
147
177
183
161
196
196
148
175
143
181
157
189
196
166
155
159
197
179
146
174
182
170
144
140
192
140
182
169
169
163
150
159
197
161
192
140
190
176
174
197
195
185
190
182
160
161
172
159
149
141
162
191
162
165
200
177
177
144
175
159
188
158
180
148
178
154
150
162
183
183
177
144
141
152
171
160
156
161
131
150
147
131
141
135
141
123
129
120
129
143
113
148
108
129
128
114
133
146
121
117
141
118
139
113
111
116
150
129
101
117
146
133
128
114
115
110
113
137
138
120
141
117
107
117
119
101
135
114
109
146
118
106
104
142
143
135
127
100
147
125
124
147
112
149
135
125
117
105
143
148
129
108
113
148
142
101
125
110
148
118
122
148
108
137
100
103
118
118
106
121
148
128
113
115
117
137
150
117
125
144
103
110
144
150
139
104
113
150
133
133
115
110
126
110
120
133
144
136
102
106
148
124
139
126
135
107
121
145
118
124
100
103
133
121
124
130
107
107
147
104
107
112
148
112
101
133
140
119
132
103
142
100
104
134
121
144
116
140
125
102
144
118
115
144
102
106
150
133
121
134
124
137
107
111
127
116
113
112
119
129
101
108
123
111
131
143
132
136
129
136
140
106
138
102
134
140
138
149
104
133
109
121
140
140
126
139
147
125
119
116
119
113
144
131
125
121
110
140
110
125
130
117
142
103
143
142
148
100
137
139
103
111
108
145
146
130
121
117
149
145
120
104
102
129
145
119
106
135
118
146
147
111
126
102
128
123
105
126
114
121
131
110
137
144
135
136
146
122
133
104
145
116
110
109
100
127
107
117
120
132
131
129
100
147
127
140
115
122
114
147
117
150
149
142
140
118
100
109
143
128
146
150
101
137
119
145
100
122
122
144
108
126
104
105
144
101
109
102
112
124
147
107
139
123
150
141
109
141
150
106
132
124
149
121
117
147
150
115
101
132
104
107
103
145
136
126
129
103
149
113
130
114
105
129
103
129
130
140
144
144
149
129
102
105
128
117
134
127
147
109
146
134
112
127
127
124
113
139
135
139
120
106
120
113
105
148
126
109
101
138
106
118
148
132
118
100
103
150
141
136
142
103
119
150
118
129
101
102
123
113
131
100
104
127
125
107
105
146
113
117
117
122
114
118
121
144
137
149
145
140
113
109
114
107
126
116
143
105
134
111
126
149
100
132
144
108
135
144
129
125
145
110
119
130
116
131
117
103
143
107
139
104
145
125
108
147
109
121
148
130
111
113
137
115
129
130
135
141
147
121
123
132
102
150
137
148
112
135
137
135
112
114
150
134
115
102
106
129
109
122
104
149
120
147
147
150
123
100
107
140
139
149
134
126
131
138
103
122
120
113
135
147
106
138
141
113
124
144
116
133
114
103
126
106
142
115
125
138
125
127
149
116
124
102
146
103
126
130
118
139
143
102
122
127
142
133
112
125
108
113
130
128
132
108
135
134
143
104
117
150
110
106
143
132
110
124
130
144
125
148
116
103
134
135
116
118
127
123
123
108
132
107
106
107
131
105
105
132
122
141
144
144
123
108
117
140
116
114
121
121
149
149
147
118
111
100
108
122
145
128
102
141
130
100
100
109
134
137
139
139
135
149
144
136
145
146
112
139
101
121
118
126
148
114
109
150
114
113
125
129
122
140
100
102
100
100
130
135
149
124
113
115
128
117
150
123
134
117
123
147
147
126
110
126
129
110
136
118
142
146
126
145
103
104
122
141
128
122
100
139
138
100
142
120
116
112
127
143
118
120
130
113
122
120
133
134
131
112
111
121
135
108
132
125
103
119
132
140
100
138
139
145
132
105
149
126
105
101
147
136
108
122
125
100
134
122
102
141
125
140
128
100
126
136
133
110
144
136
143
121
135
133
109
100
148
114
116
116
105
102
150
100
115
141
111
119
105
105
100
101
103
122
108
109
103
138
142
135
143
138
136
111
122
106
113
131
121
107
119
110
107
114
113
143
135
123
142
132
120
100
107
120
111
124
146
110
126
101
125
135
141
136
109
131
110
128
120
147
115
115
150
122
129
121
144
119
143
113
102
123
109
106
144
134
134
103
150
114
107
140
138
123
102
122
121
142
147
141
112
112
123
142
133
101
132
110
137
109
130
118
121
130
112
115
109
139
142
130
107
130
132
140
108
115
122
137
112
115
136
145
132
111
119
105
138
100
119
107
117
147
119
107
114
107
111
135
128
100
105
111
145
127
110
131
143
109
147
122
106
116
116
127
141
123
105
122
100
104
117
103
100
102
100
144
123
121
123
148
141
128
142
129
141
141
136
103
140
122
111
142
125
145
144
148
106
124
129
131
136
141
129
146
130
139
147
120
113
108
125
132
127
128
143
130
150
127
139
147
132
112
102
128
146
108
143
117
109
103
149
126
126
142
124
148
110
131
123
125
145
121
144
129
105
126
124
132
137
122
120
118
135
126
108
150
117
119
145
141
145
116
142
113
137
113
125
142
113
109
106
139
127
121
139
101
110
148
103
132
101
149
119
145
101
148
136
109
138
118
115
145
142
108
147
122
136
145
137
148
143
100
114
137
139
150
107
122
114
105
116
102
126
122
145
140
130
122
131
114
103
107
150
118
134
114
106
120
116
137
113
125
132
110
150
146
140
139
111
115
140
105
117
120
121
112
118
103
149
110
101
141
108
109
146
149
123
109
129
126
100
144
112
132
132
150
104
137
132
149
146
113
140
133
150
127
144
119
126
106
143
142
129
129
120
147
130
136
137
113
127
104
119
144
113
109
110
141
129
111
134
126
127
109
102
150
110
101
112
137
128
138
147
144
126
103
107
113
111
106
113
110
121
136
149
121
144
123
108
108
112
137
104
107
108
104
119
108
118
140
120
131
134
132
128
122
137
109
136
112
132
101
147
135
124
141
143
119
131
130
114
147
148
115
132
147
130
125
117
120
111
140
119
100
139
114
117
100
103
130
105
129
145
118
115
147
128
127
132
137
116
124
119
127
137
128
118
116
118
138
101
139
124
130
130
135
137
149
126
150
129
103
142
130
146
131
145
130
121
123
138
120
141
145
112
113
109
123
140
123
112
122
124
129
113
143
144
146
107
100
118
128
136
110
105
113
108
102
124
106
109
128
150
146
141
126
135
125
147
138
136
106
122
105
100
119
137
133
150
147
127
109
102
118
106
115
120
139
135
106
115
112
124
146
100
101
143
108
147
100
101
126
109
125
116
129
109
141
140
127
112
147
100
119
122
119
139
101
100
116
121
143
105
145
146
147
150
131
119
103
102
150
100
143
109
119
128
138
137
110
142
124
141
148
115
146
135
111
116
134
104
111
113
140
113
109
146
130
116
103
139
112
125
104
133
130
142
119
131
141
107
133
120
143
134
108
122
107
127
127
127
125
143
113
100
143
106
116
108
139
142
117
137
143
143
116
132
112
114
128
104
145
131
135
111
118
148
125
113
108
115
119
150
138
130
102
144
117
122
140
139
123
107
112
146
141
112
121
106
123
136
146
107
143
112
117
145
104
105
120
118
113
141
136
127
106
120
150
122
117
126
100
105
120
133
134
122
116
138
104
104
108
127
121
102
144
128
100
150
102
115
118
110
133
102
114
148
110
133
112
148
111
129
133
141
114
121
107
139
131
107
127
115
137
131
125
147
106
141
111
124
123
149
111
143
140
149
112
100
118
114
137
128
130
136
128
121
122
135
143
123
129
141
111
107
119
140
140
134
120
104
122
143
105
101
140
128
124
134
128
118
113
141
119
141
147
149
134
145
113
110
116
126
111
120
131
131
126
141
129
147
108
133
126
110
100
114
128
148
129
122
110
148
104
106
110
120
146
112
136
123
143
133
142
126
102
134
112
103
146
133
120
115
131
133
111
120
106
108
138
103
129
138
135
124
133
102
105
110
134
109
114
128
134
109
117
104
101
113
138
114
111
137
120
107
144
102
100
142
149
150
113
117
141
146
113
111
131
130
108
107
111
146
109
132
110
101
103
128
109
141
146
131
146
124
143
132
138
146
118
114
149
102
104
108
137
139
124
134
146
100
103
133
102
137
115
138
137
131
136
118
113
113
141
135
126
116
138
139
121
122
116
105
100
139
133
116
131
130
100
126
128
135
124
136
139
109
127
149
129
145
116
135
147
124
113
118
110
128
142
140
120
117
125
113
136
113
122
118
114
103
142
131
102
135
107
142
112
133
146
107
124
125
136
107
108
121
145
150
119
101
100
150
121
143
130
112
114
115
138
107
138
137
150
132
105
129
118
129
129
109
137
135
100
117
132
125
128
140
134
120
119
117
138
121
114
115
150
130
105
114
140
147
139
136
148
145
126
102
135
106
100
119
141
124
144
142
147
128
119
105
150
108
117
116
150
125
101
135
101
100
145
108
150
148
146
149
144
106
122
111
107
122
142
109
116
131
105
131
149
108
128
117
148
123
130
122
111
150
100
142
108
144
140
134
103
123
103
133
126
102
111
119
122
139
112
102
139
142
120
150
100
134
117
150
111
119
114
101
121
124
118
148
132
103
139
118
143
136
143
105
135
147
126
138
144
144
125
125
131
114
117
139
122
130
127
130
135
118
147
127
124
105
122
150
129
133
100
125
120
118
107
117
103
145
112
108
129
132
106
133
111
132
147
139
144
139
114
113
132
142
142
103
149
117
148
114
132
108
139
129
137
121
138
116
139
111
130
124
136
114
132
108
114
136
118
122
131
140
122
136
135
140
143
134
150
127
111
145
123
124
129
109
127
134
150
109
116
116
127
139
115
106
119
104
100
129
134
124
106
110
127
112
140
141
100
122
144
126
109
121
146
139
122
118
118
119
134
106
110
117
137
105
145
138
135
103
135
123
102
122
130
108
140
136
125
133
124
120
114
145
120
118
116
120
142
141
116
111
132
145
145
118
148
122
134
139
114
128
105
104
108
135
136
117
139
120
141
141
120
145
144
121
137
129
111
150
114
134
144
124
133
141
127
139
132
116
115
112
150
121
136
113
102
109
101
112
127
128
107
125
136
139
138
112
112
132
131
129
116
109
145
141
141
131
149
134
109
141
126
141
107
145
116
143
125
140
147
112
148
134
131
141
149
127
126
125
108
123
148
129
140
140
127
145
123
131
127
149
147
113
108
136
143
102
148
107
104
125
143
106
127
150
141
133
132
116
133
136
102
112
101
135
129
138
143
103
114
108
106
100
124
134
147
100
124
131
133
149
131
139
118
115
146
136
141
113
125
138
142
121
127
105
144
148
121
104
128
102
144
129
103
125
110
128
149
105
143
137
106
111
141
119
111
101
112
124
145
143
105
114
114
138
112
105
125
137
126
131
111
119
107
117
138
141
147
137
145
129
117
132
136
144
139
124
136
112
124
104
111
150
106
133
147
144
146
127
139
124
150
139
101
101
111
113
104
132
150
140
117
107
107
135
134
122
140
125
121
124
120
113
149
110
115
138
108
120
125
102
109
133
146
104
123
121
147
142
109
126
119
149
107
108
114
100
119
112
124
121
117
123
147
129
145
121
131
108
142
103
130
117
103
140
139
144
127
144
149
100
143
113
110
149
109
131
124
134
142
142
104
137
149
130
122
126
102
125
101
113
147
126
121
104
139
148
134
125
102
125
140
147
146
115
121
145
101
105
138
115
125
102
140
101
126
113
138
115
145
140
135
135
121
111
122
107
123
142
134
107
139
132
142
143
107
109
135
109
119
145
138
132
126
118
104
121
119
101
150
132
140
149
103
107
117
131
129
146
134
125
147
121
139
112
109
102
143
138
107
101
124
128
146
139
137
114
131
142
106
126
116
139
112
108
143
128
125
115
114
117
124
147
138
121
150
102
114
123
110
143
104
139
132
150
116
135
131
125
114
130
102
147
150
138
148
143
136
113
147
147
121
113
128
123
133
116
133
106
121
140
146
116
118
144
113
129
146
117
126
138
130
121
105
128
104
102
113
118
127
121
124
141
104
147
141
123
141
114
143
113
119
148
110
143
126
143
147
142
142
125
134
114
142
128
132
115
146
133
124
115
120
143
108
100
121
104
118
141
146
126
120
102
150
135
123
108
102
112
109
127
111
128
111
128
106
145
127
131
141
110
139
130
144
118
131
139
105
148
129
139
146
126
100
135
149
146
146
118
133
104
134
126
132
145
146
131
107
143
138
130
111
130
110
143
147
140
144
123
121
118
125
102
142
125
129
126
149
123
132
101
145
118
102
141
114
120
139
107
108
104
138
126
106
143
119
118
119
106
130
111
133
150
123
136
138
133
119
108
142
129
148
150
117
102
114
147
102
107
129
108
129
101
110
113
113
150
100
125
121
112
140
116
145
147
137
148
102
115
144
125
129
128
102
108
145
129
107
104
108
117
130
126
146
109
109
145
120
132
136
110
149
145
147
149
135
100
136
104
112
133
120
146
101
133
137
122
139
140
110
132
121
113
118
143
146
121
138
114
125
146
146
119
138
110
127
105
132
125
126
149
122
119
122
119
137
108
118
123
138
129
119
138
140
101
102
101
139
142
112
148
135
103
100
142
126
143
137
145
140
100
102
101
136
110
123
147
147
128
150
101
116
142
133
117
106
122
121
149
137
108
134
115
109
132
127
134
111
146
129
119
134
138
132
140
141
144
150
126
125
101
117
113
110
149
107
147
121
128
150
119
124
119
118
105
117
115
110
137
128
138
128
142
145
103
144
137
141
105
128
145
139
129
113
136
131
103
124
126
150
113
127
124
109
135
119
150
112
140
141
100
142
108
143
128
141
136
117
130
142
107
117
148
116
108
128
110
107
113
105
105
136
143
128
132
107
116
133
125
124
139
133
124
107
103
135
109
105
147
119
102
121
119
124
128
142
150
122
112
126
150
107
101
118
117
121
145
125
127
130
144
116
136
112
104
130
144
148
112
112
124
111
134
104
143
139
139
110
119
133
106
106
150
117
100
117
141
100
150
112
136
141
137
133
109
125
128
109
146
144
109
135
107
108
102
135
142
101
102
144
140
145
127
150
142
136
107
148
133
103
139
131
126
110
125
144
139
118
117
106
109
107
140
139
116
133
123
135
137
139
101
138
144
121
143
145
132
146
120
141
115
131
126
116
124
118
114
122
113
110
125
130
123
146
127
132
142
126
108
119
125
129
127
126
107
133
103
141
128
107
138
130
133
144
141
123
118
141
125
147
126
114
147
112
142
136
115
118
142
141
104
103
145
138
142
100
144
115
139
128
126
133
134
147
107
120
133
114
149
116
123
113
135
130
121
102
103
149
126
142
113
107
134
104
146
108
130
145
144
125
145
106
110
134
141
139
108
137
111
111
105
114
100
146
119
121
122
111
123
137
103
147
102
145
147
117
119
124
103
118
104
130
141
140
142
106
127
115
142
110
115
143
125
142
124
143
126
132
121
133
148
126
147
145
144
121
106
111
113
127
144
117
105
138
146
101
135
135
136
112
139
142
124
123
123
123
148
139
118
132
136
133
111
129
139
110
101
145
128
145
133
150
135
104
100
117
120
124
119
105
112
149
136
135
148
128
142
147
141
140
143
140
144
101
131
148
144
109
144
113
121
133
100
108
128
138
102
132
105
142
120
144
146
111
105
131
149
105
125
104
110
122
128
117
149
101
120
106
130
139
109
132
128
150
100
143
139
147
134
111
129
119
143
135
124
116
103
110
104
103
141
126
119
140
101
129
150
138
134
131
101
116
110
106
103
118
109
103
138
128
147
142
127
141
109
118
130
116
116
111
124
142
136
137
111
136
135
125
104
113
110
145
141
111
127
113
129
128
110
142
146
100
111
110
114
110
114
136
124
120
149
145
128
139
101
120
112
116
127
126
150
135
104
116
129
121
144
134
126
140
117
148
118
114
147
105
142
117
138
134
136
149
136
140
104
113
127
146
143
131
111
137
135
130
104
126
101
145
145
148
125
127
135
143
133
104
116
135
106
104
129
150
133
101
129
123
136
148
120
119
100
136
150
126
145
113
117
133
113
120
104
147
108
143
129
143
102
118
146
130
145
117
119
133
110
100
145
102
123
134
127
117
135
114
114
110
132
116
149
109
106
113
138
138
138
126
126
147
107
113
104
118
101
136
135
122
115
123
117
150
129
128
128
131
136
135
109
112
115
115
110
127
134
122
146
138
149
145
133
126
123
115
107
133
137
129
105
149
113
125
112
147
121
144
115
138
140
111
149
123
112
145
109
136
106
126
142
149
136
114
109
144
108
148
134
134
135
107
103
137
108
131
125
124
133
111
123
128
131
148
123
122
105
113
141
121
147
129
104
117
130
129
122
116
122
142
137
123
119
101
134
146
123
102
138
122
100
132
140
146
133
100
126
103
134
102
144
121
125
129
108
140
138
105
144
126
110
115
125
120
123
139
119
101
115
131
125
113
119
111
140
148
111
133
148
114
101
143
108
107
109
119
101
116
146
103
106
117
147
147
107
103
120
144
118
139
108
112
111
146
118
147
128
110
132
134
144
141
119
101
144
120
139
100
146
123
145
110
134
133
108
101
104
117
131
140
111
146
143
137
142
100
112
138
110
100
119
109
106
120
144
117
147
141
110
143
117
149
116
104
149
104
123
101
112
112
135
150
144
110
100
118
150
141
123
105
140
118
144
133
128
142
134
150
111
126
147
139
106
105
132
109
119
145
135
125
122
135
120
144
114
121
114
106
128
114
121
132
146
109
123
143
146
119
150
127
136
119
125
136
149
136
148
123
141
139
120
143
114
143
107
114
141
145
146
125
110
128
139
110
138
142
140
100
129
111
149
127
118
131
126
119
122
130
113
113
125
105
131
114
140
148
133
125
129
107
116
131
102
138
106
114
142
107
143
150
146
110
139
116
130
117
137
111
108
125
118
117
150
143
105
147
129
115
110
103
139
135
118
126
116
132
113
127
109
138
138
104
150
126
103
113
119
132
133
146
100
140
129
150
144
114
129
108
106
102
127
117
150
131
121
103
110
105
104
116
115
116
116
141
115
143
143
143
130
150
102
107
138
125
147
126
133
147
118
134
132
116
117
143
108
103
138
125
114
134
112
115
121
130
149
147
129
118
133
107
144
131
117
117
119
125
119
133
120
140
131
136
107
127
145
115
140
129
101
100
119
122
127
108
102
149
108
117
141
104
114
124
104
121
138
138
117
118
136
120
120
111
145
127
118
131
113
137
125
101
118
115
109
118
138
113
125
139
116
141
131
114
148
140
129
131
139
148
144
150
118
142
119
132
135
106
109
146
137
135
140
131
140
112
149
122
124
145
103
129
124
125
113
112
102
126
148
103
146
136
147
102
113
134
146
130
102
124
135
117
137
143
124
106
146
120
103
136
123
133
106
135
121
116
119
112
140
127
123
117
149
140
101
119
149
101
127
114
148
109
114
126
122
126
134
139
123
110
123
100
127
108
122
113
150
110
149
140
124
147
133
143
109
131
113
120
131
142
135
110
148
141
127
125
100
119
102
113
117
108
126
111
149
133
150
127
117
129
131
124
104
103
150
119
138
116
114
131
126
121
130
136
147
135
121
141
144
145
148
141
148
143
119
113
141
111
122
136
101
139
147
146
101
127
114
101
140
138
141
111
117
111
129
101
129
118
120
141
115
125
108
103
106
117
133
149
149
127
123
125
144
136
112
146
136
132
129
131
107
139
111
112
115
115
124
101
109
109
118
117
118
103
100
105
101
134
128
114
100
109
100
129
135
144
123
113
146
140
142
105
131
123
110
101
120
143
138
127
103
134
146
136
133
149
134
112
110
137
122
118
131
147
135
150
122
113
110
112
133
149
104
112
105
145
146
113
117
103
139
138
110
109
126
138
106
104
115
137
101
146
138
123
108
111
137
149
126
125
110
138
131
137
148
122
111
125
132
150
115
102
120
127
103
120
130
122
127
118
143
113
135
144
148
107
129
128
125
148
108
144
142
128
131
141
100
140
107
130
126
125
122
146
132
137
140
131
111
107
123
107
132
130
141
118
113
149
144
104
101
132
120
110
122
111
119
126
150
143
122
134
148
117
141
132
126
130
116
108
121
102
122
120
145
124
149
147
121
118
135
148
140
143
103
125
121
137
101
149
108
149
119
101
115
107
129
127
116
103
132
146
111
109
144
121
133
134
140
113
140
147
118
105
143
143
102
122
122
141
143
136
104
123
101
125
140
129
143
142
140
108
135
137
104
120
116
124
144
129
131
104
117
128
135
115
110
143
116
114
122
110
117
110
139
122
116
117
123
128
107
104
131
115
106
100
133
116
104
106
143
123
103
119
111
150
121
121
130
108
102
149
147
144
117
104
141
109
149
105
101
136
144
106
136
137
131
114
119
129
118
110
119
126
142
143
103
101
101
123
108
149
111
131
115
135
135
149
138
147
139
129
125
125
139
110
128
112
102
113
124
134
148
111
112
121
112
108
142
115
113
135
109
107
139
145
136
117
115
122
128
135
124
108
101
105
130
146
112
135
113
102
116
139
137
110
112
125
129
101
119
137
100
130
120
121
133
107
139
138
108
125
106
141
114
111
110
103
133
106
119
137
131
117
127
142
103
133
114
114
114
150
140
148
135
132
128
118
101
121
120
127
110
142
129
135
148
118
148
126
106
110
101
113
139
104
131
137
101
145
124
118
139
144
112
120
145
117
111
135
120
135
102
134
128
148
130
113
139
143
141
116
134
122
140
137
128
135
113
129
102
117
109
133
133
136
102
127
133
104
103
115
107
105
118
128
144
135
122
130
116
115
107
137
145
124
144
102
137
129
134
122
142
124
132
115
133
140
102
130
102
142
138
128
140
147
149
112
115
106
102
138
116
143
138
123
101
129
126
147
114
138
103
105
119
105
126
103
117
128
138
147
113
101
143
134
106
117
130
138
131
135
142
134
109
132
141
138
103
128
142
139
104
138
136
121
123
131
131
145
134
134
139
101
125
147
124
142
138
104
138
128
109
119
104
100
103
115
102
102
101
112
140
126
136
135
110
135
148
120
121
121
112
121
110
103
100
128
139
108
116
119
120
139
134
106
121
119
146
133
108
114
109
116
141
104
145
105
131
129
106
128
138
107
138
124
144
126
141
108
110
138
139
144
150
146
125
105
105
128
107
127
112
104
150
133
138
107
140
118
149
145
105
133
145
105
125
131
105
149
130
139
107
141
139
127
106
121
117
100
136
108
103
139
134
107
119
118
144
102
124
149
135
111
124
127
115
110
116
134
110
123
140
135
121
123
106
144
107
116
114
119
134
107
142
140
105
103
117
108
132
112
126
143
115
144
148
102
135
146
130
139
138
145
117
137
122
104
141
100
128
146
119
139
140
142
136
116
130
147
114
112
109
106
120
127
119
140
109
139
142
113
115
110
135
103
135
118
146
101
108
147
137
141
125
137
121
145
142
120
122
101
111
118
121
145
131
125
109
115
136
135
126
114
100
120
104
144
117
142
108
128
101
142
115
150
128
108
120
140
108
141
127
140
144
104
126
149
123
130
137
126
100
126
150
125
100
106
100
101
109
128
148
142
134
100
135
104
120
127
124
124
133
140
115
101
141
146
114
120
150
117
105
130
134
136
126
123
120
103
131
115
128
119
149
134
130
143
102
116
119
101
145
140
124
145
130
138
137
131
126
110
117
119
113
143
110
142
104
129
113
137
145
129
114
124
135
113
128
147
136
128
145
122
110
106
126
145
135
124
111
141
148
141
127
149
104
147
118
103
137
103
135
138
130
111
110
111
133
109
106
129
108
102
137
125
106
128
145
149
137
116
107
115
117
120
116
127
144
128
118
121
107
150
106
128
136
145
101
134
124
116
144
106
120
116
114
105
126
123
133
144
150
141
128
109
146
116
142
126
123
138
115
146
126
146
148
108
142
100
136
133
104
110
132
115
112
114
145
136
104
102
136
144
109
150
105
114
138
129
115
137
137
137
130
129
135
143
138
140
150
141
136
109
101
107
138
124
117
119
142
122
134
115
145
115
120
129
131
103
108
101
112
117
109
104
115
136
102
143
104
143
108
128
112
110
146
117
107
136
119
124
145
102
130
147
147
109
128
103
131
141
127
126
106
119
133
110
106
118
131
117
139
120
108
108
116
135
133
114
110
140
125
147
138
145
144
108
104
106
113
141
128
127
124
104
144
115
137
111
101
147
127
145
109
142
144
135
121
120
111
127
124
143
148
110
124
104
108
132
144
137
123
103
146
116
135
126
149
121
107
142
129
138
135
115
128
116
122
106
149
126
125
126
138
100
103
115
150
103
120
148
137
135
148
124
124
139
148
106
122
135
141
116
131
108
103
115
118
149
121
103
134
132
106
123
100
140
114
134
100
136
123
101
123
131
122
133
133
105
141
116
143
117
148
127
122
100
132
149
113
119
111
111
130
150
103
120
130
118
129
148
126
144
123
130
148
116
135
125
143
121
104
141
115
140
147
121
142
135
126
145
118
115
135
139
134
144
125
126
116
102
127
114
133
141
117
140
115
122
140
116
141
137
121
112
137
114
150
127
110
110
148
115
140
112
140
103
110
132
110
141
145
141
130
137
114
131
147
127
136
129
136
100
135
124
128
122
117
144
141
108
104
101
127
120
104
134
125
106
142
107
147
131
132
121
134
124
138
131
110
109
131
133
111
132
103
123
150
120
146
138
128
124
120
114
110
150
137
130
122
105
137
121
147
133
132
101
120
131
120
129
105
133
145
113
104
130
148
111
125
134
131
111
147
105
113
125
146
127
128
117
127
122
104
127
107
142
133
129
106
102
102
126
135
117
149
148
125
104
101
140
137
145
137
148
128
122
100
139
107
122
121
137
121
126
104
103
110
118
117
101
130
134
138
147
133
118
133
115
143
114
140
122
130
100
120
117
118
136
101
101
135
107
134
140
127
127
138
150
114
122
146
115
150
130
119
116
111
137
106
147
114
133
116
139
113
120
114
111
147
145
141
133
108
129
112
127
141
115
115
132
142
108
129
144
100
130
118
142
125
122
102
123
128
107
135
112
103
135
112
129
137
146
119
135
112
123
115
135
104
143
117
144
125
145
137
112
144
109
111
141
104
131
146
137
105
145
106
138
133
112
145
109
108
121
127
121
135
136
144
149
136
145
135
102
129
119
140
107
147
143
144
114
136
118
144
104
101
120
133
118
124
148
110
112
148
114
133
130
112
127
149
120
105
131
113
137
149
125
120
142
124
101
102
133
107
145
144
119
141
107
148
143
143
148
127
148
122
144
126
150
100
121
117
130
146
146
118
144
144
103
118
142
122
102
107
122
127
138
147
100
141
139
123
112
106
109
107
149
133
124
148
130
121
114
130
108
112
138
148
102
119
138
139
147
105
148
132
139
134
112
120
139
149
101
145
131
120
111
104
122
119
117
147
105
112
108
102
146
112
109
108
135
111
117
124
103
140
115
146
108
127
130
106
103
128
124
101
132
148
144
110
123
116
102
140
132
118
126
121
118
108
117
133
105
128
136
141
124
100
113
133
147
144
112
101
135
148
118
140
106
139
144
124
145
123
134
140
132
123
101
105
104
106
108
116
106
147
147
119
114
125
115
135
129
146
119
127
137
116
110
105
122
131
131
119
111
148
133
119
106
117
121
101
102
112
108
101
110
109
101
121
113
104
149
141
124
117
134
123
130
129
139
132
122
137
141
134
121
130
105
126
126
101
101
101
103
102
135
136
117
147
113
135
131
149
101
110
148
140
105
110
142
108
146
112
105
144
137
136
103
150
110
118
147
129
112
103
117
127
100
126
109
139
109
132
146
104
149
107
134
149
126
127
119
102
128
121
149
122
141
133
137
135
101
131
120
142
107
115
109
146
110
112
123
118
134
117
123
120
124
122
124
148
103
125
103
105
101
138
102
142
126
108
123
132
107
124
132
137
101
146
111
118
123
112
115
108
137
144
122
131
144
141
126
106
149
125
116
135
147
123
104
101
117
104
126
123
145
119
141
147
141
150
113
113
107
144
138
142
138
100
125
103
109
150
114
139
138
103
145
106
149
101
120
119
110
126
145
104
102
102
137
116
104
107
115
142
118
133
133
103
109
110
149
141
129
141
123
135
104
112
137
115
108
119
145
126
124
100
118
140
111
150
131
102
109
146
104
146
104
109
114
128
145
123
104
149
135
111
134
133
117
129
110
115
110
105
140
124
118
150
149
104
129
116
107
131
146
108
133
110
100
130
114
125
108
149
148
143
116
121
101
109
136
116
130
103
130
109
123
107
124
118
120
143
113
123
144
120
101
122
119
119
115
114
122
113
141
111
146
128
111
118
112
144
136
116
108
102
120
145
106
135
107
121
150
147
136
138
134
112
148
135
102
120
111
116
111
125
147
140
134
116
123
109
134
146
113
123
122
103
147
104
146
122
127
118
124
105
111
118
102
127
105
107
146
111
103
126
133
149
141
103
139
120
129
150
143
130
147
139
126
124
115
141
141
134
124
131
116
115
108
130
134
116
139
108
120
143
143
110
121
138
143
115
143
121
140
131
109
115
147
140
135
105
133
108
116
146
127
139
125
111
136
129
106
119
139
108
134
118
105
131
118
114
135
126
148
136
123
119
105
130
115
121
105
150
132
121
134
105
148
143
136
119
136
119
146
115
133
130
138
141
107
130
134
134
129
106
113
107
128
118
112
149
138
104
123
147
100
130
109
115
104
104
124
118
115
116
105
138
112
107
139
128
104
113
147
145
107
129
105
120
102
109
127
146
110
149
103
115
133
137
147
140
119
140
119
103
121
116
121
121
116
130
129
102
144
109
102
111
119
136
127
134
104
139
110
137
124
142
150
133
103
100
125
103
123
122
127
113
125
105
141
139
119
121
149
123
118
143
140
105
119
124
109
133
112
128
112
147
118
132
130
112
144
105
122
123
121
121
108
118
133
131
126
133
122
106
146
141
103
109
113
139
101
127
133
120
100
138
145
141
100
107
133
149
131
150
119
119
123
132
106
118
138
125
131
128
138
101
112
147
103
147
133
130
122
108
111
145
118
105
120
110
123
145
138
109
143
143
118
124
113
109
115
111
134
143
101
105
100
132
123
120
117
148
141
127
117
119
102
121
130
130
121
113
121
103
122
134
145
129
134
139
130
115
149
129
131
119
132
120
103
119
124
116
141
105
123
131
121
112
134
102
107
134
111
117
107
107
128
123
111
137
107
128
107
127
114
113
117
141
105
105
109
131
121
136
121
141
150
120
120
129
104
122
140
100
121
141
133
142
141
102
111
107
148
126
107
131
122
110
149
145
129
137
100
146
120
149
122
114
113
106
129
140
105
138
114
134
128
129
145
138
107
129
129
101
126
130
113
101
125
116
117
128
125
113
121
126
121
106
132
102
147
124
136
101
109
126
142
117
136
130
118
116
133
142
125
107
108
124
108
114
132
121
150
101
135
149
129
144
103
139
143
146
147
136
142
101
126
146
128
101
108
139
112
113
121
147
145
131
130
134
123
122
139
122
145
143
112
101
148
150
103
147
140
122
114
132
143
146
124
105
146
114
128
112
117
132
125
141
106
106
115
133
111
120
110
125
103
111
122
144
150
124
120
124
139
115
116
119
129
116
144
127
111
140
109
149
124
143
131
133
106
118
137
109
124
110
112
114
150
135
137
142
139
105
127
113
118
124
126
124
110
141
102
108
106
113
106
117
125
139
148
120
108
142
135
145
135
115
107
147
132
139
132
126
115
142
150
148
106
133
138
117
150
135
113
136
143
143
126
125
100
114
132
111
116
122
120
124
140
115
110
105
149
144
104
147
140
141
125
119
104
110
117
122
149
105
101
145
147
128
129
113
108
123
141
105
105
147
105
134
110
108
134
126
106
109
118
146
106
134
145
136
129
141
118
149
125
101
105
130
146
136
100
112
142
103
117
149
103
125
105
119
137
118
133
109
150
114
123
140
134
149
125
116
123
129
140
131
134
100
149
104
138
142
139
147
115
102
138
116
138
145
132
150
113
123
123
112
139
113
122
116
123
118
134
126
109
117
118
120
150
119
127
133
149
103
112
106
140
135
135
146
138
135
138
124
102
141
149
121
115
109
136
139
107
121
120
123
129
134
143
130
139
105
138
109
112
126
106
143
101
106
108
127
107
147
106
124
145
150
116
124
111
116
150
100
111
134
128
105
137
103
131
111
120
140
147
144
148
114
145
127
106
101
113
134
145
127
134
146
131
143
109
148
106
117
123
107
106
122
109
149
119
112
143
102
101
131
131
138
105
133
122
131
129
133
134
147
117
129
139
148
126
100
123
113
100
146
136
120
135
100
150
124
129
121
111
113
133
126
125
141
131
108
135
102
101
140
134
117
124
142
113
123
149
112
143
134
123
127
147
100
114
149
139
149
134
135
140
112
146
140
121
121
107
144
102
138
103
146
100
112
148
128
144
143
144
148
127
108
104
143
110
128
144
126
108
121
138
114
114
132
131
101
127
102
129
141
108
137
123
134
136
112
108
136
137
101
135
124
133
100
115
117
116
113
144
137
112
141
112
144
150
146
106
144
120
128
114
110
128
120
139
139
101
109
140
122
130
128
128
148
139
118
146
111
122
100
112
128
125
133
129
130
133
134
111
123
117
145
147
100
114
148
125
133
135
133
119
113
130
124
106
125
149
105
117
150
120
128
131
150
106
105
100
139
134
133
139
132
132
118
122
133
104
148
128
116
136
103
107
139
124
149
115
108
105
134
140
101
145
129
115
131
130
124
147
113
112
140
111
146
133
111
109
121
146
125
140
114
139
135
108
144
104
148
129
149
138
125
108
145
134
126
111
128
121
105
122
131
143
143
107
115
131
124
139
138
136
149
146
131
144
145
128
131
125
134
111
107
127
101
136
130
112
149
103
144
135
132
112
136
133
109
122
128
118
119
102
134
113
133
112
139
125
138
105
130
119
115
111
114
144
150
122
110
103
105
106
100
148
146
150
139
138
120
109
135
144
110
109
101
133
131
134
147
129
114
147
140
118
139
143
120
108
132
145
120
111
137
116
121
141
118
146
150
120
117
121
143
133
136
103
117
108
129
137
129
122
136
124
110
142
116
134
103
131
101
111
133
100
102
129
101
113
115
113
110
142
147
148
146
144
144
127
132
138
110
145
110
123
117
106
112
109
112
106
146
137
133
121
110
107
136
124
112
146
116
130
126
123
132
143
136
123
114
113
114
130
132
125
107
122
111
114
147
119
117
101
102
149
121
147
117
116
139
114
107
110
108
105
146
149
134
119
139
120
118
138
134
104
127
104
105
149
113
111
150
105
127
131
105
141
116
100
134
120
111
105
125
144
102
120
102
149
150
147
104
148
134
123
138
113
122
104
116
127
149
135
106
130
136
108
108
113
117
123
110
123
116
136
122
103
123
129
141
113
103
126
134
132
107
112
103
105
104
150
139
142
127
143
137
138
136
120
127
138
135
148
113
143
111
142
110
142
133
115
128
105
108
107
147
132
144
135
112
102
125
127
141
150
139
126
114
140
107
134
110
107
122
141
139
114
147
146
104
144
146
120
122
125
113
149
120
118
106
122
131
149
130
133
103
109
111
138
107
104
138
123
103
101
127
126
102
123
115
136
149
123
141
112
100
131
117
142
118
105
116
139
132
104
127
130
144
116
136
104
103
141
124
143
140
106
101
102
139
124
130
109
138
117
141
100
121
133
101
118
106
111
121
116
103
102
131
112
101
138
123
119
106
130
122
137
145
123
143
114
146
125
125
129
117
128
145
137
123
120
103
109
149
123
136
147
140
104
118
130
124
137
115
107
144
149
115
138
105
109
117
103
102
130
106
103
116
121
120
115
103
107
101
134
127
113
145
110
124
143
136
149
121
105
121
137
143
118
101
120
146
113
104
135
128
123
133
121
139
123
108
132
132
116
125
127
116
140
107
108
102
111
120
147
138
144
126
104
114
125
142
129
112
105
108
147
104
109
140
140
156
171
185
157
148
181
154
160
158
164
156
156
177
172
142
151
183
144
176
192
177
147
147
172
168
172
169
181
152
149
188
200
186
163
162
174
147
176
143
183
197
174
152
162
188
198
200
178
152
163
149
177
146
156
150
182
172
172
199
189
185
160
171
188
172
195
141
158
199
162
183
151
159
140
152
186
176
199
194
190
159
143
183
198
166
161
182
175
146
175
171
157
151
199
144
200
182
140
181
151
199
151
172
154
166
140
179
195
169
185
193
144
178
199
141
166
143
146
147
171
185
142
148
186
172
188
146
154
195
154
149
199
148
199
166
149
169
156
191
140
159
199
144
163
177
157
152
152
198
163
166
175
180
177
148
198
164
176
150
160
148
172
192
187
161
155
188
180
159
197
140
183
148
193
186
190
141
192
149
150
192
197
163
168
176
146
167
176
164
176
193
199
160
174
141
187
167
140
189
173
159
185
172
190
184
157
187
165
179
179
194
168
173
163
158
146
189
182
187
188
197
165
171
146
183
157
178
152
143
157
182
148
179
192
178
165
172
176
168
165
193
169
192
148
141
199
189
158
142
173
162
150
178
191
189
192
195
171
169
184
194
194
163
193
197
165
147
173
163
172
142
160
195
144
170
180
157
160
185
167
150
152
167
170
174
145
183
172
168
154
140
156
183
142
187
191
176
161
159
183
175
167
143
181
190
175
174
149
151
199
154
147
148
168
181
148
165
189
178
195
172
197
182
145
140
172
187
157
154
198
177
181
181
200
183
174
140
200
169
166
189
200
190
181
175
179
146
177
150
191
198
184
179
149
183
147
177
162
141
198
194
191
188
150
186
153
143
199
184
155
193
151
200
162
187
192
172
177
153
170
157
165
153
170
198
179
161
192
148
198
196
180
167
171
151
197
165
164
198
177
196
161
200
185
166
171
173
159
195
142
149
149
169
155
156
156
152
160
182
171
146
149
183
178
177
169
165
179
146
166
149
177
145
140
140
183
181
152
159
147
158
184
172
185
154
152
153
143
163
148
145
169
143
181
191
197
162
193
140
145
149
199
200
146
180
155
181
178
142
153
190
161
157
186
144
147
166
171
171
199
163
174
192
150
161
192
159
193
181
178
190
153
171
153
153
144
143
188
177
155
145
144
142
172
190
194
192
151
156
194
168
153
182
143
182
154
140
183
151
153
140
152
148
188
186
159
174
177
175
142
193
197
159
154
148
140
195
196
178
198
194
149
147
168
167
149
165
146
193
184
153
182
187
192
166
166
196
175
145
152
188
147
158
178
149
200
186
175
173
199
168
144
171
171
177
168
186
157
165
199
166
181
190
149
184
161
149
166
184
148
187
152
198
179
148
197
164
158
147
178
163
150
180
145
147
170
191
196
146
189
172
192
163
155
183
196
174
168
147
155
171
167
176
186
179
142
169
185
192
177
167
192
177
194
190
147
183
185
168
160
192
148
156
168
146
187
159
142
194
176
169
159
182
167
177
190
166
199
179
147
157
162
163
165
163
159
161
169
161
148
168
175
151
167
193
199
141
168
175
163
193
169
190
177
184
145
152
164
159
158
193
178
188
191
186
155
190
145
140
167
161
142
190
142
141
166
166
163
176
143
182
145
147
190
183
143
189
148
180
198
170
146
181
186
163
165
153
172
144
189
192
142
167
175
190
181
158
166
149
150
166
151
151
176
141
144
151
141
189
192
156
154
150
153
164
152
145
149
156
193
161
185
173
144
150
153
175
181
158
194
160
161
182
165
191
184
187
157
193
197
158
150
178
149
194
181
188
190
198
145
152
179
189
168
179
152
160
179
148
192
158
146
176
189
142
172
144
141
174
182
143
146
177
182
173
197
172
200
170
176
142
158
156
154
174
168
155
143
157
162
177
190
154
148
148
199
182
177
153
186
159
196
148
166
187
155
151
169
150
150
178
163
189
167
143
147
164
144
151
167
179
141
152
198
196
149
183
200
195
144
143
194
195
166
157
169
143
147
170
146
171
171
154
174
197
166
189
163
181
149
193
191
181
164
142
191
142
200
199
142
186
168
161
168
188
199
179
162
188
196
164
153
143
151
140
176
167
181
145
170
198
200
148
188
156
197
193
181
170
145
171
153
150
159
185
156
143
147
147
148
146
162
185
172
191
182
179
141
190
191
169
196
187
199
181
165
160
149
197
162
148
170
155
170
167
197
168
150
141
166
163
178
142
156
168
153
147
193
176
146
200
191
159
184
149
186
153
152
194
165
145
155
162
173
164
160
192
142
178
194
148
178
144
157
154
177
158
175
171
148
174
169
149
157
185
154
158
144
176
182
187
187
179
178
157
163
196
172
192
148
143
145
164
173
151
148
153
200
166
181
200
199
147
150
156
166
184
182
200
185
161
163
179
143
156
198
177
141
167
154
161
162
189
159
157
152
148
187
160
144
155
159
166
178
154
158
175
172
164
170
147
178
167
177
145
196
169
198
153
190
192
177
160
173
167
194
197
151
162
178
144
152
185
163
140
166
199
187
184
165
159
157
145
189
161
190
171
164
168
144
175
196
147
185
148
176
188
187
140
177
195
200
145
150
192
141
156
193
143
171
193
183
199
193
144
177
151
176
173
150
150
147
178
150
198
187
169
192
161
175
191
177
187
182
198
160
187
174
178
170
169
197
172
169
172
149
168
184
157
194
145
173
194
156
170
159
182
167
160
143
161
158
146
159
187
151
141
183
148
150
140
183
147
196
159
198
163
160
199
172
145
172
182
141
162
198
191
173
191
156
188
164
172
149
192
178
170
169
163
147
190
148
194
150
165
195
164
153
154
177
192
149
145
185
198
173
193
169
143
146
141
171
166
181
166
166
146
140
186
166
196
195
148
144
200
143
144
185
194
179
143
156
148
182
147
168
191
172
148
163
196
170
177
147
192
196
158
160
188
166
198
191
161
165
160
174
194
156
168
153
196
167
152
166
169
188
196
163
162
153
159
161
144
183
180
168
186
161
188
174
152
166
140
198
177
187
170
192
152
150
175
193
177
141
185
143
167
176
142
162
148
153
173
152
153
193
178
192
199
199
150
154
186
189
161
190
189
141
194
140
161
150
173
149
144
153
196
186
155
167
186
181
189
155
189
151
141
153
142
145
158
152
146
172
170
200
169
141
183
140
175
140
159
161
156
181
180
176
180
177
192
148
178
187
149
183
149
160
170
156
169
181
153
174
158
162
184
191
147
142
146
193
173
158
190
174
155
174
187
162
157
193
181
164
191
162
172
146
154
159
174
151
161
148
149
194
171
200
150
190
172
163
155
162
147
169
157
167
144
140
188
180
156
142
169
160
149
184
198
183
170
155
173
191
174
176
144
191
159
192
187
151
150
144
161
176
190
148
172
156
160
169
165
157
160
155
144
145
148
140
140
159
170
199
160
177
176
156
158
143
179
199
179
146
171
140
159
177
166
148
148
171
151
140
161
180
162
157
141
156
156
166
185
166
179
162
151
199
144
170
181
174
176
186
186
192
154
182
145
177
197
189
172
152
146
199
153
174
188
147
160
179
186
143
189
149
163
195
158
191
192
188
143
173
158
159
182
149
164
181
193
191
140
189
175
146
175
154
192
190
193
183
197
189
169
146
181
188
183
175
141
197
179
200
153
180
146
159
160
162
161
178
164
199
192
177
159
188
192
176
195
191
147
174
156
184
187
194
188
140
156
141
180
176
141
178
198
191
174
153
177
197
164
188
159
167
174
196
192
155
185
171
194
157
140
171
190
182
154
171
187
191
159
175
162
172
155
194
164
145
189
199
191
176
146
168
180
157
177
177
158
162
154
161
146
158
185
151
162
193
150
184
197
145
192
141
145
178
150
188
143
158
148
169
165
140
173
179
159
177
194
168
157
170
158
195
181
145
140
186
175
155
166
143
178
185
157
151
199
198
197
191
182
197
162
197
152
198
149
168
183
179
152
191
153
162
184
150
195
186
151
154
144
161
188
187
184
184
150
147
177
147
153
186
194
179
183
165
141
144
165
164
156
197
190
172
153
140
190
179
140
140
162
165
191
158
156
155
157
169
191
200
200
147
183
192
183
178
176
145
190
148
156
177
169
167
196
150
181
174
145
188
152
188
174
142
171
175
180
143
200
151
194
185
200
147
166
180
190
148
168
190
153
194
166
169
159
146
198
164
174
179
152
147
195
178
165
171
151
141
187
179
143
180
169
176
184
191
153
191
188
191
152
164
171
163
149
154
162
156
168
181
172
179
183
154
173
148
161
155
194
195
166
180
197
194
176
147
175
195
143
177
194
199
200
198
149
192
200
171
180
178
183
140
177
191
188
184
165
157
180
160
162
196
196
172
155
151
151
142
180
198
180
157
142
179
146
146
166
154
159
154
186
140
141
153
170
152
144
190
151
189
200
175
152
149
191
164
169
150
150
195
175
170
185
159
153
182
142
171
146
200
171
171
178
167
148
143
182
140
173
199
153
140
168
159
180
167
195
181
152
152
156
160
140
171
172
184
145
190
166
198
197
185
193
179
150
166
164
196
166
159
155
167
199
153
185
171
174
157
163
156
141
180
187
143
198
200
151
194
197
169
175
177
142
157
168
142
140
167
193
174
141
151
151
156
184
167
150
161
151
151
159
149
185
182
167
183
189
141
164
161
144
175
177
159
168
151
172
184
150
164
158
198
140
176
146
184
178
176
155
157
194
192
173
140
175
194
176
153
190
147
176
179
164
161
157
190
162
194
186
159
144
159
197
187
148
164
168
141
158
193
197
182
140
166
172
142
163
167
193
152
179
176
185
179
162
192
163
185
175
166
156
183
160
168
157
179
200
186
145
159
161
200
165
192
158
196
178
173
144
189
168
182
151
174
165
146
157
185
185
199
170
175
169
159
196
148
185
196
142
173
150
162
175
156
187
162
184
162
182
150
194
174
153
196
177
146
185
188
184
166
143
181
180
176
168
193
144
144
146
171
190
178
149
198
154
182
194
163
192
163
186
174
141
159
185
186
164
174
171
176
185
181
197
163
176
176
163
141
173
191
192
143
170
179
171
164
188
199
167
193
166
173
151
198
148
178
167
180
196
161
141
169
187
192
156
152
147
156
164
151
185
154
176
161
149
192
184
186
194
155
141
176
189
189
193
195
197
178
154
180
191
200
156
152
167
149
164
179
149
159
177
164
148
152
143
185
143
178
145
192
187
141
169
176
156
148
187
146
196
141
154
198
144
160
179
151
158
183
172
193
197
157
170
167
165
174
150
148
146
185
181
159
187
186
157
148
165
194
187
158
149
147
173
142
170
155
172
174
199
172
179
180
187
147
155
183
148
152
140
197
175
175
155
157
171
185
142
188
167
173
191
164
199
147
171
198
164
163
177
143
187
176
190
158
198
140
192
188
199
144
173
160
140
198
146
146
198
151
155
186
155
153
145
173
145
172
158
191
177
161
181
182
171
186
171
177
176
140
140
166
175
190
166
186
150
187
146
188
151
144
141
187
186
166
175
162
166
184
199
171
149
157
198
154
172
155
143
197
165
141
166
150
195
151
159
176
175
174
168
163
154
161
146
145
197
183
147
163
149
184
178
178
143
169
187
185
161
186
166
141
158
168
174
179
151
179
177
153
179
183
191
149
170
154
189
186
187
168
162
158
194
146
175
182
150
169
152
179
161
182
194
191
149
162
170
173
165
166
179
145
181
170
151
180
146
162
167
165
165
172
145
181
193
141
140
180
161
164
167
200
190
193
187
176
161
141
184
197
173
172
191
147
167
144
185
178
197
197
168
166
146
155
192
175
148
172
143
154
191
167
177
158
175
144
196
164
161
158
197
161
144
185
192
164
170
188
197
182
187
181
198
176
194
154
195
152
195
195
145
149
186
199
147
166
173
142
159
158
146
157
161
180
159
152
179
190
153
140
172
144
200
200
162
170
180
151
158
195
141
161
176
197
188
171
171
148
193
147
189
195
174
177
187
142
149
191
153
173
164
197
159
195
148
165
149
197
189
197
152
198
157
168
163
164
157
163
191
186
160
155
156
155
140
161
174
143
172
144
162
194
185
197
162
179
164
188
176
158
144
164
180
185
148
166
143
200
145
164
170
164
148
199
160
175
166
156
155
146
153
177
160
150
196
146
193
153
192
174
198
198
199
173
165
189
152
192
141
194
142
192
178
151
185
181
195
194
180
193
197
164
173
175
162
150
160
193
154
142
171
183
168
172
184
169
146
152
198
152
185
176
171
146
196
160
162
162
159
196
191
183
171
189
159
176
142
164
181
173
200
186
151
141
178
164
175
173
179
187
164
194
177
170
199
191
149
152
177
165
186
181
154
169
170
141
172
153
175
148
199
151
192
149
159
174
185
180
163
167
197
184
144
154
189
146
140
160
196
183
173
176
197
197
176
170
182
166
179
158
195
198
172
188
190
173
157
145
154
189
146
168
186
197
188
182
198
188
158
171
150
163
188
165
196
155
150
190
189
180
161
191
190
156
174
193
149
158
199
151
170
179
146
175
143
200
181
151
190
183
143
170
142
164
168
193
183
157
176
185
166
179
190
180
195
160
157
148
157
145
191
166
174
186
177
189
155
172
145
192
187
197
161
160
155
160
190
140
169
166
191
142
149
160
198
175
151
158
142
173
146
195
190
178
148
171
194
163
143
167
191
166
150
182
192
144
148
195
185
147
171
170
158
182
148
196
174
162
141
175
195
183
193
152
161
173
176
163
171
154
162
181
158
168
172
147
190
155
143
161
156
152
186
145
161
193
186
184
175
156
170
162
196
171
157
180
189
140
151
199
174
154
174
162
183
141
189
194
198
170
150
141
169
152
186
159
156
140
173
192
185
164
141
173
158
141
173
183
140
177
166
162
186
179
196
195
159
148
155
168
189
161
149
165
188
146
178
150
197
195
176
147
186
163
175
176
142
184
176
158
171
176
172
199
170
172
163
157
140
146
169
142
152
184
198
160
166
140
164
195
167
178
188
184
152
153
198
189
167
142
197
144
185
149
194
189
188
160
171
171
172
199
145
167
197
152
163
186
163
148
140
182
191
191
189
182
185
159
191
200
153
145
198
185
187
171
142
165
165
158
191
142
148
153
171
164
172
142
199
190
172
176
143
197
171
187
141
180
143
169
194
192
154
185
194
145
150
192
155
143
181
144
156
155
149
184
162
193
159
148
174
145
153
165
197
182
189
186
177
167
170
164
166
151
147
147
140
190
173
145
188
176
156
160
192
159
181
175
147
194
189
175
155
166
145
143
144
200
170
198
171
147
142
140
163
193
170
147
181
177
184
199
192
172
141
161
140
187
156
172
146
151
199
144
192
198
150
146
148
157
200
155
175
180
196
153
191
158
190
169
173
164
162
167
195
140
187
183
167
175
177
149
145
184
188
151
199
179
166
194
175
183
196
141
160
162
200
177
170
145
140
191
183
153
168
174
140
180
142
150
145
200
186
163
198
171
166
166
169
196
174
190
151
166
152
196
175
180
157
174
149
179
184
175
180
154
173
186
168
181
169
149
175
180
182
155
146
180
194
195
173
199
142
193
182
198
169
198
167
178
170
153
197
172
166
154
180
147
151
177
166
175
181
180
174
192
170
185
191
193
164
144
150
150
176
188
197
158
144
155
199
153
197
193
172
174
199
199
190
199
171
196
175
146
167
156
192
183
175
175
173
180
193
195
149
187
142
160
167
155
154
152
156
189
198
167
151
164
149
188
155
164
170
153
155
150
171
185
141
178
168
188
192
161
161
159
188
168
152
165
189
183
151
157
185
175
141
141
173
150
175
155
151
200
198
188
157
172
191
144
159
187
169
176
181
196
200
192
182
169
170
140
193
184
151
161
188
168
165
187
182
181
174
163
155
151
180
141
164
186
194
168
179
179
174
160
197
159
198
179
181
193
168
160
149
183
158
168
175
180
155
187
181
156
180
148
179
172
141
142
164
189
144
158
140
185
144
183
167
186
177
191
171
170
199
165
153
177
170
160
151
177
177
153
141
177
184
181
159
143
181
146
181
145
194
148
144
167
198
140
176
169
200
199
178
183
168
144
171
140
164
149
196
140
166
182
166
198
185
169
145
166
189
144
187
191
154
186
141
189
158
183
186
174
153
200
154
167
180
174
196
152
146
152
140
187
187
173
197
162
169
155
140
198
162
170
143
145
164
163
179
183
197
141
191
149
172
157
194
152
179
148
140
161
193
182
159
154
155
176
149
175
190
169
172
159
160
198
186
155
152
185
192
182
147
191
159
176
141
148
174
146
200
173
181
164
198
166
181
173
192
188
168
167
166
145
179
174
153
145
185
190
146
155
148
166
151
173
189
158
140
180
155
169
182
171
180
156
192
190
149
192
196
159
140
163
180
173
154
156
198
180
185
197
144
156
173
195
160
160
183
148
151
168
146
176
189
144
177
179
172
176
182
197
144
170
164
161
192
189
157
162
166
154
176
150
173
163
192
183
174
159
173
195
162
155
144
150
199
189
186
152
146
188
146
179
143
152
184
171
153
167
146
142
180
172
178
190
160
181
200
191
171
160
161
148
152
159
141
164
194
143
156
162
147
177
151
188
146
157
197
196
182
198
175
143
141
172
147
195
157
145
178
198
170
146
193
195
140
158
160
169
159
195
145
161
162
179
141
176
197
143
176
172
163
162
170
184
148
185
143
153
152
186
147
163
175
172
181
160
147
176
147
165
153
157
185
200
174
174
199
200
140
148
152
152
176
158
188
172
185
163
190
159
172
173
185
183
184
158
140
174
145
183
187
193
167
193
160
185
163
168
154
153
188
163
162
165
183
143
188
141
152
141
152
179
195
162
150
189
199
151
192
197
155
196
156
200
171
193
181
168
146
188
163
150
150
198
151
176
184
157
177
152
200
198
158
159
189
186
199
192
182
159
170
166
166
167
183
194
195
188
165
150
155
182
169
167
190
170
148
156
161
176
155
193
195
179
193
155
142
168
191
160
142
175
153
197
140
185
174
150
166
143
173
146
160
192
145
187
200
180
145
190
199
200
151
142
145
180
176
200
159
194
175
163
156
161
187
182
187
145
163
143
156
178
189
154
160
150
145
150
173
182
146
149
158
191
163
184
199
156
164
180
178
192
186
143
156
147
193
176
177
173
193
173
142
168
166
155
155
172
198
182
155
141
149
198
176
198
194
145
195
141
151
189
171
151
154
184
147
176
154
151
183
145
185
173
155
195
189
148
178
176
149
190
198
160
183
187
180
150
199
147
189
152
173
159
178
161
163
177
182
187
140
177
163
147
189
169
146
143
165
144
195
184
200
164
185
174
151
174
174
198
171
157
158
157
167
146
184
154
147
164
169
147
175
186
198
157
186
151
189
192
199
140
187
182
174
145
173
149
158
167
199
182
166
200
143
146
169
153
145
145
172
142
151
153
183
196
198
172
161
147
184
166
165
154
175
185
144
177
159
166
160
181
153
182
194
198
179
154
178
157
172
199
180
162
177
144
145
152
156
161
150
151
161
195
163
164
164
165
150
171
187
153
153
183
148
151
187
158
168
141
192
172
175
200
166
162
185
153
152
185
184
176
189
172
158
178
168
183
164
189
198
166
186
169
173
182
167
194
141
184
155
187
154
159
170
197
197
188
165
162
190
178
187
154
186
195
189
190
200
187
198
154
188
146
141
155
166
152
140
164
199
156
174
164
175
149
156
159
146
177
182
186
176
160
157
185
171
175
158
174
172
155
176
178
194
197
191
187
162
190
171
182
192
145
144
185
140
199
170
153
154
147
189
149
200
163
183
169
159
196
179
159
194
148
156
166
169
145
195
176
189
170
153
189
141
144
173
141
194
156
162
172
162
157
162
174
146
145
165
172
180
156
160
181
196
172
143
193
196
159
144
200
174
180
148
198
164
155
193
180
168
160
166
185
158
148
178
170
152
177
198
191
186
163
157
200
190
146
162
147
175
159
166
176
171
193
193
194
145
142
187
191
153
151
160
156
163
162
195
145
141
155
195
169
146
178
188
172
145
171
171
173
153
176
140
196
183
170
162
173
167
173
152
157
186
195
175
155
151
199
193
177
172
195
183
170
142
166
193
147
153
196
194
190
178
150
151
170
169
193
155
141
188
159
191
156
161
171
151
150
180
195
145
140
184
198
176
177
151
197
198
160
196
166
156
178
164
178
175
177
186
158
185
177
181
166
159
167
150
155
160
177
164
141
172
182
150
199
197
183
158
166
185
182
195
168
141
168
197
199
168
188
186
177
168
180
160
146
144
184
140
156
186
184
164
196
151
162
177
148
187
154
167
172
180
180
174
155
156
173
141
193
186
141
198
189
194
200
158
143
157
187
200
142
171
174
182
144
192
152
157
167
153
143
194
158
156
193
140
145
194
187
149
188
180
157
188
198
160
160
177
158
165
196
157
143
146
157
176
196
181
198
159
170
171
174
172
156
163
193
190
184
185
178
185
164
190
157
150
160
197
163
165
200
195
161
147
189
148
165
150
152
153
172
181
154
197
143
172
199
151
153
179
186
165
156
191
193
148
157
142
187
197
187
169
187
147
183
143
195
170
174
177
145
154
165
167
150
147
168
191
145
194
192
198
190
168
172
196
177
192
152
184
154
148
188
171
184
188
164
198
189
183
174
156
196
173
171
178
173
165
161
142
165
174
152
141
195
195
198
152
174
186
181
148
174
172
191
191
144
177
199
171
187
146
140
190
171
156
191
198
142
164
142
177
181
163
172
140
179
162
197
188
161
157
169
198
171
147
182
180
190
157
143
187
190
140
199
182
140
189
194
174
160
198
165
192
161
148
164
141
170
180
140
175
180
189
148
172
150
141
182
195
167
198
185
176
160
191
157
175
167
144
177
185
155
140
170
159
141
143
160
175
141
180
189
198
175
141
164
197
151
173
170
157
143
172
151
185
150
159
154
166
186
183
194
142
200
192
186
178
148
148
195
145
198
183
174
150
156
160
156
176
180
194
187
156
186
141
140
163
151
148
159
186
178
161
142
144
170
181
170
191
190
160
148
157
167
170
144
173
165
160
194
141
144
167
179
154
177
170
183
167
161
157
181
191
182
150
182
154
145
190
174
174
171
183
175
145
150
166
167
167
149
155
188
157
155
191
198
154
178
193
186
176
200
182
141
174
168
155
168
157
173
194
156
141
163
161
167
167
171
154
141
195
189
191
154
174
143
187
153
169
163
186
193
183
145
151
161
160
190
200
143
197
198
174
192
159
179
193
172
153
169
152
200
145
191
180
176
156
184
170
170
187
198
185
140
145
172
154
170
161
160
196
174
143
169
192
193
176
190
154
155
171
199
195
190
174
187
157
150
168
194
190
196
160
200
194
170
151
144
182
161
189
174
157
187
148
167
162
154
151
175
187
158
180
178
148
181
153
181
189
200
182
177
147
150
140
163
180
177
154
187
167
163
144
190
182
180
152
171
145
153
194
193
177
171
193
143
173
198
140
194
191
181
142
176
187
175
146
151
143
194
149
192
147
189
150
185
144
149
140
170
196
200
200
165
172
162
173
181
173
192
165
195
171
185
143
185
170
154
193
190
157
162
166
145
169
157
166
146
170
197
191
193
182
167
185
164
190
185
148
185
186
192
180
167
175
195
158
141
144
167
152
192
164
175
149
178
154
144
183
174
142
181
164
191
168
197
158
192
190
153
183
152
194
178
191
151
156
167
147
151
158
177
200
182
176
190
170
155
150
145
156
194
200
187
158
176
182
197
149
200
168
177
143
193
198
158
172
152
187
143
140
158
199
163
197
162
179
197
189
157
181
188
188
185
186
159
195
185
194
162
155
157
172
145
177
199
148
169
162
144
161
163
198
193
152
190
149
181
184
166
153
182
153
163
173
147
149
142
161
189
158
179
157
168
177
176
187
164
196
191
162
163
178
158
194
182
197
159
177
181
168
196
158
198
169
142
144
162
175
164
160
167
196
193
192
159
154
190
143
155
184
147
188
192
144
193
172
177
164
154
140
186
171
159
186
155
177
195
191
189
159
152
192
152
172
150
199
172
164
165
182
190
200
171
153
162
166
181
182
181
153
169
150
177
150
196
163
149
174
167
157
141
197
183
185
151
143
175
195
195
146
182
147
164
187
141
184
149
148
160
196
174
157
187
195
146
178
167
142
187
196
178
157
178
183
189
151
160
148
140
192
153
141
190
190
140
184
142
173
193
148
144
170
198
148
179
169
196
146
147
189
166
162
157
169
186
148
163
200
171
189
180
200
195
154
160
194
155
163
170
195
159
165
172
194
166
154
164
160
147
193
163
161
188
162
168
153
196
173
180
197
154
163
174
193
183
179
140
168
195
150
176
195
169
188
192
175
172
191
177
190
178
146
184
153
165
160
179
178
144
183
149
182
151
178
179
177
147
169
160
165
187
179
145
148
167
179
177
151
194
169
186
187
158
159
165
176
194
165
162
196
153
178
148
148
171
141
182
161
176
155
157
191
159
158
148
199
191
199
151
196
184
168
158
156
149
142
148
187
165
169
174
142
197
153
146
191
182
156
145
160
192
197
166
160
157
187
178
180
185
149
157
194
179
171
179
155
156
188
162
144
181
187
199
164
152
157
163
148
153
199
166
168
185
171
177
176
170
162
198
149
162
150
170
140
159
190
150
159
172
165
146
190
174
187
197
142
195
169
140
177
143
174
183
170
146
186
200
199
153
164
180
194
155
165
141
195
197
146
179
153
170
190
189
167
200
193
181
142
151
149
185
185
186
160
174
166
172
178
160
163
145
168
151
190
152
156
185
147
160
189
177
192
176
184
146
180
164
198
143
146
195
173
143
149
160
187
144
185
197
171
150
198
159
177
171
195
170
198
153
164
184
187
176
189
181
150
177
186
186
141
154
162
157
198
185
145
188
142
173
194
191
155
175
168
175
181
149
185
141
142
141
171
164
190
145
146
148
140
160
158
197
184
155
184
171
195
145
165
170
172
192
174
185
146
164
150
160
154
187
157
142
188
150
192
142
185
153
143
148
194
165
167
173
192
196
197
184
164
186
191
153
198
194
146
151
164
197
158
161
189
152
160
147
175
186
175
174
155
166
184
153
163
152
198
163
181
165
176
182
159
168
184
189
145
163
189
186
146
180
166
161
188
154
167
151
162
174
140
149
167
180
143
159
183
146
140
150
162
149
188
140
194
199
141
194
163
146
166
185
151
140
148
150
169
188
149
195
170
155
186
170
145
168
160
156
170
156
145
141
161
184
162
144
147
156
189
192
150
140
161
143
183
191
175
167
197
171
169
181
140
151
182
145
170
143
147
157
147
151
159
151
169
179
165
160
163
192
150
198
162
147
158
168
195
146
171
198
191
156
155
156
186
197
140
156
149
190
195
155
144
173
182
149
154
155
191
182
142
149
160
191
161
172
168
152
142
142
141
198
157
191
171
147
194
169
185
178
144
197
199
198
197
165
165
181
140
192
161
182
157
155
158
150
200
160
140
200
186
180
197
174
179
152
164
146
191
140
182
185
188
181
151
140
166
192
169
190
199
176
184
154
178
171
191
173
195
176
171
161
199
198
190
150
197
180
182
196
158
167
194
195
140
151
188
191
145
141
165
182
158
164
146
152
144
189
196
166
187
192
168
144
186
141
166
173
197
144
171
160
157
174
196
161
147
184
148
157
192
189
142
182
145
157
192
196
190
159
162
185
147
161
168
180
184
147
152
171
158
189
162
177
197
196
170
167
151
143
180
157
162
168
168
142
151
159
175
160
162
150
141
151
141
172
197
154
178
186
144
185
161
168
152
189
141
153
168
159
189
194
171
147
156
152
145
200
157
190
145
176
171
169
162
151
150
172
162
174
169
168
191
163
169
179
145
182
195
177
192
177
173
150
169
140
153
176
193
173
174
172
150
156
168
161
156
183
144
163
200
147
183
180
175
147
174
193
185
148
143
157
148
168
149
146
194
188
178
148
185
158
167
192
153
171
152
163
160
190
167
150
200
157
196
162
151
165
155
160
191
150
143
159
178
185
170
190
158
166
168
162
194
151
163
152
153
142
168
192
177
189
193
176
151
164
184
192
199
170
170
196
194
174
171
167
182
170
140
146
171
158
173
154
172
167
170
150
140
185
164
170
182
142
168
194
161
187
142
151
181
196
169
153
145
157
148
147
141
182
200
182
158
161
142
148
183
148
149
140
196
194
184
147
195
188
140
189
198
146
189
186
147
156
146
154
190
140
176
192
159
197
183
165
166
158
172
197
193
149
175
198
158
188
162
188
167
181
143
162
154
166
176
172
164
170
196
188
198
197
196
171
172
188
194
151
159
151
188
152
159
186
149
182
192
161
140
179
160
168
160
150
152
157
152
168
153
200
164
163
192
179
167
191
157
148
149
191
148
171
188
176
200
159
148
187
186
194
174
161
145
157
161
186
187
149
192
180
200
171
187
160
149
182
170
164
197
173
140
163
176
168
151
153
190
140
185
153
148
188
143
162
186
199
146
180
169
169
163
169
167
163
150
197
167
147
149
143
178
161
184
178
189
185
175
189
159
166
184
195
145
184
154
188
151
163
147
153
196
193
149
179
159
163
167
182
165
200
157
170
149
168
173
144
157
160
200
189
191
150
167
161
176
165
175
191
185
176
173
150
163
176
181
145
183
187
147
171
198
150
179
142
189
189
147
197
190
154
185
168
173
180
158
148
191
193
198
197
164
164
174
146
151
178
171
199
171
161
143
140
149
148
176
156
146
185
143
186
164
197
158
184
141
161
179
187
198
180
195
182
163
199
195
187
175
197
158
157
191
148
170
180
182
185
178
167
153
184
178
198
148
186
148
149
149
178
145
156
177
156
163
157
197
143
178
186
196
149
159
179
177
178
163
168
149
175
155
158
177
158
196
199
155
197
197
179
170
146
166
191
160
166
142
180
171
185
147
184
173
165
150
196
174
167
161
200
163
181
177
184
147
161
185
167
192
193
156
152
148
163
184
191
183
185
163
162
176
160
142
173
148
197
140
184
182
158
145
141
144
141
166
145
163
158
162
200
153
194
169
164
158
147
153
166
147
160
146
143
178
175
191
140
166
174
190
187
188
186
144
196
172
183
185
151
192
197
173
186
162
143
182
145
178
141
149
177
174
174
151
175
161
194
159
179
186
191
165
163
152
156
191
155
142
172
151
181
187
147
192
145
163
183
185
177
195
186
184
192
179
194
174
196
188
142
150
141
182
171
154
181
167
181
177
145
196
156
187
182
198
197
151
166
145
199
174
165
186
190
188
160
152
192
162
169
156
196
140
149
174
149
192
179
158
154
172
194
167
175
156
162
186
200
149
172
159
150
192
200
172
173
176
183
190
142
181
164
142
177
171
156
147
158
187
168
188
155
149
191
178
170
142
189
164
193
156
153
180
180
145
160
157
190
169
153
188
159
196
161
149
179
180
189
153
140
156
159
162
190
167
188
159
166
189
149
185
141
181
190
176
154
185
193
191
144
162
185
146
140
182
197
193
169
163
141
163
177
198
160
154
175
154
180
185
197
165
171
169
175
176
183
169
182
147
175
155
196
174
189
145
161
164
189
161
150
143
155
165
187
155
175
198
162
156
167
147
199
189
178
178
181
177
160
175
183
145
184
141
156
200
189
142
194
150
177
183
171
169
143
147
151
172
177
184
186
165
192
169
183
142
151
163
197
159
154
142
160
170
195
186
174
192
152
199
143
187
157
171
196
146
169
192
160
160
156
173
198
169
145
149
149
154
171
168
197
152
190
199
163
186
175
183
154
195
174
142
188
164
160
176
147
149
159
164
179
144
149
176
154
168
187
189
141
182
166
192
158
176
182
172
192
188
198
184
181
191
141
190
159
190
168
167
175
147
155
157
156
196
150
175
168
157
197
170
185
152
157
177
181
196
150
188
193
143
163
199
181
177
170
150
144
175
152
174
165
176
173
191
186
151
142
180
196
197
181
165
163
153
146
182
151
140
157
200
181
172
195
160
105
123
115
102
115
113
102
140
100
127
147
128
142
144
127
138
146
115
115
135
145
150
127
111
129
129
141
119
144
138
122
132
112
124
127
105
102
145
101
132
102
121
121
107
138
144
109
116
108
108
138
106
132
101
130
102
116
143
136
146
149
101
111
105
108
119
140
137
140
149
140
111
143
116
141
135
131
140
138
127
138
147
103
101
114
101
112
142
117
135
138
115
105
114
131
142
126
129
143
126
146
149
111
128
114
115
115
115
126
148
142
107
147
111
119
137
121
121
137
127
122
150
111
108
117
103
132
128
108
103
110
119
133
130
150
107
116
143
100
118
144
106
146
129
120
124
126
114
119
110
104
129
124
120
137
117
142
102
115
120
138
101
124
133
128
100
106
147
119
105
107
150
100
141
133
149
103
121
119
137
122
111
116
136
149
101
122
116
150
131
137
124
107
119
106
119
115
107
103
130
147
112
109
114
120
140
116
134
105
147
144
111
107
142
108
116
115
145
126
121
148
144
128
126
115
127
122
149
103
119
123
101
115
121
139
114
146
126
138
128
122
110
134
110
135
103
113
100
105
106
134
114
122
131
126
127
133
136
142
115
124
127
143
100
138
130
126
119
128
114
109
107
120
143
123
103
118
124
130
137
116
112
136
114
139
106
120
123
123
144
121
106
112
100
129
123
100
117
132
135
147
118
116
123
118
128
150
140
113
106
109
141
141
137
121
126
125
141
105
126
123
109
138
148
139
135
104
129
130
119
121
149
100
115
123
130
131
136
104
130
122
105
144
133
135
123
104
118
107
131
105
125
136
114
129
104
136
135
127
128
129
110
105
111
132
105
118
131
105
147
106
103
113
119
120
112
139
118
117
132
145
132
127
125
111
118
107
114
148
143
104
146
127
129
149
123
103
110
103
109
125
112
118
114
146
130
127
105
133
119
127
135
101
125
131
147
108
106
125
106
138
116
139
107
129
125
124
113
119
119
131
140
127
102
130
125
145
104
106
126
125
144
109
111
126
114
112
126
139
134
141
138
135
138
143
109
150
119
149
120
112
117
125
103
120
131
144
110
108
131
124
119
140
120
131
147
115
121
124
100
105
128
115
107
111
142
141
132
117
145
104
130
143
108
109
130
102
111
103
138
104
148
117
138
100
145
149
102
109
142
130
106
144
122
130
122
107
122
122
131
130
130
129
111
116
134
117
144
140
101
141
149
105
126
136
119
107
103
137
101
130
116
129
137
103
118
114
101
105
140
114
137
136
149
123
118
138
100
104
124
144
100
115
142
149
137
107
107
132
124
109
108
135
132
108
112
109
101
138
106
100
103
124
143
117
149
103
136
133
126
100
127
131
126
110
144
106
142
123
120
136
108
148
124
123
109
142
110
111
144
143
105
105
103
116
107
126
143
139
139
132
132
106
105
137
129
138
100
107
106
119
131
128
138
112
122
114
102
148
123
149
102
140
138
139
120
109
126
115
102
116
121
147
141
134
118
101
120
147
148
149
123
136
109
148
131
150
144
117
128
130
123
112
133
144
142
102
108
140
101
126
143
137
125
138
128
115
131
149
108
144
121
145
139
139
134
114
108
121
142
150
137
145
133
132
146
125
136
125
126
133
101
124
130
114
143
115
104
107
137
102
119
114
127
129
120
100
102
146
128
111
111
125
136
135
111
113
132
143
150
109
103
103
100
137
137
109
105
112
143
115
135
146
139
121
131
139
142
138
138
147
101
127
110
143
105
123
125
141
133
105
150
121
121
132
144
141
138
110
110
118
126
103
117
100
104
103
127
131
138
140
105
148
135
123
119
114
115
127
100
108
122
104
102
115
149
120
118
102
107
121
101
108
127
138
129
140
141
121
146
150
106
146
117
126
127
106
144
148
139
117
120
100
137
128
140
121
102
101
110
116
109
139
114
125
110
130
110
101
127
147
104
127
130
145
136
110
108
132
105
140
137
143
147
114
120
149
134
144
140
150
113
119
134
145
147
145
102
147
120
138
132
122
139
142
132
100
137
120
149
148
103
126
143
110
111
104
137
143
147
118
135
123
111
111
127
113
150
135
147
139
107
132
150
143
118
101
116
112
117
104
150
118
105
119
137
107
136
139
129
101
145
141
129
130
135
120
148
116
119
127
100
136
123
133
112
127
114
139
115
112
137
120
102
118
117
102
131
136
147
130
114
108
108
119
132
102
103
121
140
117
124
129
105
148
150
127
123
101
111
129
113
123
118
142
113
148
104
129
141
108
139
138
102
149
112
149
121
142
103
104
127
108
144
100
115
109
115
138
138
100
146
129
136
147
133
124
140
126
115
110
103
107
108
148
130
144
142
143
121
106
108
147
100
142
142
149
144
100
143
124
123
116
118
145
109
117
109
122
146
104
114
141
105
128
144
144
134
142
137
129
101
104
137
133
111
124
119
106
131
108
113
138
139
122
133
137
115
131
142
101
111
106
131
115
143
146
102
132
126
122
148
127
135
118
102
100
120
128
130
134
143
127
103
137
140
137
111
103
113
118
133
119
149
111
122
130
137
105
150
107
102
121
139
148
145
101
145
141
132
106
105
100
146
133
109
141
106
112
126
141
136
147
146
147
118
141
107
142
150
107
102
101
149
112
131
115
112
136
132
117
139
131
108
117
118
105
139
136
148
133
145
140
142
109
107
138
114
119
131
106
112
106
115
115
134
109
118
115
130
112
123
122
145
144
108
124
128
108
119
135
126
127
129
105
108
147
104
125
139
131
132
110
108
145
127
117
133
129
119
120
104
138
117
123
100
127
123
124
124
146
126
140
135
107
139
144
124
103
128
119
121
146
137
100
133
150
110
118
104
142
136
107
140
103
101
111
119
144
135
128
126
112
126
110
147
117
101
139
137
144
128
142
142
131
105
130
107
118
117
141
114
118
115
104
138
121
148
134
129
117
134
149
150
136
132
108
112
140
109
101
110
104
130
150
130
124
112
109
117
114
127
115
135
128
114
114
109
148
109
148
132
125
144
114
120
111
139
125
106
136
150
108
117
129
102
126
119
111
141
145
118
102
108
143
125
143
133
104
130
126
103
115
145
121
136
149
137
135
131
135
126
119
118
138
110
112
138
139
123
100
148
100
115
150
120
114
140
116
108
102
116
122
106
118
149
106
127
117
144
149
103
134
135
136
124
141
142
103
107
105
145
100
115
138
122
103
141
145
117
131
112
144
143
142
139
135
126
118
106
107
119
111
106
116
133
150
109
142
108
150
136
112
107
134
146
141
105
149
110
107
129
141
110
129
140
149
111
120
126
105
106
133
137
138
122
102
146
142
119
122
111
111
121
114
116
139
114
145
137
107
143
118
102
146
140
101
111
141
114
114
115
129
116
113
114
122
141
101
124
115
127
125
103
103
149
149
145
112
123
136
106
121
105
115
122
106
139
107
138
149
120
103
108
146
101
115
119
146
100
117
125
105
129
109
148
130
125
122
126
130
140
118
100
105
131
114
127
100
103
138
137
120
143
125
116
145
137
136
110
138
148
146
110
101
139
133
149
142
108
141
115
129
146
128
131
101
116
104
137
117
107
142
122
121
121
131
115
140
111
142
149
119
131
111
107
148
112
148
100
141
131
107
138
107
141
150
106
134
132
126
110
141
148
144
120
103
107
144
110
141
113
115
146
105
148
128
116
102
139
115
107
111
144
142
134
107
116
143
134
137
121
141
136
147
124
103
119
139
129
127
149
133
149
148
104
131
124
141
107
141
115
115
116
111
109
120
128
128
116
102
134
111
119
127
100
141
145
107
120
140
124
139
148
101
117
108
128
145
145
140
121
120
111
124
133
123
133
112
106
109
146
100
136
130
137
145
137
136
121
101
135
131
134
126
150
127
130
126
116
146
111
118
132
147
143
129
137
121
116
125
143
120
102
144
139
139
120
150
127
109
111
104
107
120
120
112
120
144
148
134
106
117
135
116
110
140
116
124
136
135
134
133
103
108
128
103
101
142
127
110
116
119
145
147
150
102
102
113
140
114
147
104
128
124
108
106
147
136
146
128
100
137
129
146
128
117
114
140
149
127
141
137
146
112
112
124
127
115
132
128
144
100
123
104
124
110
147
131
142
142
121
125
102
125
149
140
107
101
106
103
129
149
110
118
129
139
147
136
126
147
132
106
110
129
124
129
142
107
103
113
103
105
131
139
109
129
133
144
102
145
121
100
143
131
114
127
124
120
123
120
141
125
150
115
115
136
150
141
105
121
138
100
106
139
149
133
119
112
115
116
148
148
102
133
141
126
150
121
136
111
133
130
139
129
146
109
108
148
126
130
144
105
116
143
142
148
133
125
140
149
125
111
146
114
149
110
103
116
136
124
129
149
115
125
127
110
100
101
136
139
148
138
119
129
143
136
122
125
140
120
109
114
132
149
105
116
119
133
133
150
128
118
121
120
147
145
141
138
134
105
111
138
147
118
137
143
116
134
105
121
117
140
119
139
108
123
136
149
120
115
117
111
120
145
122
110
107
144
139
100
132
110
129
102
103
116
130
136
141
131
118
101
120
135
119
136
117
132
119
142
115
144
104
140
101
125
116
100
107
146
139
128
104
128
124
134
135
111
103
111
122
149
107
134
107
134
105
100
138
125
127
139
120
137
109
101
104
123
111
121
116
149
143
110
107
137
101
106
143
101
124
106
112
108
137
135
100
112
140
110
119
103
149
131
140
125
124
149
135
140
107
124
124
102
118
116
123
138
143
124
148
147
124
129
133
120
132
102
106
125
123
138
123
126
145
104
145
123
103
150
116
147
132
116
112
140
105
143
149
147
148
103
137
111
146
121
113
117
103
149
129
118
132
125
111
122
145
129
143
106
142
119
117
100
139
112
149
123
150
126
145
104
109
145
134
116
129
104
140
103
113
125
110
117
103
137
112
117
105
143
107
126
128
103
138
122
110
117
118
126
127
138
149
119
123
119
115
101
113
127
104
142
121
145
149
128
110
104
117
133
144
118
103
121
142
105
110
108
113
111
132
111
110
130
135
150
122
102
125
142
105
105
117
113
124
125
136
106
110
124
137
128
149
123
150
111
104
123
137
127
134
108
147
123
142
138
100
135
139
125
113
112
142
104
107
136
150
103
122
128
134
119
114
108
108
122
100
118
146
125
129
104
127
147
108
145
103
132
126
118
123
133
136
103
110
116
124
109
117
113
131
140
119
107
100
136
138
146
109
128
121
110
144
113
130
121
109
120
135
127
119
105
145
126
115
150
122
127
147
118
110
147
124
110
145
132
102
129
133
136
149
131
127
139
123
128
119
107
144
124
109
139
123
125
114
128
112
120
114
115
136
128
103
119
137
103
100
123
118
108
143
132
120
128
109
114
147
139
118
146
124
142
105
128
114
126
115
116
148
100
106
148
116
124
107
148
145
135
103
122
114
111
140
145
111
134
125
115
121
101
109
114
129
107
149
112
140
120
119
140
146
142
130
144
128
148
102
135
129
101
140
113
142
127
142
113
138
125
124
127
128
118
128
124
129
132
119
112
117
136
139
112
102
147
147
113
141
134
146
132
132
133
141
116
125
126
131
124
125
119
124
149
130
108
109
141
118
146
144
101
124
102
132
119
140
121
113
125
120
109
133
144
128
129
136
135
128
110
115
137
108
127
114
128
123
113
142
132
131
121
119
130
147
138
121
143
122
144
122
117
150
112
132
129
126
142
148
149
101
108
144
136
122
137
103
139
135
110
102
143
109
110
143
131
130
137
138
127
104
118
106
118
129
101
107
121
120
107
128
100
139
108
147
118
130
102
114
142
121
142
120
128
132
149
105
129
123
100
111
113
138
150
139
127
125
127
137
101
138
136
121
108
118
123
112
144
142
117
127
140
137
141
117
122
117
113
149
123
130
134
129
117
111
103
109
124
115
131
128
126
108
103
135
125
142
110
123
128
104
103
122
141
133
137
137
100
115
122
109
105
141
130
115
119
133
135
141
100
116
148
108
118
123
102
143
139
149
104
114
104
145
145
113
106
121
133
121
111
146
145
125
148
126
137
135
131
130
129
148
125
107
131
144
139
147
149
120
130
143
123
142
117
117
149
136
118
108
118
117
131
106
125
113
103
100
145
138
116
150
132
103
123
148
126
120
144
100
114
106
115
144
137
143
109
105
142
130
107
149
123
124
102
120
111
142
102
146
106
129
145
113
124
111
134
134
118
139
141
149
120
113
150
105
121
133
110
149
129
115
136
114
133
129
147
102
134
138
131
147
130
106
121
120
128
103
109
125
113
121
117
135
110
114
111
136
135
118
143
146
105
125
106
143
101
140
125
100
106
141
108
146
144
120
123
104
143
117
121
104
130
100
115
116
149
120
149
149
136
126
114
142
129
126
147
111
116
138
131
117
122
102
124
105
121
126
120
103
127
124
107
123
126
123
141
145
109
113
113
127
129
145
115
137
129
143
139
121
139
132
130
144
137
145
122
141
144
142
110
131
107
148
142
112
127
115
138
104
133
128
144
119
118
106
109
101
121
123
109
126
128
137
132
143
134
114
119
136
105
114
134
150
103
141
112
112
117
109
113
148
129
129
123
108
115
108
103
117
129
112
130
110
132
104
131
139
133
137
144
124
128
114
142
148
113
136
132
148
118
105
146
145
143
102
131
132
138
123
137
123
121
131
105
137
139
138
110
117
125
149
111
109
111
122
113
110
108
134
132
108
141
142
106
101
140
147
116
110
128
126
123
112
150
122
107
147
124
137
131
103
110
104
120
130
133
117
119
146
133
138
104
139
146
136
133
138
142
106
121
133
113
132
106
132
100
130
133
131
109
114
115
145
103
105
110
148
147
104
141
140
130
118
138
129
131
128
140
146
141
122
148
105
120
128
107
112
129
104
135
102
127
114
121
125
118
110
112
143
135
138
119
104
115
129
147
104
125
137
108
147
124
132
101
148
120
115
148
149
125
133
137
107
119
127
117
145
127
142
111
109
105
150
112
129
136
113
119
111
128
109
139
123
126
131
126
103
106
146
142
106
119
141
138
150
106
150
144
107
115
120
110
150
149
110
150
144
121
118
133
107
143
124
107
102
133
137
114
107
133
139
147
112
108
110
122
146
125
109
117
119
138
120
117
121
138
146
128
136
102
136
117
133
147
130
129
109
102
116
112
137
129
127
102
117
135
109
145
123
121
131
111
114
127
134
141
133
138
146
121
109
113
125
110
114
134
133
136
103
128
136
127
137
124
104
147
114
107
123
139
144
130
100
122
109
145
104
116
125
150
118
138
124
139
111
150
114
139
102
128
126
117
101
148
116
108
145
133
105
140
132
129
147
143
119
124
101
137
133
148
139
104
139
142
114
100
138
124
145
117
103
143
140
118
149
122
140
142
102
116
105
144
113
111
125
106
148
142
124
140
120
146
122
108
102
142
127
106
149
101
101
101
136
124
127
137
122
122
136
128
144
143
139
132
132
139
134
135
118
129
135
131
123
102
106
135
109
124
108
145
150
117
114
111
101
128
127
120
103
112
128
145
147
134
117
109
148
109
114
102
124
124
113
103
116
133
134
126
130
125
134
106
145
113
107
147
123
137
130
137
129
136
135
123
110
146
128
140
118
149
125
105
109
103
129
124
108
105
145
129
144
148
137
115
132
114
118
103
138
128
144
148
102
131
118
146
136
101
110
124
124
118
109
149
144
115
128
127
104
116
127
108
136
146
133
133
143
134
133
102
105
130
138
146
132
104
144
144
139
149
120
121
127
101
102
100
126
144
144
120
111
130
105
105
103
124
120
135
102
110
118
108
130
134
129
137
107
118
120
130
110
111
150
111
129
144
142
104
119
109
113
131
113
128
146
148
123
105
114
126
123
149
116
144
115
136
103
144
116
137
103
112
107
123
114
129
102
101
116
124
136
119
125
102
102
137
146
143
150
120
124
120
143
145
135
144
136
117
103
122
144
101
125
140
144
123
150
105
148
142
109
130
110
119
127
150
120
129
146
135
145
127
125
113
129
118
149
129
134
128
147
122
123
125
106
104
109
137
114
112
143
115
110
113
123
121
132
124
127
134
111
103
117
116
104
139
101
122
148
108
121
107
109
147
101
135
105
131
141
119
135
123
117
123
129
117
125
136
116
140
110
149
109
141
125
112
130
120
142
115
105
120
121
134
125
144
125
111
124
110
142
133
140
148
121
100
107
147
129
150
136
116
108
149
113
131
101
113
138
140
145
131
100
141
139
134
143
130
122
149
116
113
112
116
141
110
123
130
130
146
147
116
134
101
148
136
101
136
126
130
113
108
118
111
124
131
133
125
143
140
101
137
109
131
147
102
140
133
121
125
104
106
132
132
119
141
107
103
121
114
141
130
129
147
106
146
111
132
129
115
126
113
117
148
105
102
141
113
146
146
136
115
142
134
131
105
117
120
147
138
140
115
113
139
145
113
131
114
129
112
116
136
104
132
118
101
115
126
117
126
111
122
115
133
140
102
141
117
105
110
111
147
134
123
121
146
130
104
118
109
119
130
135
133
136
114
141
126
127
145
140
138
131
126
124
126
103
127
118
111
123
133
135
110
139
130
105
111
117
149
117
122
116
109
140
117
140
143
122
121
104
100
122
104
131
141
118
118
101
150
142
135
149
104
130
120
126
130
146
135
136
105
121
127
130
133
117
116
133
137
141
131
144
105
134
102
149
135
103
118
110
136
139
135
118
101
109
110
148
145
129
146
135
112
105
127
142
133
147
147
145
128
134
127
138
114
149
117
133
130
101
134
138
117
132
125
146
150
128
100
115
140
147
101
138
148
140
104
150
110
109
127
127
135
127
130
149
108
128
122
121
138
108
109
115
119
120
136
147
143
133
142
150
136
102
149
129
147
104
102
120
110
127
142
143
127
121
110
138
104
145
115
126
120
130
132
120
103
145
109
121
100
103
105
115
147
123
147
132
101
132
137
119
129
145
124
123
113
131
147
103
133
124
126
118
114
107
125
135
122
149
101
117
140
106
141
119
137
108
115
111
106
113
143
148
115
111
132
113
136
136
104
148
134
120
142
116
140
120
129
118
125
105
135
150
130
109
146
142
122
113
118
142
133
140
101
133
142
117
121
147
129
107
112
130
146
110
140
125
142
111
144
111
108
115
124
150
136
107
104
102
148
138
121
131
109
123
143
118
133
145
112
140
139
100
127
103
148
100
136
106
108
137
109
103
145
141
107
121
125
145
142
132
116
144
111
106
126
138
140
140
148
102
134
149
126
117
137
104
107
130
138
102
114
101
150
136
105
116
130
127
106
142
113
116
142
122
112
108
143
124
148
105
121
100
150
130
119
133
117
129
115
120
142
106
150
110
130
111
105
144
150
109
113
112
145
129
105
143
113
142
124
144
111
122
146
106
147
148
127
105
126
112
119
115
107
141
111
149
146
121
122
112
123
134
141
121
101
144
137
144
142
137
101
134
117
114
123
144
100
118
131
113
137
150
147
111
124
118
121
127
109
103
116
101
143
123
150
125
135
149
126
145
136
147
113
148
112
107
106
146
105
127
130
125
141
134
111
145
113
115
133
129
116
112
113
139
125
140
127
107
137
138
145
104
115
125
127
116
120
106
136
102
105
131
124
128
105
120
144
131
142
114
147
129
100
146
100
117
150
108
147
147
110
122
118
100
121
118
150
120
145
112
135
136
114
129
114
134
149
105
110
131
135
142
105
134
128
145
103
131
127
129
122
148
109
132
100
124
118
109
135
132
103
108
105
146
116
128
126
101
134
105
109
117
124
107
104
120
134
134
150
104
118
140
109
116
118
100
118
111
143
103
130
148
116
140
110
107
121
120
121
123
119
123
135
148
107
127
128
120
132
144
143
144
100
121
146
110
145
113
123
119
122
140
124
139
127
130
121
117
134
146
129
142
145
143
106
104
134
140
150
126
131
128
123
146
118
112
148
121
105
107
138
105
146
122
134
106
103
140
134
108
125
122
122
102
146
115
148
105
146
138
140
131
122
123
140
112
131
108
143
127
127
139
113
117
127
124
107
100
124
129
107
124
142
105
109
148
143
136
107
115
130
143
108
115
115
146
148
120
108
138
145
140
115
110
122
112
133
134
134
105
138
115
130
106
146
114
118
118
120
129
125
138
107
134
128
111
104
119
132
117
140
121
136
144
107
145
144
118
130
105
108
110
116
147
115
113
134
124
128
109
130
106
117
135
113
110
144
143
131
138
102
131
131
108
115
121
101
110
138
145
146
147
119
103
102
144
133
105
149
107
114
129
146
122
108
115
124
126
115
147
144
150
108
126
112
101
102
105
138
128
128
127
102
114
138
103
144
133
130
116
112
105
138
100
108
122
105
143
110
127
115
137
117
136
130
144
143
101
107
116
136
146
150
113
113
144
145
113
110
125
125
108
126
147
131
131
150
134
142
120
122
146
146
102
114
115
113
147
125
149
140
137
135
120
141
125
149
138
120
121
114
121
113
114
124
113
119
100
129
137
120
104
128
122
124
106
147
118
136
147
104
101
149
125
107
126
114
101
142
112
121
100
137
112
137
122
108
108
122
121
131
139
114
123
124
121
114
134
115
143
134
107
115
138
101
117
134
107
102
137
117
133
108
112
142
114
131
129
124
125
104
142
142
110
132
137
148
141
139
135
101
124
110
107
113
150
131
109
122
119
124
136
130
101
125
110
109
100
123
134
132
139
119
142
115
104
130
116
106
129
142
141
106
126
115
125
121
103
132
149
113
133
113
145
126
133
128
129
141
145
109
113
124
121
121
121
123
131
138
133
117
131
102
104
133
123
117
143
136
125
129
107
110
149
138
124
119
115
148
146
103
141
120
102
138
133
113
146
136
111
114
110
130
133
137
134
108
105
108
143
108
115
131
121
135
137
149
115
136
124
125
124
149
104
122
106
141
118
130
113
142
148
136
147
138
132
100
128
146
102
123
114
129
104
115
127
142
145
107
115
150
106
123
109
120
145
142
147
105
117
137
138
150
144
121
149
122
149
138
130
134
144
106
139
105
127
132
143
106
123
106
127
135
136
122
130
108
135
106
147
136
130
132
111
125
108
124
128
140
147
124
134
121
146
133
136
131
135
140
106
119
128
127
100
142
137
109
120
145
136
147
126
111
112
129
124
111
148
102
142
136
122
109
104
141
149
147
128
113
139
130
136
133
130
136
106
127
110
106
140
124
100
144
107
125
135
143
111
111
105
108
118
103
137
102
107
116
125
124
101
150
105
114
140
107
145
119
112
143
104
135
117
110
112
118
138
123
103
112
113
150
141
107
150
148
107
128
123
106
108
107
129
128
112
144
110
120
113
105
149
102
128
148
131
113
115
110
143
129
118
117
113
101
145
113
124
107
119
105
145
142
126
144
140
137
129
124
101
113
142
150
105
100
115
109
112
143
116
124
115
126
118
118
134
150
124
128
122
102
127
131
111
118
125
133
132
115
113
132
125
136
106
139
111
141
136
123
105
121
125
118
145
148
138
103
113
102
135
133
102
125
141
138
128
109
100
112
147
143
128
101
109
150
119
121
149
141
128
141
106
118
134
106
110
100
130
146
116
122
133
146
124
101
140
121
146
134
140
107
149
143
120
143
118
125
112
143
150
118
119
148
125
132
148
108
123
120
147
132
123
115
145
123
117
142
138
150
143
115
101
129
130
124
131
126
109
132
132
102
148
104
108
130
109
139
121
130
124
111
104
130
128
150
111
112
108
113
119
104
107
108
129
149
150
143
106
146
106
111
100
113
124
120
109
110
116
131
147
124
147
116
148
134
146
114
122
117
116
116
123
126
113
100
126
112
130
140
121
133
106
128
136
137
143
117
114
121
139
104
122
131
137
149
135
138
143
109
100
106
107
137
102
101
143
142
141
117
124
109
128
115
104
149
141
145
144
140
142
121
139
117
105
145
115
105
102
146
137
149
150
129
149
106
113
131
108
123
112
119
100
119
140
128
104
145
103
132
119
132
113
145
128
104
109
135
119
107
100
150
137
114
129
105
117
134
106
128
150
101
104
123
124
150
121
150
113
134
110
125
142
128
139
106
108
105
140
122
113
136
103
134
136
133
118
135
129
116
147
131
120
133
144
121
119
145
128
108
133
111
127
129
144
143
150
120
140
119
130
137
125
136
122
113
116
124
131
150
101
134
116
116
127
122
101
149
142
136
110
120
127
123
113
109
102
102
142
116
102
135
133
148
114
117
115
141
148
116
144
112
118
113
101
134
147
103
107
140
101
136
142
115
143
128
129
110
115
139
130
114
132
133
117
105
119
101
125
114
135
144
126
134
114
119
138
109
100
142
119
137
118
149
134
150
103
128
128
149
127
134
135
139
113
100
138
131
127
112
110
121
132
104
136
134
122
114
127
145
116
143
113
109
103
140
102
112
149
140
120
102
115
124
102
106
116
119
147
111
126
137
110
149
103
125
135
101
112
121
104
142
129
121
103
135
104
148
116
103
112
125
139
130
143
123
117
115
149
146
147
127
114
132
150
122
121
117
100
142
141
132
118
119
107
117
117
119
147
107
101
110
112
149
129
117
110
116
103
138
104
138
109
106
126
132
103
150
144
129
109
128
146
144
131
126
124
138
123
141
134
118
134
148
147
112
120
143
139
119
139
142
148
117
109
104
118
113
127
115
127
101
114
134
123
133
120
104
129
123
148
121
105
119
144
101
118
121
119
126
123
101
124
111
134
114
106
119
116
121
142
120
115
138
113
128
105
146
113
144
141
115
145
110
121
131
150
136
128
126
130
125
109
134
111
150
111
140
140
104
123
102
118
105
115
150
145
121
109
118
103
109
135
121
141
107
126
120
106
143
126
115
102
107
102
121
144
127
125
144
110
148
139
118
134
131
127
101
147
148
125
132
127
117
134
110
150
140
121
107
143
126
131
118
131
100
122
105
100
116
141
128
116
104
143
147
107
105
130
147
114
127
118
114
114
128
139
124
111
102
117
116
122
115
104
127
102
137
147
139
109
121
140
112
144
116
110
109
131
109
104
118
103
112
144
140
128
141
114
100
125
110
114
110
123
101
103
131
125
108
109
116
130
111
123
134
134
110
118
114
100
132
129
131
101
112
103
123
138
102
115
138
118
107
114
116
131
107
149
149
100
118
139
112
108
113
111
108
106
110
135
125
103
100
114
143
144
131
118
145
144
143
140
112
120
137
108
147
130
135
127
137
135
102
141
121
136
145
134
115
112
129
121
146
117
113
117
102
150
105
108
121
102
130
129
118
126
100
106
142
115
117
121
135
136
139
134
126
113
135
132
112
118
138
122
126
150
147
139
102
133
131
122
118
136
122
111
116
121
147
131
101
111
112
103
102
149
146
101
104
131
120
111
118
111
109
111
142
137
103
124
119
126
142
126
124
112
112
123
147
111
148
107
132
126
127
115
120
111
115
110
126
105
112
123
142
101
102
134
137
131
130
121
141
102
124
101
135
105
100
123
148
123
114
144
126
129
113
119
138
117
142
134
147
123
102
121
142
102
114
100
148
103
100
125
145
145
134
123
149
114
106
110
122
129
114
129
139
123
135
102
125
141
130
141
113
119
107
134
125
145
137
122
138
148
121
147
123
103
129
105
121
120
129
100
111
141
132
101
102
129
120
127
127
135
150
101
143
117
131
121
124
144
104
103
106
113
148
124
131
135
148
110
109
141
130
121
130
135
110
132
149
140
121
108
129
135
122
127
140
100
114
103
121
143
130
131
144
107
106
100
123
124
102
102
102
122
140
134
114
117
130
125
128
130
140
147
113
126
149
137
130
120
149
106
123
142
129
111
104
104
140
124
104
132
130
103
102
114
101
139
140
118
119
140
112
113
118
102
123
133
102
114
142
107
110
143
119
149
122
125
105
117
147
142
133
113
121
132
137
126
122
128
113
126
133
127
116
137
127
130
138
111
137
148
121
128
103
140
118
116
112
150
135
107
110
112
111
130
130
109
107
129
136
131
143
132
103
105
129
107
137
129
116
111
117
115
123
138
144
106
122
102
124
106
123
113
121
141
112
108
100
128
126
142
117
132
128
137
145
140
112
143
109
103
120
104
141
129
116
125
113
115
121
119
109
100
111
148
150
147
140
136
110
141
109
117
118
145
134
113
121
129
114
110
130
142
146
121
119
131
126
140
146
123
137
146
149
125
115
136
122
145
144
117
116
131
112
128
121
117
104
134
119
112
140
119
129
146
105
123
122
129
128
104
109
118
148
139
110
143
114
132
135
128
103
134
130
101
119
141
115
105
109
130
143
120
121
141
120
142
109
105
141
113
100
130
127
146
122
134
141
112
120
131
110
130
112
138
108
129
150
129
121
147
113
145
127
121
121
142
110
112
104
142
126
100
102
100
135
129
111
107
103
127
117
113
105
150
103
100
146
107
149
100
109
123
117
134
104
102
149
112
110
128
121
134
111
127
112
134
133
139
115
116
123
103
145
130
149
104
125
100
144
103
139
120
139
116
106
141
141
102
142
139
102
108
136
116
100
127
109
130
126
145
136
119
142
144
149
119
132
138
144
113
102
130
127
113
147
129
114
121
144
132
119
122
148
150
145
129
138
147
103
150
126
107
136
142
139
106
107
142
117
141
131
103
103
109
135
125
102
137
122
110
121
108
134
131
145
120
144
127
129
113
150
133
149
121
131
120
122
107
128
100
132
125
136
143
106
143
132
102
138
139
101
149
109
146
130
107
115
137
131
131
135
136
109
124
125
139
106
141
107
115
132
145
113
124
123
113
132
133
126
105
149
117
132
144
128
145
149
139
116
127
137
112
143
149
102
125
120
113
123
144
139
127
142
145
119
113
129
108
119
138
123
148
114
111
148
110
107
115
116
119
117
144
137
148
141
124
106
123
129
111
121
122
130
139
115
141
103
145
150
137
118
110
121
139
113
125
107
116
103
138
128
136
139
122
115
130
113
107
107
104
128
142
119
111
145
138
143
118
139
109
117
131
119
115
136
106
117
143
137
136
105
108
113
141
127
147
131
100
115
125
119
103
119
112
123
148
112
150
143
109
106
106
128
142
103
147
117
142
119
135
102
115
143
142
121
124
144
133
116
143
150
107
115
111
141
128
142
106
149
106
107
113
127
122
139
144
141
120
122
103
119
113
101
102
137
129
138
101
112
146
120
136
141
136
104
142
116
100
136
108
103
108
114
150
139
137
142
110
125
148
104
142
150
134
113
108
134
144
110
119
131
134
140
102
108
114
130
104
117
101
115
136
138
123
131
129
134
114
125
140
140
133
111
138
123
149
111
131
119
140
130
131
145
123
147
114
103
105
121
143
121
111
105
119
105
116
148
125
106
128
120
146
133
100
141
106
104
125
142
108
126
147
141
113
104
101
123
146
100
115
132
103
102
120
105
114
136
123
146
103
146
132
130
146
122
122
112
112
147
120
114
125
120
146
102
108
139
135
147
130
138
100
126
134
142
113
121
102
102
105
120
138
140
109
120
143
129
145
147
132
134
145
148
129
101
125
145
149
138
114
105
136
139
115
150
100
150
134
126
122
113
140
146
112
115
124
117
128
100
125
112
128
109
129
142
134
111
149
142
107
148
135
116
110
122
113
104
131
135
145
116
147
132
128
105
139
122
106
142
130
116
139
145
110
107
108
148
110
105
141
143
120
126
123
144
101
107
114
124
123
103
149
108
140
132
134
102
133
105
130
129
131
110
138
141
121
127
111
138
133
127
143
147
137
139
122
102
129
125
114
109
127
128
110
128
105
126
111
131
137
109
149
127
103
123
144
109
126
134
137
127
117
105
131
114
135
138
137
109
112
146
150
116
101
108
131
148
127
122
142
149
108
129
140
139
145
121
131
106
129
117
137
121
115
100
136
146
136
131
129
111
116
120
124
123
116
123
103
136
110
143
136
121
100
101
109
137
130
124
103
127
142
143
117
107
147
113
120
141
126
105
130
121
107
135
135
107
146
109
123
114
147
136
116
103
100
123
145
127
132
146
102
146
106
100
107
133
115
136
131
140
112
103
139
131
130
126
122
139
142
101
119
136
143
101
146
127
130
147
108
108
142
115
114
106
100
120
113
143
140
128
141
104
127
140
116
127
134
140
107
148
100
117
147
132
121
137
104
149
135
135
130
124
105
121
109
128
108
118
108
134
139
137
134
111
125
148
128
131
133
148
112
104
144
121
109
135
130
120
118
125
114
149
114
149
108
128
121
146
131
124
144
122
106
145
134
145
147
102
142
124
109
107
136
117
137
120
125
106
126
141
133
135
101
132
119
126
123
140
100
137
118
101
149
115
121
109
122
109
103
139
121
123
125
107
142
148
109
130
108
120
123
140
139
136
146
111
131
128
139
122
143
113
109
136
126
133
144
136
104
128
103
142
100
106
127
126
130
115
141
123
146
109
134
147
149
102
101
121
126
117
124
131
145
140
116
148
127
132
146
132
140
136
123
146
102
120
109
128
108
105
106
128
132
138
117
102
135
108
119
134
139
138
142
128
112
147
121
106
141
124
126
101
140
108
119
122
137
117
102
131
109
101
146
108
103
128
143
135
113
123
143
126
136
106
106
149
122
129
120
127
109
150
140
121
107
127
111
123
125
115
135
123
134
105
106
139
134
123
138
134
104
106
126
140
121
119
139
130
111
125
122
103
118
128
112
107
149
112
136
122
148
139
120
104
126
128
133
116
121
106
136
136
133
128
100
115
148
135
111
140
113
109
146
148
129
122
107
109
100
124
109
103
116
143
126
140
138
118
126
141
118
121
140
111
143
102
142
111
138
105
117
149
100
125
104
118
113
143
143
148
118
115
147
105
126
131
140
146
120
118
149
101
128
105
145
150
117
145
141
120
139
123
107
123
105
123
105
123
102
143
133
104
146
115
114
128
125
106
137
142
103
145
105
146
112
123
117
134
114
122
114
130
144
147
127
135
114
137
145
143
101
116
141
129
116
133
105
126
122
104
126
150
132
109
120
116
148
139
147
138
114
132
101
150
121
143
137
118
141
147
131
101
148
141
127
102
147
147
133
148
106
122
120
113
131
106
150
120
113
107
137
126
129
137
104
127
150
132
118
118
126
103
139
102
146
108
146
135
106
138
140
117
100
129
129
124
141
146
110
105
133
139
140
113
142
132
103
142
150
150
136
138
141
112
139
147
126
115
103
106
127
101
107
124
114
106
142
150
144
147
111
127
121
130
133
149
139
106
121
107
122
106
106
103
139
126
186
142
191
197
161
148
190
159
143
190
155
198
186
189
174
187
188
165
161
144
148
161
164
183
146
163
197
176
158
180
199
157
171
177
146
189
166
191
185
195
181
156
162
166
144
170
193
198
186
154
161
142
184
187
170
190
174
142
140
150
192
163
164
168
162
166
200
167
198
146
178
199
196
183
194
185
146
182
146
200
161
152
180
181
169
170
200
197
158
197
155
190
198
163
167
149
196
170
143
168
157
143
185
157
171
193
185
159
147
148
150
179
186
194
184
189
169
149
146
196
175
182
186
146
168
192
192
158
169
186
158
165
159
191
160
172
177
148
194
149
172
162
174
160
179
162
140
154
145
178
195
181
182
152
172
179
168
171
178
168
151
160
160
186
157
161
158
144
200
153
163
142
156
151
168
179
179
178
153
168
188
151
198
154
196
157
167
177
161
144
153
169
144
161
196
178
195
154
142
168
160
155
194
179
157
176
194
165
143
190
166
179
157
160
176
164
168
185
163
175
143
188
153
146
184
150
174
154
196
182
172
169
182
177
159
169
160
152
169
161
199
177
165
152
164
142
152
147
174
196
200
188
173
177
179
164
142
195
156
152
145
169
192
146
194
169
146
162
185
162
146
168
178
165
195
188
199
174
141
154
177
177
167
153
162
149
177
151
171
167
161
197
187
192
181
161
153
194
181
189
187
151
165
164
145
156
170
195
173
197
184
140
156
178
146
150
182
172
181
198
173
197
171
155
184
173
152
183
189
174
169
192
180
168
169
194
159
146
194
184
165
184
199
155
190
198
199
150
145
194
170
148
172
176
196
154
177
190
166
146
166
160
160
143
161
149
177
164
177
171
147
183
141
173
172
197
172
198
147
186
196
191
145
191
180
190
173
144
176
186
165
173
159
166
142
183
145
189
170
167
142
177
155
161
194
142
145
169
140
180
198
188
185
175
179
174
184
147
167
199
195
140
142
159
191
151
168
156
156
185
174
147
181
186
180
196
200
167
142
184
173
159
162
195
198
187
187
187
180
143
166
181
146
166
200
185
169
165
148
147
180
143
196
188
189
157
142
190
167
179
198
154
140
140
188
144
166
162
160
161
186
181
177
171
186
194
186
183
183
182
200
155
179
153
175
170
173
143
142
175
197
183
180
177
148
170
144
178
187
147
180
183
194
169
159
190
173
183
164
170
153
145
179
185
176
188
186
167
192
196
167
146
156
147
155
198
164
158
161
153
165
188
165
154
175
192
194
142
180
140
196
177
186
179
141
182
181
182
185
196
183
149
148
166
171
161
190
161
180
188
187
164
143
165
187
195
187
176
197
194
199
190
165
191
165
165
163
153
185
155
170
173
189
184
170
153
182
157
193
179
147
170
194
189
142
143
173
159
161
153
158
168
157
182
155
147
199
164
178
189
156
150
165
198
168
178
177
157
178
185
180
197
141
184
154
164
174
168
199
158
185
171
173
175
164
199
172
194
200
190
150
195
186
161
196
185
184
198
140
147
173
198
199
184
199
143
185
149
155
185
153
168
148
164
167
178
154
153
198
161
163
163
142
173
146
144
162
187
146
196
145
153
200
157
146
177
172
154
187
164
183
165
144
172
173
170
167
193
180
187
173
182
189
198
163
166
155
177
168
197
163
196
150
183
149
184
151
168
185
152
163
165
170
165
155
177
181
187
169
157
190
156
153
183
148
146
168
151
149
199
158
200
181
167
151
186
176
183
171
174
197
150
151
194
144
151
170
157
187
192
190
197
177
147
144
161
144
147
191
179
181
148
191
150
148
187
192
187
176
176
174
191
162
198
159
148
158
144
174
171
145
183
142
171
194
151
153
156
191
186
156
180
198
154
193
187
184
183
185
144
196
186
186
148
153
175
147
141
180
189
170
164
159
169
150
190
140
169
193
192
196
191
172
191
182
164
173
161
162
157
189
143
184
196
198
192
150
177
192
164
145
182
181
192
182
155
143
160
178
177
169
187
191
151
199
199
140
184
159
199
162
160
176
170
167
168
189
158
184
158
145
188
180
178
194
146
143
182
174
169
176
190
171
161
140
162
164
198
140
164
172
156
158
186
145
142
176
190
186
173
199
163
151
149
192
193
176
141
184
166
146
156
153
168
141
155
184
161
151
180
140
165
164
155
146
148
143
157
154
194
195
198
195
150
179
198
177
178
142
152
143
189
176
170
150
200
189
196
149
156
140
177
180
159
173
147
168
192
164
153
151
164
168
158
161
140
143
167
193
160
163
152
200
195
192
152
188
182
183
189
163
169
181
149
163
160
142
195
178
164
178
157
140
163
149
166
168
173
166
152
149
193
188
158
161
148
192
200
183
172
154
185
181
186
173
166
140
185
196
184
166
163
162
184
145
196
160
183
189
176
193
190
168
173
190
155
193
148
171
171
142
156
159
166
172
172
163
152
168
185
158
157
189
178
161
186
189
160
177
185
141
181
172
197
157
180
164
194
154
154
140
171
144
147
168
140
151
171
158
152
195
158
193
194
159
153
200
182
151
147
189
142
197
144
159
167
182
150
144
180
188
148
153
155
151
198
140
186
189
154
164
165
196
166
140
173
166
143
179
144
153
158
196
145
167
142
164
187
199
193
158
185
143
147
198
189
167
157
195
198
142
196
181
192
184
191
158
180
177
140
181
191
151
166
170
143
184
200
181
179
147
181
171
165
154
182
182
153
173
160
158
183
164
173
150
163
141
192
184
199
157
156
182
167
140
198
164
146
160
191
148
200
172
157
163
195
156
176
152
183
144
142
141
195
200
194
187
195
170
155
145
188
174
153
141
191
168
154
163
163
170
195
151
196
160
197
145
153
148
149
171
197
174
164
174
166
200
189
150
170
148
152
160
189
189
185
152
176
157
149
178
167
159
164
175
150
152
196
171
141
166
155
189
143
171
172
146
157
174
200
160
157
198
167
197
195
142
184
182
196
167
147
185
169
163
170
170
171
145
187
163
142
148
168
175
200
162
190
142
193
164
151
156
195
192
189
148
178
146
170
183
178
148
186
183
197
192
163
167
184
167
157
184
170
153
192
193
163
165
164
164
171
193
166
157
196
188
148
175
197
193
193
145
152
184
142
171
196
157
179
143
163
169
162
195
166
190
141
184
194
181
160
151
187
179
178
169
168
181
146
159
147
188
177
169
175
188
195
180
148
147
172
170
159
178
182
142
185
166
170
174
141
187
194
197
155
198
147
186
167
164
140
180
159
192
152
165
157
146
180
149
162
160
180
159
191
151
144
146
151
192
191
197
166
172
142
193
146
169
175
154
175
194
198
142
159
194
140
189
157
160
179
180
179
143
183
180
179
158
176
167
152
141
189
162
180
192
195
187
143
173
183
182
189
168
162
197
174
141
153
157
183
194
175
199
197
180
164
172
172
190
183
187
172
170
155
144
169
154
142
185
148
167
187
143
146
164
185
195
178
177
178
195
199
183
160
179
173
159
174
148
180
190
195
182
190
200
150
154
170
162
147
177
191
169
174
178
145
176
171
155
151
170
162
189
167
200
171
144
140
146
160
183
199
190
164
196
191
172
153
142
166
186
162
149
141
171
141
141
166
176
179
152
198
166
173
148
155
177
154
166
178
198
183
181
172
181
154
169
195
174
195
141
190
151
150
149
166
158
186
167
193
183
144
178
166
199
192
142
153
142
177
175
181
193
198
158
178
148
186
154
189
188
189
171
141
142
187
192
181
143
140
159
146
153
181
155
178
181
145
191
168
168
191
155
142
191
167
170
179
150
158
141
184
199
170
156
142
188
185
190
198
192
158
158
155
142
168
155
161
168
165
154
155
180
182
177
180
154
173
162
165
197
195
145
150
154
185
149
175
155
191
186
161
167
196
179
148
154
144
176
184
182
188
188
183
146
179
197
164
140
184
184
179
173
142
159
160
181
140
194
169
195
180
197
173
192
192
147
153
152
171
178
153
194
149
160
173
171
165
179
179
155
184
160
187
160
176
186
192
159
185
158
141
144
170
174
176
150
167
200
169
170
153
166
189
172
177
193
170
141
155
173
164
154
142
153
184
198
153
186
140
152
188
140
157
196
140
172
179
164
199
179
175
160
172
165
183
181
166
145
166
172
178
160
149
161
156
191
153
150
143
173
191
147
146
147
154
198
154
176
192
160
162
184
160
192
149
184
160
200
199
175
167
194
161
163
142
161
155
200
152
161
166
163
156
158
156
161
148
174
161
170
178
178
147
140
160
148
149
189
174
160
184
177
199
199
171
187
198
152
170
185
159
172
161
148
144
185
147
173
183
165
181
172
168
183
168
176
188
187
158
189
170
155
194
182
199
192
182
182
144
181
177
148
140
166
180
171
161
182
188
161
158
150
178
165
160
144
176
176
179
145
164
153
168
156
160
166
180
188
196
179
199
153
153
196
158
191
149
170
164
165
165
144
145
168
182
151
140
161
150
193
194
162
152
157
166
200
196
177
146
149
141
183
165
181
179
144
165
194
161
189
200
163
141
168
155
177
173
181
172
177
179
183
153
165
165
180
183
147
165
149
173
169
173
155
179
165
149
151
145
147
145
158
183
191
185
192
199
173
145
142
175
181
168
148
171
142
151
186
148
146
172
160
146
152
155
162
169
143
197
185
163
196
199
154
144
166
196
155
188
165
172
165
159
174
169
171
154
150
178
170
160
185
176
164
146
174
154
173
186
192
186
155
186
145
168
194
172
167
140
181
160
155
179
153
141
198
171
172
158
176
194
181
186
183
186
181
168
159
156
159
174
171
150
174
152
181
200
193
164
146
162
181
181
178
194
168
198
178
150
177
188
172
163
186
177
172
144
175
158
168
145
170
197
181
180
171
181
184
178
178
163
175
149
187
149
150
184
150
153
162
178
174
165
187
158
147
167
193
189
144
151
193
141
174
159
198
198
191
195
187
177
194
160
186
192
156
177
145
192
161
196
155
194
197
182
176
160
198
143
153
150
188
172
198
140
199
168
169
175
140
143
198
187
200
162
190
152
200
144
176
172
153
158
184
192
161
188
163
200
177
177
181
178
200
198
140
166
171
140
147
182
181
142
185
177
171
169
193
153
163
199
157
194
165
196
157
188
167
148
187
189
161
154
162
165
175
180
198
168
198
178
152
185
154
191
168
155
183
163
151
149
168
198
165
170
178
200
163
195
160
184
195
150
190
192
192
170
181
175
176
179
188
198
189
174
149
200
173
146
195
169
149
166
156
193
165
174
172
195
166
145
143
158
181
154
187
173
151
150
190
188
146
159
175
186
182
179
154
169
160
162
141
189
164
146
194
170
186
179
200
186
187
184
185
199
174
148
176
148
199
182
177
190
149
174
148
198
178
165
181
181
192
164
145
176
165
141
166
183
165
197
162
200
199
200
144
197
160
181
196
143
196
184
165
178
169
171
162
159
172
184
151
185
192
180
187
187
149
196
153
197
193
144
152
148
182
177
143
173
199
147
165
184
193
190
150
147
189
159
144
177
140
173
188
195
194
184
189
164
170
156
186
160
149
164
149
181
152
192
158
161
146
152
151
158
187
186
165
142
152
184
152
153
172
196
177
166
148
187
177
188
162
170
182
162
193
142
149
142
172
173
175
189
148
185
174
171
149
188
147
161
143
200
145
183
144
190
176
151
171
150
180
181
180
168
185
182
148
145
193
175
143
150
179
179
146
156
191
147
149
182
166
158
153
165
170
188
176
165
141
156
193
180
155
200
165
173
194
187
175
182
161
190
182
166
196
148
150
141
179
183
166
141
162
168
194
179
150
186
187
159
187
198
194
162
186
187
144
197
180
188
199
179
140
184
179
174
199
186
194
154
200
175
184
199
196
198
184
145
157
193
163
154
197
179
153
172
169
186
160
179
178
152
151
149
191
195
193
164
177
146
155
186
171
161
179
162
153
163
167
157
194
143
169
167
186
166
197
161
195
182
151
170
192
168
196
185
190
159
194
188
176
192
140
189
182
175
180
162
178
197
143
174
172
155
195
191
186
164
152
145
169
198
153
144
185
180
155
145
183
174
161
143
168
150
161
161
141
200
180
163
161
167
152
148
152
166
161
181
188
192
192
161
150
166
170
167
189
155
162
193
141
193
197
192
175
153
178
159
143
195
173
168
182
159
153
155
188
160
155
199
182
178
182
152
195
183
159
140
168
174
148
190
148
176
157
191
147
191
156
167
193
146
164
151
142
170
174
151
158
163
194
178
153
155
163
179
155
197
191
200
167
161
170
179
141
153
192
196
195
180
142
162
148
193
187
189
155
171
179
158
192
184
165
143
168
172
140
167
146
168
168
150
189
167
149
143
187
159
143
150
190
154
154
184
163
185
169
194
144
157
144
170
164
173
147
184
170
195
172
157
146
175
142
153
160
161
181
192
184
175
152
169
182
170
164
140
144
156
168
166
175
143
177
140
164
143
181
145
174
197
184
191
157
189
140
148
144
172
147
196
186
141
183
190
171
163
196
159
154
151
156
155
200
163
148
143
189
146
166
165
168
194
193
197
195
150
150
175
198
146
147
175
183
157
169
151
185
192
147
172
153
144
181
198
167
192
162
190
166
162
185
142
181
176
154
141
185
172
167
199
165
154
158
175
156
140
199
147
181
192
153
192
162
162
178
149
198
194
140
200
169
150
175
179
159
173
148
184
141
157
165
189
175
177
155
160
199
152
188
146
163
188
188
170
200
165
172
156
171
185
152
191
155
193
195
186
144
164
184
150
191
167
168
171
142
191
196
159
169
145
195
160
181
193
152
188
188
166
196
168
149
145
176
146
155
200
168
157
198
155
171
140
200
153
152
170
144
194
171
153
150
166
164
169
146
163
164
169
146
153
162
168
178
199
178
192
172
177
153
164
142
178
175
158
168
174
155
198
197
156
165
158
197
180
193
190
170
145
185
162
150
177
182
152
171
157
173
167
156
187
161
171
194
173
163
149
158
174
143
192
163
188
169
194
161
171
152
145
180
141
151
155
169
153
184
171
145
184
177
185
169
147
190
156
149
168
165
147
198
184
178
157
144
162
179
174
188
147
152
162
192
174
175
145
200
162
194
176
199
165
197
194
158
168
171
143
181
148
168
167
165
140
187
163
165
190
195
195
153
149
170
197
159
171
148
169
169
175
186
166
148
168
178
176
142
189
194
155
191
200
174
151
168
191
171
182
150
185
150
181
200
198
156
168
154
181
145
174
199
157
158
154
179
190
167
154
152
185
163
199
179
149
176
184
181
195
146
183
181
147
188
177
191
183
156
168
151
154
178
195
186
197
199
179
146
179
199
143
189
198
146
188
176
182
194
189
198
180
199
147
185
154
177
191
167
146
192
176
197
140
143
142
147
167
186
140
183
146
141
156
145
193
162
178
175
188
199
167
156
145
156
148
197
149
157
171
193
179
141
173
172
157
196
200
163
140
186
159
194
190
181
168
161
148
176
144
174
175
171
166
171
187
178
179
200
183
197
172
172
155
170
169
197
161
177
155
166
153
194
166
174
173
192
184
200
173
196
164
160
186
185
146
140
165
164
166
150
187
191
146
160
140
146
170
193
183
198
146
193
177
151
189
147
176
200
154
145
191
158
149
185
184
177
156
166
174
189
199
194
158
182
175
140
140
191
161
151
168
145
195
185
172
145
169
199
158
164
153
190
191
156
189
162
196
167
171
169
186
141
175
185
184
149
153
189
146
169
145
168
182
176
153
165
158
162
186
186
179
149
195
179
153
143
161
173
156
191
187
173
150
193
141
199
174
153
197
166
147
189
154
154
151
184
176
166
186
150
195
143
173
150
165
149
140
177
158
178
190
173
152
180
157
180
168
186
197
163
144
152
188
150
180
158
174
187
151
171
160
163
184
143
170
195
180
187
181
192
192
200
197
171
159
147
158
161
141
162
166
149
171
162
140
147
155
181
153
188
151
161
141
174
144
169
189
175
180
153
174
188
150
195
154
179
169
156
173
149
169
155
145
196
163
199
149
194
199
185
147
167
150
174
160
182
154
157
198
168
155
178
162
195
174
162
149
193
173
160
171
161
173
185
164
166
145
180
176
159
192
190
141
142
192
170
140
191
160
156
147
146
169
174
187
169
164
185
173
162
143
151
197
164
169
155
168
178
163
194
197
170
168
163
184
185
145
163
167
189
166
182
168
183
172
181
147
146
175
160
172
149
156
150
182
177
161
160
180
190
156
169
199
172
150
140
193
198
166
197
157
199
190
158
160
196
149
149
146
199
183
190
177
169
143
189
170
180
154
151
195
182
152
152
146
181
200
179
172
147
153
181
178
196
144
153
180
158
170
140
186
188
196
174
198
141
175
192
166
144
159
186
150
144
147
192
161
154
146
158
174
156
156
167
150
192
193
142
155
140
194
198
170
149
159
192
196
175
178
186
170
153
156
189
186
197
181
167
153
170
148
189
172
161
157
187
143
183
150
161
197
140
178
157
142
168
155
197
200
176
194
188
181
179
183
147
187
154
161
180
179
142
195
185
177
147
197
172
197
167
185
189
193
191
188
149
188
166
197
141
172
161
195
190
159
180
177
189
164
170
184
180
151
195
143
172
194
187
150
140
168
177
144
199
183
177
146
143
199
165
155
148
150
190
199
141
193
142
182
189
153
188
190
141
158
183
149
160
189
170
190
194
191
164
200
185
186
176
195
177
149
187
171
191
150
160
179
193
198
179
169
175
168
151
157
144
170
155
177
190
195
152
155
159
155
190
145
156
151
156
145
175
183
164
181
188
155
178
144
140
187
170
178
179
165
163
188
162
140
180
151
141
176
174
187
181
150
156
163
196
141
184
143
146
165
165
166
164
156
142
156
198
194
148
190
185
164
158
173
167
140
147
152
176
165
151
195
190
152
172
170
161
168
174
193
154
142
173
178
147
170
144
197
152
169
164
192
174
162
169
170
195
175
148
160
175
165
144
142
191
159
200
148
172
189
154
145
189
168
145
200
177
140
188
161
195
178
154
162
147
176
185
200
183
150
167
147
178
183
199
180
162
163
143
151
161
171
188
153
163
149
176
172
145
147
183
187
194
160
157
192
195
166
153
151
179
173
176
155
142
153
168
171
154
200
148
193
192
158
149
174
176
177
186
184
153
159
191
190
174
171
159
140
155
197
141
178
156
187
178
152
150
195
185
150
199
185
194
186
199
144
193
178
182
142
149
167
144
152
187
174
182
193
161
194
142
160
155
189
189
146
140
141
147
193
183
194
155
198
170
188
154
145
197
145
167
143
179
143
198
199
147
164
170
160
189
189
152
194
162
195
178
159
171
154
194
200
171
199
173
162
188
144
177
181
187
168
143
167
195
140
198
171
151
185
163
187
161
161
179
156
162
153
188
181
154
187
189
168
140
197
182
175
151
179
169
160
194
196
183
148
143
155
185
174
172
177
144
151
170
161
146
156
180
146
189
175
169
173
168
144
167
173
158
186
151
159
195
179
170
152
193
152
171
197
190
158
152
180
164
195
154
165
159
143
168
177
190
190
147
171
197
197
180
171
171
167
156
143
177
147
166
164
175
195
176
157
192
183
176
171
157
192
156
194
148
145
174
153
198
148
175
172
169
164
191
154
166
147
194
179
187
141
162
195
140
145
162
185
200
194
151
161
184
146
148
153
196
153
157
185
188
193
150
188
171
152
148
200
187
185
197
154
150
162
189
170
161
155
181
198
195
188
180
179
185
195
158
179
196
165
163
150
171
190
168
149
144
187
151
147
167
194
172
162
149
179
144
147
143
156
149
155
188
192
147
179
162
151
185
173
144
200
144
175
186
195
173
182
173
194
179
145
152
145
145
171
149
175
149
151
199
176
140
159
149
162
178
172
169
143
191
193
171
156
165
200
150
156
177
166
194
165
157
141
144
184
176
153
193
200
192
166
156
150
171
173
181
167
182
161
147
199
167
151
176
183
165
165
200
151
171
161
152
167
145
167
151
197
171
142
150
169
154
153
145
196
196
150
181
191
157
194
145
146
170
153
191
165
172
190
196
165
154
149
177
165
171
161
158
154
175
187
162
155
181
168
196
192
197
151
186
173
180
152
154
150
189
174
143
166
154
160
165
155
185
196
179
191
198
171
167
155
164
151
167
184
167
149
185
175
192
168
153
189
192
140
159
164
142
194
178
154
182
146
193
200
172
146
194
181
176
150
170
192
197
196
185
156
170
158
144
193
150
154
147
165
189
191
149
153
167
190
200
179
151
174
174
164
179
157
156
183
146
196
200
192
176
157
149
191
186
166
167
154
193
173
184
197
159
140
166
188
165
192
198
173
177
181
164
148
168
192
146
158
199
197
169
177
171
195
157
176
148
179
145
182
151
187
159
176
171
151
140
170
183
190
181
187
189
198
153
179
177
193
168
144
175
169
177
165
149
150
140
174
173
157
190
180
200
187
153
142
149
149
181
147
187
198
148
178
141
193
144
183
147
146
143
164
187
178
163
142
162
197
178
154
187
144
159
178
180
174
176
170
176
140
171
200
176
141
160
189
141
145
150
162
167
157
140
163
173
171
147
173
173
185
191
144
170
185
178
180
182
184
144
145
168
151
176
140
177
160
147
189
170
186
181
200
179
163
185
184
199
171
198
189
155
158
156
141
191
157
183
146
186
174
168
163
195
166
166
168
154
172
181
194
149
198
195
151
175
156
175
159
147
199
186
190
149
174
165
151
177
183
173
140
159
184
142
160
187
175
181
174
167
168
175
170
188
142
200
142
157
160
157
167
165
154
168
193
155
197
183
150
166
162
159
174
189
189
197
144
153
187
167
150
195
200
165
199
168
146
167
168
163
162
158
193
147
181
153
192
169
169
178
176
197
188
143
161
172
150
172
156
154
195
162
143
153
169
155
140
168
166
152
163
166
174
162
175
140
171
186
196
167
176
140
176
144
200
141
200
199
197
150
182
184
176
178
147
178
174
175
166
155
146
198
167
173
189
158
146
140
162
160
168
188
149
164
151
188
169
154
192
185
144
174
186
161
147
144
173
196
158
198
165
161
169
168
160
194
190
165
197
177
169
156
173
176
153
186
178
162
182
150
179
141
190
164
173
140
191
162
180
196
198
146
168
155
193
176
179
166
200
145
152
186
144
197
181
154
187
142
199
154
200
189
170
179
146
153
196
149
189
143
188
194
196
140
159
153
142
147
178
175
187
197
169
171
143
153
186
174
157
194
154
188
145
200
172
194
155
194
196
172
194
183
187
180
156
154
143
190
146
151
199
150
187
155
147
173
142
176
180
164
165
199
189
163
162
187
168
165
174
163
163
199
181
147
180
176
171
155
194
140
143
177
193
142
168
187
159
143
167
171
142
155
157
174
184
140
155
168
153
163
178
193
183
173
167
163
184
184
145
199
151
162
175
199
144
156
182
192
197
186
155
174
153
170
195
155
144
142
167
166
173
169
150
156
142
181
174
141
142
195
192
165
167
191
195
167
147
140
186
157
146
149
178
194
199
192
178
189
144
198
178
180
154
144
169
154
167
179
194
152
155
185
158
170
191
161
176
158
169
178
149
141
161
188
154
160
156
145
149
150
165
189
188
147
176
176
197
157
171
155
141
193
170
180
151
144
175
144
162
158
153
197
197
184
191
142
176
190
160
198
181
176
170
144
186
182
142
180
163
184
196
181
145
196
154
141
155
184
153
200
151
174
146
155
197
163
194
193
179
182
167
197
198
190
170
188
184
154
182
180
154
163
181
159
169
166
193
149
188
155
193
149
198
190
175
188
158
170
170
186
140
192
175
178
159
169
186
163
142
199
157
140
152
168
142
155
172
186
141
200
164
183
179
144
186
176
152
141
150
180
173
194
199
156
191
199
164
180
182
182
167
196
193
190
171
196
151
168
178
189
143
187
142
148
186
197
183
187
170
150
170
159
185
183
164
154
197
170
200
173
143
185
158
142
191
166
152
151
175
178
164
153
141
161
186
200
198
185
147
181
192
174
197
148
146
159
155
177
158
148
178
146
195
175
184
144
144
149
163
153
146
187
173
175
189
158
178
188
163
168
180
140
180
163
153
177
167
161
197
163
145
144
163
148
194
196
192
147
200
191
152
198
140
161
179
179
193
157
159
152
154
155
157
152
149
150
154
154
171
196
183
182
153
150
152
151
145
197
156
145
199
196
155
154
160
164
162
170
145
175
182
193
171
154
182
154
185
175
180
183
180
190
165
176
145
175
165
192
149
190
140
184
171
142
186
143
157
142
198
197
152
193
162
172
165
181
160
165
165
156
171
196
164
191
169
142
140
182
200
197
155
164
162
186
200
154
174
148
155
192
147
176
154
190
150
158
153
194
189
166
195
178
143
147
189
162
149
169
198
165
198
147
146
172
195
154
198
182
162
197
179
197
199
154
190
155
160
142
187
198
152
141
169
183
182
164
163
146
157
147
181
190
166
153
196
187
151
151
140
151
160
146
150
179
169
200
155
163
195
199
142
180
151
163
155
163
151
187
194
147
200
169
197
200
185
157
155
178
145
178
169
189
167
150
159
199
146
181
167
187
190
152
179
157
187
152
144
152
188
167
176
191
200
174
166
160
166
142
147
198
171
180
165
176
165
185
198
179
186
198
188
140
144
172
168
148
162
195
162
179
198
168
180
174
141
169
190
145
151
155
174
154
178
198
165
175
177
143
165
140
194
188
188
165
168
165
200
160
168
140
191
162
186
141
197
188
175
179
156
155
179
167
193
191
196
158
192
155
143
197
170
175
161
177
177
169
197
200
143
162
148
191
185
159
189
187
182
150
195
165
148
186
148
171
145
153
166
197
195
197
188
196
184
144
184
175
162
198
198
157
199
177
168
168
191
157
149
187
185
163
167
155
163
198
161
187
147
142
182
159
150
168
151
157
157
170
199
145
169
142
178
165
153
192
146
199
176
154
166
184
186
145
164
175
187
179
194
183
157
155
159
189
175
168
171
183
168
178
157
188
179
154
140
155
178
178
145
196
176
183
147
179
199
168
172
180
144
196
188
169
155
150
191
162
161
162
188
142
196
161
149
153
185
142
196
189
143
181
159
141
194
175
144
186
183
176
172
174
199
199
190
184
181
156
170
178
150
185
180
200
196
179
147
196
184
164
159
200
162
159
155
148
174
167
196
147
180
154
167
156
194
183
200
170
143
162
141
196
159
171
165
166
188
152
153
187
147
150
182
172
148
169
185
179
159
175
154
149
193
182
165
163
190
193
169
158
155
150
178
142
142
163
152
191
179
200
155
174
178
152
166
193
182
150
185
183
149
170
140
144
170
198
186
164
178
177
146
147
155
166
185
185
188
153
171
172
162
143
198
144
159
157
200
157
175
170
147
162
163
196
146
153
146
196
161
163
177
149
147
142
195
164
149
140
141
173
187
185
186
171
186
172
192
144
199
156
179
183
175
150
159
180
160
146
199
198
148
155
173
194
159
158
164
179
140
200
162
145
192
181
200
196
172
144
182
178
160
179
175
168
165
186
165
173
145
179
140
178
164
170
144
192
189
150
197
185
174
143
188
175
155
164
147
169
145
199
183
187
151
161
183
173
173
156
165
171
183
142
150
163
171
166
154
160
140
163
162
188
179
195
147
154
195
171
149
184
156
151
144
171
193
191
176
200
170
148
171
190
165
181
140
192
189
142
179
140
144
157
180
193
173
158
195
189
177
190
194
164
143
175
195
145
165
146
196
193
159
148
188
146
146
174
180
144
157
145
192
157
186
170
165
189
149
191
184
148
153
143
165
161
166
166
169
184
181
164
196
151
182
188
172
178
176
165
180
185
174
143
140
142
190
158
174
149
155
190
197
159
160
199
171
183
197
189
187
175
173
156
147
174
144
187
188
190
182
179
170
157
164
160
145
170
179
170
176
143
183
196
150
173
195
195
170
167
141
200
172
149
190
196
189
140
177
192
153
165
193
147
184
156
165
143
152
183
155
156
153
143
180
162
171
158
156
190
153
180
160
196
147
176
163
160
192
179
173
195
164
148
170
142
150
192
188
165
164
144
142
150
181
191
145
148
193
163
199
170
153
181
179
174
173
140
189
183
140
145
163
159
145
148
199
169
162
181
190
161
140
161
174
147
159
144
181
187
182
153
148
153
152
183
178
165
147
170
160
156
176
161
194
172
196
178
154
197
157
178
153
148
192
143
200
141
188
188
191
199
155
196
186
197
184
162
157
192
195
187
168
177
197
198
184
197
176
175
158
185
154
154
143
193
160
194
189
181
174
152
171
196
185
200
158
185
142
179
171
188
155
141
175
195
195
182
168
198
190
168
200
158
193
181
188
144
165
187
141
186
153
147
145
170
191
161
156
174
156
188
145
196
140
154
169
171
156
190
152
166
192
146
190
156
187
183
187
162
167
147
190
148
188
181
179
143
186
149
153
175
186
192
176
156
169
171
190
166
159
167
183
154
176
171
151
175
190
196
189
196
189
160
170
200
142
158
184
142
145
144
180
181
176
189
149
182
182
159
165
156
142
193
145
151
146
141
163
163
156
146
156
159
159
180
198
161
184
173
175
170
156
150
163
174
167
171
196
162
191
147
172
185
185
183
145
151
152
142
149
197
160
200
155
188
190
178
168
176
198
153
150
148
161
162
175
200
175
151
167
154
155
164
142
149
152
146
187
173
149
165
150
147
145
142
154
154
143
158
142
155
154
176
168
154
187
163
178
186
148
194
175
174
183
144
174
142
153
192
193
186
158
169
200
152
157
152
187
171
147
155
198
179
194
184
174
160
169
172
178
173
178
156
168
166
192
198
161
195
188
170
178
166
197
162
168
144
185
174
189
161
140
188
143
141
140
174
196
178
181
175
153
186
177
165
151
152
169
194
164
147
170
155
147
156
166
157
161
195
180
158
197
186
180
162
194
173
193
142
176
151
150
180
180
148
171
150
151
145
167
194
146
143
174
198
158
184
147
196
141
140
155
176
160
199
161
164
146
177
192
155
187
192
171
178
200
155
144
148
168
186
187
191
141
143
171
143
164
178
166
192
155
153
198
154
164
185
162
166
160
143
178
147
187
199
162
189
160
145
170
173
184
183
154
155
177
197
197
163
186
200
159
151
168
184
146
182
168
162
147
176
152
191
160
187
187
185
197
161
166
146
146
177
198
197
147
191
192
159
146
200
186
166
174
145
183
146
181
155
148
144
171
162
163
169
168
144
140
175
173
172
158
181
154
187
157
171
178
173
168
152
187
183
168
171
144
167
153
190
171
166
144
197
188
177
151
200
146
178
164
142
149
143
143
142
158
170
152
142
152
141
180
180
181
148
175
171
183
173
186
150
177
166
166
163
174
145
169
175
187
169
200
166
158
161
194
151
146
187
190
157
182
159
150
182
163
198
163
160
188
145
172
171
174
148
143
143
165
149
159
192
174
198
170
168
179
153
153
192
152
165
188
189
169
188
182
147
178
180
172
191
198
192
193
197
163
189
164
163
176
186
160
192
142
144
196
160
164
152
147
146
195
140
141
168
149
179
194
191
151
145
151
155
193
188
166
156
168
166
163
166
150
196
168
163
147
172
150
195
186
161
181
200
140
169
164
200
167
156
172
195
149
187
145
140
162
200
150
169
189
198
189
164
187
157
146
166
154
191
182
154
176
186
177
142
151
168
196
188
180
179
158
192
184
165
165
179
175
180
196
180
169
196
141
185
160
159
176
182
193
149
160
159
160
168
156
179
156
156
194
152
156
156
199
164
173
153
200
154
189
175
185
194
153
149
177
168
151
170
163
159
192
176
188
156
177
144
168
155
140
182
192
169
199
200
197
195
162
152
169
185
146
142
186
146
167
180
184
151
198
141
140
180
195
175
183
153
162
195
174
173
197
159
160
154
143
190
150
148
156
164
169
195
174
154
192
193
150
191
179
185
151
189
166
156
173
155
155
163
191
185
141
164
164
178
152
142
153
165
169
154
162
143
190
156
186
188
187
186
175
188
157
142
195
185
182
142
198
191
153
160
184
198
173
194
196
196
141
150
172
156
170
183
141
191
184
170
157
197
160
144
166
192
168
184
142
158
144
153
185
174
183
170
168
180
142
200
190
184
152
154
198
142
187
175
168
183
150
189
175
153
181
140
197
153
144
146
171
175
179
200
182
156
152
145
174
184
148
153
198
197
182
185
148
173
166
183
192
152
151
141
177
146
184
198
187
199
191
183
173
162
144
191
169
141
166
141
144
150
161
155
188
188
185
194
174
158
152
148
200
152
162
165
189
164
146
173
164
147
155
163
167
200
157
154
164
187
178
166
151
166
145
160
168
164
156
150
197
166
189
188
159
196
140
148
198
154
180
188
152
199
174
190
171
193
193
152
146
188
154
143
190
184
198
175
168
143
151
142
151
196
195
140
171
187
192
192
167
187
186
191
190
171
173
173
170
144
178
171
155
198
159
154
170
176
156
151
152
150
159
179
174
196
159
167
167
148
161
173
161
141
143
189
167
153
145
177
165
180
198
162
141
177
171
197
145
152
181
164
200
141
153
172
156
190
129
133
142
103
137
102
149
148
116
149
123
145
118
127
150
120
125
139
106
100
129
101
102
102
113
131
148
109
124
111
144
122
109
141
117
145
112
101
133
143
129
122
108
106
121
126
121
150
144
117
112
102
127
149
150
124
112
113
148
122
135
125
140
132
109
127
135
139
109
104
140
133
123
135
144
102
112
118
115
120
127
144
137
131
140
125
124
116
109
119
102
110
137
135
118
144
106
130
144
123
110
103
120
147
131
115
117
103
110
117
126
124
148
101
115
127
125
113
141
140
104
136
118
130
148
107
108
108
149
132
139
127
127
100
122
129
138
111
100
144
105
112
103
134
120
102
116
148
137
110
102
100
134
139
108
144
104
114
111
140
139
114
147
108
149
140
142
134
110
142
128
148
104
131
139
105
119
113
142
143
114
135
115
137
124
118
124
140
120
140
129
100
140
146
118
126
146
122
132
119
133
111
103
116
115
126
143
109
109
134
127
145
130
113
108
134
116
143
102
108
142
142
137
113
140
134
132
135
123
113
141
110
146
137
137
147
123
131
119
110
105
101
146
126
150
111
113
100
138
123
120
138
107
144
136
116
150
133
113
136
103
128
142
119
102
149
146
139
112
143
116
118
112
126
147
129
145
145
142
103
144
120
135
147
149
123
111
141
147
141
105
117
109
123
132
109
124
135
123
127
123
123
109
113
124
110
112
150
140
110
150
100
109
150
139
109
145
109
109
115
128
131
110
109
146
119
107
119
136
150
141
102
111
118
131
105
101
136
128
140
146
100
105
143
114
124
125
142
102
101
135
142
147
143
126
131
112
103
102
126
149
112
139
114
143
129
106
124
133
147
134
113
144
100
139
119
132
102
108
106
100
100
116
107
140
112
111
118
118
138
146
119
132
112
113
135
104
106
142
128
128
146
140
126
137
132
141
120
129
123
146
126
145
132
103
140
124
108
123
120
120
103
122
116
126
115
100
125
113
132
113
131
111
105
138
121
126
128
104
101
149
140
126
145
132
129
147
115
140
107
118
112
135
116
101
113
118
121
123
139
111
105
134
116
105
105
105
110
122
118
136
106
106
145
131
120
107
115
135
148
147
102
115
139
113
135
102
100
114
145
147
135
138
100
100
145
140
148
148
121
120
108
150
120
116
123
139
134
120
147
142
104
127
100
141
149
105
138
135
138
120
127
125
146
127
142
111
129
145
104
133
122
146
143
148
128
108
115
149
146
133
115
112
133
100
128
139
128
133
120
125
148
121
144
116
131
141
104
143
121
143
116
117
118
123
150
123
112
117
132
122
131
119
104
120
145
149
145
137
100
137
129
100
142
118
120
150
113
108
132
133
147
116
148
117
149
112
134
126
149
149
111
125
110
148
149
123
143
135
150
126
115
102
150
136
114
138
143
144
122
111
104
121
146
106
149
138
132
142
123
129
110
137
148
131
141
101
140
139
121
133
116
143
109
110
129
144
121
130
148
100
149
108
104
120
143
136
115
105
137
114
105
125
110
101
115
129
131
135
119
143
137
114
144
126
104
134
119
137
145
129
138
101
127
109
148
143
146
132
108
130
119
126
150
107
142
105
108
138
130
142
117
111
132
104
114
120
106
106
142
124
102
133
124
102
109
106
118
137
116
133
126
141
149
117
125
131
129
123
105
133
125
127
121
133
123
149
114
144
112
110
144
140
118
126
146
130
116
105
122
131
133
146
108
114
117
104
112
150
138
148
130
121
109
130
125
127
141
138
112
147
121
125
148
145
144
135
136
105
122
121
107
121
145
119
137
110
108
123
125
140
141
100
148
108
131
114
104
116
120
131
130
147
122
102
116
125
139
131
147
144
148
117
141
115
135
112
127
114
107
102
149
100
107
133
145
114
118
138
139
112
107
127
114
107
145
105
117
141
150
100
118
124
142
107
126
133
110
129
139
128
142
119
109
108
141
106
118
127
105
119
148
110
142
136
125
118
133
120
129
130
126
121
127
147
114
137
112
126
121
129
100
144
144
143
109
133
129
109
116
110
139
149
147
110
108
105
114
143
101
147
108
120
136
116
114
102
132
135
112
104
111
145
100
121
109
128
148
128
145
112
117
144
106
103
108
112
143
139
126
124
124
113
117
117
106
141
106
105
143
110
106
120
119
132
122
117
131
150
106
132
134
122
137
121
122
108
127
150
101
100
149
102
123
146
145
135
112
107
123
116
142
116
123
118
102
100
149
125
111
116
146
145
107
108
124
105
106
121
108
125
111
129
138
108
118
107
150
107
146
117
123
124
133
124
112
121
133
125
123
128
114
138
136
140
141
105
129
117
109
142
141
116
132
146
140
134
104
104
146
118
129
133
144
101
141
101
100
144
120
144
144
132
103
137
128
126
103
102
144
126
137
116
118
127
107
118
111
120
133
122
129
110
109
143
121
132
137
146
149
129
143
150
106
122
116
129
141
149
150
142
133
130
101
121
114
111
118
143
109
121
123
133
150
140
123
144
131
142
116
146
101
111
129
131
133
125
147
124
122
111
131
126
135
135
136
114
136
136
146
137
139
115
106
142
125
134
147
129
117
139
117
124
124
117
116
100
147
132
121
150
141
134
110
114
143
100
115
140
101
106
107
114
136
111
126
118
128
123
129
139
105
137
116
136
130
105
119
148
133
138
130
145
148
143
103
146
113
134
105
128
132
117
111
135
136
133
112
122
132
140
146
146
110
120
112
144
119
115
141
130
131
121
122
143
140
110
133
101
109
145
138
120
100
116
132
102
128
117
140
136
142
126
111
113
125
100
135
100
121
148
106
141
145
122
109
136
146
130
141
106
111
135
105
117
109
105
111
139
123
126
121
123
143
110
106
142
109
132
102
137
130
136
149
133
147
128
138
149
115
148
147
125
139
115
100
126
100
143
106
107
100
132
119
136
150
137
139
128
128
117
144
149
139
136
149
105
149
129
116
140
127
118
127
109
103
106
112
129
124
133
135
137
148
127
127
127
117
140
100
146
121
126
145
148
111
122
137
110
139
119
103
149
133
147
140
147
128
126
116
105
142
103
112
125
105
113
116
137
150
145
129
112
117
129
139
138
148
109
133
101
135
108
112
105
137
137
138
117
104
149
128
146
122
109
100
129
126
119
126
109
121
143
138
150
101
140
147
112
138
110
105
137
105
126
150
120
108
140
110
137
107
107
144
119
147
122
112
124
118
141
150
106
124
122
132
104
117
127
109
102
124
102
122
130
134
124
136
137
119
110
132
112
120
123
105
112
145
110
146
147
125
133
101
123
130
105
138
121
127
111
141
130
127
119
139
120
147
107
122
136
103
125
145
102
110
115
112
144
144
115
119
122
113
116
126
138
144
110
144
115
119
127
125
139
118
121
110
111
135
124
137
102
117
144
146
144
119
120
142
147
115
100
127
113
149
138
116
102
103
108
107
102
128
117
145
134
119
122
107
128
144
150
138
102
149
111
130
124
129
146
146
134
109
120
105
121
108
100
105
144
150
113
122
103
132
100
139
117
120
107
111
145
103
113
144
130
127
139
145
130
145
124
144
128
126
106
121
107
101
147
133
109
108
110
126
106
106
145
121
149
138
145
113
130
123
142
131
132
107
110
144
144
122
136
101
120
104
116
102
122
127
129
135
122
122
142
141
128
104
134
135
103
138
108
118
107
110
112
135
121
105
100
131
106
142
119
128
124
131
126
121
102
115
117
123
129
124
115
135
102
102
116
133
149
129
137
149
119
123
110
148
112
131
120
130
134
129
141
135
106
106
122
148
125
133
114
116
107
125
129
116
134
118
150
127
109
104
149
106
148
142
142
139
132
118
142
135
149
140
142
106
113
130
116
143
100
148
104
123
123
129
140
137
106
100
103
133
104
133
120
134
115
141
114
108
115
113
132
125
112
147
145
119
100
104
101
123
132
127
146
111
132
132
102
146
147
101
103
110
100
140
112
133
118
139
117
121
134
130
116
130
131
114
121
118
126
146
137
110
106
150
112
128
118
121
117
119
121
104
109
131
100
142
101
136
144
121
110
138
106
107
145
149
132
102
102
130
105
146
143
116
129
123
103
124
108
140
141
130
121
108
114
102
113
121
107
127
111
139
102
148
149
117
144
112
133
105
121
103
129
140
105
148
144
148
137
114
123
144
105
141
144
112
124
129
123
105
135
124
104
107
109
118
117
120
143
116
115
118
110
124
134
120
113
150
109
129
126
137
103
131
134
144
115
137
104
105
148
132
103
128
128
112
135
131
126
122
110
138
116
143
124
102
100
111
127
133
101
103
114
145
119
111
101
126
119
102
141
145
112
150
147
143
143
119
138
125
113
109
118
115
139
122
137
104
115
116
114
116
139
135
107
131
114
119
127
118
131
102
113
136
121
146
114
106
124
138
119
107
116
123
119
127
142
130
126
111
136
121
106
147
131
131
143
127
148
101
111
105
105
115
102
110
114
147
135
110
124
118
150
148
105
148
137
133
119
123
107
125
140
120
128
109
137
110
100
114
122
107
147
104
106
124
123
149
124
136
146
146
120
120
141
126
104
133
109
142
133
125
135
144
127
102
147
142
105
114
142
108
144
121
129
123
142
135
128
134
119
147
131
130
119
121
101
112
110
131
121
118
112
113
148
138
113
133
141
117
113
100
132
102
110
139
148
116
137
148
142
127
113
150
112
128
109
115
119
105
130
149
150
136
102
119
110
104
134
146
148
102
106
149
115
144
124
133
141
145
104
128
121
108
126
136
139
145
141
134
100
113
143
102
108
150
115
130
150
102
110
130
120
110
133
141
118
106
106
120
133
104
130
129
136
149
126
103
131
123
102
126
112
138
127
120
135
112
112
103
139
134
124
101
116
100
118
131
150
131
139
110
119
120
111
140
135
141
120
127
130
143
120
141
148
101
113
126
118
106
128
114
137
132
133
147
150
130
114
137
108
130
106
139
120
116
140
141
127
110
112
144
118
134
125
141
105
111
130
111
146
134
128
104
144
120
137
101
125
123
130
101
141
142
147
149
116
111
110
146
122
119
101
109
149
147
105
111
144
125
140
146
145
126
118
118
111
135
142
147
124
136
105
114
148
118
112
141
133
100
138
118
114
109
118
132
148
131
148
145
106
121
133
124
111
100
146
121
124
133
131
119
139
105
115
116
120
140
130
137
117
142
127
135
129
104
118
149
145
109
145
125
117
132
128
123
119
137
137
149
105
121
141
143
146
130
122
118
108
141
114
117
143
112
110
131
103
148
146
117
111
135
125
147
140
111
128
103
129
143
111
116
144
118
134
111
135
133
125
124
102
105
133
127
144
129
111
146
111
138
112
149
114
108
126
135
101
120
143
109
109
100
108
106
127
111
124
132
126
145
113
147
130
106
117
118
144
101
108
113
122
110
125
134
139
133
136
124
112
116
129
149
111
113
128
121
112
125
113
135
113
107
122
105
101
137
111
146
128
103
101
116
123
118
144
120
121
138
102
136
119
108
133
143
121
116
101
105
133
129
122
101
101
102
107
136
126
132
110
123
103
127
112
126
135
105
120
109
148
149
110
139
114
146
146
129
123
117
120
114
118
111
149
128
138
129
146
108
132
112
135
103
122
104
107
109
134
147
117
123
148
137
136
140
120
122
136
136
136
116
104
109
121
119
138
128
147
143
142
109
128
144
129
148
133
114
126
148
143
121
132
125
121
150
106
148
124
136
145
108
139
137
100
108
108
133
122
138
125
136
104
130
143
108
101
114
107
106
111
144
108
118
120
125
107
141
140
102
131
145
139
136
120
108
116
121
119
132
108
119
148
144
149
123
104
107
139
146
118
103
146
147
142
117
112
117
123
106
122
124
100
145
115
123
141
110
118
120
121
107
136
118
127
144
124
135
105
143
122
118
104
105
113
135
144
150
116
108
108
102
136
118
133
125
149
147
109
116
103
135
107
101
146
125
134
108
119
105
150
123
110
109
131
145
141
116
130
136
141
119
142
134
118
138
118
121
114
145
142
106
120
120
123
123
102
142
106
122
137
127
111
135
149
141
128
110
116
116
103
139
140
109
122
103
106
101
149
140
143
128
124
150
106
132
122
117
114
146
134
129
102
137
133
112
119
131
120
134
140
129
104
126
118
122
137
112
135
111
104
135
143
118
122
149
106
140
128
138
128
135
107
148
110
101
149
138
103
126
142
111
118
136
115
104
132
148
143
139
141
150
100
108
144
106
113
116
130
122
114
143
140
100
149
110
109
127
103
149
147
138
114
119
149
108
108
128
132
139
147
119
127
136
104
133
132
115
133
104
132
109
100
121
146
130
124
119
101
137
129
129
113
136
133
136
100
124
127
128
148
121
139
112
125
111
115
147
137
135
115
123
117
126
120
145
118
103
144
141
124
109
125
141
104
123
122
127
124
126
137
107
115
147
101
137
124
119
113
129
133
109
124
110
146
124
134
147
106
133
146
148
123
127
109
136
149
142
144
129
137
146
110
111
148
149
100
114
125
105
124
143
114
142
109
129
101
136
108
103
110
113
106
108
114
105
146
144
119
136
123
131
149
133
150
144
120
114
142
118
100
107
100
130
112
113
118
135
110
124
120
143
125
118
146
103
132
138
135
140
101
115
112
127
120
132
128
103
124
130
127
124
139
112
145
100
143
130
140
108
138
126
101
103
143
102
106
135
136
104
118
102
140
105
132
110
122
117
138
112
117
129
139
138
144
102
100
132
130
146
109
137
100
119
134
150
137
106
145
105
138
130
138
109
135
131
141
120
129
123
131
121
105
148
142
103
141
123
128
101
150
108
106
137
150
130
124
107
114
143
136
126
108
142
133
107
141
143
148
138
126
126
123
106
131
143
106
117
115
118
107
109
121
129
141
144
131
134
121
132
102
124
102
146
129
148
150
120
120
116
102
136
121
131
134
140
141
143
114
113
125
147
148
134
110
107
122
100
143
139
105
103
137
108
136
120
123
143
101
150
140
147
111
123
123
108
115
102
129
133
108
137
135
107
122
102
141
122
107
142
104
120
143
121
127
137
147
141
111
134
134
123
105
124
147
147
112
103
123
122
120
100
132
138
137
142
135
146
113
126
121
138
115
116
139
150
146
130
147
149
140
110
150
106
139
123
115
112
108
101
120
102
142
135
131
126
149
112
112
114
106
123
145
119
141
136
128
144
132
130
126
129
107
101
139
131
135
138
113
112
133
117
125
127
120
144
123
120
122
142
107
133
110
103
126
113
138
137
126
103
134
106
121
125
127
110
114
143
125
132
120
145
123
137
113
106
112
119
103
112
102
124
147
139
150
121
101
125
114
100
102
126
108
127
106
150
150
117
121
120
131
137
128
121
116
132
149
149
109
125
126
150
129
150
114
108
124
105
143
119
119
130
146
106
105
121
140
117
148
115
126
105
133
137
131
112
147
108
134
145
132
130
133
150
125
147
139
145
104
110
135
139
124
132
129
106
124
129
136
105
117
131
150
130
103
108
105
102
144
146
140
134
138
137
111
126
117
118
130
126
109
134
118
119
104
111
113
127
111
145
109
150
139
133
145
135
127
141
124
136
121
149
141
134
105
133
111
128
110
117
126
115
143
103
123
100
118
117
127
106
143
124
145
129
150
123
102
131
139
107
108
101
120
138
140
141
125
116
133
145
146
141
111
135
143
102
145
131
128
120
133
125
145
134
145
133
132
114
125
102
149
127
138
104
125
130
103
102
117
111
116
138
112
113
121
119
125
108
119
140
124
134
123
104
119
112
130
136
137
121
104
105
103
101
108
100
135
135
148
139
110
113
111
147
120
115
125
116
103
136
132
105
120
128
124
144
142
125
100
110
122
135
140
130
119
106
137
116
140
104
142
107
113
124
127
124
121
129
102
113
149
101
133
142
138
112
132
143
129
132
123
149
150
134
109
134
144
141
138
139
123
116
146
106
109
113
128
132
145
146
119
107
148
147
150
130
100
116
133
127
111
147
114
148
123
126
136
117
118
115
136
135
141
144
123
116
131
121
137
106
112
148
132
104
133
123
117
117
114
116
148
115
100
113
149
116
142
134
128
111
121
125
135
116
110
145
148
145
147
140
140
133
105
123
120
118
101
110
107
114
100
103
122
129
128
120
105
114
129
138
145
145
101
107
106
110
119
111
149
148
115
110
140
146
142
107
130
136
111
133
140
104
147
119
135
113
110
126
140
100
116
126
149
117
106
101
131
101
117
131
137
132
103
141
117
136
110
134
133
142
122
150
116
107
136
100
147
121
117
115
129
115
126
134
150
121
142
138
137
103
111
119
109
133
136
131
118
107
107
106
106
134
101
144
128
125
116
148
130
147
100
146
134
127
148
144
126
127
100
145
140
125
111
105
126
133
136
128
140
142
109
134
125
116
131
141
102
147
147
134
103
106
112
137
111
131
147
144
135
118
106
113
127
145
135
142
134
115
116
143
124
111
124
136
124
140
131
143
135
101
136
116
126
128
134
129
144
118
149
126
110
113
141
148
102
150
103
118
105
113
106
127
100
101
122
115
122
142
109
147
129
134
135
110
147
117
136
142
142
114
116
140
140
129
116
143
136
114
132
102
109
109
145
131
132
132
105
146
144
111
149
134
116
121
116
116
136
139
104
150
121
100
135
109
132
145
133
140
139
144
110
150
123
131
148
127
140
137
122
121
124
128
119
130
104
129
112
101
125
147
131
139
146
142
118
110
143
147
130
122
135
121
118
125
137
135
134
130
127
113
100
113
143
147
138
146
133
147
114
129
105
142
128
139
116
101
111
136
112
130
147
132
106
126
139
144
114
120
102
117
109
114
125
124
136
132
118
144
109
108
102
123
104
130
140
140
113
146
132
143
133
103
120
126
120
118
107
139
121
106
117
121
122
104
134
125
132
122
141
144
124
114
141
135
122
111
137
103
101
122
140
108
136
100
109
104
141
122
108
135
143
117
121
107
121
131
109
149
128
110
129
143
122
142
125
102
100
137
146
130
138
134
107
134
103
119
141
129
133
140
102
142
136
139
128
143
106
113
108
131
107
103
132
119
135
105
123
109
120
136
112
130
143
142
116
140
102
142
138
138
100
113
128
149
148
103
121
143
147
148
146
143
124
123
106
128
132
100
113
128
136
118
108
125
127
104
144
141
112
119
119
129
132
111
110
109
123
119
105
101
131
105
108
111
127
147
128
110
112
112
148
146
139
110
115
117
136
129
150
114
108
139
100
109
118
118
128
105
121
130
142
113
104
139
128
138
126
124
112
150
149
114
107
125
106
137
126
128
109
102
149
124
137
126
135
114
145
145
116
131
100
150
108
116
118
117
136
126
105
118
107
113
115
116
134
116
150
104
104
117
118
138
129
132
112
148
105
119
134
122
120
139
114
110
143
135
148
138
116
108
116
147
141
113
109
110
108
138
106
121
130
105
101
127
129
138
119
144
122
147
134
137
136
102
121
111
140
118
101
120
104
110
124
115
125
139
122
147
144
100
126
132
133
127
116
103
119
125
129
148
124
143
112
123
131
140
106
111
100
144
112
122
102
136
114
139
141
117
148
119
139
102
103
114
108
126
109
145
139
137
116
150
118
114
115
126
102
121
118
114
117
108
130
145
137
140
117
118
117
126
134
114
115
143
129
142
126
145
116
125
101
145
105
103
120
122
134
121
130
131
121
137
109
118
119
128
142
142
121
110
148
128
109
126
135
135
104
114
140
101
129
139
134
123
127
101
143
103
123
103
110
148
103
103
112
122
125
135
125
141
138
125
114
125
139
142
108
136
117
122
117
129
130
100
146
140
132
136
137
129
103
131
141
131
108
104
125
102
134
139
111
109
141
124
144
148
141
127
137
119
116
131
127
112
105
135
105
124
127
116
140
111
104
111
138
132
121
116
110
146
138
106
131
141
113
113
149
140
104
102
130
146
121
125
112
107
149
121
108
129
103
137
114
121
149
131
102
109
125
144
100
100
104
144
121
126
103
137
101
135
139
106
122
132
146
146
122
135
136
131
148
148
141
133
123
136
116
111
148
142
113
106
134
144
119
112
145
141
123
118
108
147
130
115
137
131
115
115
111
128
124
143
112
118
139
131
106
118
146
112
138
117
100
102
140
108
136
137
138
100
108
129
134
124
125
150
140
115
104
101
145
133
123
120
104
117
136
111
150
123
102
145
102
127
109
135
141
115
149
121
118
131
110
102
110
109
127
125
102
101
150
126
140
110
106
121
116
133
136
129
116
115
130
146
136
105
108
114
146
117
118
113
138
111
132
124
100
119
111
103
148
120
118
126
120
120
126
102
148
101
102
103
126
141
138
119
132
130
127
106
111
104
106
112
106
149
104
147
107
127
107
127
107
132
142
146
104
101
117
118
102
103
101
127
106
128
104
137
125
137
143
120
142
114
131
107
137
110
129
144
119
122
133
136
111
112
119
131
136
112
128
144
138
127
143
115
101
145
138
128
102
119
127
128
111
126
121
118
125
103
142
110
109
137
130
141
115
130
142
143
112
117
146
149
134
130
118
125
108
115
149
109
100
150
129
116
103
144
112
120
134
140
109
131
131
134
106
129
106
128
140
105
116
106
117
108
115
148
112
142
134
137
114
124
150
107
101
100
111
109
105
112
116
128
100
130
124
103
119
122
103
136
138
106
116
139
138
128
126
132
111
105
131
136
100
147
101
102
111
116
115
124
108
102
104
146
121
116
131
129
122
150
103
118
149
147
118
142
121
121
123
150
113
111
115
143
146
126
110
125
141
146
140
133
133
107
100
139
112
148
114
107
106
146
127
129
136
114
118
138
103
101
125
123
102
120
130
111
109
112
107
102
150
136
144
115
116
118
128
130
145
109
143
112
112
107
132
146
128
142
142
144
101
113
109
124
131
143
108
135
103
104
145
126
130
132
113
112
145
110
133
124
102
143
150
118
133
106
133
116
119
110
128
110
140
135
136
105
117
135
150
120
137
128
102
135
121
118
131
106
104
138
149
104
136
125
133
109
111
112
103
135
146
137
112
148
149
104
113
119
118
146
131
145
127
105
134
119
111
115
106
145
137
103
110
142
147
149
131
129
102
118
141
125
101
130
131
144
107
100
109
124
100
121
136
143
138
111
131
132
131
110
130
116
119
111
110
102
105
141
107
137
134
146
140
134
128
130
130
100
138
106
107
121
134
138
100
126
140
145
103
146
137
100
116
134
100
117
144
144
145
123
103
135
102
119
146
128
120
123
137
133
138
135
119
126
107
142
137
100
100
110
150
139
126
142
135
140
137
134
132
150
131
128
105
150
147
130
129
130
107
107
117
104
115
115
118
140
144
114
139
104
140
115
115
111
122
149
144
123
102
146
129
114
115
126
140
130
108
118
129
102
121
111
100
112
119
110
101
132
136
104
131
110
145
105
149
117
142
143
129
120
138
148
108
109
119
150
133
104
111
109
146
122
140
142
127
103
138
129
103
135
128
149
126
125
147
105
109
111
135
148
148
104
111
107
105
105
135
106
145
103
130
131
104
112
123
101
143
110
146
105
148
124
130
136
109
132
117
110
115
106
101
142
102
126
144
120
118
118
102
108
123
119
140
112
119
148
143
145
101
133
123
132
118
109
113
122
116
145
136
132
124
150
132
105
114
144
133
150
138
112
114
111
149
121
119
114
146
132
135
126
104
118
116
140
135
138
121
125
123
142
109
132
113
107
103
111
139
136
104
141
138
140
120
132
133
119
129
141
139
144
118
105
121
128
128
146
123
149
140
120
130
111
147
124
101
116
120
114
121
126
137
143
114
147
103
114
101
131
105
141
107
121
135
125
128
128
117
129
121
133
149
103
101
141
115
110
119
102
110
107
118
133
122
129
139
118
103
125
138
114
128
123
110
109
107
100
127
107
109
148
116
103
138
118
132
123
150
101
149
102
147
125
144
141
148
101
142
149
132
112
103
137
121
147
126
104
147
121
130
121
137
138
101
101
108
104
109
139
103
140
125
139
117
127
147
146
103
121
117
120
109
122
118
131
132
136
149
134
149
120
127
143
116
143
124
112
131
139
138
146
125
112
130
143
125
130
113
117
128
142
101
101
102
137
106
116
143
122
101
105
110
110
139
141
108
139
134
147
140
135
104
123
118
125
149
107
109
136
113
135
142
143
144
116
150
134
115
100
115
150
124
143
121
123
110
106
137
136
101
126
119
105
103
126
136
149
118
111
145
116
129
146
146
134
139
124
110
147
116
102
109
111
130
124
146
132
109
138
113
138
103
107
138
141
131
112
116
137
121
103
116
118
138
121
136
107
113
146
117
150
101
105
111
113
140
113
145
117
115
125
128
123
110
143
102
134
142
110
121
100
115
103
148
119
103
103
109
128
126
129
109
118
126
147
146
124
105
132
130
142
144
140
139
117
145
149
121
143
117
132
102
128
103
105
101
105
141
130
133
121
136
107
119
106
134
128
135
130
141
110
126
100
129
147
102
149
123
115
148
100
127
132
109
110
122
144
132
112
143
132
150
118
142
101
114
131
102
130
123
122
110
125
133
145
123
102
113
116
139
145
114
143
104
104
128
135
121
143
113
120
127
115
108
101
114
109
143
125
128
138
147
113
106
138
104
113
147
126
119
107
128
129
149
119
128
150
142
139
129
108
145
116
125
133
146
104
122
118
102
144
141
114
118
141
106
146
100
135
139
146
106
145
124
113
150
116
132
117
141
100
112
110
132
148
115
109
148
143
102
127
127
139
100
124
113
120
118
139
133
138
129
129
106
143
106
120
105
123
141
126
131
124
106
147
141
134
118
128
114
145
123
115
108
114
132
124
111
114
109
117
102
133
135
112
100
126
104
107
110
113
104
149
119
106
101
104
132
133
139
107
143
116
119
107
142
149
109
145
139
147
117
107
108
105
128
110
117
131
111
113
101
126
114
118
145
117
122
106
142
119
150
119
103
101
115
117
134
120
106
129
105
135
124
124
105
146
130
123
127
145
148
113
150
107
114
121
137
147
106
145
143
144
113
139
103
105
148
123
100
108
103
104
133
147
110
100
147
120
131
127
138
123
126
107
116
149
149
123
123
109
114
102
104
124
104
111
116
138
130
121
109
111
141
109
143
117
100
116
134
113
122
144
101
103
134
127
140
112
121
142
134
119
107
148
126
130
143
137
120
118
135
137
141
147
103
108
103
117
136
115
145
148
145
128
131
115
128
119
112
112
102
136
105
143
118
128
149
105
142
107
115
148
119
137
135
144
110
111
131
139
109
149
103
129
119
124
146
134
140
145
136
144
138
118
141
127
110
140
147
125
108
139
116
101
149
115
107
138
140
125
143
128
137
112
146
150
110
132
108
121
145
137
146
100
107
128
107
105
107
132
134
135
125
123
140
110
109
103
135
142
111
117
147
150
136
150
122
106
108
139
114
140
122
123
109
143
144
135
117
144
130
119
135
145
107
127
140
100
145
133
125
134
147
137
104
142
138
104
136
115
117
127
114
140
120
102
126
122
138
142
132
131
104
146
121
141
148
141
143
141
129
101
111
101
126
137
133
147
114
117
108
129
104
104
126
145
118
134
145
134
113
105
110
148
114
149
102
143
103
115
139
110
115
148
131
128
133
112
127
142
105
118
128
103
134
114
100
110
114
120
127
130
110
106
140
105
136
147
143
107
107
136
120
129
124
126
131
136
104
149
127
119
139
133
131
103
122
131
101
100
141
111
118
107
114
118
106
148
119
111
133
104
133
149
133
138
131
142
148
120
141
139
123
102
134
145
115
114
109
145
132
142
102
134
129
125
117
123
123
132
105
100
101
134
116
149
115
100
117
107
148
139
146
148
131
114
134
116
139
130
116
110
111
147
114
142
102
134
122
120
102
110
143
115
117
118
137
105
128
125
140
112
120
144
105
136
140
133
126
116
142
119
139
146
148
109
116
119
114
106
139
146
132
117
134
106
100
114
115
119
129
120
147
135
122
122
115
148
148
143
125
127
112
116
122
102
150
127
110
103
109
145
136
122
143
118
108
110
130
146
134
135
127
123
141
126
128
121
127
130
140
114
136
141
125
117
133
150
122
140
103
100
128
146
115
144
112
103
150
107
104
107
143
118
142
113
128
128
133
114
114
122
113
108
126
131
113
102
100
128
142
118
143
139
107
126
123
130
107
112
148
108
123
138
140
144
131
149
117
138
113
124
115
150
145
100
135
115
132
105
141
134
149
101
132
104
130
121
148
127
129
122
112
146
106
113
111
129
110
110
133
146
111
111
134
139
148
149
145
114
114
145
115
129
110
105
119
137
149
115
105
102
107
135
106
107
121
142
122
123
111
148
131
119
101
145
124
110
128
150
102
129
119
148
107
134
132
101
138
137
150
128
150
150
128
133
115
108
131
148
143
108
100
129
144
107
136
138
136
141
123
129
133
118
137
103
122
118
141
123
121
112
127
134
135
100
115
140
103
126
124
129
142
127
148
116
136
135
119
144
112
131
100
129
115
136
145
128
138
121
135
111
139
130
144
129
121
140
130
137
127
125
113
109
105
132
123
103
113
110
107
135
123
144
104
118
105
104
125
136
130
124
137
143
143
105
145
114
121
106
140
144
118
145
141
142
113
127
118
122
139
106
148
102
134
122
112
139
108
115
142
138
114
103
109
148
150
102
142
146
107
145
106
133
150
124
107
120
111
142
127
134
134
103
130
132
104
126
150
127
125
137
143
120
125
135
101
129
112
146
101
129
118
136
127
120
106
147
101
103
132
109
145
118
100
129
111
144
144
148
102
105
133
114
150
141
123
145
105
146
103
143
118
130
133
147
101
123
101
116
107
146
143
108
126
101
137
130
150
150
128
121
120
139
112
135
130
142
125
100
123
111
138
113
128
126
137
144
146
125
136
125
109
132
130
118
145
123
129
124
138
116
121
145
138
139
143
119
122
120
134
147
114
120
132
135
123
109
103
123
105
145
114
139
123
129
107
143
128
100
148
107
121
111
136
111
139
110
143
133
120
124
112
143
126
106
121
119
140
144
103
147
145
144
135
136
136
110
135
138
118
149
150
114
135
149
113
100
147
118
118
108
144
103
138
106
115
150
125
129
117
128
149
126
110
146
147
126
107
101
109
109
145
126
119
106
135
128
132
138
140
122
117
129
131
105
150
115
116
125
139
100
102
138
150
122
113
100
140
116
112
143
140
150
110
143
108
142
114
104
150
111
127
134
122
111
129
130
145
121
131
105
147
129
138
101
113
121
120
128
127
121
119
125
135
135
142
109
132
149
121
150
126
130
135
136
147
108
118
107
103
132
143
129
140
142
127
104
134
139
111
130
128
149
110
103
150
125
134
127
126
130
103
119
114
115
139
133
101
126
124
108
104
116
140
146
132
126
150
145
136
138
143
136
127
128
115
140
112
134
105
121
109
144
114
115
114
105
107
106
111
148
104
122
121
109
131
108
148
101
120
149
124
145
100
145
136
121
149
136
136
146
148
134
147
115
138
145
134
148
123
103
138
139
120
121
139
149
111
133
118
145
123
141
129
122
116
114
137
136
126
145
144
101
131
120
129
127
149
136
109
134
114
107
131
132
120
121
142
135
137
117
115
103
145
118
132
107
116
136
124
131
135
143
125
136
138
147
147
119
102
119
107
132
110
109
136
128
117
122
132
125
137
114
100
146
148
103
145
144
112
100
132
113
114
110
116
104
101
143
107
106
127
114
134
149
110
150
115
144
145
150
111
150
138
145
111
146
106
106
105
121
126
140
106
120
107
141
140
143
139
108
150
116
141
131
127
144
150
128
105
126
121
124
147
108
131
125
103
105
146
113
117
134
123
102
110
116
102
118
123
132
142
144
143
114
107
109
138
105
101
124
147
117
114
105
103
146
121
113
143
105
150
105
148
127
118
146
106
129
123
115
147
105
147
145
146
100
111
146
104
121
106
104
143
107
101
142
101
128
114
135
149
105
122
138
141
114
104
131
120
148
125
111
144
105
106
115
114
119
115
122
130
123
142
131
135
141
146
117
125
146
148
104
132
138
135
142
124
137
127
148
150
115
148
112
138
104
131
111
148
135
102
109
124
113
128
128
125
111
121
132
100
148
107
140
113
103
144
134
125
119
121
133
135
150
149
101
124
110
120
118
137
135
110
148
112
107
108
105
145
124
104
105
125
131
120
128
116
113
148
140
126
143
129
146
127
115
116
108
141
108
110
104
120
106
132
142
129
127
126
143
128
144
110
105
121
144
108
139
109
106
103
104
136
107
133
139
116
125
103
126
140
124
134
146
148
148
111
143
114
104
135
120
143
138
124
133
109
139
134
108
119
111
133
100
103
146
103
130
102
135
139
115
137
141
123
144
147
110
124
142
118
116
135
116
132
115
103
107
110
129
139
146
129
131
132
109
139
150
127
133
106
123
144
118
120
107
148
131
100
141
130
123
144
140
146
111
123
141
128
100
140
150
135
113
140
111
147
102
150
138
124
123
145
116
113
106
109
143
148
149
125
101
116
104
117
110
105
138
130
105
131
132
133
118
109
127
142
139
126
114
123
101
109
142
101
145
141
131
122
118
105
104
137
128
131
115
116
104
130
100
130
136
143
103
136
122
134
132
105
106
101
136
143
134
102
123
111
143
148
112
147
123
130
106
144
134
130
110
111
147
147
146
116
132
143
148
101
143
112
122
123
108
101
116
139
108
134
141
103
111
135
139
140
146
106
113
120
146
100
142
108
111
111
112
142
108
133
120
133
145
129
161
184
163
170
162
168
155
148
180
172
145
196
181
179
195
147
148
156
164
180
177
171
180
152
140
143
195
176
156
190
157
166
145
140
164
158
198
165
145
169
157
149
145
191
168
197
161
165
155
150
148
141
148
154
197
156
199
178
193
158
171
190
167
184
150
140
154
154
166
181
146
151
169
153
181
152
198
166
165
190
154
168
192
169
188
144
181
168
160
157
141
177
155
179
192
184
145
147
162
169
185
169
185
174
175
193
159
152
153
161
156
165
159
198
199
182
177
150
163
175
166
149
171
146
194
157
166
180
148
194
191
176
147
156
198
170
168
193
196
197
153
171
150
140
182
168
147
174
147
141
182
182
146
144
188
173
150
148
177
160
176
187
172
148
200
199
175
185
171
147
194
183
193
167
200
152
166
147
158
183
174
176
183
184
198
166
149
166
179
172
148
178
154
184
185
182
154
166
147
186
182
173
148
176
166
186
200
156
184
158
166
184
157
148
195
141
166
140
184
195
159
170
140
146
187
200
195
167
167
193
155
173
200
161
173
157
164
198
186
192
200
185
181
142
176
172
191
156
147
189
172
191
148
187
191
162
186
177
162
151
198
160
184
189
155
142
176
153
199
172
196
191
161
169
181
191
174
165
160
164
168
177
197
151
176
145
188
155
150
161
194
153
174
169
140
192
182
151
141
151
140
165
176
141
145
193
183
155
169
176
145
194
188
168
191
197
167
155
156
160
179
197
160
157
193
161
159
160
156
140
192
191
169
194
174
169
167
181
144
164
143
169
198
195
195
153
177
189
141
195
169
183
159
197
144
167
192
151
169
163
193
174
173
195
165
179
179
155
154
190
192
169
166
171
196
193
187
185
192
194
141
166
144
169
154
147
173
159
172
163
197
185
183
183
158
164
164
168
166
177
193
171
164
199
143
200
173
153
196
142
170
192
140
160
199
156
174
148
174
197
191
178
198
150
150
188
180
158
178
197
150
165
161
195
191
190
143
187
186
199
192
174
144
149
151
189
196
170
158
199
185
140
155
145
179
192
193
148
150
160
153
192
155
162
172
157
171
187
170
140
179
196
163
146
151
198
190
141
192
192
178
167
186
195
197
175
158
155
159
140
167
155
161
175
189
199
163
178
170
171
175
153
169
183
175
168
151
184
141
143
199
162
197
180
174
198
190
142
179
185
191
179
152
155
186
156
179
189
167
176
182
146
156
159
170
146
199
176
199
194
151
153
143
179
172
168
178
180
167
142
151
196
195
193
174
186
183
195
173
160
163
160
162
157
194
190
148
166
159
143
141
140
192
176
192
188
183
193
199
192
161
156
184
164
197
153
181
173
168
142
142
189
193
154
147
194
167
197
198
165
166
168
193
189
157
195
153
169
200
172
167
146
178
154
191
175
150
154
167
192
168
194
145
147
146
179
162
159
182
148
194
181
193
158
145
148
141
198
147
181
156
192
168
200
186
146
170
184
166
141
153
158
185
162
170
163
155
184
150
142
197
165
171
193
169
196
166
172
185
148
166
184
164
190
150
173
177
176
176
200
190
197
150
173
142
153
174
183
143
142
168
197
175
144
159
195
183
189
162
185
181
168
165
175
182
184
158
171
191
196
190
140
199
178
172
181
153
177
185
171
175
158
197
150
171
150
146
198
148
143
146
188
172
195
162
193
166
200
147
141
168
191
166
143
181
153
196
177
175
195
150
156
145
144
154
167
152
167
166
151
172
141
197
152
144
157
185
148
141
149
200
196
182
195
200
140
198
184
157
194
147
147
191
170
145
160
174
194
170
144
151
149
194
156
178
181
191
192
155
169
182
155
162
160
141
191
167
140
171
181
180
188
193
155
192
165
168
150
183
174
156
184
149
190
169
182
198
178
187
156
183
179
184
199
162
153
182
185
146
167
156
147
151
177
162
177
157
188
182
159
185
165
188
172
174
157
182
197
175
187
142
195
192
175
172
198
165
149
147
186
179
155
191
177
175
163
182
176
187
157
166
191
193
179
193
165
147
199
184
197
200
141
186
151
190
165
148
192
195
180
140
173
161
144
187
179
163
192
149
196
173
157
189
167
197
198
178
150
166
140
151
190
191
180
176
196
169
182
176
180
174
151
158
146
155
185
182
142
195
176
163
149
152
144
163
162
158
199
156
143
157
165
176
190
148
141
177
154
178
154
185
184
149
180
179
165
167
144
173
145
188
172
200
165
165
160
180
167
145
164
166
142
154
141
193
187
141
143
140
172
200
153
184
195
180
158
141
171
168
173
156
144
160
198
171
188
183
151
160
143
144
189
162
173
188
198
162
162
166
170
191
161
146
194
142
180
191
170
186
161
184
159
191
142
173
158
156
186
168
187
142
150
181
176
185
145
176
185
150
143
146
152
183
185
188
170
174
148
163
172
172
200
198
157
193
187
185
188
158
142
162
189
140
142
200
197
170
140
163
162
146
200
186
198
182
199
188
177
172
147
156
173
191
190
184
175
154
198
145
199
152
147
152
144
192
171
167
196
144
164
157
170
181
149
173
149
142
182
198
149
148
158
197
165
191
190
161
191
170
180
176
185
149
176
191
198
173
163
187
174
190
149
159
192
182
186
168
155
193
148
154
172
174
196
168
184
143
196
154
197
162
192
195
171
174
156
182
172
178
192
175
194
182
192
159
198
148
200
153
145
143
151
192
154
191
148
174
188
188
179
195
179
189
172
188
196
161
167
162
147
163
192
151
198
149
155
196
187
179
187
150
141
143
150
194
143
165
173
184
182
161
176
187
194
157
169
166
167
174
179
184
145
153
152
154
167
174
153
174
176
192
193
168
176
177
179
186
168
193
174
145
161
140
158
144
169
182
199
145
182
170
170
151
158
144
150
149
158
162
166
167
151
195
154
160
158
182
198
188
174
145
196
172
173
190
192
193
184
152
198
192
184
168
156
166
185
156
170
192
176
148
179
198
144
169
175
191
142
150
179
155
162
149
197
161
156
191
141
141
182
149
154
185
189
142
171
160
179
144
186
140
156
155
175
170
187
200
140
158
152
184
179
167
176
174
200
154
185
186
150
164
195
183
141
199
158
178
147
160
156
189
177
184
195
162
149
157
174
171
156
168
185
186
175
176
181
187
178
195
186
168
162
148
140
146
177
149
142
192
191
142
170
179
196
175
194
189
187
143
146
177
183
172
144
143
181
162
170
165
154
197
194
149
175
189
199
172
173
142
195
147
197
150
181
200
199
155
194
160
193
154
160
147
193
172
170
191
169
171
154
144
200
160
193
179
154
185
189
141
168
160
172
197
163
182
141
177
176
166
156
150
151
190
175
187
146
187
177
169
184
143
188
200
162
148
190
183
153
174
158
197
192
178
175
178
165
182
144
162
160
164
181
160
173
159
190
177
176
182
176
166
181
169
177
196
149
142
190
140
190
175
197
187
168
177
151
177
151
142
153
155
174
190
167
200
161
148
200
167
159
175
198
147
183
174
186
152
197
185
154
148
146
158
140
162
161
165
176
149
152
180
193
187
167
146
157
171
185
182
170
152
170
188
167
185
162
160
191
189
140
172
142
189
188
153
194
167
183
154
150
170
174
152
179
149
151
151
186
153
147
177
148
191
154
140
170
159
175
166
181
182
191
172
180
166
199
162
166
181
176
148
189
196
145
185
178
186
194
186
155
200
166
151
186
173
150
191
177
162
174
179
146
150
194
149
151
141
145
142
181
198
200
195
164
180
170
144
159
192
180
198
152
172
145
189
168
183
179
162
160
142
170
151
175
171
145
157
158
149
200
188
159
144
145
160
185
141
198
151
177
150
179
165
149
168
161
162
187
175
198
146
158
195
166
169
178
173
174
170
169
157
145
156
141
140
186
168
186
169
140
142
173
198
186
200
169
151
165
197
196
196
186
144
191
195
172
162
165
166
148
155
142
166
171
145
148
154
158
156
190
171
199
195
157
185
199
171
144
161
148
154
171
190
192
143
170
156
172
171
141
186
197
141
177
196
170
200
152
183
171
157
183
198
169
174
181
182
198
171
160
161
154
171
153
187
150
145
155
170
192
144
189
169
191
155
143
173
194
200
153
147
176
179
169
188
169
154
197
186
145
194
199
157
147
156
172
163
187
149
174
156
189
197
166
147
148
167
200
194
172
167
159
168
191
150
187
169
187
189
145
143
156
169
195
197
170
143
194
158
170
198
154
162
164
195
153
155
188
145
197
193
144
159
162
152
143
180
171
189
162
141
167
165
191
177
164
159
158
166
194
161
158
149
146
185
140
181
192
189
145
170
193
188
180
182
140
175
177
177
187
152
193
159
199
150
166
172
185
146
168
196
178
187
161
158
160
163
146
170
183
182
200
182
161
159
182
193
180
164
160
180
200
173
185
142
168
183
173
198
184
178
144
142
147
180
140
182
186
160
184
140
152
180
177
153
160
194
197
149
189
155
144
185
161
180
199
179
199
181
176
160
159
197
167
179
149
142
142
179
185
182
179
166
144
144
171
180
149
161
164
144
154
143
196
147
183
142
165
168
172
183
176
156
141
164
163
184
144
162
153
177
145
175
181
141
181
198
147
177
176
199
181
153
191
140
157
178
170
159
198
189
167
143
185
177
195
198
161
143
185
142
155
142
173
152
175
194
184
198
143
150
194
167
142
192
145
197
176
159
152
200
175
154
146
167
155
198
142
174
154
160
186
187
165
182
153
182
197
153
188
200
172
157
196
166
191
181
150
197
191
142
189
146
167
154
191
197
142
164
158
195
166
180
196
199
142
198
179
161
200
175
181
151
171
175
148
151
141
174
185
168
182
165
199
190
157
156
180
149
165
148
151
141
195
194
167
181
190
183
192
173
198
188
189
190
148
182
200
164
176
172
169
198
170
196
143
200
170
143
195
165
172
142
178
141
180
167
140
193
172
189
199
184
186
149
168
185
184
176
195
177
164
183
152
166
189
148
183
145
150
148
193
150
154
140
183
140
184
180
157
153
193
163
194
172
141
170
187
151
164
199
184
163
188
157
172
140
196
152
174
172
182
200
153
161
167
178
189
148
190
177
145
193
176
192
161
190
161
163
148
192
192
173
194
155
169
182
172
155
191
178
167
184
185
145
171
155
199
156
162
163
190
187
171
162
195
166
161
179
152
183
190
189
192
159
186
173
175
184
182
169
154
145
178
161
169
185
160
194
187
185
190
193
176
145
152
192
198
183
185
173
188
172
154
185
150
180
140
182
175
188
188
188
191
162
176
167
156
186
186
161
179
159
186
152
156
175
141
191
174
166
147
155
184
159
160
164
197
169
148
173
181
154
163
155
193
196
196
190
171
195
160
166
181
149
192
165
182
169
166
164
172
161
146
148
172
164
187
193
174
161
178
162
190
186
185
178
200
141
171
195
147
156
147
143
185
147
140
189
187
151
174
163
168
185
190
144
141
195
154
155
195
167
191
179
156
187
189
156
140
176
147
164
145
158
191
163
198
165
170
151
146
172
145
178
181
170
183
176
174
189
149
171
156
173
145
161
198
198
177
184
164
145
152
147
172
192
176
161
143
143
145
166
173
184
166
185
171
185
171
142
149
176
142
145
174
191
175
171
144
194
155
164
168
162
198
170
150
191
187
146
186
167
157
159
141
193
196
155
176
179
193
176
154
181
147
146
152
197
189
140
192
185
192
193
152
146
191
177
196
199
181
193
157
191
168
163
163
142
173
142
186
170
181
167
182
146
157
166
153
173
153
168
152
191
190
152
144
147
146
178
148
198
159
175
177
171
165
160
155
194
158
155
171
174
159
191
157
163
183
196
140
152
199
182
180
183
142
158
155
145
191
197
189
140
182
198
188
169
163
172
156
192
149
180
178
189
185
165
154
187
175
187
171
144
175
145
166
181
180
183
187
161
153
165
180
168
171
167
161
164
179
190
143
142
143
142
140
149
143
147
174
194
167
149
143
169
180
179
157
148
168
197
158
190
142
183
141
152
168
183
168
145
182
173
177
168
198
178
184
167
154
167
160
174
193
188
155
167
192
183
198
156
197
141
187
163
178
178
167
193
166
177
158
169
197
195
173
198
148
140
156
145
168
178
168
151
188
189
184
160
165
174
155
153
146
164
176
151
192
152
173
177
190
142
154
197
196
166
183
195
183
172
149
179
155
184
195
200
181
174
157
155
165
192
174
159
191
163
181
158
177
155
149
160
177
155
200
148
147
200
174
194
155
188
173
178
164
195
154
158
186
186
165
168
160
171
159
161
147
197
150
170
171
162
195
194
165
192
198
152
149
179
144
184
169
193
157
170
179
173
157
158
158
182
160
180
155
183
172
175
174
181
191
156
195
173
144
141
159
169
158
176
189
153
149
166
166
187
146
147
155
164
175
190
159
172
173
168
185
165
173
166
141
169
162
140
150
158
197
148
199
199
144
144
155
183
195
145
155
144
141
184
159
191
174
146
195
180
194
173
193
186
187
187
171
162
150
164
148
143
150
196
141
164
162
165
143
158
156
150
191
162
197
143
190
145
198
196
181
169
198
184
162
146
183
163
145
185
144
198
153
167
145
194
150
165
167
162
175
162
160
168
141
180
179
185
175
165
171
198
140
195
199
158
173
199
183
178
144
145
182
140
156
185
181
164
169
179
181
156
144
197
158
175
156
175
184
171
187
156
146
185
148
168
172
142
188
181
160
147
161
142
166
159
156
144
161
198
143
156
188
188
152
151
142
196
171
165
144
163
172
176
153
183
161
144
151
152
158
182
163
155
193
180
166
174
195
192
143
189
164
175
187
169
142
172
199
165
198
150
159
141
151
146
178
174
143
151
199
170
183
180
157
152
153
172
198
178
175
154
167
150
186
199
191
167
186
174
154
179
156
170
178
156
149
168
187
142
170
150
154
145
150
180
160
180
174
178
189
143
193
158
184
148
168
184
177
190
188
179
178
182
198
158
191
148
142
166
143
147
188
180
146
159
175
163
173
192
168
144
149
193
200
172
183
169
198
151
185
155
173
167
178
161
167
174
165
167
196
164
195
150
179
197
150
183
150
199
190
167
149
148
168
180
178
155
144
176
198
194
150
146
175
197
146
147
148
181
154
164
140
165
186
189
192
181
188
173
175
196
143
178
185
164
187
166
156
195
164
183
172
143
193
155
166
170
152
181
188
141
140
175
182
169
195
197
150
190
194
174
176
152
175
159
185
178
196
157
176
179
200
162
190
192
189
193
194
164
155
198
176
149
157
189
181
199
144
142
171
160
159
187
162
183
167
156
176
193
165
180
153
165
175
162
145
150
177
144
196
170
142
181
158
200
184
180
172
193
199
189
175
160
158
199
199
145
144
171
182
189
152
158
183
189
200
142
155
156
187
193
200
153
185
178
163
199
153
184
167
197
191
156
145
155
141
146
145
168
183
170
143
190
187
143
199
145
160
181
185
184
148
166
141
181
169
159
171
183
179
162
169
154
161
194
141
154
196
143
162
192
160
180
181
147
169
200
188
199
182
165
192
163
184
145
196
154
166
169
147
153
177
167
186
151
194
169
184
165
147
190
148
176
149
193
175
160
152
187
194
182
182
160
164
172
188
161
171
151
178
186
146
159
175
174
162
154
168
192
146
180
193
141
150
200
141
141
175
184
194
154
198
191
143
144
142
145
152
198
145
186
156
163
185
157
143
145
141
187
169
160
168
153
195
147
151
162
191
176
177
161
194
192
150
172
195
170
178
149
165
185
173
158
178
141
194
162
146
185
181
194
155
147
171
171
183
189
182
160
165
161
179
148
195
199
146
141
191
197
163
165
140
165
142
191
178
173
200
146
147
147
186
157
177
166
144
153
189
143
186
154
189
156
176
181
178
181
178
147
153
168
144
197
167
179
141
194
147
145
184
178
184
176
153
141
156
175
196
160
154
167
187
196
174
153
169
151
162
145
159
190
181
197
200
189
190
160
148
160
161
199
158
181
199
155
168
182
187
175
155
166
175
147
166
192
158
192
175
144
195
144
149
164
156
192
147
151
154
193
157
185
175
186
166
177
186
155
145
183
192
197
163
198
162
194
164
153
140
182
200
172
188
178
160
168
180
185
182
163
175
154
170
140
197
167
145
162
162
143
145
194
142
141
154
194
154
155
166
178
200
155
146
143
173
143
181
198
196
146
161
143
148
146
160
199
192
182
176
156
169
148
159
179
174
159
171
155
145
154
160
190
149
197
171
177
162
184
192
140
168
154
175
164
144
196
173
178
171
198
190
166
146
185
169
172
188
176
150
197
162
162
188
182
162
162
192
149
197
184
173
154
171
184
168
194
195
181
181
156
156
150
179
173
142
197
196
174
195
183
174
183
147
170
181
181
195
180
189
160
162
198
151
172
190
149
151
172
151
151
193
153
156
181
162
154
158
186
150
175
196
159
178
140
144
167
192
157
194
184
175
192
178
142
175
152
184
196
166
140
192
175
168
169
156
157
171
154
191
177
163
188
145
171
187
161
197
196
177
194
140
183
145
198
197
145
167
200
179
192
195
146
184
168
190
196
156
159
186
185
182
189
178
143
177
149
144
173
154
199
173
192
157
164
181
173
176
187
162
152
192
178
167
144
200
156
152
174
180
178
192
160
144
164
184
168
184
140
183
151
172
186
194
195
189
191
195
173
185
177
148
173
180
187
156
174
175
165
171
159
193
144
190
200
188
147
145
177
161
185
156
147
159
142
189
174
186
193
158
175
189
153
152
175
188
149
151
198
170
177
151
171
141
166
171
196
147
175
151
150
168
192
142
155
157
178
175
154
166
195
172
153
180
161
172
158
162
155
165
184
163
180
155
164
175
149
195
156
167
175
141
160
188
153
189
158
196
192
198
148
164
176
178
163
168
154
180
184
144
164
186
200
176
190
142
151
148
159
197
179
171
189
146
151
188
177
158
192
188
145
168
186
181
186
171
164
158
141
150
176
181
193
153
150
191
171
175
194
167
177
161
185
189
156
172
157
196
193
179
168
163
188
140
170
150
151
155
154
173
186
159
181
200
165
199
190
150
167
147
142
161
167
176
170
200
179
174
141
174
153
178
187
195
147
141
164
146
176
148
146
195
196
147
191
200
160
193
167
169
159
184
142
140
196
157
176
193
149
154
157
184
142
154
143
161
194
148
175
173
191
160
178
151
144
165
148
181
171
151
184
178
199
142
155
198
155
157
159
161
141
172
186
193
175
162
174
155
194
177
161
200
185
146
152
188
166
180
191
186
142
197
175
187
180
183
200
174
187
157
186
178
194
169
173
159
179
164
154
170
195
199
143
159
170
194
195
146
156
178
194
147
199
174
173
168
151
153
153
171
173
178
176
191
183
151
179
178
196
193
170
162
195
170
192
165
192
190
177
156
182
169
176
170
178
140
152
194
162
179
189
152
174
197
195
173
173
150
162
189
153
174
147
198
195
198
146
161
166
151
178
200
162
165
146
162
142
147
195
149
181
164
192
161
159
161
194
191
183
151
149
164
163
151
153
163
198
149
169
149
140
155
183
198
141
155
166
166
181
183
151
145
183
198
178
199
161
171
154
169
150
146
183
162
159
158
169
148
149
187
200
160
149
194
160
140
144
159
182
159
182
190
141
182
196
196
145
195
193
200
187
151
196
150
193
193
173
189
164
144
156
147
182
191
182
143
168
191
189
197
146
175
158
165
169
145
185
180
176
141
161
185
172
165
187
186
141
197
183
182
188
200
186
183
143
172
152
166
184
197
170
196
165
151
179
174
147
177
155
171
195
141
168
191
150
142
161
189
177
188
191
157
163
166
161
164
158
183
189
167
191
176
188
165
188
157
186
148
200
187
150
171
156
190
185
151
188
167
191
172
188
166
177
196
160
144
186
200
152
176
199
149
170
145
152
148
162
154
145
172
155
164
177
176
148
172
177
181
152
198
186
156
198
171
151
143
150
186
157
158
141
144
141
169
190
171
198
184
146
154
151
160
172
170
186
168
169
144
153
155
166
152
144
183
159
174
140
180
193
184
168
143
191
157
168
185
180
151
196
171
152
142
185
195
177
164
175
193
161
161
179
147
183
200
148
168
172
187
159
144
186
168
170
192
194
184
168
190
142
196
189
176
155
150
142
189
160
171
160
176
175
146
190
166
197
145
153
178
155
188
187
173
192
140
182
152
167
148
155
159
151
148
167
145
171
167
170
158
161
168
154
184
185
152
140
192
146
182
146
161
184
155
166
179
150
189
140
178
186
172
140
199
180
153
161
187
199
192
194
171
155
184
140
182
169
187
175
163
193
179
186
176
167
155
142
176
154
198
151
181
165
164
147
141
161
155
170
199
193
189
174
181
192
189
143
188
197
182
191
157
177
148
162
156
186
174
179
190
189
193
155
149
185
200
158
146
143
142
155
184
181
181
200
159
155
190
154
150
188
193
148
155
182
180
169
199
167
192
169
191
166
174
177
153
186
185
141
192
170
195
167
153
174
189
141
162
181
173
194
164
196
200
162
186
164
141
158
160
165
175
168
179
176
163
162
184
196
177
190
156
176
165
189
178
164
182
196
199
175
143
157
177
198
196
170
171
191
187
165
160
158
197
165
173
166
145
157
158
191
191
186
166
154
176
164
148
165
187
148
163
191
178
184
150
188
189
160
200
187
177
157
167
153
165
158
159
155
174
200
189
166
172
195
155
161
140
160
156
140
157
147
191
155
168
195
190
162
177
191
163
156
161
163
165
153
174
153
195
168
193
197
176
144
168
198
186
164
179
183
166
167
176
183
157
182
162
188
162
185
160
158
171
153
192
154
200
145
140
145
159
159
199
165
195
164
197
193
190
148
154
189
143
197
143
179
189
149
176
199
147
163
186
192
192
186
156
193
154
148
146
161
154
156
182
168
157
191
193
181
200
142
171
153
172
200
195
166
162
146
162
157
170
191
141
168
142
182
166
147
192
174
187
167
188
180
161
177
140
143
184
142
170
189
162
169
191
182
181
180
146
182
182
152
174
174
171
193
141
168
183
176
149
169
175
199
189
185
182
192
171
193
194
168
160
165
156
183
165
145
200
168
189
168
140
164
184
197
171
179
197
170
186
163
193
163
165
185
176
161
173
155
152
167
186
193
185
172
190
172
141
167
182
158
143
185
176
189
157
182
166
151
189
141
190
162
187
196
155
188
197
153
179
186
178
166
162
195
172
151
193
144
158
179
148
166
174
192
168
150
168
171
179
142
167
191
200
158
140
182
176
199
182
146
153
182
163
189
182
190
194
146
159
165
154
168
152
199
147
166
183
144
179
200
189
140
178
156
189
177
158
191
190
177
182
149
191
169
179
179
160
186
141
147
186
196
157
200
159
152
185
144
152
164
184
170
140
170
162
174
152
188
194
190
166
186
145
162
196
147
195
153
152
188
159
147
190
195
170
190
141
158
170
200
197
148
169
141
163
194
153
166
162
167
157
150
147
165
151
155
169
177
177
168
158
165
161
166
147
177
141
186
184
141
162
188
188
176
190
156
154
145
146
170
154
165
188
156
178
172
167
175
178
167
141
184
179
185
159
165
143
150
200
186
144
166
147
169
189
171
161
144
140
188
195
173
187
199
196
200
169
186
156
154
165
195
198
163
161
140
157
173
165
194
171
182
163
200
186
165
180
193
178
153
175
163
167
174
198
157
158
174
181
152
191
159
141
170
181
158
173
145
151
142
163
187
149
168
177
200
162
188
155
190
195
144
163
159
178
191
167
160
193
155
146
188
182
149
182
200
188
148
187
199
154
164
182
142
172
173
176
160
163
172
191
184
158
142
200
146
178
198
143
156
158
156
194
177
163
178
196
190
141
200
147
175
155
194
151
142
164
160
182
168
146
157
184
175
191
188
163
188
160
161
196
147
179
164
173
192
194
185
153
152
165
163
194
152
163
144
151
162
181
177
183
197
147
176
169
152
173
152
190
157
200
153
162
173
171
193
199
142
146
140
162
146
149
170
183
172
194
182
188
192
157
191
158
199
159
195
153
173
172
196
147
183
191
194
170
173
155
148
162
163
147
149
150
162
177
175
178
167
147
150
168
159
182
188
171
173
154
159
140
172
161
141
195
140
150
165
173
141
177
183
190
179
167
196
167
181
172
180
163
184
171
164
193
196
153
186
197
185
142
180
146
179
196
148
147
173
154
189
147
179
179
196
147
164
155
148
195
171
141
173
176
166
146
179
143
151
165
154
200
162
173
172
159
158
151
168
157
179
182
155
178
195
188
187
198
151
154
178
148
143
189
143
163
176
184
162
169
191
177
144
179
198
147
184
147
170
140
161
163
162
190
152
148
165
167
191
161
175
192
174
155
189
165
166
172
173
191
193
187
145
151
156
176
148
169
167
141
145
193
141
155
162
153
159
164
147
183
198
178
147
146
186
143
177
159
153
179
145
149
186
158
147
174
147
174
149
157
144
173
153
194
180
180
179
169
162
146
154
160
148
173
186
151
148
168
149
159
147
159
186
182
175
154
176
197
199
153
192
145
171
183
177
181
171
140
172
145
200
150
188
152
172
145
174
168
157
177
190
189
168
161
147
182
184
177
166
144
170
147
140
177
168
194
190
157
173
165
183
172
153
172
191
186
142
141
191
199
161
163
145
146
164
168
154
153
145
141
191
163
160
165
189
156
192
149
167
150
147
187
153
170
199
146
174
150
169
179
165
200
187
165
153
192
142
168
150
156
182
190
172
176
162
168
192
182
156
150
151
163
144
146
185
154
176
186
186
156
154
198
166
171
165
169
177
171
152
151
167
173
141
171
145
150
176
152
160
190
193
171
147
165
198
172
176
152
199
194
163
158
151
144
150
179
178
173
164
187
195
200
185
149
170
156
166
170
154
175
169
156
146
174
168
170
181
150
153
179
183
183
164
164
182
152
182
186
169
146
186
199
188
191
177
176
176
190
192
150
173
169
182
163
185
176
187
182
153
145
163
177
155
158
182
142
163
176
147
197
158
146
145
195
141
198
147
184
141
173
179
168
149
196
168
154
194
185
190
143
186
162
185
197
178
174
164
195
155
164
200
196
147
161
177
144
153
141
193
153
169
177
171
164
191
185
142
184
157
146
166
190
193
175
153
169
164
173
144
143
151
155
151
150
163
161
155
177
198
162
186
183
197
180
194
187
183
165
148
156
177
173
152
195
161
182
177
169
161
187
175
169
165
187
190
191
186
171
200
182
152
140
194
186
194
159
164
179
150
168
153
182
145
185
168
192
180
193
156
143
195
147
173
173
198
197
141
180
143
152
196
167
152
152
194
143
169
156
180
142
148
143
194
197
140
150
192
173
169
181
185
140
182
185
176
160
191
155
156
176
158
188
157
180
182
186
187
200
173
172
157
146
192
197
182
169
176
184
198
156
181
140
170
177
190
142
156
175
142
189
195
186
196
168
168
161
199
176
150
144
161
181
196
159
154
198
149
152
186
197
196
169
151
164
199
182
150
165
179
182
156
150
147
187
155
180
141
191
191
166
182
184
184
173
181
143
185
173
163
164
155
174
149
192
179
162
154
189
162
176
184
150
144
150
198
169
182
163
166
172
156
174
151
157
153
150
172
185
180
199
178
176
187
174
165
153
184
185
150
175
189
174
153
158
190
169
155
151
176
190
141
189
172
170
143
188
153
182
155
183
199
179
171
160
159
187
186
187
161
161
165
152
178
180
168
199
176
143
197
155
191
185
186
195
185
154
195
182
189
200
141
197
179
186
158
187
173
189
169
193
172
165
176
154
153
200
189
147
150
170
184
141
191
178
193
196
159
146
195
180
173
185
199
178
184
184
180
172
164
184
179
169
196
168
160
164
146
179
167
150
146
146
159
166
160
163
177
197
200
192
170
177
159
186
142
163
162
157
181
180
181
189
161
200
170
149
190
170
157
190
173
187
183
140
156
178
188
174
190
198
195
146
146
150
181
168
188
176
144
170
157
190
145
150
193
190
159
142
187
184
175
172
170
149
196
198
151
163
166
174
175
198
144
177
181
189
173
167
142
192
185
197
191
194
194
178
188
153
192
189
154
140
149
198
151
153
173
141
153
178
188
143
175
149
146
184
191
171
161
184
181
151
192
143
147
186
159
151
159
195
163
154
180
166
165
189
187
172
149
155
176
185
151
155
177
148
140
192
165
163
163
177
188
198
183
150
181
143
175
183
140
146
177
174
195
200
149
145
167
143
145
200
144
188
161
143
145
140
168
160
181
190
185
158
147
178
158
178
168
179
160
178
143
154
182
185
160
158
171
188
162
180
177
148
141
177
162
164
150
180
159
141
157
144
182
165
150
160
198
166
186
150
140
166
140
192
161
199
144
187
182
153
142
166
189
163
168
145
166
164
154
149
147
150
154
199
199
198
161
152
200
144
171
170
188
155
190
173
168
142
152
184
185
156
174
185
187
146
192
192
140
176
141
199
158
171
160
193
142
152
166
165
162
195
193
195
192
165
172
141
173
152
145
174
141
192
154
153
177
147
186
169
143
191
189
157
156
151
147
173
169
150
196
152
171
177
143
167
186
200
152
199
150
185
196
167
183
197
169
164
173
168
147
146
153
197
176
175
193
141
162
169
177
144
148
171
186
163
184
140
149
153
167
154
174
140
192
199
155
162
181
143
197
198
192
149
173
152
143
198
154
182
169
153
184
150
187
167
165
145
163
165
145
144
160
191
186
143
143
187
163
151
168
179
168
162
178
151
188
198
181
178
181
153
189
200
181
176
169
174
147
143
163
167
148
178
184
148
191
142
183
186
156
148
198
157
147
197
197
151
161
161
181
165
140
155
154
144
181
189
189
140
192
199
141
177
142
169
145
194
155
145
158
142
180
157
175
172
161
151
189
151
140
168
189
167
195
196
190
148
181
179
148
157
168
163
150
145
143
157
185
185
195
189
194
166
171
141
174
148
151
140
159
183
141
164
163
179
198
157
167
187
147
167
141
193
175
167
196
161
188
193
177
144
186
161
156
194
141
153
145
152
163
165
197
192
151
155
196
156
168
148
166
148
188
179
176
191
148
191
200
184
196
198
156
178
177
145
174
199
198
170
159
186
167
152
194
187
149
193
198
198
185
141
171
193
171
200
149
184
166
165
199
152
154
147
179
180
149
143
172
193
164
142
197
163
196
159
194
172
183
151
185
195
186
200
174
200
187
189
141
200
176
192
157
177
173
161
194
162
149
181
150
162
199
148
164
151
163
158
157
165
165
183
188
151
193
199
181
153
150
182
177
167
173
189
154
148
150
154
140
149
152
165
158
184
162
174
144
165
179
172
166
181
155
190
172
145
198
182
141
147
182
153
175
200
181
166
163
176
142
155
186
162
155
192
156
158
151
176
187
177
198
148
160
171
161
158
190
156
171
146
146
198
145
142
155
200
185
156
167
177
162
197
196
168
145
161
184
187
157
186
156
197
148
195
192
185
197
168
163
167
175
184
185
190
188
200
155
167
169
156
159
183
144
153
155
180
150
160
158
197
168
158
153
145
184
149
198
186
170
189
152
162
157
149
168
145
148
191
161
193
179
175
159
169
184
170
173
171
180
163
174
160
170
166
148
194
149
151
166
187
187
196
198
189
141
177
177
192
144
175
160
151
177
155
153
158
156
195
178
176
197
172
146
160
180
159
180
140
141
184
188
182
154
144
152
169
189
183
196
174
196
192
159
143
158
172
199
164
149
159
152
189
198
171
159
152
166
178
199
141
156
168
195
155
169
159
187
147
197
151
189
196
154
181
144
168
197
175
158
172
162
183
180
171
160
169
185
160
185
144
161
187
153
191
149
180
190
191
191
172
184
189
192
183
140
148
179
168
140
151
151
177
193
198
140
192
156
156
199
190
182
162
140
140
199
161
198
176
144
140
147
183
185
164
172
154
161
184
146
172
199
157
145
168
192
148
163
186
149
159
150
199
165
155
149
150
181
150
172
178
154
134
134
134
140
133
114
144
107
116
114
140
146
101
101
126
141
110
122
134
146
149
126
139
134
142
140
111
146
145
137
122
138
111
101
130
123
100
126
125
104
140
133
101
112
130
122
103
119
105
127
130
150
148
116
111
114
128
130
140
119
142
146
133
136
148
129
117
139
139
126
146
113
109
119
131
138
136
100
119
100
134
143
102
134
114
139
125
111
114
136
147
144
108
139
134
106
114
129
132
109
134
116
141
145
134
117
131
120
105
114
116
108
119
114
139
149
136
122
127
133
105
149
106
117
112
105
134
126
100
129
121
119
131
115
118
136
118
137
148
125
147
140
135
112
142
124
110
109
102
125
109
134
102
111
107
149
150
139
138
138
129
112
145
128
105
148
107
124
110
131
126
130
143
140
127
109
110
121
142
122
112
117
146
113
141
147
120
107
100
135
132
116
141
124
101
147
122
100
102
109
132
143
100
119
122
144
144
107
119
143
144
112
150
104
129
140
146
124
129
148
146
108
129
116
110
100
130
142
139
140
150
106
130
123
109
104
109
118
133
115
109
140
119
106
124
125
123
135
131
140
137
114
137
142
126
135
149
134
143
113
135
145
142
111
114
103
138
133
102
105
144
134
113
100
115
122
111
115
142
123
143
117
128
121
102
121
100
110
111
111
102
145
134
125
138
128
100
100
126
150
134
123
116
128
142
145
143
108
127
139
150
147
127
113
142
114
142
122
149
125
106
118
110
115
119
131
118
117
104
127
143
129
124
107
115
130
111
146
119
109
150
145
109
108
134
121
134
108
144
124
124
101
139
135
139
110
141
144
130
120
116
115
102
100
146
103
110
117
145
125
130
127
140
111
149
130
101
110
119
148
149
141
102
128
115
122
140
126
135
114
102
109
140
123
149
125
110
134
101
101
102
120
141
134
144
114
128
102
121
103
129
130
111
120
129
128
112
109
139
132
136
106
121
124
148
120
134
141
109
148
107
143
143
102
141
109
120
111
150
144
113
124
106
125
126
129
121
100
100
141
146
120
107
133
126
115
118
111
133
127
132
124
127
115
137
117
102
105
114
148
148
131
110
103
136
148
140
119
123
143
132
119
124
105
112
100
146
131
147
140
108
127
139
125
147
134
106
126
118
106
111
129
115
100
114
128
127
108
138
132
111
137
112
110
131
129
115
122
119
124
109
102
137
147
105
132
139
108
106
143
140
117
128
117
113
149
122
126
123
146
100
134
116
108
104
130
139
131
124
113
142
109
121
120
130
148
102
132
123
148
138
150
117
148
124
141
137
146
125
100
135
105
132
113
133
148
100
107
104
105
114
108
118
146
104
114
148
145
147
110
111
122
114
107
100
150
131
101
125
146
146
137
112
101
109
145
119
133
120
124
124
140
126
128
114
102
125
102
128
111
129
120
132
131
138
117
141
106
101
101
145
147
101
118
132
131
131
120
103
122
124
148
100
110
110
120
116
114
139
138
136
144
102
108
131
124
144
103
137
111
144
117
140
116
133
140
112
111
130
134
107
101
138
100
146
103
117
109
136
125
124
144
124
113
115
111
114
147
109
100
127
108
136
102
113
136
105
149
127
123
116
119
109
143
110
131
113
148
148
139
109
150
131
146
120
101
146
119
134
125
111
107
125
104
150
138
144
123
125
139
140
138
130
141
111
104
106
116
124
149
114
111
100
118
124
125
147
113
123
105
118
146
112
149
150
120
146
122
114
138
129
123
112
110
128
130
130
132
134
121
125
111
143
117
109
137
120
118
141
136
140
115
100
121
128
122
133
109
108
148
117
141
121
103
118
107
132
150
139
105
135
108
121
103
129
101
134
111
118
108
138
142
127
109
129
105
150
138
114
109
106
144
106
120
124
148
141
140
132
121
133
110
107
106
108
125
137
106
130
142
111
116
119
118
121
135
137
117
139
113
109
107
110
110
120
144
150
141
111
118
145
112
127
134
121
140
140
128
135
102
110
114
113
136
135
137
147
117
118
142
113
131
123
121
141
125
102
140
121
137
109
138
141
105
137
129
126
143
135
116
116
126
132
127
129
117
138
102
134
150
104
134
120
114
112
129
118
141
118
145
129
121
138
119
122
104
132
134
142
112
145
117
103
134
128
112
129
143
135
141
109
139
108
131
108
147
137
108
132
126
118
128
145
110
101
149
137
126
144
108
146
125
145
134
123
100
126
138
124
150
137
137
117
120
111
141
133
130
110
116
116
137
104
148
141
119
107
117
102
126
114
122
118
126
126
150
110
115
110
129
140
125
115
148
141
121
118
112
135
150
122
119
106
138
106
121
116
116
107
126
108
134
136
142
109
114
117
129
123
104
127
123
142
147
112
127
102
125
134
131
105
150
125
103
134
113
142
117
134
121
129
105
138
123
143
107
136
103
103
101
130
115
120
127
140
115
134
112
141
144
132
123
149
130
102
106
136
102
116
141
107
139
107
118
110
118
102
122
127
102
126
149
146
104
123
139
114
140
143
112
143
146
142
114
101
113
117
123
138
124
124
147
134
107
114
140
142
131
140
150
103
109
133
104
137
148
150
135
145
135
139
113
143
125
131
111
132
116
146
110
127
102
114
105
111
113
122
118
136
140
146
124
148
100
100
150
139
112
141
125
116
123
105
114
120
142
131
125
116
115
145
120
118
150
144
139
138
121
116
132
131
149
126
145
115
140
119
102
131
136
117
139
122
103
132
120
120
128
133
107
143
112
124
105
140
113
132
100
127
141
112
109
139
104
116
126
108
118
114
123
103
124
100
104
147
138
140
125
136
100
145
110
102
102
133
148
136
116
104
143
109
109
120
110
108
105
103
125
137
105
112
117
128
110
126
116
124
138
140
147
132
131
131
104
147
115
116
140
112
117
123
126
143
116
123
107
100
109
138
129
126
105
137
102
104
129
146
144
118
148
122
100
133
140
109
147
134
122
149
114
127
143
121
115
130
135
122
124
150
141
107
129
134
105
132
122
126
146
147
121
135
119
142
131
127
122
122
111
101
127
104
126
120
134
126
107
115
108
135
140
132
146
102
111
124
100
109
125
121
136
109
111
130
111
148
127
126
126
147
139
116
104
130
125
114
144
141
120
142
103
108
141
117
109
110
143
127
126
125
116
126
142
134
124
119
129
124
122
113
132
107
150
105
130
136
116
110
120
133
104
135
126
124
103
101
140
107
140
140
141
107
149
120
150
106
132
118
120
137
129
103
116
124
128
140
119
102
136
121
118
136
129
104
110
148
147
133
126
104
150
150
124
131
110
118
148
102
140
101
103
125
104
110
138
132
144
147
131
113
128
125
121
111
104
141
108
133
102
108
118
139
136
112
112
131
104
139
105
138
128
144
131
108
104
124
133
149
123
127
128
137
103
144
142
111
109
126
132
127
147
111
129
119
138
141
139
150
145
113
108
104
102
103
107
123
142
105
135
127
127
103
106
116
134
149
128
141
102
126
125
111
123
114
134
143
150
106
101
129
125
128
137
149
114
148
146
100
136
139
150
112
102
144
124
139
137
130
109
136
141
137
137
108
131
119
143
143
144
122
138
116
105
136
124
116
133
110
104
120
112
134
133
108
150
140
107
100
124
113
114
145
129
144
113
147
130
108
119
127
134
113
107
102
110
119
116
113
123
136
104
149
120
110
125
121
104
117
148
140
103
140
124
105
105
128
134
109
138
136
150
103
139
123
147
137
106
101
106
105
148
122
137
122
123
132
134
108
141
146
139
137
107
117
111
139
134
144
133
100
106
105
150
143
138
129
112
115
115
105
116
135
115
144
124
150
140
110
100
147
137
130
113
143
118
138
126
146
148
114
105
114
107
137
140
101
111
118
125
123
123
142
105
127
140
137
140
102
101
102
116
135
110
134
104
122
143
140
103
150
113
145
116
148
113
113
137
118
115
124
147
134
106
143
137
142
142
128
135
103
105
121
122
149
143
149
112
141
140
136
137
110
134
135
135
143
135
113
100
103
145
122
134
143
130
146
103
131
130
103
104
124
148
105
105
115
123
101
127
128
119
140
143
104
105
107
116
121
111
124
124
111
101
111
100
127
112
150
149
126
138
104
104
136
140
142
103
143
109
135
127
108
144
100
132
115
112
106
150
100
104
116
149
136
134
134
104
137
101
124
148
148
104
124
107
140
113
135
140
121
105
142
149
127
127
144
106
108
146
143
113
121
141
124
148
127
145
123
102
123
113
117
118
101
106
114
135
104
129
111
133
102
101
134
126
118
135
138
147
133
115
107
148
139
110
141
134
142
130
146
141
111
112
109
139
100
103
150
109
102
146
147
107
147
140
109
142
101
105
128
146
121
107
126
100
146
150
139
143
131
110
118
144
137
136
118
131
105
143
137
101
134
100
120
146
117
136
124
109
118
131
107
111
135
137
119
122
111
132
130
134
116
138
122
149
144
144
134
124
111
102
134
147
100
123
149
150
126
106
149
149
136
147
141
113
104
118
140
110
129
140
109
115
106
100
120
147
146
150
115
150
144
103
137
135
109
107
148
100
131
148
117
116
106
137
121
119
148
138
101
144
149
134
100
143
145
125
104
129
105
131
147
147
123
107
148
120
134
141
142
130
140
117
147
103
134
128
101
115
126
137
127
104
147
131
124
114
128
103
141
143
130
100
144
111
150
127
137
126
125
122
135
135
117
129
144
139
101
143
119
149
135
120
144
109
130
132
130
110
128
139
145
143
141
103
124
129
116
124
144
121
134
108
123
132
128
115
125
134
101
137
107
108
125
108
146
115
109
120
109
137
111
122
106
135
106
122
140
145
128
106
109
118
136
128
115
129
104
105
118
138
126
134
108
116
138
138
100
106
118
107
124
135
136
120
145
141
142
116
149
104
148
146
134
111
104
118
110
138
107
123
106
123
148
111
148
115
101
127
106
100
106
107
125
143
145
129
135
143
137
131
140
147
118
128
108
148
100
105
117
150
131
120
115
143
143
103
103
119
125
137
109
119
115
135
110
147
139
107
142
145
118
106
137
145
147
101
122
105
104
138
137
137
144
136
140
117
110
146
121
150
121
132
122
144
140
141
135
117
125
117
106
119
123
146
138
148
127
129
149
103
141
110
111
128
138
113
115
109
120
148
119
118
116
130
111
141
143
110
126
106
130
142
147
109
115
111
125
102
101
140
107
121
122
137
139
120
110
146
130
107
143
108
112
102
117
128
103
150
149
134
146
100
130
140
107
133
122
127
124
119
128
101
122
102
123
119
127
113
143
147
146
103
137
143
129
142
144
143
107
135
129
111
146
133
143
134
119
120
115
113
114
120
139
135
135
120
147
140
134
124
120
106
127
150
122
148
123
104
132
123
116
129
139
121
118
113
121
117
131
130
133
131
110
128
111
135
145
110
130
124
107
111
133
150
117
150
132
126
149
118
142
108
142
112
127
115
101
112
105
132
122
117
117
145
145
143
117
133
143
141
112
147
125
139
101
119
146
149
104
150
110
124
130
108
150
111
116
113
138
150
117
124
133
121
105
108
101
134
119
129
133
107
105
139
116
109
136
149
121
123
147
109
100
127
148
124
143
106
118
102
130
133
129
146
136
105
103
142
120
112
127
150
142
113
124
118
136
139
134
104
114
106
119
108
106
111
105
111
130
110
128
140
114
138
115
127
123
111
128
101
130
127
101
134
140
117
114
106
108
145
123
136
136
138
140
128
113
100
121
129
124
106
139
105
129
115
146
104
145
111
108
117
100
114
144
148
128
122
113
107
135
127
120
105
131
108
110
123
117
114
128
137
125
104
109
115
139
118
132
112
112
147
105
102
125
118
126
142
138
115
119
117
119
115
138
101
109
103
138
138
147
143
137
104
134
130
150
124
114
128
130
125
115
138
117
100
118
114
139
124
123
104
135
142
103
107
106
122
126
130
145
128
105
140
114
129
150
140
138
145
127
125
104
133
138
133
107
111
101
108
109
118
127
144
114
104
122
144
118
145
147
148
114
125
106
135
119
110
145
112
121
114
141
108
132
149
123
132
103
146
122
138
123
132
129
135
125
105
121
135
113
149
106
148
113
100
103
145
118
133
105
143
114
134
107
118
147
102
115
119
136
110
115
145
122
129
149
129
128
124
112
142
134
119
137
136
103
142
108
121
144
149
116
139
142
144
122
117
111
149
115
121
112
136
116
149
141
120
130
135
143
141
100
132
124
149
106
102
130
108
133
120
104
136
121
117
134
149
130
132
140
129
140
100
135
136
123
127
132
111
128
113
147
112
119
145
148
101
128
107
120
131
147
124
135
115
118
105
118
117
135
140
122
105
102
126
132
102
137
140
105
148
127
135
142
142
132
126
101
102
141
120
146
150
127
118
130
147
135
117
133
114
142
146
146
116
119
122
145
106
118
127
141
139
140
134
138
108
105
107
116
132
114
133
130
101
102
123
131
118
113
133
119
137
133
112
119
104
106
130
146
120
128
145
130
109
110
133
115
116
108
121
136
147
146
116
105
142
117
117
109
150
122
104
109
144
105
113
143
120
134
140
150
114
130
131
121
150
146
140
103
143
119
129
135
138
122
135
108
131
129
128
120
126
111
140
112
123
135
106
133
148
141
107
138
135
109
148
121
114
107
141
136
123
130
103
102
109
146
102
129
148
143
144
130
142
135
136
145
139
139
103
146
129
114
131
145
142
148
146
115
132
105
136
141
148
103
138
102
117
111
139
150
134
138
118
139
145
143
144
122
114
127
114
126
133
122
100
109
147
136
130
104
102
112
150
120
139
140
128
120
108
106
129
129
103
119
122
101
102
146
106
108
115
100
139
129
131
109
129
121
112
104
106
106
109
132
110
110
114
109
148
108
146
127
125
138
109
100
110
148
103
147
126
102
118
134
128
117
135
110
141
145
103
106
116
124
124
122
148
143
135
123
106
123
129
110
130
104
105
117
108
115
118
148
103
138
117
136
122
139
142
130
141
144
146
119
142
129
139
131
143
109
108
121
111
104
126
107
120
145
135
124
127
119
116
112
141
137
100
142
106
147
146
133
136
113
118
106
135
134
130
105
142
143
108
125
107
104
106
125
101
147
147
115
130
129
140
115
134
136
143
150
118
124
129
148
115
129
119
114
124
134
111
148
146
105
145
130
113
130
132
128
108
112
104
112
135
103
136
101
120
140
104
128
121
108
142
144
103
105
125
133
124
136
134
128
115
133
123
135
132
103
119
118
133
117
125
117
101
137
119
140
138
111
132
119
136
139
121
134
131
129
139
144
142
105
137
120
129
115
113
119
135
149
116
144
141
112
142
136
146
119
125
124
120
128
143
141
133
134
112
100
121
116
112
124
134
129
144
109
108
137
125
150
103
136
127
110
127
121
113
117
109
143
129
148
110
116
128
128
101
109
105
143
146
149
110
126
115
142
128
135
136
101
117
134
130
109
121
148
134
140
116
144
142
111
121
134
135
131
114
104
148
135
138
116
120
116
113
147
119
116
105
127
146
107
119
113
106
141
136
103
145
146
150
100
136
117
137
103
149
115
100
143
102
126
119
135
124
121
123
109
131
131
101
120
116
124
110
120
111
145
150
123
108
139
100
128
118
137
149
101
112
122
103
125
113
125
132
101
104
104
101
136
124
111
124
144
125
108
129
121
133
126
119
147
128
143
102
129
128
110
111
118
136
147
121
100
149
119
132
128
127
133
112
118
118
150
129
140
125
140
148
133
109
149
110
119
133
107
148
103
117
126
118
133
147
148
133
135
134
147
112
119
148
142
122
121
118
133
100
128
101
145
128
122
112
126
117
101
115
134
121
149
118
145
137
106
127
150
121
136
127
141
105
105
147
110
126
102
124
122
116
123
137
141
111
119
117
131
128
112
149
110
135
124
110
129
129
132
140
113
104
118
123
134
146
126
107
107
144
133
117
104
131
105
127
150
142
105
122
141
102
145
128
131
139
113
123
113
105
116
121
135
134
150
127
103
135
129
137
114
125
122
124
105
120
144
124
122
149
131
146
113
124
116
127
147
128
105
117
149
130
148
131
107
135
135
145
102
134
107
107
102
133
135
104
104
114
105
112
136
117
124
131
148
109
147
143
125
130
134
103
116
142
144
106
101
111
122
133
127
148
137
137
134
141
138
114
120
120
114
116
131
136
149
125
145
142
139
126
123
111
102
131
145
129
104
111
121
140
110
114
122
105
107
113
145
120
119
142
107
134
118
127
116
108
113
115
130
119
112
145
123
110
132
125
142
111
123
120
124
131
148
110
132
103
114
110
118
133
104
102
133
141
108
141
144
124
110
118
129
141
123
140
134
146
147
141
101
126
135
100
107
103
126
107
146
127
104
127
129
127
105
100
122
103
126
106
143
111
102
144
129
120
124
111
119
100
107
109
112
131
136
115
101
150
130
138
103
137
110
134
112
140
127
145
112
115
131
112
132
149
116
119
112
127
121
120
104
105
110
103
100
131
149
147
120
147
143
106
119
113
148
125
139
130
120
138
114
114
131
140
140
137
118
137
135
110
114
150
100
139
130
103
110
115
107
146
105
147
137
127
102
141
144
123
144
121
139
121
145
144
108
144
125
107
126
129
120
148
142
131
126
147
103
100
121
103
133
112
129
117
103
110
146
150
101
144
119
121
134
115
141
140
144
129
105
107
115
103
125
148
150
149
102
136
112
119
110
148
133
123
127
142
104
148
109
144
102
109
102
121
144
108
100
145
100
120
111
106
145
104
101
145
117
140
135
140
127
143
150
143
121
116
150
141
121
147
137
115
115
150
149
132
102
107
131
122
123
125
131
118
139
147
142
129
141
126
150
119
149
143
110
117
106
123
125
125
126
104
123
141
120
102
142
148
110
147
142
126
124
122
118
104
113
134
109
145
137
106
117
121
137
122
149
109
117
129
147
148
120
146
115
122
107
143
149
137
140
115
129
115
131
146
119
143
115
108
145
137
139
114
130
107
146
105
132
100
139
118
140
114
123
131
120
150
106
104
135
148
127
119
121
148
101
112
121
119
132
120
132
129
100
135
144
109
129
123
123
129
150
103
147
114
106
144
122
141
149
137
121
110
128
108
120
104
129
146
138
138
106
136
123
132
108
128
116
110
119
112
145
111
147
129
109
115
146
148
143
101
115
137
150
102
134
114
106
132
124
120
140
135
130
113
109
126
142
103
143
149
141
141
130
126
100
131
108
148
101
112
137
108
102
121
120
117
124
100
107
143
126
129
124
134
135
120
115
131
137
108
108
120
147
123
115
120
110
118
140
127
132
144
145
144
111
139
139
137
108
135
113
111
112
120
107
121
114
115
128
125
138
127
119
138
126
103
105
138
133
111
149
121
149
128
146
146
104
133
101
113
102
106
149
131
111
100
104
148
127
121
131
142
117
148
140
101
120
141
130
140
150
127
132
108
144
130
110
142
148
110
124
104
142
127
146
106
113
122
128
100
143
117
147
103
129
100
115
110
144
126
134
143
103
148
120
143
134
137
150
145
111
137
130
117
133
126
123
139
136
146
106
144
125
143
106
126
145
104
130
136
138
134
129
136
139
134
121
144
112
123
144
135
126
148
130
105
138
127
139
102
132
119
139
133
111
148
107
134
111
124
118
150
149
150
147
105
124
150
104
124
131
113
121
126
112
150
143
150
131
144
104
101
113
139
148
102
146
148
117
124
143
140
108
105
120
137
113
120
128
101
139
103
117
144
130
137
106
143
150
140
122
102
114
123
134
138
150
121
142
141
124
116
142
105
105
135
134
102
146
117
137
145
125
146
105
143
123
115
127
133
118
120
121
148
116
125
110
115
107
124
122
117
148
101
118
113
127
103
136
105
145
103
143
100
134
146
141
137
102
125
131
139
142
134
130
110
130
143
138
145
143
131
131
103
103
124
147
127
145
137
114
131
114
108
121
143
129
131
102
130
129
138
122
115
105
101
106
114
117
123
110
141
149
130
132
107
107
140
146
115
117
123
111
112
140
124
115
118
131
107
106
127
118
124
125
141
112
104
105
123
104
141
139
137
130
108
100
120
147
105
113
136
148
110
136
148
109
123
124
135
138
101
138
129
127
135
144
112
102
104
141
120
142
108
145
120
105
106
101
144
121
121
117
143
127
109
140
134
133
138
124
142
110
149
127
132
120
115
102
132
101
105
125
107
103
113
107
142
135
114
136
100
108
106
138
143
134
148
114
147
105
145
128
118
138
141
120
113
107
137
103
140
148
141
106
110
126
141
137
105
124
118
146
139
137
126
140
123
101
136
128
134
102
109
114
108
125
113
127
129
141
101
135
118
119
122
106
130
119
107
123
137
113
101
120
130
113
119
100
106
149
130
135
141
126
108
100
137
150
129
106
114
149
124
124
100
138
109
129
148
110
134
102
141
100
142
104
129
113
112
139
129
139
117
146
140
129
140
144
125
150
121
104
104
107
134
142
114
149
129
150
128
133
115
143
113
101
115
134
102
120
112
100
116
109
102
128
141
150
112
121
114
101
130
112
132
122
144
129
102
128
122
145
147
101
114
107
110
140
113
124
150
101
122
124
135
113
148
132
138
104
146
121
105
105
127
115
136
107
135
118
149
146
130
107
149
142
133
143
110
118
109
135
133
110
143
100
140
117
130
131
107
124
121
143
110
112
133
126
135
114
119
131
110
118
103
122
104
113
140
147
142
138
122
112
136
148
123
132
126
135
130
108
141
130
124
144
127
125
148
119
126
105
141
146
105
103
149
109
137
144
138
125
142
106
150
138
125
108
100
145
145
114
139
132
134
145
112
107
116
129
150
136
133
114
112
140
104
112
125
145
104
140
148
122
122
143
128
148
113
102
103
127
133
138
150
100
137
111
119
109
130
112
105
135
122
121
137
103
127
145
102
125
109
101
102
123
119
120
104
108
101
134
102
136
128
126
109
109
146
149
140
143
144
144
124
109
117
132
145
101
119
114
148
118
106
112
109
133
132
101
140
149
131
116
149
132
138
129
137
132
101
116
125
101
114
143
147
116
139
132
132
138
112
112
139
123
104
134
145
115
136
150
102
132
130
112
107
125
133
116
101
118
141
133
102
120
115
123
137
150
141
116
121
129
136
131
143
119
109
106
143
140
130
114
115
124
143
137
104
140
143
114
111
140
134
139
113
144
149
142
121
145
116
117
117
118
133
132
140
148
122
148
124
126
103
130
113
117
140
109
117
147
113
138
142
147
124
136
131
109
111
111
133
116
100
112
144
123
136
101
141
113
135
136
103
143
123
139
108
103
104
142
136
109
107
136
100
105
103
141
125
132
107
144
139
100
103
147
145
140
120
144
121
140
104
139
127
150
131
147
145
106
144
134
106
121
134
120
132
107
117
143
101
149
147
142
110
145
130
121
138
115
133
138
123
140
149
103
107
131
134
106
104
103
138
146
102
138
116
104
125
126
100
127
110
114
137
108
107
135
129
138
145
117
139
141
130
124
122
141
107
134
115
107
132
140
107
132
131
149
126
141
121
108
100
105
142
116
134
111
131
105
112
139
135
131
134
119
105
144
109
124
136
103
141
144
103
135
120
149
135
118
147
128
127
115
145
102
107
133
111
142
134
131
148
101
129
126
121
100
127
149
109
106
129
122
109
113
100
100
138
104
104
107
102
119
136
108
110
107
146
135
146
100
106
109
146
130
113
142
138
116
114
124
124
118
125
127
126
146
146
143
132
131
118
128
123
138
145
113
150
107
146
111
135
126
121
116
123
146
141
131
120
129
149
102
117
124
147
122
102
113
142
120
142
114
139
104
147
104
103
100
122
129
145
106
139
105
116
129
137
107
114
141
109
126
136
124
136
149
103
144
135
114
129
123
112
135
133
148
101
145
128
141
113
114
136
114
131
101
127
105
113
130
138
146
106
103
120
145
139
111
106
107
124
145
114
135
121
137
129
108
112
130
125
133
105
139
112
103
109
104
128
145
104
144
120
130
111
134
128
120
145
118
144
120
129
117
100
145
117
101
122
134
131
131
101
101
129
150
113
147
137
136
134
132
112
126
115
143
139
135
142
113
116
144
120
130
143
118
104
131
128
131
140
149
135
114
116
146
123
102
126
142
150
148
133
147
138
106
134
116
144
134
134
129
129
104
115
140
114
112
133
111
110
138
127
127
107
120
142
132
107
100
109
100
127
145
112
124
128
118
148
101
120
144
132
115
134
105
127
133
121
126
117
132
114
135
124
150
136
101
135
110
149
140
103
109
111
109
127
100
139
110
121
128
139
129
106
125
103
115
124
117
104
145
106
116
139
117
111
138
142
107
150
126
123
102
142
111
148
145
104
123
134
123
120
136
131
137
150
143
116
140
149
146
108
135
124
112
127
114
120
146
148
124
136
134
149
114
103
101
136
120
136
109
112
123
130
128
138
140
130
115
132
108
148
147
134
139
123
120
108
108
134
119
103
143
147
105
132
109
141
101
128
113
100
101
130
101
140
123
150
144
105
131
128
132
149
113
112
110
116
148
148
149
136
129
133
139
112
126
143
132
149
140
128
101
105
116
149
117
136
113
145
114
112
145
121
114
144
111
138
100
123
113
120
135
115
136
128
142
128
137
123
116
101
144
122
103
137
114
143
117
150
124
143
108
117
136
109
119
119
101
123
123
140
109
145
145
104
103
144
143
117
122
123
141
117
138
137
139
111
101
130
148
129
147
147
103
144
131
119
115
145
142
100
149
137
110
113
150
142
101
143
137
126
131
126
116
132
143
115
144
108
108
115
133
105
147
105
136
137
130
119
147
128
142
148
104
113
138
132
108
111
146
107
148
136
108
124
117
105
115
131
128
122
104
145
137
130
142
100
134
123
108
149
132
128
137
124
109
142
150
109
125
124
138
116
129
102
149
101
113
134
112
123
138
102
105
144
112
123
101
112
100
114
141
128
126
119
123
148
150
146
112
129
149
110
114
121
112
147
137
103
135
147
122
136
135
139
128
135
140
127
125
115
138
107
101
141
115
101
134
112
102
128
147
119
143
111
142
121
146
142
142
134
113
111
115
108
128
102
131
134
126
148
135
138
125
143
109
148
138
120
122
139
100
120
121
109
104
107
127
147
105
105
115
105
130
143
114
145
131
143
119
124
145
134
147
133
146
122
105
135
117
104
143
105
105
135
135
102
144
114
142
148
104
110
121
133
102
123
110
102
134
105
131
126
112
137
142
105
100
102
120
114
130
110
136
114
117
101
142
120
116
150
115
125
144
122
124
123
133
100
122
124
112
131
125
121
122
115
146
116
131
126
148
121
125
139
132
145
126
136
107
105
136
107
147
147
137
141
103
122
103
102
125
126
123
140
112
137
126
137
134
115
112
150
115
108
149
109
144
104
127
100
144
122
121
114
127
102
149
107
101
101
126
144
102
106
102
150
119
142
116
107
149
116
107
111
128
128
144
129
145
100
121
140
116
115
127
110
138
139
139
148
150
144
132
111
112
146
143
146
126
147
134
141
147
104
138
148
115
121
129
111
109
113
126
101
113
121
149
111
100
110
121
104
100
114
136
135
102
111
106
109
128
124
127
135
148
102
138
124
120
130
137
111
150
102
140
102
104
107
117
130
137
143
109
128
147
111
147
135
118
116
101
108
115
103
128
116
143
140
110
112
148
110
141
112
128
147
117
112
114
114
140
112
103
130
104
133
130
126
128
108
101
127
123
138
124
134
119
133
117
147
126
106
127
120
129
114
148
122
133
129
115
108
132
105
105
118
106
139
129
132
124
118
120
122
139
117
115
123
107
150
128
114
138
138
106
135
139
101
139
129
126
146
102
145
100
140
117
128
106
103
102
108
137
122
104
138
138
108
107
147
113
108
125
102
132
131
141
107
132
106
130
116
147
113
115
112
136
137
126
111
101
108
131
143
131
147
110
126
115
119
134
133
125
122
121
129
145
127
135
117
144
107
136
146
128
119
146
102
105
104
142
145
121
146
110
139
123
107
124
150
131
127
112
139
134
130
134
111
148
127
134
124
107
113
126
130
127
128
114
104
111
144
117
107
105
101
116
118
100
124
117
127
125
115
145
131
141
138
104
150
134
103
131
119
137
122
144
148
126
147
130
141
122
110
115
106
132
143
114
132
114
132
140
104
148
100
105
107
139
118
106
147
110
129
137
110
107
129
148
119
129
109
150
139
114
103
121
117
150
123
140
100
113
137
107
125
122
149
106
121
149
127
109
102
140
102
114
119
148
138
139
133
109
115
140
121
120
135
107
107
101
145
109
147
103
137
140
112
119
109
129
149
126
149
138
122
134
139
141
115
148
145
148
119
129
102
147
119
106
126
111
136
102
114
144
141
129
123
117
113
116
138
133
105
118
150
102
144
123
102
118
119
110
131
114
142
125
128
102
138
135
112
102
112
143
133
117
104
125
139
146
111
101
136
129
112
102
107
102
107
107
114
135
111
114
126
131
109
143
136
111
100
126
100
118
148
141
146
109
114
115
146
136
101
146
128
132
107
139
106
107
142
121
149
122
111
120
141
144
140
125
110
131
150
113
104
125
116
136
106
145
117
139
124
135
131
106
107
148
100
107
108
150
146
146
118
120
110
147
122
149
109
134
130
133
125
113
111
146
122
102
104
109
130
111
127
138
128
149
118
118
132
117
101
105
135
148
118
128
101
149
110
121
134
147
140
126
119
119
126
115
139
140
104
117
111
149
146
136
144
124
132
133
128
114
136
134
133
145
117
117
118
105
139
118
138
115
130
138
111
137
121
137
125
148
146
123
102
146
132
117
115
107
138
131
147
140
148
123
101
103
115
108
110
108
103
149
120
146
121
142
107
137
144
145
129
129
129
145
114
144
102
108
137
148
150
114
132
116
117
127
145
150
146
136
135
149
133
109
122
142
109
150
131
107
147
150
110
142
120
134
104
134
118
135
147
106
120
137
102
105
109
137
127
149
144
116
108
111
139
109
105
143
123
117
147
115
150
123
114
134
107
142
126
108
118
125
104
105
139
109
101
143
109
107
107
145
116
142
124
104
116
101
140
105
136
112
130
122
134
138
139
135
133
149
121
140
130
117
109
108
119
110
132
147
103
127
142
117
139
149
106
125
113
115
146
121
142
129
126
135
141
103
139
115
148
137
110
125
142
121
132
118
128
130
121
105
111
137
134
104
145
101
125
116
143
106
120
136
109
136
125
110
144
141
107
110
141
133
144
132
107
117
134
132
134
150
130
132
121
150
123
130
130
145
102
104
102
124
130
129
127
142
128
138
106
102
134
124
120
123
107
117
134
130
100
105
110
103
112
104
133
139
135
131
103
127
132
126
105
111
121
136
148
103
107
140
115
127
108
144
144
124
137
108
125
122
123
110
121
123
142
146
121
123
141
120
133
108
135
147
141
144
107
118
106
143
150
136
149
145
119
134
148
136
112
148
129
101
132
119
122
118
114
111
147
133
143
110
127
106
122
101
126
139
145
118
131
134
126
132
113
139
141
143
148
150
114
115
132
129
129
134
107
140
127
125
115
137
135
135
150
147
139
113
117
141
135
138
125
130
122
124
124
114
101
110
123
138
149
117
114
121
104
117
142
101
143
137
116
105
129
116
106
115
123
142
118
133
148
102
101
125
134
149
127
107
114
119
140
125
124
106
107
116
123
144
111
136
114
109
145
129
107
125
124
129
119
111
140
102
135
127
108
138
128
126
111
119
146
138
110
108
137
132
122
117
118
108
135
109
150
102
116
130
150
124
131
138
123
137
116
101
146
139
124
129
103
146
137
107
144
116
140
142
111
131
113
126
105
141
146
142
101
109
108
103
146
129
109
114
114
108
114
112
137
102
134
138
105
150
109
126
109
121
133
120
100
105
127
121
138
140
138
140
150
144
123
123
117
131
147
110
106
106
124
114
145
124
118
105
113
127
145
130
114
145
118
150
113
100
132
105
117
115
123
116
144
145
148
149
132
133
127
146
128
131
128
149
121
114
139
119
121
140
146
113
150
128
128
136
103
147
100
104
127
133
138
133
122
121
140
106
114
109
138
106
124
130
111
137
147
130
105
137
101
104
102
131
142
142
150
126
111
139
136
148
106
138
100
137
100
128
136
142
145
110
150
139
114
110
138
122
100
141
100
110
121
125
132
144
150
124
100
126
115
123
142
133
105
122
101
124
141
110
130
120
103
106
140
144
142
145
115
138
146
133
138
145
136
144
110
115
150
124
128
130
138
140
138
120
136
136
119
145
104
135
131
100
109
146
128
145
114
118
116
108
119
111
106
122
138
133
116
100
106
107
143
102
111
105
121
114
138
137
135
104
142
127
108
102
146
121
139
105
123
136
130
137
101
111
149
115
198
195
184
140
148
147
182
176
194
158
166
197
170
176
177
186
189
158
171
195
141
192
193
199
144
150
169
187
173
176
141
173
183
164
142
186
149
170
170
195
175
179
184
143
175
189
165
186
160
155
140
169
140
156
163
156
194
159
200
142
145
143
163
197
183
143
198
179
149
179
153
152
177
184
154
145
194
192
193
172
161
154
159
166
163
170
179
156
158
191
164
187
197
173
193
185
168
197
163
186
192
171
197
189
158
195
173
172
196
185
168
161
142
152
168
157
198
140
165
194
196
183
162
193
146
163
173
197
188
170
184
199
151
160
159
198
149
146
169
197
173
163
156
164
166
152
163
171
141
196
172
189
195
173
165
198
172
166
198
159
145
159
157
176
190
164
150
159
155
148
197
144
184
153
171
195
146
177
163
147
144
175
179
145
174
176
197
176
158
199
160
195
155
178
197
169
180
183
145
175
148
157
173
169
172
178
193
174
180
161
170
165
160
154
158
150
143
164
189
189
184
191
161
192
165
141
174
170
200
194
187
163
189
159
189
147
166
145
188
175
178
156
197
176
192
184
195
179
187
152
165
185
181
151
142
183
147
198
171
180
174
198
146
156
175
174
147
172
143
165
153
186
162
147
164
195
174
174
192
190
193
194
188
141
172
153
147
197
147
170
197
200
156
176
171
194
174
155
170
145
172
180
181
173
146
193
147
191
195
171
183
187
161
142
151
189
177
167
170
150
142
175
159
172
162
146
154
153
171
141
180
193
155
143
180
196
151
192
153
190
162
144
167
151
162
156
154
179
152
174
149
170
167
187
163
160
146
185
185
155
148
191
168
151
151
171
160
145
164
196
182
160
179
162
179
184
142
187
152
164
188
144
177
169
173
181
183
169
164
200
152
168
158
193
156
152
192
152
174
167
162
165
176
166
181
170
146
151
174
200
170
164
154
194
152
167
179
164
172
153
183
151
200
183
176
191
178
149
168
146
147
196
156
171
140
157
169
199
143
157
192
185
157
142
151
194
144
157
159
199
155
145
169
185
163
156
141
171
154
161
189
196
175
192
166
195
200
182
164
146
190
148
163
155
160
176
200
196
163
160
184
191
141
141
170
148
151
191
162
157
196
144
188
168
147
149
158
157
168
173
177
175
165
157
160
185
141
158
149
161
195
161
164
155
156
181
183
164
164
200
189
152
200
148
143
164
194
143
162
199
146
179
143
154
145
167
183
146
182
181
171
173
178
198
186
176
144
172
156
155
154
179
186
145
175
161
167
145
176
197
158
149
148
140
152
180
151
146
194
177
141
165
173
149
146
176
197
185
181
159
188
180
194
176
166
197
173
181
198
152
171
143
159
185
200
196
177
157
195
170
166
156
176
143
168
168
195
185
189
172
184
150
194
158
168
169
168
171
197
153
140
155
178
152
164
164
144
163
154
151
146
159
188
198
188
171
181
151
161
180
200
190
169
152
199
165
144
171
161
148
170
144
162
195
163
146
195
154
164
198
159
156
161
156
173
150
196
171
190
178
181
177
151
141
159
185
157
156
140
195
167
191
172
188
175
147
166
152
157
146
148
175
173
165
195
145
197
180
152
165
161
151
171
149
159
148
172
194
160
160
182
195
172
172
174
194
194
160
197
173
184
142
144
165
152
185
186
159
198
180
160
157
176
146
166
161
158
156
190
191
150
200
153
170
170
181
194
189
174
149
142
173
157
170
155
180
189
147
190
182
175
192
146
170
143
187
161
197
159
168
145
174
178
184
162
190
168
193
165
197
194
157
195
191
188
192
147
172
199
167
147
155
179
153
146
158
189
155
180
161
200
161
172
155
142
157
156
141
180
193
182
163
178
199
179
177
199
167
153
149
172
164
149
148
199
156
192
185
193
146
144
174
184
193
176
143
189
195
177
158
193
189
155
166
195
175
143
167
140
149
145
177
184
149
155
195
182
169
193
154
151
182
178
143
159
186
200
170
194
180
160
196
156
177
180
190
176
193
154
169
186
168
194
195
199
198
194
179
165
145
148
185
169
188
148
174
176
168
154
168
182
143
151
173
186
175
181
197
172
141
198
200
172
185
165
147
180
157
163
183
156
180
182
199
142
173
179
183
141
156
191
172
153
160
158
180
157
163
170
173
172
187
198
165
182
167
150
169
157
182
155
151
184
171
156
158
167
179
177
183
196
172
183
146
165
174
146
152
152
197
157
177
193
157
186
191
171
166
176
167
189
197
143
191
172
193
172
164
189
152
156
188
150
171
200
192
186
199
140
154
147
143
192
180
160
185
189
189
154
188
143
140
158
151
144
197
156
174
140
188
140
176
145
177
186
169
179
195
158
149
151
149
155
184
174
145
172
196
197
174
146
171
182
191
193
158
199
175
197
176
177
199
156
192
193
183
181
189
149
163
173
185
186
164
142
140
167
145
144
183
197
184
184
196
173
173
184
156
186
194
168
170
142
184
161
165
140
179
183
192
183
173
149
193
181
147
197
198
162
180
195
156
194
167
159
171
155
148
185
183
184
175
197
152
184
175
198
145
142
157
193
193
143
175
165
200
187
156
148
141
185
143
169
150
157
188
165
165
197
143
195
168
164
163
189
192
177
197
160
178
174
186
147
149
180
186
154
161
200
168
143
159
195
155
151
162
198
186
155
185
197
195
168
154
179
149
151
149
170
198
157
158
180
172
150
178
150
159
158
160
179
173
182
164
159
147
161
199
198
179
191
172
174
177
140
174
187
173
166
181
147
160
199
152
151
160
174
144
177
177
171
199
176
175
200
152
153
171
189
141
200
176
181
190
176
198
191
173
182
165
168
178
198
182
140
173
189
198
178
180
188
145
183
167
182
200
200
145
162
190
200
193
196
197
193
168
146
155
192
140
166
192
144
173
186
140
144
178
150
200
196
150
155
181
177
191
156
188
191
157
146
189
159
178
147
188
158
159
182
178
157
171
147
191
192
184
177
178
158
190
170
169
163
162
181
182
195
195
172
192
190
169
151
181
169
162
158
191
141
195
158
179
144
177
187
185
171
145
198
200
181
162
159
169
143
151
182
156
142
145
153
187
144
173
176
167
186
151
176
197
173
173
164
148
158
152
170
152
169
149
140
181
166
195
180
179
169
152
154
171
171
149
157
158
158
184
180
183
162
149
144
192
173
142
164
176
193
191
152
198
191
177
154
160
180
144
178
167
187
179
144
193
153
190
170
170
174
188
142
171
186
149
166
170
174
186
144
141
176
163
151
149
191
164
197
167
176
180
143
179
154
194
154
160
173
165
164
177
162
175
174
179
195
158
157
169
188
155
182
177
157
173
194
161
182
187
166
192
152
141
187
164
173
156
160
142
188
174
196
170
162
184
166
148
186
177
155
162
151
156
163
172
167
173
176
153
176
152
194
145
176
194
198
168
195
186
196
164
145
162
179
193
166
176
163
155
173
158
200
199
158
155
144
185
193
151
158
141
167
168
188
163
177
161
197
158
165
172
180
199
163
143
167
197
189
169
165
160
145
196
140
162
196
169
189
189
185
166
179
163
182
144
156
180
200
177
160
193
160
183
177
165
169
160
197
146
146
199
160
174
156
165
155
200
142
172
176
195
200
183
189
154
179
145
141
156
161
167
154
183
184
195
163
174
142
172
153
193
148
179
188
158
157
199
176
180
186
146
178
173
173
194
184
200
155
181
198
152
160
195
159
177
160
190
200
174
189
195
171
195
189
193
157
165
150
189
145
167
175
177
195
190
168
180
143
179
145
175
162
180
153
151
171
163
148
184
160
187
149
196
197
155
176
192
172
153
144
187
197
156
164
148
167
145
190
180
169
165
194
144
157
197
171
156
175
167
168
151
182
159
142
199
169
180
158
146
191
167
183
185
175
197
163
178
194
160
199
146
193
145
161
189
191
161
165
163
185
160
149
159
197
184
185
192
189
154
153
187
144
176
187
191
160
168
194
141
160
200
154
150
181
140
162
165
194
174
153
163
186
153
174
168
158
185
179
175
156
144
175
173
149
179
159
188
190
191
191
162
147
158
177
184
165
189
181
176
143
174
155
198
141
159
158
180
161
148
158
198
141
150
186
176
171
199
153
183
173
155
192
192
159
154
199
143
196
179
189
147
173
159
198
170
177
199
157
195
165
157
185
188
143
166
152
192
144
171
176
140
196
182
186
198
169
196
155
181
149
156
176
189
178
143
186
159
189
145
182
186
178
159
149
187
177
194
173
157
197
162
154
150
160
199
153
156
153
186
150
157
177
181
183
171
196
144
173
149
184
143
180
180
161
188
179
174
147
150
156
185
193
170
141
153
198
149
155
191
174
182
146
191
145
165
141
182
144
144
152
188
186
196
145
158
195
184
168
143
200
187
171
190
165
200
166
145
161
167
159
185
173
179
145
178
169
176
199
198
179
188
158
177
175
149
185
198
145
166
147
183
170
145
181
194
174
148
142
140
145
167
149
170
166
181
156
174
174
170
176
200
200
140
174
190
158
182
163
192
173
191
162
194
189
200
191
172
167
173
188
165
186
189
190
172
153
180
168
175
193
199
186
177
187
166
169
177
151
170
150
168
160
140
186
175
145
200
150
145
168
174
188
152
164
165
145
172
190
168
149
198
181
160
191
198
143
179
148
156
162
165
194
182
159
188
141
186
169
167
147
165
145
145
170
146
149
183
181
140
155
172
172
197
200
199
186
166
147
162
166
186
154
180
183
158
154
169
155
160
169
187
179
143
173
175
161
188
149
192
194
157
199
167
192
172
193
195
171
192
155
198
145
192
189
166
184
198
163
157
191
188
141
152
143
159
148
160
158
145
144
195
143
163
188
162
164
195
157
166
197
143
181
159
199
155
182
148
195
170
165
160
140
161
140
153
142
192
148
153
157
166
170
177
169
190
140
187
199
179
175
200
193
181
192
143
143
160
153
197
199
155
192
147
166
181
174
168
166
162
166
163
179
144
144
176
158
158
171
196
160
163
183
160
191
192
187
189
179
152
196
192
172
142
189
166
154
167
177
194
187
172
141
185
191
153
179
196
165
181
173
179
175
147
183
176
198
185
179
141
171
142
163
145
157
155
165
146
199
148
157
188
200
146
143
147
190
188
145
147
191
169
191
145
193
150
142
192
163
175
177
140
147
181
162
190
165
150
177
142
168
181
187
146
176
168
163
161
182
162
192
170
192
193
152
159
157
174
153
164
189
173
188
147
177
193
152
173
199
198
144
184
142
181
187
144
162
142
163
142
149
178
178
145
163
149
164
153
145
162
159
193
199
169
168
160
155
179
179
182
177
180
148
178
191
151
166
188
142
155
188
146
148
140
167
191
190
177
141
156
154
146
185
175
186
146
159
158
162
142
194
179
166
158
182
193
190
145
145
144
191
174
183
162
154
191
145
153
167
198
199
167
199
166
194
142
167
150
151
153
184
150
145
158
174
200
190
161
171
145
148
164
152
187
145
169
172
179
183
163
170
155
152
151
199
181
140
193
181
145
183
173
174
195
199
195
168
183
184
180
159
155
145
145
171
172
199
144
196
150
190
167
188
151
150
150
165
184
143
159
157
174
159
176
140
171
142
166
200
171
142
166
200
163
177
186
151
151
171
167
191
152
197
184
157
140
169
163
176
187
179
175
157
193
167
174
142
190
186
152
182
160
195
149
165
175
170
174
190
171
164
148
187
155
187
181
196
185
160
155
181
164
146
191
159
183
187
196
200
198
164
148
148
195
145
178
171
190
144
142
146
150
167
147
200
158
175
194
150
140
185
175
176
180
168
184
163
195
190
191
166
199
141
152
180
186
190
199
187
194
151
190
190
140
162
154
200
144
152
140
166
164
150
176
165
144
187
182
144
194
188
164
191
157
183
174
187
142
199
198
164
193
190
181
161
181
183
183
151
165
142
170
189
199
175
158
195
151
157
193
148
185
158
164
170
145
166
180
164
160
180
156
165
181
152
176
180
181
141
152
182
159
169
165
179
186
187
163
152
181
174
183
168
153
179
148
195
164
189
163
158
176
167
193
166
166
174
148
166
154
151
143
178
146
184
195
182
152
177
182
195
141
152
160
159
148
149
198
198
162
173
193
181
188
185
157
156
152
158
191
194
192
143
186
142
143
193
199
192
172
144
161
164
142
199
151
150
196
180
166
162
189
199
172
193
198
192
144
147
194
197
199
176
184
141
187
168
152
154
178
174
156
162
145
162
170
173
141
180
166
150
180
182
159
142
185
158
177
164
152
186
187
177
151
144
178
157
185
175
191
149
178
140
164
196
169
184
198
194
185
157
199
194
190
200
164
172
176
159
186
147
180
157
190
192
174
166
186
170
188
189
199
140
158
164
140
169
173
168
180
142
180
141
173
152
152
182
170
181
169
165
172
158
187
178
172
163
188
189
153
179
149
148
170
174
155
191
163
184
197
154
176
193
195
181
153
147
160
156
183
142
178
168
189
167
143
145
151
143
158
173
160
145
160
179
160
182
144
185
164
169
173
190
161
182
183
178
150
180
171
154
163
182
175
140
140
169
159
151
141
184
190
173
155
179
149
156
160
164
178
189
182
157
193
194
172
165
155
181
147
175
177
186
186
190
169
197
174
170
200
184
188
166
142
152
152
156
174
170
146
195
182
191
155
151
182
156
142
148
163
171
198
157
142
182
151
175
169
198
185
184
143
159
199
153
155
174
149
157
148
149
184
188
158
198
147
168
166
153
160
164
182
165
188
196
154
153
166
150
182
173
146
147
168
178
176
176
167
194
181
180
175
193
146
165
195
191
148
156
142
150
143
156
177
176
186
173
155
194
180
172
176
182
149
161
155
183
179
174
160
183
152
174
191
145
168
174
178
200
185
150
163
159
170
157
188
173
185
190
179
152
161
196
187
146
184
158
197
186
151
147
178
150
197
194
141
175
168
190
164
149
166
185
147
146
168
191
160
144
175
169
196
192
200
159
141
150
189
190
183
190
190
162
170
176
141
166
157
160
159
188
191
148
173
197
158
161
197
168
198
173
149
154
182
145
196
179
144
176
185
145
200
146
146
155
149
197
183
178
150
151
181
141
158
164
188
178
150
145
143
145
152
180
144
199
192
149
168
180
166
172
194
167
181
154
148
191
180
143
191
157
144
175
161
188
181
144
198
193
143
162
143
171
192
166
160
189
164
176
172
148
143
161
143
172
182
142
157
143
189
178
179
173
157
170
198
189
147
190
162
160
144
162
168
140
186
184
160
182
200
178
172
147
194
152
191
200
165
165
197
158
156
168
185
200
141
196
169
181
185
148
170
160
148
142
155
186
171
143
140
140
172
187
178
185
158
143
150
169
151
171
162
152
188
154
149
155
196
193
159
147
155
169
164
158
184
173
145
165
168
190
162
161
148
191
158
163
178
164
174
163
145
149
182
155
178
158
197
154
184
148
189
149
153
190
161
184
142
162
193
146
183
199
199
188
167
186
171
194
174
179
175
177
151
181
147
198
152
167
176
153
163
192
193
195
190
151
155
166
190
166
150
198
183
186
143
183
147
179
186
159
144
151
151
155
168
172
197
171
187
160
150
173
152
182
153
164
194
155
142
160
173
174
188
198
158
166
157
180
176
174
195
144
195
190
194
156
163
196
191
143
162
140
145
197
182
158
192
153
160
154
147
186
164
154
179
144
187
191
168
182
164
180
150
150
169
151
156
195
181
198
170
169
193
151
186
187
154
156
184
178
148
182
197
146
161
171
164
200
159
172
189
157
162
192
170
188
194
177
143
165
140
177
187
193
161
170
194
181
161
140
144
143
172
196
144
192
168
159
167
163
145
157
195
163
167
143
156
170
192
175
172
168
193
166
174
165
154
172
157
148
150
172
195
198
194
191
194
159
200
191
140
192
162
148
173
172
177
189
166
162
165
198
178
170
161
146
158
140
151
192
141
176
152
148
190
182
185
169
178
168
178
161
150
161
189
167
151
163
151
183
192
179
190
182
148
144
147
177
197
159
174
188
166
170
157
174
161
149
169
169
197
173
185
155
145
152
192
191
149
147
166
191
147
184
143
161
141
163
150
160
179
173
171
154
188
178
144
172
165
156
147
181
195
192
188
151
162
181
164
199
180
173
162
154
182
168
165
142
163
147
199
187
200
174
195
150
183
173
167
193
154
159
193
186
181
154
171
182
172
156
166
151
158
183
193
170
167
176
198
154
180
149
158
144
197
187
183
158
162
171
186
152
196
145
191
162
155
180
172
200
163
151
149
153
176
164
151
143
160
189
196
198
191
154
164
154
144
178
151
160
161
146
177
191
176
185
156
191
152
183
173
189
190
195
195
166
143
164
174
143
186
194
143
192
162
164
198
160
192
160
174
156
150
181
186
189
196
173
150
174
159
145
140
198
169
194
177
163
142
144
162
165
199
160
184
181
157
182
158
147
153
179
190
177
192
156
171
172
196
175
165
146
157
188
172
185
171
151
198
186
159
142
159
181
141
148
147
175
156
170
170
182
188
191
167
156
181
166
148
193
152
142
144
185
171
183
166
185
179
148
154
193
161
164
142
164
142
140
153
193
182
150
175
186
189
164
167
173
154
180
197
147
165
172
158
195
165
181
158
193
150
164
199
152
160
177
141
189
187
192
190
180
168
148
181
185
169
155
190
142
181
172
150
177
157
144
189
193
163
187
182
193
140
181
191
175
198
142
184
144
171
185
165
189
149
167
168
174
153
177
175
147
156
175
181
197
183
195
159
179
143
172
187
182
141
185
187
182
195
166
143
155
164
189
192
184
191
189
157
157
146
160
177
181
142
181
165
188
165
156
189
192
147
200
200
160
159
174
152
143
197
179
148
169
149
200
147
188
142
142
179
161
159
198
145
163
186
165
180
189
200
194
140
183
172
181
188
148
185
158
168
145
145
183
155
190
196
178
199
164
178
198
171
190
194
146
181
151
144
196
151
183
200
155
160
167
167
185
169
140
162
172
164
192
195
188
159
178
188
176
166
165
180
186
187
153
159
175
151
167
197
176
196
140
188
188
158
167
159
191
200
197
152
172
140
148
156
180
157
160
161
192
149
186
159
181
180
197
168
152
143
145
156
153
182
152
165
189
149
191
174
199
188
146
190
176
175
188
154
154
160
185
193
143
194
143
176
172
162
197
156
193
178
166
180
147
182
175
147
163
153
140
198
166
184
186
163
168
162
171
197
149
183
142
174
182
181
153
155
197
161
177
148
167
176
152
177
190
177
161
186
185
160
164
142
167
195
191
162
182
155
148
153
194
170
199
168
167
140
191
165
194
157
188
181
147
188
157
183
165
173
168
152
196
140
166
168
200
191
162
189
157
190
199
189
181
153
192
168
141
143
184
170
142
160
167
157
155
144
149
158
183
141
182
165
200
187
162
166
164
160
177
163
152
149
141
165
140
200
192
191
199
167
170
188
191
196
197
152
149
146
178
146
198
162
184
177
191
199
172
199
148
176
143
179
152
155
144
165
142
185
193
141
148
162
178
159
140
175
161
143
192
193
145
153
157
148
194
191
168
150
173
166
144
154
192
165
165
156
173
166
155
141
200
181
167
166
150
162
159
171
155
159
145
185
190
165
143
157
172
140
165
180
194
163
155
175
176
154
155
159
172
165
165
186
156
165
184
152
144
156
144
159
172
148
150
149
152
172
171
148
187
155
161
175
146
166
152
179
151
190
159
190
154
174
185
175
160
165
147
145
150
196
198
145
183
188
145
149
181
140
172
143
182
162
173
167
186
198
163
169
194
200
153
190
197
146
140
157
143
195
182
184
186
173
200
195
152
188
186
165
181
142
184
199
157
154
188
145
146
185
173
159
147
143
190
175
143
172
152
174
148
173
158
186
196
145
177
149
156
174
193
140
171
164
173
188
168
181
180
198
147
189
195
141
186
143
150
148
140
187
144
156
197
157
141
192
159
141
173
196
178
187
178
187
194
200
189
156
159
179
145
181
161
141
173
155
166
164
185
164
140
200
144
174
141
197
180
161
184
180
162
173
146
150
178
173
186
162
147
153
198
200
149
173
166
185
168
190
170
150
182
143
169
148
170
180
140
169
183
161
147
187
184
149
185
144
172
175
170
167
194
194
181
145
171
191
146
170
180
158
186
151
143
188
200
161
174
191
141
152
166
187
176
149
179
141
186
172
163
162
162
176
146
179
146
163
175
188
195
174
167
156
197
155
154
175
153
184
141
176
184
141
180
181
177
198
172
168
160
195
163
165
181
192
179
143
149
188
178
151
178
172
148
193
195
180
172
164
173
160
186
153
182
144
166
199
145
154
166
150
148
159
149
145
141
171
176
142
150
195
192
197
146
200
152
160
188
169
164
181
141
165
179
174
169
189
162
170
145
160
199
143
172
167
184
198
146
176
194
186
145
144
197
169
144
187
151
170
175
152
160
169
178
186
180
150
141
167
147
182
151
158
169
194
178
142
145
140
183
142
140
146
168
161
178
157
151
194
166
172
190
175
158
148
197
175
199
180
180
170
148
165
153
155
189
147
142
141
154
142
161
177
199
148
182
160
148
199
145
178
198
163
178
144
179
184
156
144
169
168
180
144
200
167
140
187
160
168
162
153
183
174
142
167
170
159
200
177
164
185
181
159
153
181
144
145
185
155
142
192
170
181
149
153
177
152
173
151
179
146
178
177
200
158
184
182
161
175
183
168
198
162
173
172
184
153
182
179
141
158
178
148
167
167
183
180
162
144
187
192
177
145
148
160
149
160
180
145
194
198
155
146
192
156
172
184
182
197
151
182
187
174
178
157
198
165
164
140
196
191
149
175
182
177
163
145
150
154
183
162
190
153
168
193
158
164
155
165
177
172
175
151
157
189
164
184
149
178
149
156
192
199
174
182
142
182
178
158
145
160
176
155
150
155
178
153
147
160
199
191
192
166
174
163
187
188
142
195
193
178
140
174
160
186
156
165
187
163
154
189
152
146
191
148
161
151
182
184
145
186
178
196
200
174
194
151
183
169
189
171
167
196
171
171
149
172
149
146
192
176
173
151
160
197
182
187
172
158
166
188
199
164
183
143
160
161
172
186
198
163
195
141
171
173
188
174
157
177
183
155
151
156
140
181
165
189
144
155
153
188
179
153
167
165
169
198
151
180
163
200
197
143
163
157
190
157
152
145
168
158
188
193
175
164
175
185
179
159
144
151
187
158
155
175
144
158
166
158
154
185
192
153
162
179
197
181
179
183
155
173
155
183
183
169
180
160
150
140
164
181
181
142
179
145
181
181
174
189
177
185
187
151
169
149
155
197
177
141
144
198
159
199
163
175
153
165
175
178
180
151
158
155
156
142
153
161
195
177
158
187
157
158
190
156
177
169
183
141
150
149
173
165
176
147
172
192
145
178
145
178
193
160
167
181
185
184
156
194
177
186
183
143
173
168
165
185
185
149
162
197
184
160
190
143
194
183
154
166
152
145
193
170
146
183
185
181
141
151
158
192
185
180
140
140
163
171
167
154
185
163
147
165
185
157
181
184
167
200
149
178
162
171
185
174
173
159
200
190
195
171
173
157
156
186
159
152
164
167
141
154
171
185
188
187
174
150
160
194
190
188
197
168
184
186
180
175
170
150
167
167
155
147
170
155
190
194
147
192
149
169
146
168
199
176
196
164
148
194
178
186
187
199
196
154
191
167
192
163
144
186
147
180
187
184
158
192
179
181
197
164
157
181
182
141
147
170
177
178
154
171
185
168
143
142
174
176
163
153
142
190
143
182
170
185
190
151
186
157
146
194
173
177
195
176
170
192
168
178
174
176
140
155
193
188
167
151
199
192
171
175
195
181
156
157
190
175
200
190
150
143
181
170
150
147
155
193
193
141
180
163
193
169
200
147
150
192
165
185
194
200
183
192
174
190
176
166
150
149
179
194
172
194
168
179
162
153
151
174
171
193
173
150
158
189
162
163
191
172
157
143
196
175
167
140
141
142
150
165
184
158
164
156
195
163
156
160
193
163
196
146
151
190
153
151
155
196
190
192
181
183
194
156
141
193
170
183
149
148
186
196
197
188
156
156
149
169
147
165
148
195
155
155
160
179
169
157
148
166
168
183
161
152
182
155
175
171
177
146
164
150
171
152
148
154
140
192
157
193
153
182
191
198
154
143
185
193
177
141
172
162
169
197
165
176
168
140
159
158
149
175
168
169
196
145
184
167
144
143
196
186
171
183
200
164
175
198
198
170
154
187
171
183
196
147
200
188
174
147
141
191
145
179
190
190
195
167
197
187
171
168
141
148
141
176
148
177
197
166
192
169
175
200
156
196
200
140
198
168
165
145
165
147
199
187
181
193
172
171
147
187
195
145
171
198
193
163
148
193
161
154
148
164
141
162
158
193
177
185
164
148
195
160
153
141
141
147
196
140
166
160
180
195
140
162
178
141
195
190
195
154
184
145
167
142
179
166
153
177
175
148
196
149
143
160
174
181
168
155
149
150
145
163
169
166
156
175
195
182
193
154
192
184
183
169
199
148
161
140
159
180
190
147
177
160
140
159
145
187
195
193
181
178
184
165
146
167
166
142
187
173
188
142
166
149
165
181
177
146
148
185
152
146
159
169
177
183
144
200
182
187
192
177
151
195
158
194
150
157
192
154
200
162
159
162
199
187
171
171
144
189
169
200
174
154
150
188
170
176
183
141
157
152
167
172
184
187
181
162
183
175
177
163
186
174
143
152
143
154
151
194
149
165
152
172
147
200
148
187
173
195
161
175
159
165
145
197
161
200
150
143
190
158
187
193
165
187
197
188
196
145
170
142
188
149
163
173
173
195
180
169
142
186
182
157
148
191
187
195
195
172
162
151
144
140
163
174
197
185
178
166
162
157
184
186
149
155
188
173
153
185
149
148
146
174
157
178
146
182
175
199
175
167
148
147
159
148
152
164
144
174
192
176
146
191
196
175
174
198
155
180
173
199
182
191
178
148
199
175
170
193
167
176
175
149
193
181
154
184
181
158
156
148
189
172
140
140
169
142
168
160
172
185
198
183
142
188
151
149
168
184
171
173
145
190
171
153
146
170
158
193
166
157
145
200
169
189
147
180
197
183
159
160
163
185
147
162
148
168
167
142
192
170
178
200
183
189
144
191
158
178
162
142
195
183
179
158
152
193
187
167
198
173
158
141
195
149
149
144
147
166
176
144
146
145
159
190
168
156
156
191
187
144
200
171
181
189
160
157
195
159
145
145
149
193
161
159
197
174
145
178
154
187
199
181
175
163
200
186
156
140
198
200
159
174
196
156
187
169
178
185
180
197
174
143
178
177
178
165
145
152
146
149
184
163
197
147
185
173
167
187
176
163
142
148
167
151
182
183
199
159
158
156
198
192
180
198
194
141
154
189
179
187
154
167
185
197
199
172
163
183
162
167
178
187
187
192
167
181
157
194
183
184
177
143
154
153
175
140
175
158
194
175
200
156
174
200
175
183
193
141
177
154
162
152
149
196
196
153
162
197
187
167
145
169
185
195
166
140
177
145
192
145
166
170
160
194
154
179
187
186
156
160
199
140
161
161
145
162
141
195
167
178
148
155
186
158
173
171
145
175
192
156
155
191
161
165
154
148
193
193
188
161
147
179
164
175
198
147
172
192
160
194
180
143
142
180
169
187
164
140
149
200
191
168
164
174
148
180
145
195
162
186
144
178
182
174
173
145
179
177
187
178
200
172
179
180
192
175
198
174
152
199
160
160
197
198
143
200
191
150
151
183
190
190
167
165
176
183
176
198
191
180
168
186
193
178
183
161
178
193
143
174
182
168
165
190
184
196
150
157
151
142
175
148
165
143
185
166
189
157
172
190
176
176
185
169
183
157
164
149
144
187
159
180
191
177
141
179
151
170
150
155
143
142
189
152
151
148
168
156
162
200
150
181
163
195
143
167
188
153
197
178
181
192
149
168
172
150
190
140
160
166
161
195
174
190
146
198
159
200
178
166
188
172
164
178
159
185
153
199
194
175
156
188
141
169
141
162
165
192
154
170
160
194
153
172
159
189
190
140
150
143
164
182
143
196
144
177
192
180
173
157
196
172
150
194
197
155
163
179
197
157
185
187
185
190
161
169
169
159
141
169
160
160
193
156
161
167
162
145
162
190
161
180
189
142
179
155
194
187
174
154
168
199
176
140
148
184
141
144
194
175
171
187
140
200
152
198
174
188
189
155
175
165
150
185
198
159
174
166
165
163
179
147
194
198
151
187
149
192
143
150
197
141
193
168
161
180
159
187
171
168
166
166
189
192
177
175
147
142
187
157
173
154
197
175
144
151
179
174
177
183
145
154
183
151
198
167
181
163
189
159
173
172
194
154
145
146
190
192
173
189
199
148
161
173
187
140
191
189
161
154
158
145
167
187
184
157
179
140
152
160
159
197
163
167
189
158
196
168
180
195
197
155
169
162
178
186
182
180
187
150
167
150
186
173
181
165
186
200
184
153
154
196
155
184
145
182
177
169
146
192
153
192
171
179
182
163
169
150
188
197
182
176
166
179
178
144
191
158
190
162
142
151
146
143
195
194
156
199
145
145
153
174
176
179
176
147
151
188
156
174
143
170
182
145
181
163
198
169
149
196
185
163
145
174
173
162
141
161
158
162
156
188
196
145
163
156
195
170
196
161
150
198
160
146
153
173
144
199
172
198
180
183
188
150
179
145
182
195
178
178
146
161
189
180
151
195
188
167
186
156
178
161
161
189
155
144
161
149
170
193
173
149
200
188
166
173
191
156
184
186
156
176
188
154
143
187
153
142
179
194
159
186
178
200
180
195
145
189
152
153
162
170
176
185
171
159
191
156
154
151
188
193
187
147
184
140
164
192
161
186
162
153
196
149
189
174
141
195
170
161
186
190
166
150
150
152
150
168
167
191
168
160
195
156
148
156
169
154
157
178
171
194
170
189
193
173
193
162
149
182
146
176
178
182
148
185
200
149
141
178
157
174
199
174
147
194
145
149
164
166
187
153
194
161
189
194
193
160
189
145
147
145
144
156
156
151
161
157
169
147
154
147
172
181
199
152
169
162
191
186
141
185
159
141
198
160
160
157
176
146
180
179
154
176
155
179
196
174
199
164
170
177
197
181
188
162
179
155
154
154
152
158
193
180
166
150
189
177
166
159
144
155
181
140
183
169
185
189
177
140
170
178
168
185
177
198
161
197
197
174
143
187
156
158
164
162
178
188
188
178
155
186
154
192
159
157
183
191
181
195
155
147
180
166
194
144
198
196
170
142
199
159
159
186
156
178
141
145
196
148
173
174
149
178
140
166
154
169
154
196
173
143
196
169
144
159
145
151
181
166
183
188
167
166
175
174
198
193
180
200
191
194
151
155
150
194
191
191
168
142
153
177
195
180
175
142
199
183
153
156
185
173
179
148
180
158
194
157
156
197
141
144
198
182
141
150
193
164
184
151
145
186
166
198
156
148
179
143
178
163
182
166
152
199
165
143
155
150
164
143
172
185
164
172
193
149
173
142
149
172
174
188
146
167
199
155
181
171
145
140
155
160
199
158
189
160
170
197
194
158
191
176
186
162
181
176
195
157
170
181
158
141
142
143
155
140
151
175
160
170
165
153
170
199
174
146
153
190
176
143
167
172
159
198
187
156
163
148
194
149
175
175
190
175
143
177
184
167
158
161
196
193
151
153
155
160
163
140
179
147
189
188
156
170
197
147
150
179
194
143
197
191
162
164
150
181
154
155
158
150
171
159
146
180
157
155
151
162
163
145
174
140
157
149
188
173
180
158
150
160
146
186
164
196
169
167
178
151
164
154
178
141
180
146
170
146
195
195
178
184
184
172
168
166
146
162
163
143
141
189
173
175
198
194
168
156
145
143
153
194
146
148
195
193
178
196
194
166
158
148
197
174
190
164
190
142
198
157
168
180
158
177
199
159
168
169
151
200
193
190
147
162
176
160
182
198
199
151
152
143
142
195
181
156
161
179
158
141
196
147
185
183
163
180
192
165
187
151
152
141
147
186
171
162
180
195
141
168
175
173
156
194
140
164
195
200
192
184
186
187
145
186
146
183
189
184
171
169
160
145
176
194
157
168
171
170
161
152
187
152
171
144
176
141
163
154
144
189
158
166
190
180
144
183
154
194
199
195
181
165
167
170
188
189
182
147
149
181
168
190
166
170
175
162
141
171
192
177
186
148
170
158
154
170
178
183
193
195
165
141
167
188
144
156
161
159
189
163
180
185
169
152
181
193
172
146
144
164
196
186
167
183
151
164
171
169
144
157
151
192
198
162
174
197
164
161
188
199
183
154
181
199
197
191
196
150
177
181
169
140
178
181
146
170
146
165
187
167
181
183
164
191
151
157
150
174
153
164
184
181
184
191
187
170
140
192
159
170
199
189
162
173
148
165
145
160
186
161
165
191
150
190
186
152
183
168
187
162
194
148
157
153
179
142
198
187
190
149
192
179
171
177
166
182
141
150
191
189
145
163
165
200
188
182
179
174
198
190
190
148
146
173
171
147
151
144
162
142
155
156
186
140
149
183
197
176
146
153
184
169
192
167
152
184
192
176
143
141
166
198
170
195
153
180
189
142
172
141
160
181
184
176
155
163
196
161
176
147
142
173
179
157
145
141
151
142
184
143
149
170
171
167
193
167
157
161
154
150
180
154
140
182
145
150
169
145
169
197
164
154
190
164
198
185
200
149
140
170
143
172
167
140
149
186
180
177
147
188
144
167
173
182
183
141
157
144
172
187
154
175
162
172
173
172
158
194
196
170
148
173
189
185
185
168
180
178
142
187
165
198
198
185
195
148
148
185
146
161
154
140
140
196
192
160
160
157
153
152
152
148
176
157
164
167
184
200
167
170
152
158
153
158
186
168
154
160
181
180
189
161
166
148
165
192
159
171
173
164
151
158
179
142
181
180
178
178
183
186
145
154
196
164
172
200
173
183
151
147
194
163
176
186
166
145
167
193
160
144
145
180
153
172
186
150
143
198
174
175
170
195
157
180
190
160
154
161
164
179
145
163
163
181
163
147
188
170
146
143
141
168
199
160
190
163
161
177
179
149
164
151
182
153
187
192
194
164
194
170
173
147
150
195
151
184
199
193
147
174
160
184
144
164
200
163
186
188
141
162
200
158
168
194
148
161
183
199
159
184
156
159
148
187
180
157
200
155
185
196
173
176
167
184
175
145
189
174
198
151
170
172
178
191
181
147
187
196
181
182
186
195
165
186
165
172
169
169
141
192
183
187
144
197
159
170
147
144
189
199
157
172
197
189
161
199
175
166
165
175
141
172
148
195
167
166
167
158
154
184
159
145
149
154
167
182
144
177
159
142
189
196
167
154
178
166
142
188
182
200
157
176
149
175
177
158
162
165
164
154
161
187
192
181
178
178
196
196
160
149
169
153
150
148
187
178
147
186
162
188
162
182
157
142
143
151
197
187
195
166
149
142
195
177
157
170
159
166
200
171
140
188
156
169
191
195
152
181
174
184
175
194
148
188
140
164
182
141
168
169
195
151
181
193
152
182
146
198
197
179
161
181
183
148
190
163
140
152
145
160
162
166
174
185
158
145
173
154
173
192
151
163
168
156
190
178
154
161
186
189
156
183
155
199
181
164
151
168
167
153
141
179
151
171
141
196
159
177
198
196
156
153
161
189
187
199
162
161
156
192
147
159
177
178
141
197
168
142
166
199
176
142
197
140
169
154
184
146
158
143
185
167
165
178
166
152
180
187
141
151
166
178
187
159
159
148
192
162
186
183
184
177
154
189
184
143
186
142
195
149
152
155
176
160
150
149
173
167
182
182
180
175
155
163
191
151
153
194
199
151
162
154
147
171
198
145
163
165
141
160
189
167
143
188
180
177
146
152
144
181
160
164
194
195
191
193
169
191
199
183
179
194
153
194
168
177
163
169
188
161
176
186
161
176
164
188
173
153
156
171
194
161
154
157
180
162
140
191
197
185
166
194
160
178
161
183
143
140
194
171
181
157
147
199
195
200
152
162
156
193
198
146
184
143
137
119
106
143
113
104
147
131
117
146
138
119
109
103
135
103
131
130
143
113
111
134
117
145
141
115
144
147
115
135
101
135
138
132
143
144
132
120
104
134
124
120
113
116
113
110
113
105
108
117
133
135
121
109
137
104
130
141
144
125
150
110
108
109
111
100
111
101
134
147
132
134
112
129
133
131
138
126
100
134
106
130
117
149
133
139
127
148
130
114
112
104
129
141
110
116
113
147
107
129
139
126
120
127
134
122
114
100
145
116
111
137
117
134
112
103
103
145
119
137
115
101
129
124
117
101
143
143
139
149
130
105
106
104
105
117
139
116
143
133
103
120
113
116
148
118
148
104
130
144
108
111
144
120
103
121
122
118
149
142
133
137
136
110
126
130
103
110
124
104
145
149
109
120
141
141
121
110
107
147
127
130
138
120
119
120
135
120
115
137
125
143
100
104
140
145
145
130
128
104
115
124
142
142
130
124
105
131
113
143
146
139
117
112
144
112
148
134
150
124
128
114
149
128
110
135
109
128
114
115
110
113
140
100
120
114
149
103
128
139
136
113
113
133
104
145
113
131
130
137
130
138
116
117
142
103
145
121
111
147
103
139
130
136
133
132
115
122
142
143
115
143
124
128
150
138
108
150
123
105
103
144
128
128
107
118
108
142
145
132
123
150
146
148
112
120
105
130
127
149
134
126
127
122
149
130
141
114
107
116
149
118
125
125
138
116
146
127
121
139
103
141
145
111
144
104
120
112
128
141
127
107
122
149
120
115
111
115
145
135
117
146
122
110
144
108
143
120
111
112
138
104
130
100
130
125
143
118
139
124
117
149
104
102
136
127
107
102
108
108
126
146
130
107
130
122
121
100
103
138
119
149
119
120
103
100
146
100
141
108
122
123
119
143
114
121
107
104
142
109
105
127
117
142
139
107
106
149
140
135
116
144
137
142
140
134
129
110
115
135
148
102
110
103
142
111
129
123
114
102
136
130
130
129
105
148
145
116
142
145
105
124
131
118
134
129
116
139
114
118
148
138
106
132
114
135
113
147
109
104
113
124
114
138
150
147
122
136
147
139
124
101
147
143
133
117
104
111
145
105
139
107
127
112
101
118
142
140
113
131
132
112
126
146
150
104
148
135
141
146
100
146
149
124
119
103
116
128
138
139
150
101
146
105
107
106
139
108
134
100
125
131
130
101
108
140
130
123
150
123
143
100
130
115
124
104
100
111
124
133
146
121
105
106
102
147
145
125
116
150
108
102
122
106
122
136
124
139
104
116
130
113
100
111
143
115
106
143
150
103
117
119
133
120
111
134
113
126
134
112
106
107
103
138
106
135
109
126
103
124
119
145
148
131
146
146
100
120
104
114
107
104
146
113
124
117
116
141
116
104
141
140
112
108
147
137
103
118
117
122
133
106
133
134
100
116
130
116
148
146
128
116
127
114
129
137
112
112
120
136
116
114
122
122
104
122
144
103
145
122
124
133
120
113
109
126
114
120
133
117
101
111
146
150
127
148
119
118
134
146
150
137
123
102
135
110
110
134
100
133
109
120
126
110
104
114
101
112
132
125
119
111
102
103
105
115
107
148
113
100
121
131
114
129
123
122
121
109
110
144
119
102
131
106
114
148
134
147
112
127
132
110
105
128
121
141
103
115
117
104
132
118
103
136
109
148
113
131
130
105
130
132
134
146
109
122
116
106
136
138
140
145
136
139
127
145
108
130
139
118
103
143
114
133
108
139
126
119
109
124
130
110
122
139
109
131
148
110
121
125
111
103
128
116
119
126
103
128
113
112
147
106
113
103
110
113
140
147
129
143
125
110
117
142
115
140
117
138
101
141
117
150
113
131
128
127
144
149
118
106
115
119
124
113
104
125
145
134
102
109
120
130
150
132
100
129
103
101
141
147
123
124
121
114
137
128
116
123
140
108
108
126
127
140
138
117
107
106
136
140
138
114
143
117
112
101
100
117
124
131
104
125
103
150
142
127
110
148
117
130
129
136
102
149
145
133
142
119
148
147
121
113
120
108
126
133
102
107
150
130
106
125
148
147
112
148
101
109
114
129
110
101
129
133
144
117
134
139
136
112
140
128
124
109
114
101
140
130
130
104
118
131
112
136
105
138
145
142
128
100
124
148
150
147
107
143
130
150
111
145
130
101
123
114
135
104
132
145
115
138
110
138
150
109
109
147
143
129
129
120
103
101
108
142
105
142
115
138
142
148
103
122
116
147
116
109
134
149
133
139
128
144
114
135
105
106
117
114
121
106
147
111
128
116
139
138
148
100
144
121
142
127
101
115
140
101
135
112
144
138
110
119
123
142
120
117
124
147
123
121
138
129
143
121
140
136
127
143
106
124
139
127
107
126
138
131
136
124
136
101
112
147
118
142
123
124
133
129
129
150
101
137
133
106
109
115
107
112
120
113
146
136
112
148
131
127
137
125
146
117
143
142
144
142
107
109
133
101
125
130
129
141
114
133
103
148
102
133
100
132
131
145
133
115
134
108
143
103
107
145
107
103
123
127
104
114
101
105
149
149
149
137
103
113
117
150
101
130
122
105
125
144
118
105
135
107
120
113
132
108
117
138
135
117
105
111
138
148
138
128
116
123
117
147
136
123
133
107
128
124
121
136
150
102
129
150
126
139
134
142
104
145
129
120
110
120
139
129
149
144
144
111
117
114
136
142
147
131
149
108
141
121
137
132
116
129
147
142
142
140
102
144
111
118
119
141
133
138
144
109
143
136
147
104
102
119
122
145
147
129
116
136
135
146
128
131
107
110
148
137
113
102
118
108
137
147
109
142
130
105
131
145
117
148
114
136
138
135
130
135
108
130
106
113
129
137
122
144
139
132
103
104
105
121
109
128
103
135
128
127
131
111
143
135
106
125
130
118
107
139
113
137
120
129
124
149
134
143
148
148
150
126
110
100
111
136
102
145
143
124
139
123
148
145
129
136
121
140
110
146
112
136
109
125
139
150
136
104
148
114
142
121
116
125
131
129
115
107
114
130
110
135
147
122
145
115
123
131
122
127
111
129
135
112
102
139
121
107
142
102
129
105
119
128
124
117
104
119
122
131
122
133
106
135
146
143
145
113
105
131
122
108
117
122
106
111
124
128
122
137
120
106
104
149
129
143
122
135
104
123
108
103
110
103
148
123
142
124
136
100
112
101
101
131
102
143
100
114
127
105
135
134
124
141
124
115
100
121
124
100
116
138
122
117
141
140
146
113
100
110
133
142
138
141
144
108
142
107
130
114
100
115
112
136
131
140
131
123
123
102
138
118
104
126
118
121
109
111
136
136
113
122
103
121
100
134
137
115
122
101
119
128
120
105
103
127
127
146
148
103
111
109
137
141
132
126
101
109
115
147
130
146
137
140
121
140
105
113
121
150
110
124
124
119
103
131
137
140
141
150
124
145
131
119
144
140
137
147
102
135
125
108
131
134
105
149
118
124
149
133
106
147
111
118
136
112
139
130
101
142
102
131
145
140
119
135
125
138
118
143
110
123
119
102
142
150
143
101
106
126
113
139
102
147
137
140
127
123
147
111
130
119
137
108
128
141
128
116
146
139
100
130
137
145
110
150
106
115
140
110
129
148
107
122
123
103
116
100
132
113
148
123
114
144
135
112
115
135
145
142
141
143
107
130
139
116
120
113
128
137
114
135
127
140
149
114
106
100
114
139
122
129
106
118
135
135
123
128
110
133
130
110
125
145
141
132
128
145
150
127
140
128
133
100
133
117
112
119
105
136
146
123
115
136
127
105
146
131
121
109
122
109
139
114
101
104
115
149
101
134
113
136
105
148
140
111
142
107
124
138
117
109
116
127
122
128
134
107
123
108
141
103
139
143
108
135
129
133
129
128
118
150
112
149
115
115
148
143
121
111
143
129
137
131
138
138
114
118
130
143
113
105
127
128
107
114
148
130
106
123
138
104
149
112
118
128
122
110
113
108
123
143
117
108
127
134
124
143
149
147
104
139
103
120
140
136
114
131
150
118
135
100
132
124
139
103
106
136
119
137
148
121
104
114
101
147
127
132
129
112
106
124
123
128
114
144
125
104
147
137
103
138
102
137
130
117
147
143
142
128
125
134
108
139
149
123
149
136
139
100
120
149
129
143
102
123
136
113
133
138
136
113
108
142
123
109
123
122
149
140
117
112
126
111
134
130
133
126
137
122
100
115
138
125
126
145
127
143
138
117
115
143
124
127
101
123
118
133
148
119
147
134
140
147
109
129
126
138
127
102
143
128
129
101
100
135
144
112
129
122
124
135
130
146
146
139
150
103
106
101
146
100
104
130
102
117
139
119
110
146
102
149
137
127
131
124
142
117
126
135
125
124
116
147
122
103
149
128
126
121
135
127
132
129
102
135
148
106
120
113
133
122
104
105
111
107
109
112
106
113
105
101
142
135
117
126
106
136
110
118
147
114
143
125
136
117
135
105
142
126
108
107
114
109
107
106
135
146
113
137
149
121
124
149
141
137
147
105
106
124
119
105
145
121
141
136
135
138
105
144
121
147
122
124
147
144
105
121
123
144
100
150
149
111
148
150
136
133
142
123
122
127
124
115
132
104
125
144
115
120
119
116
143
109
111
129
139
142
145
126
120
136
105
129
115
134
134
115
107
106
137
145
100
122
127
116
120
121
133
139
105
101
135
111
137
100
106
132
108
145
128
139
110
130
109
134
125
114
111
112
142
111
111
139
130
132
106
109
105
130
130
146
112
119
103
120
132
136
133
116
150
111
148
140
132
138
146
133
127
126
117
112
134
130
109
128
127
127
106
128
138
110
113
147
141
134
109
137
141
109
124
114
140
110
140
128
148
125
110
131
136
133
127
143
116
131
128
147
132
119
139
129
127
134
123
142
112
111
121
125
142
119
134
126
129
133
129
104
125
141
102
143
133
124
150
130
133
113
109
147
128
148
128
126
137
118
126
118
107
113
149
139
113
118
110
138
118
141
139
108
113
147
118
121
138
138
135
104
132
116
150
104
147
110
150
149
137
149
119
139
116
131
111
144
119
110
140
103
144
130
102
117
108
128
105
104
107
121
119
101
106
127
125
140
118
140
110
121
120
114
140
146
117
114
109
135
103
124
124
114
149
124
144
125
140
147
125
141
118
117
105
112
103
126
126
124
133
122
145
133
131
147
147
145
126
121
106
147
102
128
102
142
133
141
138
119
124
134
108
137
103
105
147
111
134
105
128
125
126
110
126
136
100
105
127
134
104
122
140
102
136
106
139
122
128
136
109
125
135
120
111
104
116
147
149
134
117
118
113
103
119
103
149
106
150
122
126
108
147
118
118
125
108
118
125
100
138
145
118
129
116
130
106
108
122
145
126
110
139
112
111
130
136
126
150
108
124
106
130
144
134
134
150
144
103
145
144
101
104
127
104
145
141
142
150
112
134
109
117
142
112
136
114
141
108
143
149
146
114
134
144
139
105
108
128
116
107
120
131
139
126
106
138
131
104
113
135
146
105
123
109
134
149
130
139
133
142
127
126
144
147
133
127
114
100
132
150
133
109
105
145
108
108
114
143
101
123
139
148
106
142
104
135
129
134
150
107
126
128
112
125
117
149
123
142
107
116
104
143
123
138
138
108
140
109
112
142
144
137
108
104
147
147
135
127
139
145
110
147
111
124
122
136
116
104
117
114
142
119
145
120
148
131
150
132
102
112
104
149
145
141
114
145
146
131
128
135
126
146
142
124
142
144
140
108
141
131
119
107
125
138
112
149
123
150
119
113
103
132
132
112
127
101
116
134
127
138
116
114
120
134
101
133
115
118
119
118
123
100
150
133
137
136
139
123
102
139
134
143
136
135
118
101
130
148
104
113
124
127
121
146
147
115
108
119
117
146
118
117
103
108
126
148
108
147
145
121
109
109
140
128
118
148
138
149
133
144
107
145
123
125
121
148
145
113
139
115
106
107
129
131
144
131
134
138
145
109
112
115
114
132
124
136
131
113
132
108
110
146
143
144
129
135
135
123
124
103
150
131
117
128
141
111
136
105
128
144
122
140
124
148
105
123
143
147
106
121
128
113
100
110
103
138
126
140
143
129
132
150
107
137
147
121
109
131
100
142
108
113
114
132
101
102
129
142
143
124
129
111
137
138
103
131
104
136
149
113
120
149
117
125
118
115
110
108
139
111
148
123
119
133
106
115
114
127
121
133
140
102
113
147
117
126
123
135
107
149
116
118
148
111
119
138
118
139
115
146
108
125
115
140
117
101
102
148
112
109
145
150
114
135
104
137
120
113
135
131
111
144
122
101
102
145
108
100
117
146
117
150
140
111
135
117
130
134
106
110
104
123
105
126
109
115
116
106
109
143
124
118
132
131
116
142
143
122
106
141
140
129
145
109
116
111
126
114
120
136
136
139
136
146
127
109
125
127
130
113
132
124
148
137
104
103
102
141
134
139
125
138
136
131
143
139
113
142
125
130
108
109
113
102
132
132
137
100
136
125
146
106
134
146
144
120
108
131
136
149
140
144
137
131
104
131
123
101
101
115
134
128
127
101
122
129
123
137
123
126
110
141
100
100
108
133
138
131
146
119
146
134
108
139
119
117
137
131
138
146
141
119
130
109
136
105
130
127
104
147
142
128
123
136
138
144
133
103
124
115
126
135
110
110
139
136
101
125
104
105
111
104
148
125
129
135
140
111
128
109
133
139
108
140
121
125
139
138
127
102
143
129
149
102
146
101
148
138
132
132
106
136
142
143
126
147
124
125
149
130
122
116
105
135
121
133
114
106
141
130
129
149
131
108
110
147
111
101
126
147
132
132
116
129
141
141
125
134
103
130
105
123
104
128
122
120
118
118
129
131
129
126
135
141
145
123
117
118
148
135
132
123
110
141
123
143
110
123
101
120
105
126
141
148
102
114
109
142
109
150
126
102
102
125
127
104
132
107
148
104
122
146
126
145
146
102
102
150
116
145
145
141
114
104
145
133
120
124
104
116
130
100
102
120
107
128
102
141
123
106
143
114
125
134
147
147
104
119
122
100
143
107
101
122
147
122
126
129
115
142
122
135
109
131
102
134
143
120
144
146
101
134
122
123
110
144
132
128
149
143
100
137
147
128
138
129
106
135
137
130
132
114
104
125
135
106
147
120
113
119
106
132
140
109
150
126
110
101
149
123
102
123
110
147
118
130
129
142
110
148
120
125
109
126
108
139
113
124
135
118
127
106
124
115
138
150
133
142
110
132
144
109
142
118
111
118
113
104
127
106
117
120
117
121
103
133
102
125
100
138
150
131
117
145
122
112
132
112
138
150
130
145
131
106
112
131
130
140
145
101
121
126
113
137
143
136
109
107
121
142
102
113
106
122
102
126
112
147
105
130
116
108
119
124
147
112
115
112
128
146
118
100
140
119
131
141
125
105
111
132
126
137
138
129
104
128
131
112
144
141
112
110
130
131
146
100
148
128
134
116
144
110
103
135
149
115
136
149
147
121
150
106
113
100
133
109
122
121
107
100
119
120
139
104
150
138
110
108
121
125
142
143
115
139
104
140
140
102
101
105
132
109
101
133
113
117
150
136
141
138
126
137
117
100
121
147
136
148
132
107
114
117
131
105
136
102
133
145
146
131
138
100
121
150
137
113
136
126
118
104
141
150
118
145
137
142
124
150
139
136
114
147
122
109
101
125
138
146
126
142
136
116
144
120
130
147
133
143
104
117
130
144
115
136
129
115
147
130
137
140
135
117
127
113
101
119
137
134
106
143
136
113
147
101
115
109
137
104
144
121
106
131
105
148
118
147
127
130
150
145
140
106
130
117
126
141
145
133
121
109
141
121
101
141
119
148
138
150
129
117
100
140
101
141
107
100
127
150
128
115
138
125
122
124
149
111
124
110
142
129
143
120
138
138
107
104
132
131
124
140
138
119
137
102
119
150
145
141
107
124
121
114
103
127
124
114
113
140
118
141
115
100
136
105
110
146
145
101
110
113
116
150
122
103
136
126
126
133
126
135
123
118
133
135
145
133
144
146
116
104
108
135
113
148
113
134
126
110
149
133
146
144
126
102
147
119
130
127
105
100
101
149
101
118
149
144
129
138
104
117
149
146
116
147
126
145
134
125
113
150
137
125
113
125
125
141
102
136
118
132
107
129
104
124
120
141
116
102
121
121
104
110
101
127
135
131
135
106
111
104
135
111
105
122
132
116
122
142
101
144
149
131
103
117
140
133
107
101
113
139
101
134
129
111
126
123
145
109
107
116
136
131
127
112
115
146
119
104
101
126
115
122
143
125
131
133
129
128
131
144
114
101
137
147
100
121
107
119
107
121
109
137
132
105
136
135
100
140
142
100
139
149
112
128
148
118
134
100
121
100
124
116
125
143
128
123
132
139
108
134
138
115
102
120
130
132
111
101
108
110
128
139
147
128
107
124
114
129
139
124
124
118
146
145
124
129
135
146
146
134
145
104
115
130
135
148
133
122
106
123
132
110
105
129
125
109
115
111
140
119
129
135
129
126
148
101
133
139
118
111
126
116
129
122
130
129
150
137
134
122
104
138
136
105
135
148
137
122
148
132
103
146
143
128
108
121
138
130
100
138
139
146
110
137
132
129
149
138
108
141
109
102
127
123
142
141
128
145
119
106
123
103
150
103
121
100
125
108
146
141
140
132
105
104
106
148
121
119
100
108
150
100
142
114
101
139
136
145
119
115
116
104
111
121
131
111
113
106
101
119
149
100
110
129
123
131
134
143
105
119
100
150
149
150
138
134
120
124
128
122
147
120
146
102
133
112
128
149
109
135
112
134
119
149
144
115
110
150
135
117
102
123
128
118
132
101
127
142
147
130
122
143
142
137
116
146
115
142
106
130
100
145
145
123
144
123
115
109
102
124
109
102
131
113
146
105
115
119
134
133
135
122
102
117
115
147
131
106
114
118
120
122
112
148
106
148
142
107
144
134
147
120
125
107
142
110
115
104
132
108
127
133
119
147
103
141
115
137
108
118
109
140
103
142
137
126
148
108
135
109
123
142
149
111
120
115
100
128
128
139
117
150
140
132
117
128
135
101
125
147
118
119
137
111
115
108
150
102
135
150
107
140
144
107
147
115
140
134
106
105
142
140
150
107
129
117
134
105
150
133
101
108
116
107
103
106
139
149
121
105
139
109
104
125
119
120
135
139
149
125
127
129
148
100
144
143
141
138
142
147
128
132
124
123
103
134
114
110
107
124
149
146
119
130
109
111
118
117
133
143
144
125
118
105
123
147
116
105
121
115
124
100
148
111
109
115
103
132
148
110
101
141
111
127
129
139
139
134
139
131
141
128
118
123
112
111
119
100
112
116
114
125
114
136
124
131
102
107
126
128
123
133
102
116
119
115
114
106
149
109
132
110
102
124
135
145
113
107
144
148
106
115
118
139
148
106
136
130
106
145
123
120
119
138
102
108
118
131
103
139
141
150
114
112
114
124
141
124
150
128
119
150
134
123
137
106
113
132
144
142
102
149
119
117
132
103
143
136
128
114
101
113
150
116
140
121
114
139
109
112
134
104
113
147
122
142
142
137
135
111
144
109
105
123
145
137
138
114
139
132
137
107
142
147
145
137
127
108
137
133
127
113
125
113
124
111
128
139
145
121
111
145
148
127
135
145
122
136
134
133
103
121
147
108
116
110
134
120
147
146
131
148
131
130
123
116
107
128
124
129
141
107
107
138
111
142
113
128
111
145
121
102
103
111
102
144
148
106
146
150
118
111
143
108
138
135
145
147
132
130
147
140
128
109
127
144
144
105
103
100
132
136
139
144
126
113
102
110
104
107
124
100
117
147
100
120
132
148
107
130
137
122
140
138
133
107
111
111
145
103
109
147
109
129
109
137
115
115
106
116
136
140
106
148
134
132
102
145
112
120
134
110
106
147
127
127
129
143
103
118
114
141
110
145
133
118
114
110
105
123
135
113
133
130
149
106
101
139
106
145
124
100
131
111
100
133
142
126
136
131
126
139
100
128
148
121
113
116
130
109
113
142
120
123
122
132
117
122
120
101
132
105
130
148
133
122
134
114
107
145
147
108
104
122
130
148
119
146
142
130
122
120
135
135
127
113
114
113
138
122
105
135
134
122
110
135
100
140
119
102
119
140
123
105
109
123
121
100
128
118
112
105
118
120
127
115
121
140
145
106
141
127
127
104
104
126
128
127
142
150
107
102
110
139
100
132
106
126
115
130
120
121
138
102
118
129
133
142
108
133
104
101
146
114
101
141
141
136
129
136
125
103
123
145
137
106
139
124
142
148
114
122
114
143
124
109
109
100
107
104
101
110
146
124
112
136
122
121
102
107
123
145
117
110
124
148
101
116
149
118
149
123
150
136
132
115
101
138
122
130
122
104
121
126
133
105
148
132
117
137
105
133
108
140
102
147
123
123
123
117
146
138
138
103
147
142
112
114
105
142
103
118
107
130
111
123
106
124
122
112
103
145
149
134
144
144
105
118
132
119
136
113
133
139
144
113
149
104
130
116
136
134
139
128
117
149
135
146
147
117
132
118
104
145
135
134
148
120
130
129
114
100
116
102
100
103
125
115
137
130
101
124
127
148
146
147
103
124
102
110
134
133
105
111
126
137
105
148
114
104
135
101
106
139
147
140
115
139
143
106
130
130
108
131
137
105
135
118
121
118
121
105
124
122
138
146
141
138
128
123
106
146
137
108
135
124
116
100
141
104
143
130
113
101
125
141
126
104
147
104
112
125
134
131
142
144
129
131
104
134
130
105
148
103
106
133
141
128
138
143
110
105
126
139
147
100
149
132
104
129
146
144
150
132
140
110
128
134
102
140
110
119
144
124
126
149
121
114
125
117
139
103
121
138
137
101
116
125
140
112
143
112
106
135
125
120
129
143
120
139
122
150
148
114
136
122
117
142
121
111
115
141
133
134
131
143
138
134
123
149
143
119
101
120
147
119
137
118
144
137
139
144
137
129
146
127
128
124
128
120
116
142
132
122
110
103
135
101
140
119
121
135
137
132
130
136
123
139
137
107
140
120
130
130
135
143
103
116
127
133
140
139
113
132
138
149
149
110
110
125
135
141
128
102
148
132
149
143
139
122
100
145
105
144
118
109
142
133
148
147
120
116
100
118
133
116
126
110
107
135
120
144
134
111
124
150
105
124
106
104
125
112
141
127
149
106
137
115
146
110
130
119
131
126
110
118
112
124
110
140
117
104
108
111
134
102
141
124
123
100
125
148
139
100
110
134
135
119
149
130
117
145
106
125
141
133
112
121
124
143
118
134
136
128
111
111
117
123
110
101
145
104
133
141
116
139
100
103
141
150
137
140
107
130
123
121
142
143
118
145
138
116
105
113
140
111
149
132
101
106
142
119
128
146
150
148
102
136
110
131
114
126
140
139
137
133
114
125
111
125
128
131
109
116
119
120
138
140
112
134
127
116
147
137
137
149
120
102
102
149
127
145
144
145
111
134
147
142
131
136
115
149
146
147
127
132
115
137
122
100
112
142
110
118
116
119
136
134
141
116
124
130
130
110
110
114
111
137
128
141
103
101
130
138
141
134
101
102
113
121
108
121
112
136
120
136
134
135
119
115
146
146
144
116
138
148
135
103
136
138
123
116
142
133
124
149
122
115
115
117
120
111
119
111
134
127
144
115
130
126
146
123
139
149
120
104
119
149
117
103
122
108
130
143
114
140
128
122
105
112
118
111
107
110
109
132
114
140
137
142
120
102
101
104
150
126
119
133
128
107
124
134
120
129
116
134
111
143
118
137
139
109
100
101
126
137
128
144
137
136
136
133
146
103
122
131
133
100
148
109
120
102
130
128
103
140
132
140
123
125
134
126
119
102
149
145
141
145
126
100
118
134
137
117
138
120
121
113
141
131
118
146
135
136
146
100
135
104
115
132
139
141
113
132
135
100
114
110
117
115
124
123
140
150
118
145
139
140
102
113
133
138
149
130
115
112
128
141
147
141
126
100
122
114
140
117
102
113
126
102
125
133
100
148
138
110
129
137
124
102
146
139
127
141
116
137
149
135
101
110
137
103
150
147
102
136
144
115
102
136
118
116
130
129
142
129
106
132
120
137
150
123
106
146
118
109
125
102
108
147
111
115
145
103
130
139
112
114
106
113
118
120
109
122
141
104
114
111
144
102
148
134
102
111
146
142
135
147
102
105
144
149
119
117
106
121
119
130
102
139
110
122
137
120
142
136
150
128
143
139
110
129
104
126
135
118
137
143
148
110
128
117
115
120
120
132
150
119
127
148
144
150
117
137
133
126
113
141
109
136
140
128
145
133
116
137
113
148
108
111
102
125
122
106
143
128
105
120
112
144
127
119
109
146
119
123
147
118
143
118
140
102
141
129
126
139
103
100
110
128
141
150
141
146
118
143
130
141
105
128
121
114
101
140
146
127
141
117
130
112
104
104
108
141
140
101
117
114
112
122
106
106
121
145
138
118
115
146
145
120
143
149
134
103
109
100
144
143
145
123
126
147
126
109
131
103
105
102
105
148
140
100
140
106
127
121
130
149
141
114
129
125
118
119
100
132
113
117
106
107
128
101
107
116
148
140
105
130
124
119
148
131
145
109
111
129
121
121
120
124
118
103
123
143
104
128
144
150
147
137
136
145
105
109
149
144
123
149
110
100
121
126
106
104
106
142
138
113
118
108
101
138
124
126
125
131
112
128
141
138
128
123
115
116
135
143
121
120
111
122
133
109
138
130
103
129
127
106
141
121
148
119
126
135
144
125
137
138
142
104
138
116
107
117
116
117
143
141
125
142
123
119
147
145
108
122
132
127
147
139
123
109
129
144
111
126
116
103
130
107
120
103
150
128
149
102
150
100
106
104
106
110
124
117
137
111
136
128
109
114
149
141
147
117
148
106
142
140
115
149
150
110
129
144
133
126
102
126
115
133
128
148
112
130
107
138
148
137
139
116
118
139
143
114
106
148
150
115
110
131
100
106
149
117
150
134
103
106
107
139
139
124
114
131
103
111
121
105
111
124
103
116
107
126
105
116
141
135
146
145
148
105
117
134
148
141
120
120
130
128
110
125
144
123
130
141
129
112
150
138
143
128
102
116
142
136
141
133
111
137
147
144
101
126
140
118
107
148
116
149
104
101
140
150
108
142
124
118
111
103
114
139
139
112
142
127
146
123
107
106
113
106
108
107
149
137
136
134
147
113
131
127
105
110
148
116
100
122
112
102
110
135
139
124
101
150
131
130
138
134
122
102
119
116
103
141
129
142
103
134
131
149
103
126
107
130
134
118
129
129
124
116
136
143
148
128
134
133
107
123
150
143
133
127
135
140
100
136
118
149
147
104
150
117
107
105
135
100
128
107
117
113
114
126
105
103
138
143
111
100
121
123
103
101
115
114
103
106
130
125
119
148
131
109
111
100
107
105
109
104
117
121
103
119
106
120
124
147
131
135
124
120
107
107
123
103
107
112
142
116
145
112
118
107
123
117
113
133
140
141
117
115
148
136
129
101
132
146
142
121
121
146
126
118
132
123
100
120
133
137
143
123
100
115
107
146
140
119
147
146
139
130
146
130
124
147
126
121
127
104
127
144
133
122
101
140
148
109
111
103
103
100
150
137
106
126
127
148
103
106
147
124
128
127
143
148
108
101
104
105
139
140
145
125
120
129
133
101
140
150
140
149
121
141
109
113
141
112
118
139
129
137
117
141
150
146
114
129
115
113
106
143
104
100
148
129
104
138
120
129
144
106
136
128
138
130
102
135
143
114
124
125
146
140
138
115
101
130
125
108
113
124
108
111
104
149
130
108
150
130
144
141
148
149
127
150
129
132
150
109
135
103
102
112
101
105
147
124
126
113
134
149
134
149
116
146
117
150
137
124
131
147
110
125
137
130
145
139
125
129
149
135
132
140
132
116
126
110
139
115
147
135
134
119
126
116
140
105
125
118
139
118
138
103
141
109
130
132
139
149
149
115
111
102
150
107
134
112
125
109
108
135
100
138
131
148
136
123
102
137
113
137
134
118
118
102
108
135
106
140
111
120
112
149
101
121
100
141
111
113
107
115
134
105
121
125
115
148
106
127
132
117
108
148
146
142
115
109
135
128
124
109
124
111
103
110
131
130
121
114
105
141
123
105
126
140
109
146
110
112
134
135
116
105
147
135
124
140
136
149
142
125
128
147
143
136
150
148
127
120
146
100
141
131
103
107
133
109
136
143
134
112
133
125
133
107
139
123
130
114
113
123
100
142
121
107
118
143
112
103
129
116
102
118
139
150
118
104
145
116
114
128
107
141
120
139
149
149
119
100
111
114
137
146
138
108
131
102
100
126
137
106
142
100
125
131
149
147
104
119
105
110
112
124
106
123
149
135
115
106
128
136
141
119
138
139
121
103
114
116
134
136
102
109
133
121
107
149
119
119
112
119
112
116
148
126
139
113
117
140
113
129
113
103
123
122
118
137
125
120
106
127
114
132
132
129
116
137
109
133
133
115
105
147
110
139
122
105
134
106
148
104
141
112
114
144
110
114
147
116
109
103
126
123
113
120
105
125
133
144
120
137
141
142
120
131
122
133
129
143
127
139
115
133
146
110
140
136
111
140
145
138
108
116
134
147
140
112
103
113
108
108
147
142
103
118
126
136
138
150
137
143
119
132
131
101
110
138
100
104
139
135
149
141
139
124
149
116
109
107
105
133
146
105
100
133
106
135
133
124
101
136
139
109
106
120
135
114
102
122
136
133
147
141
104
142
102
113
105
150
139
146
136
122
104
149
145
145
138
150
117
131
109
148
129
100
143
123
105
150
122
126
120
100
103
134
137
143
103
105
105
137
141
102
130
143
130
118
111
116
109
144
141
121
114
144
123
140
136
129
126
127
146
116
148
139
113
147
120
120
145
123
107
115
120
138
115
140
113
147
120
123
141
146
146
121
104
130
130
143
134
121
136
107
147
109
108
110
143
105
123
115
139
106
131
119
143
103
130
108
116
131
133
146
118
136
111
122
145
145
110
111
124
140
148
141
127
139
119
117
135
114
135
112
141
103
134
108
112
137
144
149
146
120
128
126
108
135
144
129
145
117
123
103
114
136
146
145
130
110
106
123
130
131
141
142
120
115
143
125
138
107
135
104
132
111
123
103
150
115
120
101
133
114
100
147
120
116
149
133
140
122
137
133
131
129
147
119
146
135
135
143
139
128
119
133
100
150
140
127
127
133
148
119
136
140
138
140
135
147
133
132
136
113
148
140
136
113
136
134
138
119
108
127
141
122
142
133
115
126
106
119
117
137
145
145
143
118
142
140
133
103
113
104
113
126
127
119
106
121
148
127
143
104
140
141
129
141
108
112
100
111
138
133
150
125
117
120
115
106
106
119
124
134
114
127
126
128
148
105
144
117
135
144
114
129
133
105
122
106
141
112
111
136
134
142
135
101
133
102
116
145
112
127
104
107
102
122
125
114
144
128
125
130
123
115
110
124
140
108
128
147
142
110
142
106
110
132
130
130
108
128
130
126
119
106
142
129
100
111
146
101
100
127
102
137
120
108
147
136
138
115
123
147
135
142
119
117
114
127
132
135
131
133
127
115
106
146
147
123
140
128
112
103
150
127
134
106
131
115
116
121
130
108
101
107
117
147
121
150
124
138
116
138
131
136
147
134
141
138
142
101
125
104
141
140
110
137
101
147
116
136
148
120
107
123
134
111
103
135
149
116
118
149
147
146
120
129
120
111
129
144
126
149
112
139
141
108
142
145
143
132
112
134
145
125
127
143
128
118
116
123
119
139
141
124
119
116
108
146
142
110
134
122
134
119
137
113
132
138
101
121
109
136
123
104
138
102
133
135
124
133
114
118
129
105
136
101
101
117
102
144
104
145
145
102
109
104
118
117
110
104
149
129
119
118
134
122
131
118
119
147
114
134
117
102
144
103
150
134
142
138
146
120
101
142
111
131
109
105
113
143
140
131
130
101
115
120
139
136
122
136
123
124
148
108
143
102
111
133
149
145
134
150
126
127
129
145
108
135
115
107
138
141
107
125
137
123
106
110
107
109
149
109
102
129
111
126
145
126
144
118
141
150
140
116
133
129
122
120
117
107
147
130
142
149
127
144
136
125
127
139
137
135
111
116
134
141
119
139
102
143
106
135
127
120
134
145
134
145
141
144
104
139
118
130
108
101
120
125
126
145
123
146
148
145
109
148
143
150
126
150
100
139
123
106
110
141
110
125
145
106
146
149
148
142
117
107
146
113
109
129
147
109
103
101
144
149
121
144
138
134
135
118
150
147
125
125
136
134
112
132
125
148
119
124
139
116
117
110
136
145
137
108
134
121
124
150
106
106
110
132
120
132
112
111
124
140
139
143
138
121
143
101
134
141
128
102
120
149
129
124
150
114
131
148
132
114
109
102
107
148
127
142
150
147
127
139
123
127
135
120
145
108
127
140
146
131
125
146
113
111
124
124
138
100
141
126
147
104
136
127
112
108
144
143
133
121
117
124
111
144
123
125
108
133
138
120
119
148
133
146
124
127
100
123
124
106
120
102
103
126
116
125
141
141
125
106
125
145
102
109
117
117
106
112
123
106
112
139
132
116
123
101
135
138
120
104
113
139
125
124
134
122
131
124
123
131
138
130
100
106
103
139
110
146
103
132
124
144
105
110
111
141
113
130
108
128
113
145
109
108
147
103
130
126
116
146
144
147
123
139
129
129
108
133
106
111
111
114
138
142
144
146
140
117
112
132
149
111
134
130
119
114
150
150
103
103
129
108
124
126
127
141
108
150
116
133
128
122
130
111
117
142
117
146
147
143
121
146
145
147
148
128
121
121
143
112
119
101
110
129
142
125
119
104
147
131
133
103
101
147
105
115
108
143
105
104
105
120
142
122
133
135
105
110
135
127
114
111
128
140
100
137
119
123
127
116
123
144
115
108
143
128
108
125
149
146
111
122
144
124
144
115
101
129
122
132
116
124
147
146
127
129
141
111
119
131
126
132
107
105
140
104
118
101
135
136
144
126
142
108
130
103
129
126
126
121
108
128
149
140
111
121
139
103
135
105
142
140
147
107
122
146
103
114
145
137
141
125
128
112
120
139
100
146
108
128
145
134
119
100
108
109
109
131
100
123
103
142
143
135
137
107
119
116
120
138
123
119
114
102
135
119
135
137
133
130
134
150
107
110
123
143
106
145
105
149
142
118
135
126
108
126
148
134
150
131
144
136
108
133
123
107
111
108
126
104
144
114
131
141
123
116
138
127
121
138
106
128
149
173
186
185
183
155
187
158
164
142
178
143
198
176
187
169
166
182
146
189
159
153
156
181
163
147
186
184
146
188
163
161
171
151
182
184
197
179
195
166
185
173
161
197
153
158
188
176
146
159
190
186
183
194
189
187
173
156
195
198
155
177
161
193
197
149
146
199
200
158
197
179
150
179
173
175
144
186
199
191
199
199
184
181
199
144
158
191
148
148
196
156
141
170
182
147
157
189
196
192
184
185
151
179
141
197
167
164
200
182
184
154
186
185
154
161
156
177
149
200
144
181
170
162
161
178
145
178
150
197
170
159
187
145
159
184
145
166
165
156
184
173
147
199
166
193
171
166
172
192
143
195
142
152
165
184
143
159
194
147
150
182
189
173
186
161
157
166
158
145
153
165
167
193
175
171
168
169
153
149
180
196
178
141
154
185
179
153
151
189
156
194
140
148
185
175
154
173
188
142
152
194
144
174
151
200
192
170
192
174
173
155
191
153
144
153
193
190
143
150
189
193
174
159
146
145
156
163
140
193
176
151
156
188
155
178
172
187
162
199
169
180
194
159
141
182
150
180
163
145
148
142
199
163
175
161
165
187
193
149
163
157
156
189
189
155
199
140
188
147
200
180
152
187
149
157
154
166
152
162
149
172
152
166
161
173
185
165
160
163
188
175
187
175
183
184
172
159
177
156
172
165
169
170
198
196
164
148
163
158
159
185
173
173
183
187
185
146
191
149
160
177
170
143
196
156
165
160
145
185
197
164
157
162
183
198
189
195
147
145
190
162
190
193
197
171
149
168
171
151
173
170
175
155
146
157
192
188
158
192
141
177
143
177
199
168
145
145
152
182
147
177
154
195
192
196
141
145
182
168
184
148
183
192
195
165
185
191
160
155
144
142
192
172
154
173
148
159
192
200
190
158
196
163
163
193
140
147
173
166
191
163
166
143
176
156
148
150
153
180
196
156
181
192
163
186
159
150
142
173
199
153
191
187
170
177
168
143
147
142
196
187
184
161
161
151
159
140
142
179
168
185
185
172
192
147
147
198
159
186
192
146
163
165
183
152
196
170
188
186
177
155
172
141
151
191
194
151
176
187
187
167
149
163
175
179
193
141
163
165
149
148
156
179
189
189
156
171
149
162
163
197
162
152
177
183
181
181
177
151
151
193
174
190
157
162
145
150
173
163
192
167
197
169
159
164
181
175
186
153
184
153
196
153
164
144
150
200
194
198
195
177
169
173
153
189
194
177
195
173
146
146
159
195
174
169
195
161
200
156
176
164
184
182
171
142
149
200
162
146
166
190
148
189
183
149
187
159
189
141
145
143
186
197
173
195
142
175
151
182
188
166
167
146
158
147
195
188
162
194
178
173
188
181
140
183
160
158
192
157
155
172
167
200
188
198
172
190
198
174
184
175
142
173
143
162
143
181
164
158
193
164
187
146
180
191
170
197
144
187
170
174
183
166
155
194
163
142
197
165
174
155
196
153
196
176
147
161
162
164
152
189
180
172
166
158
175
188
191
153
160
153
150
195
185
150
182
187
148
195
179
149
170
140
167
166
167
167
149
159
198
177
179
190
141
156
173
192
181
190
154
145
188
162
186
194
190
198
187
162
152
181
184
186
171
156
173
154
177
181
155
190
165
162
188
156
197
141
167
182
149
160
170
191
185
181
173
180
159
145
146
179
147
169
155
193
200
162
163
144
196
158
200
161
172
177
181
151
182
148
183
169
154
170
163
144
177
152
197
189
154
158
190
148
157
184
147
147
199
190
177
143
156
180
145
169
153
147
153
160
162
190
173
152
169
168
143
148
196
158
181
140
167
158
179
183
141
178
140
142
159
154
191
188
155
170
159
163
185
196
185
197
191
180
163
143
159
159
153
159
195
185
156
185
172
188
147
194
176
153
175
172
178
180
185
158
151
156
142
141
191
143
197
158
188
156
172
167
188
199
198
143
146
186
160
197
193
178
187
185
168
172
154
156
170
177
143
171
189
154
143
162
194
162
177
193
194
170
154
164
192
158
192
176
191
168
140
166
185
147
168
173
172
173
171
175
156
148
184
191
159
149
151
171
146
183
144
194
140
192
186
174
171
143
171
196
182
143
194
176
171
191
195
172
193
196
161
145
195
146
161
148
145
183
144
195
142
167
186
184
194
181
145
161
187
143
153
154
180
167
196
175
180
173
155
199
164
193
192
141
155
158
148
145
153
167
182
147
178
141
200
165
187
197
153
159
165
197
155
146
185
142
198
144
150
151
177
200
179
185
152
158
165
172
142
195
157
157
199
158
180
143
192
162
152
170
160
171
169
172
160
195
183
157
175
153
181
178
196
174
194
158
189
155
185
188
162
144
181
191
169
176
152
158
143
141
140
182
191
161
176
178
171
180
168
188
192
152
186
150
190
188
170
168
172
148
183
179
183
187
144
162
189
168
141
170
142
171
174
142
179
161
142
153
163
195
192
163
193
162
156
173
174
194
193
150
168
142
165
148
152
170
186
150
163
149
196
174
142
182
200
192
191
166
181
167
184
153
186
154
171
167
186
151
146
167
177
192
167
198
150
147
146
195
192
182
183
191
175
150
171
191
188
187
162
199
175
182
154
191
176
153
200
176
189
182
155
195
171
155
169
141
172
169
192
140
170
169
140
200
178
162
146
186
163
198
145
176
175
190
143
185
167
161
179
169
169
171
142
182
147
160
177
150
168
156
162
189
188
161
183
154
187
176
177
183
199
160
149
166
167
141
152
195
159
168
154
166
190
142
194
198
150
150
186
162
192
199
178
149
194
177
192
197
194
148
142
183
174
187
151
169
200
200
178
147
140
193
192
153
170
186
154
190
151
174
140
200
161
183
195
200
194
181
168
190
152
151
175
166
144
143
163
157
188
146
174
183
162
156
143
141
144
190
153
145
175
169
146
163
171
174
197
180
171
159
147
154
173
148
151
186
176
177
200
167
199
170
153
149
187
178
185
158
197
189
199
200
164
187
200
166
150
172
190
143
200
181
142
196
164
148
174
189
142
173
195
196
171
151
177
166
171
167
168
176
186
186
192
183
187
150
189
196
141
151
193
169
175
187
189
146
172
185
196
180
174
197
181
194
167
144
163
146
186
200
199
150
148
163
199
165
200
183
141
140
183
175
166
164
148
187
164
146
199
151
157
169
173
178
164
159
194
157
200
172
195
174
170
194
166
186
163
140
153
179
176
157
144
184
156
195
175
185
178
160
178
162
166
158
168
168
158
161
189
151
158
173
177
154
166
181
168
140
146
200
145
177
188
181
182
183
197
153
160
150
167
191
173
184
157
169
145
177
140
151
177
171
177
148
174
159
169
143
163
161
153
184
177
157
192
177
182
150
156
187
166
142
148
149
161
184
148
168
180
188
184
192
167
182
192
142
177
159
153
195
162
170
159
154
143
154
140
173
187
159
144
154
196
177
172
184
186
157
159
169
177
151
189
180
165
185
157
188
156
180
157
180
175
146
185
175
156
164
184
169
198
171
168
167
193
182
162
177
156
187
172
165
188
175
164
141
165
180
163
142
183
197
198
198
144
190
152
194
188
192
159
196
191
157
162
192
163
191
158
200
159
191
187
173
183
197
168
174
199
176
164
171
144
140
142
185
187
149
153
193
185
193
167
178
198
196
164
152
182
179
155
174
160
145
184
185
147
155
145
163
183
193
187
170
156
158
179
187
169
193
195
141
193
163
154
200
197
177
148
178
184
159
162
193
198
157
145
154
158
144
177
155
177
163
175
185
155
162
199
191
187
186
191
143
149
143
156
163
198
188
181
140
156
168
154
196
143
178
148
193
163
140
178
169
153
179
163
182
162
160
199
192
154
152
187
173
140
159
150
187
190
168
179
174
156
177
142
146
153
173
142
154
181
140
178
176
161
145
176
177
184
185
152
143
167
176
186
162
144
156
194
165
199
180
168
200
185
164
169
185
183
155
195
196
162
178
141
161
194
159
200
192
162
160
157
146
155
172
152
160
144
176
141
192
195
180
141
179
142
155
141
144
198
153
153
186
155
144
188
192
156
150
182
169
153
146
190
144
189
172
145
146
179
140
162
152
140
167
182
157
170
200
182
173
184
160
197
157
180
163
184
157
179
150
176
148
157
159
190
170
196
192
155
184
181
142
177
161
168
193
176
198
172
194
160
181
185
184
160
143
178
140
161
196
195
175
185
165
163
190
168
149
157
188
192
178
165
153
171
181
183
159
170
162
155
146
156
155
186
169
147
160
145
195
194
175
174
191
182
150
156
171
174
145
184
194
183
175
150
188
200
179
192
194
179
165
152
162
179
150
159
195
181
175
161
191
173
198
167
177
172
188
143
181
163
156
178
186
145
176
181
171
190
195
180
193
163
144
185
178
142
172
141
200
156
149
178
153
192
159
192
156
190
140
147
184
185
170
154
199
164
141
149
200
199
163
184
200
185
183
140
195
171
148
158
141
166
194
195
156
172
172
141
197
178
179
175
147
147
198
155
150
189
181
146
172
195
172
193
147
185
184
183
156
171
186
173
171
172
152
188
167
152
195
199
145
194
171
189
142
171
199
140
180
164
149
172
147
168
143
143
157
180
152
148
196
181
164
160
173
152
176
176
172
180
180
155
165
148
165
189
173
173
176
150
193
142
141
150
144
166
170
149
172
140
158
176
175
179
165
167
192
153
196
177
190
151
146
174
169
188
180
183
192
163
140
158
176
171
142
200
177
194
155
174
191
173
183
170
172
141
188
200
144
147
152
167
193
154
179
147
200
161
144
178
172
175
148
157
141
185
194
190
173
164
173
180
149
141
174
171
169
198
142
195
152
156
183
190
169
140
158
184
194
176
187
158
194
145
146
144
151
146
166
146
165
182
140
181
152
191
168
157
143
149
163
195
152
175
153
141
160
188
141
186
190
162
143
182
187
147
170
158
190
196
156
191
141
156
194
146
173
166
147
190
172
163
175
199
148
200
149
144
175
144
183
193
171
163
179
166
143
195
185
196
157
192
170
186
161
176
146
195
167
179
141
184
182
162
200
172
157
157
194
173
156
140
190
163
142
195
159
154
180
184
158
143
193
176
158
171
185
150
187
169
198
196
182
165
150
163
156
148
194
181
151
141
186
155
186
193
147
153
197
145
164
173
197
183
146
175
189
156
190
153
177
186
185
163
198
164
149
142
163
167
167
197
164
164
142
189
142
192
175
195
161
183
152
190
200
171
185
193
195
142
149
142
142
157
152
174
200
145
149
190
149
146
156
154
161
166
178
160
197
142
180
145
160
166
154
168
149
181
185
195
143
188
148
156
193
153
165
157
141
145
143
185
143
199
160
163
172
173
183
162
146
184
162
162
147
167
164
152
194
195
161
186
166
148
163
188
188
142
141
150
148
185
197
143
192
185
143
188
199
174
143
145
172
163
197
191
196
179
186
183
148
148
199
145
193
174
157
153
160
186
167
148
183
151
180
176
151
171
194
146
190
197
180
148
171
191
143
187
146
174
157
140
161
188
176
170
142
171
155
163
199
175
182
172
175
195
188
180
146
170
183
161
158
198
170
185
156
162
164
148
157
146
167
161
167
171
148
183
178
146
148
164
164
175
174
174
165
168
165
156
169
162
178
177
160
194
142
195
142
165
140
149
158
163
161
178
169
162
176
151
172
167
195
155
193
189
168
195
160
194
163
192
173
165
197
168
180
195
179
146
146
155
175
169
193
146
174
156
176
197
180
171
160
176
154
183
145
182
185
199
143
164
170
173
153
190
189
191
186
166
190
195
166
168
146
167
151
167
169
173
173
163
174
148
175
155
182
151
195
181
161
149
144
162
193
197
158
185
163
188
193
162
170
146
200
198
145
140
151
145
170
171
170
174
140
145
159
147
146
194
160
156
162
186
158
140
163
153
197
198
141
165
153
187
141
184
184
144
199
169
191
140
170
145
177
163
187
183
176
193
182
177
198
145
168
148
151
162
169
188
179
187
144
189
146
163
143
185
162
154
192
172
144
160
165
147
173
193
147
186
151
190
200
200
153
177
175
152
198
161
177
174
179
194
170
156
158
184
176
170
189
180
174
165
184
193
140
167
140
180
180
160
146
157
191
188
153
194
176
146
141
198
172
165
179
165
156
164
160
195
165
185
153
174
159
170
197
145
170
179
148
146
171
145
170
169
146
182
165
180
176
180
157
144
200
165
158
176
163
182
193
141
198
185
190
161
153
177
198
143
190
160
199
183
182
169
165
156
163
140
181
183
191
193
141
161
150
153
193
148
188
171
163
155
169
173
167
168
177
196
145
168
172
183
182
176
182
142
185
164
169
194
173
182
140
181
180
200
179
167
159
200
148
144
159
186
185
181
185
158
180
153
143
171
146
140
197
194
164
192
144
173
194
173
181
142
149
156
178
164
154
188
140
175
198
185
152
198
142
190
200
160
181
159
186
172
158
183
147
150
152
154
196
197
142
193
164
144
198
194
172
189
147
166
188
189
198
200
198
188
160
197
184
191
190
141
150
189
181
142
166
141
164
151
178
184
182
148
174
195
185
169
184
187
200
146
173
163
191
200
199
156
166
171
144
176
171
176
184
141
151
158
142
174
198
154
180
188
179
142
170
196
181
155
148
173
165
169
142
188
145
191
175
152
177
200
180
143
190
140
191
196
200
151
152
144
157
160
193
174
148
191
158
149
192
150
169
168
152
150
162
191
155
156
164
200
181
168
161
183
151
148
148
173
159
145
148
177
166
189
184
150
149
199
149
177
172
146
183
153
148
146
197
170
150
141
194
174
165
185
173
187
191
143
161
189
174
154
148
180
182
159
187
173
188
170
199
142
145
146
189
198
175
166
177
185
198
198
187
186
151
160
161
159
159
181
151
167
163
155
155
191
141
147
143
199
154
155
146
190
168
145
198
164
169
186
165
166
178
170
192
169
164
141
150
154
143
182
153
164
141
197
164
186
156
160
184
164
186
178
172
166
145
146
140
186
146
156
198
140
179
191
162
152
188
156
161
150
193
147
142
184
187
199
198
181
145
151
168
163
181
164
181
191
157
168
154
190
166
182
188
190
140
194
150
189
174
154
155
198
178
192
185
192
170
180
167
158
181
180
164
185
197
189
153
171
145
189
166
172
158
167
181
178
159
169
156
149
169
189
142
159
183
191
152
146
160
162
168
193
161
191
173
190
144
188
154
172
196
197
157
193
184
173
146
200
165
161
188
158
196
188
156
174
174
162
178
190
174
171
142
191
171
187
199
165
157
180
159
198
166
172
152
175
174
182
143
142
200
199
200
174
171
172
151
142
163
145
187
195
173
182
163
195
200
154
159
166
154
179
158
184
187
194
154
166
144
152
184
194
183
166
157
190
144
181
177
175
180
195
150
179
185
193
155
140
165
162
143
150
143
151
175
173
200
143
175
145
178
141
150
164
156
168
160
200
142
144
168
145
183
176
189
141
149
159
171
159
145
197
159
153
189
186
161
155
142
162
152
148
198
167
180
175
146
186
153
190
142
200
160
142
161
170
147
168
165
178
172
161
193
157
199
145
148
183
146
167
143
168
192
176
182
160
165
184
140
199
188
168
154
175
151
167
172
194
158
199
170
198
170
140
174
166
142
167
178
180
175
159
186
159
173
149
149
186
194
185
155
161
190
179
177
173
162
186
191
160
195
178
158
184
184
186
163
170
171
148
158
168
171
195
169
196
196
151
200
193
159
154
188
191
174
185
142
197
187
184
155
182
186
182
153
184
192
189
185
200
147
184
169
158
188
167
174
157
165
189
162
192
190
146
195
143
146
146
159
158
152
179
183
161
160
185
160
145
150
159
159
161
160
186
158
148
197
156
173
177
182
195
188
182
200
176
188
174
195
169
150
144
194
195
187
180
148
182
157
154
173
175
157
162
196
177
157
150
164
187
171
140
197
141
177
189
191
141
197
191
175
184
188
143
152
190
154
145
192
198
161
175
176
173
141
150
178
160
169
180
165
192
158
167
141
142
148
141
149
199
144
146
153
167
189
153
186
183
190
165
163
194
196
181
190
195
186
183
169
171
200
199
196
158
190
141
183
141
149
154
166
197
144
155
169
152
177
186
155
157
193
154
167
144
186
186
163
172
182
186
180
176
183
193
174
142
155
194
152
176
185
144
156
179
170
195
154
165
190
160
150
159
197
157
165
178
179
200
145
142
167
141
148
152
186
192
149
200
179
143
144
192
179
175
197
192
196
182
170
188
185
163
197
185
175
166
178
143
147
185
154
142
170
199
166
169
194
146
143
194
188
193
166
166
182
140
184
188
143
157
155
183
158
145
141
186
197
179
180
172
146
194
170
184
141
156
176
198
185
144
192
191
199
190
179
141
149
163
174
193
176
140
189
189
167
144
166
167
167
191
164
184
149
149
177
168
156
198
142
154
140
140
163
171
195
175
191
185
172
140
146
152
188
146
164
194
185
177
152
180
180
168
140
183
151
146
199
154
169
195
171
143
163
140
182
164
167
164
170
147
160
158
153
179
192
175
194
188
177
141
169
144
190
144
170
177
144
184
168
158
196
150
164
161
177
195
158
174
173
145
180
161
189
153
145
148
144
170
172
165
183
157
149
177
182
174
160
166
184
153
194
195
173
185
172
183
148
196
193
170
197
140
190
152
159
184
172
193
182
146
183
150
187
186
162
156
145
176
197
173
184
170
171
194
145
154
185
183
196
195
178
169
155
176
150
143
148
175
198
189
171
167
193
156
197
167
180
193
199
160
173
159
189
146
178
166
182
179
192
183
191
159
161
195
177
161
197
183
144
175
175
193
164
173
162
166
157
141
194
186
186
179
173
162
189
165
199
191
159
147
154
167
156
147
170
155
186
191
151
200
184
147
162
170
158
159
183
175
199
165
175
192
165
186
200
147
160
182
193
161
185
159
153
160
155
154
157
147
176
166
141
181
154
189
140
196
157
192
158
188
166
185
159
199
146
192
171
189
140
159
195
193
188
146
168
154
141
180
160
170
170
148
189
193
181
178
191
194
146
181
141
162
164
140
177
181
191
166
173
195
162
169
191
148
184
142
180
141
178
180
151
183
188
191
148
182
161
172
185
197
184
147
200
154
184
160
169
198
168
196
186
196
163
179
140
155
187
175
147
195
163
148
151
147
142
143
186
167
156
189
183
153
165
187
160
147
163
170
190
185
154
169
142
183
182
148
167
200
164
173
168
154
155
153
171
172
178
182
140
152
188
161
142
190
186
152
147
160
190
167
167
144
189
159
175
145
157
169
194
174
145
171
166
200
146
164
169
179
197
170
165
191
158
147
168
179
159
162
151
167
191
159
179
159
191
161
161
192
149
142
195
186
152
175
179
144
189
152
188
197
143
186
198
157
145
164
158
140
152
188
157
155
189
153
192
195
199
146
199
167
199
155
188
144
164
198
187
152
150
142
167
186
195
152
147
181
168
140
180
161
143
144
140
185
147
198
164
140
169
144
191
178
155
148
178
184
191
192
150
158
143
157
155
183
140
168
186
144
182
187
149
197
159
151
150
168
158
153
177
198
157
160
166
196
159
183
198
187
150
165
155
197
189
165
200
168
176
190
140
183
174
174
157
194
182
156
183
193
146
175
146
166
173
188
160
165
168
152
191
173
152
179
164
194
156
184
182
178
171
149
175
172
163
175
200
181
191
153
156
195
177
166
142
174
188
152
144
181
168
177
163
176
177
179
159
197
198
191
194
200
147
172
165
140
141
182
190
160
174
173
163
182
193
147
142
179
165
152
185
170
191
185
174
146
191
184
154
198
191
200
162
155
160
194
178
190
144
162
162
149
185
148
142
173
190
172
181
180
192
153
171
194
182
186
200
155
172
188
152
182
158
184
190
182
178
148
186
160
141
143
167
185
148
169
140
196
189
178
189
190
159
140
195
157
155
158
154
164
199
190
176
163
176
195
199
169
193
185
162
147
140
146
167
197
142
173
179
182
147
173
167
178
171
161
199
171
194
186
179
182
182
159
178
197
187
190
178
197
179
171
197
162
140
147
151
141
160
150
153
173
158
173
176
185
186
157
150
195
147
167
179
156
195
195
179
186
180
166
150
163
189
184
146
141
194
183
158
171
185
149
140
170
177
164
166
195
187
167
152
142
178
192
156
198
163
145
150
155
178
153
145
146
195
188
153
153
191
194
144
176
169
197
184
184
192
143
165
161
174
144
167
177
177
196
169
173
152
155
150
200
170
183
186
179
142
141
148
154
194
195
170
199
190
191
181
153
187
163
140
150
157
145
177
142
156
192
177
175
178
159
148
178
194
188
164
168
189
197
170
180
162
160
151
157
171
192
164
145
183
156
156
161
149
180
180
156
155
180
170
179
140
196
185
159
198
187
156
179
164
191
153
149
184
193
156
152
185
156
197
182
168
184
181
182
173
148
144
145
160
196
182
158
148
177
187
194
167
142
198
155
190
187
159
173
164
185
144
191
142
175
178
195
141
177
161
180
177
155
180
185
157
146
186
175
198
195
151
183
158
181
141
179
177
185
140
167
188
146
147
191
186
151
167
186
146
150
153
176
167
180
151
153
186
165
159
182
159
194
146
155
169
174
181
160
151
170
152
200
167
163
177
199
171
183
149
148
171
145
167
148
195
142
195
173
158
141
141
189
200
162
192
144
150
156
187
194
185
166
161
170
150
194
149
156
157
190
174
180
179
169
160
154
181
156
195
198
185
191
181
188
150
177
159
192
171
193
195
165
169
195
169
194
181
195
164
183
154
185
185
177
174
173
193
141
144
149
159
144
163
192
142
143
198
198
142
182
180
154
185
141
169
145
179
157
189
160
173
168
158
153
188
156
146
199
146
162
143
158
143
184
171
178
192
171
165
171
172
164
140
142
180
187
140
191
182
148
174
184
186
176
175
162
197
154
193
197
141
167
161
179
191
151
200
178
177
157
163
140
195
152
155
188
156
196
166
156
163
183
171
191
188
162
177
185
159
194
149
144
167
182
151
141
186
187
199
197
160
184
156
191
143
163
156
158
176
160
172
160
176
142
199
183
144
141
143
165
173
146
178
189
154
147
165
157
173
183
193
158
155
168
157
140
163
153
200
197
197
154
163
145
153
160
140
144
160
162
162
157
164
147
197
193
168
192
172
182
198
185
156
180
176
159
181
155
159
198
141
183
159
164
182
145
153
176
180
165
177
159
164
156
176
178
151
153
157
189
173
183
189
192
145
169
142
165
184
165
199
155
154
199
140
160
182
152
187
192
147
166
184
184
160
194
182
186
169
182
155
143
150
140
198
171
191
148
169
155
147
188
142
154
164
200
150
197
179
182
148
193
166
190
147
148
181
178
189
180
142
169
171
198
183
149
187
172
141
142
159
193
190
168
166
162
145
194
184
174
169
195
172
193
192
199
159
162
145
191
193
192
170
171
193
146
143
145
194
189
182
143
144
198
186
200
153
196
169
193
176
144
169
140
173
155
184
172
177
174
173
145
164
193
184
143
145
144
190
180
166
149
148
180
178
144
151
198
181
146
196
182
188
164
141
154
178
151
156
142
165
194
188
163
195
157
200
177
158
196
165
189
154
199
173
161
185
140
147
192
157
185
160
149
143
161
142
169
155
140
176
172
189
176
145
186
187
171
181
148
140
173
194
183
192
186
149
169
153
196
198
192
181
199
188
200
167
183
195
146
200
183
193
144
190
175
144
183
185
144
195
148
176
183
156
188
158
179
147
195
150
187
172
190
142
148
169
199
157
173
143
165
149
156
169
164
140
199
151
195
149
196
149
178
184
197
156
169
183
183
191
185
153
177
155
159
148
181
150
155
149
190
176
147
188
190
165
155
157
171
190
189
163
193
185
170
170
158
189
197
189
170
151
183
172
200
178
194
192
173
196
188
152
174
146
160
190
189
200
142
175
199
169
184
155
165
147
191
199
188
180
173
148
197
145
151
141
176
145
150
159
161
157
158
177
191
161
140
184
145
154
157
184
153
154
166
179
155
149
146
190
172
187
158
150
193
200
159
152
163
188
162
173
151
184
195
153
166
193
163
155
193
190
200
186
151
173
178
146
178
145
167
155
196
165
142
158
183
186
200
162
168
143
188
199
192
185
185
163
177
197
161
182
183
200
143
187
146
158
184
168
154
186
181
144
167
143
171
162
183
156
142
151
163
185
156
190
160
199
144
144
155
196
168
166
145
176
194
152
198
198
163
174
176
151
196
194
157
181
161
165
182
186
142
194
192
147
198
140
148
197
157
142
151
172
199
184
160
151
171
159
150
151
173
160
173
174
142
181
181
190
189
199
197
177
174
190
168
191
200
187
146
153
159
156
199
141
183
194
153
173
146
181
174
170
155
153
192
184
186
164
151
180
162
155
189
190
190
154
151
152
169
168
157
183
159
179
186
166
182
187
163
191
150
170
145
174
190
181
150
190
169
186
182
153
161
149
173
165
200
142
152
187
169
169
187
180
172
187
175
195
186
172
198
173
144
186
180
146
196
187
179
170
197
171
148
170
146
147
168
185
185
162
184
147
199
149
144
183
148
198
140
196
186
186
190
192
147
176
147
194
197
177
172
167
162
158
146
177
159
187
194
164
169
153
173
194
150
186
163
175
200
169
189
177
145
198
141
185
190
166
149
149
146
149
145
158
190
176
153
196
198
161
143
197
200
190
150
149
184
177
142
145
175
198
152
199
171
154
184
189
164
144
160
140
153
190
155
194
177
192
151
151
156
147
191
179
166
164
171
192
148
160
152
162
162
140
153
154
158
166
176
175
174
185
193
166
143
179
150
145
140
185
187
192
166
160
169
191
199
151
193
194
155
190
193
186
153
140
164
150
189
171
186
168
146
154
150
152
147
178
147
176
162
191
180
147
147
158
148
189
193
147
191
193
191
190
170
197
142
144
194
160
169
154
176
167
191
175
165
163
157
150
155
181
147
148
189
151
149
141
173
166
140
140
163
190
160
148
174
157
195
159
175
162
194
154
191
160
189
164
142
188
193
192
192
186
161
152
183
160
175
191
159
159
190
182
185
171
171
141
178
196
199
154
188
172
170
168
148
180
167
149
181
143
158
176
183
191
165
141
183
161
193
193
165
177
191
168
174
163
171
193
195
199
147
154
199
181
174
179
191
153
173
173
182
162
174
185
157
194
181
176
179
174
142
143
158
180
180
197
149
187
184
178
200
148
157
166
149
141
165
171
178
151
173
190
199
161
140
171
176
141
188
151
181
144
163
166
155
187
161
161
158
154
140
171
172
189
173
181
142
143
149
200
196
198
158
177
183
156
191
142
192
175
200
155
181
144
151
183
156
163
162
172
190
143
188
182
155
169
141
181
198
157
177
195
166
174
162
172
159
146
170
200
168
156
172
143
167
200
162
155
160
140
143
183
169
166
167
144
157
175
155
161
192
158
186
193
161
184
194
191
149
184
140
184
200
195
171
142
191
192
185
159
146
180
153
182
170
157
172
152
147
176
178
165
166
161
160
179
189
176
173
187
176
153
179
152
177
151
198
195
173
162
170
173
197
198
188
178
183
193
173
152
168
185
155
152
142
176
144
183
194
197
177
154
188
174
181
148
167
162
142
156
182
159
144
196
167
143
174
181
196
170
161
182
176
192
191
166
155
179
192
149
186
159
188
197
196
176
192
144
150
188
164
144
154
187
156
197
163
193
160
199
163
154
199
196
157
181
196
175
157
181
185
199
181
173
148
144
196
148
187
184
188
158
140
193
152
162
141
154
142
149
188
154
147
161
158
195
186
186
152
147
155
154
194
177
191
190
140
157
189
172
166
147
171
164
195
161
179
178
144
154
193
159
193
162
163
171
148
173
189
162
163
200
147
154
149
187
164
188
197
148
174
150
170
154
192
180
174
150
167
152
168
172
188
165
153
152
155
183
145
141
142
150
191
166
178
185
188
187
196
198
157
152
168
175
168
141
200
174
199
196
190
150
197
152
180
167
182
188
145
198
186
147
173
190
192
195
176
142
188
196
158
183
158
158
147
177
143
162
198
173
171
145
180
162
150
189
156
179
187
147
147
190
194
178
146
175
193
148
177
168
149
170
152
156
188
160
194
195
163
158
167
190
171
189
187
183
187
156
185
185
196
165
144
177
190
191
170
180
155
174
195
169
142
184
169
190
195
183
191
170
179
200
165
141
172
192
182
171
158
175
166
197
144
172
191
154
184
140
196
163
176
182
175
162
183
168
188
193
192
188
165
144
175
142
146
192
165
196
167
186
198
161
143
148
188
161
151
154
152
154
175
173
158
199
143
175
167
196
178
171
180
167
162
191
156
187
199
171
199
149
144
172
157
145
165
151
198
192
165
193
141
192
180
152
166
174
190
154
147
183
192
144
194
152
175
170
196
181
140
144
173
172
198
159
176
167
159
179
179
173
151
193
178
170
192
193
164
173
179
177
183
164
173
189
155
184
141
167
182
174
147
181
147
200
185
158
163
145
153
140
187
171
163
193
146
182
200
199
162
148
184
175
191
157
151
171
158
142
181
158
185
168
186
184
163
149
167
191
157
177
142
188
148
167
195
185
145
195
191
198
171
153
169
146
191
163
183
187
143
173
179
188
161
188
172
190
146
190
193
184
170
146
164
149
192
193
168
181
187
177
191
170
196
141
162
190
194
194
153
181
180
169
193
179
141
164
151
182
197
145
159
178
154
175
164
150
156
194
184
191
141
143
174
144
146
200
154
161
140
197
196
160
189
185
180
196
200
194
172
194
142
156
176
169
187
152
189
173
175
163
145
140
178
180
177
159
163
194
186
149
186
173
184
200
167
142
164
175
165
183
196
171
163
163
151
190
195
168
166
174
173
182
192
190
178
147
155
161
142
143
153
175
193
150
200
176
158
187
142
157
140
190
161
180
194
165
199
156
166
144
152
183
143
173
146
195
190
176
198
171
199
189
174
195
141
146
192
161
155
148
195
164
173
186
147
200
144
155
197
189
161
176
177
194
196
186
196
173
147
154
152
190
165
159
197
164
176
188
140
178
142
186
162
170
188
167
179
190
186
165
173
159
151
146
155
177
156
200
165
168
161
156
152
165
141
151
152
153
170
140
184
164
172
191
181
177
140
168
148
167
143
149
191
140
188
162
154
151
156
167
200
200
198
191
159
176
190
180
193
185
187
167
159
191
157
164
180
167
148
200
191
152
180
187
170
185
160
158
188
158
173
166
165
156
188
160
197
156
147
195
173
164
188
187
164
193
190
172
186
147
176
157
141
158
150
149
175
172
196
184
146
168
198
190
155
193
146
198
153
176
184
162
151
188
179
199
188
193
157
180
179
191
181
171
176
190
193
149
145
143
146
157
199
188
189
184
194
191
173
178
165
155
155
168
151
187
153
190
185
185
171
168
165
152
162
177
165
152
174
196
155
198
167
149
176
189
171
197
150
173
159
171
183
195
193
159
155
176
149
196
181
188
172
199
164
163
146
158
144
147
180
167
186
166
178
164
183
166
140
143
166
152
174
140
151
142
142
140
200
193
175
192
153
197
195
176
151
196
190
189
191
184
180
156
175
182
171
156
170
145
153
144
145
166
166
172
189
165
191
172
170
192
194
195
192
199
140
140
182
162
190
154
174
143
174
172
181
164
157
168
172
200
164
182
145
153
184
177
175
179
193
166
162
160
146
184
182
150
154
199
156
188
141
168
192
165
187
200
180
148
150
188
157
157
179
155
156
143
169
188
153
156
156
159
198
197
167
191
194
172
161
166
181
187
141
169
174
160
150
174
193
197
196
149
147
197
143
152
200
156
170
185
160
149
144
177
197
147
151
192
161
189
178
188
172
163
184
172
151
175
154
172
172
190
180
199
178
143
161
144
178
181
149
177
169
165
169
187
146
164
145
175
145
141
150
149
152
191
161
176
172
156
175
178
179
153
198
177
160
185
199
174
148
176
155
144
191
175
195
154
180
163
146
141
167
182
200
174
151
199
166
179
185
157
183
182
176
172
154
180
193
141
168
172
184
200
199
187
167
145
180
141
164
141
154
141
174
185
151
195
164
157
143
157
200
160
195
141
182
183
176
190
172
192
181
197
178
190
197
177
145
165
151
150
176
183
141
193
158
193
150
152
170
140
191
146
141
146
166
165
157
181
145
192
166
163
153
187
177
195
165
155
149
163
170
182
199
167
151
181
168
186
176
165
149
188
176
173
150
199
192
196
188
196
147
152
180
142
163
199
187
175
166
187
186
188
192
161
141
199
188
180
191
182
180
169
172
141
170
158
143
151
183
163
177
149
162
174
158
155
176
197
175
155
164
143
182
182
167
142
168
146
173
196
192
143
140
146
179
155
189
164
147
140
159
174
178
176
198
143
177
183
168
174
157
180
158
175
146
186
181
142
151
179
176
182
186
157
195
183
197
195
160
180
178
195
193
194
178
192
146
166
176
156
142
190
149
175
166
144
190
160
155
176
169
190
190
171
141
165
148
145
182
153
168
142
170
166
184
147
170
154
140
146
155
184
185
157
150
192
198
172
153
170
199
184
164
165
144
152
151
176
141
160
180
183
175
145
169
144
195
172
148
173
143
183
189
191
188
185
141
187
191
187
191
193
152
149
167
197
145
188
159
187
169
147
171
152
171
171
173
199
193
187
160
168
179
196
194
152
198
191
147
155
175
182
183
181
150
171
187
186
185
188
174
154
197
187
183
149
145
192
160
173
167
181
146
158
193
182
173
189
192
164
181
195
145
150
161
140
191
172
155
180
170
151
170
199
147
168
193
146
181
141
191
193
147
166
156
172
150
176
153
147
189
187
170
191
147
145
149
183
179
191
162
175
155
148
164
157
150
194
191
167
149
152
151
156
164
181
160
167
185
192
181
182
151
165
169
199
144
174
200
174
198
170
192
161
184
174
175
156
165
182
198
168
170
169
172
157
162
147
179
181
190
144
188
193
192
194
168
184
166
151
184
199
148
140
199
171
192
173
161
198
149
189
165
174
141
141
160
146
190
144
194
195
183
152
151
166
185
163
170
172
151
161
157
175
169
169
141
196
193
175
152
196
178
192
171
199
148
185
181
154
147
170
182
175
141
185
196
165
155
185
143
142
153
172
172
140
182
190
145
183
170
182
183
184
186
163
200
153
188
172
175
188
179
184
191
158
153
162
148
166
179
174
159
170
196
191
163
158
165
171
141
194
177
144
162
184
196
145
177
177
162
157
187
198
163
150
165
184
175
190
156
169
175
161
165
144
192
162
161
145
146
145
190
158
159
147
171
193
184
143
159
149
176
147
167
187
176
154
174
147
168
145
181
169
153
174
193
194
180
143
190
148
186
146
161
143
152
170
194
185
185
189
199
163
159
169
152
184
200
166
156
200
198
144
183
176
193
168
190
198
187
144
197
144
181
164
141
194
198
140
158
175
156
162
182
200
181
182
152
149
187
192
177
192
197
154
144
190
147
152
172
177
169
177
157
186
166
146
153
160
178
147
149
177
195
158
175
150
167
148
163
166
161
166
149
189
156
141
184
179
155
165
192
140
144
190
193
198
195
167
185
148
189
175
198
165
162
183
146
181
188
191
144
165
184
141
195
161
185
153
161
193
167
162
180
140
197
170
165
148
145
157
171
173
174
180
172
170
200
140
200
179
161
191
167
156
182
199
145
195
189
190
179
178
143
161
167
160
197
146
179
142
152
141
186
169
161
148
165
181
167
195
182
155
198
140
163
179
193
168
183
181
154
150
188
167
192
176
188
192
180
187
175
167
151
178
155
152
178
165
143
154
158
143
149
145
190
171
167
158
141
178
143
160
188
163
186
163
160
198
148
155
151
162
173
156
156
144
142
158
174
146
189
173
178
198
180
154
191
183
190
143
183
159
186
181
158
151
164
170
178
153
152
193
161
180
181
150
187
184
163
161
151
187
141
161
169
168
171
154
173
186
194
154
151
172
187
162
143
148
173
156
143
192
197
191
183
167
144
162
152
196
197
197
142
153
198
176
170
177
194
176
190
182
161
151
155
171
151
187
191
181
126
130
143
108
140
138
120
109
117
128
115
101
114
118
126
119
118
145
128
142
128
138
133
102
143
113
147
109
149
146
148
136
104
141
108
109
139
134
102
138
130
140
122
129
122
144
150
115
130
132
139
119
139
128
127
122
105
102
129
141
116
139
114
138
121
150
150
133
139
131
149
109
139
147
117
100
140
140
124
105
112
108
122
130
129
114
145
147
104
138
150
100
140
132
139
100
116
109
105
134
117
127
129
111
126
102
125
140
134
130
118
137
102
100
150
144
131
103
103
117
117
125
137
144
136
127
117
110
141
150
116
148
143
123
115
104
139
106
134
123
107
125
110
100
110
108
107
150
139
101
108
133
133
127
117
143
110
100
102
108
134
108
147
139
103
113
112
135
137
127
117
144
119
107
109
150
135
113
147
123
111
142
134
138
126
128
115
114
109
121
125
135
138
101
121
136
146
139
140
106
146
127
111
147
116
111
148
147
109
138
120
143
140
122
107
131
106
109
108
135
143
105
141
132
126
119
116
118
111
102
147
122
105
146
106
109
107
128
141
143
105
134
144
134
139
131
124
140
107
126
119
144
136
121
144
101
116
124
112
102
128
103
116
108
127
105
132
116
111
103
150
109
124
110
115
127
131
113
100
148
133
128
135
113
105
136
127
109
129
114
138
117
147
110
150
130
104
114
150
103
112
116
100
147
106
100
107
150
102
121
119
104
137
149
111
134
121
137
117
111
144
144
137
107
117
141
122
142
100
104
113
107
116
109
108
150
133
121
143
139
131
122
116
116
115
116
132
106
131
133
125
122
136
108
137
111
147
140
142
104
138
111
141
120
148
116
139
147
105
103
126
150
132
131
123
119
109
109
101
113
103
100
124
144
135
110
108
149
132
123
126
110
142
115
146
132
130
117
118
149
106
131
148
118
102
142
101
135
109
134
150
140
145
147
119
125
134
116
106
141
148
145
109
127
116
146
118
129
125
121
103
121
141
108
147
120
102
106
128
107
129
138
105
144
112
109
138
109
148
119
150
106
102
149
122
101
115
103
102
121
121
121
144
114
136
108
129
122
122
144
119
143
130
134
142
108
102
150
148
139
127
141
105
139
111
103
119
100
122
140
134
118
128
148
124
117
144
143
133
101
128
141
119
115
113
128
144
145
140
107
113
100
110
117
144
138
126
134
106
117
135
133
140
140
133
112
144
121
105
128
132
113
141
135
114
120
116
104
140
144
112
127
125
122
117
121
114
125
111
146
121
135
149
147
128
132
122
104
108
129
143
110
135
104
127
144
108
140
118
102
108
135
129
140
106
133
150
139
120
136
102
125
127
116
116
103
147
103
124
106
137
103
104
133
120
112
142
144
124
107
107
130
102
144
104
125
134
117
137
150
120
142
139
116
150
139
147
127
137
126
117
133
137
131
102
133
118
146
134
123
135
145
108
136
111
127
113
146
130
135
135
117
117
106
125
132
142
132
119
112
103
137
106
110
112
129
115
137
103
105
134
116
132
138
140
117
134
109
147
137
133
144
118
139
109
117
107
104
139
146
109
150
123
135
139
112
100
118
114
112
113
117
148
148
139
129
114
126
128
125
112
126
105
122
113
113
150
149
125
125
132
134
139
123
128
150
119
131
104
136
108
150
121
101
130
121
114
143
112
142
116
133
118
104
117
129
136
104
115
108
116
103
112
122
104
131
150
126
131
108
132
111
124
102
136
120
104
110
113
133
122
149
108
135
138
149
128
102
122
115
115
137
111
102
149
124
112
120
108
134
112
100
116
141
146
124
109
129
148
149
108
127
118
144
116
123
145
147
109
136
143
138
100
106
122
131
105
128
114
101
127
124
112
122
104
125
132
110
121
144
147
100
148
110
114
127
142
124
101
130
115
143
135
128
149
138
117
135
142
117
145
141
122
127
102
107
133
113
114
108
120
111
126
136
116
133
129
105
129
103
137
100
105
135
145
103
140
137
114
112
127
110
115
126
145
125
142
124
148
135
107
109
109
106
124
113
121
133
119
118
147
114
133
122
102
103
105
135
112
114
128
111
142
124
107
138
129
118
146
127
109
121
141
115
127
145
112
127
142
106
136
109
100
129
127
103
109
142
102
123
112
107
118
101
139
101
125
140
130
138
114
138
142
118
108
145
144
129
104
133
101
146
121
142
103
113
146
141
106
120
135
100
117
144
122
120
120
143
145
128
122
130
133
117
117
142
112
107
138
137
146
128
106
119
114
108
105
145
127
107
139
104
149
139
129
144
145
148
125
131
120
103
144
134
111
140
114
123
125
144
111
135
139
122
125
128
117
111
101
114
126
107
133
128
100
146
122
141
128
115
120
101
142
117
118
134
144
110
150
123
126
128
126
148
127
116
142
148
142
142
131
141
133
119
146
127
142
137
107
123
118
124
145
108
123
124
128
127
109
128
122
101
117
100
114
112
103
150
115
121
116
121
140
111
107
119
126
129
132
135
145
140
134
107
148
145
141
131
138
118
137
148
125
127
128
126
109
145
114
101
101
139
112
145
123
123
110
122
110
141
126
138
109
126
119
115
105
116
127
127
116
106
144
113
142
143
119
104
114
150
111
116
121
149
135
141
135
148
141
102
144
129
107
140
123
121
133
112
136
107
144
108
138
119
113
135
110
110
149
122
104
103
140
149
112
121
121
103
106
129
115
137
123
123
125
116
136
102
104
102
132
137
101
137
110
137
108
144
132
111
138
139
117
138
109
142
119
150
130
115
128
107
145
115
138
143
111
144
136
116
112
135
133
116
145
144
124
150
117
135
110
149
149
150
131
121
102
149
149
130
147
147
135
140
143
130
147
125
137
131
147
119
105
140
128
136
127
112
107
149
125
140
138
127
146
111
111
142
132
132
123
122
134
120
143
129
100
123
119
120
124
138
132
118
141
128
149
127
122
139
103
117
141
116
123
134
125
129
105
134
110
134
122
142
115
144
107
128
136
104
102
130
112
149
142
128
136
105
128
145
137
115
148
147
131
107
121
136
143
124
136
139
131
127
118
140
127
149
146
116
145
130
104
133
142
137
134
119
102
139
106
133
102
139
129
143
108
104
124
110
113
101
111
146
129
136
114
128
149
108
133
113
148
126
127
144
117
116
121
108
133
107
150
133
142
106
116
125
146
101
144
100
142
121
126
107
147
105
133
100
111
136
142
107
107
148
140
122
121
119
107
141
110
131
123
123
142
119
116
137
123
119
106
104
109
134
104
103
112
106
110
149
140
129
125
121
132
130
140
137
148
121
106
147
149
131
134
130
132
103
132
129
108
133
142
139
103
134
103
123
124
146
134
116
140
101
149
124
107
109
109
117
121
120
101
131
131
119
129
121
108
102
123
109
136
140
103
107
135
146
146
110
117
122
143
131
115
117
108
122
123
103
143
105
128
127
133
139
127
128
110
110
116
115
115
103
115
123
146
123
149
119
130
137
117
114
119
149
103
136
107
102
132
106
124
141
131
119
127
130
138
103
135
110
116
117
133
135
127
124
140
110
115
125
118
123
142
137
132
119
100
145
105
130
141
106
149
144
110
125
132
135
138
150
122
104
137
133
113
129
117
117
138
134
126
126
106
135
150
121
116
125
127
137
142
111
122
138
140
100
123
121
116
109
125
111
134
107
126
127
121
118
120
145
141
129
142
115
121
149
132
125
149
109
114
107
149
131
101
121
113
120
144
123
121
101
114
128
129
114
116
132
105
129
117
149
140
117
106
140
147
124
100
117
113
124
143
128
132
114
113
128
112
130
121
120
109
119
143
128
112
102
121
143
146
103
118
141
121
146
132
149
128
146
100
126
115
122
123
101
131
144
139
101
138
135
104
113
111
131
145
118
145
142
141
123
138
109
109
124
105
105
148
131
108
111
106
132
130
124
148
106
111
124
105
150
126
108
141
126
150
145
102
121
111
119
137
124
110
100
137
113
111
102
101
116
139
147
105
115
129
145
123
142
110
107
127
144
149
140
127
106
119
141
104
144
105
120
118
117
142
115
138
149
121
136
119
122
129
148
108
144
120
123
138
106
150
134
119
148
134
149
141
117
114
115
149
107
150
113
125
149
106
130
146
125
104
104
119
141
104
142
150
146
103
114
110
111
118
133
140
121
100
128
130
102
107
121
107
100
146
125
120
115
138
128
123
112
110
133
134
146
149
146
114
149
145
132
104
103
145
127
104
150
129
101
104
126
142
122
102
145
125
102
102
100
125
140
146
123
145
145
111
134
141
108
124
128
101
103
148
136
100
129
114
137
137
139
122
139
132
119
124
112
147
142
107
130
134
105
129
117
147
115
104
118
105
137
112
117
105
101
136
138
136
127
129
105
117
103
130
105
124
114
118
130
120
123
150
107
129
133
121
126
116
103
130
104
111
140
121
131
117
138
146
146
144
136
113
128
104
117
127
100
100
100
123
103
103
144
131
147
143
150
135
119
122
138
145
117
147
124
118
102
101
129
141
140
110
115
104
105
105
125
126
100
102
105
140
134
148
124
142
136
126
102
100
143
137
130
121
107
109
108
111
131
144
140
121
114
124
145
132
102
132
103
122
132
104
121
123
137
118
120
121
127
146
103
109
114
122
142
110
115
112
128
101
138
108
125
121
108
108
146
111
109
131
149
130
106
141
133
127
135
139
133
143
120
110
120
128
144
116
106
102
138
101
134
147
119
143
141
135
135
147
141
103
132
127
127
148
136
143
104
101
148
142
142
103
107
120
134
146
126
130
131
133
120
103
128
147
128
144
128
106
127
108
100
111
107
144
133
122
122
137
149
115
115
128
141
145
114
119
128
104
109
135
142
124
138
147
133
126
117
103
110
119
116
135
109
135
126
145
137
114
140
107
145
106
126
114
100
145
144
121
138
126
126
116
105
133
146
112
149
140
131
108
139
109
131
128
139
137
129
146
106
137
121
110
119
106
106
101
105
123
141
138
124
102
100
138
123
130
113
149
122
138
119
145
103
150
150
103
120
125
109
145
105
147
138
105
124
125
106
142
140
137
118
111
142
138
105
129
108
134
112
148
129
144
124
112
121
103
133
144
120
111
117
130
137
105
102
147
103
120
101
124
149
117
101
114
109
142
139
129
119
105
116
145
111
107
122
140
130
133
145
138
143
118
139
127
100
102
100
128
106
113
115
146
130
103
125
136
119
133
113
149
142
115
136
102
131
123
136
109
144
114
126
126
112
106
108
145
141
134
137
100
114
144
137
148
120
124
109
109
139
118
109
125
126
130
106
117
114
127
128
131
110
147
129
129
145
133
116
122
124
103
116
109
139
127
150
106
135
119
110
146
149
104
135
112
102
115
111
116
118
102
104
130
101
134
103
102
124
122
106
135
122
106
108
103
134
120
138
146
106
133
121
120
132
113
115
139
129
109
123
117
103
121
111
137
112
135
150
113
119
100
113
140
118
147
123
130
131
132
106
150
128
108
100
150
100
127
122
105
136
141
114
108
148
135
147
106
115
147
121
101
134
108
134
146
133
101
128
102
136
114
119
147
114
113
126
114
130
114
136
121
106
115
102
143
140
112
116
138
144
139
110
150
118
136
129
124
149
116
137
145
124
128
106
100
120
147
127
104
102
131
136
129
104
116
124
127
117
145
129
141
141
138
124
130
107
106
146
127
129
113
131
130
120
135
141
117
107
142
140
146
105
136
140
128
112
107
115
121
133
121
101
115
124
128
106
143
120
133
124
137
117
111
115
147
107
122
132
132
111
126
142
104
140
126
131
149
138
150
137
114
142
131
127
146
104
128
105
102
105
130
131
127
122
145
108
105
115
141
116
140
133
140
134
128
119
103
139
130
114
111
146
129
112
123
104
148
138
116
131
108
131
129
114
103
137
147
128
101
143
113
110
110
108
144
131
109
109
107
118
102
109
146
102
104
114
128
102
149
130
119
116
106
148
149
150
109
120
147
143
119
126
149
112
111
149
122
117
131
125
134
113
115
110
149
121
110
125
108
123
119
126
136
144
137
103
105
146
107
131
136
108
109
100
128
147
101
114
125
115
150
108
125
135
107
118
112
145
140
142
118
106
141
107
117
138
120
108
130
146
128
137
104
119
147
104
100
147
102
130
122
149
119
142
132
120
135
108
128
122
129
114
125
144
148
147
111
111
140
130
147
119
119
115
112
108
145
122
144
113
109
106
105
104
108
121
103
145
113
113
129
144
108
149
130
139
129
133
113
150
116
139
112
142
136
128
104
103
141
128
139
114
145
111
149
108
116
136
138
136
116
133
119
127
132
138
132
138
108
101
125
146
133
130
127
112
135
118
150
141
129
138
136
122
114
114
141
110
145
126
112
145
141
107
121
113
107
146
140
117
110
142
149
146
143
150
106
144
126
110
110
120
138
138
132
106
106
135
125
104
148
111
108
130
103
109
102
137
138
104
150
118
148
116
148
102
142
148
125
111
141
147
137
143
138
121
138
103
149
136
146
133
118
117
106
126
145
114
117
148
133
147
129
150
120
132
105
138
110
127
105
146
149
131
126
136
112
129
136
150
136
100
110
148
147
109
150
142
103
137
126
127
133
127
127
130
119
150
148
108
149
104
133
142
113
113
119
109
111
119
127
111
129
127
148
143
112
147
139
122
123
101
135
137
131
103
103
138
115
115
131
107
111
144
149
124
137
105
146
102
142
146
113
132
105
129
125
120
137
103
112
141
134
113
146
116
101
103
131
124
139
136
132
122
132
112
102
120
147
103
137
118
120
139
123
120
140
132
137
127
131
114
100
106
113
110
121
121
131
130
111
141
134
125
123
124
122
145
149
128
140
148
114
105
129
116
127
135
144
123
107
148
148
113
140
145
144
142
150
127
107
127
120
101
129
135
113
120
130
109
118
144
112
150
119
124
115
149
112
115
101
106
130
135
108
117
133
125
137
129
129
127
106
130
119
136
146
127
113
105
110
120
141
111
139
116
141
117
123
134
125
144
107
144
105
119
132
114
150
112
114
120
108
141
138
132
106
124
136
135
122
102
144
110
133
130
129
143
145
124
133
147
101
148
121
114
110
110
113
105
124
135
112
143
145
102
118
104
101
150
145
122
138
105
121
149
144
112
141
110
110
129
136
150
117
143
109
109
119
130
124
112
139
128
144
134
104
125
123
139
110
132
141
113
131
111
131
111
147
118
133
100
149
111
102
124
139
121
145
113
100
121
126
141
107
122
108
124
104
144
116
141
150
105
114
138
133
129
100
112
126
146
100
134
146
148
148
121
128
112
101
105
101
110
119
146
136
131
137
131
103
121
114
142
106
104
111
102
102
123
129
146
138
121
135
104
109
106
118
100
100
128
122
111
120
140
104
117
100
104
123
121
107
145
120
140
122
113
103
146
126
138
141
125
100
147
135
116
129
118
107
116
108
112
140
131
146
130
139
139
140
135
129
108
122
139
146
113
150
149
101
120
104
135
109
129
102
142
104
112
127
120
109
119
123
124
146
118
144
149
122
108
138
109
122
104
143
103
105
135
147
110
112
143
109
128
145
114
133
150
133
150
123
122
107
150
148
121
129
136
145
144
104
118
105
127
109
144
101
102
121
104
129
144
140
114
148
138
135
126
143
136
110
104
128
148
122
101
131
106
126
135
117
139
122
121
149
118
128
121
117
117
125
135
126
109
150
127
119
118
104
106
120
121
149
119
134
119
145
149
105
123
126
132
111
126
111
114
103
114
136
147
125
137
117
139
129
143
139
130
131
121
106
110
100
113
119
141
117
122
104
147
130
117
122
146
135
106
117
135
148
102
131
110
119
149
106
132
107
103
106
147
108
119
130
146
137
147
133
125
119
136
127
122
130
114
120
123
106
137
139
104
139
116
147
128
122
120
127
120
100
106
103
126
146
105
104
118
130
144
127
138
127
118
146
130
122
144
104
122
140
104
108
142
109
133
102
135
136
135
135
102
100
149
126
105
124
108
120
124
101
132
136
130
133
111
103
100
104
131
101
146
149
115
117
101
121
103
104
137
123
113
131
122
132
137
148
120
110
132
123
121
119
116
143
111
111
144
132
140
108
105
144
123
112
131
121
121
139
128
124
138
100
112
141
105
105
112
118
131
148
137
121
131
112
125
148
140
130
131
106
108
125
134
130
143
121
133
144
139
123
119
105
121
130
125
126
128
133
106
138
124
113
115
100
116
124
134
105
122
126
106
118
106
124
112
112
113
137
126
109
145
109
123
145
113
100
139
141
148
150
139
115
120
112
116
114
124
124
126
117
116
119
135
118
141
114
109
135
117
124
147
142
147
140
131
107
121
104
122
105
129
145
124
103
122
101
114
115
133
130
113
108
128
136
143
118
138
147
122
140
101
122
111
133
113
125
112
113
150
136
138
118
144
123
111
119
136
104
139
136
141
144
129
107
141
126
132
127
131
114
135
103
137
149
123
113
126
133
121
100
125
104
115
136
138
106
126
114
147
146
145
132
143
121
134
150
121
134
123
148
102
145
107
121
122
135
128
147
121
114
150
125
141
117
123
123
112
104
130
104
117
143
102
128
128
128
139
120
146
116
125
131
107
101
119
114
129
108
122
106
131
100
123
149
118
133
101
139
140
109
133
128
119
136
100
102
101
106
135
150
108
138
116
120
102
102
124
113
133
108
140
117
136
136
128
120
134
107
113
116
135
135
109
142
121
143
112
145
121
106
127
120
137
141
114
128
127
124
132
139
127
102
107
112
106
112
146
118
105
135
114
133
147
148
104
107
134
108
139
130
117
124
148
109
119
117
131
101
149
127
144
133
109
134
109
149
147
109
148
139
109
133
115
103
131
102
101
148
113
132
128
143
110
150
112
117
138
124
134
112
121
110
125
139
147
115
125
115
142
115
100
116
123
140
130
131
112
109
101
127
143
110
144
110
109
131
125
143
123
133
123
124
119
113
105
108
136
111
116
133
104
103
105
139
143
117
125
150
104
111
119
116
123
130
149
148
132
124
103
105
126
121
116
102
135
130
109
101
121
138
119
104
112
132
115
101
117
140
126
117
145
142
133
105
147
106
106
127
111
121
121
146
118
147
147
100
120
136
116
145
131
100
136
146
115
134
121
104
142
126
102
120
113
121
130
105
124
149
141
133
118
100
114
136
136
140
141
143
143
101
107
104
142
102
101
111
120
103
144
131
101
146
130
136
141
126
108
100
147
111
117
130
145
101
101
117
146
126
145
100
137
102
139
142
100
110
130
104
111
115
150
128
148
138
133
128
147
130
144
110
150
107
122
100
132
148
123
110
139
117
114
127
150
112
119
135
131
148
129
129
128
122
146
115
145
107
112
123
127
110
143
100
143
104
136
100
135
121
138
143
135
140
119
127
100
110
149
112
132
114
133
125
130
114
135
115
136
103
139
126
135
132
135
106
135
103
147
117
126
125
124
124
101
124
129
108
137
109
109
145
142
112
113
146
135
144
107
126
141
128
146
137
140
144
122
135
102
105
145
112
142
112
129
146
103
102
107
128
129
135
116
121
105
147
135
149
104
121
138
121
104
104
104
103
112
104
124
117
125
134
150
139
114
143
123
145
135
104
103
111
110
113
116
101
145
110
129
123
100
103
111
110
132
149
120
135
101
146
149
100
147
122
138
131
146
106
133
120
147
106
112
143
110
150
100
138
150
136
123
130
105
117
128
141
114
148
123
145
143
135
138
138
150
101
145
132
121
109
128
142
140
121
110
130
103
119
148
115
121
142
115
136
127
138
116
113
146
145
126
125
109
107
114
138
126
112
104
145
111
138
104
108
145
100
143
118
126
126
144
134
119
138
131
128
109
122
125
140
109
110
139
143
117
118
100
145
117
105
112
131
140
141
104
124
135
128
125
125
112
148
103
146
129
103
101
123
125
144
139
109
101
107
114
146
126
118
113
144
124
100
133
148
112
146
135
124
116
142
105
146
149
118
119
105
108
102
149
135
135
109
106
105
149
127
102
117
143
117
108
130
134
106
103
106
141
137
109
116
148
130
113
138
140
130
135
137
134
112
137
136
137
110
101
127
111
147
146
147
137
131
126
105
120
121
107
105
104
114
102
150
141
130
111
143
128
148
127
130
146
125
119
150
126
143
149
134
139
122
150
111
128
130
132
101
131
101
114
102
123
101
100
102
130
121
122
122
116
104
125
102
146
104
134
120
107
115
120
123
126
111
131
131
120
129
142
109
129
100
123
131
145
119
130
139
117
125
125
120
100
101
122
125
117
121
102
148
121
116
135
103
102
103
124
129
134
107
105
150
119
109
112
117
105
116
140
139
134
150
127
146
128
107
115
132
102
117
110
138
123
147
120
127
146
105
119
129
143
128
109
133
127
113
100
135
120
148
141
101
106
142
109
108
137
108
120
142
123
118
101
116
124
143
106
118
125
109
140
143
123
133
112
138
134
101
138
109
117
142
140
115
114
125
114
116
131
134
124
118
101
105
141
104
145
130
106
112
129
141
126
147
121
126
145
137
127
147
104
139
133
107
106
150
100
133
118
135
145
143
119
115
142
140
110
109
112
125
103
116
134
116
119
112
145
106
116
134
122
101
118
137
130
124
122
124
144
120
112
107
138
144
110
133
145
110
120
150
137
146
146
118
142
150
143
107
103
145
119
101
147
102
123
115
118
116
120
115
149
120
121
134
146
114
137
117
145
139
111
100
123
102
132
109
108
126
111
114
101
108
135
106
102
132
139
147
102
142
138
114
104
110
109
107
149
102
121
109
126
110
145
120
112
140
149
126
131
145
113
135
147
125
132
105
117
145
134
108
108
143
122
107
145
113
138
118
144
142
125
145
102
141
104
120
116
143
117
147
143
105
126
144
118
148
127
104
142
119
144
133
108
100
106
148
108
119
101
108
122
110
132
130
121
131
140
147
144
105
110
141
129
142
136
130
125
118
131
120
112
109
109
143
126
134
143
124
113
132
100
124
145
124
118
111
110
141
145
150
128
148
134
118
126
140
137
102
145
138
135
129
121
135
137
115
115
133
119
109
136
143
123
135
112
150
122
126
136
130
131
140
125
101
137
138
122
113
109
144
130
150
102
105
104
100
147
104
125
146
141
116
132
131
120
140
101
123
130
146
101
136
107
116
101
106
142
134
114
134
124
121
118
104
107
133
132
135
100
149
125
138
101
109
113
107
130
101
115
147
102
101
131
146
105
143
149
127
119
101
115
143
137
122
141
102
129
138
141
102
117
133
100
129
103
111
134
142
120
120
106
130
148
123
144
105
137
131
143
138
110
135
144
124
120
104
150
129
106
105
126
112
110
127
113
145
125
127
112
132
141
150
114
117
136
116
111
123
124
115
123
127
121
113
110
146
143
108
130
111
137
147
147
118
100
146
120
102
127
145
141
132
136
103
122
133
111
100
138
135
105
143
143
136
114
141
120
100
136
116
121
118
136
129
101
128
113
149
112
136
100
149
122
122
137
148
106
135
118
104
137
118
145
122
140
124
144
120
112
135
108
126
128
109
125
105
119
120
130
140
141
100
128
118
102
108
106
131
128
117
146
134
120
134
118
112
100
119
118
119
145
150
147
141
141
129
118
130
109
147
105
132
134
148
111
103
103
122
142
140
115
112
144
140
122
118
146
105
129
144
125
119
144
123
105
149
140
114
115
150
106
144
133
105
129
128
137
143
120
143
145
104
122
100
104
104
134
143
108
108
150
143
113
119
114
117
129
125
147
133
107
124
109
105
124
147
139
108
115
133
102
147
126
102
111
138
117
115
111
105
134
110
114
128
114
135
109
137
118
143
145
109
123
113
118
136
140
114
117
101
145
137
146
131
137
100
130
119
109
120
111
117
113
112
125
109
137
109
110
134
110
131
103
100
129
104
110
142
113
115
128
102
138
120
116
141
103
135
102
137
112
128
118
110
113
121
134
100
136
140
130
124
110
147
125
115
101
130
143
105
141
142
138
141
111
129
140
112
101
128
140
147
140
106
109
124
149
133
128
140
149
145
109
147
147
140
117
102
106
117
113
147
149
133
117
116
118
144
145
129
107
131
145
101
120
114
110
148
124
125
150
120
131
122
118
129
116
108
134
114
140
133
125
134
125
149
112
146
123
146
142
140
100
114
100
124
129
145
108
108
100
122
147
102
112
117
112
131
100
144
120
134
108
123
142
125
148
101
147
120
109
118
143
138
135
104
122
116
139
100
109
125
123
108
136
103
125
114
118
145
115
146
106
130
122
143
139
140
106
140
125
126
114
101
135
108
109
123
146
112
114
147
102
129
139
125
142
144
105
110
119
102
113
131
148
123
120
130
118
145
101
146
142
150
113
114
111
129
140
120
119
142
145
127
144
118
144
133
101
143
137
130
150
118
114
149
140
112
140
103
102
126
126
132
103
115
112
123
100
143
121
150
128
134
102
139
119
139
115
110
128
127
146
111
139
103
120
148
107
125
122
142
137
107
100
102
103
146
143
109
135
111
123
134
116
136
113
130
132
119
105
120
145
142
111
150
110
145
105
103
145
110
143
139
146
131
132
121
121
140
149
104
128
136
149
131
103
143
102
144
143
107
122
106
146
133
107
133
108
116
110
118
125
113
102
127
123
106
129
102
144
106
147
121
110
110
126
141
116
121
101
136
126
143
109
117
101
147
132
120
131
110
140
128
112
121
107
145
104
116
102
147
123
143
140
139
103
147
141
124
108
121
104
149
144
140
150
147
105
104
111
133
138
142
150
139
147
110
126
136
121
138
148
147
105
110
106
145
100
146
116
125
108
147
137
126
127
145
120
141
147
148
126
133
141
118
147
140
102
113
124
134
132
106
136
114
114
116
104
114
105
104
127
109
128
144
127
132
147
107
104
115
122
108
108
148
116
129
131
147
123
147
125
126
142
143
135
148
108
130
101
121
143
110
144
139
136
136
133
144
147
138
146
133
105
137
136
130
109
127
141
150
123
148
110
119
126
131
110
123
119
115
118
109
133
122
144
124
109
134
103
116
117
110
135
130
149
125
149
131
121
109
117
115
123
148
135
141
111
137
149
150
114
145
116
145
123
138
132
122
115
145
115
150
108
122
122
116
138
104
134
121
123
110
111
141
104
143
103
143
131
133
139
105
113
124
115
102
112
104
140
109
147
140
122
129
144
116
106
103
118
120
111
143
105
142
138
114
109
109
104
134
129
137
109
128
104
138
141
139
147
138
101
121
142
119
103
137
144
139
119
109
114
139
110
106
119
129
137
130
145
120
141
148
102
126
109
112
140
110
149
122
115
128
142
102
128
104
125
121
112
112
144
111
118
141
128
103
104
110
108
124
110
123
110
117
110
100
127
146
108
129
148
147
117
135
100
139
102
108
122
128
111
135
106
100
135
128
147
129
120
111
137
131
146
118
138
146
141
136
137
117
133
127
107
126
126
144
120
150
136
104
129
118
123
133
118
115
124
104
132
149
105
106
136
150
108
134
131
113
102
144
138
119
121
102
120
103
126
138
139
119
139
123
119
100
126
111
144
121
149
147
146
130
108
107
127
128
116
145
107
148
102
118
137
139
120
102
123
114
121
105
121
108
102
132
119
146
133
143
123
146
104
137
115
112
138
111
120
121
102
108
102
136
136
141
126
135
118
105
126
135
143
110
128
108
123
101
141
144
117
147
115
109
132
149
139
143
146
105
102
103
102
102
150
149
116
143
110
134
131
110
114
115
127
146
118
146
128
144
131
143
105
110
127
136
117
138
142
126
138
145
129
131
107
128
104
123
136
131
148
127
106
113
104
116
142
137
133
129
110
132
114
128
121
103
104
143
118
115
105
115
110
127
114
145
124
109
130
145
107
147
138
103
114
118
105
116
110
142
128
108
120
137
103
132
140
150
140
118
134
118
117
141
147
109
109
139
128
118
121
141
135
130
136
133
132
111
124
136
132
127
148
132
101
132
133
119
126
121
118
118
141
115
116
108
108
109
134
141
145
107
112
125
149
102
149
100
137
118
115
109
149
121
130
104
124
128
127
140
139
102
149
146
115
120
110
131
113
121
125
145
121
107
125
149
114
150
141
137
145
128
138
137
141
116
130
122
132
134
149
137
124
134
117
122
102
104
116
133
116
128
140
123
141
122
125
110
128
118
124
125
109
143
109
113
133
147
142
114
129
120
104
103
146
100
145
147
130
118
118
110
133
125
104
139
109
115
146
116
112
147
122
129
138
127
149
150
112
138
146
132
146
130
101
108
100
145
112
142
150
133
131
142
110
122
128
146
142
130
123
100
133
133
133
148
146
105
104
150
101
108
101
107
131
147
142
106
126
106
102
141
114
105
145
125
132
133
114
106
126
103
138
124
126
103
125
141
101
106
131
119
124
104
116
136
100
113
145
109
144
139
128
107
110
129
109
121
120
110
105
122
106
111
125
128
130
106
146
105
106
104
101
108
127
120
133
139
125
121
121
121
142
107
118
128
101
127
101
148
148
126
126
115
120
122
119
122
128
118
133
150
127
145
132
145
127
125
145
104
129
111
136
134
119
141
106
107
130
116
122
148
146
118
113
138
101
128
137
145
116
109
135
146
121
126
106
112
140
147
109
105
113
145
148
134
119
131
120
139
124
135
130
116
127
134
148
111
141
122
146
114
136
145
112
114
149
120
105
127
122
146
104
134
100
150
104
123
124
142
117
123
143
116
112
121
122
113
108
148
117
139
121
131
131
142
150
114
111
108
132
113
134
118
139
110
107
148
143
150
140
117
102
142
125
127
112
114
138
145
149
142
125
121
116
132
141
118
124
148
134
117
126
116
136
149
105
116
127
132
125
150
144
146
119
105
150
147
134
104
124
141
100
130
104
110
140
130
148
115
102
129
108
108
120
150
117
116
112
123
140
126
101
127
117
123
145
101
101
145
124
120
138
100
113
113
119
148
104
106
136
140
128
114
108
132
135
124
114
144
111
100
108
129
127
125
120
126
107
120
125
116
140
144
146
125
119
148
133
127
129
113
124
108
107
130
113
109
111
132
108
102
147
109
142
130
117
122
125
133
132
126
129
121
147
126
144
120
148
102
110
144
132
100
110
133
138
117
143
118
141
103
133
141
102
130
102
143
101
103
145
121
139
115
107
131
107
100
115
120
111
134
113
137
110
125
126
109
106
121
145
143
131
105
127
113
129
133
136
136
112
137
114
126
139
112
140
120
122
126
112
130
147
150
129
100
135
147
140
118
135
105
134
128
107
132
105
109
106
143
133
127
126
107
117
147
139
126
146
105
138
105
114
139
129
117
140
144
101
118
123
112
144
105
123
107
143
102
128
106
117
140
148
139
116
150
100
104
135
103
133
119
128
117
148
148
135
111
121
121
125
143
118
108
136
125
102
124
138
125
125
119
112
138
117
148
133
105
124
104
146
108
146
106
119
128
100
147
107
101
106
102
140
129
145
145
101
111
146
110
128
123
104
141
147
130
144
146
137
101
147
137
135
100
122
133
123
106
148
105
102
139
113
120
119
102
134
142
142
114
118
127
123
150
145
104
123
119
146
110
118
133
133
134
123
124
137
122
144
119
146
135
139
148
133
110
127
129
113
127
141
121
137
118
146
112
128
131
145
102
127
103
100
139
111
129
139
131
128
115
109
149
145
144
105
119
147
122
109
109
114
117
149
112
106
120
146
115
150
143
131
126
141
138
133
134
110
127
147
120
130
123
101
117
143
139
120
113
117
122
120
112
142
138
149
105
137
113
124
137
147
100
147
111
112
104
112
110
143
138
117
145
113
143
119
108
143
144
139
111
130
123
138
132
144
144
129
150
108
133
107
138
101
109
106
111
121
101
143
141
134
129
126
124
140
144
136
104
128
134
132
101
128
130
139
106
149
111
141
113
114
110
115
128
113
115
103
127
106
102
136
126
142
118
146
125
115
125
130
124
119
142
124
108
132
130
145
141
141
132
107
114
105
134
125
146
100
118
111
134
107
120
136
129
138
132
102
105
138
102
130
149
107
112
103
140
141
135
139
128
121
115
149
150
116
141
119
112
140
123
133
125
128
129
108
141
143
129
148
145
141
131
118
118
121
141
144
106
104
132
111
138
115
131
130
107
112
122
125
108
112
142
122
102
142
102
150
111
114
112
141
140
109
150
118
100
113
114
127
114
148
121
136
101
119
133
103
147
143
112
123
119
114
129
135
141
143
146
138
120
113
116
142
113
115
112
142
129
137
114
123
124
133
129
100
133
131
115
148
119
142
140
141
128
124
132
138
127
132
103
133
129
108
118
130
134
144
145
141
146
141
123
138
132
147
136
141
101
126
106
118
133
139
112
117
129
100
124
137
144
101
102
108
162
187
160
182
147
168
176
184
154
175
189
192
185
187
147
187
149
189
172
149
184
140
195
149
146
165
166
194
186
178
174
147
198
161
164
156
181
148
163
142
200
153
200
199
150
178
190
177
188
148
172
172
160
167
159
186
175
146
195
182
177
161
180
155
196
161
142
158
189
174
160
155
157
145
159
170
154
172
180
157
194
147
178
160
172
151
186
160
165
170
173
187
200
146
162
176
197
141
149
160
143
153
188
195
197
155
168
160
163
164
158
185
152
142
152
171
189
178
185
169
192
192
167
177
167
169
151
188
188
192
154
190
190
157
158
144
162
153
149
196
190
182
143
158
150
162
194
166
146
164
158
200
175
145
148
197
200
177
156
192
196
176
172
193
165
141
148
172
180
142
157
185
183
152
166
183
147
160
195
162
194
153
166
158
140
151
192
177
144
162
186
177
181
162
197
146
160
187
163
153
165
146
140
182
184
162
169
169
186
152
191
153
145
157
195
144
155
178
179
163
150
156
147
155
167
173
176
147
185
164
169
145
188
170
191
180
154
174
159
199
200
170
163
168
173
195
180
169
156
194
180
183
190
149
173
145
143
159
151
172
174
142
197
143
155
196
183
166
149
151
188
190
175
198
168
148
168
197
149
157
175
160
154
156
161
192
177
157
155
179
140
190
168
191
160
172
164
173
192
171
198
145
156
163
152
176
162
154
176
170
172
198
149
185
140
186
185
149
188
174
172
164
190
200
155
180
142
145
164
142
142
195
184
163
158
143
177
170
173
148
152
167
177
153
153
173
148
157
183
140
170
157
184
148
153
164
190
177
185
174
192
177
152
176
162
164
197
199
199
172
143
166
186
142
188
188
189
185
154
148
180
148
182
149
170
143
140
152
142
144
199
164
200
170
190
156
170
198
154
172
153
199
190
169
176
170
193
185
159
153
175
195
177
179
197
166
198
170
143
161
142
147
154
160
155
153
165
194
194
194
140
144
140
140
174
192
151
175
168
186
140
146
199
151
162
150
174
200
170
181
146
170
192
170
158
166
166
156
188
154
165
184
173
182
149
140
169
158
150
156
172
148
166
154
200
185
170
198
187
161
143
194
143
167
164
146
147
172
147
174
182
147
174
189
162
141
192
195
180
171
168
158
178
186
179
191
187
192
180
178
188
146
200
200
150
157
171
146
173
175
173
177
188
147
164
168
161
146
190
155
150
165
190
192
143
174
168
150
145
179
178
189
173
144
175
175
200
164
172
151
157
200
192
144
163
175
154
185
176
161
165
154
144
165
161
149
193
162
179
173
154
145
173
149
191
187
172
145
187
189
196
194
145
184
199
158
162
151
183
200
188
183
159
176
181
145
188
148
182
198
189
160
140
155
151
189
152
184
183
175
142
187
173
189
172
198
172
142
193
197
164
140
152
172
140
164
156
186
178
144
165
160
172
200
170
164
161
188
155
153
183
199
163
167
187
197
190
199
173
152
148
173
143
160
166
198
184
184
188
176
192
156
180
180
142
176
150
197
199
192
190
175
161
152
170
188
153
197
164
172
154
145
149
162
159
195
162
143
155
151
188
178
186
181
161
145
152
200
168
169
183
182
180
143
160
170
167
184
179
156
158
159
174
156
171
179
200
185
151
148
148
165
193
152
153
177
187
160
144
175
193
173
159
142
164
168
193
157
200
159
150
192
172
193
193
196
194
156
194
150
187
152
200
152
140
158
198
164
185
149
178
192
164
183
198
165
188
140
146
141
176
167
186
143
151
197
149
153
194
145
140
200
176
158
194
140
148
174
181
147
177
173
145
160
191
150
197
140
182
146
188
148
143
165
142
148
164
191
176
191
180
161
186
158
170
151
145
180
160
191
183
151
200
192
177
167
197
177
198
180
175
157
145
161
189
186
154
169
161
165
181
173
163
141
200
149
190
187
177
177
188
183
179
152
161
180
166
177
186
190
193
155
186
161
176
179
157
172
186
152
183
149
174
147
143
154
154
192
149
195
168
184
150
164
188
175
185
173
160
170
187
169
159
166
199
159
163
154
175
160
176
142
171
185
194
145
140
152
146
148
197
145
171
192
164
180
155
158
193
171
175
162
145
171
155
159
199
174
172
149
146
143
169
153
154
194
154
198
158
186
164
141
159
148
193
178
149
140
198
176
168
166
162
179
184
189
179
193
149
148
164
161
198
156
140
157
159
164
171
152
170
154
172
167
194
157
161
192
157
147
159
183
164
151
159
158
168
178
157
140
171
200
163
183
192
165
150
141
141
184
160
187
200
177
192
180
193
142
199
194
191
173
189
180
159
181
142
195
162
140
171
166
161
157
179
200
141
168
146
155
184
182
162
157
170
172
152
168
193
147
193
196
179
153
167
141
188
181
160
156
165
148
198
175
167
192
154
186
170
178
160
182
161
174
151
196
180
160
144
142
171
178
141
149
143
186
175
171
175
160
168
176
143
180
172
179
144
190
141
194
177
165
199
142
159
177
191
187
156
186
167
172
151
153
175
187
198
161
148
140
157
192
169
174
188
200
147
145
153
200
152
167
184
172
173
174
196
179
161
146
193
147
141
186
196
153
196
191
190
159
199
147
176
173
200
183
180
163
181
159
193
171
173
190
200
176
196
160
188
155
147
195
196
187
199
145
175
150
154
146
151
176
184
148
171
199
173
186
184
154
148
178
172
186
160
168
182
154
169
188
194
145
152
158
171
142
168
176
170
191
200
183
164
175
191
179
158
145
150
145
176
143
154
161
176
194
183
179
171
155
183
143
196
177
181
176
154
191
160
179
152
140
186
184
155
194
176
166
164
180
166
180
190
171
197
162
144
188
149
151
149
154
146
169
195
148
179
193
194
167
182
165
156
182
145
173
156
187
149
159
146
200
147
179
161
171
144
190
150
147
149
187
153
192
148
189
157
143
165
151
180
189
192
147
142
141
176
155
199
153
145
192
152
161
194
160
143
143
185
144
157
200
189
173
148
143
191
141
151
182
168
176
154
163
190
197
188
171
152
190
160
185
185
162
161
141
182
164
189
146
165
196
188
163
140
153
178
190
158
168
154
146
155
168
157
159
160
184
179
153
175
152
185
191
177
164
160
167
177
198
153
162
145
146
148
140
162
157
145
166
190
167
179
174
150
193
174
148
167
181
142
150
183
156
189
152
149
143
155
140
187
140
176
149
172
143
191
180
180
145
159
197
149
178
172
198
151
152
141
190
183
159
180
165
170
180
178
177
188
158
166
181
148
191
178
140
172
191
193
165
146
180
175
183
140
180
192
198
164
178
154
164
194
182
152
195
192
177
162
166
156
160
160
176
157
180
161
167
155
174
196
140
143
177
180
152
196
167
166
149
191
155
153
196
197
150
178
170
182
165
182
200
155
146
149
152
195
162
176
165
176
184
185
154
186
184
164
142
166
186
163
181
180
178
194
196
144
184
191
198
148
145
200
168
162
154
168
169
176
169
153
199
175
144
188
165
163
179
158
146
170
184
146
147
180
152
197
158
184
171
162
161
191
179
152
171
146
199
163
197
144
198
154
181
182
180
190
199
191
149
160
140
154
163
163
187
178
155
141
182
176
180
160
193
184
160
161
188
184
147
148
153
183
173
145
150
166
147
177
144
166
185
146
173
192
200
197
143
163
163
187
151
200
154
199
170
170
198
143
188
176
186
190
191
179
141
189
157
192
150
183
157
195
172
152
181
143
193
154
172
150
192
190
174
178
183
150
145
183
181
168
185
179
159
177
167
160
164
146
181
145
169
174
156
162
178
175
150
175
176
196
145
157
166
198
145
147
160
141
193
185
147
143
197
162
160
158
151
157
190
177
196
187
181
164
191
182
197
177
150
144
190
150
161
170
183
187
170
140
146
174
143
194
143
143
199
197
172
149
175
159
193
187
188
197
189
160
178
196
152
187
152
152
174
188
170
173
165
146
171
151
184
179
157
197
152
142
172
172
172
163
175
162
180
155
158
172
179
186
148
185
169
149
196
152
141
175
176
148
146
174
142
144
144
176
152
178
174
162
195
145
143
156
148
179
177
175
141
143
195
180
193
159
144
178
186
179
193
181
189
170
167
177
171
147
178
182
162
155
149
163
151
174
173
179
180
197
174
176
197
170
141
187
162
155
188
195
200
160
146
197
165
150
164
171
185
198
172
188
187
184
146
165
156
188
166
187
167
185
140
146
173
194
175
179
162
165
175
140
183
180
159
140
186
156
180
148
164
148
166
193
141
167
200
155
163
173
192
159
188
179
167
145
187
158
147
188
147
176
173
190
162
166
177
149
188
147
151
184
175
152
151
154
192
175
197
184
166
199
185
144
196
191
184
176
192
179
184
182
181
169
163
142
145
166
186
151
183
176
195
196
162
181
145
199
166
158
171
177
199
148
184
173
192
178
193
177
155
172
158
178
157
176
144
151
176
188
165
150
148
159
159
163
154
145
148
163
155
177
176
183
143
157
148
166
195
189
175
146
154
155
141
171
199
177
155
142
194
172
200
184
169
188
184
180
153
141
191
185
161
177
155
143
159
177
143
200
147
186
154
189
190
186
190
146
192
185
178
198
180
153
197
172
173
178
199
191
179
161
199
195
162
182
150
169
164
160
147
200
179
189
198
146
158
181
163
141
196
158
195
196
160
141
193
178
186
169
198
168
200
153
189
159
147
164
158
170
168
140
188
143
179
152
173
197
196
158
159
143
182
165
152
156
189
146
176
151
157
197
180
143
165
167
167
178
167
180
151
144
198
146
146
150
161
150
196
172
167
186
170
175
193
194
185
149
194
154
160
183
198
164
197
193
175
174
179
148
150
142
159
200
164
199
196
181
172
186
169
156
177
150
192
191
162
159
193
186
171
186
190
174
140
191
178
175
148
159
170
170
143
164
151
151
183
141
185
181
156
188
172
166
175
181
153
184
190
158
175
152
168
185
171
193
176
167
192
191
167
178
195
158
191
169
162
172
161
150
192
167
150
170
148
197
169
190
166
155
143
177
160
149
145
169
181
182
156
149
165
140
191
168
192
151
165
182
166
178
191
174
165
190
173
158
188
142
167
183
144
169
176
149
165
158
160
163
179
170
148
153
146
177
153
183
147
165
197
154
187
194
183
194
160
155
167
144
163
151
158
156
191
153
149
156
165
161
190
191
194
161
191
173
170
200
162
140
158
159
146
148
159
199
141
159
174
181
162
151
154
166
162
178
188
146
178
191
157
140
165
196
160
189
168
147
175
194
165
193
198
141
173
182
140
161
188
175
194
173
143
159
162
164
141
173
158
176
163
154
185
159
174
182
163
195
150
144
192
188
192
177
145
145
151
198
165
198
200
170
157
159
186
148
186
176
169
180
189
155
172
173
141
145
154
163
162
197
178
198
141
178
142
167
143
169
176
154
188
165
165
170
184
146
182
167
190
159
152
144
160
194
157
195
199
197
186
175
165
187
173
192
169
142
145
167
154
162
191
146
178
147
196
197
172
195
195
159
145
200
179
185
178
198
175
148
187
194
148
179
200
179
163
148
161
147
160
197
176
160
184
160
173
190
182
144
151
142
164
198
189
198
156
144
159
143
159
153
175
199
149
181
195
140
187
174
146
168
196
161
198
160
187
197
162
157
140
191
185
144
185
150
192
186
175
164
171
175
154
163
150
159
154
170
182
152
194
199
197
194
156
183
198
151
184
181
191
147
188
179
182
186
181
180
187
195
190
187
167
154
164
198
153
144
187
153
185
190
158
144
179
181
182
174
193
178
177
158
179
150
190
179
148
192
165
156
192
150
189
157
183
194
198
187
185
149
177
178
176
151
150
143
148
191
167
179
150
148
168
168
187
181
177
197
141
190
193
164
165
154
185
142
155
171
141
148
158
169
176
166
148
162
186
143
189
185
172
196
184
141
163
154
151
193
199
182
151
153
187
194
149
196
186
183
152
144
164
188
140
148
165
167
145
159
146
184
156
142
171
145
190
177
166
160
152
144
170
183
168
141
160
161
187
192
188
166
170
179
185
152
169
151
178
140
193
195
151
171
185
153
143
187
151
170
140
148
185
166
156
151
200
196
198
186
171
176
187
166
199
177
161
185
190
152
197
142
156
156
171
146
161
185
200
162
156
189
175
192
170
165
192
142
148
156
186
185
142
160
174
198
186
198
161
156
156
175
171
198
173
191
178
163
175
166
163
142
187
191
167
159
200
158
172
196
190
200
190
194
159
190
149
148
183
175
195
189
183
172
180
154
187
168
164
191
200
169
185
182
178
168
183
153
171
186
157
157
183
163
159
196
180
152
147
197
164
194
159
167
161
182
177
141
140
197
155
155
195
185
194
145
194
197
182
157
195
144
185
148
161
182
165
198
200
190
143
143
142
159
168
146
199
189
169
157
192
196
140
140
153
197
197
194
150
164
173
191
160
145
177
159
158
168
142
156
145
197
191
194
200
200
199
143
161
185
173
188
173
150
195
181
176
184
159
192
155
152
178
158
183
188
192
148
160
199
174
169
145
178
190
184
153
180
194
190
145
166
173
144
168
149
194
193
161
195
164
140
199
157
149
148
162
192
162
153
192
157
197
154
141
156
148
176
161
165
199
147
145
166
162
196
152
141
162
142
144
163
171
185
153
192
192
174
151
179
195
171
187
161
154
149
176
174
183
171
173
190
162
200
140
171
185
188
156
189
152
192
179
163
170
155
171
143
184
200
200
150
195
190
200
185
166
151
141
194
167
173
143
199
161
153
162
170
152
149
149
155
140
196
150
168
169
183
163
174
194
192
175
167
188
166
169
165
160
185
199
164
150
149
192
177
189
187
149
149
163
149
186
184
180
147
161
166
171
175
167
188
155
175
186
150
167
156
180
163
160
173
188
144
180
155
164
175
155
159
157
194
152
185
189
166
177
198
172
174
147
148
170
169
190
182
151
157
172
193
170
191
188
181
177
199
176
169
197
148
171
153
148
185
178
196
154
166
188
186
163
156
186
176
195
150
157
197
141
149
179
167
187
185
166
168
192
156
157
182
189
163
187
165
194
175
155
166
166
167
166
143
160
168
161
196
156
198
173
199
191
187
195
149
171
181
167
141
185
155
181
147
150
145
174
178
176
188
162
164
190
165
196
162
160
146
182
141
166
151
169
182
196
147
172
190
200
197
167
151
189
177
193
183
196
148
183
168
168
176
140
188
145
148
141
163
180
159
186
167
168
176
166
149
186
140
185
196
151
163
155
187
195
143
150
189
192
170
180
151
184
165
164
183
183
169
170
196
199
154
141
190
160
190
164
165
156
187
192
181
146
197
168
173
194
186
154
161
145
153
172
142
169
178
168
154
156
194
197
177
161
193
187
177
164
200
167
187
146
181
176
187
190
158
200
141
196
198
148
167
191
148
166
162
164
157
172
162
197
200
140
183
172
198
149
175
170
175
148
188
171
144
157
198
148
152
145
165
164
151
178
140
156
157
194
150
174
163
155
164
190
142
193
188
157
182
164
181
147
191
200
193
172
143
195
161
168
176
179
156
164
200
186
155
191
200
151
181
177
198
183
178
177
153
156
152
143
178
191
174
192
148
147
186
172
159
178
175
175
191
192
153
148
144
153
157
177
148
192
150
171
142
195
147
181
184
159
178
157
166
148
170
143
170
194
161
144
146
198
185
176
174
142
169
173
192
183
188
147
184
157
191
170
197
200
198
195
186
165
173
177
173
195
148
143
145
177
170
172
176
197
148
170
167
148
158
193
181
157
189
157
157
157
147
168
179
154
187
187
154
179
167
163
140
197
159
145
147
161
155
168
159
186
184
163
191
144
170
186
161
181
159
185
170
194
182
192
191
189
170
150
183
153
140
198
142
194
194
144
165
178
193
140
195
143
166
188
153
193
172
194
149
164
145
155
198
144
150
180
175
190
162
177
180
183
161
181
192
153
192
148
168
187
166
147
144
146
151
152
177
179
140
170
173
198
172
165
140
168
166
150
180
192
161
193
142
197
147
162
154
181
200
192
159
165
157
178
182
166
199
152
180
164
171
153
196
196
167
194
175
172
183
184
191
146
186
162
165
144
158
176
147
166
153
158
189
193
186
164
162
169
156
200
181
181
141
188
165
140
145
168
162
158
158
149
187
164
156
186
145
189
151
167
160
155
154
190
177
155
144
141
193
178
175
183
181
199
166
161
172
142
191
187
191
178
184
164
178
195
193
160
198
170
150
194
141
169
141
170
182
175
170
180
151
143
189
190
194
140
191
152
195
193
164
195
168
146
198
182
155
154
183
184
170
187
171
142
160
150
177
177
177
145
167
188
163
161
142
169
170
188
145
169
199
158
184
173
146
165
141
197
175
184
185
145
147
154
190
187
191
141
160
171
146
186
192
175
146
183
174
144
141
178
174
152
173
195
143
162
170
172
159
170
142
194
186
147
200
196
186
142
151
163
147
175
174
163
193
162
145
196
163
161
180
177
182
148
176
183
198
165
177
147
172
180
164
148
191
143
200
171
160
194
167
199
178
178
199
169
160
200
190
195
179
145
162
163
190
152
178
142
172
142
166
192
174
197
192
171
142
175
160
166
162
148
177
189
167
169
166
172
195
195
177
149
188
169
192
167
150
170
166
143
178
142
184
194
175
165
142
199
157
158
148
182
188
174
150
197
182
190
164
185
194
159
189
182
174
168
171
158
178
200
174
174
191
193
183
167
152
186
186
159
178
156
192
188
186
184
157
148
196
144
162
188
182
143
149
195
189
150
141
167
184
196
200
157
199
155
148
171
145
157
163
199
188
169
169
198
187
179
165
170
195
151
157
172
191
171
173
185
198
172
196
157
142
179
161
172
147
150
162
158
155
194
141
156
142
179
180
192
188
188
173
152
193
186
171
188
191
152
200
144
157
172
144
177
144
161
184
180
153
190
163
156
145
186
162
183
148
172
181
165
143
196
175
187
200
156
167
172
183
167
173
158
159
188
189
161
178
145
192
161
151
145
142
186
197
148
162
175
140
189
147
148
200
172
181
196
189
200
175
166
189
192
187
199
168
198
150
169
158
192
188
142
166
143
179
194
177
182
177
164
149
165
188
177
140
189
169
178
142
172
157
165
142
183
160
198
195
157
178
164
180
195
148
150
155
143
143
186
145
148
153
162
186
161
195
175
144
166
175
189
190
155
165
159
189
142
188
160
141
140
154
195
190
198
170
163
165
181
172
150
163
160
187
189
200
148
187
195
165
189
166
160
175
168
193
170
174
141
173
199
179
199
199
176
160
195
193
183
172
157
151
195
186
189
186
152
169
176
179
152
199
196
141
181
171
157
179
183
149
186
151
192
153
198
165
192
165
157
141
185
175
171
195
195
185
164
197
200
153
158
151
189
189
153
179
184
173
159
176
192
183
155
197
198
176
163
143
195
192
145
178
170
186
162
140
169
182
172
148
194
180
162
199
182
172
163
165
155
180
142
170
198
156
155
163
146
185
180
173
151
148
183
192
181
190
157
167
178
151
199
143
158
150
141
176
158
165
174
155
191
150
144
159
145
199
182
165
144
150
186
181
163
196
199
159
171
198
173
176
165
196
170
181
187
186
160
140
200
175
181
141
140
144
199
149
167
142
173
157
195
147
191
164
155
151
152
180
174
161
149
181
170
165
175
163
198
196
183
157
164
153
165
184
145
155
145
199
165
158
200
148
178
176
182
175
150
172
181
169
183
140
167
189
178
150
189
194
173
154
190
176
197
164
158
173
166
146
196
179
140
178
186
175
173
159
157
173
189
147
194
181
192
175
184
167
145
190
157
188
160
179
199
184
161
147
180
197
195
187
160
187
175
170
167
169
174
142
163
174
162
183
159
178
184
146
159
199
182
177
200
196
183
169
143
187
198
199
140
176
149
184
171
152
192
140
171
144
200
153
142
156
180
171
192
162
161
198
174
200
154
179
176
164
154
177
146
156
146
143
162
177
196
153
188
188
187
182
149
151
200
141
152
183
148
150
200
177
141
183
184
156
163
140
198
164
161
191
141
187
184
170
187
156
155
195
140
153
153
189
156
194
140
161
161
170
172
152
160
140
170
142
147
162
178
154
175
183
159
180
158
173
173
140
146
154
180
160
185
143
167
176
145
150
168
180
198
174
181
200
150
142
190
187
190
167
154
181
182
194
169
157
184
188
170
164
173
161
150
181
171
176
195
184
190
193
177
156
156
198
179
199
162
162
175
197
153
168
146
162
183
157
168
199
145
153
153
144
190
178
173
159
158
155
174
142
152
196
179
144
177
165
151
171
188
171
162
185
151
200
142
181
200
184
195
178
140
193
154
147
144
150
147
179
151
176
143
161
179
190
199
157
160
186
181
192
140
152
153
182
149
178
192
175
146
198
140
179
167
165
154
180
146
197
187
180
174
194
148
157
186
151
177
176
155
156
200
191
175
148
182
191
190
142
177
174
154
178
175
154
189
179
182
199
181
183
196
197
154
157
199
180
155
183
197
188
155
182
157
182
146
143
163
186
196
171
190
156
161
163
151
179
156
168
141
173
141
198
157
157
149
188
176
172
151
158
172
151
141
163
161
180
141
178
191
198
150
167
140
182
159
162
166
149
140
151
173
196
159
168
177
183
199
162
172
193
177
153
145
140
175
196
147
170
168
170
195
144
174
187
140
152
186
165
166
144
172
149
168
187
173
156
173
158
162
161
159
148
174
196
195
169
144
145
181
194
190
200
184
144
145
187
174
141
144
161
180
195
186
187
172
173
149
164
148
149
146
177
151
198
178
180
141
170
157
148
157
141
172
151
178
186
161
192
186
172
141
171
188
155
180
186
172
146
153
179
178
160
190
150
194
156
165
170
152
169
162
161
155
174
196
174
162
141
188
162
195
155
166
167
184
170
153
194
174
175
169
147
190
199
180
182
163
158
156
178
166
182
177
157
164
148
175
144
188
156
196
181
148
161
180
145
146
146
191
150
159
185
181
146
195
149
173
149
192
140
152
189
153
173
194
183
177
154
198
177
190
198
198
152
147
191
194
173
174
150
186
195
195
159
177
181
167
161
159
180
169
160
163
200
175
170
174
183
142
167
169
155
148
197
181
178
143
181
176
147
177
144
159
189
187
179
154
157
156
143
175
148
186
140
142
164
181
194
147
174
151
144
148
170
147
148
172
148
180
145
170
157
166
181
145
194
152
184
181
168
161
173
156
179
153
156
177
170
156
184
188
143
188
166
192
167
166
145
196
196
198
142
177
158
140
176
172
197
186
173
170
164
175
169
143
142
196
187
160
166
176
185
166
158
175
148
180
151
173
167
195
176
172
196
162
176
161
192
147
162
183
199
158
172
176
186
169
169
174
183
153
183
158
188
143
142
184
158
194
183
170
184
146
189
178
163
143
183
141
197
187
165
187
143
140
198
148
159
193
167
183
145
169
191
187
188
181
185
158
176
191
166
163
200
184
199
164
158
187
170
191
190
147
170
159
182
186
150
152
186
189
165
158
155
148
176
165
158
140
183
161
151
160
194
186
175
145
200
144
188
194
142
179
184
143
152
194
181
173
167
144
175
186
194
144
161
159
150
155
160
156
200
140
195
166
160
148
189
147
154
167
189
173
182
164
184
190
164
191
156
164
156
156
184
145
172
196
151
177
179
188
164
190
148
153
187
161
163
157
191
165
174
157
160
192
152
169
196
186
194
176
142
148
197
177
191
196
158
187
147
145
191
195
189
141
191
163
141
174
170
175
168
161
160
187
150
157
160
151
189
161
159
198
161
194
192
144
196
145
183
198
152
165
155
144
170
198
163
194
172
186
176
154
144
165
182
143
179
169
168
149
143
187
161
189
190
154
146
183
183
151
156
151
159
183
147
181
188
152
195
156
180
160
172
175
171
145
190
140
184
177
169
171
152
158
159
165
196
185
176
161
168
200
194
145
188
162
196
182
188
180
181
164
171
178
183
144
144
176
167
188
197
190
147
177
157
186
156
169
140
174
178
160
158
164
176
161
191
185
146
161
184
158
199
161
168
179
160
168
168
154
155
188
197
161
143
173
143
188
152
150
194
157
151
159
143
145
144
165
161
180
183
141
194
197
141
155
167
171
146
194
191
184
167
161
180
194
188
163
199
172
182
192
187
174
155
193
189
194
174
181
187
190
186
180
180
146
189
177
154
179
165
183
196
143
184
179
149
148
152
191
154
181
145
176
159
164
199
195
187
152
179
170
157
154
157
182
146
190
170
199
172
154
146
173
148
158
188
192
155
157
195
150
157
161
182
191
187
142
149
169
194
187
161
159
199
163
145
146
153
164
195
195
147
187
160
152
185
198
168
145
183
154
155
142
167
155
178
160
186
168
159
199
185
174
151
192
152
153
166
180
165
162
190
148
180
197
170
157
194
166
176
169
140
176
143
193
195
151
187
169
146
177
143
186
159
154
164
173
154
154
141
154
157
153
148
157
193
150
140
148
147
184
155
173
194
146
146
151
140
178
165
192
174
146
143
157
200
153
146
183
200
161
152
180
178
154
184
184
142
198
152
172
168
168
199
158
184
141
167
154
190
145
184
158
167
176
173
186
158
142
194
153
196
166
173
152
188
165
164
188
141
178
141
154
185
154
199
186
149
168
149
184
200
176
150
145
156
142
148
197
142
186
149
179
145
154
162
142
156
157
171
158
171
196
186
183
199
197
178
144
177
182
150
197
193
158
186
173
146
151
151
186
146
185
196
157
156
172
183
143
179
193
167
175
147
143
144
172
192
183
147
162
186
196
181
187
195
188
151
198
199
195
192
147
187
187
152
164
174
196
169
172
188
163
152
164
153
172
152
141
196
197
189
144
142
171
141
151
169
190
178
191
152
160
140
161
167
154
151
149
188
179
183
172
164
154
167
190
194
165
154
174
162
170
152
175
158
183
187
191
189
176
175
158
175
152
176
191
145
184
189
157
154
144
161
196
175
199
173
178
186
178
156
149
154
158
183
193
145
164
158
188
160
168
177
152
174
151
160
156
146
191
144
150
174
180
191
149
150
200
185
192
174
153
167
165
148
153
172
172
159
170
195
168
150
161
182
143
152
188
143
167
189
155
188
159
194
183
156
180
198
184
187
199
141
144
159
153
190
197
183
156
189
189
197
189
148
163
180
187
145
187
164
155
157
200
154
197
195
161
178
144
162
155
174
199
198
165
178
182
190
171
162
142
174
147
172
184
192
154
157
160
166
155
141
160
148
145
143
166
163
148
159
193
159
165
180
146
156
188
185
164
200
189
184
194
166
172
151
175
149
144
170
198
174
166
158
199
158
156
196
142
169
176
190
148
174
183
184
180
190
197
161
172
155
165
185
146
189
166
189
194
195
176
142
180
187
147
169
181
185
160
197
175
189
183
179
180
150
155
172
173
200
181
188
189
176
177
155
155
178
191
182
160
200
143
171
198
197
175
164
142
184
147
162
147
197
158
169
190
154
181
153
165
188
172
190
182
163
194
184
164
153
197
158
198
181
171
179
197
198
156
168
200
154
169
150
144
181
145
185
158
145
142
140
199
141
175
193
151
178
169
190
161
195
155
165
163
151
186
144
196
158
144
167
182
160
191
144
181
143
193
195
156
180
193
146
191
144
162
181
178
173
152
149
142
200
185
171
161
176
169
161
190
150
154
153
189
141
175
153
172
140
176
184
170
141
150
150
168
153
148
170
185
173
182
149
183
182
141
163
174
145
155
163
178
142
199
191
144
154
152
166
149
170
142
196
143
172
160
200
175
143
192
190
161
157
179
198
186
178
150
188
167
159
191
149
170
174
174
200
165
141
152
150
167
169
180
186
173
198
145
165
183
184
195
171
200
169
175
172
195
191
172
189
164
156
143
189
176
192
145
195
179
178
182
191
180
183
152
170
166
145
172
197
165
146
151
160
179
199
181
189
140
187
171
183
144
158
156
151
148
166
144
146
163
173
190
144
197
185
156
147
177
166
155
166
163
189
151
145
166
193
199
193
182
179
200
190
187
166
199
177
181
140
168
143
175
197
200
156
155
199
171
158
144
174
145
140
151
159
157
155
144
166
189
168
143
174
198
199
161
145
174
198
189
178
156
195
160
182
181
198
158
154
149
183
196
151
161
198
149
190
146
199
164
169
159
154
173
166
182
178
193
196
195
159
151
148
200
141
159
189
149
175
169
146
140
158
157
155
188
143
192
145
148
170
191
163
180
171
187
156
151
192
140
143
197
188
188
199
179
191
173
175
141
144
195
183
169
148
199
174
174
146
159
144
162
162
189
154
140
190
181
168
197
145
199
175
169
179
174
181
151
152
184
148
153
196
181
168
181
147
179
152
166
155
162
197
200
184
145
160
197
180
151
171
157
153
155
165
185
200
166
168
198
154
179
176
148
191
186
147
198
156
185
151
177
197
174
146
170
160
140
147
161
166
183
174
141
199
156
156
150
178
170
172
164
180
182
190
154
145
175
195
192
191
158
146
197
145
197
153
174
142
183
194
162
163
141
160
163
182
150
142
192
165
178
175
181
170
152
177
173
158
150
195
169
150
144
164
140
184
185
152
167
176
167
191
161
176
180
148
160
182
189
177
181
179
169
183
185
174
169
156
199
140
177
170
142
154
183
193
145
186
183
190
146
145
172
184
183
157
149
149
172
186
160
177
171
164
177
194
148
193
166
155
143
187
168
140
153
190
171
147
153
171
176
184
195
193
172
146
161
199
168
179
159
150
157
183
156
173
143
191
165
155
152
182
200
193
169
178
158
178
188
190
169
145
143
186
198
182
150
194
190
193
165
182
162
153
168
153
164
175
159
142
147
183
195
144
197
174
193
156
162
199
143
192
192
172
175
194
198
186
167
140
178
165
150
179
167
193
187
189
197
177
162
182
171
187
143
189
158
197
163
189
151
151
184
147
169
142
158
153
152
192
162
182
169
186
194
155
198
196
147
180
184
185
160
164
192
144
143
199
192
173
186
158
152
189
190
197
185
185
172
191
158
148
191
159
167
169
163
163
164
189
192
194
185
191
154
200
162
174
194
152
163
168
186
174
150
176
143
188
156
177
144
188
172
169
174
197
177
163
188
167
172
160
141
145
160
171
154
145
185
141
145
152
157
190
191
187
190
198
187
163
156
142
165
166
196
200
181
142
174
163
165
180
191
146
147
171
160
184
198
182
162
157
173
192
191
163
166
156
165
171
173
171
169
159
190
177
188
164
170
146
194
166
176
174
160
167
194
149
173
167
165
178
154
171
158
192
158
159
170
173
146
200
172
145
163
143
150
172
157
177
141
172
142
175
185
175
184
161
160
163
189
185
153
194
158
174
159
187
176
176
154
159
156
153
161
165
164
151
166
189
190
199
183
164
152
162
147
149
149
141
194
182
172
166
180
140
180
157
145
192
197
163
178
194
176
171
192
190
198
152
161
168
149
184
188
149
194
187
154
162
142
148
200
142
173
192
192
149
152
175
156
150
158
167
159
177
151
144
177
181
183
141
174
165
145
157
198
186
156
196
178
171
168
187
166
198
197
199
180
161
143
192
159
167
152
180
158
168
167
186
186
158
181
173
199
172
178
178
171
160
143
159
171
141
141
157
169
172
196
148
141
161
173
140
188
161
183
190
189
194
198
147
196
183
172
174
158
194
156
177
199
157
187
181
183
161
188
176
171
156
165
183
187
186
195
185
149
157
147
160
169
182
149
169
184
154
179
190
149
175
142
150
153
152
192
163
152
158
140
169
172
156
150
168
180
192
164
171
188
192
144
140
199
155
189
166
193
182
159
186
172
198
158
179
186
200
162
166
175
147
189
170
165
147
155
158
180
155
156
199
181
184
196
148
175
181
181
172
199
167
142
157
145
151
200
140
142
187
194
160
167
154
179
168
172
163
153
195
185
179
160
182
162
151
161
173
192
162
178
141
155
166
181
198
172
154
180
141
162
152
176
199
140
181
191
144
165
143
181
159
188
170
146
175
172
141
154
184
164
174
144
145
182
188
184
186
168
164
145
170
156
169
181
189
189
150
185
184
195
184
162
165
194
168
175
177
195
150
188
146
175
148
196
142
198
153
167
200
167
144
167
167
151
174
193
147
164
187
197
167
153
178
187
142
149
186
179
147
175
183
197
169
170
170
183
197
148
160
151
173
173
142
156
149
187
162
174
154
147
158
162
170
159
158
156
156
170
178
151
182
191
174
144
168
199
186
158
167
199
178
172
170
188
146
187
159
179
145
177
194
195
170
157
173
173
155
182
150
196
176
189
145
175
176
180
140
158
198
187
181
140
163
187
161
178
155
159
158
153
174
150
188
159
180
191
181
157
151
171
192
155
171
200
161
186
164
191
152
184
170
148
173
155
154
190
145
197
147
188
189
178
166
199
159
167
199
154
151
199
154
166
192
198
188
158
172
186
161
165
195
156
183
174
153
173
172
192
152
144
191
158
170
165
179
171
200
145
180
189
194
154
196
174
140
165
157
185
187
198
179
198
191
151
184
150
181
193
175
155
168
177
175
141
169
151
195
146
172
186
185
198
163
150
181
148
160
171
157
152
150
183
164
155
156
143
155
143
187
198
182
145
174
192
140
142
177
164
144
160
175
196
152
146
140
142
172
174
187
166
155
151
174
191
175
199
166
165
182
164
160
190
189
161
187
168
177
165
162
190
178
191
191
169
155
158
160
191
162
144
191
197
181
150
165
181
168
187
166
196
172
196
170
152
148
161
143
166
160
165
188
146
161
152
147
188
140
140
174
159
195
143
191
195
182
146
178
158
164
158
188
140
175
160
155
151
175
187
174
165
165
188
173
157
181
145
174
156
181
164
181
142
182
177
163
145
175
188
160
176
171
191
174
170
176
168
167
191
186
154
175
162
190
151
179
150
177
194
141
197
191
200
150
188
182
190
157
165
156
168
181
148
172
193
143
153
147
195
172
183
194
175
163
164
153
187
162
190
144
159
162
190
198
180
180
198
184
159
182
157
193
186
171
164
161
151
155
172
158
172
147
177
183
140
146
155
195
200
161
182
190
170
142
183
196
142
198
166
188
184
190
171
187
168
154
172
157
145
185
173
194
141
163
162
189
180
165
176
190
156
140
142
146
142
188
190
191
157
159
163
197
144
186
168
144
178
158
145
171
196
151
172
184
151
179
151
200
189
190
156
152
148
182
142
163
188
153
175
200
158
140
156
156
160
190
164
172
175
144
152
157
180
176
151
191
156
170
184
157
158
154
153
166
159
164
145
155
164
185
161
141
157
178
165
161
198
143
161
188
174
162
197
186
157
195
161
152
199
141
196
198
190
191
154
181
195
162
178
149
163
167
170
194
173
175
152
187
146
168
144
151
185
148
155
143
173
172
166
169
169
197
165
140
165
173
180
155
187
145
169
168
165
149
163
189
199
179
196
152
170
140
177
186
152
148
170
152
143
148
147
180
162
169
176
191
179
167
193
166
146
186
183
152
196
172
156
164
180
192
182
168
178
176
195
141
154
156
145
161
176
159
144
170
164
149
182
151
150
190
163
165
199
153
170
149
188
156
173
184
142
180
164
152
172
200
193
178
175
166
141
179
170
186
183
165
146
192
147
170
144
179
148
199
157
163
147
190
166
174
194
140
154
145
141
171
200
150
190
199
141
191
156
184
183
192
200
142
162
145
186
166
153
142
148
159
168
146
185
168
147
162
173
197
144
167
149
147
165
145
141
189
189
183
160
177
176
151
170
181
184
177
143
182
183
173
168
182
180
181
150
151
171
141
179
184
145
146
178
192
144
192
190
180
175
172
173
145
168
171
158
150
195
100
108
150
106
126
128
124
149
140
116
123
136
101
115
143
138
132
108
120
148
111
107
109
125
107
127
131
112
150
122
133
137
146
125
125
120
140
127
148
148
102
145
120
131
150
113
129
125
121
103
115
131
132
101
124
114
101
136
102
135
109
147
150
144
145
148
135
125
128
113
150
134
125
106
144
141
110
116
129
119
122
101
148
143
150
142
107
124
103
122
126
108
119
100
100
143
142
116
143
125
121
137
100
143
137
119
148
145
133
105
117
128
148
135
101
150
138
132
104
117
133
144
130
145
145
111
147
105
136
140
138
108
132
109
126
140
103
117
128
102
133
144
103
121
108
125
107
127
112
126
111
132
118
106
121
133
124
131
111
133
124
113
145
138
136
128
102
132
127
147
145
105
130
103
145
135
142
145
149
108
141
122
100
112
123
143
150
138
138
106
108
145
146
141
135
148
129
117
145
136
140
103
134
139
138
137
113
117
134
149
113
108
125
118
115
110
112
130
113
114
145
102
141
108
135
108
113
108
121
150
106
102
121
109
109
115
145
102
140
139
125
126
115
136
143
110
130
130
149
118
115
135
119
115
113
103
104
141
126
111
142
105
135
141
109
115
102
102
109
137
143
111
105
125
120
143
107
108
108
107
122
119
136
100
121
126
123
112
115
126
120
135
123
113
128
129
120
138
141
125
138
135
126
128
127
119
104
126
138
140
132
110
109
133
100
117
145
108
150
145
141
146
122
111
120
105
112
141
126
120
142
141
124
148
112
107
118
147
123
119
126
122
137
114
102
109
147
108
124
150
109
124
137
137
115
100
117
128
149
103
142
107
146
112
105
134
150
140
132
150
144
142
114
102
131
101
130
124
131
112
115
137
139
124
116
150
150
106
137
113
140
141
103
139
137
146
100
135
100
129
107
127
129
131
134
132
129
120
123
109
138
101
143
119
122
122
102
133
138
113
111
140
107
131
101
136
106
147
113
133
129
147
119
139
128
106
147
140
123
124
138
132
103
145
116
114
139
127
101
123
104
103
115
148
122
121
124
105
123
150
142
120
123
126
142
100
146
124
134
118
127
135
132
123
111
104
112
102
111
142
143
142
140
100
126
115
114
103
114
137
103
128
109
111
137
135
124
105
119
136
119
101
146
116
120
145
137
128
127
149
125
135
108
103
143
145
120
144
150
127
134
116
136
145
148
114
118
134
110
139
116
106
110
101
125
122
135
101
104
141
147
134
115
147
148
143
117
111
108
135
109
123
143
107
149
119
122
141
137
147
109
109
102
143
103
130
134
129
115
132
101
134
131
117
135
147
143
112
144
124
120
118
101
110
128
103
117
113
142
105
115
144
124
135
120
132
130
111
129
116
147
132
123
134
125
131
106
128
109
126
116
125
129
116
137
118
105
141
138
116
135
137
108
120
144
144
118
137
114
135
150
134
136
127
130
146
103
104
111
132
129
143
118
142
136
100
111
110
102
141
106
110
101
127
128
101
123
116
115
100
103
102
145
143
134
144
133
110
138
124
112
137
137
138
101
142
132
148
113
133
144
129
124
148
119
120
146
126
107
113
135
138
102
113
100
111
120
128
114
134
110
119
133
116
149
138
107
102
147
141
127
131
134
112
106
102
117
134
119
107
109
132
109
129
109
118
141
121
129
138
131
137
109
137
127
143
109
127
150
125
114
118
143
147
113
112
139
131
127
104
112
112
137
144
119
110
103
111
107
142
120
112
100
107
136
142
123
143
131
132
103
105
101
149
136
106
140
100
138
117
111
132
124
106
119
103
109
134
112
116
101
148
137
111
147
132
131
126
142
136
134
131
133
131
120
121
147
135
137
145
117
137
134
122
137
108
142
120
115
145
106
110
106
104
136
130
123
118
119
102
137
127
126
150
132
136
131
114
117
147
118
120
145
118
139
139
128
106
120
107
108
145
122
144
133
112
129
114
128
149
150
126
147
141
130
139
149
145
135
113
118
150
113
129
139
125
143
147
101
128
110
104
135
130
102
146
110
109
143
124
141
129
147
123
138
128
104
133
143
141
126
139
108
137
131
118
134
119
112
109
131
150
140
110
146
150
107
100
146
144
122
145
128
145
137
102
149
110
130
105
112
114
129
112
112
136
131
126
119
105
112
134
122
116
141
120
120
140
135
109
122
109
145
145
127
104
117
126
123
110
100
128
150
134
139
136
109
119
114
117
143
115
146
101
110
114
106
107
103
144
134
127
149
108
107
115
106
123
112
107
104
102
124
107
108
125
125
119
135
106
138
144
126
134
131
106
130
137
131
126
145
123
106
130
127
142
102
126
150
139
103
140
134
111
146
149
134
127
145
105
141
110
116
108
118
115
141
139
149
108
140
103
137
138
146
131
102
102
111
110
127
148
102
118
136
107
120
147
134
150
107
121
101
119
143
135
141
129
102
129
138
130
102
113
145
129
126
136
127
104
108
140
121
142
109
124
142
136
148
124
150
132
134
121
145
138
110
126
147
138
111
149
135
131
123
111
127
118
116
113
145
134
143
115
118
117
129
111
144
137
108
111
145
135
115
131
137
114
124
109
141
119
103
135
103
142
124
147
100
107
122
128
142
110
150
110
116
120
109
133
104
136
138
130
108
101
109
113
114
126
145
110
145
145
118
148
150
147
114
116
123
146
110
128
126
122
114
135
140
145
150
135
136
149
129
127
137
110
148
130
142
104
119
133
142
109
143
111
138
139
150
117
136
147
129
127
130
148
143
102
135
129
147
129
132
145
141
117
130
138
142
126
119
120
100
116
125
138
100
127
136
119
127
143
138
102
132
126
134
150
103
114
127
139
112
144
108
112
121
147
125
116
116
140
139
122
144
103
119
141
120
141
138
105
127
101
110
113
135
105
105
102
113
103
103
123
111
136
132
115
102
110
137
129
102
105
120
103
146
107
101
124
120
101
145
116
128
104
150
124
119
100
136
122
135
115
118
130
135
136
130
147
134
118
141
100
139
131
143
127
117
114
112
131
102
117
143
145
128
126
101
147
137
103
141
129
116
148
133
110
127
142
116
123
127
149
111
143
109
148
102
142
138
112
120
146
137
127
137
106
134
107
107
114
127
117
110
132
127
102
142
107
119
128
115
131
140
113
148
102
108
107
147
109
149
123
113
114
124
134
112
135
140
110
143
145
146
120
150
132
129
131
102
141
116
131
104
113
143
117
112
119
148
100
133
133
133
126
120
114
136
112
127
132
140
111
150
138
115
149
113
131
117
104
126
109
144
149
117
125
123
127
102
121
140
126
109
112
150
119
129
114
119
134
100
119
107
148
139
115
105
143
106
101
130
104
128
132
120
133
122
112
127
133
138
112
122
148
129
116
133
129
108
128
115
101
141
137
112
150
123
149
115
113
113
104
142
142
101
125
114
105
119
140
137
150
129
131
132
141
100
106
127
108
133
107
136
103
138
127
122
108
138
148
136
123
135
135
136
123
114
115
104
115
112
147
130
132
107
140
123
145
104
109
102
102
106
114
130
125
147
131
126
100
132
140
106
130
149
133
100
147
148
116
148
116
109
125
109
102
147
113
132
143
122
136
139
142
115
101
109
123
143
127
111
137
116
137
138
150
141
108
113
127
133
145
146
140
101
136
139
145
138
134
114
119
122
100
131
107
109
138
140
142
103
130
115
142
148
116
121
113
101
134
148
128
130
115
106
134
110
127
105
119
131
111
100
111
119
136
123
115
124
134
138
139
122
105
125
112
135
131
102
107
118
106
105
130
135
109
144
150
144
119
119
150
133
111
130
124
107
106
137
117
148
102
138
100
101
101
132
140
128
104
129
114
110
102
144
134
116
100
147
120
123
135
146
121
100
124
143
113
143
122
142
114
123
120
112
123
144
110
111
134
135
118
150
109
113
139
131
131
144
109
121
111
124
122
111
104
129
129
108
116
109
121
139
126
135
125
112
148
125
102
127
114
126
137
137
109
143
118
136
150
144
138
140
107
110
105
133
142
119
119
137
101
145
109
120
114
149
137
112
120
119
145
112
150
108
147
150
101
147
101
118
101
108
124
125
109
121
117
108
139
143
121
148
125
104
110
127
102
119
150
144
129
131
107
150
139
132
126
107
150
111
128
122
148
125
120
131
131
106
118
137
103
148
121
126
118
124
149
102
146
108
106
122
114
146
141
106
122
131
119
129
128
143
105
126
150
101
150
140
106
121
120
120
131
102
144
128
121
146
102
120
133
132
105
147
104
147
130
116
120
142
106
117
112
112
136
119
150
106
112
129
106
138
140
102
135
124
134
111
134
112
130
109
111
120
140
107
104
122
149
113
148
122
145
100
123
107
134
110
125
112
137
127
101
109
145
135
103
114
117
130
146
148
143
125
132
116
138
105
112
138
145
118
110
106
129
120
115
106
147
135
115
106
110
146
100
149
117
150
113
136
137
129
137
139
129
150
130
124
115
103
122
102
120
125
111
110
102
130
111
147
124
103
147
116
134
120
147
132
140
145
113
101
116
139
119
129
123
129
132
106
126
105
125
143
144
135
145
122
111
112
125
139
149
106
112
114
150
125
143
104
128
120
142
141
104
132
137
120
101
120
146
109
105
123
138
103
108
148
117
112
130
108
145
113
115
126
114
116
118
130
119
123
126
150
141
134
121
136
128
138
147
123
100
140
102
132
100
105
146
149
150
110
115
112
115
136
143
128
119
141
122
150
138
106
109
136
127
139
132
106
116
114
139
125
106
117
116
133
113
122
115
148
127
104
121
106
134
106
117
150
126
105
146
107
105
124
120
117
138
107
120
107
122
124
145
131
145
132
108
112
150
145
141
146
113
124
144
136
136
115
108
103
114
102
100
102
111
135
126
113
123
115
121
134
121
124
128
144
139
100
130
126
129
146
128
102
136
145
106
101
122
107
123
146
109
104
150
129
107
102
109
148
128
130
124
100
147
105
108
148
139
147
148
102
126
147
134
123
127
111
126
136
104
119
128
116
109
112
115
110
110
149
108
131
116
128
114
104
124
139
144
109
143
142
105
133
142
114
132
135
118
103
136
101
136
140
116
113
144
150
101
124
138
108
118
150
149
144
103
118
142
130
114
128
144
110
136
144
149
104
107
147
127
113
122
123
119
130
110
113
149
126
145
122
135
113
131
133
137
129
125
113
127
104
121
111
141
124
109
110
102
121
104
103
115
122
120
138
141
122
139
110
126
146
117
148
142
106
119
140
107
124
148
116
114
149
117
114
121
114
138
131
115
118
125
124
142
138
133
136
108
126
126
116
112
117
100
111
106
145
143
134
105
142
104
131
116
142
132
144
123
138
102
112
150
132
121
101
119
136
105
115
127
142
144
101
139
147
113
146
125
140
127
133
111
135
132
135
133
122
118
113
112
149
126
114
110
145
128
149
150
122
131
124
109
129
146
113
123
141
107
119
110
148
131
131
102
124
105
144
121
114
125
115
131
114
134
114
116
149
132
126
125
140
148
124
134
135
147
147
100
142
122
122
146
131
111
105
144
118
141
101
100
127
115
130
124
141
138
150
148
142
132
108
136
116
137
136
149
147
140
140
141
144
128
144
121
143
113
103
109
133
124
136
111
131
112
136
134
116
138
102
137
143
133
119
105
102
129
107
150
132
141
135
147
148
108
102
123
106
121
117
122
111
127
138
120
126
112
142
110
121
116
115
121
150
134
148
141
133
111
113
118
136
105
104
101
139
126
120
111
120
138
108
108
143
115
114
119
148
123
141
133
140
122
131
111
133
130
133
115
144
142
103
138
127
138
142
139
136
126
146
118
106
130
144
116
124
142
137
128
110
130
114
144
130
106
126
115
125
120
134
103
123
147
135
137
106
120
101
104
132
131
121
116
131
143
139
117
105
120
105
117
114
126
135
147
114
146
124
108
150
145
118
134
136
114
149
134
125
146
145
135
110
144
102
108
127
135
133
116
145
136
115
145
110
126
111
122
146
109
106
111
111
112
131
119
108
125
105
139
149
112
136
112
103
140
125
129
128
113
115
124
129
105
118
134
133
144
111
150
138
120
149
111
133
146
109
139
115
116
141
108
135
117
121
115
148
117
104
101
113
106
148
119
149
149
127
124
122
149
129
121
100
112
150
110
132
136
107
150
146
136
136
101
118
130
114
147
103
143
110
101
114
132
100
131
120
122
123
145
121
144
130
101
124
129
123
103
132
139
131
127
101
115
125
145
123
120
126
110
109
125
111
127
144
148
141
129
100
147
125
138
130
140
136
131
123
111
150
128
149
132
146
143
123
128
117
141
133
145
109
133
142
109
127
127
128
124
131
133
110
127
137
122
104
108
145
145
118
137
110
138
110
137
137
100
120
146
115
146
144
102
126
140
126
101
140
108
106
114
130
105
122
131
141
140
103
126
101
108
140
125
146
133
147
135
113
102
137
118
140
107
145
134
143
127
145
135
104
105
101
141
115
119
102
139
107
140
145
146
100
147
133
102
133
107
116
110
129
105
109
127
127
149
109
112
138
131
142
143
124
120
145
131
138
131
126
131
106
141
149
139
147
120
110
127
122
104
127
148
108
148
122
128
106
142
118
146
129
127
114
105
144
135
133
122
109
118
110
141
136
109
120
115
122
109
124
116
106
144
121
149
141
103
126
149
104
118
104
134
107
143
109
119
135
119
103
100
102
143
105
126
124
101
117
137
129
104
137
104
112
101
126
109
141
122
121
101
108
131
121
148
128
133
113
112
105
145
133
112
150
109
149
150
101
100
112
104
120
148
121
108
117
108
149
143
115
124
144
150
142
145
147
148
103
118
107
121
119
115
105
108
104
139
100
131
121
103
103
118
115
134
137
122
135
112
101
104
122
109
102
133
108
130
113
124
124
126
145
102
113
121
106
142
109
103
101
109
122
110
130
117
121
115
136
123
139
102
134
115
146
146
124
136
126
107
132
148
135
104
133
109
108
122
136
140
120
123
125
126
138
128
110
105
150
110
115
146
137
115
113
121
105
111
108
123
126
103
124
142
115
140
147
103
137
126
143
104
108
118
107
144
111
126
104
110
132
145
126
134
127
142
135
138
126
109
148
104
141
131
116
117
112
113
144
127
106
130
109
103
105
124
148
131
116
110
131
113
109
117
103
119
116
108
115
117
134
150
119
140
102
138
106
108
103
119
103
118
101
115
130
117
145
125
111
141
107
128
125
150
111
131
102
137
150
134
103
144
149
146
121
121
149
108
119
135
144
149
133
105
124
148
139
109
140
126
103
149
148
135
109
106
144
121
140
120
130
136
108
125
126
101
116
117
112
116
145
148
126
119
140
101
135
115
133
119
144
112
113
113
142
115
126
101
147
140
147
125
118
137
139
143
112
143
127
103
110
102
118
131
142
138
133
142
105
142
142
150
143
125
140
148
107
149
130
125
140
145
119
108
102
104
139
148
106
121
146
126
125
142
129
126
104
111
111
102
116
132
123
120
106
107
108
127
126
150
103
135
132
126
105
119
124
127
139
114
117
112
139
116
104
100
114
115
107
119
105
146
129
134
148
146
113
126
141
149
134
125
118
125
117
128
121
114
118
125
140
103
128
109
133
133
112
134
125
109
137
101
134
128
110
139
142
105
145
119
120
119
139
138
122
143
119
131
124
130
139
141
149
133
132
121
108
114
103
103
138
117
116
107
105
150
145
109
112
113
103
132
132
118
125
108
112
125
138
111
109
120
149
117
119
111
146
122
127
139
126
106
105
133
143
129
146
139
125
145
115
100
142
113
105
139
119
146
116
111
145
138
104
129
140
136
120
106
147
145
149
123
134
121
107
121
120
148
138
120
142
123
117
123
145
129
121
114
134
118
134
104
116
137
101
146
103
130
108
143
118
127
125
122
135
126
137
140
132
112
142
131
111
127
135
113
122
114
126
107
148
109
103
103
126
126
125
118
143
116
149
112
108
115
125
149
116
147
116
128
123
114
127
131
138
123
145
103
112
143
115
146
123
130
118
111
132
115
114
136
145
115
146
127
100
102
111
115
144
107
121
116
116
139
101
121
138
131
111
111
129
104
142
115
150
117
134
138
103
150
106
139
115
105
122
139
132
128
130
120
139
139
105
122
118
107
142
109
142
141
141
109
136
131
122
129
127
118
118
128
109
147
136
134
127
141
106
111
134
104
140
110
115
107
145
120
121
127
110
118
141
141
108
124
131
104
115
126
133
109
109
138
142
148
149
138
126
139
114
119
126
107
141
134
106
135
117
121
123
137
125
101
134
127
126
145
131
105
104
112
142
100
135
136
145
117
134
109
127
144
123
126
142
126
112
122
131
106
136
124
103
101
147
110
147
120
141
137
106
133
146
104
138
144
146
121
139
107
138
102
144
117
104
109
142
106
125
135
103
148
124
106
132
103
109
102
134
110
122
115
142
106
145
143
150
140
118
148
115
112
147
139
138
104
135
139
118
107
118
109
101
116
126
135
125
112
123
130
110
116
148
128
118
109
134
114
134
110
107
114
137
145
135
118
119
119
104
104
134
127
114
100
132
137
150
137
142
100
127
132
145
115
149
138
138
121
114
150
149
102
120
134
123
126
125
128
142
118
138
126
132
128
135
122
105
123
115
121
139
107
128
137
117
143
124
123
139
119
133
130
104
106
102
148
123
150
132
120
130
111
137
133
124
133
123
131
106
119
109
111
135
129
145
109
134
109
113
103
144
114
122
133
110
126
133
139
121
107
134
127
121
106
126
145
150
132
147
111
120
109
122
147
121
133
110
104
114
140
132
126
130
103
147
122
135
145
109
116
129
105
120
130
146
126
106
110
121
134
130
150
111
107
113
150
100
140
111
136
144
106
127
131
149
109
146
126
150
137
147
100
138
110
136
110
110
150
130
114
107
130
136
114
126
131
114
138
142
141
104
127
149
101
144
105
106
142
145
109
105
109
134
132
134
122
110
103
133
134
138
118
127
139
140
126
130
124
103
120
123
104
148
107
107
108
120
139
123
111
123
126
121
103
134
126
116
128
104
112
123
107
114
121
115
139
142
102
141
132
148
100
117
135
130
116
137
118
120
114
132
123
149
126
123
104
119
124
110
140
143
100
138
109
132
150
142
127
126
119
140
136
114
101
119
129
142
138
117
140
150
132
145
118
115
141
126
145
116
123
132
131
116
116
140
117
110
122
124
121
132
103
141
132
128
128
139
135
129
141
113
145
111
113
145
146
104
143
148
101
120
102
142
107
113
120
150
139
147
122
129
133
127
135
104
101
145
127
138
107
145
106
108
126
134
143
145
137
114
135
120
147
111
116
138
109
105
125
128
130
126
132
137
110
106
133
136
149
142
130
134
136
125
143
141
104
125
132
138
150
141
118
132
117
149
119
124
141
128
135
124
148
110
109
140
108
104
128
128
144
111
129
111
122
103
117
117
122
117
128
124
104
140
114
130
131
136
135
150
103
144
143
111
116
109
109
112
143
103
137
120
127
108
148
140
111
103
111
119
115
141
150
125
103
147
133
147
103
110
150
123
142
134
135
107
128
144
150
111
125
127
105
115
111
106
102
143
138
121
111
120
122
113
123
120
119
138
129
128
133
142
149
123
133
131
127
130
115
127
116
120
140
113
104
144
104
139
131
123
132
129
135
132
142
109
144
133
148
145
126
150
138
115
110
138
144
143
103
120
146
135
132
102
117
139
137
137
108
137
113
115
136
128
117
108
128
139
150
127
123
115
128
137
110
132
141
134
134
138
138
146
129
140
138
150
102
127
100
120
144
135
133
141
136
114
141
147
147
139
116
130
149
102
122
148
150
146
108
124
145
122
148
149
133
120
141
109
122
133
118
122
102
121
111
123
125
127
145
114
123
145
105
123
143
120
121
113
108
133
102
112
135
106
127
143
111
142
122
107
138
110
141
137
111
107
150
150
107
126
132
123
138
100
146
129
150
126
125
135
149
110
141
145
138
130
136
113
132
128
138
109
138
105
146
143
134
140
140
115
136
129
122
123
148
129
141
136
112
124
119
117
106
124
149
106
101
110
120
142
149
124
126
113
132
111
134
125
127
109
104
150
109
138
112
119
109
103
125
129
138
129
111
135
114
123
110
149
132
146
139
147
103
119
141
140
101
143
146
142
115
147
132
115
141
137
133
115
116
115
106
104
126
131
113
107
143
120
147
144
147
116
148
112
131
124
133
130
144
101
150
131
130
122
125
138
148
104
121
119
116
140
110
109
138
134
109
105
136
143
138
140
149
139
109
101
105
142
112
133
111
139
106
128
100
106
127
122
143
137
112
132
105
149
143
102
100
123
121
147
150
142
122
141
144
102
114
108
126
106
110
104
119
123
120
128
141
150
119
134
147
148
110
131
110
117
143
130
109
142
102
144
136
118
139
122
125
118
107
143
138
136
109
101
134
143
147
116
150
139
112
101
129
128
124
140
126
134
142
146
137
111
135
114
120
108
123
111
148
112
118
133
140
149
119
105
114
135
118
148
108
138
104
100
122
117
116
112
105
148
102
136
108
106
104
100
105
110
148
123
126
133
118
111
111
149
130
115
121
141
113
114
110
101
150
118
148
149
114
103
135
125
121
148
146
141
103
119
150
120
112
138
120
112
100
138
146
104
136
101
100
124
101
103
115
134
103
126
141
119
133
116
144
140
102
126
121
123
139
100
110
129
132
129
111
109
141
135
101
106
124
124
105
139
108
122
115
142
126
116
149
142
106
111
137
122
102
138
100
107
112
128
141
142
122
137
108
100
113
131
137
107
146
140
102
125
127
107
141
125
137
112
142
135
115
108
122
122
100
119
132
120
134
118
111
118
108
147
130
145
116
103
135
112
107
144
128
136
124
104
135
118
148
140
121
144
114
116
105
124
147
136
118
119
112
111
140
119
133
100
142
132
149
111
118
147
124
107
114
102
125
112
122
149
102
145
150
114
112
140
104
103
129
128
105
129
143
111
140
123
137
101
129
100
129
140
125
106
132
146
141
141
110
135
131
112
124
146
102
113
123
120
134
138
114
128
108
128
131
116
146
125
113
146
119
141
147
109
120
104
124
103
148
118
140
112
127
122
108
137
103
133
142
104
108
105
125
146
110
110
141
107
150
122
106
141
111
136
100
141
126
130
137
102
129
131
122
148
118
143
102
121
121
108
121
100
112
143
121
129
111
136
115
146
132
142
140
115
113
150
139
115
106
123
115
130
113
127
106
121
113
150
112
148
122
141
103
129
147
109
143
108
136
145
139
100
108
127
138
107
128
116
129
133
127
144
131
139
126
114
146
147
140
137
115
127
123
126
139
112
111
115
134
149
133
103
132
139
104
142
148
118
101
107
138
104
117
126
115
107
108
148
128
138
134
128
120
103
139
117
141
116
111
105
147
109
137
117
121
100
134
102
132
142
126
103
138
128
147
130
135
118
145
118
109
147
115
127
120
127
128
120
140
149
130
104
109
111
125
122
143
100
131
107
112
120
136
109
100
103
121
100
132
101
104
105
120
136
131
143
134
107
121
103
125
117
150
147
140
132
106
118
115
120
126
126
112
116
103
107
111
113
113
102
122
107
105
119
129
121
143
148
118
149
113
125
104
105
112
140
107
140
131
138
123
133
103
150
140
115
125
149
101
104
123
107
136
102
149
137
150
144
104
144
116
128
131
139
120
145
105
138
114
103
135
121
121
107
140
127
106
144
144
111
126
147
145
140
125
120
103
138
149
100
121
133
128
147
108
110
130
131
133
101
140
138
103
134
150
129
112
117
106
110
123
146
132
138
122
146
124
137
123
145
117
119
146
121
150
114
125
114
105
104
141
133
119
105
120
142
142
145
103
130
131
130
108
133
149
135
121
113
139
121
104
112
123
138
112
127
143
102
148
144
101
125
128
111
123
104
111
119
100
123
101
100
117
131
106
139
140
133
109
130
138
133
123
137
102
141
119
146
112
121
100
143
109
143
110
100
103
126
116
102
102
150
131
102
109
120
108
120
108
144
149
106
114
133
150
129
128
118
145
150
137
100
122
111
104
105
118
117
113
137
146
144
111
118
120
126
106
141
109
131
138
149
138
115
129
128
105
101
117
100
132
135
128
121
139
125
117
145
146
140
114
127
101
133
113
104
150
118
117
108
111
116
130
129
147
125
126
130
103
131
148
131
119
140
142
137
118
137
107
143
123
146
118
129
138
101
110
144
118
105
104
114
127
139
108
143
109
113
134
110
110
103
133
127
102
103
125
109
111
107
111
122
119
137
104
107
115
119
132
123
130
138
137
100
149
124
120
146
144
113
150
130
105
140
102
127
124
139
113
137
134
145
115
136
102
146
126
111
135
113
112
103
137
111
131
118
108
146
124
123
136
105
150
147
115
146
148
142
118
140
103
127
107
134
150
115
111
134
120
137
122
143
112
149
119
111
120
142
134
103
133
136
137
145
146
124
109
149
122
148
104
139
116
102
107
115
136
114
130
137
102
114
146
137
144
144
143
112
121
147
118
100
110
149
129
140
127
112
125
133
129
123
143
123
127
135
106
121
138
147
117
132
144
131
100
143
100
145
114
145
100
103
111
103
100
149
142
128
121
135
108
109
112
118
108
106
110
111
121
104
124
124
121
108
102
115
132
136
142
108
132
142
135
113
124
126
136
121
101
142
130
124
133
114
139
148
106
111
130
121
122
143
147
120
100
147
120
146
149
139
127
112
108
114
122
106
133
145
108
146
117
137
101
105
125
109
112
142
101
150
143
106
111
148
105
118
149
108
140
147
121
131
100
102
118
144
117
123
117
128
109
120
130
118
117
137
127
116
116
141
110
119
148
110
100
117
150
147
107
140
140
139
135
111
136
126
119
126
111
150
148
109
136
128
105
123
136
147
143
126
149
104
149
121
123
107
113
109
140
130
101
127
125
100
131
132
104
105
110
124
117
129
138
123
128
111
107
102
113
144
139
119
112
133
122
120
109
137
109
136
149
138
115
119
147
107
116
134
144
102
130
111
143
112
114
123
126
136
113
114
123
113
107
110
138
133
110
125
129
112
137
124
103
147
118
102
103
102
117
101
108
145
107
117
120
143
106
104
120
143
117
104
103
128
108
150
116
145
140
134
132
115
102
105
127
124
130
114
110
104
107
141
124
102
129
100
104
149
100
121
103
105
147
138
131
116
100
106
144
110
121
107
144
118
121
139
139
103
106
115
133
123
118
118
140
129
136
145
147
101
115
111
127
110
109
136
143
102
150
101
123
107
108
121
122
101
138
142
137
129
148
123
126
146
124
123
111
137
110
134
142
130
114
146
114
136
147
107
141
129
150
126
122
122
117
104
145
115
147
109
128
115
141
102
129
146
109
108
137
127
115
119
121
143
145
128
105
102
126
150
113
150
125
112
146
138
142
104
113
101
110
103
137
100
138
139
146
136
149
105
121
107
103
144
119
146
111
126
132
134
118
107
146
120
142
129
139
110
103
115
134
143
103
137
127
103
113
124
107
114
109
102
139
116
102
116
114
106
144
145
101
146
147
105
143
124
102
119
100
116
101
102
103
115
106
114
144
101
148
129
114
133
137
109
136
129
111
106
121
114
139
113
104
114
131
115
140
146
146
129
128
105
120
141
117
118
116
125
130
125
127
129
116
133
105
115
140
127
142
144
121
147
107
143
112
135
123
142
104
135
111
100
127
102
109
110
124
140
119
118
115
100
143
145
116
122
139
117
146
149
101
135
128
120
106
101
150
111
124
101
126
139
108
142
150
143
147
117
112
138
123
123
112
105
105
138
145
108
137
125
136
121
130
148
116
127
118
114
125
145
138
134
145
149
142
123
115
100
131
126
123
147
125
137
127
124
125
148
150
111
125
143
143
133
130
144
107
134
118
115
117
141
126
141
117
149
121
107
103
108
128
118
147
110
117
130
131
131
147
127
137
108
112
141
147
131
123
116
118
139
117
143
116
100
130
101
147
116
110
138
109
112
135
141
144
149
104
130
121
139
114
100
103
115
142
111
123
133
150
102
119
115
132
124
146
122
127
120
107
106
102
119
106
120
118
100
127
123
108
146
113
146
123
143
116
118
130
113
149
148
141
134
131
136
150
103
122
121
107
125
146
145
126
118
122
140
111
125
141
137
130
105
128
139
121
132
103
146
123
146
121
126
144
115
128
144
150
150
108
129
103
141
108
138
122
108
143
131
125
145
125
113
104
133
138
127
148
122
135
135
110
119
104
122
110
138
102
117
130
134
109
131
144
149
100
125
114
125
131
148
138
140
104
142
132
100
146
138
150
138
123
127
114
102
124
143
119
111
118
136
141
101
113
122
106
139
113
111
101
143
124
122
106
138
137
122
137
114
134
128
110
121
114
113
128
109
118
118
106
110
123
145
123
123
103
140
127
103
106
147
118
145
150
110
143
124
134
126
117
112
121
148
129
114
113
125
115
124
115
125
133
116
143
113
150
137
133
143
149
146
116
109
122
114
108
103
130
124
123
107
100
143
107
110
132
101
132
119
126
105
143
122
137
101
144
143
121
114
146
142
138
125
120
114
145
102
113
131
105
126
124
132
122
122
101
136
100
116
107
102
119
139
131
114
145
120
149
102
126
128
143
102
104
102
140
121
116
107
142
106
138
104
115
126
147
135
122
145
140
120
117
116
116
109
103
135
117
135
120
128
139
140
138
131
143
140
136
147
142
134
140
129
134
103
127
124
124
103
149
107
143
130
133
111
146
123
140
147
106
115
119
124
119
129
112
117
134
127
141
149
136
150
144
105
110
123
113
137
107
131
115
116
129
121
106
131
131
110
117
121
146
139
138
142
123
104
106
117
131
140
130
111
115
133
100
143
124
113
102
108
130
112
121
104
143
120
134
104
136
115
107
130
126
110
132
150
104
115
135
105
119
145
104
111
103
109
111
147
100
128
104
131
149
139
143
132
130
123
130
105
133
139
148
141
109
117
120
149
117
137
115
101
121
115
116
103
115
115
145
110
100
126
144
118
120
133
139
133
105
137
140
118
128
111
145
150
147
121
140
150
129
108
101
115
134
118
108
112
150
142
141
102
106
144
126
132
113
135
150
112
136
143
148
141
132
130
148
126
132
142
117
104
129
106
115
102
138
111
133
120
142
102
129
133
144
103
108
129
107
132
118
112
122
102
104
103
115
123
108
134
148
122
118
124
105
129
145
134
107
136
103
111
123
146
145
119
145
100
145
149
133
141
113
114
125
119
150
142
132
114
143
111
135
109
120
138
135
143
116
123
150
146
109
134
142
125
137
111
137
126
113
146
139
145
127
119
133
107
110
109
107
107
111
146
107
102
104
128
124
104
102
120
109
133
147
150
138
123
134
106
134
114
130
136
106
142
122
133
102
103
109
106
109
126
113
143
121
127
148
136
135
110
129
138
114
110
139
121
102
111
140
133
131
106
127
107
115
132
106
131
135
131
122
136
147
112
105
140
125
133
114
117
104
116
146
141
131
119
113
111
150
124
150
121
129
130
125
104
104
122
125
114
137
145
139
120
145
123
120
118
133
125
117
140
140
140
124
123
129
147
133
124
114
111
105
139
136
131
149
117
137
108
140
100
134
100
128
125
116
145
113
138
139
107
135
114
144
142
108
150
148
135
145
107
115
118
134
144
124
139
106
128
107
146
110
143
115
115
112
112
120
111
117
115
138
109
115
111
144
150
131
101
107
134
112
120
147
121
123
123
114
110
142
131
131
145
137
135
140
102
125
102
113
125
120
149
110
116
137
111
132
140
124
118
149
141
122
106
106
123
149
103
116
132
116
110
121
135
134
117
144
107
103
143
110
131
119
113
105
111
139
118
126
125
144
144
150
106
143
145
104
117
146
141
116
106
149
148
108
149
115
139
133
104
108
107
116
147
137
108
107
133
101
104
145
104
147
136
135
136
103
102
105
146
129
114
102
110
135
104
106
105
106
100
132
103
150
137
114
134
127
140
105
122
148
120
131
110
124
144
126
149
111
100
108
146
107
144
134
149
139
114
107
106
147
104
115
121
135
119
128
143
142
135
103
150
144
106
136
136
120
113
101
111
133
128
129
145
121
138
150
123
124
120
103
111
146
108
140
102
126
118
113
138
129
122
141
114
147
130
131
131
122
109
113
103
107
112
146
140
100
122
119
123
131
128
140
128
147
113
120
107
103
128
126
110
148
133
119
147
105
140
123
138
114
101
133
108
139
148
144
105
145
133
108
112
141
127
122
147
148
148
147
131
143
104
140
149
118
128
116
108
150
120
125
139
117
128
115
107
108
125
137
127
103
132
135
124
109
150
140
126
142
119
125
135
111
118
145
131
127
111
134
143
137
119
141
120
113
136
147
129
113
144
122
122
144
129
121
142
115
100
113
147
144
140
133
133
140
146
121
114
103
128
106
129
144
122
137
147
103
114
107
103
118
129
118
133
125
150
129
106
106
100
100
101
143
134
122
142
136
109
138
142
101
121
118
129
105
128
114
109
127
137
148
110
139
104
118
131
137
115
118
131
103
144
112
126
140
147
140
140
116
114
108
113
139
120
108
141
125
115
147
145
119
143
101
146
122
111
107
121
142
137
121
150
130
132
141
102
121
146
145
132
110
122
145
139
129
114
104
127
139
112
130
117
148
124
138
149
107
127
144
104
106
127
147
143
125
137
124
125
142
111
140
128
137
105
140
101
126
135
100
139
148
115
108
141
136
108
125
124
110
145
139
116
131
127
146
125
110
113
123
127
125
124
125
104
119
132
122
110
119
148
134
115
148
149
138
111
103
120
130
105
114
109
125
150
134
143
121
106
107
124
108
133
148
143
102
149
102
138
125
135
127
148
133
119
139
127
116
113
106
116
145
102
121
130
139
128
145
106
147
144
139
138
109
149
114
150
134
141
108
149
119
106
146
147
139
100
126
119
111
122
144
109
123
125
133
143
119
111
103
115
141
142
134
130
125
113
138
118
134
143
143
116
126
125
130
113
148
111
147
148
105
145
122
136
138
110
125
147
110
109
128
145
110
140
131
119
143
148
115
147
123
150
144
131
117
130
146
150
128
124
144
124
121
150
135
128
124
127
102
120
133
112
127
126
134
122
149
103
102
123
135
192
173
152
146
193
191
150
183
169
189
150
176
174
162
187
166
141
155
162
156
155
157
147
198
166
157
144
185
175
197
183
148
168
200
163
144
158
183
151
163
154
182
189
188
191
178
169
155
153
181
159
163
187
171
155
174
198
152
144
162
184
167
155
184
171
181
186
168
180
193
200
181
160
153
176
166
175
145
165
165
188
194
200
161
162
161
194
194
188
178
146
151
144
169
177
176
141
197
143
142
158
179
188
164
178
187
197
152
160
159
185
152
165
196
167
195
152
142
140
160
150
199
183
152
179
161
151
198
191
171
157
178
188
188
195
178
164
169
180
161
163
185
184
185
145
167
168
169
178
198
184
198
141
161
195
144
177
153
166
194
146
167
147
164
158
172
198
198
147
151
140
161
147
178
184
158
193
192
181
200
165
197
173
191
170
192
196
175
159
150
155
177
168
155
166
184
155
149
164
168
154
198
175
155
185
162
177
177
154
158
188
196
169
140
191
142
186
149
143
166
183
190
149
157
186
175
153
188
144
144
151
182
178
157
156
149
183
189
198
170
151
166
170
183
187
174
186
185
160
199
168
172
158
190
143
176
190
197
171
196
169
157
144
155
177
200
144
180
177
144
169
165
188
163
182
152
161
198
164
180
166
145
188
184
192
147
176
157
152
159
184
169
200
186
148
172
191
175
140
147
179
172
175
140
185
152
148
172
146
186
169
200
170
199
145
190
160
197
199
162
166
176
150
182
165
176
177
184
154
166
191
192
169
145
200
193
152
181
141
186
156
179
150
164
149
150
160
170
176
171
184
171
146
142
183
190
160
170
146
156
188
173
147
167
143
172
163
160
180
161
143
149
182
160
166
171
176
141
150
140
175
177
179
158
165
161
190
167
198
145
151
183
163
181
184
191
155
172
162
154
149
154
180
173
146
169
172
181
166
168
174
199
200
192
183
144
176
192
179
148
150
158
166
171
154
186
191
166
193
168
153
195
161
180
154
177
180
200
158
147
188
199
167
149
168
174
156
146
184
179
168
193
147
180
169
179
178
142
165
151
174
185
143
144
157
180
140
180
150
175
150
154
152
179
160
196
171
187
151
180
177
151
157
160
179
187
195
146
156
183
155
177
169
168
140
144
174
175
184
176
196
147
196
163
157
159
187
141
186
175
151
157
191
160
187
176
174
183
142
150
180
177
161
174
182
199
149
182
172
151
191
193
170
170
193
196
170
143
146
197
188
174
148
198
193
188
156
188
184
151
164
162
172
193
192
155
185
146
158
182
192
155
190
190
168
181
150
176
192
168
190
179
174
186
192
177
182
189
146
160
185
161
157
168
189
194
169
145
199
169
199
190
192
150
184
150
170
183
170
149
164
162
155
176
160
173
161
164
148
172
148
190
176
185
199
157
140
167
161
165
175
198
157
155
180
164
191
174
178
189
150
170
173
174
189
175
155
148
191
166
178
153
178
185
152
142
199
199
198
184
162
146
178
171
165
199
175
140
198
173
146
156
182
185
184
175
183
178
151
194
155
197
154
172
200
185
162
166
186
184
147
182
200
166
158
165
160
158
188
178
152
179
149
185
163
155
159
192
156
172
169
178
172
161
162
172
153
177
196
193
140
179
142
175
177
171
145
165
184
161
140
192
198
164
163
147
182
155
147
177
156
196
192
144
157
178
163
184
160
148
166
183
198
196
172
165
161
200
140
162
193
182
168
144
144
148
160
177
173
158
162
168
176
170
155
192
149
162
180
181
187
168
186
142
147
180
142
184
153
162
195
157
186
140
197
169
155
158
200
196
156
195
178
168
161
200
191
174
189
158
152
141
184
147
161
150
182
165
164
162
194
178
189
144
144
197
197
186
178
168
164
158
189
161
141
193
154
164
189
146
176
175
167
189
194
194
168
150
178
188
158
170
198
170
149
160
179
187
154
193
187
160
172
167
159
200
185
180
141
185
177
163
171
167
199
145
199
169
199
151
145
174
194
189
177
191
163
178
181
168
157
163
176
196
166
199
194
196
145
169
185
156
186
143
154
171
178
154
152
161
155
142
200
140
187
168
183
193
156
177
152
172
151
150
191
144
194
148
140
182
199
165
200
143
145
193
154
180
179
153
157
197
168
177
146
176
178
189
169
169
155
143
179
145
153
169
172
191
191
158
143
180
179
152
148
141
187
187
141
170
142
188
152
147
199
170
175
192
148
178
187
159
158
154
174
141
158
157
181
183
195
181
158
169
144
154
180
172
180
199
167
168
148
156
181
168
162
162
175
199
155
198
162
197
150
179
150
146
190
155
165
147
155
191
149
194
167
150
154
160
146
164
147
152
151
186
170
157
167
170
164
148
141
178
157
192
143
140
170
152
169
190
143
146
178
174
198
200
171
199
197
197
180
158
140
199
158
176
161
156
180
159
140
179
182
164
151
174
164
152
143
185
163
193
189
164
196
150
193
180
184
140
171
174
200
154
200
146
166
156
179
191
186
198
190
150
162
198
172
167
155
192
149
200
141
182
144
146
187
173
157
164
173
159
165
158
167
156
180
178
167
188
185
156
194
181
190
159
193
191
199
184
158
147
192
168
144
153
181
172
184
166
173
167
165
192
194
193
148
160
144
186
175
150
162
166
182
173
148
173
162
147
162
158
164
167
163
177
174
141
183
150
153
165
140
159
191
144
149
199
180
144
191
183
196
187
148
149
143
197
193
171
195
168
147
168
167
189
161
159
191
146
154
192
172
159
167
163
153
169
161
182
157
182
198
168
140
165
168
171
185
200
164
165
199
140
165
180
153
162
162
170
150
185
170
146
161
151
197
148
181
171
188
190
174
150
148
162
189
169
176
179
190
160
189
147
192
188
156
156
151
194
169
141
146
145
140
180
150
181
186
175
188
155
182
150
179
187
197
167
169
195
197
152
189
172
141
151
194
191
179
145
172
140
199
164
164
179
160
165
172
144
146
195
158
176
167
175
151
189
147
193
184
200
175
184
173
184
187
166
195
193
179
195
196
154
200
182
173
184
179
156
196
177
185
176
174
163
163
169
170
177
151
175
141
145
199
165
146
151
174
189
200
177
171
151
177
181
173
168
151
186
197
154
177
176
154
187
151
177
190
179
175
184
185
185
150
152
198
196
155
199
165
172
141
193
191
156
167
175
161
184
197
165
192
187
156
192
174
192
152
191
140
165
169
172
162
174
190
173
141
175
190
169
160
172
150
145
165
198
200
167
141
155
144
173
181
175
152
178
190
186
176
141
199
176
153
191
152
141
169
191
176
163
187
141
190
160
156
172
163
192
167
159
154
168
187
167
164
198
171
143
183
195
160
181
163
177
161
149
191
177
159
178
188
190
150
172
152
144
147
153
146
175
198
156
193
191
142
157
145
148
154
162
188
153
176
155
172
143
196
179
161
163
157
159
156
153
190
148
177
147
173
173
159
141
184
151
177
151
157
144
185
142
182
147
187
192
192
184
197
198
151
142
152
180
181
155
164
188
190
188
148
174
195
150
194
177
155
189
153
199
178
146
189
193
159
166
168
181
186
187
165
147
169
145
176
163
157
178
165
178
194
197
175
174
179
143
190
162
177
144
155
188
193
172
168
177
188
161
183
185
200
144
180
156
149
192
171
198
153
157
152
195
153
150
147
174
184
181
146
197
178
176
181
194
199
176
190
173
157
141
151
155
149
172
147
156
175
192
155
176
182
156
197
158
173
191
197
151
144
151
187
188
165
177
180
183
161
198
175
164
140
143
190
196
162
189
181
156
191
190
189
162
195
170
151
189
187
184
175
140
185
141
167
194
175
194
173
179
189
183
176
160
163
184
166
166
198
146
163
186
154
161
167
192
152
146
200
160
158
193
145
156
154
157
165
195
183
149
181
177
152
170
141
156
197
165
191
164
200
170
148
167
189
143
163
144
166
192
173
196
160
196
158
159
173
176
155
140
185
182
180
198
168
158
160
165
143
187
155
173
175
159
163
170
193
199
170
163
160
151
184
188
188
152
182
177
152
181
195
166
180
154
163
159
187
157
140
190
173
153
199
159
172
185
185
144
198
142
157
180
146
170
150
200
158
145
143
153
151
180
140
173
190
190
173
170
198
158
198
176
199
142
171
180
153
158
177
171
197
140
188
149
157
194
149
181
178
141
166
156
190
192
199
157
175
172
187
173
186
175
171
174
184
194
145
151
153
187
185
191
159
182
174
191
183
148
161
157
147
192
160
140
173
142
173
200
195
188
158
186
193
198
171
194
195
142
162
190
198
142
196
190
174
142
147
180
168
165
199
157
190
197
154
149
172
142
171
194
142
165
172
193
156
168
184
161
145
192
177
166
148
151
161
153
153
147
194
186
164
194
143
167
170
178
192
158
162
192
164
176
156
184
183
154
181
146
148
149
182
198
158
144
162
172
163
193
162
180
187
187
156
148
148
158
163
142
199
145
171
179
144
179
168
195
185
153
156
158
153
178
165
190
189
168
147
152
188
197
197
175
173
169
181
181
188
178
179
190
173
153
183
147
162
195
199
182
148
164
162
172
162
172
145
194
189
186
171
155
168
171
157
200
174
151
172
144
199
152
190
142
170
154
164
187
180
197
163
152
194
145
175
162
184
140
184
152
178
173
197
174
183
144
156
152
155
160
151
148
189
143
188
178
143
154
192
178
172
156
165
152
183
191
190
142
147
156
194
174
161
166
178
157
186
147
148
166
144
149
165
145
177
157
190
168
175
149
170
174
149
180
188
170
150
200
179
150
154
152
170
150
141
180
157
195
153
142
187
146
153
172
186
146
200
180
148
140
174
158
192
166
197
166
140
177
144
157
178
200
146
149
174
186
146
152
157
200
157
194
174
149
191
171
190
172
152
142
176
142
200
156
177
183
144
163
176
183
186
177
152
148
180
196
184
155
182
153
149
171
159
159
176
195
189
165
144
158
140
162
182
172
155
190
166
188
187
142
190
190
182
187
153
160
187
150
172
141
181
181
184
196
140
198
179
189
154
184
159
170
156
156
185
168
148
190
140
195
140
177
194
158
147
158
147
140
146
181
164
161
174
160
167
181
194
166
180
194
174
147
191
194
154
175
194
171
162
178
168
180
184
149
142
171
180
169
190
198
182
145
184
197
152
153
153
176
163
172
180
199
200
158
166
152
189
162
169
141
162
169
161
160
166
148
171
190
151
150
153
171
156
176
159
157
168
149
173
174
157
141
159
180
199
180
170
161
140
186
177
177
171
194
199
178
162
185
190
191
185
142
172
141
162
144
197
145
192
197
166
158
188
141
193
140
193
194
182
164
195
169
165
157
178
161
195
142
143
160
141
195
179
176
196
183
196
156
173
190
177
160
146
165
141
167
193
150
174
189
155
188
164
190
197
140
186
163
171
156
170
164
186
186
167
166
155
148
197
149
160
148
197
200
186
141
196
153
154
166
158
160
197
194
182
191
141
186
176
155
146
170
181
155
179
183
155
165
150
181
166
178
164
160
149
158
155
171
178
195
197
164
173
149
188
197
170
179
190
152
197
152
152
155
172
178
174
181
142
150
195
178
184
148
181
189
173
174
175
156
171
174
152
182
142
147
155
175
196
189
154
183
175
140
189
197
175
156
140
197
143
163
140
186
190
190
195
181
192
185
170
172
160
159
148
168
194
191
165
168
153
161
144
145
184
199
150
186
189
175
172
185
163
155
155
197
200
185
149
143
158
148
183
183
167
146
159
180
183
159
162
164
140
162
195
174
165
191
147
194
158
198
142
163
170
154
181
171
182
142
175
192
177
194
154
154
182
151
160
149
140
184
186
193
176
153
199
177
193
179
172
166
197
162
167
170
151
164
143
180
175
182
160
199
174
162
184
158
178
190
149
163
174
143
172
146
174
196
173
194
165
157
173
181
145
181
141
182
145
160
142
182
145
155
200
145
195
200
161
193
170
171
159
146
195
147
188
140
174
177
164
141
168
187
188
180
157
197
200
155
192
189
140
146
173
191
142
199
181
172
147
188
151
180
200
172
200
160
195
151
164
142
184
183
166
186
175
182
183
184
147
153
148
179
176
162
166
153
183
155
181
176
179
141
157
185
156
168
188
193
177
185
155
191
152
170
148
155
195
193
141
155
164
183
177
176
192
152
197
153
161
181
166
164
142
196
145
190
165
149
158
174
172
193
148
154
180
179
176
179
153
145
184
178
175
179
166
161
146
191
174
155
179
142
171
199
180
195
160
177
152
190
152
152
174
173
186
170
165
154
146
165
177
185
194
200
142
157
160
175
159
147
157
150
168
153
156
173
143
193
166
191
159
148
151
173
182
192
156
164
185
142
176
178
158
141
169
163
164
178
157
198
168
177
164
140
200
163
176
169
147
155
147
150
169
146
181
189
189
160
173
196
186
164
175
149
171
145
148
140
156
182
190
169
154
160
162
161
188
199
174
156
145
170
160
182
161
144
170
189
186
157
172
198
160
152
148
193
200
156
163
197
153
196
194
180
169
180
143
170
181
182
196
198
175
172
155
170
164
161
189
172
174
188
140
178
182
196
183
184
171
178
159
147
177
161
170
193
166
198
194
146
174
193
154
199
156
180
194
143
200
171
189
172
182
180
151
153
193
173
168
163
163
177
188
149
160
173
169
183
173
147
182
186
166
154
154
147
196
197
143
191
165
174
141
176
182
160
140
199
197
168
145
194
183
180
147
152
194
144
183
168
198
196
154
148
149
159
178
142
182
174
143
170
199
194
147
151
192
181
159
162
194
181
188
143
184
152
153
168
163
146
186
183
174
174
170
192
199
154
154
192
148
175
168
159
145
189
171
158
140
173
171
157
178
170
181
191
200
176
153
146
163
155
170
193
194
167
189
200
183
154
157
153
159
154
190
163
161
197
158
151
170
150
147
191
155
190
176
152
155
155
171
183
154
198
196
195
175
189
166
168
146
165
166
183
179
160
170
199
200
177
144
151
175
195
197
185
186
196
150
150
190
198
160
198
192
179
192
141
172
143
147
190
159
150
190
166
184
176
144
167
191
170
143
174
175
140
153
173
195
178
161
172
147
152
190
197
143
173
150
171
180
152
162
146
142
146
174
147
146
157
158
174
190
166
148
182
160
160
198
169
160
158
145
148
190
188
178
191
184
174
166
186
159
143
147
194
177
163
181
156
143
200
174
167
142
189
152
191
149
193
189
143
154
188
181
177
162
168
186
153
197
173
181
199
176
158
185
178
170
182
158
199
198
164
173
180
162
195
163
167
161
143
184
159
192
174
143
155
187
183
148
155
151
179
194
165
196
177
147
150
147
181
149
186
191
163
194
194
182
173
176
159
165
159
155
186
195
183
141
142
144
179
174
154
194
145
152
165
180
156
192
159
199
187
174
191
194
198
175
151
166
150
198
191
146
196
184
141
170
142
140
177
200
149
146
179
165
147
177
171
150
155
149
195
192
185
188
188
185
189
178
174
195
140
171
157
194
171
140
154
148
148
199
183
143
146
142
165
181
150
144
187
177
170
161
175
184
177
172
166
174
163
175
193
198
167
200
158
156
167
147
141
166
164
155
183
155
173
154
197
165
169
190
142
159
189
144
161
167
200
190
141
164
181
140
163
164
140
176
154
173
159
157
156
168
142
187
197
199
159
198
158
184
177
173
161
144
198
166
190
152
154
177
192
150
173
196
179
188
146
195
196
179
199
158
176
145
168
185
178
163
178
154
147
171
183
184
160
184
147
180
145
194
186
160
150
171
200
153
192
187
163
145
198
142
194
196
161
143
200
181
197
156
179
182
180
195
175
144
189
182
199
177
161
140
141
183
156
194
174
156
188
200
156
192
181
199
191
172
179
181
153
169
183
150
171
194
181
144
149
156
161
147
191
195
143
186
146
175
140
155
188
147
190
183
182
192
187
180
199
147
175
179
143
173
195
148
157
195
151
175
170
171
191
177
168
193
150
159
179
148
189
188
148
197
192
172
142
199
150
198
169
166
189
154
189
159
141
184
140
186
158
144
176
160
168
177
142
150
177
186
156
171
177
171
169
166
154
153
178
186
187
187
161
162
150
181
159
145
161
167
146
143
147
149
184
166
150
173
184
150
191
187
182
184
170
200
167
145
172
171
198
140
182
144
177
168
163
145
151
168
196
180
183
152
150
187
142
185
191
176
159
146
180
144
154
192
163
170
147
170
168
140
192
169
141
182
145
197
164
152
188
176
158
189
141
142
153
159
157
167
144
151
179
188
160
197
183
198
149
179
170
186
167
140
153
167
143
173
164
175
158
142
167
171
161
157
159
142
188
150
199
147
155
195
148
153
185
197
152
177
154
176
184
173
167
168
169
193
170
200
154
148
147
149
182
141
178
164
164
192
175
179
173
152
176
165
177
195
188
155
190
192
146
156
186
168
161
149
150
145
181
147
166
179
143
193
159
186
182
192
184
175
147
193
148
147
160
187
199
184
145
191
162
156
179
160
181
160
192
156
187
141
183
174
191
173
181
146
174
191
151
140
166
144
147
178
149
142
196
177
176
189
178
164
171
167
158
167
185
146
182
200
178
156
154
151
149
151
185
160
165
163
191
189
167
158
180
167
181
152
164
189
188
193
193
153
149
148
198
144
142
166
155
153
174
166
169
200
178
161
168
186
178
146
150
195
193
176
184
165
169
192
179
196
142
170
199
163
173
160
195
160
180
163
189
188
155
165
146
163
182
175
197
194
200
171
146
184
166
194
161
160
197
191
191
153
146
140
144
175
200
187
156
195
184
197
151
189
152
141
168
158
157
184
189
170
177
149
155
145
146
145
188
186
178
183
145
170
146
199
199
184
185
150
173
167
190
190
177
178
188
158
179
185
156
198
193
174
140
174
160
146
185
198
181
146
180
165
193
170
163
189
187
158
187
153
188
172
151
186
165
155
188
170
198
168
189
191
166
193
159
200
142
189
141
184
148
191
197
185
179
189
164
182
146
178
179
167
188
195
169
160
182
180
183
171
192
173
150
171
144
175
185
164
195
193
160
197
188
172
189
155
187
190
153
165
145
184
167
152
187
140
159
151
141
198
146
150
178
164
199
170
170
162
172
184
142
196
142
185
182
153
198
188
146
198
158
198
181
156
176
192
160
163
147
142
140
141
155
185
178
145
200
154
183
172
155
169
177
150
174
195
157
181
178
179
195
188
183
183
165
194
173
187
186
186
145
164
180
173
200
167
142
152
189
152
144
183
154
195
150
174
195
143
161
177
197
157
189
189
180
169
141
188
145
144
180
164
156
192
145
192
200
157
152
181
176
150
148
180
178
150
185
153
148
173
176
144
176
192
189
184
172
155
166
177
185
155
181
146
184
189
180
151
146
177
169
147
179
174
141
176
192
154
191
165
199
187
180
189
189
195
160
171
149
171
191
181
143
199
146
150
198
168
175
157
144
157
189
181
177
155
166
156
176
187
149
188
180
192
179
189
171
147
153
157
172
180
152
159
156
197
141
166
152
180
141
191
165
160
182
196
199
165
173
147
165
183
159
154
190
200
188
172
181
166
158
168
200
177
182
186
161
182
171
197
159
188
171
165
185
160
189
142
148
180
179
197
191
194
149
145
169
147
153
175
155
184
154
199
177
179
160
146
187
146
187
190
156
172
198
175
141
163
158
193
170
165
149
171
180
160
195
164
162
149
149
156
189
159
151
193
149
181
146
176
182
188
170
192
152
193
195
152
170
174
167
175
160
170
172
190
162
170
171
161
147
180
184
143
143
193
145
188
158
159
140
167
173
169
193
143
151
182
176
178
165
149
197
142
180
199
141
168
160
161
155
156
186
196
150
155
146
188
154
190
155
184
154
166
160
141
184
151
182
175
197
189
176
162
196
181
142
148
193
149
152
156
172
183
160
189
167
176
155
187
181
169
190
148
140
165
157
173
197
149
179
182
172
192
171
173
164
157
140
190
153
192
151
192
168
177
170
172
152
150
142
153
145
184
184
142
194
175
143
194
162
157
191
158
176
146
164
164
153
155
173
199
196
148
167
174
144
186
170
176
163
190
167
185
153
163
171
159
144
162
168
191
190
176
167
182
183
188
194
156
191
177
175
151
193
159
160
146
177
151
146
173
152
149
160
150
191
167
179
189
149
166
181
151
180
195
198
179
191
147
181
165
156
172
147
188
142
186
196
193
165
162
178
189
168
155
158
144
173
182
199
188
180
143
146
160
163
194
174
153
190
145
179
184
143
200
159
145
160
179
154
148
184
150
160
164
172
180
182
197
175
178
195
155
166
190
157
168
195
140
170
159
157
181
199
149
172
154
178
172
197
180
177
194
164
153
183
179
165
199
189
143
199
151
167
176
162
163
142
182
191
170
182
159
147
175
193
171
174
198
171
176
175
166
147
198
154
174
200
143
188
147
167
176
168
141
147
164
151
197
168
192
152
146
170
176
157
178
146
152
156
147
162
169
161
188
200
179
159
191
190
187
197
150
191
145
182
172
196
183
180
171
188
175
180
181
164
154
143
177
162
152
192
159
140
157
154
185
193
160
143
183
140
170
174
158
172
166
159
183
189
149
190
197
181
168
176
143
144
162
185
181
155
199
156
149
163
153
161
163
166
192
144
198
166
195
178
190
184
174
163
147
176
177
162
180
194
145
141
162
174
192
196
158
146
184
168
181
190
153
199
167
170
193
200
187
148
173
151
168
195
198
178
158
148
198
169
174
178
198
173
174
155
177
142
178
179
166
200
154
171
186
200
177
186
140
196
170
168
142
144
159
178
147
186
152
199
146
168
149
165
196
177
189
176
151
167
185
147
160
167
154
164
181
170
197
197
188
192
141
159
149
171
198
174
167
150
169
157
145
141
194
159
147
157
189
152
153
194
200
176
150
153
156
176
172
174
175
169
174
191
147
181
193
190
194
199
150
153
185
159
185
160
150
183
195
143
186
197
186
176
153
182
195
148
158
144
197
146
179
184
147
197
183
150
160
192
171
145
141
144
197
146
151
180
144
181
175
157
192
154
183
168
161
151
144
160
197
175
165
156
191
171
156
147
144
182
140
176
176
152
171
153
189
180
189
187
197
188
141
183
196
158
153
144
176
165
193
191
146
160
141
171
179
178
158
194
198
163
169
171
173
173
197
159
194
166
166
140
187
170
145
165
178
198
141
198
148
160
170
193
179
181
187
171
175
153
149
183
180
165
179
141
178
192
188
142
146
160
179
150
163
196
143
145
148
197
185
151
160
167
175
170
151
168
181
168
200
156
175
163
187
156
157
188
178
200
196
193
150
195
156
188
154
149
172
176
143
147
147
188
181
162
187
195
157
168
175
173
199
147
198
141
159
197
165
199
143
175
142
152
169
144
172
174
160
155
179
187
194
142
171
150
199
162
154
162
168
177
192
179
179
199
165
143
148
149
192
172
186
169
161
154
186
148
176
193
174
166
195
192
198
151
192
161
155
158
172
174
173
147
160
192
173
154
146
141
196
144
160
160
164
200
145
153
168
161
157
184
151
150
191
186
172
145
150
156
150
180
151
189
159
170
189
142
180
153
140
199
176
191
140
156
195
177
167
171
185
177
158
183
184
157
173
147
169
186
173
140
141
151
144
159
152
168
155
175
164
171
148
146
197
158
177
160
158
189
151
196
193
177
143
150
144
147
152
160
178
144
170
200
146
160
194
185
194
176
181
148
142
173
186
182
188
140
144
176
145
161
189
196
193
185
174
183
198
183
149
147
193
159
195
198
197
167
188
175
175
149
143
142
167
147
173
162
182
150
165
153
146
182
169
151
153
177
183
174
177
191
159
164
164
200
169
146
175
174
155
183
145
175
167
155
144
198
171
184
190
190
156
156
145
180
159
195
179
191
168
179
186
165
186
155
185
185
172
145
141
161
179
142
147
189
165
154
141
152
173
154
165
155
198
177
171
163
168
164
155
171
188
162
198
159
195
169
196
144
156
199
169
162
171
149
191
185
172
166
141
197
160
170
182
154
184
182
167
170
179
182
182
163
149
193
152
193
196
165
144
189
192
140
200
158
159
151
167
154
169
156
187
191
177
188
190
184
199
159
150
178
176
151
177
164
197
161
182
189
166
198
172
146
158
175
182
198
186
167
149
165
189
145
172
182
179
141
196
172
165
148
153
147
168
162
200
175
169
183
141
183
184
197
162
200
179
195
173
147
191
175
144
164
167
189
157
197
155
180
191
150
142
174
156
141
182
184
146
157
192
160
184
196
147
141
151
182
198
190
182
187
174
158
161
153
149
194
172
157
195
180
189
185
173
140
141
158
178
170
151
191
155
193
196
141
197
174
175
181
145
159
150
175
189
177
174
183
151
175
152
157
182
197
153
145
140
186
153
159
173
178
176
179
172
176
158
188
174
146
182
197
194
165
171
182
172
185
152
184
166
155
154
196
192
188
146
144
161
143
180
179
169
197
190
170
190
183
171
178
141
141
172
157
199
160
160
180
192
171
153
144
170
195
186
154
175
155
172
192
147
191
157
140
160
146
144
166
168
187
191
186
186
176
156
149
186
165
153
193
155
169
199
172
152
152
158
197
153
190
152
166
177
190
153
182
149
188
179
199
156
175
192
163
148
155
175
151
146
149
152
192
200
155
147
152
147
140
183
200
185
190
173
154
185
141
140
186
156
198
179
172
187
143
193
196
183
162
178
195
164
142
194
155
168
197
189
190
173
141
194
152
189
174
199
194
152
186
184
157
185
149
190
178
141
158
155
170
162
142
148
194
159
162
196
180
140
173
195
168
182
182
146
200
183
159
149
150
157
145
150
199
193
189
180
194
158
144
151
190
169
175
167
183
177
145
149
155
151
178
173
187
189
149
175
198
160
160
191
198
189
183
155
183
182
187
165
144
153
155
188
190
181
141
157
150
190
170
162
195
193
182
185
164
192
176
150
168
182
147
200
166
200
150
147
144
187
192
175
197
140
165
162
177
188
147
180
189
156
191
154
160
192
144
152
200
163
175
178
166
175
165
171
161
168
192
175
142
194
155
159
195
146
140
148
147
142
169
164
145
171
151
160
141
146
177
155
166
164
191
197
191
195
197
154
169
193
200
169
154
140
160
152
183
188
153
146
140
141
161
196
155
154
172
156
177
168
161
195
178
178
194
192
177
200
144
160
147
144
168
150
148
147
162
193
192
160
167
152
164
171
158
183
198
195
193
166
167
147
180
160
167
142
162
154
143
180
154
152
193
168
184
189
186
174
152
163
151
140
183
194
180
199
178
184
159
165
150
167
167
184
196
149
151
169
188
192
182
145
145
189
163
154
181
140
159
144
157
193
187
182
161
190
155
153
185
190
181
185
143
145
149
187
189
147
173
183
171
163
142
185
188
152
159
187
156
154
173
140
169
166
171
161
196
144
179
178
147
198
193
175
199
171
149
143
146
194
175
162
196
191
146
196
184
193
172
177
157
172
141
195
148
146
182
150
161
159
140
172
167
166
174
196
182
168
181
166
154
196
174
169
168
145
151
160
153
144
147
141
196
197
178
192
150
192
162
157
146
180
148
142
150
200
179
177
157
178
167
145
144
184
182
199
170
197
182
164
150
186
196
186
171
158
175
151
143
158
183
174
189
164
156
146
153
189
177
197
176
184
189
183
178
198
189
179
181
150
186
170
163
144
200
180
192
198
175
146
162
177
143
193
179
167
197
150
154
164
171
146
145
143
154
151
151
199
181
200
148
145
199
140
182
197
149
164
187
154
145
171
182
185
153
196
175
180
193
197
199
170
171
192
142
179
184
178
190
166
177
182
158
163
152
150
199
165
185
141
179
176
145
194
155
187
145
157
152
184
194
178
148
190
141
189
178
197
144
160
200
142
170
199
165
151
155
197
199
147
178
171
175
143
196
161
156
157
186
188
198
160
179
166
165
184
177
197
191
197
173
149
198
162
144
167
192
155
186
171
140
156
142
164
192
158
167
183
165
143
199
185
185
167
180
177
141
185
164
145
152
199
192
173
179
152
140
142
194
199
186
188
154
150
191
162
144
168
178
183
161
189
143
191
169
200
150
175
159
151
153
161
199
199
164
156
156
173
178
143
168
196
181
192
152
141
193
177
171
141
195
159
169
160
200
192
191
193
142
177
193
169
157
165
183
159
167
173
199
150
191
187
162
164
199
194
182
147
150
178
147
189
171
144
176
162
145
146
175
152
174
186
195
169
172
196
141
146
149
192
146
155
186
140
169
187
196
160
189
171
183
158
180
142
163
187
176
148
143
171
170
191
181
158
144
187
178
193
157
147
156
173
181
195
157
195
147
163
173
187
173
147
196
180
187
155
182
195
171
173
152
169
195
151
168
152
153
191
186
197
166
157
170
179
190
166
170
151
190
173
155
175
177
156
183
150
198
165
179
165
154
152
158
167
166
161
169
159
142
200
169
178
150
171
191
181
169
142
142
157
152
144
187
172
171
162
149
156
164
150
162
179
177
180
185
152
177
173
169
181
171
170
146
184
199
161
168
192
191
161
154
141
183
187
197
157
198
173
189
170
141
188
149
141
165
198
141
197
143
188
166
152
142
168
192
163
145
200
174
191
165
181
160
160
162
179
168
170
186
147
188
150
149
171
199
159
178
150
177
144
177
195
165
192
176
176
148
169
156
190
179
161
161
180
157
155
184
196
197
152
188
195
149
163
157
186
152
173
174
149
160
168
185
182
183
200
170
196
165
187
144
178
143
144
193
199
182
155
189
186
165
167
171
178
163
185
197
159
179
163
141
183
194
144
153
179
179
149
156
167
169
141
141
148
185
162
174
152
175
164
181
198
177
169
174
140
140
149
147
186
185
164
190
157
141
165
183
185
182
156
196
187
179
147
142
162
148
171
140
197
192
165
188
153
160
151
140
148
160
174
144
188
149
166
150
181
198
179
144
171
156
143
176
164
153
165
172
159
181
170
159
199
145
159
191
162
189
185
166
149
160
186
186
171
170
155
200
148
150
178
157
177
145
194
162
159
151
174
176
149
144
176
182
186
177
175
163
159
152
196
197
180
175
200
157
142
166
144
180
152
175
155
197
163
182
196
171
147
185
187
144
153
156
163
159
195
196
176
169
182
180
165
195
153
171
195
171
186
192
157
176
157
149
153
190
143
194
188
145
162
150
190
171
158
165
157
194
196
189
152
160
176
151
190
172
161
183
189
153
141
174
163
188
183
195
177
178
191
169
158
190
175
199
142
159
168
155
198
188
140
163
167
161
180
175
180
157
148
149
187
175
178
198
189
192
187
149
149
141
181
173
188
150
157
181
167
168
177
170
144
181
161
143
183
166
160
155
155
143
141
193
192
166
164
154
145
174
197
161
157
183
141
152
184
140
149
164
173
179
165
198
193
185
198
152
193
149
179
150
141
157
198
180
143
162
184
172
189
140
162
147
196
191
142
192
175
155
177
192
170
183
189
154
146
177
168
195
193
179
146
190
170
185
161
186
169
141
164
184
199
161
166
190
196
173
142
148
150
152
184
151
196
190
147
164
189
176
158
179
166
141
192
148
149
159
143
196
165
147
152
144
162
144
165
165
153
184
157
151
154
192
142
163
192
187
173
160
168
185
178
170
196
175
154
164
196
164
191
166
162
174
179
168
194
198
174
177
192
196
199
153
180
196
193
148
181
143
165
192
142
162
144
179
178
197
181
151
156
155
163
157
196
163
191
179
153
155
140
182
177
172
172
157
168
172
151
183
194
197
189
169
150
141
191
170
143
161
177
163
188
156
180
173
196
186
151
196
158
141
148
166
160
146
156
184
188
148
183
200
144
178
188
145
173
162
198
198
178
154
142
144
159
182
182
191
157
184
159
141
157
172
191
170
149
192
159
181
194
194
171
174
181
149
146
163
161
151
162
145
171
142
196
174
153
182
181
199
144
159
140
148
154
164
158
162
152
169
184
198
167
196
153
153
183
155
174
190
182
164
195
158
180
146
177
158
149
180
181
174
153
140
146
169
148
156
170
160
153
193
197
161
165
182
145
144
185
164
187
186
164
160
170
189
147
192
172
196
147
198
173
143
178
179
165
184
193
158
154
149
196
175
187
168
145
176
149
165
164
169
177
193
166
172
165
170
179
143
152
157
183
194
161
177
196
144
192
145
173
189
146
199
193
183
145
145
178
151
165
154
161
183
145
186
145
178
197
161
156
165
182
156
152
199
161
157
157
185
166
159
171
190
196
185
164
187
172
153
186
159
163
146
185
147
183
195
181
146
199
180
174
155
145
145
158
177
142
163
156
156
158
160
196
196
187
185
195
154
198
156
200
197
155
147
147
167
179
185
182
144
194
177
176
181
168
199
193
145
140
179
181
195
198
177
144
146
199
192
147
162
160
141
149
151
173
143
197
177
150
159
190
172
165
154
163
154
146
170
175
184
189
197
157
140
167
165
199
173
160
191
146
168
142
149
155
162
183
164
161
159
174
180
154
146
149
169
187
181
200
167
155
181
184
199
172
169
168
186
144
180
167
167
185
142
161
196
178
197
183
144
174
164
144
142
199
170
165
150
143
150
161
191
145
180
167
198
162
146
182
141
197
144
166
168
156
161
154
186
178
157
176
167
183
179
184
195
163
158
159
190
160
156
148
144
196
152
169
177
192
185
143
168
154
187
163
159
158
145
162
148
165
142
194
165
151
176
149
175
167
180
185
155
177
167
200
198
143
167
194
151
193
179
143
166
170
155
172
153
177
152
176
141
164
178
187
189
165
165
194
185
190
152
198
155
174
176
147
181
152
180
171
187
190
179
144
165
168
183
198
170
194
140
171
190
176
160
172
175
150
192
197
178
148
187
191
196
152
143
144
141
142
185
159
165
149
150
199
168
195
168
146
158
184
167
167
186
192
156
175
173
147
181
155
142
154
179
184
145
199
152
143
162
185
170
179
193
147
170
158
153
154
153
194
191
191
172
184
198
148
147
168
181
164
169
168
146
186
162
142
178
141
146
164
185
177
186
164
195
150
175
194
171
184
174
165
192
188
143
145
109
129
119
147
119
117
115
106
124
121
132
105
124
141
140
136
113
128
127
109
123
150
140
114
110
137
101
124
114
144
128
106
102
101
110
110
101
129
148
144
118
119
112
101
105
119
131
133
123
106
120
107
108
121
135
139
104
150
100
148
108
131
142
149
117
129
111
118
101
144
119
132
113
105
134
150
130
118
144
127
140
103
132
132
142
115
104
150
141
113
145
115
124
142
143
114
126
132
119
120
122
117
142
139
100
135
107
108
117
118
129
124
106
124
139
114
133
118
120
117
114
149
115
125
109
125
149
104
116
130
111
126
140
102
135
129
103
124
130
118
111
132
149
126
133
124
113
116
142
119
137
105
143
131
118
121
138
135
147
131
133
116
150
136
130
133
127
149
142
147
122
104
133
116
127
132
103
132
104
110
126
150
119
143
103
143
150
118
149
100
122
115
145
146
121
121
105
139
119
125
135
106
121
145
124
112
127
131
116
129
146
149
146
147
123
130
122
103
114
143
103
111
141
111
131
107
125
143
149
109
109
137
109
138
135
118
110
141
150
126
106
109
148
121
107
131
133
103
141
143
145
118
126
113
121
103
115
130
118
141
112
126
122
102
108
124
109
122
109
133
143
128
138
102
125
101
118
123
127
102
148
134
108
133
143
117
108
142
118
103
137
123
137
147
109
101
142
103
111
108
107
144
132
119
127
103
139
128
147
112
127
141
139
140
115
111
146
122
110
132
141
110
127
134
104
104
104
148
150
124
128
146
140
142
106
149
123
135
114
148
149
117
123
116
120
141
122
134
106
150
112
119
131
130
114
110
142
125
123
145
102
112
110
102
102
113
150
144
134
143
133
121
128
105
133
141
140
133
137
120
128
126
134
118
132
131
101
139
114
101
131
135
134
139
116
126
144
119
112
150
110
110
114
100
108
121
115
130
106
105
104
100
128
136
107
109
122
123
113
145
103
104
126
120
147
124
141
121
123
112
143
116
106
112
102
103
135
125
107
138
148
133
111
132
117
105
103
123
107
128
132
119
140
132
101
146
115
109
121
120
113
130
111
132
115
147
124
115
145
142
106
118
121
106
120
100
139
140
124
120
123
119
145
141
114
129
101
113
143
133
132
105
128
104
150
109
137
107
139
141
122
150
142
116
113
149
147
120
126
102
144
116
123
114
113
137
119
125
131
109
138
132
104
130
137
144
130
113
147
113
145
129
104
145
108
113
105
112
131
145
142
130
122
120
105
126
130
127
117
107
130
106
145
101
105
100
130
130
128
122
143
144
121
127
138
100
134
110
111
103
108
139
132
141
136
111
133
107
117
145
116
143
118
109
124
141
129
120
127
118
134
102
117
105
133
107
107
105
147
137
137
149
128
130
131
123
133
145
134
103
142
109
125
132
105
117
126
141
105
145
107
119
121
114
136
122
112
117
112
143
144
133
144
138
108
108
110
150
128
139
144
133
121
145
133
144
113
116
101
147
109
137
134
114
109
112
144
134
137
107
140
145
104
135
128
124
128
133
109
114
127
109
142
142
147
141
102
149
111
130
122
128
108
146
118
105
114
119
120
106
107
135
138
122
142
142
144
109
102
141
139
122
115
120
116
141
118
101
106
112
104
127
109
130
108
104
114
114
137
100
116
128
141
112
138
113
122
122
146
119
134
107
117
132
120
125
141
135
129
148
130
112
123
141
117
130
141
129
101
125
145
111
144
102
149
141
148
134
105
136
148
134
109
142
150
121
140
130
135
144
131
131
114
111
135
113
102
119
122
107
134
123
114
116
116
117
141
128
143
144
150
124
122
119
126
125
113
104
101
121
111
142
127
145
145
142
101
108
131
130
129
148
121
147
116
108
117
135
133
128
107
144
135
102
108
100
119
105
143
127
133
105
147
148
115
128
103
148
114
146
124
144
120
105
143
148
140
102
122
122
119
131
123
143
106
109
113
115
135
131
117
108
103
128
103
100
118
113
141
114
104
131
116
112
127
101
113
129
149
126
100
103
141
101
131
145
106
101
132
118
108
119
124
111
147
123
143
102
107
145
110
114
146
105
100
124
138
123
143
115
121
107
115
118
112
100
141
110
100
102
143
128
142
119
123
116
142
111
138
127
114
136
125
114
140
114
106
132
103
129
115
113
103
115
104
142
131
140
137
117
100
105
132
102
130
119
110
115
120
141
106
140
138
101
127
140
143
124
124
113
130
126
133
114
100
147
142
123
125
134
139
118
149
148
129
116
140
134
137
136
147
114
140
111
137
107
127
105
146
108
129
105
130
139
120
122
145
134
120
132
129
107
124
145
148
116
145
131
140
144
102
113
115
144
110
120
121
133
107
145
101
102
133
127
100
105
103
147
127
106
141
115
131
117
139
138
108
104
139
144
100
147
121
143
144
108
135
140
125
111
120
144
102
136
134
121
111
117
126
115
129
120
131
108
140
133
115
141
116
117
101
111
129
145
150
129
117
145
128
104
131
107
125
105
129
144
111
120
122
108
148
109
135
141
139
135
128
144
125
136
136
132
101
120
118
128
125
110
145
119
113
118
149
119
144
119
126
146
102
145
136
117
124
117
106
148
129
131
120
106
123
126
116
106
132
109
107
150
144
112
143
119
142
133
150
113
110
126
126
101
129
104
127
139
147
106
136
110
137
146
125
103
122
114
129
146
150
111
138
111
110
129
115
117
118
134
101
121
107
100
118
101
137
111
135
109
109
143
145
142
142
102
128
145
105
139
108
135
125
150
129
145
113
119
149
118
116
119
134
111
101
127
125
110
126
114
108
102
115
122
113
121
127
141
135
118
120
142
126
110
122
110
116
124
125
144
132
133
123
120
129
146
109
138
144
100
149
123
130
132
109
137
114
119
135
150
136
128
142
104
141
124
113
131
108
116
107
145
123
137
146
135
149
140
146
142
117
143
124
107
105
114
124
143
144
121
107
148
121
136
114
106
108
113
143
141
139
142
140
122
110
104
101
103
107
129
147
100
149
120
146
129
125
148
128
136
132
145
149
110
140
101
128
133
118
121
101
111
134
126
127
146
139
147
113
117
123
126
128
116
124
119
141
124
141
137
135
141
132
107
141
143
133
130
113
133
111
117
132
141
137
127
105
115
146
135
123
130
133
140
142
113
148
127
128
130
141
116
143
121
107
101
116
150
137
127
139
147
130
101
141
119
102
141
149
140
128
148
101
145
123
125
116
136
111
115
135
121
116
148
135
138
123
129
131
122
138
133
150
102
118
123
105
147
120
103
108
150
112
126
133
127
120
141
126
133
102
134
113
126
123
134
105
116
143
119
138
130
146
119
111
120
132
137
137
121
112
112
144
132
147
110
114
100
113
130
109
146
150
102
118
146
140
113
106
125
119
137
145
150
116
125
120
105
102
132
143
124
108
103
137
146
135
150
136
115
122
150
126
148
125
125
148
135
113
140
105
104
148
101
113
146
120
109
121
144
107
136
145
114
140
130
107
130
117
149
125
143
100
109
134
110
114
118
138
132
106
123
128
111
134
145
126
145
110
103
109
119
115
122
117
108
122
100
123
119
125
115
139
131
114
115
102
136
117
149
135
147
114
101
105
111
102
116
121
106
111
120
123
150
142
147
109
146
145
108
147
109
150
141
135
101
102
141
128
124
138
146
139
108
141
125
105
108
120
119
104
116
130
130
141
105
112
103
142
149
131
101
123
121
144
104
123
131
110
140
102
137
137
128
122
108
104
125
145
137
104
140
120
125
140
118
147
139
120
142
149
132
106
124
100
116
126
143
109
135
130
105
138
104
141
142
121
112
137
117
109
144
134
104
148
133
114
140
144
122
127
125
131
111
106
114
124
143
150
107
119
149
100
141
118
144
148
146
108
113
118
134
111
150
125
103
118
122
124
100
120
147
109
127
110
141
121
122
133
148
130
124
125
119
147
108
134
120
101
137
135
132
141
126
118
101
130
145
103
103
147
133
111
133
141
143
149
113
130
122
130
149
124
112
121
112
136
112
117
105
101
109
145
102
138
115
105
136
115
132
104
125
108
109
105
129
149
139
111
128
147
136
113
106
123
144
117
139
105
115
137
119
123
146
122
109
104
112
120
102
111
104
122
105
135
113
131
107
111
143
147
136
133
123
139
115
103
130
103
114
126
126
141
141
122
108
105
140
118
111
128
122
150
146
133
107
112
130
109
114
145
120
112
104
139
108
133
128
109
142
115
113
130
131
107
116
137
103
132
121
124
130
116
112
109
118
131
148
135
116
108
115
111
121
145
143
146
111
112
103
144
100
139
113
110
126
126
149
130
111
126
121
142
150
130
141
119
143
117
103
116
144
100
109
146
129
118
135
135
125
143
126
122
133
149
101
135
103
104
141
116
118
118
140
139
147
113
146
149
132
120
120
144
143
130
121
143
142
127
113
100
127
138
136
146
127
104
121
148
146
135
111
133
109
111
119
103
101
138
121
117
138
133
132
146
141
143
134
123
123
136
145
124
117
125
123
132
142
127
139
116
106
110
105
135
142
144
102
104
148
112
100
116
137
102
141
137
116
104
109
133
106
118
148
113
132
143
132
124
146
118
116
117
114
147
116
139
105
110
101
103
126
117
135
143
100
141
101
128
132
146
135
115
107
120
128
149
114
106
110
115
144
130
132
140
139
133
120
117
110
119
142
102
106
136
144
133
122
142
141
120
111
107
140
120
150
111
101
101
139
138
141
149
122
126
139
128
135
143
117
115
141
115
138
146
133
105
126
118
112
103
117
131
126
105
141
140
110
139
120
107
133
108
143
128
102
145
134
142
145
139
122
142
102
113
109
103
111
110
130
114
150
147
101
136
147
143
123
132
120
134
142
106
131
144
124
149
131
129
122
105
105
141
130
107
149
144
108
115
125
146
149
137
145
125
103
135
130
124
111
103
115
104
113
119
111
122
139
110
116
104
146
129
117
117
149
119
141
108
147
137
120
103
131
134
141
112
124
147
145
117
122
131
140
135
138
117
127
102
147
120
121
132
123
137
107
115
147
112
117
103
116
119
139
129
150
141
122
102
148
111
134
136
100
100
123
133
123
118
120
130
111
124
141
103
134
143
115
104
112
117
142
125
124
145
145
142
139
138
115
102
133
131
144
145
148
137
144
144
103
135
136
113
143
121
101
134
140
118
143
117
117
138
136
139
143
148
128
109
130
133
142
131
104
100
105
140
125
132
125
133
139
100
101
134
100
116
103
103
146
146
126
131
130
121
102
135
116
136
101
109
135
150
115
149
106
133
145
132
101
106
133
117
105
111
139
103
104
128
123
114
105
143
103
113
112
108
140
126
118
125
147
144
137
113
147
112
135
111
110
138
110
100
100
128
123
134
146
119
146
124
112
107
110
150
144
111
139
122
135
126
138
102
103
136
148
148
132
104
140
139
108
140
129
117
150
133
139
120
150
131
125
129
148
133
122
109
103
135
106
142
118
141
109
118
138
139
105
132
134
149
120
132
138
126
120
132
150
135
107
143
144
119
108
125
107
107
119
114
120
104
136
142
146
102
127
115
150
150
121
107
143
148
143
116
116
142
150
112
137
130
150
135
116
142
102
120
123
132
110
142
131
138
134
140
124
112
113
114
105
103
146
113
146
146
109
139
118
102
145
114
107
120
150
102
122
114
129
150
127
144
110
136
129
111
106
129
103
140
143
124
150
130
102
118
122
127
138
133
104
115
121
142
109
134
120
114
143
135
101
129
111
149
132
144
118
132
131
100
121
148
100
145
146
137
120
140
105
111
126
127
107
118
145
103
140
121
119
115
140
114
135
150
105
115
143
112
135
129
102
101
134
115
139
142
110
128
150
131
119
129
146
129
135
115
138
102
121
139
110
118
146
131
114
124
148
104
110
102
136
133
133
103
130
109
121
106
101
136
118
124
123
148
102
127
136
117
117
128
145
110
137
141
126
115
137
120
148
128
140
115
138
131
133
128
125
133
145
104
142
123
107
147
136
129
147
123
148
150
107
138
126
118
125
126
123
127
106
129
142
125
128
124
143
104
102
150
111
146
113
141
130
102
145
124
128
113
147
150
140
109
132
130
129
104
130
131
125
146
127
108
138
112
101
146
109
112
133
135
129
140
129
149
129
137
124
121
104
128
150
150
141
121
102
135
129
120
117
120
121
125
124
119
137
100
146
110
123
117
110
142
100
104
145
145
125
115
135
125
129
127
116
139
147
142
118
103
131
119
105
104
143
112
112
143
104
116
133
142
100
103
133
118
138
107
145
104
107
150
120
115
137
139
148
126
132
137
132
100
114
114
148
141
134
127
147
150
130
139
105
130
124
110
111
112
126
130
135
136
146
140
125
125
132
149
119
102
134
133
124
107
106
137
117
116
123
107
119
109
112
107
124
121
134
106
124
148
119
147
130
112
115
130
115
117
117
109
121
126
132
112
133
131
107
101
121
128
142
149
105
108
121
134
112
148
125
134
126
134
111
138
135
108
121
147
112
123
118
108
131
107
136
138
125
108
136
128
105
141
137
117
143
144
146
125
112
102
104
145
112
137
100
143
138
103
136
138
132
125
106
124
102
138
117
145
148
106
110
148
138
144
119
125
129
135
141
140
105
121
120
124
134
139
102
122
134
128
122
131
133
145
149
106
129
121
119
112
146
109
101
104
145
109
100
143
147
139
136
126
123
139
109
111
117
106
102
108
150
126
138
137
139
133
101
111
149
147
138
103
132
104
137
103
114
125
108
146
145
117
138
123
147
110
145
108
118
146
108
144
103
148
102
143
107
140
105
136
123
114
138
148
150
131
133
124
102
104
122
117
137
130
100
121
126
121
138
108
120
123
124
109
119
145
125
139
140
129
127
135
138
106
130
141
142
148
102
130
143
144
120
139
112
113
144
122
107
136
122
141
122
112
140
130
144
100
132
120
114
126
130
110
101
150
134
118
131
148
118
115
122
134
103
144
106
115
120
103
106
123
104
104
147
145
145
106
100
146
145
105
106
115
132
112
106
111
110
147
108
132
147
129
136
145
115
143
115
115
126
140
117
132
129
124
107
125
112
144
112
146
100
104
140
119
101
128
125
137
125
126
138
110
111
113
117
138
129
125
148
125
107
109
138
150
111
116
102
126
150
138
124
105
122
127
100
120
115
142
136
103
128
122
137
113
112
131
114
147
120
136
132
106
117
114
115
136
124
129
116
138
100
148
133
150
111
140
118
142
120
135
138
112
117
143
127
124
112
120
120
122
134
109
103
105
144
125
116
139
142
146
143
150
112
128
143
109
107
138
124
106
116
141
119
108
145
141
112
127
134
135
143
139
120
118
135
141
147
123
135
108
134
102
148
102
126
137
137
146
103
148
120
142
142
131
141
113
131
112
123
101
105
110
111
136
126
137
123
129
144
135
143
121
128
132
124
144
137
134
143
101
148
107
103
117
126
129
145
100
148
119
142
130
102
114
127
124
138
121
101
113
137
117
120
130
114
133
110
148
123
139
111
104
103
114
124
106
123
146
128
112
101
107
115
103
129
124
109
136
112
121
125
134
102
117
120
115
143
101
107
150
126
134
149
142
119
144
147
101
109
102
147
108
122
133
125
111
110
118
117
101
140
111
107
145
128
141
120
116
122
136
102
137
116
114
128
126
107
132
124
105
145
148
135
129
120
118
125
134
101
135
130
100
113
109
136
126
142
109
125
119
149
149
122
102
113
145
130
100
111
119
148
146
111
135
121
112
148
126
129
145
134
134
140
142
149
109
140
147
129
124
117
122
120
133
135
142
150
110
124
126
101
118
112
106
123
144
116
102
138
143
116
113
129
107
122
113
105
125
121
111
122
113
142
121
102
104
112
117
120
145
137
123
104
116
100
112
114
138
123
112
133
119
121
139
146
133
133
115
143
127
131
118
131
114
138
142
131
132
145
114
147
130
150
117
103
144
145
137
117
120
114
149
104
148
127
116
145
150
136
134
143
140
131
100
110
117
124
128
142
133
131
123
142
101
148
105
134
138
145
103
128
146
139
120
103
101
107
106
149
119
106
100
102
105
115
120
100
136
115
107
131
115
130
118
108
149
109
129
121
147
142
113
101
104
114
110
106
114
139
133
102
138
142
120
111
132
125
105
139
147
109
111
103
132
103
114
124
112
141
133
102
139
137
122
141
117
149
129
119
130
106
117
108
110
146
127
121
136
120
136
127
129
111
122
118
129
105
116
133
115
120
130
131
119
142
106
113
123
127
129
116
108
150
109
125
128
122
113
113
144
127
115
148
145
149
127
149
139
108
101
115
137
102
116
141
129
140
142
117
108
106
150
127
127
150
133
125
149
144
116
118
136
107
105
126
126
149
147
115
134
146
112
150
112
118
105
146
104
106
118
139
146
136
134
120
125
128
104
144
116
117
120
139
100
134
118
129
115
135
148
114
128
100
119
122
132
115
107
125
137
129
127
139
132
148
141
143
127
108
105
147
148
148
143
134
106
107
105
130
126
138
147
104
114
104
128
103
118
124
123
113
126
144
104
143
107
142
127
103
136
101
121
128
144
133
112
112
134
115
149
124
132
140
116
103
127
109
145
126
147
129
110
104
130
117
150
141
149
127
135
111
106
118
117
135
138
144
136
104
149
123
143
126
109
122
140
141
135
145
130
124
100
146
121
141
125
100
117
122
117
116
138
114
125
147
142
114
139
124
122
142
137
130
122
142
150
109
122
130
117
146
114
130
138
132
129
106
109
126
141
107
135
110
129
131
112
140
113
115
149
144
101
150
107
120
141
106
149
147
105
121
137
122
122
101
147
125
106
134
120
147
110
149
114
115
110
142
125
111
127
122
113
141
100
112
100
114
136
110
105
108
112
109
124
114
107
110
110
136
138
121
100
149
119
107
138
136
123
124
119
116
137
103
126
134
139
129
147
100
101
124
108
116
120
117
112
100
133
114
141
126
112
104
135
129
121
130
118
144
131
140
111
147
140
121
142
127
129
125
102
111
124
135
130
108
131
122
101
133
149
130
116
138
125
122
105
104
134
120
107
132
124
148
108
129
147
115
143
100
148
119
136
129
108
128
100
146
132
126
106
126
145
120
109
102
132
127
120
118
146
118
119
104
148
114
132
144
128
112
141
146
113
118
138
144
119
137
123
122
122
121
103
106
128
144
133
138
118
145
103
118
101
109
111
121
120
104
134
113
141
137
128
141
134
112
111
113
119
131
142
132
105
144
135
127
148
121
135
141
137
133
120
103
118
134
115
102
135
139
108
121
112
100
116
146
134
100
140
112
120
101
124
141
124
102
115
106
119
129
149
144
118
108
101
114
141
140
128
149
125
111
127
149
105
144
124
123
103
146
149
125
101
108
147
100
132
126
147
149
100
137
110
118
124
150
136
122
112
137
145
130
131
100
104
131
108
149
103
104
102
107
100
100
115
100
145
121
115
100
108
139
135
135
132
147
114
140
111
101
144
106
104
100
137
129
122
143
134
133
143
110
107
122
112
115
127
126
120
127
144
127
128
123
101
140
121
109
120
141
118
144
104
112
106
134
134
107
144
131
125
126
150
144
146
122
129
109
137
105
132
128
147
147
132
110
109
140
101
115
124
106
113
110
122
119
134
149
148
140
112
110
136
106
117
135
118
124
141
121
111
131
145
103
128
146
128
111
138
114
135
103
120
100
127
139
131
125
130
140
102
119
110
150
123
132
146
149
131
150
132
106
149
148
140
106
121
130
110
149
111
119
134
135
103
124
127
113
147
147
124
147
113
136
150
136
139
112
145
110
119
119
133
147
146
113
133
125
136
124
100
106
111
123
118
101
100
107
112
102
122
126
137
127
145
118
106
128
130
110
117
139
134
114
114
142
137
139
100
119
117
139
116
143
146
112
146
135
147
132
138
125
124
137
141
142
149
118
109
121
117
146
122
142
139
116
120
128
125
134
121
137
130
143
118
123
134
136
117
121
122
136
104
102
118
115
145
146
124
102
142
117
132
125
146
123
124
129
143
113
109
102
137
100
128
109
136
121
101
105
113
121
103
110
122
109
128
114
111
139
140
140
100
138
103
150
130
126
102
103
147
131
141
128
143
136
133
117
150
132
138
133
140
102
131
145
139
119
118
131
118
128
116
142
124
109
103
145
124
116
126
132
135
144
129
101
117
109
147
135
102
104
112
139
120
113
100
120
143
144
112
101
134
118
123
146
147
131
125
100
128
124
107
143
119
101
124
115
130
107
138
138
113
111
105
140
114
104
121
148
133
113
131
109
109
140
101
112
117
148
110
129
134
148
113
138
138
104
143
104
135
140
101
123
122
147
122
144
109
138
115
129
136
137
106
124
137
138
133
130
130
139
111
129
129
147
109
125
103
127
104
145
125
114
113
102
139
148
148
150
114
148
149
143
143
119
109
130
145
108
104
112
116
117
103
100
146
146
107
115
101
138
106
133
124
120
116
142
123
124
106
141
122
131
137
119
115
106
137
114
108
139
124
106
115
134
137
137
104
120
111
100
142
149
106
142
149
115
109
146
114
145
142
121
109
121
111
147
110
125
118
115
106
107
105
136
140
122
134
144
105
105
110
147
123
140
130
111
148
133
115
115
118
119
124
146
141
142
125
146
128
111
111
109
114
137
128
112
122
126
118
131
150
104
110
116
127
108
123
111
139
149
147
111
103
117
125
132
121
115
149
112
128
138
107
135
106
149
141
100
123
138
106
139
120
140
118
123
130
117
131
123
108
146
119
105
141
112
127
123
105
124
138
110
141
112
108
143
137
119
140
109
146
120
121
131
120
145
128
139
118
100
134
129
116
110
137
133
108
134
119
143
139
137
125
143
149
115
112
123
127
133
122
106
120
145
138
150
112
106
109
119
109
111
125
130
143
127
113
126
117
138
126
129
100
102
124
132
136
116
143
103
140
138
132
130
114
131
139
110
142
134
141
102
146
131
132
128
135
150
101
130
101
148
108
118
138
135
105
106
140
148
115
118
134
102
104
105
135
101
144
116
113
122
100
140
138
116
114
115
123
135
135
131
148
134
110
105
111
149
141
104
135
109
118
110
137
150
137
137
115
100
145
149
105
147
149
146
113
109
130
100
129
137
141
100
121
131
105
118
105
101
146
133
101
108
136
142
106
126
121
146
136
114
131
137
108
102
124
113
140
143
141
132
110
146
119
117
133
133
150
136
144
140
134
109
129
104
108
144
116
128
143
108
102
105
103
130
115
141
148
122
122
117
102
128
131
117
110
148
120
139
119
112
101
131
125
115
140
138
130
126
111
141
128
126
148
140
105
117
112
112
146
132
105
117
110
115
124
133
104
129
148
107
134
104
119
144
112
108
143
110
143
149
106
129
111
137
126
133
135
106
123
128
130
149
102
110
104
142
104
118
121
114
148
134
100
137
118
139
133
147
118
109
139
129
122
150
109
133
106
126
125
142
110
121
123
123
118
140
108
148
102
128
147
116
104
141
105
104
132
140
125
119
131
124
105
108
110
100
121
124
150
100
143
115
133
137
142
127
131
128
100
114
123
119
118
146
106
137
103
141
103
131
111
133
141
131
130
104
124
104
134
103
139
101
110
112
114
115
142
130
127
118
117
149
138
118
127
108
110
137
136
117
109
144
143
146
148
106
103
107
150
104
137
144
128
123
112
150
132
101
131
106
149
134
145
136
119
145
105
114
128
110
143
131
135
110
124
118
147
146
132
150
129
111
147
128
100
125
149
127
118
110
115
122
139
115
112
134
100
141
133
108
125
106
128
137
150
140
145
115
133
116
107
145
149
115
145
149
107
115
127
141
149
104
139
145
115
111
149
140
127
117
137
143
141
104
141
107
103
108
116
105
128
118
135
137
143
101
139
120
148
112
134
138
120
108
125
112
110
117
146
116
131
117
130
124
123
108
145
103
127
118
145
126
123
123
105
109
110
133
108
147
133
125
130
138
128
109
125
128
136
141
125
118
133
142
139
141
103
123
147
124
102
128
125
102
138
100
146
129
107
128
100
112
111
129
133
137
107
120
135
133
143
118
126
101
132
115
102
105
145
105
108
119
116
120
136
113
117
149
102
127
136
138
146
119
149
122
150
133
124
135
136
101
136
108
112
136
120
120
108
143
120
129
125
129
149
116
117
149
120
130
143
120
117
118
127
113
104
148
119
105
124
132
147
134
141
106
121
102
122
115
144
141
120
114
112
142
104
136
102
141
107
120
119
133
117
146
142
137
136
117
129
150
112
106
136
121
145
145
139
134
150
100
118
130
123
130
109
143
128
117
141
149
102
108
122
139
121
112
138
135
113
130
144
132
116
121
101
149
118
106
120
122
137
138
124
122
103
124
108
116
133
114
109
104
134
131
124
117
116
101
116
136
149
117
110
103
148
115
110
121
131
124
106
100
137
126
134
103
109
117
104
137
112
105
105
115
118
113
113
102
121
103
119
148
110
103
114
106
107
128
149
136
148
127
125
107
124
148
100
134
138
135
131
108
121
149
119
105
144
144
118
144
124
140
124
149
146
102
126
112
134
127
115
106
105
138
113
145
107
122
131
126
139
112
101
148
114
104
141
114
109
135
115
104
143
138
127
107
139
147
120
120
139
113
129
101
104
147
127
138
131
114
122
111
128
110
119
115
121
148
147
101
112
149
111
112
120
122
105
121
108
148
126
109
149
142
139
107
114
106
106
126
103
111
120
103
124
122
116
140
111
107
141
144
138
105
101
111
141
113
147
135
113
105
131
121
127
122
136
102
121
143
129
126
112
135
103
131
143
107
136
141
125
110
138
133
145
100
112
105
101
110
106
105
115
136
149
144
125
150
116
138
105
118
114
137
127
105
131
135
121
149
147
114
100
132
111
116
121
122
136
109
112
150
106
149
136
146
106
137
118
145
139
133
150
143
146
114
129
104
111
139
145
117
120
122
113
130
114
114
105
111
121
114
100
136
137
104
115
113
117
131
115
135
149
103
108
123
136
131
109
116
124
113
130
124
145
103
100
129
123
126
136
138
121
138
114
145
150
104
140
104
105
102
134
121
126
117
102
142
127
110
142
124
128
103
110
106
148
140
146
137
140
149
132
132
134
130
128
142
130
113
120
122
146
119
101
101
112
103
116
113
112
104
120
106
112
136
127
140
136
141
114
147
126
120
116
122
128
127
135
104
137
100
116
150
114
104
111
145
142
135
108
111
129
101
129
138
134
129
150
114
116
104
148
138
121
134
102
101
140
128
129
136
138
127
115
140
144
129
108
103
112
126
149
105
100
144
147
111
131
116
149
122
131
104
105
108
138
126
115
137
128
142
127
123
100
120
121
102
135
125
139
120
117
119
128
137
147
148
135
125
144
118
130
117
100
104
139
119
144
137
138
145
122
142
108
148
100
110
135
146
144
145
147
109
124
111
147
107
112
150
112
131
129
131
137
114
109
107
148
111
145
138
147
140
110
131
117
137
144
129
140
131
133
115
131
112
100
149
128
107
146
113
131
101
113
130
117
106
121
110
106
104
133
136
103
104
139
119
108
139
105
123
119
104
137
128
132
129
145
137
130
133
148
137
125
109
148
150
113
120
111
143
127
136
130
126
129
146
104
136
100
146
100
127
127
131
109
129
103
142
116
138
118
117
111
119
100
150
135
126
108
114
108
135
125
114
100
110
130
132
136
129
112
105
127
103
119
142
140
125
129
104
141
114
123
141
118
125
129
120
146
112
105
123
143
130
110
142
135
119
142
140
134
150
138
138
120
112
140
139
137
110
136
137
138
108
122
147
114
111
133
129
127
112
131
135
142
140
109
137
148
121
149
103
139
101
141
120
137
130
138
114
139
101
148
105
132
141
148
104
150
103
116
129
124
102
117
144
150
121
143
135
101
120
134
128
123
141
136
115
150
144
139
149
148
115
107
150
107
121
141
122
149
104
124
149
124
132
146
108
146
119
130
129
119
108
121
125
134
128
141
123
107
118
134
101
127
129
124
110
113
104
118
139
139
106
142
115
107
109
113
118
136
142
117
125
120
125
112
117
117
124
110
105
146
115
104
106
126
137
149
125
124
134
102
111
136
109
113
137
150
137
105
106
117
116
127
148
121
110
120
137
143
112
119
104
143
116
149
132
133
149
137
106
121
101
116
138
118
144
145
129
106
135
150
146
150
127
112
107
110
107
119
146
127
119
102
130
150
109
106
145
111
137
140
115
100
147
139
145
101
118
113
102
146
144
119
126
135
140
107
112
112
106
117
124
115
131
146
101
115
116
110
119
114
145
123
112
110
103
127
108
102
107
105
119
114
128
125
129
141
104
129
129
129
144
103
129
107
113
128
100
136
106
103
143
130
135
122
148
109
100
129
149
135
110
107
140
106
148
124
141
126
148
101
100
136
114
127
143
146
150
145
126
104
143
135
123
132
127
125
117
121
112
127
150
112
144
102
130
106
121
120
133
137
140
109
140
140
139
111
104
118
130
132
148
124
101
101
114
109
101
113
100
105
100
106
130
111
111
129
132
119
136
110
107
108
101
122
144
120
148
128
116
125
117
117
121
128
143
142
121
128
110
129
114
110
113
102
118
138
102
128
113
121
127
115
112
130
111
143
116
113
112
148
113
113
129
101
109
115
128
118
139
122
138
105
126
112
135
118
147
111
132
140
114
115
143
135
150
146
133
108
142
150
103
127
116
121
125
115
122
140
141
111
135
112
139
144
127
129
118
103
127
123
138
115
144
123
143
139
112
122
112
116
149
126
138
126
133
142
139
133
147
115
107
149
133
137
128
136
123
103
111
120
102
130
108
115
139
120
124
132
133
110
116
122
117
105
130
113
105
118
135
104
106
122
117
144
138
104
123
150
106
123
106
126
145
139
120
111
116
102
131
125
129
149
146
111
132
101
138
146
121
119
142
104
113
136
114
146
143
103
133
108
117
101
109
120
134
109
116
121
107
140
147
110
108
116
119
127
143
119
127
110
129
107
125
146
140
127
149
126
146
101
133
120
117
120
104
127
107
134
133
139
143
118
111
146
122
109
105
142
112
126
115
100
110
146
147
107
141
106
141
125
132
136
131
120
148
147
131
141
115
133
138
132
142
127
106
133
150
119
137
128
110
129
127
119
140
117
109
127
113
125
103
106
109
118
118
132
126
117
144
143
127
119
116
113
148
135
131
111
117
130
113
134
143
144
109
120
140
114
137
109
119
134
140
128
134
113
119
121
132
134
137
148
107
147
142
140
131
131
125
148
136
121
134
105
139
122
132
128
132
141
142
104
130
107
137
143
118
135
115
149
123
128
148
119
124
131
148
142
121
111
113
113
127
132
141
134
140
142
142
144
138
116
100
144
117
124
112
117
102
127
150
106
119
125
142
121
128
119
138
146
115
122
135
104
148
149
111
149
142
123
133
127
132
123
149
146
121
104
131
122
132
123
130
112
122
139
127
113
116
102
133
121
124
139
123
132
121
131
124
146
126
106
129
119
141
136
147
137
103
114
134
102
100
114
138
131
117
138
137
103
133
125
121
149
122
106
107
150
143
125
116
101
140
104
135
119
111
112
149
110
131
150
125
118
147
141
105
126
147
138
106
142
112
114
116
105
133
126
100
125
100
115
109
125
104
119
143
142
116
141
146
107
100
128
101
149
117
122
109
123
105
122
114
104
105
109
138
126
107
137
107
105
109
109
141
126
140
136
134
106
142
127
149
127
141
100
141
117
111
109
120
126
142
135
134
143
124
130
134
114
110
100
108
119
114
138
124
110
133
126
119
118
137
147
133
138
123
113
103
138
139
126
102
134
126
123
134
111
146
144
141
112
107
117
105
101
108
133
150
122
117
129
112
114
130
114
119
145
137
128
102
102
109
128
143
150
122
108
116
130
133
107
118
110
130
121
112
133
144
131
134
147
110
145
119
138
147
138
138
106
115
141
150
112
133
134
149
109
134
108
114
108
146
123
119
136
118
100
141
118
136
123
111
147
127
130
125
103
122
141
107
136
130
144
150
105
137
114
113
126
148
105
118
131
127
121
107
102
115
125
108
137
128
131
128
136
122
126
103
127
125
123
121
118
129
107
129
105
131
138
136
105
164
192
148
144
180
149
182
194
177
200
164
188
173
145
191
199
156
183
160
181
171
149
155
196
177
200
166
140
182
193
200
140
166
166
183
153
169
169
160
163
155
172
193
199
175
189
172
200
168
200
189
146
146
149
187
165
164
194
200
157
170
146
152
162
144
180
183
196
198
194
158
195
161
168
172
144
167
145
180
187
140
170
178
148
188
200
164
171
160
161
198
197
152
151
182
194
157
198
167
179
159
169
193
164
157
175
171
194
176
180
166
192
173
183
187
181
177
200
140
167
177
140
161
183
188
175
146
185
200
199
157
180
181
141
149
152
178
194
193
192
176
180
145
153
200
160
145
194
189
158
188
193
166
198
190
179
151
184
178
146
180
189
159
200
153
177
183
194
183
146
193
150
198
142
178
140
177
174
142
189
164
179
184
146
193
172
192
195
190
146
156
163
159
147
195
184
180
195
156
192
195
144
198
196
162
196
170
188
175
189
200
152
185
152
146
190
198
162
150
145
141
192
176
196
174
144
181
156
190
197
140
193
142
181
200
160
178
180
161
187
159
173
166
142
175
169
173
148
175
175
179
176
160
171
174
175
141
142
159
196
194
158
145
166
167
167
151
168
190
173
197
153
168
191
178
155
161
158
156
197
154
143
182
160
155
155
152
168
172
174
158
188
174
200
166
178
152
184
150
176
171
171
152
166
173
153
171
183
178
168
141
161
177
184
164
177
180
190
171
177
197
180
145
173
179
181
147
170
153
176
140
189
190
152
156
179
151
171
173
175
151
143
186
140
171
157
172
184
159
173
185
193
183
176
152
191
193
166
193
156
200
159
155
150
180
162
190
146
153
185
143
163
198
194
160
147
141
183
180
144
185
182
158
193
194
140
192
168
153
146
143
167
180
167
183
147
154
161
154
200
142
192
185
142
174
189
144
151
156
149
166
159
172
146
141
196
152
160
177
193
157
145
192
188
185
177
180
188
199
195
151
179
158
151
172
152
199
167
141
191
175
193
158
167
168
198
177
197
162
182
169
151
198
174
150
197
184
192
175
147
152
174
194
186
161
192
147
169
182
150
148
156
194
158
193
198
189
188
141
196
160
159
191
195
176
166
157
197
188
177
200
140
163
168
142
184
168
159
178
170
185
144
170
176
189
157
178
178
171
144
140
183
145
196
148
141
153
176
173
179
161
170
173
168
172
172
156
186
173
162
180
164
175
194
199
197
192
159
152
184
182
180
180
171
141
140
154
180
154
184
190
140
161
170
187
179
185
195
149
179
166
156
142
149
186
140
147
166
162
145
142
184
186
182
167
151
164
144
176
152
152
183
180
188
184
186
187
188
180
161
196
189
161
188
181
179
158
162
185
142
169
148
179
150
146
183
181
175
191
166
200
158
146
168
182
186
181
163
148
150
200
166
190
163
160
146
179
154
194
169
162
145
200
171
145
168
147
146
187
199
196
172
152
185
197
154
161
197
183
168
190
142
151
160
192
156
194
160
160
160
193
168
174
186
148
174
167
178
157
181
150
186
168
162
153
167
153
173
200
163
140
193
184
156
196
175
155
161
142
166
158
154
148
196
144
157
146
149
145
192
196
175
164
195
146
169
160
196
154
171
164
158
147
186
167
161
193
165
185
195
142
172
177
153
169
145
189
143
194
180
140
158
174
174
174
182
195
158
186
181
164
183
173
151
141
176
145
194
161
198
197
180
188
157
154
188
155
180
184
168
173
154
154
171
185
152
169
170
171
187
156
140
182
181
183
185
144
199
197
171
145
144
196
168
150
163
196
193
158
198
173
178
190
153
141
198
165
184
155
169
190
172
151
186
188
181
147
183
169
188
194
147
197
149
196
176
161
164
189
190
197
196
161
197
157
185
150
170
193
192
188
179
180
160
174
176
157
145
186
148
154
162
167
193
193
172
189
171
184
146
143
195
190
146
199
168
185
161
160
187
148
151
169
180
180
199
175
152
199
173
169
157
176
199
145
153
169
177
161
146
176
150
185
168
154
184
151
195
151
181
152
169
145
158
196
200
158
163
144
178
191
142
186
152
169
147
193
184
161
192
183
193
149
148
194
144
179
185
197
190
152
179
173
192
191
188
193
199
148
168
175
155
144
145
168
161
200
163
148
151
171
169
187
152
184
144
196
145
180
196
161
160
175
156
184
179
143
146
146
192
147
194
152
168
167
141
150
193
185
194
193
153
191
141
150
177
145
199
152
192
193
192
160
186
170
199
169
170
154
179
171
156
155
176
152
183
197
143
193
191
199
178
162
149
179
165
176
160
192
168
186
143
181
141
170
144
149
200
166
194
151
171
160
158
148
172
145
196
185
177
187
150
188
199
182
184
151
145
140
169
164
141
165
148
182
196
172
147
181
182
193
166
174
140
160
146
195
190
193
189
168
163
195
167
154
155
142
190
160
177
156
199
158
147
196
141
199
147
181
191
172
152
140
180
146
185
157
148
157
155
182
176
177
184
162
178
155
187
163
194
199
157
173
187
178
173
173
200
200
162
192
141
161
151
199
147
164
194
156
193
186
156
153
195
171
182
190
158
170
165
184
188
200
161
141
196
200
143
180
178
179
182
190
149
145
186
200
152
158
177
168
153
193
155
200
183
161
166
177
151
153
142
175
194
186
142
176
194
190
175
186
162
190
176
145
191
190
160
148
144
180
198
181
158
197
149
146
176
171
157
170
197
200
158
161
142
197
157
193
192
192
189
173
179
183
198
181
166
173
191
176
161
187
186
145
148
162
175
151
159
162
152
188
167
160
159
178
162
154
159
189
150
193
186
164
191
145
163
186
192
195
198
167
199
155
143
157
172
196
158
164
156
148
187
192
144
149
189
177
154
165
194
154
180
163
170
190
188
156
152
150
193
191
175
185
190
178
173
149
184
167
145
186
164
156
185
189
181
161
200
164
195
188
165
174
162
179
157
170
158
199
183
186
198
144
152
156
157
152
158
197
181
151
184
141
153
194
145
176
177
146
143
147
160
172
181
156
198
187
148
148
195
187
153
170
180
178
183
179
199
181
144
166
183
140
194
195
199
181
163
184
149
153
147
165
194
155
164
156
177
144
182
195
183
173
156
178
167
148
149
198
150
155
161
157
193
144
140
186
151
141
142
190
159
157
146
177
186
161
181
156
169
169
173
193
181
173
192
170
182
154
175
195
151
149
147
169
143
160
175
156
146
161
182
199
198
187
148
186
194
180
196
165
190
154
197
188
188
162
165
156
194
174
146
158
199
197
172
175
140
172
200
160
176
195
162
160
144
149
163
149
143
187
185
196
177
174
184
140
193
186
153
175
188
148
157
148
165
148
150
176
193
196
173
173
148
188
198
189
172
182
187
148
178
141
176
191
182
188
142
181
186
197
169
199
183
144
152
155
172
163
160
170
166
193
148
148
199
145
157
171
152
169
162
173
195
181
140
198
178
155
187
153
200
147
166
152
176
193
143
147
186
166
166
142
178
184
141
157
176
176
190
159
159
146
200
179
164
140
191
180
141
187
152
196
146
164
186
160
142
197
182
168
161
155
157
183
195
176
147
158
151
173
172
182
200
161
141
157
145
180
140
150
165
140
156
190
176
188
176
190
183
177
163
156
148
199
188
183
200
193
183
164
174
199
181
150
162
186
166
141
194
186
156
175
189
143
179
191
142
193
197
159
160
179
175
143
194
158
176
197
165
150
167
167
140
190
191
194
194
158
177
144
164
161
162
154
178
157
145
142
141
147
184
162
169
142
144
194
160
171
179
166
153
144
184
141
167
200
172
175
142
175
187
162
176
175
170
197
171
152
162
155
186
160
146
198
163
150
195
190
141
186
143
162
190
178
180
187
142
154
152
146
142
162
142
183
160
151
193
178
162
178
140
186
168
169
182
143
154
184
188
182
154
157
154
188
190
156
146
193
166
161
147
196
169
181
148
166
192
188
179
192
151
195
151
167
170
188
197
180
185
176
164
166
141
185
167
189
196
181
157
191
179
140
151
157
175
150
181
182
161
169
145
169
163
163
163
194
193
141
147
143
143
162
194
195
186
177
155
161
141
142
191
159
147
162
192
183
167
142
150
150
149
151
199
162
186
198
182
193
193
154
193
185
190
164
179
161
148
166
182
198
145
149
199
176
185
173
145
172
140
143
177
148
164
160
165
169
189
189
172
141
142
177
160
152
198
197
196
195
183
163
151
162
167
151
164
182
152
190
143
156
188
174
180
154
141
154
170
179
141
167
187
195
145
189
164
183
156
147
195
145
178
180
153
181
146
142
156
150
173
171
166
196
180
151
176
157
153
191
189
187
156
179
193
194
164
166
148
181
187
191
176
161
151
198
195
148
178
155
185
146
197
142
192
192
147
178
180
163
169
158
175
198
149
191
142
183
145
183
200
144
145
177
152
158
160
144
140
161
199
198
194
199
177
150
151
195
190
165
158
165
193
187
187
191
178
166
144
198
150
198
143
185
161
161
154
175
154
167
146
176
175
144
194
145
190
181
157
140
165
156
197
142
199
196
175
198
170
161
156
140
195
170
175
159
148
187
148
186
177
186
143
198
196
160
177
158
166
157
143
142
176
188
154
163
200
195
146
158
150
198
140
198
152
183
200
157
154
167
183
142
149
181
188
192
153
150
186
166
151
188
157
197
185
180
153
188
181
140
166
186
150
189
174
194
180
189
167
181
142
183
200
174
194
163
159
170
193
190
158
181
177
177
184
163
181
151
196
174
160
181
190
199
153
180
155
169
146
148
149
188
199
171
197
183
162
168
189
179
158
173
199
169
184
174
192
186
182
158
179
178
172
147
154
143
190
200
142
175
144
185
179
171
181
164
168
155
191
180
158
146
176
154
193
159
162
193
156
157
152
190
192
161
145
173
141
174
167
144
186
161
197
152
147
188
194
143
183
146
176
174
161
188
170
191
176
146
154
174
142
190
159
168
192
195
178
186
200
157
158
183
143
150
168
179
195
185
160
143
198
198
187
177
199
168
151
158
172
167
177
144
161
183
196
195
190
150
166
176
182
182
173
200
170
160
170
167
184
184
160
158
159
144
181
198
152
196
165
154
191
158
198
156
198
152
158
169
184
151
198
168
140
190
162
142
174
173
141
168
147
151
149
182
147
150
177
157
154
196
158
168
167
196
181
172
180
142
179
149
181
191
176
195
180
184
156
152
152
180
143
176
193
167
162
150
169
191
192
192
178
180
188
183
198
192
169
162
191
181
147
146
150
159
142
156
180
192
154
155
178
140
147
170
156
154
197
164
153
166
176
173
199
196
172
174
148
158
158
152
199
170
165
170
181
185
191
153
161
180
157
183
187
171
172
176
177
153
145
179
179
175
178
192
172
172
163
181
191
189
144
165
154
172
154
190
140
172
186
180
140
198
176
160
189
156
165
178
180
147
198
149
183
194
154
142
171
199
174
190
149
185
152
186
189
184
159
171
161
145
154
153
183
199
160
146
155
169
152
144
197
143
161
194
147
169
195
144
147
200
151
169
142
173
171
141
186
159
197
156
193
145
178
150
163
187
193
183
162
144
143
158
148
165
190
188
177
182
193
145
173
156
183
159
162
191
156
198
156
168
160
155
193
141
173
153
145
176
189
199
143
160
196
173
189
184
141
168
166
165
192
158
155
166
161
200
153
198
165
170
167
180
194
162
188
177
197
158
190
169
159
186
195
146
148
184
161
165
189
198
198
198
175
166
183
183
199
141
185
176
147
166
186
143
151
167
184
145
161
170
142
182
149
172
142
163
197
196
196
154
188
172
159
146
153
195
145
158
169
198
153
179
150
143
180
161
193
141
165
189
198
142
143
183
161
184
179
173
173
183
177
189
152
152
155
142
193
155
174
157
185
164
180
165
146
163
143
199
160
172
150
155
180
141
154
185
160
176
187
145
200
166
197
184
155
153
147
172
142
161
164
195
163
185
177
141
144
169
147
180
153
140
161
180
140
186
185
195
175
140
187
158
175
196
168
187
170
180
141
170
182
195
200
146
178
162
176
191
148
157
182
167
182
194
149
152
149
175
154
143
146
164
176
171
145
165
141
194
191
176
196
155
197
194
156
179
162
181
175
171
172
162
140
184
179
183
170
151
184
199
159
148
151
149
197
156
187
189
170
191
175
165
147
151
193
197
156
199
147
190
161
182
169
166
148
143
180
180
160
169
181
180
174
146
191
184
182
142
187
151
146
140
142
143
184
190
140
140
158
187
152
188
177
184
197
184
198
195
182
150
168
179
143
198
170
176
190
157
175
179
173
183
194
194
150
142
158
167
155
185
175
172
189
179
142
186
174
196
159
154
189
151
155
143
178
181
153
140
164
166
159
182
182
181
168
161
141
166
177
144
199
155
162
180
160
140
162
179
140
154
149
197
170
180
183
156
179
176
196
163
155
196
156
157
196
195
154
200
191
197
174
151
145
181
192
162
181
161
144
191
146
194
182
196
142
183
167
140
165
177
196
186
155
185
144
196
140
169
144
145
147
164
149
172
199
187
195
178
180
143
159
183
182
190
167
169
161
188
145
167
187
148
184
142
196
161
157
184
157
182
196
175
166
198
187
191
158
183
165
167
163
196
152
179
166
178
179
143
150
189
163
154
183
162
181
185
153
194
181
192
140
163
147
189
154
159
163
182
198
193
176
144
194
179
179
141
166
197
149
155
163
145
199
177
182
188
161
152
193
182
184
197
148
165
151
145
153
179
197
193
187
173
194
163
181
173
168
185
194
198
190
154
200
153
186
166
146
168
191
148
171
148
174
148
158
171
153
164
173
190
146
169
161
182
178
161
167
160
194
178
147
154
168
170
142
142
189
155
174
184
185
154
153
149
156
146
182
171
168
158
153
144
189
158
175
145
179
173
178
164
160
161
158
145
161
149
144
150
156
164
155
160
188
147
183
175
178
157
178
183
142
171
190
193
146
169
163
195
161
197
175
182
192
166
151
182
148
151
194
188
155
190
198
169
166
193
198
199
147
163
188
175
161
188
163
185
148
156
160
192
194
170
140
165
179
169
142
152
153
162
180
153
142
153
172
198
199
164
173
151
177
156
142
187
183
180
199
195
159
168
196
143
181
155
160
150
151
181
191
163
190
166
150
151
173
193
177
146
187
196
177
184
195
185
158
171
198
161
200
183
166
199
162
155
147
145
167
146
175
173
180
154
170
180
174
171
165
176
148
154
181
181
147
170
151
200
177
198
145
158
177
152
145
170
180
179
179
197
194
160
163
189
144
170
197
182
165
153
196
185
195
172
191
185
197
168
171
183
158
163
194
177
179
167
146
189
154
143
142
194
143
155
188
176
141
165
180
185
142
189
156
196
196
177
192
185
166
189
142
143
179
199
164
153
169
200
157
170
200
153
189
172
156
176
156
190
182
149
190
157
144
161
194
198
191
174
187
199
177
195
143
156
157
183
181
152
188
187
148
158
182
182
147
154
159
191
160
197
185
147
198
193
173
176
193
182
160
166
140
154
188
185
145
199
164
178
168
178
142
176
179
172
150
165
188
187
180
177
143
165
172
180
183
171
151
195
172
187
159
166
182
156
196
163
186
166
163
157
180
170
188
196
166
174
157
177
175
185
194
175
185
157
174
160
175
154
195
146
152
169
152
175
150
182
163
169
177
143
164
184
152
160
191
197
192
152
154
159
182
162
157
200
195
146
170
141
191
147
196
158
195
168
148
190
198
179
168
156
184
158
178
168
168
187
157
162
160
200
162
182
189
156
165
198
195
175
183
179
146
182
189
174
182
170
197
192
174
147
162
161
161
176
142
195
148
142
150
159
186
188
154
158
188
159
186
168
188
161
178
147
165
172
158
175
155
149
161
157
147
171
185
194
145
179
142
140
189
141
157
197
141
187
176
177
165
174
159
187
167
198
140
173
179
157
142
145
184
170
200
174
178
160
189
198
179
186
189
165
181
166
166
144
182
200
140
162
182
171
182
190
154
196
161
176
189
154
185
166
173
193
156
154
152
196
144
193
174
187
144
165
150
194
184
181
199
172
200
149
186
144
182
147
150
166
178
166
160
190
140
192
163
159
156
192
187
164
179
196
178
190
144
188
181
169
186
166
167
193
167
140
149
145
160
150
147
184
154
187
163
199
190
192
170
164
183
168
185
172
198
144
182
164
177
172
160
181
161
194
165
197
171
183
191
177
197
197
181
153
143
148
159
165
142
154
185
182
176
166
162
190
167
200
168
197
160
140
180
172
162
200
192
174
156
183
154
160
145
176
160
163
176
175
192
164
182
159
156
167
143
150
193
191
150
143
163
157
159
151
156
162
154
198
197
162
142
170
186
158
193
146
197
157
179
178
172
146
191
192
184
141
196
194
161
154
182
181
147
171
187
186
174
179
157
181
171
155
160
176
150
174
200
172
184
200
199
171
197
197
192
149
163
167
173
166
163
160
142
188
150
144
190
182
177
158
196
168
179
158
198
140
190
143
150
192
174
171
195
179
165
164
183
175
168
142
146
155
167
169
164
162
144
198
182
191
187
171
176
153
167
140
171
146
167
159
167
172
180
179
188
170
193
167
187
185
172
182
159
151
143
182
165
157
188
156
200
157
167
170
183
141
195
156
200
165
199
183
175
189
180
165
198
177
187
194
147
191
147
171
192
168
182
155
150
147
193
197
145
169
195
145
150
148
197
176
189
168
183
160
175
168
141
157
152
141
198
164
174
156
167
147
183
182
170
180
156
161
159
179
197
141
141
156
191
165
174
143
150
185
187
162
158
173
140
154
173
195
178
182
191
160
150
147
173
198
175
155
147
175
182
148
192
171
199
162
195
151
146
159
152
167
188
161
146
165
185
151
145
183
146
157
160
168
171
173
148
179
167
171
161
140
187
168
180
193
150
161
193
161
178
178
159
176
192
174
160
181
197
180
193
141
190
156
181
177
157
140
161
195
181
190
198
193
156
184
183
190
198
190
174
153
178
200
141
198
179
172
170
190
186
185
158
175
162
187
156
170
141
158
178
170
188
196
195
165
166
196
185
184
165
189
187
174
172
177
144
147
200
179
182
158
166
141
168
186
147
179
165
182
176
178
190
149
180
141
176
177
155
200
149
175
148
170
197
193
171
174
170
172
171
199
196
165
182
146
189
191
171
160
184
194
171
182
177
178
184
157
169
159
152
151
144
175
147
199
166
181
180
196
171
182
174
192
186
199
145
195
198
162
181
164
178
173
178
160
152
150
200
159
172
172
140
177
156
177
178
164
181
161
188
156
162
156
173
147
173
161
174
190
177
194
180
152
166
152
199
165
169
180
186
183
159
190
140
198
176
161
186
164
168
161
191
151
145
149
163
193
179
164
154
159
140
193
148
191
180
192
177
162
192
141
147
184
160
187
144
175
146
170
178
156
167
195
147
155
164
198
154
177
160
141
181
170
142
142
176
195
176
142
172
141
154
177
146
158
162
196
161
174
200
157
200
193
140
200
190
183
158
146
169
181
163
157
185
159
141
198
151
195
159
157
146
154
180
174
193
169
200
168
147
160
151
156
147
162
183
192
180
170
187
155
140
158
156
159
165
172
172
189
181
178
195
185
153
174
153
160
161
141
190
162
164
161
171
178
185
145
173
195
175
183
166
169
189
154
172
197
161
158
153
173
171
169
141
173
185
188
175
148
188
141
168
183
159
187
190
158
194
141
145
144
173
179
195
191
174
152
160
175
184
181
150
166
195
164
194
161
195
188
187
167
142
159
188
196
180
195
170
140
184
144
164
151
192
152
171
184
194
166
140
160
163
175
151
177
172
147
164
170
173
182
181
186
174
187
200
172
142
158
193
197
167
168
194
186
197
200
176
159
170
178
183
170
159
189
165
153
197
170
187
158
151
197
183
198
161
181
199
174
147
170
159
156
152
180
190
184
185
166
197
152
186
173
198
177
196
172
143
180
154
171
164
147
183
158
142
146
156
152
183
191
173
186
193
172
198
169
180
152
155
144
140
183
177
145
176
160
142
173
165
149
161
181
194
165
199
196
159
145
177
151
175
176
199
145
191
180
167
187
168
142
197
174
159
181
168
158
174
142
188
160
140
178
194
159
195
188
153
155
186
166
195
174
193
144
186
179
191
200
143
144
179
169
164
191
181
145
182
167
180
189
193
193
195
198
161
180
175
178
171
144
182
195
143
166
174
178
179
140
171
189
185
147
156
170
155
150
155
174
141
161
184
175
183
144
163
159
140
156
198
147
149
164
174
175
175
191
175
168
170
140
161
195
200
150
154
146
141
152
180
155
176
183
176
151
178
197
176
141
149
163
165
194
153
165
172
160
152
191
192
147
168
185
181
192
183
159
150
195
153
144
149
165
195
164
150
199
197
168
166
165
196
152
157
165
177
160
147
145
198
173
191
173
176
178
172
143
157
162
175
193
172
151
170
160
151
153
181
158
184
172
191
163
183
146
154
193
170
157
188
170
191
172
173
143
194
190
174
168
160
190
199
194
153
173
196
141
143
168
195
153
185
196
146
186
191
162
169
159
196
153
174
140
176
192
162
168
156
195
141
163
196
177
199
160
173
168
146
156
161
177
169
171
196
191
157
167
145
150
175
147
165
180
165
189
147
188
143
173
196
178
195
191
157
187
194
168
163
171
194
153
160
153
161
174
146
161
200
166
161
146
173
154
180
169
188
142
166
145
187
170
191
143
185
182
141
190
170
191
196
170
148
179
198
191
149
191
154
156
162
160
153
192
159
166
186
189
189
172
183
193
159
176
180
192
187
189
193
142
166
165
176
164
165
187
177
149
194
141
195
153
146
147
175
159
151
157
191
179
195
163
191
141
153
152
158
195
155
180
199
182
163
195
143
149
179
152
195
141
160
192
163
188
194
155
153
146
152
151
180
179
181
180
198
163
199
175
168
192
143
141
173
146
149
188
160
172
191
149
144
191
198
173
189
153
185
200
175
157
153
165
182
189
175
197
163
164
173
153
144
160
157
159
152
159
179
155
141
191
168
168
142
188
163
197
199
197
192
199
150
173
188
186
181
156
174
164
188
159
178
143
167
198
167
183
184
141
164
154
187
142
148
180
161
163
172
160
167
176
165
155
169
191
198
164
149
184
180
146
189
148
148
151
174
194
150
152
154
198
160
153
190
142
194
158
148
196
153
199
196
148
183
161
163
142
179
176
159
161
177
160
155
149
192
159
200
169
199
148
151
167
198
189
175
197
187
197
140
161
155
143
152
171
167
198
144
159
170
151
179
151
154
196
182
197
197
180
194
147
163
194
167
175
171
184
172
163
144
180
194
183
174
180
163
188
154
173
162
184
166
142
149
191
143
181
145
143
181
144
191
165
197
149
152
165
141
200
143
169
172
149
166
160
143
150
170
171
150
174
187
197
153
177
157
140
167
192
178
165
152
141
164
167
188
140
152
192
148
187
179
163
183
148
145
175
141
161
169
166
195
183
192
183
140
146
163
146
149
170
154
142
165
142
190
163
155
189
182
172
181
170
195
199
148
180
161
141
147
152
176
142
169
184
153
164
152
191
192
176
169
146
182
185
182
155
166
161
171
191
171
170
148
164
145
166
164
174
152
170
199
159
150
194
187
151
190
140
178
157
196
183
171
141
185
199
151
192
141
153
181
195
159
179
197
171
161
142
151
199
195
174
162
142
187
176
193
190
154
166
157
150
144
188
159
154
181
186
165
145
196
151
197
164
160
154
171
145
175
167
163
178
192
180
188
162
186
174
184
147
185
154
143
170
143
182
144
188
142
190
192
153
157
199
140
168
193
140
152
162
196
176
196
174
200
185
189
147
151
169
144
194
174
172
196
164
170
166
198
176
180
179
182
178
140
177
176
193
141
161
145
188
185
198
189
175
158
185
194
161
141
164
164
184
157
174
176
191
161
156
168
142
192
187
168
148
171
168
157
168
150
146
159
185
178
154
192
192
167
160
192
190
142
193
152
140
185
155
147
173
181
163
197
190
146
143
200
171
179
150
163
189
182
170
187
165
165
183
176
180
195
181
181
187
178
157
167
195
183
164
162
169
163
140
194
181
174
162
147
143
150
157
145
149
171
178
141
166
177
194
191
198
157
156
163
177
166
173
154
152
183
142
150
167
153
194
172
156
167
185
197
171
166
180
143
178
191
151
164
181
179
188
178
144
183
196
189
145
148
198
171
173
179
159
158
168
186
174
184
196
200
168
170
197
177
166
177
191
175
169
197
171
170
166
173
176
192
199
171
170
177
146
153
199
191
176
179
155
194
178
170
184
158
176
153
191
143
199
187
178
164
192
192
180
152
152
175
147
188
154
200
180
179
164
168
198
167
192
165
168
186
199
145
151
192
190
186
171
166
159
145
157
194
181
150
144
194
161
167
200
161
171
168
140
186
167
192
151
174
181
150
140
180
149
148
174
196
170
177
175
198
164
182
182
180
149
193
184
167
143
151
157
190
193
162
182
181
192
156
160
188
161
182
193
157
163
175
173
178
182
200
161
199
151
186
163
182
151
149
164
186
145
169
182
179
147
152
194
147
149
171
168
156
165
172
166
189
198
198
175
175
155
181
199
144
158
143
147
155
196
157
143
191
196
142
169
173
166
154
161
189
148
162
156
155
176
175
161
173
151
140
187
188
159
144
144
180
164
167
172
162
150
163
182
148
144
199
167
194
141
170
199
142
141
192
148
144
145
153
157
142
188
193
153
187
159
146
142
169
171
143
160
190
184
193
170
198
157
197
200
160
200
170
186
172
172
170
198
192
142
181
189
149
192
187
198
191
191
159
161
154
183
155
168
167
173
148
164
148
196
158
149
172
147
169
182
192
155
140
186
175
177
177
143
168
192
196
161
185
194
151
189
191
143
143
198
157
184
166
146
183
196
166
187
166
141
157
142
198
158
141
198
176
149
154
157
174
142
199
150
173
185
152
163
173
171
166
174
196
159
151
180
191
157
182
176
178
140
183
158
150
151
143
192
186
145
174
170
184
145
153
158
188
176
151
190
159
170
156
155
171
146
177
147
180
200
167
164
192
172
167
159
182
179
189
155
144
179
144
181
162
169
178
164
191
174
190
180
169
156
200
172
153
149
182
191
170
160
142
164
144
159
183
150
172
160
155
175
182
166
176
161
149
155
192
196
175
175
197
158
199
184
197
160
162
149
159
159
147
189
189
162
164
193
156
183
165
195
173
143
187
198
188
181
180
145
173
148
151
168
142
162
185
174
162
196
180
184
192
141
148
168
184
195
190
195
151
195
178
149
168
166
160
197
169
182
184
158
194
182
177
149
140
200
179
155
150
171
173
170
150
149
162
186
173
199
174
200
194
170
193
180
178
192
144
163
191
167
160
181
198
145
170
140
181
167
194
182
160
182
159
153
180
159
187
187
156
141
150
155
157
192
172
155
165
194
165
184
164
192
158
170
145
160
164
140
171
141
162
192
142
175
177
156
196
143
198
141
195
183
179
150
193
196
168
149
170
153
157
178
186
186
163
160
151
151
159
173
174
189
146
179
168
188
171
182
175
168
155
186
156
142
197
173
198
156
150
193
151
149
145
176
169
177
163
194
143
153
148
180
151
191
151
146
161
154
192
164
161
168
182
177
160
147
176
165
194
169
150
140
163
194
178
191
148
166
160
198
160
199
195
146
140
159
151
183
151
180
178
185
174
153
156
193
141
177
182
148
165
176
196
158
160
181
140
158
141
151
184
147
194
147
183
187
143
147
182
141
200
146
153
179
149
159
149
143
167
153
149
194
149
180
145
195
191
173
170
157
195
174
165
177
186
181
168
193
181
152
165
168
146
192
181
179
168
197
154
155
171
168
147
176
146
178
148
155
172
150
181
158
148
165
189
145
158
159
161
182
186
175
185
163
160
168
148
197
143
195
177
166
153
154
183
177
142
153
168
161
163
199
150
157
155
144
141
155
199
179
142
196
141
198
164
157
144
172
144
144
146
188
165
140
199
170
143
148
164
146
178
156
173
189
186
151
185
186
169
189
167
167
184
179
147
144
196
168
190
146
183
172
190
173
168
200
194
145
167
190
186
143
156
144
143
177
155
193
146
185
147
193
155
160
189
187
155
182
198
173
182
141
153
160
180
175
171
155
195
163
195
182
180
175
153
162
141
167
170
169
161
172
171
197
188
187
175
157
164
152
173
172
166
142
158
153
147
157
147
151
143
155
199
176
177
159
145
200
142
196
158
195
190
192
156
159
200
196
150
141
194
143
153
197
151
173
157
140
189
190
146
163
171
183
181
169
183
142
151
142
165
189
181
197
145
184
152
190
143
191
190
195
197
172
197
157
200
166
185
166
189
172
182
165
178
141
190
155
196
160
189
183
150
197
162
171
179
155
156
166
199
152
182
141
166
181
145
180
198
164
182
150
155
172
153
187
198
173
172
195
196
195
196
141
178
171
161
164
162
167
198
190
153
186
153
145
163
156
153
173
198
157
144
176
173
200
181
146
145
178
200
192
159
184
164
153
185
174
169
156
181
198
159
194
158
143
170
177
142
141
179
197
168
140
143
150
169
168
171
165
181
180
177
147
191
176
156
175
150
178
187
143
197
179
189
163
150
196
160
184
163
152
199
183
169
164
173
147
147
145
174
152
148
154
152
195
174
165
182
172
192
144
151
185
147
155
168
160
179
168
148
167
165
191
177
141
186
196
175
177
171
185
144
175
173
142
182
142
156
167
152
197
179
159
200
160
182
175
144
174
197
163
158
185
186
180
197
154
156
196
175
194
158
140
189
161
152
148
187
178
189
182
155
167
149
171
162
171
152
153
182
149
178
146
187
141
148
197
174
188
173
198
200
158
195
148
169
150
161
142
144
187
180
164
152
173
196
175
194
152
177
171
196
194
158
161
192
158
147
166
165
165
185
174
176
149
195
199
147
169
196
198
176
175
163
141
191
145
167
157
157
192
173
196
181
180
169
152
164
198
182
186
176
181
164
155
198
159
200
185
181
181
192
142
148
189
160
193
199
195
186
197
182
194
165
146
196
195
140
183
141
154
151
174
155
175
188
193
197
197
184
172
182
199
185
176
150
150
156
167
177
185
148
150
177
180
146
193
177
197
189
145
186
197
198
149
161
163
142
148
143
183
153
152
147
166
157
171
149
159
147
165
178
166
189
142
145
168
190
158
176
154
159
169
143
161
168
160
148
196
196
176
198
146
177
179
161
147
171
172
178
152
187
154
170
154
142
162
183
152
168
155
198
193
147
152
178
144
142
194
189
186
171
174
143
180
161
167
161
177
165
184
141
160
147
174
179
161
159
170
187
161
143
176
148
191
156
164
154
143
157
143
174
194
146
198
186
182
160
200
185
163
191
188
170
156
194
149
151
198
190
157
157
140
183
165
169
146
178
175
191
187
188
165
157
169
164
183
143
160
185
194
163
159
145
183
146
148
181
175
198
192
143
159
162
189
195
196
186
150
158
159
198
163
182
155
152
190
191
140
149
198
192
145
182
195
189
150
146
163
145
165
192
153
177
173
195
176
197
195
194
144
191
191
166
150
181
158
154
193
148
167
185
192
176
145
162
186
154
143
183
161
140
157
188
177
147
197
149
192
178
141
175
181
164
184
152
184
169
148
182
163
140
194
179
179
199
178
147
180
156
152
140
160
180
178
193
150
180
195
174
164
193
157
182
193
143
181
180
195
155
157
154
189
144
145
161
156
151
142
181
158
166
193
147
163
148
186
199
144
193
170
142
160
188
150
194
178
186
156
188
197
200
197
157
151
140
146
165
154
181
180
177
141
185
174
177
166
174
198
178
150
192
150
145
168
176
197
148
160
166
190
155
181
146
168
186
162
192
180
148
168
147
192
188
174
191
173
148
170
182
151
177
143
181
190
143
198
198
174
196
182
197
152
197
140
149
166
167
155
173
200
141
145
193
173
158
193
175
189
172
188
173
148
163
192
169
150
142
168
147
192
195
200
150
180
169
140
162
158
155
177
171
185
156
143
177
198
158
179
197
185
195
157
186
169
164
140
187
144
167
172
198
154
162
198
176
198
163
140
168
145
167
184
189
179
171
174
175
186
158
155
185
198
146
200
161
158
183
164
175
177
190
158
193
178
143
140
170
143
150
179
167
145
183
175
193
189
152
168
185
192
193
141
159
149
171
183
174
163
169
176
150
155
158
185
163
156
142
154
168
170
197
143
184
194
148
146
149
191
157
163
184
162
180
161
150
144
198
169
173
156
128
133
149
119
130
124
121
137
140
133
147
134
132
134
145
142
113
134
113
114
142
132
105
122
143
132
113
121
144
100
122
150
141
139
148
109
141
149
101
104
103
140
135
108
118
136
122
148
101
127
128
126
119
113
138
134
133
106
118
108
113
143
138
145
126
150
115
142
134
115
140
145
150
135
125
116
125
134
130
134
122
100
135
109
116
103
142
125
116
100
125
144
108
136
143
129
128
104
125
135
116
113
104
127
138
137
116
123
114
133
103
146
146
133
147
144
141
108
124
133
118
116
105
150
110
124
129
136
109
130
136
103
143
134
139
118
111
114
118
136
110
130
110
103
130
118
123
131
132
150
134
112
139
101
132
119
103
121
120
134
147
112
100
106
100
124
123
138
150
149
122
136
128
138
129
129
144
113
131
145
137
100
131
137
102
143
107
148
115
123
105
100
113
108
130
124
134
121
102
147
123
113
135
137
122
148
133
115
142
124
108
144
112
104
118
114
132
145
135
101
110
122
121
117
147
120
100
112
147
115
136
120
134
125
125
103
118
108
110
150
110
112
110
143
134
100
116
107
119
112
136
106
147
138
141
147
112
112
100
119
147
136
131
122
125
129
124
123
134
126
139
101
122
103
130
101
128
131
107
124
144
137
126
150
132
128
131
138
129
133
105
145
119
143
147
118
132
130
146
147
131
133
109
116
124
101
113
114
133
141
102
119
115
116
146
112
115
150
111
105
101
133
146
146
107
123
113
134
102
118
114
123
118
142
123
143
113
137
140
147
115
123
137
133
142
135
146
105
104
137
120
119
126
116
148
128
112
129
114
110
126
149
133
103
122
104
130
128
112
102
122
125
138
139
131
115
113
109
127
106
146
115
148
140
129
110
140
106
113
138
117
120
145
109
101
146
139
107
103
107
103
133
133
115
129
126
126
116
119
138
114
119
102
128
121
137
148
119
110
116
104
114
139
113
113
129
138
106
110
135
128
119
101
132
107
138
105
113
142
133
129
142
131
144
100
119
124
137
118
141
108
129
142
127
125
120
113
150
148
112
148
122
108
142
103
118
134
145
100
149
108
130
131
130
130
135
139
138
126
115
113
125
116
141
149
118
133
136
133
102
135
120
101
140
119
150
145
112
126
100
139
129
144
136
104
118
131
105
147
121
127
132
109
148
116
132
149
145
113
110
133
128
126
150
115
130
107
122
121
128
119
138
125
146
129
108
109
136
138
134
109
144
120
127
121
112
106
115
118
104
149
147
134
139
127
137
148
145
148
139
106
146
101
110
121
131
129
109
106
141
107
121
138
124
105
112
123
129
109
148
141
137
146
126
122
103
144
106
117
126
142
111
137
113
138
139
139
149
141
150
112
122
133
131
104
128
128
127
114
117
101
142
145
150
131
120
140
107
111
121
104
104
108
121
125
116
100
119
125
104
133
107
120
133
118
144
119
117
125
104
140
114
115
118
109
150
149
132
127
123
141
137
122
137
117
120
106
116
150
111
137
129
112
150
150
145
148
105
139
125
107
141
134
130
112
117
140
126
109
139
122
137
145
122
113
145
126
137
116
131
120
115
131
110
134
103
142
119
100
106
122
116
134
114
119
150
122
136
117
107
108
102
110
114
102
104
121
133
147
124
102
113
104
143
142
116
113
101
150
135
121
135
101
149
123
110
101
123
135
136
148
106
143
124
107
142
141
130
114
148
145
105
119
125
146
106
103
142
103
103
132
133
103
109
129
131
102
100
149
143
136
127
119
123
114
137
146
130
120
150
127
124
125
142
129
105
145
141
134
103
131
114
118
110
116
111
104
119
116
145
110
109
133
115
105
129
139
128
114
101
109
145
139
130
140
101
111
149
110
118
115
125
140
136
144
114
125
117
138
141
128
105
124
135
107
123
111
119
146
147
126
110
145
133
137
106
140
141
102
123
149
131
103
100
148
130
141
126
103
139
135
113
134
103
117
109
113
142
140
148
146
131
146
139
107
129
117
116
145
143
121
135
111
115
141
101
134
124
116
103
109
109
103
119
136
140
109
111
146
141
113
123
143
135
140
120
131
143
124
124
134
145
100
107
142
128
150
125
143
123
112
141
143
118
121
125
133
108
121
118
123
100
130
134
130
116
113
145
117
135
102
103
130
122
127
115
105
137
145
150
139
114
113
124
147
136
124
103
145
150
105
127
129
136
104
129
138
149
143
140
100
127
136
128
126
133
109
122
109
127
113
123
105
134
146
138
130
149
149
124
130
117
100
136
139
111
143
105
132
102
121
139
113
145
145
120
112
143
109
108
114
134
106
132
124
139
104
142
105
134
146
128
135
141
120
141
142
146
149
107
144
140
124
115
112
129
100
124
138
114
106
148
110
145
146
116
106
105
135
127
117
126
138
113
138
148
141
149
121
119
117
149
131
136
145
109
149
136
125
134
100
131
136
120
106
109
100
123
106
102
120
132
119
119
100
108
149
106
130
122
139
107
137
120
112
135
137
119
147
140
106
141
150
102
145
107
135
136
149
140
115
133
110
123
140
138
122
112
105
108
143
122
150
123
101
138
134
135
134
112
113
105
141
118
114
106
150
145
143
147
109
145
117
135
139
129
111
113
105
109
121
140
133
124
142
137
101
127
139
133
105
104
143
149
127
123
144
139
104
102
131
125
133
128
110
130
139
144
129
116
137
110
136
144
142
144
134
102
131
109
112
120
130
146
103
129
133
148
119
146
147
129
119
116
140
110
148
141
134
131
116
102
145
145
140
100
121
128
128
136
123
109
111
139
140
108
131
126
138
133
116
124
107
148
118
119
145
108
138
143
130
145
107
101
137
142
122
148
144
129
135
126
126
124
118
117
150
140
122
120
101
131
130
122
149
110
122
138
147
120
100
136
149
108
138
148
145
131
145
137
129
126
135
103
104
137
149
141
108
147
147
138
126
101
140
128
109
139
108
118
136
105
109
112
112
130
104
109
147
142
123
116
110
101
145
101
108
109
142
150
145
113
110
147
101
114
109
143
139
114
138
122
138
116
122
139
102
100
141
107
122
100
147
116
110
109
100
113
145
108
143
143
142
144
123
144
145
128
138
114
102
107
130
112
105
121
119
116
120
128
141
123
140
137
109
136
110
134
115
115
111
126
109
113
148
108
106
136
142
130
115
102
131
136
144
149
113
121
148
142
107
135
143
113
100
118
112
112
103
108
122
107
142
105
100
123
137
124
102
124
136
132
125
132
119
103
108
116
131
149
106
146
106
136
113
127
105
140
110
139
116
121
102
119
130
149
106
120
145
104
140
125
121
112
128
126
111
124
106
123
129
125
115
144
132
108
116
125
142
103
125
143
118
143
150
110
140
144
128
100
150
103
112
140
127
149
106
131
145
101
132
148
149
145
112
112
148
110
108
119
137
130
139
105
115
104
107
113
125
125
139
141
106
142
110
124
138
129
112
113
147
120
106
110
123
110
122
105
109
124
144
148
129
114
104
123
140
129
129
141
137
136
115
144
143
114
134
119
130
116
150
137
116
131
141
145
145
127
123
110
113
150
105
120
134
134
100
136
121
133
105
115
132
115
113
137
150
123
138
136
138
115
136
121
140
136
103
135
146
134
133
143
113
109
113
148
131
131
132
142
104
139
143
108
121
138
126
133
136
139
148
132
137
105
119
136
140
116
109
115
149
136
122
141
112
143
125
106
135
114
114
135
149
127
131
132
102
112
116
111
104
123
102
132
141
142
113
139
149
127
148
100
146
108
119
148
125
135
129
130
148
122
130
123
140
121
134
138
121
147
142
117
139
145
113
143
129
149
117
132
102
142
146
112
112
119
118
128
120
122
121
102
123
117
105
100
132
149
136
115
125
149
131
134
140
132
110
125
120
107
143
141
105
108
127
126
113
122
104
146
127
123
117
148
118
123
149
145
128
122
137
104
119
129
124
115
119
102
123
116
127
106
124
145
108
111
108
146
146
103
107
109
121
142
116
128
104
122
105
144
119
130
143
124
134
125
129
125
121
148
122
142
121
149
135
124
120
116
127
127
129
137
119
101
129
110
137
137
125
137
115
132
105
143
135
149
124
113
117
103
123
140
150
136
147
133
106
132
149
144
100
122
126
148
142
121
140
145
128
105
123
103
146
141
128
106
143
142
111
106
145
145
117
132
133
135
102
144
110
139
145
132
131
119
116
139
129
114
149
135
137
114
136
149
127
119
119
101
134
144
119
128
145
131
148
119
111
147
133
126
118
120
147
149
144
141
122
121
126
142
146
135
149
138
100
142
112
115
117
135
103
146
135
113
137
116
122
145
129
132
111
134
119
123
106
139
145
107
134
103
131
136
129
137
101
102
123
116
136
129
112
126
130
127
117
106
127
149
133
100
102
136
128
140
119
145
123
107
110
100
147
120
102
143
108
150
129
111
141
121
125
150
142
131
107
119
122
127
122
148
104
134
113
118
147
142
122
119
111
103
109
128
138
135
145
127
127
116
107
136
148
119
136
142
139
127
144
129
129
113
113
110
146
137
126
143
119
139
118
141
150
139
136
105
111
139
107
120
128
120
144
133
128
131
113
110
107
108
128
132
135
149
122
148
134
134
126
150
117
126
127
117
116
118
140
101
132
116
142
119
120
115
101
124
138
138
131
147
143
130
104
138
100
107
142
135
101
100
135
143
143
126
100
117
149
116
140
108
146
116
118
110
101
109
146
115
125
149
125
121
137
127
125
136
139
138
139
108
125
115
125
144
114
117
104
112
120
125
103
136
125
110
129
125
136
135
137
149
104
146
136
140
130
136
143
149
122
138
104
126
146
134
103
124
121
109
111
118
141
120
122
106
141
150
125
107
100
107
110
132
105
104
144
119
139
114
132
137
145
113
136
105
122
122
100
103
138
108
114
135
100
146
112
119
141
149
138
118
140
113
126
115
141
142
107
143
138
140
141
135
100
116
121
145
107
143
103
115
101
118
141
128
104
145
148
146
126
128
112
136
124
137
107
120
139
103
131
123
138
133
115
123
107
126
102
123
107
113
116
101
128
150
129
117
136
111
145
107
109
120
121
106
131
124
108
105
148
109
103
113
121
105
135
112
104
122
117
139
144
136
142
142
109
132
100
147
106
109
111
102
102
128
146
115
127
103
133
139
135
149
137
125
100
110
103
106
100
145
147
116
149
132
136
139
105
132
127
144
133
111
124
103
146
122
104
118
143
142
112
145
121
141
133
120
103
119
130
148
106
144
111
133
108
103
144
115
147
129
144
135
129
131
100
104
107
144
112
139
123
140
137
134
145
104
100
116
108
147
132
136
103
147
124
119
116
108
150
112
142
142
104
148
117
108
130
114
147
141
147
120
126
108
117
122
111
148
150
100
106
103
137
132
104
140
125
142
103
147
133
132
107
114
103
121
116
124
102
125
112
140
100
100
148
102
127
142
140
106
125
124
145
128
128
145
122
140
139
146
123
123
117
145
105
106
126
150
115
150
138
111
112
103
150
139
136
129
150
114
101
108
137
144
137
135
103
134
110
123
114
148
115
114
102
100
117
119
102
141
128
105
129
110
121
142
148
141
141
145
105
114
126
111
116
121
129
125
150
136
102
138
140
116
102
118
132
133
103
113
128
123
133
121
115
123
105
133
135
112
100
132
133
118
105
114
119
104
125
115
138
129
111
133
117
129
105
150
150
126
132
122
100
101
108
111
110
116
107
107
107
106
109
124
130
128
110
120
139
124
120
119
109
138
141
148
133
139
133
123
120
115
112
139
106
112
102
146
129
143
131
109
145
130
126
148
144
116
105
148
105
109
130
132
123
115
108
101
140
122
127
111
122
147
144
136
147
139
124
140
113
121
127
124
144
138
140
120
146
131
128
139
128
117
131
112
123
100
117
107
110
102
132
129
100
137
100
134
106
116
125
119
122
149
112
106
122
144
125
108
105
119
139
121
140
103
113
141
108
112
149
122
125
115
132
106
132
107
137
138
132
141
142
150
110
128
137
122
148
111
150
126
105
135
118
142
150
111
150
137
118
117
107
135
133
119
121
127
143
128
108
117
150
117
107
105
116
129
105
124
132
143
130
115
100
117
122
122
107
143
126
111
135
132
102
149
123
146
102
130
134
115
111
150
136
113
136
147
121
112
101
133
127
118
136
130
113
123
143
142
103
108
116
111
123
129
139
101
143
102
147
143
137
102
100
141
132
149
129
131
148
138
141
131
122
108
115
121
104
113
104
127
144
104
107
100
114
118
108
124
121
132
143
106
140
144
150
100
143
123
123
120
142
110
124
137
133
119
144
142
134
135
103
147
146
144
107
132
114
138
109
119
129
128
142
118
119
101
104
128
143
118
106
136
127
135
147
138
112
123
147
144
112
112
124
147
111
141
149
105
137
127
106
122
128
134
146
141
131
124
102
147
116
148
136
110
143
108
134
111
114
133
150
135
121
105
111
133
102
118
146
139
144
122
132
107
110
146
108
129
149
111
136
123
125
106
117
121
149
100
104
100
146
109
139
125
129
111
100
123
141
105
130
131
147
109
149
136
114
147
128
123
100
142
119
119
135
109
140
137
144
115
137
146
105
106
113
146
119
117
125
122
106
124
101
130
118
137
117
111
113
124
112
102
101
106
122
143
101
108
120
121
128
142
137
133
129
105
118
142
116
133
106
105
116
116
101
127
107
126
126
106
139
147
106
143
113
141
116
111
107
131
150
132
122
116
138
145
116
139
134
143
124
100
106
116
147
139
113
127
116
141
126
104
108
134
133
102
131
137
107
114
133
139
103
145
130
118
123
122
103
145
142
148
114
100
146
146
138
120
106
115
112
138
105
101
149
127
115
107
134
132
102
110
140
109
133
147
145
130
128
132
111
141
105
140
150
145
145
105
120
141
125
108
137
139
120
126
133
149
119
128
148
138
118
108
122
140
137
141
113
132
149
125
102
109
101
117
104
106
133
132
141
143
126
146
144
144
105
101
114
132
106
116
119
103
129
147
110
117
112
132
120
130
146
146
108
120
109
106
127
143
101
128
142
141
149
116
119
116
126
118
116
141
147
118
149
149
138
100
134
124
128
120
101
148
111
126
127
107
128
110
145
104
118
120
117
118
133
105
140
150
112
122
124
145
121
119
115
123
105
112
134
100
133
128
116
108
101
124
148
101
115
143
108
135
146
100
111
138
135
121
107
143
122
148
135
124
119
111
104
109
124
108
120
116
145
133
138
117
107
123
141
133
130
148
113
110
123
129
127
124
129
115
120
121
145
108
129
148
102
100
135
140
114
129
146
127
123
129
124
114
125
117
127
130
134
103
100
142
139
150
130
105
100
116
135
125
136
136
102
129
135
132
101
120
124
114
124
141
104
105
116
134
124
112
115
130
113
138
139
138
101
116
105
124
116
100
141
116
138
148
122
114
132
126
138
139
106
123
147
120
108
117
140
103
103
137
109
124
124
127
109
119
101
107
111
114
133
124
149
146
103
115
140
118
122
141
120
101
110
124
138
142
135
106
129
123
139
120
128
120
134
112
102
131
119
129
136
115
140
149
103
100
113
121
100
106
129
116
102
110
135
103
108
140
149
136
110
136
142
123
120
140
114
109
110
133
144
148
106
133
136
100
136
127
121
148
146
144
123
114
108
111
148
144
124
112
103
121
129
109
147
127
130
125
128
124
107
141
121
118
147
108
142
120
124
142
105
136
127
111
129
129
119
118
112
137
126
136
146
112
136
148
140
110
115
142
147
112
105
123
139
121
104
137
118
101
130
134
117
115
138
121
140
126
100
122
102
128
136
107
134
103
121
119
128
105
125
109
128
112
144
144
128
107
145
140
104
143
105
112
144
137
135
143
137
145
140
105
131
146
112
111
148
140
124
124
108
113
142
102
107
100
105
113
142
133
121
118
149
132
149
147
149
131
131
107
131
139
110
123
141
148
148
128
104
110
131
134
109
109
150
135
100
115
142
133
114
136
125
109
138
133
147
147
110
121
124
146
148
111
141
127
107
135
113
117
133
144
104
113
140
122
123
134
137
142
100
147
104
139
105
112
114
118
122
133
102
140
140
132
119
124
150
138
126
145
142
122
101
119
138
104
117
127
144
150
107
126
131
148
140
121
118
109
103
104
149
105
145
120
101
108
114
124
112
111
140
148
138
148
133
148
119
118
116
127
127
102
122
128
128
124
100
129
100
119
134
118
110
128
133
140
149
140
128
146
116
133
106
143
100
135
125
127
108
121
105
130
138
122
130
136
123
123
120
141
138
124
119
103
109
148
108
122
145
130
101
121
103
114
118
150
140
102
105
129
130
142
103
101
112
120
144
137
108
103
133
122
102
136
127
114
118
143
100
127
122
109
122
138
150
105
121
113
100
145
112
127
109
111
118
109
142
147
134
132
114
144
117
124
137
120
120
127
124
104
123
142
126
144
145
132
127
112
112
105
132
144
143
145
117
138
109
117
113
148
127
143
149
104
145
131
117
150
144
107
129
141
124
122
117
130
134
126
106
125
106
119
125
106
125
120
107
148
107
123
116
142
117
130
130
142
121
105
119
134
103
123
110
116
132
133
116
148
114
138
142
119
102
148
128
145
106
149
122
101
136
115
124
127
110
144
139
143
114
141
104
128
121
142
132
147
126
104
125
112
147
145
125
130
134
125
117
114
137
107
124
111
106
135
148
136
133
108
136
120
109
125
137
122
148
143
100
143
144
144
119
143
138
103
116
147
127
139
126
135
149
111
115
130
148
100
114
140
101
101
124
125
100
145
144
125
146
142
145
141
150
127
103
101
100
120
118
120
104
150
128
116
110
108
143
109
134
103
137
108
122
125
100
143
109
144
136
117
147
106
106
110
134
139
137
149
124
103
105
128
120
125
109
107
113
145
120
146
142
133
135
134
133
112
132
115
132
105
119
111
149
103
145
136
124
116
150
148
116
123
124
123
130
140
110
113
143
147
148
127
134
137
106
141
103
116
140
110
148
107
114
137
144
119
141
141
101
123
120
103
128
113
147
117
105
120
139
134
136
132
123
102
149
136
142
142
114
135
110
146
109
102
120
136
140
135
113
127
133
120
148
109
139
117
134
112
107
108
126
131
136
103
101
131
115
134
131
116
139
125
119
143
103
123
109
125
149
145
125
106
105
122
144
145
109
125
122
129
118
114
124
131
141
121
108
143
144
117
134
144
115
145
145
150
132
109
144
125
130
112
104
129
147
147
132
137
124
150
108
106
116
147
130
113
150
139
148
135
100
136
130
132
116
140
133
146
112
138
143
102
135
113
126
119
109
148
120
144
133
124
126
146
109
148
121
108
127
114
100
137
105
146
100
126
106
102
124
149
118
125
102
132
127
115
120
119
106
150
113
109
148
133
139
123
106
103
140
127
112
137
139
144
134
129
133
113
100
135
123
149
114
101
117
120
125
104
147
130
110
135
113
127
145
120
108
148
104
102
120
104
123
149
147
134
145
133
142
128
113
148
133
110
112
115
144
121
130
113
121
113
113
103
139
135
146
127
133
146
104
104
133
146
133
110
112
100
140
104
141
137
124
119
144
114
119
132
126
145
119
146
126
150
141
146
111
121
104
109
149
132
125
149
129
118
115
120
139
137
125
123
145
116
115
121
149
117
150
108
114
129
128
112
137
119
104
105
128
101
145
107
107
134
143
145
149
139
105
111
130
146
143
101
124
112
133
117
140
140
138
142
137
101
118
131
143
115
109
127
133
137
129
145
149
128
132
142
124
109
138
109
134
141
148
137
105
118
128
106
116
134
117
145
147
111
113
135
117
117
102
107
144
106
137
136
136
133
101
100
129
146
103
122
109
105
115
104
124
137
135
126
106
122
140
116
141
146
145
129
104
117
146
118
133
103
110
135
143
108
109
127
121
114
142
113
120
119
120
149
114
133
104
136
145
119
114
113
111
145
140
125
131
115
105
110
139
126
145
110
110
143
101
104
106
127
120
127
108
133
133
122
109
142
134
113
150
102
144
150
146
120
122
121
111
135
149
147
150
112
144
149
115
113
147
112
139
139
141
103
117
123
147
117
104
102
123
114
134
104
150
113
115
107
124
141
123
133
122
131
120
110
113
132
122
143
104
145
130
122
133
119
142
110
110
125
121
112
119
110
128
118
141
140
138
113
139
116
130
149
118
101
119
139
135
105
113
100
106
146
133
107
150
134
133
137
107
129
114
111
122
147
113
142
107
103
114
146
142
124
130
117
149
133
104
108
111
112
105
147
150
132
143
120
150
132
101
106
120
108
138
115
129
146
112
108
146
112
116
126
113
126
105
133
148
140
141
126
121
118
121
104
124
137
118
143
140
149
126
108
116
133
116
145
108
143
133
116
141
150
149
143
114
104
125
149
120
109
143
129
107
101
119
115
112
130
120
100
138
132
138
135
141
122
131
112
137
130
138
105
129
120
138
149
115
150
112
118
111
103
124
121
110
142
103
129
111
117
121
110
137
131
102
144
138
131
113
150
149
110
106
117
145
110
149
120
121
130
100
110
122
150
119
127
112
113
118
150
104
115
135
140
134
118
140
103
115
114
149
147
148
120
114
126
113
111
116
110
101
127
103
134
147
126
115
138
111
132
130
116
114
121
112
150
149
127
136
127
103
148
114
130
119
123
150
102
114
102
150
144
121
135
140
111
106
107
133
103
119
135
148
114
146
120
106
145
131
126
107
112
104
104
129
122
118
124
130
124
113
119
130
145
148
116
135
138
105
147
114
140
119
106
124
148
136
114
142
112
114
104
127
123
120
101
111
124
130
119
133
111
131
118
117
142
130
109
141
114
135
133
137
107
127
143
129
118
150
148
106
116
108
108
117
132
139
115
148
125
100
150
119
123
118
137
131
128
114
110
138
121
145
103
133
110
102
112
147
108
104
111
141
105
149
114
120
141
147
146
119
133
143
142
100
144
131
107
150
120
124
128
109
127
140
129
132
113
148
126
118
103
111
137
117
150
126
132
105
149
112
125
119
112
116
142
149
105
123
146
119
103
100
147
115
128
122
129
123
122
125
104
115
145
129
139
142
118
104
137
115
145
112
149
143
138
130
146
146
129
130
131
107
118
111
132
110
140
102
142
119
118
143
136
131
112
102
111
149
134
139
120
126
124
140
124
103
129
114
128
105
128
121
126
136
113
119
143
129
145
116
140
102
101
101
149
148
119
138
139
140
123
131
106
148
103
138
122
122
112
100
147
111
124
127
127
134
113
146
144
100
124
149
107
126
110
116
150
104
111
121
128
117
138
138
139
115
129
141
144
101
128
136
139
143
103
124
104
124
131
136
140
122
107
141
137
117
102
100
109
138
130
142
102
108
120
121
143
144
146
135
136
118
135
107
122
128
143
148
132
100
137
106
115
143
143
142
107
104
142
114
132
144
123
103
145
143
124
145
123
143
146
134
103
145
100
131
137
105
107
142
122
115
129
109
124
101
131
127
112
130
139
139
148
118
149
107
103
139
124
134
142
106
115
118
116
124
132
125
143
131
114
131
106
109
115
106
102
127
104
117
121
115
121
106
111
118
109
132
126
142
126
117
102
134
103
138
135
125
136
113
105
134
109
137
145
123
104
139
113
124
124
145
134
149
143
128
113
149
137
114
122
122
120
103
143
141
115
140
142
129
101
149
114
104
102
133
149
103
127
130
103
102
137
111
148
135
117
143
104
120
121
135
128
135
141
107
113
137
102
148
106
105
112
139
141
109
102
122
145
142
106
100
136
113
137
101
117
144
110
149
111
137
113
115
140
102
112
146
105
145
130
142
130
120
127
137
147
141
127
132
123
131
133
129
118
123
131
133
100
111
139
106
126
150
142
135
114
107
123
101
141
107
137
149
110
105
119
120
146
143
147
100
120
105
147
149
106
133
134
104
149
149
125
111
104
117
109
150
103
120
118
137
142
126
126
125
150
113
130
145
102
122
143
113
142
120
114
100
146
150
122
129
106
127
107
128
107
134
147
108
150
130
120
146
140
107
149
107
134
127
136
148
114
130
107
147
121
120
144
116
145
145
107
117
113
112
136
145
113
136
102
147
105
131
110
103
103
106
139
142
139
139
101
128
110
140
101
143
112
100
144
119
140
140
129
122
148
140
117
121
141
102
138
150
111
121
147
119
138
139
146
148
126
102
120
140
120
132
112
140
126
115
143
109
131
138
137
104
138
105
122
145
140
111
130
125
106
129
139
139
103
119
114
128
110
108
117
118
150
114
115
136
120
145
134
122
115
123
143
136
116
141
123
145
105
139
137
112
140
143
134
122
102
145
141
106
130
104
117
149
123
138
103
104
131
110
123
113
123
131
110
112
103
119
110
126
147
137
138
107
140
134
139
130
114
111
127
126
130
117
150
113
148
102
108
119
143
132
127
114
111
115
150
120
146
132
141
119
134
100
113
141
113
145
144
116
120
106
104
141
145
113
138
101
103
112
132
132
115
101
133
103
145
137
130
122
100
105
120
102
149
128
130
134
108
102
119
111
126
123
139
140
106
146
130
133
132
133
144
138
123
141
100
109
115
100
141
141
133
138
142
101
145
104
109
124
139
120
105
120
106
111
122
149
141
108
138
140
113
143
118
109
140
123
105
136
108
125
115
112
130
112
125
131
102
134
104
114
134
150
104
129
137
123
128
112
114
149
145
132
135
119
133
101
146
107
119
119
115
132
145
139
124
102
118
142
121
129
132
108
133
119
139
140
100
111
128
145
130
148
120
128
110
126
139
150
132
114
109
100
101
101
144
130
117
112
107
106
109
104
118
103
116
100
134
139
118
134
112
147
114
149
103
140
138
138
131
134
116
108
131
141
104
131
120
109
105
115
147
119
133
123
119
124
106
138
104
126
136
129
104
137
102
105
114
103
125
106
124
113
115
147
126
120
144
131
150
115
132
125
134
114
144
108
133
116
115
147
121
122
120
100
136
123
117
108
111
133
112
102
105
128
132
122
127
129
127
149
105
125
147
117
131
133
102
138
138
103
107
141
118
114
142
124
128
115
128
102
135
120
114
115
108
124
131
104
111
116
133
134
120
107
136
135
148
114
144
109
142
113
104
137
111
126
100
129
108
100
118
134
111
138
147
128
145
136
123
133
108
143
119
125
123
130
108
114
130
129
139
124
141
146
113
145
140
102
131
141
100
142
132
136
145
113
135
103
132
100
137
118
113
149
113
114
135
109
138
124
102
104
105
131
105
129
136
119
104
121
139
116
132
102
142
118
148
121
107
145
136
105
105
129
125
109
115
116
141
114
122
147
120
109
113
106
130
122
116
103
114
121
142
112
142
128
111
101
110
131
132
146
140
138
110
117
118
139
142
127
148
131
135
127
124
145
127
144
139
128
107
148
129
148
105
100
144
104
148
128
128
125
100
126
118
115
142
112
109
112
104
113
114
107
109
138
131
110
114
135
123
105
126
146
106
148
136
144
128
140
141
107
147
136
108
129
115
126
138
120
108
127
136
137
115
140
125
130
126
130
124
107
138
134
112
110
144
137
113
109
118
106
106
129
116
118
141
137
119
121
100
141
150
132
144
108
135
112
123
106
115
128
102
102
104
117
143
102
109
150
124
129
122
104
137
105
111
149
118
150
114
144
104
121
145
107
106
101
116
145
139
110
109
105
133
132
126
101
100
145
107
124
101
115
136
133
143
119
134
125
106
120
114
150
133
123
115
127
135
103
110
130
130
149
106
111
104
135
128
131
123
111
131
149
104
124
122
108
144
119
108
137
103
111
143
135
118
101
110
142
119
118
115
127
113
119
144
124
136
104
115
138
136
108
117
130
119
127
102
118
130
137
115
110
145
143
140
138
121
149
117
142
119
108
129
139
143
112
146
125
131
142
131
145
139
100
144
105
128
124
136
145
113
146
128
123
120
110
124
100
143
123
134
141
134
141
150
121
107
144
105
149
107
107
149
108
120
131
108
107
150
126
108
147
139
105
124
146
113
115
103
110
135
121
113
118
118
118
119
106
110
144
127
132
136
121
128
118
132
134
112
103
121
146
112
116
128
110
104
134
117
147
140
127
105
129
144
109
111
119
150
104
121
144
117
101
125
139
144
144
115
146
139
141
132
103
128
145
150
132
122
132
122
120
137
109
101
123
119
119
119
119
131
123
139
148
115
134
147
123
108
129
137
107
102
113
114
125
100
126
115
110
123
145
125
119
133
120
117
124
103
117
106
124
115
109
119
103
149
124
127
118
120
138
100
131
149
102
146
105
123
135
110
138
114
131
137
149
121
104
148
116
113
104
148
131
136
109
120
100
148
128
104
142
145
127
118
100
120
113
103
106
130
114
137
131
142
122
140
131
115
149
145
135
131
134
120
103
100
136
136
130
145
116
106
114
110
141
136
124
103
143
102
127
129
123
109
148
138
144
114
145
100
144
150
138
118
135
118
150
117
139
117
140
145
104
138
141
127
127
111
120
136
118
116
102
118
113
140
104
129
150
111
139
105
133
143
109
142
131
132
114
101
145
139
120
116
134
116
115
122
138
131
107
121
128
131
105
116
132
127
150
148
112
111
150
124
142
147
141
142
143
121
150
133
148
100
123
149
114
117
132
131
123
121
135
136
145
105
124
121
100
108
114
103
109
131
125
148
134
137
136
135
109
127
147
127
134
121
149
129
140
145
101
114
143
123
132
104
149
112
144
141
150
144
131
135
134
108
107
139
149
104
109
117
147
110
121
146
127
148
127
117
109
108
141
120
121
122
102
106
143
111
125
102
131
102
134
134
123
131
136
140
126
120
127
149
115
150
115
102
146
128
113
130
136
130
141
118
130
104
112
121
142
108
119
123
133
150
122
102
144
111
123
124
101
129
101
111
132
100
128
117
121
123
143
106
119
148
122
123
141
122
149
125
125
140
123
145
139
145
127
142
116
116
112
113
147
126
107
103
150
147
122
150
126
110
142
102
109
106
104
100
112
112
145
105
137
121
121
105
111
119
143
122
124
108
136
101
124
103
130
100
108
117
107
133
131
130
139
121
126
102
135
150
135
123
102
105
114
129
125
137
126
122
146
136
127
124
118
150
111
104
131
130
100
127
110
101
126
112
127
124
147
125
104
129
122
148
133
129
119
123
142
117
107
110
113
149
122
108
136
146
123
114
123
117
148
106
122
107
122
106
141
139
110
110
124
104
104
127
114
104
107
102
143
139
125
115
115
129
131
116
133
148
121
113
107
115
141
143
112
101
119
141
143
141
141
114
115
115
119
127
124
134
106
145
107
100
130
122
105
115
123
114
145
117
147
119
109
134
126
128
116
114
119
124
112
123
110
104
107
113
102
103
103
101
142
143
102
135
133
107
101
133
107
128
144
124
143
109
108
147
117
111
120
124
140
114
140
136
122
114
101
120
106
111
141
142
132
141
104
138
150
134
126
104
125
119
100
106
122
116
122
104
134
146
106
143
148
105
117
127
129
137
118
105
141
134
114
115
110
104
149
117
129
103
128
117
136
123
121
149
129
147
125
149
119
140
141
115
116
120
125
113
126
146
103
112
109
123
137
125
130
100
143
131
107
123
122
109
131
120
105
100
145
148
148
104
129
110
127
126
121
147
118
106
106
143
103
149
104
122
148
104
124
104
116
145
146
125
129
140
118
101
130
129
133
131
147
106
125
131
136
125
144
147
124
105
110
138
147
131
122
137
112
132
131
143
105
149
133
120
131
121
134
104
114
122
134
131
135
140
122
139
130
117
116
120
119
104
140
101
109
142
148
119
107
114
140
144
144
139
131
142
112
116
140
148
113
111
120
132
150
124
107
113
134
105
109
136
122
147
139
131
122
136
150
129
106
141
109
141
144
148
136
113
101
147
143
118
145
104
133
124
136
144
131
131
123
133
147
131
132
149
145
114
137
117
141
150
100
115
102
113
115
132
127
107
141
140
105
148
116
146
118
101
111
132
142
144
109
114
119
148
107
142
132
143
131
133
146
139
129
125
119
105
106
147
136
111
121
135
112
122
113
144
126
121
104
129
149
142
128
136
107
137
107
130
110
122
116
118
134
101
135
118
120
104
101
101
120
124
113
135
107
124
109
107
115
146
145
103
105
101
133
121
145
149
104
123
138
109
147
105
113
102
109
118
127
123
135
140
144
142
107
109
101
145
147
134
131
155
173
198
157
198
194
150
164
184
157
193
200
157
198
175
199
163
193
177
151
193
155
189
162
171
187
166
151
154
148
182
199
197
145
178
171
175
152
187
140
147
188
178
174
158
175
170
193
149
156
195
162
184
147
142
188
164
155
185
200
166
167
146
180
200
152
193
173
178
175
153
183
149
143
186
168
169
143
149
174
173
149
169
159
145
153
173
146
148
158
178
153
142
159
176
176
151
151
190
161
157
154
162
163
190
168
198
158
141
178
157
176
157
180
167
154
170
144
170
158
198
143
148
153
192
193
154
162
156
172
174
191
160
197
144
164
193
175
196
181
141
157
184
191
185
154
180
189
192
152
161
171
176
158
172
179
145
177
143
188
158
181
180
144
174
183
167
164
151
182
151
141
158
196
155
148
185
147
190
184
153
152
147
196
166
170
159
174
146
164
153
197
183
195
152
180
159
152
149
169
170
141
169
162
161
162
193
175
142
147
198
173
176
148
171
158
179
161
181
167
166
186
199
157
193
179
195
179
173
152
165
163
158
167
176
178
167
143
180
177
156
173
194
165
154
143
173
166
193
152
168
159
175
168
182
164
177
150
168
153
197
146
143
170
188
143
189
186
182
192
174
149
150
200
156
156
194
152
179
162
173
183
186
167
146
155
152
167
144
180
148
190
164
172
155
180
171
150
170
181
144
145
164
198
178
140
177
152
198
175
192
179
151
181
173
168
174
197
149
149
171
186
180
167
144
187
148
181
194
146
183
159
188
180
174
145
143
176
171
185
155
154
175
143
175
193
162
140
174
180
160
145
173
158
148
154
146
164
157
197
189
168
171
170
152
197
173
198
143
177
159
192
169
178
183
156
140
149
140
177
192
169
156
143
150
177
167
189
155
171
146
169
150
152
184
191
160
157
185
163
145
148
190
170
193
154
191
184
143
172
200
159
169
153
191
171
173
148
181
168
169
187
143
156
151
150
150
176
184
162
150
171
158
172
155
199
149
186
150
175
189
176
159
166
193
171
145
200
147
161
199
146
192
172
173
190
172
166
152
152
160
154
170
147
176
180
167
200
182
183
172
153
175
195
182
151
150
150
197
179
191
155
152
165
196
177
143
156
190
140
153
165
160
151
191
181
191
182
165
165
144
186
194
143
182
175
176
140
157
186
154
196
179
143
170
165
148
187
174
175
165
174
187
163
192
163
150
181
151
200
195
170
192
154
197
169
151
196
152
164
165
167
187
149
199
161
164
200
182
164
178
150
182
167
160
194
148
151
157
144
189
189
160
153
183
173
177
167
171
164
156
140
151
152
161
168
167
175
180
191
181
193
156
190
188
173
155
154
158
159
161
169
153
200
193
141
188
179
154
194
188
168
166
163
198
140
152
162
196
145
198
169
167
170
186
144
178
176
164
157
173
175
142
197
172
155
196
154
163
173
179
148
179
184
180
199
171
178
148
196
168
154
146
162
160
180
167
169
167
158
155
173
198
182
163
145
150
179
169
163
192
184
147
196
146
160
179
175
148
165
148
169
174
155
155
170
172
197
198
192
190
199
152
182
189
177
145
159
156
196
148
198
198
181
160
157
154
142
162
179
166
170
192
195
174
147
173
193
174
152
198
155
193
197
198
189
174
177
175
196
196
162
140
149
154
164
187
168
142
196
150
154
171
149
150
171
152
153
191
159
175
186
197
176
145
160
175
185
145
156
168
158
185
145
141
142
149
186
166
155
192
140
160
155
191
173
152
161
166
194
179
177
167
169
177
171
174
187
191
157
183
143
190
170
169
186
159
173
183
156
148
173
194
195
156
174
173
168
195
166
147
198
164
176
186
191
179
164
161
173
160
156
186
190
198
157
196
167
145
154
165
164
181
173
181
196
197
189
162
183
149
145
159
142
197
173
149
155
166
150
186
169
172
183
168
140
183
142
196
155
168
173
169
144
142
180
169
194
196
177
143
163
184
154
149
178
145
191
161
141
187
187
177
163
152
199
177
166
176
194
172
192
178
196
153
165
143
168
159
163
200
155
152
177
176
197
183
173
181
183
186
184
164
173
145
147
153
169
178
148
152
182
157
190
152
178
196
143
167
161
164
150
197
177
144
175
141
198
143
170
170
153
145
150
140
172
193
164
190
200
152
188
172
171
190
154
197
143
186
191
164
199
195
165
147
199
148
177
143
153
156
159
195
165
186
181
195
159
141
152
184
152
171
194
183
162
168
168
176
144
168
159
185
177
159
164
163
181
149
180
194
182
150
168
145
190
187
153
167
146
191
180
197
189
196
182
162
148
146
171
184
177
167
158
181
156
194
152
168
191
140
150
179
195
171
190
149
194
198
185
171
152
168
186
200
199
153
142
184
176
147
198
162
173
159
168
185
180
140
167
192
143
168
190
180
194
195
147
199
185
160
150
183
176
184
183
192
170
167
185
146
199
178
179
155
178
171
195
190
191
156
161
151
187
149
199
178
145
172
168
179
156
195
186
160
148
171
176
200
140
157
196
148
173
179
171
187
173
164
185
140
200
188
189
143
199
185
141
156
148
159
162
177
148
181
154
171
196
162
154
146
194
189
192
172
151
190
149
183
172
171
181
171
185
151
173
155
178
185
157
162
144
197
154
193
153
197
146
185
191
187
144
155
180
200
194
173
143
194
162
184
188
141
180
144
162
170
178
188
197
181
194
187
159
168
148
166
150
192
186
187
189
179
147
185
183
183
193
198
164
169
165
172
157
195
172
164
193
155
186
191
197
145
147
188
200
170
142
191
146
164
193
188
198
158
168
194
161
148
171
181
159
154
162
186
182
185
165
172
197
196
147
185
170
189
191
149
188
151
157
161
172
176
166
146
156
187
144
197
181
189
155
193
182
192
154
176
182
174
179
193
164
150
198
144
189
143
167
176
188
194
174
181
172
188
159
200
179
188
189
196
168
154
153
192
147
165
193
149
143
151
150
158
199
192
173
164
165
180
190
157
162
163
157
187
142
178
150
140
153
184
171
166
193
195
182
174
200
189
140
180
172
175
164
196
174
144
156
169
169
163
171
168
195
179
158
193
164
200
140
179
189
170
151
165
151
149
164
157
171
169
200
198
152
193
176
191
153
161
179
190
182
147
173
142
155
183
195
194
145
162
157
160
146
161
166
195
171
149
174
178
142
145
163
166
195
159
188
169
164
149
188
192
164
156
140
162
152
186
172
195
177
163
158
184
179
174
183
191
170
182
192
168
142
172
177
197
189
191
161
157
175
200
178
176
176
147
158
158
161
142
159
183
171
197
165
164
181
143
156
182
178
167
188
196
186
150
160
147
154
173
168
189
187
190
181
174
184
161
158
195
176
169
173
158
140
151
165
141
186
195
176
152
141
193
150
176
158
194
187
185
196
193
153
185
158
143
174
172
177
155
147
190
148
198
159
164
197
146
186
174
159
189
173
199
181
167
149
185
160
191
193
172
189
177
196
199
182
174
198
164
158
168
189
158
150
153
162
170
146
162
200
152
192
167
150
157
142
176
147
195
157
186
169
196
196
183
140
163
198
180
167
187
180
163
172
172
193
161
180
145
174
155
195
158
141
185
142
172
150
144
155
199
166
197
150
166
177
142
176
164
163
141
180
196
158
184
196
141
173
148
140
193
151
147
147
198
188
142
153
196
151
144
194
146
142
150
151
191
180
170
164
177
163
153
171
159
196
156
185
148
171
197
163
174
175
145
147
186
186
156
149
200
167
172
186
153
168
188
150
190
197
158
156
144
192
186
171
164
150
151
181
184
158
151
158
170
188
190
195
195
155
187
183
153
181
159
180
190
184
200
181
196
143
199
198
170
182
158
158
153
143
148
171
176
194
180
193
198
195
196
143
192
153
174
153
169
147
184
159
191
179
152
189
162
156
146
199
158
191
169
151
143
156
188
174
184
146
167
146
151
192
161
168
195
194
191
147
180
188
179
180
184
167
189
165
170
170
190
146
178
162
148
143
145
198
167
156
182
184
167
169
154
180
159
157
186
162
192
199
197
147
157
199
160
154
185
172
156
186
149
162
194
157
187
141
198
187
152
146
147
149
169
147
157
165
152
179
188
193
184
164
173
157
151
193
157
170
177
165
200
169
144
184
180
149
180
183
158
156
164
190
164
187
166
160
146
140
151
189
147
150
190
176
191
191
149
197
147
191
180
177
152
157
177
187
189
169
156
150
164
153
189
191
152
171
174
151
187
174
182
188
189
151
162
154
141
189
164
145
190
187
146
186
194
186
152
174
148
147
195
160
172
189
163
187
175
178
190
141
171
162
173
174
172
147
187
164
159
155
167
197
144
161
164
175
199
186
174
168
160
159
156
159
185
182
161
183
169
153
189
194
198
140
146
174
169
198
147
188
169
151
167
173
148
155
144
161
191
155
180
187
146
176
194
142
197
152
144
144
157
152
146
176
162
164
186
147
180
200
152
188
143
152
142
153
155
168
158
173
154
156
194
182
198
175
154
195
184
153
148
154
156
198
186
142
171
162
197
191
182
198
191
150
180
146
193
200
181
174
191
162
169
146
197
144
197
161
154
174
174
162
170
156
168
165
192
140
149
156
142
141
182
157
195
140
162
167
168
185
163
172
151
189
177
167
164
146
159
149
152
193
165
189
168
191
172
199
161
158
165
180
140
156
186
194
151
146
198
149
193
161
153
150
184
148
196
162
152
164
189
158
142
144
187
142
143
164
164
173
199
151
187
168
192
178
177
141
171
200
142
193
172
150
185
142
152
189
197
170
188
176
144
159
148
190
165
200
198
191
175
183
164
166
191
155
187
164
181
183
162
167
168
174
143
189
190
142
155
174
155
166
153
154
180
190
161
182
169
165
195
143
150
198
170
173
195
162
161
157
174
154
183
147
166
178
152
148
169
171
150
148
183
175
192
186
144
142
181
178
193
195
200
145
200
195
184
159
140
186
155
149
192
153
173
198
179
167
182
165
183
196
186
143
140
174
140
147
177
167
147
170
173
166
189
153
147
177
192
200
142
184
190
153
147
189
175
156
165
160
151
146
176
145
170
157
156
189
157
193
140
140
153
191
186
192
199
186
147
145
177
188
154
193
172
193
173
151
179
168
199
150
162
156
154
198
180
185
200
154
191
193
200
154
185
193
156
179
168
168
178
182
183
168
185
160
149
191
180
184
140
158
160
146
193
194
152
152
181
177
144
197
147
156
179
154
190
156
179
153
195
198
145
183
190
187
178
146
180
197
178
199
187
197
178
195
164
200
176
193
194
176
162
182
191
157
178
162
191
173
166
166
161
180
157
199
144
195
185
181
146
170
177
155
199
160
197
193
191
158
173
157
144
152
144
196
161
152
166
196
152
151
156
140
167
180
160
176
150
169
160
189
142
190
196
175
195
182
168
199
161
199
188
186
159
179
180
163
142
156
140
169
198
141
142
186
154
158
177
181
158
193
153
164
140
188
197
194
193
145
171
167
189
180
156
175
157
187
194
183
164
170
195
148
176
140
147
140
175
157
179
151
173
140
142
187
168
169
141
167
163
150
167
143
173
191
177
144
152
198
140
171
194
178
175
168
161
174
158
176
195
147
165
189
148
165
188
141
196
165
151
179
195
146
181
182
152
173
162
175
158
178
157
149
187
147
149
175
195
178
140
155
185
173
174
198
160
185
160
170
167
171
176
163
179
166
176
147
172
188
168
175
164
140
188
162
161
141
178
176
170
170
157
174
177
166
176
190
184
183
190
170
159
162
146
154
158
160
172
183
149
154
176
200
174
165
152
163
171
194
148
158
168
200
191
142
169
199
172
170
174
150
155
166
148
193
155
163
178
189
172
149
174
199
143
159
141
176
147
196
170
190
198
164
147
166
141
152
193
191
155
146
177
141
171
186
152
190
183
189
196
150
166
199
197
175
155
149
147
147
161
190
198
160
164
179
152
160
195
166
165
141
157
146
169
141
166
165
196
175
192
178
174
161
167
149
151
182
180
166
174
152
175
154
166
157
179
190
174
171
149
193
194
167
169
181
192
157
150
159
196
168
194
183
153
200
154
168
197
160
179
140
191
196
151
185
197
140
153
178
163
196
196
161
142
162
197
199
161
145
193
147
148
171
157
146
157
180
173
149
175
143
179
156
179
193
163
200
200
147
175
144
188
163
193
141
170
175
188
179
197
141
153
142
157
144
165
141
193
160
140
198
156
196
141
172
172
149
168
146
186
173
157
145
191
157
145
149
186
145
166
168
151
172
196
147
179
165
191
190
148
143
200
191
152
142
178
143
198
183
164
188
186
181
158
185
194
186
186
190
158
144
178
188
194
195
171
165
148
149
174
199
143
168
152
194
178
141
188
177
147
142
164
147
164
144
196
150
174
185
156
171
170
198
180
166
183
177
151
172
183
159
199
163
162
182
171
192
150
145
146
160
151
174
151
198
173
185
180
182
195
155
184
177
187
199
190
147
154
190
159
168
189
168
143
145
179
160
170
197
195
150
174
176
181
189
200
149
160
200
191
156
144
191
146
146
191
177
188
182
190
194
174
150
167
189
186
148
186
177
155
158
193
157
177
154
196
180
140
173
172
173
168
153
169
200
178
181
175
188
155
174
142
163
188
146
167
166
195
149
184
161
197
183
146
159
168
151
187
162
152
159
191
174
156
171
148
196
199
172
178
194
170
143
187
152
191
142
186
163
171
186
149
182
163
199
155
197
160
140
166
163
200
160
189
177
156
194
183
162
167
163
158
155
150
155
142
189
186
198
170
198
152
170
193
155
182
162
189
179
141
188
166
161
172
152
191
189
180
193
188
164
158
199
146
195
153
140
171
182
200
166
188
179
156
161
155
142
192
144
180
174
155
175
190
174
198
187
169
188
141
178
177
177
189
146
200
169
189
163
168
176
151
184
154
177
192
147
168
194
156
164
162
192
175
175
169
190
198
180
148
190
193
172
155
160
169
143
178
169
166
177
189
182
188
179
183
179
177
157
191
182
149
152
196
190
191
186
176
177
180
140
142
195
179
181
145
189
151
169
196
187
197
176
158
171
153
198
200
175
176
174
140
148
155
143
143
143
151
197
165
174
174
171
160
190
195
143
200
189
149
174
168
154
198
150
189
199
199
194
162
153
188
142
189
143
144
154
149
151
140
193
194
180
185
184
180
147
142
183
166
149
161
144
141
192
154
181
141
144
160
175
190
192
176
165
170
175
172
151
167
154
196
157
195
164
168
150
199
169
148
182
174
172
146
160
194
195
144
160
197
174
193
147
145
155
194
199
162
182
156
154
146
140
197
145
147
179
186
153
174
169
163
180
155
151
179
196
183
173
197
197
199
172
172
169
179
145
169
149
189
174
144
193
175
198
187
177
177
178
169
174
173
197
192
173
188
142
177
191
192
169
140
170
178
195
180
194
149
140
188
166
193
175
158
162
183
152
149
196
144
176
157
166
155
199
155
193
197
195
169
144
153
146
155
140
142
172
175
145
143
195
199
169
197
185
147
144
150
190
154
161
179
172
146
174
178
148
180
200
162
171
154
158
193
180
195
148
143
184
198
147
179
159
156
168
156
143
197
192
172
155
148
178
177
174
192
183
195
170
197
199
176
145
170
192
178
192
192
150
200
198
197
144
159
176
194
148
166
153
187
153
140
158
189
192
162
169
143
143
185
191
142
179
153
187
156
143
144
182
165
140
198
154
141
147
142
144
146
186
187
147
161
185
162
200
169
185
183
200
146
143
170
187
162
142
179
165
143
197
144
167
177
146
151
173
162
186
154
173
187
170
179
142
170
140
195
145
188
166
198
185
161
157
185
196
176
140
147
151
172
183
189
145
176
176
172
198
162
150
197
163
146
164
167
153
163
199
172
167
168
156
163
177
188
187
160
146
183
164
173
182
174
158
176
183
186
160
200
194
169
196
152
199
196
154
147
161
180
191
167
142
188
176
146
167
185
199
168
167
182
158
140
191
188
181
187
170
170
162
191
195
140
182
183
189
154
141
186
176
184
150
178
191
159
170
170
195
187
185
153
177
151
191
169
147
188
153
180
184
183
196
159
195
174
154
198
148
143
183
194
141
187
187
175
164
169
146
174
156
197
179
153
200
187
144
170
142
169
145
178
147
156
141
144
169
147
184
156
195
178
158
147
148
152
183
184
150
185
146
180
193
149
150
193
191
173
164
155
162
153
167
198
176
155
190
150
200
149
140
181
164
152
143
199
175
160
196
165
184
150
164
141
184
195
180
166
174
199
149
160
190
153
173
146
192
164
142
195
180
146
151
170
158
185
156
177
182
196
161
155
167
199
188
152
174
148
187
140
196
146
177
182
194
174
142
182
187
166
181
153
162
184
172
186
157
166
156
162
191
195
158
150
158
159
174
172
172
151
185
143
148
158
151
199
171
173
195
181
177
199
177
177
181
157
158
162
145
155
185
162
198
181
169
141
151
187
173
140
191
162
168
198
157
141
152
178
146
185
176
174
185
187
154
146
151
160
141
140
155
196
158
190
147
196
158
172
199
171
183
154
143
153
193
156
163
162
178
189
188
155
199
177
169
145
164
170
170
155
188
148
143
164
174
170
177
192
183
148
173
143
163
170
189
176
177
182
188
164
168
163
175
184
150
145
157
197
142
164
146
162
192
151
153
166
161
190
176
198
171
191
164
177
199
141
183
167
186
198
158
173
153
194
182
166
171
179
143
191
162
140
163
155
167
163
146
185
156
154
165
144
141
151
143
197
165
164
189
148
187
163
173
180
195
192
152
166
161
170
143
146
184
174
149
149
172
162
153
166
184
148
178
158
155
162
146
195
196
152
156
194
191
162
142
189
140
145
175
176
183
200
173
191
179
155
159
174
152
171
164
179
145
198
166
200
171
142
167
179
176
189
181
171
199
167
187
168
168
181
172
169
150
199
148
179
140
199
163
169
195
166
178
184
158
140
145
167
166
173
181
158
167
147
162
151
186
164
155
184
195
198
196
178
158
150
150
162
156
194
180
146
191
173
194
189
182
163
180
197
167
199
180
157
197
194
180
188
149
143
194
156
163
170
188
152
166
186
165
166
184
152
188
177
143
163
147
168
156
178
178
174
191
156
185
158
159
191
186
145
160
178
152
158
171
188
173
152
144
196
146
180
200
197
169
168
197
180
155
194
150
167
187
189
140
168
176
191
150
144
193
166
190
159
159
148
167
153
156
152
163
162
144
178
144
173
197
173
182
144
196
176
175
159
153
187
158
198
150
161
199
181
195
172
199
158
141
144
192
166
154
170
188
198
152
199
153
174
159
191
170
144
177
147
193
189
174
173
162
173
195
195
194
173
152
172
163
185
160
161
176
146
164
177
145
164
155
191
161
175
194
143
199
151
170
156
199
149
148
144
189
145
151
183
152
147
148
151
186
166
181
195
152
162
144
179
195
197
183
157
180
172
161
196
144
166
168
186
160
166
167
143
164
166
146
190
163
176
176
172
176
158
157
149
159
150
200
176
143
144
154
140
157
185
183
143
191
147
140
145
140
192
181
161
179
150
168
197
186
147
157
166
184
192
169
150
185
176
140
176
172
158
196
140
155
173
163
187
170
192
158
189
143
140
161
195
193
185
146
157
177
148
140
182
151
142
147
159
165
149
167
164
187
198
156
172
147
185
179
170
190
142
140
155
156
178
148
152
183
151
154
177
141
142
185
141
145
156
193
160
160
185
150
166
192
148
142
188
197
175
192
193
178
158
174
165
166
193
193
142
200
159
163
167
147
192
188
184
144
140
181
151
145
199
141
148
161
166
183
151
163
159
165
188
168
180
188
159
173
142
167
144
159
179
161
195
198
150
162
143
171
160
140
157
154
188
167
151
161
142
188
157
173
189
186
191
163
170
158
180
181
160
155
166
180
168
176
173
143
141
179
151
151
140
158
195
190
184
196
182
179
172
191
152
159
163
159
189
148
157
149
200
192
183
154
150
191
142
171
157
161
161
155
164
148
179
167
200
145
157
196
158
152
142
159
189
163
164
200
174
165
158
151
197
178
164
180
198
148
180
178
150
197
160
196
152
175
168
142
168
182
146
179
167
162
154
144
150
178
193
194
147
161
182
182
198
180
166
165
171
168
193
159
199
140
185
182
200
146
197
194
179
154
147
156
163
162
164
183
155
163
154
190
192
143
191
199
175
179
149
140
140
145
186
158
189
191
195
173
185
149
148
160
155
196
168
198
160
148
170
180
156
194
147
182
144
180
146
183
185
190
179
152
183
175
147
154
195
198
165
151
146
167
196
189
169
194
177
154
174
144
169
140
184
179
182
172
184
151
182
182
172
170
187
157
156
162
196
167
190
144
153
166
171
198
140
149
191
163
143
163
167
162
165
200
199
150
174
197
152
197
200
159
164
144
178
191
155
185
158
144
143
174
191
140
180
179
176
144
190
181
158
147
164
194
181
175
164
165
174
191
193
193
140
146
185
155
174
163
164
149
173
166
166
164
188
163
149
190
143
180
172
143
157
149
148
170
158
158
158
173
196
175
141
160
157
165
176
186
145
170
151
148
191
177
154
194
197
169
170
167
143
185
197
163
154
151
157
162
155
156
150
183
168
167
199
180
193
187
194
149
142
171
195
172
162
164
173
181
161
163
146
182
141
166
157
175
198
183
184
184
194
191
184
190
145
182
174
167
194
193
147
151
147
200
158
159
150
152
179
176
152
176
181
174
189
174
142
191
170
154
148
189
152
190
172
167
149
179
163
185
148
179
140
161
145
191
175
184
162
188
173
200
174
180
188
149
161
149
144
187
156
170
161
166
160
184
154
189
164
173
150
163
146
163
199
182
200
190
197
190
150
172
174
171
191
146
184
168
168
195
150
169
175
189
192
142
146
183
152
193
184
176
153
177
147
200
180
147
141
142
177
183
192
173
158
174
141
196
169
196
191
181
140
142
166
177
194
194
167
145
152
159
162
154
145
195
144
189
197
189
198
184
155
195
151
188
141
165
147
153
198
191
157
145
160
155
141
199
150
158
140
195
145
186
195
149
194
146
151
145
147
158
180
200
199
164
163
174
200
183
142
161
177
159
169
191
179
199
165
177
190
173
183
194
182
149
197
166
152
165
147
191
183
160
151
188
185
143
170
196
157
176
151
177
196
187
186
165
148
162
180
168
140
195
161
180
185
195
162
147
181
196
168
154
166
177
161
143
162
161
181
200
144
176
181
196
172
174
166
170
198
189
171
144
195
183
169
146
142
157
163
151
177
151
163
166
166
168
178
140
185
191
165
182
179
187
166
159
160
196
142
175
143
192
159
165
157
147
186
143
166
146
199
199
198
141
181
150
155
147
159
151
190
188
194
183
141
174
173
161
189
179
169
163
194
196
164
168
162
143
143
162
159
197
163
188
160
162
200
172
181
198
175
161
195
162
175
179
141
165
180
176
183
184
183
169
146
182
200
171
161
193
198
198
183
196
141
151
175
181
171
163
158
168
156
188
174
162
159
169
159
177
191
171
198
160
159
199
145
163
164
184
159
153
189
166
140
165
142
158
142
150
185
163
151
156
193
164
179
150
148
166
169
194
151
188
171
187
141
190
145
144
179
191
184
177
171
177
156
179
176
195
174
158
181
163
143
170
143
147
170
161
171
179
158
181
141
152
193
200
188
174
175
164
174
142
144
148
161
183
149
173
196
174
175
185
156
161
185
175
168
165
182
175
148
185
146
183
192
161
167
187
192
191
149
175
159
192
172
199
141
169
171
185
188
162
151
152
151
196
147
157
156
146
157
149
155
142
146
165
194
179
166
189
159
144
173
188
150
163
177
195
175
178
162
161
197
190
185
179
187
154
141
146
170
190
168
182
174
175
156
176
167
174
181
144
195
197
151
180
195
161
166
184
174
187
184
147
195
173
177
172
166
171
143
194
181
165
185
177
179
188
166
151
169
164
200
167
146
141
195
176
174
175
181
191
188
156
192
168
183
179
199
169
150
198
162
200
193
169
180
184
191
150
182
191
177
173
163
173
171
165
158
179
166
168
185
163
193
174
158
175
141
166
150
143
173
163
186
163
142
194
189
175
193
161
176
195
195
181
199
168
168
165
146
169
185
174
169
176
197
182
156
193
153
165
194
171
188
142
171
179
156
199
177
200
188
160
183
159
149
141
182
150
140
141
153
147
177
168
168
148
145
144
197
199
191
189
140
143
160
153
148
175
172
146
146
150
171
146
153
159
149
155
163
183
151
182
188
160
156
171
183
150
170
175
200
158
141
166
146
153
172
154
182
187
196
141
193
155
145
159
156
190
146
168
156
193
170
192
195
145
146
198
185
171
183
187
148
170
159
178
143
153
183
199
172
142
161
194
188
157
150
169
155
159
159
193
161
190
183
181
171
178
180
146
155
185
195
174
193
198
155
162
185
191
171
194
147
168
171
192
181
176
163
149
148
146
199
180
160
148
144
180
183
166
162
176
162
155
156
194
151
153
183
177
141
155
176
178
174
185
161
151
148
189
194
176
190
172
144
153
177
191
179
163
158
145
170
184
145
146
162
198
168
193
184
160
152
149
165
192
145
165
195
158
161
199
185
173
195
158
180
194
161
192
193
140
141
189
181
152
167
141
172
161
175
150
146
174
159
143
171
145
161
156
182
149
173
163
181
162
149
191
200
145
152
166
188
150
177
140
186
181
144
156
157
191
190
186
183
158
193
189
198
176
175
143
150
167
190
197
171
154
165
189
141
176
190
196
142
168
184
160
140
178
150
160
195
152
155
182
159
155
186
155
153
194
169
163
150
155
191
168
196
140
159
173
140
173
188
176
183
162
189
199
195
160
142
189
198
147
186
155
158
160
177
153
149
142
157
168
146
180
154
150
200
187
170
189
168
170
198
141
193
181
177
165
147
191
145
143
189
185
187
140
178
170
192
165
165
142
152
152
150
169
167
197
144
159
162
150
190
148
171
198
197
170
197
148
151
163
159
184
154
156
172
190
145
188
177
194
144
199
152
190
166
151
146
165
162
145
172
145
183
152
188
158
192
183
182
157
159
177
147
171
149
192
185
144
175
145
158
165
174
182
154
181
194
146
187
162
195
152
192
167
154
193
147
164
153
195
162
196
187
145
191
174
150
178
154
193
171
182
199
152
198
188
184
159
163
156
153
184
151
144
149
178
164
167
180
153
183
141
195
151
182
191
177
142
168
151
193
161
181
199
157
186
162
156
157
198
158
149
151
180
156
188
150
153
177
174
194
158
194
141
183
161
146
162
189
163
164
154
166
197
181
194
159
193
191
183
150
160
179
180
182
174
162
152
186
164
176
178
144
144
164
191
159
176
184
149
178
195
171
166
166
189
161
145
143
142
169
194
178
184
163
147
174
146
153
200
140
177
159
187
194
157
151
194
148
181
190
142
187
193
150
182
168
173
167
161
178
182
190
185
195
172
153
183
189
143
181
152
166
199
191
141
173
192
155
146
187
162
183
147
196
198
172
165
160
167
164
169
151
143
163
161
171
183
198
166
148
152
199
183
171
168
197
146
189
169
170
172
168
186
167
152
151
155
169
165
156
163
164
173
182
195
186
187
192
149
147
200
151
140
183
170
146
154
154
161
170
197
145
142
147
160
155
142
195
174
176
176
168
163
155
161
149
174
192
196
149
193
146
142
146
179
198
165
142
193
198
154
148
149
188
160
169
189
141
144
180
168
148
164
174
167
141
173
197
148
163
176
181
190
165
160
178
156
167
143
184
141
175
140
183
192
142
182
195
145
175
140
149
158
143
141
148
169
151
198
171
144
183
152
184
194
196
144
172
145
182
152
149
181
192
151
141
199
183
175
144
171
195
179
157
147
144
160
176
197
169
164
140
177
199
200
154
146
194
167
143
176
153
192
168
199
185
183
176
188
195
187
176
177
156
188
200
183
193
186
192
154
174
184
176
182
173
181
169
174
198
161
196
160
197
168
159
180
190
160
175
183
150
194
166
197
163
166
146
169
148
171
167
167
140
162
171
142
177
181
178
149
198
199
183
150
151
170
177
199
170
171
166
183
195
164
154
161
162
194
146
151
195
143
153
175
161
158
184
151
158
190
194
143
194
199
141
194
165
141
144
157
189
179
185
172
157
166
157
180
171
149
159
180
175
197
188
193
169
154
171
142
190
172
197
155
174
146
191
165
158
191
143
146
200
176
183
175
144
169
180
170
156
158
153
181
168
178
177
190
199
163
184
165
148
180
178
169
146
198
171
152
157
178
173
192
161
185
162
174
149
174
140
178
189
163
185
168
193
141
152
187
189
165
174
192
185
171
152
178
188
176
196
163
195
178
144
144
170
159
166
177
198
184
152
156
184
186
174
164
173
185
189
150
142
140
159
178
193
187
183
145
156
179
186
153
172
153
185
156
167
149
149
160
177
148
193
158
184
161
151
170
141
141
185
145
189
169
190
193
190
184
195
193
144
163
170
190
175
145
183
152
143
192
162
168
198
198
193
148
188
160
172
195
151
182
144
191
158
154
173
198
192
194
165
187
193
180
171
182
168
167
146
146
172
157
198
156
145
146
162
171
190
176
182
159
173
176
164
170
154
151
159
153
141
166
153
188
180
180
149
165
190
175
188
189
149
168
164
168
151
153
145
141
186
185
162
169
192
191
175
179
145
178
144
171
172
191
178
155
197
198
186
186
167
183
173
160
159
191
171
144
170
176
149
178
200
182
198
155
183
142
185
151
189
194
142
162
165
158
165
184
182
167
178
179
191
143
147
145
158
199
179
192
185
141
190
184
149
142
184
154
199
198
163
144
168
185
189
142
155
155
175
186
164
192
151
142
141
200
160
174
184
175
186
164
188
184
163
163
172
196
184
180
174
150
159
156
160
185
147
192
171
145
145
173
193
186
180
172
151
194
172
186
186
199
142
198
170
160
161
198
182
183
148
183
141
161
145
183
183
173
152
193
187
171
156
148
140
162
157
164
184
185
199
187
188
192
177
141
144
183
198
141
179
140
142
178
152
164
151
167
169
140
147
174
186
149
173
195
173
140
141
146
184
160
151
187
143
172
160
172
165
142
162
185
155
176
188
185
146
157
180
174
156
152
178
185
148
153
155
161
175
198
180
144
158
174
196
161
171
167
153
179
148
173
182
154
159
190
181
170
175
177
164
171
150
155
198
183
197
141
147
153
152
155
167
149
146
153
171
192
192
155
178
181
164
187
192
177
191
188
146
155
151
141
144
160
162
157
194
180
148
171
193
190
190
193
147
158
173
167
193
193
191
198
197
144
172
151
160
148
190
200
170
162
142
156
176
140
154
187
157
148
177
193
169
200
178
182
182
195
182
165
165
171
166
194
166
173
170
167
140
193
166
183
157
199
179
151
156
184
143
172
177
183
157
157
154
196
187
140
151
169
164
152
148
156
167
178
161
193
144
153
150
159
180
195
184
178
140
152
166
174
184
180
176
143
172
155
193
184
174
186
167
179
153
187
171
160
161
179
150
144
191
150
153
188
155
199
193
152
166
193
183
189
179
152
173
198
147
170
163
144
174
155
195
192
189
180
199
174
193
198
152
183
198
141
178
190
146
196
164
170
176
193
147
187
183
151
160
178
145
159
182
151
177
183
161
163
182
156
145
142
149
178
159
173
189
171
145
143
157
160
171
187
175
148
158
156
186
185
150
152
155
172
154
164
185
155
173
182
192
153
149
144
140
156
188
144
158
167
148
150
142
177
179
170
148
149
195
171
175
140
142
170
184
189
166
171
140
183
199
168
186
144
163
193
144
148
186
177
199
180
152
182
180
179
164
176
169
192
141
192
194
146
197
195
192
167
194
200
150
190
165
193
183
144
141
194
167
165
170
157
149
142
187
162
168
141
147
152
192
162
182
181
184
175
185
168
168
146
165
155
172
164
184
165
140
183
181
169
166
153
144
178
161
178
155
179
162
196
200
182
163
162
187
167
169
169
196
143
161
160
160
160
160
182
162
147
175
184
162
162
147
169
159
173
147
176
193
189
175
183
156
163
179
157
165
174
194
153
188
141
146
156
188
179
160
197
196
158
146
151
159
170
182
188
193
184
149
160
194
189
158
150
171
177
176
158
144
178
157
176
190
194
146
165
195
171
150
197
191
175
183
150
153
178
159
151
174
196
165
170
186
164
142
151
184
140
157
150
174
176
195
173
158
199
199
151
198
179
186
184
187
180
148
149
145
163
180
167
197
162
147
140
185
168
148
160
178
183
200
157
195
192
172
174
196
189
153
181
144
198
164
181
156
145
171
160
187
191
163
193
148
141
159
153
175
173
145
192
179
163
176
171
185
187
142
174
145
146
147
164
140
199
145
159
152
198
189
183
145
194
176
165
186
144
164
200
152
155
172
164
143
165
157
180
163
194
165
199
198
163
140
194
183
159
165
173
149
181
160
171
163
192
195
194
156
170
162
180
191
147
194
169
149
194
177
169
157
165
178
152
145
174
189
169
193
172
179
141
144
166
174
140
142
198
160
152
169
146
191
157
176
185
187
150
149
170
168
148
175
191
143
185
140
191
190
143
200
158
173
165
165
196
180
177
153
158
164
157
143
169
192
179
147
163
176
146
167
166
162
166
170
165
172
155
157
184
197
182
182
145
154
145
194
178
151
196
162
155
172
198
177
161
178
169
194
170
199
162
164
164
148
186
151
192
149
167
174
158
187
173
179
186
196
187
170
167
195
173
164
171
166
173
193
198
190
160
192
152
190
177
173
149
173
150
163
149
185
196
145
175
176
166
158
193
167
155
146
140
173
169
161
198
188
188
196
191
192
141
199
163
193
164
158
166
199
167
167
152
196
198
150
156
154
181
188
152
196
173
181
147
181
178
180
176
145
149
198
167
187
173
197
188
169
175
153
175
147
189
146
187
188
197
153
170
156
193
157
161
145
183
182
186
162
182
150
165
179
155
140
175
147
162
152
185
199
181
176
150
190
185
183
175
175
194
180
193
180
183
161
144
186
165
157
185
166
195
168
197
171
151
146
153
172
162
173
196
161
184
181
177
188
197
167
141
168
194
157
179
171
169
169
175
152
193
176
164
200
195
151
191
140
181
168
156
198
153
182
188
159
140
156
179
167
180
167
170
172
150
185
153
157
159
185
158
148
184
198
151
189
176
178
184
147
146
141
199
198
167
177
191
200
197
185
186
192
160
160
167
143
163
167
184
148
172
152
146
196
156
151
161
200
182
200
198
143
170
152
141
173
175
200
185
180
150
185
180
174
161
178
180
183
165
155
185
181
191
157
167
187
180
184
147
160
155
165
168
146
155
198
151
198
164
191
157
156
185
153
185
179
151
166
166
149
172
143
165
196
183
187
163
160
155
186
179
149
160
172
190
173
193
182
199
147
144
153
149
149
162
194
146
172
185
199
143
181
185
187
179
177
179
198
159
198
152
171
200
181
164
160
146
190
176
145
181
140
160
146
166
155
144
158
142
156
197
172
155
199
196
170
157
186
178
166
175
146
138
148
144
121
102
128
137
102
114
112
113
124
123
125
134
100
130
121
102
126
142
133
110
132
147
106
118
109
124
101
130
136
110
142
123
135
119
148
101
127
110
102
141
139
116
142
140
117
122
141
121
138
149
134
130
112
139
117
149
130
135
112
123
124
129
106
150
111
121
135
136
136
139
142
118
121
106
150
102
104
113
142
112
133
114
118
113
145
121
125
102
139
107
145
134
117
108
129
126
100
139
108
128
135
145
121
130
133
110
111
118
150
134
133
150
124
141
136
114
113
101
108
135
118
143
108
125
142
135
143
140
142
129
137
142
132
147
112
122
108
136
134
130
119
104
147
116
127
123
133
120
132
108
102
136
101
122
116
142
110
144
143
149
148
141
122
148
130
150
115
107
142
147
149
127
122
123
127
132
109
134
146
148
149
129
136
141
119
109
109
145
125
104
125
107
144
129
115
139
125
105
113
141
101
107
101
105
126
124
103
130
115
107
142
148
102
103
117
115
101
128
120
102
101
129
142
117
122
122
106
119
118
150
130
133
123
123
149
138
121
143
149
118
112
132
144
143
126
117
104
134
113
134
119
139
132
148
102
129
100
109
106
132
128
121
145
100
109
146
108
148
135
122
147
142
145
147
112
117
142
121
142
101
137
114
118
127
122
146
104
141
132
110
149
142
125
136
147
111
126
140
132
105
119
117
129
104
139
119
100
149
119
126
128
122
142
123
142
142
146
122
118
128
140
134
128
149
136
132
137
138
128
147
146
149
147
131
127
142
126
135
131
148
124
122
109
119
126
148
106
142
141
113
133
106
