1
1
1
1
2
1
2
2
2
3
2
3
3
3
4
1
1
1
1
3
4
4
4
5
1
1
2
2
4
5
5
5
5
6
2
2
3
3
5
6
6
6
6
6
6
7
3
4
6
6
7
7
7
7
7
7
7
8
1
4
5
5
5
5
6
7
8
8
8
8
8
8
9
9
1
3
5
6
6
6
7
7
7
8
8
9
9
10
10
1
6
6
6
7
7
7
7
8
10
10
11
11
1
2
5
7
7
7
7
8
8
8
9
11
11
12
12
1
6
7
7
7
7
7
8
8
9
9
9
10
13
13
1
7
7
8
9
9
10
10
11
14
14
1
7
7
7
9
10
10
11
11
15
15
1
7
7
7
7
7
7
8
8
8
10
10
11
12
16
16
7
7
8
8
9
9
9
10
10
11
13
17
17
1
9
9
10
11
11
14
18
18
1
1
7
7
7
10
10
10
15
19
19
1
7
7
7
7
7
7
7
8
8
8
10
11
16
20
20
1
2
7
7
8
8
9
9
9
10
10
11
17
21
21
1
3
7
7
9
9
10
10
11
11
18
22
22
2
4
7
7
7
7
7
8
8
8
10
10
10
11
19
23
23
3
7
7
7
7
7
8
8
9
9
9
10
10
11
20
24
24
7
7
7
7
7
7
8
9
9
10
10
10
10
11
11
21
25
25
1
7
7
8
8
9
9
9
10
10
10
10
10
11
11
11
22
26
26
1
2
9
9
10
11
11
11
11
11
12
23
25
25
27
27
2
3
9
10
10
10
10
10
11
12
13
24
26
26
28
28
3
4
8
8
9
10
10
11
12
13
13
14
25
27
27
29
1
8
8
8
9
9
9
9
10
11
11
12
13
14
14
26
28
28
30
2
8
10
10
10
10
10
11
12
12
13
13
13
14
27
29
31
1
3
11
11
11
11
14
14
15
28
30
32
2
4
11
11
11
12
12
13
14
15
16
29
31
33
3
11
11
11
11
11
12
12
14
14
14
14
16
16
17
17
26
30
32
34
11
11
11
12
12
13
13
13
13
16
17
17
17
17
27
31
33
33
35
35
11
11
11
13
13
14
14
14
14
14
16
17
28
32
34
34
36
36
11
12
14
14
16
17
18
29
33
35
35
37
37
1
11
12
12
13
13
14
17
18
19
34
36
36
38
38
12
12
13
13
13
14
16
19
20
35
39
39
1
1
13
14
14
14
16
17
20
36
40
40
1
13
13
13
14
15
15
17
19
37
41
41
12
12
12
14
14
14
16
19
19
19
20
38
42
42
1
13
13
13
14
15
16
16
20
20
20
39
43
43
1
14
15
16
17
17
40
44
44
1
1
13
13
14
14
15
16
19
41
45
45
1
1
12
12
13
14
14
14
14
19
19
19
20
42
46
46
2
13
13
13
14
15
16
16
20
20
20
43
47
47
1
3
13
13
14
14
15
16
17
17
19
44
48
48
2
4
12
12
14
14
14
15
16
19
19
19
20
45
49
49
3
13
13
13
13
13
13
14
14
14
15
16
16
20
20
20
46
50
50
13
13
14
14
14
14
15
16
17
17
19
19
19
19
19
47
51
51
1
12
14
14
15
15
15
16
19
20
20
20
20
20
20
20
48
52
52
1
2
15
16
16
17
17
20
21
21
49
51
51
53
53
2
3
13
15
16
16
16
16
22
22
50
52
52
54
54
3
4
13
14
16
16
16
17
17
22
23
23
51
53
53
55
1
13
13
13
16
16
17
17
18
18
22
22
23
52
54
54
56
2
13
14
16
16
16
17
17
17
18
18
19
22
23
23
53
55
57
1
3
17
17
18
18
18
23
24
54
56
58
2
4
17
18
18
18
18
23
23
24
25
25
55
57
59
3
18
18
18
18
18
19
22
23
25
26
26
26
26
52
56
58
60
17
17
17
18
18
18
19
19
19
20
23
23
26
26
53
57
59
59
61
61
17
18
19
20
20
20
21
21
22
25
54
58
60
60
62
62
18
18
21
22
22
23
25
26
55
59
61
61
63
63
1
17
19
20
21
23
23
25
25
26
27
60
62
62
64
64
1
19
19
20
20
21
22
25
26
26
27
28
61
65
65
1
19
21
21
23
26
28
29
62
66
66
1
20
21
21
22
24
28
29
63
67
67
1
19
20
20
21
21
21
21
23
25
25
28
29
64
68
68
19
19
21
22
22
26
26
28
28
29
65
69
69
1
22
23
23
29
29
66
70
70
1
1
20
20
21
23
24
28
67
71
71
1
20
20
20
21
21
21
21
21
25
25
28
29
68
72
72
1
2
19
19
21
22
22
26
26
28
28
29
69
73
73
1
3
20
21
22
23
23
28
29
29
70
74
74
2
4
20
20
21
21
21
21
23
24
25
25
28
29
71
75
75
3
19
19
20
20
21
21
22
22
26
26
28
28
29
72
76
76
20
20
20
21
21
21
21
22
23
23
28
28
28
29
29
73
77
77
1
19
21
21
22
22
23
24
26
26
28
28
28
29
29
29
74
78
78
1
2
22
23
23
29
29
29
29
29
30
75
77
77
79
79
2
3
23
23
23
23
23
24
25
30
31
76
78
78
80
80
3
4
20
20
23
23
24
24
26
31
31
32
77
79
79
81
1
20
20
20
23
23
23
23
25
25
25
25
31
32
32
78
80
80
82
2
20
23
24
24
24
25
26
26
26
26
31
31
32
79
81
83
1
3
25
25
25
26
26
32
32
32
33
80
82
84
2
4
25
25
25
26
31
32
32
33
34
78
81
82
83
85
3
24
24
24
25
25
26
26
26
26
32
32
34
34
35
35
79
83
84
86
24
25
25
25
27
27
31
34
35
35
35
35
80
84
85
85
87
87
24
24
25
25
26
28
28
28
28
31
32
34
34
35
81
85
86
86
88
88
25
25
26
27
31
32
35
35
36
86
87
87
89
89
1
26
26
27
27
32
36
37
87
88
88
90
90
1
26
26
27
27
27
34
37
38
88
91
91
1
27
27
27
27
28
34
35
37
38
89
92
92
1
27
27
27
28
28
29
35
37
38
90
93
93
1
26
26
26
27
29
29
37
37
38
91
94
94
1
1
2
27
27
27
27
30
34
34
38
38
92
95
95
1
3
27
27
27
27
28
28
35
35
37
93
96
96
2
4
26
26
27
27
28
29
29
37
37
37
38
94
97
97
3
27
27
27
27
27
27
27
27
27
29
34
34
38
38
38
95
98
98
27
27
27
27
28
28
28
30
35
35
37
37
37
37
37
96
99
99
1
26
27
28
28
29
29
29
37
38
38
38
38
38
38
38
97
100
100
1
2
29
29
30
35
35
38
39
39
98
99
99
101
101
2
3
27
29
29
29
30
30
40
40
99
100
100
102
102
3
4
27
28
29
30
30
30
34
40
41
41
100
101
101
103
1
27
27
27
30
30
30
31
34
35
40
40
41
101
102
102
104
2
27
28
29
30
30
31
31
32
34
34
35
40
41
41
102
103
105
1
3
31
31
32
35
35
41
42
103
104
106
2
4
30
32
32
32
32
41
41
42
43
43
104
105
107
3
31
32
32
32
33
35
40
41
43
44
44
44
44
101
104
106
108
30
30
30
31
32
32
32
33
33
34
41
41
44
44
102
105
107
107
109
109
30
32
33
34
34
34
35
35
40
43
103
106
108
108
110
110
32
32
35
40
40
41
43
44
104
107
109
109
111
111
1
30
33
34
35
41
41
43
43
44
45
108
110
110
112
112
1
33
33
34
34
35
36
43
44
44
45
46
109
113
113
1
33
35
35
37
44
46
47
110
114
114
1
34
35
35
36
38
46
47
111
115
115
1
33
34
34
35
35
35
35
37
43
43
46
47
112
116
116
33
33
35
36
36
44
44
46
46
47
113
117
117
1
36
37
37
47
47
114
118
118
1
1
34
34
35
37
38
46
115
119
119
1
34
34
34
35
35
35
35
35
43
43
46
47
116
120
120
1
2
33
33
35
36
36
44
44
46
46
47
117
121
121
1
3
34
35
36
37
37
46
47
47
118
122
122
2
4
34
34
35
35
35
35
37
38
43
43
46
47
119
123
123
3
33
33
34
34
35
35
36
36
44
44
46
46
47
120
124
124
34
34
34
35
35
35
35
36
37
37
46
46
46
47
47
121
125
125
1
33
35
35
36
36
37
38
44
44
46
46
46
47
47
47
122
126
126
1
2
36
37
37
47
47
47
47
47
48
123
125
125
127
127
2
3
37
37
37
37
37
38
43
48
49
124
126
126
128
128
3
4
34
34
37
37
38
38
44
49
49
50
125
127
127
129
1
34
34
34
37
37
37
37
39
39
43
43
49
50
50
126
128
128
130
2
34
37
38
38
38
40
40
43
44
44
49
49
50
127
129
131
1
3
39
39
39
44
50
50
51
128
130
132
2
4
39
39
39
40
44
49
50
51
52
129
131
133
3
38
38
38
39
39
40
40
50
50
50
50
52
52
53
53
126
130
132
134
38
39
39
39
40
40
41
41
49
52
53
53
53
53
127
131
133
133
135
135
38
39
39
40
42
42
42
42
49
50
52
53
128
132
134
134
136
136
38
40
41
50
52
53
54
129
133
135
135
137
137
1
39
39
40
41
41
49
53
54
55
134
136
136
138
138
40
40
40
41
41
50
52
55
56
135
139
139
1
1
41
41
41
42
52
53
56
136
140
140
1
41
41
41
41
42
43
53
55
137
141
141
40
40
40
41
41
42
43
55
55
55
56
138
142
142
1
41
41
41
41
43
52
52
56
56
56
139
143
143
1
42
42
44
53
53
140
144
144
1
1
41
41
41
41
43
43
55
141
145
145
1
1
40
40
41
41
41
41
42
55
55
55
56
142
146
146
2
41
41
41
41
43
52
52
56
56
56
143
147
147
1
3
41
41
41
42
42
44
53
53
55
144
148
148
2
4
40
40
41
41
42
43
43
55
55
55
56
145
149
149
3
41
41
41
41
41
41
41
41
41
43
52
52
56
56
56
146
150
150
41
41
41
41
42
42
42
44
53
53
55
55
55
55
55
147
151
151
1
40
41
42
42
43
43
43
55
56
56
56
56
56
56
56
148
152
152
1
2
43
43
44
53
53
56
57
57
149
151
151
153
153
2
3
41
43
43
43
44
44
58
58
150
152
152
154
154
3
4
41
42
43
44
44
44
52
58
59
59
151
153
153
155
1
41
41
41
44
44
44
45
52
53
58
58
59
152
154
154
156
2
41
42
43
44
44
45
45
46
52
52
53
58
59
59
153
155
157
1
3
45
45
46
53
53
59
60
154
156
158
2
4
44
46
46
46
46
59
59
60
61
61
155
157
159
3
45
46
46
46
47
53
58
59
61
62
62
62
62
152
156
158
160
44
44
44
45
46
46
46
47
47
48
59
59
62
62
153
157
159
159
161
161
44
46
47
48
48
48
49
49
58
61
154
158
160
160
162
162
46
46
49
58
58
59
61
62
155
159
161
161
163
163
1
44
47
48
49
59
59
61
61
62
63
160
162
162
164
164
1
47
47
48
48
49
50
61
62
62
63
64
161
165
165
1
47
49
49
51
62
64
65
162
166
166
1
48
49
49
50
52
64
65
163
167
167
1
47
48
48
49
49
49
49
51
61
61
64
65
164
168
168
47
47
49
50
50
62
62
64
64
65
165
169
169
1
50
51
51
65
65
166
170
170
1
1
48
48
49
51
52
64
167
171
171
1
48
48
48
49
49
49
49
49
61
61
64
65
168
172
172
1
2
47
47
49
50
50
62
62
64
64
65
169
173
173
1
3
48
49
50
51
51
64
65
65
170
174
174
2
4
48
48
49
49
49
49
51
52
61
61
64
65
171
175
175
3
47
47
48
48
49
49
50
50
62
62
64
64
65
172
176
176
48
48
48
49
49
49
49
50
51
51
64
64
64
65
65
173
177
177
1
47
49
49
50
50
51
52
62
62
64
64
64
65
65
65
174
178
178
1
2
50
51
51
65
65
65
65
65
66
175
177
177
179
179
2
3
51
51
51
51
51
52
61
66
67
176
178
178
180
180
3
4
48
48
51
51
52
52
62
67
67
68
177
179
179
181
1
48
48
48
51
51
51
51
53
53
61
61
67
68
68
178
180
180
182
2
48
51
52
52
52
54
54
61
62
62
67
67
68
179
181
183
1
3
53
53
53
62
62
68
68
68
69
180
182
184
2
4
53
53
53
54
67
68
68
69
70
178
181
182
183
185
3
52
52
52
53
53
54
54
54
54
68
68
70
70
71
71
179
183
184
186
52
53
53
53
55
55
67
70
71
71
71
71
180
184
185
185
187
187
52
52
53
53
54
56
56
56
56
67
68
70
70
71
181
185
186
186
188
188
53
53
54
55
67
68
71
71
72
186
187
187
189
189
1
54
54
55
55
68
72
73
187
188
188
190
190
1
54
54
55
55
55
70
73
74
188
191
191
1
55
55
55
55
56
70
71
73
74
189
192
192
1
55
55
55
56
56
57
71
73
74
190
193
193
1
54
54
54
55
57
57
73
73
74
191
194
194
1
1
2
55
55
55
55
58
70
70
74
74
192
195
195
1
3
55
55
55
55
56
56
71
71
73
193
196
196
2
4
54
54
55
55
56
57
57
73
73
73
74
194
197
197
3
55
55
55
55
55
55
55
55
55
57
70
70
74
74
74
195
198
198
55
55
55
55
56
56
56
58
71
71
73
73
73
73
73
196
199
199
1
54
55
56
56
57
57
57
73
74
74
74
74
74
74
74
197
200
200
1
2
57
57
58
71
71
74
75
75
198
199
199
201
201
2
3
55
57
57
57
58
58
76
76
199
200
200
202
202
3
4
55
56
57
58
58
58
70
76
77
77
200
201
201
203
55
55
55
58
58
58
59
70
71
76
76
77
201
202
202
204
1
55
56
57
58
58
59
59
60
70
70
71
76
77
77
202
203
205
1
1
2
5
5
5
59
59
60
71
71
77
77
77
78
203
204
206
1
3
4
4
5
5
6
6
6
58
60
60
60
60
71
77
78
79
79
201
204
204
205
207
2
4
5
7
7
7
7
59
59
60
60
60
61
76
79
80
80
202
205
206
208
3
4
6
8
8
8
8
60
61
62
77
80
203
206
207
209
5
7
9
9
58
58
58
58
60
60
60
60
61
62
63
76
80
80
204
207
208
210
4
4
5
5
10
10
58
61
61
62
76
76
77
77
79
79
79
80
207
208
209
209
211
1
5
5
5
7
11
11
60
62
62
63
63
77
77
80
80
80
208
209
210
210
212
1
1
5
5
6
7
12
12
61
62
62
63
63
79
81
81
209
210
211
213
5
5
7
8
13
13
61
62
63
63
63
79
80
82
82
210
211
212
214
5
5
7
9
14
14
61
63
63
63
64
64
80
82
82
83
83
212
213
215
5
5
7
10
15
15
62
62
63
64
65
65
79
83
83
213
214
216
5
5
5
7
11
16
16
61
62
63
63
65
66
79
80
82
82
214
215
217
5
5
5
6
7
7
7
12
17
17
61
63
63
64
64
80
82
82
83
83
215
216
218
5
5
7
8
8
13
16
16
18
18
64
65
65
83
83
216
217
219
9
9
14
17
17
19
65
66
217
218
220
1
5
9
15
18
18
20
218
219
221
1
1
5
9
9
16
19
21
219
220
222
1
5
5
9
10
17
20
22
220
221
223
1
9
9
10
11
11
11
11
21
23
221
222
224
1
4
5
9
9
9
11
11
15
20
22
22
24
24
62
63
80
82
221
223
225
1
5
5
9
16
21
23
23
25
25
61
62
62
63
63
64
80
82
82
83
214
222
224
226
5
5
6
9
10
11
11
17
22
24
24
26
26
61
61
62
63
64
64
65
65
79
82
83
83
214
215
223
223
225
227
4
4
4
5
6
7
9
11
11
12
12
23
27
27
61
62
63
64
65
65
66
66
79
82
83
212
215
216
224
226
228
1
4
4
5
5
7
8
11
13
13
24
28
28
61
62
63
64
65
65
66
66
82
213
216
217
225
227
229
1
4
5
5
6
8
9
11
11
13
25
29
29
61
64
65
66
79
214
217
218
226
228
230
1
4
4
4
5
5
7
9
10
13
13
13
26
30
30
65
66
215
218
219
227
229
231
5
5
5
6
8
10
11
11
11
13
27
31
31
66
216
219
223
228
230
232
4
5
6
7
9
11
12
13
13
13
28
32
32
217
222
229
231
233
7
7
8
10
11
11
12
13
13
29
33
33
217
219
221
230
232
234
9
11
13
13
13
13
14
30
34
34
62
63
82
221
222
231
233
235
7
7
11
11
12
13
13
13
13
14
15
31
35
35
61
62
62
63
63
64
82
82
219
232
234
236
7
7
8
8
8
8
13
13
13
13
13
14
14
16
32
34
34
36
36
61
61
62
63
64
64
65
79
80
82
223
233
235
237
7
7
7
7
8
8
11
13
14
14
15
15
17
17
33
35
35
37
61
62
63
64
65
65
66
77
79
80
80
82
207
234
236
238
13
14
15
15
15
16
18
18
34
36
36
38
61
62
63
63
64
65
66
66
77
80
82
208
209
209
235
237
239
7
7
8
8
11
11
14
15
16
16
16
19
19
35
37
39
61
62
63
64
65
66
79
209
210
210
236
238
240
1
1
8
8
8
9
9
11
16
16
16
17
20
20
36
38
40
65
66
210
211
211
237
239
241
1
1
1
7
10
10
11
15
15
15
17
17
18
18
21
21
39
41
66
211
212
212
238
240
241
242
8
8
10
15
16
18
18
18
18
18
18
22
22
34
38
40
40
42
42
212
213
213
239
240
242
243
10
10
10
15
15
18
19
19
23
23
35
39
41
41
43
43
214
214
214
221
240
243
244
8
8
10
19
20
20
24
24
36
40
42
42
44
44
212
214
222
241
244
245
10
10
10
18
20
21
21
25
25
41
45
45
58
58
60
60
79
79
222
242
245
246
2
8
8
10
15
18
18
22
26
26
42
46
46
58
58
58
60
60
60
60
60
61
61
76
76
79
243
246
247
2
3
10
10
10
20
20
21
23
27
27
43
47
47
58
60
60
60
60
61
61
61
62
62
76
77
79
79
222
223
244
247
248
3
4
8
8
10
10
10
10
18
18
21
24
28
28
44
48
48
60
61
62
62
62
63
63
77
77
79
201
223
223
224
224
245
248
249
4
4
5
5
10
10
10
10
11
11
20
20
21
25
27
27
29
29
45
49
49
60
62
63
63
63
71
77
202
204
223
223
224
224
225
225
246
249
250
5
5
6
6
8
12
12
18
18
21
26
28
28
30
46
50
50
59
63
71
203
204
205
225
225
226
226
247
250
251
1
7
7
12
13
20
20
21
27
29
29
31
47
51
51
60
204
205
206
226
226
248
251
252
1
1
4
4
8
8
8
8
13
18
18
20
21
28
30
32
48
52
52
205
206
207
249
252
253
1
5
5
5
5
8
9
9
9
13
13
14
20
20
20
21
21
21
21
29
31
33
49
53
53
206
207
208
223
250
253
254
1
8
10
10
10
10
12
12
12
14
15
15
18
18
21
22
22
32
34
50
52
52
54
54
206
208
209
223
224
224
253
254
255
4
5
11
11
11
11
12
13
15
15
15
15
15
23
23
27
31
33
33
35
35
51
53
53
55
55
57
70
209
224
224
225
250
254
255
256
5
6
8
12
12
12
12
15
16
18
23
28
32
34
34
36
36
52
54
54
55
56
57
58
58
76
209
225
226
255
256
257
4
5
5
9
13
13
16
17
18
23
23
29
33
35
35
37
37
53
55
55
57
57
58
58
59
70
76
209
222
226
256
257
258
5
6
6
10
14
14
15
17
18
18
18
23
24
34
38
38
54
55
56
57
58
58
58
59
60
76
223
226
227
257
258
259
5
5
5
11
12
15
15
15
15
23
23
24
25
25
25
25
35
39
39
55
57
57
58
58
59
59
60
70
74
76
223
226
228
258
259
260
5
6
6
12
16
16
17
17
18
18
23
23
23
25
25
36
40
40
52
55
56
57
58
58
58
58
59
60
60
60
74
74
74
76
198
223
226
227
229
259
260
261
5
5
5
13
15
15
17
17
18
23
37
41
41
53
57
58
58
58
59
59
59
60
61
61
71
71
76
199
199
199
226
227
228
260
261
262
5
6
6
14
17
17
18
18
18
23
24
25
25
38
42
42
54
57
57
58
59
60
60
60
62
62
200
200
200
223
227
228
261
262
263
1
1
5
5
5
15
15
15
18
19
19
23
25
25
26
26
39
43
43
59
60
63
63
201
201
201
228
262
263
264
1
1
1
5
5
6
6
6
6
16
17
17
18
20
20
25
27
27
40
44
44
60
64
64
202
202
202
226
229
263
263
264
265
5
5
5
5
7
7
15
15
17
17
18
19
19
21
21
25
25
27
41
45
45
61
65
65
203
203
203
223
227
264
264
265
266
8
8
8
17
17
17
18
18
18
18
18
20
20
22
27
27
27
42
46
46
62
66
66
203
204
204
228
265
266
267
5
9
9
15
15
18
19
19
19
21
21
23
25
25
27
43
45
45
47
47
63
67
67
204
204
229
266
267
268
5
9
10
20
20
20
22
24
27
27
27
44
46
46
48
54
54
55
55
64
68
68
70
70
226
229
267
268
269
5
5
9
11
15
20
21
23
25
25
25
27
27
27
27
45
47
47
49
54
54
54
55
55
55
55
55
56
56
65
69
69
70
73
73
74
223
227
268
269
270
8
8
8
8
10
12
12
15
20
20
24
26
27
27
27
27
28
28
46
48
50
54
55
55
55
55
56
56
56
57
57
66
68
68
70
70
73
73
73
74
74
74
194
226
228
269
270
271
5
9
11
11
11
11
12
15
15
19
20
21
23
25
25
25
27
27
29
29
47
49
51
55
56
57
57
57
58
58
58
67
69
69
71
71
71
73
195
195
196
227
227
229
229
270
271
272
4
4
5
8
8
12
13
20
20
20
21
22
22
22
22
24
26
26
28
28
29
30
50
52
57
57
57
58
58
58
68
70
70
72
196
196
197
227
227
229
229
230
230
271
272
273
1
5
5
5
5
5
5
6
13
14
15
20
20
20
21
22
22
25
25
25
27
27
29
29
30
45
49
51
51
53
53
58
69
71
73
197
197
198
230
230
231
231
272
273
274
1
1
6
6
7
7
12
14
15
20
25
26
30
30
30
30
31
46
50
52
52
54
54
70
72
74
198
198
199
231
231
273
274
275
4
5
7
7
8
8
8
11
11
20
21
22
22
25
27
29
29
29
31
31
31
32
32
47
51
53
53
55
55
73
75
199
199
200
227
227
274
275
276
4
5
6
9
9
14
14
15
20
22
22
23
23
28
29
30
32
32
32
32
32
32
32
52
56
56
68
72
74
74
76
76
199
200
201
228
228
229
229
229
275
276
277
4
5
5
5
10
10
11
11
15
22
24
24
29
29
29
32
33
33
33
53
57
57
69
73
75
75
77
77
200
201
230
230
230
276
277
278
5
6
6
6
11
11
14
14
15
22
22
24
30
33
34
34
34
54
58
58
70
74
76
76
78
78
230
231
231
277
278
279
5
5
5
7
11
11
12
12
15
24
24
24
31
32
34
35
35
35
54
55
55
59
59
70
74
75
79
79
231
231
278
279
280
5
6
6
8
13
13
14
14
15
22
22
24
29
32
32
32
36
36
54
54
54
55
55
55
55
56
56
60
60
70
70
73
74
74
74
76
80
80
190
279
280
281
5
5
5
9
11
11
14
14
14
15
24
24
24
33
34
34
35
37
37
54
54
55
55
55
55
55
56
56
56
57
57
58
61
61
71
71
73
73
73
77
81
81
191
192
192
280
281
282
5
6
6
10
14
14
14
15
15
15
15
15
15
22
22
24
24
24
24
32
32
34
35
38
38
55
55
56
56
57
57
57
57
57
58
58
62
62
73
73
78
82
82
192
193
193
281
282
283
1
5
5
5
11
11
11
15
16
16
16
16
24
24
24
24
25
25
34
34
35
35
37
37
39
39
57
57
58
58
58
59
61
61
63
63
79
83
83
193
194
194
282
283
284
1
1
5
5
6
6
6
6
12
17
17
17
17
22
26
26
32
32
35
36
38
38
40
58
58
60
62
62
64
80
84
84
194
195
195
283
284
285
5
5
5
5
7
7
11
13
16
16
17
18
18
26
27
34
34
35
37
39
39
41
61
63
63
65
81
85
85
195
196
196
284
285
286
8
8
8
11
14
17
17
17
17
19
22
22
27
32
32
34
35
38
40
42
62
64
66
82
86
86
195
197
197
230
285
286
287
5
9
9
11
11
15
17
18
18
18
20
22
27
27
28
34
34
34
35
35
35
35
39
41
43
63
65
67
83
87
87
197
197
231
231
231
286
287
288
5
9
10
16
17
17
18
19
19
19
19
19
21
22
26
26
26
28
29
29
32
32
35
36
36
42
44
66
68
84
86
86
88
88
231
232
232
287
288
289
5
5
9
11
11
17
17
17
17
19
19
20
22
26
27
29
29
29
29
29
37
37
37
41
43
43
45
45
54
55
61
65
67
67
69
69
70
85
87
87
89
232
232
288
289
290
4
8
8
8
8
10
12
12
17
21
23
26
26
29
30
32
37
38
42
44
44
46
46
54
54
54
55
55
55
55
56
62
66
68
68
70
70
70
70
71
73
86
88
88
90
289
290
291
5
5
5
9
11
11
11
11
12
15
17
18
19
19
20
22
22
24
24
30
31
32
37
37
39
43
45
45
47
47
54
54
55
55
55
55
55
56
56
56
57
63
67
68
69
69
71
71
71
71
73
73
73
87
89
91
185
290
291
292
4
5
5
6
8
8
12
13
16
17
19
19
20
20
21
23
23
25
25
29
31
32
32
32
37
38
44
48
48
55
55
56
56
56
57
57
57
58
68
68
71
72
72
73
73
88
90
92
186
187
187
291
292
293
4
4
5
5
6
7
13
14
17
19
21
21
22
24
24
26
26
26
29
29
37
37
38
39
39
39
39
45
49
49
55
56
57
57
58
58
58
69
73
73
91
93
187
188
188
292
293
294
1
4
5
5
6
7
8
12
14
15
19
19
21
23
27
27
31
31
32
32
37
37
37
39
39
46
50
50
58
58
70
74
74
86
90
92
92
94
94
188
189
189
293
294
295
1
1
1
4
4
5
7
8
8
9
11
11
21
21
21
24
28
28
29
29
32
37
47
51
51
71
75
75
87
91
93
93
95
95
189
190
190
294
295
296
4
5
5
5
5
8
9
10
14
14
15
19
19
21
25
29
29
31
31
32
37
38
39
39
48
52
52
72
76
76
88
92
94
94
96
96
190
191
191
295
296
297
1
4
4
5
6
9
10
11
11
11
15
21
21
21
26
29
29
30
30
32
37
39
39
40
40
49
53
53
73
77
77
93
97
97
192
192
296
296
298
4
5
6
7
10
11
12
14
14
15
19
19
21
21
21
21
27
31
31
31
31
32
39
41
41
50
52
53
54
54
70
74
78
78
94
98
98
190
231
296
297
297
299
7
7
9
10
11
11
12
13
15
21
21
21
21
22
22
28
29
29
31
32
32
32
39
39
41
51
52
53
53
53
53
54
55
55
67
75
79
79
95
99
99
192
232
298
298
300
7
10
11
13
14
14
14
15
19
23
23
29
31
31
31
32
32
32
32
33
33
41
41
41
52
52
53
53
54
54
54
55
56
70
70
76
80
80
96
100
100
192
232
232
299
299
301
7
7
8
11
11
12
14
14
15
15
23
24
29
29
30
32
33
33
34
34
39
39
41
52
53
53
53
54
55
55
55
56
57
67
77
79
79
81
81
97
101
101
232
233
233
300
300
302
7
8
8
9
9
13
14
14
14
15
15
15
15
16
19
19
24
31
34
34
35
35
41
41
41
52
53
53
54
54
55
56
56
58
62
70
70
78
80
80
82
98
102
102
233
233
234
301
301
303
7
7
7
7
8
9
9
11
11
13
14
14
15
16
16
17
17
19
24
24
25
29
32
34
34
34
36
36
39
39
41
52
53
53
54
55
55
56
57
59
62
67
68
68
79
81
81
83
99
103
103
182
233
233
234
235
302
302
304
7
7
8
9
13
14
15
15
17
17
18
18
19
23
23
23
25
26
26
29
33
34
34
35
35
37
41
41
41
53
54
54
55
56
58
60
68
68
70
80
82
84
100
104
104
178
182
183
234
235
303
303
305
9
10
11
14
15
16
16
17
19
19
23
24
26
26
26
26
26
29
29
34
34
35
36
36
38
39
39
41
41
41
41
53
54
54
55
56
57
59
59
61
61
81
83
85
101
105
105
179
183
184
233
233
235
304
304
306
1
1
8
10
11
11
16
17
17
20
20
23
23
26
27
34
34
35
35
36
36
36
36
37
39
41
41
41
41
42
42
54
56
58
60
60
62
62
84
86
102
104
104
106
106
180
184
185
234
305
305
307
1
1
7
9
9
11
11
17
17
18
21
21
27
28
29
34
34
34
36
36
36
38
39
40
43
43
55
59
61
61
63
63
79
83
85
85
87
87
103
105
105
107
181
185
186
233
235
306
306
308
10
10
11
17
17
18
18
19
19
19
19
22
22
26
28
29
34
39
41
43
44
60
64
64
80
84
86
86
88
88
104
106
106
108
182
186
187
233
234
307
309
9
9
11
11
17
17
17
19
19
19
23
23
23
26
26
34
34
35
36
36
38
39
39
40
40
42
42
44
61
65
65
81
85
87
87
89
89
105
107
109
183
187
235
308
310
10
10
11
17
20
24
24
28
28
29
34
35
36
36
37
37
39
39
41
41
43
43
44
44
45
62
66
66
86
90
90
106
108
110
183
236
309
311
1
2
9
9
11
17
18
19
19
21
25
25
26
26
29
36
36
38
38
39
40
42
42
43
43
43
44
44
45
46
46
51
51
51
51
63
67
67
67
67
87
91
91
109
111
233
305
310
312
2
3
10
10
11
17
19
19
20
20
22
26
26
28
28
29
36
36
38
41
43
44
45
45
46
46
46
46
46
48
48
51
51
51
51
52
52
64
67
67
68
68
88
92
92
104
108
110
110
112
112
232
233
234
306
308
311
313
3
4
9
9
10
11
19
21
21
23
26
26
27
27
29
38
38
38
42
43
43
46
46
46
47
48
48
52
52
53
53
61
61
65
69
69
89
93
93
105
109
111
111
113
113
187
233
233
235
309
312
314
4
5
10
10
10
11
11
11
11
19
19
21
24
28
28
28
28
29
36
36
38
43
47
47
47
48
53
53
54
54
62
66
70
70
90
94
94
106
110
112
112
114
114
187
234
234
236
236
310
313
315
4
5
5
6
9
9
11
12
12
21
21
21
25
26
26
27
27
28
29
29
29
38
38
38
44
46
48
48
48
49
54
54
62
65
65
67
71
71
91
95
95
111
115
115
177
233
236
236
237
237
311
314
316
5
6
7
13
13
19
19
21
26
28
28
28
28
28
29
29
29
29
30
36
36
38
43
45
46
46
49
49
51
51
51
65
65
67
68
72
72
92
96
96
112
116
116
175
177
178
237
238
238
312
315
317
7
8
9
13
21
21
21
26
26
27
29
29
29
30
30
31
38
38
38
46
48
48
48
49
50
50
51
51
51
52
52
67
69
71
71
73
73
93
97
97
113
117
117
176
178
179
238
313
316
318
1
1
5
5
8
9
9
13
13
19
19
21
21
21
21
28
30
31
31
32
36
36
38
38
38
38
46
46
47
48
49
51
51
52
53
61
70
72
72
74
94
98
98
114
118
118
177
179
180
314
317
319
1
1
1
4
4
5
5
9
9
9
9
10
13
14
21
21
21
21
22
22
26
29
31
31
33
38
38
38
38
39
39
48
48
48
49
50
50
52
52
53
54
71
73
73
75
95
97
97
99
99
115
119
119
178
180
181
233
233
236
315
318
319
320
5
10
10
11
11
13
13
14
15
15
15
15
19
23
23
26
31
31
32
34
36
40
40
46
46
49
49
51
51
53
54
72
74
76
96
98
98
100
116
120
120
179
181
182
234
236
237
316
318
320
321
4
6
9
11
11
12
12
13
13
13
15
15
23
24
26
26
27
31
31
32
33
33
35
35
40
41
48
48
49
50
52
52
54
73
75
77
97
99
99
101
117
121
121
180
182
237
238
317
321
322
5
7
8
13
13
13
19
19
24
28
31
31
32
32
33
33
33
33
34
34
36
36
36
36
41
46
46
48
49
51
53
55
76
78
98
100
102
118
122
122
180
238
318
322
323
4
5
5
9
13
14
14
14
15
15
19
24
24
25
26
29
31
31
31
33
33
33
35
35
36
37
37
41
41
42
48
48
48
48
49
49
49
49
49
52
54
56
64
71
75
77
77
79
79
99
101
103
119
123
123
182
233
238
319
323
324
5
5
7
10
13
15
15
15
15
16
16
19
23
23
23
25
26
26
31
34
36
38
38
40
40
40
42
43
43
46
46
47
48
48
49
49
49
50
50
50
55
57
62
64
64
72
76
78
78
80
80
102
104
120
122
122
124
124
182
234
236
320
324
325
5
5
7
11
15
16
16
17
17
23
24
26
26
26
26
26
31
32
33
33
35
39
39
40
41
43
43
43
43
43
47
47
48
48
49
49
50
50
50
51
51
51
54
56
56
58
58
61
62
64
64
65
65
73
77
79
79
81
81
97
101
103
103
105
105
121
123
123
125
173
236
237
321
325
326
5
5
7
12
15
15
17
17
17
23
23
26
27
31
33
33
34
34
36
40
40
40
40
43
44
46
47
47
48
49
50
50
51
51
51
51
51
52
55
57
57
59
59
61
64
65
65
78
82
82
98
102
104
104
106
106
122
124
124
126
172
173
174
237
238
322
326
327
5
5
7
13
17
17
17
18
18
27
28
33
35
35
37
41
41
44
45
46
47
50
51
51
51
51
51
52
52
52
52
56
58
58
60
60
61
79
83
83
99
103
105
105
107
107
123
125
127
173
174
175
237
238
239
323
327
328
1
5
5
7
14
15
15
17
19
19
26
28
29
33
33
35
38
42
42
43
45
46
46
46
51
51
52
52
52
57
61
61
80
84
84
104
108
108
124
126
128
174
175
176
237
238
239
240
324
328
329
1
1
5
5
5
7
15
17
17
17
20
20
23
26
26
35
35
35
39
40
43
43
43
43
51
51
52
52
53
53
53
53
58
62
62
81
85
85
105
109
109
127
129
175
176
177
237
238
238
239
240
325
329
330
5
5
5
6
7
7
7
15
15
16
17
17
17
17
21
21
28
28
29
33
33
35
40
44
44
45
45
46
46
51
51
51
53
53
59
63
63
82
86
86
106
110
110
122
126
128
128
130
130
176
177
178
237
238
239
239
240
326
330
331
5
5
7
8
8
17
17
17
17
17
18
18
20
20
22
22
26
26
29
35
35
35
41
43
43
43
43
45
45
46
51
60
64
64
83
87
87
107
111
111
123
127
129
129
131
131
177
178
237
239
240
240
327
331
332
9
9
15
18
19
19
21
21
23
28
28
29
33
33
35
42
44
44
45
45
46
46
51
52
53
53
61
65
65
84
88
88
108
112
112
124
128
130
130
132
132
177
238
240
241
328
332
333
5
9
19
19
20
22
22
24
26
26
29
35
35
35
43
43
43
45
45
46
47
51
53
53
54
54
62
66
66
85
89
89
109
113
113
129
133
133
178
239
241
329
333
334
5
9
9
15
15
20
20
23
25
28
28
29
33
33
35
35
35
35
44
45
45
46
46
48
48
49
53
55
55
62
63
64
67
67
86
90
90
110
114
114
130
134
134
178
239
330
334
335
5
5
9
10
15
20
20
21
21
24
26
26
26
28
29
35
35
35
35
36
36
43
43
45
45
46
47
47
48
48
49
49
49
50
53
53
55
62
64
64
64
65
65
68
68
87
89
89
91
91
111
115
115
131
135
135
170
241
331
335
336
9
9
10
11
11
11
11
15
19
19
19
21
22
22
25
27
28
28
28
29
29
29
29
33
37
37
45
45
45
46
46
46
46
47
47
48
48
49
50
50
50
51
51
55
55
55
61
64
65
65
65
69
69
88
90
90
92
112
116
116
132
136
136
168
169
171
241
332
336
337
5
9
9
9
11
11
19
19
20
22
22
22
22
22
24
26
26
26
26
28
28
29
30
30
37
38
43
43
43
46
47
47
47
47
48
49
49
49
50
51
51
51
51
51
52
52
53
53
55
61
64
66
68
68
70
70
89
91
91
93
113
115
115
117
117
133
137
137
169
170
172
333
337
338
1
1
1
5
5
5
9
19
19
20
22
23
25
27
27
29
29
31
31
33
33
38
44
47
48
48
48
48
49
50
50
50
51
52
52
52
52
55
55
55
64
67
69
69
71
90
92
94
114
116
116
118
134
138
138
170
171
173
334
338
339
1
1
4
4
5
5
6
6
6
9
10
11
11
21
23
24
26
26
28
28
30
30
31
33
38
38
39
43
45
47
48
49
50
51
51
51
52
53
53
53
53
55
55
55
55
61
68
70
70
72
91
93
95
115
117
117
119
135
139
139
171
172
174
335
339
340
5
7
7
7
7
9
11
11
12
12
22
24
25
26
27
31
31
31
31
33
37
37
37
39
40
40
43
48
48
50
51
52
54
54
55
55
55
55
56
56
69
71
73
94
96
116
118
120
136
138
138
140
140
172
173
175
336
340
341
4
6
8
8
8
8
11
13
13
19
22
22
26
26
28
31
32
32
32
37
38
40
40
40
40
40
43
43
48
49
51
52
53
55
55
57
57
70
72
74
89
93
95
95
97
97
117
119
121
137
139
139
141
173
174
241
337
341
342
5
7
9
9
11
11
13
24
24
25
29
31
31
32
33
33
33
33
33
33
37
37
40
41
48
48
49
50
50
50
50
52
56
56
57
58
73
75
90
94
96
96
98
98
120
122
138
140
140
142
173
239
241
242
338
342
343
4
4
5
5
10
10
13
13
13
22
22
25
26
30
31
31
31
33
33
34
34
41
42
43
48
48
48
50
50
53
53
53
57
57
58
68
72
74
74
76
76
91
95
97
97
99
99
115
119
121
121
123
123
139
141
143
174
240
242
339
343
344
5
5
5
7
11
11
11
11
13
24
24
25
31
31
35
35
40
42
43
48
48
49
53
53
54
57
58
58
58
58
59
62
64
69
73
75
75
77
77
96
100
100
116
120
122
122
124
124
140
142
144
175
240
340
344
345
5
5
6
7
12
12
13
13
13
22
22
25
31
32
32
33
33
36
36
37
40
40
47
48
48
48
49
49
49
50
50
50
55
57
57
58
59
59
59
60
62
64
64
65
65
70
74
76
76
78
78
97
101
101
117
121
123
123
125
125
138
142
143
145
166
242
341
345
346
5
5
7
8
11
11
13
13
13
13
13
13
24
24
25
31
33
33
33
34
34
37
37
42
42
43
47
47
48
48
49
50
50
50
50
51
51
51
51
56
57
60
60
60
60
60
61
64
65
65
75
79
79
98
102
102
122
126
126
139
143
144
146
164
166
167
242
342
346
347
5
5
7
9
13
13
13
13
14
14
14
14
22
22
24
25
33
34
35
35
36
36
38
38
40
40
43
47
48
49
50
50
51
51
51
52
52
52
52
57
57
60
60
60
60
61
61
61
64
76
80
80
99
103
103
123
127
127
140
144
144
145
146
147
165
167
168
343
347
348
1
5
5
7
10
11
15
15
15
15
24
24
24
25
25
25
25
33
33
35
35
37
37
39
42
42
43
47
48
49
50
50
50
51
52
52
52
57
58
60
61
61
62
62
64
77
81
81
100
104
104
124
128
128
145
145
146
147
148
166
168
169
344
348
349
1
1
5
5
5
7
11
15
16
16
16
22
22
25
26
26
35
35
35
36
38
38
40
40
40
43
47
50
51
52
52
52
52
57
59
61
61
61
62
62
63
63
78
82
82
101
105
105
125
129
129
146
146
148
149
167
169
170
345
349
350
5
5
5
6
7
7
7
11
11
12
16
17
17
27
27
33
33
35
37
39
41
42
42
43
50
50
51
52
52
60
60
62
62
62
63
64
79
83
83
102
106
106
126
130
130
147
149
150
168
170
171
346
350
351
5
5
7
8
8
11
13
16
16
16
16
17
18
18
22
27
35
35
35
38
40
40
40
42
42
43
52
52
52
52
60
61
62
63
63
63
65
80
84
84
103
107
107
127
131
131
148
150
151
169
171
242
347
351
352
9
9
11
14
15
15
15
17
17
17
18
18
19
22
27
27
33
33
35
41
42
42
42
43
43
43
43
43
50
50
52
52
52
52
60
62
62
63
64
66
81
85
85
104
108
108
128
132
132
149
151
152
169
240
242
243
348
352
353
5
9
15
15
16
18
18
18
18
18
18
18
20
22
22
27
28
35
35
35
36
40
40
40
42
42
43
44
44
44
44
52
52
52
52
53
53
60
63
63
65
67
82
86
86
105
107
107
109
109
129
131
131
133
133
150
152
153
171
241
243
349
353
354
5
9
9
15
15
16
18
19
19
21
27
27
28
29
29
29
29
33
33
35
35
35
35
37
41
43
43
45
45
45
45
48
49
50
54
54
64
66
68
83
87
87
106
108
108
110
130
132
132
134
151
153
154
171
241
350
354
355
5
5
9
10
17
19
20
20
22
22
27
27
27
29
29
35
35
35
35
36
36
38
40
42
44
44
45
46
46
47
48
48
49
49
50
54
55
61
64
64
65
67
67
69
69
84
86
86
88
88
107
109
109
111
131
133
133
135
152
154
155
243
351
355
356
9
9
10
11
11
11
11
18
20
21
21
23
27
33
37
37
40
43
45
45
47
47
47
47
48
49
50
50
50
50
51
55
61
62
62
62
63
64
66
68
68
70
70
85
87
87
89
108
110
112
132
134
136
153
153
155
156
243
352
356
357
1
4
5
9
9
9
11
11
15
15
18
18
20
22
22
24
24
27
28
29
29
37
38
40
40
44
45
46
47
48
48
48
49
50
50
50
51
51
52
54
55
55
56
59
60
60
61
62
62
62
62
63
64
67
69
69
71
71
86
88
88
90
109
111
113
133
135
137
150
150
156
157
159
353
357
358
5
5
9
16
20
20
21
21
23
23
25
25
27
29
29
30
30
33
33
38
45
45
45
46
47
47
47
47
47
48
49
49
49
49
50
51
52
52
54
54
55
56
57
59
62
62
63
63
64
68
72
72
87
89
91
112
114
131
135
136
138
151
151
155
157
158
160
161
161
354
358
359
5
5
6
9
10
11
11
17
18
18
21
22
24
24
26
26
29
31
31
33
38
38
39
40
45
45
45
46
47
47
47
48
49
50
50
50
51
52
54
57
57
57
60
60
61
63
69
73
73
88
90
92
107
111
113
113
115
115
132
136
137
139
148
152
152
155
156
158
159
161
162
162
355
359
360
1
1
4
4
4
5
6
7
9
11
11
12
12
20
20
21
23
27
27
29
29
31
33
37
37
37
39
40
40
45
47
51
51
51
52
54
57
57
57
57
62
70
74
74
91
93
108
112
114
114
116
116
133
137
137
138
139
140
149
153
153
157
159
160
162
163
163
356
360
361
1
1
1
4
4
5
5
7
8
11
13
13
18
18
21
24
28
28
31
31
31
37
38
40
40
40
40
40
45
46
47
47
48
52
52
52
54
57
58
58
63
71
75
75
86
90
92
92
94
94
109
113
115
115
117
117
138
138
139
140
141
150
155
155
158
160
161
163
164
164
357
361
361
362
4
5
5
6
8
9
11
11
13
20
20
21
25
29
29
29
29
31
37
37
40
41
45
47
47
48
48
49
53
53
54
59
59
60
72
76
76
87
91
93
93
95
95
114
118
118
139
139
141
142
151
151
159
161
162
164
165
165
358
361
362
363
4
4
4
5
5
7
9
10
13
13
13
18
18
20
21
26
30
30
31
31
31
41
42
47
49
49
50
54
54
57
59
60
73
77
77
88
92
94
94
96
96
115
119
119
140
142
143
153
153
153
160
162
163
166
166
166
241
359
363
364
5
5
5
6
8
10
11
11
11
13
20
20
20
21
21
21
21
27
29
29
31
31
31
40
42
43
47
47
49
51
55
55
57
59
60
62
62
74
78
78
93
97
97
116
120
120
141
143
144
155
161
163
164
164
166
242
360
364
365
4
5
6
7
9
11
12
13
13
13
18
18
21
22
22
28
31
31
31
32
32
37
40
40
44
44
46
46
49
49
49
52
54
54
56
56
57
59
60
60
61
61
63
63
75
79
79
94
98
98
117
121
121
142
144
145
153
162
164
165
242
361
365
366
7
7
8
10
11
11
12
13
13
13
13
13
23
23
29
29
29
31
31
31
31
33
33
42
42
43
44
44
44
46
46
46
46
46
47
47
47
47
49
53
55
55
57
57
57
58
58
60
60
60
60
60
61
76
80
80
95
99
99
118
122
122
143
144
145
146
155
163
165
166
362
366
367
9
11
13
13
13
13
13
14
14
14
18
23
30
31
31
31
31
32
32
32
32
34
34
40
40
43
44
46
46
46
46
47
47
47
48
48
49
49
49
54
56
56
57
58
58
59
60
61
61
62
77
79
79
81
81
96
100
100
119
123
123
144
145
146
146
146
147
164
166
167
243
243
363
367
368
7
7
11
12
14
15
15
15
18
23
23
29
31
33
33
33
33
35
42
42
43
46
47
47
47
48
48
48
49
49
49
49
49
49
55
57
59
59
59
61
63
78
80
80
82
97
101
101
120
124
124
145
146
147
147
147
148
152
165
167
168
244
244
244
244
364
368
369
7
7
8
8
8
8
13
15
16
16
18
18
23
24
32
33
34
34
34
36
40
40
43
46
48
49
49
49
49
49
49
49
50
50
53
56
58
59
59
60
60
60
79
81
81
83
98
102
102
121
123
123
125
125
146
146
147
148
148
148
149
153
156
166
169
244
244
244
244
245
245
365
369
370
7
7
7
7
8
8
11
11
13
14
14
16
17
17
23
23
24
25
25
25
25
29
29
33
34
35
37
42
42
43
45
47
49
51
51
53
57
57
59
59
59
61
80
82
84
99
103
103
122
124
124
126
143
143
149
149
149
150
153
154
156
157
167
170
245
245
246
246
366
370
371
1
11
13
14
15
15
16
16
17
18
18
18
23
23
23
25
25
29
34
34
34
35
36
38
40
40
42
43
46
51
52
54
58
59
60
60
60
60
62
62
81
83
85
100
104
104
123
125
125
127
144
144
147
148
150
151
154
155
157
158
167
168
168
171
246
246
367
371
372
1
1
7
7
8
8
11
14
15
15
15
15
16
16
17
18
18
19
19
23
29
33
33
33
35
36
36
37
39
42
42
42
43
43
43
43
47
47
52
55
57
57
59
60
60
60
61
61
63
63
84
86
101
105
105
124
126
128
141
145
145
148
149
149
151
152
155
155
156
158
159
169
169
172
368
372
373
1
8
8
8
9
9
15
16
16
18
18
18
18
18
20
20
23
24
25
25
32
33
34
36
36
36
36
36
36
38
38
40
40
40
40
43
44
44
47
47
51
52
52
53
56
57
57
59
60
62
62
64
64
79
83
85
85
87
87
102
104
104
106
106
125
127
129
142
146
146
149
150
152
153
156
156
156
156
157
159
160
170
170
173
244
369
373
374
1
7
10
10
15
15
17
18
19
21
21
23
25
25
26
26
33
33
33
36
37
37
39
39
41
41
45
45
51
51
52
53
54
60
60
60
61
65
65
80
84
86
86
88
88
103
105
105
107
123
127
128
130
143
148
148
151
153
154
154
156
156
157
157
157
160
161
171
171
174
244
244
245
373
374
375
8
8
10
18
19
20
22
22
25
27
27
34
37
38
38
40
40
40
41
42
42
43
45
51
52
54
54
54
57
57
60
62
66
66
81
85
87
87
89
89
104
106
106
108
124
128
129
131
144
144
152
154
155
157
158
158
161
172
172
175
244
245
246
369
374
375
376
10
10
10
18
19
20
21
23
23
25
25
27
36
38
39
39
40
41
43
43
43
44
44
45
45
51
53
53
54
54
54
54
57
58
58
63
67
67
86
90
90
105
107
109
125
129
129
130
131
132
138
146
146
146
153
155
156
156
156
158
161
173
173
176
246
247
375
376
377
8
8
10
15
18
18
20
24
24
27
27
27
33
36
36
40
40
40
41
43
44
44
44
44
45
45
46
51
52
54
55
55
57
58
58
59
59
60
64
68
68
87
91
91
106
108
110
130
130
131
132
133
139
142
142
148
154
156
157
157
161
174
174
177
242
247
376
377
378
10
10
10
20
20
21
21
25
25
25
25
27
38
38
39
41
41
43
44
44
45
45
45
45
45
46
46
47
47
47
47
51
56
56
57
58
60
60
65
69
69
88
92
92
109
111
131
131
133
134
140
143
143
146
155
156
156
157
158
158
175
175
178
243
247
248
377
378
379
2
8
8
10
10
10
10
18
18
21
22
26
26
27
27
27
36
36
39
40
41
42
43
44
44
45
45
45
45
46
46
46
47
47
52
54
54
56
56
57
57
57
57
57
58
66
70
70
89
93
93
104
108
110
110
112
112
132
134
135
137
141
141
144
144
148
156
156
156
157
157
158
159
176
179
243
247
249
378
379
380
2
3
10
10
10
10
11
11
20
20
21
23
25
25
25
25
27
27
27
38
38
39
41
43
43
44
44
45
45
46
47
47
54
54
56
56
56
56
57
57
58
59
67
71
71
90
94
94
105
109
111
111
113
113
133
135
136
138
139
139
145
145
149
157
158
158
159
160
177
180
243
247
248
250
379
380
381
3
4
8
12
12
18
18
21
24
26
26
27
27
27
28
36
36
39
44
44
44
44
45
45
46
46
47
47
48
48
53
53
53
54
56
57
58
60
68
72
72
91
95
95
106
110
112
112
114
114
134
136
137
139
140
140
150
151
151
154
158
159
159
160
161
178
181
247
248
249
380
381
382
4
4
5
5
12
13
20
20
21
25
25
25
27
27
27
27
27
27
29
38
38
39
43
43
45
45
45
46
47
47
48
48
49
49
53
54
57
57
57
69
73
73
92
96
96
111
115
115
135
137
138
140
141
141
151
152
152
155
159
160
162
175
177
179
182
243
248
249
381
382
383
1
1
5
5
6
6
8
8
13
18
18
20
21
26
27
27
27
27
28
28
28
30
36
36
38
39
46
46
47
49
49
50
50
57
58
70
72
72
74
74
93
97
97
112
116
116
136
138
139
142
142
145
146
152
153
153
155
155
159
159
160
161
163
178
180
183
249
382
383
384
1
1
1
7
7
8
13
13
14
20
20
20
21
21
21
21
25
27
29
29
29
31
38
38
38
39
39
39
39
47
47
47
49
51
51
55
58
71
73
73
75
94
98
98
113
117
117
137
139
140
140
145
147
153
154
154
160
160
160
161
161
162
164
179
181
184
247
250
383
383
384
385
4
4
8
8
8
12
12
12
14
15
15
18
18
21
22
22
29
30
30
32
36
36
39
40
40
48
49
49
49
50
50
52
52
53
53
55
56
57
57
57
72
74
74
76
95
97
97
99
99
114
118
118
136
138
138
140
141
142
148
148
154
155
155
159
161
161
162
162
165
180
182
185
243
248
384
384
385
386
5
5
5
5
9
9
9
12
13
15
15
15
15
15
23
23
25
25
25
29
30
31
31
33
33
41
41
47
47
49
49
51
51
53
53
54
54
54
54
55
55
56
56
73
75
77
96
98
98
100
115
119
119
135
135
137
138
138
141
142
142
149
149
149
149
154
156
156
159
163
163
166
181
183
186
249
385
386
387
10
10
10
10
12
12
15
16
18
23
25
26
30
30
30
31
32
32
34
34
36
41
49
49
49
50
52
52
54
56
57
57
57
57
57
74
76
78
97
99
99
101
116
120
120
136
136
138
139
139
140
142
143
147
149
149
150
150
155
156
156
159
160
164
164
167
182
184
184
187
187
250
386
387
388
4
5
11
11
11
11
16
17
18
23
23
25
27
29
29
29
31
31
32
32
33
33
35
35
36
40
40
41
41
41
41
47
47
49
49
49
49
51
52
52
53
54
54
54
55
57
57
58
77
79
98
100
102
117
121
121
133
137
137
139
139
140
140
140
141
143
144
150
151
151
155
160
161
165
165
168
183
188
188
247
250
387
388
389
5
6
8
12
12
15
17
18
18
18
23
24
29
30
32
32
32
32
32
32
36
36
36
36
40
40
40
41
41
41
41
41
41
42
42
42
49
49
49
49
50
50
50
50
52
52
54
54
55
55
55
56
56
56
72
76
78
78
80
80
99
101
103
118
120
120
122
122
131
134
138
138
141
141
142
144
145
149
149
151
159
161
162
166
166
169
184
189
189
243
248
388
389
390
4
5
5
9
12
13
13
15
15
23
23
24
25
25
25
25
29
29
32
33
33
37
37
40
41
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
47
51
51
54
55
55
55
55
55
56
56
56
57
57
57
73
77
79
79
81
81
102
104
119
121
121
123
132
135
135
135
140
140
141
143
145
146
146
150
155
160
162
162
167
167
170
185
190
190
247
249
389
390
391
5
6
6
10
14
14
17
17
18
18
23
23
23
25
25
33
34
34
36
38
38
41
41
41
41
42
43
43
43
43
43
44
44
44
50
51
52
53
53
53
53
54
54
55
55
56
56
58
58
74
78
80
80
82
82
97
101
103
103
105
105
120
122
122
124
133
136
136
136
136
141
144
146
147
147
147
147
149
149
151
159
161
168
168
171
186
191
191
248
248
250
250
390
391
392
5
5
5
11
15
15
15
15
18
23
32
34
35
35
39
39
41
43
43
43
44
44
44
47
47
51
52
53
53
53
55
55
55
55
57
57
59
59
79
83
83
98
102
104
104
106
106
121
123
125
134
134
134
137
137
138
138
138
145
147
148
148
148
148
149
149
150
150
160
160
162
162
169
172
187
192
192
248
248
250
250
251
251
391
392
393
1
5
6
6
12
16
16
17
17
18
23
24
25
25
29
32
32
36
40
40
41
42
43
43
44
47
47
51
52
52
52
53
55
55
55
55
55
56
56
56
58
58
60
60
80
84
84
99
103
105
105
107
107
122
124
126
135
136
136
138
138
140
146
148
149
149
149
149
151
151
160
162
163
163
170
173
188
193
193
251
251
252
252
392
393
394
1
1
5
5
5
13
15
15
17
17
18
23
25
25
26
26
34
34
35
37
41
41
41
43
43
44
44
50
51
51
52
53
54
54
55
57
57
57
61
61
81
85
85
104
108
108
120
124
125
127
136
137
137
138
147
147
149
150
150
150
150
152
152
160
162
163
164
164
171
174
189
194
194
252
252
393
394
395
5
5
6
6
6
6
14
17
17
18
18
18
25
27
27
32
32
35
38
42
42
43
45
45
50
51
51
54
54
54
54
54
54
54
54
58
62
62
82
86
86
105
109
109
121
125
126
128
129
137
137
138
138
140
148
148
150
151
151
151
151
153
160
160
163
164
168
170
172
175
190
195
195
248
248
394
395
396
5
5
5
5
7
7
15
15
15
17
17
17
18
19
19
25
25
27
34
34
35
39
43
43
43
43
45
51
51
54
54
54
54
54
54
55
56
59
63
63
83
87
87
106
110
110
122
126
126
127
128
129
130
131
131
138
139
139
148
148
149
151
151
152
152
152
152
152
154
161
161
162
162
162
164
171
173
176
191
196
196
249
249
250
250
250
395
396
397
8
8
8
16
17
17
17
18
18
18
18
18
18
20
27
27
27
32
32
35
40
44
44
45
45
45
51
52
54
55
55
55
57
60
64
64
84
88
88
107
111
111
127
127
128
129
130
131
132
132
138
139
150
152
152
152
153
153
153
155
163
163
163
163
172
174
177
192
197
197
251
251
251
396
397
398
5
9
9
15
15
17
18
19
19
19
19
21
25
25
27
34
34
35
41
43
43
43
43
45
45
45
50
50
51
52
54
55
56
56
61
65
65
85
89
89
108
112
112
128
128
129
130
131
132
133
133
139
151
152
154
154
154
164
164
173
175
178
193
198
198
251
252
252
397
398
399
5
9
10
18
20
20
20
22
27
27
27
32
32
34
35
40
41
42
44
44
45
45
45
46
50
52
52
52
53
53
53
53
54
55
56
56
57
62
66
66
86
90
90
109
113
113
129
130
131
131
131
132
132
134
134
138
152
152
155
164
174
176
179
194
199
199
252
252
398
399
400
5
5
9
11
15
19
20
21
23
25
25
27
34
34
34
35
35
35
35
40
40
40
41
41
41
41
42
43
43
43
45
45
45
45
45
45
47
52
52
54
54
55
55
55
55
55
56
56
56
56
57
63
67
67
87
91
91
110
114
114
130
131
132
132
132
132
133
133
134
134
139
142
148
152
152
153
153
153
156
164
175
177
177
180
180
195
200
200
399
400
401
8
8
8
8
10
12
12
15
20
20
22
24
27
27
27
32
32
35
36
36
40
40
41
41
41
41
41
42
42
42
43
44
44
45
45
45
45
46
46
46
48
53
53
53
54
54
54
55
55
55
55
55
55
56
57
64
68
68
88
90
90
92
92
111
113
113
115
115
131
132
132
133
133
133
134
134
134
135
135
140
140
143
143
144
148
153
154
154
154
157
176
181
181
196
201
201
400
401
402
5
9
11
11
11
11
12
15
15
17
20
21
21
23
23
25
25
25
25
27
27
27
27
37
37
41
41
42
42
43
43
43
43
43
43
44
45
47
47
47
49
51
51
54
55
55
55
57
65
69
69
89
91
91
93
112
114
114
116
132
134
134
134
134
135
135
135
136
136
141
141
141
141
144
144
145
152
154
155
155
155
158
177
182
182
197
202
202
401
402
403
1
8
8
12
13
18
20
20
21
22
22
22
22
22
24
24
26
26
27
27
27
27
28
28
32
37
43
43
44
44
44
47
48
48
50
54
54
55
66
68
68
70
70
90
92
92
94
113
115
115
117
133
134
135
136
137
137
139
141
141
142
142
145
145
146
148
153
155
155
156
156
159
163
178
183
183
198
203
203
402
403
404
1
1
13
14
15
19
20
20
20
22
22
23
25
25
25
27
27
29
29
32
37
37
43
43
43
44
44
47
48
49
49
50
50
51
51
51
52
54
67
69
69
71
91
93
95
114
116
118
134
134
136
137
137
142
143
143
146
146
147
152
154
157
157
160
164
164
164
164
179
184
184
199
204
204
403
404
405
4
4
5
12
14
15
20
24
28
28
29
30
32
32
37
38
43
43
44
47
47
47
48
48
48
49
50
50
50
50
50
51
52
52
52
52
52
52
56
57
68
70
70
72
92
94
96
115
117
119
123
127
135
135
137
137
138
141
141
143
147
147
148
153
153
155
155
158
158
161
165
165
180
185
185
200
205
205
404
405
406
5
5
5
5
5
5
6
8
11
11
20
21
22
22
25
25
25
29
29
30
37
37
38
39
39
39
39
45
47
47
48
49
49
50
51
51
51
52
52
52
52
52
52
53
53
53
53
54
54
54
56
56
69
71
73
95
97
113
117
118
120
124
127
127
128
129
129
132
132
138
139
142
147
148
149
153
155
156
156
159
159
162
165
181
186
186
201
206
206
251
405
406
407
6
6
7
7
14
14
15
20
22
22
23
23
25
26
30
30
30
30
31
32
37
37
37
39
39
47
50
50
50
50
51
52
53
54
54
55
55
56
57
57
70
72
74
90
94
96
96
98
98
114
118
119
121
125
128
128
129
130
130
133
133
137
139
140
141
141
143
148
149
153
155
156
157
157
160
160
163
165
182
187
187
202
207
207
252
252
252
406
407
408
4
5
7
7
8
8
11
11
15
22
24
24
25
27
29
29
29
31
31
31
32
32
37
47
50
50
50
50
51
53
53
53
53
54
54
55
55
55
55
57
73
75
91
95
97
97
99
99
115
119
119
120
121
122
126
126
128
129
129
130
130
130
130
131
131
134
134
137
138
140
141
141
141
142
142
153
153
156
157
161
164
183
188
188
203
208
208
252
253
253
407
408
409
4
5
6
9
9
14
14
15
22
22
24
28
29
30
32
32
32
32
32
32
32
37
38
39
39
40
41
47
50
51
51
51
52
52
55
56
56
56
56
68
72
74
74
76
76
92
96
98
98
100
100
120
120
121
122
123
129
130
130
130
131
131
132
132
135
135
139
141
142
143
143
154
154
155
155
155
157
162
165
184
189
189
204
209
209
253
253
408
409
410
4
5
5
5
10
10
11
11
15
24
24
24
29
29
29
32
33
33
33
37
39
39
40
40
40
40
40
41
41
41
41
42
47
47
52
52
52
52
53
55
55
56
56
56
57
57
57
69
73
75
75
77
77
97
101
101
121
121
123
124
130
131
132
132
132
137
137
138
139
140
142
143
144
144
156
156
156
156
163
166
185
190
190
205
210
210
409
410
411
5
6
6
6
11
11
14
14
15
22
22
24
30
33
34
34
34
39
40
40
41
41
41
41
41
41
41
42
42
42
43
44
47
50
51
52
52
53
53
53
54
54
55
55
55
58
58
70
74
76
76
78
78
98
102
102
122
124
125
131
132
132
133
133
133
139
140
140
140
141
143
144
145
157
157
160
162
164
167
186
191
191
206
211
410
411
412
5
5
5
7
11
11
12
12
14
15
24
24
24
31
32
34
35
35
35
39
39
41
41
41
42
42
43
43
43
43
43
44
50
50
50
50
50
51
52
52
52
53
55
55
55
59
59
75
79
79
99
103
103
123
125
125
126
130
131
133
135
135
135
140
140
140
141
141
142
144
144
144
145
146
157
163
164
165
168
187
192
192
207
210
210
212
411
412
413
1
5
6
6
8
13
13
14
14
14
15
15
15
15
22
22
24
29
32
32
32
36
36
41
41
41
43
43
44
44
44
49
50
52
52
52
52
52
52
53
53
56
56
56
60
60
76
80
80
100
104
104
124
126
126
127
127
127
130
133
137
141
142
142
143
145
145
145
146
147
157
164
165
165
165
166
169
188
193
193
208
211
213
412
413
414
1
1
5
5
5
9
11
11
14
14
15
16
16
24
24
24
33
34
34
35
35
35
37
37
39
39
41
44
44
47
47
49
50
50
51
52
52
53
53
54
57
57
57
61
61
77
81
81
101
105
105
121
125
127
127
128
128
128
133
135
142
143
143
144
144
146
146
146
147
165
166
166
167
170
189
194
194
209
212
214
413
414
415
5
5
6
6
6
6
10
15
15
17
17
22
22
24
24
24
24
32
32
34
35
36
36
38
41
41
41
47
49
49
51
51
52
53
54
54
54
54
58
62
62
78
82
82
102
106
106
122
123
123
126
126
128
128
128
129
129
129
137
143
144
144
144
145
147
148
165
166
166
166
166
166
167
168
171
190
195
195
210
213
215
414
415
416
5
5
5
5
7
7
11
11
14
14
16
16
17
24
24
24
24
25
25
34
34
35
35
37
37
39
39
39
41
41
41
41
51
51
51
51
52
53
53
54
56
59
61
61
63
63
79
83
83
103
107
107
123
124
124
127
127
128
128
129
130
130
130
140
143
144
145
145
145
146
148
149
156
167
167
167
168
169
169
172
172
191
196
196
211
214
216
252
415
416
417
8
8
8
11
12
15
15
17
17
17
22
26
26
32
32
35
36
38
40
41
41
41
41
42
42
46
46
51
51
52
52
53
57
60
62
62
64
80
84
84
104
106
106
108
108
124
124
125
125
126
126
128
128
128
129
129
130
130
131
140
145
145
145
146
147
149
150
157
157
157
157
166
166
168
168
168
173
173
192
197
197
212
215
217
253
253
253
416
417
418
5
9
9
11
11
13
16
16
17
18
18
26
27
34
34
35
37
39
39
41
43
43
50
50
51
52
52
53
54
61
63
63
65
81
85
85
105
107
107
109
122
125
125
126
126
127
127
129
130
130
130
131
132
144
146
147
148
151
158
158
167
169
174
174
193
198
198
213
216
218
253
254
254
417
418
419
5
9
10
14
17
17
17
18
19
19
19
19
19
22
22
27
32
32
34
35
40
40
41
42
43
44
50
50
52
52
53
53
62
64
66
82
86
86
106
108
108
110
123
126
126
126
128
128
130
131
131
132
133
135
140
145
147
147
149
152
158
166
168
170
175
175
194
199
199
214
217
219
254
254
418
419
420
5
5
9
11
11
15
17
17
17
18
19
19
20
22
27
27
28
34
34
34
35
35
35
35
35
39
39
39
40
40
40
41
41
41
41
41
41
42
43
43
44
47
47
48
49
50
50
50
52
52
52
52
53
53
55
63
65
67
83
87
87
107
109
111
123
124
126
127
127
129
129
129
130
131
133
134
136
144
146
149
150
150
153
158
166
166
167
171
176
176
195
200
200
218
220
419
420
421
8
8
8
8
10
12
12
17
19
21
22
26
26
26
28
29
29
32
32
35
36
36
36
39
39
40
40
40
41
41
41
41
41
42
42
42
42
42
43
43
44
44
44
44
45
47
47
47
49
49
49
50
50
50
50
50
52
52
52
53
53
54
54
55
55
55
66
68
84
86
86
88
88
108
110
112
119
121
123
124
125
125
128
128
131
132
133
134
135
137
137
145
145
147
147
151
151
154
165
166
167
168
172
177
177
196
201
201
219
221
420
421
422
4
5
9
11
11
11
11
12
13
17
18
18
19
19
20
20
22
22
26
27
29
29
29
29
29
37
37
37
41
41
41
42
42
42
43
43
43
43
43
43
43
44
44
45
45
45
46
48
49
49
49
49
49
50
51
51
51
52
53
53
55
55
61
65
67
67
69
69
85
87
87
89
106
110
111
113
120
121
121
122
123
124
125
130
130
131
133
134
135
135
135
136
138
138
138
138
145
147
148
148
152
152
155
166
168
169
173
178
178
197
202
202
220
222
421
422
423
4
5
5
5
8
8
12
13
14
17
19
19
19
20
20
21
21
23
23
26
26
29
30
32
37
41
42
42
43
43
43
44
44
44
46
46
46
46
46
49
50
51
51
52
54
54
62
66
68
68
70
70
86
88
88
90
107
111
112
114
121
122
122
123
124
125
126
126
134
135
136
136
136
136
137
138
138
139
139
145
147
148
149
149
153
153
156
166
167
169
174
179
179
198
203
203
214
221
223
422
423
424
1
4
5
5
5
6
6
13
14
15
19
20
21
21
22
22
24
24
30
31
32
37
37
43
43
44
44
46
46
46
46
46
47
47
51
51
54
63
67
69
69
71
71
87
89
91
108
112
112
113
114
115
122
122
123
123
124
125
126
128
128
128
135
136
137
137
137
138
139
140
140
145
145
148
149
154
154
157
166
167
169
169
170
175
180
180
199
204
215
219
222
224
423
424
425
1
1
1
4
4
5
6
7
7
12
14
15
19
19
21
21
25
25
29
31
32
32
32
37
38
43
44
46
46
47
47
47
47
48
48
48
49
51
52
52
52
68
72
72
88
90
92
113
113
114
115
116
120
124
124
124
126
129
130
136
137
138
138
138
138
138
139
140
146
146
147
147
147
149
155
155
157
158
170
170
171
176
181
181
200
203
203
205
220
223
225
424
425
426
4
5
5
5
5
7
8
8
8
11
11
21
21
21
22
26
26
26
29
29
37
37
38
39
39
39
39
43
45
46
46
48
48
48
49
49
50
50
51
52
53
53
54
69
73
73
91
93
114
114
116
117
121
122
122
124
124
124
126
128
129
137
138
139
139
139
139
140
148
148
148
148
156
156
158
158
158
159
171
171
177
182
182
201
204
206
221
224
226
425
426
427
1
4
4
5
6
8
9
9
14
14
15
19
19
21
23
27
27
31
31
32
32
37
37
37
39
39
46
46
47
48
48
49
49
49
50
50
50
50
50
50
50
70
74
74
86
90
92
92
94
94
115
117
118
119
120
122
123
123
124
125
125
126
130
138
138
138
140
140
140
140
141
149
149
157
157
159
159
160
169
178
183
183
202
205
207
222
225
227
426
426
428
4
5
6
7
9
10
10
11
11
15
21
21
21
24
28
28
29
29
32
37
38
39
46
47
47
47
47
47
47
48
48
49
49
50
50
51
51
51
52
52
71
75
75
87
91
93
93
95
95
116
117
118
119
120
121
121
121
123
123
124
124
126
126
138
138
138
139
139
139
141
142
149
158
158
159
159
159
159
160
161
166
179
184
184
203
206
208
223
226
226
228
228
253
426
427
427
429
7
7
8
9
11
11
14
14
15
19
19
21
25
29
29
31
31
32
37
38
38
39
39
39
39
40
46
48
48
48
48
49
49
49
49
49
49
50
50
51
52
52
53
72
76
76
88
92
94
94
96
96
117
118
119
119
119
120
121
122
122
122
125
125
127
127
140
140
140
140
142
143
149
159
160
160
161
162
166
167
169
169
180
185
185
204
207
209
224
229
229
254
428
428
430
7
9
10
11
11
12
12
15
21
21
21
26
29
29
30
30
32
37
38
39
39
39
39
40
40
40
41
43
43
46
46
47
47
48
48
49
49
49
49
50
52
52
53
53
73
77
77
93
97
97
118
119
119
119
120
120
120
121
122
123
123
123
123
136
140
141
141
141
144
159
159
160
161
161
163
166
170
170
181
186
186
205
208
210
225
230
230
254
254
429
429
431
7
7
8
11
13
13
14
14
15
19
19
21
21
21
21
27
31
31
31
31
32
38
39
39
39
40
41
41
41
42
47
48
49
49
50
50
51
54
54
74
78
78
94
98
98
115
119
120
120
120
120
121
121
121
122
124
124
128
137
142
142
145
157
159
160
161
164
167
169
171
171
171
182
187
187
206
209
211
226
231
231
254
255
255
430
430
432
7
8
8
9
9
11
11
12
14
14
15
21
21
21
21
22
22
28
29
29
31
32
32
32
38
39
39
39
39
40
41
41
42
44
48
48
48
49
49
51
51
52
52
52
53
53
55
55
75
79
79
95
99
99
116
120
121
121
122
122
122
122
123
125
127
129
137
137
141
141
142
143
143
143
146
148
159
160
161
162
165
169
170
183
188
188
207
210
212
227
232
232
255
255
256
431
431
433
7
7
7
7
8
9
9
11
13
13
14
14
14
15
15
15
15
15
15
19
23
23
29
31
31
31
32
32
32
32
33
33
38
39
39
40
41
41
41
41
42
44
46
46
48
48
49
49
49
49
49
50
50
50
50
52
52
54
54
56
76
80
80
96
100
100
117
120
120
121
121
122
122
122
123
124
124
125
127
130
130
130
142
142
144
144
144
147
149
149
149
149
159
159
160
161
163
166
170
170
171
171
184
189
189
211
213
228
233
233
255
255
256
257
432
432
434
7
7
8
9
11
11
12
12
14
14
15
16
16
16
16
23
24
29
29
30
32
32
32
33
33
34
34
39
39
39
40
40
41
41
42
46
46
46
46
47
47
47
47
48
48
48
49
49
50
50
52
53
55
55
57
77
79
79
81
81
97
101
101
118
118
118
118
118
118
121
121
122
124
124
125
126
130
131
131
131
131
131
141
143
143
145
145
148
150
150
158
159
160
161
162
164
167
172
172
185
190
190
212
214
229
234
234
256
257
433
433
435
9
10
13
13
15
15
17
17
17
17
19
19
24
31
33
33
34
34
35
40
40
41
41
41
41
42
47
47
47
48
48
49
49
49
49
49
50
50
54
56
58
78
80
80
82
98
102
102
119
119
119
119
120
120
122
122
123
125
126
127
129
131
131
131
132
132
132
141
146
146
149
150
159
161
162
163
165
168
170
171
171
171
173
173
186
191
191
213
215
230
235
235
255
255
257
434
434
436
1
1
8
10
11
11
14
17
18
18
19
24
24
25
29
32
34
34
34
36
39
39
41
41
41
41
42
45
46
46
46
47
47
48
48
49
49
49
50
51
55
57
59
79
81
81
83
99
103
103
116
120
120
120
120
121
121
123
123
123
124
126
127
128
132
132
133
133
133
137
141
142
147
147
150
150
159
160
162
164
166
166
169
169
170
170
170
171
172
172
172
187
192
192
207
214
216
231
236
236
256
435
435
437
1
1
7
9
9
11
15
17
17
19
19
19
23
23
23
25
26
26
29
33
34
34
35
37
41
41
41
41
42
42
43
43
43
47
47
47
47
47
48
48
48
49
49
52
58
60
80
82
84
100
102
102
104
104
113
113
115
117
121
121
121
121
121
121
122
122
125
127
128
129
131
131
133
133
134
137
142
143
148
148
151
159
160
162
162
163
165
170
170
172
173
173
173
188
193
193
208
212
215
217
232
237
237
255
257
436
436
438
10
10
11
11
11
16
17
18
20
20
23
24
26
26
26
26
26
29
29
34
34
35
36
38
39
43
43
43
45
45
46
47
48
49
49
50
53
57
59
59
61
61
81
83
85
101
103
103
105
114
114
115
116
117
117
118
122
123
123
123
123
126
128
129
130
132
134
135
141
143
144
149
149
152
163
163
164
166
171
171
171
173
174
174
189
194
194
213
216
218
233
238
238
255
256
437
439
9
9
11
17
17
17
18
19
19
19
19
21
21
23
23
26
27
34
34
35
36
36
36
36
37
39
43
43
43
44
45
46
48
49
49
54
58
60
60
62
62
84
86
102
104
104
106
115
115
115
115
116
117
118
118
119
119
122
123
123
127
129
130
131
131
131
133
135
137
142
144
144
150
150
153
164
164
167
172
172
172
172
190
195
195
214
217
219
234
239
239
257
438
440
10
10
11
11
17
17
17
18
19
19
22
22
27
28
29
32
34
34
34
36
36
36
38
38
39
39
40
40
44
46
46
46
47
47
48
48
48
49
55
59
61
61
63
63
79
83
85
85
87
87
103
105
107
113
116
116
116
116
116
117
118
118
118
119
119
121
121
121
123
123
128
130
131
131
131
131
132
132
141
143
151
154
162
168
173
173
191
196
215
218
220
235
240
240
258
439
441
1
2
9
9
11
17
19
23
23
26
28
29
33
34
37
37
37
37
37
39
39
39
39
41
41
43
44
44
45
47
47
47
48
48
48
49
49
49
49
49
49
49
49
60
64
64
80
84
86
86
88
88
104
106
108
114
116
116
116
117
117
118
119
119
120
120
123
129
131
132
133
133
142
142
144
144
149
152
155
159
169
174
174
174
192
195
195
197
216
219
219
221
221
236
241
241
255
435
440
442
2
3
10
10
11
17
18
19
19
20
23
24
24
26
26
34
34
34
34
35
36
36
37
37
37
37
38
38
38
40
40
42
42
43
43
43
44
45
46
46
46
46
47
48
49
49
49
49
49
49
49
49
49
61
65
65
81
85
87
87
89
89
102
106
107
109
115
117
117
118
118
118
118
118
120
120
121
129
130
132
133
134
134
142
144
145
145
150
150
150
153
156
159
160
162
162
170
174
175
175
193
196
198
217
222
222
237
242
242
254
255
256
436
438
441
443
3
4
9
9
10
11
17
19
19
20
20
21
25
25
28
28
29
34
34
34
36
36
37
37
38
38
39
39
39
43
43
43
43
43
43
43
43
45
46
46
46
46
46
46
46
47
47
48
49
62
66
66
86
90
90
103
107
108
110
112
116
116
118
118
118
119
119
121
121
123
130
131
133
134
135
135
142
144
145
146
146
150
151
151
152
154
157
159
163
163
171
176
176
194
197
199
218
223
223
238
243
243
255
255
257
439
442
444
3
4
4
5
10
10
10
11
11
11
11
19
21
21
22
26
26
26
26
29
36
38
38
39
39
40
40
40
43
43
44
44
44
45
46
46
46
46
46
47
47
48
48
49
63
67
67
87
91
91
104
108
108
109
110
111
113
114
114
119
119
119
119
120
120
120
130
130
132
134
134
134
135
135
136
142
142
145
146
150
151
151
151
151
152
153
155
158
160
162
164
164
164
172
174
174
177
177
195
198
200
219
224
224
239
244
244
256
256
258
258
440
443
445
5
5
6
9
9
11
12
12
19
19
21
23
25
25
27
27
28
28
29
36
36
38
40
40
41
43
44
45
45
45
45
45
45
45
45
46
46
46
47
47
47
47
47
47
48
49
64
68
68
88
92
92
109
109
110
111
112
114
115
115
118
120
121
121
125
133
135
135
135
136
137
143
143
144
144
144
146
152
152
153
154
156
159
162
163
172
173
175
175
178
178
196
199
201
220
225
225
240
245
245
255
258
258
259
259
441
444
446
6
7
13
13
21
21
21
24
26
26
26
26
28
29
37
37
37
38
38
38
40
40
42
43
43
43
43
43
45
45
45
45
46
46
46
46
46
47
47
48
48
48
49
49
65
69
69
89
93
93
110
110
111
111
111
112
113
113
113
115
116
116
118
121
121
123
125
126
134
134
136
136
137
145
145
145
145
151
151
153
153
155
157
160
163
163
164
164
173
173
174
179
179
197
200
202
221
226
226
241
246
246
259
260
260
442
445
447
5
5
7
8
9
13
19
19
21
25
27
27
28
28
29
29
34
36
36
37
37
37
38
38
38
43
43
43
43
45
45
45
45
46
46
46
46
47
47
47
48
48
48
48
49
49
49
66
70
70
90
94
94
107
111
111
112
112
112
113
113
113
114
114
114
116
116
117
117
121
121
121
124
126
127
134
135
138
146
146
152
156
158
161
165
165
175
180
180
198
201
203
222
227
227
242
247
247
260
443
446
448
1
1
4
4
5
5
8
8
9
9
13
13
21
21
21
26
26
26
28
28
29
30
34
38
38
38
38
39
43
44
46
46
47
47
47
47
47
48
48
48
49
49
49
49
49
67
71
71
91
95
95
108
112
112
113
113
113
114
114
114
114
114
115
115
115
115
117
117
122
125
127
128
130
134
135
135
136
136
139
146
151
153
157
159
159
162
162
163
164
164
164
166
166
175
176
181
181
199
202
204
223
228
228
243
248
248
444
447
449
1
1
1
5
9
9
9
9
10
10
13
14
19
19
21
27
28
28
28
29
29
29
29
29
31
36
36
38
38
38
38
39
40
43
45
46
46
46
46
46
48
48
49
49
49
49
49
49
49
68
72
72
92
96
96
109
113
113
114
114
114
114
115
115
115
115
115
116
116
116
116
116
117
118
118
123
123
126
128
129
130
135
136
137
137
140
146
151
151
152
158
163
163
163
163
163
164
165
165
165
175
177
182
182
203
205
224
229
229
244
249
249
255
255
258
445
448
449
450
4
6
10
10
11
11
13
13
14
15
15
15
15
21
21
21
26
26
29
30
30
30
32
38
38
38
38
39
39
40
43
43
46
46
47
48
49
49
49
50
50
69
71
71
73
73
93
95
95
97
97
110
110
114
114
114
116
116
116
116
116
117
117
117
117
119
119
124
124
124
124
127
129
130
134
136
137
138
138
141
150
151
152
153
159
164
164
165
166
166
166
178
183
183
204
206
225
230
230
245
250
250
256
258
259
446
448
450
451
5
7
7
9
12
12
13
13
13
15
15
19
19
21
21
21
21
25
29
31
31
31
31
33
33
36
40
40
45
46
46
47
49
49
51
51
70
72
72
74
94
96
96
98
115
116
117
117
117
117
117
118
118
118
122
124
124
125
125
128
130
130
135
137
137
139
139
142
151
153
154
160
164
165
165
166
167
167
175
175
179
184
184
205
207
226
231
231
246
251
251
259
260
447
451
452
4
5
5
8
13
13
13
21
21
21
21
22
22
26
26
30
31
32
32
34
34
40
41
43
43
43
45
45
45
45
46
46
46
48
49
50
50
52
52
71
73
73
75
95
97
97
99
116
116
116
118
119
119
119
125
126
126
128
134
136
140
140
143
145
151
152
154
161
165
165
166
166
173
176
176
180
185
185
199
206
208
227
232
232
247
252
252
260
448
452
453
5
5
7
9
13
14
14
14
15
15
19
23
23
26
27
31
31
31
33
33
34
35
35
35
36
36
39
39
40
41
43
43
43
43
43
43
44
45
45
45
45
45
45
45
46
48
49
49
51
51
53
72
74
76
96
98
100
106
109
111
111
116
117
117
119
119
119
120
124
124
126
130
135
135
137
137
141
141
144
146
146
146
146
151
152
154
154
155
162
167
167
174
174
181
186
186
200
204
207
209
228
233
233
248
253
253
255
260
449
453
454
5
5
7
10
13
15
15
15
15
16
16
23
24
26
26
31
32
32
33
34
34
35
35
36
36
36
36
36
40
40
41
41
42
42
43
43
44
44
45
45
45
45
45
46
46
46
46
46
46
46
46
48
48
48
48
50
52
52
54
73
75
77
97
99
101
107
109
110
110
110
111
111
112
112
114
114
114
119
119
120
121
125
130
135
137
138
138
142
142
145
147
147
155
155
156
163
167
168
168
182
187
187
205
208
210
229
234
234
249
254
254
256
258
450
454
455
5
5
7
11
15
16
16
17
17
19
19
24
31
31
32
33
33
33
33
33
33
33
34
34
35
35
36
36
37
37
37
40
40
40
40
41
42
42
43
43
43
43
44
45
46
46
46
47
47
47
47
48
49
49
49
49
51
53
55
76
78
95
99
100
102
107
107
108
110
111
111
111
112
112
113
113
114
115
115
119
121
121
122
124
124
126
135
137
138
139
139
143
143
146
147
156
156
164
167
169
169
176
183
188
188
206
209
211
230
235
235
250
255
255
258
259
451
455
456
5
5
7
12
15
15
17
17
17
19
24
24
25
26
31
31
31
33
33
33
33
34
34
35
36
36
37
37
37
38
38
38
40
43
43
43
43
43
43
45
45
46
46
46
46
46
46
46
47
47
47
49
49
49
52
54
56
71
75
77
77
79
79
96
100
101
103
105
108
108
109
109
110
111
112
112
112
112
112
113
113
114
114
116
116
119
120
120
121
122
122
123
124
124
125
125
135
135
138
139
144
147
147
154
165
170
170
176
184
189
189
207
210
212
231
236
236
251
256
256
259
260
452
456
457
5
5
7
13
17
17
17
18
18
19
23
23
23
25
26
26
31
33
35
36
37
37
37
38
38
38
39
39
40
43
43
43
43
43
43
45
46
46
47
47
47
47
48
48
49
49
55
57
72
76
78
78
80
80
97
101
101
102
103
104
106
109
109
110
111
112
112
112
112
112
113
113
113
114
114
117
117
121
121
122
123
123
124
126
126
136
136
137
137
137
139
145
148
151
166
167
167
171
171
185
190
190
208
211
211
213
213
232
237
237
252
257
257
259
260
261
453
457
458
1
5
5
5
7
14
15
15
17
19
19
23
24
26
26
26
26
26
31
32
33
33
36
37
38
38
39
40
40
40
43
43
44
44
45
45
49
49
49
50
54
56
56
58
58
73
77
79
79
81
81
102
102
103
104
105
107
110
110
111
112
112
113
113
113
114
114
119
119
122
122
122
123
124
124
125
127
127
138
138
138
138
146
149
151
152
154
154
165
167
168
168
172
172
186
191
191
209
214
214
233
238
238
253
258
258
259
260
261
262
454
458
459
1
1
5
5
5
6
7
7
7
15
17
17
17
20
20
23
23
26
27
31
33
33
34
34
37
38
39
40
40
41
41
43
45
45
45
45
46
46
46
49
51
55
57
57
59
59
78
82
82
103
103
105
106
108
108
112
113
113
114
114
114
114
114
115
115
123
123
123
124
125
125
126
128
139
139
143
145
147
150
151
155
155
166
166
168
173
173
187
192
192
210
215
215
234
239
239
254
259
259
260
260
261
262
455
459
460
5
5
7
8
8
15
15
16
17
19
19
21
21
27
28
33
35
35
38
42
42
43
43
43
43
43
43
43
43
44
45
45
45
45
45
46
52
56
58
58
60
60
79
83
83
104
106
107
107
109
109
113
113
114
114
115
115
115
117
117
117
123
123
124
124
125
126
126
127
127
127
129
139
146
148
151
152
154
156
156
156
169
174
174
174
188
193
211
216
216
235
240
240
255
259
260
260
261
261
262
456
460
461
9
9
17
17
17
17
20
20
22
26
28
29
33
33
35
39
41
42
42
42
43
43
43
43
44
45
45
45
45
45
46
46
46
46
48
48
57
61
61
80
84
84
105
107
107
108
108
109
109
110
110
110
113
113
113
115
119
125
125
126
127
128
128
128
130
139
146
147
149
152
154
155
168
170
175
175
175
189
192
192
194
212
217
217
236
241
241
256
258
258
259
261
261
262
262
457
461
462
1
1
5
5
5
5
9
15
15
17
17
17
17
18
21
21
23
23
26
26
35
35
35
39
39
40
40
40
41
42
43
43
43
43
43
43
44
44
45
45
45
46
46
46
46
47
49
49
58
62
62
81
85
85
104
105
105
106
108
108
109
109
110
110
110
111
111
115
115
117
125
126
127
128
129
129
129
147
147
147
148
150
153
155
155
156
156
168
171
176
176
176
176
190
193
195
213
218
218
237
242
242
257
259
260
262
262
263
458
462
463
4
4
5
5
5
6
6
6
9
9
17
17
17
17
18
18
19
22
24
28
28
29
33
33
35
39
40
40
41
41
41
42
43
43
43
43
43
43
43
45
45
45
45
45
46
46
46
46
46
47
59
63
63
82
86
86
103
105
106
106
106
106
107
108
109
109
110
110
110
111
111
112
112
115
115
119
126
127
127
129
130
148
148
149
151
154
157
157
172
177
177
177
177
177
177
191
194
196
214
219
219
238
243
243
258
260
261
263
263
459
463
464
5
5
5
7
7
7
7
9
10
15
19
19
20
23
25
26
26
29
34
35
35
35
35
42
43
43
43
44
44
44
45
45
46
46
46
46
46
46
47
48
60
64
64
83
87
87
104
106
107
107
107
107
108
109
110
110
110
110
110
111
112
112
123
126
127
128
128
130
131
138
147
148
148
148
148
149
150
152
152
155
155
155
156
156
156
158
158
168
168
173
175
177
177
178
178
178
178
192
195
197
215
220
220
239
244
244
259
261
261
264
460
464
465
4
6
8
8
8
8
9
9
10
11
11
11
11
19
20
24
26
28
28
29
33
33
33
34
34
35
35
35
35
35
35
36
40
43
43
43
44
44
45
45
45
45
46
46
46
47
47
47
47
47
49
61
65
65
84
88
88
105
107
107
108
108
108
108
109
110
111
111
111
112
112
118
123
128
129
129
131
132
139
139
139
139
149
149
150
151
155
155
155
156
156
156
157
157
157
166
169
169
174
178
179
179
179
179
193
196
198
216
221
221
240
245
245
260
262
263
265
461
465
466
5
5
7
9
9
9
9
9
11
11
15
15
18
20
23
25
25
26
26
27
27
29
33
33
34
35
35
35
35
35
36
36
36
36
37
37
39
39
40
40
43
43
44
44
45
45
45
46
46
46
46
47
47
48
62
66
66
85
87
87
89
89
104
106
106
108
108
109
109
110
110
111
112
112
112
112
112
113
116
117
119
127
129
130
130
133
140
140
148
148
150
150
152
157
157
157
158
158
158
167
167
175
177
177
179
180
180
194
197
199
217
222
222
241
246
246
261
263
263
266
462
466
467
4
4
5
5
9
10
10
15
19
20
20
21
24
26
26
28
28
28
28
29
33
33
34
35
36
37
37
37
37
37
38
38
43
43
43
43
43
43
44
45
45
45
45
45
45
46
46
47
47
49
63
67
67
86
88
88
90
104
105
107
107
108
108
109
109
109
112
113
113
113
114
117
117
118
120
123
128
130
130
131
134
140
149
153
156
158
158
158
159
159
176
178
181
181
195
198
200
218
223
223
242
247
247
262
264
267
463
467
468
1
5
5
5
7
9
10
11
11
11
11
15
19
19
19
20
21
22
22
25
26
26
27
27
28
29
29
29
33
34
35
36
37
37
38
38
38
39
39
41
41
42
43
43
43
45
45
45
46
46
46
46
46
48
50
64
68
68
87
89
89
91
105
106
108
108
108
109
109
109
110
110
111
112
114
115
118
118
119
121
127
129
131
132
132
135
140
148
150
154
157
157
159
159
169
177
177
177
179
182
182
196
199
201
219
224
224
243
248
248
263
265
268
464
468
469
1
1
5
5
6
7
9
11
11
12
12
12
12
19
20
22
22
22
22
22
26
28
28
28
29
29
29
29
30
30
33
33
33
36
37
38
38
39
39
39
40
40
40
41
41
41
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
45
45
46
46
46
47
49
49
51
51
65
69
69
88
90
92
102
103
103
103
103
105
105
106
107
107
108
109
109
110
110
111
111
112
113
113
115
116
119
119
119
120
122
128
128
130
130
133
133
136
148
148
149
155
160
160
169
177
177
178
178
178
183
183
200
202
220
225
225
244
249
249
266
269
465
469
470
5
5
7
8
11
13
13
13
13
19
19
22
23
26
26
27
29
30
30
31
31
33
33
37
37
38
38
38
39
40
41
41
41
41
41
41
43
43
43
43
43
43
44
45
45
45
48
50
50
52
52
66
68
68
70
70
89
91
93
101
103
104
104
104
104
104
104
105
105
105
106
106
107
107
110
110
111
111
113
114
116
117
120
120
120
120
120
121
123
128
130
131
131
134
134
137
147
148
149
150
156
159
161
161
179
179
179
184
184
201
203
221
226
226
245
250
250
267
270
466
470
471
5
5
7
9
11
11
13
14
14
23
24
28
31
31
32
32
37
37
38
38
39
39
40
40
40
41
45
45
45
46
46
46
46
49
51
51
53
53
67
69
69
71
87
91
92
94
102
104
105
105
105
105
105
105
106
106
106
107
107
112
112
115
117
118
118
120
120
121
121
121
122
128
130
131
132
132
135
135
138
148
150
151
157
159
162
162
175
180
180
180
185
185
202
204
222
227
227
246
251
251
263
268
271
467
471
472
5
5
7
10
13
13
13
15
15
22
24
25
26
29
31
33
33
37
39
40
40
40
42
43
43
43
43
45
45
46
50
54
54
68
70
70
72
88
92
93
95
103
105
105
106
106
106
106
106
106
107
107
107
108
108
108
116
118
119
121
121
122
122
128
128
131
132
136
136
139
148
149
151
158
163
163
176
181
181
186
196
203
205
223
228
228
247
252
261
263
263
264
267
269
272
468
472
473
5
5
5
7
11
11
11
13
16
16
19
22
22
26
30
31
31
34
34
37
39
39
40
40
40
40
40
43
43
43
44
44
45
51
55
55
69
71
73
89
93
93
94
95
96
102
104
104
106
107
107
108
108
108
110
110
110
111
117
119
120
120
120
122
122
129
129
130
130
130
132
137
137
139
140
148
149
151
151
152
159
159
159
164
164
167
176
176
180
180
182
182
185
185
187
197
201
204
206
224
229
229
248
253
262
264
268
270
273
469
473
474
5
5
5
6
7
7
7
12
13
13
13
17
17
24
24
25
26
26
31
31
32
34
35
35
35
37
40
40
40
41
41
41
42
43
43
43
44
44
44
45
45
46
46
52
56
56
70
72
74
94
94
95
96
97
103
106
106
106
107
108
111
111
112
118
120
121
121
123
131
131
131
131
138
138
140
140
140
141
152
152
153
157
160
160
160
165
165
168
181
181
183
183
186
188
202
205
207
225
230
230
249
251
251
254
262
269
271
274
470
474
475
5
5
7
8
8
11
11
13
13
16
16
18
18
22
22
25
31
31
32
32
33
33
33
33
33
34
34
35
35
36
36
36
37
39
39
40
40
41
41
41
42
42
42
42
43
43
43
43
43
44
46
46
46
46
47
47
53
57
57
73
75
95
95
97
98
102
104
104
104
106
107
107
107
108
108
110
111
114
119
120
120
121
122
122
132
132
139
139
141
141
142
153
153
158
158
161
166
166
169
169
180
182
182
184
187
189
203
206
208
226
231
231
250
252
255
264
270
272
275
471
475
476
9
9
13
13
13
14
17
17
19
24
24
25
26
31
31
31
33
33
33
33
33
34
35
36
36
37
37
37
37
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
42
42
42
42
43
43
43
43
43
43
43
43
46
47
47
54
58
58
68
72
74
74
76
76
96
98
99
100
101
101
101
102
103
104
104
105
105
105
105
106
108
108
108
112
112
114
115
120
120
120
121
121
122
123
132
140
140
141
141
141
141
142
143
151
162
167
167
170
170
170
170
180
185
188
190
204
207
209
227
232
232
251
253
256
264
271
273
276
472
476
477
5
9
11
11
13
13
13
13
15
18
18
20
22
22
25
31
33
34
34
35
36
37
37
37
38
38
38
38
40
40
41
41
41
41
41
41
42
43
43
43
43
43
43
43
43
43
43
43
45
45
46
55
59
59
69
73
75
75
77
77
97
99
99
100
101
102
102
102
102
102
103
103
103
104
105
105
106
106
109
109
113
115
116
121
122
122
123
124
132
141
142
142
143
144
148
160
163
168
168
168
170
170
171
171
176
180
181
186
189
191
205
208
208
210
210
228
233
233
252
254
257
272
274
274
277
277
473
477
478
1
5
5
5
9
9
13
13
13
13
14
14
16
19
21
24
24
25
31
32
33
33
33
34
35
35
36
36
36
37
37
37
38
38
39
39
39
39
40
40
40
40
41
41
41
41
42
43
43
44
45
46
46
56
60
60
70
74
76
76
78
78
98
100
100
101
101
101
102
103
103
103
103
103
104
104
104
105
105
106
106
107
107
114
116
117
118
122
123
123
124
125
141
141
142
143
143
145
148
149
151
151
160
164
169
169
171
172
172
176
181
182
187
190
192
206
211
211
229
234
234
253
255
258
273
278
278
474
478
479
1
1
4
5
5
5
6
6
9
10
11
15
15
17
20
22
22
22
24
25
31
33
33
33
34
34
36
36
36
36
37
38
38
38
39
40
40
40
40
41
41
41
42
43
43
43
43
43
57
61
61
75
79
79
97
97
99
101
101
102
102
102
103
103
104
104
104
104
104
105
105
105
105
107
107
115
117
118
119
123
124
126
139
141
142
143
146
148
152
152
165
170
170
170
170
172
180
182
183
188
191
193
207
212
212
230
235
235
254
256
259
274
279
279
475
479
480
5
5
6
6
7
7
9
9
10
11
11
11
11
15
16
21
23
24
24
24
25
25
25
25
33
35
35
37
37
38
39
39
40
41
41
41
43
43
43
44
58
62
62
76
80
80
98
98
100
101
101
102
102
102
103
103
103
105
105
106
106
107
109
110
116
118
119
119
119
123
123
124
125
127
131
141
142
143
144
147
149
151
153
153
153
160
160
166
171
171
171
176
181
183
183
189
192
194
208
213
213
231
236
236
255
257
260
275
280
280
476
480
481
1
4
5
7
7
8
8
9
9
9
11
11
11
11
15
16
20
22
22
22
22
24
24
25
26
26
33
33
35
38
38
39
39
40
40
41
41
42
42
42
42
43
44
59
61
61
63
63
77
81
81
99
99
101
102
102
103
104
104
104
104
105
107
107
109
111
117
119
124
124
124
125
125
126
128
132
132
132
132
141
141
142
143
145
148
151
152
158
161
161
167
170
170
172
172
172
180
182
193
195
209
214
214
232
237
237
256
258
261
264
276
281
281
477
481
482
5
5
5
8
8
9
9
9
11
16
16
16
17
21
23
23
25
25
27
27
35
35
35
39
39
39
39
39
39
40
40
41
41
41
41
41
42
42
43
43
43
43
43
43
60
62
62
64
78
82
82
100
100
100
100
100
100
102
102
102
102
103
103
104
104
105
105
106
107
112
112
117
123
125
125
126
126
129
133
133
140
141
142
143
144
146
149
152
152
153
153
159
159
168
170
170
171
171
173
173
181
181
183
183
194
196
210
215
215
233
238
238
259
262
262
264
265
277
282
282
478
482
483
4
4
5
5
5
6
6
9
10
10
10
11
11
11
15
15
15
17
17
18
18
22
22
24
24
26
26
27
33
33
35
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
44
61
63
63
65
79
83
83
99
99
100
101
101
102
102
102
102
103
103
104
104
104
105
106
106
113
113
113
113
119
123
127
127
130
133
141
143
144
145
147
150
154
154
169
172
172
174
174
181
183
184
184
195
197
211
216
216
234
239
239
260
263
263
265
278
283
283
479
483
484
4
4
4
5
5
5
6
6
7
7
9
11
11
11
11
12
12
15
16
18
18
18
18
18
22
23
27
27
27
27
34
35
35
35
35
36
37
37
39
40
41
41
41
41
41
41
42
43
43
43
43
43
43
43
43
43
43
45
45
46
62
64
66
80
84
84
100
100
101
102
102
103
103
103
103
104
104
104
106
107
111
113
113
114
114
119
119
123
124
128
128
131
133
141
142
144
146
148
148
151
151
152
153
153
153
155
155
161
168
170
173
173
175
175
181
183
184
185
185
189
196
198
212
217
217
235
240
240
261
263
264
279
284
284
480
484
485
4
4
5
5
7
8
8
8
8
8
8
11
12
12
13
13
15
15
18
19
22
22
24
27
28
28
28
33
33
33
34
34
35
35
35
35
35
35
36
36
36
37
38
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
41
42
43
43
44
44
44
46
46
46
46
63
65
67
81
85
85
95
96
97
98
101
101
102
103
103
103
103
104
104
104
104
104
105
105
105
107
108
114
115
115
119
124
125
129
129
132
141
142
144
144
145
147
152
152
152
152
152
153
154
154
154
161
169
171
174
176
176
181
181
184
185
190
194
197
199
213
218
218
236
241
241
256
260
262
265
265
280
285
285
481
485
486
4
5
5
6
8
9
9
9
9
11
11
13
13
13
19
20
25
27
27
28
29
29
29
29
29
29
33
33
34
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
38
39
39
40
40
40
41
41
41
42
42
43
43
44
45
45
46
47
47
66
68
82
84
84
86
86
95
96
97
97
97
98
98
99
102
102
103
103
104
104
105
105
105
105
106
108
109
113
113
115
123
125
126
130
130
133
145
145
146
148
153
153
154
155
155
155
169
169
172
173
173
175
177
177
182
182
183
183
183
185
195
198
200
214
219
219
237
242
242
261
263
265
266
281
286
286
482
486
487
4
4
4
5
5
5
7
9
10
10
10
10
10
10
13
13
13
13
13
14
14
18
20
21
22
26
27
27
27
29
29
30
30
33
33
34
35
36
36
36
37
37
37
37
38
38
38
40
41
41
41
41
43
43
43
43
44
44
44
46
48
48
61
65
67
67
69
69
83
85
85
87
96
97
97
97
98
98
98
99
99
99
99
100
104
104
104
104
105
105
107
107
109
110
114
119
124
126
126
131
131
134
146
146
149
153
154
154
155
156
156
173
174
174
176
178
178
184
184
184
184
196
199
201
215
220
220
238
243
243
262
264
267
282
287
287
483
487
488
5
5
5
5
6
6
8
10
11
11
11
11
13
14
14
15
15
15
18
18
27
27
31
31
33
34
35
35
36
36
36
37
37
38
38
38
38
39
39
39
40
40
41
41
41
42
43
44
45
46
49
49
62
66
68
68
70
70
84
86
86
88
95
95
97
98
98
98
99
99
99
100
100
100
100
100
101
105
105
105
108
108
109
109
110
111
113
113
115
123
125
132
132
135
144
150
154
154
155
155
173
174
175
175
179
185
185
197
200
202
216
221
221
239
244
263
265
268
283
288
288
484
488
489
4
5
5
6
6
7
7
9
11
11
11
12
12
13
13
13
15
15
16
16
20
20
21
27
28
28
29
29
32
32
33
33
33
34
35
36
36
37
38
38
38
38
39
39
39
39
39
39
39
40
40
41
41
41
41
41
42
42
42
43
46
50
50
63
67
69
69
71
71
85
87
89
96
96
97
97
98
98
98
98
99
99
99
100
100
100
100
101
101
101
102
102
102
105
109
109
110
110
111
112
113
113
114
114
124
124
126
126
132
133
136
141
151
156
156
159
173
175
178
178
180
185
198
201
201
203
203
217
222
222
240
245
264
266
269
284
289
289
485
489
490
1
1
7
7
8
8
8
10
11
11
12
12
12
12
13
13
13
15
15
17
17
18
18
21
27
29
29
29
30
30
33
33
33
33
37
37
38
38
38
39
39
40
41
41
41
41
41
41
41
41
41
41
42
42
43
43
43
47
51
51
68
72
72
86
88
90
97
97
98
98
98
98
99
99
100
100
100
100
100
100
101
101
101
102
102
104
110
110
111
111
112
113
115
115
124
126
127
127
133
133
133
134
137
141
142
144
144
152
156
157
157
160
169
173
174
176
179
181
185
199
204
204
218
223
223
241
243
243
246
265
267
267
270
270
285
290
290
486
490
491
1
1
1
9
11
13
13
13
13
13
13
13
14
14
16
16
16
16
18
18
20
20
21
29
30
31
31
34
34
36
36
37
37
37
38
38
39
39
39
40
40
40
40
40
40
41
41
41
41
43
43
48
52
52
69
73
73
84
88
89
91
98
98
98
98
99
99
99
100
100
100
101
101
101
101
101
102
102
102
111
111
111
112
112
113
114
116
116
124
126
127
128
128
134
134
135
138
141
145
145
153
156
158
158
161
161
169
174
175
177
180
182
200
205
205
219
224
224
242
244
247
266
271
271
286
291
291
487
491
491
492
5
7
7
9
11
11
12
13
13
13
13
14
14
15
15
17
17
18
18
19
19
21
29
29
31
31
35
35
36
37
37
37
37
37
39
40
40
40
40
40
40
40
40
41
42
49
53
53
70
74
74
85
89
90
92
93
100
100
100
100
101
101
101
101
102
102
102
102
103
103
104
112
112
112
113
113
114
115
117
124
124
127
128
132
133
134
134
134
134
134
135
136
139
142
144
146
146
146
154
159
159
162
162
162
162
173
175
176
178
181
183
201
206
206
220
225
225
243
245
248
267
272
272
287
292
292
488
491
492
493
7
7
8
8
8
8
10
13
13
13
13
13
14
14
14
16
16
18
18
18
18
20
20
20
20
21
31
31
31
32
34
34
36
36
37
37
37
37
38
38
38
39
39
39
40
40
40
40
40
40
40
40
41
41
42
43
50
54
54
71
75
75
86
90
90
91
92
93
94
95
95
100
100
101
101
102
103
103
103
103
112
112
113
114
114
114
115
116
116
116
118
125
125
126
126
126
128
135
135
135
136
137
140
144
145
155
156
156
160
160
160
162
162
163
163
169
174
176
176
179
182
184
184
202
207
207
221
226
226
244
246
249
263
268
273
273
288
293
293
489
493
494
7
7
7
7
8
8
11
11
13
14
14
15
15
15
15
17
17
17
18
18
19
19
20
20
20
21
21
21
29
29
31
32
32
33
35
35
36
36
36
36
37
37
37
37
37
38
38
38
39
39
40
40
40
41
41
41
43
51
55
55
72
76
76
91
91
92
93
94
94
94
95
95
95
96
96
100
100
102
103
103
112
114
114
116
117
117
117
119
127
127
127
127
134
134
136
136
136
138
141
145
145
146
146
154
156
157
157
161
161
163
164
164
173
175
180
183
185
185
185
185
185
203
208
208
222
227
227
245
247
250
264
269
274
274
289
294
294
490
494
495
13
14
15
15
15
16
16
18
18
18
20
20
20
21
21
21
21
21
21
22
22
30
30
31
31
31
32
32
33
33
34
36
36
36
36
36
36
36
36
36
37
37
37
38
38
38
38
38
38
38
39
39
40
41
41
42
42
42
43
43
43
52
56
56
73
77
77
89
90
92
92
93
93
93
94
95
95
95
96
96
96
97
97
103
103
103
115
116
118
118
118
128
128
135
137
139
142
147
147
155
155
157
162
162
162
162
164
174
174
176
176
181
184
186
186
186
204
209
209
223
228
228
246
248
251
264
270
275
275
290
295
295
491
495
496
7
7
8
8
11
11
13
13
14
15
16
16
16
17
17
18
18
18
18
19
19
19
21
22
22
22
22
23
23
29
29
30
30
30
31
31
31
31
32
32
32
32
32
33
33
35
36
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
42
42
42
42
43
43
53
55
55
57
57
74
78
78
90
91
93
93
93
94
94
94
95
95
95
95
95
96
96
96
96
96
97
97
98
98
98
98
102
103
116
116
119
128
134
136
138
140
143
145
146
146
146
148
148
158
163
163
163
174
176
177
177
182
185
186
187
205
210
210
224
229
229
247
249
252
271
276
276
291
296
296
492
496
497
8
8
8
9
9
11
16
16
16
17
18
19
19
19
20
20
20
23
23
24
24
30
31
31
31
31
32
32
32
32
32
32
33
33
33
34
34
36
36
38
38
40
40
40
40
41
41
41
41
41
41
41
41
41
42
43
43
43
43
43
43
54
56
56
58
75
77
77
79
79
91
92
94
94
94
95
95
95
96
96
96
96
96
96
96
97
97
97
97
97
98
98
98
98
98
98
99
99
103
112
116
116
117
117
117
120
128
134
134
135
139
141
141
144
144
145
145
145
146
147
147
147
157
159
162
162
164
164
164
174
176
177
178
178
186
186
188
206
211
211
225
230
230
248
250
253
265
265
272
277
277
292
297
297
493
497
498
7
10
10
11
15
15
15
17
17
18
18
18
20
20
20
21
21
21
23
25
25
29
32
33
33
33
34
34
34
35
35
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
42
43
43
55
57
57
59
76
78
78
80
92
92
93
93
95
95
95
96
96
96
96
96
96
97
97
97
97
97
97
98
98
98
98
99
99
99
99
100
100
101
104
104
112
117
118
118
118
121
133
134
135
136
140
145
145
147
148
148
148
157
160
162
162
163
163
165
165
174
174
177
178
187
189
207
212
212
226
231
231
251
254
266
266
266
266
273
278
278
293
298
298
494
498
499
8
8
10
11
15
16
17
18
18
18
18
18
18
18
21
22
22
22
22
22
22
22
23
23
26
26
32
33
34
34
34
35
35
35
35
37
37
37
38
40
40
40
41
41
41
42
42
42
43
56
58
60
77
79
79
81
96
96
96
98
98
98
98
98
98
98
99
99
99
99
99
100
100
100
100
101
101
102
104
105
105
105
105
116
118
119
119
119
122
134
136
137
141
146
146
146
148
149
149
161
164
164
166
166
175
175
176
176
176
178
188
190
208
213
213
227
232
232
252
255
266
266
266
266
267
267
274
279
279
294
299
299
495
499
500
10
10
10
15
15
18
18
18
18
19
19
23
23
23
23
23
23
24
27
27
29
29
31
33
34
35
35
35
37
37
38
39
39
40
40
41
41
41
41
43
43
43
57
59
61
78
80
82
97
98
98
98
99
99
99
100
101
101
101
101
103
103
104
105
105
105
106
106
112
117
119
119
120
120
123
127
134
135
137
142
147
147
147
147
157
157
160
162
165
165
167
167
177
177
177
177
182
185
189
191
209
214
214
228
233
233
253
256
267
267
268
268
275
280
280
295
300
300
496
500
501
1
8
8
10
19
19
20
20
23
23
24
24
24
24
24
24
24
24
25
25
25
25
27
27
28
28
29
29
32
32
33
33
34
34
35
36
36
36
36
36
37
37
37
38
38
38
38
38
40
40
40
42
42
44
44
60
62
79
81
83
93
93
98
98
98
98
100
101
101
101
104
105
106
106
107
107
116
118
121
121
124
128
128
128
128
134
135
137
137
138
143
148
148
155
158
158
161
163
166
168
168
178
178
183
186
186
186
186
187
190
192
210
215
215
229
234
234
248
252
254
257
268
268
276
281
281
296
301
301
497
501
502
1
1
10
10
10
18
18
20
21
21
21
21
23
23
23
25
25
25
25
25
28
28
29
29
32
33
33
33
33
34
34
35
35
36
36
36
36
36
36
36
36
37
37
38
38
38
38
38
38
39
39
39
41
42
43
45
45
55
59
61
61
63
63
77
81
82
84
87
91
91
91
94
94
96
97
99
99
101
101
101
101
102
105
105
105
106
107
107
117
117
119
119
122
122
125
129
129
138
138
139
144
149
149
149
156
156
161
161
164
165
165
167
169
169
178
187
187
188
191
193
211
216
216
230
235
235
253
255
258
277
282
282
297
302
302
498
502
503
1
2
8
8
10
15
18
18
20
20
22
22
23
25
25
26
26
26
29
29
30
30
32
32
33
34
35
36
36
36
36
36
37
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
40
40
40
42
42
42
42
42
46
46
56
60
62
62
64
64
78
82
83
85
88
90
90
91
91
92
92
92
93
93
93
93
95
95
96
96
96
97
101
102
103
106
106
107
108
117
119
120
120
123
123
126
129
139
139
145
149
150
150
165
166
166
168
170
170
178
187
189
192
194
212
217
217
231
236
236
254
256
259
266
278
283
283
298
303
303
499
503
504
1
2
3
10
10
10
20
20
21
23
23
23
23
24
25
25
26
26
26
27
27
27
29
29
31
31
33
33
33
35
35
36
36
36
36
36
37
37
38
38
38
38
39
39
40
41
41
41
41
42
43
43
43
43
43
47
47
57
61
63
63
65
65
79
83
83
84
85
86
87
88
89
91
91
92
92
93
93
93
94
94
94
94
96
96
97
97
101
103
104
105
105
106
107
108
109
117
119
120
121
121
124
124
127
129
137
146
151
151
158
165
166
167
167
171
171
187
190
193
195
213
218
218
232
237
237
255
257
260
266
266
267
279
284
284
299
304
304
503
504
505
3
4
8
8
10
10
10
10
18
18
21
23
24
25
25
26
26
27
27
27
27
28
28
28
29
30
30
30
30
32
32
33
33
34
35
35
36
37
37
37
37
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
43
44
48
48
62
66
66
84
84
85
86
87
88
89
89
89
90
90
92
92
92
92
92
93
93
94
94
94
94
94
94
94
94
94
95
95
95
95
98
98
101
102
104
105
105
105
106
106
109
117
117
120
121
125
128
134
147
149
149
152
152
158
165
167
172
172
191
194
194
196
196
214
219
219
233
238
238
256
258
261
266
267
268
280
285
285
300
305
305
499
504
505
506
4
4
5
5
10
10
10
10
11
11
19
20
20
21
24
25
25
27
27
27
27
27
28
29
29
29
29
30
30
31
31
33
33
33
36
37
37
37
37
37
38
38
38
40
40
41
41
42
42
45
49
49
63
67
67
85
85
87
88
89
90
90
90
93
93
93
93
93
94
94
94
94
94
94
95
95
95
96
96
96
96
99
99
103
105
106
107
107
109
118
118
119
119
119
121
126
129
134
135
137
137
147
148
150
150
153
153
161
165
166
168
173
173
177
192
197
197
215
220
220
234
239
239
257
259
259
262
262
268
269
281
286
286
301
306
306
505
506
507
5
5
6
6
8
12
12
18
18
21
25
25
25
26
27
27
28
28
28
29
30
30
30
30
31
32
32
32
32
32
33
34
34
34
36
38
38
38
39
39
40
41
41
43
43
46
50
50
64
68
68
86
88
89
90
90
91
91
91
91
94
94
94
95
95
95
95
96
96
96
96
96
96
101
101
103
104
106
107
108
108
109
120
120
120
120
127
130
134
138
138
148
148
149
154
154
161
166
167
169
174
174
178
178
178
178
193
198
198
216
221
221
235
240
240
258
263
263
264
269
282
287
287
302
307
307
506
507
508
7
7
12
13
20
20
21
26
27
27
27
27
27
29
29
29
29
29
30
30
31
31
31
32
33
33
33
34
34
35
35
36
36
36
37
38
38
38
38
38
38
39
40
40
40
47
51
51
65
69
69
87
89
90
91
91
92
92
95
95
95
96
96
96
96
96
96
96
97
97
97
97
104
105
107
108
109
121
121
124
126
128
131
135
137
139
139
139
150
155
155
165
167
168
170
175
179
179
194
199
199
217
222
222
236
241
259
264
264
265
269
270
283
288
288
303
308
507
508
509
4
4
8
8
8
8
13
18
18
20
21
25
25
27
27
28
29
30
30
30
30
31
32
32
32
34
34
34
34
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
38
38
38
38
38
39
39
39
39
40
48
52
52
66
70
70
88
89
89
89
90
91
92
92
92
93
94
95
95
97
97
97
97
99
99
99
104
104
106
108
108
108
109
110
121
127
128
129
132
137
138
150
151
156
156
156
161
166
168
168
171
174
174
176
179
186
195
200
200
218
223
223
237
242
260
265
265
265
269
271
284
289
289
304
307
307
309
508
509
510
5
5
5
5
8
9
9
9
13
13
14
20
20
20
21
21
21
21
27
27
27
27
27
27
29
29
30
30
31
31
31
31
32
32
32
32
32
33
33
33
33
34
35
35
35
35
36
36
36
36
36
37
37
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
40
42
42
49
53
53
67
71
71
88
88
89
90
90
90
91
91
91
91
91
92
92
93
93
93
94
95
97
97
98
101
107
109
109
109
110
111
121
128
129
129
129
130
133
138
138
139
139
150
152
157
157
157
165
167
172
175
177
179
187
187
187
196
201
201
219
224
224
238
240
240
243
261
265
266
266
269
270
272
285
290
290
305
308
310
509
510
511
8
10
10
10
10
12
12
12
14
15
15
18
18
21
22
22
25
25
27
27
27
27
30
30
30
31
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
35
36
36
37
37
38
38
38
38
38
38
38
39
39
40
40
40
40
43
43
50
52
52
54
54
68
72
72
85
85
86
89
89
90
91
91
91
92
92
92
92
92
93
94
94
97
97
97
99
99
99
99
108
108
110
110
110
111
129
130
130
131
134
140
140
153
158
158
158
158
166
166
168
168
173
176
178
188
188
197
202
202
220
225
225
239
241
244
262
267
267
269
270
271
286
291
291
306
309
311
510
511
512
4
5
11
11
11
11
12
13
15
15
15
15
15
23
23
27
27
27
27
27
28
28
29
29
31
31
32
33
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
35
37
37
37
37
37
38
38
39
39
39
39
39
40
40
40
40
51
53
53
55
69
71
71
73
73
86
86
87
87
87
87
87
90
90
90
91
92
92
92
92
92
92
93
93
93
93
93
94
97
100
100
100
101
108
109
111
112
129
130
130
130
130
130
131
132
135
138
139
139
139
141
141
150
150
154
159
159
159
159
159
159
166
168
169
169
174
177
179
187
188
188
188
188
189
198
203
203
221
226
226
240
242
245
263
265
268
268
270
271
287
292
292
307
310
312
511
512
513
1
1
5
6
8
12
12
12
12
15
16
18
23
25
26
28
29
29
31
32
32
32
34
34
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
39
39
39
39
39
40
40
40
40
40
42
52
54
54
56
70
72
72
74
87
87
88
88
88
88
88
91
91
91
92
92
92
92
94
94
94
94
94
95
101
101
101
104
108
109
110
112
113
120
131
131
131
132
133
133
136
136
138
138
138
139
140
140
140
148
151
151
155
157
159
159
160
160
160
160
166
168
169
170
170
175
178
178
180
189
189
190
199
204
204
222
227
227
241
243
246
264
269
269
271
288
293
293
308
311
313
512
513
514
1
1
1
4
5
5
9
13
13
16
17
18
23
23
29
29
30
32
32
32
32
32
33
35
35
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
40
41
41
43
53
55
57
71
73
73
75
88
88
88
88
89
89
89
89
89
89
89
89
90
90
90
90
92
93
93
94
94
94
95
96
102
102
102
104
109
110
111
113
114
121
121
121
121
130
130
132
132
132
137
137
140
141
141
141
149
149
156
160
161
161
161
161
166
166
169
170
176
179
179
179
179
179
181
188
188
190
190
200
205
205
223
228
228
242
244
247
265
269
270
270
272
289
294
294
309
312
314
513
513
514
515
5
5
6
6
10
14
14
15
17
18
18
18
23
24
25
25
30
33
33
33
34
37
37
37
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
40
41
41
42
42
54
56
58
72
74
76
86
86
86
90
90
90
90
90
90
91
91
91
91
93
94
94
94
94
94
94
96
97
103
103
103
108
110
111
112
115
122
122
131
133
138
138
139
141
142
142
157
159
159
161
162
162
167
167
168
168
168
170
177
180
180
180
182
189
201
206
206
224
229
229
243
245
248
265
266
270
271
271
290
295
295
310
313
315
514
514
515
516
5
5
5
5
6
11
12
15
15
15
15
23
23
24
25
25
25
25
25
25
29
30
30
31
34
35
35
35
35
36
36
36
36
36
36
36
37
38
39
39
39
39
39
39
40
42
42
43
43
57
59
73
75
77
87
87
87
87
90
90
90
90
91
91
91
92
92
92
92
94
95
95
95
97
98
99
103
104
104
104
109
111
111
113
116
122
130
132
134
139
139
140
140
151
158
160
163
163
169
169
169
169
178
180
181
183
188
190
202
207
207
225
230
230
244
246
249
267
271
272
272
291
296
296
311
314
316
515
516
517
5
6
6
6
7
12
16
16
17
17
18
18
23
23
23
25
25
29
29
30
31
32
32
32
33
33
33
34
34
34
34
34
34
34
35
35
36
36
36
36
36
36
36
36
38
38
38
38
38
39
39
40
40
40
43
43
44
44
52
56
58
58
60
60
71
75
76
78
85
86
86
88
88
88
88
90
90
91
91
91
92
92
93
93
93
93
93
96
98
99
100
104
104
108
110
113
114
114
117
122
130
130
131
135
140
140
151
159
159
159
161
164
164
170
170
180
182
184
188
188
189
203
208
208
226
231
231
245
247
250
268
272
273
273
292
297
297
315
317
516
517
518
4
5
5
5
5
5
5
6
7
7
8
13
15
15
17
17
18
23
26
26
27
27
29
32
32
32
33
33
33
33
33
33
33
33
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
37
37
37
38
38
38
38
38
39
40
40
40
40
40
41
41
41
43
43
45
45
53
57
59
59
61
61
72
76
77
79
83
83
84
85
85
86
87
87
87
87
87
87
89
89
89
89
89
89
89
92
92
94
94
95
97
99
100
101
101
109
109
111
111
115
115
118
129
130
131
132
136
141
141
142
159
159
160
160
160
165
165
170
183
185
187
188
189
190
204
209
209
227
232
232
248
251
269
269
272
274
274
293
298
298
316
318
517
518
519
5
6
6
7
8
8
9
14
17
17
18
18
18
23
24
25
25
26
26
26
27
27
27
27
27
28
28
29
32
32
32
32
32
32
34
34
34
35
35
35
35
35
35
35
35
35
36
37
37
37
37
37
37
38
38
38
38
39
41
41
41
42
42
42
44
44
44
44
46
46
54
58
60
60
62
62
73
77
77
78
79
80
84
84
85
85
85
85
85
86
86
87
87
87
88
88
88
88
88
88
90
90
93
93
95
98
100
101
102
102
102
102
109
111
112
112
116
116
119
130
132
133
137
142
142
142
161
161
161
166
166
170
184
186
188
190
191
205
210
210
228
233
233
249
252
265
270
270
275
275
294
299
299
317
319
518
519
520
5
5
5
5
8
9
9
10
15
15
15
18
19
19
23
25
25
26
26
26
27
27
27
27
28
28
28
29
29
29
32
33
33
33
33
33
34
35
35
35
36
37
37
37
37
37
37
37
38
38
38
38
38
38
39
40
40
42
43
43
43
45
45
47
47
59
63
63
78
78
79
80
81
85
85
86
86
86
86
86
87
87
88
88
88
89
89
89
89
89
89
92
92
92
94
99
100
101
102
102
102
103
103
109
111
112
113
113
117
117
120
130
131
133
138
143
143
157
162
162
162
167
167
178
185
187
188
189
191
206
211
211
229
234
250
253
269
271
271
276
276
295
300
300
311
318
320
519
520
521
4
5
5
5
6
6
6
6
6
8
9
10
11
16
17
17
18
20
20
25
27
27
27
28
29
29
29
29
30
30
30
32
32
33
34
34
35
35
35
35
37
37
37
37
37
38
38
39
40
40
42
44
44
44
46
46
46
46
48
48
60
64
64
79
79
81
82
86
86
86
86
87
87
87
87
87
87
88
88
89
89
90
90
90
90
94
95
95
96
100
102
103
103
104
104
109
109
112
113
118
118
121
130
131
133
133
134
139
142
142
144
144
149
158
163
163
168
179
183
186
188
188
189
191
191
192
207
212
212
230
235
245
249
251
254
270
270
272
272
272
277
277
296
301
312
316
319
321
520
521
522
4
5
5
5
5
5
6
7
7
7
9
9
10
10
11
12
15
15
17
17
18
19
19
21
21
25
25
27
29
29
29
30
30
30
32
32
32
32
33
33
34
34
34
35
35
35
35
36
37
37
38
38
39
39
40
41
43
43
45
45
45
47
47
48
48
49
49
61
65
65
80
82
83
84
88
88
88
88
88
88
88
90
90
92
93
93
93
96
96
97
101
102
102
103
104
104
110
110
111
111
111
113
119
119
121
122
134
134
135
140
140
143
143
145
145
150
158
158
162
162
164
164
167
167
169
169
179
184
187
189
192
192
193
208
213
213
231
233
233
236
250
252
255
270
270
272
272
273
273
273
278
278
297
300
300
302
317
320
322
521
522
523
1
5
7
8
8
8
10
11
12
13
17
17
17
18
18
18
18
18
20
20
22
27
27
27
30
32
32
32
32
32
33
34
34
34
34
35
35
35
36
36
36
36
36
36
36
36
37
38
38
40
42
44
46
46
46
49
49
50
50
62
66
66
81
83
83
84
85
86
86
86
86
88
88
88
88
89
90
90
90
93
93
93
94
97
97
98
102
103
104
105
112
112
112
112
120
120
122
122
122
123
135
135
141
141
141
146
146
151
151
163
163
165
165
168
170
170
170
170
170
180
180
180
185
188
190
193
193
209
214
214
232
234
237
251
253
256
273
273
274
274
274
279
279
298
301
303
318
321
323
522
523
524
1
1
5
5
8
9
9
11
11
12
12
13
14
15
15
18
19
19
19
21
21
23
25
25
27
32
32
32
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
38
41
41
43
45
45
45
45
46
46
47
47
47
50
50
51
51
63
67
67
82
84
84
84
84
84
84
84
85
85
85
86
87
87
87
87
88
88
89
89
89
90
90
90
98
98
99
102
102
103
104
105
106
113
113
121
121
123
123
124
133
142
147
147
152
152
152
152
162
164
164
166
169
171
171
171
181
181
186
189
191
191
210
215
215
233
235
238
252
254
257
274
274
275
280
280
299
302
304
319
322
324
523
524
525
5
5
6
7
9
9
10
12
13
13
14
14
15
20
20
20
22
24
27
27
27
32
33
33
33
33
33
33
33
33
33
34
34
35
35
35
35
35
35
35
35
36
36
36
36
37
37
39
44
46
46
46
47
47
47
48
48
52
52
64
68
68
81
81
82
83
85
85
85
85
85
85
85
86
86
86
86
86
87
87
88
88
88
88
90
90
99
99
100
102
102
103
103
104
106
107
113
122
122
123
123
123
123
124
125
130
143
143
148
148
150
152
152
153
153
162
167
170
171
172
180
181
181
181
181
182
187
188
190
190
192
192
211
216
216
234
236
239
253
255
258
270
270
276
281
281
300
303
305
320
323
323
325
325
524
525
526
5
5
8
9
10
11
14
15
15
15
16
20
21
23
25
25
25
27
27
27
27
32
32
33
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
45
47
47
48
48
48
49
49
53
53
65
69
69
82
82
83
83
83
83
83
84
86
86
86
86
86
86
86
87
87
87
87
87
89
89
89
89
91
91
99
100
101
104
104
105
108
113
123
124
124
125
126
130
131
133
133
143
144
149
149
153
154
154
158
162
163
168
171
171
173
182
182
183
188
188
189
191
191
193
193
212
217
217
235
237
240
254
256
256
259
259
271
271
272
272
272
277
282
282
301
304
306
321
326
326
525
526
527
5
7
8
8
8
8
9
9
10
11
11
12
12
12
15
15
16
16
17
20
20
24
26
27
27
27
27
28
28
29
29
29
29
29
29
32
32
33
33
33
33
34
34
34
34
34
34
35
35
35
35
38
40
45
46
48
49
50
50
50
50
50
50
54
54
66
68
68
70
70
79
83
83
83
83
83
83
84
84
84
84
84
85
87
87
87
87
87
87
87
87
87
88
88
88
88
88
92
100
100
101
105
105
106
109
123
123
124
125
125
127
130
134
134
145
150
150
152
152
154
158
163
164
169
172
174
181
181
183
183
188
189
192
192
194
194
213
218
218
236
238
241
255
260
260
273
273
273
278
283
283
302
305
307
322
327
327
526
527
528
5
9
10
11
11
11
11
11
12
12
12
13
15
15
17
18
19
20
21
23
25
25
25
27
27
29
29
33
33
34
34
34
34
35
35
35
35
36
36
36
37
46
47
49
51
51
51
51
55
55
67
69
69
71
79
79
80
83
83
84
84
84
84
84
84
84
84
85
85
85
85
85
85
86
86
86
88
89
89
89
93
101
106
106
107
107
110
121
123
124
125
128
131
133
135
135
135
143
143
146
151
151
153
162
164
165
170
173
175
182
189
190
191
193
193
193
195
195
214
219
219
237
239
242
256
261
261
273
274
274
279
284
284
303
306
308
323
328
328
527
528
529
4
4
5
8
8
12
12
13
13
13
14
18
19
20
20
20
21
22
22
22
22
24
26
26
26
27
28
28
29
30
32
32
32
34
34
34
34
34
34
34
34
34
35
35
35
35
36
36
37
38
38
47
50
52
52
52
52
56
56
68
70
70
72
80
80
81
83
83
84
84
85
85
85
85
86
86
86
86
88
89
89
89
89
90
91
94
94
101
101
105
105
107
108
108
111
112
123
124
125
126
129
133
134
141
144
144
147
152
152
152
152
154
158
163
165
165
170
171
174
176
181
183
191
191
192
196
196
215
220
220
238
240
243
257
262
262
274
274
280
285
285
304
307
309
324
329
329
528
529
530
5
5
5
5
5
5
5
6
9
13
13
14
14
15
15
15
16
16
19
20
20
20
20
21
22
22
25
25
25
26
26
26
27
27
27
27
27
27
28
29
29
30
32
32
32
32
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
35
37
38
38
38
38
45
48
48
49
49
49
51
51
52
52
53
53
53
53
53
55
55
57
57
69
71
73
81
81
82
82
84
84
84
84
84
84
85
85
86
86
86
86
86
86
87
88
88
89
89
89
90
90
91
91
95
95
95
95
106
106
108
109
109
112
113
113
113
113
123
123
124
125
127
130
134
134
135
135
142
142
148
152
152
153
153
153
153
162
164
171
171
171
171
175
177
181
181
182
192
192
192
193
193
197
197
216
221
221
241
244
258
263
263
281
286
286
308
310
325
330
330
529
530
531
6
6
7
7
10
12
14
15
15
16
17
20
20
21
25
25
26
26
26
27
27
27
27
27
28
28
28
29
29
30
30
30
30
30
31
32
32
32
32
32
32
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
37
37
37
46
50
50
52
52
54
54
54
54
54
56
56
58
58
70
72
74
81
82
82
82
82
82
82
82
82
85
85
85
85
85
85
86
86
86
86
87
88
89
91
91
92
92
92
93
95
95
96
96
105
107
107
110
110
113
114
114
122
123
124
125
126
128
131
136
136
149
154
154
154
154
163
163
165
165
172
172
176
178
180
181
182
183
193
194
194
198
198
217
222
222
242
245
259
264
264
282
287
287
309
311
326
331
331
530
531
532
4
5
7
7
8
8
8
11
11
11
16
17
17
18
18
20
20
21
21
21
22
22
22
27
27
27
28
28
29
29
29
29
29
29
29
29
30
30
31
31
31
32
32
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
35
36
37
37
47
51
51
53
53
55
55
55
55
55
57
57
59
59
68
72
73
75
82
83
83
83
83
84
84
84
84
86
86
86
86
86
86
90
92
92
93
93
93
96
97
97
105
111
111
114
114
123
125
126
127
129
132
134
135
135
135
137
137
144
150
150
155
155
155
155
163
165
166
166
172
177
179
181
183
184
192
193
193
193
194
195
195
199
199
218
223
223
243
246
260
265
265
283
288
288
310
312
327
332
332
531
532
533
1
4
5
6
9
9
13
13
14
14
15
17
20
21
22
22
22
22
23
23
23
28
29
29
29
29
29
29
29
30
30
30
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
37
47
51
52
52
54
56
56
56
56
56
56
56
57
57
58
58
58
58
60
60
69
73
74
76
77
78
83
84
84
84
84
85
85
85
85
87
87
87
87
88
88
91
93
93
94
94
94
95
95
97
101
105
106
112
112
114
115
123
124
126
128
130
130
133
133
134
134
134
135
136
136
136
144
151
151
156
156
156
163
165
166
167
167
171
172
178
180
181
182
184
192
192
192
193
194
194
194
195
200
200
219
224
224
238
242
244
247
261
266
266
284
289
289
304
311
313
328
333
333
532
533
534
1
1
4
5
5
5
10
10
11
11
13
14
14
15
18
18
19
22
22
23
23
24
24
24
29
29
29
29
29
30
30
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
36
38
53
53
55
57
57
57
58
58
59
59
59
59
61
61
70
74
74
75
76
77
77
77
78
79
79
79
80
80
81
81
84
84
85
85
85
85
85
85
85
85
86
86
86
86
86
92
94
94
95
95
95
96
101
106
107
113
113
116
123
124
126
126
127
129
134
134
136
137
137
137
151
151
152
155
155
157
157
157
163
163
166
167
172
176
179
181
181
182
184
184
185
194
195
195
195
196
201
201
220
225
225
243
245
248
262
267
267
285
290
290
305
309
312
314
329
334
334
533
534
535
5
6
6
6
11
11
14
14
15
15
15
18
19
19
20
22
22
22
23
24
24
25
29
29
29
30
31
31
31
31
31
32
32
32
33
33
34
34
34
35
35
35
54
54
55
55
56
58
58
58
58
58
58
58
59
59
60
60
62
62
75
75
76
77
78
78
78
79
79
79
80
80
80
81
81
82
82
86
86
86
86
86
86
87
87
87
87
93
95
95
95
95
96
96
96
97
105
107
108
114
114
117
127
127
128
130
135
135
135
137
138
138
153
156
156
158
158
158
164
164
165
165
165
167
177
180
182
185
185
186
193
195
196
196
197
202
202
221
226
226
244
246
249
263
268
268
286
291
291
310
313
315
330
335
335
534
535
536
5
5
5
7
11
11
12
12
15
19
20
20
21
23
23
24
24
24
24
24
25
26
29
29
29
29
29
29
29
31
31
31
31
32
34
34
34
34
34
34
35
35
35
35
35
35
55
55
55
56
56
56
56
56
57
57
59
59
59
59
59
59
59
61
61
63
63
76
76
77
78
79
79
79
79
79
79
79
80
80
80
80
81
81
81
82
82
83
83
86
86
87
87
87
87
88
94
95
95
95
96
96
96
97
97
97
101
106
108
108
115
118
128
128
131
136
136
136
136
154
155
157
157
159
159
166
166
166
166
178
181
183
186
186
194
194
198
203
203
222
227
245
247
250
264
269
269
273
287
292
292
311
314
316
331
336
336
535
536
537
5
6
6
8
11
13
13
14
14
15
16
20
21
22
22
24
24
25
26
27
29
31
31
32
32
32
32
32
32
32
32
32
33
33
34
34
34
34
34
34
34
35
35
35
35
35
36
36
56
56
56
56
56
57
58
58
58
58
60
60
60
60
60
62
62
64
64
77
77
77
78
79
79
79
80
80
80
80
80
80
80
81
81
82
82
82
82
82
82
83
83
84
84
86
87
87
87
87
95
97
97
97
97
97
98
105
107
116
119
126
132
137
137
142
155
155
160
167
167
179
182
184
184
199
204
204
223
228
246
248
251
265
270
270
274
274
274
288
293
312
315
317
332
337
337
536
537
538
5
5
5
9
11
11
14
14
14
15
17
20
22
24
24
24
25
25
26
26
27
28
29
29
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
35
37
37
54
57
57
57
58
58
58
59
61
61
61
61
61
63
63
65
65
77
78
78
78
79
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
82
82
83
83
83
83
88
93
96
98
98
98
99
106
106
108
108
113
117
120
123
133
138
138
138
143
151
155
156
156
159
159
161
167
171
180
181
183
183
185
185
196
200
205
205
224
226
226
229
247
249
249
252
252
266
271
271
274
275
275
289
292
292
294
313
316
316
318
318
333
338
338
537
538
539
5
6
6
10
14
14
14
15
15
15
15
15
15
18
21
21
22
22
23
24
24
24
24
26
26
27
27
27
28
28
29
29
29
32
32
32
32
32
32
32
32
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
38
38
52
52
55
55
58
58
58
59
59
60
62
62
62
62
62
64
64
66
66
78
79
79
79
79
79
80
80
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
83
84
84
84
84
94
97
99
99
100
106
108
109
109
114
114
114
114
116
118
121
123
124
126
126
134
138
139
139
144
144
151
156
157
157
160
162
167
172
172
172
181
181
182
184
184
186
186
196
201
206
206
225
227
230
248
253
253
267
272
272
275
275
290
293
295
314
319
319
334
339
339
538
539
540
5
5
5
11
11
11
15
16
16
16
16
22
24
24
24
24
24
25
25
26
26
26
27
27
27
27
28
28
29
29
29
29
29
29
30
31
31
32
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
37
37
37
39
39
53
53
55
55
55
55
55
55
57
58
58
59
59
59
59
59
59
61
61
61
63
63
63
63
63
67
67
79
80
80
80
80
80
80
80
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
84
85
85
85
85
94
94
98
98
98
100
100
101
106
108
109
110
110
115
115
117
119
122
123
127
127
135
140
140
145
145
145
145
155
157
158
158
161
163
173
173
181
182
185
185
187
187
202
207
207
226
228
231
249
254
254
268
273
273
291
294
296
315
320
320
335
340
340
539
540
541
5
5
6
6
6
6
12
17
17
17
17
20
21
22
23
23
25
25
26
26
26
26
26
27
27
27
27
27
28
28
28
29
29
30
30
31
31
31
31
32
32
32
32
33
33
34
35
35
35
35
35
36
37
37
37
38
38
40
56
56
56
56
56
56
57
59
59
59
59
60
60
60
60
60
60
62
62
62
64
64
64
64
68
68
80
81
81
81
82
83
83
83
83
83
83
83
83
83
84
84
84
84
84
84
85
99
99
99
101
102
106
106
109
110
114
115
115
115
115
116
118
120
123
124
126
128
128
128
136
138
138
141
141
143
145
145
146
146
151
156
158
158
159
162
164
172
173
173
173
173
174
182
183
184
186
186
186
188
188
196
196
203
208
208
227
229
232
250
255
255
269
274
274
292
295
297
316
321
321
336
341
341
540
541
542
5
5
5
5
7
7
11
13
16
16
17
18
18
24
25
26
26
26
27
27
27
27
28
28
28
29
29
29
29
29
29
29
29
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
35
35
37
37
37
39
39
41
51
53
53
57
57
58
59
59
60
60
61
61
61
61
61
61
63
63
63
64
64
65
65
65
65
66
66
69
69
75
82
82
82
82
82
82
84
85
85
85
85
85
86
86
87
87
98
100
100
100
103
107
107
108
108
108
110
116
116
117
119
121
124
126
127
136
137
139
139
142
142
146
147
147
155
157
160
163
165
166
174
174
175
184
184
185
189
189
194
197
197
204
209
209
228
230
233
251
256
256
270
275
275
293
296
298
317
322
322
337
342
342
541
542
543
8
8
8
11
14
17
17
17
17
19
22
22
25
25
26
26
26
26
26
27
27
27
27
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
33
34
34
34
35
35
35
38
40
42
52
54
54
56
56
57
58
58
59
59
61
61
62
62
62
62
62
62
64
66
66
66
66
67
67
70
70
72
75
75
75
75
75
76
77
77
77
77
77
77
80
82
82
83
83
85
85
85
85
85
86
87
87
88
88
98
100
101
101
104
109
109
109
109
115
115
117
117
120
122
125
127
127
128
128
137
137
138
143
143
145
145
147
156
156
158
158
161
164
166
167
167
167
167
173
173
175
175
185
185
185
186
186
190
190
195
195
205
210
210
229
231
234
252
257
257
271
276
276
294
297
299
318
323
323
338
343
343
542
543
544
1
5
9
9
11
11
15
17
18
18
18
18
20
22
22
23
26
27
27
27
28
28
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
39
41
43
55
55
55
56
56
58
58
59
59
59
59
60
60
60
60
60
60
62
62
63
63
65
67
67
67
67
68
68
71
71
71
71
73
75
75
76
76
76
76
76
76
76
77
77
77
78
78
78
78
78
78
80
80
80
80
80
80
82
85
85
85
85
86
87
88
88
88
89
89
94
98
99
102
102
105
110
110
116
121
123
123
126
126
129
129
139
144
144
146
156
158
159
159
162
165
167
168
168
174
186
187
187
191
191
206
211
211
230
232
235
253
258
258
272
277
277
295
298
300
319
324
324
339
344
344
543
544
545
1
1
1
5
9
10
16
17
17
18
19
19
19
19
19
21
24
26
26
27
28
29
29
29
29
30
31
31
32
32
33
33
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
35
42
44
52
56
57
57
58
59
60
60
61
61
61
61
61
63
64
65
65
66
68
68
68
68
69
69
72
72
72
72
74
76
76
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
79
79
79
79
79
79
81
81
81
81
81
81
82
85
87
88
89
89
89
89
89
90
90
94
99
100
103
103
106
110
115
117
122
127
127
127
128
128
128
130
130
139
140
145
145
145
145
147
156
158
159
160
160
163
166
168
168
173
175
185
186
186
186
187
188
188
192
192
197
207
212
212
231
233
236
254
259
259
273
278
278
296
299
301
320
325
325
340
345
345
544
545
546
5
5
9
11
11
17
17
17
17
19
19
20
22
25
26
29
29
29
29
29
30
31
31
32
32
32
32
32
32
32
32
32
32
34
35
35
35
35
35
35
35
35
35
35
35
36
37
41
43
43
45
45
48
48
55
57
57
58
59
59
60
61
61
62
62
62
62
62
65
66
66
67
69
69
69
69
70
70
73
73
73
73
75
75
77
77
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
82
82
82
82
82
82
85
86
87
88
89
89
89
90
90
90
91
91
98
100
101
104
104
107
110
115
115
116
123
127
127
127
128
128
128
129
129
129
139
141
145
145
146
146
146
146
156
156
159
160
167
168
169
173
173
174
185
185
185
186
187
187
187
188
193
193
197
208
213
213
234
237
255
260
260
274
279
279
300
302
321
326
326
341
346
346
545
546
547
1
4
8
8
8
8
10
12
12
17
21
23
26
27
27
29
29
29
29
29
31
32
33
33
34
34
34
35
35
35
35
35
36
36
37
38
42
44
44
46
46
49
49
49
49
52
52
53
53
55
58
58
58
59
59
59
60
60
60
60
61
63
63
63
66
67
67
67
68
69
70
70
71
71
74
74
74
74
74
74
78
78
78
78
79
79
79
80
80
80
80
80
80
80
81
81
81
81
83
83
83
83
83
83
87
89
90
90
91
91
92
92
94
99
101
101
105
105
108
114
115
116
117
124
129
129
129
130
130
130
142
147
147
147
147
157
157
158
158
158
160
168
170
172
173
174
175
187
188
188
188
189
194
194
209
214
214
235
238
256
261
261
275
280
280
301
303
322
327
327
342
347
347
546
546
548
5
5
5
9
11
11
11
11
12
15
17
18
19
19
20
22
22
24
24
24
25
25
25
25
26
27
28
28
29
29
29
29
30
30
30
31
31
31
32
32
33
34
35
35
35
35
35
36
37
37
38
39
43
45
45
47
47
53
53
54
54
56
58
58
58
58
60
60
61
61
62
62
62
62
64
64
67
68
68
68
69
70
71
71
71
72
72
75
75
80
80
80
81
81
81
81
81
81
81
81
82
82
82
82
85
85
88
89
89
90
90
91
91
98
100
106
106
109
115
117
118
125
128
130
130
130
131
131
139
139
143
143
148
148
148
148
159
159
159
159
169
171
173
175
176
186
188
189
189
190
195
195
197
197
210
215
215
236
239
257
262
262
274
276
281
281
302
304
323
328
328
343
348
348
546
547
547
549
4
5
5
6
8
8
12
13
16
17
19
19
20
20
21
23
23
24
25
25
25
25
25
26
26
29
29
29
29
29
29
29
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
34
35
35
36
37
38
39
44
47
48
48
56
58
61
61
62
62
63
63
63
63
65
65
68
69
69
69
71
72
72
72
73
73
73
75
75
76
76
80
80
80
81
81
83
83
83
83
89
90
91
92
92
99
99
101
101
107
107
109
110
115
116
118
126
129
129
131
131
137
140
140
144
144
149
149
149
160
160
163
167
170
172
173
174
176
187
187
191
195
196
196
198
198
211
216
216
231
235
237
240
258
263
263
275
277
282
282
296
303
305
324
329
329
344
349
349
548
548
550
4
4
5
5
6
7
13
14
17
19
21
21
22
24
24
24
25
25
26
26
26
26
26
27
29
29
29
29
29
29
29
29
29
29
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
33
34
34
34
34
35
37
37
38
38
39
40
45
48
48
49
49
51
52
57
59
59
62
64
64
64
64
69
69
70
70
72
72
72
73
73
73
73
74
74
74
75
75
75
75
75
75
76
76
77
77
79
80
80
83
83
83
83
83
83
83
89
89
90
91
92
92
93
99
101
102
102
108
108
110
110
110
110
111
115
116
118
118
119
127
132
132
138
138
144
144
145
148
148
150
150
150
160
164
168
168
168
168
168
171
173
173
174
176
176
177
192
196
196
197
197
212
217
217
236
238
241
259
264
264
275
275
278
283
283
297
301
304
306
325
330
330
345
350
350
549
549
551
4
5
5
6
7
8
12
14
15
19
19
21
23
24
25
25
25
26
26
26
27
27
27
27
28
28
28
29
29
29
30
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
34
34
34
34
34
34
34
35
38
39
40
41
46
50
50
52
53
53
53
57
57
60
61
61
62
62
62
62
63
71
71
73
73
73
73
73
74
74
74
74
74
75
75
75
75
75
76
76
76
76
76
76
77
77
78
78
78
78
79
83
83
83
83
85
89
89
90
90
91
93
94
99
101
102
103
103
109
111
111
112
119
119
120
128
131
133
133
146
149
149
151
151
151
160
169
169
169
172
174
177
177
178
189
193
198
198
213
218
218
237
239
242
260
265
265
275
276
276
279
284
284
302
305
307
326
331
331
346
351
351
550
550
552
4
4
5
7
8
8
9
11
11
21
21
21
24
24
25
25
25
25
26
26
26
26
26
26
27
27
28
28
28
28
28
29
29
29
29
29
29
31
31
31
31
32
32
32
32
33
33
33
33
34
34
34
35
35
35
35
35
35
36
39
39
40
40
41
42
47
48
48
51
51
54
54
58
58
58
58
61
62
62
62
62
63
63
63
63
64
70
71
71
71
71
72
72
74
74
74
74
74
75
75
75
76
76
76
76
76
76
76
76
77
77
77
77
77
77
78
78
78
78
79
79
79
79
83
91
91
92
94
95
99
99
102
103
110
111
113
120
120
129
131
134
134
140
147
148
150
150
152
152
169
170
173
175
178
178
189
194
198
199
199
214
219
219
238
240
243
261
266
266
276
276
277
280
285
285
303
306
308
327
332
332
347
352
352
551
551
553
4
5
5
5
5
5
5
8
9
10
14
14
15
19
19
21
24
25
25
25
25
25
26
26
27
27
27
28
29
29
29
29
29
29
29
29
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
35
35
35
35
35
35
37
40
41
41
42
42
43
48
49
49
49
49
50
50
50
50
52
52
58
58
62
62
62
62
63
63
63
63
64
64
64
64
68
69
69
71
71
72
72
72
72
72
72
73
73
74
74
74
75
75
75
75
75
76
76
76
76
77
77
78
78
78
78
78
78
80
80
80
80
82
85
87
92
92
93
95
96
100
100
101
101
101
103
111
111
114
118
130
135
135
140
148
148
153
153
169
171
174
176
176
195
198
200
200
215
220
220
239
241
244
262
267
267
276
276
277
278
281
286
286
304
307
309
328
333
333
348
353
353
552
552
554
4
4
4
5
5
6
6
6
9
10
11
11
11
15
21
21
21
25
25
26
26
26
27
28
29
29
29
29
29
30
30
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
36
38
42
43
43
44
49
51
51
51
51
52
53
53
61
61
63
63
63
63
64
64
65
65
65
65
65
65
70
70
72
72
73
73
73
73
73
73
74
74
74
74
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
77
77
78
78
78
78
81
81
81
81
82
83
88
93
94
96
97
102
102
102
102
108
110
112
115
115
131
131
131
136
136
144
148
149
149
154
154
159
172
173
175
175
177
177
189
189
196
201
201
216
221
221
240
242
242
245
245
263
268
268
277
278
282
287
287
305
308
308
310
310
329
334
334
349
354
354
553
553
555
4
5
5
5
6
6
6
7
7
7
10
11
12
14
14
15
19
19
21
21
21
21
26
26
27
27
28
29
29
29
30
30
31
31
31
31
31
31
31
34
35
35
35
35
35
35
37
37
39
39
40
43
44
44
45
47
50
51
51
53
54
54
57
57
61
62
62
63
63
65
65
65
65
65
65
66
66
66
66
71
71
73
73
73
74
74
74
74
74
74
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
79
82
82
82
82
83
84
88
88
92
92
94
95
97
98
103
103
111
113
115
116
116
118
118
129
132
132
132
137
137
144
149
150
150
155
155
160
160
160
160
173
173
174
176
176
178
178
187
190
190
197
202
202
217
222
222
241
246
246
264
269
269
276
276
278
283
288
288
306
311
311
330
335
335
350
355
355
554
554
556
1
1
7
7
7
7
8
8
9
10
11
11
12
13
15
21
21
21
21
22
22
26
26
27
28
28
29
29
29
29
30
31
31
31
31
31
32
32
32
32
32
32
32
32
35
35
38
39
40
40
41
45
46
48
48
48
48
49
49
51
51
51
53
53
55
55
57
61
61
62
63
63
63
63
65
65
66
66
67
67
67
67
71
72
72
72
72
74
75
75
76
76
76
76
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
80
83
83
83
83
84
85
93
93
95
96
99
103
112
114
115
117
119
119
130
130
133
138
138
148
150
151
151
156
156
161
161
173
174
177
177
179
179
188
188
198
203
203
218
223
242
247
247
265
270
270
277
284
289
289
307
312
312
331
336
336
351
356
555
555
557
1
1
5
7
8
8
9
9
10
11
13
14
14
14
15
19
23
23
25
25
27
29
29
29
29
29
29
29
29
29
29
29
31
31
31
31
31
31
31
31
31
31
31
31
31
33
33
40
41
41
42
46
47
49
49
49
49
50
50
50
50
50
50
52
54
54
56
62
62
63
63
63
63
63
64
64
64
66
66
67
67
69
71
72
73
73
73
73
73
73
73
73
75
75
77
77
78
78
78
78
79
79
79
79
79
79
79
79
79
79
79
80
80
80
81
83
84
84
84
84
85
86
92
94
94
97
100
103
113
115
116
118
118
120
120
120
134
138
139
139
144
149
151
151
152
157
161
174
175
176
178
178
178
180
180
196
199
204
204
219
224
243
248
248
266
271
271
276
278
285
290
308
313
313
332
337
337
352
357
556
556
558
4
4
5
6
7
7
8
10
10
11
11
12
14
14
15
15
23
24
25
25
25
27
27
27
28
28
28
28
28
28
29
29
29
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
34
34
37
41
42
43
43
44
44
47
48
50
51
51
51
51
53
55
55
57
62
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
67
67
70
71
71
71
71
72
73
73
73
74
74
74
74
74
74
74
74
74
74
75
76
77
77
77
77
77
78
79
79
80
80
80
81
81
81
82
84
85
85
85
85
86
87
92
97
98
98
101
110
114
116
118
119
119
132
135
139
140
140
148
150
153
156
156
158
161
168
176
176
177
181
181
190
197
200
205
205
220
222
222
225
244
249
249
267
272
272
276
277
286
289
289
291
309
314
314
333
338
338
353
355
355
358
557
559
5
5
6
7
7
8
8
9
9
11
11
13
14
14
14
15
15
15
15
16
19
19
24
25
25
25
26
26
26
26
27
27
27
28
28
29
29
29
29
29
29
29
29
29
29
29
29
31
31
31
31
32
32
32
32
32
32
32
33
33
35
35
38
43
44
45
47
48
49
50
51
51
54
56
58
62
64
65
66
66
66
66
66
66
66
66
66
66
68
69
69
69
69
71
71
72
72
72
72
73
74
74
74
74
74
74
75
75
75
75
75
75
75
75
77
78
79
79
79
79
79
79
81
81
81
82
82
82
83
85
85
86
86
86
86
87
88
92
93
99
99
102
111
111
111
115
117
117
119
119
120
120
120
120
132
136
140
140
141
141
149
149
151
151
154
157
159
169
169
169
177
177
177
178
178
182
182
190
198
198
201
206
206
221
223
226
245
250
250
268
273
273
278
287
290
292
310
315
315
334
339
339
354
356
359
558
560
7
7
7
7
8
8
8
8
8
8
9
9
11
11
12
12
13
14
14
15
16
16
17
17
19
19
23
24
24
25
26
26
26
26
27
27
27
27
27
28
28
29
29
29
29
29
29
29
29
30
31
31
31
31
31
31
31
32
33
33
34
34
36
36
39
44
45
46
48
48
48
48
49
49
49
50
51
51
55
57
59
62
62
65
66
67
67
67
67
67
67
69
70
70
70
70
70
70
72
72
72
73
73
73
73
74
74
75
75
76
76
76
76
76
76
76
76
78
79
79
79
79
79
80
82
82
82
83
83
83
83
86
86
86
86
87
87
87
87
88
93
94
100
100
102
103
112
112
116
121
121
121
121
137
141
141
141
141
142
142
149
151
152
152
155
158
160
170
170
178
179
179
183
183
199
199
199
199
202
207
207
222
224
227
246
251
251
269
274
274
279
288
291
293
311
316
316
335
340
340
355
357
360
559
561
1
7
7
8
9
9
9
9
13
13
13
14
15
15
17
17
18
18
23
23
23
23
23
23
24
25
26
27
29
29
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
35
35
37
41
41
41
42
45
45
46
46
47
48
49
49
49
49
49
50
50
50
50
50
50
50
51
53
57
58
60
63
63
64
64
64
66
67
67
68
68
70
71
71
71
71
71
71
73
74
74
74
74
74
74
76
76
76
78
78
79
81
83
83
83
84
84
84
84
86
86
87
87
88
88
88
88
92
94
95
101
101
103
103
103
103
104
111
112
112
112
112
113
117
119
120
120
120
122
122
122
122
132
132
138
139
141
141
142
142
143
143
149
151
152
153
153
156
159
160
161
169
170
170
170
170
171
177
178
178
178
179
180
180
184
184
190
190
197
199
199
200
200
203
208
208
223
225
228
247
252
252
270
275
275
276
289
292
294
312
317
317
336
341
341
356
358
361
555
560
562
5
9
10
10
10
10
10
10
11
13
13
14
14
14
15
16
16
17
19
19
20
20
23
23
23
23
23
24
24
26
26
26
26
26
29
29
29
29
29
29
31
31
31
31
31
31
32
32
32
33
33
33
33
34
36
36
38
42
46
47
48
49
50
50
51
51
51
51
51
52
54
58
59
61
65
65
65
65
66
66
67
67
69
69
71
71
72
72
72
72
72
72
74
74
74
76
76
80
82
84
84
84
85
85
85
87
88
88
88
89
89
89
89
93
95
95
102
102
104
104
105
113
113
114
118
119
119
119
120
121
121
121
123
123
130
133
133
139
142
143
143
144
144
149
149
152
153
157
160
161
161
161
161
162
171
171
172
177
177
177
178
179
179
179
180
185
185
188
191
191
200
201
201
204
209
209
224
226
229
248
253
253
271
275
276
276
276
277
290
293
295
313
318
318
337
342
342
357
359
362
556
558
561
563
5
6
8
10
11
11
11
14
14
15
15
16
17
17
20
20
20
20
23
24
24
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
29
29
29
29
29
30
30
30
31
31
31
31
35
37
39
43
47
47
48
49
50
50
51
51
51
52
53
55
59
59
60
61
62
66
66
67
67
67
67
67
67
67
67
68
68
68
70
70
70
70
72
72
72
72
73
73
74
76
76
76
76
76
76
81
83
85
85
85
86
86
86
86
86
87
88
90
90
90
90
92
94
103
103
104
106
112
112
114
114
119
121
122
122
122
124
124
131
131
140
141
141
143
145
145
150
150
151
151
151
153
158
161
162
162
163
170
170
172
172
179
180
180
180
181
186
186
189
189
199
199
201
205
210
210
225
227
230
249
254
254
272
276
276
277
277
278
291
294
296
314
319
319
338
343
343
358
360
363
559
562
564
5
6
7
7
9
9
11
11
11
11
12
15
15
16
16
17
17
18
21
21
23
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
29
29
29
29
29
29
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
33
33
36
38
39
40
43
44
46
48
48
48
49
49
49
49
50
50
50
51
51
51
51
51
52
52
53
54
60
60
61
62
63
66
67
68
68
68
68
68
68
69
69
69
72
72
72
72
72
72
73
73
73
73
73
76
76
78
82
84
86
86
86
87
87
87
87
87
91
91
91
91
93
93
95
95
104
104
104
107
113
120
120
122
123
123
125
125
141
142
146
146
152
152
152
152
159
162
162
164
171
178
180
181
181
182
187
187
200
206
211
211
226
228
231
250
255
255
273
277
277
278
278
279
279
292
295
297
315
320
320
339
344
344
359
361
364
560
563
565
8
8
10
10
11
12
12
12
13
15
15
17
17
17
17
18
18
19
19
19
19
22
22
23
26
26
26
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
31
31
31
31
32
32
32
32
32
32
39
41
45
47
49
50
50
51
52
52
52
53
53
54
55
61
61
63
64
65
66
67
68
68
68
69
69
69
69
69
70
70
70
72
72
73
73
73
73
73
73
73
74
74
74
74
76
77
83
85
86
86
87
87
87
88
88
88
88
92
92
92
92
93
95
96
96
105
105
108
112
114
121
121
121
126
126
133
141
141
142
143
147
147
153
153
160
162
163
165
170
172
179
179
183
188
188
191
199
199
201
207
212
212
227
229
232
251
256
256
274
276
279
279
279
279
280
280
293
296
298
316
321
321
340
345
345
360
362
365
561
564
566
9
9
11
11
13
13
13
14
16
16
16
16
17
17
17
18
18
19
19
19
23
23
23
23
23
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
31
31
31
31
34
38
40
40
42
42
46
46
46
48
48
48
48
49
50
50
51
51
52
52
52
53
53
54
55
56
62
64
65
66
66
66
66
66
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
69
69
69
70
70
70
70
70
71
71
71
71
71
71
72
72
74
74
74
74
74
74
75
75
75
75
75
77
78
78
84
86
86
86
87
87
88
88
88
89
89
89
93
93
93
93
93
95
96
97
97
106
109
112
112
113
122
127
127
133
141
141
142
142
143
148
148
153
164
166
170
170
171
184
189
189
191
199
199
200
200
208
213
213
230
233
252
257
257
275
280
280
280
281
281
297
299
317
322
322
341
346
346
363
366
562
565
567
5
9
10
10
11
14
15
17
17
17
19
19
20
20
23
23
23
24
24
24
24
26
26
26
26
27
27
27
27
27
28
29
29
29
29
29
29
29
29
29
29
31
31
31
31
31
31
35
39
41
41
43
43
47
47
47
47
48
48
48
49
49
49
49
49
49
50
50
50
51
52
52
53
53
54
55
56
57
63
65
65
65
66
67
67
67
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
71
71
71
71
71
71
71
75
75
75
75
75
75
76
78
79
85
87
88
88
89
89
89
90
90
90
93
93
94
94
96
97
107
110
111
112
113
114
123
123
128
128
143
143
144
149
149
153
165
167
169
170
171
172
181
185
190
190
201
201
209
214
214
231
234
253
258
258
276
281
281
281
298
300
318
323
323
342
347
347
364
367
563
566
568
1
1
2
9
9
10
11
14
16
17
18
18
18
18
18
19
19
20
20
20
21
24
25
25
25
25
25
25
25
25
26
26
26
26
26
27
27
28
29
31
31
31
32
32
32
36
40
42
42
44
44
47
47
49
49
49
49
49
50
50
50
50
51
52
52
53
54
55
56
57
58
64
66
66
66
67
67
67
67
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
71
71
72
72
72
77
79
80
84
86
88
89
89
90
90
90
91
91
91
93
93
93
93
94
94
95
95
95
95
95
97
108
111
112
114
115
123
124
129
129
139
144
144
145
150
166
168
170
172
173
181
186
191
191
197
202
202
210
215
215
232
235
254
259
259
277
282
282
299
301
319
324
324
343
348
348
365
368
564
567
569
1
1
1
2
3
10
10
11
11
15
15
17
17
19
19
19
19
20
20
20
20
21
21
22
25
25
25
25
26
26
26
26
27
28
28
29
29
29
29
29
29
29
31
31
31
31
41
45
45
45
46
47
49
49
49
49
50
51
51
52
53
54
55
56
57
58
59
65
67
67
67
67
67
67
68
68
68
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
72
72
72
78
80
81
85
87
89
90
91
91
92
92
92
94
94
96
96
96
96
96
96
103
105
107
109
112
112
113
115
125
130
130
140
145
146
149
149
151
160
167
169
170
171
173
187
192
192
198
203
211
216
227
231
233
236
255
260
260
276
276
278
279
283
293
300
302
320
325
325
344
349
360
364
366
369
565
568
569
570
3
4
9
9
10
11
16
18
19
21
21
21
21
22
22
23
26
26
26
27
27
27
27
29
29
29
29
29
29
30
30
30
31
31
42
45
46
46
46
46
47
47
47
48
49
49
50
50
52
52
53
54
55
56
57
58
59
60
66
68
68
68
68
68
68
68
69
69
69
69
69
69
69
70
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
75
75
75
76
79
81
82
85
85
88
89
89
90
91
92
92
93
93
95
95
97
97
97
97
104
104
104
108
110
112
113
113
115
115
116
123
123
126
131
131
131
140
140
144
144
146
147
150
152
152
161
161
165
168
170
170
171
173
173
174
181
181
188
189
193
193
198
198
202
202
204
212
217
232
234
237
256
261
261
277
279
279
280
282
282
284
294
298
301
303
321
326
326
345
350
365
367
370
566
568
570
571
4
5
10
10
10
11
11
11
11
13
13
17
17
18
18
19
19
19
21
22
22
23
23
24
25
25
25
25
26
26
26
26
27
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
43
46
46
47
47
47
47
47
48
48
48
49
49
49
51
51
52
52
52
53
53
53
55
56
57
60
61
65
66
67
68
68
68
68
68
68
68
68
69
69
69
69
70
70
70
70
70
70
70
70
71
72
72
75
75
75
75
75
77
80
82
89
90
90
90
91
91
92
92
92
93
93
94
94
96
96
97
98
98
105
105
109
111
114
116
116
117
121
124
124
127
132
132
132
145
145
147
148
151
153
153
153
153
153
162
162
162
166
169
171
174
174
175
179
182
182
189
190
194
194
203
203
205
213
215
215
218
233
235
238
257
262
262
280
280
281
283
285
299
302
304
322
327
327
346
348
348
351
366
368
371
567
571
572
4
5
5
6
9
9
11
12
12
18
19
19
19
20
21
21
21
24
24
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
44
46
46
46
46
48
48
48
49
49
49
49
50
50
50
52
52
52
53
53
53
53
54
54
54
56
57
58
61
62
66
66
66
66
67
67
67
68
68
68
68
68
68
69
69
69
69
69
69
70
70
70
70
71
71
71
71
71
71
72
72
72
72
75
75
78
78
80
89
90
91
91
92
92
93
94
94
95
95
97
97
97
99
99
104
105
105
105
105
106
110
112
115
117
117
122
122
128
133
133
133
133
144
146
146
149
152
154
154
154
163
163
167
170
172
175
175
180
180
190
191
191
195
195
202
204
204
214
216
219
234
236
239
258
263
263
281
281
284
286
300
303
305
323
328
328
347
349
352
367
369
372
568
572
573
5
6
7
13
13
19
19
20
20
20
20
21
21
21
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
30
41
41
43
45
46
47
47
47
47
47
48
49
49
50
50
51
52
53
53
53
54
54
54
55
55
55
57
57
58
58
59
59
60
62
63
64
65
65
65
65
65
65
66
66
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
71
72
72
72
72
72
72
79
79
79
79
82
89
91
93
93
94
96
96
98
98
100
100
106
106
107
111
113
115
116
129
134
134
134
134
134
134
144
150
153
154
155
162
163
163
163
163
164
168
171
173
173
191
192
192
192
192
196
196
202
215
217
220
235
237
240
259
264
264
276
281
282
285
287
301
304
306
324
329
329
348
350
353
368
370
373
569
573
574
7
8
9
11
13
17
19
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
31
31
31
42
42
42
42
44
46
46
46
49
49
50
50
50
50
50
52
53
54
54
55
55
55
56
56
58
59
60
60
61
63
63
63
64
65
65
65
66
66
66
66
66
66
66
66
67
67
67
67
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
71
71
72
72
72
72
72
73
73
73
77
79
79
80
80
82
85
89
90
92
94
94
95
97
97
99
99
101
101
105
105
107
107
112
112
114
114
117
117
124
130
132
134
134
135
135
135
135
140
144
145
151
154
154
156
164
164
165
169
170
172
172
174
174
182
190
192
192
192
193
193
197
197
198
202
203
216
218
221
236
238
238
241
241
260
265
265
277
279
283
286
288
302
305
305
307
307
325
330
330
349
351
354
369
371
371
374
374
570
574
575
5
5
8
9
9
13
13
18
19
19
19
19
20
20
21
21
21
21
21
21
22
22
22
22
23
23
23
23
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
29
30
30
30
30
31
31
32
45
45
47
47
47
47
49
50
50
50
51
51
51
51
52
53
53
53
53
54
54
54
55
55
56
59
60
61
61
61
62
63
64
64
64
65
65
65
66
66
66
67
67
67
67
67
67
67
67
68
68
68
68
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
72
72
73
73
73
73
73
73
74
74
74
80
81
81
85
90
91
93
95
95
96
96
98
98
100
100
102
102
106
112
113
113
115
115
118
118
124
131
135
136
136
136
136
140
145
146
152
155
157
163
163
165
165
170
170
171
173
173
175
175
182
193
193
194
194
198
198
198
203
204
217
219
222
237
242
242
261
266
266
279
280
284
287
289
303
308
308
326
331
331
350
352
355
370
375
375
571
575
576
4
4
5
5
9
9
9
9
10
13
14
19
19
19
20
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
24
24
24
24
24
24
25
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
31
33
40
44
46
46
48
48
50
50
50
50
51
51
52
52
52
52
54
54
55
55
55
56
57
60
61
61
61
61
61
62
62
62
63
64
65
65
65
66
66
66
67
67
67
67
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
70
71
71
71
71
71
71
71
72
72
73
74
74
74
74
74
74
75
79
79
81
89
91
92
94
94
96
96
97
97
97
97
97
99
99
101
101
103
103
105
107
112
114
116
116
119
119
132
134
134
136
137
137
144
146
147
153
156
158
164
170
171
174
174
176
176
192
192
194
194
199
199
202
204
205
218
220
223
238
243
243
262
267
267
280
281
285
288
290
304
309
309
327
332
332
351
353
356
371
376
376
572
576
577
5
10
10
11
11
13
13
14
15
15
15
15
19
19
21
21
22
23
23
23
23
23
24
24
24
25
25
26
26
26
27
27
27
27
28
28
29
29
29
29
29
29
29
29
32
34
41
41
41
42
47
49
50
50
51
51
51
52
52
53
53
53
53
55
55
56
56
57
58
61
62
62
62
62
62
63
63
63
64
65
65
65
65
65
65
65
66
66
66
66
66
67
67
67
68
68
68
69
69
69
69
69
70
70
70
70
71
71
71
71
71
72
73
73
74
75
75
76
80
85
90
92
92
95
95
97
97
98
98
98
99
99
100
100
102
102
104
104
105
105
106
113
115
115
117
117
117
120
120
124
124
133
135
138
138
140
145
147
147
153
157
159
163
165
171
172
173
175
175
175
177
177
182
182
193
195
198
200
200
203
205
205
219
221
224
239
244
244
263
268
268
280
281
282
286
289
291
305
310
310
328
333
333
352
354
357
372
377
377
573
577
578
1
4
6
9
11
11
12
12
13
13
13
15
15
20
20
22
23
23
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
28
28
28
28
28
28
29
29
29
29
30
30
31
33
33
35
35
42
42
43
43
43
43
44
44
45
46
46
47
47
47
47
50
50
51
51
51
51
52
52
52
53
53
53
54
54
54
56
57
58
59
62
63
63
63
63
64
64
64
65
66
66
66
66
66
66
66
66
67
68
68
68
69
69
69
70
70
71
71
71
71
71
71
72
72
72
72
73
74
74
75
76
76
77
79
79
81
89
91
98
98
98
99
100
100
101
101
103
103
103
103
104
105
105
105
105
105
106
107
115
116
116
121
121
122
125
125
134
134
134
136
139
139
144
146
154
154
154
154
158
160
163
163
164
173
173
174
178
178
180
183
183
192
192
194
196
201
201
202
204
220
222
225
240
245
245
264
269
269
280
281
282
283
290
292
306
311
311
329
334
334
353
355
358
373
378
378
574
578
579
1
1
5
7
8
13
13
13
19
19
23
23
23
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
31
31
32
34
34
36
36
41
41
44
44
45
45
46
47
47
47
47
48
48
51
51
51
52
52
52
52
53
54
55
55
55
55
56
56
57
58
59
60
63
64
64
64
64
64
64
64
64
64
64
64
65
66
66
66
66
66
67
67
67
67
67
67
68
68
68
68
68
68
69
69
69
69
70
70
71
71
72
72
72
72
72
72
73
73
73
73
75
75
76
77
77
78
79
79
80
80
90
90
92
92
93
98
99
100
101
101
102
102
105
106
106
106
106
107
108
116
116
117
117
117
122
122
123
123
134
134
135
135
135
140
140
145
145
147
147
155
155
159
161
162
163
164
165
174
174
174
175
175
179
179
181
181
192
192
193
193
197
202
202
203
203
205
205
223
226
241
246
246
265
270
270
280
281
281
282
283
291
293
307
312
312
330
335
335
356
359
374
379
379
575
579
580
4
5
5
9
13
14
14
14
15
15
19
19
23
24
24
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
30
30
30
30
32
32
33
35
35
37
37
39
42
42
42
42
48
50
52
53
53
54
55
56
56
56
56
57
57
58
59
60
61
61
63
64
64
64
65
65
65
66
66
66
66
66
66
66
67
67
67
67
67
68
68
68
68
68
68
68
68
68
69
70
70
72
72
73
73
73
73
73
73
73
73
74
74
74
74
76
76
77
78
78
79
81
81
90
92
93
93
94
98
100
101
102
102
103
103
105
106
107
107
107
107
108
118
118
118
123
123
136
136
136
141
141
145
147
148
148
153
155
160
162
163
165
166
175
176
176
180
180
194
194
198
203
203
203
205
206
206
224
227
242
247
247
266
271
271
280
281
282
282
283
292
294
308
313
313
331
336
336
357
360
375
380
380
576
580
581
5
5
7
10
13
15
15
15
15
16
16
19
22
22
22
22
23
23
23
23
24
24
25
25
26
26
26
26
27
27
27
27
27
27
27
27
27
28
29
29
29
29
29
29
29
29
29
31
31
33
33
34
38
38
40
40
42
43
43
44
46
49
50
51
51
54
54
55
57
57
57
58
58
62
62
62
63
63
64
65
65
65
65
66
66
66
66
67
67
67
67
67
67
67
68
68
68
68
68
68
68
69
70
71
71
74
74
74
74
74
74
75
75
75
75
77
77
77
78
79
80
82
82
90
92
93
94
94
99
101
102
102
103
103
104
104
104
105
106
108
108
108
108
108
108
109
116
117
117
117
119
119
119
124
124
125
132
137
137
137
142
142
145
147
148
149
149
154
155
158
161
163
163
164
166
174
175
175
175
176
177
177
181
181
183
190
195
195
199
203
204
204
205
206
207
207
225
228
243
248
248
267
272
272
280
282
283
283
286
293
295
309
314
314
332
337
337
358
361
376
381
381
577
581
582
5
5
7
11
15
16
16
17
17
22
22
22
22
22
23
23
23
23
24
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
30
32
32
32
32
34
34
35
39
39
40
43
43
43
44
44
44
44
44
44
45
46
46
47
49
49
51
52
53
53
55
55
55
55
56
56
56
58
59
59
59
60
62
63
63
64
65
66
66
66
66
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
70
71
71
71
71
72
72
73
73
74
74
74
74
74
74
76
76
76
76
77
78
78
80
81
83
90
90
93
94
98
100
100
102
104
104
105
105
105
109
109
109
109
109
109
110
116
116
116
117
118
118
118
120
125
125
125
133
138
138
143
143
145
145
148
149
159
162
163
164
164
166
166
167
174
174
174
175
176
176
176
177
182
182
183
191
196
200
203
203
205
205
206
207
220
224
226
229
244
249
249
268
273
273
281
283
284
287
291
294
296
310
315
315
333
338
338
353
357
359
362
377
382
382
578
582
583
5
5
7
12
15
15
17
17
17
22
22
22
23
23
23
23
23
24
24
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
29
29
31
33
33
34
34
35
35
36
40
40
41
41
41
41
41
42
44
44
45
45
45
45
47
48
51
51
52
52
52
53
54
54
55
56
56
56
56
56
56
57
57
57
58
59
60
60
60
61
61
61
61
61
61
61
61
61
62
63
64
64
65
66
67
67
67
67
67
67
68
68
68
68
68
68
69
69
69
69
69
69
69
69
70
70
71
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
74
74
75
75
75
75
75
75
78
78
78
79
81
82
82
82
84
91
91
92
92
92
94
101
101
103
105
105
106
106
106
110
110
110
110
110
110
118
119
119
119
121
126
126
133
133
137
137
139
139
144
146
146
147
147
147
149
160
163
165
167
167
168
176
177
177
177
178
183
183
191
191
195
195
197
201
204
204
205
205
205
206
206
207
225
227
230
245
250
250
269
274
274
282
284
292
295
297
311
316
316
334
339
339
358
360
363
378
383
383
579
583
584
5
5
7
13
17
17
17
18
18
20
21
22
22
23
24
24
24
24
25
26
26
27
27
27
27
27
27
28
29
29
29
30
32
35
35
36
36
37
41
41
42
42
42
42
42
42
43
43
43
43
44
44
51
52
55
55
55
55
56
56
56
57
57
57
57
57
58
58
58
59
59
60
60
61
61
61
61
61
62
62
62
62
62
62
62
62
62
63
63
64
64
65
66
68
68
68
68
68
68
69
69
69
69
73
73
73
73
73
74
74
74
74
75
75
76
76
76
76
76
76
78
80
82
83
83
83
85
93
93
93
93
97
102
102
104
106
106
107
107
107
108
111
111
111
111
117
119
120
120
122
127
127
138
138
140
140
143
143
145
148
148
148
148
161
164
166
168
168
175
177
178
178
179
184
184
196
196
198
202
206
206
206
206
207
207
226
228
231
246
251
251
270
275
275
282
293
296
298
312
317
317
335
340
340
359
361
364
379
384
384
580
584
585
5
5
7
14
15
15
17
19
19
19
20
20
21
21
22
22
22
22
22
22
22
23
24
24
24
25
25
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
31
31
32
32
33
36
36
37
37
38
42
42
42
43
43
44
44
44
45
45
53
53
56
56
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
59
60
60
61
62
62
62
62
62
63
63
63
63
63
63
63
63
63
64
64
65
66
66
69
69
69
69
69
69
69
70
70
72
73
73
73
74
74
74
74
75
75
75
75
76
76
77
77
77
77
81
82
84
84
84
94
94
98
98
98
103
103
105
105
107
107
108
108
108
112
112
112
112
118
118
123
128
128
137
139
139
141
144
146
149
149
162
165
165
166
167
167
176
176
180
185
185
195
197
197
203
207
207
208
227
229
232
247
252
252
271
276
284
294
297
299
313
318
318
336
341
360
362
365
380
385
385
581
585
586
5
5
5
5
7
15
17
17
17
19
19
20
20
20
21
22
22
22
22
22
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
32
33
33
33
34
38
38
39
39
40
43
43
43
43
43
44
44
44
44
44
44
44
45
45
49
49
53
54
54
56
57
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
65
65
66
67
67
68
68
69
69
69
70
70
70
71
71
72
72
72
73
74
74
74
75
75
75
75
75
75
76
76
82
82
85
94
99
99
104
104
105
106
106
108
108
108
108
109
109
109
113
113
113
113
123
124
129
129
137
142
145
147
149
154
163
163
168
168
181
181
186
186
195
204
207
209
228
230
233
248
253
253
272
275
275
277
284
295
298
298
300
300
314
319
319
337
342
361
363
366
381
386
386
582
586
587
5
5
5
5
6
6
7
7
7
15
15
16
17
17
17
17
19
20
21
21
21
22
22
23
23
23
23
24
24
25
25
25
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
29
29
29
29
29
29
29
34
34
34
35
39
39
40
40
40
41
41
41
41
41
41
41
42
44
44
44
44
44
45
45
45
45
45
49
53
53
54
55
55
56
57
58
59
59
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
64
64
64
64
64
64
64
64
65
65
65
65
65
66
69
69
70
71
71
71
72
72
74
75
75
75
76
76
77
77
78
82
82
83
83
83
86
94
98
99
99
99
99
100
105
105
105
107
107
109
109
109
109
110
110
110
110
114
114
114
114
120
124
125
130
130
133
137
138
143
146
148
149
155
155
155
163
164
164
166
166
169
169
178
182
182
187
187
191
195
196
205
207
207
207
210
229
231
231
234
234
249
254
254
273
276
278
296
301
301
315
320
320
338
340
340
343
362
364
364
367
367
382
387
387
583
587
588
1
5
5
6
7
7
8
8
17
17
17
17
17
18
18
19
20
20
20
21
22
22
22
22
23
23
23
23
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
29
31
35
36
36
36
36
36
40
40
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
45
45
54
54
55
56
56
56
56
56
57
57
59
60
60
61
61
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
67
70
70
70
71
72
72
72
73
73
73
75
76
76
77
77
77
77
77
77
77
77
78
78
78
83
84
84
84
87
100
100
101
106
106
106
108
110
110
110
110
110
111
111
111
111
115
115
115
115
120
125
125
126
131
131
133
138
139
144
147
149
156
156
163
165
167
167
170
170
178
183
183
183
188
188
191
196
197
206
208
211
230
235
235
250
255
255
274
277
279
297
302
302
316
321
321
339
341
344
363
368
368
383
388
388
584
588
589
1
1
4
5
5
5
6
7
7
8
9
9
15
18
18
18
19
19
19
21
21
22
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
26
27
27
27
28
28
29
32
37
37
37
41
41
42
42
42
43
43
44
44
44
44
45
45
46
54
56
56
56
57
57
57
57
58
58
58
58
58
59
59
59
59
59
60
61
62
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
66
66
67
67
67
67
68
71
71
71
71
71
72
73
73
73
74
74
74
74
75
75
77
77
78
78
78
78
78
78
79
79
82
84
85
85
85
88
99
99
101
101
107
107
108
109
111
111
112
112
112
112
116
116
116
116
126
126
126
126
127
132
132
137
139
140
145
148
150
155
156
156
156
156
157
164
166
166
168
168
168
171
171
184
184
184
184
184
189
189
195
197
198
207
209
212
231
236
236
251
256
256
275
278
280
298
303
303
317
322
322
340
342
345
364
369
369
384
389
389
585
589
590
5
7
8
8
9
9
19
19
20
22
22
22
22
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
29
29
33
38
38
38
39
40
42
42
42
43
43
43
43
44
44
44
44
44
44
44
45
45
45
47
54
55
56
57
58
58
59
59
59
59
59
59
60
60
60
60
60
60
63
64
64
64
64
64
65
65
65
65
65
66
67
67
67
67
67
67
69
69
71
71
72
72
72
73
74
74
74
75
75
76
76
76
76
78
79
79
80
80
83
85
85
86
86
89
93
100
108
108
109
109
110
110
112
112
113
113
113
113
117
117
117
117
120
120
124
126
126
127
127
128
133
133
133
138
140
140
146
148
149
151
157
157
158
166
167
167
172
172
178
178
182
184
184
185
185
185
190
190
191
196
198
198
206
208
210
213
232
237
237
252
257
257
276
279
281
299
304
304
318
323
323
341
343
346
365
370
370
385
390
390
586
590
591
5
5
8
9
9
9
9
10
15
15
18
18
20
20
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
34
34
35
35
38
38
39
39
39
40
40
41
41
41
41
41
41
41
41
41
42
43
43
44
44
44
44
45
45
45
45
45
46
48
54
54
56
57
57
58
58
58
59
59
60
60
60
60
61
61
61
61
64
64
64
64
64
66
67
67
67
67
70
72
73
73
73
74
75
75
75
76
76
76
76
80
80
81
81
82
84
87
87
90
94
94
94
94
99
101
109
109
111
111
113
113
114
114
114
114
118
118
118
118
118
121
121
127
128
128
129
134
134
137
139
147
149
149
149
149
150
152
156
156
158
158
167
167
168
168
168
173
173
176
179
179
185
186
186
186
191
191
195
197
207
207
207
207
209
211
214
233
238
238
253
258
258
277
280
282
284
300
305
305
319
324
324
342
344
347
366
371
371
386
391
391
587
591
592
4
5
5
6
8
9
9
10
10
11
15
15
19
19
19
19
19
19
19
20
20
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
26
27
28
28
28
29
29
29
36
40
40
40
42
42
42
42
42
42
42
42
42
42
43
43
43
43
44
44
44
44
45
47
49
53
53
53
54
55
55
56
56
56
57
57
57
57
57
58
58
59
59
60
60
60
61
61
61
62
62
65
65
67
67
67
67
67
67
68
71
71
71
73
73
74
76
76
76
76
77
77
77
78
78
78
78
78
78
81
81
82
82
83
83
85
85
88
88
91
95
95
99
99
100
109
110
110
110
110
110
112
112
114
114
115
115
115
115
119
119
119
119
119
119
126
126
128
130
135
135
138
138
140
140
150
150
151
153
157
169
169
169
174
174
177
177
184
184
186
187
192
192
196
196
198
198
208
208
210
212
215
234
239
239
254
259
259
278
281
282
283
284
285
301
306
306
320
325
325
343
345
348
367
372
372
387
392
392
588
592
593
5
7
9
9
9
9
10
10
10
11
11
11
11
11
12
19
19
20
21
22
22
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
28
28
28
28
28
28
28
28
37
41
41
41
42
42
43
43
43
43
43
44
44
45
45
45
45
47
48
50
54
54
54
55
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
59
59
60
60
60
60
60
61
61
61
62
62
62
62
62
62
62
62
67
67
68
69
72
72
74
75
75
76
76
77
77
77
78
78
78
79
79
79
79
82
82
83
83
83
85
86
86
89
89
92
95
98
99
100
101
109
109
109
110
111
111
111
111
111
115
115
116
116
116
116
120
120
120
120
127
131
136
136
138
140
141
141
150
152
154
156
158
167
168
168
168
170
170
170
175
175
185
188
193
193
196
198
199
199
208
211
213
216
235
240
240
255
260
260
279
282
283
284
285
302
307
307
321
326
326
344
346
349
368
373
373
388
393
393
589
593
594
5
9
9
9
10
11
11
11
12
13
19
19
20
21
22
22
22
22
23
23
23
24
24
24
24
25
25
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
33
37
38
39
40
40
42
42
42
42
42
42
43
43
43
44
44
44
44
44
44
44
44
44
44
45
46
46
48
49
51
55
55
55
56
58
58
58
58
58
58
58
58
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
62
62
63
63
63
63
63
63
67
69
70
71
71
73
73
75
77
77
77
77
78
78
78
79
83
83
83
84
84
85
86
87
87
90
90
93
95
99
101
102
111
112
112
112
112
112
116
116
117
117
117
117
121
121
121
121
121
126
126
128
132
137
137
138
140
141
142
142
150
153
155
156
156
157
167
167
167
168
169
169
169
171
176
176
179
184
184
186
189
194
194
196
198
199
200
200
208
212
214
217
236
241
241
256
261
261
283
283
285
303
308
308
322
327
327
345
347
350
369
374
374
389
394
394
590
594
595
1
1
5
5
5
9
11
11
12
12
13
14
19
19
20
20
20
21
21
22
22
22
22
22
23
23
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
29
29
29
29
29
39
40
40
41
41
41
41
41
43
44
44
44
45
45
45
45
45
45
45
45
47
47
49
49
50
51
52
56
56
56
56
56
56
57
57
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
62
62
62
63
63
64
64
64
64
64
64
66
67
68
70
71
71
71
72
72
74
77
77
77
79
79
79
80
83
83
84
84
85
85
86
87
91
94
99
100
102
110
112
113
113
113
113
117
117
118
118
118
118
121
122
122
122
122
126
126
127
127
133
138
138
138
138
141
142
147
154
155
156
156
157
158
169
170
170
170
172
177
177
179
184
184
185
185
190
195
195
196
196
199
200
215
218
237
242
242
257
262
262
284
285
286
304
309
309
323
328
328
348
351
370
375
375
390
395
395
591
595
596
4
4
5
5
6
6
6
9
10
11
11
12
13
13
14
14
15
18
19
19
19
20
21
21
22
22
22
23
23
23
23
23
23
23
23
24
25
25
26
27
27
27
28
28
28
28
28
28
29
29
30
30
38
38
40
41
41
42
42
42
44
44
44
44
44
45
45
46
46
48
48
50
50
51
52
53
57
58
59
59
60
60
60
60
60
60
60
60
61
61
61
61
62
62
62
62
62
62
62
62
62
62
63
63
64
64
64
65
65
65
65
65
65
66
67
69
71
72
73
73
75
75
77
78
78
79
79
80
80
80
81
84
84
85
85
85
85
85
86
86
87
92
95
99
100
102
102
103
111
111
114
114
118
118
119
119
119
119
123
123
123
123
128
128
134
139
139
139
139
140
140
140
142
148
152
155
156
157
158
159
168
170
171
171
173
178
178
186
186
191
196
196
197
197
198
198
198
200
216
219
238
243
243
258
263
263
285
285
287
305
310
310
324
329
329
349
352
371
376
376
391
396
396
592
596
597
5
7
7
7
7
9
11
11
12
12
14
15
15
16
18
19
19
19
19
19
20
20
21
21
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
27
27
27
27
28
29
29
29
31
31
39
39
39
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
45
45
45
45
45
47
47
49
49
51
51
53
54
57
57
58
58
58
58
60
60
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
65
65
65
67
67
67
68
69
70
72
73
74
74
76
76
76
79
79
79
79
79
79
81
81
81
82
86
86
86
86
86
86
87
87
93
96
103
103
104
115
115
119
119
120
120
120
120
121
121
124
124
124
129
129
135
140
140
141
141
141
141
149
153
156
156
157
158
159
169
169
174
179
179
179
179
182
187
187
192
197
197
199
199
199
199
217
220
239
244
244
259
264
264
279
286
288
306
311
311
325
330
330
350
353
372
377
377
392
397
397
593
597
598
1
4
5
6
7
8
8
8
8
11
11
12
13
13
15
16
16
17
18
18
18
19
19
19
19
20
20
21
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
28
28
32
32
40
41
41
42
42
42
42
42
42
42
42
42
42
42
43
43
44
44
44
44
44
46
46
46
48
48
50
50
52
54
55
55
55
55
57
57
58
58
59
59
61
61
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
65
66
68
69
70
71
73
74
75
77
77
77
80
80
80
80
80
80
80
80
82
82
82
83
87
87
87
88
90
92
94
97
104
104
113
116
116
119
120
120
121
121
121
121
122
122
125
125
125
130
136
141
142
142
150
150
150
150
154
156
157
157
159
159
159
160
175
177
180
180
180
180
183
188
193
198
198
200
200
212
216
218
221
240
245
245
260
265
265
280
284
287
289
307
312
312
326
331
331
345
349
351
354
373
378
378
393
398
594
598
599
1
1
5
7
9
9
11
11
12
13
13
17
18
18
19
20
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
29
33
33
37
39
39
40
40
41
42
43
43
43
44
44
44
45
47
47
47
49
49
51
51
53
53
55
55
55
55
55
56
56
56
56
58
58
59
59
59
60
60
60
60
61
61
61
61
62
62
62
62
63
63
63
63
63
63
63
64
65
65
65
65
65
65
67
69
70
70
70
72
74
74
74
75
76
78
78
78
78
80
80
80
80
81
81
81
81
83
83
83
84
86
86
87
87
87
88
89
93
94
95
98
102
113
117
117
120
120
121
121
122
122
122
122
123
123
123
123
125
125
126
126
129
129
131
137
140
140
142
142
151
151
155
158
160
160
160
161
171
176
178
178
181
181
183
183
187
187
189
194
199
199
200
207
217
219
222
241
246
246
261
266
266
285
288
290
308
313
313
327
332
332
350
352
355
374
379
379
394
397
397
399
595
599
600
4
4
5
5
10
10
13
13
13
13
14
18
18
18
19
20
21
21
21
22
22
22
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
28
28
28
28
28
28
30
34
34
37
38
38
38
39
40
40
41
41
42
42
42
43
44
44
45
45
46
48
48
48
50
50
52
52
54
54
54
54
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
59
59
59
59
59
60
60
60
60
60
61
61
62
63
63
63
63
64
64
64
65
65
65
67
68
70
71
73
75
75
75
76
77
78
78
78
79
80
80
81
81
82
82
82
82
84
84
84
85
87
87
88
89
90
94
95
95
95
96
99
99
118
118
122
122
123
123
123
124
124
127
127
130
130
132
138
141
142
143
151
156
159
159
161
161
161
161
171
177
182
182
188
188
190
195
200
200
200
208
208
208
218
220
223
242
247
247
262
267
267
286
289
291
309
314
314
328
333
333
351
353
356
375
380
380
395
398
400
596
600
601
5
5
5
7
11
11
11
11
13
15
15
16
16
19
19
19
19
19
19
19
20
21
21
21
21
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
27
27
29
29
29
29
29
29
31
35
35
38
39
39
39
40
41
41
41
41
41
41
41
41
42
42
42
43
43
44
44
45
45
45
45
45
47
49
49
49
51
51
51
52
53
53
55
55
55
55
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
60
60
60
60
62
62
62
63
63
63
63
63
64
64
65
65
65
69
71
74
74
76
76
76
76
77
79
79
79
79
80
80
80
80
80
80
80
81
81
82
82
85
85
86
88
89
90
91
95
96
96
97
99
100
100
102
102
113
113
119
119
122
123
123
124
124
124
125
125
128
128
129
131
131
139
142
144
151
157
159
162
162
178
180
183
183
187
189
189
196
201
201
209
209
219
221
224
243
248
248
263
268
268
285
287
290
292
310
315
315
329
334
334
352
354
357
376
381
381
396
399
401
597
601
602
5
5
6
7
12
12
13
13
13
16
17
18
19
19
19
20
21
21
21
21
21
21
21
22
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
32
36
36
38
38
40
42
42
42
42
42
42
43
45
45
45
45
46
46
46
46
46
48
50
50
50
52
52
52
53
53
53
53
53
53
53
54
54
56
56
56
56
56
56
56
56
56
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
60
60
60
60
61
61
61
62
62
62
63
63
63
64
64
67
69
74
75
77
77
78
78
78
79
79
80
80
81
81
81
82
82
84
84
86
86
87
89
90
91
92
95
96
96
96
96
96
97
98
99
101
103
103
111
114
114
120
120
122
122
122
124
124
125
125
125
126
126
129
129
129
140
143
145
156
158
163
163
171
171
179
180
184
184
187
197
202
202
208
209
209
209
209
210
220
222
225
244
249
249
264
269
269
283
285
286
288
291
291
293
293
311
316
316
330
335
335
353
355
358
377
382
382
397
400
402
598
602
603
5
5
7
8
11
11
13
13
13
13
13
13
17
17
18
18
20
21
21
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
25
26
26
26
27
28
28
28
33
34
34
37
37
37
39
39
39
39
40
40
40
41
43
43
44
45
45
46
46
47
47
47
47
47
49
50
50
51
51
51
52
52
53
53
53
54
54
54
54
54
54
54
55
55
57
57
57
57
57
57
57
58
58
58
58
58
58
58
59
59
59
60
60
60
60
60
60
60
60
61
61
62
62
62
63
63
64
64
65
65
70
71
74
75
76
78
78
78
79
79
80
80
80
81
81
82
82
82
83
83
85
86
87
87
88
90
91
92
93
97
97
97
98
99
99
100
102
102
102
104
104
104
112
112
121
121
123
125
125
125
126
126
126
127
127
129
130
130
130
141
141
144
146
156
157
159
159
159
164
164
169
172
172
180
183
185
185
187
188
198
199
203
203
210
210
211
221
223
223
226
226
245
250
250
265
270
270
284
286
289
294
294
312
317
317
331
336
336
354
356
356
359
359
378
383
383
398
401
403
599
603
604
5
5
7
9
13
13
13
13
14
14
14
14
18
18
18
18
18
20
20
20
20
21
21
21
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
27
28
29
29
29
34
34
35
35
35
35
35
36
36
38
38
38
38
38
39
39
40
40
40
40
40
41
41
41
42
42
43
44
44
45
45
47
47
48
48
48
48
48
52
52
52
53
53
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
58
58
58
58
58
58
58
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
61
62
62
62
62
63
63
63
63
64
64
65
66
70
71
75
76
77
79
79
79
79
79
79
80
80
80
80
81
81
81
83
84
84
86
87
87
87
87
88
91
92
93
94
96
96
98
98
98
102
103
103
103
122
122
124
125
127
127
127
128
128
130
131
131
131
142
142
142
142
142
145
147
156
160
160
160
165
165
170
170
181
183
186
186
188
189
199
200
200
200
200
204
204
209
209
211
211
222
227
227
246
251
251
266
271
271
284
290
295
295
313
318
318
332
337
337
355
360
360
379
384
384
399
402
404
600
604
605
5
5
7
10
11
13
14
15
15
15
15
18
18
18
19
19
20
20
20
21
21
21
21
22
22
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
28
28
35
35
35
36
36
37
37
39
39
39
40
40
41
41
41
42
42
44
44
45
45
45
45
46
46
46
46
46
46
48
48
49
52
52
53
53
53
53
53
53
54
54
55
55
55
55
56
56
56
56
56
56
56
56
57
57
57
57
57
57
58
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
62
62
63
63
64
64
65
65
65
66
66
66
67
74
76
77
77
78
79
79
79
79
80
81
81
82
82
83
83
83
83
84
85
85
87
88
88
89
92
93
94
95
97
99
103
103
104
104
104
104
114
123
123
125
128
128
128
129
129
129
131
132
132
132
143
143
143
146
148
157
159
161
161
161
161
166
166
182
187
187
187
189
190
200
201
201
205
210
223
228
228
247
252
252
267
272
286
291
296
296
314
319
319
333
338
356
361
361
380
385
385
400
403
405
601
605
606
5
5
5
7
11
15
16
16
16
18
18
19
19
19
20
20
20
20
20
20
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
24
24
24
25
25
25
25
25
25
25
26
28
33
36
37
37
38
38
38
40
42
43
43
44
45
46
46
47
47
47
47
49
50
51
51
53
53
53
53
54
54
54
54
54
54
55
55
56
56
56
56
56
56
56
57
57
57
58
58
58
58
58
58
59
60
60
60
61
61
61
61
61
61
61
62
62
62
63
65
65
66
66
66
67
67
67
68
70
75
77
77
77
79
79
81
82
82
83
83
84
84
84
84
85
86
86
88
88
90
93
94
95
96
96
98
100
105
105
105
105
114
120
124
124
125
126
129
129
129
130
130
130
132
132
133
133
143
144
147
149
150
159
160
162
167
167
172
178
183
183
188
188
188
190
190
201
201
206
209
211
224
229
229
248
253
253
268
271
271
273
286
292
297
297
315
320
320
334
339
357
362
362
381
386
386
401
404
406
602
606
607
5
5
5
6
7
7
7
11
11
12
16
17
17
18
18
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
28
32
34
34
34
34
37
37
38
38
38
39
41
41
43
43
44
45
45
46
47
47
48
48
48
48
51
52
52
52
52
53
54
54
54
54
55
55
55
55
55
55
55
55
56
56
56
56
56
57
57
57
57
57
58
58
59
59
59
59
59
59
59
59
59
59
60
60
60
61
61
61
61
63
63
64
66
67
67
68
68
74
76
78
79
79
80
80
80
83
83
85
85
85
85
87
88
88
89
91
94
95
96
96
96
97
97
101
103
104
104
104
106
106
106
106
121
125
125
125
127
129
129
129
130
130
130
131
131
131
134
134
143
148
150
151
151
151
160
160
161
161
163
168
168
172
179
184
187
189
189
189
201
202
204
204
207
209
209
210
225
230
230
249
254
254
269
272
274
293
298
298
316
321
321
335
337
337
340
358
363
363
382
387
387
405
407
603
607
608
5
5
7
8
8
11
11
13
15
16
16
16
16
17
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
26
26
26
27
28
33
33
35
35
35
35
38
38
38
38
39
39
39
39
39
40
41
42
44
44
44
45
45
45
46
46
46
46
47
49
49
49
49
49
50
51
51
52
53
53
53
53
53
53
54
55
55
55
55
55
55
56
56
56
56
56
56
56
57
57
58
58
58
58
60
60
60
60
61
61
61
61
61
61
61
62
62
62
63
63
63
64
64
65
67
67
75
75
77
77
78
78
81
81
81
82
82
83
83
83
83
84
84
88
89
90
92
92
93
95
95
96
96
97
97
98
98
102
103
103
103
104
105
105
105
107
107
114
114
122
122
126
128
130
130
130
130
131
131
131
132
132
132
132
135
135
149
151
152
152
162
162
164
169
169
180
180
185
188
188
190
190
190
190
203
205
208
208
209
210
211
226
231
231
250
255
255
270
273
275
294
299
299
317
322
322
336
338
341
359
364
364
383
388
388
406
408
604
608
609
9
9
14
15
15
16
17
17
17
18
19
19
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
25
25
26
26
27
28
34
34
36
36
37
37
38
39
39
40
40
40
40
40
40
41
41
42
43
44
44
44
44
46
46
47
47
48
48
48
48
50
50
50
50
50
51
51
51
51
51
51
51
52
52
53
53
53
54
54
54
54
54
54
54
55
56
56
56
56
57
57
57
58
58
60
60
61
61
61
61
61
61
62
62
62
63
63
63
63
64
64
64
65
65
65
66
66
68
68
68
68
75
77
78
78
79
79
79
79
82
82
82
83
83
83
83
84
84
84
84
85
85
91
93
93
94
96
96
96
97
97
98
98
98
99
99
99
103
105
106
106
106
108
108
112
115
115
123
123
123
123
127
129
130
131
131
132
132
132
132
133
133
133
133
133
133
136
136
136
136
150
151
152
152
152
152
152
153
160
161
161
161
163
163
165
170
170
172
172
181
181
181
181
186
188
190
191
191
191
191
204
206
209
209
211
212
227
232
232
251
256
256
271
274
276
295
300
300
318
323
323
337
339
342
360
365
365
384
389
389
407
409
605
609
610
1
1
5
9
15
15
18
18
18
18
18
18
20
21
21
21
22
22
23
23
23
23
23
23
23
24
24
24
24
25
25
26
26
26
26
26
26
26
27
27
28
28
29
33
34
35
35
35
35
35
36
36
36
36
37
37
38
38
39
40
41
41
42
42
44
44
47
47
48
48
49
49
49
49
51
51
51
51
51
52
52
52
52
52
52
52
53
53
54
54
54
55
55
55
55
55
56
56
58
58
58
58
59
59
62
62
62
62
63
63
63
63
64
64
65
65
65
65
65
66
66
66
66
66
66
67
67
68
68
69
69
75
77
78
79
79
79
79
83
83
83
83
83
83
84
84
84
84
85
85
85
85
85
86
92
94
94
95
96
97
99
99
99
100
100
104
104
106
107
107
109
109
113
113
121
123
123
124
124
124
128
128
130
130
132
132
132
133
133
133
133
134
134
137
137
137
137
142
144
151
153
153
153
154
160
160
160
161
162
162
162
166
170
171
171
173
173
179
181
181
182
182
187
188
190
191
192
192
192
192
205
207
209
210
210
212
228
233
233
252
257
257
272
275
277
296
301
301
319
324
324
338
340
343
361
366
366
385
390
390
401
408
410
606
610
611
1
1
1
5
9
9
15
16
18
18
18
18
18
18
18
18
19
20
21
21
23
23
23
23
23
23
23
24
24
24
26
26
26
28
29
29
30
34
34
35
35
36
36
37
37
37
37
37
38
38
38
42
42
43
43
44
45
45
45
48
50
50
50
50
52
52
52
52
52
52
53
53
53
53
53
53
53
53
54
54
54
54
55
55
55
55
56
56
56
56
58
58
58
58
58
58
58
58
59
60
60
60
63
63
63
64
64
65
65
66
66
66
66
66
67
67
67
67
67
67
67
68
68
68
69
70
70
75
75
78
79
82
82
84
84
84
84
84
84
85
85
86
86
86
86
86
86
86
87
90
93
95
95
96
96
97
99
99
100
100
100
101
101
105
105
105
110
110
124
125
125
129
129
130
130
131
133
133
133
134
134
134
138
138
138
138
143
143
143
143
145
149
152
152
152
154
154
154
162
163
163
163
167
171
171
172
172
182
183
183
188
188
188
191
192
193
193
206
208
209
210
211
212
212
213
229
234
234
253
258
258
273
276
278
297
302
302
320
325
325
339
341
344
362
367
367
386
391
402
406
409
411
607
611
611
612
5
5
9
10
15
17
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
22
22
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
26
29
30
30
31
33
34
35
37
37
38
38
39
39
39
39
43
43
43
43
44
45
46
46
47
47
48
48
48
48
49
50
50
50
50
51
51
54
54
54
54
54
54
54
54
55
55
56
56
56
57
58
58
59
59
59
59
60
60
60
61
61
61
63
64
64
64
65
65
66
67
67
67
68
68
68
68
68
68
68
68
69
69
69
70
76
76
77
77
77
78
78
79
82
83
83
84
84
85
85
86
86
86
86
86
86
87
87
87
87
87
88
91
94
94
96
96
96
97
100
100
101
101
101
102
102
106
111
111
115
123
123
125
130
130
131
131
132
132
132
132
132
133
133
134
134
134
135
135
135
139
139
139
139
144
144
150
153
153
155
161
163
164
164
168
173
173
181
181
183
189
189
189
190
190
190
192
194
194
200
207
209
212
213
213
214
230
235
235
254
259
259
274
277
279
298
303
303
321
326
326
340
342
345
363
368
368
387
390
390
392
407
410
412
608
611
612
613
9
9
10
11
11
11
11
15
18
18
18
18
19
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
24
24
24
25
25
25
25
26
26
26
26
27
31
32
32
34
34
34
34
34
34
35
35
35
36
36
37
37
37
37
37
38
38
38
40
40
44
44
44
44
44
44
46
47
47
48
48
48
48
49
49
49
49
49
49
50
51
51
51
51
52
52
52
52
52
52
54
54
54
54
54
54
54
54
54
55
56
56
56
56
58
58
59
59
60
60
60
61
61
62
62
62
62
63
63
63
64
65
65
65
65
66
66
66
66
67
67
67
67
67
68
68
68
69
69
69
69
70
70
70
78
78
78
78
78
82
82
83
84
84
84
84
86
86
86
86
87
87
88
88
88
88
88
88
88
89
92
97
97
97
98
101
101
102
102
103
103
107
107
112
112
115
124
131
131
133
133
133
133
134
135
135
136
136
136
140
140
140
140
144
151
152
154
154
156
162
162
169
173
174
174
182
190
191
191
191
191
195
195
201
201
201
208
210
213
214
214
231
236
236
255
260
260
275
278
280
284
299
304
304
322
327
327
341
343
346
364
369
369
388
391
393
408
411
413
609
613
614
1
4
5
9
9
9
11
11
15
18
18
18
18
18
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
24
24
24
24
24
27
28
32
33
33
33
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
38
38
38
39
39
44
44
45
47
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
51
51
52
52
52
52
53
53
53
53
53
53
54
54
54
54
55
55
55
55
55
55
55
56
56
57
57
57
59
60
61
61
62
63
64
64
64
64
64
65
65
66
66
66
66
66
66
66
66
67
67
67
67
68
68
68
68
68
68
68
69
69
69
70
70
71
79
79
83
83
84
84
84
84
84
85
85
85
87
87
87
87
88
88
89
89
90
93
98
98
98
99
99
103
103
104
104
107
108
113
113
123
123
125
132
132
134
134
135
136
136
137
137
137
141
141
141
141
144
152
152
152
153
155
157
170
173
175
175
181
181
183
191
192
192
196
196
202
202
209
211
212
214
232
237
237
256
261
261
279
281
285
300
305
305
323
328
328
342
344
347
365
370
370
389
392
394
409
412
414
610
614
615
5
5
9
16
17
17
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
24
24
24
24
25
25
25
25
25
29
29
30
30
33
34
35
35
36
36
36
37
37
37
37
37
37
37
37
38
46
47
47
47
47
47
48
48
49
49
49
49
49
49
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
53
53
53
53
53
53
53
53
54
54
54
54
54
54
56
56
56
56
56
56
58
60
62
62
63
65
65
65
66
66
67
67
67
67
68
68
68
69
69
69
69
69
69
69
70
70
70
71
72
79
83
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
88
88
88
88
89
89
89
89
90
91
94
96
99
99
99
100
104
104
105
105
109
114
114
123
123
124
124
133
133
134
136
137
137
138
138
138
142
142
142
142
151
152
153
153
154
156
156
158
158
164
171
176
176
181
181
182
182
192
192
197
197
201
202
202
202
202
203
209
212
215
233
238
238
257
262
262
280
282
285
301
306
306
324
329
329
345
348
366
371
371
390
393
395
410
413
413
415
415
611
615
616
5
5
6
9
10
11
11
17
17
17
17
18
18
18
18
18
18
18
18
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
24
24
24
25
25
25
26
26
30
31
33
33
34
34
35
35
35
36
37
37
37
37
39
43
43
47
47
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
55
55
55
55
57
57
57
57
57
57
59
61
61
63
63
64
64
64
65
65
65
67
67
67
68
68
68
68
68
69
70
70
70
70
70
70
71
71
72
73
79
83
85
86
87
87
87
87
87
87
87
87
87
87
89
90
90
91
92
95
96
97
99
99
100
100
100
101
105
105
106
106
107
107
110
115
115
125
125
134
134
134
137
138
138
139
139
139
143
143
143
143
152
154
154
155
159
159
164
172
177
177
183
183
192
193
198
203
203
204
209
210
212
212
213
216
234
239
239
258
263
263
281
283
302
307
307
325
330
330
346
349
367
372
372
391
394
396
411
416
416
612
616
617
4
4
4
5
6
7
9
11
11
12
12
15
15
15
15
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
23
23
23
23
24
25
25
27
27
31
32
32
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
37
38
38
43
47
47
48
48
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
60
64
64
64
64
64
65
65
65
66
66
66
66
68
68
69
69
69
69
69
69
71
71
71
74
83
83
86
87
88
88
88
88
89
89
90
91
91
93
96
96
100
100
101
101
101
102
105
106
106
107
107
108
108
111
113
116
116
121
126
126
135
135
138
139
139
140
140
140
144
144
144
144
152
153
155
155
160
160
173
178
178
179
184
184
194
199
202
202
204
204
209
213
213
214
217
235
240
240
259
264
264
275
282
284
286
286
303
308
308
326
331
347
350
368
373
373
392
395
397
412
417
417
613
617
618
4
4
5
5
7
8
11
13
13
18
18
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
23
23
23
23
23
23
24
25
27
28
28
28
31
32
32
33
33
33
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
38
38
38
39
39
45
45
48
48
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
53
53
53
54
54
54
54
54
54
58
61
65
65
66
66
66
67
67
67
67
70
70
70
70
72
72
75
84
84
85
85
85
87
87
88
88
89
90
91
94
97
97
99
101
101
101
102
102
102
103
106
106
107
107
108
108
112
114
117
117
122
127
136
136
139
140
140
141
141
141
145
145
145
145
152
153
155
155
156
156
161
161
164
164
171
174
179
179
180
185
195
197
197
200
203
209
210
212
213
214
214
214
215
218
236
241
241
260
265
276
280
283
285
287
287
287
287
304
309
309
327
332
342
346
348
351
369
374
374
393
396
398
413
418
418
614
618
619
4
5
5
6
8
9
11
11
13
18
18
18
18
18
19
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
23
23
23
23
24
24
24
25
29
29
33
34
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
46
46
48
49
49
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
53
53
53
53
54
54
54
55
55
56
57
57
57
57
59
62
65
66
66
67
67
67
67
67
68
68
70
70
70
71
71
71
71
71
71
71
71
71
72
73
73
73
76
78
86
86
86
86
87
87
88
88
89
90
91
92
95
98
99
100
103
103
103
104
108
108
109
109
113
115
115
118
118
122
122
126
126
128
133
137
137
140
141
141
142
142
142
143
146
146
146
146
156
156
157
157
162
162
162
165
165
172
175
180
180
180
180
184
184
186
191
196
198
201
202
204
212
213
214
216
219
237
242
242
261
264
264
266
281
284
286
287
287
287
287
288
288
305
310
310
328
330
330
333
347
349
352
370
375
375
394
397
399
414
419
419
615
619
620
4
4
4
5
5
7
9
10
13
13
13
18
18
18
18
18
18
18
18
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
24
24
24
26
30
30
33
33
34
34
35
35
35
36
36
36
37
37
37
37
37
38
39
47
47
47
48
50
50
50
50
50
50
50
50
50
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
54
54
54
54
54
54
55
55
56
57
57
57
57
57
60
60
63
66
66
67
67
68
68
68
69
70
71
71
71
72
72
72
72
72
72
72
72
74
74
74
77
79
79
79
79
87
87
88
88
88
88
88
88
88
88
89
89
90
91
93
96
99
100
100
101
101
104
104
104
105
108
109
109
110
110
114
116
116
116
116
119
119
127
127
129
134
134
134
134
138
141
142
142
143
143
143
144
144
144
147
147
147
147
157
157
158
163
163
163
163
173
173
176
181
181
185
185
187
192
192
192
192
197
199
202
202
202
203
213
213
214
214
215
217
220
238
243
243
262
265
267
282
285
287
288
288
289
289
306
311
311
329
331
334
348
350
353
371
376
376
398
400
415
420
420
616
620
621
1
5
5
5
6
8
10
11
11
11
13
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
27
31
31
32
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
39
40
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
51
51
51
51
51
51
51
51
51
52
52
52
52
53
53
53
53
53
54
54
54
54
55
55
57
58
61
61
61
61
64
68
68
69
69
69
69
70
70
71
73
73
73
73
73
73
75
75
78
80
80
87
88
89
89
89
89
89
90
91
92
94
97
100
102
102
105
105
105
106
108
110
110
111
111
114
115
116
116
117
117
120
120
126
128
128
135
135
139
142
143
143
144
144
144
145
145
148
148
148
148
155
159
164
164
174
174
174
174
177
182
182
184
186
186
193
193
198
200
201
202
203
203
204
215
215
216
218
221
239
244
244
263
266
268
283
286
288
289
289
307
312
312
330
332
335
349
351
354
372
377
377
399
401
416
421
421
617
621
622
1
1
4
5
6
7
9
11
12
13
13
13
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
28
32
32
33
33
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
37
37
38
38
38
38
38
38
39
39
39
39
40
41
45
46
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
52
52
52
52
52
52
52
52
52
53
53
53
55
56
56
58
59
59
61
61
62
62
65
68
68
68
69
69
70
70
71
74
74
74
74
76
76
79
80
86
87
89
89
89
91
92
93
95
98
100
101
101
101
101
103
103
106
106
106
107
111
111
112
112
116
117
118
118
121
121
126
135
140
143
144
144
144
145
145
145
145
145
145
145
146
149
149
149
149
152
160
165
165
165
172
174
174
175
175
178
183
183
184
193
199
201
202
204
204
205
213
214
214
214
216
216
217
219
222
240
245
245
264
267
269
284
287
287
289
289
308
313
313
331
333
336
350
352
355
373
378
378
400
402
417
422
422
618
622
623
1
7
7
8
10
11
11
12
13
13
13
13
13
15
15
17
17
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
29
33
33
34
35
35
35
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
39
39
40
41
42
43
46
46
47
47
47
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
52
52
53
53
53
53
53
53
53
53
53
54
56
57
57
59
60
62
63
63
66
66
67
68
69
69
70
70
71
71
71
71
71
71
72
72
72
72
75
75
75
75
77
77
80
80
87
87
87
87
88
88
89
89
89
90
92
94
96
96
99
99
100
100
100
101
102
102
102
102
107
107
107
108
108
108
112
112
113
113
116
116
117
118
122
122
122
126
127
135
137
141
144
145
145
146
146
146
146
146
147
150
150
150
150
152
153
155
155
161
165
166
166
175
176
176
179
180
184
184
184
185
193
200
202
202
203
205
205
213
213
213
214
215
215
215
218
220
220
223
223
241
246
246
265
268
270
285
287
290
290
309
314
314
332
334
337
351
353
353
356
356
374
379
379
394
401
403
418
423
423
619
623
624
1
5
5
9
11
13
13
13
13
13
14
14
14
15
15
15
15
15
15
15
15
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
24
24
24
30
32
32
33
33
34
34
34
35
35
35
35
36
36
36
36
37
37
37
37
38
38
39
39
40
41
42
43
43
43
43
43
44
45
45
47
47
47
47
47
47
48
48
48
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
55
57
57
58
60
61
61
61
63
67
67
67
67
69
70
71
71
71
72
72
72
72
72
72
73
73
73
76
76
76
76
78
78
81
88
88
89
89
89
89
89
89
89
89
89
90
92
92
93
95
100
100
102
103
103
103
103
106
108
108
108
109
109
109
113
113
114
114
117
118
122
123
123
127
128
138
142
142
145
145
145
146
146
147
147
147
147
147
151
151
151
151
152
156
156
162
167
167
174
174
176
180
180
185
185
185
186
201
202
203
203
205
205
206
206
215
216
216
216
219
224
224
242
247
247
266
269
271
286
287
287
288
291
291
310
315
315
333
335
338
352
357
357
375
380
380
395
399
402
404
419
424
424
623
624
625
4
5
6
6
7
7
11
12
13
14
15
15
15
15
15
16
16
17
17
17
17
18
18
19
19
20
20
20
21
21
21
21
21
22
22
22
31
32
33
33
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
38
38
39
40
41
42
43
43
44
44
44
44
44
45
45
45
46
46
47
47
47
47
48
48
48
48
48
48
48
49
49
49
49
52
52
52
52
53
53
53
53
53
53
53
53
54
54
54
54
56
58
59
61
62
68
70
70
71
71
71
72
72
73
73
73
74
77
77
77
77
79
79
82
88
90
90
90
90
93
93
94
96
101
101
101
103
104
104
104
107
107
109
109
109
110
114
114
115
115
116
116
118
119
124
124
126
128
129
143
143
146
146
147
147
148
148
148
152
152
152
152
153
155
157
157
157
163
165
165
168
168
175
181
184
186
186
186
187
202
204
206
206
207
207
214
216
217
217
220
225
225
243
248
248
267
270
272
287
287
288
289
292
292
311
316
316
334
336
339
353
358
358
376
381
381
400
403
405
420
425
425
619
624
625
626
5
5
6
6
7
7
7
7
8
8
8
8
13
13
15
15
15
15
15
16
16
16
16
17
17
17
18
18
20
20
20
20
20
20
20
21
21
21
21
21
21
22
32
33
33
34
34
36
36
36
36
36
37
38
38
39
40
41
42
43
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
47
47
48
48
48
48
49
49
49
49
49
49
50
50
51
52
52
52
52
53
53
53
53
53
53
54
54
57
59
60
61
61
61
63
67
69
69
69
69
72
73
73
74
74
74
74
78
78
78
78
80
80
83
87
88
90
90
94
94
97
102
102
102
102
105
110
110
110
111
115
115
116
116
116
116
117
117
120
122
125
125
127
129
129
134
144
144
145
147
147
148
148
149
149
149
153
153
153
153
155
156
163
164
166
166
169
169
174
174
176
180
182
185
187
187
187
187
205
207
207
208
215
215
221
226
226
244
249
249
268
271
273
288
289
290
293
293
312
317
317
335
337
340
354
359
359
377
382
382
401
404
406
421
426
426
625
626
627
7
7
7
7
7
7
8
8
8
8
11
11
13
13
14
14
16
16
16
16
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
31
31
32
32
32
32
32
32
33
34
34
34
34
35
36
36
37
38
39
41
42
43
43
43
44
45
45
46
46
46
46
46
46
46
46
46
46
46
47
47
48
48
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
51
51
51
51
52
52
52
52
53
53
53
53
53
53
54
54
54
54
54
54
58
60
61
61
61
61
62
62
67
69
70
70
70
71
72
73
73
74
74
75
75
79
79
79
79
81
84
88
88
88
88
90
90
90
90
90
90
92
98
103
103
106
109
111
111
111
112
116
116
117
117
118
118
121
126
126
128
135
135
135
135
145
145
145
145
146
148
149
149
150
150
150
154
154
154
154
156
156
157
157
164
164
165
170
170
174
174
175
175
183
184
186
188
188
205
206
209
222
227
227
245
250
250
272
274
285
289
290
294
294
313
318
318
338
341
355
360
360
378
383
402
405
407
422
427
427
626
627
628
5
8
8
9
9
11
11
13
13
14
15
15
15
15
15
16
16
16
16
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
37
38
38
38
38
39
39
42
43
43
44
44
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
48
48
49
49
49
49
49
49
50
50
50
50
50
51
53
53
53
55
55
55
55
59
61
62
63
63
68
68
71
72
72
72
72
72
73
73
73
74
74
75
75
76
76
79
80
80
82
85
89
89
89
91
91
91
91
99
104
104
104
107
109
112
112
112
113
114
117
118
119
119
122
125
125
127
127
127
129
129
136
136
144
145
146
146
146
147
149
149
150
150
151
151
151
151
155
155
158
158
166
171
171
176
176
184
185
185
187
187
189
189
192
202
207
210
217
223
228
228
246
251
251
273
275
286
290
290
291
295
295
314
319
319
339
342
356
361
361
379
382
382
384
403
406
406
408
408
423
428
428
627
628
629
4
4
5
6
7
7
8
8
10
10
13
14
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
32
33
33
33
33
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
37
38
38
39
39
39
39
39
40
40
43
44
44
45
45
45
45
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
50
50
50
50
50
50
51
53
53
53
55
55
55
55
55
55
55
55
56
56
59
60
62
63
64
64
70
71
72
72
73
73
73
73
74
74
74
74
74
75
75
76
76
77
77
79
79
79
79
80
80
80
81
81
83
86
89
89
89
89
90
91
91
91
91
91
91
91
91
92
92
92
92
100
104
105
105
108
113
113
113
114
115
118
119
120
123
126
127
128
129
130
130
136
145
147
147
147
148
151
151
152
152
152
152
154
154
154
154
156
156
156
157
157
157
159
159
166
167
172
172
172
177
177
185
185
187
188
188
190
190
193
193
193
202
202
203
205
205
206
208
211
217
224
229
229
247
252
252
274
276
286
290
291
292
296
296
315
320
320
340
343
357
362
362
380
383
385
404
409
409
424
429
429
628
629
630
5
5
6
7
8
8
8
9
9
11
11
13
15
15
15
15
15
15
15
16
16
16
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
29
31
31
32
32
33
33
33
33
33
35
35
35
35
36
37
37
38
38
39
39
40
40
40
40
41
41
42
42
43
44
44
45
45
45
46
46
46
46
46
46
46
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
50
51
51
51
51
51
51
53
53
53
53
54
54
56
56
56
56
57
57
60
61
63
64
65
70
71
72
72
73
73
73
74
74
74
74
74
75
75
75
76
76
77
77
78
78
80
80
80
81
81
82
82
82
84
87
89
89
89
89
90
90
92
92
92
92
93
93
93
93
101
106
106
109
114
114
114
115
115
115
116
116
117
117
119
119
119
120
121
124
127
127
129
129
130
131
131
136
145
146
148
148
148
152
152
153
153
153
153
155
155
156
156
156
157
157
157
158
158
158
166
168
173
173
173
178
185
186
187
188
189
189
191
191
194
194
202
206
206
207
209
212
225
230
230
248
253
253
268
275
277
286
290
291
292
293
297
297
316
321
321
335
339
341
344
358
363
363
381
384
386
405
410
410
425
430
430
629
630
631
7
8
8
8
8
8
10
10
12
12
15
15
15
15
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
22
30
32
32
32
32
33
33
34
34
34
35
35
35
35
35
35
36
36
38
38
38
39
39
40
40
41
41
41
41
41
42
42
43
43
43
44
44
44
44
45
46
46
46
47
47
47
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
51
51
54
54
55
55
55
55
55
55
57
57
57
57
60
60
62
64
64
64
65
66
70
70
70
72
72
73
74
74
74
75
75
75
75
76
76
76
78
78
79
80
81
81
81
81
81
81
82
83
83
83
85
88
90
90
90
91
91
91
91
91
91
92
93
93
93
93
94
94
94
102
104
104
107
107
110
115
115
116
117
118
120
120
120
121
122
125
127
127
128
130
130
131
145
146
148
148
149
149
149
153
153
154
154
154
156
156
158
158
158
159
159
159
169
173
173
174
174
177
177
179
185
185
187
188
189
192
193
194
194
194
194
195
203
205
207
207
207
208
210
213
217
217
226
231
231
249
254
254
269
273
276
278
290
291
292
293
298
298
317
322
322
340
342
345
359
364
364
382
385
387
406
411
411
426
431
431
630
631
632
8
8
9
9
9
10
13
13
15
15
15
15
15
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
21
21
21
22
22
32
32
33
33
34
34
35
35
36
36
38
39
39
39
39
39
39
40
40
40
40
41
41
41
42
42
42
43
44
44
44
45
45
45
45
46
47
47
48
48
48
48
48
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
54
54
54
54
54
54
54
54
55
55
55
56
56
56
56
63
65
65
65
66
67
68
71
71
71
71
73
73
73
73
73
74
74
74
74
74
74
74
75
75
75
76
76
78
78
79
79
80
82
82
82
82
83
84
84
84
86
88
89
90
90
90
90
90
90
90
90
91
91
91
92
92
92
92
92
93
102
103
105
105
107
108
108
111
116
116
117
118
119
119
121
121
121
122
126
128
128
129
129
129
129
131
131
149
149
150
150
150
153
153
154
154
155
155
155
157
157
157
159
159
159
160
160
170
175
175
178
178
180
186
186
187
187
187
188
189
193
195
195
196
205
206
209
211
214
215
218
218
227
232
232
250
255
255
274
277
279
286
291
292
294
299
299
318
323
323
341
343
346
360
365
365
383
386
388
407
412
412
427
432
432
631
632
633
1
1
5
10
10
10
10
10
10
10
10
11
11
11
11
13
13
14
14
15
15
15
15
15
15
15
15
15
15
15
15
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
20
20
20
20
20
21
21
21
21
23
23
30
32
32
32
32
32
32
32
32
34
34
36
37
40
40
40
40
41
41
41
41
41
41
41
41
42
42
43
43
43
43
43
43
43
43
43
43
44
45
45
45
46
46
46
46
46
47
48
48
48
48
49
50
51
51
51
51
51
51
51
52
52
53
53
53
55
55
55
55
55
55
56
57
57
57
57
64
64
66
66
67
69
71
71
71
72
72
72
74
75
75
75
75
75
75
76
76
79
80
80
81
81
81
83
83
83
83
85
85
85
87
89
90
91
91
91
91
91
91
92
93
93
93
93
93
93
94
94
103
103
104
108
109
109
112
114
114
117
117
118
119
119
120
122
123
127
130
130
130
130
130
132
150
150
151
151
154
155
155
156
156
156
158
158
158
158
160
160
171
176
176
177
179
179
188
188
188
188
189
191
191
194
194
194
196
196
206
206
207
207
210
212
215
216
216
228
233
233
251
256
256
275
278
280
292
295
300
300
319
324
342
344
347
361
366
366
384
387
389
408
413
413
428
433
433
632
633
634
1
1
1
5
6
8
8
10
11
14
14
15
15
15
15
15
15
15
15
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
24
24
27
27
27
27
27
27
28
28
33
33
33
33
33
33
33
33
33
34
34
36
37
37
37
38
39
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
45
46
46
46
46
46
46
46
47
47
47
47
48
48
49
49
50
51
51
51
51
51
51
51
52
53
53
54
54
54
54
54
55
55
55
55
56
56
56
56
56
56
58
58
64
65
68
71
71
72
72
73
73
73
74
75
76
76
76
76
77
77
80
82
82
84
84
86
86
86
88
90
90
90
91
91
91
91
91
92
92
92
92
92
92
94
94
95
95
105
109
109
110
110
113
115
115
118
118
119
119
120
120
121
123
124
128
131
131
131
133
148
152
152
155
157
157
157
159
159
161
161
164
172
177
177
177
189
189
190
192
195
195
208
208
211
213
213
216
216
229
234
234
252
257
276
279
281
290
293
296
301
301
320
325
343
345
348
362
367
367
385
388
390
409
414
414
429
434
434
633
633
634
635
5
6
7
10
10
10
11
11
12
15
15
15
15
16
16
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
25
25
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
31
31
32
32
32
32
33
33
33
37
38
38
38
39
39
40
40
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
46
47
47
47
47
47
47
48
50
51
52
53
53
53
54
54
54
55
55
55
55
55
55
56
56
57
57
58
58
58
58
59
59
60
64
65
65
66
66
69
71
71
71
72
72
73
73
73
74
74
75
76
77
78
78
81
81
83
83
85
85
87
87
87
89
89
89
89
90
91
91
91
91
92
92
92
92
93
93
93
94
94
94
94
94
94
94
95
95
96
96
105
106
110
110
110
110
111
111
114
115
116
119
120
121
121
122
124
125
129
131
132
134
135
145
153
153
156
158
158
158
160
160
160
162
162
165
173
173
177
178
178
178
189
191
193
194
196
196
206
207
207
207
209
209
212
217
217
218
230
235
235
253
256
256
258
277
280
280
282
282
286
291
297
302
302
321
323
323
326
344
346
346
349
349
363
368
368
386
389
391
410
415
415
430
435
435
634
634
635
636
2
8
8
8
8
10
10
10
10
12
12
12
13
15
15
15
15
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
26
26
31
31
31
31
32
32
33
33
33
33
34
34
37
37
38
38
39
39
40
41
41
41
42
42
43
43
43
43
43
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
48
48
48
48
48
48
51
52
53
53
54
54
54
54
55
56
56
56
56
58
58
59
59
59
59
60
60
60
65
66
67
67
69
70
72
72
72
73
73
73
75
76
76
76
76
77
77
78
79
79
81
81
82
82
84
86
86
88
88
88
90
90
92
92
93
93
93
93
93
94
94
94
95
95
95
95
95
95
95
96
96
105
107
108
110
110
111
111
112
112
115
117
119
120
121
122
122
123
125
126
131
133
135
136
136
136
145
146
148
148
154
154
157
159
159
159
160
161
161
163
163
166
166
173
174
178
179
179
179
189
192
194
194
194
195
197
206
206
206
207
208
208
208
213
218
218
218
231
236
236
254
257
259
278
283
283
292
298
303
303
322
324
327
345
350
350
364
369
369
390
392
411
416
416
431
436
436
635
636
637
2
3
10
10
10
10
11
11
13
13
13
14
15
15
15
15
15
15
16
16
16
16
17
18
18
18
18
19
19
19
19
20
20
20
21
21
21
21
21
21
21
23
25
25
25
26
26
27
27
32
32
32
32
40
40
40
40
41
42
42
42
43
43
44
44
44
44
44
44
44
44
45
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
49
49
49
49
49
49
52
53
54
54
54
54
54
54
55
55
55
56
56
56
57
60
60
60
60
64
66
67
68
68
69
71
71
73
74
76
77
77
77
78
78
79
80
80
80
80
81
82
83
83
85
87
87
89
89
89
90
90
91
91
93
94
94
95
96
96
96
96
96
96
96
108
111
112
112
113
113
115
116
118
120
121
122
122
123
124
126
127
134
136
137
137
145
149
149
155
155
155
158
160
160
160
162
162
164
164
167
167
167
167
175
177
179
180
180
180
193
193
194
195
195
196
198
208
209
209
209
214
219
219
232
237
237
255
258
260
279
284
284
293
299
304
304
323
325
328
346
351
351
365
370
370
391
393
412
417
417
432
437
437
636
637
638
3
4
5
8
9
11
11
12
12
12
12
13
13
14
15
15
15
15
16
16
16
17
17
17
17
17
17
18
18
18
18
19
19
19
21
21
21
21
21
21
24
26
26
26
26
27
27
27
27
28
29
30
37
43
43
44
44
45
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
49
51
52
52
53
54
54
54
54
55
55
55
55
55
56
56
57
57
57
58
60
65
67
67
69
69
70
71
72
72
75
78
78
79
79
81
81
81
83
84
84
85
85
86
88
88
90
90
90
90
91
91
91
92
93
93
94
94
95
95
96
97
97
105
105
109
110
110
112
114
114
118
119
119
119
121
122
122
123
124
125
127
128
135
136
137
137
137
137
137
138
146
148
150
150
150
156
156
156
159
160
160
160
160
161
161
161
163
163
165
165
165
167
167
168
168
173
176
178
180
180
181
181
194
194
196
196
197
199
207
209
210
210
215
218
218
220
220
233
238
238
256
259
261
280
285
285
290
293
300
305
305
324
326
329
347
352
352
366
371
371
392
394
413
418
418
433
438
438
637
638
639
4
4
5
5
10
12
12
12
12
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
20
20
20
21
21
21
25
27
27
29
29
29
29
29
30
30
30
30
30
31
32
32
33
33
33
33
33
33
38
39
41
41
41
41
42
42
46
46
46
46
46
46
48
49
49
49
49
49
49
49
52
53
54
55
55
55
55
56
56
56
56
57
57
58
58
58
58
58
59
64
66
70
70
70
70
73
73
74
74
75
76
76
76
77
77
81
82
84
85
86
86
87
89
89
89
89
91
91
91
91
91
91
91
92
92
93
94
94
94
94
95
95
95
96
96
103
106
106
110
111
115
115
120
120
120
122
122
123
123
124
125
126
128
129
129
130
136
138
138
138
139
148
149
157
158
160
161
161
161
161
162
162
162
164
164
164
164
166
166
166
166
168
169
169
177
177
179
182
182
188
194
195
195
197
197
200
208
208
216
216
219
219
221
221
234
239
239
257
260
262
281
286
286
286
291
301
306
306
325
327
330
348
353
353
367
372
372
386
393
395
414
419
419
434
439
439
638
639
640
5
5
6
6
8
8
11
11
11
11
11
11
11
11
11
12
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
26
27
27
27
27
27
27
28
28
28
30
30
30
30
30
31
31
31
31
33
33
33
33
33
33
34
34
36
36
37
37
38
38
39
39
39
39
39
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
46
46
46
46
47
47
49
49
49
49
49
49
49
50
53
54
54
54
55
55
55
55
56
56
56
56
56
58
58
58
58
58
58
58
58
59
59
59
59
59
59
65
65
67
67
71
71
72
72
73
73
74
74
75
75
76
76
76
76
76
77
77
77
77
78
78
79
81
82
84
84
85
86
87
87
88
91
91
92
92
92
92
92
92
92
94
94
94
94
94
94
95
95
95
95
97
97
104
104
110
110
111
112
116
116
120
121
122
123
123
124
124
125
126
126
127
127
129
129
130
130
130
131
131
131
131
134
137
137
137
139
139
139
149
149
150
150
154
158
159
159
161
162
162
163
163
163
167
167
167
167
167
167
169
178
178
178
180
180
183
183
189
189
189
189
194
195
196
197
197
198
198
201
217
217
217
222
222
235
240
240
258
261
263
282
287
287
290
292
302
307
307
326
328
331
349
354
354
368
373
373
387
391
394
396
415
420
420
435
440
440
639
640
641
7
7
8
8
11
11
12
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
20
20
20
20
20
20
20
20
20
21
21
21
22
22
27
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
31
35
37
37
37
38
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
44
44
44
44
44
44
44
44
47
47
47
49
49
49
49
49
49
50
51
54
54
55
55
58
58
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
65
67
68
68
72
72
72
73
75
76
76
76
76
77
77
77
77
77
78
78
78
79
79
80
84
85
85
86
87
88
88
89
90
93
93
93
93
93
94
94
95
95
95
95
95
95
95
95
96
96
96
96
97
98
98
110
110
111
111
112
116
117
117
120
120
122
122
123
124
124
125
125
126
130
130
131
131
132
132
135
138
138
140
151
151
155
159
159
162
163
163
164
164
164
168
168
168
168
168
178
179
180
181
181
184
184
190
190
198
198
199
199
202
210
218
223
223
236
241
241
259
262
264
283
288
288
291
291
293
293
303
308
308
327
329
332
350
355
355
369
374
374
392
395
397
416
421
421
436
441
441
640
641
642
4
4
8
8
11
11
11
11
12
12
13
13
13
14
14
14
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
21
21
21
21
21
21
21
21
21
21
22
22
23
23
25
28
28
29
29
29
30
30
30
30
30
30
31
31
31
31
32
32
32
36
37
37
37
37
38
38
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
48
48
48
49
51
52
54
54
54
55
55
56
56
57
60
60
60
60
60
60
60
60
61
61
61
61
61
61
65
67
68
69
69
73
73
74
74
76
77
77
77
78
78
78
79
79
79
79
80
80
80
85
86
86
88
88
89
89
90
90
90
91
93
94
94
94
94
94
96
96
96
96
96
96
97
97
97
97
97
99
99
106
112
112
113
118
118
120
120
121
123
123
124
126
126
127
131
131
132
132
132
136
137
139
139
141
149
150
150
150
152
152
160
160
161
163
163
164
164
165
165
165
165
167
167
169
169
169
169
169
178
180
180
181
182
182
185
185
190
199
199
200
203
210
219
219
224
224
237
242
242
260
263
265
284
289
289
291
291
293
293
294
294
304
309
309
328
330
333
351
356
356
370
375
375
393
396
398
417
422
422
437
442
442
641
642
643
1
5
5
5
5
9
9
9
11
12
15
15
15
15
15
15
15
15
16
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
20
21
21
21
21
21
21
21
21
21
24
24
25
26
26
26
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
32
32
33
35
35
37
38
38
38
38
39
39
39
39
40
40
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
49
49
49
49
50
52
53
54
54
54
55
55
55
56
57
57
57
57
58
59
59
60
60
60
60
60
60
61
61
62
62
62
62
62
62
65
65
68
69
70
70
74
74
75
75
77
77
77
78
79
79
79
80
80
80
80
80
81
81
84
86
90
90
90
91
91
91
93
93
93
94
95
95
95
95
95
95
95
96
96
96
96
96
96
98
98
98
98
100
100
106
108
113
113
114
119
119
121
121
122
122
122
122
124
124
124
127
127
127
128
132
132
132
133
133
137
137
137
138
140
142
149
149
149
150
151
151
151
161
161
161
165
165
166
166
166
166
167
167
168
168
170
170
170
170
178
178
181
181
182
186
186
190
197
201
204
219
220
225
225
238
243
243
264
266
285
290
290
294
294
295
295
305
310
310
331
334
352
357
357
371
376
376
394
397
399
418
423
423
438
443
443
642
643
644
1
1
10
10
10
10
11
12
15
15
15
15
15
15
15
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
25
25
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
32
33
34
36
36
38
38
39
39
39
39
40
40
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
46
46
46
47
47
47
47
47
47
50
50
50
51
53
54
56
56
57
57
58
58
58
58
58
59
59
59
59
59
59
59
59
60
60
61
61
61
61
61
61
62
62
63
63
66
66
67
67
67
69
70
74
74
75
75
76
76
77
78
78
79
80
80
81
81
81
81
82
82
87
91
91
92
92
93
94
94
94
94
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
101
101
109
114
115
120
120
123
123
123
123
123
128
128
128
129
133
133
134
134
136
137
138
138
139
141
141
143
143
151
152
152
152
162
162
166
166
167
167
167
167
169
169
171
171
171
171
179
179
180
180
180
182
182
187
187
194
196
200
202
205
210
210
221
226
226
239
244
244
265
267
286
291
291
295
295
306
311
311
332
335
353
358
358
372
377
377
395
398
398
400
400
419
424
424
439
444
444
643
644
645
4
5
11
11
11
11
11
11
11
12
15
15
15
15
16
16
16
17
17
17
17
17
17
17
21
21
21
21
21
21
21
21
22
22
22
22
22
26
26
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
32
32
33
34
35
37
37
40
40
40
40
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
45
46
46
46
46
47
49
49
51
51
51
52
52
54
55
57
57
58
59
59
59
59
60
60
61
61
62
62
62
62
62
62
63
63
64
64
68
68
68
68
75
75
76
76
77
77
77
77
77
78
78
79
80
81
81
81
82
82
84
84
88
92
92
93
93
95
95
95
95
96
96
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
102
102
109
109
113
113
115
116
121
121
124
124
124
129
129
129
130
134
134
135
135
137
139
139
140
144
144
150
152
153
153
161
161
163
163
165
167
167
168
168
168
168
170
170
172
172
172
172
181
181
181
181
183
188
188
194
195
197
197
201
203
206
208
211
211
222
227
227
240
245
245
266
268
287
291
291
292
292
307
312
312
333
336
354
359
359
373
378
378
396
401
401
420
425
425
440
445
445
644
645
646
5
6
8
11
11
11
11
12
12
12
13
15
15
15
15
15
15
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
21
21
21
23
23
23
27
27
28
28
28
29
29
29
29
30
30
30
30
31
31
31
31
33
33
35
36
37
38
38
38
38
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
46
47
47
47
51
52
52
53
53
55
56
58
58
59
59
59
59
60
60
60
61
61
62
62
63
63
63
63
64
64
65
65
69
69
73
75
75
77
77
77
77
78
78
78
78
79
79
79
79
79
80
80
80
80
81
81
82
85
85
89
93
93
94
94
94
95
95
95
96
96
96
96
97
97
98
98
98
98
98
98
98
99
99
99
99
103
103
114
114
116
117
122
122
124
125
130
130
130
131
131
135
135
136
136
137
138
140
140
145
145
151
151
159
162
162
164
164
166
168
168
169
169
169
169
171
173
173
173
173
182
182
184
189
194
198
198
202
204
207
209
209
223
228
228
241
246
246
260
267
269
288
292
292
293
293
293
293
293
308
313
313
328
332
334
337
355
360
360
374
379
379
397
402
402
421
426
426
441
446
645
646
647
4
5
5
9
11
11
11
13
13
13
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
19
24
24
24
25
26
26
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
34
35
36
37
37
37
38
39
39
39
39
39
39
39
39
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
46
46
47
47
47
47
47
52
52
53
53
54
56
57
57
57
58
58
58
59
59
60
60
60
60
61
61
61
61
61
65
65
66
66
69
75
76
77
78
78
79
79
80
80
80
80
81
81
81
81
81
82
84
86
86
86
90
94
94
94
94
94
95
95
95
96
96
96
97
97
97
97
99
99
99
99
99
104
104
104
113
115
115
118
123
124
126
131
131
131
132
132
132
132
132
136
136
137
137
137
138
140
140
141
141
146
146
160
160
165
165
166
166
169
169
170
170
170
170
170
170
172
174
174
174
174
182
185
190
195
197
199
199
199
203
205
208
217
224
229
229
242
247
247
261
265
268
270
289
294
294
294
294
294
309
314
314
333
335
338
356
361
361
375
380
398
403
403
422
427
427
442
447
646
647
648
5
6
6
10
11
11
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
20
20
20
20
20
20
21
21
24
24
25
25
25
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
35
36
37
37
37
37
37
37
38
38
38
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
42
43
43
43
43
43
43
45
45
46
46
47
47
47
47
49
55
57
58
58
58
60
60
61
61
61
61
62
66
66
67
67
69
75
75
76
77
78
79
79
81
81
82
82
82
84
85
91
95
95
96
96
96
97
97
97
98
100
100
100
100
100
105
105
105
113
119
122
122
124
127
132
132
132
133
133
133
137
137
138
138
141
141
142
142
147
147
153
166
166
170
170
171
171
171
171
171
171
173
175
175
175
175
182
186
188
188
189
191
197
198
204
206
209
211
218
225
230
230
243
248
248
266
269
271
290
294
295
295
295
295
310
315
315
334
336
339
357
362
362
376
379
379
381
399
404
404
423
428
428
443
445
445
448
647
648
649
5
5
5
11
11
11
11
11
11
11
11
11
11
11
12
13
13
13
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
20
21
21
21
21
22
26
26
26
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
34
34
35
35
35
35
35
35
36
37
38
38
38
38
38
38
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
45
45
45
45
46
47
47
56
57
58
59
59
59
59
61
62
62
62
63
63
63
63
63
63
63
67
67
68
68
76
76
77
77
77
77
77
77
78
79
80
81
82
83
85
85
86
86
92
95
96
96
97
97
97
98
98
98
99
99
99
99
99
99
101
101
101
101
101
106
106
106
106
109
113
114
120
123
125
128
133
133
133
133
134
138
138
139
139
142
142
143
148
148
153
162
167
167
170
171
171
172
172
172
172
172
172
176
176
176
176
187
189
190
190
190
192
198
198
199
199
205
207
207
210
210
211
219
219
226
231
231
244
249
249
267
270
272
291
295
295
296
296
311
316
316
335
337
340
358
363
363
377
380
382
400
405
405
424
429
429
444
446
449
648
649
650
5
6
6
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
20
20
20
21
21
23
27
27
27
28
28
28
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
33
33
33
35
35
36
36
36
36
36
36
36
36
36
36
37
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
42
42
42
42
42
42
42
42
42
45
45
45
45
45
46
46
47
49
57
57
59
60
60
60
61
61
63
63
63
64
64
64
64
64
68
68
69
69
78
78
78
78
78
78
79
80
81
81
81
82
84
87
87
93
96
96
97
97
97
97
98
98
99
99
100
100
100
100
102
102
102
102
102
107
107
107
107
107
107
109
114
115
121
123
124
126
129
133
134
134
134
135
139
139
140
140
140
144
149
149
162
168
168
170
172
172
173
173
173
173
177
177
177
177
188
190
191
191
193
200
200
206
211
211
220
220
220
220
227
232
232
245
250
250
268
271
273
292
297
297
312
317
317
336
338
341
359
364
364
378
381
383
401
406
406
425
430
430
445
447
450
649
650
651
5
5
5
12
12
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
21
21
23
24
25
26
26
26
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
32
32
34
34
34
36
36
37
37
37
37
37
37
37
37
37
37
38
38
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
42
42
42
42
42
43
43
44
46
46
46
46
47
47
47
47
53
57
58
58
60
61
62
62
62
62
64
65
68
69
69
70
70
77
78
78
78
78
79
79
79
80
81
81
81
81
82
82
82
82
82
82
85
85
85
86
86
86
88
88
94
98
98
98
98
98
98
98
98
99
99
103
103
103
103
103
105
107
107
108
108
108
108
113
115
116
122
124
124
124
124
125
127
130
135
135
135
136
137
140
140
141
141
145
150
150
153
153
166
169
169
170
171
173
173
174
174
174
174
178
178
178
178
181
189
190
191
191
191
191
191
192
194
198
199
199
199
201
201
207
211
211
212
212
218
220
220
221
221
228
233
233
246
251
251
269
272
272
274
274
293
298
298
313
318
318
337
339
339
342
342
360
365
365
379
382
384
402
407
407
426
431
431
446
448
451
650
651
652
5
5
6
6
6
6
11
11
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
21
21
21
25
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
33
33
35
35
35
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
40
40
40
40
41
41
41
41
41
41
42
42
42
42
44
44
45
47
47
48
48
53
58
59
59
61
62
62
62
62
65
66
69
69
69
69
70
70
71
71
79
79
79
80
81
82
82
83
83
85
85
85
86
86
86
87
87
87
95
96
98
98
98
99
99
99
99
100
100
104
104
104
104
104
108
109
109
109
109
109
114
116
116
123
125
125
126
128
131
136
136
136
137
137
138
140
140
141
141
142
142
146
151
151
151
154
154
166
170
170
171
172
174
174
175
175
175
175
179
179
179
179
182
182
182
182
190
192
192
192
193
195
198
198
198
199
200
200
200
208
209
212
212
213
213
221
222
222
229
234
234
247
252
252
270
275
275
294
299
299
314
319
319
338
343
343
361
366
366
380
383
385
403
408
408
427
432
432
447
449
452
651
652
653
1
5
5
5
5
7
7
11
11
11
11
11
11
11
11
11
11
11
13
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
21
26
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
30
30
30
30
30
30
30
31
31
32
32
34
34
34
34
35
36
36
36
36
36
36
38
38
38
38
39
39
39
39
40
40
40
40
41
41
41
42
42
42
42
42
42
42
42
42
42
42
43
45
45
46
47
48
57
59
60
60
60
62
63
63
63
64
64
64
64
64
64
66
67
70
70
71
71
72
72
78
78
78
79
80
80
82
82
83
87
87
87
88
88
88
96
96
97
97
98
99
99
100
100
100
100
100
100
100
100
101
101
105
105
105
105
105
107
107
109
110
110
113
115
124
125
127
129
132
137
137
137
137
138
141
141
142
142
143
143
147
152
152
152
152
170
171
171
172
173
175
175
176
176
176
176
180
180
180
180
183
183
191
191
191
193
193
193
196
200
201
201
201
209
210
210
214
214
220
220
222
230
235
235
248
253
253
271
276
276
295
300
300
315
320
339
344
344
362
367
367
381
384
386
404
409
409
428
433
433
448
450
453
652
653
654
1
1
8
8
8
11
11
11
13
13
13
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
20
25
26
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
31
31
31
31
31
31
31
33
33
33
34
34
35
35
35
35
36
37
37
37
37
37
37
38
38
38
38
39
39
39
39
39
39
41
42
42
42
42
43
43
43
43
43
43
44
46
46
47
47
47
47
47
48
48
48
53
58
60
60
61
61
61
62
62
64
64
64
65
65
65
65
67
68
70
72
72
73
73
79
79
79
79
79
81
82
82
83
83
86
88
88
88
89
89
97
97
97
98
98
100
100
101
101
101
101
101
101
102
102
106
106
106
106
106
108
111
111
114
114
116
116
125
125
128
130
133
138
138
138
138
139
140
142
142
142
143
143
144
144
148
153
153
160
166
171
172
172
173
173
176
176
177
177
177
177
181
181
181
181
183
192
192
194
197
199
201
202
202
210
215
215
221
231
236
236
249
254
272
277
277
296
301
301
316
321
340
345
345
363
368
368
382
385
387
405
410
410
429
434
434
449
451
454
653
654
655
5
9
9
11
11
11
11
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
21
25
26
26
26
27
27
28
28
28
28
28
28
28
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
31
32
32
32
34
34
34
35
35
35
35
35
36
36
36
36
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
41
41
41
42
43
44
45
47
47
48
48
48
48
49
49
57
59
61
62
62
63
63
63
63
65
68
69
70
73
74
78
80
80
80
82
82
82
82
83
83
83
83
84
87
87
89
89
98
99
99
99
99
99
102
102
103
103
107
107
107
107
107
107
107
109
112
112
114
116
117
117
126
129
131
132
134
139
139
139
140
140
141
144
144
145
145
149
154
154
154
161
170
172
173
173
177
177
178
178
178
178
182
182
182
182
183
191
193
193
195
198
200
200
211
212
216
216
220
220
222
232
237
237
250
253
253
255
273
278
278
297
302
302
317
319
319
322
341
346
346
364
369
369
383
386
388
406
411
411
430
435
435
450
452
455
654
655
656
5
9
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
17
17
17
17
17
18
18
18
18
18
18
19
20
22
26
26
26
26
27
27
27
27
27
27
27
28
29
29
29
30
30
30
30
31
31
31
31
31
31
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
41
41
41
41
42
43
43
43
43
45
46
46
47
47
48
48
48
48
48
49
49
49
49
49
49
49
49
50
58
58
60
60
63
63
63
63
63
66
69
70
72
72
73
73
74
75
78
78
79
80
83
83
84
84
85
90
90
99
99
99
99
99
103
103
104
104
107
107
108
108
108
108
108
108
108
113
113
114
116
117
118
118
130
132
133
133
133
135
140
140
140
141
141
141
142
142
145
145
146
146
150
154
155
155
162
162
171
171
173
173
174
174
178
178
179
179
179
179
183
183
183
183
191
191
192
196
199
212
212
217
217
220
220
221
221
233
238
238
251
254
256
274
279
279
294
298
303
303
318
320
323
342
347
347
365
370
370
387
389
407
412
412
431
436
436
453
456
655
656
657
5
5
8
8
9
11
11
11
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
15
15
15
15
15
15
15
15
15
15
15
15
15
17
17
17
17
17
17
17
17
19
19
21
23
24
24
24
24
24
24
27
27
28
28
28
29
30
30
31
31
31
31
31
32
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
37
37
37
38
38
40
40
40
40
40
40
41
41
41
41
43
43
43
44
46
47
47
48
48
49
49
49
50
50
50
50
50
50
50
51
58
60
61
61
61
63
64
64
64
64
65
65
67
70
71
73
74
75
76
77
78
79
79
80
80
83
84
86
89
91
91
97
99
100
100
100
101
101
104
104
105
105
109
109
109
109
109
109
109
114
114
114
114
117
118
124
131
133
134
134
136
141
141
141
142
143
143
146
146
147
147
151
156
156
163
163
163
163
171
173
174
174
175
175
179
179
180
180
180
180
184
184
184
184
190
191
192
193
197
200
202
213
218
218
222
222
234
239
239
252
255
257
275
280
280
295
295
295
299
304
304
319
321
324
343
348
348
366
371
371
388
390
408
413
413
432
437
437
454
457
656
657
658
5
8
9
10
11
11
11
11
11
11
12
13
13
15
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
21
22
24
25
25
25
25
25
25
25
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
30
30
31
31
31
31
31
32
32
32
33
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
38
38
38
38
39
39
40
42
42
45
47
48
48
48
48
48
49
49
49
50
50
50
50
51
51
51
51
58
60
61
62
62
62
62
65
65
65
65
65
65
65
65
68
71
72
74
75
76
77
78
80
80
80
80
80
81
83
83
83
84
84
84
87
89
92
92
98
98
101
101
101
101
101
101
101
105
105
105
106
106
110
110
110
110
110
115
115
115
115
116
116
116
118
125
125
125
125
132
133
134
134
134
134
134
135
137
141
142
142
142
142
142
142
143
144
144
147
147
148
148
152
154
154
157
157
161
163
163
164
164
171
173
174
175
175
176
176
180
180
181
181
181
181
185
185
191
193
194
198
201
202
214
218
219
219
223
223
235
240
240
253
256
258
276
281
281
295
296
296
300
305
305
320
322
325
344
349
349
367
372
372
389
391
409
414
414
433
438
438
455
458
657
658
659
8
11
11
11
11
11
12
12
13
14
14
15
15
15
15
15
15
15
15
16
17
17
17
17
17
17
18
18
18
19
19
20
22
23
25
26
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
30
30
31
31
31
31
32
32
32
32
32
33
33
33
34
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
40
40
40
46
47
47
48
48
48
48
49
49
49
49
50
50
51
52
52
58
58
61
62
63
63
66
66
66
66
66
66
66
66
66
66
69
72
73
75
76
77
78
78
79
81
81
81
84
84
85
85
88
93
93
99
99
102
102
102
102
102
102
102
102
102
106
106
106
107
107
111
111
111
111
116
117
117
117
117
126
126
126
133
135
135
135
136
138
141
141
141
142
143
143
143
143
143
143
144
148
149
152
153
155
155
158
158
164
165
165
171
171
174
175
177
177
181
181
182
182
182
186
186
191
192
193
194
197
199
202
215
219
220
220
224
236
241
241
254
257
259
277
282
282
296
296
301
306
306
321
323
326
345
350
350
368
373
383
390
392
410
415
415
434
439
450
454
456
459
658
659
660
8
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
19
19
20
20
20
23
23
23
23
23
24
25
25
25
25
25
25
25
25
25
26
26
26
26
27
28
29
29
29
30
31
31
32
32
32
32
33
33
33
33
33
34
34
34
34
34
34
35
36
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
40
40
40
40
41
41
41
41
47
48
48
49
49
49
50
50
50
50
50
51
51
52
59
59
60
60
60
62
64
64
64
66
66
66
66
67
67
67
67
67
67
69
70
73
74
76
77
78
78
79
79
81
81
81
82
82
83
84
84
84
84
85
85
85
85
85
86
89
89
89
94
94
97
100
100
100
102
102
102
102
103
103
103
103
103
106
106
107
107
108
108
109
109
109
109
110
110
112
112
112
112
115
115
117
118
118
126
127
131
134
134
134
136
136
136
139
143
144
144
144
144
144
144
145
147
147
148
148
149
150
153
153
154
159
159
163
163
165
172
172
173
173
173
175
178
178
182
182
182
183
183
183
184
184
184
184
187
187
191
192
194
194
195
198
200
202
202
203
210
216
219
219
221
221
223
223
225
237
242
242
255
258
260
278
283
283
302
307
307
322
324
327
346
351
351
369
372
372
374
384
388
391
393
411
416
416
435
440
455
457
460
659
660
661
5
8
11
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
19
19
19
19
20
21
23
24
24
24
24
24
25
25
26
26
26
26
26
26
26
26
26
27
27
27
28
28
28
28
28
28
28
29
29
30
30
31
31
31
32
33
33
33
33
34
34
34
34
34
36
36
36
36
36
36
37
37
37
37
38
38
38
38
38
39
39
39
40
40
40
41
41
41
41
42
42
42
48
48
48
49
49
49
49
50
50
50
51
51
51
52
61
61
61
61
64
64
64
66
66
67
67
68
68
68
68
68
68
70
70
70
71
77
78
79
80
81
81
81
82
82
83
83
84
85
85
86
86
86
87
87
90
90
90
95
95
98
100
100
100
102
102
103
103
104
104
104
104
104
108
108
109
110
110
111
111
113
113
113
113
116
118
118
126
132
135
135
137
140
142
144
145
145
145
145
145
146
148
149
150
151
155
160
160
164
174
174
174
174
179
179
181
181
183
183
183
183
183
184
184
185
185
188
188
195
195
196
199
200
201
203
203
204
211
217
222
222
224
224
226
238
243
243
256
259
261
279
284
284
303
308
308
323
325
328
347
352
352
370
373
375
389
392
394
412
417
417
436
438
438
441
456
458
461
660
661
662
4
4
5
5
6
8
11
11
11
11
11
11
11
11
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
18
18
18
18
19
19
21
21
22
22
24
25
25
25
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
34
34
34
34
34
34
34
34
35
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
40
40
40
40
41
41
41
41
43
43
48
49
49
49
50
50
50
50
51
51
51
51
52
52
52
52
52
53
62
62
62
65
65
65
65
66
66
66
66
66
66
67
67
68
68
69
69
71
71
72
78
79
80
81
82
82
83
83
84
84
84
85
85
85
86
86
87
87
88
88
91
96
96
98
99
99
101
101
101
101
102
102
102
102
102
102
103
103
104
104
105
109
109
110
110
111
111
112
112
114
114
114
117
118
119
133
134
136
136
138
141
143
143
146
146
147
149
150
151
152
155
156
161
161
163
163
165
175
175
180
180
182
184
184
184
184
185
185
186
186
189
189
196
196
200
201
201
202
205
212
212
218
223
223
223
225
225
239
244
244
257
260
262
280
285
285
304
309
309
324
326
329
348
353
353
371
374
376
390
393
395
413
418
418
437
439
442
457
459
462
661
662
663
1
5
5
5
5
5
5
6
6
7
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
17
24
24
24
24
26
26
28
28
29
29
29
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
37
38
38
38
38
38
38
39
39
40
40
40
41
41
41
42
42
42
44
44
50
50
50
51
51
51
52
52
52
52
53
53
53
53
54
62
63
64
64
65
65
66
66
67
67
68
68
70
70
71
71
71
71
72
73
79
80
80
81
81
82
82
82
82
82
83
83
83
84
84
84
85
85
85
86
86
92
97
97
99
100
100
100
100
100
100
101
101
102
102
103
103
104
104
106
108
108
110
110
110
111
112
112
115
115
115
118
120
134
134
134
135
137
139
142
145
145
147
147
148
150
151
152
153
155
157
162
162
163
163
164
164
175
181
181
183
183
183
183
184
184
184
184
185
185
185
186
186
187
187
190
190
194
201
203
206
213
213
213
213
219
223
224
224
240
245
245
261
263
281
286
286
305
310
310
327
330
349
354
354
372
375
377
391
394
396
414
419
419
438
440
443
458
460
463
662
663
664
1
1
4
5
5
5
6
6
6
7
7
7
7
8
11
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
20
20
20
20
20
20
25
25
26
26
26
27
27
27
27
29
29
29
29
29
29
30
30
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
37
38
39
39
39
39
41
41
41
42
42
42
43
43
45
45
51
52
52
53
53
53
54
54
54
62
64
64
65
66
66
66
67
67
68
68
69
69
71
72
72
73
73
74
74
78
80
81
81
82
83
83
83
84
84
84
85
85
86
86
87
87
90
93
98
98
98
100
100
100
100
101
101
101
102
102
102
103
103
104
104
105
105
106
107
109
110
111
111
111
112
113
113
116
116
116
119
121
133
134
135
135
136
138
138
140
140
143
145
146
148
148
149
151
152
153
154
158
163
163
165
165
175
182
182
184
184
185
185
186
186
186
187
187
188
188
191
191
191
202
203
204
204
207
207
211
213
213
214
214
219
220
223
224
225
225
241
246
246
262
264
282
287
287
306
311
311
328
331
350
355
355
373
376
378
392
395
395
397
397
415
420
420
439
441
444
459
461
461
464
464
663
664
665
4
5
7
7
7
8
8
8
8
9
9
9
9
9
11
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
13
13
13
14
15
15
15
16
16
17
17
17
18
18
20
21
21
21
21
21
21
21
21
21
21
21
21
21
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
27
27
27
27
27
28
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
38
39
42
43
43
43
44
44
46
46
48
48
49
52
53
53
54
55
65
65
65
65
65
66
66
66
67
67
67
70
70
71
71
72
73
73
74
75
75
78
78
79
79
81
81
81
82
82
82
82
83
84
84
84
84
84
85
85
85
85
86
86
87
88
90
94
99
99
101
101
101
101
101
101
102
102
102
102
102
103
103
103
106
106
106
108
110
111
112
113
114
114
117
117
117
117
120
122
134
136
136
137
141
141
144
145
147
149
152
153
154
155
159
161
164
164
166
166
183
183
184
184
185
185
186
186
188
188
189
189
191
192
192
192
194
194
203
203
208
208
214
215
215
219
221
224
225
226
226
242
247
263
265
283
288
288
307
312
312
329
332
351
356
356
374
377
379
393
398
398
416
421
421
440
442
445
460
465
465
664
665
666
4
5
5
6
8
8
8
8
8
9
9
9
9
10
11
11
11
11
11
12
12
13
13
13
13
13
13
14
14
14
15
15
15
15
15
15
15
17
17
21
21
22
22
22
23
23
24
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
28
29
30
30
30
30
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
39
40
43
43
44
44
45
45
47
47
48
49
49
49
50
51
52
53
54
56
63
65
65
65
65
66
67
68
68
69
69
69
69
69
71
71
71
72
73
76
78
79
80
81
81
82
82
82
82
82
83
83
83
83
84
84
84
85
85
85
85
86
86
87
87
87
88
88
88
89
95
99
100
100
100
100
101
101
101
101
102
102
103
104
104
105
105
105
105
107
107
109
110
111
112
113
114
115
115
118
118
118
118
118
118
118
121
123
125
134
135
137
137
142
142
145
148
150
153
154
155
156
160
162
165
165
167
184
184
185
186
186
189
189
190
190
191
193
193
195
195
204
209
209
213
213
215
222
223
225
226
227
227
243
246
246
248
257
264
266
284
289
289
295
308
313
324
328
330
333
352
357
357
375
378
380
394
399
399
417
422
422
441
443
446
461
466
466
665
666
667
4
4
5
5
5
5
6
8
9
10
10
10
11
11
12
12
13
13
13
13
13
15
15
15
15
15
15
15
15
16
16
17
19
19
19
20
21
23
23
23
24
24
25
26
27
28
28
28
28
28
30
30
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
39
39
40
40
41
44
45
45
45
45
48
48
48
49
49
49
49
50
51
51
51
52
52
52
52
53
53
53
54
55
57
61
63
65
67
68
69
69
70
70
70
70
71
72
72
72
73
74
77
79
80
81
81
82
82
83
83
83
84
84
85
85
86
86
87
88
88
88
89
89
89
90
90
90
96
99
101
101
101
101
103
104
105
105
106
106
106
106
106
108
108
110
111
112
113
113
115
116
116
119
119
119
119
119
122
124
126
126
126
134
135
137
137
138
138
143
143
145
145
146
149
151
153
154
155
156
157
161
162
162
166
166
166
166
168
174
184
185
185
186
187
187
190
190
191
191
192
194
194
194
196
196
196
203
203
205
210
210
214
219
223
224
226
226
228
228
244
247
249
258
262
265
267
285
290
290
296
296
296
309
314
329
331
334
353
358
358
376
379
381
395
400
400
418
423
423
442
444
447
462
467
467
666
667
668
4
5
5
6
6
6
6
7
9
9
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
16
16
18
20
20
20
20
20
20
21
21
22
22
23
23
23
24
24
24
24
24
29
29
29
29
29
29
31
31
31
32
32
32
32
33
34
34
34
34
34
34
34
34
35
35
36
36
36
36
36
37
37
37
37
39
39
39
41
41
41
42
44
44
45
46
46
49
49
51
52
52
52
52
52
53
53
53
53
53
53
54
54
54
54
54
55
55
56
58
62
62
62
62
64
65
66
69
71
71
71
71
71
71
72
73
75
78
81
81
82
82
82
82
83
83
85
86
86
87
87
88
89
89
90
90
91
91
97
100
100
100
101
102
102
102
102
105
107
107
107
107
110
111
111
112
113
115
115
116
117
117
119
120
120
123
125
127
127
138
138
139
139
143
144
144
146
146
148
149
150
152
154
155
156
157
158
162
167
167
167
167
169
175
175
175
175
184
184
185
186
186
186
188
188
190
190
191
191
192
192
194
195
195
195
201
204
204
206
211
211
213
213
215
223
224
225
229
229
245
248
250
263
266
268
286
291
291
296
297
297
310
312
312
315
330
332
335
354
359
359
380
382
396
401
401
419
424
424
443
445
448
463
468
468
667
668
669
5
5
5
5
7
7
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
19
19
24
24
24
25
25
25
25
25
25
25
25
25
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
36
36
37
37
39
42
42
43
45
45
46
47
47
50
50
53
53
53
53
54
54
54
54
54
55
55
55
55
56
56
59
63
63
64
64
67
68
68
69
69
69
69
70
70
71
72
73
74
76
79
82
82
82
82
83
83
83
83
84
84
85
85
85
86
87
87
88
88
89
89
98
100
100
100
100
101
101
103
103
103
104
104
105
105
105
105
106
111
111
113
113
114
116
116
117
118
118
119
121
121
124
126
126
127
127
127
127
128
139
139
140
144
144
145
145
149
150
151
153
153
154
155
155
156
157
158
159
163
166
168
168
168
168
176
176
183
184
185
186
189
189
191
191
192
192
193
193
195
195
196
196
196
196
202
202
207
212
212
213
213
214
214
224
224
225
226
226
230
230
246
249
251
264
267
269
287
292
292
297
297
311
313
316
331
333
336
355
360
360
381
383
397
402
402
420
425
425
446
449
464
469
469
668
669
670
5
5
6
6
8
8
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
17
19
20
20
20
20
20
20
22
22
23
23
23
23
23
24
24
24
26
26
26
26
26
26
26
27
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
36
36
36
36
43
43
43
43
44
46
46
47
48
48
48
48
51
51
51
51
52
53
53
53
53
53
54
54
54
55
55
56
56
57
57
60
63
65
65
65
65
68
69
69
69
69
70
70
70
70
71
71
73
74
75
77
80
83
84
84
84
84
85
85
85
86
86
86
87
87
88
88
88
89
89
99
101
101
101
101
102
102
104
104
104
105
105
105
105
106
106
106
106
107
111
113
114
114
115
117
117
118
119
119
119
119
122
122
122
122
125
127
128
128
129
137
141
146
146
152
154
154
155
156
156
156
156
157
157
158
158
159
159
160
160
164
166
169
169
176
184
186
187
190
190
192
192
193
193
194
194
194
194
197
197
197
197
197
197
208
213
213
215
215
224
226
226
227
227
231
231
247
250
252
265
268
270
288
293
293
312
314
317
332
334
337
356
361
361
382
384
398
403
403
421
426
426
447
450
465
470
470
669
670
671
5
5
5
5
6
7
8
8
9
9
9
9
9
9
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
17
17
17
19
19
19
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
24
24
24
24
24
25
25
25
26
27
27
29
29
30
30
30
30
30
30
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
36
36
36
36
36
37
40
41
43
43
43
44
44
45
47
47
48
49
52
52
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
55
55
55
58
58
61
63
65
65
69
69
69
69
70
70
70
70
71
71
71
71
71
72
74
76
78
78
81
81
82
83
83
83
84
84
85
85
85
85
85
86
87
87
87
87
87
88
88
88
88
89
89
89
90
90
91
98
100
101
101
103
103
105
105
105
105
105
105
106
106
106
106
107
107
107
107
110
111
113
114
114
115
115
116
118
118
119
119
123
123
123
123
126
127
127
128
129
129
134
142
146
146
147
147
153
154
155
155
156
156
156
157
157
160
160
161
161
162
165
166
167
170
170
176
184
185
185
187
189
191
191
193
193
194
194
195
196
196
196
198
198
198
198
198
198
204
209
211
214
214
216
216
224
226
227
227
228
228
232
232
248
251
253
266
269
269
271
271
289
294
294
313
315
318
333
335
335
338
338
357
362
362
376
383
385
399
404
404
422
427
427
448
451
466
471
471
670
671
672
5
5
6
6
6
6
8
8
8
8
8
9
9
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
17
17
19
19
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
26
26
27
28
28
28
30
30
31
31
31
31
32
32
32
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
37
37
37
37
37
37
37
38
44
44
45
45
46
48
48
49
49
53
53
53
53
54
54
55
55
55
55
55
56
56
56
59
59
62
68
68
70
70
70
70
71
71
71
72
72
72
72
72
72
72
74
74
75
77
82
82
82
82
82
82
83
84
84
84
85
86
87
88
88
88
88
88
89
89
89
89
89
89
90
90
90
90
91
91
91
99
101
104
104
104
106
106
106
106
106
106
107
107
108
108
108
108
108
108
111
111
114
115
115
117
118
119
119
120
120
124
124
124
124
124
127
128
129
134
135
137
137
143
146
147
148
148
151
154
156
156
157
157
158
158
161
161
162
162
162
166
167
168
171
171
184
185
186
187
187
188
190
190
192
192
194
194
195
195
195
195
195
196
197
197
197
199
199
199
199
204
210
212
215
215
217
224
224
227
228
228
233
233
249
252
254
267
272
272
290
295
295
314
316
319
334
339
339
358
363
363
377
381
384
386
400
405
405
423
428
428
443
447
449
452
467
472
472
671
672
673
5
5
5
5
5
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
16
16
16
16
16
16
16
17
19
19
19
20
21
23
23
23
23
23
23
24
25
25
25
25
25
26
26
26
27
27
27
27
27
27
28
28
28
29
29
29
29
29
31
31
32
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
36
36
36
37
37
37
37
37
37
38
38
38
38
38
39
43
43
45
45
47
47
49
49
50
50
53
53
54
54
54
54
54
55
55
56
56
56
56
57
57
60
60
63
64
64
68
69
69
70
70
72
72
72
72
72
72
73
73
73
73
75
75
76
78
82
83
83
83
84
85
85
85
85
86
87
89
89
89
90
90
90
90
90
91
91
91
91
92
92
99
99
100
100
102
103
103
104
105
105
105
106
106
107
107
108
108
108
108
108
108
109
109
109
109
112
112
113
113
113
115
116
118
118
119
119
119
119
120
120
121
121
125
125
125
125
125
127
128
129
130
134
138
138
144
149
149
152
155
155
156
156
157
157
157
158
158
162
162
163
163
166
167
168
169
172
172
188
188
189
191
191
193
193
193
195
195
196
196
196
197
198
198
198
200
200
200
200
211
212
212
216
216
216
216
218
225
225
226
226
226
228
229
234
234
250
253
255
268
273
273
291
296
296
315
317
320
335
340
340
359
364
364
382
385
387
401
406
406
424
429
429
448
450
453
468
473
473
672
673
674
1
8
8
8
9
9
9
9
10
10
10
10
10
11
12
12
12
12
12
13
13
13
13
13
13
13
15
15
15
15
15
15
15
15
16
16
17
17
18
18
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
32
32
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
36
37
37
37
37
37
38
38
39
39
39
39
39
40
44
46
49
50
50
51
51
54
54
54
55
55
55
55
55
55
56
56
61
61
64
64
68
68
69
70
70
70
70
72
72
73
73
74
74
74
74
76
76
79
82
83
83
84
84
85
85
85
85
86
86
86
87
88
88
89
89
89
89
90
90
90
91
91
92
92
92
92
93
93
100
103
104
104
104
104
105
106
106
106
106
106
108
108
108
108
109
109
110
110
110
110
114
114
114
114
117
120
120
121
121
122
122
126
126
126
126
126
127
127
128
129
131
135
137
139
139
139
145
146
146
150
150
153
157
158
158
158
159
162
163
163
164
164
167
168
169
169
173
173
189
189
192
192
194
196
196
196
197
197
197
198
199
199
201
201
201
201
212
217
217
217
217
219
227
227
227
227
230
235
235
254
256
269
274
274
292
297
297
316
318
321
336
341
341
360
365
365
383
386
388
402
407
407
425
430
430
449
451
454
469
474
474
673
674
675
1
1
1
5
8
8
8
8
9
9
10
10
11
11
11
11
11
11
11
11
11
11
11
11
12
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
16
16
18
18
19
19
19
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
25
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
37
38
38
38
38
38
39
39
40
41
43
43
45
47
51
51
52
52
53
55
56
56
56
56
62
62
65
69
69
70
70
70
70
70
71
71
71
73
73
74
74
74
80
84
84
85
85
85
86
86
86
86
87
87
88
88
88
88
89
89
89
89
89
90
90
90
90
91
91
91
93
93
94
94
103
104
105
105
105
105
106
106
106
106
106
107
107
107
109
109
109
110
110
115
115
118
120
122
122
123
123
126
127
127
127
127
127
127
128
129
130
132
137
138
144
146
147
147
151
151
154
156
156
158
159
159
159
160
164
164
165
165
166
168
169
174
187
193
193
195
197
197
197
197
198
198
198
202
202
202
202
213
216
218
218
218
218
228
228
231
236
236
255
257
270
275
275
293
298
298
317
319
322
337
342
342
361
366
384
387
389
403
408
408
426
431
450
452
455
470
475
475
674
675
676
5
5
8
8
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
16
16
17
19
19
20
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
26
26
26
26
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
32
32
32
32
34
35
35
35
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
38
39
39
39
39
39
41
42
43
43
44
44
48
52
52
53
53
54
54
56
56
56
56
56
57
57
57
57
57
57
57
62
63
66
69
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
74
74
81
86
86
87
87
87
88
88
89
89
90
90
91
91
91
91
92
92
92
94
94
95
95
103
105
105
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
110
110
110
115
119
120
123
123
124
124
127
128
128
128
128
128
129
130
131
131
133
133
138
138
139
139
145
145
147
152
152
155
156
156
157
157
160
160
160
161
165
165
166
166
167
167
169
169
170
175
175
184
194
194
196
198
198
199
199
199
202
203
203
203
203
214
216
219
219
228
232
237
237
256
258
271
276
276
294
299
299
320
323
338
343
343
362
365
365
367
385
388
388
390
390
404
409
409
427
432
451
453
456
471
476
476
675
676
677
1
5
5
8
8
9
10
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
17
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
23
23
23
23
25
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
34
34
36
37
38
38
38
38
38
38
38
38
38
38
40
40
40
42
43
45
45
49
53
53
54
54
54
54
55
56
56
57
57
57
57
57
58
58
58
58
58
58
63
63
63
64
67
69
71
71
72
72
73
73
73
73
73
73
73
73
73
73
74
74
82
86
86
87
87
87
87
87
89
89
89
90
90
90
91
91
92
92
92
93
93
95
95
96
96
99
103
104
105
106
107
108
109
109
109
109
109
109
109
109
109
109
109
111
115
120
124
124
125
125
127
128
129
129
129
129
129
130
134
134
140
140
148
153
153
156
158
158
161
161
161
162
166
166
167
167
167
169
170
170
171
173
173
176
176
176
176
184
185
187
187
195
195
197
197
199
199
199
200
200
200
200
203
204
204
204
204
212
215
216
217
220
220
228
233
238
238
250
257
259
272
277
277
295
300
300
321
324
339
344
344
363
366
368
386
391
391
405
410
410
428
430
430
433
452
454
454
457
457
472
477
477
676
676
678
5
8
8
8
9
9
9
9
9
9
9
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
15
15
15
15
15
16
16
17
18
18
18
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
26
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
34
34
37
38
38
39
39
39
39
41
41
43
44
46
46
50
54
54
54
55
55
55
55
56
56
56
57
58
58
59
59
59
59
64
64
65
68
69
69
71
72
73
74
74
74
74
75
75
83
86
86
86
86
87
88
88
88
88
88
90
90
91
91
91
91
91
92
96
96
97
97
99
104
105
105
105
107
108
109
110
110
110
110
110
112
121
125
125
126
126
127
128
130
130
130
130
130
130
130
131
135
135
138
139
139
139
141
141
147
149
154
154
154
157
159
159
162
162
162
163
167
167
167
168
168
169
170
171
171
172
174
177
177
177
184
188
188
196
196
199
200
200
201
201
201
201
204
204
205
205
205
205
212
216
217
218
221
221
234
239
239
251
255
258
260
273
278
278
296
296
301
301
322
325
340
345
345
364
367
369
387
392
392
406
411
411
429
431
434
453
458
458
473
478
478
676
677
677
679
4
8
8
8
8
8
8
8
8
8
9
9
9
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
14
14
14
14
17
17
18
18
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
27
28
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
35
35
36
36
36
38
39
39
40
42
42
44
45
47
51
54
54
55
55
56
56
57
58
60
60
60
60
62
63
64
64
64
64
64
65
66
69
70
70
71
71
71
72
73
74
74
74
76
76
76
84
88
89
89
89
89
89
92
92
92
92
92
93
97
97
98
98
103
105
106
106
106
107
107
107
108
109
110
110
111
113
122
126
126
127
127
131
131
131
131
131
131
131
132
136
136
138
138
138
139
140
140
140
147
150
155
155
155
158
160
163
163
163
164
167
167
168
168
169
169
170
171
173
175
176
177
177
177
177
178
178
185
187
189
189
189
197
197
201
201
202
202
202
202
205
205
205
205
206
206
206
206
216
217
218
219
222
222
235
240
240
256
259
261
274
279
279
297
297
302
302
317
321
323
326
341
346
346
365
368
370
388
393
393
407
412
412
430
432
435
454
459
459
474
479
479
678
678
680
4
5
5
5
8
8
8
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
14
14
14
15
15
15
16
16
18
19
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
28
29
30
30
30
30
30
31
31
31
31
31
31
32
32
32
33
33
33
33
33
33
33
33
37
37
37
37
38
38
39
39
40
42
42
43
45
46
46
46
48
52
55
55
56
56
56
56
56
57
57
57
57
57
58
58
58
58
61
61
61
61
65
65
65
66
67
70
72
72
72
72
73
73
74
74
74
75
85
86
86
87
89
90
90
90
90
90
92
92
92
92
92
93
93
93
93
93
93
94
98
98
99
99
99
104
106
106
108
108
108
108
109
109
109
110
110
112
114
114
123
127
127
128
128
132
132
132
132
132
132
132
137
137
140
141
141
141
151
155
155
156
156
159
159
159
161
164
164
164
165
168
168
169
169
169
169
169
170
170
171
174
176
178
178
179
179
187
188
198
198
199
199
202
202
203
203
203
203
203
205
205
206
206
207
207
207
207
212
217
218
219
219
223
223
227
236
241
257
260
262
275
280
280
297
297
298
303
303
322
324
327
342
347
347
366
369
371
389
394
394
408
413
413
431
433
436
455
460
460
475
480
480
679
679
681
4
5
5
5
5
5
5
5
6
6
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
14
15
15
15
19
19
19
19
20
20
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
28
30
30
30
30
30
32
32
33
33
33
33
38
38
39
39
39
39
39
39
39
39
44
46
47
47
47
49
53
55
56
57
57
57
57
57
57
57
58
58
58
58
58
59
59
62
62
62
62
64
64
66
66
66
68
71
73
73
74
74
74
74
74
74
74
74
75
75
76
76
84
86
87
87
88
88
90
91
91
91
92
93
93
93
93
94
94
94
94
94
95
99
99
100
100
103
105
109
109
110
110
110
110
110
110
110
110
110
113
115
115
115
115
115
119
124
128
128
129
129
130
133
133
133
133
133
138
138
139
141
142
142
152
157
157
160
160
160
162
165
165
165
166
170
170
170
170
170
170
171
171
175
177
177
177
179
179
180
188
188
189
189
197
199
199
200
200
203
203
204
204
204
204
206
207
207
208
208
208
208
216
218
219
224
224
228
228
228
228
237
240
240
242
258
261
263
276
281
281
297
298
298
299
304
304
323
325
328
343
348
348
367
370
372
390
395
395
409
414
414
432
434
437
456
461
461
476
481
481
680
680
682
4
4
5
6
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
16
16
16
18
18
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
30
33
33
33
33
33
33
33
38
40
40
40
40
45
46
48
48
48
54
56
56
57
57
58
58
58
58
59
59
63
63
63
63
65
67
69
72
73
75
75
75
75
77
77
85
85
87
91
91
92
92
92
92
92
92
94
95
96
100
100
101
101
104
104
106
106
109
111
111
111
111
111
114
116
116
116
120
120
120
125
127
129
129
130
130
134
134
134
134
134
139
139
140
140
153
158
158
159
161
161
161
166
166
166
167
171
171
171
171
172
172
176
178
178
181
190
190
198
198
200
200
204
204
205
205
205
205
205
205
207
209
209
209
209
217
217
219
219
220
225
225
229
229
238
241
243
259
262
262
264
264
277
282
282
298
298
299
300
305
324
326
329
344
349
349
368
371
373
391
396
396
410
415
415
433
435
438
457
462
462
477
482
482
681
681
683
4
5
5
5
5
5
5
5
5
7
8
8
8
8
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
17
19
19
19
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
30
30
32
33
33
33
37
38
40
40
46
46
49
55
58
59
59
60
60
64
64
64
64
64
66
68
70
72
73
73
75
75
75
76
76
76
78
78
88
90
90
90
93
93
93
96
97
101
101
102
102
104
106
107
107
108
109
111
111
112
115
116
117
121
121
126
127
128
130
130
130
130
131
131
135
135
135
135
135
140
140
145
154
159
159
159
162
167
167
167
168
171
172
172
173
173
177
177
179
179
182
188
189
189
189
191
191
201
201
205
205
206
206
206
206
206
210
210
210
210
217
219
220
220
221
226
226
229
239
242
244
260
265
265
278
283
283
298
298
299
300
301
306
325
327
330
345
350
350
369
372
374
392
397
397
411
416
416
434
436
439
458
463
463
478
483
483
682
682
684
4
4
5
6
8
9
9
9
9
9
9
10
10
11
11
11
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
17
18
18
18
18
18
18
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
31
33
38
38
38
38
40
40
40
40
40
40
42
46
46
47
47
47
50
56
58
58
59
60
60
61
61
64
64
65
65
65
65
65
69
71
71
73
73
73
73
74
74
74
74
75
75
75
75
75
76
77
77
77
87
88
89
90
91
91
92
92
93
93
93
94
94
94
94
94
94
97
98
102
102
103
103
104
106
107
108
108
109
109
109
109
111
111
111
111
111
111
116
116
118
120
121
121
121
121
122
127
127
131
131
131
131
132
132
136
136
136
136
136
141
141
142
146
155
155
159
160
160
160
163
168
168
168
169
171
173
173
174
174
177
177
178
178
180
183
188
188
188
189
190
190
190
200
202
202
205
205
206
206
207
207
207
207
207
211
211
211
211
217
219
220
221
221
222
227
227
229
240
243
245
261
266
266
279
284
284
299
300
302
304
304
307
326
328
328
331
331
346
351
351
373
375
393
398
398
412
417
417
435
437
440
459
464
464
479
484
484
683
683
685
4
5
6
7
9
9
9
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
15
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
32
34
34
39
39
41
41
41
41
42
47
48
48
48
51
57
58
58
58
59
59
59
61
61
62
62
63
64
65
66
66
66
70
74
74
75
75
75
75
75
75
75
75
75
75
77
78
78
78
87
89
89
90
91
92
92
92
93
93
93
94
94
94
95
95
95
95
98
99
103
104
104
104
107
108
110
110
112
112
112
112
117
119
122
122
123
128
128
130
132
132
132
132
132
133
133
137
137
137
137
137
142
142
142
147
147
155
156
160
161
161
161
164
169
169
169
170
174
174
175
175
176
177
178
179
181
184
190
191
191
191
200
203
203
205
205
206
206
207
207
208
208
208
208
212
212
217
217
220
221
223
228
228
241
244
246
262
267
267
280
285
285
298
298
300
303
305
308
327
332
332
347
352
352
374
376
394
399
399
413
418
418
438
441
460
465
465
480
485
485
684
684
686
1
1
5
5
7
7
8
8
8
8
8
9
9
9
9
9
10
10
10
11
11
11
11
13
13
13
13
14
14
14
14
15
18
19
19
19
19
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
25
26
26
26
26
26
26
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
32
33
35
35
35
35
39
39
39
41
41
41
41
41
41
41
41
42
42
46
48
49
49
49
52
56
57
58
59
59
59
59
60
60
60
60
62
62
63
63
64
65
65
65
65
66
67
67
67
71
74
76
76
76
76
76
76
76
78
79
79
91
92
92
93
93
94
94
96
96
99
100
104
105
105
105
106
106
106
108
110
110
110
112
112
112
112
112
112
112
112
113
113
118
120
121
121
123
123
129
130
131
133
133
134
134
138
138
138
138
138
143
143
148
148
148
148
157
159
161
162
162
162
165
170
170
170
171
175
175
176
176
177
179
180
182
185
189
191
192
192
204
204
207
207
208
208
209
209
209
209
211
211
211
211
213
213
218
218
219
219
219
221
224
229
229
242
245
247
263
268
268
281
286
286
299
304
306
309
328
333
333
348
353
353
375
377
395
400
400
414
419
419
439
442
461
466
466
481
486
486
685
685
687
1
1
5
5
7
9
9
9
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
15
15
15
17
17
18
18
18
19
19
19
19
19
21
21
21
21
21
21
22
22
22
23
23
23
23
24
24
24
24
25
25
26
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
31
31
31
31
31
31
31
31
31
33
33
34
35
35
36
36
39
39
39
40
40
42
42
42
42
42
43
43
47
49
49
50
50
53
57
57
58
59
59
59
60
60
60
60
61
61
63
63
64
64
64
65
66
66
67
68
68
72
73
74
76
76
77
77
77
77
87
87
90
91
91
91
92
95
95
97
97
100
101
102
102
103
103
105
106
107
107
107
107
110
110
110
111
111
112
113
113
113
113
114
114
115
119
121
122
130
131
131
132
132
134
134
135
135
139
139
139
139
139
142
142
144
144
146
148
148
149
149
155
158
160
162
162
163
163
166
170
171
171
171
172
176
176
177
177
177
178
178
180
182
183
186
190
190
200
200
203
205
205
208
208
209
209
210
210
210
210
212
212
214
214
220
220
220
220
225
228
230
230
243
246
248
264
269
269
282
287
287
298
300
305
307
310
329
334
334
349
354
354
369
376
378
396
401
401
415
420
420
435
439
440
443
462
467
467
482
487
487
686
686
688
5
5
5
5
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
12
12
13
13
17
17
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
22
22
22
22
23
23
23
23
24
24
24
24
25
25
25
26
26
26
27
28
28
28
28
28
28
28
28
29
30
30
30
31
31
31
31
31
31
32
34
35
36
37
37
40
40
41
41
41
41
41
41
43
43
43
43
46
48
51
51
54
58
58
58
58
59
60
60
60
61
61
61
62
62
64
64
64
65
65
67
67
67
67
68
69
69
73
74
74
74
74
76
76
76
76
76
76
78
78
85
88
88
89
91
91
92
92
93
94
95
96
98
98
101
102
103
104
106
107
108
108
111
111
112
112
112
112
112
112
113
114
114
114
114
116
116
116
116
117
120
121
122
123
131
133
133
135
135
136
136
140
140
140
140
140
140
143
143
145
145
149
150
150
159
159
161
164
164
167
171
171
171
171
172
172
172
173
177
177
177
178
178
178
180
180
181
183
184
187
198
201
201
204
206
206
209
210
210
211
211
211
213
213
215
215
221
221
226
229
229
229
229
231
231
244
247
249
265
270
270
283
288
288
298
299
306
308
311
330
335
335
350
355
355
370
374
377
379
397
402
402
416
421
421
440
441
444
463
468
468
483
488
488
687
689
5
5
5
5
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
14
14
14
15
15
17
17
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
23
23
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
27
27
27
28
29
29
29
31
31
31
31
31
31
31
31
31
32
32
33
35
35
35
37
38
40
40
40
40
40
40
40
40
41
41
41
42
42
42
42
47
47
49
49
52
52
55
59
59
59
59
59
60
60
60
60
61
61
61
62
64
64
65
65
66
68
68
68
68
69
70
70
74
75
75
77
77
77
77
79
79
79
86
86
90
90
91
91
94
94
94
94
95
95
95
95
95
97
99
99
102
103
104
105
107
108
108
109
111
111
111
111
111
111
111
111
112
112
112
113
113
113
113
117
117
118
121
121
121
122
123
131
132
132
132
132
134
134
136
136
137
137
141
141
141
141
141
146
146
148
148
150
160
160
160
162
162
165
165
168
172
172
173
173
173
174
178
179
181
181
182
184
185
188
192
199
199
204
204
207
207
208
208
210
210
210
211
211
212
212
212
214
214
216
216
221
227
230
230
232
232
248
250
266
271
271
284
289
289
300
307
309
312
331
336
336
351
356
356
375
378
380
398
403
403
417
422
422
441
442
445
464
469
469
484
489
489
688
690
1
5
5
5
5
5
5
5
5
5
5
6
6
7
8
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
13
14
14
14
14
14
14
14
14
14
15
18
18
18
18
18
18
18
18
18
18
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
28
29
30
31
31
31
31
32
33
33
34
36
39
41
41
41
41
41
41
42
43
43
43
43
47
49
50
50
53
53
56
57
58
59
60
61
61
62
62
65
66
66
67
69
69
69
69
71
71
75
75
75
75
77
77
77
77
77
77
77
77
78
78
79
80
80
92
93
95
95
95
95
95
95
96
96
96
96
96
96
98
100
100
103
104
105
106
108
108
109
110
112
112
112
112
112
112
113
114
114
114
114
117
119
120
121
122
122
123
124
131
131
131
132
133
133
133
133
137
137
138
138
140
140
140
140
142
142
142
147
147
149
160
161
162
163
163
166
166
169
172
174
174
174
175
179
180
182
182
185
186
189
192
208
208
208
209
209
211
211
212
212
213
213
213
215
215
217
217
221
228
230
233
233
249
251
267
272
272
285
290
290
301
308
310
313
332
337
337
352
357
357
376
379
381
399
404
404
418
423
423
442
443
446
465
470
470
485
490
490
685
689
691
5
5
5
5
5
5
6
6
7
7
7
7
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
17
17
17
17
17
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
29
29
30
30
31
31
31
32
33
34
34
35
35
35
37
40
40
40
41
41
41
41
42
42
42
42
42
42
44
44
47
49
50
51
51
54
54
57
57
58
59
59
60
61
62
62
63
63
66
67
68
70
70
72
72
75
75
75
76
76
76
78
78
78
78
79
79
81
81
88
92
93
94
95
95
95
96
96
96
96
96
97
97
97
97
101
101
104
105
106
107
109
110
111
111
111
112
112
112
112
113
113
113
113
113
113
115
115
117
120
121
123
123
124
125
133
134
134
134
134
138
138
139
139
141
141
143
143
143
143
148
148
148
148
150
160
162
162
163
164
164
167
167
170
172
175
175
175
176
177
177
178
178
180
180
181
186
187
190
201
208
209
209
210
210
212
214
214
214
216
216
218
218
229
230
234
234
250
252
268
273
273
286
291
291
298
309
311
314
333
338
338
353
358
358
377
380
382
400
405
405
419
424
424
443
444
447
466
471
471
486
491
491
686
688
690
692
5
5
5
5
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
16
16
16
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
27
27
27
28
28
28
28
28
28
30
31
31
32
32
32
33
34
35
35
35
35
35
36
36
36
39
39
40
41
41
41
41
42
42
43
43
44
44
44
44
45
45
47
47
50
51
55
58
58
59
59
60
60
61
63
64
64
64
67
69
71
71
73
73
76
76
77
77
77
77
77
77
77
79
79
79
79
79
79
82
82
88
91
92
92
92
95
96
96
96
97
97
97
97
98
98
102
102
107
108
110
110
110
111
111
112
112
112
112
113
113
114
114
115
115
115
115
116
116
121
121
122
124
124
124
126
126
132
134
135
135
135
139
139
140
142
142
143
144
144
144
148
148
149
149
149
149
160
160
163
163
164
168
168
171
176
176
177
177
178
179
181
182
187
188
191
192
192
201
204
209
210
210
213
215
215
215
217
217
219
219
230
235
235
244
251
253
269
274
274
287
292
292
297
298
299
312
315
334
339
339
354
359
359
378
381
381
383
383
401
406
406
420
425
425
444
445
448
467
472
472
487
492
492
689
691
693
5
5
5
7
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
12
12
13
13
13
13
14
14
14
14
15
15
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
28
29
29
29
29
31
32
33
33
33
34
35
35
36
36
37
37
37
40
40
42
42
44
44
45
45
45
45
46
46
48
48
49
49
49
51
56
58
58
59
59
59
61
62
62
62
63
63
64
64
65
65
65
67
67
68
70
72
72
74
74
74
76
76
76
76
76
76
76
76
77
77
77
77
78
78
78
78
78
80
80
83
83
90
93
93
93
93
95
95
95
95
96
96
96
96
97
97
97
98
98
103
103
107
108
109
111
111
111
112
113
113
115
115
116
116
116
116
117
117
121
122
122
124
124
125
127
127
133
133
136
139
139
140
140
141
143
143
145
145
145
150
150
150
150
161
161
162
162
162
164
164
169
169
172
177
177
177
178
178
179
180
180
180
182
183
188
189
189
190
192
192
193
193
208
210
211
211
214
216
216
216
218
218
220
220
220
231
236
236
245
249
252
254
270
275
275
288
293
293
298
298
300
313
316
335
340
340
355
360
360
379
384
384
402
407
407
421
426
426
445
446
446
449
449
468
473
473
488
493
493
690
692
694
5
5
5
5
5
5
7
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
12
12
13
13
13
13
13
13
15
15
15
15
16
16
16
18
18
18
18
18
18
18
18
18
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
29
31
31
32
33
33
34
34
34
35
36
37
37
38
38
38
40
40
41
41
43
46
46
46
46
50
50
50
50
54
56
57
60
62
63
63
63
64
64
64
65
66
66
66
68
68
69
71
73
73
75
75
75
77
77
77
77
77
77
78
78
78
79
79
79
79
79
84
84
91
91
93
93
93
94
94
94
96
96
97
97
98
98
99
104
104
108
108
108
108
109
110
111
111
112
112
112
113
114
117
117
117
117
123
125
125
126
128
128
137
140
141
141
142
143
143
144
144
146
146
146
146
151
151
151
151
163
163
163
163
165
170
170
173
175
175
177
178
178
179
180
181
181
181
183
184
189
191
191
193
193
204
209
211
212
212
212
215
217
217
217
219
219
221
221
221
221
221
221
232
237
237
250
253
255
271
276
276
289
294
294
299
299
301
301
301
309
313
314
317
336
341
341
356
361
361
380
385
385
403
408
408
422
427
427
446
450
450
469
474
474
489
494
494
691
693
695
5
5
5
5
5
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
14
14
17
19
19
19
19
19
19
19
19
19
19
20
20
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
29
30
33
34
34
35
35
35
36
37
38
38
39
39
40
41
41
41
42
43
43
44
51
51
57
58
61
64
64
65
65
65
67
67
67
69
69
69
70
71
71
72
74
74
76
76
76
76
76
77
77
77
77
78
78
78
78
78
78
80
80
80
85
85
93
93
94
94
95
95
95
95
96
97
97
98
98
99
100
104
105
105
108
109
109
109
110
111
111
112
112
112
113
113
114
114
114
115
124
126
126
129
129
135
138
141
141
143
144
144
145
145
147
147
147
147
152
152
152
164
164
166
171
174
176
178
179
179
180
180
181
182
182
182
182
184
185
190
194
194
208
210
213
213
213
216
217
217
218
218
218
220
220
222
222
222
222
233
238
251
254
256
272
277
277
290
295
295
298
301
302
302
314
315
318
337
342
342
357
362
381
386
386
404
409
409
423
428
447
451
451
470
475
475
490
495
692
694
696
5
5
5
5
5
5
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
25
26
26
26
27
27
27
27
27
27
27
27
28
29
29
29
29
29
30
31
34
34
34
36
36
37
38
38
38
39
39
40
40
41
41
42
42
43
44
44
44
44
45
51
58
58
59
62
62
62
63
63
67
68
71
72
72
73
75
75
75
75
75
75
76
77
77
77
77
77
77
77
77
78
78
79
79
80
80
80
80
80
81
81
81
86
86
86
91
93
93
93
94
94
95
95
95
96
96
96
97
98
98
99
100
101
104
104
106
109
109
110
111
112
112
112
113
113
114
114
115
115
115
115
115
116
116
124
125
130
130
135
139
142
142
142
144
146
146
147
147
148
148
148
151
151
153
153
153
164
167
171
172
175
177
180
180
181
182
183
185
186
191
193
195
195
199
204
209
211
211
214
217
218
218
219
219
219
221
221
221
221
222
223
223
223
223
229
234
237
237
239
252
255
257
273
278
278
291
296
296
302
303
303
315
316
319
338
343
343
358
361
361
363
382
387
387
405
410
410
424
429
448
452
452
471
476
476
491
494
494
496
693
695
697
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
13
13
13
13
13
14
14
14
14
14
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
26
26
27
27
27
27
27
27
27
27
28
28
29
29
30
31
31
32
35
37
37
38
38
39
39
39
40
40
41
41
41
41
42
42
44
44
44
44
44
44
45
45
45
45
51
58
58
59
59
59
59
59
59
60
62
63
63
63
63
64
64
65
68
68
69
69
72
73
73
74
76
76
78
78
78
78
78
78
80
80
80
81
81
81
81
82
82
82
87
87
87
91
94
94
94
95
95
95
95
97
97
98
98
98
99
99
100
101
102
105
107
109
110
111
112
112
112
112
113
113
113
113
115
115
115
115
115
115
115
115
116
116
116
116
116
116
117
117
117
121
126
131
131
140
143
145
147
147
149
149
149
151
152
152
154
154
154
164
168
170
170
172
172
172
173
176
178
181
181
181
182
182
183
184
186
187
192
193
196
196
200
208
210
211
215
218
219
219
220
220
220
222
224
224
224
224
230
230
230
235
238
240
253
256
256
258
258
274
279
279
292
297
297
303
316
317
320
339
344
344
359
362
364
383
388
388
406
411
411
425
427
427
430
449
453
453
472
477
477
492
495
497
694
696
698
1
1
2
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
7
7
8
8
8
8
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
18
18
18
19
19
19
19
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
24
24
24
24
25
25
25
27
27
27
27
27
27
27
27
28
28
28
28
29
29
29
30
31
32
33
36
38
38
38
39
40
40
40
40
41
41
42
44
44
45
45
45
45
45
45
45
45
46
46
46
46
58
59
60
60
60
61
62
62
63
63
63
64
64
64
64
65
65
66
70
70
70
73
74
74
75
76
76
77
77
79
79
79
79
79
82
82
82
82
83
88
88
88
88
91
93
95
96
96
96
96
98
98
98
98
99
99
99
100
100
101
102
103
106
108
111
111
112
115
115
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
118
118
121
122
124
124
127
132
132
135
135
141
141
144
144
146
148
148
150
150
150
151
153
153
155
155
169
171
173
173
174
177
179
182
183
183
184
185
187
188
193
197
197
201
201
209
209
209
211
211
211
212
216
216
219
220
220
221
221
221
225
225
225
225
231
231
236
239
241
254
259
259
275
280
280
293
298
298
298
301
317
318
321
340
345
345
360
363
365
384
389
389
407
412
412
426
428
431
450
454
454
473
478
478
493
496
498
695
697
699
1
1
1
2
3
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
14
14
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
18
18
19
19
20
20
20
20
20
20
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
24
26
26
27
27
28
29
29
29
30
30
31
34
34
34
35
37
37
38
39
39
39
40
40
41
41
42
42
43
43
46
46
46
46
46
46
47
47
47
47
59
60
60
60
60
61
61
62
63
63
64
64
64
65
65
65
65
65
66
66
66
68
69
69
69
71
71
71
74
74
75
75
76
76
76
77
77
77
78
79
79
80
80
80
80
80
80
80
84
89
89
89
89
89
89
92
93
94
96
97
98
99
99
99
100
100
101
101
104
107
109
111
112
112
113
114
117
117
117
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
118
119
121
125
125
128
133
133
133
136
136
142
142
144
145
146
146
147
147
149
149
151
151
151
152
156
156
170
172
172
173
173
173
173
174
175
179
180
180
181
182
182
182
183
183
184
184
184
185
186
188
189
193
193
194
198
198
202
202
202
202
209
211
212
212
212
217
217
220
220
221
221
222
222
222
222
226
226
226
226
230
231
231
231
231
232
237
240
242
255
260
260
276
281
281
294
298
299
299
302
318
319
322
341
346
346
361
364
366
385
390
390
408
413
413
427
429
432
451
455
455
474
479
479
494
497
499
696
698
699
700
3
4
4
5
5
5
6
6
8
8
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
21
21
21
21
21
21
21
21
22
22
22
22
22
22
24
24
24
24
24
24
24
24
24
24
24
25
25
25
27
27
27
27
28
28
29
30
35
38
38
38
39
40
40
40
40
41
41
42
43
43
43
43
43
44
44
45
45
46
46
46
46
46
46
48
48
48
48
50
61
61
62
62
63
63
63
64
65
65
65
66
66
66
66
66
66
66
67
67
68
68
68
69
70
70
70
72
76
76
77
77
77
77
78
78
78
79
80
80
80
80
81
81
81
81
81
81
81
85
87
89
89
90
90
90
90
92
92
95
96
96
98
98
98
99
99
99
100
100
100
105
108
108
110
111
112
113
114
114
114
114
115
116
116
117
117
117
117
117
117
118
118
119
119
119
119
119
119
119
119
120
122
124
126
126
126
129
134
134
134
134
146
147
147
148
150
150
150
150
151
152
152
152
152
152
153
157
157
163
171
173
174
174
175
176
181
181
181
181
182
183
183
183
184
184
185
186
187
189
190
191
194
194
195
199
199
200
202
202
203
203
212
213
213
213
218
218
221
222
222
223
223
223
223
227
227
227
227
232
232
233
238
241
243
256
261
261
277
282
282
295
299
300
300
301
303
319
320
320
323
323
342
347
347
362
365
367
386
391
391
409
414
414
428
430
433
452
456
456
475
480
480
495
498
500
697
698
700
701
3
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
7
7
7
8
8
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
26
26
26
27
28
28
28
28
28
29
29
30
34
36
39
39
39
40
41
41
41
41
42
42
43
43
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
47
47
47
47
47
47
51
51
51
51
60
60
62
62
63
63
64
65
66
66
67
67
67
67
67
68
68
70
71
71
71
73
77
77
77
77
78
78
78
78
79
79
80
80
80
80
80
80
81
81
81
81
82
82
82
82
86
90
91
91
91
91
94
94
95
95
96
96
96
97
97
98
99
99
99
99
100
100
100
106
109
109
109
109
109
111
114
114
115
115
115
115
115
116
116
116
116
116
116
116
116
117
117
118
118
118
118
118
118
118
118
119
119
120
120
120
120
124
125
130
135
135
140
147
147
148
148
149
152
153
153
153
153
153
154
158
158
164
164
164
164
172
173
173
174
175
175
177
182
183
184
184
184
185
185
186
187
187
188
188
190
190
191
191
192
192
196
200
200
203
204
204
209
209
213
219
219
222
222
222
222
223
223
224
224
224
224
228
228
228
228
231
231
233
233
239
242
244
257
262
262
278
283
283
296
301
301
302
320
324
324
343
348
348
363
366
368
387
392
392
410
415
415
429
431
434
453
457
457
476
481
481
496
499
501
698
701
702
5
5
5
5
5
6
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
26
27
27
27
27
27
28
28
28
28
29
29
29
30
30
30
32
35
37
38
40
40
40
41
42
45
45
45
45
45
45
46
46
46
46
47
47
48
48
48
48
48
48
52
52
61
63
63
64
64
64
66
67
67
68
68
68
69
71
72
72
74
76
78
78
79
79
80
80
81
81
81
81
81
81
81
81
82
82
82
82
83
83
83
83
87
89
89
91
92
92
94
95
97
97
98
98
98
98
98
98
98
99
99
99
100
100
100
101
101
107
110
110
110
112
115
116
116
116
116
117
117
118
118
119
119
119
119
119
119
119
120
120
121
121
125
125
126
126
131
136
136
136
141
145
148
149
149
150
151
153
154
154
154
154
154
159
159
165
165
173
174
175
177
178
181
182
183
184
185
185
186
186
187
191
191
192
192
197
201
201
202
202
204
210
210
211
211
211
220
220
223
223
224
224
225
225
225
225
229
229
229
229
232
240
243
245
258
263
263
279
284
284
297
302
303
321
325
325
344
349
349
364
367
369
388
393
393
411
416
416
430
432
435
454
458
458
477
482
482
497
500
502
699
702
703
5
5
5
5
5
5
5
5
5
5
6
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
10
11
11
11
11
11
11
11
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
24
25
25
25
25
25
25
25
27
28
28
28
29
29
29
29
30
30
30
30
30
31
31
31
34
36
38
39
41
41
41
41
42
43
44
45
45
45
46
46
46
46
46
47
47
47
47
48
48
49
49
49
49
52
60
62
64
64
65
65
65
65
65
65
66
66
66
67
68
69
69
70
70
75
76
77
79
79
79
80
80
81
82
82
82
82
82
82
83
83
83
83
84
84
84
84
88
90
93
93
96
96
99
99
99
99
99
99
100
100
100
101
101
101
101
102
102
102
108
110
111
113
115
116
116
116
116
117
117
117
118
118
118
119
119
120
120
120
120
120
121
121
122
122
127
127
132
136
137
137
142
146
147
149
149
150
150
151
151
152
154
154
155
155
155
155
155
160
160
165
173
174
175
176
179
182
183
183
184
187
187
188
192
192
193
193
194
198
202
202
203
212
212
212
212
221
221
223
225
225
226
226
226
226
230
230
230
230
231
233
241
244
246
259
264
264
280
285
285
298
298
303
303
322
326
326
345
350
350
365
368
370
389
394
394
412
417
417
431
433
436
455
459
459
478
483
483
498
501
503
700
703
704
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
19
19
19
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
25
26
26
26
28
28
29
29
30
30
30
30
31
31
31
31
31
32
32
37
38
39
39
40
42
42
42
43
43
44
44
44
44
44
45
46
46
46
47
47
47
47
47
47
47
48
48
52
60
60
61
66
66
66
66
66
67
67
67
67
70
70
76
76
77
79
79
79
80
80
80
81
81
81
81
81
82
82
82
82
82
82
84
84
84
84
85
85
85
85
89
89
89
91
92
92
94
94
96
97
97
99
100
100
100
100
101
101
101
102
102
102
102
102
103
103
110
112
114
115
115
115
116
117
117
117
117
118
118
118
118
118
118
118
119
122
122
123
123
125
126
126
126
128
128
133
138
138
143
147
151
151
151
152
152
153
156
156
156
156
156
161
161
165
173
173
174
175
177
180
183
185
185
188
188
188
189
193
193
194
194
194
199
202
202
203
203
204
213
213
213
222
222
223
226
226
227
227
227
227
231
231
231
231
231
231
232
245
247
260
265
265
281
286
286
299
299
301
301
301
304
323
327
327
346
351
351
369
371
390
395
395
413
418
418
432
434
437
456
460
460
479
484
484
502
504
701
704
705
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
20
20
20
20
21
21
22
22
22
22
24
24
25
25
25
25
26
27
27
27
28
29
29
30
30
31
31
31
31
32
32
32
33
33
38
39
39
39
41
41
41
43
43
43
44
45
45
46
47
47
47
48
48
48
49
49
59
60
61
62
67
67
67
68
68
71
71
72
77
79
80
80
80
80
81
81
81
81
81
81
81
81
81
81
82
82
82
82
83
83
83
83
83
83
86
86
86
86
89
89
90
90
90
92
95
95
96
96
97
98
98
99
100
100
101
102
102
103
103
103
104
104
113
115
117
117
118
118
118
118
118
119
119
120
123
123
124
124
125
125
125
126
127
127
127
134
136
136
139
139
144
144
148
152
152
152
152
152
153
153
154
154
154
157
157
157
157
157
162
162
172
173
174
175
178
181
184
185
189
189
189
190
194
194
195
195
200
202
202
203
203
204
204
213
223
223
227
227
228
228
228
228
230
231
232
232
232
232
232
233
246
248
261
266
266
282
287
287
300
301
302
302
305
324
328
328
347
352
352
370
372
391
396
396
414
419
419
435
438
457
461
461
480
485
485
503
505
702
705
706
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
12
12
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
20
20
20
21
22
23
23
23
23
25
25
26
26
27
28
28
28
28
28
28
29
29
30
31
31
32
32
32
32
32
32
33
39
39
41
42
42
42
44
44
44
45
45
46
46
47
48
48
49
49
49
49
49
49
49
49
49
50
50
60
62
63
67
68
68
72
72
72
78
81
81
81
82
82
82
82
83
83
83
83
84
84
84
84
84
84
87
87
87
87
91
91
91
96
96
97
97
98
99
99
99
99
99
100
100
102
103
103
104
114
116
116
118
118
119
119
119
120
120
120
120
120
120
120
120
121
124
124
125
125
127
128
128
128
134
135
137
137
140
140
145
145
145
145
149
152
153
153
154
154
154
155
155
155
158
158
158
158
158
163
163
173
175
176
179
182
185
185
190
190
190
191
195
195
196
196
201
204
204
205
205
224
224
228
228
229
229
229
229
231
233
233
233
233
233
234
247
249
262
267
267
283
288
288
301
302
303
303
306
325
329
329
348
353
353
371
373
392
397
397
415
420
420
436
439
458
462
462
481
486
486
504
506
703
706
707
4
5
5
5
5
5
5
5
5
5
6
6
7
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
21
22
22
22
22
22
23
26
28
28
28
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
32
32
32
32
33
33
33
40
42
43
43
43
45
45
45
46
46
46
47
47
47
47
49
49
50
50
50
50
50
50
50
51
51
60
61
63
66
67
67
68
69
73
73
79
80
81
81
81
82
82
83
83
83
83
84
84
84
84
85
85
85
85
87
88
88
88
88
92
92
92
97
97
97
99
99
99
100
100
100
100
101
101
101
101
101
102
102
102
103
104
108
115
117
117
117
118
118
118
119
120
120
120
121
121
121
121
121
121
125
125
126
126
126
128
129
129
135
135
136
141
141
143
145
145
146
146
150
154
154
155
155
155
156
156
156
159
159
159
159
159
164
173
174
175
176
179
180
183
186
191
191
191
192
196
196
197
197
200
202
205
205
206
206
225
225
229
229
230
230
230
230
231
232
234
234
234
234
234
241
248
250
263
268
268
284
289
289
302
302
302
303
303
304
304
307
326
330
330
349
354
354
365
372
374
393
398
398
416
421
432
436
437
440
459
463
463
482
487
487
498
505
507
704
707
708
1
4
5
5
5
5
5
5
5
5
5
5
5
6
7
7
7
8
8
8
8
8
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
19
19
19
19
20
20
20
20
20
20
20
20
20
22
22
23
23
23
24
24
26
28
29
30
30
30
31
31
31
31
32
32
32
32
32
33
33
34
34
39
39
41
43
46
46
46
47
48
48
48
48
48
48
51
51
51
52
52
60
61
63
63
64
67
67
67
67
68
68
68
68
70
72
72
74
74
79
80
80
80
80
81
82
82
82
83
83
83
83
84
84
85
85
88
89
89
89
89
93
93
97
98
99
100
101
101
102
102
102
102
103
103
103
103
109
113
116
118
118
119
119
119
119
119
121
121
121
122
122
126
126
127
127
127
127
137
142
142
146
147
147
151
152
152
155
155
156
156
156
160
160
160
160
160
165
173
174
176
176
177
180
181
184
185
185
187
192
192
192
192
193
197
197
198
198
201
203
206
207
207
226
226
230
230
231
231
231
231
232
234
234
235
235
235
235
235
242
246
249
251
264
269
269
285
290
290
302
303
303
304
304
305
305
308
327
331
331
350
355
366
370
373
375
394
399
399
417
422
437
438
441
460
464
464
483
488
499
503
506
508
705
708
709
1
1
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
20
20
20
20
20
22
23
23
23
23
23
23
23
24
25
26
26
29
30
31
32
32
32
32
33
33
33
34
34
40
40
41
41
41
42
47
47
47
48
48
48
48
49
49
51
52
52
52
53
53
64
64
65
68
68
69
69
70
71
73
73
75
75
80
81
82
83
83
83
85
85
86
86
88
88
90
90
90
90
92
92
94
94
97
97
97
97
99
99
100
101
103
103
104
104
109
114
117
119
119
119
119
122
122
122
123
123
127
127
128
128
137
138
143
143
145
145
147
152
153
153
154
154
154
156
156
157
157
161
161
161
161
161
163
163
164
166
177
177
178
181
182
183
185
186
186
188
193
193
193
193
194
198
198
199
199
201
201
204
205
205
207
208
208
212
222
227
227
230
230
231
231
232
232
232
235
235
236
236
236
236
236
247
250
252
265
270
270
286
291
291
303
304
304
305
305
306
309
328
332
332
351
354
354
356
371
374
376
395
400
400
418
420
420
423
438
439
442
461
465
465
484
487
487
489
504
507
509
706
709
710
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
11
11
12
12
12
12
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
18
18
18
18
18
18
18
18
19
19
20
20
20
20
20
20
23
23
23
23
24
24
25
26
27
27
28
28
28
30
32
32
33
33
34
35
42
42
42
42
43
46
48
48
48
48
49
49
49
50
50
50
50
50
50
50
50
52
52
52
53
53
53
54
54
65
65
68
69
71
71
72
76
76
81
81
81
82
83
84
84
85
85
85
85
85
85
86
86
87
87
91
91
91
91
92
93
93
95
95
98
98
98
99
99
99
100
100
100
100
100
101
103
104
110
110
110
115
117
118
119
120
120
120
121
121
121
121
121
121
123
123
123
124
128
128
129
129
129
137
139
144
144
146
153
155
155
155
155
157
157
158
158
162
162
162
162
162
164
165
165
165
167
178
178
182
183
184
184
186
189
194
194
194
194
194
195
199
199
200
200
205
205
206
206
208
209
209
213
213
213
213
223
223
223
228
228
231
232
232
233
233
233
236
236
237
237
237
237
248
251
253
266
271
271
287
292
292
302
303
304
305
305
307
310
329
333
333
352
355
357
372
375
377
396
401
401
419
421
424
439
440
443
462
466
466
485
488
490
505
508
510
707
710
711
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
10
10
11
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
19
19
19
19
19
19
20
20
20
20
20
20
25
26
29
29
29
29
31
32
32
32
32
33
33
34
35
36
43
43
43
44
47
47
48
48
49
49
49
50
50
50
51
51
51
51
51
51
53
53
54
54
54
55
55
63
67
68
68
69
73
77
77
82
82
82
82
82
82
83
83
83
85
85
86
86
86
86
87
87
88
88
92
92
92
92
92
94
94
96
99
100
100
100
100
101
101
101
101
102
103
103
104
111
111
116
118
118
119
119
119
121
121
121
121
122
122
122
122
124
125
129
129
129
130
130
140
145
145
145
145
147
154
156
156
156
158
158
159
159
163
163
163
163
163
165
166
166
168
176
183
184
187
190
195
195
195
195
195
195
195
196
200
200
201
201
205
206
207
207
210
210
214
214
214
224
224
229
229
232
233
233
234
234
234
234
238
238
238
238
249
252
254
267
272
272
288
293
293
302
304
305
306
308
311
330
334
334
353
356
358
373
376
378
397
402
402
420
422
425
440
441
444
463
467
467
486
489
491
506
509
511
708
711
712
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
20
20
20
20
25
26
30
30
32
32
32
32
32
32
33
33
33
33
33
33
34
36
37
43
45
49
49
49
49
50
50
50
51
52
52
53
53
53
53
54
55
55
55
56
56
60
68
68
68
68
69
69
69
69
73
74
78
78
80
82
82
83
83
84
84
84
84
84
88
88
88
89
89
93
93
93
93
93
97
100
101
101
101
102
103
103
103
103
104
104
104
104
110
111
111
111
111
112
117
118
120
120
120
120
120
120
122
122
125
126
130
130
131
131
141
145
145
146
146
146
146
155
156
159
159
160
160
164
164
164
164
164
165
166
166
166
166
166
167
169
173
184
185
186
188
191
193
195
195
196
196
196
196
196
197
201
201
201
202
202
206
207
211
211
214
223
224
224
224
224
225
230
230
231
233
234
234
235
235
235
239
239
239
239
250
253
253
255
255
268
273
273
289
294
294
303
305
306
309
312
331
335
335
354
357
359
374
377
377
379
379
398
403
403
421
423
426
441
442
445
464
468
468
487
490
492
507
510
510
512
512
709
712
713
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
19
19
19
19
19
19
19
19
19
19
21
21
21
21
26
30
33
33
34
34
34
34
35
38
46
49
49
49
51
51
51
52
53
54
54
55
56
56
56
57
57
60
61
63
63
69
69
70
70
73
75
79
79
83
84
84
84
84
84
85
89
89
90
90
92
94
94
94
94
94
98
101
101
103
104
104
105
105
112
112
113
118
118
119
120
120
120
121
121
123
123
126
127
129
129
131
131
132
132
142
147
147
147
147
156
160
160
161
161
165
165
165
165
165
167
167
167
168
170
173
174
176
176
185
186
186
186
189
189
192
196
197
197
197
197
197
198
202
202
203
203
205
207
208
212
212
225
225
226
231
231
231
232
234
234
234
235
235
236
236
236
240
240
240
240
251
256
256
269
274
274
290
295
304
306
310
313
332
336
336
355
358
360
375
380
380
399
404
404
422
424
427
442
443
443
446
446
465
469
469
488
491
493
508
513
513
710
713
714
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
9
10
10
10
10
10
11
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
20
20
22
29
30
30
33
34
35
35
36
39
47
47
49
50
50
51
51
51
52
52
52
53
53
53
53
54
55
55
57
57
57
58
58
60
64
64
69
70
76
80
80
82
82
82
84
84
85
85
86
86
86
86
86
86
86
88
90
90
91
91
93
95
95
95
95
95
99
100
101
102
104
104
105
111
111
113
113
118
118
119
120
121
121
122
122
122
122
124
124
127
127
128
130
130
132
132
133
133
135
143
143
148
148
148
148
157
161
161
162
162
166
166
166
166
166
166
166
168
168
168
171
173
177
177
186
190
190
193
195
195
197
198
198
198
199
201
203
203
204
204
206
208
209
213
213
224
224
226
226
231
232
232
235
235
235
236
236
237
237
237
241
241
241
241
252
257
257
270
275
275
291
296
304
306
306
310
311
314
333
337
337
356
359
361
376
381
381
400
405
405
423
425
428
443
447
447
466
470
470
489
492
494
509
514
514
711
714
715
5
5
5
5
5
5
5
5
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
10
10
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
19
21
21
21
21
23
30
30
30
30
31
33
33
33
34
34
34
36
36
37
37
40
48
48
48
51
51
51
51
51
51
53
53
53
54
54
54
55
58
58
58
59
59
61
63
65
65
65
69
69
69
70
70
70
73
73
77
81
81
82
83
83
83
84
84
86
86
87
87
87
87
87
91
91
92
92
92
94
96
96
100
101
101
101
101
103
104
104
104
105
105
105
105
112
119
119
119
120
121
122
122
122
122
122
122
123
123
123
125
125
128
128
128
129
133
133
134
134
136
144
144
149
149
149
158
162
162
163
163
167
167
167
167
167
167
169
172
174
176
178
178
178
186
186
187
191
191
194
195
196
199
199
199
200
204
204
205
205
205
207
210
214
214
225
232
233
233
234
236
236
236
236
237
237
238
238
238
242
242
253
258
258
271
276
276
292
294
294
297
306
311
312
315
334
338
338
357
360
362
377
382
382
401
406
406
424
426
429
444
448
448
467
471
471
490
493
495
510
515
515
712
715
716
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
10
10
10
11
11
11
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
21
21
22
22
24
24
31
31
31
31
34
34
35
35
35
35
37
38
38
41
42
49
49
49
52
52
52
52
52
52
52
52
53
53
54
54
54
55
55
55
56
59
59
60
63
64
70
70
71
71
71
74
74
78
82
82
82
82
83
84
85
85
85
85
88
88
92
92
93
93
93
95
95
97
97
100
101
102
102
104
105
105
106
106
106
111
111
113
120
120
121
121
122
123
123
123
123
123
123
123
123
126
126
129
130
134
135
137
137
144
144
145
148
148
150
150
150
155
159
163
163
164
164
166
166
168
168
168
168
168
168
170
173
176
177
184
187
187
188
192
192
195
195
195
196
197
200
200
200
201
201
205
206
206
208
208
211
213
215
215
224
224
226
234
234
234
235
237
238
238
239
239
239
243
243
254
259
259
272
277
277
293
295
298
312
313
316
335
339
339
358
361
363
378
383
383
402
407
407
425
427
430
445
449
449
468
472
472
491
494
496
511
516
516
713
716
717
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
9
9
9
9
10
10
10
10
10
11
11
11
11
11
12
12
12
12
12
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
20
20
21
21
21
23
23
25
25
25
25
31
32
33
34
34
34
34
35
35
35
35
35
35
36
36
36
38
39
39
42
43
43
43
43
50
50
50
50
52
52
52
52
52
53
53
53
53
53
53
54
54
55
55
55
56
56
57
58
58
59
59
60
60
61
64
64
65
65
68
69
70
70
70
70
71
71
71
71
71
72
72
72
79
82
83
83
83
84
85
85
85
89
92
93
93
94
94
94
95
95
95
95
98
98
101
101
101
101
102
103
104
105
105
105
105
105
106
106
106
106
106
107
107
110
111
111
112
112
121
121
121
122
122
122
123
123
123
123
123
123
124
124
124
124
127
127
130
130
131
133
133
134
134
135
136
138
138
138
138
146
148
149
149
151
151
151
156
156
156
156
160
164
164
165
165
165
166
166
167
167
169
169
169
169
171
174
177
177
178
178
185
185
189
193
193
195
196
196
197
201
201
201
202
204
204
205
205
205
206
207
207
212
214
214
214
214
216
216
223
224
224
225
225
235
235
235
236
236
238
239
239
240
240
240
241
241
241
241
244
244
255
260
260
273
278
278
294
296
299
313
314
317
336
340
340
362
364
379
384
384
403
408
408
428
431
446
450
450
469
473
473
495
497
512
517
517
714
717
718
1
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
18
18
18
19
19
20
20
20
21
21
22
22
22
23
24
24
25
25
26
26
31
31
31
33
34
35
35
35
36
36
36
37
37
37
40
40
43
44
44
44
50
50
50
51
52
52
53
53
53
54
54
54
54
55
55
56
56
56
57
57
58
59
60
61
61
62
66
66
69
70
71
71
72
72
72
73
80
80
83
84
84
84
85
85
86
86
87
87
90
93
93
93
94
94
95
95
95
95
96
96
99
99
102
102
102
102
102
102
104
105
106
106
106
107
107
107
108
108
111
113
113
121
121
121
123
123
123
124
124
124
124
125
125
125
125
128
128
130
131
132
134
135
136
136
137
138
138
139
139
147
148
150
150
152
152
157
157
157
161
165
165
166
166
166
168
168
170
170
170
170
172
175
179
179
190
193
194
194
197
197
198
202
202
202
203
205
206
206
206
206
207
208
208
208
208
213
215
215
215
217
217
224
226
226
236
237
237
239
240
240
241
241
242
242
245
245
256
261
261
274
279
279
295
297
300
314
315
318
337
341
341
363
365
380
385
385
404
409
409
429
432
447
451
451
470
474
474
496
498
513
518
518
715
718
719
1
1
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
9
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
19
19
20
20
21
21
21
22
22
23
25
25
26
27
27
31
32
32
34
34
34
35
35
35
36
36
36
37
37
41
41
44
44
48
51
51
51
51
52
52
52
52
52
52
52
53
53
53
54
54
54
56
56
57
57
58
58
59
60
61
62
62
63
64
65
65
65
67
67
70
70
70
71
71
71
72
72
73
73
74
81
81
84
84
85
85
85
86
87
87
87
87
87
87
91
93
95
95
95
96
96
96
96
97
97
100
100
102
103
103
105
105
105
106
106
106
107
107
107
108
108
109
111
112
114
114
119
122
122
122
122
122
123
123
123
123
123
123
123
123
123
124
124
124
125
125
125
125
129
129
132
133
135
136
137
138
139
140
140
144
148
149
153
153
157
162
166
166
166
167
167
167
169
169
171
171
173
176
177
178
178
178
180
180
187
191
194
195
195
198
198
199
203
203
204
206
206
207
208
208
209
209
209
209
214
215
218
218
224
225
227
227
235
236
236
236
237
238
238
240
241
241
242
242
243
243
246
246
257
262
262
275
280
280
296
298
301
315
316
319
338
342
342
364
366
381
386
386
405
410
410
430
433
448
452
452
471
475
475
497
499
514
519
519
716
719
720
1
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
9
9
9
9
9
9
9
9
9
9
10
10
10
11
11
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
20
20
21
21
22
22
22
23
23
24
25
25
26
26
27
30
32
32
32
32
33
33
33
34
34
34
35
35
35
35
36
36
37
42
42
45
49
50
50
51
51
52
52
53
53
53
53
54
54
54
56
56
56
56
57
58
58
59
59
60
60
61
62
63
63
63
64
64
64
64
65
66
66
66
69
69
70
70
70
71
71
71
72
72
74
81
81
82
85
85
85
85
86
86
87
88
88
88
88
88
88
88
88
92
94
94
96
96
96
97
97
97
97
98
98
101
101
101
103
103
103
103
104
104
104
105
105
105
106
106
106
107
107
108
110
111
112
114
114
115
120
121
121
122
122
122
122
122
123
123
123
124
124
124
124
124
125
125
125
130
130
130
130
133
134
136
137
138
138
138
139
140
148
149
150
154
154
163
166
167
167
167
168
168
169
169
170
172
172
174
177
177
177
177
178
179
179
179
187
192
194
194
196
196
198
198
199
200
202
202
204
204
205
207
208
209
209
210
210
210
210
215
219
219
224
225
227
227
228
235
235
235
236
237
237
237
238
240
240
241
242
242
243
243
244
244
247
247
258
263
263
276
281
281
297
299
302
316
317
317
320
320
339
343
343
365
367
382
387
387
406
411
411
431
434
449
453
453
472
476
476
498
500
515
520
520
717
720
721
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
9
9
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
16
16
16
16
16
16
16
16
16
17
17
18
18
19
19
19
19
19
21
21
22
22
22
22
23
23
23
24
24
24
25
25
26
27
27
31
31
33
33
34
34
34
35
35
36
36
36
37
37
38
43
43
46
50
50
51
52
52
52
53
53
54
54
54
55
55
57
57
57
58
59
59
60
60
62
63
64
64
64
65
66
67
67
67
70
70
71
71
72
72
73
73
83
86
86
86
86
86
87
87
88
88
88
88
88
89
89
89
89
93
93
93
95
97
97
97
98
99
99
102
102
102
104
104
105
105
105
106
106
107
107
108
108
109
111
115
115
116
121
121
122
123
123
123
124
124
124
125
125
125
125
125
126
126
126
128
131
131
131
131
134
135
137
138
138
139
139
140
144
149
150
151
155
155
164
168
168
169
169
170
170
170
170
170
170
171
173
173
175
178
179
180
180
180
193
197
197
199
199
200
201
203
205
205
206
206
206
208
209
210
210
211
216
220
220
228
228
229
237
238
238
238
239
241
242
243
243
244
244
245
245
248
248
259
264
264
277
282
282
298
300
303
306
317
321
321
340
344
344
366
368
383
388
388
407
412
412
432
435
450
454
454
473
477
477
499
501
516
521
521
718
721
722
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
19
19
20
20
20
20
20
21
22
23
24
24
24
25
25
25
25
25
26
26
27
28
28
32
32
32
34
34
34
34
35
35
35
35
35
36
36
37
37
38
44
44
47
51
51
51
51
51
52
52
52
53
53
53
55
56
56
58
58
58
60
61
63
64
65
65
65
65
66
67
68
68
70
70
71
71
71
71
72
72
73
74
84
86
86
86
87
87
88
88
88
88
89
89
90
90
90
90
94
94
94
95
95
95
96
99
100
100
103
103
103
103
103
105
105
105
105
106
106
106
106
107
107
108
109
110
112
116
116
122
122
122
122
122
123
123
123
123
124
124
124
125
126
126
127
127
127
129
129
132
132
138
138
138
139
139
140
140
141
148
150
151
156
156
165
169
169
170
171
171
171
171
174
174
176
178
179
180
181
181
194
198
198
200
200
201
204
206
207
207
208
208
208
209
210
211
212
217
221
221
229
229
236
238
239
239
240
242
243
245
245
246
246
249
249
260
265
265
278
283
283
299
301
304
304
306
307
318
322
322
341
345
345
367
369
384
389
389
408
413
413
433
436
451
455
455
474
478
478
500
502
517
522
522
719
722
723
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
8
8
8
8
8
8
8
8
9
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
14
14
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
20
20
21
23
24
25
25
25
25
26
26
26
26
27
27
29
29
31
31
31
32
33
33
34
35
35
36
36
36
37
37
37
38
38
38
38
38
39
45
48
49
51
51
51
51
52
53
54
54
55
55
55
55
56
57
57
59
61
62
64
65
66
66
66
66
66
67
70
71
71
72
72
73
73
73
74
74
74
75
84
85
87
87
87
87
88
88
88
88
88
88
89
89
89
89
90
90
95
96
96
96
96
97
100
101
101
102
102
103
104
104
104
104
105
106
106
107
107
108
108
108
109
109
109
110
111
113
120
122
122
122
122
123
124
124
124
125
125
126
126
126
126
128
128
128
133
133
138
139
139
140
140
141
142
144
149
151
151
152
157
166
170
170
171
172
172
175
175
177
179
179
180
195
199
199
202
205
207
209
209
209
209
210
211
212
213
218
222
222
237
237
241
243
244
246
246
247
247
250
250
261
266
266
279
284
284
302
305
305
307
319
323
323
342
346
346
368
370
385
390
390
409
414
434
437
452
456
456
475
479
479
501
503
518
523
523
720
723
724
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
14
14
14
14
15
15
16
16
17
17
17
17
17
18
18
19
19
19
19
21
22
23
23
25
26
26
26
27
27
27
27
28
28
30
30
32
32
34
34
35
37
37
38
38
38
39
39
39
40
44
44
46
49
49
51
53
53
54
55
55
56
56
56
56
57
58
58
59
60
60
62
63
65
66
67
67
67
68
72
73
74
74
74
75
75
75
76
85
85
86
86
86
87
87
88
88
89
89
90
90
90
96
97
97
97
97
97
98
101
101
101
101
102
102
102
102
103
103
105
105
105
105
108
109
109
109
110
110
110
111
111
112
114
120
122
124
125
126
126
127
127
127
127
129
129
129
131
134
134
134
135
136
140
140
141
141
142
143
148
150
153
157
157
158
166
167
169
169
171
171
172
173
173
176
176
178
181
185
196
198
200
200
203
205
206
206
208
210
210
210
211
212
213
214
215
215
219
223
224
234
242
243
243
244
245
247
247
247
247
248
248
251
251
262
267
267
280
285
285
303
305
306
307
320
324
324
343
347
358
369
371
386
391
391
410
415
435
438
453
457
457
476
480
491
502
504
519
524
524
721
724
725
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
15
15
16
17
17
18
18
19
19
20
20
20
20
23
24
24
26
27
27
27
28
28
28
28
29
29
31
31
32
32
33
33
35
36
36
36
38
38
38
39
39
40
40
43
45
45
47
50
50
51
52
53
54
55
55
55
56
57
57
57
57
60
61
61
63
64
64
65
66
67
68
68
68
68
69
73
74
74
75
75
76
76
81
85
86
86
86
87
87
88
88
88
89
89
90
90
91
91
91
97
99
101
102
102
102
102
103
103
103
103
103
103
104
104
106
106
106
106
110
110
111
111
111
112
112
114
114
115
121
122
123
126
126
126
126
128
128
128
128
130
131
135
135
135
136
137
139
140
141
141
142
142
143
144
149
149
149
151
151
151
154
156
158
158
159
166
167
168
168
169
170
172
172
172
173
174
174
177
177
178
181
181
182
186
187
187
194
197
198
199
201
201
206
207
207
209
210
210
211
212
213
214
214
215
216
216
220
224
224
225
227
235
239
239
245
245
247
248
248
248
248
249
249
252
252
263
268
268
281
286
286
304
307
307
321
325
325
344
348
359
363
369
371
372
387
392
392
411
416
425
429
435
438
439
454
458
458
477
481
492
496
502
504
505
520
525
525
722
725
726
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
17
17
17
18
18
18
18
19
21
21
24
24
24
25
27
28
28
28
29
29
29
30
30
32
32
32
33
34
34
35
35
35
36
36
38
39
39
39
44
45
45
46
48
50
50
51
51
51
53
54
54
54
55
55
56
56
56
56
57
62
64
65
65
66
67
68
68
69
69
69
70
70
71
75
75
75
75
81
86
87
87
87
87
87
87
88
88
88
88
89
89
89
92
92
92
100
102
103
103
103
103
103
103
104
104
104
104
105
105
106
106
106
107
107
107
107
112
114
115
115
116
121
121
122
122
124
125
125
126
126
126
127
127
127
131
136
136
137
137
140
141
141
141
142
143
143
144
145
149
151
152
152
152
155
157
158
158
159
160
167
169
169
170
171
173
174
175
175
178
178
181
182
183
188
188
188
188
194
198
199
200
202
202
208
210
211
212
213
214
215
215
216
216
216
217
221
225
225
227
228
239
240
246
248
249
249
249
249
250
250
253
253
264
269
269
282
287
287
305
308
322
326
326
345
349
364
372
373
388
393
393
412
417
430
439
440
455
459
459
478
482
497
505
506
521
526
526
723
726
727
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
18
18
19
19
20
20
20
20
22
22
25
26
28
29
29
29
30
30
30
31
31
33
33
34
34
35
35
35
35
36
36
36
37
37
37
38
38
39
40
40
40
45
45
46
47
49
51
51
52
54
55
55
55
55
55
55
56
56
56
57
57
57
57
57
58
63
65
66
66
67
68
68
69
69
70
70
70
70
70
70
71
71
71
71
71
72
73
73
74
74
75
75
76
76
85
85
87
87
87
87
87
88
88
89
89
90
90
91
91
91
91
93
93
93
96
100
101
103
103
104
104
104
104
105
105
105
105
105
105
105
106
106
106
106
107
107
107
108
108
108
108
108
108
108
108
109
109
114
115
116
116
117
122
122
125
126
126
126
126
126
126
127
127
128
128
128
132
137
137
141
142
142
142
143
143
144
144
144
145
145
146
146
152
153
153
153
156
158
158
159
160
161
169
170
170
171
172
174
175
176
176
179
179
183
184
188
188
189
189
198
199
200
201
203
203
203
209
211
212
213
214
214
215
215
216
216
216
216
217
217
217
218
222
226
227
228
229
241
242
246
247
249
250
250
250
250
251
251
251
251
254
254
254
254
265
270
270
283
288
288
306
309
323
327
327
346
350
365
373
374
389
394
394
413
418
431
440
441
456
460
460
479
483
498
506
507
522
527
527
724
727
728
1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
14
14
14
14
14
14
14
14
14
14
16
16
17
19
19
20
20
21
21
21
21
23
23
26
27
27
27
29
30
30
30
30
30
31
31
32
34
34
35
36
36
36
37
37
37
37
37
38
38
38
38
38
39
39
40
46
47
50
51
51
53
54
55
55
56
56
56
56
56
57
57
57
58
58
58
58
58
62
64
66
67
67
68
68
68
71
71
71
71
71
72
72
72
73
73
73
74
74
74
74
74
75
75
76
77
77
85
85
85
86
87
88
88
89
90
90
91
91
92
92
92
92
94
94
94
101
102
104
105
105
105
105
106
107
108
108
108
108
108
109
109
109
109
109
109
109
109
109
109
110
110
114
115
116
116
117
118
122
122
125
126
126
126
126
127
127
127
127
128
128
129
129
133
138
138
142
143
143
143
146
146
147
147
149
149
153
157
159
160
162
169
170
171
171
171
172
172
173
175
176
176
176
177
177
180
180
181
181
184
185
189
190
190
198
198
199
200
201
201
204
204
204
208
210
212
213
214
217
217
217
218
218
218
223
227
227
228
229
229
239
239
242
247
248
250
251
251
251
251
255
255
255
255
266
271
271
284
289
307
310
324
328
328
347
351
366
374
375
390
395
395
414
419
432
441
442
457
461
461
480
484
499
507
508
523
528
528
725
728
729
1
1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
17
17
17
18
20
20
20
22
22
22
22
28
30
31
31
31
32
32
32
33
35
35
37
37
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
47
50
51
53
54
54
55
56
56
56
56
56
56
56
57
57
57
58
58
58
58
58
58
58
59
63
65
66
67
68
68
69
69
69
72
72
72
72
73
73
74
74
74
75
75
75
75
75
75
75
76
76
76
77
81
86
86
86
87
88
88
89
91
91
91
91
93
93
93
93
95
96
102
103
103
105
106
106
106
109
109
109
110
110
110
110
110
110
110
110
110
110
110
111
111
111
111
114
115
116
117
118
119
121
124
125
126
127
127
127
127
127
127
127
127
128
128
129
129
129
129
129
129
129
134
139
139
143
144
147
147
148
148
150
150
151
151
151
158
160
163
166
169
170
171
172
174
176
177
177
177
178
178
179
181
181
182
182
185
186
188
190
194
199
199
201
201
202
205
205
209
209
211
213
214
215
218
218
218
219
219
224
224
227
228
228
229
230
237
240
240
243
248
249
251
252
252
252
252
256
256
256
256
267
272
272
285
290
308
311
325
329
329
348
352
367
375
376
391
396
396
415
420
433
442
443
458
462
462
481
485
500
508
509
524
529
529
726
729
730
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
18
18
18
18
19
19
19
20
20
21
21
21
28
29
31
32
32
32
32
32
33
33
33
34
35
35
36
36
38
39
39
39
39
39
39
39
39
40
40
40
40
40
41
41
45
50
52
54
54
55
55
56
56
56
57
58
58
58
58
58
58
58
59
59
59
59
59
59
59
60
64
66
66
67
67
68
68
69
69
70
73
73
73
73
74
74
74
75
75
75
75
75
76
76
76
76
76
76
77
77
86
86
87
87
87
89
89
90
90
90
91
91
92
92
92
92
96
97
97
97
97
103
103
103
103
104
104
104
106
106
107
107
107
107
109
110
110
110
110
111
111
111
111
111
111
111
111
111
111
112
112
115
116
117
118
119
120
121
125
125
125
125
126
127
127
127
129
129
129
129
129
129
130
130
130
130
130
130
130
131
131
135
140
140
141
144
145
148
148
149
149
152
152
152
152
158
159
164
170
171
172
173
175
177
178
178
178
179
179
180
180
182
182
186
187
188
189
200
202
202
203
206
206
210
210
210
210
210
212
212
214
214
215
216
216
219
219
220
220
225
228
229
229
230
231
238
238
244
249
250
250
252
253
253
253
253
253
257
257
257
257
268
273
273
286
291
309
312
326
330
330
349
353
368
376
377
392
397
397
416
421
434
443
444
459
463
463
482
486
501
509
510
525
530
530
727
730
731
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
15
15
15
15
16
16
16
17
17
19
19
19
19
19
19
20
20
20
20
20
20
21
21
22
22
22
24
26
28
29
29
30
32
33
33
33
33
34
34
34
34
35
35
35
35
36
36
37
37
37
37
38
39
39
39
39
40
40
40
40
40
40
40
41
41
41
42
42
44
45
45
46
46
50
52
54
55
55
56
56
57
57
58
58
59
59
59
60
60
60
60
60
60
60
65
69
69
70
70
71
74
74
74
74
74
75
75
75
75
75
75
75
76
76
76
76
77
77
77
77
78
78
86
87
87
88
90
90
91
91
91
91
91
91
92
92
93
93
93
93
97
98
98
98
103
103
104
104
104
106
106
106
107
107
108
108
108
108
109
110
110
110
110
111
111
111
111
112
112
112
112
112
112
112
112
113
113
115
116
116
117
118
120
121
121
125
126
127
128
130
130
131
131
131
131
131
131
132
132
132
132
136
137
141
141
141
142
145
146
149
149
150
150
153
153
153
158
158
159
160
165
170
171
171
171
172
173
175
176
178
179
179
179
180
180
180
180
183
183
183
183
187
188
188
190
199
201
203
203
207
207
211
211
211
211
215
215
216
216
216
217
217
220
220
221
221
226
228
229
229
230
230
231
245
250
253
254
254
254
254
254
258
258
258
258
269
274
274
287
292
299
303
307
309
312
313
327
331
331
350
354
369
377
378
393
398
398
417
422
435
444
445
460
464
464
483
487
502
510
511
526
531
531
728
731
732
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
14
14
15
16
16
17
17
18
19
19
19
19
20
20
20
20
21
21
21
21
22
22
23
23
24
29
30
30
31
33
34
34
34
36
36
36
36
37
37
37
38
38
38
38
38
38
39
39
40
40
40
40
41
41
41
41
42
44
45
46
47
47
55
55
55
56
56
56
56
56
56
57
57
57
57
57
59
60
60
60
66
69
70
70
71
71
72
73
74
74
75
75
75
75
75
75
75
76
76
76
76
76
76
77
77
77
77
78
78
86
87
87
87
88
88
90
91
91
92
92
92
92
93
93
94
94
98
98
102
103
104
105
105
107
107
107
108
108
108
109
109
109
109
109
109
110
110
111
111
111
112
112
112
112
113
113
113
113
113
113
115
117
118
121
122
126
126
126
127
127
127
127
127
127
128
128
128
131
131
132
132
133
133
137
137
142
142
142
143
146
147
150
150
151
151
153
157
158
159
160
166
170
172
173
176
177
179
180
180
180
182
184
184
184
184
186
188
188
189
189
191
199
200
201
201
204
208
208
211
212
215
216
216
216
217
217
218
218
221
221
222
222
228
230
231
231
240
246
251
254
255
255
255
255
255
259
259
259
259
270
275
275
288
293
304
305
307
308
313
314
328
332
332
355
370
378
379
394
399
399
423
436
445
446
461
465
465
488
503
511
512
527
532
532
729
732
733
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
14
14
14
15
16
18
19
19
19
20
20
21
21
21
21
21
21
21
21
22
22
23
23
23
23
23
23
28
30
31
31
32
34
35
35
35
36
37
37
37
37
38
38
39
39
39
39
41
41
41
42
42
42
45
47
48
48
55
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
60
61
67
69
71
71
72
72
73
74
76
76
76
76
77
77
77
77
77
77
78
78
78
79
86
87
88
89
89
90
91
92
92
92
92
92
92
93
93
94
94
94
94
94
94
99
103
105
106
106
107
108
108
108
109
109
110
110
110
110
112
112
112
113
113
113
114
114
114
114
114
116
118
119
122
123
126
127
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
133
134
134
138
141
143
143
143
144
147
148
151
151
152
152
158
160
161
167
171
173
174
177
178
180
181
181
181
182
185
185
185
185
187
189
190
190
192
200
201
202
202
205
209
209
213
216
217
217
218
218
219
219
222
222
223
223
229
231
232
232
240
247
252
255
256
256
256
256
256
260
260
260
260
271
276
276
289
294
305
306
308
314
315
329
333
333
356
371
379
380
395
400
400
424
437
446
447
462
466
466
489
504
512
513
528
533
533
730
733
734
1
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
11
11
13
13
13
13
13
13
13
13
13
13
14
17
19
19
19
19
20
20
21
21
21
21
23
23
23
23
23
23
24
24
24
24
24
24
28
28
29
31
31
32
33
33
35
36
36
36
36
36
37
37
37
38
38
39
39
39
40
40
40
40
40
42
42
43
43
45
48
49
49
57
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
61
68
72
72
73
73
74
75
76
77
77
77
77
78
78
78
78
78
78
79
79
80
86
86
88
89
89
90
90
90
91
92
92
92
94
94
94
94
94
94
95
95
95
95
95
95
100
103
106
107
107
107
108
108
108
109
110
110
110
111
111
111
111
111
113
113
114
114
115
115
115
115
115
115
116
117
119
123
124
129
130
130
130
130
130
130
130
130
130
130
130
132
134
139
141
141
142
144
144
144
144
148
149
152
152
153
153
158
161
162
168
170
171
172
174
178
179
179
181
182
182
182
182
186
186
186
186
190
191
191
191
193
199
201
202
202
203
206
210
210
214
216
218
218
219
219
220
220
223
223
224
224
228
229
230
232
233
248
253
256
257
257
257
257
257
261
261
261
261
272
277
277
290
295
306
306
308
315
316
330
334
334
357
372
380
381
396
401
401
425
438
447
448
463
467
467
490
505
513
514
529
534
534
731
734
735
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
12
12
12
12
12
12
12
12
14
15
15
18
19
19
20
20
20
21
21
22
24
24
24
25
25
25
25
25
25
29
29
31
32
33
36
36
36
37
37
37
37
38
38
38
39
39
40
40
41
41
41
41
41
41
46
48
50
50
55
55
57
58
59
59
59
59
60
60
60
60
60
60
60
69
69
69
73
73
74
74
74
75
76
76
77
77
78
78
78
78
79
79
79
81
86
86
88
89
90
90
91
92
93
95
95
96
96
96
96
96
96
101
104
106
107
107
108
108
109
109
109
110
111
111
112
112
112
112
112
112
115
116
116
116
116
116
116
117
117
124
125
126
126
127
127
130
131
131
131
131
131
131
132
133
137
140
142
142
144
145
145
145
149
150
153
153
154
154
159
161
163
169
170
171
172
172
179
182
182
182
183
183
183
183
187
187
187
187
187
191
192
192
194
199
201
202
203
207
211
211
215
217
219
219
219
220
221
221
224
224
225
225
228
229
230
230
234
240
240
249
254
257
258
258
258
258
258
262
262
262
262
273
278
278
291
296
307
308
316
317
331
335
335
358
373
381
382
397
402
402
426
439
448
449
464
468
468
491
506
514
515
530
535
535
732
735
736
1
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
13
13
13
13
13
13
13
13
13
13
13
13
19
19
20
20
20
21
21
21
21
21
21
21
22
22
22
22
25
25
30
32
33
34
37
38
38
38
38
39
39
39
39
40
42
42
42
42
42
43
48
49
51
56
56
57
57
57
59
60
60
60
60
61
67
70
70
70
74
74
75
75
76
78
78
79
79
79
79
79
80
80
80
89
90
91
91
91
92
92
92
92
92
93
93
93
96
96
97
102
106
107
109
110
110
110
113
113
113
113
113
114
117
117
117
117
117
117
118
125
125
126
127
127
128
128
128
128
128
131
131
132
134
141
143
145
146
146
146
150
151
152
154
154
155
155
161
162
170
172
173
180
180
183
183
183
184
184
184
184
188
188
188
188
191
192
193
193
202
203
208
210
212
212
216
219
220
220
220
221
222
225
225
226
226
230
231
235
238
241
241
250
255
258
259
259
259
259
259
263
263
263
263
274
279
279
292
297
308
317
318
332
336
336
359
374
382
383
398
403
403
427
440
449
450
465
469
469
492
507
515
516
531
536
536
733
736
737
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
12
12
13
13
13
13
13
13
13
13
13
16
19
20
20
20
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
29
31
33
35
37
39
39
39
39
40
40
40
40
40
40
41
42
42
42
43
43
43
43
43
43
43
49
50
52
58
58
58
58
59
59
60
61
62
68
68
71
75
75
76
76
77
78
78
78
79
79
79
79
80
80
80
80
81
81
81
90
91
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
98
98
98
98
103
107
108
108
110
111
111
113
113
113
114
114
114
114
114
114
114
118
118
118
118
118
118
126
126
126
127
129
129
129
129
130
130
130
132
133
135
142
142
144
146
147
147
151
152
153
153
153
153
155
155
156
156
162
163
171
173
181
181
181
184
185
185
185
185
189
189
189
189
192
193
194
194
203
209
211
211
211
211
213
213
217
220
221
221
221
222
223
226
226
227
227
231
236
239
239
251
256
259
260
260
260
260
260
264
264
264
264
275
280
280
298
309
318
319
333
337
337
360
375
383
384
399
404
404
428
441
450
451
466
470
470
493
508
516
517
532
537
537
734
737
738
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
13
13
13
13
15
17
21
21
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
29
30
31
31
36
38
38
40
40
40
40
40
41
41
41
41
42
43
43
44
44
44
44
44
44
49
50
51
53
59
59
59
60
60
60
60
60
60
60
60
61
62
63
72
76
76
76
77
77
77
78
79
79
79
80
80
81
81
81
81
81
82
82
82
89
94
95
95
95
95
95
95
95
95
95
95
95
99
99
99
104
107
108
109
109
109
111
111
112
114
114
115
115
115
115
115
115
119
119
119
119
119
119
127
128
130
130
130
131
131
131
131
131
131
131
131
131
134
136
142
143
143
144
144
148
148
152
153
154
154
154
156
156
157
157
162
163
164
172
174
182
185
186
186
186
186
190
190
190
190
192
194
194
195
195
202
210
212
212
212
214
214
218
220
221
222
222
222
223
224
227
227
228
228
232
237
252
257
260
261
261
261
261
261
265
265
265
265
276
281
281
299
310
319
320
334
338
338
361
376
384
385
400
405
405
429
442
451
452
467
471
471
494
509
517
518
533
538
538
735
738
739
1
1
1
1
1
1
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
13
20
20
22
22
22
24
24
24
25
25
25
25
25
25
25
30
31
32
32
37
40
41
41
41
41
41
41
41
42
42
43
45
45
45
45
51
52
54
59
59
61
61
61
61
61
61
61
62
63
64
70
73
77
77
77
77
78
78
78
78
79
82
82
82
82
82
83
83
83
90
90
91
91
95
96
96
96
96
96
96
99
105
109
110
111
112
112
112
113
113
116
116
116
116
117
119
120
120
120
120
120
120
128
128
129
130
132
132
132
132
132
132
135
135
137
143
144
144
145
145
149
149
153
154
154
157
157
158
158
164
165
172
173
174
175
183
183
186
187
187
187
187
191
191
191
191
195
195
196
196
203
203
211
212
215
215
219
222
223
223
223
224
225
228
228
229
229
230
232
233
238
241
253
258
261
262
262
262
262
262
266
266
266
266
277
282
282
300
311
320
321
335
339
339
362
377
385
386
401
406
406
430
443
452
453
468
472
472
495
510
518
519
534
539
539
736
739
740
1
1
1
1
1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
12
13
15
17
21
21
22
22
22
23
23
25
25
25
25
26
29
31
32
32
33
38
40
40
40
42
42
42
42
43
44
44
46
46
46
46
52
55
58
60
61
61
61
62
64
65
70
74
78
78
79
79
79
80
80
83
83
83
83
83
84
84
90
90
90
91
92
92
93
93
93
96
96
106
110
111
111
111
113
114
115
117
117
117
117
118
119
120
121
121
121
121
121
128
129
129
130
131
132
132
136
138
142
144
145
145
145
146
150
150
154
155
158
158
159
159
165
173
174
174
175
183
184
187
188
188
188
188
192
192
192
192
196
196
197
203
203
203
204
212
216
216
220
223
224
224
225
226
229
229
230
230
231
232
233
239
241
254
259
262
263
263
263
263
263
267
267
267
267
278
283
283
301
312
321
322
336
340
340
363
378
386
387
402
407
407
431
444
453
454
469
473
473
496
511
519
520
535
540
540
737
740
741
1
1
1
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
12
12
12
12
12
13
14
22
23
23
23
23
24
24
24
24
26
27
29
31
32
33
38
39
41
41
43
43
43
43
43
43
43
44
44
44
45
47
47
47
47
50
56
59
59
59
59
60
60
60
61
65
66
75
79
79
79
79
79
79
80
80
80
80
80
81
84
84
84
84
85
85
90
91
94
94
94
94
95
95
107
108
109
112
112
114
114
114
114
115
115
115
118
118
118
118
118
119
122
122
122
122
122
130
130
130
130
130
131
131
131
135
137
142
144
145
146
146
151
151
155
156
159
159
160
160
163
173
174
175
185
188
189
189
189
189
192
193
193
193
193
197
198
203
204
213
217
217
221
221
225
225
226
227
230
230
231
231
231
232
240
255
260
263
264
264
264
264
264
268
268
268
268
279
284
284
302
313
322
323
337
341
341
364
379
387
388
403
408
408
432
445
454
455
470
474
474
497
512
520
521
536
541
541
738
741
742
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
11
11
12
12
13
13
13
13
13
14
15
23
24
24
24
25
25
25
25
25
25
25
25
25
25
27
28
32
33
39
39
40
41
42
44
44
44
44
44
44
45
45
46
48
48
48
48
49
50
51
57
60
60
60
61
61
61
61
61
61
61
61
66
67
76
77
78
79
80
80
80
80
80
81
81
81
81
81
82
85
85
85
85
86
86
95
95
95
96
96
96
96
96
96
96
96
107
108
108
109
110
110
112
113
115
115
115
116
116
119
119
119
119
123
123
123
123
123
131
131
131
131
132
132
132
132
132
132
132
132
132
136
138
145
146
147
152
152
156
157
160
160
161
161
162
163
164
176
186
189
190
190
190
190
192
193
194
194
194
194
194
198
199
214
218
218
220
221
222
222
226
226
227
228
231
231
232
232
241
256
261
264
265
265
265
265
265
269
269
269
269
280
285
285
303
314
323
324
338
342
342
365
380
388
389
404
409
409
433
446
455
456
471
475
475
498
513
521
522
537
542
542
739
743
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
11
11
11
12
12
13
13
14
14
14
14
15
16
23
24
25
26
26
26
26
26
26
26
26
29
33
41
41
42
42
43
43
45
45
45
45
47
49
49
49
49
49
51
52
58
60
62
62
62
62
62
62
67
68
77
78
78
79
79
80
81
81
81
82
82
82
83
86
86
86
86
87
87
95
97
97
97
97
97
97
107
109
109
110
112
113
113
114
114
116
120
120
120
120
124
124
124
124
124
131
132
133
133
133
133
133
133
133
136
138
139
146
148
153
157
158
161
161
162
162
162
164
165
177
187
190
191
191
191
191
193
194
195
195
195
195
195
199
200
215
219
219
220
222
223
223
227
227
228
229
232
232
233
233
242
257
262
265
266
266
266
266
266
270
270
270
270
281
286
304
306
315
324
325
339
343
343
366
381
389
390
405
410
434
447
456
457
472
476
476
499
514
522
523
538
543
740
744
1
1
1
1
1
1
2
2
2
2
4
4
4
4
5
5
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
12
13
13
13
14
14
15
15
16
17
23
26
26
26
26
26
26
26
27
27
30
32
41
41
41
41
41
42
44
45
46
46
46
46
48
50
50
50
50
52
53
59
59
62
62
62
62
62
62
62
68
68
69
78
80
81
82
82
82
83
83
83
84
87
87
87
88
88
90
94
97
97
97
97
97
97
99
99
110
110
111
112
112
112
115
116
117
120
121
121
121
121
125
125
125
125
125
126
130
133
133
133
133
133
133
133
134
139
140
145
149
154
154
154
158
159
162
162
163
163
165
166
175
178
181
188
191
192
192
192
192
195
196
196
196
196
196
200
201
203
212
212
216
220
223
224
224
228
228
229
230
233
233
233
234
234
239
243
258
263
266
267
267
267
267
267
271
271
271
271
282
287
305
307
316
325
326
340
344
367
382
390
391
406
411
435
448
457
458
473
477
500
515
523
524
539
544
741
745
2
2
2
2
3
3
3
3
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
13
14
14
15
15
15
15
16
16
17
18
24
24
24
24
27
27
27
27
27
28
31
33
33
39
40
42
42
42
42
43
44
44
44
45
45
45
47
47
47
47
49
51
51
51
51
53
60
60
60
60
60
60
62
63
63
63
63
63
69
69
70
70
70
79
80
80
80
81
81
81
83
83
83
84
84
85
88
88
88
89
89
91
91
95
95
95
95
98
98
98
98
98
100
100
110
111
111
113
113
115
115
115
116
116
116
118
118
120
121
122
122
122
122
126
126
126
126
126
127
128
128
131
131
131
131
134
134
134
134
134
135
140
146
146
150
153
155
155
155
159
160
163
163
164
164
166
173
175
176
179
182
183
183
189
192
193
193
193
193
196
197
197
197
197
201
202
204
204
211
213
213
217
221
224
225
229
229
230
231
231
233
234
234
234
235
235
240
241
241
244
259
264
267
268
268
268
268
268
272
272
272
272
283
288
306
308
308
317
326
327
341
345
368
383
391
392
407
412
436
449
458
459
474
478
501
516
524
525
540
545
742
746
1
1
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
10
10
11
11
12
15
15
16
16
16
16
16
17
18
19
23
25
25
25
25
25
27
27
27
27
28
28
29
32
33
33
33
34
40
40
41
42
42
43
44
45
45
46
46
48
48
48
48
50
52
52
61
61
61
61
61
61
61
62
63
63
63
63
63
64
64
70
71
71
71
71
71
80
81
81
82
82
84
84
85
85
86
89
89
90
91
91
91
92
96
96
96
96
96
98
98
98
98
99
99
99
100
100
101
111
111
112
116
116
117
117
119
119
120
121
123
123
123
123
127
127
127
129
129
129
129
132
132
132
132
132
134
134
134
134
135
135
135
136
136
146
146
146
147
151
154
155
155
156
156
160
161
164
165
174
175
176
180
184
184
184
184
190
193
194
194
194
194
198
198
202
203
204
204
204
205
212
213
213
214
218
222
226
230
230
231
232
232
233
234
235
236
242
242
242
242
245
260
265
268
269
269
269
269
269
273
273
284
289
307
309
309
309
309
318
327
328
342
346
369
384
392
393
408
413
437
450
459
460
475
479
502
517
525
526
541
546
741
743
747
2
2
2
2
2
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
8
8
8
8
8
8
8
9
10
10
10
10
11
11
11
11
12
12
12
13
16
16
16
16
17
17
17
18
19
20
23
24
25
25
25
25
26
26
27
27
27
27
27
28
28
29
29
30
33
33
34
42
42
42
42
42
42
43
43
44
45
45
45
45
45
46
46
46
46
46
46
47
49
49
49
49
51
53
53
61
61
61
61
62
62
62
62
63
63
63
63
63
64
64
65
65
71
71
71
72
72
72
78
79
81
81
81
81
81
82
82
82
82
82
83
85
85
86
86
87
90
90
91
91
92
96
96
96
97
97
98
98
98
98
98
99
99
100
100
100
100
101
102
113
113
113
113
113
114
116
116
116
116
117
117
117
117
117
117
118
119
120
120
124
124
124
124
128
128
128
129
129
130
130
132
132
132
133
133
134
134
134
134
134
135
135
136
136
136
136
137
137
138
146
147
152
155
155
156
157
157
161
162
165
166
174
175
181
184
184
185
185
191
194
195
195
195
195
199
199
203
204
204
205
213
213
214
215
219
223
227
231
231
232
232
233
233
236
237
242
242
243
243
246
261
266
269
270
270
270
270
270
274
274
285
290
308
309
309
310
310
319
328
329
343
347
370
385
393
394
409
414
438
451
460
461
476
480
503
518
526
527
542
547
741
742
744
748
2
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
9
11
11
12
12
13
13
13
14
14
17
17
17
18
18
18
19
20
21
24
25
26
26
26
26
26
26
27
27
27
28
28
28
29
29
31
34
42
43
43
43
43
44
44
45
46
46
46
46
46
47
47
47
47
48
50
50
50
50
52
53
54
54
62
62
62
62
62
63
63
63
63
64
64
64
65
65
72
72
73
73
73
79
80
82
82
82
82
83
83
83
83
84
86
86
87
87
88
91
91
92
97
97
97
97
97
98
98
98
99
99
99
100
100
101
102
111
113
114
114
114
114
115
116
117
117
117
117
118
118
118
118
119
121
125
125
125
125
129
129
129
130
131
131
133
133
133
133
133
134
134
134
135
135
135
136
136
137
137
138
138
139
153
156
157
158
162
163
166
166
167
182
185
186
186
192
195
196
196
196
196
196
200
200
204
205
214
215
220
224
224
228
232
232
233
234
237
238
243
244
244
247
262
267
270
271
271
271
271
271
275
275
286
291
309
310
311
311
320
329
330
344
348
371
386
394
395
410
415
439
452
461
462
477
481
504
519
527
528
543
548
743
745
749
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
7
7
7
7
7
10
11
12
12
12
13
13
14
14
14
16
18
18
18
19
20
21
22
24
26
26
26
26
27
27
27
27
27
27
28
28
28
29
29
29
30
31
32
35
40
43
43
43
43
43
44
44
45
45
46
46
47
47
47
47
48
48
48
51
51
51
53
53
54
55
55
60
62
62
62
63
63
63
63
64
64
64
65
65
65
71
73
73
74
81
82
82
83
83
83
83
83
84
84
84
86
86
87
88
88
89
89
89
92
92
93
95
97
97
97
98
98
98
98
99
99
100
100
100
102
111
111
112
114
114
114
114
114
115
115
116
116
117
117
118
118
118
119
119
119
122
126
126
126
129
130
130
130
131
131
133
133
133
134
134
134
134
135
135
136
136
136
138
139
139
140
152
152
154
156
156
157
159
163
164
166
167
167
168
183
184
186
193
196
196
197
197
197
197
201
201
205
206
215
219
219
221
222
222
224
225
225
229
233
234
235
238
239
242
244
248
263
268
271
272
272
272
272
276
276
285
285
287
288
288
292
309
310
311
321
330
331
343
343
345
346
346
349
372
387
395
396
409
409
411
413
413
416
440
453
462
463
476
476
478
479
479
482
505
520
528
529
542
542
544
549
744
746
750
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
11
11
12
12
12
12
12
12
12
12
13
13
13
13
16
17
19
19
20
21
22
23
25
26
27
27
27
27
27
28
28
28
29
29
30
32
33
36
41
42
43
44
44
44
44
45
45
46
47
48
48
49
52
52
52
54
54
56
56
61
62
63
63
63
63
64
64
64
65
65
66
71
72
74
75
81
81
82
82
83
84
84
84
87
88
89
89
90
90
93
93
94
96
97
98
98
98
98
99
99
99
100
100
101
112
112
114
115
115
115
115
116
116
116
117
118
119
120
123
127
127
127
129
130
131
131
131
132
133
134
134
134
134
135
135
135
136
137
139
140
140
153
155
155
157
160
164
165
167
168
169
184
184
185
194
197
197
198
198
198
202
202
206
207
213
220
222
223
225
226
230
234
235
236
239
240
242
243
249
264
269
272
273
273
273
273
277
277
286
288
289
293
307
309
310
311
322
331
332
344
346
347
350
373
388
396
397
410
412
414
417
441
454
463
464
477
479
480
483
506
521
529
530
543
545
550
745
747
751
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
4
4
4
4
4
5
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
9
9
11
11
11
11
12
12
12
12
12
12
12
13
14
14
15
16
16
17
18
18
20
20
21
22
23
24
26
27
27
28
28
28
29
30
30
31
33
34
37
42
42
43
43
45
45
45
45
47
48
49
49
50
50
50
51
51
51
51
53
53
53
55
57
57
62
63
63
64
64
64
65
66
66
67
71
73
75
76
80
81
82
83
84
85
85
86
86
88
88
88
89
89
89
90
90
91
91
94
94
95
97
98
98
99
99
99
100
100
100
101
101
102
114
116
116
116
116
117
118
119
120
121
124
125
125
126
126
126
126
128
128
128
129
131
132
132
132
133
134
134
135
135
135
136
137
138
140
141
154
155
155
156
156
158
161
163
163
164
164
165
166
169
170
184
185
186
195
196
196
197
197
197
197
198
199
199
199
203
203
207
208
213
213
214
221
223
224
227
231
232
232
234
234
235
235
235
236
237
240
241
242
244
250
265
270
271
271
272
272
272
272
273
274
274
274
274
278
278
287
289
290
294
309
311
312
323
332
333
345
347
348
351
374
389
397
398
411
413
415
418
442
455
464
465
478
480
481
484
507
522
530
531
544
546
551
746
748
752
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
10
10
12
13
13
13
13
14
14
15
15
16
16
17
18
19
19
23
24
25
25
26
26
28
29
30
31
31
32
34
34
34
34
38
41
41
41
42
43
43
43
44
44
44
46
48
48
49
49
50
50
51
51
52
52
54
56
58
58
61
62
62
63
63
63
64
65
66
67
67
68
69
69
71
72
73
74
77
79
81
83
84
84
85
85
86
86
87
89
89
90
90
92
92
92
92
95
95
96
96
97
97
99
99
99
100
100
101
101
102
102
102
103
112
114
114
115
117
118
119
119
120
120
121
121
121
121
122
125
126
127
127
127
127
129
129
130
130
132
132
133
133
133
133
133
135
136
137
138
139
142
147
147
147
154
154
155
155
156
157
157
159
162
164
165
170
171
176
176
176
182
182
184
185
186
186
187
196
197
198
198
199
200
204
204
205
205
205
209
212
212
213
214
215
215
222
225
228
232
233
234
234
234
235
236
236
240
240
241
242
242
243
245
251
266
271
272
273
273
275
275
279
279
288
291
295
307
309
310
312
313
324
334
346
349
352
375
390
399
412
416
419
443
456
466
479
482
485
508
523
532
545
552
747
753
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
10
10
10
10
10
11
11
11
12
13
14
14
14
15
15
16
16
16
16
18
19
19
19
20
20
24
25
26
26
26
26
26
27
27
27
27
27
27
27
27
29
30
30
30
31
32
32
33
33
34
35
35
35
39
42
42
42
42
43
43
44
44
44
45
45
45
45
45
45
46
46
46
47
49
49
50
50
51
51
52
52
53
53
54
55
57
59
59
61
62
62
62
62
63
63
63
63
63
63
63
63
64
64
65
66
66
66
67
68
68
69
70
71
71
73
75
75
75
78
80
80
81
81
81
82
82
84
84
85
85
86
86
87
87
88
90
90
91
91
91
92
93
93
93
96
96
97
97
97
97
97
98
98
98
98
98
98
98
100
100
100
100
101
101
101
102
102
103
103
103
103
104
112
113
114
114
115
115
116
116
116
117
117
117
118
119
119
120
120
121
121
121
122
122
122
123
126
127
128
128
128
129
129
130
131
132
132
133
133
133
133
133
134
134
134
134
134
134
134
134
134
134
136
137
137
137
138
139
140
140
143
146
147
148
148
155
155
155
156
157
158
158
158
160
163
165
166
167
171
172
174
176
177
177
183
184
184
186
187
188
188
188
197
197
198
199
199
200
201
204
205
205
205
206
206
210
213
213
213
215
216
216
216
223
225
226
229
232
233
234
234
235
235
236
237
237
241
242
242
242
243
244
246
252
267
272
273
274
274
276
276
280
280
289
292
296
308
309
309
311
313
314
325
335
347
350
353
376
391
400
413
417
420
444
457
467
480
483
486
509
524
533
546
553
748
754
2
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
8
9
9
11
12
12
13
13
14
14
15
15
16
16
17
17
17
19
20
20
21
21
25
25
26
26
26
27
27
27
27
27
27
28
28
28
28
29
30
30
30
31
31
31
33
33
34
34
36
36
40
41
42
43
43
44
44
45
45
45
46
46
46
47
47
48
48
49
50
50
51
51
53
53
54
54
54
55
56
58
60
60
61
62
62
62
63
63
63
63
64
64
64
65
65
66
66
66
67
67
67
69
69
70
72
74
76
76
79
79
80
82
83
84
84
85
85
85
86
86
87
87
88
89
91
91
92
92
92
94
94
96
97
97
97
97
98
98
98
98
98
99
99
99
100
101
101
101
101
102
102
102
103
103
104
104
104
105
112
112
113
113
114
115
115
116
117
118
118
119
119
120
120
120
121
121
122
122
123
124
128
129
129
130
131
132
132
133
133
133
134
134
134
134
134
135
135
135
135
135
135
136
137
137
137
138
138
138
140
140
141
141
144
147
149
156
157
158
158
159
159
161
164
166
167
167
168
172
173
175
178
185
187
188
189
189
197
198
199
200
200
201
202
205
206
206
207
211
214
216
216
217
217
224
225
226
227
230
233
235
236
237
238
238
243
243
244
245
247
253
268
274
275
275
277
277
281
281
290
293
297
310
312
314
315
326
336
348
351
354
377
392
401
414
418
421
445
458
468
481
484
487
510
525
534
547
554
749
755
4
4
4
4
4
4
5
5
5
5
10
13
13
14
15
15
16
16
17
17
18
18
18
21
21
22
22
26
27
28
28
28
28
28
29
29
30
30
30
31
31
32
32
32
34
34
35
37
37
41
44
44
45
45
46
47
47
47
48
48
48
48
49
49
50
51
52
52
52
54
54
55
55
55
57
59
61
61
64
64
64
65
65
66
66
66
66
67
67
68
68
68
70
70
71
73
74
77
77
78
80
83
84
85
86
86
87
87
88
88
89
90
92
92
93
93
95
95
98
98
99
99
99
99
100
100
101
101
101
102
102
102
103
103
103
104
105
105
105
106
106
113
115
116
116
118
119
119
119
120
120
121
121
122
123
123
123
124
125
129
130
130
131
132
134
135
135
135
135
136
136
136
136
136
137
137
137
138
138
139
139
139
141
141
142
145
150
157
158
159
160
160
161
162
165
167
168
168
173
174
179
186
187
189
190
190
191
198
200
201
201
202
203
207
207
208
212
215
217
218
218
219
225
226
228
231
236
237
238
239
239
244
244
245
248
254
269
275
276
276
278
278
282
282
291
294
298
311
315
316
327
337
349
352
355
378
393
402
415
419
422
446
459
469
482
485
488
511
526
535
548
555
750
756
11
17
18
19
19
22
23
27
28
29
31
31
31
33
35
35
36
38
42
49
49
49
50
53
53
55
55
56
56
58
60
62
62
67
67
67
69
71
71
72
79
81
88
89
90
91
93
93
94
94
96
99
99
100
102
102
102
104
106
107
107
120
120
121
122
124
124
126
130
131
131
133
137
137
137
138
138
138
140
142
143
146
159
162
163
166
168
169
174
175
190
192
201
202
202
203
204
208
208
213
220
226
229
232
237
239
240
240
245
246
255
270
276
277
277
279
279
283
283
292
295
299
317
328
338
350
353
356
379
394
403
416
420
423
447
460
470
483
486
489
512
527
536
549
556
751
757
