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
32
32
33
80
82
84
2
4
25
25
25
26
31
33
34
81
83
85
3
24
24
24
25
25
26
26
32
32
34
34
35
35
84
86
24
25
25
25
26
27
27
31
32
34
35
35
35
35
85
85
87
87
24
25
25
26
28
28
28
28
31
32
32
32
34
35
78
82
86
86
88
88
26
26
26
27
32
35
36
79
83
87
87
89
89
1
26
27
27
36
37
80
84
88
88
90
90
24
26
26
27
27
34
34
37
38
81
85
91
91
1
25
25
27
27
28
31
34
35
35
38
86
92
92
1
26
27
27
28
29
32
35
87
93
93
1
26
26
26
27
27
29
37
37
88
94
94
1
27
27
27
27
27
27
34
34
37
38
38
89
95
95
27
28
28
28
35
35
37
38
90
96
96
1
1
27
27
29
29
29
38
91
97
97
1
1
1
26
26
27
27
27
30
37
37
92
98
98
2
27
27
27
27
27
27
34
34
37
38
38
93
99
99
1
3
27
27
27
28
28
28
35
35
37
38
94
100
100
2
4
26
26
27
29
29
29
37
37
38
95
101
101
3
27
27
27
27
27
27
27
27
27
27
30
34
34
37
38
38
38
38
96
102
102
1
27
27
27
27
28
28
28
28
35
35
35
35
37
37
37
37
37
38
97
103
103
103
103
2
26
28
29
29
29
29
29
29
38
38
38
38
38
98
104
104
104
104
1
3
27
29
30
30
37
39
39
99
105
105
105
105
2
4
27
27
27
28
30
37
38
40
40
100
106
106
106
106
3
28
28
29
29
29
29
29
30
30
30
34
34
38
41
41
101
107
107
29
29
30
30
30
30
30
31
35
35
40
40
40
40
40
102
108
108
1
27
30
30
31
31
31
32
40
41
41
41
41
41
103
109
109
1
2
31
32
32
41
42
42
104
110
110
2
3
28
32
32
32
41
41
43
43
105
111
111
3
4
28
29
32
32
32
33
34
35
35
43
44
44
44
44
106
108
108
112
28
28
28
31
32
32
32
32
33
34
34
35
35
43
44
44
107
107
109
109
113
113
1
32
33
33
34
34
34
35
35
35
43
44
108
108
110
110
114
114
1
2
28
34
34
35
43
44
45
109
109
111
111
115
115
2
3
29
32
33
34
34
34
43
44
45
46
110
110
112
116
116
3
4
33
33
34
34
34
34
35
35
43
44
46
47
113
117
117
1
34
34
34
34
34
34
35
36
44
46
46
46
47
114
118
118
2
33
34
34
34
35
35
36
37
46
46
46
47
47
47
115
119
119
1
3
35
36
36
44
47
47
47
47
48
116
120
120
2
4
34
36
36
36
37
44
47
48
49
49
117
118
118
121
121
3
35
36
36
36
36
37
37
43
49
50
50
50
50
118
119
119
122
1
34
34
34
34
36
36
36
37
37
38
44
44
50
50
119
119
120
120
123
123
2
36
37
38
38
38
39
39
43
43
43
49
49
120
120
121
121
124
124
1
3
34
36
37
39
44
44
44
49
50
50
121
121
122
125
125
2
4
38
38
38
39
39
49
49
50
51
51
122
122
123
126
126
3
37
37
38
38
38
39
39
39
40
50
50
52
52
52
124
127
127
38
38
39
39
39
39
39
39
40
41
50
50
52
52
52
53
53
53
125
128
128
37
40
40
40
41
42
52
52
53
53
53
53
53
126
128
128
129
129
1
41
41
41
41
42
53
53
54
127
129
129
130
130
1
41
41
41
41
49
54
55
128
130
130
131
131
1
38
41
42
42
50
55
55
56
129
131
131
132
1
38
41
41
41
43
43
49
56
56
130
132
133
1
2
38
41
41
41
42
44
44
49
50
55
55
131
133
134
2
3
38
41
42
42
43
50
55
55
56
56
132
134
135
3
4
38
41
41
43
43
44
49
56
56
133
135
136
38
38
38
41
41
42
44
44
49
50
55
55
134
136
137
38
41
41
42
43
49
50
50
55
56
56
56
135
137
138
1
1
42
43
44
50
56
56
56
57
133
136
136
138
139
1
42
42
43
43
43
43
44
44
57
58
58
134
137
139
140
1
2
43
43
43
44
55
58
59
59
135
138
140
141
1
3
43
43
44
45
55
56
59
136
139
141
142
2
4
42
42
43
43
43
44
45
46
56
58
58
58
140
142
143
3
42
43
43
43
43
43
44
45
55
58
59
59
59
141
143
144
42
42
42
43
43
43
44
44
45
46
55
55
56
58
59
142
144
145
1
42
43
44
44
45
45
46
55
56
56
58
58
59
59
59
143
145
146
1
2
45
45
46
56
56
59
59
59
60
144
144
145
146
147
2
3
45
45
46
46
46
46
58
60
61
145
145
146
147
148
3
4
44
44
45
46
46
47
59
61
61
62
146
146
147
149
1
44
44
44
45
45
45
45
47
48
58
58
61
62
62
147
147
148
150
2
44
46
46
46
46
48
49
58
59
59
59
61
61
62
62
148
149
151
1
3
47
47
47
59
62
62
62
62
63
147
149
150
150
152
2
4
47
47
47
48
48
49
61
63
64
148
150
151
151
153
3
47
47
47
47
47
47
47
48
48
62
64
64
65
149
152
152
154
47
47
47
47
48
49
49
61
61
64
64
64
65
65
150
153
153
155
1
47
47
48
48
49
50
50
61
62
62
62
65
65
65
65
154
154
156
1
2
49
49
50
62
65
65
66
66
153
155
155
155
157
2
3
48
49
50
50
50
50
67
67
154
156
156
156
158
3
4
48
49
49
50
50
50
64
67
68
68
155
157
157
159
1
48
48
48
50
50
50
51
64
65
67
67
68
156
158
158
160
2
48
49
49
50
50
51
51
52
64
64
65
67
68
68
159
159
161
1
3
51
51
52
65
65
68
69
160
160
162
2
4
50
52
52
52
52
68
68
69
70
70
161
161
163
3
51
52
52
52
53
65
67
68
70
71
71
71
71
158
160
162
164
50
50
50
51
52
52
52
53
53
54
68
68
71
71
159
161
163
163
165
165
50
52
53
54
54
54
55
55
67
70
160
162
164
164
166
166
52
52
55
67
67
68
70
71
161
163
165
165
167
167
1
50
53
54
55
68
68
70
70
71
72
164
166
166
168
168
1
53
53
54
54
55
56
70
71
71
72
73
165
169
169
1
53
55
55
57
71
73
74
166
170
170
1
54
55
55
56
58
73
74
167
171
171
1
53
54
54
55
55
55
55
57
70
70
73
74
168
172
172
53
53
55
56
56
71
71
73
73
74
169
173
173
1
56
57
57
74
74
170
174
174
1
1
54
54
55
57
58
73
171
175
175
1
54
54
54
55
55
55
55
55
70
70
73
74
172
176
176
1
2
53
53
55
56
56
71
71
73
73
74
173
177
177
1
3
54
55
56
57
57
73
74
74
174
178
178
2
4
54
54
55
55
55
55
57
58
70
70
73
74
175
179
179
3
53
53
54
54
55
55
56
56
71
71
73
73
74
176
180
180
54
54
54
55
55
55
55
56
57
57
73
73
73
74
74
177
181
181
1
53
55
55
56
56
57
58
71
71
73
73
73
74
74
74
178
182
182
1
2
56
57
57
74
74
74
74
74
75
179
181
181
183
183
2
3
57
57
57
57
57
58
70
75
76
180
182
182
184
184
3
4
54
54
57
57
58
58
71
76
76
77
181
183
183
185
1
54
54
54
57
57
57
57
59
59
70
70
76
77
77
182
184
184
186
2
54
57
58
58
58
60
60
70
71
71
76
76
77
183
185
187
1
3
59
59
59
71
77
77
78
184
186
188
2
4
59
59
59
60
71
76
77
78
79
185
187
189
3
58
58
58
59
59
60
60
77
77
77
77
79
79
80
80
182
186
188
190
58
59
59
59
60
60
61
61
76
79
80
80
80
80
183
187
189
189
191
191
58
59
59
60
62
62
62
62
76
77
79
80
184
188
190
190
192
192
58
60
61
77
79
80
81
185
189
191
191
193
193
1
59
59
60
61
61
76
80
81
82
190
192
192
194
194
60
60
60
61
61
77
79
82
83
191
195
195
1
1
61
61
61
62
79
80
83
192
196
196
1
61
61
61
61
62
63
80
82
193
197
197
60
60
60
61
61
62
63
82
82
82
83
194
198
198
1
61
61
61
61
63
79
79
83
83
83
195
199
199
1
62
62
64
80
80
196
200
200
1
1
61
61
61
61
63
63
82
197
201
201
1
1
60
60
61
61
61
61
62
82
82
82
83
198
202
202
2
61
61
61
61
63
79
79
83
83
83
199
203
203
1
3
61
61
61
62
62
64
80
80
82
200
204
204
2
4
60
60
61
61
62
63
63
82
82
82
83
201
205
205
3
61
61
61
61
61
61
61
61
61
63
79
79
83
83
83
202
206
206
61
61
61
61
62
62
62
64
80
80
82
82
82
82
82
203
207
207
1
60
61
62
62
63
63
63
82
83
83
83
83
83
83
83
204
208
208
1
2
63
63
64
80
80
83
84
84
205
207
207
209
209
2
3
61
63
63
63
64
64
85
85
206
208
208
210
210
3
4
61
62
63
64
64
64
79
85
86
86
207
209
209
211
1
61
61
61
64
64
64
65
79
80
85
85
86
208
210
210
212
2
61
62
63
64
64
65
65
66
79
79
80
85
86
86
209
211
213
1
3
65
65
66
80
80
86
87
210
212
214
2
4
64
66
66
66
66
86
86
87
88
88
211
213
215
3
65
66
66
66
67
80
85
86
88
89
89
89
89
208
212
214
216
64
64
64
65
66
66
66
67
67
68
86
86
89
89
209
213
215
215
217
217
64
66
67
68
68
68
69
69
85
88
210
214
216
216
218
218
66
66
69
85
85
86
88
89
211
215
217
217
219
219
1
64
67
68
69
86
86
88
88
89
90
216
218
218
220
220
1
67
67
68
68
69
70
88
89
89
90
91
217
221
221
1
67
69
69
71
89
91
92
218
222
222
1
68
69
69
70
72
91
92
219
223
223
1
67
68
68
69
69
69
69
71
88
88
91
92
220
224
224
67
67
69
70
70
89
89
91
91
92
221
225
225
1
70
71
71
92
92
222
226
226
1
1
68
68
69
71
72
91
223
227
227
1
68
68
68
69
69
69
69
69
88
88
91
92
224
228
228
1
2
67
67
69
70
70
89
89
91
91
92
225
229
229
1
3
68
69
70
71
71
91
92
92
226
230
230
2
4
68
68
69
69
69
69
71
72
88
88
91
92
227
231
231
3
67
67
68
68
69
69
70
70
89
89
91
91
92
228
232
232
68
68
68
69
69
69
69
70
71
71
91
91
91
92
92
229
233
233
1
67
69
69
70
70
71
72
89
89
91
91
91
92
92
92
230
234
234
1
2
70
71
71
92
92
92
92
92
93
231
233
233
235
235
2
3
71
71
71
71
71
72
88
93
94
232
234
234
236
236
3
4
68
68
71
71
72
72
89
94
94
95
233
235
235
237
1
68
68
68
71
71
71
71
73
73
88
88
94
95
95
234
236
236
238
2
68
71
72
72
72
74
74
88
89
89
94
94
95
235
237
239
1
3
73
73
73
89
95
95
96
236
238
240
2
4
73
73
73
74
94
96
97
237
239
241
3
72
72
72
73
73
74
74
95
95
97
97
98
98
240
242
72
73
73
73
75
75
89
94
95
97
98
98
98
98
241
241
243
243
72
73
73
74
76
76
76
76
94
95
95
95
97
98
234
238
242
242
244
244
74
74
74
75
95
98
99
235
239
243
243
245
245
1
74
75
75
99
100
236
240
244
244
246
246
72
74
74
75
75
97
97
100
101
237
241
247
247
1
73
73
75
75
76
94
97
98
98
101
242
248
248
1
74
75
75
76
77
95
98
243
249
249
1
74
74
74
75
75
77
100
100
244
250
250
1
75
75
75
75
75
75
97
97
100
101
101
245
251
251
75
76
76
76
98
98
100
101
246
252
252
1
1
75
75
77
77
77
101
247
253
253
1
1
1
74
74
75
75
75
78
100
100
248
254
254
2
75
75
75
75
75
75
97
97
100
101
101
249
255
255
1
3
75
75
75
76
76
76
98
98
100
101
250
256
256
2
4
74
74
75
77
77
77
100
100
101
251
257
257
3
75
75
75
75
75
75
75
75
75
75
78
97
97
100
101
101
101
101
252
258
258
1
75
75
75
75
76
76
76
76
98
98
98
98
100
100
100
100
100
101
253
259
259
259
259
2
74
76
77
77
77
77
77
77
101
101
101
101
101
254
260
260
260
260
1
3
75
77
78
78
100
102
102
255
261
261
261
261
2
4
75
75
75
76
78
100
101
103
103
256
262
262
262
262
3
76
76
77
77
77
77
77
78
78
78
97
97
101
104
104
257
263
263
77
77
78
78
78
78
78
79
98
98
103
103
103
103
103
258
264
264
1
75
78
78
79
79
79
80
103
104
104
104
104
104
259
265
265
1
2
79
80
80
104
105
105
260
266
266
2
3
76
80
80
80
104
104
106
106
261
267
267
3
4
76
77
80
80
80
81
97
98
98
106
107
107
107
107
262
264
264
268
76
76
76
79
80
80
80
80
81
82
97
98
98
106
107
107
263
263
265
265
269
269
1
80
81
81
82
82
83
83
97
98
106
107
264
264
266
266
270
270
1
2
76
82
82
98
106
107
108
265
265
267
267
271
271
2
3
77
80
81
82
82
97
106
107
108
109
266
266
268
272
272
3
4
81
81
82
82
82
82
83
98
106
107
109
110
269
273
273
1
82
82
82
82
82
82
83
84
107
109
109
109
110
270
274
274
2
81
82
82
82
83
83
84
85
109
109
109
110
110
110
271
275
275
1
3
83
84
84
107
110
110
110
110
111
272
276
276
2
4
82
84
84
84
85
107
110
111
112
112
273
274
274
277
277
3
83
84
84
84
84
85
85
106
112
113
113
113
113
274
275
275
278
1
82
82
82
82
84
84
84
85
85
86
107
107
113
113
275
275
276
276
279
279
2
84
85
86
86
86
87
87
106
106
106
112
112
276
276
277
277
280
280
1
3
82
84
85
87
107
107
107
112
113
113
277
277
278
281
281
2
4
86
86
86
87
87
112
112
113
114
114
278
278
279
282
282
3
85
85
86
86
86
87
87
87
88
113
113
115
115
115
280
283
283
86
86
87
87
87
87
87
87
88
89
113
113
115
115
115
116
116
116
281
284
284
1
1
5
5
5
85
88
88
88
89
90
115
115
116
116
116
116
116
282
284
284
285
285
1
4
4
5
5
6
6
6
89
89
89
89
90
116
116
117
283
285
285
286
286
1
5
7
7
7
7
89
89
89
89
112
117
118
284
286
286
287
287
1
4
6
8
8
8
8
86
89
90
90
113
118
118
119
285
287
287
288
1
5
7
9
9
86
89
89
89
91
91
112
119
119
286
288
289
1
2
4
4
5
5
10
10
86
89
89
89
90
92
92
112
113
118
118
287
289
290
2
3
5
5
5
7
11
11
86
89
90
90
91
113
118
118
119
119
288
290
291
3
4
5
5
6
7
12
12
86
89
89
91
91
92
112
119
119
289
291
292
5
5
7
8
13
13
86
86
86
89
89
90
92
92
112
113
118
118
290
292
293
5
5
7
9
14
14
86
89
89
90
91
112
113
113
118
119
119
119
291
293
294
1
1
5
5
7
10
15
15
90
91
92
113
119
119
119
120
289
292
292
294
295
1
5
5
5
7
11
16
16
90
90
91
91
91
91
92
92
120
121
121
290
293
295
296
1
2
5
5
5
6
7
7
7
12
17
17
91
91
91
92
118
121
122
122
291
294
296
297
1
3
5
5
7
8
8
13
16
16
18
18
91
91
92
93
118
119
122
292
295
297
298
2
4
9
9
14
17
17
19
90
90
91
91
91
92
93
94
119
121
121
121
296
298
299
3
5
9
15
18
18
20
90
91
91
91
91
91
92
93
118
121
122
122
122
297
299
300
1
5
9
9
16
19
21
90
90
90
91
91
91
92
92
93
94
118
118
119
121
122
122
122
298
300
301
1
2
5
5
9
10
17
20
22
90
91
92
92
93
93
94
118
119
119
119
121
121
122
122
299
300
301
301
302
2
3
9
9
10
11
11
11
11
21
23
93
93
93
94
94
119
122
122
123
300
301
302
302
303
1
3
4
5
5
9
9
9
11
11
15
20
22
22
24
24
92
93
93
94
94
94
121
123
124
301
302
303
303
304
4
6
9
16
21
23
23
25
25
92
92
92
93
93
93
94
94
95
121
121
122
122
124
124
124
125
125
302
303
304
305
4
5
7
9
10
11
11
17
22
24
24
26
26
92
92
93
94
94
94
95
96
121
122
122
124
124
125
125
125
125
125
303
303
305
306
306
4
4
5
5
6
8
9
11
11
12
12
23
27
27
94
95
95
96
96
97
97
122
125
125
126
304
304
306
307
307
4
4
5
5
7
9
11
13
13
24
28
28
95
95
95
96
126
127
305
305
307
308
308
4
5
5
6
8
10
11
11
13
25
29
29
95
95
95
96
124
127
127
128
306
306
308
309
309
4
4
4
5
5
7
9
11
13
13
13
26
30
30
95
95
96
96
97
124
125
127
128
128
309
310
310
5
5
5
6
8
10
11
11
12
13
27
31
31
97
97
98
125
128
310
311
311
4
5
6
7
9
11
13
13
13
13
28
32
32
98
98
311
312
312
1
7
7
8
10
11
11
12
13
14
29
33
33
312
313
313
1
1
9
11
13
13
13
13
15
30
34
34
313
314
314
1
7
7
11
11
12
13
13
13
13
14
16
31
35
35
314
315
315
1
7
7
8
8
8
8
13
13
13
13
13
14
14
17
32
34
34
36
36
315
316
316
7
7
7
7
8
8
11
14
14
14
15
15
18
18
33
35
35
37
95
95
127
314
317
317
1
13
15
15
15
15
16
19
19
34
36
36
38
95
95
95
95
95
96
124
127
316
318
318
7
7
8
8
11
11
14
16
16
16
16
20
20
35
37
39
95
95
95
95
96
96
97
122
124
127
316
317
319
319
8
8
8
9
9
11
16
16
17
17
21
21
36
38
40
95
95
95
96
97
97
98
122
125
127
127
306
318
320
320
7
10
10
11
15
15
15
17
18
18
18
22
22
39
41
95
95
95
96
96
97
98
98
124
125
125
306
307
319
321
321
8
8
10
15
16
18
18
18
18
18
19
23
23
34
38
40
40
42
42
95
96
97
97
98
125
127
303
307
308
320
322
322
1
1
10
10
10
15
15
18
19
20
24
24
35
39
41
41
43
43
96
97
98
304
308
309
321
323
323
1
8
8
10
19
20
21
25
25
36
40
42
42
44
44
98
305
309
310
322
324
324
1
10
10
10
18
20
21
22
26
26
41
45
45
306
310
311
323
325
1
1
8
8
10
15
18
18
23
27
27
42
46
46
307
311
314
323
324
326
2
2
10
10
10
20
20
21
24
28
28
43
47
47
308
308
324
324
325
327
3
3
8
8
10
10
10
10
18
18
21
25
29
29
44
48
48
93
93
94
94
124
124
311
325
326
328
4
4
4
4
10
10
10
10
11
11
20
20
21
26
28
28
30
30
45
49
49
92
92
93
93
94
94
95
95
124
124
311
326
327
329
5
5
5
5
8
12
12
18
18
21
27
29
29
31
46
50
50
92
92
95
95
96
96
121
121
314
316
316
327
328
330
6
6
12
13
20
20
21
28
30
30
32
47
51
51
93
94
96
96
97
97
122
124
316
316
317
317
328
329
331
4
4
7
7
8
8
13
18
18
20
21
29
31
33
48
52
52
92
93
94
95
97
97
119
122
122
124
300
316
316
318
318
329
330
332
5
5
5
5
8
8
8
8
13
13
14
20
20
20
21
21
21
21
30
32
34
49
53
53
92
94
95
96
119
121
122
300
301
301
317
319
319
330
331
333
8
9
9
9
9
12
12
12
14
15
15
18
18
21
22
22
33
35
50
52
52
54
54
93
94
96
97
301
302
302
316
316
318
331
332
334
1
1
4
5
10
10
10
10
12
13
15
15
15
15
15
23
23
28
32
34
34
36
36
51
53
53
55
97
302
303
303
317
332
333
335
1
1
5
6
7
11
11
12
12
15
16
18
23
29
33
35
35
37
37
52
54
54
56
303
304
304
316
318
333
334
336
4
5
5
8
12
12
16
17
18
23
23
30
34
36
36
38
38
53
55
57
304
305
305
316
317
334
337
1
5
6
6
9
13
13
15
17
18
18
18
23
24
35
39
39
54
56
58
305
306
318
335
335
338
5
5
5
10
12
14
14
15
15
24
25
25
25
25
36
40
40
57
59
305
319
334
336
336
339
5
6
6
11
15
15
17
17
18
23
23
25
25
37
41
41
58
58
60
60
90
90
91
91
121
121
306
316
337
337
340
5
5
5
12
15
15
16
16
18
23
23
23
38
42
42
59
59
61
61
90
90
91
91
91
91
92
92
118
118
122
305
316
317
338
338
341
5
6
6
13
17
17
17
17
18
18
23
23
24
25
25
39
43
43
52
56
60
60
62
62
91
91
92
92
93
93
119
121
121
122
122
296
314
318
319
339
339
342
5
5
5
14
15
15
18
18
18
25
25
26
26
40
44
44
53
57
63
63
90
91
93
93
94
94
94
119
121
122
297
297
297
315
315
319
319
340
340
343
5
5
6
6
6
6
15
17
17
18
19
19
27
27
41
45
45
54
58
64
64
90
91
91
92
93
94
94
94
118
298
298
298
315
319
320
320
341
341
344
1
5
5
5
5
7
7
15
15
16
17
18
18
18
20
20
23
25
25
42
46
46
59
65
65
91
92
93
121
299
299
299
320
321
321
342
342
345
1
1
8
8
8
17
17
17
17
18
18
18
18
19
19
21
25
27
27
43
47
47
60
66
66
93
94
300
300
300
315
319
319
321
343
343
346
5
9
9
15
15
18
18
19
19
20
20
22
25
25
27
44
46
46
48
48
61
67
67
94
301
301
301
315
319
320
320
344
344
347
5
9
10
19
20
20
21
23
27
27
27
45
47
47
49
62
68
68
302
302
315
320
321
321
345
345
348
5
5
9
11
15
20
20
22
24
25
25
25
25
27
46
48
48
50
63
69
69
301
319
321
322
346
346
349
8
8
8
8
10
12
12
15
20
20
23
25
27
27
27
27
27
47
49
51
64
70
70
70
70
302
320
322
347
347
350
5
9
11
11
11
11
12
15
15
18
20
21
22
24
24
26
26
27
27
48
50
52
65
71
71
71
71
90
91
121
302
322
348
348
351
4
4
5
8
8
12
13
19
21
22
22
22
22
23
25
25
27
27
27
27
27
27
28
51
53
66
72
72
72
72
90
90
91
91
91
92
118
121
322
349
349
352
5
5
5
5
5
5
6
13
14
20
20
20
22
22
24
25
25
26
26
27
28
28
28
29
52
52
54
54
67
73
73
90
91
91
91
92
92
93
113
118
121
320
350
350
353
6
6
7
7
12
14
15
20
20
20
25
27
29
29
29
30
53
53
55
55
68
74
74
90
91
91
92
93
93
94
113
119
119
121
121
293
351
351
354
4
5
7
7
8
8
8
11
11
15
20
20
21
22
22
26
29
29
29
30
30
30
46
50
54
54
56
56
69
75
75
90
91
91
92
92
93
94
94
118
119
119
289
292
294
352
352
355
4
5
6
9
9
14
14
15
22
22
23
23
27
30
30
30
31
31
31
47
51
57
57
70
76
76
91
92
92
92
93
94
121
290
293
295
353
353
356
1
1
4
5
5
5
10
10
11
11
15
24
24
25
25
25
25
28
31
32
32
32
32
48
52
58
58
71
77
93
94
291
294
296
354
354
357
1
1
5
6
6
6
11
11
14
14
15
20
22
22
29
29
30
32
32
32
32
33
33
53
59
59
72
72
74
74
78
78
94
292
295
297
355
355
358
5
5
5
7
11
11
12
12
15
22
24
24
25
30
32
34
34
54
60
60
73
73
75
75
79
79
293
296
298
356
359
5
6
6
8
13
13
14
14
15
22
22
24
25
31
32
33
35
35
55
61
61
74
74
76
76
80
80
294
297
322
357
360
5
5
5
9
11
11
14
14
14
15
24
24
24
25
32
32
33
34
36
36
56
62
62
77
81
81
294
323
358
361
1
5
6
6
10
14
14
14
15
15
15
15
15
15
22
22
22
22
24
32
32
33
34
37
37
57
63
63
78
82
82
89
89
89
89
118
118
357
359
362
5
5
5
11
11
11
15
16
16
16
16
24
24
24
24
24
34
34
34
34
36
36
38
38
58
64
64
64
64
79
83
83
86
86
89
89
89
89
90
90
113
118
118
322
355
358
360
363
5
5
6
6
6
6
12
17
17
17
17
24
24
34
34
34
35
35
37
37
39
59
65
65
65
65
80
84
84
86
86
90
90
91
91
112
112
113
119
119
289
297
320
323
323
359
361
364
5
5
5
5
7
7
11
13
16
16
17
18
18
24
24
24
24
25
32
32
32
34
35
36
36
36
38
38
40
60
66
66
66
66
81
85
91
91
92
92
92
119
119
285
289
290
298
321
321
324
324
360
362
365
8
8
8
11
14
17
17
17
17
19
22
22
24
25
26
32
34
36
36
36
36
36
37
39
41
61
67
67
82
82
82
82
86
86
92
92
92
92
286
290
291
321
323
323
325
325
361
363
366
1
5
9
9
11
11
15
17
18
18
18
20
24
26
27
32
32
36
37
38
40
42
62
68
68
83
83
83
83
87
87
89
89
118
287
291
292
324
326
326
362
364
367
1
1
5
9
10
16
18
19
19
19
19
19
21
26
26
26
27
37
38
41
43
63
69
69
84
84
84
84
86
88
88
89
89
90
118
288
292
293
325
363
365
368
5
5
9
11
17
17
17
19
19
20
22
27
27
27
28
36
38
39
42
42
44
44
64
70
70
85
86
89
89
90
91
112
289
293
294
323
323
364
366
369
5
8
8
8
8
10
12
12
17
17
17
21
22
22
22
22
23
28
29
29
32
36
36
38
43
43
45
45
65
71
86
90
90
91
92
290
294
321
321
321
323
323
324
324
365
367
370
4
5
6
9
11
11
11
11
11
12
15
17
17
18
19
19
20
22
22
24
24
26
27
29
29
29
29
36
38
38
38
39
39
39
39
40
44
44
46
46
66
66
68
68
72
72
87
91
91
92
290
324
324
325
325
366
368
371
4
4
5
7
8
8
12
13
16
19
19
20
20
21
22
23
23
25
25
29
36
36
37
39
40
40
41
47
47
67
67
69
69
73
73
88
90
90
92
92
325
326
326
367
369
372
4
5
5
5
6
8
13
14
17
21
21
22
22
24
24
26
26
29
30
38
41
41
42
48
48
68
68
70
70
74
74
89
89
89
91
91
93
118
326
368
370
373
4
5
5
6
7
9
12
14
15
17
19
19
22
23
27
27
29
30
31
36
41
43
49
49
71
75
75
86
89
89
89
89
90
90
92
92
94
118
118
294
369
371
374
4
4
5
7
8
8
10
11
11
19
21
21
24
28
28
29
29
31
41
41
41
44
50
50
72
76
76
86
86
89
89
90
90
91
91
93
95
112
113
118
294
370
372
375
4
5
5
5
5
8
9
11
14
14
15
19
19
21
25
29
29
31
31
31
36
36
41
45
51
51
73
77
77
86
90
91
91
92
92
94
96
112
113
116
116
284
326
371
373
376
4
4
5
6
9
10
11
11
12
15
21
21
21
26
30
30
31
31
31
32
36
41
41
41
41
46
52
52
74
78
78
89
91
92
92
93
95
97
116
116
282
284
285
324
372
374
377
4
5
6
7
10
11
13
14
14
15
19
19
19
19
21
27
29
29
29
31
31
31
32
33
33
36
36
36
41
41
42
47
53
53
75
79
89
89
89
90
92
92
94
96
96
98
118
283
285
286
373
375
378
1
1
7
7
9
10
11
11
12
14
15
21
21
21
21
21
28
29
31
32
32
33
33
33
33
33
41
42
43
48
54
54
54
54
76
76
76
76
80
80
86
89
89
90
93
97
97
99
118
284
286
287
374
376
379
1
1
1
7
10
11
13
14
14
15
15
21
21
29
29
29
33
33
33
34
43
43
49
55
55
55
55
77
77
77
77
81
81
86
90
91
94
98
98
100
112
285
287
288
375
377
379
380
7
7
8
11
11
12
14
14
15
16
21
21
21
21
22
30
34
34
34
35
41
43
43
50
56
56
56
56
78
78
78
78
82
82
91
92
99
99
101
286
288
289
376
377
380
381
7
8
8
9
9
13
14
14
14
15
15
15
15
17
19
19
21
22
23
31
33
35
35
35
36
41
43
43
43
51
57
57
79
83
83
92
100
100
102
287
289
326
377
381
382
7
7
7
7
8
9
9
11
11
14
14
14
15
16
16
18
18
21
23
24
29
32
33
33
34
34
35
36
36
41
41
41
43
43
43
44
52
58
58
80
84
84
101
101
103
287
327
378
382
383
7
7
8
9
13
15
15
15
17
17
19
19
23
23
23
24
33
35
35
35
35
35
36
36
36
36
37
41
43
43
44
45
53
59
59
81
85
85
86
87
100
102
102
102
104
115
289
327
379
383
384
9
10
11
14
16
16
16
17
20
20
24
24
24
25
33
33
34
36
36
36
37
37
38
45
46
54
60
60
82
84
84
85
86
86
86
86
87
87
88
101
103
103
105
115
115
289
380
384
385
8
10
11
11
17
17
17
19
19
19
19
21
21
25
26
26
35
37
38
38
39
43
46
55
61
83
85
85
85
85
86
86
87
87
87
88
88
89
102
104
104
106
112
115
115
324
326
381
385
386
7
9
9
11
11
17
18
18
22
22
23
24
26
26
26
26
33
36
38
38
40
43
45
45
45
46
56
56
58
58
62
62
84
85
85
86
86
86
87
88
88
88
89
89
90
105
105
107
112
113
115
325
327
382
386
387
10
10
11
18
19
19
19
19
19
19
23
23
26
38
38
38
39
41
43
43
43
45
46
46
57
57
59
59
63
63
85
85
87
88
89
89
89
90
90
104
106
106
106
107
108
112
113
113
275
325
327
328
383
387
388
9
9
11
17
17
19
19
19
20
24
24
26
27
33
33
38
40
40
42
42
46
47
47
58
58
60
60
64
64
86
87
88
89
90
90
90
105
107
107
107
109
113
276
279
279
325
327
328
329
384
388
389
10
10
11
17
17
17
19
21
25
25
26
27
28
33
38
38
38
38
41
41
43
43
46
47
61
65
65
86
87
87
89
90
91
106
108
108
110
277
280
280
325
327
328
329
385
389
390
1
1
1
9
9
11
11
17
17
18
19
19
22
26
26
26
26
28
33
33
33
34
38
38
38
39
42
42
44
44
46
46
46
47
47
47
62
66
66
86
88
90
90
92
109
109
111
278
281
281
328
329
386
390
391
1
1
2
2
10
10
11
19
19
20
20
23
27
27
28
28
28
35
38
39
39
40
45
45
46
47
47
47
47
48
63
67
67
87
91
91
93
108
110
110
110
112
279
282
282
329
387
391
392
3
3
9
9
10
11
21
21
24
28
28
28
28
28
29
36
40
40
40
46
46
47
48
49
64
68
68
88
92
92
94
109
111
111
113
280
283
283
388
393
1
4
4
10
10
10
11
11
11
11
17
19
19
25
26
26
26
28
29
29
29
30
30
38
40
40
41
47
47
49
49
65
69
93
93
95
110
112
112
114
284
284
327
389
391
394
4
4
5
5
9
9
11
12
12
19
21
21
26
26
28
28
28
30
30
30
30
30
30
30
38
40
40
40
42
47
47
48
48
49
66
66
66
66
70
70
94
94
96
113
113
115
280
328
390
391
392
395
5
5
6
13
13
19
19
21
26
26
27
29
29
30
31
31
38
38
38
40
40
40
41
43
47
49
49
49
49
50
67
67
67
67
71
71
82
82
84
84
95
95
97
112
112
114
114
116
284
327
327
391
393
396
6
7
9
13
21
21
21
28
30
30
31
32
32
38
40
40
41
42
44
47
49
49
49
50
50
50
51
51
68
68
68
68
72
72
82
82
84
84
84
84
85
85
94
96
96
96
98
106
106
115
117
284
325
325
328
328
392
394
397
5
5
7
8
9
13
13
19
19
19
19
21
29
30
31
32
33
33
42
43
45
49
49
51
51
51
51
51
51
51
69
73
73
84
84
85
85
86
86
95
97
97
99
112
112
112
114
116
116
118
118
328
329
329
393
395
398
4
4
5
5
8
8
9
9
9
13
14
21
21
21
21
21
26
30
30
30
32
32
34
40
43
46
49
49
51
52
52
52
52
52
70
74
74
82
84
86
86
87
87
96
98
98
100
110
112
113
115
117
117
119
119
330
330
330
330
394
396
399
5
9
9
10
10
14
15
15
15
15
21
21
32
32
32
33
33
33
33
33
35
40
42
42
42
43
47
52
53
53
53
53
53
71
75
75
82
84
84
85
87
87
99
99
101
106
107
110
110
114
116
118
118
120
120
272
330
330
331
331
395
397
400
4
6
10
10
11
11
13
13
15
15
21
21
21
21
22
30
30
33
34
34
34
34
36
36
40
40
40
42
43
43
48
51
53
54
54
54
54
54
72
74
74
76
76
84
85
85
86
98
100
100
100
102
107
110
112
117
121
121
273
274
274
331
332
332
396
398
401
5
7
7
12
12
13
13
13
19
19
21
22
23
35
35
35
35
37
37
43
44
44
49
49
51
51
55
55
73
75
75
77
84
85
86
87
99
101
101
103
118
122
122
274
275
275
330
330
332
397
399
402
1
1
4
5
5
8
9
13
13
13
13
14
15
15
21
23
24
28
30
32
35
36
36
38
38
43
44
50
53
53
54
56
56
74
76
76
78
87
100
102
102
104
119
123
123
275
276
276
331
398
400
403
1
1
1
5
5
7
9
14
14
15
15
16
16
23
23
23
24
29
33
35
35
35
39
39
43
43
43
44
44
44
51
51
51
54
57
57
75
77
79
103
103
105
120
124
124
276
277
277
330
332
399
401
403
404
5
5
7
10
15
15
17
17
24
24
24
25
30
30
30
34
35
40
40
43
44
44
44
44
45
52
53
53
54
58
58
76
78
80
102
104
104
104
106
121
125
125
277
278
278
330
331
399
402
404
405
5
5
7
11
13
15
15
16
16
19
19
19
19
25
26
26
30
35
35
35
35
35
41
41
44
45
46
51
51
53
54
59
77
79
81
103
105
105
107
122
126
126
279
279
279
332
403
405
406
5
5
7
12
15
17
17
17
17
23
24
26
26
26
26
30
30
30
35
35
36
36
42
42
46
46
53
53
54
54
54
56
56
60
60
76
78
80
80
82
104
106
106
108
123
127
127
277
279
330
333
404
406
407
5
5
7
13
15
15
17
18
18
19
26
35
36
37
37
43
43
44
44
46
51
51
53
54
55
55
57
57
61
61
77
81
81
81
81
82
82
83
107
107
109
109
109
124
128
128
330
331
333
405
407
408
5
5
5
7
14
17
17
17
19
19
19
26
27
37
37
38
44
44
44
46
46
47
53
53
53
54
54
54
54
56
56
58
58
62
62
78
81
81
81
82
82
82
82
82
82
82
83
83
84
106
106
108
108
109
110
125
129
129
332
406
408
409
5
5
5
6
7
7
7
15
15
15
15
15
17
19
20
20
26
27
28
35
37
37
39
44
45
45
46
46
46
47
48
48
51
51
54
55
55
59
63
63
81
82
82
82
82
83
83
83
83
83
84
84
85
106
107
109
109
109
111
126
128
128
130
130
328
333
333
407
409
410
5
5
7
8
8
16
17
17
17
17
17
19
19
21
21
26
26
28
35
37
37
37
40
46
46
46
46
46
46
48
48
48
48
48
56
56
60
64
64
82
83
84
84
84
84
84
85
85
86
106
107
107
108
109
110
110
112
112
127
129
129
131
263
329
329
334
334
408
410
411
9
9
17
17
17
20
20
22
28
28
28
35
35
35
37
37
37
38
41
46
46
47
47
47
47
48
49
51
56
61
65
65
83
84
85
85
85
85
85
87
98
107
107
109
111
111
113
113
128
130
130
132
264
269
329
329
333
333
335
335
409
411
412
5
9
17
17
17
17
18
18
21
21
23
28
28
28
29
35
37
37
38
39
42
48
48
48
48
49
50
51
56
56
62
66
66
82
84
85
86
86
86
88
98
108
110
112
112
114
114
129
131
133
265
269
270
334
334
336
336
410
412
413
1
5
9
9
15
15
17
18
19
19
22
24
26
26
26
28
29
30
30
39
40
43
48
49
49
50
51
51
51
56
57
63
67
82
85
87
87
89
111
115
115
130
132
134
266
270
271
335
335
411
413
414
1
1
5
5
9
10
17
19
20
20
23
25
26
28
30
30
30
30
30
37
40
44
46
48
48
50
50
56
56
57
58
58
58
58
64
64
64
64
68
68
86
88
88
90
112
116
116
133
135
267
271
272
412
414
415
1
10
11
11
11
11
19
19
19
20
24
26
26
26
30
31
37
39
39
39
40
45
50
50
51
51
51
51
56
56
56
58
58
65
65
65
65
69
69
89
89
91
113
117
117
128
132
134
134
136
136
268
272
273
413
415
416
9
9
11
11
20
20
20
21
25
25
27
27
31
32
37
37
37
39
40
40
46
48
48
51
52
52
56
66
66
66
66
70
70
88
90
90
90
92
114
118
118
129
133
135
135
137
137
268
273
274
333
414
417
1
1
5
5
5
9
9
9
15
15
15
15
21
22
22
26
26
28
28
30
32
33
40
41
41
47
50
50
51
53
56
57
58
58
67
71
71
76
80
89
91
91
93
97
115
119
119
130
134
136
136
138
138
274
329
333
333
334
415
418
1
4
4
5
5
5
6
6
6
9
9
10
11
11
18
19
20
22
22
22
22
23
26
27
27
29
29
30
30
32
40
41
48
48
48
48
50
50
51
54
54
56
58
58
59
59
68
72
72
76
80
80
81
90
92
92
94
106
116
120
120
135
139
139
329
334
334
335
415
416
419
5
7
7
7
7
11
11
12
12
15
19
22
24
30
30
32
32
32
33
33
33
33
40
40
40
41
41
41
49
49
50
50
51
51
51
55
55
58
60
60
69
73
73
76
80
80
81
82
93
93
95
97
106
117
121
121
136
140
140
335
336
415
416
417
420
4
6
8
8
8
8
13
13
15
20
22
23
25
30
30
31
31
33
34
34
40
41
41
41
41
42
48
48
50
50
50
51
52
52
56
56
58
58
60
70
72
72
74
74
76
80
80
81
82
83
92
94
94
94
96
106
118
122
122
137
141
141
274
336
337
417
418
421
5
7
9
9
9
11
11
15
22
23
24
26
32
32
35
35
41
42
43
50
50
50
51
51
51
51
53
57
57
60
60
60
71
73
73
75
80
81
82
83
93
95
95
97
104
106
119
123
123
138
142
142
274
336
336
338
418
419
422
4
4
5
5
10
10
11
13
13
22
22
24
27
30
33
33
35
43
43
48
48
51
52
52
54
58
58
58
58
60
72
74
74
76
82
83
94
96
96
98
104
104
120
122
122
124
124
139
143
143
260
334
336
336
337
339
419
420
423
5
5
5
7
11
11
11
11
13
24
24
24
28
34
34
35
35
35
41
41
43
53
53
55
59
59
60
60
60
73
75
76
77
80
80
83
97
97
97
98
99
104
121
123
123
125
140
144
144
261
264
337
338
420
421
424
5
5
6
7
12
12
13
13
13
24
24
24
25
29
30
30
35
35
35
41
43
43
44
48
53
56
58
58
60
60
60
74
76
76
78
79
80
80
81
98
98
98
100
106
122
124
124
126
141
145
145
262
264
265
338
421
422
425
1
1
5
5
7
8
11
11
11
11
13
13
13
22
22
22
24
25
26
26
30
30
35
35
35
35
36
36
41
43
43
43
44
45
45
48
53
53
57
60
60
60
61
75
77
79
80
80
81
82
99
101
106
123
125
127
142
146
146
263
265
266
336
422
423
426
1
1
5
5
7
9
13
13
13
13
13
14
14
22
24
26
26
26
26
26
30
30
30
31
35
35
36
37
37
37
37
43
43
45
45
45
45
45
48
48
53
54
58
58
58
58
58
58
60
60
60
60
62
62
74
76
78
78
80
82
83
96
98
100
100
102
102
124
126
128
143
147
147
264
266
267
336
336
337
423
423
424
427
1
5
5
7
10
13
13
15
15
22
22
26
27
32
35
36
37
38
38
38
38
43
43
45
46
53
53
54
55
55
55
55
59
59
59
59
60
60
60
60
61
61
63
63
75
79
79
81
83
97
99
101
101
103
103
127
129
144
146
146
148
148
265
267
268
336
337
338
424
424
427
428
5
5
5
7
11
13
13
13
13
14
16
16
27
28
33
37
37
39
39
39
39
46
47
48
53
53
53
55
55
58
60
60
60
60
62
62
64
64
76
80
80
82
98
100
102
102
104
104
122
126
128
128
130
130
145
147
147
149
265
268
269
338
339
425
428
429
5
5
5
6
7
7
7
11
11
12
13
14
15
17
17
26
28
29
34
35
37
37
40
40
45
47
48
53
61
62
63
65
65
81
81
83
101
105
105
123
127
129
129
131
131
146
148
148
150
269
339
426
429
430
5
5
7
8
8
13
13
15
16
16
16
18
18
22
26
26
28
35
35
37
37
37
41
41
43
45
45
53
54
55
55
58
58
62
63
66
66
75
77
82
82
84
97
102
106
106
124
128
130
130
132
132
147
149
151
269
336
339
427
430
431
9
9
14
15
15
15
16
17
17
19
28
28
28
29
29
29
29
35
35
35
36
37
37
37
38
42
42
47
47
48
53
55
55
56
56
58
63
63
63
64
67
67
75
75
77
77
78
78
83
83
85
97
103
103
107
107
129
133
133
148
150
152
269
336
337
428
431
432
5
9
15
16
16
16
17
18
18
20
26
26
29
30
30
35
37
37
37
38
39
43
43
45
45
48
55
57
57
58
62
62
62
64
64
65
65
66
66
68
68
75
75
77
77
78
78
78
78
79
82
84
84
84
86
97
103
103
104
108
108
130
134
134
151
153
334
338
429
432
433
5
9
9
11
11
11
11
16
17
18
18
19
21
31
31
38
39
40
44
47
47
48
55
55
57
62
63
65
65
65
65
65
65
67
67
69
75
77
78
78
78
78
79
79
80
83
85
85
87
101
103
103
105
109
109
131
135
135
146
150
152
152
154
154
335
339
430
433
434
5
5
9
10
15
16
17
18
18
18
18
20
22
26
31
37
39
39
40
41
41
45
45
45
45
48
57
57
57
62
62
65
66
66
68
68
70
78
78
79
79
80
80
84
86
86
88
101
101
101
103
106
110
110
132
136
136
147
151
153
153
155
155
257
335
339
340
431
434
435
10
11
11
11
11
11
18
21
23
31
31
31
37
39
39
39
40
40
40
42
42
46
46
47
47
48
55
55
57
66
67
67
69
71
78
79
80
80
87
87
89
98
98
107
111
111
133
137
137
148
152
154
154
156
156
258
259
259
335
339
340
341
432
435
436
1
5
9
9
11
11
11
18
19
22
22
24
24
26
26
31
37
37
37
39
40
40
41
41
43
43
45
45
47
47
47
48
57
57
57
65
67
68
68
70
72
77
77
80
86
88
88
88
90
108
112
112
134
138
138
153
157
157
259
260
260
335
339
340
341
433
436
437
1
1
4
6
9
9
9
11
18
19
20
23
23
25
25
26
31
31
31
31
40
41
41
44
47
47
47
48
48
48
48
48
48
55
55
57
62
65
65
69
71
73
87
89
89
91
109
113
113
135
139
139
154
158
158
260
261
261
340
341
434
437
438
1
1
1
4
5
5
7
9
9
10
11
11
15
18
18
20
20
24
24
26
26
26
26
26
31
31
32
40
41
45
45
45
48
49
49
49
49
57
57
57
67
67
68
68
70
72
72
74
88
90
90
92
110
112
112
114
114
136
140
140
155
159
159
261
262
262
341
435
438
438
439
4
4
5
5
6
8
11
11
12
12
16
20
20
20
21
27
27
31
32
33
40
40
40
41
41
41
46
50
50
50
50
55
55
57
57
57
57
65
65
68
69
73
73
75
91
91
93
111
113
113
115
137
141
141
156
160
160
262
263
263
436
438
439
440
4
4
5
5
7
9
13
13
17
20
20
20
21
22
28
28
33
33
40
41
41
41
41
42
45
47
50
51
51
57
57
57
57
58
58
67
67
68
70
74
74
76
90
92
92
92
94
112
114
114
116
138
140
140
142
142
157
161
161
262
264
264
339
437
440
441
4
5
5
6
8
9
10
11
11
18
18
18
20
21
22
22
23
29
29
31
33
33
41
42
43
45
48
50
50
52
55
59
59
65
65
68
75
75
77
91
93
93
95
113
115
117
139
141
141
143
158
162
162
264
264
340
438
441
442
4
4
4
5
5
7
9
11
11
13
13
18
20
22
22
22
22
22
24
30
30
31
33
33
33
43
43
45
45
49
49
49
49
50
51
53
53
59
60
67
67
68
74
74
75
75
76
76
78
92
94
94
96
97
97
114
116
118
140
142
142
144
159
163
163
335
335
340
439
442
443
5
5
5
6
8
10
11
11
12
13
18
18
22
23
25
31
31
31
31
31
33
33
33
34
41
41
43
50
50
50
50
50
50
51
52
52
52
52
54
54
55
55
60
65
65
67
68
74
74
74
75
75
75
75
75
76
76
77
77
79
95
95
97
97
100
100
101
117
119
141
143
145
160
164
164
336
336
339
339
440
443
444
4
5
6
7
9
11
13
13
13
13
23
24
26
31
32
32
33
33
34
35
41
43
43
44
45
50
50
50
51
51
51
51
52
52
55
55
55
60
60
61
67
67
67
68
68
68
68
74
75
75
75
75
76
76
76
76
77
77
78
78
78
80
96
96
98
100
100
100
101
101
101
112
116
118
118
120
120
142
144
146
161
165
165
254
340
340
441
444
445
7
7
8
10
11
11
11
11
12
13
14
22
24
25
27
33
33
35
36
41
43
43
43
44
45
45
50
52
55
56
56
59
59
59
61
62
62
65
65
68
69
69
75
76
77
77
77
77
78
78
78
79
79
81
97
98
98
99
100
113
117
119
119
121
121
145
147
162
164
164
166
166
255
255
255
341
341
341
341
442
445
446
9
11
13
13
13
13
13
13
15
18
22
22
24
28
33
34
34
34
34
36
43
43
45
45
45
45
45
50
51
52
52
53
57
57
59
60
62
62
62
62
62
70
70
77
77
77
78
78
78
78
80
80
82
94
96
98
98
100
100
114
118
120
120
122
122
140
144
146
146
148
148
163
165
165
167
256
256
256
341
341
341
341
342
342
443
446
447
1
7
7
12
13
13
14
16
24
24
24
25
25
25
25
29
33
35
35
35
35
35
35
35
36
43
43
45
46
50
52
52
53
53
54
58
58
59
59
62
63
65
70
78
81
81
83
95
97
99
99
101
101
119
123
123
141
145
147
147
149
149
164
166
166
168
257
257
257
342
342
343
343
444
447
448
1
1
7
8
8
8
8
13
13
13
13
13
14
17
22
22
25
26
26
30
33
33
33
35
36
36
36
36
36
36
46
47
52
54
54
55
57
57
59
59
63
64
65
70
70
80
82
82
82
84
96
98
100
100
102
102
120
124
124
142
146
148
148
150
150
165
167
169
258
258
258
343
343
445
448
449
7
7
8
8
11
11
13
14
14
14
15
18
18
27
27
31
36
37
37
37
37
45
47
48
52
52
54
56
58
58
60
62
64
65
65
65
70
71
81
83
83
85
99
103
103
121
125
125
147
151
151
166
168
170
259
259
259
341
341
446
449
450
7
13
15
15
15
16
19
19
22
27
32
36
37
38
38
43
45
45
54
54
54
57
59
59
59
61
62
62
71
72
72
72
72
82
84
84
86
100
104
104
122
126
126
148
152
152
169
171
259
260
260
340
341
341
342
342
447
450
451
7
7
7
7
8
8
14
15
15
15
16
16
16
20
20
27
27
27
33
36
36
36
37
37
37
39
39
47
47
48
52
52
54
58
60
62
64
64
65
70
70
72
72
85
85
87
101
105
105
123
127
127
149
153
153
170
170
172
172
260
260
341
343
343
448
451
452
8
8
9
9
13
15
16
16
16
17
21
21
22
22
27
34
36
37
37
37
37
38
40
40
45
45
48
54
54
54
59
61
62
62
63
65
70
70
70
84
86
86
86
88
102
106
106
124
128
128
150
154
154
171
171
173
173
341
344
344
449
452
453
10
10
11
11
11
11
14
16
17
18
18
22
22
22
27
27
27
27
35
37
38
39
41
47
47
48
52
52
54
60
62
64
64
64
65
65
70
70
71
72
72
74
75
85
87
87
89
97
101
103
107
107
125
129
129
151
155
155
164
168
172
172
174
174
344
344
450
453
454
8
8
8
15
16
17
18
18
18
18
22
22
22
23
23
27
27
28
36
36
38
38
39
39
42
42
45
45
48
54
54
54
59
61
62
62
63
63
65
65
72
72
73
73
74
74
74
75
75
75
75
76
86
88
88
90
97
97
100
101
101
101
104
108
108
126
130
130
152
156
156
165
169
175
175
250
451
454
455
7
10
10
11
18
18
24
24
27
28
29
37
37
37
37
39
39
39
43
43
47
47
48
52
52
54
54
54
54
60
64
64
64
64
65
66
74
74
74
74
75
75
75
75
75
76
76
76
77
78
89
89
91
98
98
100
100
100
105
109
109
127
131
131
153
157
157
166
170
176
176
251
251
252
452
455
456
8
8
10
11
18
19
19
25
25
29
29
37
38
38
39
39
40
40
40
44
44
45
45
47
48
54
54
54
54
55
55
61
62
62
64
65
65
65
67
70
72
72
75
75
76
76
77
77
77
77
77
78
90
90
92
100
100
106
110
110
128
130
130
132
132
154
158
158
171
177
177
252
252
253
453
456
457
1
10
10
10
11
18
19
20
20
26
26
27
29
29
37
39
39
39
40
41
41
41
45
45
47
47
47
48
48
48
48
52
56
56
64
64
64
65
65
65
65
66
66
68
72
74
74
77
77
78
78
78
91
93
107
111
111
129
131
131
133
155
159
159
172
178
178
253
253
254
454
457
458
1
1
1
8
8
8
8
10
18
18
20
21
27
27
27
29
29
29
39
39
41
41
41
41
41
42
45
45
46
46
48
49
49
56
57
62
62
65
66
66
67
67
69
72
72
74
78
78
88
90
92
92
94
94
108
110
110
112
112
130
132
132
134
156
158
158
160
160
173
179
179
254
254
255
455
458
459
2
2
10
10
10
10
10
20
20
20
22
27
27
27
28
28
28
28
29
29
29
30
39
39
41
42
43
47
47
50
50
52
52
57
67
67
68
68
70
74
74
74
89
91
93
93
95
95
109
111
111
113
131
133
135
157
159
159
161
174
180
180
255
255
256
456
459
460
3
3
10
10
20
20
20
21
23
27
29
29
29
29
29
29
30
31
42
43
44
45
48
48
50
52
57
57
58
62
67
67
69
69
69
71
72
72
72
72
74
90
92
94
94
96
96
110
112
112
114
132
134
136
158
160
160
162
175
181
181
255
256
257
341
457
460
461
4
4
4
4
10
10
10
10
11
18
18
18
20
21
22
22
24
30
30
30
30
31
32
41
43
44
45
45
49
50
50
52
56
56
56
58
59
59
62
67
67
68
70
70
72
74
74
74
74
74
93
97
97
111
113
115
135
137
159
161
163
176
182
182
182
182
256
257
342
344
344
458
461
462
5
5
5
5
8
8
10
11
12
18
20
22
22
22
22
22
25
29
31
31
32
39
41
41
45
45
46
46
46
46
50
50
50
51
56
57
59
59
59
59
59
62
62
67
68
69
71
71
73
74
74
94
98
98
112
114
116
130
134
136
136
138
138
160
162
164
177
183
183
183
183
342
345
345
459
462
463
6
6
10
12
13
18
18
22
23
26
29
31
31
31
32
32
32
43
43
44
47
47
47
47
50
50
51
51
51
52
52
52
52
56
56
59
60
68
69
69
69
69
72
72
74
74
74
74
74
74
75
75
95
97
99
99
101
115
117
131
135
137
137
139
139
163
165
178
184
184
184
184
345
345
460
463
464
4
4
7
7
12
12
12
13
23
24
27
29
29
29
31
32
32
33
33
41
41
44
45
48
48
48
48
50
50
50
52
52
52
52
60
61
67
67
69
69
71
72
72
73
73
73
74
74
74
74
75
75
75
75
75
75
76
76
96
97
97
100
100
100
101
101
101
110
114
116
116
118
118
132
136
138
138
140
140
164
164
166
166
179
185
185
246
461
464
465
5
5
5
5
8
8
8
13
13
13
14
22
24
25
28
32
33
33
34
34
43
43
44
49
50
53
53
59
61
62
67
67
67
72
74
74
74
74
74
75
75
75
75
75
76
76
76
76
76
77
77
78
97
98
98
100
100
100
101
101
111
115
117
117
119
119
137
141
141
165
165
167
167
180
186
186
247
248
248
462
465
466
8
8
8
8
9
9
9
9
14
15
15
18
22
22
24
29
32
33
35
41
41
44
50
50
51
52
52
54
54
56
59
59
62
67
67
68
69
69
73
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
77
78
98
100
100
102
102
112
116
118
118
120
120
138
142
142
158
162
166
166
168
168
181
187
187
248
249
249
463
466
467
1
4
5
10
10
10
10
12
13
15
15
15
15
24
24
24
25
25
25
25
30
30
32
32
32
32
32
33
33
33
36
36
43
43
44
50
51
52
52
53
53
55
55
61
61
62
69
69
70
70
76
76
77
77
77
77
77
78
78
78
78
78
99
103
103
117
121
121
139
143
143
159
163
169
169
182
188
188
249
250
250
464
467
468
1
1
5
6
8
11
11
15
22
22
25
26
26
31
31
32
33
33
33
33
33
33
34
37
37
41
41
43
44
52
52
54
54
54
54
56
56
59
59
62
71
71
72
72
72
72
75
77
77
77
78
78
78
79
79
79
100
104
104
118
122
122
140
144
144
160
164
170
170
183
189
250
251
251
465
468
469
5
5
8
12
12
15
16
27
27
32
32
33
34
34
34
35
38
38
43
43
43
44
44
44
44
52
52
53
54
55
55
57
61
61
62
67
69
69
76
76
77
78
78
79
79
79
79
80
101
105
105
119
123
123
141
145
145
165
171
171
184
184
186
186
190
190
251
252
252
466
469
470
5
6
7
8
13
13
15
16
17
22
27
35
35
35
39
39
41
41
44
45
45
54
54
54
54
56
56
58
59
59
62
69
71
71
72
77
79
79
79
81
102
104
104
106
106
120
124
124
142
146
146
166
172
172
185
185
187
187
191
191
251
253
253
342
467
470
471
4
5
5
8
14
14
15
15
17
27
27
27
33
33
35
36
40
40
46
46
52
52
54
55
57
59
61
61
62
69
69
71
72
79
80
80
80
82
103
105
105
107
121
125
125
143
147
147
167
173
173
186
186
188
188
192
192
253
253
343
345
345
468
471
472
5
6
6
9
15
15
17
17
17
22
22
27
33
35
35
36
37
41
41
41
46
54
54
54
56
58
59
59
60
61
62
71
71
71
72
79
80
81
81
81
83
104
106
106
108
122
126
126
144
148
148
168
174
174
189
193
193
343
346
346
469
472
473
5
5
5
10
16
16
17
17
17
18
22
27
27
27
27
33
35
35
35
36
37
37
38
41
42
42
46
46
52
52
54
57
59
61
61
61
61
62
62
62
62
69
69
69
69
71
74
75
79
79
81
82
84
97
105
107
109
123
127
127
145
149
149
169
175
175
190
194
194
346
346
470
473
474
5
5
6
6
6
11
15
15
15
17
17
17
18
19
19
22
22
22
27
27
28
35
35
37
37
37
37
37
39
41
41
43
46
47
54
54
54
56
58
59
59
60
60
62
62
63
63
71
71
71
71
71
74
74
74
75
75
75
75
76
79
81
81
81
81
83
83
85
85
97
97
98
100
106
108
110
124
128
128
146
148
148
150
150
170
176
176
176
176
191
195
195
471
474
475
5
5
5
5
5
6
12
15
17
18
18
18
18
19
19
19
19
19
27
28
29
35
35
37
38
40
40
40
40
44
44
46
46
47
48
48
48
48
52
52
54
54
54
54
57
61
61
63
64
64
71
71
74
74
75
75
75
75
75
76
76
76
77
80
81
81
81
82
82
84
84
86
86
95
98
98
100
100
100
109
111
125
129
129
147
149
149
151
171
177
177
177
177
192
196
196
241
472
475
476
5
5
6
6
7
13
15
15
19
19
19
19
19
20
29
29
38
39
41
41
41
41
41
45
45
46
46
46
48
48
54
54
54
54
55
55
58
59
62
62
64
64
71
71
71
71
72
75
75
76
76
76
77
77
77
78
79
79
79
81
81
82
83
83
83
85
85
87
87
95
98
100
100
104
108
110
110
112
112
126
128
128
130
130
148
150
150
152
172
178
178
178
178
193
197
242
243
243
473
476
477
5
7
8
14
20
20
20
20
20
21
27
29
29
37
39
40
42
42
42
42
46
46
46
52
56
56
59
63
63
64
64
65
69
69
71
72
73
75
76
77
77
78
78
78
79
81
83
83
83
83
83
84
88
88
105
109
111
111
113
113
127
129
129
131
149
151
153
173
179
179
194
194
194
194
198
198
243
244
244
474
477
478
1
6
8
9
15
19
21
21
21
22
27
29
29
29
35
37
37
43
46
47
47
47
48
48
56
57
59
59
64
64
64
65
66
71
73
74
78
78
79
79
83
84
85
89
89
106
110
112
112
114
114
128
130
130
132
150
152
154
174
180
180
195
195
195
195
199
199
244
245
245
475
478
479
1
1
1
5
5
5
15
16
19
19
21
22
22
27
27
27
29
29
29
30
39
39
40
44
46
48
48
48
48
49
49
52
52
57
65
65
65
66
66
66
66
67
73
73
73
74
84
85
86
90
90
111
115
115
129
131
133
153
155
175
181
181
196
196
196
196
200
200
245
246
246
476
479
480
8
8
8
9
17
21
21
21
22
22
22
22
23
23
27
29
29
30
31
37
37
40
45
48
49
49
50
50
52
57
57
58
64
64
64
66
66
66
66
66
68
74
74
74
75
83
85
86
87
91
91
112
116
116
130
132
134
154
154
156
156
176
182
182
197
201
201
246
247
247
477
480
481
1
9
9
9
10
18
19
19
22
23
23
24
24
31
32
39
39
40
46
48
48
48
48
50
50
50
52
56
56
56
58
59
59
64
64
64
65
67
67
69
69
69
69
69
75
76
76
79
83
83
85
88
92
92
113
117
117
133
135
155
155
157
157
177
183
198
202
202
248
248
478
480
482
8
9
10
11
11
11
11
19
24
24
25
29
32
37
37
40
47
49
49
50
50
50
51
56
57
59
59
59
59
59
59
64
64
65
66
66
66
68
68
70
72
73
73
74
76
76
76
76
85
85
85
86
86
86
86
89
93
93
97
114
118
118
128
132
134
134
136
136
148
152
156
156
158
158
178
178
180
180
184
184
199
203
203
246
343
479
480
481
483
5
5
5
5
11
11
11
19
20
20
22
22
24
26
26
29
31
31
31
32
39
39
40
48
48
48
50
50
50
52
56
56
59
60
66
66
67
67
69
69
69
71
72
73
73
74
76
83
83
86
87
87
90
94
94
94
115
119
119
129
133
135
135
137
137
149
153
159
159
179
179
181
181
185
185
200
202
202
204
204
248
344
480
482
484
4
4
5
5
12
21
21
23
23
24
24
24
27
27
29
29
29
31
32
32
37
37
39
40
49
50
50
50
51
53
60
61
68
68
68
69
70
70
70
72
72
73
73
74
75
76
77
88
88
91
95
95
97
97
116
120
120
130
134
136
136
138
138
150
154
160
160
180
180
182
182
186
186
201
203
203
205
248
346
346
481
483
485
5
5
5
5
5
5
5
6
11
13
19
19
22
22
24
24
24
28
28
32
33
33
39
39
39
40
40
40
40
48
48
50
50
52
54
59
61
62
64
66
66
69
69
71
71
72
73
73
73
74
75
76
76
77
78
83
88
92
94
96
96
117
121
121
135
139
139
155
161
161
183
187
187
202
204
204
206
344
347
347
482
484
486
6
6
7
7
11
11
12
14
19
24
24
24
24
25
29
29
32
33
37
37
40
41
41
50
50
50
51
53
55
56
59
59
66
68
68
70
72
72
72
73
73
74
74
75
76
76
76
78
88
88
88
89
93
95
95
97
97
97
97
118
122
122
136
140
140
156
162
162
184
188
188
203
205
207
347
347
348
483
485
487
4
5
5
7
7
8
8
11
13
19
19
19
24
24
25
26
30
30
32
32
32
33
33
33
42
42
48
48
50
50
50
50
50
52
54
54
56
61
61
62
66
66
68
72
73
73
73
73
74
75
75
76
78
78
78
83
83
88
89
94
94
95
95
96
96
98
119
123
123
137
141
141
157
163
163
185
189
189
204
206
208
238
347
347
348
349
484
486
488
5
6
9
9
13
14
14
24
25
26
27
31
31
32
33
33
33
33
34
37
42
50
50
50
50
51
51
51
55
55
57
59
59
62
68
68
68
72
73
74
74
74
74
74
75
76
76
78
78
78
79
83
88
88
88
88
95
95
95
97
97
97
99
120
122
122
124
124
138
142
142
158
164
164
186
190
190
205
207
209
234
238
239
348
349
485
487
489
5
5
10
10
13
13
14
15
26
26
28
32
32
33
34
35
37
42
42
48
52
52
52
56
56
58
61
61
62
66
66
66
66
68
73
74
74
75
75
75
76
76
76
76
77
78
79
80
80
83
83
83
88
88
89
96
98
100
121
123
123
125
139
143
143
159
165
165
187
191
204
206
208
208
210
235
239
240
347
347
349
486
488
490
1
1
4
5
6
11
11
11
11
11
14
15
16
16
24
26
26
29
33
35
35
37
37
42
43
52
53
57
57
59
59
59
62
68
68
68
68
68
74
76
76
76
76
78
78
80
80
80
80
80
88
89
90
97
99
101
122
124
124
126
140
144
144
160
166
166
166
166
188
188
188
188
192
192
205
209
209
211
236
240
241
348
487
489
491
1
1
4
5
5
5
11
12
12
13
16
16
16
16
16
24
26
26
26
30
30
30
30
33
33
34
34
35
42
42
43
44
44
44
44
48
48
53
58
58
60
61
61
62
68
68
76
76
77
77
79
80
81
90
90
100
102
123
125
127
141
145
145
161
167
167
167
167
189
189
189
189
193
193
206
210
210
212
237
241
242
347
349
488
490
492
5
6
6
6
11
11
13
13
16
17
24
24
24
26
26
26
27
31
31
31
31
33
35
35
35
35
36
37
42
42
42
44
44
48
53
53
54
59
59
59
59
61
61
62
68
68
68
68
69
78
78
80
81
82
88
90
90
95
99
101
101
103
103
124
126
128
142
146
146
162
168
168
168
168
190
190
190
190
194
194
211
211
213
238
242
243
347
348
491
493
5
5
5
7
14
14
17
18
24
26
26
27
28
32
32
32
32
33
35
35
35
36
36
36
37
37
42
48
52
52
52
54
55
55
58
60
60
60
61
61
61
62
62
62
62
62
66
66
68
69
70
79
80
81
82
83
88
90
90
90
96
100
102
102
104
104
127
129
143
147
147
163
169
169
191
195
195
212
212
214
239
243
349
492
494
5
5
6
6
6
8
15
15
16
18
19
28
29
33
35
35
37
37
37
37
37
37
37
42
43
44
44
52
53
55
55
55
55
55
59
59
59
61
61
62
63
63
63
68
70
71
76
76
78
80
80
80
80
82
82
82
88
88
88
90
90
90
91
97
101
103
103
105
105
122
126
128
128
130
130
144
146
146
148
148
164
170
170
192
196
196
213
213
215
239
350
493
495
1
5
5
5
5
5
6
9
11
16
16
16
16
16
16
18
26
29
34
35
35
37
38
38
38
42
44
44
45
45
52
52
55
56
60
62
62
64
64
64
70
70
70
71
71
71
71
71
77
79
81
81
82
82
82
83
83
83
83
83
83
88
90
90
91
92
94
94
102
106
106
123
127
129
129
131
131
145
147
147
149
165
171
171
193
197
197
212
214
214
214
216
347
487
494
496
5
5
6
6
7
10
17
17
17
17
18
18
18
19
19
19
19
26
28
28
28
29
35
38
39
39
39
44
46
46
56
57
59
63
63
64
65
68
68
71
71
71
71
71
71
71
72
72
72
78
80
80
80
82
82
83
84
84
84
84
92
93
94
94
103
107
107
124
128
130
130
132
132
146
148
148
150
166
172
172
194
196
196
198
198
213
215
215
217
344
347
348
488
492
495
497
5
7
8
11
16
16
18
18
18
18
19
20
20
26
26
26
28
29
29
36
37
38
38
39
40
40
40
44
44
46
55
57
58
59
62
64
64
64
64
64
66
66
66
66
66
68
68
72
72
72
73
73
73
73
81
85
85
85
85
88
88
90
92
93
93
104
108
108
129
133
133
147
149
151
167
173
195
197
197
199
214
216
216
218
243
345
345
349
493
496
498
6
8
9
12
19
19
21
21
29
30
30
35
37
37
37
39
39
41
46
46
46
52
55
55
59
59
63
64
65
65
65
67
70
71
73
73
73
73
73
73
74
74
80
82
85
86
86
89
90
90
92
92
93
105
109
109
130
134
134
148
150
152
168
168
170
170
174
174
196
198
198
200
216
217
217
218
219
243
346
346
350
350
494
497
499
5
5
5
13
16
20
20
21
29
30
38
39
39
40
40
40
42
44
44
46
57
57
58
64
65
66
66
66
66
66
66
66
68
73
74
74
83
85
85
85
87
87
89
90
90
92
92
92
93
106
110
110
131
135
135
151
153
169
169
171
171
175
175
197
199
201
217
218
218
219
220
233
345
350
350
351
351
495
498
500
8
8
8
9
14
21
21
21
21
21
29
29
29
30
30
30
37
37
39
40
41
43
46
46
46
55
55
58
64
64
66
66
66
67
67
69
71
71
71
73
74
80
80
84
85
88
88
92
92
93
93
94
94
107
111
111
132
136
136
152
152
154
154
170
170
172
172
176
176
198
200
202
218
219
220
221
231
233
234
351
352
352
496
499
501
9
9
9
10
15
16
16
21
22
22
29
30
30
30
30
31
39
39
40
40
42
44
44
44
46
57
57
58
64
64
64
66
66
68
68
68
68
70
71
71
71
72
72
73
74
75
80
85
85
85
85
85
89
89
94
94
94
94
108
112
112
133
137
137
153
153
155
155
173
177
177
199
201
203
220
221
222
232
234
235
352
497
500
502
1
1
8
9
10
11
11
11
11
16
16
21
21
21
21
23
30
31
32
37
37
40
41
43
45
46
46
46
55
55
58
59
64
64
65
66
66
67
68
69
69
71
72
73
73
73
75
80
80
80
85
85
86
86
88
90
90
93
109
113
113
134
138
138
146
150
154
154
156
156
174
178
178
198
200
202
202
204
221
222
223
233
235
236
498
501
503
1
1
1
5
5
5
5
11
11
11
16
16
16
17
17
20
20
21
21
22
24
24
32
32
39
39
40
40
42
44
44
44
44
46
46
46
46
46
57
57
58
66
66
67
67
68
70
70
72
73
74
75
75
75
85
86
87
87
91
91
110
114
114
135
139
139
147
151
157
157
175
179
179
199
203
203
205
222
223
224
234
236
237
345
345
350
499
502
503
504
5
12
18
18
21
21
21
22
23
25
25
30
30
32
37
37
39
40
41
45
45
46
46
46
46
47
47
47
55
55
57
58
68
68
71
71
73
74
75
75
75
76
87
87
88
92
92
111
113
113
115
115
136
140
140
148
152
158
158
176
180
180
200
204
204
206
223
224
225
235
237
238
346
350
351
500
502
504
505
5
5
11
13
19
19
22
22
23
23
26
26
30
32
32
33
39
39
39
40
40
40
40
42
44
46
46
48
48
48
57
57
57
58
58
58
58
64
66
66
72
72
73
73
73
74
75
76
77
77
85
87
87
89
93
93
112
114
114
116
137
141
141
153
159
159
177
181
205
205
207
223
224
225
226
236
238
351
352
501
505
506
4
4
5
6
11
11
12
14
21
23
23
23
27
27
30
32
32
32
33
34
34
37
37
40
41
41
47
47
48
49
49
55
55
58
59
59
66
68
68
73
73
75
75
77
77
77
77
77
85
87
87
87
90
92
92
94
94
94
94
113
115
115
117
138
140
140
142
142
154
160
160
178
178
178
178
182
182
206
206
208
226
227
236
352
502
506
507
4
4
5
5
5
6
7
11
13
21
23
23
23
24
28
28
32
32
34
34
34
34
34
42
42
44
44
48
48
49
50
60
60
66
66
68
68
69
70
72
73
73
74
74
76
76
77
78
85
85
85
87
87
87
88
91
91
92
93
93
93
93
93
95
114
116
118
139
141
141
143
155
161
161
179
179
179
179
183
183
207
207
209
225
225
227
228
238
345
352
503
507
508
4
5
5
6
7
8
13
14
14
21
21
21
23
23
23
24
25
29
29
32
32
34
35
37
42
44
49
49
49
49
50
51
55
60
67
68
68
68
68
68
69
69
70
71
73
75
75
77
77
78
79
85
87
87
88
89
89
90
90
91
91
92
92
94
94
94
94
94
96
115
117
119
140
142
142
144
156
162
162
180
180
180
180
184
184
206
208
208
208
210
218
218
226
228
229
238
346
350
504
508
509
4
5
5
7
8
9
13
13
14
15
21
23
23
24
25
26
30
30
35
36
37
42
42
44
48
48
48
48
50
50
50
50
51
51
52
55
60
60
66
66
66
66
67
67
68
68
68
69
69
70
70
71
72
74
76
76
77
78
78
79
80
88
89
89
90
91
91
92
92
93
93
93
95
97
118
120
141
143
145
157
163
163
181
185
185
207
209
209
211
216
219
219
227
229
229
230
350
351
505
509
510
4
4
4
5
5
8
9
10
11
11
11
14
15
16
16
25
26
27
31
34
36
37
37
37
42
43
48
49
49
51
51
51
51
51
51
51
53
55
55
60
61
67
67
68
68
68
68
68
68
69
70
70
71
71
71
72
73
75
77
77
79
79
79
87
88
89
90
90
91
92
92
94
94
96
98
113
117
119
119
121
121
142
144
146
158
164
164
164
164
182
186
186
208
210
210
212
217
220
220
228
228
229
230
230
231
351
352
506
510
511
4
5
5
5
5
9
9
10
10
11
11
13
16
16
16
16
16
23
26
28
28
28
28
32
32
32
34
34
42
42
43
44
44
44
44
48
48
50
51
52
52
52
54
61
62
62
62
62
67
68
68
70
71
71
71
72
72
72
76
79
79
79
80
80
80
80
80
80
87
87
88
89
89
90
97
99
114
118
120
120
122
122
145
147
159
165
165
165
165
183
187
187
210
211
211
212
213
218
221
221
229
229
230
230
231
232
351
352
353
507
511
512
1
4
6
6
10
10
11
11
11
11
12
16
17
23
25
25
25
26
29
29
29
29
33
33
36
36
37
37
42
42
42
44
44
52
53
53
53
55
60
60
62
62
68
68
68
68
69
71
72
72
77
77
77
80
81
81
81
81
87
87
89
90
92
96
98
98
100
100
115
119
121
121
123
123
146
146
148
148
160
166
166
166
166
184
186
186
188
188
211
212
212
213
214
219
223
230
230
231
231
231
232
233
351
352
353
354
508
512
513
1
1
7
7
7
7
7
12
12
13
17
18
23
23
23
25
26
26
30
30
30
30
34
34
34
34
37
42
51
52
53
54
54
54
54
56
60
60
60
66
66
68
69
70
72
78
82
82
82
82
90
90
91
92
93
97
99
99
101
101
120
124
124
147
147
149
149
161
167
167
185
187
187
189
212
213
214
215
219
221
225
231
231
232
232
233
234
351
352
352
353
354
509
513
514
7
7
7
8
13
13
14
16
18
19
26
27
27
31
35
35
36
36
37
42
43
44
44
48
51
51
53
55
55
55
57
60
60
61
62
62
68
70
71
77
79
82
83
83
91
91
91
92
93
94
98
100
100
102
102
121
125
125
140
144
148
148
150
150
162
168
168
186
188
188
190
214
215
216
221
225
225
226
232
232
233
233
234
235
351
352
353
353
354
510
514
515
8
9
9
11
14
14
15
16
16
18
26
27
32
34
34
36
36
37
42
44
44
45
45
53
53
54
54
56
56
58
62
62
63
63
70
70
70
71
80
82
82
82
84
84
90
90
93
99
103
103
122
126
126
141
145
151
151
163
169
169
187
189
191
215
216
217
223
225
225
225
226
227
233
233
234
234
236
351
353
354
354
511
515
516
9
9
9
9
15
16
16
18
18
18
19
19
19
19
26
26
26
27
27
27
33
36
36
37
37
37
44
46
46
51
51
54
57
57
59
64
64
71
71
71
72
77
77
81
82
85
85
88
90
90
92
100
104
104
123
127
127
142
146
152
152
164
170
170
188
190
192
216
217
218
226
227
228
233
234
235
237
352
354
355
512
516
517
7
7
9
16
16
16
16
17
17
19
20
20
26
27
27
27
27
28
34
34
34
36
36
36
37
38
38
44
44
46
53
53
54
56
58
58
58
60
60
62
62
66
66
66
66
72
73
73
77
82
82
82
82
82
86
86
90
90
90
93
101
105
105
124
128
128
147
153
153
165
171
189
191
193
212
214
217
218
219
225
225
227
228
234
235
236
238
353
355
513
517
518
9
10
13
13
17
17
18
18
21
21
27
28
29
35
36
36
36
37
37
37
37
37
37
39
46
46
46
51
51
54
57
59
59
61
62
64
64
68
69
70
71
73
73
73
73
77
77
77
82
82
83
83
87
87
88
89
90
91
102
106
106
125
129
129
148
154
154
166
166
168
168
172
172
188
190
192
192
194
213
214
215
217
218
219
220
226
234
236
237
239
353
514
518
519
10
11
14
14
16
19
19
21
29
29
34
34
36
37
38
38
38
38
40
44
44
46
53
53
54
58
60
60
62
62
62
64
66
67
68
68
69
69
70
73
82
83
84
84
86
86
88
88
89
91
91
91
91
92
92
103
107
107
126
130
130
149
155
155
167
167
169
169
173
173
189
193
193
195
214
215
216
220
221
225
226
227
237
238
240
355
515
519
520
9
9
9
15
20
20
21
21
21
27
27
29
37
39
39
39
41
46
46
46
51
51
53
54
61
61
63
64
64
64
66
67
67
68
69
70
70
71
71
73
74
84
84
85
87
87
88
89
89
90
90
90
91
92
92
104
108
108
127
131
131
150
156
156
168
168
170
170
174
174
190
194
194
196
215
216
217
219
219
221
222
224
225
225
225
226
227
239
241
355
516
520
521
10
10
10
11
11
16
16
16
21
21
21
27
29
29
30
34
38
39
40
42
44
44
46
53
53
53
54
54
54
54
62
62
62
62
62
62
64
64
66
67
68
69
70
71
71
71
72
72
73
74
75
82
84
84
86
87
87
88
88
88
89
90
91
91
91
91
105
109
109
128
132
132
151
157
157
171
175
175
195
195
197
212
212
215
217
220
222
223
225
225
226
226
227
228
237
240
240
242
517
521
522
1
11
12
12
16
17
21
21
21
21
22
22
27
29
29
29
30
31
31
34
39
39
39
41
43
46
46
46
51
51
54
55
55
63
64
64
64
64
64
65
67
68
69
70
71
72
72
73
73
75
82
84
84
84
87
89
90
90
90
91
91
106
110
110
129
131
131
133
133
152
158
158
158
158
172
176
176
196
196
198
210
213
213
217
221
223
223
224
226
227
227
228
229
241
241
243
518
522
523
1
1
10
11
13
13
13
13
16
16
16
18
21
21
22
23
29
29
31
31
31
31
31
34
34
38
39
40
40
42
42
44
44
44
46
46
46
46
56
56
60
62
64
64
64
64
66
66
67
70
71
72
75
75
75
82
82
82
84
84
84
85
88
88
88
88
90
90
90
91
92
107
111
111
130
132
132
134
153
159
159
159
159
173
177
177
197
197
199
211
214
214
217
222
224
224
225
227
228
228
230
242
242
244
519
523
524
9
9
9
9
13
13
13
19
19
20
20
21
22
23
24
24
29
29
31
32
39
39
39
40
41
41
41
41
43
43
45
46
46
46
46
47
47
51
56
61
63
64
64
64
64
65
65
65
67
67
71
72
75
75
75
76
82
84
84
85
86
88
90
90
90
90
91
93
108
110
110
112
112
131
133
133
135
154
160
160
160
160
174
178
178
196
198
198
198
200
210
212
212
215
215
223
224
224
224
226
228
228
228
228
229
229
231
243
243
245
520
524
525
9
9
13
14
20
20
21
21
23
23
25
25
32
33
34
39
39
39
40
41
41
44
44
44
46
48
48
51
56
56
62
62
62
64
64
65
66
66
66
68
68
72
73
73
73
75
76
77
77
86
86
87
88
90
90
90
92
92
94
94
109
111
111
113
132
134
136
155
161
161
175
179
197
199
199
201
211
212
213
213
217
224
225
225
227
229
229
229
230
230
244
244
246
355
521
525
526
14
15
21
21
21
22
22
23
23
26
26
31
33
34
39
45
45
47
48
49
51
51
56
57
64
65
66
67
69
69
73
75
77
77
77
77
77
84
86
87
87
87
88
89
91
93
93
95
95
110
112
112
114
133
135
137
156
162
162
176
176
176
176
180
180
198
200
200
202
212
213
213
214
215
219
224
225
226
228
228
228
228
229
230
230
245
245
247
353
355
356
522
526
527
13
15
16
21
23
23
23
23
27
27
29
31
31
39
40
41
41
44
44
46
46
48
49
57
58
58
58
58
66
66
66
66
67
70
70
73
73
77
78
84
84
86
86
87
88
89
90
90
92
94
94
96
96
111
113
115
136
138
157
163
163
177
177
177
177
181
181
200
201
201
202
203
213
214
215
215
219
219
220
224
224
226
227
229
229
229
229
230
246
246
248
354
356
523
527
528
9
13
13
15
21
21
21
23
23
23
24
24
28
28
33
33
34
39
41
41
42
42
44
47
47
49
49
49
50
56
56
58
58
67
67
67
67
68
68
69
71
71
78
79
84
84
86
87
87
89
90
91
93
97
97
112
114
116
137
137
139
139
158
164
164
178
178
178
178
182
182
201
202
202
203
204
213
215
217
219
219
219
220
221
227
228
230
230
230
230
231
247
247
249
354
524
528
529
15
15
15
16
16
16
16
21
23
23
24
25
25
29
29
31
31
34
41
43
43
44
46
48
48
48
48
48
48
50
50
51
51
56
56
56
62
62
62
62
67
68
68
68
68
69
69
69
69
70
72
72
77
79
80
85
87
87
87
87
88
89
89
91
91
92
92
94
98
98
115
117
138
138
140
140
159
165
179
183
183
202
203
204
205
215
220
221
222
222
228
228
229
231
231
231
248
248
250
356
525
529
530
1
13
13
16
17
17
25
26
26
28
28
30
30
33
33
34
41
41
43
47
48
49
49
49
51
51
51
51
51
51
51
56
56
57
58
58
66
67
67
67
68
69
69
69
69
69
69
70
70
71
71
73
73
73
77
77
79
87
87
87
88
88
88
88
90
91
92
92
95
99
99
110
114
116
116
118
118
131
135
139
139
141
141
160
160
162
162
166
166
180
184
184
204
205
206
206
208
215
219
219
220
221
222
222
223
229
229
230
231
232
249
249
251
356
526
530
531
2
2
18
18
23
26
27
29
29
31
31
31
34
43
43
43
48
48
48
50
50
51
52
52
58
58
59
59
62
67
68
69
69
70
70
71
71
71
72
72
74
74
79
79
79
80
80
80
80
85
87
87
88
90
90
91
96
100
100
111
115
117
117
119
119
132
136
142
142
161
161
163
163
167
167
181
185
185
205
206
207
207
208
209
220
221
223
224
230
231
231
233
250
250
252
527
531
532
1
3
3
13
18
23
25
25
25
26
28
30
30
32
33
33
34
41
41
43
51
51
52
53
53
60
60
62
67
68
69
69
70
70
71
71
72
72
75
75
77
77
80
81
81
88
88
88
88
91
97
101
101
112
116
118
118
120
120
133
137
143
143
162
162
164
164
168
168
182
184
184
186
186
206
207
208
208
209
210
219
221
222
224
225
229
231
232
234
251
251
253
528
532
533
1
1
4
4
4
4
18
18
18
23
23
23
25
26
26
29
31
31
31
33
33
34
43
43
43
50
51
52
52
52
53
54
54
56
58
58
62
67
69
70
70
71
71
72
72
76
76
82
82
83
83
88
88
90
90
90
98
102
102
117
121
121
138
144
144
165
169
169
183
185
185
187
207
208
208
208
209
209
210
211
219
219
220
223
225
226
233
235
252
252
254
529
533
534
5
5
5
5
13
13
18
26
27
27
30
32
33
33
33
34
34
34
34
34
41
41
43
48
51
51
51
53
53
55
58
60
60
69
69
71
71
72
73
77
77
77
82
88
88
99
103
103
118
122
122
139
145
145
166
170
170
184
186
186
188
204
207
208
209
209
209
209
210
211
219
220
221
224
226
227
231
234
234
236
253
253
255
530
534
535
6
6
13
18
18
18
18
26
27
31
31
31
33
34
35
35
35
43
43
43
52
53
53
54
54
54
56
58
58
60
71
71
71
72
74
76
76
78
78
82
82
82
87
88
88
90
100
104
104
119
123
123
140
146
146
167
171
171
185
187
189
205
210
210
210
211
211
217
221
222
225
227
235
235
237
254
254
256
356
531
535
536
7
7
13
13
13
18
18
19
26
26
26
27
27
27
30
32
34
34
36
36
36
41
41
43
43
43
43
51
51
54
55
55
57
60
60
60
71
71
71
72
75
77
77
77
77
79
82
85
85
86
87
87
87
87
87
101
105
105
120
124
124
141
147
147
168
172
172
186
188
190
206
209
209
211
211
211
211
212
218
222
225
236
236
238
255
257
354
356
357
532
536
537
8
8
18
19
20
26
27
27
27
27
28
31
31
35
35
36
37
43
43
43
43
44
44
53
53
54
54
56
56
56
58
58
58
58
58
60
69
69
69
71
72
73
73
76
77
78
78
80
82
82
82
82
84
84
85
86
87
87
87
87
88
88
88
102
104
104
106
106
121
125
125
142
148
148
169
173
187
189
191
202
202
204
206
207
207
210
212
213
218
218
222
222
222
223
227
231
231
237
237
239
256
258
355
357
533
537
538
7
7
9
20
20
27
28
29
31
32
36
36
36
36
38
41
45
45
51
51
54
55
57
57
59
60
60
60
60
60
68
69
69
71
73
73
73
73
73
77
77
77
77
79
81
82
82
83
85
87
87
87
87
88
91
103
105
105
107
122
126
126
143
149
149
149
149
170
170
170
170
174
174
186
188
190
190
192
200
203
203
205
206
207
211
213
214
223
223
224
227
229
232
232
238
238
240
256
257
259
355
534
538
539
8
8
10
18
20
20
29
29
31
31
36
37
37
37
39
45
46
53
53
54
56
58
58
60
60
60
67
68
68
69
69
69
69
70
73
74
78
80
82
82
83
84
85
88
88
88
88
88
91
91
104
106
106
108
123
127
127
144
150
150
150
150
171
171
171
171
175
175
187
191
191
193
201
204
204
206
207
208
212
214
215
218
222
222
222
224
224
230
232
233
239
239
241
254
257
258
260
357
535
539
540
9
10
11
18
20
20
20
27
27
29
36
36
37
38
38
38
38
38
38
40
41
41
46
51
51
53
54
59
59
60
60
60
60
61
61
67
67
68
69
70
70
71
74
75
81
83
83
83
83
84
84
87
88
88
88
89
91
105
107
109
124
128
128
145
151
151
151
151
172
172
172
172
176
176
188
192
192
194
202
205
205
206
206
207
208
209
211
213
214
216
218
218
223
223
223
230
230
232
233
234
240
240
242
258
259
261
357
536
540
541
4
5
5
5
5
10
11
12
18
18
18
20
20
20
21
27
29
29
30
31
36
36
36
38
38
39
39
41
41
46
46
47
53
53
53
54
54
54
54
58
58
60
60
60
61
62
62
67
68
69
70
71
71
72
73
75
76
76
80
82
82
82
83
84
84
84
84
86
88
88
89
89
91
106
108
110
125
129
129
146
152
152
173
177
177
193
193
195
202
203
207
207
207
207
209
211
214
215
215
215
217
224
224
224
233
234
235
241
241
243
259
260
262
537
541
542
4
4
5
6
11
12
13
18
20
20
21
22
27
29
29
29
30
31
31
36
38
40
40
40
41
42
45
45
45
47
48
48
51
51
54
55
55
60
61
62
63
63
67
68
69
69
69
70
71
72
72
73
73
75
77
81
82
83
83
84
84
84
85
85
86
86
89
91
109
111
126
128
128
130
130
147
153
153
174
178
178
194
194
196
203
203
205
208
208
209
209
215
216
216
217
217
218
222
225
225
232
232
234
235
242
242
244
260
261
263
538
542
543
6
7
7
12
13
14
22
23
29
29
31
31
31
31
31
36
37
38
38
39
41
41
43
45
46
48
48
48
48
48
56
56
58
60
62
62
62
62
62
63
64
64
67
68
69
70
71
72
75
75
75
76
76
76
76
78
82
82
82
82
84
84
84
84
84
85
86
86
86
87
88
88
104
108
110
110
112
112
127
129
129
131
148
154
154
175
179
179
195
195
197
204
205
209
209
209
209
209
210
216
217
217
218
218
219
223
225
230
232
233
243
243
245
261
262
264
539
543
544
1
1
7
7
7
7
13
13
15
20
23
29
29
31
32
36
38
38
39
39
40
42
42
44
45
45
48
49
51
56
59
61
63
63
63
63
63
64
65
65
71
72
73
73
76
77
77
82
83
84
84
84
85
86
87
87
87
87
87
88
105
109
111
111
113
113
128
130
130
132
149
155
155
176
178
178
180
180
194
196
196
196
198
205
205
207
209
209
209
210
211
217
218
218
219
219
220
225
230
230
232
232
233
234
244
244
246
262
263
265
540
544
545
1
1
1
4
5
7
14
14
16
16
20
22
22
22
23
32
33
38
40
40
43
43
45
49
50
51
56
56
58
58
58
58
60
62
64
64
64
65
65
66
66
72
78
78
82
83
84
84
84
85
85
85
85
86
86
87
88
88
106
110
112
112
114
114
129
131
133
150
156
177
179
179
181
195
197
197
199
210
211
212
218
219
219
220
220
221
223
233
233
234
235
245
245
247
263
264
266
541
545
545
546
7
8
12
13
15
15
17
17
20
20
20
22
23
23
31
33
34
38
38
40
42
44
44
44
46
48
50
51
51
51
56
57
62
63
63
65
65
65
65
67
67
73
78
80
80
84
84
84
84
85
85
86
87
87
87
87
87
87
89
89
111
115
115
130
132
134
151
151
153
153
157
157
178
180
180
182
196
196
198
198
198
200
202
202
209
209
211
212
219
220
220
221
221
222
234
235
235
246
246
248
264
265
267
542
545
546
547
8
9
13
14
18
18
23
24
24
29
31
31
40
40
40
43
45
45
45
47
48
48
57
58
58
58
58
58
64
65
68
68
78
78
78
82
84
84
84
85
85
86
86
86
87
88
88
90
90
112
116
116
133
135
152
152
154
154
158
158
179
181
183
197
198
198
198
199
199
199
200
201
203
203
209
210
220
221
222
222
222
223
247
247
249
265
266
268
355
543
547
548
7
7
7
8
15
19
19
23
24
33
33
34
38
38
40
44
46
46
48
50
50
51
56
56
58
58
58
65
65
66
69
69
73
73
78
84
84
85
86
86
87
87
87
88
88
91
91
113
117
117
134
134
136
136
153
153
155
155
159
159
180
182
184
198
199
199
199
200
200
200
201
202
204
204
209
209
211
220
221
222
222
224
248
248
250
266
267
269
356
544
548
549
8
8
8
9
9
9
9
16
20
20
23
23
23
24
24
24
31
31
34
40
40
40
47
47
48
48
49
51
56
56
56
58
64
64
65
66
66
66
66
67
70
70
73
78
78
78
78
83
83
83
83
85
87
87
88
88
88
88
92
92
114
118
118
135
135
137
137
156
160
160
181
183
185
199
200
200
200
201
201
202
202
202
203
205
205
209
209
210
223
225
235
249
251
267
268
270
356
545
549
550
7
7
9
10
10
17
19
19
21
21
23
24
24
24
24
25
33
33
34
38
38
40
46
48
48
48
50
50
50
51
51
56
56
57
58
58
64
64
64
65
65
66
66
66
66
66
67
67
67
67
71
71
73
73
73
78
78
79
85
85
86
88
88
88
88
89
93
93
115
119
119
128
132
136
136
138
138
157
161
161
180
182
184
184
186
199
200
201
201
201
202
203
203
203
204
209
210
211
221
224
224
225
225
226
233
250
252
268
269
271
546
550
551
11
11
18
20
20
22
24
25
26
31
31
34
40
40
40
47
48
48
49
49
51
51
58
58
59
59
64
66
66
66
66
67
67
67
67
67
67
68
68
68
72
72
78
79
80
84
85
85
86
87
88
88
88
90
94
94
116
120
120
129
133
139
139
158
162
162
181
185
185
187
201
201
203
204
204
204
205
207
211
212
223
225
225
226
226
227
250
251
253
269
270
270
272
272
357
357
547
551
552
7
11
19
21
21
23
26
26
33
33
34
38
38
40
40
40
40
48
50
50
50
50
51
52
60
60
66
67
67
67
67
68
68
68
68
69
69
69
73
73
80
80
82
82
84
84
85
85
85
85
86
86
88
88
91
95
95
117
121
121
130
134
140
140
159
163
163
182
186
186
188
201
202
204
205
205
205
206
208
208
212
224
226
226
226
227
228
248
251
252
254
270
273
273
358
358
358
358
548
552
553
11
11
11
20
22
24
24
24
26
31
31
33
34
40
40
40
40
41
41
48
48
50
51
51
51
53
56
58
58
65
65
65
66
67
68
68
69
69
69
69
69
70
74
74
78
80
80
80
80
80
80
82
83
84
84
84
84
85
85
86
92
94
94
96
96
118
122
122
135
141
141
160
164
187
187
189
194
196
200
200
203
203
205
205
206
207
208
208
209
212
212
212
212
213
224
224
226
227
227
227
228
229
235
252
253
255
271
274
274
358
358
358
358
359
359
549
553
554
7
7
11
21
23
24
25
26
26
27
33
33
33
34
34
34
34
38
42
42
50
50
50
51
51
51
51
52
52
54
58
60
60
65
65
67
69
69
69
69
69
69
71
75
75
78
80
80
80
80
80
82
84
84
85
93
95
95
97
119
123
123
136
142
142
161
161
161
161
165
165
188
188
190
195
196
196
197
201
201
205
205
205
206
207
208
210
212
213
213
213
214
227
228
228
228
229
230
236
236
253
254
256
272
275
275
359
359
360
360
550
554
555
1
7
11
11
11
11
22
24
24
26
26
26
26
27
28
28
31
31
34
35
35
42
43
48
48
51
52
52
53
55
58
58
60
65
65
66
69
70
72
74
74
76
76
78
78
78
80
80
80
81
82
85
85
88
88
94
96
96
98
120
122
122
124
124
137
143
143
162
162
162
162
166
166
189
189
191
196
197
197
198
202
202
205
208
208
209
211
212
212
212
213
214
214
214
226
226
228
229
229
229
231
233
235
254
255
257
273
276
276
360
360
551
555
556
1
1
7
7
7
11
11
12
21
23
25
25
26
26
27
28
28
28
28
28
36
36
38
38
43
50
52
53
53
54
54
56
56
60
60
60
70
71
73
75
75
77
78
80
80
81
82
84
85
85
86
86
86
87
87
87
95
97
99
121
123
123
125
138
144
144
163
163
163
163
167
167
188
190
190
190
192
197
198
198
199
203
203
207
207
208
208
209
210
212
213
213
213
214
215
224
226
227
230
230
232
234
234
236
236
255
256
258
274
277
277
552
556
557
1
4
5
11
12
13
22
26
26
26
26
28
28
29
31
36
38
43
43
44
48
51
53
53
55
55
57
57
58
58
58
58
60
69
71
72
74
76
76
78
79
82
83
83
83
83
84
84
85
86
86
88
88
88
96
98
100
122
124
124
126
139
145
145
164
168
168
189
191
191
193
197
199
199
199
200
200
208
210
211
213
214
214
214
215
216
224
224
226
226
227
228
231
231
233
234
236
237
237
256
257
259
275
278
278
358
553
557
558
1
6
13
13
23
27
27
29
29
30
31
36
36
38
42
42
42
44
45
45
48
52
53
53
54
56
56
58
58
60
60
60
60
60
65
69
69
71
75
77
79
80
80
82
83
83
83
83
83
83
87
87
99
101
123
125
127
140
146
146
146
146
165
169
169
190
192
192
194
194
198
198
199
201
201
209
211
212
212
213
215
215
216
217
227
227
228
229
232
232
234
234
236
237
238
238
257
258
260
276
279
279
358
358
359
557
558
559
4
5
7
11
13
13
28
28
28
30
30
31
31
31
36
37
42
43
45
45
45
45
45
48
48
53
54
55
59
59
60
60
61
63
71
71
71
72
72
72
72
76
78
79
79
80
80
80
82
82
83
88
94
98
100
100
102
102
124
126
128
141
147
147
147
147
166
170
170
192
193
193
194
195
195
198
199
199
199
202
202
210
212
213
213
215
217
228
229
229
233
233
235
237
238
258
259
261
277
280
280
358
359
360
553
558
559
560
6
7
8
11
13
13
13
26
28
28
29
29
31
36
36
37
38
38
38
38
42
42
45
46
54
55
55
55
55
56
60
60
60
60
60
60
61
61
63
64
64
69
69
72
73
73
79
80
80
81
82
83
84
84
85
85
85
95
99
101
101
103
103
127
129
142
148
148
148
148
167
169
169
171
171
193
194
194
195
196
196
199
200
200
203
203
203
211
212
214
215
217
234
234
236
238
259
260
262
278
281
281
360
361
559
560
561
4
5
5
7
8
9
11
11
11
13
13
13
14
30
30
30
30
31
31
32
36
36
36
38
38
46
47
53
53
55
55
57
58
58
60
61
61
61
61
62
63
64
64
65
74
74
74
78
79
80
80
82
82
82
82
82
82
82
83
83
83
84
85
85
85
96
100
102
102
104
104
128
128
130
130
143
149
149
168
170
170
172
194
195
196
197
197
200
201
201
203
205
212
213
213
213
215
217
235
235
236
236
237
260
261
263
279
282
356
361
560
561
562
4
8
9
10
11
13
13
14
15
28
28
29
31
31
31
31
33
36
45
47
48
53
53
53
58
60
61
62
62
62
63
63
64
64
65
66
69
74
75
77
77
79
80
80
80
80
81
81
82
82
83
83
84
84
84
84
84
84
85
86
101
105
105
129
129
131
131
144
150
150
169
171
171
173
192
192
196
196
196
197
197
198
201
201
203
207
213
214
216
229
234
234
236
236
236
237
237
238
261
262
264
280
283
357
361
362
561
562
563
7
7
9
10
11
15
16
30
30
30
31
32
32
34
36
37
38
38
42
45
45
48
53
53
54
55
55
59
61
62
62
62
63
63
63
63
64
64
65
66
74
74
74
76
79
80
82
82
82
82
83
83
83
83
84
84
85
86
87
102
106
106
122
126
130
130
132
132
145
151
151
170
172
174
188
193
193
194
197
197
197
198
199
203
207
207
208
214
215
217
227
237
237
237
238
238
239
262
263
265
281
284
357
361
363
562
563
564
7
7
7
7
10
10
12
13
16
28
28
31
31
33
33
35
36
38
38
39
39
47
47
48
55
55
56
56
60
61
63
63
63
63
64
64
64
64
64
65
66
69
69
74
79
81
83
83
83
83
84
84
85
85
85
85
87
103
107
107
123
127
133
133
146
152
152
171
173
175
189
194
194
195
198
198
198
199
200
205
205
207
207
207
208
209
215
216
218
238
238
239
239
240
263
264
264
266
266
282
285
357
361
362
364
563
564
565
4
5
5
7
11
11
13
13
13
15
15
15
16
30
30
31
34
34
36
38
40
40
45
45
48
57
57
58
58
58
58
61
64
64
64
64
65
65
65
65
65
66
69
74
74
74
74
79
80
80
82
82
83
84
84
85
85
86
86
86
104
108
108
124
128
134
134
147
153
172
174
176
190
195
195
196
199
199
199
200
201
206
207
207
208
209
210
216
217
219
239
239
239
239
239
240
241
264
267
267
281
281
283
286
361
362
363
564
565
566
1
4
4
5
5
6
7
8
9
10
12
12
13
13
13
14
14
15
16
16
28
28
30
31
33
35
35
35
37
38
38
40
47
47
48
53
55
55
62
62
63
63
63
65
65
65
65
65
66
66
66
69
69
69
74
74
75
80
81
83
83
84
84
84
87
87
87
105
109
109
129
135
135
148
148
150
150
154
154
171
173
175
175
177
191
191
194
196
197
197
199
200
201
201
202
207
207
207
208
208
209
210
215
215
217
218
220
229
240
240
240
241
242
265
268
268
282
284
287
357
362
363
565
566
567
1
1
4
5
6
7
8
9
10
11
15
15
16
17
17
30
30
30
31
31
31
31
34
36
36
38
40
40
40
45
45
48
55
57
57
58
63
65
66
67
67
74
75
76
79
81
81
82
82
84
84
84
84
88
88
106
110
110
130
136
136
149
149
151
151
155
155
172
176
176
178
192
195
196
197
199
201
202
203
208
208
209
209
213
216
216
218
219
221
230
230
240
241
241
241
243
266
269
269
283
285
288
363
566
567
568
1
1
1
6
7
7
7
7
7
7
8
8
12
16
16
16
17
28
28
31
32
32
35
37
37
38
38
39
40
47
47
48
55
55
57
58
64
65
66
66
66
68
68
76
76
79
81
82
82
82
82
82
82
82
83
83
83
85
89
89
107
111
111
131
137
137
150
150
152
152
156
156
173
177
177
179
193
194
194
196
197
198
199
201
201
203
204
207
209
209
210
210
214
216
217
219
220
222
227
229
237
238
241
242
244
267
270
270
284
286
289
361
364
567
567
568
569
7
7
7
7
8
8
8
8
8
9
9
9
9
9
13
16
16
16
17
17
17
17
17
33
33
38
38
40
40
40
40
45
45
47
48
57
57
57
58
65
65
66
67
67
67
69
74
76
76
77
77
77
80
80
82
82
82
82
83
83
83
84
84
84
86
90
90
108
112
112
132
138
138
153
157
157
178
178
180
190
190
194
194
194
195
195
195
197
198
199
202
204
205
207
207
208
210
211
211
214
214
216
217
218
221
223
228
228
230
230
239
242
243
245
268
271
271
285
287
290
290
357
362
568
568
569
570
4
5
7
7
7
9
9
9
10
10
10
10
14
16
16
16
17
17
17
17
18
18
18
28
33
37
38
38
39
39
39
40
41
47
47
47
48
48
48
48
55
55
55
55
57
65
65
66
67
68
68
70
74
76
76
76
76
77
79
80
80
80
82
83
83
83
87
91
91
109
113
113
133
139
139
154
158
158
179
179
181
186
191
191
192
195
195
195
195
196
196
197
199
203
205
206
207
208
209
210
212
212
217
218
219
219
222
222
224
228
230
231
231
239
239
239
239
240
243
244
246
269
272
272
286
287
291
291
363
569
570
571
5
7
7
8
10
10
11
11
11
11
15
17
17
17
18
19
19
28
33
33
38
40
40
40
40
40
42
45
45
48
49
49
57
57
57
57
57
67
67
67
67
69
71
74
74
74
76
76
76
77
80
80
80
80
83
84
84
88
92
92
110
112
112
114
114
134
140
140
140
140
155
159
159
180
180
182
187
188
192
192
192
193
196
196
197
197
199
204
205
206
207
209
210
212
212
216
216
218
219
223
223
225
228
230
231
232
232
239
240
240
241
244
245
247
270
273
273
287
292
292
364
570
571
572
6
7
8
8
9
11
12
12
16
18
18
19
19
20
28
28
33
34
38
38
39
40
40
40
40
41
41
43
50
50
57
57
60
60
61
61
67
67
67
68
68
70
72
74
76
76
76
77
78
79
79
82
82
82
84
84
89
93
93
111
113
113
115
135
141
141
141
141
156
160
160
179
181
181
181
183
188
189
192
193
193
193
194
195
197
197
199
205
206
206
208
210
214
216
217
224
224
226
231
232
241
241
242
245
246
248
271
274
274
288
293
293
361
364
571
572
573
7
7
7
8
9
11
11
11
13
13
17
17
17
19
19
21
33
33
34
35
35
35
35
40
40
40
40
41
41
42
42
44
45
50
57
57
57
57
58
60
60
60
61
61
61
61
61
62
62
65
65
65
67
68
69
69
71
73
78
79
79
81
82
82
82
82
83
84
84
84
84
90
92
92
94
94
112
114
114
116
136
142
142
142
142
157
161
180
182
182
184
189
189
190
192
193
194
194
195
197
199
206
206
206
207
207
209
210
210
210
211
214
214
216
216
217
218
225
225
227
232
237
242
242
246
247
249
272
275
275
289
294
294
357
362
572
573
574
7
7
8
8
8
9
9
9
9
10
11
14
14
17
18
19
19
20
20
22
28
33
33
33
35
35
38
42
42
43
43
45
45
50
50
55
55
57
58
59
60
61
61
61
61
62
62
62
63
63
65
66
67
69
69
69
69
69
70
72
72
74
74
76
77
78
79
79
79
81
82
82
82
82
82
83
83
83
84
84
91
93
93
95
113
115
117
137
143
143
158
158
158
158
162
162
181
183
183
185
191
193
194
194
195
195
195
197
197
201
202
207
208
210
211
211
212
217
217
218
219
226
226
228
230
230
238
243
247
248
250
273
276
290
295
295
361
363
573
574
575
7
7
7
9
10
10
11
11
11
11
11
13
13
15
15
17
19
19
19
19
20
21
21
21
23
33
42
43
44
45
45
46
50
51
57
59
60
61
62
63
63
63
64
64
64
65
65
67
69
70
71
73
73
75
75
76
76
78
78
79
79
80
80
81
81
82
82
82
83
92
94
94
96
114
116
118
138
144
144
159
159
159
159
163
163
183
184
184
185
186
191
194
195
195
196
197
201
201
202
203
203
203
206
208
209
210
210
210
211
212
212
218
219
219
227
227
228
228
229
230
231
231
238
242
242
244
248
249
251
274
277
291
296
296
362
362
364
364
574
575
576
7
7
7
11
11
11
11
12
12
14
14
16
18
19
19
20
21
21
21
21
21
22
22
24
33
34
35
35
38
38
41
43
43
45
45
47
47
51
52
52
52
52
59
59
59
60
63
63
63
64
64
64
68
70
71
72
74
74
76
76
76
76
78
79
79
79
80
80
81
82
82
83
84
93
95
97
117
119
139
145
145
160
160
160
160
164
164
184
185
185
186
187
193
195
196
197
199
201
201
201
202
203
204
204
204
206
206
209
210
211
211
211
212
228
228
230
231
232
232
238
243
243
245
249
250
252
275
278
292
297
297
362
362
364
364
365
365
575
576
577
1
7
11
11
12
13
13
15
15
17
19
19
19
21
22
23
23
25
33
35
35
36
36
38
42
43
43
44
44
46
46
48
48
50
50
52
52
60
60
60
61
64
69
71
72
72
72
73
76
77
77
78
79
79
79
79
80
80
80
80
80
81
82
82
82
94
96
98
118
118
120
120
140
146
146
161
165
165
184
185
186
187
188
193
195
197
202
203
204
205
205
205
210
211
212
212
212
213
229
229
231
233
233
238
242
244
244
250
251
253
276
279
293
298
298
365
365
366
366
576
577
578
1
1
11
11
11
13
13
14
16
18
20
22
23
24
24
26
35
37
37
38
42
42
42
43
44
45
45
45
47
47
49
49
50
50
50
55
55
55
55
61
62
62
65
69
69
71
74
76
77
77
77
77
78
78
79
79
79
80
80
80
80
80
80
80
83
97
99
119
119
121
121
141
147
162
166
166
185
186
186
187
188
188
189
190
190
190
197
201
201
203
204
206
206
206
210
211
212
213
213
214
219
230
230
232
233
233
233
233
234
243
245
251
252
254
275
275
277
280
294
299
299
366
366
577
578
579
7
7
11
11
13
13
15
17
19
21
23
24
25
25
27
35
35
37
42
43
45
45
45
45
45
45
46
50
50
50
50
51
52
52
59
60
62
62
62
62
71
71
71
72
72
72
72
75
78
78
79
79
79
80
80
80
92
96
98
98
100
100
112
116
120
120
122
122
142
142
144
144
148
148
163
167
167
184
186
187
187
188
189
189
190
190
191
191
191
195
197
202
207
207
207
211
212
213
213
215
217
231
231
233
234
234
235
242
244
252
253
255
276
278
281
295
300
300
362
362
578
579
580
7
11
11
11
11
11
13
13
13
16
18
19
20
21
21
26
26
28
37
37
37
42
42
45
46
47
51
51
52
52
53
53
55
62
69
69
72
73
73
76
76
78
78
80
80
82
84
84
93
97
99
99
101
101
113
117
123
123
143
143
145
145
149
149
164
166
166
168
168
185
186
187
187
188
188
189
190
190
191
191
192
192
192
195
201
203
207
208
208
213
213
214
216
232
232
234
235
235
238
242
243
253
254
254
256
256
277
279
282
296
301
363
363
364
364
364
579
580
581
7
7
7
11
11
11
11
11
12
13
13
13
14
15
17
19
19
21
23
23
24
27
27
29
35
35
37
46
47
48
52
52
54
54
55
62
63
74
74
76
77
78
81
81
82
82
82
82
82
94
98
100
100
102
102
114
118
124
124
144
144
146
146
150
150
165
167
167
169
186
187
188
188
189
189
190
191
191
192
192
193
193
193
201
201
202
208
208
211
215
217
231
233
233
235
238
242
243
244
254
257
257
278
280
283
297
302
365
365
365
580
581
582
11
11
12
13
13
13
14
15
16
20
20
21
21
22
24
26
28
28
28
30
37
37
37
45
47
48
49
50
52
52
53
53
55
62
63
64
69
72
74
77
77
77
78
80
82
82
82
84
84
84
99
103
103
119
125
125
147
151
151
166
168
168
170
187
187
188
189
189
190
190
190
191
191
192
193
193
201
202
203
213
216
216
218
219
233
234
234
236
243
244
245
255
258
258
279
281
284
284
298
303
365
366
366
581
582
583
13
13
15
16
17
21
21
23
23
23
24
27
29
29
31
35
35
37
42
45
45
50
52
54
54
54
54
60
61
62
62
64
72
74
74
74
76
79
79
79
80
80
80
82
82
83
83
83
100
104
104
120
126
126
148
152
152
167
169
171
186
189
189
190
190
191
191
193
193
194
199
203
204
217
217
219
220
220
233
233
233
233
234
235
235
237
245
246
256
259
259
280
281
285
285
299
304
366
366
582
583
584
11
13
13
13
16
21
21
22
22
24
24
28
30
30
32
37
37
37
47
47
48
51
52
52
54
55
55
60
60
60
61
61
61
61
62
64
64
64
69
69
74
78
78
78
79
79
79
79
79
79
79
79
79
80
80
80
80
82
83
83
83
84
84
84
101
105
105
121
127
127
149
153
153
168
170
172
187
189
191
191
192
192
192
192
193
194
195
198
200
204
217
218
218
219
220
233
234
234
235
236
236
238
245
245
245
245
247
257
260
260
281
286
286
300
305
583
584
585
4
4
5
11
13
13
13
13
15
15
15
16
23
23
23
23
24
25
31
31
33
35
35
37
37
37
37
45
45
48
52
54
54
54
56
56
60
60
61
61
61
61
61
62
62
62
63
64
64
64
64
65
69
74
74
74
74
76
76
76
78
78
79
79
80
80
80
80
80
80
80
80
80
80
80
81
82
82
82
85
85
102
106
106
122
128
128
150
154
154
169
171
173
185
185
186
188
188
189
193
193
193
195
196
199
199
200
200
200
204
204
204
205
218
218
219
219
220
220
221
235
235
236
237
239
246
246
248
258
261
261
282
287
287
299
300
301
306
584
585
586
5
5
6
11
11
11
13
13
13
13
13
13
14
15
16
16
21
21
23
24
24
24
26
30
32
32
32
34
37
37
37
37
38
38
47
47
48
52
52
52
52
53
54
57
57
61
61
62
62
62
62
62
63
63
63
63
63
64
64
65
66
66
69
69
69
72
72
73
74
74
75
77
77
77
77
78
78
79
79
80
80
80
82
82
82
84
84
86
86
103
107
107
123
129
129
151
155
168
170
172
172
174
182
183
186
186
187
188
189
189
189
191
193
194
196
197
200
200
201
205
205
206
213
213
218
220
220
220
221
221
222
231
236
236
238
240
247
247
259
262
262
283
288
288
301
302
307
585
586
587
1
6
7
11
13
13
14
15
16
17
17
23
23
23
23
24
24
24
24
25
25
25
27
31
33
33
35
35
39
39
45
45
48
54
54
54
54
54
54
58
58
62
63
63
64
64
64
64
66
66
66
66
66
74
75
76
76
76
77
77
77
77
77
78
78
80
82
83
85
85
87
104
108
108
124
130
130
130
130
152
152
152
152
156
156
169
173
173
175
178
182
183
184
186
186
187
187
188
189
190
191
193
195
197
198
200
201
201
202
204
204
204
206
206
211
214
214
218
220
221
221
221
222
222
223
232
237
238
239
241
260
263
263
284
289
289
302
303
308
586
587
588
1
1
4
5
5
7
7
8
15
16
16
17
21
21
24
24
25
25
26
26
28
32
34
34
36
39
40
47
47
48
54
54
55
57
57
59
59
62
62
64
64
66
67
73
76
76
76
78
78
80
82
82
82
82
84
86
86
88
105
109
109
125
131
131
131
131
153
153
153
153
157
157
170
174
174
176
179
182
183
184
185
187
187
188
188
189
190
191
196
197
199
200
200
202
202
203
205
205
205
212
214
215
221
222
222
222
224
232
236
236
236
238
239
240
242
243
245
261
264
264
285
290
290
303
304
304
309
309
587
588
589
4
4
5
5
5
6
8
8
9
13
16
16
16
16
17
17
17
25
26
26
27
27
29
35
35
35
35
37
40
45
45
47
48
54
54
54
54
55
56
58
58
60
67
68
72
74
76
76
76
76
77
77
77
78
82
82
85
87
89
106
110
110
126
132
132
132
132
154
154
154
154
158
158
175
175
177
180
183
184
185
185
186
188
188
188
188
189
190
191
193
197
198
198
200
203
203
204
206
206
206
212
212
214
215
216
222
223
223
225
232
237
237
239
240
241
243
245
245
246
262
265
265
286
291
291
304
310
310
588
589
590
6
7
9
9
10
13
15
15
15
16
16
17
17
17
17
18
21
26
28
28
30
34
35
36
36
36
38
40
40
41
47
47
47
48
48
48
48
52
52
54
55
56
57
59
59
61
66
68
69
69
69
74
76
76
76
76
77
78
78
79
82
86
88
90
107
111
111
127
133
133
155
159
159
176
176
178
178
181
184
184
185
186
188
189
189
189
189
191
192
193
198
199
201
203
204
204
205
207
207
215
216
217
220
220
224
224
226
232
236
238
238
241
242
244
245
245
246
247
263
266
287
292
292
305
311
311
365
589
590
591
4
5
7
10
10
11
13
13
13
15
16
16
17
18
19
21
26
26
27
29
29
29
31
35
35
37
37
39
39
39
39
41
42
42
45
45
48
49
49
54
56
57
58
60
62
62
66
66
68
74
74
74
76
76
76
76
76
77
78
79
79
89
91
108
110
110
112
112
128
134
134
156
160
160
177
177
179
179
181
184
184
185
185
188
190
190
191
192
192
193
199
200
202
204
205
205
207
214
214
216
217
218
218
220
221
221
225
225
227
237
239
242
243
245
245
246
247
248
248
264
267
288
293
293
306
312
312
366
366
366
590
591
592
7
7
9
10
11
12
16
17
17
19
19
21
21
26
27
28
30
30
32
36
38
38
39
40
40
42
42
42
42
42
50
50
56
56
56
57
59
61
63
68
68
68
69
69
69
69
72
72
74
76
76
76
77
77
78
79
80
80
82
84
88
90
90
92
92
109
111
111
113
129
135
135
157
161
161
176
178
178
178
180
180
185
185
186
190
191
191
192
192
192
193
194
200
201
203
207
212
214
215
221
222
222
226
226
228
236
238
243
243
244
246
247
248
265
268
289
294
294
307
313
313
366
367
367
591
592
593
1
4
5
7
7
10
11
12
13
16
17
17
17
19
26
26
27
28
28
28
28
29
31
31
33
39
39
39
39
41
42
43
45
50
57
57
57
58
60
61
62
64
66
66
69
70
70
73
74
76
76
76
76
77
78
78
78
78
78
78
79
79
82
83
85
89
91
91
93
93
110
112
112
114
130
136
136
158
160
160
162
162
177
179
179
181
181
181
186
186
187
187
189
193
194
195
201
202
204
205
212
212
214
214
215
216
223
223
227
227
229
232
236
237
244
244
244
245
247
248
248
266
269
290
295
308
314
314
367
367
592
593
594
4
4
5
5
5
6
7
7
12
13
14
16
16
16
17
17
17
17
19
19
20
21
26
26
26
28
28
32
32
34
40
40
42
43
44
45
50
50
52
52
52
52
57
58
59
59
60
60
60
61
61
61
61
61
62
63
63
65
65
71
71
73
73
73
74
76
76
76
76
77
77
77
77
78
78
79
79
79
79
79
80
80
80
82
83
83
83
86
90
92
92
94
94
111
113
115
131
137
159
161
161
163
178
179
180
180
181
182
184
184
187
187
189
192
192
194
194
195
202
203
205
215
215
216
217
223
223
223
223
224
228
228
230
232
236
237
238
245
246
248
249
249
265
265
267
270
291
296
309
315
315
593
594
595
5
6
7
7
7
7
7
7
7
12
13
14
15
16
17
17
17
17
17
18
19
19
19
20
21
21
26
31
33
33
33
35
41
42
43
44
45
45
45
50
51
56
57
58
59
59
59
59
60
60
61
61
61
61
61
62
62
62
62
63
64
64
64
66
66
66
69
71
72
72
72
74
74
75
76
76
76
77
78
78
78
78
79
80
80
82
82
82
91
95
95
112
114
116
132
132
134
134
138
138
160
162
162
164
180
180
180
180
181
181
181
182
182
183
185
185
185
193
195
196
196
203
204
206
216
217
217
224
224
225
229
229
231
237
238
239
246
247
249
250
250
266
268
271
292
297
310
316
316
594
595
596
4
5
6
7
8
8
8
8
13
14
14
16
17
18
19
19
19
21
21
21
21
21
26
27
28
28
32
34
34
36
38
39
40
42
42
42
42
44
44
51
52
52
52
52
52
59
59
61
61
62
62
63
63
63
63
63
63
64
65
65
67
67
69
71
71
71
73
74
74
75
75
76
76
76
76
78
79
80
82
82
82
82
92
96
96
115
117
133
133
135
135
139
139
161
163
165
176
181
181
181
181
182
182
182
182
182
183
183
184
185
186
186
191
192
194
196
197
197
204
205
207
225
225
230
230
232
239
240
244
247
248
248
250
267
269
272
293
298
311
317
317
595
596
597
1
5
7
7
7
7
8
9
9
14
15
15
17
19
19
19
19
21
22
26
28
28
29
29
33
35
35
37
39
41
43
43
44
44
45
45
45
50
50
52
52
52
59
60
63
63
64
64
64
64
66
66
68
68
71
73
75
76
76
77
79
79
79
80
80
82
82
93
97
97
116
116
118
118
134
134
136
136
140
140
162
164
166
177
178
178
182
182
182
182
183
183
183
183
184
184
185
187
187
191
192
192
193
197
198
198
206
208
221
231
233
239
239
239
239
241
244
248
248
249
249
251
268
270
273
294
299
312
318
318
318
318
596
597
598
1
1
6
7
7
8
8
8
8
10
10
16
16
17
17
18
19
22
23
28
30
30
36
36
38
40
42
42
42
44
44
45
46
46
50
50
50
52
59
60
61
64
64
65
66
69
69
71
71
71
71
73
76
77
77
77
77
77
79
80
80
80
94
98
98
117
117
119
119
137
141
141
163
165
167
178
179
179
182
183
183
183
183
184
184
184
184
184
184
185
186
192
193
194
198
199
199
204
207
207
207
207
209
217
223
232
234
240
240
242
249
249
250
250
252
269
271
274
274
293
294
295
300
313
319
319
597
598
599
7
7
7
7
8
8
9
11
11
17
17
17
19
19
19
20
21
23
24
28
28
30
37
37
39
43
44
44
45
45
47
47
50
50
51
52
52
59
59
61
66
66
66
66
69
69
70
70
71
71
72
73
74
76
78
79
80
95
99
99
110
114
118
118
120
120
138
142
142
162
164
166
166
168
176
179
180
180
182
184
185
185
185
185
185
186
187
187
190
194
195
199
200
200
205
208
208
208
208
210
215
223
223
223
223
224
232
233
235
241
241
244
244
248
250
250
251
253
270
271
275
275
295
296
301
314
320
320
598
599
600
7
7
7
7
7
7
7
8
8
8
8
9
10
10
12
12
17
18
18
19
19
19
19
20
20
21
21
21
21
30
30
30
38
40
42
42
44
45
48
48
52
52
53
53
61
61
61
67
71
71
71
72
73
73
74
74
74
76
76
77
78
78
78
78
82
96
100
100
111
115
121
121
139
143
143
163
167
167
169
177
180
180
181
181
183
184
185
186
186
186
187
187
188
191
195
199
201
201
206
208
209
209
209
211
223
224
224
225
230
233
234
236
245
245
248
248
249
249
251
252
252
254
254
271
276
276
296
297
302
315
321
321
366
599
600
601
7
7
8
8
8
9
10
11
11
11
13
17
19
19
19
19
19
21
21
21
21
21
21
23
23
24
28
28
30
35
37
39
39
41
41
44
44
45
45
49
49
54
54
61
61
61
62
68
72
72
72
72
73
73
73
73
73
74
74
76
76
76
76
78
78
82
97
101
101
112
116
122
122
140
144
144
164
168
168
170
177
178
179
179
181
181
182
182
184
185
187
187
187
187
188
189
191
191
195
195
195
196
201
201
206
206
208
209
210
210
210
212
225
225
226
234
235
237
237
239
249
249
252
255
255
272
277
277
297
298
298
303
303
316
322
322
367
367
367
600
601
602
7
8
10
11
12
12
12
14
18
19
19
20
20
21
21
21
22
22
24
30
30
30
36
38
40
40
42
42
42
42
44
45
46
50
50
50
52
52
59
59
59
61
62
63
63
69
69
71
72
72
72
73
73
73
73
73
74
74
74
74
75
76
76
77
78
98
102
102
117
123
123
141
145
169
169
171
178
178
178
179
179
179
180
181
182
182
183
183
185
185
187
187
188
189
190
196
196
197
209
210
211
211
211
213
217
221
226
226
235
236
238
239
239
240
250
250
250
250
253
256
256
273
278
278
298
304
304
317
323
323
367
368
368
601
602
603
8
8
8
8
11
13
13
15
19
21
21
22
23
23
23
23
24
28
28
30
37
39
41
41
43
43
44
44
44
45
45
45
45
47
51
51
52
54
54
59
60
61
61
63
63
63
63
63
70
71
73
73
73
73
74
74
74
74
74
74
74
74
75
76
79
80
80
99
103
103
118
124
124
142
142
142
142
146
146
170
170
172
179
179
179
180
180
180
181
181
183
183
184
184
187
190
191
191
195
195
195
197
197
208
208
210
211
212
212
214
218
218
222
227
236
237
239
239
239
240
241
250
250
251
251
254
257
257
274
279
279
299
305
305
318
324
324
368
368
602
603
604
7
7
8
8
8
10
10
10
11
14
14
16
21
21
21
22
22
23
24
24
24
30
30
30
40
42
42
44
44
45
46
46
48
52
52
52
52
54
59
59
60
60
60
61
61
61
61
62
63
64
71
71
71
71
73
73
73
73
74
74
75
75
75
75
76
76
78
78
79
79
79
79
79
79
79
80
82
100
102
102
104
104
119
125
125
143
143
143
143
147
147
171
171
173
180
180
180
181
181
181
182
185
185
187
189
189
191
191
191
192
196
196
196
206
208
209
213
213
215
215
217
222
226
226
228
237
238
239
240
240
241
242
242
250
250
251
252
252
255
258
258
275
280
280
300
306
306
319
325
325
603
604
605
7
7
8
8
8
8
8
8
8
9
10
11
11
15
15
17
19
21
21
21
23
23
23
23
23
24
25
28
28
30
30
30
30
41
45
45
47
47
49
53
53
54
54
54
60
60
61
61
61
61
61
62
62
62
63
64
65
69
69
71
72
73
73
73
73
74
75
75
76
76
76
76
77
78
78
79
80
80
80
80
80
80
80
82
82
82
101
103
103
105
120
126
126
144
144
144
144
148
148
170
172
172
172
174
180
181
181
181
181
182
182
182
182
182
189
190
192
193
197
197
197
206
206
208
208
209
210
214
214
216
216
216
218
218
222
227
227
229
237
238
239
241
241
242
250
250
251
252
256
259
259
276
281
281
301
307
307
320
326
326
604
605
606
7
7
8
9
10
11
12
12
14
16
16
16
18
21
21
22
23
23
23
24
24
24
24
26
30
30
30
30
31
31
42
42
46
46
47
50
52
52
52
52
54
54
54
61
61
62
62
62
63
63
63
63
64
65
66
66
66
73
73
73
73
73
73
75
75
75
75
76
77
77
77
77
77
77
79
79
80
80
82
82
102
104
104
106
121
127
127
145
149
149
168
171
173
173
175
180
182
183
183
183
183
183
190
191
191
191
193
194
195
198
198
209
209
210
211
215
215
216
217
218
219
219
222
226
228
228
238
238
239
240
242
242
242
249
250
250
251
251
252
257
260
260
277
282
282
302
308
308
321
327
327
605
606
607
10
11
11
12
15
17
17
19
21
21
23
23
23
23
24
24
24
24
24
25
25
27
28
32
32
42
43
47
47
47
47
51
54
54
54
54
54
55
55
59
61
62
63
63
63
63
64
64
64
65
71
73
73
73
74
74
74
75
76
76
76
76
77
77
77
77
78
80
103
105
107
122
128
128
128
128
146
150
150
169
172
174
174
174
174
176
176
180
181
182
183
183
184
184
191
192
192
192
194
195
196
198
210
211
211
216
216
216
218
218
219
220
220
227
229
240
241
243
243
243
250
250
252
252
258
261
261
278
283
283
303
309
309
322
328
328
606
607
608
1
8
11
11
11
11
12
12
12
16
18
18
20
21
21
23
23
24
24
25
25
26
26
28
32
33
42
42
44
47
48
48
48
52
54
54
54
54
56
56
64
64
65
65
65
66
66
66
66
69
69
69
71
73
73
73
74
75
75
75
76
76
76
77
77
78
78
79
104
106
108
123
129
129
129
129
147
151
151
170
174
174
175
175
175
175
176
177
177
180
181
182
183
185
185
185
192
193
193
193
194
196
198
217
217
219
219
220
226
228
241
242
244
244
244
253
253
259
262
262
279
284
284
304
310
310
323
329
329
607
608
609
1
1
1
8
10
10
10
11
11
12
12
12
12
13
19
19
21
21
21
24
25
26
26
27
27
27
28
28
29
33
45
48
49
49
49
49
49
49
53
54
54
54
54
55
55
55
57
63
63
66
67
67
71
71
72
72
72
72
73
73
73
74
74
74
74
74
75
75
76
76
76
78
78
78
80
107
109
124
130
130
130
130
148
150
150
152
152
171
171
175
175
176
176
176
176
176
176
176
177
178
178
181
182
183
185
187
193
194
194
194
195
195
196
197
218
218
220
220
222
226
227
238
242
242
243
245
253
260
263
263
280
285
305
311
311
324
330
330
608
609
610
8
8
8
10
11
11
12
13
14
18
20
20
20
21
22
23
23
24
26
26
28
28
28
30
33
33
34
46
47
47
49
49
50
50
52
52
54
54
55
56
56
56
58
68
68
69
69
73
73
73
73
74
74
74
74
74
74
75
76
76
76
76
76
77
77
78
79
81
108
108
110
110
125
131
131
149
151
151
153
175
175
176
176
177
177
177
177
177
177
178
178
178
178
178
179
179
182
183
183
185
189
194
195
195
195
196
198
211
218
218
219
219
221
222
226
227
228
238
242
243
243
244
246
253
261
264
281
286
306
312
312
312
312
325
331
331
609
610
611
1
11
12
12
14
14
19
21
21
21
21
21
23
23
24
26
26
27
28
29
29
31
32
32
32
34
35
35
47
47
47
47
51
51
54
55
56
57
57
59
63
66
68
72
74
74
74
74
76
77
77
77
78
79
80
82
109
109
111
111
126
132
132
150
152
152
154
171
176
176
176
177
177
178
178
178
178
179
179
179
179
179
179
180
183
185
189
189
190
196
196
196
197
199
209
216
216
218
219
219
220
220
222
227
228
229
243
244
244
245
247
262
265
282
287
307
313
313
326
332
332
610
610
612
4
5
11
12
12
12
14
20
21
21
22
22
23
23
23
24
24
24
24
24
26
27
30
30
32
32
33
35
35
35
35
35
42
47
47
48
48
49
49
52
52
56
56
56
56
57
58
58
59
60
66
68
68
68
73
74
75
76
76
76
77
78
79
79
79
81
81
83
83
102
106
110
110
112
112
127
133
133
151
153
155
172
177
177
177
179
179
179
179
179
180
180
180
180
180
181
187
189
189
189
190
191
194
197
198
200
219
220
220
221
221
223
229
230
238
238
242
244
245
246
246
248
248
263
266
283
288
308
314
314
327
333
333
367
610
611
611
613
4
5
6
11
11
11
12
12
12
12
14
14
15
21
21
23
23
24
25
25
25
26
26
27
28
28
28
28
31
31
32
32
33
35
36
49
49
49
50
50
51
51
53
53
57
57
57
58
58
59
59
59
60
61
63
63
68
73
73
73
74
74
76
76
76
76
77
78
78
80
82
82
84
84
103
107
113
113
128
134
134
152
154
156
173
178
178
178
179
180
181
181
181
181
181
182
190
191
192
196
198
199
201
221
221
222
224
229
229
229
229
231
239
239
242
242
243
243
246
249
249
250
264
267
284
289
309
315
315
328
334
334
368
612
612
614
6
7
11
12
12
12
12
12
13
14
14
14
15
16
16
21
22
24
24
24
26
26
26
26
26
26
28
28
32
34
36
37
50
51
51
52
52
52
52
52
52
54
54
58
58
58
59
59
59
59
60
60
60
61
62
62
63
68
68
68
68
69
69
70
71
73
73
73
76
76
76
77
77
79
79
79
81
83
83
85
85
104
108
114
114
129
135
153
155
157
174
174
176
178
179
179
179
181
181
182
183
189
189
191
192
196
198
198
199
200
202
211
221
221
221
221
222
223
225
230
230
232
243
243
247
250
250
251
251
253
253
263
263
265
268
283
284
285
290
310
316
316
329
335
335
368
368
613
613
615
4
7
8
12
13
14
14
14
16
16
16
16
16
21
23
25
25
26
26
27
29
31
33
33
35
35
35
37
38
47
49
49
51
53
53
55
55
56
57
58
59
59
59
59
59
59
59
60
61
61
61
62
63
63
63
63
63
66
66
68
68
69
69
69
69
71
71
71
71
74
74
74
75
76
76
77
82
86
86
109
115
115
130
130
132
132
136
136
152
154
156
156
158
166
172
177
177
178
179
181
181
181
182
183
183
184
190
196
199
199
200
201
203
212
212
222
222
223
223
224
226
231
231
244
244
244
244
248
251
251
254
254
264
266
269
285
286
291
311
317
317
330
336
336
368
369
369
614
614
616
5
8
9
14
14
14
14
16
17
21
24
26
26
26
26
26
27
28
28
28
30
32
32
34
34
35
35
36
36
49
51
51
52
52
54
56
56
58
59
59
59
60
60
61
62
62
62
64
64
68
69
70
70
71
71
71
71
71
71
71
72
72
72
72
73
74
74
74
74
74
75
75
75
75
77
77
79
79
83
87
87
110
116
116
131
131
133
133
137
137
153
157
157
159
167
170
170
173
174
174
174
174
177
178
179
180
181
183
184
185
189
191
197
199
200
201
202
204
209
211
221
223
223
224
225
227
244
244
245
245
249
252
252
254
265
267
270
286
287
292
312
318
318
331
337
337
369
369
370
615
615
617
4
4
9
10
12
12
14
17
18
21
21
26
26
27
27
27
28
28
29
29
29
31
33
35
35
37
37
37
37
38
49
49
51
52
53
55
57
58
59
59
59
60
60
61
61
62
65
65
69
69
69
70
70
71
71
73
74
74
74
74
74
74
75
75
75
76
76
76
76
76
76
77
77
84
88
88
111
117
117
132
132
134
134
138
138
154
158
158
160
168
171
171
173
173
174
175
175
175
175
176
176
176
176
178
179
180
181
183
183
185
186
186
189
189
190
197
197
199
200
201
203
205
210
210
212
212
219
225
226
227
228
229
244
244
245
246
246
250
253
253
254
266
268
271
287
288
288
293
293
313
319
319
332
338
338
369
369
370
371
616
616
618
4
5
8
10
11
12
14
14
15
16
18
19
26
26
27
28
28
28
28
28
28
28
30
30
30
34
35
35
38
38
38
51
51
51
52
56
58
59
59
60
60
60
61
61
62
62
66
66
66
68
69
69
70
70
72
73
73
73
73
73
74
74
74
75
76
77
77
77
77
77
77
79
85
89
89
112
118
118
135
139
139
159
159
161
169
169
169
172
172
174
174
175
175
176
176
176
176
176
176
177
177
177
177
178
179
181
182
184
186
186
187
187
189
190
191
200
201
201
202
204
204
206
210
212
213
213
221
226
227
229
229
229
230
244
244
245
246
251
254
254
267
269
272
272
288
294
294
314
320
320
333
339
339
370
371
617
617
619
4
5
5
9
11
12
12
14
14
14
14
15
16
16
16
16
21
26
26
26
28
28
28
28
29
30
31
35
37
37
38
39
39
49
49
49
49
51
51
55
57
57
59
59
59
59
60
60
61
61
62
63
67
67
68
70
70
70
73
73
73
73
73
73
74
76
76
76
86
90
90
113
119
119
136
140
140
160
160
162
170
170
173
173
174
174
175
175
177
177
177
177
177
177
177
178
178
178
178
181
183
185
187
187
187
188
188
191
192
199
199
201
202
205
205
207
210
212
213
214
214
221
221
221
221
222
227
228
229
229
230
230
231
243
244
244
245
245
246
252
255
255
268
269
273
273
289
295
295
315
321
321
334
340
340
369
369
371
618
618
620
1
1
1
2
4
4
5
5
5
6
10
11
12
13
14
14
16
16
16
16
16
18
18
19
26
26
28
30
30
30
30
30
32
32
35
35
36
38
40
40
51
51
51
51
51
52
56
58
58
60
60
61
61
61
62
64
68
68
68
68
68
69
70
70
70
71
73
74
74
74
74
76
76
77
77
87
91
91
114
120
120
120
120
137
141
141
161
161
163
171
171
174
175
175
176
176
177
178
178
179
179
179
179
181
184
186
188
188
188
189
189
192
197
199
200
206
206
208
213
214
221
222
222
223
228
229
229
230
231
231
232
232
244
244
246
246
251
253
256
256
269
274
274
290
296
296
316
322
322
335
341
341
370
619
619
621
1
1
2
5
5
6
7
11
11
12
14
14
14
16
16
16
17
19
26
27
27
28
28
28
28
29
30
31
31
33
33
37
37
37
38
41
41
51
51
53
57
59
59
61
61
61
61
61
62
65
66
66
68
69
69
70
70
71
71
72
74
74
76
76
76
76
88
92
92
115
121
121
121
121
138
142
142
160
162
162
162
164
172
172
172
174
175
176
176
176
177
177
179
179
179
185
187
188
188
188
189
190
190
192
192
192
193
197
197
199
199
200
201
207
207
209
214
223
223
224
227
229
230
231
232
232
247
247
252
252
254
254
254
257
257
270
275
275
291
297
297
317
323
323
336
342
342
369
371
620
620
622
1
4
4
4
4
6
6
12
12
13
15
17
18
18
18
19
26
28
28
28
29
29
30
30
30
30
32
32
34
34
35
35
37
38
38
42
42
51
51
51
51
52
58
59
59
59
61
62
62
62
63
63
66
69
69
69
69
69
70
70
70
70
71
72
73
74
75
76
76
89
93
93
116
122
122
122
122
139
143
161
163
163
165
170
173
173
175
176
176
177
177
177
179
179
181
186
188
189
189
190
191
191
193
193
194
200
200
201
202
208
208
210
212
212
219
224
224
228
228
230
231
232
232
233
247
255
255
255
258
271
276
276
292
298
298
318
324
324
337
343
343
369
370
621
623
2
4
5
5
5
6
7
7
7
7
13
14
16
16
16
16
18
19
19
28
28
28
30
30
30
31
35
35
37
37
37
38
38
38
38
39
43
43
49
49
51
52
53
59
59
61
63
63
63
63
63
63
63
67
68
70
71
71
71
71
71
71
71
71
72
72
72
73
73
73
74
75
75
90
94
94
117
123
123
140
140
140
140
144
144
162
164
164
166
171
172
172
173
173
176
177
177
177
178
179
179
183
187
188
189
190
191
192
192
192
192
194
194
201
202
202
209
209
210
210
211
212
213
213
220
225
231
232
233
233
234
247
255
256
259
272
277
277
293
299
299
319
325
325
338
344
344
371
622
624
4
4
4
4
5
5
5
6
6
7
8
8
12
14
14
15
15
16
16
17
18
18
19
28
28
30
30
30
30
32
35
35
36
36
38
39
39
40
44
44
51
53
54
59
59
60
63
64
64
64
66
66
66
68
68
69
70
70
70
71
71
72
72
72
72
72
73
73
73
74
74
74
74
75
75
75
76
76
91
93
93
95
95
118
124
124
141
141
141
141
145
145
164
164
165
165
166
167
172
173
173
176
177
178
179
179
183
183
184
187
188
188
190
191
193
193
193
193
210
210
212
213
214
214
220
224
224
226
232
233
234
234
235
255
257
260
273
278
278
294
300
300
320
326
326
339
345
345
372
623
625
1
4
5
5
5
6
6
7
7
8
9
9
9
13
16
16
16
16
18
18
18
18
19
19
28
28
30
30
30
30
30
30
30
33
37
37
40
40
41
45
45
53
53
53
54
57
57
57
57
61
64
65
65
65
68
68
69
69
70
70
70
71
71
72
72
72
72
72
72
73
73
73
73
73
73
73
74
74
74
74
75
76
76
76
92
94
94
96
119
125
125
142
142
142
142
146
146
165
165
166
166
166
166
167
168
170
172
173
173
174
174
176
177
179
181
183
183
183
184
185
191
192
194
194
194
194
211
211
213
215
215
220
225
225
227
228
232
233
234
236
258
261
274
279
279
295
301
301
321
327
327
340
346
346
369
619
624
626
6
6
6
7
7
8
9
10
14
16
16
17
17
18
18
18
19
19
19
19
19
19
28
28
30
30
30
30
30
31
31
34
35
38
38
40
42
46
46
54
54
54
54
54
55
57
57
57
57
58
58
62
63
65
66
66
66
66
66
69
69
69
69
69
70
70
71
71
71
71
72
72
73
73
73
73
73
73
74
74
74
74
75
75
76
76
93
95
95
97
120
126
126
143
147
147
166
166
166
167
167
167
168
169
169
169
171
172
173
175
175
179
184
185
186
192
192
193
195
195
195
202
212
212
214
215
215
215
215
216
220
224
226
226
228
232
233
234
235
237
244
257
257
259
262
275
280
280
296
302
302
302
302
322
328
328
341
347
347
368
369
370
620
622
625
627
4
6
6
6
6
7
8
9
9
9
9
11
16
16
18
18
18
18
19
19
20
20
20
28
30
30
30
32
32
35
35
39
39
40
40
43
45
45
47
47
49
49
49
49
54
54
55
56
56
58
58
59
59
59
63
63
63
65
67
67
70
70
71
71
72
73
73
73
73
73
73
73
73
74
74
74
74
75
76
94
96
98
121
127
144
148
148
167
167
167
167
168
168
168
169
170
170
170
170
172
172
172
172
173
174
175
177
179
183
183
185
186
191
193
193
194
195
196
200
213
213
215
216
216
217
225
227
233
234
235
236
238
245
245
247
247
258
260
263
276
281
281
297
303
303
323
329
329
342
348
348
369
369
371
623
626
628
5
6
6
7
7
7
7
9
9
9
9
10
10
12
16
16
17
19
19
19
19
21
21
21
28
28
30
32
33
35
35
36
40
40
40
41
44
46
46
48
53
54
56
56
56
56
59
59
60
60
64
65
65
65
66
66
66
66
68
68
69
71
71
71
71
71
72
73
73
74
74
74
76
76
76
95
97
99
122
122
124
124
128
128
145
149
149
168
168
168
169
169
169
170
171
171
171
171
172
173
173
173
173
174
175
175
177
184
191
194
195
195
197
214
214
216
217
217
224
226
228
228
232
234
236
237
237
239
239
248
248
259
261
264
277
282
282
298
304
304
324
330
330
343
349
370
370
372
372
624
627
629
4
4
4
6
7
8
8
9
10
10
11
11
11
13
16
18
18
18
19
20
20
21
22
28
28
30
30
30
33
37
41
41
41
42
42
42
42
45
47
47
49
49
56
60
60
63
63
65
66
67
67
69
69
69
69
69
69
69
71
71
71
73
74
74
74
74
74
74
74
75
77
98
100
123
123
125
125
129
129
146
148
148
150
150
168
169
169
169
169
169
170
170
170
171
172
172
172
172
173
173
174
174
174
175
181
183
185
193
195
196
198
213
215
215
217
220
224
225
229
229
232
232
233
233
237
240
240
248
252
260
262
265
278
283
299
305
305
325
331
331
344
348
348
350
369
372
372
373
373
625
628
630
8
9
9
9
11
11
12
12
14
16
16
16
18
19
19
21
21
21
21
23
28
28
28
30
30
30
30
33
33
34
38
40
40
42
42
42
42
46
48
49
50
56
57
57
57
57
66
66
66
68
68
68
69
69
69
70
70
71
71
71
71
72
73
74
74
74
74
76
76
76
76
76
78
99
99
101
101
124
124
126
126
130
130
147
149
149
151
169
169
170
170
170
170
170
171
171
171
172
172
172
173
173
174
175
175
175
175
179
181
182
183
183
184
197
199
202
215
216
216
218
220
224
225
226
233
233
238
241
241
248
253
255
255
261
263
266
266
279
284
300
306
306
326
332
332
345
349
351
373
374
374
626
629
631
6
9
9
9
10
11
13
13
15
16
16
18
18
18
19
19
19
19
21
22
22
22
24
28
30
30
30
30
31
31
32
32
32
34
35
35
39
40
40
40
43
43
47
49
49
51
54
56
57
57
57
57
58
58
58
63
66
66
66
66
67
68
68
68
68
69
69
69
69
70
71
71
71
71
72
74
74
76
77
79
100
100
102
102
127
131
131
148
150
150
152
162
168
170
171
171
171
171
172
172
172
172
173
173
173
173
174
175
175
180
182
183
183
184
185
195
198
198
200
203
203
215
215
215
215
216
217
217
219
225
226
227
234
234
234
234
239
242
242
256
256
262
263
267
267
280
285
301
307
307
327
333
333
346
350
352
374
627
630
632
1
1
6
6
6
9
9
9
9
11
11
12
14
14
16
16
16
19
20
20
21
21
22
23
23
23
23
23
23
25
28
32
32
32
33
35
35
35
35
35
35
40
40
40
41
42
42
42
42
44
44
50
52
54
56
56
58
58
59
66
68
68
68
68
68
68
68
68
68
70
70
70
70
71
71
71
72
72
72
73
73
73
74
74
76
76
78
78
80
80
93
97
101
101
103
103
128
132
132
149
151
153
163
164
164
169
171
171
172
172
172
173
173
174
174
174
175
175
181
181
183
184
185
186
199
199
200
201
202
215
216
216
217
218
218
220
227
228
234
234
235
235
240
243
243
253
256
256
256
256
257
263
268
268
281
286
302
308
308
328
334
334
347
351
353
628
631
633
1
1
1
6
7
9
9
9
9
10
11
11
11
12
13
13
13
15
15
15
16
17
21
21
21
21
21
23
23
24
26
32
32
32
33
35
36
41
42
42
43
43
43
43
45
45
49
51
51
53
53
58
58
58
59
60
63
63
68
68
69
70
70
71
71
71
71
71
71
72
72
72
72
72
73
73
73
73
73
73
73
73
73
77
79
79
81
81
94
98
104
104
129
133
133
150
152
154
164
165
165
170
171
173
173
173
173
175
175
175
175
176
182
182
184
185
186
200
200
201
201
202
203
203
217
217
218
219
221
227
227
227
227
229
234
234
235
236
236
241
244
244
245
257
257
258
264
269
269
282
287
303
309
309
329
335
335
348
352
354
369
369
372
629
632
633
634
9
10
11
11
11
13
13
13
13
13
14
16
16
16
18
21
21
21
23
25
25
27
27
28
28
33
36
37
42
44
44
44
44
46
46
50
52
52
54
54
58
58
58
59
60
63
65
65
65
68
68
68
68
69
69
69
70
70
70
70
70
70
71
71
72
72
72
73
73
73
73
73
74
74
74
74
74
78
80
80
82
82
95
99
105
105
130
134
134
151
153
155
165
165
166
166
166
166
168
168
168
170
171
171
173
173
174
176
177
182
182
183
185
186
186
186
186
187
195
195
201
201
201
203
203
204
204
213
218
218
220
222
228
228
230
234
234
235
236
242
245
245
246
246
248
248
256
256
258
258
265
270
270
281
282
283
288
304
310
310
330
336
336
349
353
355
370
372
373
630
632
634
635
11
11
11
11
13
14
15
16
17
17
19
21
21
21
22
22
23
23
24
26
26
28
28
28
33
33
34
35
37
38
40
42
42
43
45
47
47
51
53
53
55
55
56
56
56
58
59
60
60
63
63
63
66
66
68
68
69
69
69
69
69
69
70
71
71
71
71
72
73
73
73
73
73
74
75
79
83
83
100
106
106
131
135
150
152
154
154
156
161
164
164
164
165
167
167
167
167
169
169
169
170
171
173
173
175
175
177
178
184
186
187
187
188
193
196
196
201
202
202
203
204
204
205
205
214
219
220
221
223
229
229
233
234
234
235
235
236
243
246
246
249
249
257
266
271
271
283
284
289
305
311
311
331
337
337
350
354
356
373
374
631
635
636
9
9
11
14
15
16
16
18
18
20
21
21
22
23
23
23
24
24
25
27
27
28
29
29
32
32
32
32
34
35
35
35
35
42
44
44
44
46
48
52
56
56
56
58
60
60
60
60
60
65
68
69
69
69
69
70
70
71
71
71
71
74
74
74
74
74
74
76
80
84
84
101
107
107
132
132
132
132
136
136
151
155
155
157
162
165
165
165
165
166
167
168
168
168
168
170
170
170
171
172
175
176
178
179
182
184
186
186
186
188
188
194
196
197
203
203
204
205
205
214
218
218
218
220
221
222
224
234
234
236
236
244
247
247
249
256
258
267
272
272
284
285
290
306
312
312
332
338
338
351
355
357
374
632
636
637
9
11
11
12
13
15
16
19
19
21
21
21
22
23
23
23
23
23
25
25
26
30
30
32
33
35
35
35
35
35
37
37
38
42
42
44
47
49
53
54
55
56
56
57
57
60
61
67
68
69
69
69
69
69
69
69
70
70
71
71
71
73
73
73
74
74
75
75
77
77
81
85
85
102
108
108
133
133
133
133
137
137
152
156
156
158
163
166
166
166
166
167
167
169
169
169
169
170
170
171
171
171
172
173
175
177
178
180
182
182
186
187
187
187
194
194
196
197
198
204
204
205
206
214
219
219
221
222
223
225
225
227
237
237
245
248
248
249
256
256
257
268
273
273
285
286
286
291
291
307
313
313
333
339
339
356
358
369
374
633
637
638
9
11
11
11
11
12
13
13
13
13
16
20
21
21
21
22
23
23
23
23
25
27
31
31
32
32
35
35
35
36
38
42
44
44
44
46
48
48
50
50
53
54
54
54
55
55
56
58
58
61
62
62
62
66
66
66
66
66
68
68
69
69
69
69
69
69
70
70
70
71
71
71
71
73
73
74
74
76
76
78
78
82
86
86
103
109
109
134
134
134
134
138
138
157
157
159
160
160
164
164
166
166
167
167
167
167
167
167
168
170
170
171
171
171
171
173
175
178
179
179
181
186
188
188
188
197
198
199
203
203
205
205
207
214
218
220
220
223
224
226
227
227
228
237
246
249
253
256
257
258
269
274
274
286
292
292
308
314
314
334
340
340
357
359
370
372
634
638
639
11
11
13
13
13
13
13
15
15
16
17
19
21
21
21
23
23
25
25
25
28
32
32
36
37
37
37
38
42
42
42
42
43
44
47
49
49
51
51
53
53
54
54
55
55
55
56
56
57
59
59
60
62
63
67
68
68
68
68
68
69
69
70
70
70
70
70
71
71
71
72
73
73
73
74
74
75
77
77
79
79
83
87
87
104
110
110
135
139
139
158
158
160
161
161
162
162
164
165
166
166
166
167
167
167
168
169
171
171
172
172
173
173
177
179
180
182
186
189
189
196
196
198
199
201
201
203
204
204
206
206
208
219
221
224
225
227
227
227
228
229
237
247
250
254
258
259
270
275
275
287
293
293
309
315
315
335
341
341
358
360
372
373
635
639
640
1
11
11
13
13
13
14
16
18
20
21
22
22
22
23
23
23
23
24
24
25
29
33
33
35
35
35
37
38
38
44
44
44
44
44
44
48
50
50
52
52
53
53
54
55
56
56
56
56
57
57
57
58
60
60
60
60
62
66
68
68
68
68
68
69
70
70
70
70
70
70
71
71
72
73
73
73
74
74
74
76
80
80
84
88
88
105
111
111
111
111
136
140
140
159
159
161
162
162
163
163
166
167
167
167
168
168
169
173
173
173
173
173
174
176
177
178
180
181
183
187
189
194
196
197
204
205
205
207
207
209
218
220
225
226
227
228
228
229
230
230
248
251
254
255
259
271
276
276
288
294
294
310
316
316
336
342
342
351
359
361
373
374
636
640
641
2
2
4
14
15
15
15
16
19
21
21
23
23
23
23
24
24
25
25
25
25
25
30
32
34
34
35
35
37
37
38
44
44
49
53
53
53
56
57
57
57
57
58
58
58
61
61
62
62
62
63
63
63
63
65
65
66
66
68
68
69
70
70
70
70
70
71
72
73
73
73
74
77
81
81
85
89
89
106
112
112
112
112
137
141
141
158
160
160
160
162
163
163
163
163
164
164
167
168
168
168
169
169
169
171
173
173
173
174
175
177
178
179
181
182
184
189
194
194
196
196
197
198
206
206
208
208
210
214
218
219
225
226
227
229
229
230
249
252
254
255
259
259
260
272
277
289
295
295
311
317
317
337
343
352
357
360
362
373
374
375
637
641
642
1
2
4
4
5
5
13
13
13
15
16
16
22
23
23
23
25
25
25
26
26
31
35
35
35
35
37
37
37
38
38
44
44
44
44
45
50
54
54
57
58
58
58
60
60
62
62
63
64
64
65
65
67
68
68
68
69
69
70
70
70
70
71
71
71
71
72
72
73
78
82
82
86
90
90
107
113
113
113
113
138
140
140
142
142
159
161
161
163
165
165
167
169
169
169
171
171
174
175
176
178
179
180
182
183
185
187
197
197
198
199
206
206
206
206
207
209
209
211
214
218
219
220
226
226
227
228
230
230
230
234
246
248
248
250
253
260
260
261
273
278
290
296
296
312
318
318
338
342
342
344
358
361
363
373
374
375
376
638
642
643
1
1
4
5
5
6
11
13
13
15
15
16
23
23
23
25
25
25
25
27
27
32
35
35
36
36
37
37
37
38
38
38
38
38
42
42
44
45
46
51
55
55
58
59
62
63
63
65
65
65
65
66
66
67
67
68
69
69
70
70
70
70
71
71
71
72
73
73
73
73
73
73
79
83
83
87
91
91
108
114
114
139
141
141
143
160
160
162
162
162
164
164
164
165
166
166
168
169
171
171
173
173
175
176
179
180
181
183
184
186
198
199
199
207
207
208
210
210
212
219
220
221
228
229
231
231
231
235
235
237
237
247
249
249
249
251
254
261
261
274
279
291
297
297
313
319
319
339
343
345
359
362
364
373
374
374
375
376
639
643
644
4
5
5
5
5
6
6
7
13
13
15
15
15
16
16
23
23
24
25
25
25
25
25
25
25
28
28
33
35
35
37
37
37
37
38
38
39
39
44
46
47
52
56
56
60
60
62
64
64
65
65
66
66
66
67
67
67
68
68
68
68
69
69
70
70
70
71
71
72
72
73
74
74
80
84
84
88
90
90
92
92
109
115
115
140
142
142
144
159
161
162
162
162
162
162
163
163
163
164
165
165
165
165
167
167
168
169
173
174
180
181
182
184
185
187
208
208
211
211
213
221
222
229
230
232
232
232
238
238
250
250
250
252
255
259
275
280
292
298
298
314
320
320
340
344
346
360
363
365
373
374
375
375
376
640
644
645
5
5
6
6
6
7
8
13
13
15
15
15
16
16
16
16
16
23
23
25
25
25
25
25
25
26
26
29
29
34
35
35
38
38
38
40
40
46
46
46
47
53
57
57
61
63
63
65
65
65
65
65
65
66
66
66
66
67
67
68
68
68
69
69
69
70
70
70
70
71
72
72
73
73
74
74
81
85
85
89
91
91
93
110
116
116
141
143
145
158
160
161
161
162
163
163
163
163
163
164
164
164
164
164
165
166
166
166
168
168
173
173
175
181
182
185
186
188
204
212
212
214
221
221
221
221
223
226
230
230
231
233
238
247
250
250
250
250
251
251
253
254
256
276
281
293
299
299
315
321
321
341
345
347
361
364
364
366
366
373
375
376
376
641
645
646
4
6
6
7
8
9
13
13
15
15
16
16
17
17
23
25
25
25
26
27
27
30
30
35
35
37
37
37
37
38
39
39
40
47
47
47
48
54
58
58
60
60
62
64
64
65
66
66
67
67
68
68
68
68
69
69
69
69
69
69
69
69
70
71
71
73
73
74
82
86
86
90
92
92
94
111
117
117
142
144
146
159
160
160
161
162
162
163
164
164
164
164
164
165
165
165
165
166
166
166
167
167
167
169
169
173
173
174
181
187
189
199
206
213
215
222
222
224
226
230
231
231
232
234
238
251
251
252
252
254
254
255
257
257
259
259
275
276
277
282
294
300
300
300
300
316
322
322
342
346
348
362
367
367
374
376
377
642
646
647
4
6
6
6
6
8
9
10
13
13
16
18
18
23
23
25
27
27
28
31
31
35
35
35
36
37
38
38
38
40
40
40
42
42
42
42
48
49
49
55
59
59
60
62
62
62
62
63
65
65
65
65
65
65
65
65
66
67
67
67
67
68
68
72
74
74
74
83
87
87
91
93
95
112
118
143
145
147
158
160
161
161
162
162
162
163
163
163
164
165
165
165
165
165
165
165
166
166
166
167
167
167
168
169
173
174
175
182
185
188
188
189
189
190
197
206
206
206
206
207
214
216
223
223
231
232
232
233
235
250
250
252
252
253
254
254
258
258
260
260
277
278
283
295
301
301
317
323
323
343
347
349
363
368
368
375
377
643
647
648
4
4
5
6
6
7
8
9
9
10
11
13
15
15
16
18
23
23
25
25
25
28
28
32
32
35
35
37
37
37
37
38
38
38
38
39
39
40
41
41
46
47
49
49
49
49
54
55
56
60
60
60
60
60
64
65
65
66
66
66
67
67
68
68
69
69
70
71
71
73
73
74
84
88
88
92
94
96
113
113
115
115
119
119
142
144
146
146
148
158
159
161
161
162
162
162
162
163
163
164
164
165
165
167
167
167
168
168
168
169
169
171
175
176
182
187
189
189
190
190
191
206
207
207
208
214
215
217
226
226
230
232
233
234
234
236
236
251
254
255
259
259
259
261
261
261
278
279
284
296
302
302
318
324
324
344
348
350
364
369
369
375
644
648
649
6
7
8
9
10
10
12
13
13
13
15
16
18
18
23
23
23
25
25
25
25
28
28
29
29
33
33
35
35
38
38
39
39
40
41
42
42
42
42
42
42
49
53
54
54
55
55
56
57
61
61
65
65
66
67
67
67
67
67
68
68
68
68
69
70
70
71
71
71
71
71
73
73
74
74
74
85
87
87
89
89
95
97
114
114
116
116
120
120
143
147
147
149
159
160
162
163
163
163
163
164
164
165
166
167
167
168
169
169
169
170
172
174
176
188
190
190
190
191
192
208
208
209
212
215
216
218
219
221
227
227
230
230
231
231
234
235
237
237
250
252
255
259
260
260
260
279
280
280
285
285
297
303
303
319
325
325
345
349
351
365
370
370
377
645
649
650
8
8
10
11
11
13
13
13
15
15
15
16
16
16
16
18
19
23
25
25
25
25
26
26
27
27
27
29
30
30
30
34
34
39
40
40
40
40
41
42
42
42
43
49
50
53
53
54
55
56
56
57
57
58
60
60
62
62
62
65
65
66
66
66
66
66
67
67
67
67
68
68
68
68
68
69
70
70
70
70
70
70
71
71
73
74
74
86
88
88
90
96
96
98
98
115
115
117
117
121
121
144
148
148
150
158
160
160
161
161
162
162
163
164
164
164
164
164
165
165
167
167
167
167
169
169
170
171
172
172
172
173
175
176
176
176
177
188
188
190
191
191
191
192
193
199
204
209
209
216
217
219
221
221
222
231
231
235
236
236
238
238
238
238
250
250
251
256
260
260
261
261
261
261
280
286
286
298
304
304
320
326
326
350
352
366
371
371
377
646
650
651
6
6
8
12
12
13
13
14
16
17
17
18
18
19
20
20
20
20
23
27
27
27
28
30
30
30
30
30
31
33
33
35
35
35
40
40
40
40
42
42
44
49
50
51
53
54
55
56
57
57
57
58
58
59
61
61
63
63
65
65
65
65
66
66
66
66
67
67
67
67
67
68
68
68
68
68
69
69
69
70
70
70
71
71
71
73
87
89
89
91
97
97
99
99
118
122
122
149
149
151
159
160
160
160
160
161
161
161
163
163
163
164
165
165
165
165
169
169
169
170
171
172
173
174
176
177
177
178
191
192
192
192
193
194
200
200
205
210
217
218
220
221
221
222
223
232
232
232
232
236
239
239
239
239
247
250
251
252
257
262
262
262
262
281
287
287
299
305
305
321
327
327
351
353
367
372
372
647
651
652
1
6
8
8
9
13
13
13
15
18
18
18
18
18
20
20
27
27
27
28
30
31
32
34
34
35
35
36
37
40
40
40
40
41
41
42
42
43
43
45
45
49
49
51
53
54
55
56
57
58
58
60
62
62
64
64
65
65
66
66
67
67
67
67
67
67
68
68
68
68
68
68
68
68
69
70
70
71
71
72
72
73
74
74
88
90
90
92
94
98
98
100
100
119
123
123
150
150
152
160
161
161
161
161
162
162
162
164
164
166
166
169
172
172
173
174
175
176
176
176
177
178
178
190
190
192
193
193
193
195
197
199
205
209
209
211
218
219
221
221
222
223
224
224
232
232
233
233
237
239
240
240
248
252
253
258
260
261
261
261
263
263
263
263
282
288
288
300
306
306
322
328
328
352
354
368
373
373
648
652
653
1
1
6
8
8
8
9
10
10
13
14
16
18
18
23
23
28
31
32
33
35
35
35
35
37
38
40
41
42
42
42
43
43
44
44
46
46
51
51
51
53
56
57
58
61
62
62
63
64
65
65
65
65
65
65
65
65
66
67
67
67
67
67
67
68
68
68
68
69
70
70
71
71
71
71
72
72
72
73
73
73
73
73
89
91
91
93
95
101
101
120
124
124
151
151
153
161
162
162
162
162
163
163
163
165
165
167
167
171
171
172
172
173
174
175
176
177
177
177
178
188
190
191
194
194
196
198
198
200
200
205
210
210
212
219
219
220
222
223
224
232
232
233
234
234
238
239
241
241
248
249
253
259
260
260
260
261
262
262
262
264
264
283
289
289
301
307
307
323
329
329
345
353
355
369
374
374
649
653
654
8
8
10
10
10
10
10
11
13
13
15
15
17
17
18
18
18
19
20
20
23
28
28
29
30
32
33
34
36
38
39
41
42
42
42
42
43
44
44
45
45
47
47
51
51
51
52
57
58
58
58
62
62
64
65
65
65
66
66
66
66
66
66
66
67
67
67
67
68
68
68
69
69
69
69
70
70
70
71
72
72
74
74
74
74
74
92
92
94
96
102
102
121
125
125
150
151
152
152
152
154
154
156
161
163
163
163
163
163
163
163
164
164
164
164
165
172
174
175
176
177
178
178
178
179
188
188
190
190
191
192
195
195
197
198
200
201
201
205
209
211
211
220
220
220
221
223
224
224
232
232
233
234
239
242
242
248
249
253
253
254
260
262
263
263
263
265
265
284
290
290
302
308
308
324
330
330
346
351
354
356
370
375
375
650
654
655
8
8
10
11
12
13
13
14
16
16
18
18
18
18
19
20
20
21
21
23
27
27
27
27
29
30
30
30
30
35
37
39
40
40
40
42
42
42
42
44
48
48
49
49
49
51
52
53
53
58
62
64
64
64
65
65
65
65
66
67
67
67
68
69
69
69
69
69
70
71
73
73
75
75
93
93
95
95
97
103
103
122
126
151
152
153
153
155
155
156
157
157
157
158
162
162
163
165
165
165
165
165
165
173
175
176
176
177
178
179
179
191
191
192
193
196
196
198
198
200
201
202
202
210
212
221
222
224
225
225
231
232
232
233
233
234
240
243
243
254
254
255
261
261
263
264
264
266
266
285
291
291
303
309
309
325
331
331
352
355
357
371
376
376
377
651
655
656
5
5
11
12
13
15
17
17
18
18
19
19
19
20
20
20
20
20
22
22
27
28
30
30
30
30
30
32
32
33
38
40
40
40
40
42
44
44
45
49
49
49
51
53
53
53
53
53
60
62
62
62
62
62
64
64
64
65
66
66
67
67
68
68
68
68
69
70
70
72
74
76
76
94
94
96
96
98
104
104
123
123
123
123
127
127
152
153
154
154
156
156
156
157
158
158
158
158
158
159
162
163
163
163
165
165
165
166
166
174
176
177
177
177
179
192
193
193
197
197
199
201
202
209
211
222
223
225
226
226
232
232
234
234
241
244
244
255
255
262
262
262
267
267
286
292
292
304
310
310
326
332
332
353
356
358
372
375
377
377
377
378
652
656
657
4
5
6
6
10
12
13
13
16
18
18
18
20
20
20
20
20
20
22
27
27
30
30
30
31
33
33
35
37
39
39
40
40
41
41
41
42
42
42
42
44
46
49
49
50
50
53
54
61
64
64
65
65
65
65
66
67
67
67
67
67
67
67
68
69
69
69
69
70
70
70
71
71
73
77
77
87
91
95
95
97
97
99
105
105
124
124
124
124
128
128
154
154
154
155
155
156
156
157
157
157
158
158
158
159
159
159
159
159
160
160
160
163
164
164
165
165
167
167
167
175
176
178
178
179
198
198
200
202
205
209
210
220
223
224
224
226
235
235
242
245
245
253
263
268
287
293
293
305
311
311
327
333
354
357
359
373
376
378
378
378
653
657
658
5
5
6
6
7
7
8
10
10
17
18
21
21
22
22
22
31
32
32
32
33
34
38
40
40
42
42
42
42
43
43
44
44
44
47
51
51
54
54
55
55
62
66
66
66
66
66
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
69
69
70
70
70
71
71
71
73
74
78
78
88
92
98
98
100
106
106
125
125
125
125
129
129
155
156
156
157
157
157
158
158
158
158
159
159
159
160
160
160
160
161
161
161
164
165
165
167
169
176
177
177
177
179
179
199
199
200
200
201
205
209
210
211
220
224
224
225
225
227
235
236
243
246
248
264
264
269
288
294
294
294
294
306
312
312
328
332
332
334
355
358
358
360
360
374
376
379
379
654
658
659
7
7
8
8
12
12
13
18
18
19
20
20
20
20
22
22
22
30
30
30
32
33
33
35
39
41
41
42
42
42
42
43
43
44
44
44
48
52
52
53
53
54
54
55
55
55
56
56
58
63
63
65
65
66
66
66
66
66
67
67
68
68
68
68
68
68
70
70
70
70
70
71
71
71
71
72
73
73
74
74
75
79
79
89
93
99
99
101
107
107
126
130
130
156
156
156
157
158
158
159
159
159
159
159
159
160
160
160
160
160
160
161
161
161
162
162
165
165
167
170
171
177
178
180
193
198
198
200
200
200
201
201
202
210
211
212
225
225
226
226
228
235
237
239
239
244
247
248
249
253
253
264
265
270
289
295
295
307
313
313
329
333
335
356
361
361
375
378
380
380
655
659
660
4
5
5
8
8
9
9
10
10
13
18
19
20
20
21
21
22
22
22
23
23
27
30
30
32
32
33
40
40
42
42
44
44
44
44
44
44
44
49
49
53
53
53
53
53
53
54
55
55
56
56
57
57
58
62
64
65
66
66
67
68
68
68
68
68
69
69
70
71
71
71
72
72
72
73
73
74
74
76
80
80
94
100
100
102
108
108
108
108
127
131
131
152
157
157
158
158
159
159
159
159
160
160
160
161
161
161
161
161
161
163
163
167
168
170
171
171
171
172
178
179
181
191
201
201
201
202
202
203
212
213
220
220
224
226
226
227
229
240
240
245
248
248
254
254
266
271
290
296
296
308
314
314
330
334
336
357
362
362
376
378
381
381
656
660
661
4
4
5
5
5
5
6
6
10
10
12
12
13
20
20
20
20
22
22
22
24
24
30
30
32
32
32
33
33
41
42
44
44
44
44
45
45
50
53
54
54
54
55
55
55
55
56
56
56
56
56
57
57
57
58
58
64
65
65
65
66
68
68
69
69
70
70
70
70
71
73
73
73
73
77
81
81
95
101
101
103
109
109
109
109
128
132
132
153
158
158
159
159
160
161
161
161
161
161
161
162
162
162
162
169
169
171
171
171
171
172
172
173
179
180
182
202
202
203
203
204
212
212
212
212
214
221
221
224
224
225
225
227
228
228
230
230
237
240
240
240
240
241
246
249
249
253
255
255
255
264
264
267
272
291
297
297
309
315
315
331
335
337
358
363
363
377
382
382
657
661
662
1
4
4
5
5
6
6
7
7
10
10
11
11
13
20
20
21
22
22
22
22
25
25
30
30
32
32
32
33
33
33
33
33
42
42
42
44
44
44
44
44
45
46
46
51
53
53
53
54
55
55
55
56
56
57
57
57
58
58
62
62
62
64
64
64
64
64
64
65
65
65
65
66
66
68
68
69
70
70
70
71
72
73
74
74
78
82
82
96
102
102
104
110
110
110
110
129
131
131
133
133
154
159
159
160
160
161
161
161
162
163
163
163
163
170
172
172
173
173
174
180
181
183
203
203
203
203
203
204
205
213
213
215
225
225
228
231
231
232
241
241
242
245
245
247
250
253
254
262
265
265
266
267
268
273
292
298
298
310
316
316
332
336
338
359
364
364
378
383
383
658
662
663
1
1
4
5
5
5
5
5
7
8
8
8
8
8
8
12
12
12
12
13
20
20
22
22
22
22
22
22
22
22
26
26
30
30
32
32
33
33
34
34
42
42
43
44
44
44
44
45
46
47
47
52
53
56
56
56
57
58
58
58
58
58
59
59
62
62
62
62
62
63
64
64
64
64
64
64
65
65
66
67
67
68
69
70
70
70
70
71
73
75
75
79
81
81
83
83
97
103
103
105
111
111
130
132
132
134
149
152
152
154
155
155
156
156
158
160
160
161
161
161
161
162
163
163
163
165
171
171
171
173
173
174
174
179
179
181
182
184
193
204
204
204
205
206
214
214
226
226
226
226
229
232
232
233
233
235
235
240
240
242
242
246
248
251
254
254
255
255
263
263
268
269
274
293
299
299
311
317
317
333
337
339
360
365
365
379
384
384
659
663
664
4
6
6
6
6
7
9
9
9
9
10
10
12
13
13
13
20
20
22
22
22
22
22
23
23
23
27
27
30
30
33
35
35
42
42
42
42
44
44
44
46
47
48
48
53
53
55
55
57
57
57
58
58
62
62
62
63
64
64
64
64
64
64
64
65
65
65
65
66
67
67
67
67
67
68
68
68
70
72
76
76
80
82
82
84
98
104
104
106
112
112
131
133
133
135
148
150
153
153
153
153
154
155
156
156
156
157
157
158
158
159
160
160
161
161
162
163
163
163
163
164
165
172
172
174
175
177
180
180
182
183
185
194
194
204
205
205
205
207
226
226
227
227
230
233
233
236
236
241
247
249
252
256
256
269
270
275
294
300
300
312
318
318
334
338
340
361
366
366
380
385
385
660
664
665
5
5
5
5
7
7
8
10
10
10
10
10
10
12
12
12
13
13
13
13
13
13
14
14
20
22
22
22
24
24
24
28
28
30
32
32
33
35
44
44
44
44
44
45
46
46
46
47
49
49
54
56
56
58
58
58
58
58
64
65
65
66
66
66
66
67
68
68
68
68
68
68
68
68
68
68
71
71
73
77
77
81
83
83
85
99
105
105
105
105
107
113
113
132
134
136
149
151
154
154
154
154
155
156
156
156
157
157
157
158
158
158
158
159
159
160
161
162
163
164
165
171
173
173
175
178
180
181
183
184
186
191
193
201
202
205
206
208
210
212
226
226
227
228
228
231
234
234
236
240
242
248
250
253
254
255
255
255
257
257
265
270
271
271
276
276
295
301
301
313
319
319
335
339
341
362
367
367
378
381
386
386
661
665
666
5
5
5
6
6
8
9
10
10
11
11
13
14
14
14
14
15
15
20
20
22
24
25
25
27
27
29
29
30
30
30
32
33
35
35
44
44
46
47
47
47
48
50
50
53
53
55
57
57
58
58
59
62
63
63
63
65
65
68
68
68
68
68
68
68
69
69
69
69
70
70
70
74
78
78
82
84
86
100
106
106
106
106
108
114
114
133
135
137
150
152
152
154
154
155
155
155
155
156
157
157
157
157
158
158
158
158
158
159
159
159
159
159
160
160
161
162
163
163
163
165
166
171
171
172
173
178
178
180
181
182
185
187
192
192
194
194
203
206
207
209
212
212
213
226
226
227
228
232
235
235
236
240
240
241
249
251
254
254
254
254
254
255
256
256
256
265
271
277
277
296
302
302
314
320
320
340
342
363
368
368
376
378
379
382
387
387
662
666
667
5
5
5
5
6
7
7
9
10
11
11
12
12
15
15
15
15
15
15
16
16
20
20
22
22
22
25
26
28
28
30
30
30
32
32
32
33
33
33
33
35
36
42
42
42
42
44
44
44
44
45
47
48
49
49
51
51
53
56
58
58
58
58
58
60
62
63
65
65
66
66
66
66
67
67
67
68
68
68
69
69
71
71
71
75
79
79
83
85
87
101
107
107
107
107
109
115
134
136
138
150
151
151
155
155
156
156
156
156
157
157
158
158
159
159
159
159
159
159
160
160
161
161
161
163
164
166
167
171
172
173
175
181
182
183
183
186
186
188
192
194
195
195
203
203
203
203
204
207
208
210
212
212
213
214
225
226
226
227
227
228
233
236
236
237
240
241
242
250
251
255
255
256
257
257
257
272
278
278
297
303
303
315
321
321
341
343
364
369
369
377
379
383
388
388
663
667
668
6
6
6
6
6
8
8
8
8
10
11
12
12
12
13
13
15
16
16
16
16
17
17
20
20
20
22
22
22
22
25
25
26
27
29
29
30
30
31
33
34
34
36
37
37
37
37
42
42
44
45
46
46
47
48
49
49
49
49
52
52
53
53
53
54
55
57
58
58
59
59
61
64
65
66
66
66
66
68
68
69
70
70
70
73
76
78
78
80
80
86
88
102
108
108
110
110
112
112
116
116
133
135
137
137
139
151
152
154
156
156
156
157
157
159
159
159
159
159
160
160
161
161
163
165
167
168
169
173
174
175
180
180
182
183
187
187
189
192
194
195
196
196
203
204
204
205
208
209
211
212
213
214
215
215
226
226
228
228
234
237
237
238
242
243
251
255
256
256
257
258
258
265
265
273
279
279
298
304
304
316
322
322
342
344
365
370
370
377
384
389
389
664
668
669
5
5
7
7
7
7
7
8
10
10
12
12
13
13
13
14
14
14
15
15
17
17
18
18
20
22
22
22
22
23
23
24
24
24
26
27
27
28
30
32
35
35
35
35
37
37
42
44
46
47
49
49
51
51
53
53
53
54
54
55
55
56
58
58
58
59
60
60
62
62
64
64
64
64
65
65
68
68
68
68
70
70
71
73
73
77
79
79
81
87
87
89
89
103
109
109
111
111
113
113
117
117
134
138
138
140
152
153
155
156
157
157
157
158
158
159
159
159
161
161
163
166
168
169
170
174
178
180
181
188
188
190
195
196
205
205
206
209
210
210
212
214
215
229
229
233
235
238
238
238
239
243
252
256
256
257
257
263
266
266
274
280
280
299
305
305
317
323
323
335
343
345
366
371
371
379
385
390
390
665
669
670
5
6
6
8
8
9
9
10
10
11
13
13
14
14
15
15
15
15
16
18
18
19
19
20
24
24
24
25
27
27
27
27
27
29
30
31
33
35
35
35
35
42
46
46
46
47
49
50
50
52
52
53
53
54
54
55
55
56
56
57
59
59
60
60
61
61
62
62
62
62
62
62
62
62
63
63
64
64
64
64
64
67
68
68
70
70
70
70
70
71
73
78
80
80
82
88
88
90
90
104
110
110
112
112
114
114
118
118
135
139
139
141
152
153
153
154
154
154
156
156
156
157
158
158
159
159
159
161
161
161
167
168
170
170
170
174
174
174
175
178
178
180
180
181
182
189
189
191
196
201
206
206
210
211
211
211
213
215
215
229
234
234
236
236
236
238
239
239
239
243
243
244
253
258
258
264
264
275
281
281
300
306
306
318
324
324
336
341
344
346
367
372
372
379
386
391
391
666
670
671
9
9
10
10
12
14
14
15
15
15
15
16
16
16
16
17
17
17
17
18
18
19
19
20
20
20
20
24
24
24
25
27
28
30
30
32
34
35
35
35
35
36
37
37
42
47
47
47
48
49
50
51
51
53
53
53
54
55
55
56
56
57
57
58
58
59
60
60
60
60
61
62
62
62
63
63
63
64
64
64
64
64
64
65
65
65
65
67
67
67
68
68
70
70
70
71
71
73
79
81
81
83
85
89
89
91
91
105
111
111
115
119
119
140
140
142
152
153
154
154
155
155
155
155
156
157
157
158
158
159
159
161
161
161
161
163
168
169
169
171
175
175
176
181
181
182
183
190
190
192
194
194
202
207
211
212
214
216
216
229
237
237
237
240
244
244
245
254
258
259
259
276
282
282
301
307
307
319
325
325
342
345
347
368
373
373
387
392
392
667
671
672
8
10
10
11
11
13
15
15
15
16
17
17
17
17
17
20
20
21
21
21
21
25
27
28
29
30
30
31
33
33
35
35
35
36
37
37
38
38
42
42
42
42
48
49
49
49
49
51
52
53
54
54
55
55
56
56
57
57
58
58
58
58
58
58
59
59
60
60
60
60
61
61
62
62
62
63
63
64
64
65
65
65
65
66
66
67
67
68
68
68
68
69
71
73
80
82
82
84
86
92
92
106
112
116
120
120
141
141
143
147
148
148
153
154
155
155
155
155
156
156
157
158
159
159
159
160
163
164
165
165
169
170
170
172
174
174
174
176
176
182
183
183
191
191
192
192
193
194
195
195
202
206
206
208
212
213
215
217
217
237
238
241
245
245
255
258
260
260
266
277
283
283
302
308
308
320
326
326
343
346
348
369
374
374
388
393
393
668
672
673
4
5
6
7
7
14
15
17
18
18
18
20
22
22
22
22
22
22
25
25
26
27
28
29
30
32
34
34
36
36
36
37
37
37
37
39
39
46
47
49
49
49
49
51
51
51
53
53
54
55
55
56
57
57
58
58
58
58
60
60
60
60
60
61
62
62
62
62
64
64
64
65
65
65
65
65
65
66
66
66
66
67
68
68
68
68
69
70
70
70
83
83
85
87
93
93
107
107
109
109
113
113
117
121
121
142
142
144
146
148
149
149
149
149
152
154
155
155
156
156
157
157
157
159
159
160
161
163
163
164
165
166
166
170
170
170
171
173
175
175
175
192
192
194
195
196
196
202
207
207
209
211
213
214
215
216
237
239
242
243
256
261
261
266
278
284
284
303
309
309
321
327
327
344
347
349
370
375
375
389
394
394
669
673
674
1
1
4
4
5
6
10
10
11
15
15
16
17
17
17
18
19
19
19
19
20
22
22
23
23
23
23
24
24
24
24
26
27
27
27
27
29
33
35
35
35
35
35
37
37
37
37
37
37
42
49
51
51
51
52
56
57
58
58
58
58
58
60
60
61
62
62
62
63
63
64
64
65
65
65
65
66
66
66
66
66
66
67
67
67
67
67
68
68
68
68
70
84
84
86
86
88
94
94
108
108
110
110
114
114
118
122
122
141
143
143
143
145
147
148
149
150
150
150
150
152
153
154
154
154
155
155
157
157
157
159
161
161
163
163
163
164
165
166
167
167
171
172
174
176
176
176
193
193
195
197
197
202
206
208
208
211
214
215
215
216
217
226
238
240
243
257
258
258
262
262
279
285
285
285
285
304
310
310
322
328
328
345
348
348
350
350
371
376
376
390
395
395
670
674
675
1
1
1
5
5
6
7
7
7
11
15
16
17
17
18
18
20
20
20
20
24
24
24
24
24
25
27
27
27
27
27
29
29
30
34
35
35
35
37
38
38
39
39
42
49
49
49
49
50
51
51
52
53
53
55
57
57
58
59
59
62
62
62
63
63
63
63
63
64
64
64
65
65
65
65
66
67
67
68
68
68
68
69
85
85
87
87
89
95
95
109
109
111
111
115
115
119
123
142
144
144
146
148
149
150
150
150
150
151
151
151
151
153
154
154
154
154
155
155
155
157
161
164
165
166
167
168
168
172
173
174
175
177
177
183
194
194
196
197
197
197
197
198
207
209
215
216
216
217
218
227
227
229
229
238
239
239
239
241
243
243
244
256
258
259
259
263
263
280
286
286
305
311
311
323
329
329
346
351
351
372
377
377
391
396
396
671
675
675
676
5
5
6
6
7
8
10
10
11
13
13
17
17
18
18
19
19
21
21
21
21
21
24
24
25
25
25
25
27
27
27
28
30
30
35
35
35
36
37
37
37
37
39
39
39
42
49
49
50
51
51
52
53
53
53
53
53
56
58
58
59
60
60
60
62
63
63
64
64
64
65
65
65
66
66
67
67
67
68
69
69
70
78
82
86
86
88
88
90
96
96
112
116
116
120
120
120
120
124
124
143
145
145
147
148
149
149
150
150
151
151
152
152
152
154
155
155
155
155
156
156
156
157
157
159
161
163
163
165
166
168
169
169
173
174
175
176
177
181
195
195
197
198
198
199
206
208
211
211
215
216
217
217
219
230
230
238
240
242
244
244
245
257
257
259
264
264
281
287
287
306
312
312
324
330
330
347
352
352
373
378
378
392
397
672
675
676
677
5
6
6
7
7
7
7
7
9
11
17
17
18
19
19
19
21
22
22
22
22
26
26
28
29
29
29
30
36
37
37
38
38
39
39
39
40
40
49
49
49
49
51
53
53
54
57
59
59
60
60
61
61
62
62
62
62
62
62
62
62
62
63
64
64
64
64
64
64
65
66
67
68
70
70
70
70
79
83
89
89
91
97
97
113
117
117
121
121
121
121
125
125
145
146
146
147
148
149
150
150
151
151
151
152
152
152
152
152
152
153
155
156
156
156
157
157
157
157
159
164
170
170
170
174
175
177
177
196
196
198
199
199
202
206
207
212
212
215
215
216
216
217
218
218
220
220
230
239
241
243
243
245
245
245
246
260
264
265
282
288
288
307
313
313
325
331
348
353
353
374
377
379
379
393
398
673
677
678
4
4
4
4
6
6
7
7
8
8
10
10
10
10
11
19
19
19
19
20
20
20
20
23
23
23
23
27
27
27
27
27
27
27
29
30
30
37
37
37
37
37
39
39
39
41
41
51
51
51
54
55
58
58
58
60
60
60
61
61
61
62
62
62
62
62
63
64
64
64
64
64
65
65
65
67
68
68
68
68
68
71
71
80
84
90
90
92
98
98
114
118
118
122
122
122
122
126
126
146
147
147
148
149
150
150
151
151
151
152
152
152
152
152
152
153
153
153
153
153
154
155
155
157
157
157
163
165
168
170
175
175
176
178
195
197
197
199
202
206
207
208
216
216
218
221
221
230
234
242
243
244
244
247
259
261
265
266
283
289
289
308
314
314
326
330
330
332
349
354
354
375
378
380
380
394
396
396
399
674
678
679
4
5
6
6
7
7
7
7
9
9
10
11
11
11
11
17
17
17
19
20
24
24
24
24
24
27
27
28
28
28
28
29
29
30
35
37
37
38
39
39
39
39
39
42
42
50
50
51
51
51
52
52
52
53
55
56
58
58
58
58
59
59
59
60
60
60
61
62
62
62
62
62
63
63
63
63
63
63
63
64
64
64
65
65
66
66
68
68
70
70
70
70
70
72
72
85
91
91
93
99
99
99
99
115
119
119
123
127
127
145
146
146
147
148
149
150
151
151
151
151
152
152
153
153
153
153
153
154
154
154
154
154
155
157
157
163
163
164
177
179
183
197
198
198
200
207
208
209
217
217
217
217
219
222
222
235
237
237
243
244
244
245
245
245
248
248
259
262
266
266
267
284
290
290
309
315
315
327
331
333
350
355
355
376
378
381
381
395
397
400
675
679
680
7
7
8
8
10
10
10
10
10
11
11
11
11
12
12
18
19
19
19
21
25
25
25
27
27
29
29
29
29
29
29
29
30
30
37
39
39
39
39
39
43
43
49
49
49
49
50
50
50
51
52
52
52
52
52
52
53
53
53
53
53
53
55
58
59
59
60
60
60
60
60
60
61
62
62
62
62
64
64
64
64
64
64
64
64
65
66
67
67
68
68
69
70
73
73
86
92
92
94
100
100
100
100
116
120
124
128
128
144
146
147
147
147
147
149
150
150
151
152
153
153
153
153
153
154
154
154
154
155
155
155
155
155
157
157
163
164
165
175
178
178
180
184
184
197
197
197
197
198
199
199
201
209
210
217
217
218
218
220
223
223
238
238
244
245
246
246
249
249
263
267
267
267
267
268
285
291
291
310
316
316
328
332
334
351
356
356
377
382
382
396
398
401
676
680
681
6
7
7
8
9
9
11
12
12
13
13
17
17
19
19
19
22
24
24
24
24
25
25
26
26
26
26
27
27
29
29
29
30
30
30
30
30
30
30
37
37
39
39
39
39
39
40
40
44
44
49
50
51
52
52
52
52
53
53
53
53
53
53
53
53
54
54
55
55
55
56
56
56
56
60
61
62
63
64
64
65
65
65
65
65
65
65
65
65
66
66
67
67
68
70
70
70
70
74
74
87
93
93
95
101
101
101
101
117
117
117
117
121
121
125
129
129
145
147
148
148
148
148
150
151
151
152
153
153
153
155
155
155
155
155
156
156
161
165
166
179
179
181
181
183
197
198
198
199
200
200
202
209
209
209
209
211
217
217
218
219
219
221
224
224
227
235
238
238
238
238
239
244
245
245
245
245
247
247
250
250
259
259
264
265
267
267
268
268
269
286
292
292
311
317
317
329
333
335
352
357
357
378
379
379
383
383
397
399
402
677
681
682
4
7
7
10
13
13
14
14
19
19
19
23
25
25
26
26
27
27
27
27
27
29
29
30
30
31
31
31
31
37
37
39
39
39
39
40
41
41
45
45
49
49
52
53
53
53
53
54
54
54
54
55
55
56
57
57
59
62
62
62
62
64
64
65
65
65
65
65
66
66
66
66
66
66
67
67
68
68
68
70
71
73
73
75
75
88
94
94
96
102
102
118
118
118
118
122
122
126
128
128
130
130
146
148
148
149
149
149
149
151
152
152
153
153
155
155
157
157
158
162
166
180
180
182
182
182
184
184
199
199
200
201
203
210
210
212
217
217
218
219
222
225
225
228
228
230
230
239
239
240
244
244
244
245
246
246
246
246
251
251
257
260
260
263
264
265
268
269
269
270
287
293
293
312
318
318
330
334
336
353
358
358
379
380
380
380
380
384
384
398
400
403
678
682
683
7
8
8
9
11
13
15
15
17
17
19
19
19
19
24
26
26
27
27
27
27
27
27
28
28
28
30
31
31
32
32
32
32
37
37
37
37
39
39
41
42
42
46
46
52
54
54
55
55
55
55
58
58
58
58
58
58
59
59
59
62
63
63
63
63
63
63
64
64
64
65
65
65
66
67
67
67
67
67
67
72
74
74
76
89
95
95
97
103
103
119
119
119
119
123
123
127
129
129
131
146
146
147
147
148
150
150
150
150
150
152
153
153
153
154
155
155
155
157
159
160
160
162
162
166
166
166
167
177
177
181
181
182
183
184
185
185
195
200
200
202
204
211
211
216
217
217
218
218
219
223
226
226
231
231
238
238
240
240
246
247
247
247
247
252
252
258
258
265
266
267
267
269
271
288
294
294
313
319
319
331
335
337
354
359
359
380
380
380
380
380
381
381
385
385
399
401
404
679
683
684
7
7
7
9
12
13
13
16
16
19
19
19
19
20
20
23
24
25
27
27
29
29
29
29
30
32
32
32
33
33
39
39
39
39
39
41
41
41
42
43
45
45
47
47
51
52
53
53
55
55
56
58
62
62
62
62
62
63
63
63
63
63
63
64
64
64
64
64
65
65
66
67
67
68
68
68
73
75
75
77
90
96
96
96
96
98
104
104
120
124
124
128
130
130
132
142
146
146
147
147
149
150
150
150
150
150
150
151
151
151
152
153
154
155
155
155
157
160
161
161
167
167
168
175
178
178
182
182
182
184
184
185
186
186
196
201
202
203
205
217
217
219
219
224
227
227
231
239
245
247
248
248
248
253
253
266
267
268
272
289
295
295
314
320
320
332
336
338
355
360
360
381
381
381
382
382
386
386
400
402
405
680
684
685
1
7
7
8
8
9
13
13
14
17
17
17
21
21
25
26
27
27
27
28
29
29
29
29
29
30
30
30
32
32
33
33
34
34
39
39
42
42
42
43
44
46
46
48
49
53
53
55
58
58
58
59
60
60
61
62
62
62
62
64
64
64
64
64
64
65
65
65
65
68
68
68
68
69
69
74
76
78
91
97
97
97
97
99
105
105
121
125
125
129
131
133
143
146
147
147
148
148
149
150
150
151
151
151
151
151
152
152
152
155
156
161
162
162
162
166
166
166
168
168
176
178
179
183
183
185
185
186
196
200
200
200
202
203
204
206
207
209
220
220
225
228
228
231
238
240
246
246
249
254
254
260
267
267
267
268
268
269
273
273
290
296
296
315
321
321
333
337
339
356
361
361
382
382
382
387
387
401
403
406
681
685
686
1
1
1
1
1
1
5
5
5
7
7
9
13
13
14
14
15
15
15
15
18
18
21
22
26
26
27
27
29
29
29
29
30
30
30
30
30
30
30
31
31
32
33
33
33
35
35
37
37
37
37
39
39
39
39
40
43
44
44
45
47
47
49
53
53
55
55
55
56
56
56
56
58
58
58
58
58
58
59
59
59
60
61
61
61
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
64
64
64
66
67
68
68
70
70
75
77
79
92
98
98
98
98
100
106
122
126
126
130
132
134
143
144
144
144
146
146
147
148
148
148
149
149
149
149
149
151
152
152
152
152
152
152
152
153
153
153
154
154
156
157
157
162
162
162
163
163
167
167
167
176
176
178
179
180
184
184
186
186
196
201
201
203
204
205
207
209
209
210
220
226
229
229
238
238
239
250
255
255
260
267
267
268
268
268
274
274
291
297
297
316
322
322
338
340
357
362
362
383
388
388
404
407
682
686
687
687
4
4
5
5
6
6
6
7
8
8
9
13
13
13
15
15
15
17
17
19
19
22
24
27
27
28
30
30
30
31
31
31
31
31
32
32
32
33
34
34
34
34
34
34
34
34
36
36
37
37
39
40
41
41
42
44
44
44
44
46
48
50
53
53
53
55
55
56
57
57
58
58
58
58
59
60
60
60
60
60
60
60
62
62
62
62
62
62
63
64
64
64
64
64
64
65
67
68
69
69
71
71
78
80
93
99
99
101
101
103
103
107
107
123
125
125
127
127
131
133
135
142
142
144
145
145
145
145
145
147
147
147
147
148
148
148
148
148
149
149
149
149
151
153
153
153
153
153
153
153
155
157
157
158
163
164
164
168
168
168
179
180
181
184
184
185
185
187
196
200
202
202
205
206
208
209
209
210
211
220
227
230
235
238
239
240
248
251
256
256
269
269
269
275
275
292
298
298
317
323
323
339
341
358
363
363
380
384
389
389
405
408
683
683
687
688
688
5
7
7
7
7
7
7
8
9
13
16
17
20
20
22
22
23
25
28
28
29
31
31
32
32
32
32
32
33
33
33
34
34
35
35
37
37
37
39
41
42
44
47
49
51
53
53
53
58
58
58
58
58
58
59
59
59
60
60
62
62
63
63
64
64
65
65
68
70
70
72
79
79
81
81
94
100
100
102
102
104
104
108
108
124
126
126
128
130
132
134
134
136
143
143
145
145
145
146
146
146
146
148
148
148
148
148
148
149
149
149
149
149
150
153
154
154
156
158
159
163
165
165
166
169
169
178
178
180
181
182
182
184
185
185
186
186
188
201
203
206
207
209
209
210
211
212
212
228
231
236
240
241
248
252
257
257
265
270
270
270
276
276
293
299
299
318
324
324
340
342
359
364
364
380
380
381
385
390
390
406
409
688
689
689
4
6
8
8
8
8
8
8
8
9
9
9
9
13
14
15
15
17
17
21
21
21
21
21
23
24
24
26
27
29
30
31
31
32
32
32
32
32
32
32
34
34
34
36
36
36
36
37
38
38
38
38
41
41
41
42
44
45
48
49
50
52
53
58
58
58
58
58
59
60
60
61
62
62
63
64
64
64
64
68
69
71
71
73
80
80
82
82
95
101
101
103
103
105
105
109
109
125
127
127
129
131
135
135
137
144
144
146
146
146
147
147
147
147
149
149
149
149
149
149
150
150
150
150
151
153
155
155
157
159
160
165
165
167
169
176
178
179
185
186
186
187
187
189
200
202
207
207
208
210
211
212
229
232
236
237
241
253
258
258
266
271
271
277
277
294
300
300
319
325
333
341
343
360
365
365
380
381
382
386
391
401
405
407
410
689
690
690
5
7
7
7
9
9
9
10
10
13
15
15
16
16
18
20
20
21
22
22
22
24
24
24
24
24
27
27
30
31
32
32
32
32
33
33
33
34
34
35
35
35
36
36
37
37
37
39
39
39
39
42
42
42
43
44
45
45
46
48
49
49
50
50
51
51
53
53
58
58
58
59
59
60
60
60
62
62
62
62
63
63
64
67
67
67
68
70
72
73
74
77
81
81
83
83
96
102
102
106
110
110
126
128
130
132
136
136
138
145
145
145
145
147
148
148
149
150
150
150
150
151
151
151
151
151
153
153
158
159
161
169
176
176
178
178
179
180
187
187
188
188
190
196
200
201
208
208
208
209
211
212
212
217
228
230
233
236
237
241
241
242
248
248
254
258
259
266
266
270
270
272
272
278
278
295
301
301
320
324
324
326
334
339
342
344
361
366
366
382
383
383
387
392
406
408
411
690
691
691
4
4
5
5
10
10
11
11
15
17
17
19
21
21
21
21
23
24
25
27
27
32
32
33
34
34
34
35
35
36
36
36
37
37
37
37
38
38
40
40
40
40
43
44
44
44
44
46
46
48
48
49
49
50
50
50
51
52
52
53
53
54
54
58
58
59
59
59
60
60
60
60
61
62
62
63
63
63
63
63
64
64
65
65
65
65
67
71
73
74
75
78
84
84
97
103
107
111
111
127
129
131
137
137
139
148
148
149
151
151
151
152
153
153
153
159
160
160
162
167
179
179
180
181
187
187
187
187
188
189
189
191
196
200
201
202
209
210
212
213
213
218
218
220
220
229
229
229
231
231
231
234
242
242
243
246
249
249
255
259
260
271
271
273
273
279
279
296
302
302
321
325
327
340
343
345
362
367
367
378
383
388
390
390
393
407
409
412
691
692
692
5
5
5
7
7
11
11
11
15
15
17
20
22
22
24
25
26
30
33
33
34
34
34
34
35
35
36
36
37
37
37
37
41
41
41
41
41
42
44
44
44
44
46
46
46
47
48
48
49
49
50
50
50
50
51
51
52
53
53
53
55
55
55
58
58
58
58
58
58
58
58
58
58
59
59
60
60
60
60
60
60
60
60
60
61
61
61
62
62
62
62
62
63
65
65
67
67
67
67
67
74
75
76
79
85
85
98
98
100
100
104
104
108
112
112
128
130
132
138
138
140
144
144
146
146
146
146
147
148
148
149
150
151
151
153
154
160
161
163
180
181
181
188
188
189
190
190
192
201
202
203
210
211
213
214
214
221
221
230
232
232
232
235
243
243
247
247
256
260
260
261
270
272
272
274
280
280
297
303
303
322
326
328
341
344
346
363
368
368
379
384
389
391
394
408
410
413
692
693
693
5
5
5
6
7
7
11
11
12
12
17
17
17
21
23
24
25
26
27
32
32
32
34
34
34
34
34
35
36
37
38
38
38
38
38
38
40
40
42
42
42
42
44
46
46
46
47
50
50
50
50
51
51
52
52
53
53
53
55
56
56
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
63
65
65
65
65
67
67
68
68
75
75
77
77
80
86
86
99
99
101
101
105
105
109
113
113
127
129
131
131
133
139
139
140
141
141
142
142
142
144
145
145
146
146
146
146
147
147
147
147
147
149
150
151
153
154
154
155
155
161
162
164
189
189
191
191
193
203
204
208
211
212
212
214
221
229
231
232
232
232
232
233
233
236
241
257
261
261
261
261
262
270
275
281
281
298
304
304
323
327
329
342
345
347
364
369
369
379
383
383
385
390
392
395
409
411
414
693
694
694
5
5
5
6
7
7
7
8
11
12
13
13
15
15
17
21
22
24
24
24
26
32
32
32
34
35
36
36
37
37
39
39
39
39
41
41
43
43
44
44
44
44
45
46
47
48
48
50
51
51
52
52
53
57
57
58
58
59
59
60
60
60
60
60
60
60
60
60
60
61
61
62
62
62
62
62
62
62
62
62
62
62
62
63
63
64
65
65
66
67
68
68
76
76
78
78
81
87
87
100
100
102
102
106
106
110
114
128
132
132
134
138
140
140
140
140
141
142
142
142
142
143
143
143
143
143
145
146
146
147
147
147
147
148
148
148
148
152
154
154
154
154
155
155
155
155
156
162
163
165
185
192
192
194
203
203
203
203
205
208
212
212
213
213
215
221
232
233
233
234
234
236
237
249
258
259
261
261
262
262
263
266
270
271
276
282
282
282
282
299
305
305
324
328
330
343
346
346
348
348
365
370
370
379
379
383
384
384
386
391
393
396
410
412
412
415
415
694
695
695
5
5
6
7
7
9
11
11
12
13
13
13
13
14
14
17
17
17
25
26
26
27
27
27
32
32
33
34
34
34
34
36
36
37
40
40
40
40
42
42
44
44
44
44
45
46
46
48
48
48
48
48
50
50
52
52
54
55
55
58
58
58
58
59
59
59
59
60
60
60
60
60
60
60
60
62
62
62
62
63
63
63
63
63
63
63
64
65
69
73
77
77
79
79
82
88
88
103
107
107
111
111
111
111
115
115
129
133
133
135
139
141
141
141
142
143
143
143
143
144
144
144
144
144
144
144
146
147
147
147
147
148
148
148
148
148
148
149
149
149
149
155
155
156
156
156
157
163
164
166
181
187
193
195
204
204
206
213
213
214
214
216
232
232
233
234
234
235
236
237
238
238
241
241
249
257
258
259
262
263
263
264
266
271
272
277
283
283
300
306
306
325
329
331
344
349
349
366
371
371
384
385
385
392
394
397
411
416
416
695
696
696
1
4
5
5
5
5
5
6
7
7
7
7
8
10
11
11
11
13
13
15
15
15
15
17
20
24
24
24
26
26
27
28
28
34
34
35
35
36
36
36
37
37
39
41
41
41
41
41
41
42
42
44
44
44
44
45
45
46
48
49
55
55
55
55
55
58
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
61
62
62
63
63
63
66
70
74
80
80
83
89
89
104
108
108
112
112
112
112
116
116
134
134
136
140
140
140
140
141
142
142
142
143
143
144
144
144
144
144
145
145
145
145
145
145
145
145
146
147
147
149
149
149
149
149
149
151
154
154
156
156
157
157
157
164
165
167
169
169
179
187
187
187
187
188
194
196
205
205
208
208
212
214
214
215
217
233
234
235
236
239
239
242
242
259
260
261
261
263
265
270
272
273
278
284
284
301
307
307
326
330
332
345
350
350
367
372
372
385
386
393
395
398
412
417
417
696
697
697
1
1
1
5
5
5
7
7
8
8
9
11
11
16
16
17
17
17
21
25
26
26
27
27
27
29
29
34
34
34
34
36
36
36
38
40
42
42
42
43
43
46
46
46
46
46
49
50
56
58
58
59
59
60
60
60
60
60
60
60
60
60
60
60
62
62
62
62
63
63
65
68
71
75
81
81
84
90
90
105
109
109
113
113
113
113
117
117
135
135
137
141
141
141
142
142
143
143
143
143
143
144
144
144
144
144
144
145
145
145
146
146
146
146
147
149
149
150
150
151
155
157
158
158
165
166
167
168
170
170
187
188
188
189
194
195
197
209
209
212
212
213
213
215
216
216
218
218
218
232
234
235
237
240
240
241
243
243
243
249
249
260
261
262
266
266
271
273
273
279
285
285
302
308
308
327
331
333
346
351
351
368
373
373
394
396
399
413
418
418
697
698
698
5
5
5
5
6
7
7
7
8
8
9
9
9
10
11
12
12
13
13
15
15
17
17
17
17
17
17
22
24
24
26
27
28
28
30
30
32
34
34
36
36
36
36
36
39
41
43
43
43
44
44
44
44
46
46
46
46
46
47
47
47
48
50
51
57
58
58
58
58
58
58
58
59
60
60
60
60
60
60
60
61
61
61
61
61
61
62
62
63
65
65
65
65
68
76
82
82
85
91
91
91
91
106
110
110
114
118
118
136
136
138
142
142
142
143
143
143
144
144
144
145
145
145
145
145
145
146
146
147
147
148
149
149
149
151
151
154
156
158
159
159
166
167
168
169
170
171
189
189
190
192
195
196
198
201
203
213
213
216
219
219
219
219
221
221
232
232
233
236
241
241
241
242
247
250
250
261
261
261
262
262
263
267
267
270
272
280
286
286
303
309
309
332
334
347
352
352
369
374
374
383
395
397
400
414
419
419
698
699
699
1
4
5
5
5
6
7
8
8
9
9
10
10
10
11
11
13
13
13
14
14
16
16
17
17
17
17
18
18
18
18
26
26
27
27
31
31
34
36
36
36
36
40
40
41
42
42
44
44
44
44
44
44
44
46
47
47
47
48
48
48
48
48
48
50
55
58
58
58
58
58
58
58
58
59
59
60
60
60
60
60
60
60
60
60
60
60
61
61
61
62
62
62
62
62
63
63
63
64
65
65
77
83
83
86
92
92
92
92
107
111
115
119
119
135
137
137
137
139
142
142
143
143
143
143
143
143
144
144
144
144
144
144
145
145
145
145
146
146
146
146
146
146
146
147
149
149
149
149
154
154
155
160
160
168
168
168
170
170
171
172
181
185
190
190
196
197
199
203
203
204
214
214
214
214
217
220
220
222
222
229
232
233
234
237
242
242
242
242
243
243
248
248
261
261
262
262
262
268
268
271
271
273
273
281
287
287
304
310
310
333
335
348
353
353
370
375
375
379
384
398
401
415
420
420
697
700
700
4
5
6
7
9
9
10
11
11
12
13
14
15
15
15
17
17
19
19
19
24
24
26
27
28
32
32
34
34
36
36
36
36
36
37
41
42
42
42
43
43
44
44
44
45
45
46
47
47
48
48
48
48
48
48
48
49
49
50
50
50
51
51
51
51
58
58
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
62
62
62
63
63
63
64
64
64
64
65
78
84
84
87
93
93
93
93
108
108
108
108
112
112
116
120
120
136
138
138
140
140
142
143
143
144
144
144
144
144
145
145
145
145
145
145
146
146
147
147
147
147
147
148
149
151
154
155
156
158
166
169
169
171
171
172
173
182
182
186
191
197
198
200
203
203
204
205
214
214
215
215
218
221
221
222
230
234
235
238
243
243
244
244
263
263
263
269
269
271
273
274
274
282
288
288
305
311
311
334
336
349
354
354
371
376
376
383
385
399
402
416
421
421
698
699
701
701
5
5
5
7
9
11
12
12
13
13
13
15
15
18
18
19
20
20
26
26
26
27
27
27
27
29
33
33
34
34
36
36
36
36
37
38
42
43
43
44
44
44
44
45
45
45
46
46
47
47
47
48
48
48
48
48
48
49
50
50
51
52
52
55
56
58
59
59
60
60
60
60
60
60
60
60
60
61
61
61
62
62
62
62
62
63
63
63
64
64
65
65
79
85
85
88
94
94
109
109
109
109
113
113
117
119
119
121
121
137
139
139
141
141
143
144
144
145
145
145
145
146
146
146
146
146
147
148
149
151
152
156
157
160
170
170
170
170
172
172
173
179
181
186
190
190
192
198
199
201
203
204
205
206
206
214
214
215
216
216
219
222
222
222
230
231
235
239
242
243
243
243
244
244
245
245
250
259
264
264
264
270
270
271
273
274
275
275
283
289
289
306
312
312
327
335
337
350
355
355
372
377
377
379
384
386
400
403
417
422
422
700
702
702
5
6
7
8
9
9
11
12
12
13
13
13
14
14
15
15
15
15
15
16
19
20
21
24
24
27
28
28
30
34
34
34
34
34
34
36
36
38
39
43
45
46
46
46
47
47
47
47
47
48
49
49
49
49
49
49
50
51
51
53
53
55
55
55
55
56
58
58
58
58
58
58
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
61
61
62
62
63
63
63
64
64
65
65
65
65
66
66
80
86
86
89
95
95
110
110
110
110
114
114
118
120
120
122
136
137
139
139
140
140
141
142
142
144
145
145
145
145
146
146
146
146
146
147
147
147
147
148
149
150
153
157
160
168
170
171
171
171
173
180
180
182
182
186
191
191
193
199
200
201
202
205
206
214
214
215
216
220
223
223
230
231
235
235
236
240
242
242
242
243
244
244
244
245
245
250
260
265
265
271
271
271
271
274
275
284
290
290
307
313
313
328
333
336
338
351
356
356
373
378
378
383
385
395
399
401
404
418
423
423
701
703
703
5
5
5
8
9
9
10
13
13
14
14
15
15
15
15
17
20
20
20
21
22
29
29
31
35
35
36
36
36
36
36
38
38
38
39
41
43
44
46
47
47
47
47
48
48
48
48
48
49
50
50
50
50
51
52
52
52
52
53
55
56
56
57
58
58
59
59
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
62
62
63
63
63
63
64
64
65
66
66
81
87
87
87
87
90
96
96
111
115
115
119
121
121
123
132
137
138
138
138
139
139
140
140
141
141
141
142
143
143
143
145
145
147
147
147
147
147
147
147
149
150
151
153
153
157
157
157
158
168
168
170
170
171
172
172
172
174
180
182
183
183
186
190
192
192
200
201
202
202
203
206
206
213
214
214
215
215
216
221
224
224
236
236
237
241
244
245
245
245
246
246
260
260
264
264
266
266
272
272
272
272
273
273
273
275
285
291
291
308
314
314
334
337
339
352
357
357
374
379
379
384
386
386
400
402
405
419
424
424
702
704
704
9
9
9
10
10
11
11
11
11
15
15
15
15
15
15
15
16
16
16
19
19
19
21
21
22
22
23
24
29
32
36
36
36
36
39
39
39
40
44
44
47
47
47
47
47
48
48
48
49
49
49
50
50
51
51
51
51
53
53
53
53
53
55
55
57
57
57
58
59
59
59
60
60
60
60
60
60
60
62
63
63
63
63
63
63
63
64
64
64
65
65
67
82
88
88
88
88
91
97
97
112
116
116
120
122
124
133
138
138
138
139
139
139
140
140
140
140
140
141
141
141
142
142
143
144
144
147
147
147
147
147
149
150
151
152
158
158
159
171
171
172
173
173
173
175
180
182
183
184
184
191
193
201
202
204
207
207
214
214
216
216
222
225
225
237
237
242
243
245
246
246
247
247
265
265
267
267
273
273
274
274
274
274
286
292
292
309
315
315
335
338
340
353
358
358
375
380
380
384
386
387
401
403
406
420
425
425
703
705
705
1
5
5
9
9
9
9
10
11
11
11
11
13
13
15
15
15
16
16
16
17
17
19
20
20
22
22
22
22
22
22
22
24
24
24
29
29
33
34
34
34
34
36
36
36
36
37
37
37
40
41
41
42
45
46
47
47
47
48
48
48
48
48
48
48
49
50
50
50
50
50
50
50
51
51
51
51
52
52
53
53
53
54
54
55
55
55
55
55
57
57
58
58
59
59
59
60
60
61
61
62
62
62
64
64
64
64
64
64
66
68
83
89
89
89
89
92
98
113
117
117
121
123
125
134
138
138
138
139
139
139
140
140
140
141
141
141
141
141
142
142
143
143
144
144
145
145
147
147
147
150
152
153
153
157
157
157
159
159
172
173
173
174
174
176
183
184
190
192
202
203
205
208
208
217
217
223
226
226
235
243
244
244
248
248
264
266
266
268
274
274
275
275
287
293
293
310
316
336
339
341
354
359
359
376
381
384
386
387
388
402
404
407
421
426
426
704
706
706
4
6
9
12
12
15
15
15
16
17
17
18
18
19
19
21
22
23
23
23
24
24
25
25
29
30
34
34
34
36
37
38
38
38
38
39
41
41
41
41
43
47
47
48
48
48
48
48
49
49
49
49
50
51
51
51
51
52
52
53
53
53
53
54
54
55
55
55
57
57
57
57
58
58
58
58
58
58
58
58
59
59
59
60
60
60
60
61
61
61
62
62
62
63
63
63
63
64
65
65
65
67
69
84
90
90
93
93
95
95
99
99
114
116
116
118
118
122
124
126
135
135
139
139
139
140
140
140
140
140
140
140
140
140
141
141
142
142
142
142
142
142
142
143
144
144
145
145
146
146
147
147
147
150
151
151
151
153
153
153
154
158
158
158
175
175
177
184
186
190
191
202
203
204
206
206
217
219
224
227
227
230
244
248
249
264
269
275
275
275
288
294
294
311
315
315
317
337
340
340
342
342
355
360
360
377
382
387
388
403
405
408
422
427
427
705
707
707
4
5
5
7
7
9
10
11
11
11
12
13
13
13
13
13
15
15
15
15
17
18
18
19
19
22
23
24
24
24
26
26
30
31
31
31
31
34
35
36
38
39
39
39
41
44
46
46
48
48
48
48
48
49
49
50
50
50
50
50
51
51
52
52
52
53
53
53
53
54
55
55
56
56
58
59
60
60
60
60
60
60
60
60
60
60
60
60
62
62
62
62
62
63
64
64
64
65
65
68
70
85
91
91
94
94
96
96
100
100
115
117
117
119
121
123
125
125
127
139
140
140
140
140
141
141
141
141
141
141
141
141
142
142
142
142
142
142
143
143
143
143
143
144
144
144
145
146
146
147
147
147
148
151
152
152
154
155
159
159
159
176
176
178
182
182
186
190
191
192
202
204
205
206
207
207
217
220
222
222
225
228
230
231
235
235
245
246
249
250
260
264
265
270
275
276
276
276
276
289
295
295
312
316
318
338
343
343
356
361
361
378
380
380
383
384
386
388
404
406
406
409
409
423
428
428
706
708
708
1
1
4
4
5
5
6
8
9
11
11
12
12
12
13
13
14
14
15
15
15
15
16
16
19
20
22
23
24
25
27
27
29
29
31
31
34
36
38
38
38
38
38
39
40
40
41
42
48
49
50
51
52
52
52
52
53
53
53
53
53
54
55
55
56
57
57
58
58
58
59
59
59
59
60
60
60
60
60
60
60
60
60
62
63
63
69
69
71
71
86
92
92
95
95
97
97
101
101
116
118
118
120
122
126
126
128
140
140
141
141
141
141
141
141
141
141
142
142
142
142
142
142
142
142
143
143
143
143
143
144
144
144
145
145
146
147
147
148
149
152
153
153
155
156
157
160
160
173
177
177
179
180
180
182
183
183
191
192
193
205
206
207
208
208
223
223
226
229
230
236
236
246
246
250
250
251
260
265
266
271
277
277
290
296
296
313
317
319
339
344
344
357
362
362
379
381
384
387
405
410
410
424
429
429
707
709
709
1
1
4
4
5
5
7
9
11
13
13
13
13
13
14
14
15
15
17
17
19
20
20
21
21
22
22
24
28
28
29
29
29
34
37
39
39
39
39
39
40
41
41
42
43
50
52
53
53
53
53
53
53
54
54
54
55
55
56
56
56
58
58
58
59
60
60
61
63
63
64
70
70
72
72
87
93
93
98
102
102
117
119
121
123
127
127
129
138
141
141
141
142
143
143
143
143
143
143
143
143
143
144
144
144
144
144
145
145
146
146
146
147
148
149
150
153
154
154
156
157
158
160
171
178
178
180
183
184
184
193
194
202
202
206
206
207
208
209
220
223
223
223
223
224
227
230
231
235
237
237
237
247
251
251
251
251
252
264
266
267
272
278
278
291
297
297
314
318
320
340
345
345
358
363
363
380
382
384
385
388
406
411
411
425
430
430
708
710
710
4
5
5
5
6
8
9
10
11
11
13
16
16
17
18
21
21
22
22
24
24
24
25
25
29
29
29
29
30
31
31
34
34
34
34
38
40
40
40
41
41
41
41
42
43
45
48
48
50
51
53
53
54
55
55
55
55
55
55
55
55
55
56
56
57
57
57
58
58
58
59
59
59
59
59
59
59
60
60
60
60
62
63
63
64
64
65
67
71
71
73
73
88
94
99
103
103
118
120
122
128
128
130
139
142
142
143
143
143
143
143
144
145
145
145
145
147
147
149
150
151
154
155
155
156
158
160
179
179
181
185
185
193
193
193
193
195
203
203
206
206
207
207
207
208
208
210
210
214
224
224
225
228
231
235
236
246
246
248
249
251
251
252
252
253
260
265
267
267
273
274
279
279
292
298
298
315
319
321
341
346
346
359
364
364
381
383
385
386
386
407
412
412
426
431
431
709
711
1
4
4
4
5
5
7
9
10
11
13
13
13
13
13
17
18
22
22
22
22
23
23
25
26
30
30
31
31
32
32
38
39
39
41
41
41
41
41
43
43
43
43
48
51
51
51
52
53
53
53
53
53
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
57
57
57
58
58
58
58
58
58
59
59
59
59
60
60
62
63
63
63
63
64
65
68
74
74
89
89
91
91
95
95
100
104
104
119
121
123
129
129
131
135
135
138
138
140
143
143
143
143
143
145
145
145
148
148
149
150
151
152
155
156
157
157
158
159
180
180
182
185
185
185
185
186
194
194
196
207
207
208
211
211
215
215
217
217
223
223
225
225
227
227
229
232
236
236
237
237
244
247
247
247
248
249
252
253
253
254
264
266
274
275
275
275
275
280
280
293
299
299
316
320
322
342
347
347
360
365
365
382
384
387
387
408
413
413
427
432
432
709
710
712
5
5
5
6
8
10
11
11
11
11
12
13
13
17
18
18
18
18
18
18
19
19
23
24
24
24
25
27
31
31
33
33
34
40
41
42
43
43
43
44
44
48
48
48
52
52
52
52
52
53
53
53
53
53
53
53
53
54
55
55
55
55
55
55
55
55
55
55
55
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
60
60
60
60
60
60
60
60
60
60
61
61
61
61
62
62
62
63
64
64
64
65
69
75
75
90
90
92
92
96
96
101
105
105
118
120
122
122
124
130
130
130
130
131
132
136
136
136
136
136
137
137
139
139
141
141
141
141
141
145
145
145
145
147
147
149
151
151
152
152
157
158
160
173
181
181
183
186
186
187
195
195
208
208
208
208
209
212
212
218
218
224
228
230
233
238
238
245
245
249
250
251
251
253
255
265
265
267
267
275
276
276
281
281
294
300
300
317
321
323
343
348
348
361
366
366
383
385
388
388
409
414
414
428
433
433
710
710
711
713
4
5
6
7
9
11
13
13
13
13
13
17
17
17
19
19
19
19
20
20
20
22
22
24
25
25
28
29
31
31
32
32
34
41
41
41
41
42
43
43
44
45
45
45
45
45
46
46
53
53
54
54
54
54
55
55
55
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
60
60
61
61
61
61
61
61
61
61
61
62
62
62
63
63
63
70
76
76
91
91
93
93
97
97
102
106
119
123
123
125
129
131
131
131
131
131
132
133
133
134
134
134
134
137
137
137
137
137
138
138
138
138
138
138
138
138
138
139
140
140
140
140
141
142
142
143
145
147
147
150
151
151
152
152
153
155
158
159
161
174
174
182
182
184
187
187
208
208
209
209
210
213
213
218
223
225
229
231
234
236
237
237
237
239
239
250
251
252
256
265
267
268
268
276
276
282
282
295
301
301
318
322
324
344
349
349
362
367
367
384
384
386
389
410
415
415
429
434
434
711
712
714
7
7
8
10
11
11
12
13
14
17
18
20
20
20
20
20
20
20
20
20
21
21
24
24
24
25
25
25
26
29
31
33
33
33
33
34
38
41
41
42
42
43
43
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
47
47
53
53
55
55
55
55
55
57
57
57
58
58
58
59
59
59
59
60
60
60
60
60
60
60
60
60
60
61
61
61
62
62
62
62
62
62
62
62
62
63
63
63
64
71
77
77
94
98
98
103
103
103
103
107
107
120
124
124
126
130
132
132
132
132
133
134
134
135
135
135
135
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
140
140
140
140
140
140
140
141
141
141
141
143
143
143
149
151
151
151
151
152
153
153
154
155
159
160
162
171
173
183
183
183
185
191
193
208
208
209
210
210
211
214
214
218
223
223
224
230
232
235
236
236
236
237
238
238
238
247
251
251
251
252
252
253
257
257
265
267
268
269
269
276
277
283
283
296
302
302
323
325
345
350
350
363
368
368
385
385
386
386
387
390
411
416
416
430
435
435
712
713
715
9
11
13
13
13
13
15
15
16
17
17
20
21
21
22
22
24
25
25
26
26
27
30
31
31
33
34
34
39
41
41
41
41
43
43
44
44
45
45
45
46
47
47
47
47
48
48
52
53
55
55
55
56
56
56
57
58
58
58
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
60
60
62
62
63
63
63
63
63
63
63
64
64
72
78
78
95
99
99
104
104
104
104
108
108
125
125
127
131
133
133
133
133
133
133
134
134
135
135
136
136
136
136
139
139
139
139
139
139
139
140
140
140
140
140
140
140
140
140
141
141
141
141
141
141
141
142
142
144
144
152
152
153
153
154
155
160
161
163
172
172
174
174
184
185
186
193
193
194
208
208
209
210
212
215
215
220
223
224
225
231
233
236
236
238
239
239
239
247
251
251
252
252
252
258
258
265
265
268
269
278
284
284
297
303
303
324
326
346
351
351
364
369
369
387
387
387
388
388
391
412
417
417
431
436
436
713
714
716
7
7
11
11
12
13
13
13
13
14
16
17
21
22
22
22
22
23
23
24
24
24
25
25
25
25
26
27
27
28
31
33
33
33
35
35
40
43
43
43
44
45
46
46
46
46
47
48
48
48
48
49
49
53
55
55
55
55
55
56
56
57
57
57
58
59
59
59
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
63
63
64
64
65
65
73
79
79
96
100
100
105
105
105
105
109
109
126
126
128
133
134
134
135
136
136
136
137
137
137
137
138
140
140
141
141
141
141
141
141
141
141
141
142
142
142
142
142
142
142
143
143
146
151
151
153
153
154
154
154
156
160
160
161
162
164
172
174
175
175
185
185
185
185
185
186
187
193
193
194
195
207
208
208
209
209
210
213
216
216
221
225
226
232
233
237
237
237
239
240
240
253
253
253
259
259
266
266
267
267
267
269
279
285
285
298
304
304
325
327
347
352
352
365
370
370
388
388
388
388
389
392
413
418
418
432
437
437
714
715
717
7
7
8
8
8
8
13
13
13
13
13
14
14
17
18
18
20
22
22
22
22
23
23
23
24
25
26
26
26
27
28
29
31
31
31
31
32
33
34
34
36
36
43
43
43
44
44
45
45
45
46
47
47
48
49
49
49
49
52
52
53
53
53
55
55
55
55
55
56
56
56
56
57
57
57
58
58
58
58
58
59
59
59
60
60
60
60
60
60
60
60
60
61
61
61
62
62
62
62
62
63
65
65
66
66
74
80
80
97
101
101
106
110
110
127
127
129
132
134
135
135
136
136
137
139
140
141
141
141
141
141
141
142
143
143
143
143
143
143
144
144
148
152
154
155
157
158
161
161
162
163
165
172
174
175
176
176
185
185
186
186
186
187
188
193
194
195
196
196
208
208
210
210
214
215
217
217
221
222
226
233
238
238
238
238
247
247
249
254
254
254
260
260
268
268
268
268
275
280
286
286
299
305
305
318
326
328
348
353
353
366
371
371
387
388
389
389
390
393
414
419
419
433
438
438
715
716
718
7
7
7
7
8
8
11
14
14
14
15
15
17
18
18
20
20
23
24
24
25
27
27
27
27
28
28
29
30
33
33
33
33
33
33
35
35
37
41
41
41
41
43
44
44
45
45
45
45
46
46
47
47
48
50
50
51
52
52
52
53
55
55
55
55
56
56
56
56
56
57
57
57
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
61
61
62
62
62
63
63
63
65
65
66
66
67
67
67
67
75
81
81
81
81
98
102
107
111
111
126
128
128
128
130
133
135
136
136
136
136
137
137
138
140
141
141
141
141
141
142
143
143
144
144
145
145
148
148
149
151
153
155
156
158
159
161
162
163
164
166
175
176
183
186
187
187
187
188
189
191
195
196
211
211
215
216
216
218
218
218
218
221
222
226
226
227
234
239
239
245
248
248
250
255
255
261
261
269
269
276
276
276
276
281
287
287
300
306
306
319
324
327
329
349
354
354
367
372
372
385
389
389
390
390
391
394
415
420
420
434
439
439
716
717
719
13
15
15
15
15
16
19
19
20
20
22
22
22
23
24
25
27
28
29
30
31
33
33
34
36
36
38
41
43
45
45
45
45
45
45
46
47
47
47
47
48
48
48
48
48
49
51
51
51
53
53
53
53
54
55
55
55
55
55
55
55
55
56
56
56
57
57
57
57
58
58
58
58
58
58
59
59
59
59
60
60
61
62
62
63
63
64
64
68
68
68
68
76
82
82
82
82
99
99
99
99
103
103
108
112
112
127
129
129
131
134
134
134
134
135
135
137
137
137
137
137
137
138
138
138
139
140
141
142
143
143
143
143
143
145
146
146
146
148
148
148
149
150
151
151
152
156
157
159
159
159
161
162
163
165
167
176
183
187
188
188
188
190
192
192
196
196
211
216
219
219
219
219
227
227
228
235
240
240
240
246
246
250
250
254
254
256
256
262
262
269
277
277
282
288
288
301
307
307
325
328
330
350
355
355
368
373
373
387
388
390
390
392
395
416
421
421
435
440
440
717
718
720
1
1
7
7
8
8
11
11
14
16
16
16
16
20
20
20
20
21
22
23
24
24
25
26
27
27
29
29
30
30
31
31
32
32
33
33
33
33
34
35
37
39
41
41
45
45
45
46
48
48
49
49
49
51
51
52
52
53
53
54
54
55
55
55
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
59
60
60
61
61
61
61
62
63
64
65
65
69
69
69
69
69
69
77
83
83
83
83
100
100
100
100
104
104
109
111
111
113
113
128
130
130
131
131
131
132
135
135
135
135
136
136
136
136
136
136
137
137
138
138
138
138
138
139
139
140
140
141
143
143
143
146
147
147
149
150
151
151
152
153
157
158
160
162
163
163
164
166
166
168
174
174
184
188
189
189
191
197
197
211
217
219
220
228
228
236
240
241
241
255
255
257
257
263
263
269
277
283
289
289
302
308
308
326
329
331
351
356
356
369
374
374
389
391
393
396
417
422
422
436
441
441
718
719
721
1
1
8
8
8
9
9
11
16
16
17
17
21
21
22
22
22
22
22
23
25
25
27
27
28
29
30
30
31
31
31
32
32
33
33
33
34
35
36
38
40
46
47
49
50
50
52
52
52
52
52
53
53
54
54
54
55
55
55
55
56
56
57
57
57
57
57
57
57
58
58
58
59
59
60
60
60
60
60
60
60
60
61
61
62
62
62
63
64
64
65
66
66
66
69
69
70
70
70
70
78
84
84
101
101
101
101
105
105
110
112
112
114
128
128
129
130
131
131
132
132
132
132
133
135
135
136
136
136
137
137
137
137
137
137
137
139
139
139
139
140
141
143
147
148
148
148
148
149
150
151
153
154
158
159
161
161
161
163
164
167
167
169
172
172
174
175
175
184
188
188
189
190
190
192
198
198
218
219
221
226
237
242
242
248
254
256
256
258
264
264
277
284
290
290
303
309
309
327
330
332
352
357
357
370
375
375
387
390
392
394
397
418
423
423
437
442
442
719
720
722
7
10
10
11
15
15
15
17
18
18
18
20
20
22
22
23
26
28
28
29
29
29
29
31
32
33
33
33
34
34
35
36
39
41
45
45
47
48
50
50
52
54
54
54
54
54
54
55
55
56
56
56
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
60
60
61
65
67
67
67
71
71
71
71
79
85
85
102
106
106
111
113
113
115
129
129
130
130
130
130
130
131
132
132
133
133
133
133
134
134
134
134
136
136
136
137
137
137
137
137
137
137
138
138
138
138
138
138
138
140
141
142
143
148
149
149
149
150
154
159
159
160
161
162
162
168
168
170
175
176
176
184
189
189
190
191
191
192
193
196
219
221
222
238
240
240
243
243
248
254
259
265
265
285
291
291
304
310
310
328
331
331
333
333
353
358
358
371
376
376
388
388
393
395
398
419
424
424
438
443
443
720
723
1
8
8
10
15
16
18
18
18
18
18
19
22
22
22
23
23
23
27
27
27
27
29
29
29
29
34
34
34
35
35
35
35
35
36
38
40
40
41
42
42
45
45
47
50
50
50
51
52
52
55
55
55
56
56
56
56
56
56
57
57
57
58
58
58
58
59
59
59
60
60
60
60
60
60
60
60
60
61
61
65
65
66
66
68
68
68
68
68
72
72
72
72
80
86
86
103
107
107
112
114
116
130
130
130
131
131
131
131
131
132
133
134
134
134
134
134
135
135
135
135
136
136
136
136
136
137
137
137
138
138
139
139
139
139
139
140
141
142
143
148
149
150
150
150
150
154
154
154
155
159
159
160
161
161
161
162
163
163
169
169
171
177
177
184
188
190
190
191
192
192
194
196
197
208
220
221
222
223
226
226
238
239
241
241
244
244
250
254
255
260
266
266
266
266
268
286
292
292
305
311
311
329
334
334
354
359
359
372
377
377
389
394
396
396
399
399
420
425
425
439
444
444
721
721
724
10
10
10
15
15
18
19
20
20
20
22
23
24
24
27
27
27
27
28
30
30
31
32
33
34
35
35
35
36
36
36
36
36
37
39
41
41
43
43
45
45
47
47
47
48
48
48
48
50
51
52
53
56
56
56
57
57
58
58
59
59
59
59
59
59
59
60
60
60
60
60
62
66
66
67
67
68
69
69
69
69
73
73
81
87
87
104
108
108
113
115
117
131
131
131
131
131
132
132
132
132
132
132
134
135
136
136
136
136
136
136
137
137
137
137
137
138
138
138
138
139
139
139
139
139
140
143
144
148
148
149
149
155
155
156
162
162
162
163
164
164
170
170
172
177
177
177
177
178
189
191
192
193
195
197
198
209
209
211
211
219
219
221
221
224
227
227
239
239
240
245
245
250
255
256
261
267
267
269
269
269
269
287
293
293
306
312
312
330
335
335
355
360
360
373
378
378
390
395
400
400
421
426
426
440
445
445
720
722
722
725
8
8
10
19
20
21
22
22
22
22
23
23
23
23
25
25
27
27
28
29
29
29
31
31
31
31
31
31
34
35
36
36
37
37
38
38
40
42
42
42
42
43
43
44
44
45
45
45
48
49
49
50
50
50
50
53
55
55
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
59
60
60
64
67
67
67
67
68
68
70
70
70
70
74
74
74
74
82
88
105
107
107
109
109
114
116
118
132
133
133
133
133
134
134
135
136
137
137
137
137
137
137
138
138
138
138
138
138
139
139
139
139
139
139
139
140
140
142
142
144
145
148
149
150
150
150
154
154
154
156
156
160
163
163
163
164
164
165
171
171
173
178
178
179
188
190
192
192
193
194
196
196
198
212
212
220
222
222
225
226
228
228
228
241
246
246
254
256
257
262
268
268
270
270
288
294
294
307
313
331
336
336
356
361
361
374
379
387
396
401
401
422
427
427
441
446
723
723
726
10
10
10
18
20
20
20
21
22
23
24
24
26
26
29
29
30
30
32
32
35
35
36
36
37
38
38
38
38
38
41
42
42
43
43
43
43
44
44
45
45
45
45
45
50
50
50
50
51
53
53
53
54
54
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
57
57
57
58
58
58
58
58
58
58
58
58
59
59
59
59
59
60
60
61
64
65
71
71
71
71
75
75
75
75
83
83
85
85
89
89
106
108
108
110
113
115
117
117
119
130
132
132
132
133
133
133
133
134
135
135
135
135
136
137
137
137
138
138
138
138
139
139
139
139
139
139
140
140
141
143
145
146
146
149
150
150
150
151
155
155
155
164
164
166
172
172
174
179
179
184
188
189
193
193
194
195
196
196
197
197
197
212
216
221
223
226
226
227
241
242
246
247
250
255
257
257
263
269
269
270
276
289
295
295
308
312
312
314
332
337
337
357
362
362
375
380
388
388
397
402
402
423
428
428
442
445
445
447
724
724
727
1
8
8
10
15
18
18
23
25
25
27
27
29
31
31
31
31
33
33
34
35
35
36
38
38
39
42
43
43
44
44
45
45
45
46
46
50
50
51
51
51
52
52
52
52
52
53
54
54
54
54
55
55
55
55
56
56
56
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
59
59
59
60
60
62
65
66
72
72
72
76
76
76
76
84
84
86
86
90
90
107
109
109
111
114
118
118
120
129
129
131
132
132
133
133
133
133
133
133
134
134
134
134
134
136
136
136
136
137
137
138
138
139
139
139
139
139
139
140
140
141
144
146
147
147
151
156
156
156
165
165
167
173
173
175
175
184
188
189
190
195
196
197
197
198
212
217
219
219
222
224
227
227
227
228
228
241
243
247
248
254
256
264
270
270
270
277
277
277
290
296
296
309
313
315
333
338
338
358
363
363
376
378
378
381
388
389
390
398
403
403
424
429
429
443
446
448
725
725
728
2
2
10
10
10
20
20
20
21
24
25
27
28
28
29
29
31
32
34
36
37
38
39
39
40
42
43
43
45
45
46
46
46
47
47
50
50
50
51
51
52
52
52
52
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
56
56
56
56
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
60
60
60
60
60
60
66
66
67
71
71
72
72
73
73
73
73
77
77
85
85
87
87
91
91
108
110
112
115
119
119
121
126
126
127
130
130
131
131
132
133
133
133
134
134
134
134
135
135
135
135
135
137
137
137
137
137
138
139
139
139
139
140
141
141
141
141
145
147
147
147
148
151
151
151
152
154
157
157
164
166
166
168
174
174
176
177
189
190
191
196
197
198
198
198
198
199
220
220
223
225
228
228
229
229
244
248
248
249
255
255
257
257
265
271
271
278
278
291
297
297
310
314
316
334
339
339
359
364
364
377
379
382
389
389
390
390
399
404
404
425
430
430
444
447
449
726
726
729
3
3
8
8
10
10
10
10
18
18
20
21
25
25
25
29
29
29
31
31
31
33
35
37
37
38
38
38
39
39
40
40
40
41
42
43
43
44
44
45
45
45
46
46
46
48
48
50
50
52
52
52
54
54
54
54
54
54
54
54
54
54
54
55
56
56
56
56
56
56
57
57
57
58
58
58
58
59
59
59
59
60
60
61
68
73
73
74
74
74
74
78
78
88
92
92
109
111
113
120
120
122
127
127
128
128
128
128
128
129
131
131
132
132
133
134
134
134
135
135
135
135
135
135
135
135
136
136
136
136
136
138
138
139
140
141
141
142
142
142
146
147
149
152
152
153
155
157
162
167
167
169
175
175
177
177
177
177
177
178
191
192
197
198
198
198
199
199
200
217
220
220
220
220
221
224
225
227
228
228
228
229
229
230
230
241
241
245
249
249
249
249
250
255
257
258
258
266
272
272
277
278
278
278
278
279
292
298
298
311
315
317
335
340
340
360
365
365
378
380
383
389
390
391
391
400
405
405
426
431
431
445
448
450
727
727
730
1
4
4
4
4
10
10
10
10
11
11
20
20
20
20
21
25
26
26
28
28
29
29
30
30
31
32
33
36
38
38
40
40
41
41
42
43
44
45
45
45
49
49
50
50
50
50
50
51
52
52
52
54
54
55
56
56
56
56
57
57
57
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
60
60
60
60
62
69
74
74
74
74
75
75
75
75
78
78
79
79
89
93
93
110
112
114
121
121
123
128
128
129
129
129
129
129
130
132
132
133
133
135
135
135
136
136
137
137
137
137
137
139
139
140
141
142
143
143
143
147
147
148
148
150
151
151
151
153
153
157
168
168
170
176
176
177
178
178
178
179
191
191
191
191
193
198
198
198
199
199
199
200
200
201
201
209
221
221
222
225
227
227
227
228
229
229
229
230
230
239
242
242
246
247
249
249
250
250
251
255
257
258
259
259
267
269
273
273
279
279
280
293
299
299
312
316
318
336
341
341
361
366
366
379
381
384
391
392
392
401
406
406
427
432
432
446
449
451
728
728
731
1
1
5
5
5
5
5
5
8
12
12
18
18
21
26
27
27
27
27
27
29
29
31
31
31
31
34
35
36
37
37
38
40
40
40
41
42
42
43
45
45
45
45
46
46
50
50
50
50
50
50
50
51
51
51
51
51
52
52
52
53
55
55
56
56
56
56
56
56
57
57
58
58
58
58
58
59
59
59
59
59
60
61
63
70
70
71
76
76
76
79
79
80
80
90
94
94
109
111
113
113
115
122
122
124
129
129
129
129
130
130
130
130
130
130
131
132
132
132
132
132
132
133
134
134
136
136
137
137
137
137
138
138
140
142
142
143
144
144
144
147
147
148
149
151
152
152
152
155
169
169
171
177
177
179
179
179
180
192
192
194
198
198
199
199
200
202
202
210
210
212
212
220
220
222
222
226
229
230
230
230
231
231
240
240
245
246
247
250
251
251
252
255
255
258
259
268
270
270
270
270
274
274
278
278
280
280
294
300
300
313
317
319
337
342
342
362
367
367
380
382
385
389
390
390
392
402
407
407
428
433
433
447
450
452
729
729
732
4
5
5
5
6
6
6
6
6
6
12
13
20
20
21
25
25
27
27
28
29
29
29
29
30
30
31
32
35
35
37
38
38
39
40
40
40
41
41
42
43
44
46
47
50
50
51
51
51
52
52
52
52
52
52
52
53
53
53
53
54
56
56
56
57
57
57
57
57
58
58
58
58
58
58
58
60
60
60
62
62
64
64
71
72
76
76
76
76
77
77
77
80
80
81
81
91
95
95
110
114
114
116
121
123
123
123
125
128
128
128
128
130
131
131
131
131
132
132
133
133
133
133
133
133
134
134
135
136
137
137
137
138
138
139
141
142
142
143
143
144
145
145
145
149
150
152
153
153
153
164
170
170
172
175
178
178
180
180
180
193
193
197
198
198
199
199
200
200
203
203
213
213
221
227
228
230
231
231
232
232
247
248
249
249
251
253
256
256
257
257
257
259
269
271
271
275
275
279
295
301
301
314
318
320
338
343
343
363
368
368
381
383
386
389
390
391
391
403
408
408
429
434
434
448
451
453
730
730
733
4
4
7
7
7
7
7
7
8
8
13
18
18
20
21
25
25
25
29
31
31
31
31
31
31
33
38
38
38
38
39
39
40
40
41
42
42
42
42
43
43
44
45
48
52
52
52
52
53
54
54
55
55
55
55
55
55
55
56
56
56
57
57
58
58
58
58
58
58
59
59
63
63
65
65
72
73
73
77
77
77
78
78
78
78
78
80
80
82
82
92
96
111
115
115
117
122
124
124
126
129
129
129
129
130
131
131
131
132
132
132
132
132
134
134
134
134
134
134
134
135
135
135
138
139
140
142
142
142
142
143
144
144
145
146
146
150
151
151
153
154
154
165
165
171
171
173
176
179
179
181
181
198
198
200
200
201
204
204
213
220
222
228
229
229
233
233
242
248
249
250
254
258
258
258
258
270
271
276
276
278
280
296
302
302
315
319
321
339
344
344
364
369
369
382
384
387
389
391
392
392
404
409
409
430
435
435
449
452
454
731
731
734
5
5
5
5
8
8
8
8
8
8
8
8
8
8
13
13
14
20
20
20
20
21
21
21
21
25
25
26
27
27
30
31
31
32
33
34
35
38
39
40
40
42
42
42
42
42
43
44
45
46
49
50
51
51
52
52
52
52
53
53
53
53
53
53
53
53
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
56
56
57
57
57
57
57
58
58
60
60
64
64
66
66
73
78
78
78
79
79
79
79
79
81
81
81
81
83
83
93
93
93
93
97
97
116
116
118
123
125
125
127
127
127
128
130
130
130
130
131
131
131
132
132
133
133
133
133
134
135
135
135
135
135
135
136
136
138
143
143
144
144
145
145
146
151
152
152
154
154
162
164
172
172
174
176
180
180
180
180
182
182
189
191
201
201
202
205
205
213
220
220
221
229
234
234
242
249
249
249
250
250
251
255
255
259
259
271
271
277
277
278
278
279
297
303
303
320
322
340
345
345
365
370
370
383
385
388
390
392
393
405
410
410
431
436
436
453
455
732
732
735
4
5
8
8
8
9
9
9
9
9
9
9
9
12
12
12
14
15
15
18
18
21
22
22
27
27
28
28
31
31
31
31
32
33
35
36
38
38
39
41
42
43
44
44
45
45
46
47
50
50
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
57
57
57
57
57
57
58
58
60
60
61
67
67
74
75
75
79
80
80
80
80
80
82
82
84
84
94
94
94
94
98
98
117
117
119
124
124
125
125
126
126
127
128
128
128
128
128
129
129
130
130
130
130
131
131
131
131
131
131
131
131
131
132
133
134
134
134
134
137
137
137
142
142
144
144
145
145
145
146
147
152
153
154
155
163
163
165
165
173
173
175
176
181
181
181
183
183
191
191
192
201
203
206
206
217
220
221
222
230
231
235
235
249
249
250
250
250
256
256
259
272
277
278
278
278
279
280
298
304
304
321
323
341
346
346
366
371
371
386
389
391
393
406
411
411
432
437
437
454
456
733
733
736
4
5
5
6
6
10
10
10
10
10
10
10
10
12
13
15
15
15
15
15
23
23
28
29
29
29
29
31
32
32
33
34
34
36
36
37
40
40
42
42
43
43
44
45
46
46
47
47
48
49
49
49
50
50
50
51
51
51
52
52
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
55
55
55
56
56
56
56
57
57
57
58
58
58
58
58
58
58
58
59
62
68
68
75
76
78
78
79
81
81
81
83
83
83
83
85
85
95
95
95
95
99
99
118
118
120
122
125
125
126
126
126
126
126
126
127
127
128
129
129
129
129
129
130
130
130
130
131
131
131
131
131
132
133
133
133
135
135
135
135
135
139
143
145
146
146
148
152
153
154
156
157
157
163
165
166
166
174
174
176
176
180
182
182
182
184
191
191
192
193
201
204
207
207
218
222
223
231
231
236
236
251
251
251
257
257
259
273
278
279
279
280
281
299
305
305
322
324
342
347
347
367
372
372
387
390
393
407
412
412
433
438
438
455
457
734
734
737
5
5
6
7
7
7
11
11
11
11
11
11
12
12
15
16
18
23
25
27
27
29
31
33
33
34
35
35
37
37
41
42
42
42
43
43
43
43
44
44
45
47
48
48
49
50
52
52
52
52
52
52
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
56
56
56
56
56
56
56
56
57
57
57
58
58
58
58
59
60
60
60
63
69
69
76
77
80
80
82
82
82
84
84
85
85
86
86
96
100
100
117
119
119
119
121
123
123
126
126
127
127
127
127
127
127
127
128
128
128
129
130
130
130
130
130
131
131
131
131
131
131
132
132
132
132
132
133
135
139
139
140
142
144
146
147
149
154
155
155
157
158
158
163
165
166
167
167
175
175
177
181
182
183
183
185
191
192
193
194
194
205
208
208
218
219
223
232
237
237
247
252
252
252
258
258
274
278
279
280
280
281
300
306
306
315
323
325
343
348
348
368
373
388
391
393
408
413
413
434
439
439
449
456
458
735
735
738
4
4
5
5
5
8
8
8
12
12
12
12
16
17
18
23
23
27
29
29
30
33
33
33
34
34
36
36
38
38
38
39
40
42
42
42
42
42
43
43
43
44
44
44
44
44
45
45
48
49
49
49
50
50
51
51
52
52
52
53
54
54
54
54
55
55
55
55
56
56
56
56
56
56
57
58
58
58
58
58
58
58
58
64
70
70
77
81
83
83
83
83
83
85
85
86
86
87
87
97
101
101
118
120
120
122
124
124
127
127
127
127
127
127
128
128
128
128
128
128
128
129
129
129
130
131
131
131
132
132
132
132
132
133
133
133
133
133
134
137
139
139
139
140
141
142
142
143
147
148
150
156
156
158
158
159
166
167
176
176
178
180
180
182
183
184
186
189
193
194
206
209
209
218
219
223
223
224
231
231
233
238
238
240
248
253
253
259
259
275
278
279
281
281
281
281
282
301
307
316
321
324
326
344
349
349
369
374
383
387
389
391
392
409
414
414
435
440
450
454
457
459
736
736
739
5
5
5
6
6
6
6
9
9
9
13
13
13
13
13
13
15
17
18
18
18
23
24
27
27
29
34
34
34
35
35
39
39
42
43
43
43
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
50
50
51
51
51
51
52
53
53
53
53
53
53
54
54
54
54
54
54
55
55
55
55
55
56
56
56
56
56
56
57
57
58
58
58
58
58
60
65
71
71
77
78
82
82
84
84
84
85
85
87
87
87
87
88
88
98
102
102
119
121
121
123
125
125
125
128
128
129
129
129
129
129
130
130
130
131
131
131
131
132
132
132
132
133
133
133
133
134
135
135
135
135
137
137
140
141
142
142
143
144
148
149
151
154
156
156
157
157
158
159
159
160
167
176
177
177
179
180
181
184
185
187
190
190
194
194
198
207
210
210
210
224
224
225
229
232
232
234
239
241
248
248
252
252
254
254
258
260
260
270
276
282
282
282
282
283
302
306
306
308
322
325
327
345
350
350
370
372
372
375
388
390
393
410
415
415
436
439
439
441
455
458
460
737
737
740
5
5
5
10
10
12
14
14
14
14
14
14
15
15
24
25
25
25
25
29
29
29
29
29
29
29
35
36
36
36
40
40
42
42
42
43
43
44
44
45
45
45
46
46
46
46
46
46
47
51
51
51
51
51
52
52
52
53
53
53
53
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
56
56
57
57
57
57
58
58
59
66
72
72
79
83
84
85
85
88
88
88
88
89
89
99
101
101
103
103
121
122
122
123
124
126
126
128
128
128
128
128
128
129
129
129
129
130
130
131
131
131
132
133
133
133
133
133
133
133
134
134
134
135
135
135
135
136
137
138
139
139
140
141
142
144
145
149
150
152
158
158
159
160
160
161
165
165
176
178
180
180
181
182
185
186
188
195
195
199
199
201
201
208
211
211
213
213
225
225
230
230
235
240
242
242
253
253
255
255
259
259
259
259
261
261
271
271
271
277
283
283
283
283
303
307
309
323
326
328
346
351
351
371
373
376
389
391
394
411
416
416
437
440
442
456
459
461
738
738
741
5
6
6
11
11
15
15
15
15
15
15
17
17
18
23
23
25
25
27
27
27
27
29
33
34
36
36
36
36
37
37
41
41
42
43
44
44
44
45
46
46
47
47
47
48
48
49
49
49
51
51
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
55
55
58
58
58
60
60
67
73
73
80
80
82
82
82
84
85
86
86
86
89
89
89
89
90
90
100
102
102
104
122
123
123
124
125
125
125
126
126
126
126
126
127
128
129
129
129
129
129
129
129
129
130
130
130
130
132
133
133
133
133
134
134
134
134
134
137
139
140
141
145
150
151
153
154
154
158
158
159
159
160
161
161
163
163
165
166
166
179
181
181
182
183
186
187
189
196
196
202
202
209
212
214
214
223
236
241
243
243
243
243
252
254
254
256
260
260
262
262
272
272
278
281
284
284
304
308
310
324
327
329
347
352
352
372
374
377
390
392
395
412
417
417
438
441
443
457
460
462
739
739
742
1
1
5
5
5
5
5
10
10
11
11
11
12
12
15
15
16
16
16
16
18
23
23
23
29
29
29
29
29
29
36
38
42
42
42
43
45
46
47
48
49
49
50
52
52
52
52
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
58
58
59
59
61
61
68
74
74
74
74
81
81
83
83
84
86
86
87
87
87
89
89
90
90
90
90
91
91
101
103
103
105
122
122
123
123
124
125
126
126
126
127
127
127
127
127
128
128
128
128
128
129
129
130
130
130
130
130
130
132
133
134
135
135
135
135
138
139
140
141
141
141
145
145
145
146
151
152
152
154
155
155
156
158
159
160
160
162
166
167
167
179
180
182
183
184
187
188
190
190
194
202
210
211
213
214
214
214
214
215
218
232
237
241
242
243
243
244
244
252
257
260
263
263
271
272
272
272
272
273
278
279
285
285
305
309
311
325
328
328
330
330
348
353
353
373
375
378
391
393
396
413
418
418
439
442
444
458
461
461
463
463
740
740
743
1
1
5
6
6
12
12
12
13
13
17
17
17
17
17
17
18
18
23
23
24
25
25
29
29
29
36
37
39
43
43
44
46
47
47
47
49
49
50
50
51
51
51
51
52
52
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
57
58
58
58
58
58
60
60
62
62
69
75
75
75
75
82
82
84
84
87
87
88
88
88
91
91
92
92
102
104
106
123
123
124
124
124
124
124
125
126
127
127
127
128
128
128
128
128
129
129
129
129
129
129
130
130
131
131
131
131
131
131
131
135
136
136
139
139
139
140
141
146
146
147
153
153
155
155
156
156
156
158
158
159
160
161
161
163
168
168
177
180
181
183
183
183
183
183
185
188
189
190
191
194
195
202
211
214
215
215
216
218
219
223
223
232
238
243
244
245
245
248
252
253
258
260
264
264
264
264
273
273
274
278
279
280
281
281
286
286
306
310
312
326
331
331
349
354
354
374
376
379
392
394
394
397
397
414
419
419
440
443
445
459
464
464
741
741
744
5
5
5
13
13
13
13
13
14
14
15
15
17
17
18
18
18
18
18
25
25
26
26
29
29
29
29
29
30
36
37
38
40
42
42
44
44
46
46
47
48
48
48
48
48
48
49
50
51
51
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
55
55
55
55
55
55
56
56
57
57
58
58
63
63
70
76
76
76
76
85
87
87
88
88
88
88
89
89
89
90
90
90
90
90
90
92
92
93
93
103
105
107
122
124
124
125
125
125
125
125
126
126
126
126
126
127
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
131
131
134
134
134
136
137
137
139
140
140
141
141
142
145
145
145
147
147
151
153
153
154
154
155
156
156
157
159
159
160
161
162
162
164
168
168
168
168
169
181
182
184
184
184
186
189
190
192
195
196
210
210
212
214
214
215
216
216
218
224
224
237
238
239
243
243
244
245
248
253
254
259
265
265
272
272
274
274
278
281
282
282
287
287
307
311
313
327
332
332
350
355
355
375
377
380
393
398
398
415
420
420
441
444
446
460
465
465
742
745
5
5
6
6
6
6
8
9
15
15
17
17
18
18
18
19
19
19
19
27
27
27
27
29
30
31
36
36
38
41
42
45
45
46
47
47
47
47
47
47
49
49
51
51
51
52
52
52
52
53
53
53
53
53
54
54
54
54
54
54
55
55
55
55
55
55
55
56
56
56
56
56
56
57
58
58
64
64
71
77
77
85
85
86
88
88
88
89
89
89
89
90
90
90
90
90
90
90
91
91
91
91
92
92
94
94
104
106
108
120
122
122
123
125
125
125
125
125
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
128
129
130
130
130
130
131
131
131
131
131
131
131
132
134
135
137
137
138
138
141
141
141
141
142
146
146
146
155
155
156
157
157
158
160
161
161
163
163
165
169
169
170
182
183
185
185
185
190
190
190
191
193
194
196
211
213
215
216
219
223
225
225
225
232
232
239
240
244
245
252
254
255
260
266
266
273
279
281
282
283
283
283
288
288
308
312
314
328
333
333
351
356
356
376
378
381
393
394
399
399
416
421
421
442
445
447
461
466
466
743
746
5
5
5
5
7
7
10
15
15
15
15
15
15
16
16
17
18
18
18
19
19
20
20
20
20
23
25
25
29
31
32
38
38
38
42
42
42
42
46
46
47
47
48
48
48
49
51
51
51
51
52
52
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
55
55
55
55
56
56
57
57
57
58
58
58
59
65
65
72
78
78
86
86
87
89
89
90
90
90
90
90
90
90
91
91
91
91
91
92
92
92
92
93
93
93
93
95
95
103
105
107
107
109
121
121
123
123
124
124
124
125
126
127
127
127
127
127
127
128
128
128
128
128
128
128
129
130
130
130
131
131
131
131
131
131
131
131
132
135
136
138
138
138
139
142
147
147
147
155
155
156
156
157
158
158
164
164
166
170
170
183
184
186
191
191
191
192
194
194
194
195
195
199
212
214
214
216
217
223
224
230
233
233
240
241
243
243
245
246
248
253
255
255
259
261
267
267
272
274
281
282
283
289
289
309
313
315
329
334
334
352
357
357
377
379
382
394
395
400
400
417
422
422
443
446
448
462
467
467
744
747
1
8
8
8
11
11
16
16
16
17
17
17
17
17
18
18
18
18
19
19
19
19
21
21
21
25
27
27
31
31
31
32
38
38
38
39
41
41
41
41
43
47
47
47
48
49
49
51
51
51
51
51
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
55
55
55
56
56
57
58
58
58
58
58
59
60
66
66
73
79
79
86
86
86
87
88
88
88
89
89
89
91
91
91
92
92
92
92
92
93
93
93
93
94
94
96
96
104
108
108
110
122
122
123
123
124
124
124
125
125
125
125
126
126
126
126
126
126
127
127
127
128
128
128
128
129
129
129
129
129
129
129
130
131
131
131
131
131
132
132
132
135
137
138
138
139
140
142
142
142
143
145
148
148
153
155
156
157
157
159
165
165
166
167
181
183
184
185
187
192
193
195
195
195
200
200
202
202
213
214
214
215
215
218
224
224
225
225
231
231
241
242
242
243
243
244
244
247
247
252
254
260
260
260
260
262
268
268
272
272
273
282
282
283
283
284
290
290
314
316
330
335
335
353
358
358
380
383
396
401
401
418
423
423
447
449
463
468
468
743
745
748
5
9
9
15
15
17
17
17
18
18
18
19
19
20
20
20
20
20
20
22
22
22
25
25
27
32
32
32
33
36
36
36
38
38
38
39
40
40
41
41
41
41
42
42
44
44
46
46
48
48
49
49
49
49
50
51
51
51
51
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
55
55
55
55
55
56
56
58
58
59
59
60
61
67
67
74
80
80
84
87
88
89
89
89
89
89
90
90
90
90
90
90
90
90
91
92
92
93
93
93
93
94
94
95
95
97
97
105
109
109
111
123
123
123
124
124
124
124
124
124
125
125
125
125
125
126
126
126
127
127
127
127
127
127
127
127
128
128
128
128
128
129
129
130
130
131
132
132
138
139
141
143
143
144
146
148
153
153
155
155
156
157
158
158
160
161
166
166
168
168
183
183
184
185
186
188
193
194
196
196
196
196
196
203
203
211
214
214
215
216
216
219
219
226
226
242
245
245
248
248
253
253
255
255
261
261
263
269
269
271
272
273
274
284
284
285
291
291
315
317
331
336
336
354
359
359
381
384
393
397
402
402
419
424
424
448
450
464
469
469
741
744
746
749
5
9
10
13
14
18
19
19
20
20
21
21
21
23
23
23
27
27
27
27
27
27
27
33
34
34
36
38
38
38
40
40
40
40
40
42
42
43
43
45
47
47
47
48
49
49
49
49
49
49
50
50
51
52
52
52
52
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
58
59
59
60
60
60
61
61
62
68
68
75
81
85
88
89
89
89
89
89
90
90
90
90
90
90
90
91
91
91
91
91
91
92
92
94
94
94
95
95
96
96
98
98
110
110
112
124
125
125
125
125
125
125
126
126
126
126
126
126
127
127
127
128
128
128
128
128
128
129
129
130
130
132
132
133
133
138
139
140
140
141
142
142
142
142
144
144
148
156
156
157
158
159
159
159
161
167
167
168
168
168
168
169
169
183
183
184
185
186
187
189
194
195
196
196
197
197
197
203
212
215
216
216
217
220
220
224
225
225
225
227
227
233
241
243
246
246
249
249
253
255
256
256
261
264
270
270
272
274
275
282
283
283
283
285
285
286
292
292
316
318
332
337
337
355
360
360
382
385
391
394
394
398
403
403
420
425
425
449
451
465
470
470
745
747
750
5
5
9
11
15
15
17
17
18
20
20
20
22
22
22
22
22
24
24
24
24
24
25
25
25
25
27
31
32
34
34
34
34
36
36
40
41
43
43
44
44
44
46
47
48
48
48
48
49
49
49
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
55
55
56
56
56
56
56
56
56
58
61
61
62
62
63
69
69
76
76
78
78
82
82
83
83
85
85
85
87
89
89
90
90
90
91
91
91
91
91
92
92
92
92
92
92
93
95
95
95
96
96
97
97
99
99
111
111
113
119
123
123
126
126
126
126
126
126
127
127
127
127
127
127
128
128
129
129
129
129
129
129
130
130
130
131
133
133
134
134
134
138
138
140
141
142
143
143
143
143
146
157
158
158
160
160
162
168
168
168
169
169
170
170
183
184
185
186
186
187
188
190
195
196
196
196
196
197
198
198
198
198
203
212
213
216
217
221
221
224
224
224
225
226
226
226
233
242
244
247
250
250
253
255
256
257
257
261
265
271
271
272
273
275
282
282
282
283
284
284
284
287
293
293
309
317
319
333
338
338
356
361
361
377
381
383
386
392
392
395
395
399
404
404
421
426
426
443
450
452
466
471
471
746
748
751
8
8
8
8
10
12
12
15
16
19
19
20
20
21
22
22
23
23
23
25
25
25
25
25
27
27
27
27
27
27
34
41
42
44
44
44
44
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
50
51
51
52
52
52
52
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
55
55
55
55
55
55
56
57
58
58
58
62
62
62
63
63
63
64
70
70
70
70
77
77
79
79
83
83
84
84
85
85
86
86
88
89
89
89
90
90
90
90
91
91
91
92
92
92
92
92
93
93
93
94
96
96
96
98
98
100
100
112
112
114
118
118
120
120
120
121
121
121
124
124
124
125
125
127
127
127
127
127
127
127
127
127
128
128
128
128
128
129
129
130
130
131
131
132
132
134
134
134
134
135
135
135
141
142
144
144
144
144
161
161
163
169
169
170
170
171
171
181
185
186
188
189
191
196
196
196
197
198
199
199
212
213
217
217
217
218
222
222
226
227
227
227
242
242
245
246
246
248
251
251
253
253
256
257
266
272
272
272
273
275
275
276
284
285
285
285
288
294
294
310
315
318
320
334
339
339
357
362
362
382
384
387
392
394
394
396
396
400
405
405
422
427
427
444
448
451
453
467
472
472
747
749
752
1
5
9
11
11
11
11
12
15
15
18
20
20
21
22
22
24
24
24
24
26
26
26
26
26
26
27
27
27
34
35
40
41
41
42
43
47
48
48
48
49
49
50
50
50
50
50
50
50
51
51
51
51
52
52
53
53
53
53
53
53
54
54
54
55
55
55
56
56
56
57
58
58
58
58
62
63
63
63
64
64
65
71
71
71
71
78
78
80
80
84
84
84
84
86
86
88
89
90
90
90
90
90
90
92
92
93
93
93
93
93
94
94
94
95
96
96
97
97
97
99
99
99
99
101
101
111
113
113
113
115
119
119
120
120
121
121
121
121
122
122
122
125
125
126
126
126
127
129
129
129
129
129
129
129
129
129
129
131
132
132
133
134
134
134
135
135
135
136
136
136
142
142
143
145
145
145
161
162
162
164
166
170
170
171
171
172
182
182
186
186
189
190
192
195
196
196
197
197
197
198
200
200
218
218
218
219
223
223
225
227
228
228
246
247
247
249
252
252
254
254
255
255
255
257
267
273
273
276
276
277
283
285
286
286
289
295
295
316
319
321
335
340
340
358
363
363
383
385
388
395
397
397
401
406
406
423
428
428
449
452
454
468
473
473
748
750
753
1
1
4
4
5
8
8
12
13
16
19
21
21
21
22
22
22
22
23
23
23
25
25
27
27
27
27
27
27
27
27
27
27
27
28
34
35
36
36
38
40
40
41
41
42
42
48
48
48
48
48
48
49
50
50
50
50
51
51
51
51
51
52
52
52
53
53
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
59
59
64
64
65
65
66
72
72
72
72
81
82
84
85
85
86
86
88
89
91
91
93
93
94
94
94
94
94
95
95
95
96
98
98
98
100
100
100
100
102
102
112
114
114
116
120
120
120
121
121
122
122
122
122
122
122
122
122
123
123
123
125
125
126
126
126
127
127
127
129
129
129
129
129
129
129
131
132
134
135
135
136
136
137
137
137
143
143
144
145
146
158
162
162
163
163
165
167
171
171
172
173
187
187
190
191
193
196
196
198
198
198
201
201
219
219
219
224
224
226
226
246
247
248
248
253
253
256
256
256
256
268
274
274
277
277
284
284
290
296
296
317
320
322
336
341
341
359
364
384
386
389
396
402
407
407
424
429
429
450
453
455
469
474
474
749
751
754
5
5
5
5
5
5
6
13
14
20
20
20
21
22
22
22
24
24
24
24
24
25
25
26
26
26
26
27
28
28
28
28
28
28
28
29
34
34
36
38
42
42
42
42
43
43
43
43
43
48
49
49
49
49
49
49
50
50
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
53
53
53
53
53
53
53
54
54
54
54
54
55
55
55
55
55
56
58
59
60
60
60
65
65
66
66
67
73
73
82
83
83
83
84
85
85
85
86
86
86
86
89
89
90
90
90
92
93
93
93
93
93
93
95
95
95
95
95
97
99
99
99
101
101
101
101
103
103
113
115
115
117
118
120
120
121
121
121
121
122
122
122
122
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
126
126
128
128
128
129
129
129
129
131
133
134
134
135
136
136
136
137
137
138
138
144
145
145
147
156
159
161
164
164
166
167
171
171
172
173
174
188
188
191
192
194
199
199
199
202
202
217
220
225
225
231
246
248
254
254
257
257
269
275
275
275
291
297
318
321
323
337
342
342
360
365
385
387
390
394
394
403
408
408
425
430
451
454
456
470
475
475
750
752
755
6
6
7
7
12
14
15
20
20
20
23
25
25
25
27
27
27
29
29
29
29
29
30
36
36
36
40
40
43
43
44
44
44
49
49
49
49
50
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
55
55
55
56
56
58
59
60
60
61
61
66
67
68
74
74
83
83
84
84
85
85
85
86
86
87
87
89
89
90
90
90
90
91
92
92
93
93
93
94
94
94
94
94
94
95
96
98
98
98
98
100
100
100
102
102
102
102
104
104
115
116
116
117
118
119
120
120
121
121
121
121
122
122
122
122
122
122
122
123
123
123
123
123
124
124
124
124
124
124
124
124
124
125
125
125
125
126
127
127
130
134
135
136
137
138
139
143
145
146
148
148
148
160
160
162
162
165
165
167
167
172
172
173
174
175
182
186
192
193
193
195
195
199
200
200
203
203
212
221
226
226
228
232
242
246
247
249
255
255
257
260
270
272
276
276
286
292
296
296
298
319
322
322
324
324
338
343
343
361
363
363
366
386
388
388
391
391
392
392
392
394
394
395
395
404
409
409
426
429
429
431
452
455
455
457
457
471
476
476
751
753
756
4
5
7
7
8
8
8
11
11
15
20
20
21
22
22
26
26
26
28
28
29
29
29
30
30
30
30
30
36
36
36
37
42
42
44
45
45
46
48
48
49
49
49
49
50
51
51
51
51
51
51
51
51
52
52
52
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
56
56
56
58
60
60
61
61
62
62
67
67
68
68
69
75
75
84
84
84
85
86
86
88
88
92
93
93
94
95
95
95
95
95
95
97
99
99
99
99
101
101
103
103
103
103
105
105
113
116
117
117
118
119
120
121
121
122
122
122
122
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
125
125
125
125
125
125
126
126
126
126
126
128
128
130
130
131
134
134
136
137
138
140
146
146
147
149
149
149
160
162
163
163
166
166
167
168
171
173
173
173
174
176
182
186
187
193
196
196
199
201
201
203
203
204
204
212
213
217
217
222
227
227
228
233
233
242
247
248
250
256
256
256
256
257
261
261
261
271
272
273
275
275
277
277
286
293
297
299
320
325
325
339
344
344
362
364
367
387
392
392
395
395
396
396
405
410
410
427
430
432
453
458
458
472
477
477
752
754
757
4
5
6
9
9
14
14
15
22
22
23
23
23
25
27
27
27
27
27
28
28
30
30
30
31
31
31
31
31
34
34
34
36
37
38
38
40
45
47
48
48
48
48
49
49
50
50
51
51
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
55
56
57
57
63
63
68
68
69
69
70
76
76
82
84
85
85
86
86
89
89
92
92
92
93
93
94
94
96
96
96
96
98
100
100
100
100
102
102
104
104
104
104
106
106
114
117
118
118
119
119
119
120
120
121
121
122
122
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
125
125
125
125
125
125
125
126
126
126
127
127
127
127
128
130
130
130
131
132
134
134
135
138
139
141
147
148
149
150
150
158
160
162
163
164
164
167
167
169
171
172
174
174
175
177
187
188
194
197
197
202
204
204
205
205
212
218
218
223
228
228
234
234
234
234
246
248
249
251
257
257
262
262
272
272
276
276
278
278
294
298
300
321
326
326
340
345
345
363
365
368
388
393
393
396
397
397
406
411
411
428
431
433
454
459
459
473
478
478
753
755
758
4
5
5
5
10
10
11
11
15
24
24
25
25
25
25
26
28
28
29
29
31
32
32
32
32
32
32
34
36
38
38
38
38
38
41
41
45
45
45
48
48
48
48
49
50
50
50
51
51
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
55
55
57
58
58
64
69
69
70
70
71
77
83
84
85
86
86
86
86
86
86
89
89
90
90
92
93
93
93
94
94
96
96
99
101
101
101
103
103
105
105
105
105
107
107
115
119
119
120
120
120
121
121
123
123
123
123
124
124
124
124
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
128
128
131
132
133
134
135
136
139
140
142
146
147
147
149
149
149
150
151
151
159
159
163
164
168
168
170
171
173
175
176
178
182
182
186
188
195
198
198
201
203
204
204
204
204
205
206
206
213
217
219
219
219
224
228
228
229
229
232
234
234
235
235
242
247
249
249
252
258
258
261
262
262
262
262
263
273
273
275
277
277
277
279
279
286
286
295
299
301
322
327
327
341
346
346
364
366
369
389
394
394
397
407
412
412
429
432
434
455
460
460
474
479
479
754
756
759
5
6
6
6
11
11
14
14
15
20
22
22
27
29
29
29
30
30
30
30
30
32
32
32
32
32
32
33
33
33
33
34
34
38
38
39
40
40
41
41
41
41
42
45
48
48
48
48
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
52
52
53
53
54
54
55
55
55
55
55
58
58
59
59
64
65
65
65
65
66
70
71
72
72
74
74
78
78
83
85
87
87
87
87
91
91
94
94
94
96
96
96
96
100
102
102
102
104
104
106
106
106
106
108
108
116
116
117
119
119
120
120
121
121
121
122
122
123
124
124
125
125
125
125
125
125
126
126
127
127
127
127
128
128
130
130
132
132
133
136
137
138
140
141
143
150
150
150
151
152
152
156
158
164
167
169
171
171
172
176
177
179
183
183
186
186
187
187
196
196
199
199
204
205
205
206
207
207
217
218
225
226
229
229
230
235
236
236
246
248
253
256
259
259
263
263
264
274
275
276
280
280
284
287
287
296
300
302
323
328
328
342
347
347
365
367
370
390
395
395
408
413
413
430
433
435
456
461
461
475
480
480
755
757
760
5
5
5
7
11
11
12
12
15
22
24
24
25
26
27
30
30
32
33
33
34
34
34
34
38
38
39
40
40
41
41
42
42
43
44
44
45
45
45
45
45
45
45
45
48
48
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
52
52
52
53
53
54
54
54
55
55
56
56
60
60
66
66
66
67
71
72
73
73
75
75
79
79
83
83
83
83
85
88
88
88
88
92
92
92
94
94
94
94
95
95
97
97
101
103
103
103
105
105
107
107
107
107
109
109
113
116
116
116
116
118
118
119
120
120
120
120
120
120
121
121
121
122
122
122
123
123
123
125
125
125
125
126
126
127
127
127
127
127
131
133
137
138
141
142
144
145
145
149
149
151
151
151
152
153
157
157
159
159
162
162
167
170
171
172
172
173
177
178
180
187
187
197
197
197
199
199
200
200
204
204
205
206
206
208
218
218
219
219
226
227
227
231
234
234
236
247
247
249
249
254
257
257
257
257
260
260
262
262
264
264
275
276
276
277
277
281
281
285
285
297
301
303
324
329
329
343
348
348
366
368
371
391
396
396
409
414
414
431
434
436
457
462
462
476
481
481
756
758
761
5
6
6
8
13
13
14
14
15
22
22
24
25
28
28
28
30
30
31
31
32
33
34
34
35
35
35
35
38
38
40
40
40
40
41
42
42
43
43
44
45
45
46
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
55
56
61
61
67
67
67
67
68
68
71
72
72
73
74
74
76
76
78
78
80
80
84
84
84
84
85
89
93
93
93
95
95
95
97
97
98
98
100
102
104
104
104
104
106
106
108
108
110
110
112
112
114
116
117
117
117
117
117
117
118
118
119
119
119
120
120
120
121
121
121
121
121
121
121
122
122
122
122
122
123
123
124
126
126
127
127
127
127
127
128
130
132
133
133
137
137
137
138
142
143
143
145
146
146
147
149
150
152
152
154
157
159
160
160
160
160
162
163
163
170
171
172
173
173
174
178
179
181
188
188
188
188
198
200
200
201
201
205
206
209
220
220
227
232
235
247
249
250
250
255
258
258
261
261
263
276
278
278
282
282
298
302
304
325
330
330
344
349
349
367
369
372
392
397
397
397
410
415
415
432
435
437
458
463
463
477
482
482
757
759
762
5
5
5
9
11
11
14
14
14
15
24
24
24
25
29
29
31
31
31
32
32
32
33
34
34
34
34
36
36
36
36
38
38
40
41
42
43
44
44
45
46
47
49
50
50
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
56
62
62
62
63
68
72
73
73
74
77
79
79
79
79
81
81
90
94
94
95
95
95
95
95
95
96
96
97
97
98
98
99
99
101
105
105
105
105
107
107
109
109
111
111
113
113
115
117
117
118
118
118
118
118
118
118
118
119
119
120
120
120
120
120
120
120
121
121
121
121
121
122
122
122
122
122
122
122
122
122
123
123
123
123
123
124
125
126
128
129
130
130
131
138
138
139
144
144
146
146
147
147
147
149
149
150
151
153
153
155
157
159
160
161
161
163
164
164
168
171
172
174
174
175
179
180
182
188
188
189
189
199
200
202
202
204
206
207
210
218
219
219
219
221
221
228
229
233
234
234
236
247
249
250
251
251
256
258
262
262
262
264
276
277
277
277
277
279
279
283
283
287
299
303
305
326
331
331
345
350
350
368
370
373
393
395
398
398
411
416
416
433
436
438
459
464
464
478
483
483
758
760
763
5
6
6
10
14
14
14
15
15
15
15
15
15
22
22
22
22
24
32
32
32
32
32
33
33
34
35
35
35
35
37
37
37
37
40
40
40
41
41
41
41
41
41
41
42
44
47
47
48
48
48
48
48
48
49
49
49
49
50
51
51
51
51
51
53
53
53
53
53
54
54
54
54
54
54
54
54
55
57
63
63
64
69
69
69
70
70
73
74
74
75
78
82
82
82
82
91
93
93
95
95
96
97
97
98
98
99
99
100
100
102
106
106
106
106
108
108
109
109
110
110
112
112
114
114
116
116
118
118
119
119
119
119
119
119
119
119
120
120
120
120
120
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
123
123
123
123
123
124
124
124
124
125
125
126
127
129
130
130
131
132
133
137
137
137
139
139
142
144
144
145
145
146
147
147
148
150
150
151
152
154
154
156
160
161
165
165
172
173
174
174
174
174
175
176
180
181
183
188
188
189
190
190
200
200
203
203
204
204
205
208
211
218
218
218
219
220
220
220
229
229
234
234
234
235
235
247
247
250
251
257
258
262
262
263
263
263
276
276
276
277
278
278
278
278
284
284
287
304
306
327
332
332
346
351
351
371
374
394
399
399
412
417
417
437
439
460
465
465
479
484
484
759
761
764
1
1
5
5
5
11
11
11
15
16
16
16
16
24
24
24
24
24
27
29
33
34
34
34
34
34
36
36
36
36
38
38
38
38
38
38
38
41
41
41
42
42
42
45
46
47
47
48
49
49
51
52
52
52
52
52
52
52
53
53
53
53
54
54
54
54
55
58
64
64
64
64
65
65
69
70
70
71
73
74
75
76
77
79
83
83
83
83
83
83
83
83
92
94
94
94
96
96
96
97
97
97
99
99
100
100
107
107
107
107
107
109
109
110
110
111
111
113
113
115
115
115
115
116
119
119
119
120
120
120
120
121
121
121
121
121
121
122
122
122
122
122
122
122
123
123
123
123
123
123
123
123
124
124
124
125
125
125
125
125
126
127
128
128
130
131
132
133
133
133
138
138
138
146
146
147
148
148
149
151
152
152
155
155
157
161
165
165
165
165
166
173
174
175
175
176
177
181
182
184
188
188
189
190
201
201
204
204
204
205
206
207
207
209
212
220
221
221
221
228
229
230
235
236
236
248
248
249
249
249
251
258
261
262
263
264
264
264
278
279
279
279
279
285
285
305
307
328
333
333
347
352
352
372
375
395
400
400
413
418
418
438
440
461
466
466
480
485
485
760
762
765
1
1
1
5
5
6
6
6
6
12
17
17
17
17
24
24
30
33
34
34
34
35
35
35
37
37
37
37
37
37
38
39
39
39
42
42
42
43
43
43
44
45
47
47
47
47
49
49
49
50
50
50
50
51
51
52
52
53
53
53
53
53
53
54
54
54
54
59
65
65
65
65
70
71
71
72
74
74
75
75
76
77
78
78
78
78
80
84
84
84
84
84
84
84
84
93
94
94
95
95
95
95
95
96
97
97
97
97
98
98
98
108
108
108
110
110
111
111
111
112
112
114
114
117
117
117
120
121
121
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
125
126
127
127
128
129
129
131
132
133
139
139
139
146
146
147
147
148
149
149
156
156
158
159
159
166
166
167
174
175
176
176
177
182
183
185
187
188
188
189
189
190
202
202
205
206
207
208
210
213
219
221
222
222
229
229
230
231
232
236
237
237
250
250
250
250
259
262
264
265
265
265
277
279
280
280
280
286
286
287
287
306
308
329
334
334
348
353
353
373
376
396
401
401
414
419
419
439
441
462
467
467
481
486
486
761
763
765
766
5
5
5
5
7
7
11
13
16
16
17
18
18
24
24
24
24
25
31
32
32
32
34
34
34
35
36
36
36
36
38
38
38
38
38
39
39
40
40
40
43
43
44
44
45
45
45
46
47
47
47
47
48
48
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
52
53
53
53
54
54
60
66
66
66
66
67
67
71
72
75
76
77
78
79
79
79
79
81
84
84
85
94
95
95
95
95
96
96
96
97
97
97
97
97
98
98
98
98
99
99
99
108
109
109
109
111
111
112
112
112
113
113
115
115
115
115
115
115
117
118
118
118
118
120
121
122
123
123
123
123
123
124
124
125
125
125
125
126
126
127
128
129
129
129
130
132
133
133
133
133
134
137
140
140
144
146
147
148
148
150
157
157
157
157
159
159
160
160
167
167
175
176
178
183
184
186
188
188
190
190
197
202
203
203
206
207
209
211
214
220
220
227
230
230
231
232
233
237
238
251
251
257
260
262
263
265
266
266
278
278
281
285
287
287
288
288
299
307
309
330
335
335
349
354
354
368
372
374
377
397
402
402
415
420
420
433
440
442
463
468
468
482
487
487
762
763
766
767
8
8
8
11
14
17
17
17
17
19
22
22
24
25
26
32
34
35
36
36
36
36
36
37
37
39
40
40
41
41
41
43
43
43
44
45
45
45
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
50
50
50
50
50
50
50
50
50
50
50
51
51
52
52
53
53
53
61
67
67
68
71
71
72
73
76
76
77
77
78
79
82
82
82
82
82
82
86
86
95
96
97
97
97
98
98
98
98
98
99
99
99
99
100
100
106
108
109
110
110
110
110
112
112
113
113
113
114
114
116
116
116
116
116
116
116
117
118
118
118
118
118
119
119
119
119
119
119
119
120
120
120
121
123
123
124
125
125
125
125
127
129
130
131
133
134
134
135
138
140
144
144
146
146
147
148
149
149
151
152
158
158
160
160
161
161
163
172
174
176
177
179
184
185
187
191
191
198
198
200
200
202
203
204
207
207
207
208
210
212
215
228
228
232
233
233
233
233
237
237
238
238
239
251
258
258
258
258
261
262
263
265
265
266
267
267
282
286
286
288
288
300
305
308
310
331
336
336
350
355
355
373
375
378
397
398
403
403
416
421
421
434
438
441
443
464
469
469
483
488
488
763
767
768
5
5
9
9
11
11
15
17
18
18
18
20
24
26
27
32
32
32
32
36
36
36
37
37
37
38
38
38
38
40
41
41
42
42
42
42
43
45
45
46
47
47
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
53
53
53
53
53
53
62
68
68
69
72
72
74
77
77
78
78
79
79
80
83
83
83
83
83
83
83
87
87
94
96
96
97
98
99
99
100
100
100
100
100
109
110
111
111
111
113
113
114
114
114
114
114
115
115
116
116
117
117
117
117
117
117
117
117
118
118
118
119
119
119
119
119
119
119
120
120
120
120
120
120
121
121
125
125
125
125
128
129
129
131
131
133
133
133
135
135
140
147
147
148
149
150
150
150
152
159
159
161
162
162
165
174
174
175
177
178
180
185
186
188
191
201
201
205
208
208
208
209
211
213
216
216
222
233
238
238
239
239
240
251
259
259
262
266
266
267
268
268
280
283
289
289
306
309
311
332
337
337
351
356
356
374
376
379
398
399
404
404
417
422
422
439
442
444
465
470
470
484
489
489
764
768
769
4
5
5
5
6
9
10
16
18
19
19
19
19
19
21
26
26
26
27
37
37
38
38
38
38
38
38
39
39
41
43
43
43
43
43
43
43
44
44
45
45
45
45
46
47
47
47
48
48
48
48
48
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
53
53
54
54
54
54
63
69
69
73
75
76
77
78
78
78
79
79
80
80
81
83
84
84
84
84
84
84
88
88
94
94
96
96
97
97
98
99
101
110
111
111
112
112
112
112
112
112
112
114
114
115
115
115
116
116
116
116
117
117
118
118
118
118
118
118
118
118
119
119
119
119
119
120
120
120
120
120
121
121
121
122
122
122
129
129
129
130
130
132
133
134
134
134
138
148
149
149
151
151
153
160
160
162
162
162
162
162
163
165
165
165
165
166
174
174
175
176
178
179
181
186
187
187
189
189
191
201
204
204
206
209
209
209
212
213
217
217
222
230
234
237
239
239
240
240
259
263
267
267
269
269
280
284
288
290
290
307
310
312
333
338
338
352
357
357
375
377
380
398
400
405
405
418
423
423
440
443
445
466
471
471
485
490
490
765
769
770
5
5
6
7
9
11
17
17
17
19
19
20
22
27
27
27
28
36
37
38
38
38
38
38
38
39
39
39
39
39
39
40
40
42
42
43
43
44
44
44
44
44
44
45
45
46
46
47
47
48
48
48
49
49
49
49
49
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
53
53
53
53
53
54
54
54
54
64
69
70
70
74
74
76
78
79
80
80
80
80
81
81
81
81
81
82
84
84
85
89
89
96
96
97
97
98
98
99
100
100
102
110
110
112
112
112
113
113
113
113
113
113
113
113
113
114
115
115
116
116
116
116
116
117
117
117
117
117
117
117
117
118
118
118
118
119
119
119
119
119
119
119
120
120
120
120
121
121
121
121
122
122
123
123
123
124
124
130
131
133
133
135
135
135
152
152
154
161
161
163
163
163
164
165
166
166
167
174
175
176
177
177
179
180
182
187
190
190
201
205
207
207
210
213
218
218
230
235
237
241
241
259
264
265
270
270
285
288
291
291
308
311
313
334
339
339
353
358
358
376
378
381
401
406
406
419
424
424
441
444
446
467
472
472
486
491
491
766
770
771
5
7
8
8
8
8
8
10
12
12
17
17
17
21
22
22
22
22
23
28
29
29
31
32
36
36
36
37
37
38
38
38
39
39
40
40
40
41
41
41
41
41
41
42
42
43
43
43
44
45
45
45
45
45
47
47
48
48
48
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
54
54
54
54
65
71
75
76
77
78
78
81
81
81
81
82
82
82
82
82
83
86
90
90
97
98
98
98
99
99
100
100
100
100
101
101
103
111
111
113
113
113
113
114
114
114
114
114
114
114
114
114
115
115
116
116
116
116
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
118
119
119
119
119
120
120
120
120
120
120
120
120
121
121
121
123
124
124
124
125
131
132
133
134
136
136
152
153
153
155
162
162
164
164
164
167
167
168
172
176
177
180
181
183
188
191
191
202
206
208
211
214
219
219
222
222
233
236
237
238
242
242
250
262
265
271
271
280
280
286
292
292
309
312
312
314
314
335
340
340
354
359
359
377
379
379
382
382
395
397
402
407
407
420
425
425
442
445
445
447
447
468
473
473
487
492
492
767
771
772
4
5
6
7
8
8
9
9
11
11
11
11
11
12
15
17
17
18
19
19
20
22
22
24
24
26
27
29
29
29
29
36
37
37
37
38
38
38
38
39
39
39
39
39
40
40
40
41
41
42
42
42
42
44
44
45
45
46
46
46
46
46
46
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
52
52
52
54
54
54
54
66
66
68
68
72
72
74
76
77
78
79
79
79
79
82
82
83
83
83
83
84
87
91
91
98
98
98
99
99
99
99
100
100
101
101
101
101
102
102
104
112
112
114
114
114
114
114
115
115
115
115
115
115
115
115
116
116
116
116
117
117
117
117
117
117
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
119
120
121
121
121
121
121
122
122
123
124
124
124
125
126
132
133
134
135
136
149
153
153
154
154
156
160
163
163
163
165
168
168
173
173
177
177
181
182
184
188
189
192
192
202
203
207
207
207
209
212
215
220
220
220
223
223
233
237
238
239
243
243
251
251
251
251
262
263
265
265
266
272
272
278
281
281
287
293
293
310
315
315
336
341
341
355
360
360
378
383
383
396
398
403
408
408
421
426
426
443
448
448
469
474
474
488
493
493
768
772
773
4
4
5
7
8
8
8
9
9
10
12
13
16
19
19
20
20
21
22
23
23
25
25
29
36
36
37
37
38
39
40
40
40
41
41
41
42
42
43
43
43
43
43
43
44
44
45
45
45
45
46
46
47
47
47
47
47
47
47
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
52
52
53
54
54
67
67
69
69
73
73
76
78
78
79
79
80
81
81
82
83
83
83
83
84
84
84
85
88
90
90
92
92
99
99
101
101
101
101
101
101
102
102
102
102
103
103
105
113
113
113
113
114
115
115
116
116
116
116
116
117
117
117
117
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
120
120
120
120
120
120
120
120
121
121
121
122
122
122
122
122
123
125
126
127
133
134
136
136
147
150
152
155
155
157
162
164
164
166
169
178
178
182
183
185
189
189
190
191
191
193
193
202
208
208
208
210
213
213
216
221
221
221
221
237
238
239
240
244
244
252
252
262
266
266
267
273
273
279
279
288
294
294
311
316
316
337
342
342
356
361
379
384
384
396
398
399
404
409
409
422
427
427
444
449
449
470
475
475
489
494
769
773
774
4
4
5
5
5
5
5
5
6
8
10
11
13
14
17
21
21
22
22
24
24
26
26
29
30
38
39
40
40
41
41
41
42
42
42
42
42
42
43
44
44
44
45
45
45
47
47
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
52
53
68
68
70
70
74
74
77
79
79
80
80
81
82
82
84
85
85
86
89
91
91
93
97
99
99
99
99
101
101
101
101
101
101
102
102
103
103
103
103
104
104
106
109
111
113
114
115
116
116
116
116
116
116
116
116
117
118
118
118
118
119
119
119
119
119
119
119
119
120
120
120
120
120
121
121
121
121
121
121
121
121
123
123
123
123
123
123
124
124
126
127
134
134
135
137
140
140
151
151
153
153
156
156
158
162
162
162
162
163
164
165
167
168
168
170
179
179
183
184
184
186
186
191
192
192
194
194
203
207
209
209
209
209
210
214
214
217
222
222
228
233
238
239
240
240
245
245
252
263
265
267
267
267
268
274
274
286
289
295
312
317
317
338
343
343
357
362
380
385
385
396
398
399
400
405
410
410
423
428
445
450
450
471
476
476
490
495
770
774
775
4
5
5
6
6
6
7
9
11
12
12
14
15
17
19
19
22
23
27
27
29
30
31
36
38
39
39
39
41
41
42
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
45
45
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
52
52
52
53
53
71
75
75
78
78
80
80
80
81
81
81
82
83
83
83
84
84
84
85
86
86
87
90
92
92
94
97
98
98
99
99
99
99
99
100
100
102
102
102
102
102
102
103
103
105
105
107
110
111
111
112
112
113
113
113
114
114
114
115
115
115
116
116
116
116
117
117
117
117
117
118
119
119
119
119
119
119
119
120
120
120
120
120
121
121
121
121
121
124
124
124
124
124
124
125
135
136
138
138
141
141
151
153
154
154
157
157
159
162
163
163
164
164
165
166
168
169
169
171
173
177
184
187
187
192
192
195
195
198
207
208
210
215
215
218
223
223
223
229
237
239
240
246
246
252
258
265
266
269
275
275
281
287
290
294
294
296
313
318
318
339
344
344
358
360
360
363
381
386
386
396
398
399
400
406
411
411
424
427
427
429
446
451
451
472
477
477
491
493
493
496
771
775
776
1
1
4
4
5
7
7
7
7
7
8
8
10
11
11
11
12
12
13
19
21
21
24
28
28
29
29
31
41
41
41
42
42
42
42
43
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
52
52
72
74
74
76
76
78
78
78
79
80
80
81
81
81
82
82
82
83
83
83
84
84
84
84
85
85
85
86
87
88
91
93
95
98
100
100
100
101
101
103
103
103
103
103
103
104
106
106
106
108
109
109
110
110
110
110
110
111
111
112
112
113
113
114
114
114
114
114
115
115
115
115
115
115
116
117
117
117
117
118
118
118
118
118
118
119
120
121
121
121
121
121
121
121
122
122
122
124
125
125
125
125
125
125
126
136
137
139
139
141
142
149
151
153
154
155
155
158
158
160
163
164
164
164
165
166
167
168
169
170
170
173
177
178
185
188
188
192
193
196
196
199
201
201
208
208
209
209
211
216
216
219
223
224
224
230
230
238
238
240
240
241
247
247
247
247
259
259
259
266
266
267
267
270
276
276
281
288
288
291
295
297
314
319
319
340
345
345
359
361
364
382
387
387
399
400
407
412
412
425
428
430
447
452
452
473
478
478
492
494
497
772
776
777
1
1
4
5
5
5
5
8
9
11
12
13
13
14
14
14
15
19
19
21
25
29
29
31
31
31
36
36
41
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
48
48
48
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
52
52
52
73
75
75
77
77
78
78
79
79
79
80
81
82
82
83
83
83
83
83
84
84
84
84
85
85
85
86
86
86
86
87
87
88
89
92
94
96
98
100
100
100
101
102
102
104
104
104
104
105
107
107
108
108
109
110
110
111
111
111
111
111
111
111
112
112
112
113
113
114
114
115
115
115
115
115
115
115
115
116
116
116
116
116
116
117
117
118
118
119
119
119
119
119
119
119
120
120
120
121
121
121
121
121
122
122
122
123
123
123
124
124
125
126
126
126
126
138
139
139
140
141
142
143
150
150
154
155
159
159
160
161
165
165
167
168
169
170
171
178
179
186
189
189
194
197
197
202
202
210
210
212
217
217
220
225
225
231
231
231
231
238
240
241
241
242
248
248
260
260
268
268
271
277
277
289
289
289
289
292
296
298
315
320
320
341
346
346
360
362
365
383
388
388
400
408
413
413
426
429
431
448
453
453
474
479
479
493
495
498
773
777
778
4
4
5
6
8
9
9
9
10
10
11
11
12
13
14
14
15
15
21
21
21
26
30
30
31
31
31
32
36
38
41
41
41
41
43
45
45
46
46
47
47
47
48
48
48
48
48
49
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
74
75
75
78
78
78
79
79
79
79
80
81
81
81
81
82
83
84
84
85
85
86
86
86
87
87
87
88
89
90
93
95
97
98
98
101
101
101
101
101
102
104
104
104
104
104
104
104
104
105
105
106
108
108
109
109
110
111
111
111
112
112
112
112
112
112
112
113
114
114
114
115
115
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
119
119
119
120
120
120
122
123
123
123
124
124
124
124
125
126
127
127
127
127
136
139
139
141
142
143
144
147
149
155
160
161
162
166
168
168
169
170
171
173
173
177
179
187
190
190
195
198
198
199
202
202
202
202
203
208
209
209
209
211
211
213
218
218
221
223
223
226
226
229
231
231
232
232
238
240
241
242
242
243
249
249
251
259
260
260
260
260
261
266
267
267
267
269
269
272
278
278
281
281
287
289
289
290
290
293
297
299
316
321
321
342
347
347
361
363
366
384
389
389
409
414
414
427
430
432
449
454
454
475
480
480
494
496
499
774
779
1
4
5
6
7
10
10
11
11
13
13
14
14
14
15
15
16
19
19
19
19
21
27
29
29
29
31
31
31
32
33
33
36
36
36
41
41
42
44
45
45
45
45
47
47
47
48
48
48
48
48
48
49
49
49
49
49
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
53
53
53
73
75
76
77
79
79
80
81
81
82
82
82
83
83
83
83
83
84
84
84
85
85
86
86
87
87
88
88
89
90
91
92
94
96
96
98
102
102
102
102
102
105
105
105
105
106
106
108
109
109
110
110
110
111
112
112
112
112
112
113
113
113
113
113
113
113
113
114
114
116
117
117
117
117
117
118
118
118
119
121
121
121
122
123
124
124
124
125
125
126
127
128
128
128
128
136
136
140
140
141
141
142
143
144
148
148
150
150
153
153
161
161
163
164
165
165
167
168
169
169
170
172
174
174
177
177
178
178
188
189
191
191
196
199
203
203
204
208
208
208
209
210
210
210
214
219
219
221
222
224
224
227
232
233
233
238
238
241
242
244
250
250
252
252
252
252
261
261
262
266
266
266
267
268
268
268
273
279
279
279
282
282
290
291
291
294
298
300
317
322
322
343
348
348
362
364
367
385
390
390
398
410
415
415
428
431
433
450
455
455
476
481
481
495
497
500
775
777
780
4
5
7
7
9
10
11
11
11
12
12
14
14
14
15
15
15
16
17
21
21
21
21
21
28
29
31
32
32
33
33
33
33
33
41
42
42
42
43
44
44
44
44
45
45
45
45
45
45
45
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
54
54
54
54
54
54
54
54
74
76
76
76
76
77
77
78
80
80
80
81
81
81
82
82
83
83
83
83
84
84
84
84
84
85
85
86
88
89
89
90
91
92
93
97
97
99
103
103
104
104
106
106
106
106
109
110
110
110
111
111
111
111
111
112
112
113
114
114
114
114
114
114
114
114
114
114
116
117
118
118
118
119
119
119
119
119
122
122
123
124
124
125
125
126
126
127
129
129
134
137
137
139
141
141
141
142
143
148
150
151
151
151
151
153
154
154
161
161
162
164
164
166
166
168
168
169
170
170
171
173
178
178
189
190
190
192
192
192
192
197
200
202
202
204
204
210
211
211
211
215
220
220
222
222
223
228
231
231
233
239
239
240
240
240
242
245
251
251
253
253
260
260
262
262
268
269
269
269
274
280
280
280
280
289
289
291
295
299
301
318
323
323
344
349
349
363
365
368
386
391
391
399
411
416
416
429
432
434
451
456
456
477
482
482
496
498
501
776
777
778
781
6
7
10
11
13
14
14
15
15
15
16
17
18
21
21
29
29
29
33
33
33
34
34
34
36
36
42
42
42
42
42
42
43
43
44
44
44
47
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
52
52
55
55
55
55
55
55
55
55
55
55
74
76
77
77
77
77
77
77
78
78
79
79
81
81
82
82
83
83
83
84
84
84
85
85
85
86
86
87
89
90
90
91
92
93
94
98
98
100
100
103
103
103
103
104
104
104
105
105
107
107
108
109
110
110
110
111
111
111
112
112
112
113
113
114
114
114
114
114
114
114
115
115
115
115
115
115
117
119
119
123
123
123
123
125
125
125
125
125
126
126
127
127
127
127
127
128
128
130
130
135
137
138
139
139
141
141
142
142
142
143
144
148
150
151
152
152
154
155
155
159
161
162
163
165
165
167
167
169
170
171
171
172
174
179
179
179
179
190
193
193
193
193
198
201
203
209
211
212
212
216
221
221
224
229
232
241
241
241
241
246
252
252
253
261
267
269
270
270
275
281
281
290
296
300
302
319
324
324
345
350
350
364
366
369
387
392
392
398
398
412
417
417
430
433
435
452
457
457
478
483
483
497
499
502
777
779
782
7
7
7
8
11
11
11
12
12
14
14
15
16
16
16
17
17
18
18
19
19
21
21
21
21
22
30
34
34
34
34
34
35
36
36
36
36
37
37
41
42
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
46
46
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
51
52
52
55
55
56
56
56
56
56
56
56
56
74
74
77
78
78
78
78
78
78
79
79
79
79
80
80
81
81
81
82
82
83
83
83
84
84
84
84
85
85
86
86
87
88
91
92
93
94
99
99
101
101
104
104
104
104
105
106
106
108
108
109
109
109
110
111
111
111
111
111
112
112
112
112
113
113
113
113
113
113
113
114
114
114
115
115
115
115
116
116
116
116
116
116
116
124
124
126
126
126
127
127
128
128
128
128
128
129
131
131
131
131
135
135
137
138
139
142
142
143
143
143
144
145
151
152
156
156
163
164
166
166
168
171
172
172
173
175
179
179
180
180
191
193
194
194
199
202
202
204
210
210
217
222
222
224
225
230
231
231
233
242
242
247
253
253
253
260
262
268
268
276
282
282
282
289
289
291
297
301
303
320
325
325
346
351
351
365
367
370
388
393
393
396
396
399
399
413
418
418
431
434
436
453
458
458
479
484
484
498
500
503
778
780
783
7
7
8
8
8
9
9
13
14
14
14
15
15
15
15
16
17
17
17
18
19
19
19
19
20
20
21
22
23
31
33
35
35
35
36
36
36
37
37
38
38
41
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
50
50
50
51
51
51
53
53
57
57
57
57
57
57
75
75
76
76
76
76
77
78
79
79
79
79
80
80
81
82
82
83
83
83
83
84
84
85
86
86
86
86
87
87
87
87
88
89
89
90
92
92
93
93
94
95
100
100
102
102
102
103
104
104
104
104
104
104
105
105
105
105
107
107
107
107
108
108
108
108
109
109
110
110
110
110
110
110
111
112
112
112
112
112
112
113
113
113
113
113
113
113
114
114
114
114
114
115
115
115
116
116
116
116
116
117
117
117
117
117
117
123
125
125
126
127
127
127
127
127
128
128
128
128
129
129
132
132
132
132
138
139
140
143
144
144
144
144
146
152
156
156
156
156
157
164
165
165
167
167
171
171
171
171
173
173
174
176
179
179
180
181
181
192
193
195
195
198
198
200
202
202
203
203
218
223
223
224
226
231
231
231
232
232
242
248
254
254
260
260
261
277
282
283
283
289
289
290
290
302
304
321
326
326
347
352
352
368
371
389
394
394
399
400
400
414
419
419
435
437
454
459
459
480
485
485
501
504
779
781
784
5
5
7
7
7
7
8
8
9
9
9
11
11
14
14
14
15
16
16
18
18
18
19
20
20
21
21
21
23
24
29
32
33
33
34
34
34
35
36
36
36
38
38
39
39
41
41
41
43
43
43
44
45
46
46
46
46
46
46
46
46
46
46
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
52
54
54
54
58
58
58
58
58
58
74
76
77
77
77
77
79
80
80
80
81
83
83
84
84
86
87
87
87
87
88
88
88
88
89
90
93
93
94
94
95
96
101
101
102
102
103
103
103
103
104
105
105
106
106
106
106
108
108
108
108
108
109
109
109
109
109
109
110
110
110
110
110
111
111
111
111
111
111
112
112
112
112
112
112
113
113
113
113
113
113
113
113
114
114
114
115
115
115
115
115
116
117
117
117
117
118
118
119
123
123
124
124
126
126
127
127
128
128
128
128
128
129
129
133
133
133
133
137
137
139
140
145
145
147
150
150
157
157
158
161
165
165
166
166
168
172
172
174
174
175
177
179
179
180
181
193
196
199
199
201
202
203
204
204
212
219
224
225
226
227
232
233
233
242
249
255
255
259
260
261
262
270
278
284
284
291
291
303
305
322
327
327
348
353
353
369
372
390
395
395
401
401
401
401
415
420
420
436
438
455
460
460
481
486
486
498
502
502
505
780
782
785
6
7
7
8
8
9
10
13
15
15
15
17
17
19
19
21
21
22
22
23
23
23
24
33
34
35
35
35
35
35
36
36
36
36
36
36
37
37
39
39
41
42
42
43
43
43
44
44
44
44
44
45
45
45
45
45
46
46
46
46
47
47
47
47
47
47
48
49
50
50
50
50
50
50
51
51
51
52
52
53
54
55
55
59
59
59
59
73
75
75
75
76
76
77
77
78
78
79
79
80
81
81
81
82
83
84
84
85
85
86
86
86
87
87
87
88
88
89
89
89
91
94
94
95
95
96
97
100
102
102
102
103
103
103
104
105
106
106
107
107
107
107
107
107
107
107
108
109
109
109
109
109
109
110
110
110
110
110
110
110
111
111
112
112
112
112
112
112
113
113
113
113
113
114
114
114
114
115
115
115
116
116
116
116
117
117
117
118
118
119
121
125
127
127
128
129
129
129
129
129
130
130
130
134
134
134
134
135
137
138
146
146
148
148
148
150
151
151
158
158
161
165
166
166
167
167
169
173
173
175
176
178
178
179
179
180
180
181
194
197
200
200
202
204
205
205
212
220
225
227
228
229
233
234
234
250
256
256
260
262
263
270
279
285
285
287
292
292
304
306
323
328
328
349
354
354
370
373
391
396
396
401
401
402
402
416
421
421
437
439
456
461
461
482
487
487
503
503
506
781
783
786
7
9
9
9
10
11
11
14
16
16
16
17
18
19
20
20
20
21
22
22
23
23
24
24
24
25
33
33
34
36
36
36
36
37
37
37
37
38
38
42
44
44
44
45
45
45
45
45
46
46
46
46
47
47
47
47
47
47
48
48
48
48
49
49
49
50
50
50
50
50
50
51
53
53
53
53
54
56
56
60
60
60
60
60
60
74
75
75
75
77
77
77
77
78
78
78
79
79
80
81
81
82
83
83
83
84
84
84
84
84
84
85
86
86
86
87
87
87
87
87
88
88
88
90
90
92
95
95
96
96
97
98
101
101
103
103
103
103
103
103
103
104
105
106
107
107
107
107
108
108
108
108
108
108
109
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
111
112
112
112
112
113
113
113
114
114
114
114
114
114
115
115
116
117
117
117
117
118
118
118
119
121
121
122
126
127
127
128
129
130
130
130
130
131
131
131
135
135
135
135
135
135
137
137
138
139
144
147
147
149
151
152
152
154
166
167
167
168
168
170
176
177
179
179
179
181
181
195
198
200
201
201
203
205
206
221
226
228
229
230
234
235
251
257
257
260
261
263
280
286
286
288
293
297
305
307
324
329
329
350
355
365
369
371
374
392
397
397
402
403
403
417
422
431
438
440
457
462
462
483
488
504
504
507
782
784
787
8
10
10
11
11
12
17
17
17
19
19
19
19
21
21
21
22
23
24
25
26
26
35
36
37
37
38
38
38
39
39
42
43
44
44
45
45
45
45
45
46
46
46
47
48
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
55
57
57
61
61
61
61
61
76
76
77
77
77
77
78
79
80
83
84
85
85
85
85
86
87
88
88
88
89
89
89
91
91
93
96
96
97
97
98
99
101
102
102
103
103
103
103
104
104
104
105
106
107
107
107
107
107
108
108
109
109
109
109
109
109
109
109
109
110
111
111
112
112
112
112
112
112
112
112
113
113
113
113
114
115
115
115
115
115
117
118
118
119
119
119
119
121
121
121
122
123
127
128
129
130
130
131
131
132
132
132
136
136
136
136
138
138
139
140
142
148
148
150
153
153
156
168
168
169
169
169
171
171
177
178
180
182
182
196
199
200
201
202
204
205
205
206
207
207
212
212
222
222
227
229
230
230
230
230
234
234
235
235
236
241
252
252
258
258
260
261
263
263
264
270
270
280
281
287
288
288
292
292
292
294
298
303
306
308
325
330
330
351
356
370
372
375
393
398
398
401
401
403
418
421
421
423
432
436
439
441
458
463
463
484
489
505
505
508
783
785
788
1
1
7
7
9
9
11
11
11
11
13
13
17
18
18
22
22
22
23
23
24
24
25
26
26
26
26
33
36
38
38
39
40
42
42
42
42
42
43
43
44
44
44
45
45
45
45
45
45
45
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
48
49
49
49
49
49
49
49
50
51
56
56
58
58
58
62
62
62
62
62
62
74
74
76
77
79
80
81
84
84
84
84
86
86
86
86
86
87
88
89
89
90
90
92
92
94
97
97
98
98
99
100
102
103
103
104
105
105
105
105
106
106
106
106
107
108
108
108
108
108
109
109
110
110
110
111
111
111
112
112
113
113
113
113
113
113
113
114
114
115
117
117
117
117
117
119
119
120
120
120
122
123
124
128
130
130
131
132
132
133
133
133
137
137
137
137
139
140
140
149
149
151
153
153
153
153
154
156
156
156
156
157
168
168
168
168
169
170
170
171
171
172
172
178
179
179
181
181
182
190
195
195
197
200
203
204
206
206
207
208
208
210
213
213
223
223
228
230
235
235
236
236
237
242
242
242
242
253
253
253
253
259
259
264
264
265
268
271
271
281
282
286
286
288
292
293
293
295
304
307
309
326
331
331
352
354
354
357
371
373
376
394
399
399
402
419
422
424
437
440
442
459
464
464
485
487
487
490
506
506
509
784
786
789
1
1
1
10
10
11
11
12
14
14
18
19
19
19
19
19
19
21
22
22
23
23
23
25
26
26
38
38
38
39
41
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
52
52
57
57
57
57
58
58
59
59
59
59
63
63
63
63
67
67
75
76
76
77
79
80
81
81
84
85
85
85
85
87
87
88
89
89
90
93
93
95
98
98
99
99
100
101
102
105
106
106
106
106
106
107
107
107
107
107
108
108
108
108
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
111
111
111
112
113
114
114
114
114
114
115
115
115
115
115
115
117
117
118
120
120
121
121
121
121
121
123
124
128
129
131
132
133
133
134
134
134
138
138
138
138
150
150
152
154
154
155
156
157
157
158
169
169
170
171
171
171
171
172
173
173
179
182
182
182
191
193
193
196
198
201
204
207
207
209
209
211
211
222
223
224
224
224
229
231
234
236
236
237
237
243
243
254
254
254
260
260
265
265
269
269
282
282
283
287
288
289
293
294
294
305
308
310
327
332
332
353
355
358
372
374
377
395
400
400
401
403
420
423
425
438
441
443
460
465
465
486
488
491
507
507
510
785
787
789
790
9
9
11
13
15
15
17
17
19
19
19
20
23
24
24
24
26
26
27
27
33
33
38
40
40
42
42
42
42
42
42
42
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
50
50
58
58
59
59
60
60
60
60
64
64
64
64
68
68
68
68
74
74
74
74
75
76
77
86
86
86
86
88
89
89
90
90
90
94
94
96
99
99
100
100
101
102
102
102
105
105
106
106
106
106
106
106
106
106
107
107
107
107
107
108
108
108
108
108
108
108
108
109
109
109
109
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
111
111
112
112
112
113
114
115
115
115
116
119
121
121
122
122
122
122
130
132
133
134
134
135
135
135
139
139
144
151
151
153
155
155
158
158
159
170
170
171
171
172
172
173
174
174
174
180
183
183
194
194
197
199
202
205
205
210
210
224
225
225
225
225
225
230
232
234
238
238
243
253
254
254
254
254
255
255
261
261
263
283
283
283
283
284
288
290
294
306
309
311
328
333
333
354
356
359
373
375
378
396
401
401
401
402
421
424
426
439
442
444
461
466
466
487
489
492
508
508
511
785
788
790
791
10
10
11
16
16
17
17
17
19
21
24
24
25
25
25
25
26
26
27
27
27
28
28
33
38
38
38
38
41
41
42
42
43
43
44
44
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
50
50
60
60
60
60
61
61
61
64
64
65
65
65
65
75
75
75
75
76
76
77
77
77
84
87
87
87
87
87
88
88
89
90
91
91
95
95
97
100
100
101
101
102
102
103
103
104
104
106
106
107
107
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
110
111
111
111
111
112
112
112
112
112
112
112
112
112
112
114
114
116
120
121
122
123
123
123
123
123
131
133
134
135
135
136
136
136
140
140
140
145
145
151
152
152
154
154
159
159
169
172
173
173
174
175
181
184
184
191
194
194
194
194
195
198
200
200
203
206
211
211
213
223
225
225
225
226
226
226
230
231
233
234
235
239
239
243
255
255
256
256
260
262
262
271
281
283
283
284
284
285
289
291
292
295
307
310
310
312
312
329
334
334
355
357
360
374
376
376
379
379
397
402
402
403
422
425
427
440
443
443
445
445
462
467
467
488
490
493
509
509
512
789
791
792
1
9
9
11
11
13
15
17
17
17
17
18
19
19
22
26
26
26
26
27
28
28
28
29
33
33
33
34
38
38
38
39
41
41
42
42
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
48
48
48
48
49
49
49
49
50
50
56
57
62
62
65
65
66
66
66
66
66
71
72
77
77
77
78
78
85
86
87
88
88
89
90
90
90
91
91
92
92
96
96
98
101
102
103
104
104
105
105
105
107
107
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
112
112
112
112
113
113
113
113
113
113
113
113
113
113
114
114
115
121
121
121
121
122
122
123
124
132
135
136
136
137
137
137
138
141
141
142
144
153
153
153
155
155
160
166
168
170
170
173
174
174
174
176
179
182
185
185
195
195
196
199
200
201
201
204
204
205
205
207
212
212
213
226
226
227
227
227
227
230
232
232
234
235
236
240
240
254
254
256
256
257
260
261
263
263
263
263
271
284
285
285
286
288
290
292
292
293
308
313
313
330
335
335
356
358
361
375
380
380
398
401
403
403
404
423
426
428
441
446
446
463
468
468
489
491
494
510
513
790
792
793
2
2
10
10
11
16
18
19
19
20
20
22
23
23
24
25
27
27
28
28
28
28
29
29
30
33
33
34
34
35
38
39
39
40
41
41
42
42
42
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
50
58
62
62
62
62
63
63
66
66
67
67
67
67
67
67
72
72
73
73
73
73
87
87
87
88
88
89
89
89
90
90
91
91
91
91
92
92
93
93
97
97
99
102
103
104
104
104
105
105
106
106
106
106
106
106
108
108
108
108
109
109
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
112
112
112
112
112
113
113
113
113
115
115
121
122
122
123
123
123
125
133
133
136
136
137
137
138
138
142
142
143
143
145
145
153
153
153
153
154
154
155
156
159
159
161
168
168
169
174
175
175
175
175
177
177
180
180
182
182
183
186
186
194
194
196
196
200
200
201
205
205
206
206
208
213
213
225
225
227
227
233
233
234
235
236
237
241
241
255
258
260
264
264
264
264
283
283
285
287
288
291
293
293
294
309
314
314
331
336
336
357
359
362
376
381
381
399
401
402
404
404
404
424
427
429
442
447
447
464
469
469
490
492
495
509
511
512
514
791
793
794
3
3
9
9
10
11
17
19
21
21
24
25
26
28
28
28
28
28
28
29
29
30
31
33
33
33
34
34
34
34
34
35
35
36
40
40
40
41
42
42
42
43
43
44
44
44
44
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
48
48
48
48
48
48
49
49
50
59
59
63
63
63
64
64
66
66
68
68
68
68
74
74
74
74
85
85
88
88
90
91
91
92
92
92
92
93
93
94
94
98
98
100
102
102
103
103
104
105
105
105
106
106
106
106
106
107
107
107
107
107
107
107
107
108
108
108
108
109
109
109
109
110
110
110
110
110
110
110
110
110
111
111
111
111
111
112
112
112
113
113
113
113
113
117
119
123
123
124
124
126
130
130
134
137
137
138
138
139
139
143
143
143
145
146
146
153
154
154
155
155
155
157
160
160
162
168
168
169
170
175
176
176
178
178
183
183
184
187
187
195
201
201
205
206
206
207
207
207
209
213
213
214
214
226
228
230
234
234
235
236
237
237
242
242
242
254
256
259
261
263
265
265
265
265
265
271
271
284
288
292
292
294
294
295
310
315
315
332
337
337
358
360
363
377
382
382
400
403
405
405
425
428
430
443
448
448
465
470
470
491
493
496
512
513
515
792
794
795
4
4
10
10
10
11
11
11
11
16
17
17
19
19
20
25
26
26
26
26
27
28
29
29
29
29
29
30
30
30
30
31
32
33
34
34
34
34
35
35
35
36
36
37
37
38
40
40
41
42
42
42
42
43
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
49
64
64
64
65
65
67
67
67
67
67
67
69
69
69
69
75
75
76
76
77
77
86
88
89
90
91
92
93
93
93
93
94
95
99
100
101
101
101
103
103
103
103
104
104
105
106
106
106
107
107
107
107
108
108
108
108
108
108
108
109
109
109
109
109
110
110
110
110
110
110
110
111
111
111
111
111
112
112
113
113
113
113
113
113
113
114
117
117
118
120
124
124
125
127
128
131
131
135
137
137
138
138
138
138
139
139
139
139
140
140
140
143
144
144
144
144
145
146
147
147
155
155
155
155
156
156
158
159
161
161
168
169
170
170
171
171
174
176
179
179
183
185
188
188
194
196
202
205
206
207
207
210
211
214
214
215
215
225
225
227
229
234
235
235
236
237
243
243
243
243
243
243
254
254
255
260
263
264
266
266
269
272
272
283
283
285
289
293
293
295
295
311
316
316
333
338
338
359
361
364
378
383
383
399
401
404
404
406
406
429
431
444
449
449
466
471
471
492
494
497
513
514
516
793
795
796
4
4
5
5
9
9
11
12
12
18
19
21
21
21
26
26
28
28
28
30
30
30
30
30
30
30
30
31
32
33
34
35
36
36
36
37
37
38
40
40
40
41
42
42
42
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
61
61
65
66
66
66
66
66
68
68
68
68
68
68
70
70
70
70
70
70
71
71
71
72
72
72
75
75
77
77
77
78
78
78
86
86
87
88
88
89
89
90
90
91
91
92
94
94
96
100
102
102
104
104
104
104
105
105
105
105
106
106
106
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
111
111
111
111
111
112
112
113
113
114
115
115
117
117
117
118
119
120
120
124
124
124
125
125
126
128
129
131
132
136
139
139
139
139
141
141
141
141
145
145
145
145
146
147
151
153
156
156
156
157
159
160
162
166
170
170
171
174
175
177
180
180
183
186
189
189
194
194
195
203
206
206
207
207
208
208
211
212
212
216
216
225
225
226
226
230
235
235
236
236
237
237
238
244
244
244
244
244
244
253
254
255
256
261
264
264
265
265
267
267
270
270
283
283
284
284
293
293
294
295
295
295
296
296
312
317
317
334
339
339
362
365
379
384
384
400
400
402
405
405
407
407
430
432
445
450
450
467
472
472
495
498
514
515
517
794
796
797
5
5
6
13
13
19
19
19
19
21
21
22
26
26
27
29
29
30
31
31
31
31
32
32
33
34
35
35
36
37
37
37
38
38
38
40
40
40
41
42
42
42
42
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
49
49
62
64
64
65
67
67
67
67
67
69
69
69
69
71
71
71
71
72
72
72
72
73
73
73
73
75
75
77
78
88
88
88
89
89
89
90
90
90
91
91
91
91
92
92
93
95
95
97
100
101
103
103
105
105
105
105
105
105
105
106
106
106
106
106
106
107
107
107
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
111
111
111
111
111
111
111
112
112
112
113
113
113
113
113
113
113
115
116
118
119
120
125
125
126
126
127
129
129
129
131
132
133
137
138
140
140
140
140
140
142
142
146
146
146
146
147
152
157
157
158
159
160
161
167
167
171
171
175
176
178
181
181
187
190
190
191
194
195
196
204
208
208
209
209
212
217
217
227
227
231
235
237
237
237
238
238
239
244
245
245
254
256
257
262
266
266
268
268
285
285
295
296
296
297
297
313
318
318
335
340
340
363
366
380
385
385
400
400
403
404
404
406
406
408
408
431
433
446
451
451
468
473
473
492
496
496
499
515
516
518
795
797
798
6
7
9
13
21
21
21
22
23
28
30
30
31
32
32
32
33
33
34
34
34
35
35
37
38
40
40
41
41
42
42
42
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
50
50
63
66
66
66
68
68
68
68
68
70
70
71
71
72
72
72
72
74
74
88
90
90
91
91
91
91
92
92
92
93
93
94
94
96
96
96
98
98
101
101
102
104
104
104
104
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
108
108
108
108
108
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
111
111
111
112
112
112
113
113
113
113
113
114
114
114
114
114
114
116
117
117
117
119
120
120
124
124
124
126
126
127
128
130
132
133
134
136
137
138
138
139
139
141
141
141
141
141
141
143
143
143
145
145
147
147
147
147
152
155
156
156
158
158
159
159
160
161
170
170
172
172
174
176
179
182
182
188
191
192
196
197
205
206
207
207
207
209
209
210
210
213
214
218
223
228
228
232
235
237
238
238
238
239
239
240
244
246
246
254
255
257
263
264
265
265
265
267
267
269
269
272
281
286
286
293
295
296
297
297
298
314
319
319
336
341
341
364
367
381
386
386
404
405
405
407
407
409
409
425
432
434
447
452
452
469
474
474
497
497
500
516
517
519
796
798
799
1
5
5
7
8
9
13
13
17
19
19
19
19
19
21
23
24
29
30
31
32
33
33
34
34
35
35
36
41
41
41
42
42
42
42
42
43
43
43
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
48
51
51
67
67
67
69
69
69
69
69
70
71
71
71
72
72
73
73
73
73
74
75
75
75
86
88
89
92
93
93
93
94
94
95
97
97
99
100
100
101
102
102
103
103
103
104
104
105
105
106
106
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
113
113
114
115
115
115
115
115
115
117
118
118
120
120
125
125
125
128
129
131
131
131
133
134
138
139
141
142
142
142
142
142
142
143
143
144
144
144
145
146
146
148
148
148
148
152
155
157
157
159
159
159
160
160
161
162
171
171
173
173
174
174
175
175
180
180
183
183
189
192
192
193
197
206
206
206
206
207
208
208
208
211
211
214
214
219
224
229
233
235
235
238
239
239
239
241
247
247
254
255
257
257
258
264
264
264
264
265
266
266
266
270
270
272
282
287
289
296
297
299
315
320
320
337
342
342
359
363
365
368
382
387
387
405
406
406
410
410
426
430
433
435
448
453
453
470
475
475
498
498
501
517
518
520
797
799
800
1
1
4
4
5
5
8
8
9
9
9
13
14
20
21
21
21
21
21
23
25
26
26
27
30
30
30
31
32
32
32
34
35
36
36
37
37
37
37
40
41
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
47
47
47
47
47
52
52
52
52
63
68
68
70
70
70
70
71
71
71
72
72
72
73
73
73
73
74
74
74
74
74
75
77
78
86
86
88
88
89
90
96
98
98
98
99
100
101
101
102
102
102
102
102
103
103
103
103
104
104
104
105
105
105
105
106
106
107
108
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
109
109
109
109
109
109
110
110
111
111
111
111
111
111
111
111
111
112
112
112
113
113
115
116
116
117
118
119
119
126
126
126
129
129
130
131
132
132
139
139
141
142
143
143
143
143
143
143
145
145
145
146
147
147
149
149
149
149
152
156
158
158
160
160
161
161
162
163
167
171
175
175
181
181
181
183
183
184
184
190
192
193
193
197
197
198
207
208
209
209
209
212
212
215
220
224
224
228
228
230
234
236
236
237
237
237
239
240
240
242
248
248
258
258
259
265
266
267
267
267
271
271
282
282
286
286
286
288
290
293
295
297
298
300
316
321
321
338
343
343
364
366
369
383
388
388
406
411
411
431
434
436
449
454
454
471
476
476
499
499
502
518
519
521
798
800
801
1
5
9
9
10
10
14
15
15
15
15
21
21
21
24
24
26
32
32
32
32
33
33
33
33
33
33
35
37
37
38
40
40
41
41
41
41
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
44
44
44
45
45
46
46
46
47
47
47
48
48
53
53
53
53
67
67
69
70
71
71
73
73
73
74
74
74
74
74
74
75
75
75
75
75
77
78
88
89
89
90
91
98
99
99
99
100
100
101
102
102
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
105
105
105
106
106
106
106
107
107
107
108
108
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
111
111
111
111
111
111
111
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
114
114
116
117
117
117
117
118
118
120
124
127
127
129
129
131
131
131
132
133
133
140
142
143
144
144
144
144
146
146
146
148
148
150
150
150
150
150
150
150
150
157
159
161
162
162
163
164
167
171
172
176
176
176
176
182
184
184
185
185
191
194
198
198
199
207
208
209
210
210
213
213
216
221
229
229
231
235
238
238
238
238
241
241
241
241
243
249
249
259
259
265
266
267
268
268
272
272
286
287
287
289
293
294
295
296
299
301
317
322
322
339
344
344
365
367
370
384
389
389
407
412
412
432
435
437
450
455
455
472
477
477
500
500
503
518
520
522
799
801
802
4
6
10
10
11
11
13
13
15
15
21
21
21
21
22
25
27
30
30
33
33
34
34
34
34
34
36
36
38
39
40
40
41
41
41
42
42
42
42
42
42
43
43
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
46
46
47
47
48
48
48
54
54
54
54
68
68
68
68
68
69
69
69
69
70
71
71
72
72
72
74
74
74
75
75
75
75
75
75
76
76
76
76
76
90
91
91
91
92
93
93
94
94
99
100
100
100
101
101
102
102
102
102
102
102
103
103
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
106
106
106
106
106
106
107
107
107
107
107
107
108
109
109
110
111
111
111
111
111
111
112
112
113
113
114
114
114
114
114
114
114
114
114
114
115
115
117
117
118
118
118
119
119
119
121
125
127
129
132
132
132
132
133
134
134
141
143
145
145
145
145
147
147
147
148
148
148
148
149
151
151
151
151
156
158
162
162
162
162
162
163
164
165
172
173
176
176
177
177
183
184
186
186
190
190
192
195
199
199
208
208
209
214
214
217
222
228
230
230
236
239
239
242
242
244
250
250
257
266
266
267
273
273
282
287
288
288
294
295
295
296
297
300
302
318
323
323
340
345
366
368
371
385
390
390
404
408
413
433
436
438
451
456
456
473
478
501
501
504
519
521
521
523
800
803
5
7
7
12
12
13
13
13
19
19
21
22
23
26
26
28
28
32
34
35
35
35
35
35
35
36
36
37
37
39
40
40
41
41
42
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
47
47
47
47
47
47
47
47
49
55
55
70
70
70
70
70
71
72
72
72
72
73
73
73
73
75
75
75
75
75
76
76
76
76
77
77
77
91
92
92
92
93
93
93
94
94
94
95
95
100
100
101
101
101
102
102
103
103
103
103
103
103
104
104
104
104
104
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
108
108
108
108
108
109
109
109
109
110
111
111
111
112
112
113
113
113
114
114
115
115
115
115
115
115
115
115
115
115
115
115
115
118
119
119
120
120
122
127
133
133
133
134
134
135
141
141
142
146
146
146
146
148
148
148
149
149
150
152
152
152
152
152
156
157
163
163
163
164
165
166
167
167
171
173
176
176
177
178
178
184
184
187
191
193
196
197
210
212
215
216
217
218
223
228
237
239
243
243
243
245
251
251
254
268
270
274
274
288
296
296
297
298
301
303
319
324
324
341
346
367
369
372
386
391
391
400
404
404
405
409
412
412
414
434
437
437
439
439
452
457
457
474
479
502
502
505
522
522
524
801
804
1
4
5
5
8
9
13
13
13
13
14
15
15
21
23
24
27
28
28
28
29
30
32
32
32
33
35
36
36
36
37
37
37
38
38
40
41
41
42
42
42
42
42
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
47
47
47
48
48
48
48
48
48
50
56
56
66
70
70
71
72
72
73
73
74
74
74
75
75
76
76
77
77
78
78
78
92
93
94
94
94
95
95
95
95
95
96
96
99
99
101
101
101
102
102
103
103
103
104
104
104
104
104
104
104
104
105
105
105
105
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
109
109
109
109
109
110
110
110
110
112
112
112
112
113
113
113
113
114
114
114
114
114
115
115
115
115
115
115
116
116
116
116
116
116
116
120
120
121
123
125
134
134
136
139
139
141
142
142
143
147
147
147
147
149
149
149
149
149
150
150
152
153
153
153
153
156
157
158
164
164
164
165
167
168
168
171
171
172
172
176
176
177
178
185
188
192
192
194
197
210
211
213
216
218
219
224
224
228
229
238
239
244
244
244
244
244
246
252
252
254
255
257
257
268
269
271
275
275
286
289
296
297
297
299
302
302
304
304
320
325
325
342
344
344
347
368
370
370
373
373
387
392
392
400
405
405
406
410
413
415
435
440
440
453
458
458
475
477
477
480
503
503
506
523
523
525
801
802
805
5
5
7
9
14
14
15
15
16
16
23
23
23
24
28
29
29
30
32
32
33
33
34
34
35
35
35
37
37
37
38
38
39
39
40
40
40
40
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
47
47
51
57
57
67
67
67
67
68
68
69
70
70
72
73
73
73
74
74
74
74
75
75
75
76
76
76
76
76
76
76
77
78
78
79
79
79
89
91
91
92
93
94
94
94
95
95
95
95
96
96
96
97
97
100
100
101
102
102
102
102
103
103
103
103
103
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
107
107
107
108
108
108
108
108
108
108
109
109
110
111
111
111
113
113
113
113
113
113
113
114
114
114
115
115
115
115
115
116
116
116
116
116
116
117
117
117
117
117
117
120
120
120
121
121
122
124
135
135
137
142
143
143
144
146
148
148
148
148
150
150
150
154
154
154
154
157
158
159
165
166
168
172
172
175
176
176
177
177
178
186
189
192
193
193
195
197
197
198
210
212
214
214
217
219
220
224
225
229
230
239
245
245
245
245
247
253
253
254
258
258
268
270
272
272
276
276
282
286
287
296
297
297
297
297
298
300
305
305
321
326
326
343
345
348
369
374
374
388
393
393
406
407
411
414
416
436
441
441
454
459
459
476
478
481
504
507
524
524
526
801
802
803
806
5
5
7
10
15
15
17
17
21
24
24
24
25
26
28
30
30
30
30
31
32
32
33
34
34
35
35
37
40
40
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
47
47
52
58
58
68
68
68
68
69
69
69
69
69
69
70
70
71
71
74
74
74
75
75
75
75
76
76
76
76
76
76
77
77
77
77
78
78
78
80
80
80
89
90
90
91
92
92
92
92
93
93
95
95
95
96
96
96
96
97
100
101
101
101
101
101
102
103
103
103
103
103
104
104
104
104
104
104
105
105
105
105
105
105
105
106
106
106
107
107
107
107
107
108
108
109
109
109
109
109
109
112
112
112
114
114
114
114
114
114
114
115
115
115
115
115
115
116
116
116
117
117
117
117
118
118
118
121
121
122
122
123
125
134
136
136
138
144
144
145
148
149
149
149
149
151
151
151
155
155
155
155
159
160
160
162
166
167
169
173
173
173
173
176
176
178
178
187
190
192
194
196
198
198
199
199
213
215
215
215
215
218
220
221
221
226
226
228
230
231
240
244
245
245
245
245
246
246
246
248
254
254
255
257
259
259
259
271
273
273
273
273
277
277
282
287
288
298
298
299
301
306
306
322
327
327
344
346
349
370
375
375
389
394
394
407
408
412
415
417
437
442
442
455
460
460
477
479
482
503
505
506
508
525
525
527
803
804
807
5
5
7
11
13
15
15
16
16
19
19
19
19
25
26
26
27
30
32
32
33
33
34
34
35
35
35
35
35
35
37
38
39
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
43
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
45
46
46
46
47
48
48
53
59
67
68
69
70
70
70
70
71
72
72
72
72
75
75
76
76
76
76
76
76
76
77
77
77
77
78
78
78
78
79
79
79
79
79
81
81
81
90
92
92
92
93
93
96
96
96
97
97
97
99
100
100
101
102
102
102
102
102
102
102
102
103
103
103
104
104
104
105
105
105
105
105
105
106
106
106
106
107
107
107
107
107
107
107
107
109
109
109
110
113
113
113
113
113
113
114
114
114
114
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
117
117
118
118
118
119
119
120
120
120
122
122
123
124
126
132
137
137
139
144
144
144
144
145
146
148
148
148
148
149
150
150
150
150
152
152
152
156
156
156
156
159
159
159
159
161
162
162
163
167
168
170
173
173
174
174
179
179
186
186
188
191
193
195
196
197
199
199
199
200
200
210
210
213
214
215
215
216
216
219
221
224
227
227
229
231
231
238
241
246
246
247
247
247
249
255
255
257
258
268
268
271
272
273
273
274
274
278
286
288
289
296
297
299
299
302
307
307
323
328
328
345
347
350
371
376
376
390
395
395
407
407
409
413
416
418
438
443
443
456
461
461
478
480
483
506
507
509
526
526
528
804
805
808
5
5
7
12
15
17
17
17
17
23
24
26
26
26
26
28
30
30
30
33
34
35
35
35
36
36
37
37
39
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
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
45
45
45
45
47
54
54
56
56
60
60
66
68
69
69
70
70
71
72
72
72
72
72
73
73
73
74
74
75
75
75
76
77
77
77
78
78
78
78
79
79
79
79
80
80
80
80
82
82
82
90
92
92
92
93
94
94
97
97
98
98
99
99
100
101
101
102
102
102
102
102
102
102
103
103
103
103
103
104
104
104
104
105
105
105
106
106
106
106
106
106
106
107
107
107
107
107
107
107
108
109
111
114
114
114
114
114
115
115
115
115
115
116
116
116
116
116
117
117
117
117
117
119
120
121
121
121
124
125
127
138
138
140
145
145
146
147
148
149
149
150
151
151
151
153
153
153
157
157
157
157
160
160
162
162
162
163
164
168
169
169
171
171
173
173
174
175
175
179
181
187
189
192
196
197
198
201
201
208
211
211
213
214
215
216
217
217
220
222
228
228
228
230
239
239
239
239
242
245
245
247
247
248
248
250
256
256
258
258
259
259
266
269
269
273
274
275
275
277
277
279
287
289
298
303
308
308
324
329
329
346
348
351
372
377
377
391
396
396
405
407
407
408
410
414
417
419
439
444
444
457
462
462
479
481
484
507
508
510
527
527
529
805
806
809
5
5
7
13
15
15
17
18
18
19
26
28
30
30
32
32
34
34
35
35
35
36
37
37
37
37
38
38
40
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
46
46
47
47
47
48
48
55
55
57
57
61
61
67
67
67
67
68
68
68
69
70
70
70
72
73
73
74
75
75
75
75
76
76
76
76
76
76
76
76
77
77
78
78
79
79
79
80
80
81
81
81
81
83
83
83
90
90
93
93
93
94
94
94
95
95
96
96
97
97
97
97
97
98
98
98
98
98
99
100
100
100
100
100
100
101
102
102
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
106
107
107
108
108
109
109
109
109
112
113
114
114
115
115
115
115
116
117
118
118
118
118
118
120
121
122
122
122
125
126
127
127
128
139
139
141
146
146
148
150
150
151
152
152
152
154
154
154
158
158
158
158
161
161
162
163
164
165
165
169
172
172
173
173
174
175
179
182
184
184
188
190
193
197
198
198
199
199
202
202
209
209
215
215
215
216
217
221
223
229
229
229
229
231
231
240
240
243
246
249
249
251
257
257
260
260
267
267
273
273
274
275
278
280
287
287
289
289
289
290
296
299
304
309
309
325
330
330
347
349
352
373
378
378
392
397
397
408
409
415
418
420
440
445
445
458
463
463
480
482
485
508
509
511
528
528
530
806
807
810
5
5
5
7
14
17
17
17
19
19
19
26
27
28
31
31
32
32
33
35
35
37
37
37
37
38
40
41
41
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
47
47
47
47
47
47
47
56
56
58
58
62
62
65
68
68
68
68
69
69
69
69
69
69
69
71
74
75
75
75
75
75
76
76
76
77
77
77
77
77
77
78
78
78
80
81
81
82
82
82
82
84
84
84
94
94
94
95
95
96
96
97
97
98
98
98
98
98
98
98
98
99
99
99
99
99
100
100
100
101
101
101
101
101
101
102
102
102
102
102
103
103
104
104
104
104
104
104
104
104
104
104
105
105
105
105
106
106
106
106
107
107
107
107
108
109
109
109
109
110
113
113
113
113
114
114
114
115
115
116
116
116
118
118
118
119
120
121
122
123
123
125
127
128
128
129
134
140
140
142
142
146
149
151
151
152
153
153
153
155
155
155
159
159
159
159
160
164
165
170
172
173
173
173
173
174
174
175
185
185
189
191
194
198
200
200
203
203
216
216
217
222
224
229
230
230
231
232
232
240
244
245
247
250
250
252
258
258
258
259
259
259
261
261
274
275
279
281
290
290
291
296
297
297
305
310
310
326
331
331
348
350
353
374
379
379
393
398
398
409
416
419
421
441
446
446
459
464
464
481
483
486
509
510
512
529
531
807
808
811
1
1
5
5
5
6
7
7
7
15
15
15
15
15
17
19
20
20
26
27
28
32
32
32
32
33
34
35
35
36
37
37
39
40
40
40
40
40
41
41
41
41
42
42
42
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
48
48
48
48
48
48
48
48
59
63
63
66
69
69
69
69
70
70
70
70
70
71
71
71
73
75
75
76
76
76
77
78
78
78
78
78
78
79
81
82
82
83
83
83
83
85
85
85
95
95
96
97
97
98
98
98
99
99
99
99
99
99
99
99
100
100
100
100
100
100
100
100
101
101
102
102
102
102
102
102
102
102
103
103
103
103
103
104
104
104
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
107
107
108
109
110
110
111
113
114
114
114
114
115
115
115
116
116
117
118
118
119
120
121
122
123
123
125
126
128
128
128
129
130
135
135
141
141
143
144
147
150
150
152
153
154
154
154
156
156
156
157
159
160
160
160
160
161
161
165
165
171
173
173
174
174
175
175
182
185
185
185
185
186
190
192
195
195
198
199
199
199
199
201
201
204
204
211
215
215
217
217
218
218
223
223
225
229
231
231
231
232
233
233
240
245
245
245
246
251
251
253
258
258
258
259
259
259
260
260
260
269
273
273
275
276
280
282
287
289
291
291
297
297
298
306
311
311
327
332
332
349
351
354
375
380
380
394
399
399
407
420
422
442
447
447
460
465
465
482
484
487
510
511
513
528
530
530
532
808
809
812
1
1
5
5
7
8
8
16
17
17
17
17
17
19
19
21
21
26
26
28
34
35
35
36
37
37
37
37
37
39
40
40
40
40
40
40
41
41
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
48
48
49
49
60
64
64
66
66
69
70
70
70
70
70
71
71
72
72
74
75
75
75
76
76
76
76
77
77
77
78
79
79
79
80
82
84
84
84
84
86
86
86
92
95
95
95
95
96
97
97
97
98
98
98
98
98
98
99
99
99
99
99
100
100
100
100
100
100
101
101
101
101
101
101
102
102
102
102
103
103
103
103
103
103
103
103
104
104
104
104
105
105
105
105
106
106
106
106
106
106
107
107
107
108
109
110
111
111
111
112
115
115
116
116
116
116
116
117
117
118
118
118
118
118
118
118
119
119
120
121
123
123
124
126
126
128
129
129
129
130
131
132
134
142
142
144
144
144
144
144
145
147
151
151
151
153
154
155
155
155
157
157
157
159
159
160
161
161
161
161
166
166
172
175
175
176
176
176
186
186
187
191
192
196
196
198
198
198
199
200
200
200
200
205
205
211
215
215
216
216
218
224
224
226
229
229
232
232
232
233
244
245
246
246
247
252
252
254
260
260
260
261
261
261
269
273
273
274
274
277
281
283
290
297
298
299
307
312
312
328
333
333
352
355
376
381
381
395
400
400
407
407
408
421
423
443
448
448
461
466
466
485
488
511
512
514
531
531
533
809
809
810
813
1
9
9
17
17
17
20
20
22
28
28
28
28
33
35
35
35
35
35
35
37
37
37
37
37
37
37
37
38
38
39
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
46
47
47
47
47
47
47
49
49
49
50
50
50
61
65
65
67
67
67
67
67
68
68
68
70
70
70
70
72
72
72
73
74
75
76
76
76
76
76
76
78
78
79
79
79
79
80
80
80
81
82
82
83
85
85
85
85
85
85
87
87
87
93
96
96
97
97
97
97
97
98
98
99
99
99
99
100
101
101
101
101
101
101
102
102
102
102
102
102
103
103
103
103
104
104
105
105
105
105
105
105
106
106
107
107
107
107
107
107
109
110
111
112
112
112
113
116
116
117
119
119
119
119
119
119
120
121
121
122
124
124
125
125
129
130
130
130
131
132
133
133
135
135
143
143
144
145
145
145
146
147
152
152
152
154
155
156
156
156
158
158
158
159
159
160
161
162
162
162
162
167
167
173
176
176
176
177
177
179
179
185
185
187
187
192
197
197
200
201
201
201
201
206
206
217
217
219
225
225
227
230
230
231
231
231
233
233
233
245
247
247
248
253
253
255
259
261
261
261
262
262
275
275
278
282
284
287
291
298
299
308
313
313
329
334
334
353
356
377
382
382
396
401
401
407
408
409
422
424
444
449
449
462
467
467
482
486
486
489
512
513
515
532
532
534
810
810
813
814
5
9
17
17
17
17
18
18
21
21
23
28
28
28
29
34
34
34
35
37
37
38
38
38
38
38
38
38
39
39
39
39
40
41
41
41
41
41
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
45
45
45
45
46
48
48
48
48
48
48
49
50
50
50
51
51
62
66
66
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
70
70
70
72
72
72
73
74
75
77
77
79
79
80
80
80
80
81
81
81
82
84
84
86
86
86
86
86
86
86
88
88
88
93
93
95
95
96
97
97
97
97
97
98
98
98
98
98
98
98
98
98
99
99
99
99
100
100
100
100
100
100
100
100
100
101
101
101
101
103
103
103
103
104
104
105
105
105
105
105
105
107
107
107
109
111
112
112
112
112
113
114
114
116
116
116
117
117
117
119
119
120
120
121
121
122
125
125
126
126
128
128
130
131
131
131
133
133
135
136
136
144
144
146
146
146
147
147
151
153
153
153
156
157
157
157
159
159
159
159
160
161
161
162
162
163
163
163
163
165
174
176
177
177
180
180
186
193
198
198
199
201
202
202
202
207
207
211
211
213
218
218
220
226
226
228
232
232
232
232
234
234
239
245
246
248
248
254
254
256
260
260
262
262
269
269
271
276
276
279
283
285
287
288
289
298
298
299
299
299
300
309
314
314
330
335
335
354
357
378
383
383
397
402
402
409
410
416
423
425
445
450
450
463
468
468
487
487
490
512
514
516
533
533
535
811
814
815
5
9
9
15
15
17
18
19
19
22
24
26
26
26
28
29
30
30
35
37
37
37
38
39
39
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
49
49
51
51
52
52
63
67
69
69
69
69
70
70
70
70
70
70
70
71
71
71
71
71
72
72
75
75
76
76
76
78
79
79
79
79
79
79
81
81
81
81
83
85
85
87
87
87
87
87
87
89
89
89
93
94
94
95
95
96
96
96
96
97
97
98
99
99
99
99
99
99
99
99
99
100
100
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
102
102
102
102
103
105
105
105
105
105
107
112
113
113
113
115
115
115
116
116
116
116
117
117
117
117
118
118
119
119
121
121
122
126
126
126
127
127
128
129
132
132
133
134
135
136
137
137
142
145
145
147
147
147
152
154
154
157
157
158
158
158
160
160
160
161
161
162
164
164
164
164
165
166
175
178
178
180
185
187
194
199
199
200
200
203
208
208
209
212
212
214
219
221
227
227
229
233
233
235
235
235
235
240
240
240
240
245
246
248
248
249
249
255
255
257
263
263
267
270
270
272
277
280
284
286
288
289
289
290
300
300
301
310
315
315
331
336
336
349
353
355
358
379
384
384
398
403
403
410
417
421
424
426
446
451
451
464
469
469
488
488
491
513
515
515
517
534
534
536
812
815
816
5
5
9
10
17
19
20
20
23
25
26
27
28
29
30
30
30
30
30
34
37
37
38
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
46
50
50
52
52
53
53
64
64
64
64
65
66
68
68
68
69
69
69
70
70
70
70
70
71
71
71
72
72
75
75
76
76
76
76
77
78
78
79
79
79
80
80
80
80
80
80
81
84
84
86
86
88
88
88
88
88
88
90
90
90
94
95
95
95
96
97
97
97
97
98
98
98
98
98
99
100
100
100
100
100
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
107
107
107
107
112
113
113
114
116
116
116
116
117
117
117
117
117
118
118
118
118
119
119
119
119
119
122
122
122
123
126
126
127
127
128
128
128
128
129
130
133
133
135
136
137
143
146
146
148
148
151
153
155
158
158
158
159
159
159
161
161
161
162
162
165
165
165
165
166
167
176
179
179
180
185
185
186
195
200
200
204
209
209
210
210
214
214
218
218
220
222
228
228
230
233
236
236
241
241
249
249
250
250
256
256
258
262
264
264
268
268
272
272
276
276
276
278
285
287
290
290
291
298
299
299
299
301
301
311
316
316
332
337
337
354
356
359
380
385
385
399
404
404
407
410
422
425
427
447
452
452
465
470
470
489
489
492
516
516
518
535
535
537
813
816
817
10
11
11
11
11
19
19
19
20
24
26
26
26
27
27
29
29
30
30
30
31
34
37
37
37
37
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
46
47
47
47
47
47
51
51
53
54
65
65
65
65
66
67
67
67
67
68
68
69
69
70
70
70
70
70
70
71
71
72
72
78
79
79
80
81
81
81
81
81
81
85
85
87
88
89
89
89
89
89
89
90
91
91
91
93
95
95
95
95
95
95
96
96
96
96
96
96
96
97
98
98
98
99
99
99
99
99
100
100
100
100
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
104
104
104
107
107
107
107
108
112
112
113
114
115
117
117
117
117
118
118
119
120
120
120
120
123
123
123
124
128
128
129
129
129
129
130
131
134
134
136
137
143
147
147
147
147
149
149
151
152
156
159
160
160
160
161
161
162
162
162
163
163
165
166
166
166
166
167
173
177
180
180
182
185
186
187
196
201
201
202
205
210
219
219
221
223
229
229
231
233
237
237
241
250
250
251
257
257
259
262
265
265
276
277
277
279
286
288
290
291
291
298
298
300
300
300
312
317
317
333
338
338
355
357
360
381
386
386
400
405
405
407
408
423
426
428
448
453
453
466
471
471
490
490
493
517
517
519
536
536
538
814
817
818
9
9
11
11
20
20
20
21
25
25
27
27
27
27
29
29
30
30
30
30
31
31
32
34
37
37
37
37
37
38
38
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
43
43
43
43
43
43
43
43
43
44
44
45
45
46
46
46
47
47
48
48
48
48
48
48
52
52
54
54
55
55
66
66
66
66
68
68
68
69
69
70
70
70
70
71
71
72
72
75
78
78
78
79
79
80
80
82
82
82
82
86
86
88
89
90
90
90
90
90
90
91
92
92
92
92
92
93
93
94
94
94
96
96
96
96
96
96
97
97
97
97
99
99
99
99
100
100
100
100
100
100
100
101
101
101
101
101
101
101
102
102
102
102
102
102
103
103
103
103
103
103
103
103
104
104
104
105
107
107
107
108
109
115
115
116
118
118
118
118
118
119
120
120
123
123
124
124
124
125
129
129
130
130
130
131
131
135
135
135
135
137
143
147
148
148
148
150
150
151
152
153
157
160
161
161
161
162
162
163
163
163
164
164
165
165
166
166
167
167
167
167
174
174
176
176
178
181
183
187
188
197
202
202
202
206
211
212
218
220
220
224
230
230
232
238
238
241
248
252
258
258
260
266
266
270
272
277
278
278
287
289
290
291
291
291
291
292
301
301
301
313
318
318
334
339
339
356
358
361
382
387
387
401
405
406
406
409
424
427
429
449
454
454
467
472
472
491
491
494
518
518
520
537
537
539
815
818
819
1
1
5
5
5
9
9
9
15
15
15
15
21
22
22
26
26
27
28
28
29
30
30
30
30
30
31
31
32
32
33
34
34
34
37
37
38
38
38
38
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
42
42
42
42
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
47
53
55
55
56
56
65
65
66
67
67
67
69
69
70
71
71
71
72
72
75
75
78
79
79
79
80
80
82
82
87
87
89
89
90
91
91
91
91
91
92
93
93
93
93
93
94
94
94
94
94
95
95
96
96
96
96
97
97
97
97
98
98
98
98
98
98
98
100
100
100
101
101
101
101
101
101
101
101
102
102
102
102
102
102
103
103
103
103
104
104
105
105
105
108
109
110
116
116
116
116
117
118
118
119
119
119
120
120
120
120
120
120
120
121
124
124
125
125
125
126
130
130
131
131
133
133
135
136
136
136
136
138
143
147
148
149
149
149
151
152
153
154
158
158
161
162
162
162
162
164
164
164
166
166
168
168
168
168
177
177
177
179
182
183
184
188
198
203
203
207
212
212
218
225
231
231
233
239
239
245
253
259
259
261
262
262
267
267
270
278
280
288
290
292
292
293
299
302
302
314
319
319
335
340
340
357
359
362
383
388
388
402
406
407
407
410
425
428
428
430
430
450
455
455
468
473
473
492
492
495
519
519
521
538
538
540
816
819
820
4
4
5
5
5
6
6
6
9
9
10
11
11
18
19
20
22
22
22
22
23
26
27
27
29
29
30
30
30
30
31
31
32
32
32
34
35
37
37
37
38
38
38
39
39
39
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
43
43
43
43
44
44
45
45
45
45
45
45
45
46
47
47
48
48
50
50
54
54
56
56
57
57
60
61
66
66
67
67
68
68
68
68
69
69
71
72
72
80
80
80
82
82
82
82
88
88
90
90
92
92
92
92
92
93
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
96
96
96
96
97
97
97
98
98
98
98
99
99
99
99
99
99
99
100
100
100
100
100
101
101
101
102
102
103
103
103
103
103
103
103
104
105
105
107
107
109
110
117
117
118
119
119
119
120
121
121
121
121
121
122
124
125
126
126
126
127
131
131
132
132
136
137
137
137
137
139
146
148
149
150
150
152
154
155
158
159
162
162
163
163
163
163
165
165
165
167
167
167
167
169
169
177
178
178
180
180
180
183
183
184
188
188
189
199
202
202
204
204
208
213
214
218
219
226
232
232
232
232
232
234
240
240
245
246
248
248
254
260
260
260
262
263
263
268
268
276
279
281
286
289
290
291
291
293
293
300
302
315
320
320
336
341
341
358
360
360
363
363
384
389
389
403
406
408
408
410
411
426
431
431
451
456
456
469
474
474
493
493
496
520
520
522
539
539
541
817
820
821
5
7
7
7
7
11
11
12
12
15
19
22
24
30
30
30
31
32
32
32
32
32
33
33
33
33
35
35
35
37
37
38
38
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
40
40
41
41
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
46
46
46
48
48
49
49
51
51
51
52
52
53
55
55
57
58
61
61
62
62
66
66
67
67
68
68
68
68
68
69
69
69
69
69
71
73
73
78
80
80
80
80
81
81
83
83
89
89
91
91
93
93
93
93
93
94
94
94
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
99
99
99
100
100
100
100
100
100
101
101
101
101
101
102
102
103
103
103
103
103
103
104
104
105
105
108
117
117
118
119
119
119
121
121
121
121
121
121
121
121
121
122
122
122
122
122
124
125
126
127
127
127
128
131
132
133
138
138
138
138
140
147
149
150
151
153
154
154
154
154
156
160
163
163
164
164
164
164
166
166
166
167
167
168
168
168
168
168
168
170
170
177
181
181
181
184
189
189
190
200
200
203
203
205
205
209
214
214
219
220
227
233
233
233
233
233
233
235
241
241
245
249
249
255
261
261
261
261
263
269
269
272
276
277
287
290
292
292
302
316
321
321
337
342
342
359
364
364
385
390
390
404
406
409
409
410
411
412
427
432
432
452
457
457
470
475
475
494
497
521
521
523
540
540
542
818
821
822
4
4
5
6
8
8
8
8
13
13
15
20
22
23
25
29
29
30
30
31
31
32
33
34
34
35
35
35
37
38
38
38
39
40
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
44
44
44
45
45
45
47
47
50
50
52
52
53
54
56
56
58
59
64
64
64
66
68
68
68
68
69
69
70
70
70
70
70
71
72
72
74
74
79
81
81
81
83
83
84
84
90
90
92
92
92
93
93
94
94
94
94
94
95
95
96
96
96
96
96
96
97
97
97
97
97
97
97
97
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
100
100
100
100
100
101
101
101
101
101
101
102
102
102
102
102
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
105
106
107
109
117
118
118
119
119
119
119
120
122
122
122
122
122
123
123
123
125
126
127
128
128
128
129
129
133
134
138
138
138
138
139
139
139
141
143
147
148
151
152
154
155
155
157
158
158
161
162
164
164
165
165
165
167
167
167
167
167
168
169
169
169
169
171
171
180
180
181
182
185
190
190
201
201
201
206
208
209
210
215
218
220
221
228
234
234
234
234
236
242
242
246
248
250
250
250
256
262
262
264
270
270
272
277
278
288
290
291
293
293
300
317
322
322
338
343
360
365
365
386
391
391
405
406
410
410
411
412
428
433
433
453
458
458
471
476
493
495
496
498
522
522
524
541
541
543
819
822
823
1
1
5
5
5
6
7
9
9
9
11
11
15
22
23
24
26
32
32
34
34
35
35
36
36
36
36
38
39
39
39
39
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
45
48
53
54
54
55
55
57
57
58
58
59
59
60
65
65
65
65
65
66
67
68
68
71
73
73
75
81
81
81
81
81
81
82
82
83
83
84
84
85
85
91
91
91
91
93
94
94
95
95
95
95
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
99
99
99
99
99
99
99
100
100
100
100
100
100
100
100
100
101
101
101
101
101
101
102
102
103
103
103
103
103
104
104
104
105
105
105
105
106
107
107
107
108
120
120
121
121
121
121
121
121
121
123
123
123
123
123
124
124
124
126
127
129
129
129
130
134
135
139
139
140
140
140
142
143
147
148
149
152
153
155
156
156
159
159
162
162
162
163
163
165
166
166
166
166
167
167
168
168
168
168
169
170
170
172
172
181
181
183
186
188
202
207
210
210
211
214
216
219
221
221
229
234
235
235
237
240
243
243
248
249
257
263
263
263
265
268
271
271
276
278
279
289
290
291
291
292
294
318
323
323
339
344
361
366
366
387
392
392
406
409
409
411
411
412
429
434
434
454
459
459
472
477
496
497
499
523
525
542
542
544
820
823
824
1
1
1
4
4
5
5
6
7
10
10
11
13
13
22
22
24
27
30
33
33
34
35
37
37
37
37
38
38
38
38
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
44
44
44
44
45
45
45
45
49
49
54
58
58
59
59
59
60
60
61
65
65
65
67
68
68
72
74
74
76
79
79
82
83
83
84
84
85
85
86
86
91
92
92
92
92
92
92
93
93
94
94
95
95
95
95
95
95
95
96
96
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
99
99
99
100
100
100
100
100
101
101
101
101
101
101
101
102
102
102
102
103
105
105
105
106
106
106
106
107
108
109
116
118
118
118
118
119
120
120
120
120
121
121
121
122
122
122
122
122
122
122
124
124
125
125
130
130
131
135
136
140
140
141
141
143
148
149
150
153
154
156
163
163
163
166
166
167
167
167
167
167
167
168
168
169
169
169
169
171
171
173
173
174
182
183
184
187
203
203
208
211
211
212
217
218
220
230
234
236
236
238
241
241
241
244
244
249
249
250
250
258
263
264
264
266
269
272
272
277
279
290
291
291
292
293
293
295
295
319
324
324
340
342
342
345
362
367
367
388
393
393
407
410
412
412
430
435
435
455
460
460
473
475
475
478
497
498
500
522
524
524
526
543
543
545
821
824
824
825
5
5
5
5
5
7
7
8
11
11
11
11
13
24
24
24
28
34
34
34
35
35
35
37
37
37
37
37
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
42
42
42
43
43
43
43
43
43
44
44
45
45
45
45
50
50
55
56
56
57
57
59
59
60
61
61
62
63
65
65
65
65
66
66
67
69
69
69
69
69
69
73
75
77
80
82
83
83
83
85
85
86
86
90
91
92
92
93
93
93
93
93
93
93
93
93
94
94
95
95
96
96
96
96
96
96
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
100
101
101
101
101
101
101
102
103
103
103
103
103
104
105
106
107
107
109
110
117
119
119
121
121
121
121
122
122
122
123
123
123
123
123
123
124
124
125
125
126
126
131
131
131
132
136
136
137
142
142
144
150
151
152
154
154
155
157
164
164
164
164
164
167
167
167
168
168
168
169
169
170
170
170
172
172
174
174
175
175
177
177
183
183
184
185
188
188
188
203
204
209
212
212
212
213
213
218
218
219
219
221
221
231
237
237
239
242
242
245
245
251
251
259
265
265
267
270
270
273
273
277
277
279
279
279
280
291
291
292
293
296
296
320
325
325
341
343
346
363
368
368
389
394
394
408
411
413
431
436
436
456
461
461
474
476
479
498
499
501
525
525
527
544
544
546
822
824
825
826
5
5
6
6
7
9
12
12
13
13
13
24
24
24
25
29
30
30
34
35
35
35
35
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
42
42
42
42
43
43
43
44
44
44
44
51
51
56
57
58
60
60
60
60
60
60
61
61
62
63
64
64
64
64
66
66
66
66
67
70
70
70
70
70
70
74
76
78
80
80
81
81
81
82
83
83
83
84
84
84
91
92
92
92
93
93
94
94
94
94
94
94
94
94
94
94
94
95
95
96
96
97
97
97
97
97
97
98
98
98
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
100
100
100
100
100
100
100
101
102
102
102
103
103
103
103
104
104
104
104
105
106
106
108
108
110
119
119
120
120
120
120
120
121
121
122
122
122
122
124
124
124
124
125
125
126
126
127
127
130
131
131
132
132
132
132
132
132
133
133
137
137
138
138
138
143
145
150
150
150
150
152
154
154
155
155
156
158
164
164
165
165
165
168
169
170
170
171
171
171
173
173
175
175
178
178
183
184
186
189
189
189
189
205
210
213
213
213
213
213
219
219
219
221
222
222
232
238
238
240
241
242
242
242
242
243
246
246
249
250
250
250
252
252
260
263
263
266
266
268
271
271
271
271
274
274
280
280
281
292
292
293
297
297
321
326
326
342
344
347
364
369
369
390
395
395
409
410
412
414
432
437
437
457
462
462
475
477
480
499
500
502
526
526
528
545
547
823
826
827
5
5
7
7
8
10
11
11
11
11
13
13
13
22
22
22
24
25
26
26
30
30
35
35
35
35
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
43
44
44
45
45
45
45
45
46
47
52
57
58
59
61
61
61
61
61
61
61
61
61
62
62
62
62
63
64
64
65
65
65
65
65
65
66
68
69
70
70
75
77
79
81
81
81
81
82
83
83
83
83
83
84
84
84
85
85
85
90
90
90
90
92
92
92
93
93
93
93
94
94
94
94
94
95
95
95
95
95
95
95
95
95
96
96
97
97
97
98
98
98
98
98
99
99
99
100
100
101
101
101
101
101
101
101
101
102
103
103
103
103
104
104
104
105
105
106
106
106
108
108
110
110
110
111
117
117
119
119
119
119
120
120
120
121
121
123
123
124
124
124
124
125
125
125
125
126
127
127
127
128
129
131
132
133
133
138
138
138
138
138
138
139
139
139
144
146
151
151
153
154
154
155
156
156
157
159
164
164
165
166
166
166
169
170
170
172
172
172
174
174
176
176
178
184
185
186
188
190
190
190
190
190
203
203
204
205
206
211
211
213
213
214
214
214
219
220
220
221
222
223
223
233
233
239
239
241
243
243
244
247
247
249
249
249
250
251
251
251
261
261
264
264
267
267
269
269
271
271
272
272
275
277
279
281
281
292
292
293
293
293
293
294
298
298
302
302
322
327
327
343
345
348
365
370
370
391
396
396
410
411
413
415
433
438
438
458
463
463
476
478
481
500
501
503
527
527
529
546
548
824
827
828
5
5
7
7
7
9
11
13
13
13
13
13
14
14
22
24
26
26
26
26
26
26
26
27
27
30
30
30
31
34
34
34
34
35
35
36
37
37
37
37
37
37
37
37
37
38
38
38
39
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
44
44
45
45
48
53
58
58
58
58
62
62
62
63
64
64
64
65
65
66
66
67
68
68
68
69
74
76
78
78
80
82
83
83
84
84
84
84
84
85
85
85
86
86
87
88
88
91
91
91
91
92
93
93
93
93
94
94
94
94
94
94
94
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
98
98
99
99
99
99
100
100
101
101
101
101
101
101
102
102
102
102
102
103
103
103
104
104
105
105
106
106
106
107
107
111
111
112
117
118
120
120
120
122
122
124
124
125
125
125
125
126
126
126
126
128
129
130
130
132
132
133
134
134
138
139
139
139
139
140
140
140
144
145
147
152
152
154
155
156
157
157
157
158
160
164
164
165
166
167
170
170
171
173
173
173
175
175
177
177
178
178
186
188
189
191
191
201
204
204
206
207
212
214
215
215
215
219
219
221
221
222
223
234
234
234
234
234
240
240
242
242
242
244
244
248
248
251
252
252
252
262
262
262
268
268
270
272
273
273
274
274
276
280
294
294
294
295
299
299
300
303
303
323
328
328
344
346
349
366
371
371
392
397
397
406
406
411
411
414
416
434
439
439
459
464
464
477
479
482
501
502
504
528
528
530
546
547
549
825
828
829
5
5
7
8
10
12
13
13
15
15
22
22
26
26
26
26
27
27
27
27
27
27
28
28
32
34
34
34
35
35
35
36
36
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
49
49
53
54
58
58
59
59
59
59
59
59
63
63
63
63
63
64
64
65
65
65
66
69
69
69
75
79
79
80
81
82
83
85
85
86
86
86
86
88
89
89
91
91
91
91
92
92
92
92
92
92
93
94
94
94
94
95
95
95
95
95
95
96
96
96
96
96
96
97
97
97
97
97
98
99
99
100
100
100
101
101
101
101
101
101
101
101
101
102
102
102
103
103
103
105
106
106
106
106
107
107
107
107
108
108
110
110
110
112
112
118
118
119
120
120
121
121
123
126
126
126
126
127
127
128
129
129
130
130
130
132
133
133
134
135
135
135
140
140
140
140
141
141
141
142
145
146
148
152
156
157
158
159
161
163
164
164
165
165
166
168
168
171
172
174
174
174
176
176
178
178
179
181
181
187
189
189
190
190
192
192
202
202
207
208
213
213
213
215
216
220
220
221
221
221
222
222
223
235
235
235
241
241
243
243
249
249
250
252
253
253
263
269
269
271
271
271
273
275
277
277
281
292
293
293
293
295
295
295
300
300
301
303
304
324
329
329
345
347
350
367
372
372
393
398
398
407
407
410
410
412
415
417
435
440
440
460
465
465
478
480
483
502
503
505
529
529
531
544
547
548
550
826
829
830
5
5
5
7
9
9
11
12
13
13
13
13
13
14
16
16
26
27
27
27
27
27
28
28
28
28
29
29
33
35
35
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
43
43
43
44
44
44
44
44
45
45
54
55
59
59
60
60
60
60
60
60
62
63
64
64
64
64
64
65
65
66
66
66
67
69
70
70
76
80
80
80
80
82
82
82
83
84
89
89
90
90
90
92
92
92
92
93
93
93
93
93
93
94
94
94
94
94
94
94
94
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
98
98
98
98
98
99
99
99
99
100
101
101
101
101
101
101
102
102
102
102
103
104
104
104
106
106
106
107
108
108
109
109
111
111
111
118
118
118
119
119
119
120
121
122
122
123
123
124
127
128
128
130
130
130
132
133
134
134
135
136
136
136
136
141
141
141
141
142
142
146
147
148
149
150
153
153
157
157
159
160
162
164
164
166
166
169
169
172
173
174
174
175
175
175
177
177
179
179
182
182
188
191
191
193
193
208
209
209
214
214
214
217
222
222
222
222
223
223
235
236
242
242
242
244
244
250
250
251
251
264
264
270
270
272
272
276
277
278
278
279
292
292
294
294
294
296
301
301
301
301
303
304
305
325
330
330
346
348
351
368
373
373
394
399
399
411
411
413
416
418
436
441
441
461
466
466
479
481
484
502
504
506
530
530
532
548
549
551
827
830
831
5
5
5
6
7
7
7
11
11
12
13
13
14
14
15
17
17
26
27
28
28
29
29
29
29
30
30
30
34
34
35
35
35
36
36
36
36
37
37
37
37
37
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
43
43
44
45
45
51
51
55
56
61
62
62
63
63
63
63
64
64
65
65
65
65
66
66
66
66
66
66
66
66
67
67
67
67
68
70
70
81
81
82
83
83
83
84
85
90
90
90
90
90
91
91
91
91
91
91
92
92
93
93
93
93
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
97
97
97
97
97
97
97
97
98
98
98
98
99
99
99
99
99
99
99
99
100
100
101
101
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
104
104
105
105
105
105
105
106
107
112
112
112
119
119
120
120
121
122
123
123
124
124
124
124
125
125
129
129
131
131
133
134
136
137
137
137
137
142
142
142
143
143
147
148
150
150
150
151
158
158
160
161
163
167
167
167
173
174
175
175
176
176
176
178
178
178
178
179
180
180
180
180
182
182
182
182
183
189
189
190
190
190
192
192
194
194
204
209
213
213
215
215
215
218
223
223
224
224
235
237
242
242
243
243
243
245
251
251
264
265
271
271
271
271
273
273
277
278
279
279
279
280
295
295
295
297
302
302
304
305
306
326
331
331
347
349
352
369
374
374
395
400
400
412
412
412
412
417
419
437
442
442
462
467
467
480
482
485
503
505
505
507
531
531
533
549
550
552
828
831
832
5
5
7
7
8
8
10
13
13
14
15
15
16
16
16
18
18
22
26
26
28
29
29
29
30
30
30
34
34
34
35
35
35
36
37
37
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
52
55
57
60
60
60
61
62
63
63
64
64
64
64
65
66
66
66
66
66
66
67
67
67
67
67
68
68
68
68
68
69
82
82
84
84
84
84
85
85
86
86
86
86
88
89
89
90
90
91
91
91
91
92
92
92
92
93
93
93
93
94
94
94
94
94
94
94
95
95
95
95
95
96
96
96
96
96
96
96
96
97
97
97
97
97
97
98
98
98
98
98
98
99
99
100
100
100
100
102
102
103
103
103
103
103
103
103
104
104
104
104
104
105
105
106
106
106
106
106
106
106
106
107
107
107
107
108
110
113
113
119
119
120
120
120
120
122
123
124
124
124
124
124
124
125
125
125
125
130
130
132
132
134
137
137
138
138
138
141
141
143
143
143
143
143
144
144
144
144
148
149
150
150
151
151
152
159
159
161
162
162
164
164
167
167
168
168
170
170
174
175
176
176
177
177
177
181
181
181
181
183
183
184
189
189
189
190
190
191
191
191
195
195
204
210
213
213
214
214
216
216
219
223
225
225
238
241
242
243
244
244
244
246
252
252
253
266
271
271
272
272
272
274
278
280
280
280
281
293
296
296
298
303
303
303
303
305
306
327
332
332
350
353
370
375
375
396
401
401
412
412
412
412
413
413
418
420
438
443
443
463
468
468
483
486
506
506
508
532
532
534
550
551
553
829
832
833
1
9
9
11
14
14
15
15
15
16
16
17
17
19
28
28
28
29
29
29
29
30
35
35
35
35
35
36
36
36
37
37
37
37
37
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
41
42
42
42
42
43
43
44
44
53
56
56
58
61
61
61
61
61
61
62
62
62
62
63
63
63
65
65
65
65
67
67
68
68
69
69
69
69
70
83
83
84
84
85
85
85
85
85
86
86
87
87
87
87
89
90
90
90
90
91
91
91
91
92
92
92
92
92
92
92
92
93
93
93
93
93
93
94
94
94
94
94
95
95
95
96
96
97
97
97
97
97
97
97
97
97
97
97
98
98
98
99
99
99
99
100
101
101
101
101
103
104
104
104
104
105
106
106
107
107
107
107
107
107
107
107
108
108
108
108
109
111
113
118
118
120
121
124
124
125
125
125
125
125
125
125
125
126
126
126
126
131
131
132
132
133
133
137
138
139
139
139
142
142
144
144
144
145
145
149
150
150
151
152
152
153
153
153
157
162
165
165
167
168
171
171
173
175
175
176
177
177
178
178
182
182
182
182
182
182
184
184
191
191
192
192
192
196
196
211
215
215
217
217
220
223
226
226
239
242
244
245
245
245
247
253
253
253
267
271
271
273
273
273
275
279
280
281
281
281
294
296
299
301
303
304
304
304
328
333
333
351
354
371
376
376
397
402
402
413
413
414
414
419
421
439
444
444
464
469
469
480
484
484
487
507
507
509
533
533
535
551
552
554
830
833
834
1
1
5
9
12
15
15
15
16
16
16
17
17
18
18
20
26
26
29
30
30
31
31
34
34
35
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
42
42
42
42
43
43
43
45
57
59
61
62
63
63
63
64
64
64
65
65
66
66
66
67
67
68
68
69
69
69
70
70
70
71
82
83
84
84
84
85
85
86
87
87
87
87
87
87
88
88
88
88
90
90
91
91
91
91
91
92
92
92
92
93
93
93
93
93
93
93
93
93
94
94
94
95
95
95
95
95
95
95
96
96
96
97
97
97
97
98
98
99
99
100
100
100
101
102
102
102
102
102
104
104
104
105
105
105
106
106
107
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
113
118
118
118
119
120
120
121
122
123
126
126
126
126
126
126
127
127
127
127
127
130
130
132
132
132
133
133
134
134
137
139
140
140
140
141
143
143
145
145
146
146
148
150
151
152
153
153
153
157
158
163
166
166
171
174
176
176
177
177
178
178
178
178
179
179
179
183
183
183
183
183
190
192
192
193
193
197
197
211
212
216
216
218
218
221
227
227
227
227
240
242
243
245
246
246
248
254
254
268
269
272
274
274
274
276
280
280
281
281
281
281
282
282
296
300
301
301
303
303
304
305
305
305
329
334
334
352
355
372
377
377
398
403
403
413
414
414
420
422
440
445
445
465
470
485
485
488
508
508
510
534
534
536
552
553
555
831
834
835
5
9
9
11
11
11
11
16
16
17
18
18
18
19
21
31
31
35
35
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
41
42
42
42
42
43
44
53
58
58
58
59
60
62
62
62
63
63
63
63
63
63
63
64
64
65
65
66
67
67
67
68
68
69
69
70
70
70
71
71
71
72
83
83
84
85
85
85
85
85
85
87
87
87
87
87
87
87
88
88
89
89
89
89
89
89
91
91
91
92
92
92
92
92
92
92
93
93
93
93
93
93
93
94
94
94
94
94
94
95
96
96
96
97
97
97
97
98
98
99
99
100
100
101
101
102
103
103
103
104
104
104
105
105
105
106
106
106
107
107
107
108
108
108
108
109
109
109
109
109
109
109
109
109
110
110
111
118
119
121
121
122
123
123
123
123
124
125
125
126
126
126
126
126
126
128
128
128
128
128
128
133
133
133
134
134
135
135
140
141
141
141
141
141
142
144
146
146
147
147
149
149
151
152
153
153
154
158
159
164
167
167
171
175
177
179
179
179
179
180
180
180
182
184
184
184
184
184
191
191
193
198
198
212
213
217
219
219
222
228
228
241
242
243
245
245
246
247
247
249
253
253
255
255
262
269
270
273
275
275
277
281
282
282
283
283
294
301
304
304
305
306
306
306
330
335
347
351
353
356
373
378
378
399
404
412
412
414
418
421
423
441
446
446
466
471
486
486
489
509
509
511
535
535
537
553
554
556
832
835
836
5
5
9
10
15
16
17
17
17
18
18
18
18
19
20
22
26
31
33
33
33
33
35
35
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
42
42
43
43
43
45
45
59
59
59
60
60
60
60
60
60
60
60
61
61
63
63
63
64
64
64
64
64
64
64
66
68
68
70
71
72
72
73
83
84
84
84
84
84
85
85
85
85
85
85
86
86
86
86
86
86
88
88
88
88
88
88
88
89
89
89
89
90
90
90
90
90
90
92
93
93
93
94
94
94
94
94
94
95
95
95
95
95
95
97
97
97
97
97
97
99
99
99
100
103
103
104
104
105
105
105
106
106
106
107
107
107
108
108
108
109
109
109
110
110
110
110
110
110
110
110
111
111
122
123
123
123
124
124
124
124
125
125
125
125
125
125
125
125
125
126
126
127
127
127
127
127
127
127
134
134
135
135
136
136
141
141
142
142
142
143
147
147
148
148
152
153
153
153
154
154
155
157
159
164
165
168
168
176
176
178
179
179
179
179
180
180
180
181
181
181
182
182
183
185
185
185
185
194
199
199
202
212
212
214
216
216
218
220
220
222
223
229
229
234
242
246
246
247
248
248
250
251
254
254
256
256
263
270
270
270
274
274
274
274
276
276
280
281
282
283
283
284
302
305
306
306
307
307
331
336
352
354
357
374
379
379
400
403
403
405
411
412
412
413
413
419
422
424
442
447
447
467
469
469
472
487
487
490
510
510
512
536
536
538
554
555
557
833
836
837
10
11
11
11
11
11
18
18
19
20
21
23
31
31
31
34
34
34
35
35
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
43
43
46
46
58
60
60
60
61
61
61
61
61
61
61
61
61
62
62
62
62
62
63
63
64
64
66
67
67
68
68
69
69
70
70
70
71
71
71
71
72
73
73
74
84
85
85
85
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
88
89
89
89
89
89
89
89
90
90
91
91
91
91
91
91
92
92
93
93
93
93
94
94
94
94
95
95
95
97
97
97
97
98
99
99
104
104
104
104
106
106
106
106
106
107
107
108
108
108
108
108
109
109
109
109
110
110
111
111
111
111
111
111
125
125
125
126
126
126
126
127
127
128
128
128
128
128
128
128
128
135
135
135
135
135
135
136
137
137
137
141
142
142
143
143
143
148
148
149
149
153
154
154
154
155
155
156
157
157
158
158
165
165
166
167
167
169
169
177
177
177
179
179
180
180
181
181
181
182
182
182
182
183
184
186
186
186
186
193
195
200
203
215
217
217
219
221
221
223
223
223
223
224
230
230
235
235
235
243
247
247
249
249
251
252
252
257
257
264
264
271
274
275
275
275
277
277
282
283
285
303
308
308
332
334
334
337
353
355
358
375
380
380
401
404
406
412
414
414
420
423
425
443
448
448
468
470
473
488
488
491
511
511
513
537
537
539
555
556
558
834
837
838
1
4
5
9
9
11
11
11
18
19
20
21
22
22
24
24
26
26
31
34
34
34
35
35
35
35
36
36
36
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
42
42
43
43
43
47
47
60
61
61
61
61
62
62
62
62
63
63
63
64
64
64
64
65
65
65
66
67
68
68
69
69
70
70
70
70
71
71
71
71
72
72
72
72
73
74
75
84
86
86
86
86
86
86
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
89
89
89
90
90
90
90
90
90
90
90
91
91
91
91
92
92
92
92
92
92
92
93
93
93
94
94
95
95
96
96
97
97
97
97
97
97
99
105
105
105
106
106
107
107
107
108
108
108
108
108
109
109
109
109
109
109
109
110
110
110
110
111
112
112
112
124
125
125
125
126
126
126
127
127
128
128
128
129
129
129
129
129
129
136
136
136
136
137
137
138
138
141
142
143
143
144
144
144
149
149
149
150
150
153
154
155
157
158
158
167
168
168
168
170
170
178
178
179
179
180
180
181
181
182
182
183
183
183
184
185
187
187
187
187
193
196
201
204
204
216
216
218
218
222
222
224
224
225
231
231
236
236
244
245
250
250
252
258
258
265
265
265
265
270
272
275
276
276
276
278
280
283
284
286
304
309
309
333
335
338
354
356
359
376
381
381
402
405
407
412
415
415
421
424
426
444
449
449
469
471
474
489
489
492
512
512
514
538
538
540
556
557
559
835
838
839
4
5
6
9
9
9
11
12
17
18
19
20
21
22
23
23
25
25
26
26
27
31
31
31
31
31
34
34
34
34
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
42
42
43
44
48
48
58
59
61
61
61
62
62
62
63
63
63
63
63
63
63
63
63
64
64
65
65
66
67
69
69
70
70
70
70
71
71
71
71
71
72
72
72
73
73
73
73
73
74
74
75
76
84
84
86
86
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
92
92
92
92
92
92
92
93
93
93
93
93
94
94
95
96
97
97
97
98
106
106
106
107
108
108
108
108
109
109
109
109
110
110
110
110
111
111
111
113
113
113
123
124
124
124
125
126
126
126
126
127
127
127
127
128
129
130
130
137
137
137
139
139
142
143
144
144
145
145
145
149
150
150
151
151
153
154
155
156
158
159
159
159
159
168
168
169
169
171
171
171
171
179
179
180
180
181
181
183
183
184
184
184
185
188
188
188
188
197
202
205
205
205
205
216
217
223
223
223
223
224
226
232
232
235
236
236
236
236
237
242
245
251
251
253
254
259
259
263
265
265
266
266
273
276
277
277
279
280
281
281
285
287
305
306
310
310
334
336
339
355
357
360
377
382
382
403
406
408
415
415
422
425
425
427
427
445
450
450
470
472
475
490
490
493
513
515
539
541
557
558
560
836
839
840
4
5
5
5
6
7
9
9
10
11
11
15
18
18
18
20
20
23
24
24
26
26
26
26
26
26
26
26
27
27
27
27
28
31
31
31
32
34
34
34
35
36
36
36
36
36
36
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
45
49
49
59
59
59
60
60
60
60
60
60
60
61
63
63
63
63
64
64
64
64
64
64
64
65
66
67
68
68
69
70
71
72
72
72
72
73
73
73
74
74
74
74
75
76
77
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
93
93
93
93
93
94
94
95
95
96
97
98
99
106
106
107
107
108
109
110
110
111
111
111
111
112
112
112
112
113
113
114
114
114
121
126
127
127
127
129
130
133
138
140
140
144
145
145
146
146
146
151
151
152
152
154
155
156
157
159
159
159
160
160
168
169
172
172
172
172
179
180
180
180
181
181
182
184
184
185
185
185
185
185
186
189
189
189
189
193
193
198
203
203
205
205
206
206
212
216
217
218
224
224
224
227
233
233
237
237
238
242
243
245
245
246
252
252
254
254
260
260
266
267
267
274
274
277
278
278
280
281
281
282
283
286
288
296
296
304
306
311
311
335
337
340
356
358
358
361
361
378
383
383
404
407
409
423
428
428
446
451
451
471
473
476
491
491
494
512
514
514
516
540
542
558
559
561
837
840
841
4
4
5
5
6
7
8
11
11
12
12
16
19
20
20
20
21
24
26
26
27
27
27
27
27
27
27
28
28
28
29
30
31
32
33
34
34
35
35
35
35
36
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
41
41
42
43
46
50
50
60
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
64
64
65
65
66
69
69
70
70
70
70
71
71
71
72
73
73
73
73
74
74
75
75
75
76
77
78
88
88
88
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
92
93
93
93
93
93
93
94
94
94
94
94
95
95
95
95
96
97
99
100
105
106
106
107
107
108
108
111
111
111
112
112
112
113
113
114
114
115
115
115
125
127
128
128
129
129
129
129
129
129
130
135
138
139
141
141
144
144
144
144
146
146
147
147
147
149
149
152
152
153
153
153
155
157
158
158
159
159
160
160
160
161
161
170
172
173
173
179
179
180
181
181
183
185
185
186
186
186
186
186
186
187
190
190
190
190
191
194
194
199
204
206
207
207
212
217
218
219
225
225
228
234
234
236
236
238
238
242
246
246
247
253
253
255
261
261
265
265
267
270
274
275
279
281
281
282
283
284
287
289
294
297
297
307
312
312
336
338
341
357
362
362
379
384
384
405
408
410
424
429
429
447
452
452
472
474
477
492
495
515
515
517
540
541
543
559
560
560
562
562
838
841
842
4
4
5
5
5
7
8
9
13
13
17
20
20
20
21
21
21
22
25
27
27
28
28
28
28
29
29
29
29
29
30
33
33
35
35
35
35
35
35
35
35
35
35
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
41
41
41
41
47
51
51
60
61
61
62
62
63
63
64
64
64
66
67
69
70
70
70
71
71
71
72
72
74
74
75
76
76
76
77
78
79
84
86
86
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
93
93
93
93
93
93
93
94
95
95
95
96
96
96
97
97
100
106
106
108
108
108
109
109
111
111
111
111
111
112
112
112
113
113
114
114
114
115
116
116
116
126
126
127
127
128
128
129
129
130
130
130
130
135
135
135
135
136
136
139
140
142
142
145
145
147
147
148
148
148
150
150
153
153
153
153
154
154
154
154
158
159
159
160
161
161
161
171
172
174
176
179
180
181
182
182
183
186
186
187
187
187
187
187
187
191
191
191
191
192
192
198
199
200
205
205
205
207
216
218
219
220
226
226
229
235
235
237
243
245
247
247
247
248
254
254
254
254
256
262
262
266
270
275
276
280
282
282
283
285
288
290
295
297
298
308
313
313
337
339
342
358
363
363
380
385
385
406
409
411
425
430
430
448
453
453
473
475
478
491
493
494
496
516
516
518
538
541
542
544
560
563
563
839
842
843
1
4
5
5
6
6
6
8
8
9
9
10
11
11
18
18
18
20
21
22
22
22
23
26
29
29
29
29
30
30
30
31
31
31
33
33
33
33
33
33
33
33
34
34
35
35
35
35
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
41
42
48
52
58
59
60
60
61
62
62
62
62
63
63
63
63
63
63
63
63
63
64
64
65
65
65
65
65
65
66
67
68
69
70
70
71
72
72
73
73
75
75
76
77
77
77
78
79
80
81
82
82
84
84
85
87
87
87
87
87
88
88
88
88
88
88
88
89
89
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
94
95
95
95
95
96
96
97
97
98
100
100
100
101
109
109
109
109
110
110
110
111
111
112
112
112
112
112
112
113
114
114
114
115
115
115
116
117
117
117
117
117
123
126
126
128
128
128
128
128
129
129
135
136
136
137
140
141
143
143
146
146
148
149
149
149
154
154
154
154
155
155
158
159
159
159
160
160
161
162
162
165
172
175
177
181
182
183
183
185
187
187
188
188
188
188
192
192
192
192
200
201
206
206
212
217
219
219
221
223
227
227
230
236
236
236
238
245
246
249
252
255
255
255
255
257
263
263
265
265
267
274
276
277
281
282
282
283
283
283
283
284
286
289
291
295
295
297
298
299
306
309
314
314
338
340
343
359
364
364
381
386
386
407
410
412
426
431
431
449
454
454
474
476
479
494
495
497
517
517
519
542
543
545
561
564
564
840
843
844
1
1
4
4
4
5
5
7
9
9
10
11
11
13
13
18
20
22
22
22
22
22
23
23
24
26
27
30
30
30
30
31
33
33
33
33
33
34
34
34
35
35
35
35
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
40
40
40
40
40
40
40
41
49
49
49
49
53
53
59
59
60
60
60
60
60
60
60
60
61
61
61
62
62
62
62
63
63
63
63
64
64
64
64
64
64
64
65
65
65
65
65
65
66
66
66
66
67
67
69
70
70
71
71
71
72
73
74
76
76
78
78
79
80
81
82
83
83
83
84
84
84
84
85
85
85
85
85
86
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
94
95
95
95
95
96
98
98
99
101
101
102
109
111
112
112
113
113
113
113
114
114
114
115
116
116
116
117
118
118
118
118
118
124
124
128
128
128
129
130
130
137
137
138
141
142
144
144
149
150
150
150
155
155
155
155
155
155
156
156
159
159
160
161
161
163
163
166
166
168
168
173
176
177
178
180
182
184
184
188
188
189
189
189
189
193
193
193
193
194
201
202
205
205
207
207
216
218
222
224
224
224
224
228
228
231
236
236
237
237
237
246
246
247
247
250
253
253
256
256
258
264
264
265
265
266
266
274
275
277
282
284
284
284
285
287
290
290
292
292
298
299
300
307
307
310
315
315
339
341
344
360
365
365
382
387
387
411
413
427
432
432
450
455
455
477
480
495
496
498
518
518
520
543
544
546
562
565
565
841
844
845
5
5
5
5
5
6
8
10
10
11
11
11
12
13
18
18
22
23
25
27
28
31
31
31
31
31
33
33
33
34
34
35
35
35
35
35
36
36
36
36
36
36
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
41
41
41
50
50
50
50
54
54
61
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
63
63
63
64
64
65
65
65
65
66
66
67
67
67
68
68
70
70
70
71
71
72
73
73
73
74
74
74
75
76
77
77
77
79
79
79
80
80
81
82
83
84
84
84
85
85
85
85
85
85
86
86
86
86
86
87
87
88
88
88
88
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
92
92
92
92
93
93
93
93
93
93
93
93
94
94
96
96
97
99
99
100
100
100
100
102
102
106
109
110
110
112
112
113
114
114
114
114
115
116
117
117
117
119
119
119
119
119
121
123
126
128
129
129
130
130
130
130
130
130
131
131
133
138
138
142
142
143
144
145
145
150
151
151
151
155
155
156
156
156
156
157
157
161
162
162
164
164
169
169
174
177
177
178
180
181
182
182
183
185
185
185
185
189
189
190
190
190
190
194
194
194
194
194
202
203
203
205
205
206
206
208
208
217
217
219
219
223
225
225
229
229
232
235
236
237
238
238
238
248
248
251
257
257
259
265
265
267
267
275
275
275
277
277
277
278
280
282
283
283
283
283
285
285
285
288
293
293
297
297
299
300
304
306
311
316
316
342
345
361
366
366
383
388
388
412
414
428
433
433
451
456
456
474
478
478
481
496
497
499
519
519
521
544
545
547
563
566
566
842
845
846
4
5
6
6
7
9
10
11
12
13
13
13
13
19
23
24
24
26
28
28
29
31
31
32
32
33
33
34
34
34
34
34
34
35
35
35
36
36
36
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
41
41
51
51
51
51
55
55
59
61
61
61
61
61
62
62
63
63
63
64
64
64
66
66
67
67
68
68
69
71
73
74
74
74
75
75
75
76
76
78
78
78
80
80
80
81
81
82
83
84
84
85
85
85
85
86
86
86
86
86
86
87
87
87
87
87
89
89
89
89
89
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
93
93
93
93
93
93
93
93
94
95
95
95
95
96
96
97
98
99
100
101
101
101
101
107
107
109
109
109
110
111
112
112
113
113
114
115
115
115
116
116
118
118
120
120
120
120
120
122
122
124
124
127
127
128
128
130
130
131
131
131
131
131
131
131
131
132
134
139
143
144
144
144
145
146
146
151
152
152
152
155
155
156
157
157
157
157
158
158
162
162
165
165
169
173
173
175
178
180
183
183
184
186
186
186
186
190
190
191
191
191
191
195
195
195
195
203
207
207
209
209
217
219
220
220
224
225
230
230
233
236
238
239
239
239
246
247
247
247
249
249
252
255
258
258
260
263
266
268
268
278
278
279
281
282
282
284
284
284
284
286
289
294
294
295
297
298
305
305
307
307
312
317
317
343
346
362
367
367
384
389
389
412
413
415
429
434
434
452
457
457
479
479
482
497
498
500
520
520
522
545
546
548
564
567
567
843
846
847
7
7
7
8
10
11
11
11
11
11
11
12
13
13
14
22
24
25
25
27
29
29
30
32
32
33
33
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
41
41
41
52
56
56
58
59
60
61
61
61
62
63
63
63
63
63
63
63
63
64
64
64
64
65
65
65
65
66
66
67
67
68
69
70
70
71
72
73
73
73
74
74
74
75
75
76
76
77
79
79
81
81
81
82
82
83
83
84
85
85
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
89
89
89
89
89
90
90
90
90
91
91
92
92
93
93
93
93
93
93
93
93
94
94
94
94
94
96
96
96
98
99
100
101
102
102
102
110
110
110
110
111
111
112
112
112
112
112
113
113
113
114
114
115
116
116
116
117
117
119
119
121
121
121
121
121
122
124
125
125
129
129
129
129
132
132
133
134
138
138
140
144
144
144
145
145
146
147
147
152
153
153
153
155
155
156
157
158
158
159
159
162
163
166
166
169
169
174
176
179
181
184
184
185
187
187
187
187
187
191
191
192
192
192
192
194
194
196
196
196
196
203
204
208
208
210
210
217
219
220
221
221
225
225
231
231
234
236
237
239
240
240
246
246
246
247
248
248
248
253
255
259
259
261
264
265
265
267
269
275
277
279
279
282
285
285
285
285
287
290
295
295
295
295
297
297
298
299
305
307
308
308
313
318
318
344
347
363
368
368
385
390
390
407
413
414
415
415
416
430
435
435
453
458
458
480
480
483
498
499
501
521
521
523
546
547
549
565
568
568
844
847
848
9
11
12
13
13
13
13
13
13
14
15
18
22
22
24
26
28
30
31
33
33
33
34
34
34
34
34
34
34
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
41
53
57
57
59
59
60
60
60
60
62
62
63
63
63
64
64
64
64
64
65
65
65
66
66
66
66
67
70
70
70
71
71
71
73
73
74
74
74
74
75
75
75
78
80
80
82
82
82
82
82
82
83
83
84
84
84
84
84
85
85
85
85
86
86
86
86
86
87
87
87
87
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
90
91
91
91
91
91
92
92
92
93
93
93
93
93
93
93
94
94
95
95
95
95
97
99
100
100
103
103
110
113
113
113
114
114
115
115
116
117
117
117
118
118
120
120
122
122
122
122
122
122
124
125
126
126
129
129
129
133
133
134
139
139
141
144
145
145
146
146
147
147
148
148
153
154
154
154
154
155
155
156
156
157
159
159
160
160
164
167
167
170
172
172
175
177
180
182
185
186
188
188
192
192
192
193
193
193
193
195
195
197
197
197
197
204
205
209
211
211
217
217
220
221
226
232
232
235
236
237
239
239
240
241
241
248
249
249
249
254
260
260
262
264
264
266
268
268
268
268
270
278
283
283
286
286
286
288
291
296
296
298
298
299
300
305
307
308
309
309
314
319
319
339
343
345
348
364
369
369
386
391
391
408
412
413
415
416
416
417
431
436
436
454
459
459
481
481
484
499
500
502
522
522
524
547
548
550
566
569
569
845
848
849
7
7
12
13
13
13
13
14
15
16
24
24
24
25
25
25
25
26
27
29
29
29
31
31
31
32
32
32
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
37
38
38
38
38
39
39
39
40
40
40
40
41
54
57
57
58
58
58
60
60
61
61
64
64
65
65
66
67
67
67
71
72
74
75
75
75
76
76
76
80
80
81
81
82
83
83
83
83
83
83
84
84
84
85
85
85
85
85
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
88
88
88
88
88
88
89
89
89
89
89
89
90
90
90
90
90
91
91
92
92
92
92
93
93
93
93
94
94
94
94
94
95
95
96
96
98
100
101
101
103
107
110
113
114
114
116
117
117
118
118
119
119
121
121
123
123
123
123
123
125
126
127
129
129
130
130
131
131
134
138
140
140
142
146
146
147
147
149
149
154
155
155
155
155
155
157
157
160
160
161
161
165
168
168
173
173
176
177
178
181
186
186
187
187
189
189
193
193
193
193
194
194
194
194
198
198
198
198
204
204
206
208
208
210
212
212
218
218
219
219
219
221
227
233
233
236
240
240
241
242
242
247
249
250
250
255
261
261
263
267
268
269
269
269
271
275
279
284
284
286
287
287
289
289
292
297
297
299
300
300
308
309
315
320
320
344
346
349
365
370
370
387
392
392
413
416
416
416
418
432
437
437
455
460
460
482
482
485
500
501
503
523
523
525
548
549
551
567
570
570
846
849
850
7
8
8
8
8
13
13
13
13
13
14
14
15
16
17
22
22
25
26
26
26
26
26
27
27
27
27
28
30
31
32
33
33
33
33
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
40
40
40
40
53
53
55
57
57
58
58
58
59
59
59
59
60
60
60
60
60
60
61
61
61
62
62
65
65
66
66
67
68
73
73
74
75
76
76
77
77
81
81
82
82
83
84
84
84
84
84
84
84
85
85
85
86
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
89
89
90
90
90
90
90
90
91
91
91
91
91
91
91
92
92
93
93
93
93
93
95
95
95
95
95
96
96
99
100
102
103
108
108
110
110
113
113
113
114
114
114
115
119
119
120
120
122
122
124
124
124
124
124
126
128
128
131
131
131
131
131
131
131
139
141
143
143
147
147
147
148
150
150
155
156
156
156
158
158
159
161
161
162
162
166
169
169
170
173
173
173
173
174
177
177
178
179
182
182
182
182
188
188
190
190
194
194
195
195
195
195
199
199
207
209
209
211
213
213
220
220
220
220
228
234
234
237
241
241
243
243
248
248
256
262
262
264
264
268
269
270
270
270
275
276
277
285
286
290
290
293
298
298
309
316
321
321
345
347
350
366
371
371
388
393
393
414
417
419
433
438
438
456
461
483
483
486
500
502
504
524
524
526
549
550
552
568
571
571
847
850
851
7
7
8
8
11
11
13
14
14
14
15
16
17
18
18
26
26
27
27
27
27
27
27
27
28
28
28
29
30
31
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
40
54
54
54
54
56
58
58
59
59
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
63
65
65
66
67
67
68
68
69
71
74
74
74
75
76
76
77
81
82
82
82
83
84
84
85
85
85
85
85
85
85
86
86
86
86
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
90
90
90
91
91
91
92
92
92
92
93
93
93
93
94
94
96
96
97
97
100
101
101
101
103
111
111
114
114
115
115
116
120
120
121
121
123
123
124
124
125
125
125
129
129
131
131
131
131
132
132
132
132
132
132
132
132
132
138
140
148
148
148
149
151
151
156
157
157
157
158
160
160
162
162
162
163
167
170
174
174
175
177
178
179
183
183
183
183
186
187
187
187
189
189
191
191
195
195
195
196
196
196
196
200
200
208
208
210
210
214
214
221
221
229
235
235
238
239
244
244
253
257
263
265
269
270
271
276
277
277
278
284
286
291
291
294
299
299
307
307
317
322
322
346
348
351
367
372
372
389
394
415
418
420
434
439
439
457
462
484
484
487
501
503
503
505
525
525
527
550
551
553
569
572
848
851
852
7
7
13
13
15
15
15
16
17
18
19
19
22
27
27
27
28
28
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
32
32
33
33
33
33
33
33
33
33
33
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
40
40
40
40
56
57
58
58
59
59
59
60
61
61
61
61
61
61
61
62
68
69
69
70
75
75
76
76
77
77
77
79
80
80
80
80
81
82
83
83
83
83
83
84
84
84
84
84
84
84
85
85
85
85
85
85
85
86
86
86
86
86
86
86
87
87
87
87
87
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
90
91
91
91
91
92
93
93
93
93
93
93
94
95
95
96
96
96
96
96
96
96
96
98
98
101
102
104
110
111
111
114
114
114
114
115
115
115
115
115
116
117
117
121
121
122
122
122
122
124
124
124
125
125
126
126
126
130
130
130
131
132
132
132
132
132
132
133
133
133
133
133
134
138
139
149
149
149
150
152
152
157
158
158
158
158
161
161
162
162
163
163
163
164
166
168
171
173
173
175
175
178
179
182
184
184
184
184
184
186
186
186
187
188
188
188
192
192
195
196
196
197
197
197
198
198
198
198
201
201
208
209
215
215
221
224
230
236
236
236
239
245
245
250
254
258
262
262
264
266
268
270
271
272
278
278
279
287
292
292
295
300
300
300
305
305
307
308
308
318
323
323
347
349
352
368
373
373
390
393
393
395
416
419
419
421
421
435
440
440
458
460
460
463
485
485
488
504
504
506
526
526
528
551
552
554
570
573
849
852
853
1
7
7
7
7
8
8
14
14
15
15
15
16
16
16
19
20
20
27
27
27
29
29
30
30
30
32
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
39
39
39
39
39
39
40
40
40
40
40
40
52
56
57
58
58
58
59
59
60
60
61
61
61
61
62
62
63
63
64
64
65
68
68
68
70
70
74
74
75
75
76
76
76
76
77
78
78
80
81
81
81
81
81
81
81
82
82
82
83
83
83
83
84
84
84
85
85
85
85
85
85
85
86
86
86
86
87
87
87
87
87
87
87
87
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
90
90
90
90
91
91
93
94
94
94
94
94
94
95
95
95
96
97
97
97
97
99
99
102
103
105
111
111
111
111
112
115
115
115
116
116
116
117
118
122
122
123
123
125
125
125
126
126
127
127
127
130
130
130
132
132
133
133
133
133
134
134
134
134
134
134
138
139
140
143
147
150
151
153
153
158
159
159
159
162
163
163
164
165
167
169
169
169
172
174
180
182
183
185
185
188
189
189
189
193
193
197
197
198
198
199
199
202
202
204
208
209
210
216
216
221
225
225
225
231
236
237
237
237
239
239
240
246
246
250
255
255
259
263
264
265
267
268
269
271
273
278
279
279
288
293
293
296
298
301
301
308
309
309
319
324
324
348
350
350
353
353
369
374
374
391
394
396
417
422
422
436
441
441
459
461
464
486
489
505
505
507
527
527
529
552
553
555
571
574
850
853
854
1
1
8
8
9
9
13
15
15
16
16
16
17
20
21
21
22
22
27
29
30
30
32
32
34
34
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
40
40
40
40
40
40
40
53
53
57
58
58
59
59
59
59
59
59
60
60
60
61
61
61
61
61
62
63
64
64
65
65
65
65
68
69
69
69
75
76
77
77
77
77
77
78
78
79
79
81
82
82
82
82
82
82
82
83
83
83
84
84
84
84
84
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
87
87
87
87
87
87
87
88
88
88
88
88
89
89
89
89
89
89
90
90
91
91
91
93
94
95
95
95
95
95
95
96
96
97
98
98
98
98
103
104
106
112
112
114
114
114
115
115
115
116
116
117
117
119
123
123
124
126
126
127
127
128
128
128
128
129
131
131
131
131
132
132
132
132
132
132
133
133
134
134
134
134
139
140
141
143
147
148
151
152
152
154
154
154
159
160
160
163
163
164
165
166
170
170
170
173
173
175
181
183
183
184
184
186
186
187
189
190
190
194
194
198
198
199
199
200
200
203
203
204
209
210
211
217
217
217
217
226
226
232
236
238
238
240
240
241
247
247
256
256
256
256
260
264
264
266
268
269
270
272
274
278
279
279
279
279
280
289
294
294
297
302
302
310
310
320
325
325
349
354
354
370
375
375
392
395
397
418
423
423
437
442
442
460
462
465
485
487
488
490
506
506
508
528
528
530
553
554
554
556
556
572
575
851
854
855
10
10
11
11
11
11
14
16
17
17
17
18
18
21
22
22
22
26
27
27
27
27
29
31
32
32
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
40
40
41
57
57
59
59
59
59
60
60
60
60
60
61
62
64
70
70
70
75
75
76
76
76
77
77
78
78
78
78
78
78
79
79
80
80
82
82
83
83
83
83
83
83
83
83
84
84
84
85
85
85
86
86
86
86
86
86
87
87
87
87
87
87
87
88
88
88
89
89
89
89
89
89
89
89
90
90
90
91
91
92
92
95
95
95
95
95
96
96
96
96
96
97
97
98
104
105
107
108
111
111
112
112
112
112
112
112
113
114
115
115
115
116
116
120
124
124
125
127
127
127
127
127
128
129
129
129
129
130
130
130
131
131
132
132
133
133
134
134
135
141
142
148
149
152
155
155
155
155
159
159
160
161
161
164
165
166
167
167
169
169
170
170
170
170
171
171
173
173
174
174
182
185
185
187
187
188
188
195
195
197
197
199
199
200
200
201
201
204
204
208
210
211
212
218
218
225
226
226
226
226
227
233
237
239
239
239
241
241
241
242
248
248
250
250
254
256
256
257
257
261
265
267
268
270
271
273
275
280
280
281
290
295
295
298
303
303
310
310
310
310
311
321
326
350
355
355
371
376
376
393
396
398
419
424
424
438
443
443
461
463
466
488
489
491
507
507
509
529
531
554
557
557
571
571
573
576
852
855
856
8
8
8
15
16
17
18
18
18
18
18
22
22
22
22
23
23
27
27
28
32
33
33
34
34
34
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
39
40
40
40
42
42
53
53
53
53
58
58
59
59
59
59
60
61
61
63
63
65
68
71
71
77
78
78
79
79
79
79
79
79
79
79
80
80
81
81
82
82
84
84
84
84
84
84
84
85
85
85
85
86
86
86
86
86
86
86
87
87
87
87
87
87
88
89
89
89
89
89
89
90
90
90
91
91
91
91
92
93
93
95
95
95
96
96
96
96
96
96
97
97
97
97
97
98
98
103
103
105
106
108
109
112
113
113
113
114
114
115
116
116
117
117
117
121
123
123
124
124
125
125
125
125
126
128
128
128
129
130
130
130
130
130
130
130
130
131
132
132
132
133
133
134
134
134
134
135
135
136
141
141
141
141
143
143
143
147
149
153
156
156
156
156
156
158
158
160
161
162
162
165
166
167
168
170
170
171
171
172
172
173
174
175
175
183
183
184
184
184
186
186
188
188
193
196
196
198
200
200
201
201
202
202
204
205
205
209
211
211
213
219
219
220
227
227
228
234
239
240
240
240
243
248
249
249
251
251
257
258
258
262
266
268
269
271
274
276
278
279
281
281
286
286
291
296
296
299
300
304
304
311
311
312
322
327
351
356
356
372
377
377
394
397
399
413
420
425
425
439
444
444
462
464
467
489
490
492
508
508
510
530
532
555
558
558
572
574
577
853
856
857
7
10
10
11
18
18
19
19
22
23
24
24
27
28
29
30
30
31
31
32
32
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
39
39
39
40
40
40
43
43
53
54
54
54
54
54
54
54
54
54
57
57
57
57
58
58
58
58
59
59
59
60
60
60
60
61
61
61
63
63
64
64
64
64
66
69
71
77
78
79
79
80
80
80
80
80
80
80
80
81
82
82
82
83
83
84
84
84
84
84
84
84
85
85
85
86
87
87
87
87
87
87
88
88
88
88
88
89
89
89
90
90
91
91
91
91
91
92
93
94
94
94
96
96
96
96
96
97
97
97
97
97
97
98
98
101
104
104
106
107
109
112
112
112
112
113
113
114
114
114
114
115
115
116
117
118
118
118
122
125
125
127
128
129
129
129
130
131
131
131
131
131
131
131
131
131
131
132
132
132
133
133
133
135
135
136
136
137
142
142
144
144
144
147
147
148
148
154
157
157
157
159
159
160
161
163
166
167
168
169
170
170
171
171
172
172
173
175
176
176
183
183
183
184
184
185
185
185
189
189
190
194
195
196
197
197
199
202
202
203
203
206
206
208
210
214
220
220
221
221
221
221
226
226
228
228
235
240
240
241
241
241
241
244
249
249
250
250
256
256
258
263
267
269
269
269
271
271
271
272
275
277
280
284
287
287
292
297
297
300
301
301
305
305
312
312
323
325
325
328
352
357
357
373
378
378
395
398
400
414
416
416
421
426
426
440
445
445
463
465
468
490
491
493
509
509
511
530
531
533
556
559
559
573
575
578
854
857
858
8
8
10
11
18
19
19
23
24
25
25
27
27
29
29
29
29
31
31
32
32
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
39
39
39
40
40
40
41
41
44
44
54
54
55
55
58
58
58
58
58
59
59
59
59
59
61
61
61
64
64
64
65
65
65
65
65
67
71
71
75
76
76
76
77
78
78
78
78
79
79
80
80
81
81
81
81
81
81
81
81
82
82
82
82
82
83
83
83
84
84
84
85
85
85
85
85
86
86
86
86
86
86
86
87
87
88
88
88
89
89
89
91
91
91
91
92
92
92
93
94
95
95
95
95
95
95
95
96
96
97
97
97
98
98
99
99
99
99
102
104
105
107
108
109
109
110
112
112
113
113
113
113
114
115
116
117
117
117
117
118
118
118
119
123
125
126
126
126
128
129
129
130
130
131
131
131
131
132
132
132
132
132
132
133
134
134
134
135
135
135
135
136
136
137
137
143
143
148
148
155
158
158
158
159
161
161
162
163
163
164
167
168
169
170
171
171
172
172
174
176
177
185
185
186
186
186
190
190
190
195
195
197
198
198
200
203
203
204
204
207
207
209
209
211
211
215
221
221
222
222
227
236
242
242
242
242
245
251
251
257
264
268
268
270
272
272
273
276
278
278
281
285
287
288
293
298
298
298
300
301
306
306
308
324
326
329
353
358
358
374
379
379
396
399
401
414
417
417
422
427
427
441
446
446
464
466
469
491
492
494
510
510
512
528
531
532
534
557
560
560
574
576
579
855
858
859
10
10
10
11
15
18
19
20
20
20
24
24
25
26
26
26
27
27
29
29
30
30
30
30
30
30
30
31
31
31
32
32
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
40
40
40
40
41
42
42
45
45
52
52
56
56
58
58
59
59
60
60
64
65
66
66
68
69
69
72
75
75
76
76
77
77
77
77
77
78
78
78
78
78
78
78
79
79
79
79
80
80
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
84
84
84
84
84
85
85
86
86
86
86
86
86
87
87
87
87
88
89
89
89
90
92
92
93
93
93
94
94
94
95
95
95
95
95
96
96
96
98
98
99
99
99
99
100
100
100
100
102
102
104
105
106
109
110
111
112
114
114
116
116
117
118
118
118
118
118
119
119
119
120
122
123
124
124
127
127
127
129
129
129
130
131
131
133
133
133
133
133
133
134
135
135
135
136
136
136
136
137
138
138
149
149
149
149
156
159
159
159
159
163
164
164
165
168
169
170
170
171
171
172
172
173
175
176
176
177
178
178
184
186
186
187
187
191
191
196
196
196
196
198
199
199
201
204
204
205
205
208
208
209
211
212
212
216
222
222
222
226
228
237
240
241
241
241
243
243
243
243
246
251
252
252
256
256
258
265
269
269
269
271
271
273
273
274
277
278
279
279
279
285
285
287
288
289
294
299
299
299
299
301
301
302
307
307
310
325
327
330
354
359
359
375
380
380
397
400
402
417
417
423
428
428
442
447
447
465
467
470
492
493
495
511
513
532
533
535
558
561
561
575
577
580
580
856
859
860
1
8
8
8
8
10
18
18
20
21
21
25
25
26
26
26
26
27
27
27
27
27
27
27
28
29
29
29
29
29
30
30
30
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
40
40
40
40
42
43
46
46
51
53
53
53
53
53
56
56
57
57
57
57
59
59
60
67
67
69
70
72
73
74
74
77
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
81
81
82
82
82
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
84
85
85
85
85
85
85
85
86
86
87
87
87
87
87
87
88
88
88
88
91
93
93
93
94
94
94
95
95
95
95
96
96
96
97
97
97
99
99
101
101
101
101
105
106
107
107
110
110
110
111
112
112
113
115
116
118
119
119
119
119
120
120
124
127
127
127
127
128
128
128
130
130
130
131
131
132
132
134
134
134
134
134
134
135
136
137
137
137
137
139
141
149
149
150
150
157
160
160
161
162
164
164
166
169
170
170
170
171
171
172
174
175
177
177
178
179
179
185
185
187
190
190
192
192
194
196
196
197
197
199
200
200
200
200
202
204
204
205
205
205
206
206
209
209
209
211
212
213
213
217
222
223
223
226
226
227
238
240
240
240
241
242
242
242
244
244
247
251
253
253
256
256
257
257
270
272
272
275
278
279
279
280
280
288
289
290
295
299
300
300
301
302
302
303
308
308
310
310
310
310
311
326
328
331
355
360
360
376
381
381
401
403
424
429
429
443
448
448
468
471
493
494
496
510
512
512
514
533
534
536
559
562
562
576
577
581
581
857
860
861
2
2
10
10
10
10
10
20
20
20
22
22
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
30
30
30
32
32
32
32
33
33
33
33
33
33
33
33
33
34
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
39
39
40
40
43
44
47
47
52
52
54
54
57
57
58
58
58
58
58
58
60
68
68
70
70
70
71
72
73
74
75
75
76
76
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
82
82
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
86
86
86
87
87
87
87
88
88
89
89
92
93
94
94
94
94
95
95
95
95
95
95
95
95
95
95
96
96
97
97
97
98
98
98
98
99
99
104
104
106
107
110
111
111
111
112
113
113
114
115
115
116
116
118
119
120
120
125
127
128
128
129
129
129
130
130
130
131
131
132
133
133
134
134
134
135
135
135
135
135
135
135
135
135
135
136
141
141
142
149
149
150
151
151
158
161
161
162
163
164
165
167
167
167
168
170
170
171
171
172
172
173
175
178
178
180
180
188
188
191
191
193
197
198
198
200
203
205
205
206
206
206
207
207
209
209
210
210
212
213
218
224
224
225
226
227
228
239
242
243
243
243
245
245
248
254
254
258
258
269
271
273
273
276
279
279
280
281
281
287
287
289
290
296
299
301
301
301
302
303
303
304
309
309
310
311
311
312
327
329
332
356
361
361
377
382
382
402
404
425
430
430
444
449
449
465
469
469
472
494
495
497
513
513
515
534
535
537
560
563
563
577
582
582
858
861
862
3
3
10
10
20
20
20
21
23
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
31
32
32
33
33
33
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
38
40
40
40
40
44
44
45
48
48
53
53
53
53
55
56
56
57
59
59
59
59
59
60
64
65
67
69
69
69
71
72
73
74
75
75
76
76
77
77
79
79
80
80
80
80
81
81
81
81
81
81
81
81
81
81
82
82
82
82
83
83
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
86
87
87
87
87
87
87
87
87
87
88
88
89
93
93
94
94
95
95
95
96
96
96
96
96
96
96
97
97
98
98
98
98
99
99
99
99
99
99
99
99
99
100
100
102
104
105
112
112
112
113
113
114
114
115
116
116
117
117
118
119
120
126
129
129
130
130
130
130
131
131
131
131
132
132
133
134
134
134
135
135
135
135
135
136
136
136
136
136
136
136
136
136
136
136
136
136
136
137
141
141
142
143
149
149
150
151
156
159
162
162
166
168
168
168
169
171
171
172
172
172
173
173
173
174
174
176
176
181
181
187
189
189
189
194
196
196
198
201
204
206
206
207
207
207
208
208
208
208
210
210
211
211
211
211
211
211
211
213
219
225
225
226
228
229
240
241
243
244
244
246
246
249
251
251
254
255
255
259
259
269
270
271
272
274
277
280
280
281
282
285
287
288
297
302
302
302
303
305
310
310
312
312
313
328
330
333
357
362
362
378
383
383
403
405
426
431
431
445
450
450
470
470
473
494
496
498
514
514
516
535
536
538
561
564
564
578
583
583
859
862
863
4
4
4
4
10
10
10
10
11
18
18
18
20
21
22
22
24
27
27
27
28
28
29
29
29
29
30
30
30
30
30
30
30
31
32
32
32
33
33
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
40
45
45
46
49
53
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
56
57
57
58
58
58
59
60
60
61
61
62
64
65
68
70
70
72
72
74
75
76
77
77
77
77
78
78
79
79
80
80
80
80
81
81
81
82
82
82
82
82
82
82
82
82
83
83
83
83
83
84
84
84
84
85
85
85
85
85
85
86
87
87
87
88
88
88
89
89
89
94
94
94
95
95
96
97
97
97
97
98
98
98
98
98
98
99
99
99
100
100
100
100
100
100
100
100
100
100
101
101
102
102
104
104
105
106
112
113
113
113
113
114
115
117
117
117
117
117
118
118
118
118
119
120
125
127
130
130
131
131
131
131
133
133
134
135
135
135
135
135
135
136
136
136
136
136
137
137
137
137
137
137
137
137
137
137
141
142
143
144
144
148
149
149
150
150
151
157
157
159
159
159
160
163
163
167
168
169
169
169
170
171
173
174
174
175
175
177
182
182
187
190
195
197
199
202
203
205
207
207
208
208
208
212
212
212
212
212
212
212
212
220
221
226
226
226
227
229
241
242
242
247
247
249
250
252
252
255
256
256
260
265
270
271
271
272
273
275
278
280
280
281
281
281
281
281
282
283
283
285
285
287
287
288
289
298
303
303
303
306
308
311
311
313
313
329
331
334
358
363
363
379
384
384
397
404
406
427
432
432
446
451
451
471
471
474
495
497
497
499
515
515
517
536
537
539
562
565
565
579
584
584
860
863
864
1
5
5
5
5
8
8
10
11
12
18
20
22
22
22
22
22
25
27
29
29
29
30
30
30
30
30
30
30
31
31
31
31
32
32
32
32
34
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
38
38
38
42
42
46
46
46
46
46
47
50
50
53
54
54
55
55
56
56
56
56
56
56
56
56
57
57
58
59
59
59
59
61
62
62
63
69
70
71
71
72
73
73
77
78
79
79
79
80
80
80
80
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
84
84
84
85
85
85
85
85
85
85
86
86
86
87
87
88
89
89
89
89
89
89
94
94
94
95
96
97
98
98
98
99
99
99
99
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
105
105
106
107
110
114
114
116
117
118
118
118
118
118
118
118
119
119
119
119
119
119
120
120
126
128
131
132
132
134
134
134
134
135
136
136
136
136
136
137
137
137
138
138
138
138
138
138
138
138
138
138
138
138
139
143
144
149
149
151
151
160
160
160
161
164
165
168
168
169
170
170
171
171
172
173
173
174
175
175
176
176
176
176
178
183
183
191
191
196
196
196
198
203
204
206
208
208
209
209
209
213
213
213
213
213
213
221
222
222
222
222
226
227
227
227
229
229
230
242
248
248
250
250
251
255
255
257
257
259
259
259
261
266
271
272
272
273
274
276
279
282
282
283
284
284
288
288
289
290
299
301
301
304
304
307
309
312
312
314
330
332
335
359
364
364
380
385
385
398
402
405
407
428
433
433
447
452
452
472
472
475
498
498
500
516
516
518
537
538
540
563
566
580
585
585
861
864
865
1
1
1
6
6
10
12
13
18
18
22
23
26
29
29
30
30
31
31
31
31
31
31
32
32
32
32
32
32
32
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
35
35
36
36
37
37
37
37
38
39
39
43
46
47
47
47
47
48
51
51
52
52
53
54
54
54
56
56
56
56
57
58
58
59
59
59
60
60
70
70
71
72
72
72
72
73
73
74
74
78
78
78
78
79
79
79
79
79
80
80
80
80
81
81
81
81
81
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
84
84
84
84
84
85
85
85
85
86
86
87
88
89
89
89
89
89
90
90
90
90
94
94
95
95
96
97
98
98
98
98
98
98
98
99
99
99
100
100
100
100
100
100
101
101
101
101
101
101
102
102
102
102
102
102
106
107
107
110
111
115
115
115
116
116
117
118
119
119
119
119
119
120
120
120
120
120
121
121
126
129
130
130
130
130
132
133
133
134
135
135
135
135
135
135
136
136
136
137
137
137
137
137
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
140
140
144
144
152
152
160
162
165
166
169
169
171
171
171
171
172
174
174
175
176
176
177
177
177
177
179
184
184
187
187
191
192
196
196
197
197
197
204
205
207
207
209
209
210
210
210
210
213
214
214
214
214
222
223
223
228
228
230
230
231
243
244
249
249
252
258
259
260
260
262
272
272
273
273
275
277
280
280
281
281
281
283
283
285
285
289
290
290
299
299
300
301
302
302
305
305
308
309
313
313
313
313
315
333
336
360
365
365
381
386
386
403
406
408
429
434
434
448
453
453
473
473
476
499
499
501
517
517
519
538
539
541
564
567
581
586
586
862
865
866
4
4
7
7
12
12
12
13
23
24
27
29
29
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
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
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
37
37
38
38
40
40
44
47
47
48
48
48
48
49
51
52
52
53
53
53
53
53
53
53
53
54
54
54
54
54
55
55
56
56
56
56
56
56
56
57
57
57
61
62
72
72
73
73
73
73
74
74
75
75
75
75
76
76
77
78
78
79
79
80
80
80
81
81
81
81
81
81
82
82
82
82
82
82
82
82
83
83
83
83
83
84
84
84
84
84
84
85
85
85
85
87
87
87
88
89
89
89
89
90
90
91
91
91
91
94
94
97
98
99
99
99
99
99
99
99
100
100
100
101
101
101
101
102
102
102
102
103
103
103
103
103
103
110
111
115
115
115
116
116
116
118
118
119
119
119
119
119
120
120
120
120
120
121
121
122
122
126
130
130
131
131
133
134
134
134
134
135
136
136
136
136
136
136
137
138
138
138
138
138
139
139
140
140
140
140
140
140
140
140
140
140
145
145
152
160
161
163
166
167
172
172
172
172
173
175
175
176
177
177
178
178
178
178
178
180
185
185
185
188
188
191
192
193
198
198
198
205
206
210
210
211
211
211
211
213
215
215
215
215
223
223
229
229
231
231
244
244
250
250
252
253
255
257
257
259
260
261
261
272
273
273
273
273
273
274
276
278
280
280
281
282
282
282
286
286
301
302
303
303
306
306
309
309
314
314
314
314
316
334
337
361
366
366
382
387
387
404
407
409
430
435
435
449
454
454
474
474
477
500
500
502
518
518
520
539
540
542
565
568
582
587
587
863
866
867
1
5
5
5
5
8
8
8
13
13
13
14
22
24
25
25
25
25
25
27
27
28
28
29
29
29
29
29
31
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
37
38
38
38
40
40
48
49
50
52
52
53
53
53
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
56
57
57
57
58
58
62
63
72
72
73
74
74
74
74
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
78
79
79
79
80
80
80
81
81
81
81
81
81
81
82
82
82
82
82
83
83
83
83
83
84
84
84
84
85
85
85
85
85
85
85
86
89
90
90
91
92
92
92
92
98
98
99
100
100
100
100
100
100
100
100
100
101
101
101
101
101
101
102
102
103
103
103
103
104
104
115
116
116
116
116
117
117
117
117
118
118
118
119
119
119
119
119
120
120
120
120
121
121
121
121
121
126
130
131
132
132
135
135
135
135
136
136
136
136
136
137
137
137
137
137
138
139
139
139
139
139
140
140
141
141
141
141
141
146
146
152
162
164
164
164
167
168
173
173
173
173
174
176
177
178
178
179
179
181
186
186
186
186
191
191
193
194
194
199
199
199
206
207
211
211
212
212
212
212
216
216
216
216
223
224
229
230
230
245
251
251
252
254
258
260
261
274
274
274
275
277
279
282
283
283
283
287
287
302
304
304
307
307
309
310
313
315
315
315
315
335
338
362
367
367
383
388
388
405
408
410
431
436
436
450
455
455
475
475
478
501
501
503
519
519
521
540
541
543
566
569
583
588
588
864
866
868
8
8
8
8
9
9
9
9
14
15
15
18
22
22
22
24
24
25
27
28
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
38
38
38
38
39
40
40
44
49
49
50
51
54
54
54
54
55
55
55
55
56
56
56
56
56
56
56
56
59
73
73
74
74
74
74
75
75
75
76
76
76
76
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
80
80
80
80
80
81
81
81
81
81
82
82
82
82
82
82
82
82
83
83
83
83
83
83
84
84
84
85
85
85
86
89
89
90
90
91
91
92
93
98
99
99
99
100
100
100
100
100
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
103
103
104
104
105
105
107
117
117
117
118
118
118
118
120
120
121
121
121
121
121
121
121
121
122
122
122
122
131
132
133
135
136
136
137
137
137
137
137
137
137
138
138
138
138
138
138
138
138
138
138
139
140
140
140
140
142
142
142
142
142
144
163
163
165
165
165
168
168
169
174
174
174
175
177
177
178
178
179
179
180
180
182
187
187
189
192
192
194
195
195
200
200
207
208
212
212
213
213
213
213
217
217
217
217
225
226
231
231
244
244
246
252
252
255
259
259
261
262
272
273
275
275
275
278
278
280
280
281
283
284
284
288
288
290
303
304
304
304
304
305
308
308
311
314
316
316
316
330
334
336
339
363
368
368
384
389
389
406
409
409
411
411
414
432
437
437
451
456
456
476
476
479
502
502
504
520
520
522
541
542
544
565
565
567
570
584
589
589
865
866
867
869
4
5
10
10
10
10
12
13
15
15
15
15
24
24
24
24
25
25
25
25
25
25
26
28
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
35
35
36
36
36
36
36
37
38
38
38
40
40
50
51
51
52
52
52
53
54
54
54
55
55
55
55
55
55
56
56
56
56
56
58
59
59
72
72
74
74
75
75
75
75
76
76
76
77
77
77
77
77
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
81
81
81
82
82
82
82
82
83
83
83
83
83
83
83
83
83
83
84
84
84
85
85
87
90
91
92
92
92
94
94
99
100
100
100
101
101
101
101
101
101
101
102
102
102
103
103
103
103
103
103
105
105
105
106
106
116
117
117
117
119
119
119
119
119
120
121
121
122
122
122
122
122
123
123
123
130
132
133
135
135
137
137
137
137
138
139
139
139
139
139
139
139
139
139
139
139
139
140
140
141
143
143
143
143
143
144
145
162
164
165
165
165
165
166
166
168
169
169
170
173
173
175
175
175
176
179
179
180
180
181
181
183
188
188
188
190
190
195
195
195
196
196
199
199
201
201
201
208
209
212
213
213
214
214
214
214
214
214
218
218
218
218
226
226
227
229
229
232
232
242
245
245
247
253
253
255
256
259
260
260
262
274
276
281
281
282
284
284
288
289
289
304
305
305
306
309
309
312
313
315
317
317
335
337
340
364
369
369
385
390
390
407
412
412
415
433
438
438
452
457
457
477
480
503
503
505
521
521
523
542
543
545
566
568
571
585
590
590
866
868
870
5
6
8
11
11
15
22
22
24
25
25
25
26
26
26
27
27
29
29
29
29
30
30
31
31
31
31
31
31
31
32
32
33
33
33
33
33
34
34
34
34
35
35
35
35
36
36
36
37
37
37
37
37
37
37
37
37
37
40
49
51
51
52
52
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
57
57
57
58
59
59
60
73
73
73
74
74
75
75
75
75
75
75
76
76
76
76
77
77
77
77
77
78
78
78
78
78
78
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
81
81
82
82
83
83
83
83
83
83
83
84
84
84
84
84
85
85
85
87
89
91
92
92
95
95
100
100
101
101
101
102
102
103
104
104
104
104
104
104
106
107
116
116
116
117
118
118
118
120
120
120
120
121
121
122
123
123
126
130
131
134
135
135
137
137
138
138
138
138
139
140
140
140
140
140
140
141
142
142
144
144
144
144
144
144
145
146
149
165
166
166
167
167
168
170
171
174
174
176
176
176
177
177
178
178
178
180
180
181
181
182
182
184
188
189
196
200
200
202
202
202
209
210
213
213
213
213
214
214
215
215
215
215
219
219
219
219
226
227
230
230
233
233
243
243
248
254
255
257
260
261
261
263
272
275
277
282
282
284
285
290
290
305
306
306
309
310
310
313
313
314
318
318
336
338
341
365
370
370
386
391
391
408
413
413
417
417
434
439
439
453
458
476
478
479
481
504
504
506
522
522
524
543
544
544
546
546
567
569
572
586
591
867
869
871
5
5
8
12
12
15
16
24
25
25
26
27
27
27
27
27
28
28
28
29
29
30
30
31
31
31
32
32
32
32
33
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
36
36
36
37
37
37
37
38
38
38
38
51
52
52
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
57
57
57
57
58
58
59
60
73
73
74
74
74
74
75
75
75
76
76
76
76
76
76
77
77
77
77
77
77
78
78
79
79
79
79
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
83
83
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
86
89
89
90
93
96
96
99
99
100
100
101
101
102
103
104
104
104
105
105
107
108
118
119
119
119
119
121
121
123
126
130
131
132
135
136
136
137
137
137
137
137
138
139
139
139
139
140
140
140
140
141
141
142
144
145
145
145
145
145
145
146
150
150
152
152
157
165
165
166
167
167
168
169
171
172
173
175
175
175
177
177
177
177
177
177
178
178
179
179
179
182
182
183
183
185
190
192
197
199
201
201
203
203
210
211
214
214
215
215
216
216
216
216
220
220
220
220
227
228
229
231
231
231
234
234
249
250
253
253
255
258
259
261
262
262
264
272
273
273
278
282
283
283
286
291
291
302
306
309
311
311
313
314
314
315
319
319
337
339
342
366
371
371
387
392
409
414
414
415
418
418
435
440
440
454
459
479
480
482
505
507
523
523
525
544
547
547
568
570
573
587
592
868
870
872
5
6
7
8
13
13
15
16
17
22
24
25
25
25
25
26
26
27
27
28
28
30
30
30
30
30
30
30
30
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
37
37
37
37
37
37
37
37
37
37
38
38
38
39
39
54
54
54
54
54
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
58
73
74
74
75
75
75
75
75
75
76
76
76
76
76
76
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
79
79
79
79
80
80
80
80
80
80
81
81
81
81
81
81
81
82
82
82
83
83
83
85
85
85
86
86
86
87
89
90
91
94
97
97
100
100
101
101
101
102
102
104
104
104
104
105
106
106
107
108
109
117
119
120
120
121
122
122
122
122
122
123
123
123
124
131
132
133
136
137
138
138
138
138
138
139
139
139
140
140
140
140
140
140
141
141
142
142
143
144
144
145
145
146
146
146
146
146
146
153
153
158
160
160
166
167
169
172
172
173
173
174
178
178
178
179
179
180
180
180
183
183
184
184
186
188
188
191
192
198
199
204
204
211
212
214
216
216
217
217
217
217
221
221
221
221
222
229
229
230
235
235
245
250
251
254
256
259
260
262
263
265
273
273
274
279
284
284
287
290
292
292
304
307
312
312
314
315
315
316
320
320
338
340
343
367
372
372
388
391
391
393
410
415
415
418
418
419
436
441
441
455
457
457
460
480
481
483
504
506
506
508
524
524
526
545
548
548
569
571
574
574
588
593
869
871
873
4
5
5
8
14
14
15
15
17
24
25
25
25
25
26
26
27
27
27
27
27
27
28
29
29
29
29
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
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
36
37
37
37
37
37
37
37
38
39
40
40
52
52
53
54
54
55
55
55
55
55
56
56
56
56
56
57
57
59
73
74
74
74
74
74
74
75
76
76
76
76
76
76
76
77
77
77
77
77
77
78
78
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
80
80
80
81
81
81
81
81
82
82
82
82
84
85
85
85
86
86
87
87
87
91
92
95
98
98
102
102
102
102
103
103
104
104
104
104
105
105
106
107
107
108
108
109
110
118
118
120
121
121
121
121
121
122
122
123
123
123
123
123
124
124
125
133
134
135
137
139
139
139
140
140
140
140
140
140
140
140
140
141
141
143
143
144
145
145
147
147
147
147
147
147
153
161
161
165
167
168
169
173
173
174
174
174
175
175
178
179
179
179
180
180
181
181
184
184
185
185
186
187
189
189
192
195
199
199
200
205
205
212
213
214
217
217
218
218
218
218
222
222
222
222
223
223
223
230
230
230
231
231
236
236
245
251
252
252
255
257
260
260
260
262
262
262
263
264
266
273
274
275
280
285
285
288
291
291
293
293
304
304
304
304
305
308
313
313
316
316
317
321
321
339
341
341
344
344
368
373
373
389
392
394
411
416
416
418
418
419
420
437
442
442
456
458
461
481
482
484
507
507
509
525
525
527
546
549
549
570
571
575
575
589
594
870
872
874
5
6
6
9
15
15
17
17
17
22
22
25
26
26
27
27
28
29
29
29
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
35
35
35
35
36
36
37
37
37
37
37
38
38
40
41
41
51
53
53
53
53
53
53
53
53
54
54
54
54
54
55
55
55
55
56
56
56
56
56
56
56
56
56
56
57
57
57
58
60
72
74
74
74
74
74
75
75
75
75
75
75
75
76
76
77
77
77
77
77
77
77
77
77
78
78
78
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
82
82
82
83
83
83
83
84
84
85
85
85
85
86
88
92
96
99
99
103
105
105
105
105
105
105
105
106
106
106
106
107
107
108
108
110
111
121
121
121
122
122
122
122
123
124
124
126
133
133
133
133
135
136
136
138
139
140
140
141
141
141
141
142
142
144
144
145
146
146
146
146
148
148
148
148
148
148
153
158
161
161
161
161
162
165
165
166
169
174
174
175
176
176
179
179
180
180
180
181
185
185
186
186
187
187
188
193
195
200
200
201
206
206
213
214
218
218
219
219
219
219
223
223
223
223
224
224
231
232
232
237
237
252
253
253
253
253
256
258
263
263
264
265
267
274
275
281
286
286
288
289
290
294
294
304
305
305
306
309
314
314
316
316
316
316
317
318
322
322
340
345
345
369
374
374
390
393
395
412
417
417
419
420
438
443
443
457
459
462
482
483
485
508
508
510
526
526
528
547
550
550
571
576
576
590
595
871
873
875
5
5
5
10
16
16
17
17
17
18
22
26
26
27
27
27
27
27
28
29
29
29
29
29
29
29
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
35
36
36
36
37
37
37
37
37
37
38
38
40
41
42
42
49
52
52
53
53
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
56
57
57
57
57
57
58
58
58
59
59
60
61
73
73
73
73
73
74
74
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
78
78
78
78
78
78
78
79
79
79
80
80
81
81
81
81
81
81
81
81
81
82
82
82
83
83
84
84
84
84
85
86
87
88
88
92
92
92
93
97
100
100
100
103
105
105
106
106
106
107
107
107
108
108
108
109
109
111
111
112
112
120
120
120
123
123
124
125
127
134
134
136
138
139
139
141
141
141
141
143
143
145
145
146
146
146
147
147
149
149
149
149
149
149
162
162
162
163
165
166
167
170
174
175
175
175
175
175
176
177
177
181
181
181
182
186
186
187
187
187
188
189
194
199
201
201
202
207
207
214
215
219
219
220
220
220
220
223
224
224
224
224
224
224
224
224
225
230
231
231
231
232
233
233
238
238
245
245
251
253
253
253
254
254
257
259
260
262
264
264
266
268
274
274
275
275
275
276
282
287
287
289
289
290
291
291
295
295
306
306
307
310
315
315
317
317
318
319
323
341
346
346
370
375
375
391
394
396
413
418
418
418
418
420
439
444
444
458
460
463
483
484
486
509
509
511
527
529
548
551
551
572
577
577
589
590
591
596
872
874
876
1
1
5
5
6
6
6
11
15
15
15
17
17
17
18
19
19
22
22
22
25
25
25
25
26
26
27
27
27
27
27
27
27
28
28
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
35
35
36
36
37
37
38
38
38
38
39
41
42
43
50
53
53
54
54
54
54
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
58
58
59
59
60
60
60
62
70
70
71
71
72
73
73
74
74
74
74
74
75
75
75
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
79
79
79
79
79
79
80
81
81
81
81
82
82
83
83
83
84
84
84
84
84
85
85
85
85
85
85
86
87
88
93
93
94
98
101
101
101
101
101
102
102
103
103
105
105
106
107
108
108
108
108
108
109
109
109
110
112
112
113
113
118
119
120
121
121
123
123
123
124
124
124
124
124
126
128
135
135
139
139
139
139
140
140
140
141
141
142
142
144
144
146
146
146
146
147
147
148
148
150
150
150
150
150
150
161
161
163
163
163
167
168
171
174
174
174
175
176
176
176
176
176
177
181
182
182
182
183
187
187
188
188
189
189
190
190
195
195
200
202
202
202
208
208
213
215
216
220
220
221
221
221
221
225
225
225
225
225
225
226
230
230
230
231
232
232
232
233
239
239
243
246
246
254
254
255
255
258
260
263
267
269
276
276
277
283
284
284
288
288
289
291
291
292
292
296
296
302
307
307
311
316
316
318
318
319
324
342
347
347
371
376
376
392
395
397
414
419
419
419
440
445
445
459
461
464
484
485
487
510
510
512
528
530
549
552
552
573
578
578
591
592
597
873
875
877
1
1
5
5
5
5
5
6
12
15
17
18
18
18
18
19
19
19
19
19
27
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
34
35
35
35
35
35
35
35
35
36
36
38
38
40
40
40
40
42
43
44
44
50
51
52
52
53
54
54
54
54
55
55
55
56
56
56
56
56
56
57
57
57
57
57
58
58
58
60
61
61
63
66
66
69
70
70
71
71
72
72
73
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
79
79
80
81
81
81
81
81
82
83
83
83
83
84
85
85
85
86
86
86
86
87
88
88
89
92
92
92
94
94
99
99
102
102
102
103
103
103
103
104
104
105
105
105
105
106
108
108
109
109
109
109
110
110
111
113
113
114
114
119
119
120
121
122
123
124
124
124
125
125
125
126
127
129
136
140
140
140
141
141
141
141
141
141
141
141
141
145
145
146
146
147
147
147
148
148
150
151
151
151
151
151
151
162
163
164
168
172
176
177
177
177
177
177
178
181
183
183
183
184
188
188
189
189
189
190
191
191
196
199
201
203
209
209
214
214
214
214
216
217
221
221
222
222
222
222
224
224
226
226
226
226
226
226
232
233
233
233
234
240
240
244
244
253
253
255
255
259
260
260
261
264
268
270
274
275
275
275
277
277
282
284
285
285
289
289
289
291
292
292
293
293
297
297
303
308
312
317
317
320
322
322
325
343
348
348
372
377
377
393
396
398
415
418
420
420
420
441
446
446
460
462
465
485
486
488
511
511
513
528
529
531
550
553
553
574
579
579
592
593
598
874
876
878
5
5
6
6
7
13
15
15
19
19
19
19
19
20
26
26
27
28
28
28
29
29
29
29
30
30
30
31
31
31
31
32
32
32
32
33
33
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
37
37
38
39
41
41
41
41
42
44
45
45
51
52
53
53
53
53
54
54
54
54
54
55
55
55
55
56
56
56
56
56
56
56
56
56
57
57
58
58
58
59
59
61
62
62
64
67
67
70
70
70
71
71
71
72
72
73
73
74
74
75
75
75
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
77
78
78
78
78
78
79
79
79
79
79
79
80
80
80
80
81
81
82
83
83
83
84
84
85
86
86
87
87
87
87
87
87
88
88
88
88
88
89
90
93
93
93
100
100
102
103
103
104
106
106
106
106
109
109
110
110
110
110
112
114
114
115
115
120
122
122
123
123
124
124
124
126
127
128
130
131
133
136
140
140
141
142
142
142
142
142
145
146
146
146
146
147
147
148
148
148
149
151
151
152
152
152
152
152
152
153
153
161
163
163
164
168
168
169
173
175
177
178
178
178
178
179
184
184
184
185
189
189
190
190
191
192
192
192
192
197
197
200
200
202
202
204
210
210
210
210
215
215
217
218
222
222
223
223
223
223
225
227
227
227
227
231
233
234
234
235
241
241
254
256
260
260
261
261
262
262
266
269
271
274
274
276
276
276
283
285
285
286
290
290
292
293
293
298
298
303
307
307
309
313
314
316
318
318
321
323
326
344
349
349
373
378
378
394
397
399
416
418
419
421
421
442
447
447
461
463
466
485
487
489
512
512
514
526
529
530
532
551
554
554
575
580
580
593
594
594
599
599
877
879
5
7
8
14
20
20
20
20
20
21
25
25
27
27
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
32
32
32
33
33
33
34
34
35
35
35
35
35
35
37
37
38
40
42
42
42
42
43
43
45
46
46
52
52
52
54
55
55
55
55
57
57
57
58
58
58
59
59
60
62
63
63
65
68
68
71
71
71
72
72
72
73
73
73
73
73
73
74
74
74
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
78
78
78
78
78
78
78
79
79
79
79
79
79
79
80
80
80
81
81
81
81
83
83
83
84
85
86
86
87
87
87
88
88
88
88
88
89
89
90
91
94
94
94
100
100
101
101
102
103
104
104
104
106
106
110
110
111
111
111
113
115
115
116
116
120
121
121
121
125
125
127
128
129
131
133
133
134
139
140
141
142
142
142
143
146
146
147
147
148
148
149
149
150
153
153
153
153
153
153
154
154
161
161
162
169
169
170
174
176
176
179
179
180
181
181
185
185
185
186
190
190
191
191
192
193
193
193
193
198
198
200
202
203
203
205
211
211
215
218
219
223
223
224
224
224
224
224
226
228
228
228
228
232
232
236
242
242
246
253
253
255
261
261
262
262
263
263
267
270
272
277
277
277
283
283
285
286
286
287
291
291
293
294
299
299
303
308
308
310
314
316
316
317
319
319
322
324
327
345
350
350
374
379
379
395
398
400
417
420
422
422
443
448
448
462
464
467
486
488
488
490
513
513
515
530
531
533
552
555
555
576
581
581
594
600
600
878
880
6
8
9
15
19
21
21
21
22
22
22
22
22
27
27
27
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
34
34
34
34
35
35
35
35
35
35
37
37
43
44
46
47
47
50
51
51
51
51
51
53
53
53
53
55
55
55
56
56
56
57
58
58
59
60
61
63
64
64
66
66
66
69
69
72
72
72
72
72
72
72
72
73
73
73
73
73
74
74
74
74
74
74
76
76
76
77
77
77
77
77
77
77
77
77
77
77
78
79
79
79
79
79
79
79
79
79
80
80
80
80
80
81
81
81
81
83
83
83
84
84
86
87
87
87
88
88
88
89
89
89
89
90
90
92
95
95
100
100
102
102
102
103
104
104
104
105
105
106
106
106
106
106
106
108
108
111
112
112
112
114
116
116
117
117
119
120
121
122
122
124
124
125
126
126
129
130
132
133
133
134
135
136
136
140
140
140
140
140
142
142
142
142
142
142
142
144
148
148
149
149
150
150
151
154
154
154
154
154
154
158
161
162
163
170
170
175
179
180
180
181
182
182
186
186
186
187
191
191
191
192
192
193
193
193
194
194
199
199
200
202
203
204
204
206
212
212
215
219
220
224
224
224
224
225
225
225
225
225
229
229
229
229
237
243
243
246
253
253
254
254
262
263
263
264
264
268
271
273
275
278
278
286
287
287
288
291
291
292
292
295
300
300
303
307
309
309
315
316
316
317
318
320
323
325
328
346
351
351
375
380
380
399
401
418
421
423
423
444
449
449
465
468
489
489
491
514
514
516
531
532
534
553
556
577
582
582
595
601
601
879
881
1
5
5
5
15
16
19
19
21
22
22
23
23
23
23
27
27
27
29
29
29
29
29
29
29
29
29
29
29
29
30
30
31
31
31
31
31
31
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
36
37
37
40
44
45
45
47
48
48
49
51
52
52
52
52
52
53
53
53
53
53
53
54
54
54
54
54
54
54
54
55
55
55
56
57
57
61
62
64
65
65
67
67
67
69
69
70
71
72
72
72
72
72
72
72
73
73
73
73
73
73
74
74
74
74
74
75
75
75
75
75
76
76
76
76
77
77
77
78
78
78
78
79
79
79
80
80
80
80
80
81
81
81
81
83
84
87
88
88
88
89
89
89
90
90
90
91
93
95
101
102
102
103
104
105
105
105
106
106
106
106
107
107
107
107
108
109
109
112
113
113
113
115
117
117
118
118
120
120
124
124
124
125
125
125
125
127
130
131
133
133
134
135
136
136
137
137
140
140
141
141
141
141
143
143
143
143
145
149
149
149
151
151
152
154
155
155
155
159
163
164
168
176
178
180
180
181
181
182
187
187
187
187
188
192
193
194
194
195
195
200
200
200
200
203
204
207
213
213
220
221
223
224
225
225
225
226
226
226
226
226
230
230
234
238
244
244
255
255
263
263
264
264
265
269
272
274
276
278
285
285
287
288
288
289
289
291
292
292
293
293
296
301
301
308
310
316
316
317
318
319
319
321
324
326
329
347
352
352
376
381
381
400
402
418
419
424
424
445
450
450
462
466
466
469
490
490
492
515
515
517
532
533
535
554
557
578
583
583
596
602
602
873
880
882
8
8
8
9
17
20
20
21
21
21
22
22
22
22
23
23
23
23
23
23
24
24
25
25
25
25
27
27
27
28
28
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
35
35
36
37
37
45
46
47
47
48
48
49
49
49
50
51
51
51
52
52
52
52
54
54
54
54
54
54
54
55
55
55
55
56
58
58
62
63
64
65
66
66
66
68
68
68
69
71
71
72
72
73
73
73
73
73
73
73
74
74
74
74
74
74
74
75
75
75
75
75
76
76
76
76
76
77
77
77
77
78
78
79
79
79
79
79
79
79
80
80
80
80
80
81
81
82
82
88
89
89
89
90
90
90
91
91
95
100
102
102
103
103
103
103
105
107
107
107
107
107
107
107
107
107
107
108
108
109
110
110
113
114
114
114
116
118
118
119
119
122
123
124
125
125
125
125
126
126
126
126
126
131
131
132
134
135
136
141
141
141
141
141
143
143
143
143
143
143
143
143
144
144
146
149
150
150
152
152
153
154
154
154
154
156
156
156
159
160
163
164
177
178
182
182
183
188
188
188
188
189
193
193
193
194
195
195
201
201
201
201
202
202
202
204
208
214
214
221
222
224
226
226
226
227
227
227
227
227
229
229
229
229
231
231
234
239
245
245
251
256
256
256
263
264
264
264
264
264
265
266
270
273
273
275
275
278
283
285
286
289
292
293
293
294
294
297
302
302
307
309
314
317
318
319
319
319
322
325
327
330
348
353
353
377
382
382
401
403
415
418
419
420
425
425
446
451
451
467
467
470
491
491
493
516
516
518
533
534
536
555
558
579
584
584
597
603
603
874
878
881
883
9
9
9
10
18
19
19
20
20
22
23
23
24
24
24
24
25
25
25
25
26
26
27
27
27
27
27
27
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
33
33
34
35
35
35
35
35
35
36
36
37
45
46
47
48
48
48
48
48
48
49
49
49
50
50
50
50
50
51
51
52
52
52
52
52
52
54
54
54
54
54
54
55
55
56
56
57
59
64
65
66
67
67
69
69
69
69
69
70
70
71
72
72
73
73
73
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
77
77
77
77
77
77
78
78
78
80
80
81
81
81
82
83
83
87
89
90
90
91
91
92
92
93
100
100
102
102
103
103
104
104
104
105
105
105
108
108
108
108
108
108
109
109
111
111
114
115
115
115
117
119
120
120
122
123
124
124
125
125
125
126
126
126
126
127
127
132
132
132
133
135
136
136
141
141
141
142
142
142
142
142
142
144
144
144
144
145
145
147
151
151
153
153
154
155
155
157
157
157
159
160
163
164
164
164
165
168
168
178
182
183
184
189
189
189
189
189
190
191
191
192
192
194
194
195
196
202
202
203
203
203
203
209
215
215
222
223
224
225
227
227
227
228
228
228
228
230
230
232
232
240
246
246
252
257
257
262
265
265
265
266
267
271
276
276
276
283
283
285
285
286
287
290
294
294
295
295
298
303
303
303
307
308
315
315
318
319
319
320
323
326
328
331
349
354
354
378
383
383
395
402
404
416
416
420
421
426
426
447
452
468
468
471
492
492
494
517
517
519
534
535
537
556
559
580
585
598
604
604
879
882
884
8
9
10
11
11
11
11
19
24
24
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
35
35
36
47
47
49
49
49
49
49
50
50
50
51
51
51
51
51
52
52
52
53
53
54
54
54
54
54
55
55
55
56
56
56
56
58
59
59
60
62
65
65
66
67
67
67
68
68
69
69
70
71
71
72
72
72
72
72
72
72
73
73
73
74
74
74
74
75
75
75
75
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
77
78
79
79
80
80
80
81
82
82
82
82
83
84
87
87
88
90
90
90
90
90
91
91
91
91
91
92
93
93
103
103
104
104
105
106
106
107
107
107
107
107
107
109
109
109
109
109
109
111
111
111
111
112
115
116
116
116
118
120
120
121
122
122
122
124
125
125
126
126
126
127
127
127
128
128
133
134
136
137
137
142
142
142
142
143
143
143
143
143
143
143
143
145
145
145
145
148
152
152
153
153
154
155
156
156
158
158
158
163
165
165
166
169
169
178
178
179
182
184
185
190
190
190
190
190
190
191
192
193
193
193
195
195
196
197
203
203
204
204
210
216
216
223
224
224
225
227
227
228
228
228
229
229
229
231
231
233
233
234
234
241
244
247
247
252
252
256
256
256
258
263
263
264
266
266
266
268
272
277
277
286
286
287
288
291
294
294
294
294
295
296
296
299
303
304
304
307
308
309
319
320
320
321
324
327
329
332
350
355
355
379
384
396
400
403
405
417
417
421
421
422
427
427
448
453
469
469
472
493
493
495
518
518
520
535
536
538
555
555
557
560
581
586
599
605
605
880
883
885
5
5
5
5
11
11
11
19
20
20
22
22
22
22
24
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
33
33
33
34
35
35
35
48
50
50
50
50
51
51
51
52
52
52
52
52
53
53
54
55
59
60
60
61
66
66
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
70
70
70
71
72
72
73
73
73
73
73
73
73
73
73
74
75
75
75
75
76
77
77
77
77
77
78
78
78
78
78
81
81
82
82
83
83
85
88
89
91
91
91
92
92
92
93
94
94
102
104
104
104
104
104
105
105
105
106
106
106
106
107
107
107
108
108
108
108
110
110
112
112
113
116
117
117
117
119
120
121
122
123
123
123
123
125
125
125
125
126
126
126
126
126
127
127
127
128
134
135
137
138
138
140
142
142
142
142
142
142
142
142
142
142
143
143
143
143
144
144
144
144
144
144
146
149
153
153
153
153
154
155
156
157
157
159
159
159
164
166
166
168
170
170
170
176
179
179
180
185
186
188
190
190
191
191
191
191
192
193
193
193
194
194
194
196
197
198
204
204
204
211
214
217
217
224
225
228
228
228
228
229
229
229
230
230
230
232
232
232
234
234
235
235
242
245
248
256
257
257
259
264
265
267
269
273
278
278
287
288
288
292
295
295
296
297
297
300
305
305
308
309
310
320
321
321
322
325
330
333
351
356
356
380
383
383
385
401
404
406
416
421
421
422
422
423
428
428
449
451
451
454
470
470
473
494
494
496
519
519
521
536
537
539
556
558
561
582
587
600
606
606
881
884
886
4
4
5
5
12
21
21
22
22
23
23
23
23
23
24
24
24
26
26
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
35
49
49
49
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
53
53
53
56
59
59
59
61
61
64
64
67
67
67
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
72
72
72
73
73
73
73
74
74
74
74
74
74
74
74
74
74
75
75
76
76
76
77
77
77
77
78
78
78
79
79
79
79
79
80
81
82
82
82
83
84
84
92
92
92
93
93
93
95
103
105
105
106
107
107
107
107
108
109
109
109
109
111
111
113
113
117
118
118
118
120
121
122
123
123
123
123
124
124
124
126
127
127
127
128
128
132
135
136
136
138
141
142
142
143
143
143
143
143
143
143
144
144
145
145
145
145
147
147
149
149
150
151
154
154
154
155
156
157
158
158
160
160
160
164
168
169
177
177
181
182
182
186
187
189
189
191
192
192
192
192
193
194
195
195
195
197
198
199
204
205
205
212
215
215
215
218
218
225
226
229
229
229
230
230
231
231
231
233
233
233
233
235
235
243
246
246
247
247
249
252
257
258
258
263
265
266
268
270
274
279
279
293
296
296
298
298
301
306
306
310
311
315
319
321
323
326
331
334
352
357
357
381
384
386
402
405
407
422
423
423
424
429
429
450
452
455
471
471
474
495
495
497
520
520
522
537
538
540
557
559
562
583
588
601
607
607
882
885
887
5
5
5
5
5
5
5
6
11
13
19
19
20
22
22
23
23
23
24
24
24
24
24
26
26
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
35
35
35
35
35
35
46
46
46
46
46
47
50
50
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
54
56
56
59
60
60
60
65
65
66
66
66
66
68
68
68
69
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
73
73
74
74
75
75
75
75
75
75
75
75
75
75
76
76
77
77
77
78
78
79
79
79
79
80
80
81
83
83
84
85
90
91
94
96
105
105
106
106
106
106
106
107
107
107
108
108
108
108
109
110
110
112
112
118
119
119
121
123
123
123
124
124
124
125
125
125
126
127
127
127
127
127
128
128
129
129
132
136
136
137
137
139
141
142
142
142
142
142
143
143
143
143
143
143
144
144
144
144
144
144
144
146
146
150
150
151
152
154
154
155
156
157
158
159
159
159
161
161
161
169
169
170
170
180
182
183
183
187
188
190
190
190
191
192
193
193
194
195
196
196
196
198
199
200
206
206
206
206
213
216
216
219
219
226
227
227
230
232
232
232
234
234
236
236
244
247
247
247
247
248
250
258
263
264
264
266
269
269
271
271
275
280
280
292
294
299
299
302
307
307
310
310
310
310
312
315
319
320
322
324
327
332
335
353
358
358
382
385
387
403
406
408
423
425
430
430
451
453
456
472
472
475
496
498
521
523
538
539
541
558
560
563
584
589
602
608
608
608
608
883
886
888
1
1
5
5
6
6
7
7
11
11
12
14
19
20
24
24
24
24
24
25
25
25
26
26
27
27
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
36
42
47
47
47
47
47
47
47
47
47
47
47
48
48
48
50
50
51
51
51
52
52
52
53
53
54
55
61
61
61
66
66
67
67
67
67
68
69
69
69
69
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
74
74
74
75
75
76
76
76
77
78
79
80
80
81
82
84
84
85
90
90
91
91
91
92
92
95
95
95
95
97
103
103
105
105
105
106
106
106
107
107
108
109
109
110
110
110
110
111
111
111
113
113
117
118
118
119
119
119
120
120
120
122
123
123
123
124
124
124
124
125
125
125
125
125
126
126
127
128
128
129
130
130
137
137
138
138
140
141
141
142
142
142
143
143
143
143
144
144
144
144
145
145
146
146
146
146
147
147
150
152
155
155
156
157
158
159
159
160
160
160
162
162
162
162
164
164
171
171
179
181
181
181
182
183
188
189
191
191
192
194
196
197
197
199
200
201
207
207
214
215
216
216
216
216
217
220
220
224
227
228
231
233
233
233
235
235
235
237
237
245
245
247
247
248
248
249
251
256
259
264
264
265
267
272
272
276
278
278
281
281
288
294
295
300
300
303
308
308
311
311
313
320
321
323
325
327
328
331
333
336
354
359
359
383
386
388
404
407
407
409
409
426
431
431
452
454
457
473
473
476
495
497
497
499
522
524
539
540
542
559
561
564
564
583
584
585
590
603
609
609
884
887
889
1
1
1
4
4
5
5
5
6
6
7
7
8
8
11
13
19
19
19
22
22
22
22
24
24
25
25
26
26
26
26
27
27
27
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
34
35
35
36
43
43
48
48
49
49
49
49
49
50
50
50
50
50
50
51
51
52
52
52
52
52
52
52
52
52
53
53
54
54
54
55
55
56
56
59
62
62
64
64
67
67
68
68
68
68
69
70
70
70
70
70
70
70
71
71
71
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
75
75
75
75
75
76
77
77
77
78
78
78
79
80
81
82
83
85
86
88
89
90
90
91
91
91
92
92
93
93
96
96
96
96
98
103
104
106
108
108
109
110
110
111
111
111
111
111
111
111
111
112
112
112
114
119
120
120
121
121
123
124
124
124
125
125
125
125
125
126
126
127
128
128
128
129
129
129
129
130
131
132
132
136
138
138
139
141
142
142
144
144
145
145
146
146
147
147
147
147
148
148
150
152
153
155
155
155
155
156
157
158
159
159
159
161
161
163
163
163
163
165
165
169
170
170
170
172
172
179
183
184
189
190
190
190
192
192
192
192
195
196
196
197
198
198
200
201
202
203
208
208
215
217
217
218
221
221
224
225
227
227
228
229
232
234
234
234
235
236
236
238
238
246
248
249
249
250
252
252
256
257
264
265
266
268
273
273
276
277
279
279
282
282
286
294
294
294
294
295
296
301
301
304
309
309
312
312
315
315
319
321
324
326
329
332
334
337
355
360
360
384
387
389
405
410
410
416
416
421
427
432
432
453
455
458
474
477
498
498
500
522
523
525
540
541
543
560
561
565
565
585
586
591
604
610
610
885
888
889
890
5
5
5
6
6
6
7
7
9
9
13
14
14
24
25
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
33
33
33
33
33
33
35
35
44
45
45
47
50
50
50
51
51
51
51
51
51
52
52
52
52
53
53
53
53
54
54
55
55
55
56
56
57
60
62
65
65
68
68
68
68
68
69
69
69
69
70
70
70
70
71
71
71
71
71
72
72
72
72
72
72
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
76
77
79
79
79
81
82
82
83
85
85
85
85
87
89
89
90
90
90
91
91
92
92
93
93
93
94
94
94
96
97
97
97
99
104
105
106
107
109
110
111
112
112
112
112
112
112
113
115
118
120
121
121
121
122
123
124
125
126
126
126
127
127
128
129
129
129
130
130
131
132
133
133
136
136
137
137
139
140
140
142
142
142
142
143
143
145
145
148
148
148
148
154
154
156
156
157
158
159
160
160
162
162
164
164
164
164
164
166
166
166
169
169
169
170
171
171
171
183
184
185
190
190
190
191
191
191
193
196
197
197
198
199
199
201
202
203
204
204
204
204
209
209
216
216
216
218
218
222
222
224
228
228
229
230
230
233
235
235
235
237
237
239
239
247
247
247
249
251
252
253
257
258
265
266
269
274
274
277
278
279
280
283
283
294
295
295
296
297
302
302
305
310
310
316
316
319
319
320
320
327
330
333
335
338
356
361
361
385
388
390
406
411
411
417
421
422
428
433
433
454
456
459
473
475
476
478
499
499
501
520
523
524
526
541
542
542
544
544
561
566
566
586
587
592
605
611
611
886
888
890
891
5
5
7
7
8
8
10
10
13
13
14
15
24
24
25
25
25
25
26
26
26
26
26
26
26
26
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
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
33
33
33
34
34
35
35
35
45
45
46
46
46
46
48
48
49
51
52
52
52
52
53
54
54
55
55
56
56
57
58
62
62
65
65
66
66
66
67
67
67
67
67
67
69
69
69
69
69
69
70
70
70
70
70
70
70
71
71
71
71
71
72
72
72
72
72
72
72
72
72
73
73
73
73
73
73
74
74
74
74
75
75
75
75
75
75
75
76
76
76
77
77
79
79
80
82
83
83
83
83
84
86
86
88
88
89
92
93
93
93
94
94
94
94
94
94
95
95
96
97
98
98
98
100
104
105
105
105
108
109
109
110
111
113
113
114
116
121
122
122
122
123
123
124
125
125
127
127
127
127
128
128
130
130
131
131
137
137
140
142
143
143
143
143
143
144
145
145
145
146
155
155
155
155
157
157
159
160
160
160
161
163
163
164
165
165
165
165
165
171
172
172
172
179
179
183
185
186
186
191
191
192
192
193
194
194
196
197
197
198
198
198
199
200
202
203
204
205
205
210
210
217
217
223
223
225
227
229
229
229
230
231
231
234
235
235
235
235
236
236
236
238
238
240
240
248
248
252
254
256
258
259
265
265
266
266
266
267
270
275
275
277
277
279
279
280
281
284
284
296
296
297
298
303
303
306
308
310
311
311
320
320
328
331
334
336
339
357
362
362
386
389
391
407
412
412
422
423
429
434
434
455
457
460
476
477
479
500
500
502
524
525
527
542
545
545
562
567
567
587
588
588
593
593
606
612
612
887
891
892
4
5
5
6
8
8
9
9
11
11
11
11
11
14
15
16
16
22
22
24
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
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
33
33
33
33
33
34
48
48
48
48
48
49
49
49
49
49
49
49
50
50
51
52
52
52
52
52
53
54
55
55
56
57
57
58
59
60
60
63
63
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
68
68
68
68
69
69
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
73
73
73
73
73
73
73
73
75
75
75
75
75
75
76
77
77
77
78
80
84
84
85
87
87
93
94
95
95
96
96
97
98
99
99
99
101
105
105
105
106
106
109
109
110
110
110
110
111
112
114
114
117
122
122
122
123
123
124
125
126
126
126
127
127
128
128
128
128
128
128
129
129
129
129
138
138
138
138
141
143
143
144
144
144
144
145
146
146
146
146
147
147
156
160
161
161
161
162
164
164
164
164
165
165
166
166
166
166
166
166
166
166
170
172
173
173
177
180
180
186
188
192
192
193
193
195
196
198
198
199
200
201
203
204
205
205
211
211
216
218
218
224
224
227
228
231
233
235
236
236
236
236
237
237
237
239
239
239
239
241
241
241
241
247
247
249
249
253
255
257
259
267
267
268
271
276
276
280
280
281
282
285
285
288
292
297
297
299
304
304
307
310
310
311
312
312
321
321
321
321
329
332
335
337
340
358
363
363
387
390
392
408
413
413
423
430
435
435
456
458
461
477
478
480
501
501
503
525
526
528
543
546
546
563
568
568
588
594
594
607
613
613
888
892
893
4
4
4
5
5
5
5
6
10
10
11
12
12
13
16
16
16
16
16
20
21
24
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
32
32
32
33
33
33
33
33
34
34
34
34
44
46
46
46
46
46
47
49
49
49
49
50
50
50
50
50
50
51
52
52
52
52
52
52
52
52
52
53
53
54
55
56
57
58
58
59
60
61
63
64
64
65
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
73
73
74
74
74
74
75
75
75
75
76
77
78
79
79
82
83
83
83
85
85
85
89
89
89
90
90
90
93
94
96
96
98
99
100
100
102
105
105
106
106
106
106
110
110
110
110
110
110
110
111
111
111
111
113
115
118
123
124
124
124
124
125
125
125
126
127
127
127
127
127
128
128
129
129
129
129
129
129
129
130
130
130
130
138
138
139
139
142
143
143
144
144
145
145
146
146
146
146
146
146
147
147
147
147
148
148
150
150
153
155
157
161
162
162
162
163
167
167
167
167
167
167
167
167
171
171
178
178
187
189
192
193
193
194
196
196
197
199
199
200
201
201
202
202
204
204
205
205
205
206
212
212
216
216
217
219
225
225
228
228
229
229
229
232
234
234
236
237
237
238
238
238
242
242
242
242
247
247
248
248
250
254
256
257
257
259
259
259
260
265
266
266
266
268
268
272
277
277
279
279
281
281
282
286
286
289
289
293
298
300
305
305
308
310
310
311
312
313
313
321
321
322
322
324
328
330
333
336
338
338
341
341
359
364
364
391
393
409
414
414
416
423
431
436
436
459
462
478
479
481
502
502
504
526
527
529
544
547
547
564
569
569
589
595
595
608
614
614
889
893
894
5
5
5
6
6
6
6
7
11
11
11
11
13
13
16
17
19
20
20
21
21
22
24
24
24
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
34
35
35
42
45
45
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
51
52
53
53
53
54
57
58
59
59
60
61
61
61
62
63
64
65
65
66
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
72
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
75
75
75
75
75
75
75
76
77
77
77
79
79
79
80
82
84
84
84
85
85
86
89
90
90
90
91
91
93
93
93
94
94
94
94
94
95
96
97
101
101
103
103
104
105
110
110
110
111
111
111
111
111
111
111
111
112
112
112
112
112
113
114
114
114
114
116
119
119
124
124
125
125
125
126
127
128
128
128
128
128
128
129
129
129
129
130
130
130
130
130
130
130
130
130
131
131
131
131
131
131
138
138
139
140
140
142
142
143
146
146
146
146
147
147
147
147
147
147
147
147
148
148
148
148
151
151
154
155
155
156
159
162
163
163
163
164
165
166
166
166
168
168
168
168
168
168
168
168
188
189
189
191
192
193
193
194
194
195
195
197
197
198
200
200
201
205
205
206
206
207
213
213
215
216
217
218
220
226
226
230
230
230
233
234
237
238
238
239
239
239
243
243
243
243
249
249
255
257
260
260
261
265
265
267
267
267
273
277
278
278
279
280
282
286
287
287
288
293
297
297
299
301
306
306
309
310
311
312
313
313
314
321
321
322
323
323
329
331
334
337
342
342
360
365
365
392
394
410
415
415
417
421
432
437
437
456
460
460
463
479
480
482
503
503
505
527
528
530
545
548
548
565
570
570
590
596
596
609
615
615
890
894
895
5
5
5
7
8
8
8
8
8
12
12
14
14
17
18
19
19
20
20
21
21
22
22
22
22
22
22
23
24
25
26
26
26
26
26
26
26
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
36
36
43
43
45
46
47
47
47
47
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
51
51
51
52
54
54
58
58
59
60
60
60
61
62
63
64
65
66
66
66
67
67
68
68
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
73
73
74
74
74
74
75
75
75
75
76
76
78
78
80
81
83
85
85
85
85
85
86
87
94
94
94
94
94
95
95
95
95
96
96
96
97
98
102
102
104
104
104
104
105
106
106
109
110
112
112
112
112
112
112
113
113
113
113
114
115
115
117
120
120
125
125
126
126
126
126
127
129
129
129
129
130
130
130
130
131
131
131
131
131
131
132
132
132
132
132
138
138
139
140
142
143
143
143
144
145
145
145
147
147
148
148
148
148
148
148
149
149
149
149
151
152
155
156
157
160
163
163
164
164
164
165
165
165
165
165
166
167
167
167
169
169
169
169
169
169
173
180
181
189
194
194
195
195
196
196
196
198
198
199
201
201
202
206
206
207
207
208
214
214
216
218
219
221
227
227
228
229
229
229
231
231
234
235
236
238
238
239
239
240
240
240
240
244
244
244
244
245
250
250
256
257
258
259
261
261
268
268
268
274
277
277
279
279
279
279
280
281
283
287
287
288
288
289
289
293
298
298
300
302
307
307
308
310
312
313
315
321
321
322
323
330
332
335
338
343
343
361
366
366
393
395
411
416
416
421
422
433
438
438
461
461
464
480
481
483
504
504
506
528
529
531
546
549
549
566
571
571
591
597
597
610
616
616
891
895
896
5
5
6
6
6
8
9
9
9
13
13
15
15
16
18
19
19
19
19
19
19
19
20
21
22
22
23
23
23
24
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
33
33
37
37
44
45
45
46
47
47
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
52
52
53
55
56
56
59
60
61
61
62
63
63
64
65
66
66
67
68
68
68
68
68
70
70
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
73
73
73
74
75
75
75
75
76
77
79
79
81
82
83
84
84
85
86
86
86
87
88
88
93
94
95
95
95
95
95
96
96
96
96
96
97
97
98
99
103
103
104
104
105
105
106
107
107
109
109
109
110
110
111
111
112
112
112
112
112
112
114
114
114
114
114
115
116
116
121
121
122
122
126
126
126
126
127
127
127
127
128
129
130
130
130
130
131
131
131
132
132
132
132
132
132
132
133
133
133
133
137
138
138
139
139
140
142
143
145
145
145
145
146
146
146
147
147
148
148
148
148
148
148
148
148
150
150
150
150
151
153
157
158
161
165
165
165
166
166
167
168
168
168
170
170
170
170
170
170
173
180
182
190
192
193
195
195
196
196
197
197
199
199
199
199
202
202
202
203
204
207
207
208
208
209
215
215
216
217
219
222
228
228
228
228
228
229
230
230
230
235
236
236
240
240
241
241
241
241
245
245
245
245
246
251
257
259
260
266
269
269
275
280
280
280
280
281
282
284
287
289
289
289
290
290
293
297
299
299
303
308
308
309
309
311
313
313
313
313
316
320
321
321
322
322
323
331
333
336
339
344
344
362
367
367
387
394
396
412
417
417
422
423
434
439
439
462
462
465
481
482
484
505
505
507
529
530
532
547
550
550
567
572
572
592
598
598
611
617
617
892
896
897
5
5
5
5
5
5
6
9
10
10
10
10
10
11
13
13
14
14
16
16
16
16
16
16
18
19
22
23
23
23
24
24
24
24
24
25
26
26
26
26
26
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
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
32
32
32
33
33
33
34
38
38
44
45
45
46
46
46
46
46
46
46
46
46
46
46
46
47
48
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
51
52
52
54
55
55
56
57
57
58
60
61
61
61
62
62
62
62
62
62
63
63
64
64
64
64
65
66
66
66
66
67
68
68
68
68
68
68
69
69
69
69
69
70
70
71
71
71
71
72
72
72
72
72
72
72
73
73
73
74
74
75
75
77
78
80
80
82
83
83
84
86
87
88
88
89
89
94
94
95
95
95
95
96
96
96
96
97
97
98
99
99
104
104
104
106
106
107
108
108
109
110
110
110
110
111
111
111
111
111
111
111
111
112
112
113
113
113
113
113
113
115
116
117
122
122
122
126
126
127
127
128
128
128
128
129
129
130
131
131
131
131
132
132
133
133
133
133
133
134
134
134
134
138
138
140
140
145
146
146
146
146
146
146
147
147
147
147
147
147
147
147
148
148
149
149
149
149
149
149
149
149
153
154
158
162
166
166
166
166
167
167
168
169
169
171
171
171
171
171
171
183
183
191
193
196
197
197
198
198
203
203
203
204
205
205
205
205
208
208
209
209
210
216
216
216
217
219
219
220
223
229
229
230
231
231
231
236
237
241
241
242
242
242
242
246
246
246
246
246
246
250
250
250
250
252
257
258
260
261
267
269
276
281
281
281
282
282
285
287
289
290
290
290
291
291
298
300
304
309
309
312
314
314
314
317
321
321
323
323
332
334
337
340
345
345
363
368
368
388
392
395
397
413
418
418
422
423
424
435
440
440
463
463
466
482
483
485
506
506
508
530
531
533
548
551
551
568
573
573
593
599
599
612
618
618
893
897
898
1
5
5
5
6
6
6
7
10
11
14
14
15
15
17
17
17
17
18
18
18
19
19
19
19
22
22
22
22
22
22
23
24
24
24
24
24
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
32
32
33
34
35
39
39
45
45
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
50
50
51
55
56
56
57
58
58
61
61
62
62
62
62
62
63
63
63
63
63
63
63
63
64
64
64
65
65
65
65
66
67
67
67
67
68
68
68
68
68
68
68
69
69
69
69
69
69
70
70
70
70
70
70
70
71
71
72
73
73
73
73
73
73
73
74
74
75
76
78
79
81
81
82
84
86
88
90
90
95
95
96
96
96
97
97
97
98
98
105
105
107
107
108
111
111
111
112
112
113
113
114
114
114
114
114
114
114
116
117
123
123
127
127
128
128
129
129
129
129
129
129
129
130
130
130
132
132
132
132
133
133
134
134
134
135
135
141
141
146
147
147
147
147
148
148
149
149
150
150
150
150
150
150
150
150
153
154
158
158
159
163
167
167
167
167
167
168
168
172
172
172
172
172
172
173
173
184
184
184
184
189
192
193
194
197
197
198
198
199
199
199
204
204
204
205
206
206
209
209
210
210
211
217
217
220
220
221
224
229
230
230
231
232
232
237
238
242
242
243
243
243
243
247
247
247
247
250
251
251
251
253
256
257
258
259
259
261
269
277
282
282
286
290
291
291
291
297
299
305
310
310
313
315
315
315
318
324
324
333
335
335
338
338
341
346
346
364
369
369
393
396
398
414
419
419
422
423
424
425
436
441
441
464
464
467
482
484
486
507
507
509
531
532
534
549
552
552
569
574
574
594
600
600
613
619
619
894
898
899
1
1
5
5
6
7
7
8
11
11
11
12
15
15
15
15
16
16
16
16
18
18
18
18
19
20
20
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
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
31
31
31
31
31
31
32
33
33
34
36
38
38
40
40
45
47
47
47
47
47
48
48
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
52
55
55
55
57
57
59
59
59
59
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
66
66
66
66
66
66
66
67
68
68
68
68
68
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
73
73
73
75
75
75
76
77
79
80
82
82
83
83
84
84
84
84
85
88
95
95
96
96
96
97
97
98
106
106
108
108
110
110
111
111
111
112
112
113
113
114
114
114
115
115
115
115
115
118
124
124
126
127
129
129
129
129
130
130
130
130
130
130
130
131
131
131
131
131
131
132
132
132
133
133
134
135
135
136
136
141
146
147
147
147
148
148
148
149
149
150
150
151
151
151
151
151
151
159
159
160
164
168
168
168
169
169
171
173
173
173
173
173
174
174
182
184
184
185
185
189
193
194
195
197
199
199
199
200
200
200
205
205
205
206
206
210
210
211
211
212
218
218
221
221
225
230
230
231
231
238
239
243
243
244
244
244
244
246
248
248
248
248
251
252
252
257
258
259
259
260
260
262
267
278
283
283
287
291
292
292
293
297
298
306
309
311
313
314
316
319
324
334
339
339
342
347
347
365
370
370
394
397
399
415
420
420
422
423
423
424
425
437
442
465
465
468
483
485
485
487
508
508
510
532
533
535
550
553
553
570
575
595
601
601
614
620
620
895
899
900
6
8
8
8
9
12
12
12
12
13
16
16
16
16
17
17
19
19
21
21
22
22
22
22
24
24
26
26
26
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
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
33
33
33
37
39
39
41
42
44
45
45
46
47
47
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
51
51
52
52
55
56
56
56
63
63
63
63
63
63
63
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
68
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
72
72
72
73
73
75
76
77
77
78
80
81
83
83
84
84
85
85
86
88
88
88
89
94
95
95
95
96
96
96
96
97
97
97
98
99
106
106
107
107
109
110
110
110
110
111
112
112
112
113
113
113
113
114
115
116
119
125
125
125
125
126
127
129
130
130
130
131
131
131
131
131
132
132
132
132
132
133
133
133
133
134
136
136
137
137
141
146
146
146
147
148
148
148
149
149
149
149
149
152
160
160
165
169
169
169
169
170
170
172
172
174
174
174
174
174
178
185
186
186
193
194
195
196
197
199
200
200
200
200
200
201
201
201
206
206
206
206
207
211
211
212
212
213
219
219
219
226
232
232
234
239
240
244
244
245
245
245
249
249
249
249
252
258
260
260
261
261
263
279
282
284
284
288
289
289
293
293
293
297
298
299
307
309
312
313
314
315
317
320
324
335
340
340
343
348
348
366
371
371
395
398
400
416
421
421
422
423
424
424
425
438
443
466
466
469
486
486
488
509
509
511
533
534
536
551
554
571
576
596
602
602
602
602
615
621
621
896
900
901
5
5
5
13
13
13
13
14
16
17
17
18
18
19
19
20
20
21
23
23
25
25
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
31
31
32
32
33
34
34
34
38
40
40
42
43
43
44
44
45
45
46
46
46
46
46
46
46
46
46
46
46
46
47
48
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
51
57
57
57
59
59
61
63
63
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
69
69
69
70
71
71
71
71
71
71
71
71
71
72
72
72
72
73
73
77
77
77
78
78
81
82
84
84
85
87
89
89
89
90
95
95
96
96
97
97
97
98
98
104
104
106
107
107
108
108
110
112
113
113
113
115
116
117
120
126
126
127
127
130
131
131
131
132
132
132
133
133
133
134
134
135
137
137
138
138
143
148
148
149
149
149
150
153
158
166
169
170
170
170
171
171
175
175
175
175
175
179
184
184
186
189
194
195
196
196
197
197
200
201
201
201
202
207
207
207
208
212
212
213
213
214
216
220
220
227
232
233
233
235
240
241
244
244
245
245
246
246
246
250
250
250
250
250
253
259
260
261
261
262
264
280
280
285
285
287
287
289
289
290
290
294
294
298
299
300
308
310
310
313
314
315
316
318
321
336
341
341
344
349
349
367
372
372
396
399
399
401
401
417
422
422
422
424
425
425
439
441
441
444
467
467
470
487
487
489
510
510
512
534
535
537
552
555
572
577
597
603
603
616
622
622
897
901
902
5
8
8
8
9
9
14
14
14
15
18
18
19
19
19
19
21
21
21
21
21
26
26
26
27
27
27
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
32
32
33
39
41
43
45
45
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
50
50
51
55
58
58
60
60
62
64
64
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
70
71
71
71
71
72
72
72
73
73
75
77
77
77
77
78
79
82
83
83
85
85
85
86
88
88
90
90
90
90
90
98
98
99
99
107
108
108
109
109
111
111
113
114
114
115
115
115
115
115
115
117
118
121
126
126
127
127
128
128
129
129
129
130
131
132
132
133
133
133
134
134
134
136
136
138
138
139
139
144
144
146
146
147
149
149
150
150
151
151
151
151
151
151
151
151
151
153
154
167
171
171
171
172
172
174
176
176
176
176
176
180
180
185
193
195
196
198
198
199
199
199
201
202
202
203
208
208
208
209
213
213
214
214
215
216
217
219
219
221
221
228
232
234
234
236
236
241
242
245
246
246
246
247
247
247
250
251
251
251
251
251
260
260
261
261
261
261
262
263
263
265
265
281
286
286
290
290
291
291
295
295
300
301
309
309
309
311
313
314
315
317
319
322
337
342
342
345
350
350
368
373
373
397
402
402
418
423
423
423
425
426
440
442
445
468
471
488
488
490
511
511
513
535
536
536
538
538
553
556
573
578
598
604
604
617
623
623
898
902
903
9
9
9
10
10
15
15
15
16
16
16
18
18
19
19
20
20
20
20
21
22
22
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
33
40
42
44
44
45
47
47
47
47
48
48
48
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
56
58
61
61
63
64
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
71
71
71
71
73
73
73
78
78
79
80
83
86
86
86
87
89
89
89
90
90
91
91
98
99
109
109
110
112
112
112
113
113
115
115
116
116
116
116
117
117
117
117
119
122
127
127
128
128
130
130
130
130
130
130
131
131
132
133
133
133
134
134
134
137
137
138
139
139
140
140
147
147
148
148
149
149
151
151
152
152
152
152
152
152
152
153
154
155
158
158
168
169
169
172
172
172
173
173
174
177
177
177
177
177
181
181
181
181
184
184
186
194
194
196
196
197
200
200
200
200
203
203
204
209
209
209
210
214
214
215
215
216
216
220
220
222
222
229
235
235
237
237
237
237
242
243
246
246
247
247
248
248
248
251
252
252
252
252
252
261
262
262
263
266
266
282
287
287
291
292
292
296
296
300
300
300
300
302
310
310
310
312
313
313
314
314
315
318
320
321
323
338
343
343
346
351
351
369
374
374
398
403
403
419
424
424
424
426
441
443
446
467
469
470
472
489
489
491
512
514
536
539
539
554
557
574
579
599
605
605
618
624
624
899
903
904
8
9
10
11
11
11
11
11
16
16
16
17
20
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
24
24
24
26
26
26
26
26
26
26
27
27
27
27
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
31
31
32
32
34
41
42
43
44
45
45
45
45
45
45
47
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
51
51
58
58
62
62
62
62
64
64
64
64
64
65
65
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
69
69
69
69
69
70
70
70
70
71
71
71
71
73
77
77
78
79
80
84
86
86
87
87
87
88
90
90
90
91
92
92
95
96
98
99
99
109
109
109
109
110
111
113
114
114
114
114
118
118
120
123
129
129
131
131
131
131
133
133
133
133
134
134
134
134
134
135
135
138
138
139
139
140
140
141
141
141
141
147
149
150
150
150
150
151
151
152
152
152
152
153
153
153
156
159
159
167
169
170
170
171
172
173
173
173
174
174
178
178
178
178
178
179
181
181
182
182
184
184
185
185
194
196
197
197
198
201
201
204
204
205
210
210
210
211
215
215
216
216
217
217
219
221
221
221
223
223
230
232
232
235
236
236
237
237
238
238
243
244
247
248
248
249
249
249
250
252
253
253
253
253
253
260
261
262
263
263
267
267
269
269
282
283
288
288
292
292
292
292
292
293
297
297
301
301
303
311
313
314
314
316
321
322
322
324
324
324
339
344
344
347
352
352
370
375
399
404
404
420
424
425
425
442
444
447
470
471
473
490
490
492
513
515
537
540
540
553
553
555
558
573
574
575
580
600
606
606
619
625
625
900
904
905
5
5
5
5
11
11
11
16
16
16
17
17
17
18
19
19
19
19
19
20
20
20
20
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
24
24
24
24
24
24
24
24
24
24
25
26
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
29
29
30
30
30
30
30
30
30
30
30
30
30
31
31
31
40
42
43
43
44
44
44
44
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
47
47
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
51
54
54
56
56
59
60
60
65
65
65
65
65
66
66
66
66
67
67
67
67
67
67
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
70
70
70
70
71
71
71
71
71
72
78
84
85
87
87
88
88
88
89
90
90
91
91
92
96
96
97
97
98
98
99
99
100
100
110
110
111
111
112
114
114
114
114
119
119
124
130
130
131
132
132
132
132
134
134
135
135
135
136
136
139
139
141
141
142
142
142
142
147
150
150
150
152
153
153
154
154
154
157
158
160
160
160
168
168
170
173
174
174
174
174
174
175
175
179
179
179
179
179
182
183
183
186
186
194
196
197
198
198
199
201
205
205
205
206
211
211
211
212
216
216
217
217
218
219
220
224
224
230
231
233
233
237
237
238
239
239
244
245
248
249
249
250
250
250
251
253
254
254
254
254
262
263
267
268
268
270
270
283
283
284
289
289
293
293
293
294
298
298
302
302
312
314
315
315
315
315
317
322
325
325
325
340
345
345
348
353
353
371
374
374
376
400
405
405
421
426
426
426
443
445
448
471
472
474
491
491
493
513
514
516
538
541
541
554
556
559
575
576
581
601
607
607
620
626
626
901
905
906
5
12
17
18
18
18
19
19
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
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
26
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
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
33
34
40
41
45
45
45
45
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
50
51
55
55
57
58
58
58
58
59
60
60
60
61
61
62
62
62
62
62
62
62
62
62
63
63
64
64
64
64
64
65
65
65
66
66
66
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
70
71
71
71
72
72
73
73
77
79
85
86
87
88
89
89
89
89
90
90
90
91
91
92
92
97
99
99
99
100
100
109
111
111
112
112
113
114
115
115
115
116
116
116
116
116
116
125
130
131
131
131
132
132
133
133
134
135
136
137
137
140
140
142
142
142
143
143
148
150
151
151
152
152
152
152
152
152
152
152
153
154
154
155
158
158
159
171
172
174
175
175
175
175
175
176
176
180
180
180
180
180
181
181
182
183
187
187
194
194
197
198
200
201
206
206
206
206
206
207
212
212
212
213
217
217
218
218
219
220
220
221
221
225
225
231
231
232
237
237
238
238
239
245
246
249
250
250
251
251
251
251
251
253
253
253
254
255
255
255
255
260
263
264
268
269
269
270
271
280
282
285
290
290
294
294
294
299
299
313
315
315
315
316
316
318
323
325
326
341
346
346
349
354
354
372
375
377
401
406
406
422
426
427
427
444
446
449
472
473
475
492
492
494
511
514
515
517
539
542
542
555
557
560
576
577
582
602
608
608
621
627
627
902
906
907
5
5
11
13
19
19
19
20
20
20
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
26
26
26
26
26
26
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
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
33
33
33
41
41
42
45
46
46
47
47
47
48
48
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
56
56
57
57
58
59
59
59
59
59
60
60
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
66
66
66
67
67
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
70
70
70
70
71
71
71
72
73
73
73
74
77
77
78
85
85
87
87
88
89
90
90
90
90
91
92
92
93
98
98
99
100
100
100
107
113
113
113
114
114
114
115
116
116
116
117
117
117
117
117
126
131
131
131
131
132
132
132
132
133
133
134
134
134
134
135
137
138
138
141
141
142
143
143
144
144
149
149
150
150
152
152
153
153
153
153
153
154
156
159
159
159
160
160
170
172
173
173
175
176
176
176
176
177
177
181
181
181
181
181
181
182
183
188
195
195
196
196
196
198
201
207
207
207
207
208
213
213
213
214
218
218
219
219
220
222
222
226
226
233
238
239
239
246
247
250
251
251
252
252
252
254
254
255
256
256
256
256
260
261
261
265
268
268
270
270
270
271
272
281
281
283
283
286
290
291
291
295
298
300
300
300
314
315
315
316
316
317
317
318
319
322
324
325
327
342
347
347
350
355
355
373
376
378
402
407
407
423
428
428
445
447
450
473
474
476
493
495
515
516
518
540
543
543
556
558
561
577
578
578
583
583
603
609
609
622
628
628
903
907
908
1
4
4
5
6
11
11
12
13
13
14
18
18
19
19
19
20
21
21
21
21
21
22
22
22
22
22
23
23
23
23
24
24
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
27
27
27
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
31
34
34
34
40
42
44
44
45
45
45
47
47
47
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
51
51
57
57
57
57
57
57
59
59
60
60
60
60
60
61
61
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
67
67
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
71
71
72
72
73
74
74
75
77
78
79
88
88
89
89
90
91
91
92
92
93
93
94
96
97
98
99
100
100
101
101
109
114
115
115
115
115
115
117
117
117
118
127
132
132
132
132
133
133
133
134
134
134
134
134
135
135
135
135
138
139
139
142
142
144
144
145
145
151
151
151
151
152
154
155
157
160
160
161
161
170
173
176
177
177
178
178
181
181
182
182
182
182
182
182
183
183
183
187
187
189
197
197
197
197
202
206
207
207
207
207
208
208
208
209
214
214
214
215
219
219
220
220
220
221
221
221
221
223
223
227
227
233
234
237
237
239
240
240
247
248
251
251
252
252
253
253
253
253
255
255
257
257
257
257
261
261
262
266
271
271
271
272
273
281
283
284
284
287
292
292
292
296
300
300
301
301
301
315
315
315
316
317
317
320
323
325
328
343
348
348
351
356
356
374
377
379
403
408
408
424
429
429
446
448
451
474
475
477
492
494
494
496
516
517
519
541
544
544
557
559
562
562
578
584
584
604
610
610
623
629
629
904
908
909
1
1
4
4
5
5
5
6
7
11
13
19
19
19
21
21
22
22
22
23
23
23
23
24
24
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
31
31
41
43
43
44
44
44
45
45
45
45
45
46
46
46
46
46
46
48
48
49
50
50
50
50
50
50
50
51
58
58
58
58
59
60
61
61
61
61
61
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
69
69
69
70
70
70
70
70
70
71
71
71
72
72
73
73
74
75
75
75
76
79
80
87
87
89
89
90
92
93
93
93
95
97
97
98
98
98
99
99
100
100
100
101
102
102
109
109
109
109
110
115
115
115
115
116
117
117
118
118
119
128
131
132
132
132
133
133
134
134
134
135
135
136
136
139
140
140
143
143
145
145
146
146
151
151
151
152
152
153
156
157
159
160
160
160
161
161
162
162
174
175
177
178
178
179
179
181
181
182
182
183
183
183
183
183
183
188
188
190
198
198
200
203
208
208
209
209
209
210
215
215
215
216
220
220
220
220
220
221
221
221
222
222
222
222
228
228
233
235
237
237
238
238
241
249
252
253
253
254
254
254
254
258
258
258
258
261
262
263
267
270
270
272
272
272
273
281
283
284
285
285
288
292
292
292
292
293
293
293
297
300
300
301
302
302
302
314
315
315
316
316
317
318
321
324
326
329
344
349
349
352
357
357
375
378
380
404
409
409
425
430
430
449
452
475
476
478
495
495
497
517
518
520
542
545
545
558
559
563
563
579
585
585
605
611
611
624
630
630
905
909
910
4
5
5
6
7
8
13
14
14
20
20
20
20
21
21
21
21
21
22
22
23
23
23
23
23
23
23
23
24
24
24
24
25
25
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
33
40
41
43
43
44
44
45
45
45
46
46
46
47
47
49
49
50
51
51
57
59
59
59
59
59
60
61
61
61
61
61
62
62
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
68
69
69
70
70
70
70
71
71
71
71
72
73
73
74
74
75
76
76
76
77
80
85
87
88
90
90
93
93
94
94
96
100
100
101
101
101
102
109
110
110
111
113
115
116
116
116
117
117
117
117
118
119
119
120
120
129
131
132
132
132
134
134
135
135
135
136
139
140
141
141
144
144
144
146
146
147
147
149
149
151
152
152
152
153
153
153
154
157
159
159
159
160
161
161
161
162
162
170
170
175
175
178
179
179
180
180
183
183
184
184
184
184
184
184
187
189
189
198
201
201
201
201
204
207
207
209
209
210
210
211
216
216
216
217
221
221
222
222
222
223
223
223
223
229
229
236
239
239
240
240
242
250
251
253
254
254
255
255
255
255
259
259
259
259
262
263
268
268
270
271
273
273
284
285
289
292
293
293
294
294
294
298
300
301
302
303
303
303
303
315
315
317
317
319
322
322
325
327
330
345
350
350
353
358
358
376
379
381
405
410
410
426
431
431
446
450
450
453
476
477
479
496
496
498
518
519
521
543
546
546
559
564
564
580
586
586
606
612
612
625
631
631
906
910
911
4
5
5
7
8
9
11
13
13
14
15
17
19
19
19
19
21
23
23
23
23
24
24
24
24
24
24
24
25
25
25
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
34
41
41
44
44
44
45
45
45
45
46
46
46
46
46
46
46
46
46
46
47
47
48
48
48
50
50
50
52
57
57
57
59
59
60
60
60
60
60
60
60
61
62
62
62
62
62
62
62
62
63
63
63
63
63
63
64
64
64
64
64
64
64
65
65
65
65
65
65
65
67
67
67
67
67
67
67
68
69
69
71
71
71
72
73
74
74
75
75
76
76
76
77
78
80
80
80
81
85
85
87
87
88
89
91
91
91
93
93
94
95
95
97
100
101
102
111
111
112
114
114
115
117
117
117
117
117
117
117
118
119
120
120
130
132
132
132
132
135
135
135
135
135
136
136
136
136
136
140
140
141
142
142
142
142
145
145
145
147
147
147
147
148
148
150
150
150
153
153
153
153
153
153
154
155
158
161
162
162
162
163
163
168
171
171
176
179
179
180
180
181
181
184
184
185
185
185
185
187
198
202
202
205
208
211
211
212
217
217
217
218
221
222
222
223
223
223
224
224
224
230
230
233
233
235
237
240
240
241
243
251
251
252
253
254
255
255
256
256
256
260
260
262
262
263
263
263
264
268
268
269
270
270
271
272
274
274
285
290
294
294
295
295
295
298
299
302
303
304
304
318
318
320
323
323
323
325
325
326
328
331
346
351
351
354
359
359
377
380
382
406
411
411
426
427
432
432
451
451
454
476
478
480
497
497
499
519
520
522
544
547
547
560
565
565
581
587
587
607
613
613
626
632
632
907
911
912
4
4
4
5
5
8
9
10
11
11
11
14
15
16
16
18
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
25
25
25
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
42
45
45
45
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
48
48
49
49
49
51
51
53
58
58
58
59
60
60
61
61
61
61
61
62
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
66
66
66
67
67
67
67
67
67
69
70
72
72
73
75
76
76
77
77
78
79
81
81
82
88
88
89
90
92
94
94
95
96
96
98
100
100
100
100
100
101
101
101
107
112
112
115
115
116
116
118
118
118
118
118
118
118
118
118
119
120
120
121
131
133
133
135
136
136
137
137
137
137
142
143
143
143
143
146
148
148
148
148
149
149
150
151
151
151
154
154
154
154
154
154
154
154
155
159
160
162
163
163
164
164
169
169
177
180
180
181
181
182
182
183
185
186
186
186
186
187
188
202
206
207
209
212
212
213
218
218
218
219
222
222
223
224
225
231
231
231
234
234
236
238
241
242
244
247
252
252
253
253
254
255
256
256
257
257
257
261
261
264
264
265
270
271
271
272
273
275
275
283
283
290
291
295
295
296
296
299
299
300
303
303
305
305
315
318
319
321
324
326
326
327
329
329
332
332
347
352
352
355
360
360
378
381
383
407
412
412
424
426
427
428
433
433
452
452
455
477
479
479
481
498
498
500
520
521
523
545
548
561
566
566
582
588
588
608
614
614
627
633
633
908
912
913
4
5
5
5
5
9
9
10
10
11
11
13
16
16
16
16
16
19
19
21
21
22
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
30
30
30
30
30
30
30
30
30
30
32
32
42
43
43
43
44
44
44
44
45
45
45
46
46
47
47
47
48
48
48
49
50
52
52
54
59
59
59
60
60
60
60
61
61
61
61
61
62
62
62
62
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
70
71
71
71
74
76
76
77
77
78
79
80
80
80
80
82
82
89
90
90
91
91
93
94
96
97
97
98
98
99
100
101
101
101
101
102
102
108
113
116
116
116
118
118
118
118
119
119
119
119
119
120
121
121
122
132
133
134
135
135
136
136
136
136
137
137
137
137
137
138
138
138
143
143
144
144
145
147
148
148
148
148
149
149
150
150
151
152
152
152
154
154
154
154
155
155
155
155
155
155
156
160
161
161
165
165
178
180
180
181
182
182
183
183
183
184
184
184
184
184
184
186
187
187
187
187
188
189
202
207
207
207
208
213
213
214
219
219
219
220
222
222
223
223
224
225
226
232
232
232
232
236
236
239
240
240
240
242
243
245
248
253
253
254
254
255
256
257
257
258
258
258
259
259
259
259
262
262
262
263
263
263
265
265
271
272
273
273
276
276
281
281
283
284
284
291
292
296
297
297
301
304
304
306
318
320
322
325
326
328
333
333
348
353
353
356
361
361
382
384
408
413
413
425
427
429
434
434
453
453
456
480
480
482
499
499
501
521
522
524
546
549
562
567
567
583
589
589
609
615
615
628
634
634
909
913
914
4
6
6
10
10
11
11
11
11
12
16
17
19
19
19
19
19
19
20
21
21
21
22
22
22
23
23
23
23
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
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
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
33
33
33
33
40
42
43
44
44
45
45
45
45
45
45
45
46
46
47
47
47
47
47
47
48
48
49
52
52
52
53
53
54
55
59
59
60
60
60
60
60
61
61
61
61
63
63
64
64
64
65
65
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
68
68
70
71
71
71
72
72
75
76
76
77
78
78
79
80
81
81
81
81
91
92
94
94
97
97
97
98
98
98
100
101
101
101
101
101
102
102
102
102
102
102
102
103
108
112
112
114
116
116
116
118
118
119
119
120
120
120
120
120
121
122
122
123
133
133
133
133
135
136
137
137
138
138
138
139
139
139
143
144
145
145
148
148
148
149
149
149
149
150
150
151
152
152
152
154
154
155
155
156
156
156
156
156
156
157
161
166
166
171
173
179
182
183
183
184
185
185
185
185
187
187
188
188
188
188
189
190
197
206
207
208
208
209
214
214
215
220
220
220
221
223
224
224
225
226
227
233
233
240
240
241
241
243
244
246
254
254
254
255
255
257
258
258
259
259
260
260
262
262
263
263
264
264
264
272
277
277
284
285
285
291
293
295
295
297
298
298
302
305
305
307
321
323
326
326
329
334
334
349
354
354
357
362
362
383
385
409
414
414
425
430
435
435
454
454
457
481
481
483
500
500
502
522
523
525
547
550
563
568
568
584
590
590
610
616
616
629
635
635
910
914
915
7
7
7
7
7
12
12
13
17
18
19
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
23
23
23
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
26
26
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
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
30
30
30
31
31
31
32
32
34
34
34
34
41
42
42
42
43
43
44
45
45
45
46
46
46
46
46
47
47
47
47
47
48
48
49
53
53
53
54
54
54
54
54
54
55
56
56
57
57
58
58
58
58
60
60
60
60
60
60
60
60
61
61
61
61
61
62
62
62
62
64
64
64
64
64
65
65
66
66
67
67
67
67
67
68
68
68
68
69
70
70
70
71
71
71
71
72
73
73
78
79
79
79
80
81
81
82
82
82
82
92
92
93
94
94
94
98
98
98
99
99
99
101
102
102
103
103
103
103
103
104
108
113
113
114
115
116
117
117
117
117
118
118
118
118
118
118
119
119
120
120
120
121
122
124
134
134
134
136
136
136
137
137
137
138
138
139
139
140
140
145
146
146
148
148
149
149
150
150
150
150
151
152
153
153
153
153
154
154
154
154
154
154
155
155
156
156
157
157
162
163
167
167
171
174
180
183
183
184
184
184
185
186
186
186
186
188
189
189
189
189
190
190
198
198
198
198
207
209
209
210
215
215
216
221
221
222
224
224
225
226
227
228
234
234
234
236
241
241
242
242
245
247
254
255
255
255
255
255
255
256
258
259
259
260
260
261
261
264
264
265
265
265
273
278
278
286
286
291
294
296
296
298
299
299
299
303
303
305
305
308
322
324
327
330
335
335
350
355
355
358
363
363
384
386
410
415
415
427
431
436
436
455
455
458
482
482
484
501
501
503
523
524
526
548
551
564
569
569
585
591
591
611
617
617
630
636
636
911
915
916
7
7
7
8
13
13
14
16
18
19
19
19
19
19
19
19
20
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
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
28
28
28
28
28
29
29
29
29
29
29
30
30
30
31
31
31
31
31
32
32
33
33
35
35
40
43
43
43
43
43
44
44
45
45
48
49
54
54
54
54
54
55
55
55
55
55
56
56
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
63
64
65
65
66
66
66
67
67
67
68
68
69
69
69
71
72
72
73
74
74
79
80
80
81
82
82
83
83
83
90
94
95
95
99
99
100
100
101
101
101
102
102
102
102
103
103
103
103
103
103
104
104
104
108
112
114
114
115
116
116
116
117
117
118
118
119
119
120
120
120
121
122
123
125
132
132
134
134
134
134
135
135
135
135
136
136
136
137
137
137
138
138
141
141
145
145
146
147
147
149
150
150
151
151
152
152
152
153
153
153
154
154
155
155
155
156
156
163
163
168
168
175
175
181
183
183
184
184
185
185
186
187
187
187
189
190
190
190
190
190
190
199
199
201
207
208
210
210
216
216
217
220
220
222
222
223
225
226
227
228
229
234
235
235
242
242
246
248
256
256
256
256
257
258
258
259
260
260
261
261
262
262
263
265
265
266
266
273
274
279
279
286
286
286
286
287
291
295
295
297
297
299
300
300
303
304
304
306
309
315
323
325
328
331
336
336
351
356
356
359
364
364
378
385
387
411
416
416
427
432
437
437
456
456
459
483
483
485
502
502
504
524
525
527
547
547
549
552
565
570
570
586
592
592
592
592
612
618
618
631
637
637
912
916
917
8
9
9
11
14
14
15
16
16
18
19
20
21
21
22
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
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
31
31
32
33
33
33
34
34
36
36
39
39
41
41
41
42
42
44
44
45
45
45
46
46
55
55
55
55
55
55
55
55
56
56
56
56
56
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
64
64
65
65
65
66
67
67
67
68
69
69
71
71
72
73
73
73
73
74
75
80
81
81
82
83
83
83
84
88
95
95
98
98
99
99
100
100
101
101
101
102
102
102
103
103
103
104
104
105
113
115
116
116
117
118
118
118
119
119
120
120
121
121
121
122
123
124
126
133
133
133
135
135
135
135
136
136
136
136
137
137
138
138
139
139
142
142
146
147
148
148
148
150
150
151
151
152
152
152
153
153
154
154
154
154
155
155
156
156
157
157
164
169
169
176
176
176
176
180
182
184
184
185
185
186
186
187
188
188
188
188
190
190
191
191
191
191
199
202
202
202
202
207
208
210
210
211
211
217
217
218
221
223
223
224
224
224
226
227
228
229
230
236
236
240
243
243
247
249
254
255
257
257
257
257
259
260
260
261
261
262
262
262
263
263
264
266
266
266
271
275
280
280
287
287
288
296
296
298
301
301
304
305
305
307
310
316
316
318
318
324
326
326
329
329
332
337
337
352
357
357
360
365
365
379
383
386
388
412
417
417
433
438
438
457
457
460
484
484
486
503
503
505
525
526
528
548
550
553
566
571
571
587
593
593
613
619
619
632
638
638
913
917
918
1
9
9
9
9
15
16
16
18
18
18
19
19
19
19
19
20
21
21
22
22
22
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
29
29
29
29
30
30
30
30
30
30
30
31
33
33
33
34
35
35
37
37
39
40
40
40
40
40
40
42
43
43
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
56
56
56
56
56
56
57
57
57
57
57
58
58
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
65
65
65
65
66
68
69
69
69
72
73
73
74
74
76
81
82
83
83
84
84
85
95
95
95
96
99
100
101
101
101
102
102
102
103
103
104
104
104
105
105
112
114
116
116
117
117
117
117
117
118
118
118
119
119
119
120
122
122
122
124
125
125
127
127
134
134
134
136
136
136
136
136
136
137
137
137
137
137
138
138
139
140
143
143
147
148
148
148
149
149
149
150
151
152
152
153
153
153
153
153
153
154
154
154
154
155
155
155
155
155
155
158
158
163
163
165
170
170
174
176
176
177
177
180
183
185
185
186
186
188
188
189
189
190
191
191
192
192
192
192
199
203
203
211
211
212
212
218
218
219
222
222
224
225
225
227
228
229
230
231
236
237
240
241
248
250
256
258
258
260
263
263
263
264
264
266
267
267
276
281
281
288
288
295
297
297
299
299
302
303
305
306
308
311
319
319
325
330
330
333
338
338
353
358
358
361
366
366
384
387
389
413
418
418
434
439
439
458
461
485
485
487
504
504
506
526
527
527
529
529
549
551
554
567
572
572
588
594
594
614
620
620
633
639
914
918
919
1
1
7
7
9
16
16
16
16
17
17
19
19
20
20
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
24
24
24
24
24
24
24
25
25
27
27
27
27
27
27
27
27
27
27
27
28
28
28
30
30
30
31
31
31
31
31
32
34
34
34
34
34
36
36
36
36
38
38
40
40
40
41
41
41
41
42
43
43
44
44
44
45
45
45
45
45
45
46
46
47
47
56
56
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
59
59
59
59
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
64
64
64
64
65
65
65
65
66
66
67
69
69
69
70
71
73
73
73
74
75
75
81
82
83
84
85
85
86
96
96
97
99
100
100
101
101
101
102
102
102
102
103
103
103
104
105
105
108
112
113
115
117
117
117
117
117
117
118
119
120
120
120
120
121
121
121
121
121
121
123
123
125
128
128
133
133
134
135
135
136
136
137
137
138
138
138
139
139
139
140
140
140
140
141
144
145
148
148
149
150
150
150
151
153
153
153
153
153
153
154
154
155
155
156
156
156
156
156
157
157
157
157
159
159
161
164
164
166
169
171
177
178
178
184
184
186
186
187
187
188
189
190
190
190
191
192
192
193
193
193
193
203
212
212
213
219
219
220
223
223
223
225
228
229
230
231
232
236
236
236
238
241
242
249
251
254
257
259
259
261
261
261
264
264
264
264
265
265
265
265
268
268
277
282
282
284
291
295
296
298
300
300
303
303
303
304
304
307
309
312
319
323
326
331
331
334
339
339
354
359
359
362
367
367
385
388
390
414
419
419
435
440
457
459
460
462
486
486
488
505
505
507
527
530
530
550
552
555
568
573
589
595
595
615
621
621
634
638
638
640
915
919
920
9
10
13
13
17
17
18
18
19
19
19
19
20
20
21
21
21
21
22
22
22
22
22
22
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
32
33
35
35
35
37
37
37
37
38
39
41
41
41
41
42
42
42
42
43
45
45
55
55
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
65
65
65
65
67
67
68
69
70
71
71
71
72
74
74
75
76
83
85
86
86
87
90
92
96
96
96
96
97
98
99
100
100
101
103
103
103
103
104
104
104
104
104
105
105
105
106
106
108
112
113
114
115
117
119
120
121
121
121
121
122
122
122
122
124
124
126
129
129
134
134
136
136
136
139
139
140
140
140
141
141
141
141
142
143
143
143
143
145
146
149
150
151
151
151
151
153
154
154
154
155
155
155
156
156
157
157
157
157
157
157
157
157
158
158
158
158
160
160
162
162
167
170
172
176
176
178
180
185
185
187
187
187
188
188
188
190
191
191
191
192
194
194
194
194
203
210
214
220
220
221
224
226
229
230
231
232
232
233
237
239
240
242
243
250
252
254
255
255
260
260
262
265
265
265
266
266
266
266
269
269
273
278
283
283
286
291
295
296
297
299
301
301
304
304
304
308
310
313
319
324
326
326
327
332
332
335
340
340
355
360
360
363
368
368
386
389
391
415
420
420
436
441
460
461
463
487
489
506
506
508
528
531
531
551
553
556
556
569
574
590
596
596
616
622
622
635
639
641
916
920
921
10
11
14
14
16
19
19
19
19
19
19
19
19
19
19
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
29
30
30
30
31
31
31
31
31
32
33
34
36
36
36
36
36
36
37
38
38
38
38
39
39
40
40
42
42
42
43
43
43
43
43
43
45
45
50
50
56
56
56
56
57
57
58
58
58
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
63
63
63
64
64
65
65
65
65
66
66
69
71
71
72
73
75
75
76
83
84
86
86
87
87
88
91
91
93
97
97
98
99
103
103
103
103
104
104
104
104
105
105
105
105
105
106
106
106
107
107
113
114
115
116
117
118
121
122
122
122
122
123
123
123
123
127
130
130
134
134
135
135
137
140
141
141
142
142
144
144
144
146
146
147
150
151
151
152
153
153
153
154
155
155
155
155
156
156
157
157
157
157
158
158
158
159
159
159
159
168
171
171
173
177
184
186
186
186
188
189
189
189
190
190
190
190
190
191
192
192
192
195
195
195
195
198
207
215
221
221
223
224
225
225
227
230
231
232
233
233
234
238
240
241
243
243
251
253
255
255
256
261
263
266
266
266
267
267
267
267
270
270
274
274
279
284
284
286
286
286
286
287
296
297
298
300
302
305
305
305
305
305
309
311
314
327
327
328
333
333
336
341
341
356
361
361
364
369
369
387
390
390
392
392
416
421
421
427
437
439
439
442
461
462
464
486
488
488
490
507
507
509
529
532
532
552
553
557
557
570
575
591
597
597
617
623
623
636
640
642
917
921
922
9
9
9
15
19
19
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
23
23
23
23
23
24
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
27
27
27
27
27
27
28
28
29
29
30
30
31
31
33
33
34
34
35
37
37
37
37
38
38
38
38
39
39
39
40
40
40
41
41
43
43
44
44
44
44
44
51
51
52
52
52
52
55
56
57
57
57
57
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
62
62
62
62
62
62
62
62
62
63
63
63
63
63
64
66
66
66
67
69
69
73
74
76
77
85
87
87
88
88
89
90
96
96
96
98
98
100
103
104
104
105
105
106
106
106
106
107
107
108
115
116
116
116
119
120
120
121
121
121
121
122
122
122
123
123
128
131
131
134
135
136
136
137
137
137
138
141
141
144
144
144
144
145
145
146
147
147
148
149
151
151
151
152
152
152
153
153
155
156
156
156
156
156
156
156
157
157
157
157
157
158
158
158
158
159
159
159
164
169
172
172
172
172
174
176
176
178
185
185
187
187
189
190
191
191
191
191
191
191
192
193
193
196
196
196
196
199
199
199
199
207
208
210
210
216
222
222
224
225
225
226
228
228
229
231
232
233
234
234
234
235
239
241
241
241
243
243
243
244
244
249
252
254
255
256
257
260
262
264
264
267
267
267
268
268
268
268
271
271
271
273
280
285
285
286
287
287
288
298
299
301
303
305
305
306
306
306
310
312
315
324
327
327
327
327
328
329
334
334
337
342
342
357
362
362
365
370
370
388
393
393
417
422
422
425
427
428
438
440
443
462
463
465
489
489
491
508
508
510
530
533
533
553
558
558
571
576
592
598
598
618
624
624
637
641
643
918
922
923
10
10
10
11
11
16
16
16
20
21
21
21
21
21
21
22
22
22
23
23
23
23
23
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
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
29
29
30
30
34
36
36
36
37
38
38
38
39
39
39
39
40
40
40
41
41
41
41
41
41
42
42
42
42
42
43
44
45
45
45
46
52
52
53
53
53
53
56
56
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
60
61
61
61
61
61
61
61
61
62
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
66
66
66
66
66
67
67
70
71
73
74
76
76
76
76
78
86
88
88
89
89
89
90
91
91
93
93
96
97
97
99
100
101
105
105
106
106
107
109
115
115
115
115
117
117
117
117
117
120
121
121
121
121
122
122
122
122
122
122
123
123
124
124
129
132
132
133
136
137
137
137
138
138
138
139
139
140
142
145
145
146
146
148
149
150
152
152
152
153
154
155
156
156
157
157
157
157
157
157
157
157
157
158
158
158
159
159
159
159
160
160
160
164
170
170
172
172
173
173
175
176
176
177
177
185
187
188
188
190
191
192
192
192
192
193
194
194
194
194
197
197
197
197
197
197
200
200
207
211
211
217
223
223
227
229
229
230
232
232
233
233
234
234
235
235
235
235
235
235
236
240
242
244
244
245
250
253
255
256
257
263
265
265
268
268
268
269
269
269
269
272
272
272
272
274
274
281
286
286
288
288
289
298
298
298
298
300
302
304
305
305
306
307
307
307
313
316
316
328
328
329
330
335
335
338
343
343
358
363
363
366
371
371
389
394
394
418
423
423
426
428
439
441
444
463
464
466
490
490
492
509
511
531
534
534
554
559
559
572
577
593
599
599
619
625
625
638
642
644
919
923
924
11
12
12
16
17
18
18
18
18
18
18
20
20
20
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
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
30
31
31
31
35
35
37
38
38
39
39
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
45
46
46
47
53
53
53
53
54
54
54
54
54
54
54
54
56
56
56
56
56
56
56
56
57
57
57
58
58
58
59
59
59
59
59
59
60
60
60
60
61
61
61
61
61
61
62
62
62
63
63
64
64
64
65
65
67
67
68
70
70
71
74
74
74
74
75
77
77
79
83
83
87
89
89
89
90
91
91
92
92
94
96
98
98
99
100
100
101
101
102
104
105
106
106
107
108
110
116
116
117
117
118
121
121
121
121
122
122
122
122
122
122
123
123
123
123
123
124
130
133
133
134
134
136
136
136
137
137
138
139
139
139
139
139
140
140
140
140
141
143
144
144
146
146
147
149
152
153
153
153
153
153
155
156
156
156
157
157
157
157
158
158
158
158
158
158
158
158
158
158
159
159
159
159
160
160
160
160
161
161
169
170
171
173
174
174
176
178
178
185
185
187
188
189
189
189
191
192
192
193
193
194
198
198
198
198
198
198
200
208
210
212
212
212
218
221
224
224
225
225
228
230
230
231
233
235
235
235
235
236
236
236
236
237
241
241
243
243
245
245
251
254
256
256
256
257
257
257
258
264
266
266
266
266
269
269
269
270
270
272
273
273
274
275
275
282
284
287
287
289
289
299
299
301
303
305
305
305
306
307
308
314
317
317
317
319
319
327
327
329
329
331
336
336
339
344
344
359
364
364
367
372
390
395
395
419
424
424
426
440
442
445
464
465
467
491
491
493
510
512
532
535
535
555
560
560
571
572
573
578
594
600
600
620
626
626
639
643
645
920
924
925
5
10
11
13
13
13
13
16
16
16
18
19
19
19
19
19
20
20
20
20
20
21
21
21
21
22
22
22
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
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
30
30
31
35
36
37
38
38
40
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
43
43
43
43
44
44
44
45
46
47
49
49
51
52
52
52
52
52
52
53
53
54
55
55
55
55
55
55
55
55
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
61
61
61
61
61
61
63
63
63
63
65
65
66
66
68
68
75
75
76
78
78
81
84
84
88
89
90
90
91
91
92
92
93
93
94
95
96
97
99
99
100
100
101
102
103
104
104
104
105
105
105
105
106
107
108
108
109
111
117
117
120
120
121
122
122
122
122
122
122
123
123
123
123
124
124
124
124
124
124
124
131
134
134
134
137
137
139
140
140
140
140
140
141
141
141
141
141
141
142
142
145
148
150
151
152
154
156
156
156
156
156
157
157
157
158
158
158
158
158
158
158
158
159
159
159
159
160
160
160
160
161
161
161
161
162
162
164
164
171
172
172
172
174
174
177
179
179
185
185
188
189
190
192
192
193
194
194
195
199
199
199
199
199
199
200
202
210
211
219
222
223
225
225
226
226
226
229
231
231
232
236
236
236
237
237
237
237
238
242
244
244
252
255
257
258
258
259
264
265
267
267
267
267
269
269
270
270
270
271
271
272
272
272
274
274
274
275
276
276
283
285
288
288
290
300
300
304
304
305
305
306
306
306
307
309
315
318
320
320
328
332
337
337
340
345
345
360
365
365
368
371
371
373
391
396
396
420
425
425
428
441
443
446
465
466
468
492
492
494
510
511
513
533
536
536
556
561
561
573
574
579
595
601
601
621
627
627
640
644
646
921
925
926
5
6
9
9
9
9
13
13
13
18
18
19
19
19
19
20
20
20
20
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
30
30
35
36
36
37
38
38
39
39
39
40
40
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
44
45
50
50
52
53
53
53
53
53
53
53
53
54
54
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
57
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
61
61
63
63
63
64
65
66
66
67
67
70
74
74
74
76
76
76
82
84
85
87
87
89
91
91
92
92
93
93
94
95
98
99
99
100
102
104
104
105
105
105
105
105
106
106
106
106
106
106
106
106
106
107
107
108
109
109
110
112
116
116
120
121
121
122
122
122
122
124
124
124
124
124
124
124
124
125
125
125
125
132
134
135
135
135
137
137
141
141
141
142
142
142
142
142
143
143
144
146
146
149
151
155
156
156
157
158
158
158
159
159
159
159
160
160
160
160
161
161
161
161
162
162
162
162
162
163
163
165
165
172
173
173
175
178
180
186
186
187
187
187
189
191
193
193
194
195
195
196
196
200
200
200
200
200
200
203
203
203
211
211
212
212
220
224
224
226
226
227
230
230
232
232
232
233
235
235
237
237
237
238
238
239
241
243
245
245
253
256
256
256
257
257
257
258
258
259
259
265
266
267
268
268
268
271
271
271
272
272
273
273
275
275
275
276
284
285
289
289
289
289
291
305
305
305
307
307
307
310
310
314
316
319
320
327
329
333
338
338
341
346
346
361
366
366
369
372
374
392
397
397
421
426
426
428
442
444
447
466
467
469
493
493
495
508
511
512
514
534
537
537
557
562
562
574
575
580
596
602
602
622
628
628
641
645
647
922
926
927
6
7
9
9
13
14
19
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
28
28
29
29
30
30
30
31
33
36
37
37
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
46
51
51
53
53
54
54
54
54
54
54
54
54
55
55
55
55
56
56
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
61
61
62
63
63
63
65
65
66
66
68
68
70
70
75
75
75
76
76
77
82
82
84
85
86
88
90
92
92
93
93
93
94
99
100
100
101
102
103
104
105
105
106
106
106
107
107
107
107
107
107
107
108
108
109
110
110
110
111
113
113
115
116
120
120
121
122
122
122
122
124
124
125
125
125
125
126
126
126
126
133
134
135
136
136
137
137
137
137
138
140
141
141
141
141
142
142
142
143
143
144
144
144
144
145
146
147
150
151
151
152
152
156
157
157
157
158
158
158
158
158
159
159
159
160
160
160
160
161
161
162
162
162
162
163
163
163
163
164
164
172
172
173
174
174
174
175
175
179
179
179
179
181
188
188
188
188
192
195
196
196
197
197
201
201
201
201
201
201
204
204
213
213
221
227
227
228
233
233
233
234
236
238
238
239
239
241
242
243
244
246
254
256
256
258
258
258
259
259
265
265
267
267
268
269
269
272
272
272
273
273
274
274
276
276
276
285
285
290
290
290
290
292
296
298
306
308
308
308
311
315
317
320
320
327
327
328
334
339
339
342
347
347
362
367
367
370
373
375
393
398
398
422
427
427
443
445
448
466
468
470
494
494
496
512
513
515
535
538
538
558
563
563
575
576
576
581
581
597
603
603
623
629
629
646
648
923
927
928
4
5
5
5
6
7
7
8
14
15
15
15
15
15
19
19
19
19
19
19
19
19
19
19
19
20
20
21
21
21
21
21
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
24
24
25
25
25
25
26
26
26
26
26
26
27
27
28
28
28
30
31
31
34
34
37
37
38
38
38
38
38
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
47
48
48
48
48
52
52
52
52
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
59
60
60
60
60
61
61
61
61
61
61
61
61
61
62
62
62
63
63
64
66
66
66
66
67
67
67
69
69
74
76
76
76
76
76
77
78
85
86
87
89
90
91
91
93
93
94
94
95
101
101
102
105
105
106
106
106
106
106
107
107
107
108
108
108
108
109
109
111
111
111
112
114
115
115
116
121
121
122
122
122
122
122
123
123
123
125
125
125
126
126
134
137
137
138
138
138
138
139
139
140
140
140
141
141
141
141
141
142
142
142
142
143
143
143
143
144
145
146
146
151
152
152
153
157
157
157
158
158
158
159
159
159
159
159
160
160
160
160
160
160
160
160
161
161
162
162
164
164
165
165
172
172
173
173
174
180
180
180
180
182
189
189
191
193
196
197
197
198
198
202
202
202
202
202
202
203
204
204
204
204
205
211
212
212
212
214
214
222
226
228
228
229
234
234
234
235
235
235
237
239
239
240
240
242
243
243
244
245
247
255
259
259
259
260
260
268
268
268
269
270
270
271
273
273
273
274
274
274
274
275
275
277
277
285
286
289
291
291
291
291
298
298
299
308
309
312
316
318
321
324
327
328
329
335
340
340
343
348
348
363
368
368
371
374
376
394
399
399
423
428
428
444
446
449
467
469
469
471
495
495
497
513
514
516
536
539
559
564
564
576
582
582
598
604
604
624
630
630
647
649
924
928
929
7
8
8
9
13
15
16
19
20
20
20
20
20
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
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
38
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
45
45
45
45
46
46
46
46
48
49
49
49
49
50
50
50
50
52
52
53
53
53
54
54
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
57
57
58
58
58
58
59
59
59
59
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
62
62
64
65
67
67
68
68
70
70
74
75
75
76
77
77
77
78
79
79
84
84
86
87
89
89
90
91
92
92
94
94
94
95
95
96
105
105
105
106
106
106
106
106
107
107
107
107
107
108
108
108
109
112
112
112
113
115
115
115
116
117
121
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
125
126
126
135
138
139
139
139
140
140
142
142
143
143
143
143
144
144
144
144
146
147
147
149
151
152
153
153
153
154
158
158
158
159
160
160
160
161
161
161
161
161
161
162
162
163
163
165
165
165
166
166
174
174
175
179
181
181
181
181
189
192
192
192
192
194
197
198
198
199
199
203
203
203
203
203
203
205
205
206
211
211
211
212
213
213
213
223
226
229
229
230
235
235
235
235
235
236
236
236
240
240
241
241
244
244
245
246
248
256
257
260
260
261
261
267
267
269
269
270
271
272
272
272
274
274
274
274
275
275
275
275
276
276
278
278
287
290
292
292
292
298
298
299
300
308
310
313
317
319
322
325
329
330
336
341
341
344
349
349
364
369
372
375
377
395
400
400
424
429
429
447
450
470
470
472
496
496
498
514
515
517
537
540
560
565
565
577
583
583
599
605
605
625
631
631
648
650
925
929
930
1
1
5
8
8
9
9
9
9
10
13
13
15
19
19
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
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
27
27
28
28
28
30
37
37
38
38
38
38
38
38
39
40
40
41
41
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
45
45
47
47
47
47
49
50
50
50
50
51
51
51
51
51
54
54
54
54
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
57
57
57
57
58
58
59
60
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
63
65
68
68
69
69
69
69
71
71
74
75
77
78
79
79
80
80
82
84
85
91
92
93
93
94
95
95
95
96
96
97
99
106
107
107
108
108
108
108
108
109
109
109
113
113
113
114
115
116
116
117
118
118
121
123
124
125
125
125
125
125
125
125
125
125
125
136
138
139
139
139
139
141
141
141
142
142
143
143
144
144
144
145
145
147
150
151
152
153
153
155
155
157
157
159
159
159
159
160
160
160
161
161
161
161
161
162
162
162
162
162
164
164
165
166
166
167
167
170
175
175
176
179
182
182
189
193
193
195
198
199
199
199
200
200
204
204
204
204
204
204
204
204
206
206
213
214
214
214
224
230
230
231
236
236
236
237
237
237
239
241
241
242
242
244
245
245
247
249
257
258
260
262
262
265
267
268
270
272
273
275
275
275
275
275
275
276
276
277
277
279
279
288
289
291
293
293
298
299
300
301
301
311
314
318
320
323
325
326
330
337
342
342
345
350
350
365
368
368
370
373
376
378
396
401
401
425
430
430
444
448
448
451
471
471
473
497
497
499
515
516
518
538
541
561
566
566
578
584
584
600
606
606
626
632
632
641
649
651
926
930
931
1
1
1
4
5
6
9
9
10
10
10
11
15
15
15
16
16
16
16
18
18
18
18
19
19
19
19
20
20
20
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
28
28
29
29
31
35
37
38
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
45
46
46
46
46
46
48
48
48
48
48
50
51
51
51
51
51
51
51
51
52
52
52
52
52
53
53
54
54
54
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
58
58
59
59
59
59
61
61
61
62
62
63
63
63
64
64
65
69
69
69
70
70
70
72
72
77
79
81
81
82
82
84
84
85
86
92
94
94
94
95
96
96
97
97
98
99
99
99
100
102
106
106
107
107
108
108
109
109
109
110
110
113
114
114
114
115
117
117
118
121
121
124
125
126
126
126
126
137
138
138
138
139
140
140
140
140
142
142
142
143
143
143
147
147
148
151
152
152
153
153
156
156
158
159
159
159
160
160
160
161
161
161
161
162
162
162
162
162
162
162
163
163
163
165
167
167
168
168
171
175
176
177
179
180
183
183
193
196
199
200
200
200
200
200
201
201
205
205
205
205
205
205
205
212
214
215
215
225
231
232
233
237
237
237
238
238
238
240
242
242
243
243
244
245
245
245
245
245
246
248
250
258
260
263
263
265
265
267
267
268
269
271
273
274
276
276
276
276
276
277
277
278
278
278
278
280
280
285
289
289
290
294
294
296
300
301
306
310
312
315
319
321
321
324
324
325
326
330
330
331
338
343
343
346
351
351
366
369
371
374
377
379
397
402
402
426
431
431
449
449
452
472
472
474
498
498
500
516
517
519
539
542
562
567
579
585
585
601
607
607
627
633
642
647
650
652
927
931
931
932
1
4
5
6
7
10
11
11
12
13
13
16
17
17
18
18
18
18
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
27
27
28
28
28
28
29
30
30
36
36
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
46
46
46
46
47
47
47
49
49
49
49
51
52
53
53
53
53
53
54
54
55
55
55
55
55
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
60
60
62
62
63
63
64
64
65
65
65
65
69
69
70
70
71
71
71
73
75
75
75
75
79
85
85
86
87
93
94
94
94
94
95
97
97
98
98
99
99
100
100
100
100
101
101
102
106
107
107
107
108
108
108
109
114
114
115
115
115
116
118
118
118
122
122
122
123
123
123
125
126
126
134
136
136
138
140
141
141
141
141
148
148
149
152
154
154
157
157
157
160
160
161
161
162
162
163
163
163
163
163
164
164
164
166
168
168
169
169
171
171
175
175
175
177
178
180
181
184
184
193
197
200
201
201
201
201
202
202
204
206
206
206
206
206
206
206
213
213
226
230
230
232
233
234
238
238
238
239
239
243
243
244
244
246
246
246
247
249
251
258
259
264
264
268
268
269
270
272
274
275
277
277
277
277
277
277
277
278
279
279
279
279
281
281
285
289
290
290
291
295
295
297
297
301
301
305
311
313
316
317
320
325
325
331
331
332
339
344
344
347
352
352
367
370
372
375
378
380
398
403
403
427
432
450
450
453
473
473
475
499
499
501
517
518
520
538
538
540
543
563
568
580
586
586
602
608
608
628
632
632
634
648
651
653
928
931
932
933
2
2
5
5
7
11
12
12
13
15
15
18
18
18
18
18
18
19
19
19
19
20
20
20
20
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
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
28
29
29
29
29
31
33
37
37
39
40
40
40
40
40
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
44
44
44
44
45
45
45
45
46
46
46
47
47
48
48
48
48
48
50
50
50
50
50
50
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
55
55
56
56
56
56
56
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
59
59
61
61
61
61
63
64
65
66
66
66
70
70
71
71
72
72
74
75
76
76
79
79
79
80
86
87
87
94
95
95
96
98
98
99
99
100
101
101
101
102
102
107
108
109
110
116
116
116
116
116
117
119
119
119
123
123
124
124
124
124
125
125
125
125
126
126
135
137
137
137
139
139
141
142
142
142
144
144
144
145
145
145
149
149
152
153
153
153
153
155
155
158
158
158
159
160
160
160
161
161
161
161
161
161
162
162
162
164
164
164
164
164
165
167
169
169
170
170
176
176
178
179
179
181
182
185
185
188
198
200
201
201
201
201
201
202
202
202
203
203
204
204
205
207
207
207
207
207
207
224
227
231
233
234
234
234
238
238
238
239
239
239
240
240
244
244
244
245
245
245
247
247
247
250
252
260
265
265
269
270
270
273
274
276
278
278
278
278
278
279
280
280
280
280
282
282
290
291
291
292
296
302
302
306
306
308
308
312
314
317
318
320
320
321
326
326
332
332
340
345
345
348
353
353
368
371
373
379
381
399
404
404
426
428
433
451
451
454
474
474
476
500
500
502
518
519
521
539
541
544
564
569
581
587
587
603
609
609
629
633
635
649
652
654
929
933
934
3
3
6
7
8
11
12
12
13
13
13
13
14
14
15
15
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
22
22
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
25
25
25
26
26
26
26
27
27
27
27
27
27
28
28
28
29
29
30
30
32
34
34
35
35
37
38
38
38
38
38
38
39
40
40
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
43
44
44
44
44
44
44
45
45
47
47
47
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
52
53
53
53
53
53
53
53
54
54
54
55
55
55
55
56
56
56
56
57
57
57
57
57
57
57
58
58
58
59
59
59
61
61
62
64
66
71
71
72
72
73
75
80
80
80
81
95
96
96
99
99
100
100
100
101
101
101
101
103
103
109
109
109
109
110
110
110
110
111
117
117
117
118
120
120
120
125
125
126
126
126
126
126
126
126
126
126
126
138
138
138
140
140
140
142
143
143
144
145
145
145
146
146
147
152
152
152
153
154
154
154
154
158
159
159
160
160
161
161
161
161
161
162
162
162
162
162
162
162
163
163
163
163
165
166
168
170
170
171
171
175
175
177
177
180
180
182
182
186
186
189
189
189
189
199
202
202
202
203
203
203
203
204
204
204
205
206
208
208
208
208
208
208
215
225
228
232
234
235
238
239
239
240
240
240
241
241
245
245
246
246
246
248
251
253
261
266
266
274
275
277
277
279
279
279
279
279
281
281
281
281
283
283
292
292
293
297
303
303
309
309
313
315
318
321
321
322
327
327
330
341
346
346
349
354
354
369
372
374
380
382
400
405
405
427
429
431
431
434
452
452
455
475
475
477
501
501
503
519
520
522
540
542
545
565
570
582
588
588
604
610
610
630
634
636
650
653
655
930
934
935
4
4
4
4
5
8
9
14
14
15
15
17
17
18
18
18
18
18
18
18
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
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
29
29
30
30
31
33
35
36
36
36
36
36
36
36
36
37
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
44
45
45
45
45
45
45
46
46
46
48
48
48
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
53
54
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
56
58
59
59
59
60
60
61
61
61
63
72
73
73
74
76
79
81
81
81
81
81
92
96
100
100
100
100
100
101
101
102
102
102
102
107
108
109
109
109
109
109
110
110
110
111
111
111
112
114
118
118
118
118
119
121
125
126
127
127
127
127
135
138
138
138
138
139
139
141
142
143
143
144
144
144
154
155
155
155
155
159
159
160
160
161
161
161
162
162
162
162
163
163
163
164
164
164
164
166
167
169
171
171
172
172
175
179
181
181
187
187
190
190
192
200
201
201
203
203
203
204
204
204
205
205
206
207
209
209
209
209
209
209
215
226
226
229
233
234
235
236
239
240
240
241
241
241
242
244
246
246
247
247
247
249
252
252
254
254
262
267
267
275
275
278
278
280
280
280
282
282
282
282
284
284
292
292
292
292
293
294
295
295
297
298
301
309
314
316
318
319
321
321
321
321
322
323
325
328
328
342
347
347
350
355
355
370
373
375
381
383
401
406
406
427
430
432
435
453
453
456
476
476
478
502
502
504
520
521
523
541
543
546
566
571
583
589
589
605
611
611
631
635
637
651
654
654
656
656
931
935
936
5
5
5
5
9
10
13
13
15
15
15
16
16
16
17
17
17
18
18
18
18
18
18
19
19
19
19
20
20
20
20
20
20
20
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
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
26
26
26
26
26
26
26
26
27
28
29
30
32
34
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
45
46
46
46
47
47
47
48
48
48
48
49
49
49
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
59
59
60
61
61
62
69
72
72
72
72
74
75
77
80
80
81
81
82
82
87
94
97
101
102
102
103
103
103
103
108
108
109
109
110
110
112
113
114
118
119
119
119
119
120
122
124
125
126
127
127
139
139
140
140
142
142
142
142
142
143
145
145
147
147
153
155
156
156
156
160
160
161
161
161
162
162
162
162
163
163
163
163
163
164
164
164
165
165
165
167
168
170
171
172
172
173
173
175
176
180
180
182
182
182
188
188
188
188
190
193
193
193
193
201
202
204
204
205
205
205
206
206
207
210
210
210
210
210
210
227
227
227
227
230
234
236
237
240
242
242
242
243
244
245
245
247
247
248
248
250
255
255
263
268
268
270
276
277
279
279
281
281
281
283
283
285
285
293
293
294
295
296
297
299
301
302
309
315
317
317
320
320
322
322
323
324
325
326
329
329
330
330
343
348
348
351
356
356
371
374
375
376
382
384
402
407
407
431
433
436
454
454
457
477
479
503
505
521
522
524
542
544
547
547
565
566
567
572
584
590
590
590
590
606
612
612
632
636
638
652
657
657
932
936
937
6
6
9
10
11
11
13
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
24
25
25
25
25
25
25
25
25
25
25
25
25
26
27
27
27
28
28
31
33
33
35
36
37
37
37
37
39
39
39
39
40
40
40
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
45
45
45
45
46
46
46
46
46
46
47
47
47
48
48
48
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
56
56
56
57
57
57
57
57
57
58
60
61
62
63
70
73
73
73
75
76
76
77
77
78
81
81
82
83
83
85
94
94
94
94
95
98
101
102
103
103
104
104
104
111
111
114
119
120
120
120
120
121
123
125
125
125
125
126
126
127
127
138
138
140
140
140
141
142
142
142
143
143
145
145
145
146
146
146
146
146
148
148
154
154
157
161
161
161
161
162
162
162
163
163
163
163
163
163
164
164
164
164
165
165
165
166
166
166
166
166
168
169
171
171
173
173
174
174
176
177
180
182
183
183
183
189
189
190
194
194
201
202
203
204
205
205
206
206
207
207
207
207
208
211
211
211
211
211
211
215
215
225
227
227
228
228
231
235
237
238
238
241
243
243
243
244
245
245
246
248
248
249
249
251
256
256
260
260
264
268
269
269
277
277
277
277
277
278
280
280
282
282
282
282
282
284
284
284
284
286
286
294
294
295
297
300
302
303
316
321
321
321
321
323
323
325
325
330
330
331
331
344
349
349
352
357
357
372
375
376
377
380
383
385
403
408
408
428
428
432
434
437
455
455
458
476
478
478
480
504
506
522
523
525
543
544
548
548
567
568
573
585
591
591
607
613
613
633
637
639
653
658
658
933
937
938
7
7
12
12
13
13
13
17
17
18
18
18
18
18
19
19
19
19
20
20
20
20
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
23
24
24
24
24
24
25
25
25
26
26
27
27
28
30
32
34
34
34
34
35
35
35
35
36
37
37
37
38
38
38
39
39
39
39
39
40
40
41
41
41
41
42
42
42
42
42
44
44
46
46
46
46
47
47
47
47
47
47
48
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
57
57
57
57
57
58
58
58
59
59
61
63
64
74
74
75
77
77
78
78
79
81
81
82
83
94
95
95
96
99
102
102
102
103
104
105
110
110
110
111
111
111
114
114
115
118
120
121
121
121
122
122
124
124
126
126
127
127
127
127
127
127
127
127
139
141
141
142
143
143
144
145
146
146
146
147
147
147
147
147
149
149
149
158
160
161
161
162
163
163
163
164
164
164
165
165
165
165
166
166
166
166
166
167
167
167
169
170
172
174
174
175
175
175
177
178
180
182
183
184
184
184
190
190
194
201
201
202
203
206
207
207
208
208
208
208
209
212
212
212
212
212
212
213
216
216
228
229
229
232
234
236
238
238
239
239
244
244
244
245
245
246
247
249
249
250
250
252
257
257
258
261
261
265
270
270
277
278
278
278
279
281
281
283
283
283
285
285
285
285
287
287
296
297
297
298
301
301
303
317
322
322
322
326
326
330
331
331
332
332
332
345
350
350
353
358
358
376
378
381
384
386
404
409
409
429
429
429
429
433
435
438
456
459
479
479
481
504
505
507
523
524
524
526
526
544
549
549
568
569
574
586
592
592
608
614
614
634
638
640
654
659
659
934
938
939
5
7
8
8
11
12
13
13
13
18
18
18
18
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
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
26
26
27
27
31
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
41
41
42
42
42
42
42
43
43
43
43
45
46
46
46
46
46
46
47
47
48
48
48
48
48
48
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
58
59
60
61
64
72
76
78
78
78
79
80
80
81
81
82
82
83
96
96
97
100
100
103
104
105
106
107
108
109
109
110
111
111
111
112
112
115
115
116
118
118
119
119
122
122
122
123
125
125
126
128
128
128
128
138
140
143
144
144
145
145
147
148
148
148
156
159
161
161
162
163
163
163
164
164
164
164
164
164
164
164
166
166
166
166
167
167
168
168
168
168
170
171
171
173
173
175
175
176
176
176
178
178
180
180
183
184
185
191
191
194
200
201
202
203
204
207
208
208
209
209
209
209
213
213
213
213
213
213
214
214
227
227
229
233
234
237
239
239
240
240
245
245
245
246
246
247
250
250
251
251
253
258
258
259
261
262
266
271
271
279
279
279
280
282
284
284
284
286
286
286
286
288
288
290
292
297
298
298
299
301
301
302
302
302
306
318
321
323
323
323
327
330
331
332
332
346
351
351
354
359
359
377
379
382
385
387
405
410
410
429
429
429
429
430
430
434
436
439
455
457
458
460
480
480
482
502
505
506
508
524
527
527
545
550
550
569
570
570
575
575
587
593
593
609
615
615
635
639
641
655
660
660
935
939
940
7
7
9
12
13
13
14
14
15
15
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
26
26
26
27
28
29
32
36
36
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
41
41
42
42
43
43
43
43
43
43
44
44
44
45
45
45
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
50
50
50
50
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
57
57
57
57
57
57
57
57
58
59
59
60
60
64
64
64
65
72
72
73
76
76
78
79
79
79
80
81
81
81
83
83
87
92
97
97
99
100
101
101
104
104
104
104
105
106
106
107
109
109
109
109
110
110
110
117
119
119
123
123
123
124
124
125
126
126
126
126
126
128
128
138
138
139
143
143
143
144
148
148
149
149
149
149
156
160
161
161
162
162
162
163
163
163
163
163
163
164
164
164
165
165
165
165
165
165
165
165
166
166
168
168
171
172
174
174
175
176
176
177
177
177
181
181
182
182
182
184
186
189
192
192
201
203
204
205
207
208
209
209
210
210
214
214
214
214
214
214
228
238
238
240
240
241
241
246
246
246
246
246
247
247
247
247
248
251
251
252
252
254
259
259
259
259
261
262
263
267
270
272
272
275
280
280
280
281
283
283
285
285
285
287
287
287
287
289
289
292
292
293
298
300
302
302
303
307
307
309
309
319
321
321
322
324
324
328
331
331
332
332
333
333
347
352
352
355
360
360
378
380
383
386
388
406
411
411
430
430
431
431
435
437
440
458
459
461
481
481
483
506
507
509
525
528
528
546
551
551
570
576
576
588
594
594
610
616
616
640
642
656
661
661
936
940
941
1
8
8
10
13
13
14
14
15
15
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
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
23
24
24
24
24
24
24
25
26
26
26
26
27
30
30
33
33
34
36
37
37
37
37
37
37
37
37
37
37
38
38
38
39
39
39
39
39
39
39
41
44
45
45
46
46
46
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
54
54
55
55
55
56
56
56
56
56
56
56
57
57
57
57
57
57
57
58
58
58
58
59
59
60
65
65
66
70
72
72
73
74
79
80
80
80
81
82
84
84
88
88
93
98
101
102
104
105
105
105
106
107
107
108
109
109
110
111
118
120
120
120
120
124
124
124
126
126
126
126
127
127
127
127
128
128
128
128
128
128
135
138
139
140
141
143
144
144
145
146
147
150
150
150
150
159
161
162
162
163
164
164
165
166
166
166
166
166
166
166
166
167
169
172
173
175
175
176
176
177
177
178
178
178
178
183
183
183
183
187
190
190
190
190
193
193
201
202
204
204
206
209
210
210
211
211
215
215
215
215
215
215
216
227
227
229
239
239
241
241
242
247
247
247
248
248
248
249
252
252
253
253
255
260
260
262
263
264
268
271
271
273
273
276
281
281
284
284
286
286
286
288
288
288
288
290
290
292
292
293
294
299
301
303
303
303
303
304
310
310
318
320
321
322
323
325
325
329
333
333
334
334
348
353
353
356
361
361
372
379
381
384
387
387
389
389
407
412
412
431
431
436
438
441
459
460
462
482
482
484
507
508
510
526
529
529
547
552
552
571
577
577
589
595
595
611
617
617
641
643
657
662
662
937
941
942
1
1
5
9
9
10
11
16
16
18
18
18
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
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
24
24
24
24
25
26
26
26
27
27
27
34
34
34
35
35
35
35
35
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
42
45
45
45
46
46
47
47
47
48
48
48
49
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
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
55
55
56
56
57
57
57
57
57
57
57
57
57
57
58
59
59
59
60
60
61
64
64
64
66
66
71
71
72
73
74
75
75
78
78
80
81
81
81
83
84
85
87
93
97
97
99
102
103
103
106
107
108
108
109
109
110
111
111
112
112
112
119
120
120
121
121
125
125
125
127
127
127
128
128
129
129
129
129
136
140
141
142
142
146
146
146
146
147
147
147
148
149
149
149
151
151
151
151
156
156
160
160
162
162
163
163
163
164
164
165
165
166
166
167
167
167
167
167
167
168
170
173
174
176
176
176
178
178
178
179
179
179
179
184
184
188
191
191
194
194
201
202
204
204
204
205
205
207
207
207
210
211
211
212
212
216
216
216
216
216
227
227
228
228
239
239
240
241
241
241
242
242
243
246
247
247
247
248
248
248
249
249
249
253
254
256
261
261
261
261
263
264
268
269
270
274
274
276
280
280
282
282
285
285
287
287
287
289
289
289
289
291
291
292
293
294
295
295
300
302
303
303
304
304
305
310
319
321
323
324
326
326
330
331
332
332
332
334
334
335
335
349
354
354
357
362
362
373
377
380
382
385
390
390
408
413
413
439
442
460
461
463
483
483
485
508
509
511
527
530
530
548
553
553
572
578
578
590
596
596
612
618
618
642
644
658
663
663
938
942
943
1
4
5
5
5
5
10
10
11
12
15
15
15
15
17
17
17
18
18
18
18
18
18
18
18
18
19
19
20
20
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
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
27
27
35
36
36
36
36
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
42
42
45
46
46
46
47
47
48
48
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
53
53
53
53
54
54
54
54
54
55
55
55
55
55
55
55
55
55
56
56
57
57
58
58
58
58
58
59
59
59
60
60
60
60
60
61
62
65
65
65
70
74
75
75
76
76
76
78
79
81
82
82
84
84
86
86
88
88
93
98
98
100
103
107
107
108
109
109
110
111
111
111
111
112
112
112
112
120
120
120
121
122
122
126
126
126
127
127
127
127
129
129
129
129
129
129
129
129
129
129
130
130
136
137
141
144
145
147
147
147
147
147
148
148
148
148
148
148
148
149
150
150
150
152
152
154
157
157
162
162
163
163
164
164
164
165
165
166
166
167
167
167
167
168
168
171
174
175
176
177
177
178
179
179
180
180
180
184
189
191
195
195
204
205
205
206
208
208
208
211
212
212
213
213
215
215
215
215
217
217
217
217
229
229
233
241
242
242
243
243
244
246
246
248
248
248
249
249
249
250
254
255
257
259
261
262
262
262
269
269
270
271
271
275
275
276
281
281
283
283
286
286
288
288
288
290
290
290
290
290
292
292
294
295
303
303
303
304
305
305
306
310
319
320
322
324
327
327
331
331
331
331
332
333
333
333
336
336
350
355
355
358
363
378
381
383
386
391
391
409
414
414
429
436
440
440
443
461
462
464
484
484
486
509
510
512
528
531
531
549
554
554
573
579
579
591
597
597
613
619
619
635
643
645
659
664
664
939
943
944
1
4
4
5
6
11
11
11
11
11
11
11
12
13
15
15
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
25
26
27
27
27
35
36
36
36
36
36
36
38
38
38
38
38
39
39
39
40
40
40
40
40
41
41
42
42
42
42
42
44
44
47
47
47
49
49
49
49
49
49
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
53
53
54
55
55
55
55
56
57
57
58
59
59
59
59
60
60
61
61
61
62
63
66
66
66
75
76
76
77
77
78
78
79
80
82
82
83
83
84
84
85
86
88
89
89
93
97
99
99
104
105
105
105
108
108
108
109
109
110
110
110
111
112
112
112
112
112
112
113
113
113
113
120
120
121
121
122
127
127
127
127
127
127
128
128
130
130
130
130
130
130
131
131
136
137
141
141
142
144
145
146
147
147
148
148
148
148
148
149
149
150
151
151
151
153
153
155
155
162
164
165
165
165
167
167
167
167
168
168
169
169
172
175
176
176
176
178
178
179
180
180
181
184
190
191
193
196
196
205
206
206
207
209
209
209
209
212
213
213
214
214
216
216
216
216
218
218
218
218
225
230
230
234
239
239
241
242
243
243
244
245
249
249
249
250
250
250
251
252
252
253
253
255
256
258
259
259
261
261
262
263
263
263
269
271
271
272
272
276
276
276
280
282
282
284
287
287
289
289
289
291
291
291
291
291
291
293
293
295
295
303
303
304
304
305
307
319
320
323
324
324
325
328
328
332
333
334
334
334
337
337
351
356
356
359
362
362
364
379
382
384
387
392
392
410
415
415
429
429
430
441
441
444
462
463
465
485
485
487
510
511
513
529
532
532
550
555
555
574
580
580
592
598
598
614
620
620
636
641
644
646
660
665
665
943
944
945
6
7
7
12
13
13
14
15
15
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
26
26
26
26
27
33
34
36
36
36
36
36
36
36
36
36
36
37
37
37
38
38
38
38
39
39
39
40
40
40
40
40
41
41
41
43
43
43
44
44
45
45
45
45
45
45
45
46
46
47
47
47
47
48
48
48
48
49
50
50
50
50
50
50
50
50
50
51
51
51
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
55
55
56
56
56
57
58
60
60
60
60
61
61
62
62
63
64
64
67
67
71
71
71
75
79
79
80
81
84
84
85
85
86
86
88
89
90
90
98
100
103
105
105
106
106
109
110
110
111
111
111
112
112
112
113
113
113
113
113
113
114
114
119
120
120
121
121
122
122
128
128
128
128
128
129
129
129
129
129
129
131
131
131
131
131
131
142
142
143
144
144
144
147
148
148
149
149
149
149
149
150
150
151
152
152
154
154
162
163
164
165
165
165
165
165
166
166
168
168
169
169
170
170
173
176
177
177
177
178
178
178
178
178
179
179
179
179
180
181
182
191
194
194
194
197
197
204
207
208
210
213
214
214
214
215
217
217
217
217
219
219
219
219
226
231
240
242
243
245
246
247
250
250
251
251
252
253
254
256
257
259
262
262
263
264
264
264
269
271
272
272
273
273
277
277
281
283
285
288
288
290
290
290
292
292
292
292
294
294
296
296
302
303
303
304
304
305
305
308
324
325
325
326
329
329
332
333
334
335
335
338
338
352
357
357
360
363
365
380
383
385
388
393
393
411
416
416
429
430
431
442
442
445
463
464
466
486
486
488
511
512
514
530
533
533
551
556
556
575
581
581
593
599
599
615
621
621
642
645
647
661
666
666
939
944
945
946
7
7
7
7
13
13
13
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
17
18
18
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
25
25
25
26
26
26
26
27
29
31
31
31
31
34
34
35
35
35
37
37
37
37
37
37
37
37
37
38
38
38
38
38
39
40
40
41
41
41
41
42
42
42
44
44
44
44
44
45
45
46
46
46
46
46
46
46
46
46
46
46
47
47
48
48
48
48
49
49
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
56
57
57
57
59
61
61
61
62
63
63
64
65
65
67
71
72
72
75
75
75
76
80
81
81
85
85
85
87
89
90
97
99
104
104
106
110
111
112
112
112
112
112
113
113
113
114
114
114
114
114
115
115
120
120
122
122
123
126
128
128
128
128
128
128
128
128
129
129
129
129
129
129
130
130
130
130
132
132
142
143
143
145
145
145
145
147
147
147
148
148
148
148
149
149
150
150
150
150
155
155
157
164
165
166
166
166
166
168
168
169
169
170
171
171
174
177
178
179
179
179
179
179
180
180
180
182
183
192
195
195
198
198
201
208
208
209
209
211
214
214
214
215
215
215
215
216
218
218
220
220
220
220
226
226
230
230
230
232
239
241
243
244
246
247
248
250
252
252
253
254
255
257
258
260
263
264
264
265
265
272
273
273
278
278
280
282
286
289
289
291
291
291
293
293
295
295
297
297
300
303
303
304
305
305
306
309
325
326
326
330
330
333
333
334
339
339
353
358
358
361
364
366
381
384
384
386
386
389
394
394
412
417
417
431
432
443
443
446
464
465
467
487
487
489
512
513
515
531
534
534
552
557
557
576
582
582
594
600
600
616
622
622
643
646
648
662
667
667
945
946
947
4
5
7
13
14
14
15
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
18
18
18
19
19
20
20
20
20
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
23
23
23
23
24
24
24
24
24
24
24
25
25
25
26
26
26
26
27
30
30
31
31
32
32
32
32
32
32
32
32
36
36
36
37
37
37
37
39
39
41
42
42
42
42
42
42
43
43
44
44
44
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
54
54
54
54
54
55
55
55
55
55
55
58
58
60
61
62
62
63
64
64
64
66
67
76
76
76
77
82
85
86
86
88
90
93
97
98
107
108
111
112
112
112
112
112
113
113
113
113
113
113
114
114
114
115
123
123
124
127
129
129
129
129
129
129
130
130
130
130
131
131
131
131
133
133
141
143
145
145
145
146
146
146
148
149
149
150
151
156
157
165
165
166
166
166
166
166
166
167
167
167
168
168
169
169
169
169
170
170
171
172
172
175
178
179
180
180
180
181
181
181
183
183
184
193
194
195
195
195
195
196
199
199
201
202
204
204
210
210
212
215
215
216
216
217
219
219
221
221
221
230
231
231
233
239
240
241
242
245
247
248
250
250
250
253
253
254
255
256
258
259
261
266
266
273
274
276
279
279
280
281
287
290
290
291
292
292
292
294
294
295
296
296
305
306
306
307
310
324
326
331
331
335
340
340
354
359
359
362
365
367
382
387
387
390
395
395
413
418
418
427
432
444
444
447
464
466
468
488
488
490
513
514
516
532
535
535
553
558
577
583
583
595
601
601
617
623
644
647
649
663
668
668
946
947
948
7
8
12
13
13
15
15
16
16
17
17
17
17
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
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
26
26
27
27
28
32
32
32
32
32
35
35
35
35
35
36
36
38
38
38
38
38
39
43
44
44
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
54
54
54
55
55
57
59
59
61
62
62
63
63
64
65
65
65
65
65
67
75
77
77
77
77
77
83
83
85
85
87
87
88
88
89
93
97
98
99
106
108
108
110
111
112
112
113
113
113
114
114
114
114
115
115
123
124
125
128
128
128
129
129
129
129
130
130
130
130
130
130
131
131
131
132
132
134
136
145
145
146
146
147
147
147
148
149
150
150
151
152
152
157
164
164
167
168
168
168
169
169
170
170
170
170
171
171
172
173
173
176
179
180
180
181
182
182
182
182
182
184
184
184
184
184
185
194
196
196
197
200
200
201
205
205
208
209
209
209
211
211
213
216
216
217
218
220
220
220
220
222
222
222
226
231
232
232
240
241
241
242
243
246
246
248
248
248
249
251
254
254
255
256
257
259
260
262
267
267
271
271
275
276
280
280
280
281
282
288
291
291
291
293
293
294
294
295
295
295
296
297
297
306
306
307
308
311
319
327
332
332
335
336
341
341
355
360
363
366
368
383
388
388
391
396
396
414
419
419
428
432
433
445
445
448
465
467
467
469
489
489
491
514
515
517
533
536
554
559
578
584
584
584
584
596
602
602
618
622
622
624
645
648
648
650
650
664
669
669
947
948
949
8
9
11
11
13
13
14
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
18
18
18
18
18
18
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
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
25
25
26
26
27
28
29
30
30
32
33
33
33
33
33
33
34
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
38
38
38
43
44
44
44
44
44
45
45
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
52
52
52
53
53
53
53
53
53
53
53
54
55
55
55
55
59
60
60
60
62
63
63
64
64
65
66
66
66
68
76
76
77
77
78
78
81
86
86
86
86
88
88
88
89
89
90
98
99
100
106
106
106
109
110
111
112
113
113
113
114
114
114
115
115
115
115
116
116
123
125
126
127
127
127
127
128
129
129
129
129
130
130
131
131
132
132
132
132
132
132
132
133
133
135
136
137
141
141
145
145
145
146
146
147
147
147
148
148
149
151
152
152
153
157
157
158
160
165
167
168
168
168
169
169
170
170
171
171
171
171
174
177
180
180
181
182
183
183
183
185
185
185
186
190
195
195
195
197
197
201
201
202
204
206
206
206
208
208
208
209
210
210
210
214
217
217
217
219
221
221
221
223
223
223
232
242
242
243
244
249
249
250
252
255
257
258
260
261
263
264
268
268
269
269
271
272
272
276
281
281
281
282
283
289
292
292
292
294
294
295
295
296
296
296
297
298
298
306
307
308
309
310
310
312
319
320
324
324
328
333
333
335
337
342
342
356
359
359
361
364
367
369
384
389
389
392
397
397
415
420
420
428
432
434
446
446
449
468
468
470
490
490
492
515
516
518
534
537
555
560
579
585
585
597
603
603
619
623
625
646
651
651
665
670
670
948
949
950
7
7
7
8
11
11
13
15
15
15
16
16
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
26
26
27
27
28
28
29
29
30
31
31
31
31
31
31
31
31
32
34
34
35
35
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
39
39
39
40
40
44
45
45
45
45
45
45
45
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
51
51
51
53
53
53
54
55
55
59
59
60
61
63
64
64
65
65
66
67
67
67
69
77
77
78
79
79
79
86
89
89
89
90
90
91
100
101
104
107
107
107
107
108
108
110
111
112
112
112
113
113
114
114
114
115
116
116
116
117
117
127
128
128
128
128
130
130
132
132
133
133
133
133
133
133
133
134
134
136
136
142
142
143
146
146
146
147
147
147
149
150
150
150
151
151
152
153
154
155
158
158
159
161
165
165
166
166
166
167
168
168
168
169
169
169
169
170
175
178
183
184
184
184
185
186
187
191
191
191
196
196
202
202
204
205
210
211
211
211
215
218
218
220
222
222
222
224
224
224
230
233
242
243
243
245
250
250
251
253
254
255
256
258
258
259
259
261
262
262
264
269
269
272
273
273
277
282
282
283
284
290
291
291
292
292
293
295
295
295
296
296
297
297
297
299
299
308
310
311
311
313
319
325
325
329
334
334
338
343
343
357
360
362
365
368
370
385
390
390
393
398
398
416
421
421
428
432
433
435
447
447
450
469
469
471
491
491
493
516
517
519
535
538
556
561
580
586
586
598
604
604
620
624
626
647
652
652
666
671
671
949
950
951
8
8
8
9
9
9
9
16
16
16
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
20
20
20
20
21
21
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
25
26
26
28
29
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
33
33
33
37
37
37
37
37
37
38
38
39
39
39
40
41
41
45
46
46
46
46
46
46
46
47
47
47
47
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
53
53
53
54
57
59
59
59
60
61
61
62
64
65
65
66
66
67
68
68
68
70
77
77
78
79
86
86
86
90
90
91
91
92
100
100
100
100
102
105
107
107
108
108
109
109
111
111
111
112
112
112
112
113
113
114
115
115
115
115
116
116
116
116
117
117
117
118
118
118
125
128
128
128
128
128
128
128
129
129
129
131
134
134
134
134
134
134
134
137
137
141
143
143
143
143
145
147
148
150
150
151
151
151
151
152
152
152
152
153
154
155
156
156
160
162
162
165
166
166
166
166
167
168
168
168
168
168
169
169
169
169
170
170
170
170
171
173
173
176
179
184
185
185
185
185
187
188
192
192
195
197
197
203
203
205
205
206
206
209
211
212
212
216
216
219
219
221
223
223
223
225
225
225
226
230
231
242
243
243
243
243
244
246
251
251
252
254
257
259
259
260
260
262
263
265
270
270
274
274
278
283
283
283
283
283
283
285
291
292
292
293
293
294
295
295
296
296
296
296
297
297
298
298
300
300
308
309
311
311
311
311
311
311
312
314
314
320
324
326
326
326
330
335
335
335
335
339
344
344
358
361
363
366
369
371
386
391
391
394
399
399
417
422
422
432
433
434
448
451
470
470
472
492
492
494
517
518
518
520
520
536
539
557
562
581
587
587
599
605
605
621
625
627
648
653
653
667
672
672
950
951
952
7
7
9
10
10
15
15
15
15
15
15
15
16
17
17
17
17
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
20
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
23
24
24
24
24
24
24
25
25
25
26
29
29
30
30
31
32
32
32
32
32
32
33
34
34
34
35
35
35
35
35
35
36
38
39
42
42
46
46
47
47
47
47
47
47
47
47
48
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
53
53
53
53
55
59
60
61
62
62
63
65
66
66
67
67
68
69
69
69
71
76
77
77
78
78
79
87
87
91
91
91
91
91
92
93
101
101
103
107
108
109
109
112
113
113
115
116
116
116
116
117
117
118
118
118
119
119
119
120
128
129
129
129
129
129
129
130
130
131
131
132
133
133
135
135
138
141
142
144
145
146
146
147
149
150
150
151
151
152
152
152
153
153
153
153
154
155
156
161
163
163
163
163
165
167
168
168
169
169
169
169
169
170
170
170
170
171
171
171
172
174
177
179
180
185
186
186
186
188
189
191
192
192
192
192
193
195
195
196
198
204
204
207
207
210
210
217
217
220
220
221
221
222
224
224
224
226
226
226
226
231
232
244
244
245
247
252
252
255
258
260
260
261
261
263
264
266
271
271
274
274
274
274
275
279
284
284
284
284
286
291
292
294
294
295
296
296
297
297
298
298
299
299
301
301
303
310
312
312
313
315
315
324
325
331
333
336
336
336
336
340
345
345
359
362
364
370
372
387
392
392
395
400
400
418
423
428
433
434
447
449
450
452
471
471
473
493
495
518
521
521
535
535
537
540
556
557
558
563
582
588
588
600
606
606
622
626
628
649
654
654
668
673
673
951
952
953
1
1
11
11
11
11
11
11
11
11
11
11
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
25
25
26
26
27
30
30
30
31
31
32
32
32
32
33
34
34
34
35
35
36
36
36
36
36
36
36
36
36
37
37
38
38
40
40
40
40
42
42
43
43
43
43
44
44
44
44
46
46
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
52
52
52
53
53
53
53
53
53
53
53
55
59
59
61
62
63
64
66
67
67
67
67
68
68
69
70
70
70
72
77
77
79
79
81
83
87
87
87
87
88
92
92
92
93
94
102
102
107
107
107
108
109
113
114
114
114
114
117
117
117
118
118
119
119
120
120
121
121
123
123
128
128
129
129
130
130
130
130
130
131
132
132
132
132
133
134
134
134
136
136
139
142
142
143
143
144
144
146
147
147
148
148
150
150
151
151
151
151
152
152
153
156
157
158
161
162
163
163
164
164
165
167
168
169
170
170
171
171
171
171
171
172
173
175
178
180
180
180
180
180
181
181
184
185
186
187
187
187
189
190
193
193
194
194
195
196
197
199
205
205
205
206
206
206
208
208
215
221
221
222
222
223
225
225
225
225
225
227
227
227
227
227
230
232
233
242
243
245
245
248
250
250
252
253
253
256
256
259
261
261
262
262
264
264
265
267
272
272
275
275
276
280
285
285
285
285
293
295
295
296
297
297
297
297
298
298
299
299
300
300
302
302
304
304
306
306
311
311
311
313
313
316
316
325
325
326
326
332
334
334
337
337
341
346
346
360
363
365
371
373
388
393
393
396
401
401
419
424
434
450
451
453
472
472
474
494
496
519
522
522
536
538
541
558
559
564
583
589
589
601
607
607
623
627
629
650
655
655
669
674
674
952
953
954
1
1
1
7
11
15
15
15
15
15
15
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
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
23
23
23
23
24
24
24
24
26
28
29
29
30
31
31
31
31
31
32
32
32
32
32
33
33
34
34
34
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
38
38
38
38
38
39
41
41
41
41
41
41
41
41
42
42
43
43
44
44
44
44
44
44
44
45
45
45
45
46
46
46
46
46
46
47
47
47
47
48
48
48
48
48
48
48
49
49
49
49
49
49
50
50
50
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
53
53
53
54
54
60
64
65
65
67
68
68
68
68
69
69
70
71
71
71
73
80
80
82
82
84
88
88
89
92
93
93
93
95
105
108
109
114
114
114
115
115
115
115
116
116
118
120
120
121
121
124
124
129
129
129
130
130
131
132
132
132
132
132
132
133
133
133
133
135
135
137
137
140
144
144
148
148
149
149
150
150
151
151
151
152
153
153
154
157
158
158
163
164
165
165
165
165
165
167
167
168
169
170
172
172
174
176
179
181
181
182
184
185
186
187
188
188
188
190
191
192
192
194
194
195
197
198
200
205
205
205
206
206
206
207
207
207
212
215
216
222
222
223
223
224
226
228
228
228
228
228
231
233
244
248
249
251
251
254
254
257
257
260
262
262
263
263
265
265
265
266
268
273
273
276
276
281
286
286
294
296
296
297
297
297
298
298
299
299
300
300
301
301
303
303
307
307
312
312
317
317
327
327
333
338
338
342
347
347
361
364
366
372
374
389
394
394
397
402
402
420
422
422
425
432
435
451
452
454
473
473
475
494
495
497
520
523
523
537
539
542
559
560
565
584
590
590
602
608
608
624
628
630
651
656
656
670
675
675
953
953
954
955
11
11
11
15
15
17
17
17
17
17
18
18
18
18
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
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
24
24
24
24
27
27
28
29
30
30
31
31
31
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
36
36
36
36
37
37
37
37
37
37
37
39
39
39
40
42
42
42
42
42
42
42
42
42
42
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
49
49
49
49
50
50
50
50
50
50
50
51
51
51
52
52
52
52
52
53
54
55
55
59
61
65
66
66
68
68
69
69
69
70
70
70
70
71
72
72
72
72
72
74
79
80
81
87
87
87
89
89
89
90
93
94
96
98
100
105
107
109
110
111
111
112
112
114
114
115
115
115
116
116
116
116
116
117
117
119
121
121
122
122
124
128
128
130
132
132
132
133
133
133
133
133
133
133
133
134
134
134
134
136
136
138
138
141
142
143
143
143
144
145
145
146
147
148
149
150
150
151
151
152
152
153
153
154
158
159
159
163
163
164
164
165
167
168
168
169
169
170
171
175
177
180
181
183
185
185
185
185
186
187
188
188
189
189
189
189
191
191
192
192
193
195
196
198
201
207
207
207
208
208
208
212
216
217
217
220
223
223
224
224
225
227
229
229
229
229
229
231
231
233
233
233
234
242
245
249
250
251
252
255
255
258
258
261
262
263
264
264
266
267
269
272
274
274
281
282
283
287
287
295
297
297
297
297
298
298
299
299
300
300
301
301
302
302
302
302
304
304
304
304
307
311
313
313
318
318
325
326
326
326
328
328
334
336
339
339
343
348
348
362
365
366
367
373
375
390
395
395
398
403
403
421
423
426
428
433
452
453
455
474
474
476
492
495
496
498
521
524
524
538
540
543
560
561
561
566
566
585
591
591
603
609
609
625
629
631
652
657
657
671
676
676
954
954
955
956
7
7
11
11
11
15
15
16
16
16
16
16
16
16
17
17
17
18
18
18
18
19
19
19
19
19
19
20
21
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
23
23
23
23
23
23
23
24
24
25
28
29
29
29
30
31
31
31
31
32
32
32
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
38
38
40
40
40
40
41
42
42
42
42
43
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
50
50
50
50
51
51
51
51
51
51
51
52
52
52
53
53
53
53
53
53
53
54
54
56
56
59
59
60
66
66
66
67
68
69
69
70
70
70
73
73
73
73
73
75
77
80
80
80
82
82
84
84
87
88
88
91
94
95
97
100
100
101
106
107
108
111
111
112
114
114
115
115
115
116
116
116
116
116
117
117
117
118
118
120
122
122
123
123
124
128
128
128
129
129
131
133
134
134
134
134
134
134
135
135
135
135
137
137
139
139
142
142
142
142
142
143
144
144
144
144
148
149
150
151
151
152
152
152
153
153
153
153
154
154
154
155
159
164
165
165
169
169
169
170
170
170
170
171
171
171
171
172
172
178
181
181
184
186
186
187
188
190
190
192
192
192
193
193
194
195
196
198
198
199
202
206
208
208
208
209
209
218
218
218
218
221
224
224
225
225
226
226
228
230
230
230
230
230
234
234
235
242
243
243
249
249
251
251
252
253
256
256
259
259
262
262
263
263
263
264
265
265
265
265
266
267
268
270
274
275
275
283
283
283
284
288
288
296
297
297
298
298
298
299
299
301
301
302
302
305
305
305
305
307
311
311
312
314
319
319
325
325
325
326
327
327
327
335
336
340
340
344
349
349
363
366
367
368
371
374
376
391
396
396
399
404
404
422
424
427
434
453
454
456
475
477
496
497
499
522
525
525
539
541
544
544
561
567
567
586
592
592
604
610
610
630
632
653
658
658
672
677
677
955
956
957
7
11
11
11
11
15
15
16
16
16
18
18
18
18
18
19
19
19
19
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
22
22
22
22
22
22
22
23
23
24
24
24
24
24
24
26
27
29
30
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
38
38
39
39
39
39
42
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
49
49
51
51
51
51
51
51
52
52
52
52
52
52
52
53
53
54
54
54
54
54
55
56
56
59
60
61
67
68
69
70
70
71
71
71
71
74
74
74
74
74
74
76
78
78
80
80
80
82
83
83
85
87
89
89
91
91
91
91
92
95
96
98
100
100
101
102
106
106
109
110
110
112
113
114
114
115
115
116
116
116
117
117
117
117
118
118
118
118
119
119
119
121
123
123
124
124
125
128
128
129
129
130
131
131
131
132
133
133
134
134
134
134
134
134
134
136
136
136
136
138
138
139
140
143
143
144
145
145
145
148
148
150
151
153
154
154
154
155
155
155
156
160
163
163
165
166
166
169
169
170
170
170
170
170
171
171
172
172
172
172
172
173
173
179
182
185
186
188
189
191
191
192
192
193
193
193
194
194
199
199
200
203
207
207
209
209
212
212
216
218
218
219
219
222
226
226
227
227
229
231
231
231
231
231
231
233
235
235
243
243
244
252
252
253
254
257
257
260
260
263
263
265
265
266
266
266
266
267
268
269
271
274
274
274
274
275
276
276
283
283
284
284
285
289
296
297
297
297
298
298
299
299
299
300
302
302
303
303
306
306
306
306
308
311
312
313
315
320
320
327
328
328
328
336
341
341
345
350
350
367
369
372
375
377
392
397
397
400
405
405
423
425
428
435
454
455
457
474
476
476
478
497
498
500
523
526
526
540
541
545
545
562
568
568
587
593
593
605
611
611
631
633
654
659
659
673
678
678
956
957
958
7
7
7
11
11
12
12
12
13
13
16
16
16
16
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
25
25
26
27
29
29
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
34
34
34
34
34
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
38
39
39
40
40
42
42
43
44
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
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
51
51
52
52
52
52
53
54
54
54
54
54
54
55
55
55
55
55
56
57
61
62
68
68
68
69
69
70
71
71
71
72
72
75
75
75
75
75
75
77
80
81
81
82
83
84
84
85
86
87
88
90
91
92
92
93
96
97
99
100
101
102
103
103
110
111
111
113
114
114
116
116
116
117
118
118
118
118
119
119
119
119
119
120
120
122
124
124
125
125
126
130
131
131
132
132
132
132
133
133
133
133
133
133
133
133
134
134
135
135
135
135
135
135
139
139
141
143
144
144
144
145
146
146
149
149
151
151
151
152
152
153
153
153
154
155
155
156
156
156
161
163
163
164
164
167
167
170
170
170
172
172
172
172
172
172
172
173
173
173
173
173
174
174
180
183
186
186
189
190
191
192
192
192
193
194
194
194
195
195
200
200
204
210
210
210
213
213
219
220
220
223
227
227
228
228
230
232
232
232
232
232
234
243
244
245
251
251
253
253
254
258
258
261
263
264
265
266
266
267
267
267
267
268
269
270
272
274
275
275
276
277
277
283
284
285
285
286
286
290
297
297
299
299
300
300
301
301
303
303
303
304
304
307
307
307
307
309
313
314
316
321
321
326
328
329
329
336
336
337
342
342
346
351
351
368
370
373
376
378
393
398
398
401
406
406
424
426
429
432
435
455
456
458
477
477
479
498
499
501
524
527
527
541
546
546
563
569
569
588
594
594
606
612
612
632
634
655
660
660
674
679
679
957
958
959
4
5
11
11
11
11
11
12
12
12
12
13
13
13
13
14
14
14
14
15
15
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
24
24
24
24
24
26
26
27
27
28
30
30
30
30
31
31
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
36
37
37
38
38
39
40
40
41
41
41
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
49
49
49
49
49
49
50
51
51
52
52
52
52
53
54
54
54
54
54
54
54
55
55
56
56
56
56
56
57
58
62
66
68
69
69
72
72
73
73
76
76
76
76
76
76
78
81
83
84
85
86
89
90
90
91
93
93
94
97
98
98
100
102
103
112
112
116
117
117
117
118
119
119
119
120
120
120
121
121
121
123
125
125
126
126
126
127
131
133
133
133
134
134
135
135
136
136
136
136
136
136
140
140
142
144
144
145
145
149
149
150
151
151
151
152
152
153
153
153
153
154
154
154
154
154
154
155
157
162
165
165
168
168
168
170
170
170
170
170
170
172
172
172
172
172
172
173
173
173
174
174
174
174
174
175
179
180
181
184
187
190
191
192
193
193
194
195
195
195
196
196
198
205
209
211
211
211
211
218
218
220
223
224
228
228
229
229
231
231
233
233
233
233
233
235
244
245
249
251
252
254
259
259
260
262
263
265
266
267
267
268
268
269
270
271
273
276
276
277
278
278
281
285
286
286
288
288
291
300
300
301
301
304
304
304
304
305
305
308
308
308
308
309
310
314
317
322
322
327
327
334
337
337
338
343
343
347
352
352
369
371
374
377
379
394
399
399
402
407
407
425
427
428
430
433
456
457
459
478
478
480
499
500
502
525
528
528
542
547
547
564
570
570
589
595
595
607
613
613
625
633
635
656
661
661
675
680
680
958
959
960
6
11
11
12
13
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
15
17
17
17
17
17
17
17
17
17
17
18
19
19
19
19
19
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
23
23
23
23
27
27
29
31
31
31
31
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
37
37
37
38
39
39
40
40
40
41
41
41
41
42
42
42
42
42
42
42
43
43
44
44
44
44
44
44
44
44
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
49
49
49
49
49
49
49
49
49
50
51
51
52
52
52
52
52
53
53
53
55
55
55
55
55
55
55
56
56
56
58
58
58
62
62
62
63
66
66
68
68
69
70
70
73
73
74
74
77
77
77
77
77
77
78
79
81
84
89
90
91
91
92
94
94
98
99
99
99
101
103
103
110
110
116
116
117
117
117
119
120
120
120
121
122
122
124
124
124
126
126
126
127
127
127
131
131
132
132
133
133
133
134
134
135
135
136
136
137
137
137
137
141
141
143
146
146
151
151
152
152
152
152
152
153
154
154
155
155
155
156
158
158
161
163
166
166
168
169
169
169
169
170
170
170
170
170
171
171
171
171
172
172
172
173
173
173
173
173
173
174
174
174
180
181
181
181
181
182
185
188
191
192
192
193
194
194
195
195
196
196
197
197
206
209
212
212
219
224
225
229
229
229
230
230
231
232
232
233
234
234
234
234
234
244
244
245
245
245
246
249
249
251
251
252
253
255
260
260
263
264
266
267
268
269
269
270
271
272
272
274
277
277
279
279
282
282
286
286
287
289
292
300
302
302
305
305
305
305
305
306
306
307
307
309
309
309
309
309
310
314
314
315
318
323
323
335
335
339
344
344
348
353
353
363
370
372
375
378
378
380
380
395
400
400
403
408
408
426
428
431
432
434
456
458
460
479
479
481
500
501
503
526
529
529
543
548
548
565
571
571
590
596
596
608
614
614
626
631
634
636
657
662
662
676
681
681
959
960
961
4
5
7
11
11
11
13
13
13
13
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
20
20
20
20
20
20
21
21
21
21
22
23
23
23
23
23
24
24
24
27
27
27
27
28
28
28
30
31
31
31
31
31
31
31
32
32
32
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
39
40
40
40
41
41
41
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
51
53
53
53
54
54
56
56
56
56
56
56
56
57
57
59
63
63
64
69
69
70
71
71
74
74
75
75
78
78
78
78
78
78
79
79
80
81
81
82
82
90
92
92
95
99
100
102
104
104
106
106
110
111
111
117
117
117
118
118
118
118
118
119
119
119
120
121
121
125
125
125
127
127
128
132
132
132
132
132
133
133
134
134
134
134
135
135
135
135
142
142
144
146
147
147
149
149
151
152
153
153
153
153
154
154
155
155
155
156
156
159
159
159
159
162
164
167
169
170
170
171
171
171
172
172
173
173
173
173
174
174
174
174
174
174
181
182
182
183
183
186
186
189
192
192
193
193
195
195
195
195
195
196
196
197
197
198
198
198
198
207
213
213
213
218
218
220
226
230
230
230
231
231
232
233
233
233
234
235
235
235
235
235
246
246
247
252
252
253
254
256
261
261
264
265
265
265
267
268
269
270
271
272
273
273
275
278
280
280
287
287
288
290
293
297
300
301
303
303
306
306
306
307
307
308
308
310
310
310
310
315
315
316
319
324
324
329
340
345
345
349
354
354
364
368
371
373
376
381
381
396
401
401
404
409
409
427
429
432
433
433
435
435
457
459
459
461
480
480
482
501
502
504
527
530
544
549
549
566
572
572
591
597
597
609
615
615
632
635
637
658
663
663
677
682
682
960
961
962
6
7
8
11
11
11
11
11
11
11
11
11
11
11
13
13
13
13
13
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
24
28
28
28
28
29
29
29
29
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
38
38
38
39
39
39
39
40
40
41
41
41
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
49
49
50
50
51
51
53
53
53
54
55
55
57
57
57
57
57
58
58
60
62
62
62
64
64
70
71
71
72
75
75
76
76
79
79
79
79
80
80
81
82
82
82
83
83
85
90
94
94
96
100
101
103
105
105
106
110
110
111
112
112
119
119
119
119
120
120
120
120
122
125
126
128
128
129
133
133
134
135
135
135
135
140
143
143
145
146
148
148
150
151
151
151
152
154
154
154
155
155
155
155
155
156
156
156
156
157
157
159
159
160
160
162
162
165
166
166
168
169
171
171
171
171
171
172
173
173
174
174
175
175
175
175
182
182
187
187
190
193
194
195
196
196
196
196
197
198
198
199
199
199
199
208
209
209
213
214
214
218
218
219
219
227
231
231
231
232
232
234
234
234
235
236
236
236
236
236
244
245
245
245
247
247
253
254
254
257
262
262
263
263
265
265
266
266
266
268
269
270
271
271
272
272
273
273
274
276
277
277
279
281
281
288
288
289
291
294
302
304
304
307
307
307
308
308
308
311
311
316
316
320
325
325
329
337
341
346
346
350
355
369
372
374
377
382
382
397
402
402
405
410
410
430
433
433
433
435
435
436
436
460
460
462
481
481
483
502
503
505
528
531
545
550
550
567
573
573
592
598
598
610
616
616
633
636
638
659
664
664
678
683
683
961
962
963
1
4
5
5
5
5
7
8
9
11
11
11
13
13
13
13
13
13
13
14
15
15
15
15
15
15
16
16
16
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
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
28
28
28
28
28
29
30
30
31
31
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
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
39
39
39
39
40
40
40
40
40
41
42
42
42
42
42
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
46
46
46
47
47
47
47
48
48
48
48
49
49
49
49
49
49
49
51
51
51
51
51
51
52
54
54
54
54
54
55
57
57
57
57
57
57
57
57
58
58
58
58
58
59
61
63
63
63
73
76
76
77
77
80
80
80
80
82
82
83
84
84
85
86
90
90
95
95
97
99
101
102
103
104
111
111
112
113
113
113
120
120
121
121
123
125
127
129
129
130
131
133
135
136
136
137
137
137
137
137
137
141
144
144
144
146
146
149
149
149
152
152
153
154
155
156
156
156
157
157
157
158
160
161
161
166
167
167
169
169
169
172
172
172
172
172
172
172
173
174
175
175
175
175
175
175
175
175
176
176
182
183
185
188
188
191
194
195
196
197
197
197
197
198
199
199
200
200
200
200
200
207
209
210
210
215
215
220
220
228
232
232
232
233
233
234
235
235
235
237
237
237
237
237
244
244
246
246
246
258
263
263
266
266
267
267
267
269
272
272
273
273
273
274
275
277
278
278
280
282
282
282
286
290
292
295
303
305
305
308
308
308
308
309
309
312
312
314
321
326
326
337
342
347
347
351
354
354
356
370
373
375
378
383
383
398
403
403
406
411
411
427
431
431
434
436
436
437
437
461
461
463
482
482
484
503
504
506
529
532
546
551
551
568
574
574
593
599
599
611
617
617
634
637
639
660
665
665
679
684
684
962
963
964
1
1
4
4
5
5
5
6
6
6
6
8
9
10
11
11
11
11
11
13
13
13
13
14
15
15
15
15
15
15
15
16
16
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
19
19
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
23
23
23
24
24
26
26
26
27
29
29
29
29
29
30
30
30
31
31
31
31
32
32
32
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
43
44
45
45
45
45
45
45
46
47
47
48
48
49
49
49
49
49
50
50
50
50
51
51
51
52
53
55
55
55
55
55
58
58
58
58
59
59
59
60
62
64
64
64
74
77
77
78
78
81
81
81
81
82
82
82
83
85
85
85
86
90
90
90
90
91
94
96
96
99
102
103
103
104
105
111
113
113
113
114
114
114
120
121
124
126
128
130
130
131
134
134
135
135
137
137
138
138
138
138
142
145
146
146
147
147
150
150
150
151
152
153
153
154
154
155
155
155
156
157
157
158
158
159
159
161
166
167
168
168
173
173
173
173
173
173
173
173
173
174
176
176
176
176
177
177
184
186
186
186
189
189
192
195
195
196
198
198
198
199
200
200
201
201
208
208
210
213
213
216
216
216
221
221
229
233
233
233
234
234
234
235
235
235
235
236
236
236
238
238
238
238
238
238
247
247
247
259
264
264
266
268
268
268
270
273
273
273
274
274
275
276
277
278
279
279
282
283
283
286
287
291
293
296
297
304
306
306
309
309
309
309
310
310
313
313
322
327
327
329
329
343
348
348
352
355
357
371
374
376
379
384
384
399
404
404
407
412
412
432
432
435
437
437
462
462
464
483
483
485
504
505
507
530
533
547
552
552
569
575
575
575
575
594
600
600
612
618
618
635
638
638
640
640
661
666
666
680
685
685
963
964
965
7
7
7
7
7
7
9
10
11
15
15
15
15
15
15
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
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
23
23
23
27
27
27
27
28
28
29
30
30
30
30
30
30
30
31
31
31
31
32
32
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
45
45
46
48
48
49
49
50
51
51
51
52
53
54
56
56
57
57
59
59
59
59
60
61
62
63
65
65
71
75
78
79
79
82
82
82
82
83
83
84
85
85
85
85
86
90
91
91
91
91
92
92
95
97
103
104
104
105
106
111
113
114
115
115
115
115
117
117
119
120
120
121
125
126
127
127
127
129
131
131
131
132
136
136
136
136
143
144
146
147
147
148
148
151
151
152
152
153
153
153
154
155
155
155
156
156
156
156
157
160
166
168
174
174
174
174
175
175
177
177
177
177
185
187
187
190
190
192
193
196
197
199
199
199
199
200
200
201
201
202
202
211
211
214
214
217
217
217
222
230
234
234
234
235
235
236
236
237
239
239
239
239
239
239
245
248
248
254
260
265
265
267
268
268
268
268
269
269
269
271
274
274
275
275
276
277
278
279
280
284
284
287
288
292
294
297
298
298
300
300
305
307
307
309
310
310
310
311
311
314
314
314
314
323
327
328
328
330
330
344
349
349
353
356
358
372
375
375
377
377
380
385
385
400
405
405
408
413
413
433
433
433
433
436
463
463
465
484
484
486
505
506
508
529
529
531
534
548
553
553
570
576
576
595
601
601
613
619
619
636
641
641
662
667
667
681
686
686
964
965
966
7
7
7
7
8
8
8
8
8
8
10
10
11
11
12
13
15
16
16
16
16
17
17
17
17
17
17
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
22
23
23
24
24
24
27
27
28
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
33
33
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
40
40
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
46
46
46
47
47
49
49
51
51
51
51
52
52
53
53
54
56
56
56
56
57
57
57
58
58
61
62
63
64
65
69
76
78
78
78
78
79
79
80
80
83
83
83
83
83
83
83
83
84
85
86
86
87
92
92
92
93
93
94
96
99
99
103
104
105
105
107
111
111
114
115
118
118
120
120
120
120
121
121
121
121
126
126
128
130
130
130
132
132
132
133
136
136
136
144
145
145
147
149
149
152
152
153
154
154
154
155
155
155
156
156
157
157
158
159
159
161
162
166
167
169
171
174
174
174
174
175
175
175
175
175
176
176
186
186
187
187
187
187
188
191
191
192
193
194
195
195
197
198
200
200
201
201
202
202
203
203
210
212
212
212
217
217
218
218
221
221
221
223
231
234
235
235
235
235
236
236
237
237
240
240
240
240
240
240
246
248
252
261
266
266
269
269
270
270
270
272
275
275
276
276
277
277
278
279
280
282
282
285
286
288
293
295
298
301
301
306
308
308
308
309
310
310
310
310
311
311
311
312
312
315
315
315
315
324
328
328
329
329
345
350
350
354
357
359
373
378
378
381
386
386
401
406
406
409
414
414
434
434
434
434
435
435
435
437
464
464
466
485
485
487
506
507
509
530
532
535
549
554
554
571
577
577
596
602
602
614
620
620
637
642
642
663
668
668
682
687
965
966
967
4
4
5
5
5
7
8
8
9
9
9
9
11
11
13
13
13
13
15
15
15
15
15
15
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
18
18
18
18
19
19
19
20
20
20
20
20
21
21
21
21
23
23
23
23
23
23
27
27
27
27
28
29
29
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
42
42
43
43
43
43
43
43
43
44
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
51
52
52
52
54
57
57
57
57
58
59
59
62
63
65
65
77
79
79
80
80
81
81
84
84
84
84
84
84
84
84
85
86
87
87
90
91
92
92
92
94
94
94
95
100
100
103
103
104
104
105
106
106
108
108
112
112
113
113
113
115
118
121
121
122
122
127
127
129
131
131
131
133
133
133
133
134
134
136
137
137
138
138
138
138
138
138
145
148
150
150
152
152
152
153
153
155
155
155
155
156
156
156
157
157
158
159
159
160
160
162
167
168
170
172
173
175
175
175
175
176
176
176
177
177
187
188
188
189
192
192
192
195
196
196
198
199
199
200
200
200
201
201
202
202
203
203
204
204
210
213
219
221
222
222
224
232
236
236
236
236
237
237
241
241
241
241
241
241
248
262
267
267
270
270
271
271
273
273
276
277
277
278
278
279
281
283
283
286
286
286
287
287
296
299
301
307
309
310
311
311
312
312
312
313
313
314
316
316
316
316
316
316
316
325
330
330
335
346
351
355
358
360
374
379
379
382
387
387
402
407
407
410
415
415
435
435
436
436
436
438
465
465
467
486
486
488
507
508
508
510
510
531
533
536
550
555
572
578
578
597
603
603
615
621
638
643
643
664
669
669
683
688
966
967
968
1
4
4
5
5
5
6
6
6
7
8
9
10
10
10
10
10
11
11
11
11
12
12
13
13
13
13
13
13
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
17
17
18
18
18
18
18
18
18
18
19
21
21
21
21
21
21
21
21
21
21
21
23
24
24
26
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
32
32
32
32
32
32
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
47
48
48
48
51
53
55
55
56
57
57
57
57
57
57
58
58
58
58
60
60
63
63
64
66
78
80
80
81
81
81
83
83
83
83
85
85
85
85
85
85
85
85
87
90
91
91
91
92
93
93
93
94
95
96
104
104
106
109
109
114
114
114
114
118
121
122
122
128
130
131
132
132
132
134
135
135
135
136
136
138
138
139
139
139
139
146
147
149
151
151
153
153
153
153
154
154
156
156
156
157
157
157
157
157
158
158
158
159
161
161
166
168
169
171
173
173
174
174
174
174
174
175
175
175
175
175
175
176
176
176
176
177
177
178
178
181
187
187
188
189
189
193
193
193
195
196
197
197
197
199
199
199
199
200
200
201
201
201
202
202
204
204
205
205
214
214
217
218
218
220
222
223
223
233
234
237
237
237
237
238
238
242
242
242
242
242
242
246
263
266
268
268
272
272
273
274
275
276
277
277
277
278
278
278
279
279
280
282
284
284
287
287
287
297
300
301
305
308
310
312
312
313
313
313
313
313
314
315
317
317
317
317
326
330
331
331
336
347
350
350
352
356
359
361
375
380
380
383
388
388
403
408
408
411
416
416
436
436
436
437
437
439
466
466
468
487
487
489
508
511
511
532
534
537
551
556
573
579
579
598
604
604
616
620
620
622
639
644
644
665
670
670
684
686
686
689
967
968
969
4
5
5
6
7
7
7
8
9
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
13
13
13
13
13
13
13
13
14
14
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
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
23
23
23
23
23
23
24
27
27
27
27
28
29
29
30
30
30
30
30
30
30
30
31
31
32
32
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
36
36
36
36
36
37
37
37
37
38
38
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
44
44
44
44
45
45
45
45
45
45
46
46
46
46
47
47
48
49
51
51
52
55
55
56
56
56
57
58
58
59
59
61
61
65
67
71
77
77
79
80
80
81
81
82
83
84
84
85
86
86
86
86
86
86
88
93
94
94
94
95
96
97
105
105
105
105
107
110
110
115
115
120
121
121
122
123
125
125
129
131
132
132
133
133
133
133
135
136
136
137
137
137
137
147
147
150
152
152
152
153
154
154
154
155
155
157
157
158
158
158
159
159
159
160
162
162
162
167
169
169
172
173
173
174
174
174
175
175
175
176
176
177
177
178
178
179
179
182
182
182
188
189
194
194
195
196
197
200
201
201
202
202
202
203
203
205
205
206
206
210
210
214
215
219
221
223
234
234
235
235
238
238
238
239
239
243
243
243
243
243
243
254
264
268
269
269
273
273
275
278
278
278
279
279
279
280
280
281
283
285
288
288
288
288
288
298
301
306
308
308
309
309
309
311
313
313
314
314
314
315
315
316
316
318
318
318
318
327
330
332
332
337
337
348
351
353
357
360
362
376
381
381
384
389
389
404
409
409
412
417
417
437
437
437
437
440
467
469
488
488
490
509
512
512
533
535
538
538
552
557
574
580
580
599
605
605
617
621
623
640
645
645
666
671
671
685
687
690
968
969
970
4
5
6
7
7
7
7
7
7
8
8
8
8
11
11
11
11
11
11
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
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
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
23
26
26
27
27
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
32
32
32
32
32
32
32
32
33
33
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
38
38
38
38
39
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
47
47
48
48
49
50
51
52
53
56
56
56
58
59
59
60
60
60
60
60
60
62
62
63
66
66
68
72
72
78
80
81
82
82
83
83
83
85
85
85
85
85
85
86
87
87
87
87
87
87
89
92
94
95
95
97
98
105
105
106
106
108
111
111
115
121
121
121
121
122
122
122
122
126
126
130
132
133
134
134
134
136
137
137
137
137
137
148
151
153
153
153
153
154
155
155
155
155
155
156
156
157
157
157
157
158
158
158
158
159
159
160
160
163
166
168
173
174
174
174
175
176
177
177
178
178
178
178
178
178
179
179
180
180
183
183
187
189
190
195
195
196
196
197
197
198
200
201
202
202
203
203
204
204
206
206
207
207
208
211
211
216
220
221
222
224
235
235
235
236
239
239
239
240
240
244
244
244
244
244
244
255
255
265
268
268
268
268
269
270
270
274
276
279
279
280
280
280
281
281
282
284
286
288
288
289
289
289
293
297
299
302
309
309
310
310
312
314
314
315
315
315
315
317
317
319
319
319
319
328
333
333
338
338
338
338
349
352
354
358
361
363
377
382
382
385
390
390
405
410
410
413
418
418
438
438
441
466
468
468
470
489
489
491
510
513
513
534
535
539
539
553
558
575
581
581
600
606
606
618
622
624
641
646
646
667
672
672
686
688
691
969
970
971
5
5
6
6
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
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
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
22
23
23
24
27
27
28
28
28
28
28
28
28
28
28
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
34
34
35
35
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
46
48
48
48
49
49
49
50
51
53
54
54
56
56
56
56
56
57
59
60
60
60
60
61
61
61
61
63
63
67
67
69
69
71
79
80
81
82
83
83
83
84
84
84
85
86
86
86
87
88
88
88
88
88
88
90
93
93
97
97
97
97
99
105
105
106
107
107
109
112
112
114
115
115
122
122
123
123
123
126
126
126
126
127
132
133
133
133
133
135
135
135
135
137
137
138
138
138
138
139
139
147
147
149
152
153
154
154
154
154
154
155
155
155
155
156
156
156
156
156
157
157
157
157
158
158
158
158
158
158
159
159
159
162
162
164
167
167
169
169
172
174
174
174
174
174
174
175
175
177
178
178
178
178
179
179
179
179
180
180
181
181
182
183
183
183
183
184
187
187
188
191
196
196
198
198
199
201
201
202
203
205
205
207
207
208
208
209
209
217
217
221
221
222
223
235
236
236
237
240
240
240
241
241
245
245
245
245
245
245
252
254
266
268
269
269
270
271
271
273
275
275
277
280
280
280
280
280
280
281
281
282
282
283
285
287
288
288
289
290
290
290
298
298
300
303
306
309
309
309
309
310
311
311
312
315
315
315
316
316
316
316
316
316
316
318
318
320
320
320
320
329
330
330
334
334
336
338
338
339
339
350
353
355
362
364
378
383
383
386
391
391
406
411
411
414
419
419
439
442
469
469
471
490
490
492
511
514
514
535
540
540
554
559
576
582
582
601
607
607
619
623
625
642
647
647
668
673
673
687
689
692
970
971
972
4
5
7
7
7
9
9
9
10
10
10
10
10
11
11
14
14
14
14
14
14
14
14
14
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
18
18
18
18
18
18
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
20
20
20
20
20
20
21
23
23
23
23
26
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
33
33
34
34
34
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
48
49
49
50
50
50
51
52
54
54
55
56
56
56
56
57
58
60
60
60
60
60
61
61
62
62
62
62
68
68
70
70
70
72
72
80
81
82
84
84
85
85
85
86
86
87
87
87
88
89
89
89
89
89
91
98
98
100
105
105
106
107
110
113
113
115
115
115
115
116
116
118
118
122
123
127
127
128
132
132
132
133
134
134
134
134
136
136
136
138
139
139
139
139
139
139
139
139
145
148
148
150
151
152
153
155
155
155
156
156
156
157
157
157
158
159
159
159
160
160
160
163
163
165
167
169
170
170
172
173
174
174
174
174
175
175
176
178
178
178
178
178
179
179
180
180
180
180
181
181
184
184
185
186
187
188
189
192
196
197
197
197
197
197
199
199
200
203
204
206
206
208
208
209
209
217
218
222
222
223
224
236
237
237
241
241
241
242
242
246
246
246
246
253
253
255
255
267
270
270
271
272
272
276
276
278
281
281
281
281
282
282
283
283
284
286
288
288
288
289
290
291
299
299
299
301
301
301
304
310
310
311
312
312
315
315
315
316
316
316
317
317
317
317
317
317
317
321
321
321
321
328
330
331
331
335
335
339
340
340
351
354
356
363
365
379
384
384
387
392
392
407
412
412
415
420
438
440
441
443
470
470
472
491
493
512
515
515
536
541
541
553
554
555
560
577
583
583
602
608
608
620
624
626
643
648
648
669
674
674
688
690
693
971
972
973
1
5
7
7
8
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
13
13
13
13
15
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
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
24
24
27
27
27
27
27
27
28
29
29
30
30
31
31
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
36
36
36
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
45
45
45
45
45
45
46
47
47
47
50
50
50
50
51
51
52
53
54
54
54
55
55
56
56
58
59
59
59
61
61
61
61
61
62
62
63
63
65
65
69
69
70
71
72
73
73
81
83
85
85
86
86
86
87
87
88
88
88
90
90
90
90
90
92
95
95
95
99
99
104
105
105
106
106
107
111
114
114
116
116
119
119
122
122
122
123
123
123
126
126
128
128
134
135
135
135
135
137
137
137
139
140
140
140
140
140
140
140
140
140
140
146
146
151
153
154
154
155
155
155
155
155
156
156
157
157
157
157
158
159
160
160
161
161
162
164
164
167
169
170
171
171
173
174
174
176
176
177
177
177
179
179
179
179
179
180
180
181
181
182
182
183
183
185
185
187
189
190
193
196
196
196
197
198
198
198
198
198
201
203
204
205
207
207
209
209
210
210
211
212
219
221
223
223
224
225
236
236
237
237
237
238
238
242
242
242
243
243
247
247
247
247
248
248
253
255
256
256
266
268
271
271
273
273
277
277
279
282
282
282
282
283
283
284
285
287
287
288
288
289
289
289
290
292
300
302
302
302
305
309
309
311
311
313
313
317
317
317
318
318
318
318
318
318
318
322
322
322
322
329
329
331
336
336
338
338
340
352
355
357
364
366
380
385
385
388
393
393
408
413
413
416
421
441
442
444
471
471
473
492
494
513
516
516
537
542
542
555
556
561
578
584
584
603
609
609
621
625
627
644
649
649
670
675
675
689
691
694
972
973
974
1
1
5
5
6
7
8
8
9
10
10
11
11
11
11
12
12
12
13
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
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
20
20
20
20
20
20
20
21
21
21
21
21
21
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
32
32
32
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
45
45
45
46
46
46
46
47
48
51
51
52
52
53
54
55
55
55
56
59
59
60
60
62
62
62
62
62
63
63
63
66
66
70
70
70
72
72
73
74
74
82
84
86
86
87
87
88
88
89
90
91
91
91
91
91
93
93
95
96
96
105
105
107
107
112
115
115
116
119
123
123
124
124
127
130
133
135
136
136
136
138
138
138
138
140
140
140
140
140
141
141
141
141
141
141
152
154
154
154
155
155
156
156
156
156
157
157
158
159
160
160
161
162
167
167
170
171
173
174
177
177
177
178
178
180
180
180
180
180
181
181
183
183
184
187
188
190
194
198
199
199
199
199
199
202
203
205
206
208
208
210
211
211
213
220
222
224
224
226
238
238
239
239
243
243
243
244
244
245
245
245
245
246
248
248
248
248
249
249
253
255
256
257
257
267
269
272
274
274
278
278
280
283
283
284
284
285
286
288
288
288
290
290
290
293
301
302
303
306
310
314
314
316
318
318
318
319
319
319
319
319
319
323
323
323
323
332
337
337
339
353
356
358
358
365
367
381
386
386
389
394
394
409
414
414
417
419
419
422
442
443
445
472
472
474
492
493
495
514
517
517
538
543
543
556
557
562
579
585
585
604
610
610
622
626
628
645
650
650
671
676
676
690
692
695
973
974
975
7
7
7
8
9
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
13
14
14
15
15
15
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
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
23
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
30
30
30
31
31
31
31
31
31
32
33
33
33
34
34
34
34
35
35
35
35
35
36
36
36
36
37
37
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
42
42
42
43
43
43
43
43
44
44
44
47
47
47
47
47
48
49
50
52
52
53
53
54
54
54
54
55
55
55
56
56
59
59
60
61
61
63
63
64
64
64
66
67
71
71
73
73
74
81
83
84
87
87
88
88
88
88
88
90
91
92
92
92
94
94
94
95
97
108
108
113
115
116
116
116
119
121
122
123
123
123
123
124
124
124
124
124
125
126
128
131
134
134
136
137
138
138
138
139
140
140
141
141
141
142
142
142
142
142
142
148
153
155
155
155
156
156
157
157
157
157
158
158
158
160
160
161
161
161
161
162
163
168
168
169
169
169
171
173
173
175
175
175
175
177
177
178
178
179
179
181
181
182
182
183
184
184
185
187
188
190
190
191
195
197
199
200
200
200
200
203
206
207
209
209
209
209
210
210
211
212
214
214
221
222
222
224
224
224
225
225
227
236
237
237
237
239
239
240
244
244
244
245
246
246
247
249
249
249
249
249
250
256
257
267
270
271
271
273
275
275
278
279
279
280
281
284
284
285
285
286
287
289
291
291
291
294
302
302
304
304
307
307
309
311
315
315
317
317
319
319
320
320
320
320
324
324
331
333
338
338
338
338
340
354
357
359
359
363
366
368
382
387
387
390
395
395
410
415
415
418
420
423
443
444
446
473
473
475
490
493
494
496
515
518
518
539
544
544
557
558
558
563
563
580
586
586
605
611
611
623
627
629
646
651
651
672
677
677
691
693
696
974
975
976
7
7
8
8
8
9
9
9
9
10
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
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
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
20
20
20
21
21
21
21
22
24
24
25
26
28
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
32
32
32
32
32
32
32
32
33
33
34
34
34
34
34
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
44
44
44
45
45
45
47
47
48
48
48
49
50
50
50
53
53
54
54
55
55
55
55
55
56
60
60
60
60
61
62
63
63
63
63
63
63
63
63
64
64
65
65
66
67
68
72
72
74
74
81
82
84
84
86
88
88
89
89
89
89
91
92
93
93
93
95
97
97
98
108
114
116
116
116
116
117
117
122
123
124
124
125
125
125
126
126
126
127
136
137
138
139
139
139
139
140
140
140
140
140
140
140
140
141
141
142
142
142
142
143
143
148
154
155
155
155
156
156
156
158
158
158
158
158
159
159
159
159
161
162
162
162
163
164
170
170
170
170
173
176
176
178
178
178
178
179
179
180
181
181
181
181
181
181
181
181
183
183
183
183
184
185
185
191
191
192
196
198
198
201
201
203
203
204
207
208
210
210
210
211
212
213
215
215
215
215
225
225
226
226
228
236
236
238
238
238
241
245
245
245
246
247
247
247
247
249
250
250
250
250
250
251
257
267
271
272
272
274
276
276
280
280
280
280
281
282
285
285
286
286
287
288
291
292
295
303
308
308
309
309
310
316
316
320
320
321
321
321
321
325
325
331
334
338
338
339
339
339
339
358
360
364
367
369
383
388
388
391
396
396
411
416
416
419
421
424
436
444
445
447
474
474
476
494
495
497
516
519
519
540
545
545
558
564
564
581
587
587
606
612
612
628
630
647
652
652
673
678
678
694
697
975
976
977
7
7
7
8
8
8
8
8
9
9
10
10
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
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
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
21
21
21
21
21
21
22
23
24
24
25
25
25
26
27
27
28
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
33
33
33
33
33
33
33
33
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
37
37
37
37
37
37
37
37
38
38
38
39
39
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
43
43
43
43
43
43
44
44
44
45
45
45
45
46
48
49
49
49
51
54
55
56
56
56
56
57
61
61
61
61
62
64
64
64
64
66
66
67
68
69
72
72
73
73
75
81
82
84
85
86
86
86
87
88
89
89
90
90
90
90
93
94
94
94
96
96
96
96
97
97
98
99
108
115
117
117
118
123
123
123
123
124
124
124
125
125
126
126
126
127
128
136
137
138
138
138
139
139
139
140
140
141
141
142
142
143
143
144
144
155
156
157
157
157
158
159
160
160
160
161
162
162
162
163
163
163
164
165
171
171
176
179
179
179
179
180
180
182
182
182
182
182
183
184
184
184
185
186
186
192
192
197
201
202
202
204
204
205
208
209
211
211
211
212
213
213
214
215
215
216
216
222
224
226
226
227
229
239
239
239
242
244
244
246
246
246
247
248
248
250
251
251
251
251
251
252
255
255
267
271
272
273
273
277
277
280
280
281
281
281
282
283
286
287
288
289
291
293
296
304
306
309
309
309
310
311
317
317
319
321
321
322
322
322
322
326
326
335
340
340
340
340
359
361
365
368
370
384
389
389
392
397
397
412
417
420
422
425
437
437
437
445
446
448
475
475
477
495
496
498
517
520
541
546
546
559
565
565
582
588
588
607
613
613
629
631
648
653
653
674
679
679
695
698
976
977
978
7
7
7
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
14
14
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
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
22
22
23
23
24
25
25
25
25
26
26
26
26
26
26
26
26
28
28
31
31
31
31
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
39
39
40
40
41
41
41
41
41
42
42
42
42
42
42
42
43
43
44
44
44
44
44
44
45
45
46
46
47
50
50
52
54
55
56
57
57
57
58
62
63
65
65
65
65
66
66
68
69
70
70
72
73
73
74
74
76
86
86
87
87
87
87
88
88
89
90
90
91
91
94
94
95
95
95
96
97
97
97
97
98
99
100
100
116
117
119
122
122
123
123
123
124
124
124
124
125
125
128
129
136
138
138
139
139
140
140
140
140
141
141
142
142
143
143
144
144
145
145
153
156
158
158
158
158
158
158
159
159
160
160
160
161
161
161
161
162
162
163
163
163
164
164
164
165
165
171
176
180
181
181
183
183
183
183
183
185
186
187
187
190
198
200
202
202
203
203
206
209
209
210
212
212
212
213
214
215
216
217
217
225
228
230
237
240
240
243
245
247
247
247
248
249
249
249
249
251
252
252
252
252
252
253
253
255
256
256
272
273
274
278
278
280
281
282
282
282
283
283
284
287
288
289
290
294
297
305
307
310
310
311
312
318
318
319
322
322
323
323
323
327
327
336
336
341
341
341
341
360
362
366
369
371
385
390
390
393
398
398
413
418
421
423
426
437
438
438
446
447
449
476
476
478
496
497
499
518
521
542
547
547
560
566
566
583
589
589
608
614
614
630
632
649
654
654
675
680
680
696
699
977
978
979
7
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
13
14
14
15
15
15
15
15
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
18
18
18
18
18
18
19
19
19
19
19
19
19
20
21
21
21
21
23
23
25
26
27
27
27
27
27
27
27
27
28
29
29
29
29
29
30
30
30
30
31
31
32
32
32
32
32
32
32
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
41
41
41
41
42
43
43
43
43
43
44
44
44
45
45
45
46
46
47
47
48
51
51
53
55
55
56
56
57
57
58
59
59
62
62
62
62
63
63
64
64
66
67
73
74
74
75
75
77
87
88
88
88
88
89
89
90
91
91
92
95
95
95
95
96
96
96
98
99
100
117
117
117
117
120
123
123
124
124
124
125
125
125
126
126
129
139
139
139
139
139
140
140
140
140
141
141
141
141
144
144
145
145
146
146
154
156
156
157
159
159
159
161
162
162
162
162
162
163
163
164
164
164
165
165
165
171
177
180
180
180
180
181
181
182
182
183
184
186
187
188
188
199
200
204
204
207
210
210
211
213
213
214
215
215
215
216
217
221
222
226
229
231
238
240
244
246
247
248
249
249
250
250
250
253
253
253
253
256
257
257
271
273
274
278
279
282
283
283
283
285
287
288
288
289
289
290
291
293
295
298
306
307
308
311
311
312
319
319
323
323
324
324
324
328
328
337
337
342
342
342
354
361
363
367
370
370
372
372
386
391
391
394
399
399
414
416
416
419
422
424
427
438
438
447
448
450
477
477
479
497
498
500
519
522
543
548
548
561
567
567
584
590
590
609
615
623
631
633
650
655
655
676
681
691
695
697
700
978
979
980
11
11
11
11
11
11
11
12
12
12
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
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
24
24
24
25
25
26
26
27
27
28
28
28
28
28
29
29
29
29
29
30
30
30
30
30
31
31
31
31
32
32
33
33
33
33
33
33
33
33
33
33
34
34
35
35
35
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
42
43
44
44
45
46
46
46
47
47
49
52
53
54
54
56
57
57
57
58
59
60
60
63
63
63
63
63
63
64
64
64
64
65
66
66
67
68
75
75
76
76
78
84
87
88
88
88
88
88
89
90
90
90
90
91
91
92
92
92
92
93
96
96
96
97
97
97
97
97
99
100
100
105
116
118
118
118
121
123
123
124
124
124
124
124
125
125
125
126
127
129
129
130
136
136
137
139
139
139
139
140
141
141
142
142
142
143
143
143
143
145
145
146
146
146
147
154
154
157
158
158
158
159
160
160
160
161
162
163
163
163
163
163
164
164
165
165
165
166
166
178
181
181
181
181
181
181
182
182
183
183
183
184
186
186
187
187
188
189
189
190
190
200
204
205
208
211
211
212
212
214
214
215
216
216
217
222
222
223
224
227
230
232
240
245
247
247
247
247
247
249
249
249
250
250
251
251
251
251
251
254
254
254
254
258
258
267
271
272
275
279
279
280
283
283
284
285
286
286
288
288
289
289
290
291
292
294
296
299
299
307
307
308
312
312
312
312
313
319
319
320
320
322
322
323
323
324
324
324
324
325
325
325
329
329
329
329
329
337
337
338
341
341
343
343
343
355
359
362
364
368
373
373
387
392
392
395
400
400
415
417
420
423
425
428
447
449
451
478
478
480
498
499
501
520
523
544
549
562
568
568
585
591
591
610
614
614
616
624
629
632
634
651
656
656
677
682
696
698
701
979
980
981
7
7
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
13
13
13
13
13
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
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
21
21
21
21
21
21
21
21
21
21
22
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
27
27
27
27
27
28
28
28
28
28
28
29
30
30
30
30
30
30
31
31
31
31
31
31
31
31
35
35
36
36
36
36
36
36
36
36
37
37
37
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
42
42
43
43
44
44
44
45
47
48
48
50
53
55
55
57
58
58
59
60
61
61
61
63
63
63
63
64
64
64
64
65
65
67
67
68
69
75
75
75
75
76
77
77
79
84
87
87
87
88
88
89
89
89
89
89
90
92
92
94
97
97
98
98
98
98
98
100
101
101
106
106
108
108
116
117
117
117
118
118
118
118
119
119
119
119
122
123
124
124
125
125
126
126
126
127
127
127
128
130
130
131
134
137
137
137
139
141
142
142
143
143
143
143
143
144
144
144
144
146
146
147
147
147
148
157
157
158
159
159
159
159
159
160
160
161
161
161
161
162
162
163
163
164
164
165
166
166
167
167
179
179
181
181
181
181
182
182
182
182
183
183
184
187
187
187
188
190
190
191
191
200
200
201
204
204
204
206
209
212
212
212
212
213
215
215
215
215
216
217
217
218
223
224
224
225
228
231
233
238
246
248
250
250
250
251
251
252
252
252
252
252
255
255
255
255
258
258
258
258
259
267
271
272
273
276
278
278
281
284
284
285
287
289
289
289
290
290
291
291
291
292
293
295
297
300
300
302
302
308
313
313
313
313
314
317
320
320
321
321
324
324
326
326
326
330
330
330
330
330
339
342
342
344
344
344
360
363
365
369
374
374
388
393
393
396
401
401
416
418
421
424
426
429
448
450
450
452
479
479
481
499
500
502
519
519
521
524
545
550
563
569
569
586
592
592
611
615
617
630
633
635
652
657
657
678
680
680
683
697
699
702
980
981
982
7
8
8
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
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
15
15
16
16
16
16
16
16
17
17
17
18
18
18
18
18
19
19
20
20
20
20
20
20
20
20
21
21
22
22
22
22
23
23
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
28
28
28
28
28
28
28
29
29
29
30
30
31
31
31
31
32
32
32
32
33
33
34
34
34
34
34
34
34
34
35
35
36
36
36
36
36
37
37
37
37
37
38
38
38
39
39
39
39
39
40
40
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
44
44
44
44
45
45
46
48
49
51
53
54
56
58
59
59
60
61
62
62
62
62
62
62
63
63
64
64
65
65
66
66
66
66
68
69
69
76
76
77
78
78
80
89
89
90
90
90
90
90
91
93
93
95
97
97
97
98
99
99
99
99
99
101
102
102
109
109
117
118
119
119
120
120
120
120
123
126
127
127
127
128
128
128
129
131
131
135
135
138
139
139
139
140
143
143
143
143
144
144
144
145
145
145
145
148
148
148
148
149
158
159
159
159
160
160
160
160
160
160
161
161
161
162
162
162
162
162
163
163
163
164
165
165
166
167
167
168
168
170
180
180
180
180
180
181
181
182
182
183
183
184
184
184
184
185
188
188
188
190
191
191
192
192
192
198
201
201
202
205
207
210
210
212
212
213
213
214
215
215
216
216
216
216
217
218
219
225
225
226
229
232
234
249
251
251
252
252
252
253
253
253
253
256
256
256
256
259
259
260
272
273
274
277
279
282
285
285
285
286
288
290
291
291
292
292
292
293
294
296
298
301
303
303
309
314
314
314
314
318
318
322
322
325
325
327
327
327
331
331
331
331
331
331
340
341
343
343
345
361
364
366
370
375
375
389
394
394
397
402
402
417
419
422
427
430
451
451
453
480
480
482
500
501
503
520
522
525
546
551
564
570
570
587
593
593
612
616
618
631
634
636
653
658
658
679
681
684
698
700
703
981
982
983
1
7
7
7
8
8
11
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
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
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
18
18
18
18
18
19
19
19
19
19
19
19
19
19
21
21
21
21
21
21
21
23
23
24
24
25
25
27
27
27
27
27
27
27
27
28
28
29
29
29
29
30
30
30
30
30
30
30
30
31
32
32
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
36
37
37
37
37
38
38
38
38
38
39
39
40
40
40
41
41
41
41
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
45
45
45
46
46
47
49
50
51
52
54
55
57
59
60
60
61
61
61
62
62
62
63
63
65
65
66
66
66
66
67
67
67
67
77
77
79
79
81
88
89
90
90
91
91
91
91
91
92
94
94
95
96
96
96
98
98
98
98
99
100
100
100
100
100
100
102
109
117
118
118
118
119
120
120
120
120
120
120
121
121
124
128
128
129
129
129
138
138
139
139
141
142
142
143
143
144
144
144
144
145
145
145
149
149
149
149
149
149
150
158
159
161
161
161
162
162
162
162
163
163
163
163
163
163
164
164
165
166
166
167
169
169
171
171
171
171
175
179
179
180
180
181
183
183
184
184
184
184
185
185
185
185
186
186
190
191
192
192
199
199
203
204
204
206
208
210
211
211
213
214
214
215
217
217
217
217
218
219
220
225
226
226
230
233
235
246
250
250
252
253
254
254
254
254
257
257
257
257
260
260
274
275
278
279
280
283
283
283
286
287
289
291
292
292
292
293
294
295
297
299
300
302
303
303
303
303
304
310
312
315
315
321
322
323
323
323
326
326
328
328
328
328
332
332
332
332
332
332
332
332
341
341
344
344
346
362
365
367
371
376
376
390
395
395
398
403
403
418
420
423
424
428
428
431
452
452
454
481
481
483
501
502
504
521
523
526
547
552
565
571
571
588
594
594
613
617
619
632
635
637
654
659
659
680
682
685
699
701
704
982
983
984
1
1
11
11
11
11
12
13
13
13
13
13
13
13
13
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
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
22
22
22
22
22
22
23
23
24
24
24
24
24
24
25
25
25
25
26
26
26
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
33
33
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
38
39
39
39
40
40
41
41
41
42
42
42
42
42
43
43
43
43
43
43
44
45
46
46
46
47
47
50
51
53
55
56
58
60
60
61
61
62
62
62
63
63
64
64
66
66
68
68
68
68
73
80
80
82
89
89
91
91
91
91
91
93
95
95
96
96
97
97
98
98
99
99
100
100
101
101
101
101
101
101
103
109
117
117
118
119
119
120
121
121
122
122
123
124
124
125
137
142
142
143
143
143
143
143
143
145
145
145
145
146
146
146
147
149
149
150
150
150
150
151
154
157
158
159
159
160
162
163
164
164
164
164
164
164
164
164
165
165
165
165
165
167
167
170
170
170
170
172
172
176
176
176
178
180
180
181
182
183
184
184
186
186
186
186
187
191
191
192
192
193
193
202
204
205
205
207
209
211
212
212
212
212
213
214
215
216
216
218
218
218
218
219
220
221
225
226
226
226
226
227
231
234
234
236
236
251
251
253
254
255
255
255
255
256
258
258
258
258
274
274
274
274
276
279
279
281
283
284
284
287
288
290
292
292
293
293
294
295
296
298
300
300
303
303
304
304
305
307
311
316
316
320
323
324
327
327
329
329
329
329
330
332
332
333
333
333
333
333
333
337
341
342
342
345
347
363
366
366
368
368
372
377
377
391
396
396
399
404
404
419
421
424
429
429
432
453
453
455
482
482
484
502
503
505
522
524
527
548
553
566
572
572
572
572
589
595
595
614
618
620
633
636
636
638
638
655
660
660
681
683
686
700
702
702
705
705
983
984
985
9
9
9
9
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
13
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
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
21
21
21
21
21
22
23
23
23
23
23
23
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
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
32
32
32
32
33
33
33
34
34
34
34
35
35
35
35
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
37
37
37
37
37
37
38
39
39
39
41
41
42
42
43
43
43
43
44
44
44
45
51
52
54
56
57
59
61
61
61
62
62
62
62
62
62
62
62
62
63
63
64
64
65
65
65
66
66
69
75
81
83
92
92
92
94
96
96
98
98
98
99
100
100
101
101
102
102
102
102
102
102
104
118
118
120
120
120
120
121
122
122
123
123
124
124
124
125
125
126
126
126
127
129
129
137
138
139
139
142
143
144
144
144
144
144
144
145
146
146
146
146
147
150
151
151
151
151
152
154
157
157
159
159
159
160
160
161
163
165
165
166
166
166
166
168
171
171
172
177
177
179
179
180
180
180
180
180
180
180
181
182
183
183
183
184
184
184
186
186
188
193
193
194
194
201
203
203
205
208
210
213
213
214
216
217
217
219
219
219
219
220
220
221
221
222
222
227
227
228
232
237
237
252
252
252
254
255
256
256
258
259
259
259
259
275
275
277
280
282
284
285
285
288
289
291
293
294
294
295
296
297
299
303
303
304
304
305
305
307
308
312
312
312
317
317
320
324
325
328
328
330
330
330
330
333
334
334
334
334
334
334
337
342
343
343
346
348
364
369
369
373
378
378
392
397
397
400
405
405
420
422
425
430
430
433
454
454
456
483
485
503
504
506
523
525
528
528
547
548
549
554
567
573
573
590
596
596
615
619
621
634
639
639
656
661
661
682
684
687
701
706
706
984
985
986
8
8
8
8
8
8
8
8
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
14
14
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
18
18
19
19
19
19
20
20
20
20
21
22
22
22
23
23
23
24
24
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
28
28
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
39
39
39
41
42
42
42
42
42
43
43
44
44
45
45
45
52
53
55
57
57
57
58
60
60
62
62
62
63
63
63
63
63
63
63
64
64
64
65
65
65
65
66
66
66
66
66
66
66
66
66
66
67
67
67
75
75
75
75
76
82
84
91
91
91
93
93
93
96
96
97
97
98
98
98
99
99
99
100
100
102
102
103
103
103
103
103
103
103
103
103
105
118
118
119
119
121
121
122
123
123
124
124
124
125
126
126
126
127
127
127
127
127
127
128
130
130
138
142
143
144
144
144
144
144
145
145
146
146
146
146
147
147
147
147
148
149
149
151
152
152
153
158
159
160
160
160
161
161
162
164
166
166
167
167
169
172
172
172
176
177
177
177
177
178
178
180
180
181
181
181
181
182
183
183
183
184
184
184
184
184
184
184
184
185
185
187
187
189
191
192
192
192
194
194
195
195
201
209
211
212
212
214
214
214
214
217
218
218
218
218
218
220
220
222
222
223
223
225
226
228
228
233
238
238
240
240
250
253
253
255
255
255
256
257
257
258
258
258
258
258
258
259
260
260
260
260
276
276
279
279
281
283
283
285
286
289
290
292
294
295
295
295
296
296
297
297
298
298
300
304
305
305
307
313
313
313
318
318
325
326
329
329
331
331
331
331
332
332
334
335
335
335
335
335
335
335
335
341
343
344
344
347
349
365
370
370
374
379
379
393
398
398
401
406
406
421
423
426
431
431
434
437
455
455
457
484
486
504
505
507
524
525
529
529
549
550
555
568
574
574
591
597
597
616
620
622
635
640
640
657
662
662
683
685
688
702
707
707
985
986
987
4
4
5
11
11
11
12
12
12
12
13
13
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
15
16
16
16
16
16
17
17
17
17
17
17
18
18
18
19
19
19
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
25
25
25
25
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
43
43
44
44
44
45
45
45
46
46
47
47
53
54
55
56
58
58
58
59
61
63
64
65
66
66
67
67
67
67
67
67
67
67
67
67
68
68
75
76
76
77
82
83
85
89
91
92
92
94
96
97
97
98
98
99
100
100
100
100
100
101
101
103
104
104
104
104
104
104
106
106
106
118
119
120
120
121
121
122
122
123
125
126
127
127
127
127
127
128
128
128
128
128
128
128
128
129
129
129
131
131
131
137
137
142
142
144
145
146
146
147
147
147
147
148
148
148
148
149
150
153
153
154
154
159
161
161
161
162
162
162
163
164
164
165
165
165
167
167
167
170
173
173
178
178
179
183
184
185
185
185
185
185
185
185
185
186
186
186
188
188
188
190
191
191
191
192
193
193
193
196
196
205
210
212
212
212
213
213
215
218
218
219
219
219
219
221
221
223
223
224
224
227
234
238
239
239
241
241
254
254
256
257
258
258
258
259
259
259
259
260
261
261
261
261
280
280
282
283
283
284
284
284
287
289
290
291
293
295
296
298
298
299
299
301
303
305
306
306
308
312
314
314
314
314
319
319
320
320
326
327
330
330
332
332
332
332
333
336
336
336
336
337
342
344
344
345
348
350
366
371
371
375
380
380
394
399
399
402
407
407
424
427
432
432
435
438
438
438
456
456
458
484
485
487
505
506
506
508
508
525
530
530
550
551
556
569
575
575
592
598
598
617
621
623
636
641
641
658
663
663
684
686
689
703
708
708
986
987
988
5
5
6
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
13
13
13
13
13
13
13
13
13
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
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
21
21
23
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
39
39
39
39
40
40
42
44
44
45
45
45
46
46
46
47
47
47
48
48
54
55
56
57
58
59
59
60
61
61
61
62
64
65
65
66
66
67
67
68
68
68
68
68
68
68
68
68
68
68
68
77
77
78
80
83
84
86
89
90
90
91
95
96
98
99
99
100
101
101
101
101
101
104
105
105
105
105
107
107
107
107
109
109
120
120
121
121
122
122
123
124
128
128
128
129
129
129
129
129
129
129
129
130
130
130
135
138
138
138
143
143
144
144
144
144
145
146
146
148
148
148
148
149
149
149
149
150
150
151
154
154
155
155
158
160
162
163
163
163
164
164
164
165
165
165
166
166
166
167
168
168
171
174
174
177
177
179
179
179
179
179
183
184
184
186
186
186
186
186
186
186
186
186
186
186
187
191
193
194
194
194
197
197
201
201
205
211
213
214
214
214
219
219
220
220
220
220
222
224
224
225
225
225
228
235
239
240
240
241
242
255
257
258
259
259
260
260
260
260
261
262
262
262
262
272
274
283
284
284
285
288
290
290
291
292
292
292
294
296
297
299
299
300
300
302
303
303
304
307
307
312
313
315
318
320
320
321
321
327
328
331
331
332
332
333
333
333
333
334
337
337
337
337
341
343
346
349
351
367
372
372
376
381
381
395
400
400
403
408
408
421
425
425
428
433
433
436
438
439
439
457
457
459
482
485
486
488
506
509
509
526
531
531
551
552
552
557
557
570
576
576
593
599
599
622
624
637
642
642
659
664
664
685
687
690
704
709
709
987
988
989
6
7
8
8
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
14
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
18
18
19
19
19
20
20
22
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
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
34
34
34
34
35
35
35
35
35
35
36
36
37
37
37
37
37
37
37
37
37
39
39
40
42
42
43
45
46
47
47
47
48
48
48
48
48
49
49
56
56
56
58
58
59
60
60
61
61
61
62
62
63
63
65
65
65
65
66
66
67
67
67
67
68
68
68
68
68
68
69
69
69
69
69
69
69
73
78
78
84
85
87
91
91
92
96
97
98
99
100
100
102
102
102
102
102
102
102
102
102
105
106
106
106
106
108
108
110
110
117
120
121
122
123
123
125
127
128
128
128
128
129
129
129
130
130
130
130
130
130
131
131
131
131
136
136
143
143
144
145
145
145
145
146
146
146
146
146
146
146
147
147
149
149
150
150
150
150
155
155
156
156
159
159
161
161
163
164
165
165
165
166
166
166
166
166
167
167
169
169
171
172
175
175
178
179
180
180
183
183
183
184
185
185
185
185
186
186
186
186
187
187
187
187
187
187
188
188
192
192
194
195
195
198
198
199
202
202
205
210
212
214
215
215
220
220
221
221
223
225
225
225
226
226
226
226
236
239
239
241
241
241
242
243
252
254
256
256
257
258
259
260
260
261
261
261
261
263
263
263
263
274
274
275
285
285
285
285
286
289
292
293
293
293
293
295
295
297
298
300
300
300
301
301
303
303
304
305
308
308
313
313
314
314
316
319
319
321
321
328
329
332
332
332
332
333
333
334
334
334
334
334
334
338
338
338
338
342
342
344
344
347
350
352
368
373
373
377
382
382
396
401
401
404
409
409
426
426
429
434
434
437
439
439
458
460
486
487
489
507
510
510
527
532
532
552
558
558
571
577
577
594
600
600
623
625
638
643
643
660
665
665
688
691
705
710
710
988
989
990
4
5
5
7
7
8
11
11
11
11
11
11
11
11
11
11
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
13
13
13
14
14
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
18
18
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
22
22
23
23
23
23
23
23
24
24
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
38
38
39
39
39
39
40
42
42
43
44
44
44
45
46
47
47
47
48
48
48
48
49
49
49
50
50
54
57
57
59
59
60
61
61
64
64
66
66
66
66
67
67
68
68
68
68
69
69
69
69
70
70
70
70
70
70
70
70
74
79
85
86
88
91
91
92
92
92
92
93
97
97
97
100
101
101
101
101
102
102
103
103
103
103
103
106
107
107
107
107
109
109
110
118
118
122
123
126
127
127
127
128
128
128
128
129
129
129
129
130
130
130
131
131
132
132
144
144
145
146
146
147
147
147
147
147
148
148
151
151
151
151
156
156
157
157
159
160
161
162
162
162
162
163
164
165
165
165
166
166
166
166
167
167
167
168
168
170
170
172
172
172
172
173
176
176
177
179
184
184
184
185
186
186
186
186
187
187
188
188
188
188
189
189
193
193
193
199
199
200
200
206
210
211
213
215
216
218
221
221
222
222
224
226
226
226
226
227
227
227
237
242
242
242
243
244
253
253
257
257
258
259
260
261
261
262
262
262
264
264
264
264
274
274
275
276
285
285
286
286
287
290
293
293
296
296
298
299
301
301
301
302
302
304
305
306
309
309
315
315
317
322
322
329
330
333
333
334
334
335
335
335
335
339
339
339
339
342
344
345
345
348
351
353
369
374
374
378
383
383
397
402
402
405
410
410
427
427
430
435
435
438
457
459
459
461
487
488
490
508
511
511
528
533
533
553
559
559
572
578
578
595
601
601
624
626
639
644
644
661
666
666
689
692
706
711
711
989
990
991
4
4
5
5
5
6
8
8
8
8
9
9
9
11
11
11
11
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
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
17
17
18
18
18
18
18
18
19
19
19
19
19
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
24
24
24
24
24
25
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
35
36
36
37
37
37
37
37
37
38
38
39
39
39
39
39
40
42
43
43
44
44
45
45
45
45
45
46
46
48
48
48
49
49
49
49
50
58
58
58
58
60
60
61
62
65
65
65
67
67
67
67
67
67
67
68
68
68
68
68
69
69
69
70
70
70
70
71
71
74
78
78
80
86
87
89
90
91
92
92
93
93
93
94
94
98
101
102
102
102
102
102
102
103
104
104
104
104
104
107
108
108
108
108
110
110
110
118
118
119
119
121
123
127
129
130
130
130
130
130
131
131
131
131
131
131
132
132
133
133
138
143
143
145
145
145
146
146
147
147
147
147
147
148
148
148
148
152
152
152
152
157
157
158
158
159
160
161
161
161
162
162
163
163
163
163
163
163
164
164
166
166
166
166
167
167
167
167
168
171
171
173
173
174
177
177
177
177
178
183
185
185
185
185
185
186
186
186
186
187
187
187
188
188
188
188
188
190
190
194
200
200
211
211
211
214
214
214
215
215
215
215
216
216
217
218
219
222
223
223
225
226
227
227
227
228
228
228
238
241
241
243
243
243
244
250
252
257
258
259
260
261
261
261
261
261
263
263
263
265
265
265
265
274
275
276
277
277
285
285
286
287
287
288
291
293
294
297
297
299
300
301
302
302
302
303
303
305
306
310
310
313
314
314
314
316
316
318
321
323
323
330
330
331
334
334
335
335
336
336
336
336
340
340
340
340
342
344
345
346
346
352
354
370
375
375
379
384
384
398
403
403
406
411
428
428
431
436
439
460
460
462
488
489
491
509
512
512
529
534
534
554
560
560
573
579
579
596
602
602
617
625
627
640
645
645
662
667
667
690
693
707
712
712
990
991
992
6
7
8
8
8
8
8
8
8
8
9
9
9
9
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
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
21
21
21
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
33
33
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
35
35
36
37
37
37
38
38
38
39
41
43
45
45
45
45
46
46
49
49
49
50
50
50
56
58
59
59
59
61
63
66
66
66
66
67
67
67
67
68
68
68
68
68
68
68
68
68
69
69
69
69
69
70
70
70
70
71
71
72
72
74
79
79
81
87
88
89
90
91
91
93
94
99
102
102
103
103
103
103
103
104
105
105
108
109
109
109
109
111
111
118
118
119
119
121
121
121
122
123
123
124
128
128
129
130
130
130
130
131
131
131
131
132
132
132
132
132
133
133
138
144
145
145
145
146
147
147
147
147
148
148
148
148
148
148
148
149
149
153
153
153
158
158
159
159
159
159
161
162
163
163
163
163
164
164
166
167
167
167
167
167
167
167
168
168
168
170
172
172
173
175
176
177
178
178
178
179
184
184
185
185
185
185
186
186
186
186
186
186
187
187
187
187
187
187
187
188
188
188
189
189
189
195
195
201
201
202
203
212
214
215
216
216
216
217
217
218
219
220
221
223
224
224
226
227
228
228
228
229
229
239
239
241
242
244
244
251
251
253
253
257
259
260
261
262
262
262
262
262
264
264
264
264
264
266
266
266
266
272
276
277
283
285
285
286
287
287
289
292
295
298
298
300
301
301
302
303
303
304
304
306
306
306
307
311
311
313
313
313
314
315
315
315
319
321
324
324
331
331
332
335
335
336
337
337
337
337
341
341
341
341
342
342
345
346
353
355
371
376
376
380
385
385
399
404
404
407
412
429
429
432
435
437
438
440
461
461
463
489
490
492
510
513
513
530
535
535
555
561
561
574
580
580
597
603
603
618
623
626
628
641
646
646
663
668
668
685
689
691
694
708
713
713
991
992
993
4
5
7
8
8
9
9
9
9
10
10
10
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
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
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
18
18
19
19
19
19
19
20
20
21
21
22
22
22
22
22
22
23
23
23
23
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
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
37
37
38
39
39
41
41
43
45
45
45
45
45
45
46
46
47
47
50
50
51
51
56
56
58
58
59
60
60
60
62
64
67
67
67
67
68
68
68
68
68
68
69
69
69
70
70
70
70
70
70
71
71
72
73
74
78
80
80
88
89
90
90
91
94
94
100
101
101
101
102
102
103
103
104
104
104
106
106
109
110
110
110
110
112
112
121
122
122
122
122
123
123
124
124
125
129
129
129
130
130
132
133
133
133
134
134
143
146
146
147
148
148
148
148
149
149
149
149
150
150
152
152
154
154
154
159
159
160
160
160
160
161
161
161
161
163
163
163
163
164
165
165
168
168
168
168
169
169
171
173
173
173
176
177
179
179
179
180
185
185
186
186
186
186
186
187
187
188
188
188
188
189
190
190
190
195
196
202
202
202
204
211
213
216
217
217
218
218
218
220
221
222
224
225
225
227
227
227
228
228
228
229
229
229
230
230
239
239
240
241
241
242
243
245
245
251
253
254
254
257
260
261
261
262
263
263
263
265
265
265
265
267
267
267
267
273
273
277
277
284
285
285
286
286
287
288
290
293
296
299
299
301
302
304
305
307
307
307
308
312
312
315
316
316
316
320
325
325
331
331
332
333
335
335
336
336
337
338
338
338
338
342
342
342
342
343
343
344
344
344
346
354
356
372
377
377
381
386
386
400
405
405
408
410
410
413
430
430
433
438
439
441
462
462
464
490
491
493
511
514
514
531
536
536
556
562
562
575
581
581
598
604
604
624
627
629
642
647
647
664
669
669
690
692
695
709
714
714
992
993
994
1
5
5
5
5
7
7
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
17
17
17
17
18
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
23
23
23
23
23
23
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
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
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
38
38
39
39
40
43
43
46
46
46
46
46
47
47
47
48
50
50
50
50
51
51
51
51
51
52
59
59
60
61
61
61
63
65
67
67
68
68
68
68
69
70
70
71
71
71
71
71
71
72
72
73
74
79
81
89
90
92
93
95
95
97
97
101
101
102
102
102
102
104
104
105
105
107
107
110
111
111
111
111
113
113
123
123
123
124
124
125
125
130
131
133
134
134
135
135
144
145
146
147
147
147
147
147
147
148
148
150
150
150
150
153
153
155
155
155
160
160
161
161
161
161
162
162
162
162
164
164
164
165
165
166
168
168
168
168
168
169
169
169
169
169
170
172
174
174
174
177
177
177
178
180
180
180
185
185
186
187
188
189
189
189
189
190
191
191
197
203
203
205
205
214
217
219
219
219
221
223
225
226
226
228
229
229
230
230
230
231
231
241
242
242
243
244
246
246
251
253
254
255
255
260
262
262
263
264
264
266
266
266
266
268
268
268
268
278
278
285
285
287
287
289
291
294
297
300
300
302
303
305
306
308
308
308
313
313
314
316
317
317
321
326
326
333
334
336
336
337
337
338
339
339
339
339
343
343
343
343
345
345
345
345
348
355
357
373
378
378
382
387
387
401
406
406
409
411
414
431
431
434
439
440
442
463
463
465
491
492
494
512
515
515
532
537
537
557
563
563
576
582
582
599
605
605
625
628
630
643
648
648
665
670
670
691
693
696
710
715
715
993
994
995
1
1
1
1
4
5
7
7
8
8
8
8
8
8
8
8
8
8
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
12
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
18
18
19
20
20
20
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
24
24
24
24
24
26
26
26
26
26
26
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
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
37
37
37
38
38
38
40
41
41
45
45
45
47
47
47
47
47
48
49
51
51
52
52
52
53
60
61
61
62
62
64
66
66
67
67
68
68
69
69
69
71
71
71
71
72
72
74
75
78
80
90
91
93
93
93
93
96
96
97
101
101
102
102
103
103
105
105
106
106
108
108
111
112
112
112
112
114
114
122
123
123
123
123
125
125
131
131
131
131
132
132
132
132
132
136
136
146
146
147
147
147
148
148
148
148
148
148
148
149
149
152
154
154
156
156
161
162
162
163
163
165
165
165
166
167
168
169
169
170
170
170
171
173
175
177
178
178
178
180
180
181
181
181
184
185
185
186
186
187
189
189
189
189
195
195
198
204
206
206
206
206
215
215
218
219
219
220
220
221
221
221
222
224
226
227
227
227
228
228
228
229
230
230
231
231
232
232
242
243
244
244
247
247
254
255
261
261
263
263
263
264
265
267
267
267
267
269
269
269
279
279
288
288
290
292
295
298
301
301
303
304
306
306
307
309
314
314
315
315
322
327
327
334
335
335
337
337
338
338
340
340
340
340
344
344
344
344
346
346
349
353
356
358
374
379
379
383
388
388
402
407
407
410
412
415
432
432
435
440
441
443
464
464
466
492
493
495
513
516
516
533
538
538
558
564
564
577
583
583
600
606
626
629
631
644
649
649
666
671
692
694
697
711
716
716
994
995
996
4
4
5
5
5
6
7
7
8
8
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
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
18
18
18
18
19
19
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
26
26
27
27
27
27
27
27
28
28
28
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
30
30
30
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
32
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
38
38
38
39
39
39
39
41
41
41
42
46
46
46
48
48
50
51
52
52
53
53
63
63
65
67
67
67
68
68
69
69
70
71
71
72
72
73
74
75
76
78
79
90
91
91
92
94
94
94
94
94
94
102
102
103
103
104
104
104
105
107
107
107
109
109
112
113
113
113
113
115
115
118
122
122
122
123
124
124
124
129
130
131
132
132
132
132
133
133
136
137
147
147
147
148
148
148
148
149
149
149
150
150
152
157
157
162
163
163
163
166
166
168
169
170
170
171
171
174
176
179
179
181
181
182
182
182
185
185
186
186
187
187
189
189
193
196
196
199
203
203
204
205
206
206
207
207
211
215
216
216
221
221
222
222
223
225
227
227
227
228
228
228
229
229
229
230
230
232
232
233
233
243
248
248
255
257
261
262
264
264
265
266
268
268
268
268
270
270
270
273
277
288
290
291
293
296
299
301
302
304
305
307
308
310
315
315
319
323
328
328
335
335
336
339
339
341
341
341
341
345
345
345
345
346
354
357
359
375
380
380
384
389
389
403
408
411
413
416
433
436
441
442
444
465
465
467
493
494
496
514
517
517
534
539
559
565
565
578
584
584
601
605
605
607
627
630
630
632
632
645
650
650
667
672
693
695
698
712
717
717
995
996
997
1
5
6
7
7
7
7
7
7
7
10
10
11
11
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
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
18
18
18
18
19
19
19
19
20
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
27
27
27
27
27
27
27
28
28
28
28
28
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
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
37
37
39
39
40
40
40
42
43
45
47
47
47
48
48
48
48
49
50
51
51
52
64
64
66
68
69
69
69
69
70
70
70
70
71
71
71
71
71
71
71
72
72
73
74
74
76
77
78
79
80
90
92
92
93
94
94
94
95
95
95
95
102
104
104
104
104
105
105
105
108
108
108
110
110
110
110
113
114
114
114
114
116
118
119
123
123
124
125
125
125
130
130
131
131
133
134
137
138
146
146
147
148
148
148
148
148
149
149
149
149
150
150
152
153
158
158
160
160
163
163
163
164
164
164
164
166
166
166
166
167
168
169
169
170
175
177
180
180
182
182
183
183
187
187
187
187
188
188
189
189
189
189
191
194
194
200
200
204
206
207
208
208
211
216
217
217
219
221
222
222
223
223
226
228
229
230
230
230
231
231
233
233
234
234
244
249
249
253
253
257
261
262
263
265
265
266
267
268
268
269
269
271
271
271
273
277
278
288
291
292
293
293
294
294
297
297
300
301
302
303
303
303
304
304
305
306
306
306
308
309
311
316
316
317
320
324
329
329
331
335
336
336
337
340
340
342
342
342
346
346
346
346
346
355
358
360
376
381
381
385
390
390
404
409
412
414
417
432
434
435
437
442
443
445
466
466
468
494
495
497
515
518
535
540
560
566
566
566
566
579
585
585
602
606
608
628
633
633
646
651
651
668
670
670
673
694
696
696
699
699
713
718
718
996
996
998
4
5
5
5
6
7
8
8
8
8
9
9
9
9
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
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
17
17
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
23
23
23
23
23
23
23
23
23
25
25
25
25
25
25
25
26
26
26
27
27
28
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
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
35
35
35
35
35
35
35
35
36
36
36
36
38
38
38
38
38
40
40
41
43
44
45
46
48
48
49
49
50
50
51
52
53
61
65
65
67
68
68
69
70
70
71
71
72
72
72
72
72
72
73
74
75
77
77
78
78
79
80
81
93
94
94
95
95
96
96
96
96
102
104
105
105
106
106
109
109
111
111
111
111
114
115
115
115
115
117
118
123
124
124
125
126
126
134
134
138
138
139
147
147
147
148
148
149
149
149
149
149
149
150
150
150
150
151
151
153
154
159
159
161
164
164
165
165
167
167
167
168
168
169
170
171
172
176
178
180
181
181
184
184
188
190
190
190
190
191
201
201
205
206
206
207
208
215
217
218
218
222
223
223
227
228
229
230
231
231
232
232
234
234
235
235
244
245
250
250
251
251
253
254
254
262
263
264
266
266
267
268
268
268
269
270
270
270
270
272
272
272
278
279
293
294
294
298
298
301
301
304
304
305
306
307
307
307
309
309
310
310
312
317
317
317
321
321
325
330
330
331
336
337
337
338
341
341
341
341
343
343
343
347
347
347
347
356
359
361
377
382
382
386
391
391
405
407
407
410
413
415
418
435
436
438
438
443
444
446
467
467
469
495
496
498
516
519
536
541
561
567
567
580
586
586
603
607
609
629
634
634
647
652
652
669
671
674
695
700
700
714
719
719
996
997
997
999
5
5
5
7
7
7
7
8
8
8
8
8
9
9
9
9
11
11
11
11
11
11
11
12
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
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
23
23
23
23
23
23
24
24
25
25
25
25
25
25
26
26
26
26
26
27
27
27
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
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
36
36
37
37
39
39
39
39
40
41
41
42
44
45
46
48
48
48
49
50
50
50
50
50
51
51
51
51
52
53
54
59
66
66
67
68
70
70
71
72
72
72
72
73
73
74
74
75
78
78
79
79
81
82
90
90
94
94
94
94
94
95
95
96
96
97
102
102
105
106
106
108
110
110
111
111
111
111
112
112
112
115
116
116
116
116
118
119
123
124
124
125
125
125
132
132
132
133
133
133
135
139
139
139
139
140
146
147
148
149
150
150
151
151
151
151
152
152
152
154
155
160
160
162
165
166
166
166
166
167
168
168
168
168
168
168
168
168
168
169
169
169
169
170
171
172
173
173
173
177
177
179
182
182
185
185
185
188
190
190
196
202
202
202
206
207
208
216
218
219
219
223
224
224
228
229
230
231
231
233
233
235
235
236
236
242
246
251
251
254
255
255
264
265
267
267
268
269
270
271
271
271
271
273
273
273
273
273
277
279
291
294
294
294
294
294
295
299
299
302
302
305
305
306
306
306
307
308
308
308
310
310
311
311
313
318
318
322
322
322
322
326
331
331
335
337
338
338
339
342
342
342
344
344
344
348
348
348
348
357
360
360
362
362
378
383
383
387
392
392
406
408
411
414
416
419
436
437
439
439
444
445
447
468
468
470
496
497
499
517
520
537
542
562
568
568
581
587
587
604
608
610
630
635
635
648
653
653
670
672
675
696
701
701
715
720
720
998
998
1000
5
6
7
7
8
8
8
8
9
9
9
9
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
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
18
18
18
21
22
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
24
24
24
24
24
24
24
24
25
25
25
25
25
25
27
27
27
28
28
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
36
37
38
38
40
40
40
40
40
42
42
43
44
46
48
48
48
49
49
49
50
51
52
52
53
54
55
67
67
68
68
69
69
69
69
69
70
70
71
72
72
73
73
74
74
75
79
79
80
80
81
81
81
81
83
91
91
92
94
94
95
95
95
95
96
96
96
98
98
102
103
103
104
104
104
106
107
111
111
112
112
113
113
113
116
117
117
117
117
119
123
124
130
131
132
133
133
133
134
134
134
134
135
136
136
137
139
139
140
140
141
147
147
148
148
149
149
149
150
150
150
150
150
150
152
152
152
152
153
155
155
161
161
162
163
166
166
166
167
167
167
167
167
168
169
169
169
170
170
171
172
173
174
174
177
178
178
180
180
180
183
183
186
186
186
186
187
187
188
188
190
190
191
191
196
203
203
203
203
203
206
206
207
208
209
216
216
218
218
218
219
219
220
220
221
225
225
229
231
231
232
234
234
236
236
237
237
247
252
252
256
256
264
264
264
264
266
268
269
270
271
272
272
272
272
274
274
274
274
274
277
277
278
278
285
295
295
295
296
300
300
301
301
303
306
306
306
307
307
311
311
312
312
314
317
317
319
319
320
322
322
323
323
327
331
332
332
336
338
338
339
340
343
343
343
345
345
345
345
349
349
349
349
358
363
363
379
384
384
388
393
393
407
409
412
415
417
420
437
438
439
439
440
444
446
448
469
469
471
497
498
498
500
500
518
521
537
538
538
543
563
569
569
582
588
588
605
609
611
631
636
636
649
654
654
671
673
676
697
702
702
716
721
721
999
999
1001
4
5
5
5
5
5
5
6
7
7
7
7
8
8
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
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
12
13
13
13
13
13
13
14
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
18
18
18
18
19
19
19
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
24
24
24
25
25
25
25
26
26
26
26
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
36
36
37
37
37
38
39
39
41
41
41
41
43
43
44
45
45
46
47
48
49
50
50
52
53
53
53
53
54
54
54
55
56
68
68
70
70
70
70
70
70
71
71
72
72
72
72
72
73
73
73
73
74
75
75
75
76
80
80
81
81
82
82
84
92
94
95
95
96
96
97
99
99
103
103
105
105
105
105
105
105
108
111
111
112
112
113
113
114
114
115
115
117
118
118
118
118
120
124
124
125
125
126
126
126
131
131
132
132
132
135
135
137
137
140
141
141
142
148
148
148
149
149
149
149
149
149
150
150
150
151
151
151
151
151
151
152
154
162
162
163
163
163
163
164
166
167
167
168
168
168
168
169
170
171
171
171
171
172
172
172
173
173
174
174
174
174
174
175
177
179
181
181
181
184
184
187
187
188
188
188
188
189
189
189
190
190
190
190
192
192
201
203
203
204
204
204
206
206
207
207
208
210
219
219
220
220
221
221
221
222
226
226
229
230
232
233
235
235
237
237
238
238
248
253
253
256
256
256
256
257
265
265
267
267
269
269
270
271
272
273
273
273
273
275
275
275
278
278
286
286
288
288
294
294
296
296
296
301
301
302
304
307
307
307
307
307
308
308
308
312
312
313
313
315
315
318
318
320
320
323
324
324
328
333
333
335
337
340
341
344
344
344
346
346
346
346
346
346
346
350
350
350
350
359
364
364
380
385
385
389
394
394
408
410
413
418
421
438
439
439
440
440
441
445
447
447
449
470
470
472
498
501
501
517
517
519
522
539
539
544
564
570
570
583
589
589
606
610
612
632
637
637
650
655
655
672
674
677
698
703
703
717
722
722
1000
1000
1002
6
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
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
12
12
12
12
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
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
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
24
25
25
25
25
25
25
25
25
27
27
27
27
29
29
29
29
29
29
29
29
29
29
30
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
37
38
38
39
39
40
40
42
42
42
42
44
44
45
46
46
48
48
48
48
49
49
50
51
53
53
54
54
54
54
55
55
56
57
61
69
69
71
71
71
72
73
73
73
73
74
74
75
76
76
76
77
81
81
82
82
83
83
93
94
95
96
96
96
96
97
98
100
100
106
106
106
106
109
112
113
113
115
115
116
118
119
119
119
119
121
124
126
126
126
127
127
133
133
138
138
139
139
141
143
149
150
150
151
152
152
152
152
152
152
153
153
155
155
163
164
164
164
165
166
166
166
167
167
168
168
169
169
169
169
171
171
172
172
172
172
173
173
174
175
175
175
176
178
180
180
182
182
182
182
185
185
188
188
189
190
190
191
191
191
191
196
196
204
205
205
205
208
208
209
211
216
218
220
220
222
222
222
223
227
227
231
233
234
236
236
238
238
239
239
244
249
254
254
257
257
258
266
266
270
270
271
272
273
274
274
274
274
276
276
276
279
279
279
279
289
289
295
297
302
302
303
304
308
308
308
309
309
309
313
313
314
314
316
316
316
321
321
322
322
324
329
334
334
336
336
338
338
341
342
345
345
345
347
347
347
347
347
351
351
351
351
360
365
365
381
386
386
390
395
395
409
411
414
415
419
419
422
439
440
440
440
441
442
448
448
450
471
471
473
499
502
502
518
520
523
540
540
545
565
571
571
584
590
590
607
611
613
633
638
638
651
656
656
673
675
678
699
704
704
718
723
723
1001
1001
1003
5
5
5
5
5
5
5
5
7
7
7
7
7
8
8
8
8
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
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
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
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
17
17
19
19
19
19
19
19
19
19
19
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
23
23
23
23
23
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
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
30
30
30
30
30
30
31
31
31
31
31
32
32
32
33
33
33
33
34
35
35
35
35
35
35
35
35
38
39
39
39
39
40
40
41
41
43
43
43
43
45
45
46
46
47
47
49
49
49
49
50
50
50
52
53
53
54
54
54
55
55
55
56
56
62
62
68
70
70
71
72
72
73
73
75
75
77
77
77
78
79
82
82
83
83
93
93
96
96
96
97
97
97
97
98
99
101
101
106
106
110
111
113
114
114
116
116
117
119
120
120
120
120
122
124
125
125
125
125
125
127
127
133
134
139
139
140
144
148
149
149
149
150
150
151
151
153
153
153
153
153
155
156
156
164
164
164
165
166
167
167
167
168
168
168
169
170
170
170
171
171
172
172
172
173
173
173
174
174
174
174
176
176
180
181
181
183
186
186
186
189
189
189
191
191
194
197
197
203
203
204
205
206
209
209
210
212
219
222
223
223
223
228
228
232
234
235
237
237
239
239
240
240
245
245
250
255
255
258
258
262
271
271
272
273
274
275
275
275
275
277
277
277
279
279
280
280
289
294
296
298
303
303
304
307
308
308
308
309
309
309
310
310
310
314
314
315
315
317
322
322
323
330
335
335
336
338
339
339
342
343
346
346
346
347
348
348
348
352
352
352
352
361
366
366
382
387
387
391
396
396
410
412
415
420
420
423
440
440
440
441
441
442
443
449
449
451
472
472
474
500
503
503
519
521
524
541
541
546
566
572
572
585
591
591
608
612
614
634
639
639
652
657
657
674
676
679
700
705
705
719
724
724
1002
1002
1004
5
5
7
7
8
8
8
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
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
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
18
18
18
18
18
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
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
26
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
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
31
31
31
31
31
31
31
31
32
32
32
33
33
34
34
35
35
37
39
39
39
39
40
40
40
41
41
42
42
44
44
44
44
46
46
47
47
48
49
50
50
50
51
51
51
53
54
54
55
55
55
56
56
57
59
61
69
69
71
71
71
71
71
73
73
73
73
73
73
73
73
78
78
78
79
81
81
83
83
84
84
96
96
97
97
98
98
98
98
99
100
102
102
105
106
106
111
111
111
112
115
115
117
117
118
120
121
121
121
121
123
124
124
124
125
126
126
126
133
133
133
134
134
134
135
139
139
140
140
140
141
145
145
148
148
149
150
150
150
151
151
153
153
153
155
156
157
157
164
165
165
167
167
168
168
169
169
169
170
171
171
171
172
172
173
173
173
174
174
175
175
181
181
182
182
182
184
187
187
187
187
189
189
190
190
191
191
191
191
191
191
192
195
195
204
205
210
211
213
216
220
222
223
223
223
223
224
224
229
229
233
235
236
238
238
240
241
242
244
251
254
256
256
264
264
272
272
273
274
275
276
276
276
276
278
278
278
279
279
280
281
281
289
294
294
295
299
304
304
305
307
307
307
308
309
309
309
310
310
310
311
315
315
316
316
318
318
322
322
323
323
324
331
336
336
336
338
339
340
340
343
344
347
347
347
347
349
349
349
353
353
353
353
362
367
367
383
388
388
392
397
397
411
413
416
421
421
424
441
441
442
442
444
450
450
452
473
473
475
501
504
504
520
522
525
542
542
542
547
547
567
573
573
586
592
592
613
615
635
640
640
653
658
658
675
677
680
701
706
706
720
725
725
1003
1003
1005
8
8
8
8
8
9
9
10
10
10
10
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
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
19
19
19
19
19
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
22
22
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
26
26
26
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
28
28
28
28
28
28
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
30
30
30
30
30
30
30
31
32
32
32
32
32
33
33
33
34
35
35
35
35
40
40
41
41
41
41
42
43
43
45
45
45
45
47
47
47
48
49
51
51
51
52
52
54
55
55
56
56
56
57
60
60
62
62
72
72
72
73
74
74
74
74
74
74
79
79
79
80
81
81
82
82
84
84
85
85
96
96
97
98
99
99
100
103
103
106
106
106
106
108
111
112
112
113
116
116
118
118
119
121
122
122
124
124
126
127
127
127
127
127
127
131
132
134
134
134
134
135
135
135
135
135
139
139
140
140
141
146
146
151
151
151
153
153
153
153
153
153
156
157
162
165
166
166
168
169
169
170
170
171
172
172
172
173
173
174
174
174
174
175
176
183
183
183
185
188
188
190
190
191
191
192
192
192
192
192
203
203
205
205
205
209
209
209
211
212
214
216
217
218
224
224
225
225
230
230
234
236
237
239
239
241
242
243
243
245
245
252
256
257
257
264
264
265
265
273
273
275
276
277
277
277
277
279
279
279
279
279
280
281
291
294
295
296
300
305
305
306
309
310
310
310
311
311
311
312
316
316
317
317
318
319
322
322
323
323
324
324
332
336
336
337
337
339
340
344
345
348
348
348
350
350
350
354
354
363
368
368
384
389
389
393
398
398
412
414
417
422
422
425
440
440
441
442
443
445
451
451
453
474
476
502
505
505
521
523
526
526
543
548
548
568
574
574
587
593
593
614
616
636
641
641
654
659
659
678
681
702
707
707
721
726
726
1004
1004
1006
1
1
4
5
5
5
7
7
8
8
8
8
9
9
10
10
10
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
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
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
30
30
31
31
31
31
31
31
31
31
32
33
33
33
33
33
34
34
34
36
36
39
39
41
41
42
42
42
42
42
44
44
46
46
46
46
47
47
48
48
48
48
49
50
51
51
52
52
53
53
56
57
57
58
60
62
63
63
70
70
72
73
73
73
73
73
74
74
74
74
74
74
74
74
74
75
75
75
75
80
80
80
81
81
83
83
85
86
95
96
96
97
97
97
97
98
101
104
104
107
107
109
113
113
114
117
117
119
119
120
121
121
121
121
121
123
123
125
125
125
125
127
127
128
128
128
128
132
133
134
134
135
135
135
135
136
136
141
141
142
147
147
149
151
151
151
151
152
152
154
154
154
154
155
155
155
157
165
165
167
167
169
169
169
170
171
171
172
173
173
174
174
174
175
175
175
176
181
182
182
182
184
184
184
186
188
188
189
189
190
192
192
192
192
192
192
192
192
192
192
193
193
197
203
203
204
204
209
210
210
212
213
215
217
218
218
219
222
223
225
225
226
231
231
231
231
235
237
238
239
239
240
240
240
240
242
243
243
245
246
246
253
256
256
256
256
257
258
258
264
266
266
274
274
276
277
278
278
278
278
278
279
279
280
280
280
280
280
281
292
296
297
301
306
306
307
308
310
311
311
312
312
312
313
317
318
320
324
324
325
325
333
337
337
338
338
338
338
340
345
349
349
349
351
351
351
353
353
353
353
355
355
364
369
369
385
390
390
394
399
399
415
418
423
423
426
441
442
444
444
446
452
452
454
475
477
503
506
506
522
523
527
527
544
549
549
569
575
575
588
594
594
615
617
637
642
642
655
660
660
679
682
703
708
708
722
727
727
1005
1005
1007
1
1
5
5
6
6
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
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
13
14
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
19
19
19
19
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
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
32
32
33
34
34
34
34
36
36
36
37
37
40
42
43
43
43
45
45
46
47
47
47
49
49
49
49
50
51
52
52
53
53
53
54
54
56
56
56
56
57
57
57
57
58
59
60
62
63
64
64
71
71
72
72
72
73
73
74
74
74
75
75
75
75
75
76
76
76
76
81
81
81
81
82
82
84
84
84
86
87
93
93
96
96
97
98
98
98
98
102
103
105
105
107
109
110
114
114
118
118
120
120
121
122
122
124
124
126
126
126
126
126
126
134
135
135
135
135
136
136
136
137
137
137
142
142
143
148
148
150
152
152
152
154
154
155
155
156
156
156
156
163
165
168
168
168
170
170
170
170
171
171
172
172
173
173
173
174
174
174
174
174
174
174
175
175
175
175
175
176
176
177
181
181
181
182
183
183
183
185
187
189
189
190
190
190
190
190
192
192
193
193
193
193
193
193
194
194
197
205
205
205
206
210
211
211
214
216
219
219
220
224
227
229
232
232
232
232
236
238
239
240
241
241
241
243
243
244
245
246
247
247
254
256
257
257
258
259
259
264
265
267
267
267
273
275
275
277
277
278
279
279
279
279
281
281
281
281
281
286
292
293
297
302
307
307
308
309
309
313
313
313
314
318
318
318
319
320
321
325
325
326
326
334
337
337
339
339
339
339
339
346
346
350
350
350
352
352
352
354
354
356
356
365
370
370
386
391
391
395
400
400
412
416
416
419
424
424
427
440
442
445
445
447
453
453
455
475
476
478
504
507
507
523
528
528
545
550
550
570
576
576
589
595
595
608
616
618
638
643
643
656
661
661
675
679
680
683
704
709
709
723
728
728
1006
1006
1008
5
5
5
5
5
5
5
5
7
7
7
7
7
7
8
8
8
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
11
11
11
11
11
12
12
12
12
13
13
13
13
13
14
14
15
15
15
16
16
16
16
16
16
16
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
20
20
20
20
21
21
21
21
22
22
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
31
31
32
32
34
34
34
34
34
34
34
35
35
35
36
36
36
36
37
37
37
38
38
39
41
43
44
44
44
46
46
47
48
48
49
50
50
50
51
52
53
53
54
54
54
55
57
57
58
58
59
60
63
64
71
73
73
74
74
74
74
74
74
74
75
75
75
76
76
76
76
76
77
77
79
82
82
82
83
83
87
88
93
97
97
98
99
99
99
99
103
104
104
106
106
106
106
106
107
109
110
114
114
115
115
119
119
121
122
123
123
125
125
127
127
133
134
134
134
135
135
135
135
136
136
136
136
137
138
143
144
149
149
152
152
152
152
152
152
153
153
154
154
155
155
156
156
157
157
164
164
164
164
169
169
169
169
169
171
171
172
172
173
174
174
174
175
175
175
175
176
176
176
177
177
178
183
184
184
184
186
188
190
191
191
191
191
192
192
192
192
192
192
193
193
194
194
194
194
194
194
201
206
206
207
211
212
215
217
219
220
220
222
225
228
230
232
233
233
233
237
239
240
241
242
242
242
244
245
246
247
255
258
258
259
260
260
262
266
276
276
278
278
279
280
280
282
282
282
282
282
287
287
289
289
292
293
297
297
298
303
308
308
309
314
314
314
315
316
319
319
319
320
321
322
326
327
327
335
338
340
340
340
347
347
347
347
347
351
351
351
353
353
355
355
357
357
366
371
371
387
392
392
396
401
401
417
417
420
425
425
428
440
441
446
446
448
454
454
456
473
476
477
479
505
508
508
524
529
529
546
551
551
571
577
577
590
596
596
609
614
617
619
639
644
644
657
662
662
680
681
684
705
710
710
724
729
729
1007
1009
5
5
5
5
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
9
9
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
13
13
13
13
13
13
13
14
14
14
14
15
16
16
16
17
17
18
18
18
18
18
18
18
18
19
19
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
28
28
28
28
28
29
29
29
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
34
35
35
36
36
36
36
36
37
37
37
38
38
38
39
39
39
39
40
44
45
45
45
47
47
47
47
48
48
49
49
49
50
51
51
51
53
54
55
55
58
58
59
59
64
69
71
71
71
71
71
73
73
73
73
74
74
74
75
75
75
75
75
76
76
76
78
78
80
80
83
83
84
84
84
88
89
98
98
99
99
100
100
100
104
107
107
107
107
107
107
107
107
115
115
116
116
120
120
120
120
122
123
124
124
126
126
128
128
128
128
132
133
134
134
135
136
136
137
138
138
142
142
144
145
150
150
150
150
153
154
154
155
155
156
156
157
157
157
165
165
170
170
170
170
172
173
174
175
175
175
176
176
176
176
177
177
177
182
184
185
185
187
187
189
189
189
189
189
191
191
191
191
191
191
192
192
192
192
192
193
193
193
193
195
195
202
207
209
212
213
216
218
219
220
220
220
220
221
222
223
223
229
230
230
232
233
234
234
234
238
240
241
242
243
243
243
245
246
247
254
256
259
259
261
261
263
263
267
267
277
277
279
279
280
280
280
281
281
282
283
283
283
290
290
298
298
299
304
309
309
310
311
315
315
316
317
317
320
321
321
321
323
325
325
327
328
328
336
339
340
341
345
348
348
348
352
352
352
352
352
354
354
356
356
358
358
367
372
372
388
393
393
397
402
402
418
418
421
426
426
429
442
447
447
449
455
457
477
478
480
506
509
509
525
530
530
547
552
552
572
578
578
591
597
597
615
618
620
640
645
645
658
663
663
681
682
685
706
711
711
725
730
730
1008
1010
1
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
8
8
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
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
21
21
22
22
22
22
22
22
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
26
26
26
26
26
26
26
26
26
27
27
27
28
28
28
28
28
28
29
29
29
29
29
30
30
31
31
31
31
31
31
31
33
35
36
36
36
37
38
38
38
39
39
39
39
40
41
45
46
46
46
46
48
48
49
49
50
50
50
51
51
51
52
52
52
54
54
54
54
54
54
56
56
56
57
62
62
70
72
72
72
74
74
74
74
75
76
76
76
76
76
77
77
79
79
84
84
85
85
85
89
90
98
99
100
100
100
101
101
105
107
108
108
108
116
116
117
121
121
121
123
124
125
125
127
127
128
128
128
128
129
129
132
133
134
135
136
137
137
138
142
143
143
145
146
151
151
151
153
154
154
154
156
156
157
157
157
165
169
169
170
170
170
170
171
171
171
172
172
172
172
174
174
174
175
175
176
176
177
177
177
177
178
183
183
188
188
190
190
190
192
192
192
192
193
193
193
194
194
194
194
196
196
202
202
205
206
206
206
208
209
210
214
217
219
221
221
222
223
223
224
230
233
234
235
235
239
241
242
243
244
244
244
245
245
246
247
255
257
260
262
262
268
268
278
278
278
280
280
281
281
281
282
282
282
284
284
284
290
299
299
305
310
310
311
311
316
316
317
321
322
324
325
326
326
328
329
329
337
340
340
342
346
348
349
350
353
353
353
353
355
355
357
357
359
359
368
373
373
389
394
394
398
403
419
419
422
427
430
443
448
448
450
454
456
456
458
478
479
481
507
510
526
531
531
548
553
553
573
579
579
592
598
598
616
619
621
641
646
646
659
664
664
682
683
686
707
712
712
726
731
731
1005
1009
1011
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
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
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
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
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
22
22
22
22
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
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
27
27
27
27
27
27
27
28
28
28
29
30
30
30
31
31
31
33
33
34
34
34
35
36
36
36
36
36
37
37
37
37
38
39
41
42
46
47
47
49
49
49
49
50
50
51
51
51
52
52
53
53
55
55
55
55
56
56
57
57
57
57
57
58
60
60
62
63
63
72
72
72
73
73
73
73
73
74
74
75
75
75
75
76
76
77
77
77
78
78
80
80
80
83
84
84
84
85
85
85
85
86
86
86
86
90
90
91
91
98
100
101
102
102
106
107
108
109
114
118
122
124
125
126
126
126
128
128
129
129
129
129
130
130
133
134
134
135
135
136
136
138
139
142
144
144
147
151
151
152
152
152
152
152
153
154
154
154
155
155
155
165
170
171
171
172
172
172
173
173
174
174
175
175
175
175
176
177
177
178
178
178
178
179
189
190
190
191
191
191
191
191
191
192
192
193
193
193
193
193
194
194
195
195
195
197
197
205
206
207
207
209
210
211
215
218
219
220
220
222
222
223
224
225
231
232
232
234
235
236
240
243
243
244
245
245
245
245
246
246
247
248
255
258
259
259
261
263
263
263
267
269
269
279
281
281
282
282
282
283
283
285
285
285
290
297
306
311
311
312
315
316
316
317
317
317
317
318
318
319
322
322
323
323
325
325
327
327
330
330
338
341
343
348
350
351
354
354
356
356
358
358
360
360
369
374
374
390
395
395
399
404
420
420
423
426
428
429
431
440
449
449
451
457
457
459
479
480
482
508
511
527
532
532
549
554
554
574
580
580
593
599
599
617
620
622
642
647
647
660
665
665
683
684
687
708
713
713
727
732
732
1006
1008
1010
1012
4
5
5
5
5
5
5
5
5
5
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
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
11
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
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
15
15
15
15
15
15
16
16
16
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
18
18
18
18
18
18
19
19
19
19
20
20
20
21
21
21
21
21
21
21
21
21
21
21
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
25
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
26
26
26
26
26
26
28
28
29
30
30
31
31
31
34
34
34
34
35
35
36
36
36
36
36
37
37
37
37
38
38
38
38
42
47
47
47
48
48
49
50
50
50
51
51
52
52
54
54
54
55
56
56
56
56
56
56
57
57
57
58
58
58
59
63
64
64
70
70
72
72
72
73
73
73
74
74
76
76
77
77
77
77
77
77
78
78
78
79
79
80
81
81
84
85
85
86
86
91
91
92
92
98
98
101
102
107
108
108
108
109
110
119
123
125
126
127
127
127
128
128
129
129
129
129
130
130
131
131
133
133
134
134
136
136
137
137
137
138
138
138
139
140
143
148
152
152
152
152
153
153
153
154
154
154
154
154
155
155
155
156
156
156
170
170
172
172
172
173
173
173
174
174
174
174
175
175
175
176
176
177
178
178
179
179
179
179
185
188
188
190
190
190
191
191
191
192
192
192
193
194
194
195
195
195
195
195
195
196
196
196
198
198
202
207
208
208
209
211
212
216
219
219
221
221
221
224
225
230
232
232
233
234
234
237
241
241
242
245
245
246
246
246
246
246
247
247
248
249
255
259
260
260
262
263
264
264
267
268
279
280
282
282
283
283
283
284
284
286
286
286
292
307
311
311
312
312
313
317
318
318
319
321
323
323
324
324
326
326
331
331
339
342
344
351
352
355
355
357
357
359
359
361
361
370
375
375
391
396
396
400
402
402
405
421
421
424
429
430
432
439
440
441
450
450
452
458
458
460
480
481
483
509
512
528
533
533
550
555
555
575
581
581
594
600
600
618
621
621
623
623
643
648
648
661
666
666
684
685
688
709
714
714
728
733
733
1009
1011
1013
5
5
6
8
8
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
11
11
11
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
15
15
16
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
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
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
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
29
30
30
30
31
35
35
36
36
36
37
37
37
37
37
38
38
38
38
38
38
39
39
42
42
42
43
45
47
47
48
48
49
49
49
49
50
51
51
51
52
52
53
53
54
55
55
55
55
56
56
56
57
57
57
57
58
58
59
59
59
59
60
60
65
65
71
72
73
75
75
76
77
77
78
78
78
78
78
78
79
79
79
80
82
82
85
86
86
87
87
92
92
93
93
96
99
99
100
100
100
102
108
109
109
109
110
111
114
114
120
124
126
126
127
128
128
129
129
129
130
130
130
131
131
132
132
137
137
138
138
138
138
139
139
140
141
142
144
149
153
154
154
154
154
154
154
155
155
155
155
155
156
156
156
156
157
157
171
172
173
173
174
174
174
174
174
175
175
176
176
177
177
177
177
178
178
179
179
180
180
185
189
191
191
193
193
193
195
195
196
196
196
196
196
197
197
197
197
199
199
208
210
212
217
219
222
222
222
224
224
225
225
225
226
230
230
232
232
233
233
234
235
238
242
246
246
247
247
247
247
248
248
249
250
255
259
260
261
261
265
265
268
269
277
279
280
281
283
283
284
284
284
284
285
285
287
287
287
287
292
293
297
297
308
309
312
312
313
313
314
318
319
319
324
324
325
325
325
327
327
332
332
339
340
343
345
352
353
356
356
358
358
360
360
362
362
371
376
376
392
397
397
401
403
406
422
422
425
430
431
433
440
440
442
451
451
453
459
459
461
481
482
484
510
513
529
534
534
551
556
556
556
556
576
582
582
595
601
601
619
624
624
644
649
649
662
667
667
685
686
686
689
689
710
715
715
729
734
734
1010
1012
1014
4
5
5
5
5
5
5
5
7
7
7
9
9
9
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
15
15
16
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
19
19
19
20
20
20
20
20
20
20
20
20
21
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
25
25
25
25
25
25
25
25
25
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
30
31
32
33
35
36
36
36
37
38
38
39
39
39
39
43
43
44
49
50
50
50
50
51
52
52
52
53
53
54
54
54
54
54
55
55
56
56
58
58
58
59
59
59
60
60
60
60
60
61
61
65
65
65
65
66
71
72
73
74
76
77
79
79
79
79
79
80
81
81
82
83
83
83
86
87
88
88
88
93
93
94
94
97
97
99
99
101
101
101
101
107
107
107
109
109
109
109
109
109
110
112
115
115
121
121
125
127
127
127
128
129
129
129
129
129
130
131
131
131
133
133
133
134
137
138
138
138
139
139
139
140
140
143
145
150
151
153
154
155
155
156
156
157
157
157
157
157
157
157
157
170
172
172
172
172
173
173
174
175
175
176
177
177
177
178
178
178
178
179
179
180
180
181
181
189
190
191
192
192
194
194
195
195
197
197
197
197
197
198
198
198
198
200
200
206
209
210
210
212
212
212
213
218
219
220
220
223
223
226
226
227
233
233
234
234
235
236
239
243
247
247
248
248
248
248
248
248
248
248
249
250
251
260
261
262
266
266
269
280
280
281
282
282
282
284
284
285
285
286
286
288
288
288
288
292
298
298
309
310
310
313
314
314
314
315
315
319
320
320
320
321
325
325
326
326
326
328
328
333
333
340
340
340
340
341
344
346
353
353
354
357
357
357
359
359
359
361
361
363
363
372
377
377
393
398
398
402
404
407
423
423
426
431
432
434
441
441
443
443
443
452
454
460
460
462
482
483
485
509
509
511
514
530
535
535
552
557
557
577
583
583
596
602
602
620
625
625
645
650
650
663
668
668
686
690
690
711
716
716
730
735
735
1011
1013
1015
4
5
6
7
8
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
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
15
15
15
16
16
17
17
17
17
17
18
18
18
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
23
23
23
23
23
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
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
30
30
32
33
33
33
35
35
36
36
37
37
38
38
42
42
42
44
44
48
50
51
51
51
51
52
52
52
53
53
54
54
54
54
55
55
55
56
57
57
59
59
59
60
61
61
61
62
62
66
66
67
71
72
72
72
75
76
76
76
77
78
80
80
81
82
83
84
84
88
89
89
89
94
94
95
95
100
100
102
102
108
108
110
110
110
110
111
113
114
116
116
116
122
122
126
127
127
127
128
129
130
130
130
131
132
132
133
134
134
134
137
138
138
139
139
140
142
144
151
151
151
153
153
154
155
156
156
158
158
170
170
170
171
172
172
173
174
174
175
176
176
177
177
177
178
179
179
180
180
181
181
182
182
185
185
189
190
190
190
193
193
194
194
195
195
196
196
198
198
198
199
199
201
202
206
207
213
213
214
219
220
220
221
224
224
224
225
225
225
227
227
234
235
235
235
237
240
244
248
248
249
249
249
249
249
249
250
251
252
259
261
262
263
263
267
267
282
283
283
283
285
285
286
286
287
287
289
289
289
289
293
297
299
299
299
310
315
315
315
320
321
321
321
325
326
326
327
327
327
329
334
341
341
345
347
354
354
355
358
359
359
360
360
360
362
362
364
364
373
378
378
394
399
403
405
408
424
427
432
433
435
440
443
444
444
451
453
453
455
461
461
463
483
484
486
510
512
515
531
536
536
553
558
558
578
584
584
597
603
621
626
626
646
651
651
664
669
687
691
691
712
717
717
731
736
1012
1014
1016
5
5
5
5
5
5
5
5
6
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
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
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
13
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
29
29
31
33
34
34
35
36
36
37
38
38
38
38
39
43
43
43
51
52
52
52
53
53
54
54
54
55
55
55
55
55
55
56
56
56
56
56
56
56
56
57
57
58
58
58
58
59
60
60
60
62
67
67
72
72
72
73
73
76
76
77
77
77
77
77
78
81
81
82
83
84
84
84
85
85
85
89
90
90
90
95
95
96
96
100
102
104
109
109
109
109
111
111
111
114
114
115
127
127
128
128
129
129
129
130
131
131
131
131
131
132
133
133
133
133
134
135
137
137
138
138
138
139
140
140
141
143
145
145
152
153
154
154
155
156
157
157
158
164
169
170
171
171
171
172
172
173
173
173
173
174
174
174
174
174
175
175
177
177
177
178
178
178
182
182
183
183
183
186
186
190
190
191
191
191
194
194
195
195
195
195
196
196
197
199
199
200
200
200
200
202
202
207
208
210
212
214
214
220
220
221
222
224
224
225
225
226
226
226
236
238
241
245
249
249
250
250
250
250
250
250
252
253
255
259
260
263
264
264
267
267
268
268
268
283
283
284
286
286
287
287
287
288
288
288
288
290
290
290
290
290
290
297
298
311
312
316
316
316
317
321
321
322
322
322
326
327
327
328
328
328
328
330
333
333
335
341
346
347
348
356
359
360
360
361
361
361
363
363
363
363
365
365
365
365
374
379
379
395
400
404
406
409
423
425
426
428
433
434
436
444
445
445
454
454
456
462
462
464
484
485
487
511
513
516
532
537
554
559
559
579
585
585
598
602
602
604
622
627
627
647
652
652
665
670
688
692
692
713
718
718
732
735
735
737
1013
1015
1017
4
5
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
8
8
8
8
8
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
11
11
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
14
14
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
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
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
29
29
32
34
35
35
37
37
37
38
38
39
39
39
39
39
44
44
44
52
52
53
53
53
55
55
55
56
56
56
56
56
56
57
57
57
57
58
58
59
59
59
59
59
59
59
60
60
60
60
61
61
61
63
63
72
72
72
73
73
76
77
77
77
77
77
77
77
78
78
78
78
78
83
84
85
85
85
86
90
91
91
91
96
96
96
96
97
97
97
97
100
101
102
105
107
107
108
108
109
110
110
110
112
115
115
115
116
116
120
128
128
129
129
129
129
130
130
131
133
133
134
134
134
134
134
135
136
138
138
139
139
140
141
142
144
153
155
155
155
156
156
157
157
157
157
158
158
158
165
165
165
170
170
172
173
173
174
174
174
174
175
175
175
175
175
176
176
177
177
177
177
178
178
178
178
178
178
179
179
179
179
183
183
184
184
184
184
190
190
191
191
192
195
195
195
195
195
195
195
196
196
196
196
197
198
198
198
200
200
201
203
206
208
209
213
221
221
222
226
226
227
227
227
239
242
246
246
250
251
251
251
253
254
255
259
260
261
264
266
266
268
268
269
283
284
285
287
287
288
288
288
290
290
291
291
291
291
291
291
298
298
299
299
312
312
317
317
317
318
322
323
323
323
325
327
328
328
328
328
329
329
329
329
331
334
336
341
347
348
348
348
349
352
357
360
361
361
362
362
362
366
366
366
366
375
380
380
396
398
398
401
405
407
410
426
427
429
434
435
437
445
455
455
457
463
463
465
485
486
488
512
514
517
533
538
555
560
560
580
586
586
599
603
605
623
628
628
648
653
653
666
668
668
671
689
693
693
714
719
719
733
736
738
1014
1016
1018
1
1
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
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
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
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
15
15
15
15
15
15
15
15
16
16
16
16
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
20
20
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
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
25
25
25
25
25
25
25
25
25
25
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
29
29
33
35
35
35
36
37
37
38
38
38
38
39
39
39
39
39
40
40
40
40
40
42
45
45
52
53
54
54
54
56
56
57
57
57
59
59
60
60
60
60
60
60
60
61
61
61
61
62
62
62
64
65
71
77
77
77
78
78
78
78
78
78
78
78
78
79
79
79
79
79
84
85
86
86
86
86
86
86
86
87
91
92
92
92
97
97
98
98
102
102
102
102
108
108
109
109
111
111
111
113
116
116
117
117
121
126
128
128
129
130
130
131
131
132
132
132
134
135
135
135
135
136
136
137
138
138
139
139
139
140
140
140
141
141
141
142
143
143
143
145
145
145
154
155
155
156
156
156
156
157
157
158
158
158
158
159
159
166
166
170
171
173
175
177
177
177
178
178
178
178
179
179
179
179
179
179
180
184
184
185
185
189
193
193
195
195
196
196
196
196
196
196
196
196
196
197
197
197
197
198
199
199
201
202
204
207
209
210
214
221
221
222
222
222
222
223
225
227
227
228
228
235
236
240
240
243
247
248
249
250
251
252
252
252
252
253
254
255
260
261
262
265
267
269
269
269
269
269
269
270
285
286
288
288
289
289
291
291
292
292
292
292
292
292
300
300
313
318
318
318
319
319
323
324
324
324
326
326
326
328
328
328
329
329
330
330
332
335
337
341
348
349
349
350
353
358
358
361
362
362
363
363
363
367
367
367
367
376
381
381
397
399
402
406
408
411
427
428
430
435
436
438
440
443
456
456
458
464
464
466
486
487
489
513
515
518
518
534
539
556
561
561
581
587
587
600
604
606
624
629
629
649
654
654
667
669
672
690
694
694
715
720
720
734
737
739
1015
1017
1019
1
1
1
4
4
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
8
8
8
8
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
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
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
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
22
22
22
22
22
22
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
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
26
26
26
26
26
26
27
27
27
28
28
29
29
29
29
34
35
37
38
38
40
40
40
40
40
40
40
40
41
41
41
41
41
43
45
50
53
53
53
54
55
55
55
55
57
57
57
57
58
58
59
60
61
61
61
61
61
61
61
61
61
62
62
62
62
62
63
63
65
65
65
65
65
66
71
72
76
79
79
79
79
79
79
79
80
80
80
80
80
85
86
86
86
87
87
87
87
88
92
93
93
93
98
98
99
99
103
103
105
108
108
108
108
109
109
109
110
110
112
112
113
115
116
116
116
117
117
118
118
127
129
129
130
130
131
131
132
132
132
132
133
133
133
135
136
136
136
136
137
137
137
137
138
140
141
141
141
142
142
142
143
143
145
146
146
146
155
156
156
158
158
158
158
158
158
159
159
159
159
160
160
165
166
166
166
166
167
170
171
171
171
171
173
173
174
175
177
178
178
178
179
179
179
179
179
179
179
180
180
180
180
180
180
180
185
185
186
186
186
189
190
194
194
194
194
194
197
197
197
197
197
197
198
198
198
198
198
198
199
200
200
202
203
205
207
207
209
209
209
210
210
211
212
223
223
223
224
226
228
228
228
233
241
241
244
248
248
248
248
248
249
252
253
253
253
253
254
255
256
262
263
266
268
269
269
270
270
270
271
286
287
287
288
289
289
289
290
290
291
291
291
291
292
293
293
293
293
293
293
298
299
299
299
301
301
312
312
314
319
319
319
320
320
320
320
324
325
325
325
326
328
329
329
329
330
330
331
331
333
336
338
342
346
348
349
349
349
349
349
350
351
359
359
362
362
363
363
364
364
364
364
368
368
368
368
377
382
382
398
400
403
407
409
412
428
429
431
435
437
439
440
444
457
457
459
465
465
467
487
488
490
514
515
519
519
535
540
557
562
562
582
588
588
601
605
607
625
630
630
650
655
655
668
670
673
691
695
695
716
721
721
735
738
740
1016
1018
1019
1020
4
5
5
5
7
7
7
7
8
8
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
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
13
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
27
27
27
27
28
29
29
30
30
35
35
36
36
36
38
38
38
38
38
39
39
39
40
40
40
40
40
40
41
41
41
41
42
42
42
42
45
53
54
54
55
56
56
57
57
57
58
58
58
58
59
59
60
60
61
61
61
61
62
62
62
62
62
62
62
62
63
63
64
64
65
66
66
66
67
71
72
76
76
76
77
78
78
79
79
79
79
79
79
79
79
79
79
81
81
81
81
81
86
87
87
87
88
88
88
88
89
89
93
94
94
94
94
94
97
99
99
100
100
103
109
109
109
110
110
111
112
112
113
113
115
115
115
116
117
117
117
118
118
127
128
128
130
130
132
132
132
133
133
133
133
134
134
134
134
135
137
137
137
137
137
137
138
138
138
138
139
139
139
140
141
142
142
143
143
146
147
147
147
154
156
156
156
156
156
157
158
158
158
158
158
158
159
159
160
160
160
160
161
161
167
167
168
171
172
172
174
174
175
175
175
175
176
178
178
179
179
179
179
180
180
180
180
180
180
181
181
181
181
186
186
186
187
187
189
190
192
194
194
194
194
194
195
195
195
196
196
197
197
197
197
197
197
198
198
199
199
199
199
199
199
200
201
203
204
206
210
210
211
211
212
212
213
221
222
222
222
224
224
224
228
229
229
242
242
245
248
249
249
249
250
253
254
254
254
254
255
256
257
262
262
262
262
264
267
269
270
271
271
271
272
280
287
290
290
290
291
291
292
292
293
294
294
294
294
294
294
298
298
298
299
300
300
300
310
313
313
315
318
320
320
320
320
320
321
321
325
326
326
326
326
326
329
330
330
330
331
331
332
332
334
337
339
340
347
350
350
350
351
352
360
360
364
364
365
365
365
365
369
369
369
369
378
383
383
399
401
404
410
413
429
430
432
436
438
438
440
441
443
445
458
458
460
466
466
468
488
489
489
491
491
515
520
520
535
536
536
541
558
563
563
583
589
589
602
606
608
626
631
631
651
656
656
669
671
674
692
696
696
717
722
722
736
739
741
1017
1018
1020
1021
4
5
5
5
5
5
5
5
5
5
5
7
7
8
8
8
8
8
8
8
8
8
9
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
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
14
14
14
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
18
18
18
18
18
18
18
18
18
18
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
22
22
22
22
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
27
27
27
28
28
30
30
30
31
35
35
36
36
37
37
37
38
38
38
38
38
39
39
39
40
40
40
41
41
41
41
41
41
42
42
43
56
57
57
58
58
58
59
59
59
59
60
60
61
61
62
62
62
63
63
63
63
63
63
63
64
64
65
65
67
67
67
68
76
77
77
77
77
78
78
78
78
78
78
78
78
79
79
80
80
80
80
80
80
80
80
82
86
86
87
88
89
90
90
94
95
95
95
98
98
100
100
100
100
101
101
102
103
108
108
110
110
112
113
113
114
114
117
118
118
118
119
119
128
128
128
129
132
133
133
133
134
134
134
135
135
138
138
138
138
138
139
139
139
140
140
140
140
140
141
141
141
141
142
143
143
147
154
155
155
156
156
156
156
156
157
157
157
158
158
158
158
159
159
159
159
159
159
160
160
162
162
166
166
168
168
175
175
176
176
176
177
178
179
179
179
179
179
180
180
180
181
181
181
181
181
182
182
182
182
187
187
188
188
194
195
195
195
195
195
196
196
196
196
196
196
196
196
196
196
197
197
198
198
198
198
198
198
200
200
201
202
204
205
207
207
209
211
211
213
213
214
221
221
223
223
223
225
226
230
230
243
243
246
250
250
250
251
254
255
255
255
255
256
257
258
263
263
265
268
269
269
270
271
273
281
281
283
283
288
291
291
291
291
291
292
292
293
293
295
295
295
295
295
295
300
301
301
301
311
311
316
321
321
321
321
322
322
326
326
326
327
327
327
330
332
332
333
333
335
338
340
341
341
341
341
348
349
349
351
351
351
353
361
361
365
365
366
366
366
366
370
370
370
370
379
384
384
400
402
405
407
411
411
414
430
431
433
439
439
441
444
459
459
461
467
467
469
489
492
492
516
521
521
537
537
542
559
564
564
584
590
590
603
607
609
627
632
632
652
657
657
670
672
675
693
697
697
718
723
723
737
740
742
1018
1021
1022
1
2
4
4
5
5
5
6
7
7
7
7
7
7
7
8
8
8
8
8
8
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
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
13
13
13
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
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
28
29
30
30
30
31
31
32
37
37
38
39
39
39
40
40
40
41
41
41
42
42
42
42
42
42
52
57
57
58
58
59
59
59
59
59
60
60
60
61
61
61
61
62
62
62
63
63
63
64
64
64
64
64
66
66
68
68
68
78
78
78
79
79
80
80
81
81
81
81
81
81
81
81
85
86
86
87
87
88
90
91
91
95
96
96
96
101
101
101
101
102
102
103
103
103
103
109
114
114
115
116
118
119
119
120
120
130
132
132
134
134
134
135
135
135
136
136
137
137
138
139
139
139
139
139
139
141
141
141
142
142
142
143
144
144
145
145
145
155
157
157
157
158
158
158
159
159
160
160
160
160
160
160
163
163
167
173
175
177
177
177
177
177
178
178
178
179
179
179
180
180
180
180
180
180
181
181
182
183
183
186
186
188
188
189
189
194
194
196
196
196
196
196
196
197
197
198
198
199
199
199
199
199
199
201
201
202
203
205
206
208
210
213
214
214
224
224
224
226
231
231
235
244
244
246
247
251
251
251
255
256
256
256
256
257
258
259
264
264
268
269
269
269
270
270
271
274
284
284
289
292
292
292
292
293
293
296
296
296
296
296
296
299
301
302
302
317
320
320
322
322
322
322
327
327
327
328
328
328
328
328
328
333
333
334
334
336
339
341
342
342
349
350
352
354
362
362
366
366
367
367
367
367
371
371
371
371
380
385
385
401
403
406
412
412
415
431
432
434
440
440
442
445
460
460
462
468
468
470
490
493
493
517
522
522
538
538
543
560
565
565
585
591
591
604
608
610
628
633
633
653
658
658
671
673
676
694
698
698
719
724
724
738
741
743
1019
1022
1023
2
5
5
5
5
5
5
5
5
5
5
5
5
6
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
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
12
12
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
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
23
23
23
23
23
23
23
24
24
24
24
25
25
25
26
26
26
26
27
28
28
30
30
30
30
30
31
32
32
33
37
38
39
39
39
39
39
40
41
41
41
42
42
43
43
43
43
53
53
58
58
58
59
59
59
59
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
63
63
63
64
64
65
65
67
67
69
69
77
77
78
78
78
79
79
80
80
81
81
82
82
82
82
86
86
88
88
89
91
92
92
96
97
97
97
101
102
102
103
103
104
104
108
109
110
116
117
117
121
121
128
130
131
133
133
135
135
135
136
136
137
137
138
139
140
140
140
140
140
140
141
141
142
142
142
142
143
143
146
146
146
146
155
157
157
157
158
159
159
159
159
161
161
161
161
164
164
166
168
170
176
176
177
177
178
178
178
179
179
179
180
180
180
180
180
181
181
181
181
181
181
182
184
184
184
187
187
189
189
190
190
195
195
196
196
196
197
197
197
197
198
198
199
199
200
200
200
200
201
202
203
204
206
207
207
209
211
213
214
214
214
214
215
222
225
225
227
232
232
236
236
245
247
248
252
252
255
256
257
257
257
258
259
260
260
269
269
270
271
271
272
275
284
290
291
293
293
293
293
294
294
297
297
297
297
300
300
313
318
321
323
323
323
328
329
329
329
329
329
329
329
334
334
335
335
337
340
342
342
349
350
351
353
353
355
355
363
363
367
367
368
368
368
368
372
372
372
372
381
386
386
402
404
407
413
413
416
432
433
435
440
441
441
443
445
461
461
463
469
469
471
491
494
494
518
523
523
539
539
544
561
566
566
586
592
592
605
609
611
629
634
634
654
659
659
672
674
677
695
699
699
720
725
725
739
742
744
1020
1023
1024
1
4
4
4
4
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
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
12
12
13
13
13
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
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
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
24
24
25
25
25
26
26
26
26
26
26
27
27
28
29
31
31
32
32
33
34
37
37
39
40
40
40
40
40
40
40
41
42
42
43
43
43
43
43
43
43
43
44
44
50
52
59
59
59
60
60
60
61
61
61
61
62
62
62
62
62
63
63
63
63
64
64
64
66
66
68
68
68
68
70
70
77
77
77
78
79
79
79
79
79
80
80
80
80
89
89
89
90
92
93
93
97
98
98
98
101
103
103
104
104
104
108
108
109
109
110
112
117
122
122
130
132
133
133
134
135
135
136
136
136
137
137
137
137
138
138
138
139
141
141
141
141
141
141
142
142
142
142
142
143
143
143
143
143
143
144
147
147
147
155
155
158
158
158
158
158
159
159
160
161
161
161
161
161
161
161
161
162
162
165
165
166
166
167
170
171
173
173
177
177
178
179
179
179
179
179
180
180
181
181
181
182
182
182
182
185
185
185
185
190
190
191
191
194
194
195
195
195
196
196
197
197
197
197
197
198
198
198
198
201
201
201
202
203
205
205
207
207
207
208
208
209
210
215
215
216
223
225
228
233
233
233
235
244
246
247
247
249
251
251
253
253
256
257
258
258
258
258
259
259
260
261
262
262
271
272
272
272
273
276
284
291
291
291
292
294
294
294
295
295
298
298
298
298
313
319
320
320
322
324
324
324
329
330
330
330
330
330
330
335
335
336
336
341
342
343
349
349
350
351
356
356
364
364
368
368
369
369
369
369
373
373
373
373
382
387
387
403
405
408
414
414
417
432
434
436
441
442
442
443
444
462
462
464
470
470
472
492
495
495
519
524
524
540
540
540
545
545
562
567
567
587
593
593
610
612
630
635
635
655
660
660
673
675
678
696
700
700
721
726
726
743
745
1021
1024
1025
2
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
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
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
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
12
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
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
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
24
24
25
25
25
25
25
25
25
25
26
26
26
27
27
27
28
29
30
30
30
32
32
33
33
33
35
40
41
41
41
41
41
41
42
43
44
44
44
44
45
45
51
51
53
53
59
59
60
60
61
61
61
63
63
63
64
64
64
64
64
65
65
67
67
69
69
69
71
71
79
79
79
80
80
80
80
80
89
91
93
94
94
98
99
99
99
104
104
104
104
104
105
105
105
108
109
109
110
110
112
112
112
113
118
119
123
123
133
135
136
136
137
137
137
137
137
138
138
138
138
139
142
142
142
142
142
143
143
143
144
144
144
144
144
145
147
159
159
159
159
159
161
162
162
162
162
163
163
165
166
166
166
167
168
170
174
174
177
177
178
179
180
180
182
182
183
183
186
186
191
191
192
192
194
194
195
195
197
198
198
198
201
202
202
203
204
208
208
208
209
209
209
210
211
213
214
216
216
225
229
234
234
234
234
236
236
247
247
248
250
252
252
254
254
259
259
259
259
260
260
261
262
262
262
263
263
272
274
277
288
291
292
292
293
295
295
295
296
296
299
299
299
299
302
320
320
320
321
321
325
325
325
330
330
331
331
331
336
336
337
337
342
344
348
349
350
351
352
357
357
365
365
369
369
370
370
370
370
374
374
374
374
383
388
388
406
409
415
415
418
433
435
435
437
443
443
443
444
445
463
463
465
471
473
493
496
496
520
525
525
541
546
546
563
568
568
588
594
594
611
613
631
636
636
656
661
661
676
679
697
701
701
722
727
727
744
746
1022
1025
1026
4
4
4
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
7
7
7
7
7
7
7
7
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
10
10
10
10
10
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
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
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
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
19
19
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
25
25
26
26
27
27
27
28
28
29
30
31
31
33
34
36
40
41
42
42
42
43
43
44
45
45
45
45
45
45
51
53
54
54
58
59
59
60
60
61
61
62
62
64
64
64
64
65
65
65
68
68
68
70
70
70
72
78
79
80
81
81
81
81
82
82
82
82
82
82
92
94
95
95
99
100
100
100
105
105
105
105
106
106
106
110
111
112
113
113
113
113
114
114
119
119
124
124
133
133
134
135
137
137
138
138
139
139
139
139
140
141
141
142
142
142
143
143
143
143
143
144
144
145
145
145
145
160
160
161
161
162
163
163
163
163
166
167
167
168
169
171
173
175
175
175
176
177
177
178
178
179
182
183
187
187
187
192
193
193
196
196
196
197
198
199
199
200
200
200
200
200
200
202
203
203
204
209
209
210
210
210
211
212
215
223
228
228
230
234
235
235
236
237
237
247
248
249
251
251
253
253
255
260
260
260
260
261
261
262
262
263
264
264
275
278
289
293
293
294
296
296
297
297
300
300
300
300
302
321
322
322
326
326
326
331
332
332
332
337
337
338
338
343
345
349
351
352
353
358
358
366
366
370
370
371
371
371
371
375
375
375
375
384
389
389
403
407
407
410
416
416
419
436
436
438
444
444
444
445
446
464
464
466
472
474
494
497
497
521
526
526
542
547
547
564
569
569
589
595
595
612
614
632
637
637
657
662
662
677
680
698
702
702
723
728
728
745
747
1023
1026
1027
4
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
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
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
11
11
11
11
11
12
12
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
16
16
16
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
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
23
23
23
23
23
23
24
24
24
25
25
27
27
28
28
29
29
30
30
31
32
32
34
35
37
39
42
42
42
42
42
43
43
43
43
43
44
44
45
46
46
51
53
54
55
55
59
59
61
61
61
62
62
63
63
64
64
64
64
64
65
65
65
66
66
68
69
69
69
70
71
71
73
79
79
79
80
80
80
82
82
82
82
82
83
83
83
83
93
95
96
96
100
101
101
101
103
105
105
105
105
106
106
106
106
107
107
107
111
114
114
114
115
115
120
125
125
134
135
135
135
135
135
136
139
139
140
140
140
140
141
142
142
142
143
143
143
143
144
144
144
144
144
146
146
157
160
160
160
160
161
161
161
162
162
163
166
167
168
168
169
173
174
177
177
179
179
179
180
182
182
183
187
188
188
191
191
192
193
194
194
197
197
197
197
198
198
200
200
201
201
201
201
203
203
205
210
210
210
211
211
211
213
213
216
226
229
229
231
234
236
236
236
237
238
238
249
250
251
252
252
254
256
261
261
261
262
262
262
263
263
264
265
265
265
271
275
276
279
289
290
294
294
296
296
296
296
297
297
298
298
301
301
301
301
318
322
323
323
327
327
327
332
333
333
333
337
338
338
339
339
344
346
349
350
352
354
359
359
367
367
371
371
372
372
372
372
376
376
376
376
385
390
390
408
408
411
417
417
420
437
437
439
444
444
445
445
445
445
446
447
465
465
467
472
473
475
495
498
498
522
527
527
543
548
548
565
570
570
590
596
596
605
613
615
633
638
638
658
663
673
677
678
681
699
703
703
724
729
729
739
746
748
1024
1027
1028
1
5
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
8
8
8
8
8
8
8
9
9
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
12
13
13
13
13
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
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
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
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
23
23
23
23
23
23
23
23
24
24
25
25
25
26
26
27
27
27
28
29
29
30
30
30
30
31
31
32
33
35
36
38
40
43
43
43
43
44
44
44
45
45
46
46
47
54
55
62
62
62
62
63
63
63
64
64
64
64
64
65
65
65
65
66
66
67
67
68
68
69
70
70
70
70
70
71
72
74
77
81
81
81
81
81
94
96
97
97
101
102
102
102
104
106
106
106
107
107
107
107
108
108
111
111
112
113
114
114
114
116
116
119
119
121
126
126
128
133
136
136
136
136
137
140
140
141
141
141
141
142
142
142
143
143
144
144
145
145
145
145
145
147
147
158
161
161
161
161
162
163
163
164
166
167
169
169
169
169
170
174
174
175
175
180
180
180
180
181
181
182
182
182
183
183
189
189
192
193
194
195
198
199
199
199
199
201
204
204
206
209
210
211
211
211
211
211
211
212
212
213
214
214
214
227
229
230
232
237
237
237
238
247
250
251
251
252
253
253
257
260
262
262
262
263
263
264
264
265
276
277
280
289
290
294
294
295
295
297
297
298
298
299
299
302
302
302
302
302
302
302
302
311
319
323
324
328
328
333
334
334
334
338
339
339
340
340
342
345
347
349
350
352
352
353
355
360
360
368
368
372
372
373
373
373
373
377
377
377
377
386
391
391
409
409
412
418
418
421
438
438
440
444
445
446
446
446
447
448
466
466
468
470
473
474
476
496
499
499
523
528
528
544
549
549
566
571
571
591
597
606
611
614
616
634
639
639
659
664
678
679
682
700
704
704
725
730
740
744
747
749
1025
1028
1029
1
1
4
5
5
5
5
5
5
5
5
5
5
6
6
6
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
9
9
9
9
10
10
10
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
14
14
14
14
14
14
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
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
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
19
19
19
19
19
19
19
19
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
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
26
27
28
29
30
30
31
31
32
32
33
34
36
37
39
41
41
42
42
43
43
43
43
43
43
44
44
44
44
44
44
45
45
46
46
46
47
47
48
53
53
55
62
64
64
65
65
65
65
66
66
66
66
67
67
67
67
69
70
71
71
71
71
72
73
75
78
78
81
81
81
82
82
86
95
97
98
98
98
102
103
103
103
105
105
105
107
107
108
108
109
109
112
112
113
113
113
113
114
115
115
115
117
120
120
122
127
129
134
135
136
136
136
137
137
137
140
140
141
141
142
142
142
142
142
143
143
143
143
144
144
145
146
146
146
146
146
148
148
158
159
159
160
161
161
161
161
161
161
162
162
162
162
164
164
165
170
170
170
170
171
176
176
180
183
183
184
184
190
190
193
193
193
194
194
195
196
197
197
197
197
199
199
199
199
201
202
207
210
212
212
212
212
213
213
214
214
215
215
227
227
229
230
231
233
236
236
238
238
238
247
250
252
252
253
254
258
260
260
261
261
263
263
264
265
265
265
266
269
277
278
281
281
295
295
296
296
298
298
299
299
299
299
300
303
303
303
303
303
303
303
303
312
319
319
323
323
324
325
327
327
329
329
329
334
335
335
335
340
340
341
341
341
343
346
348
353
353
354
356
361
361
369
369
373
373
374
374
374
374
378
378
378
378
387
392
392
410
410
413
419
422
439
439
441
445
445
446
447
447
447
447
449
467
467
469
474
475
477
497
500
500
524
529
545
550
550
567
572
572
592
596
596
598
612
615
617
635
640
640
660
662
662
665
679
680
683
701
705
705
726
729
729
731
745
748
750
1026
1029
1030
4
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
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
11
11
11
11
11
11
11
12
13
13
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
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
18
18
18
18
18
18
18
18
18
18
18
18
18
18
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
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
25
25
25
25
26
26
26
26
27
27
27
27
27
28
28
29
29
30
30
32
32
32
33
33
33
34
35
37
38
40
41
41
42
42
42
43
44
44
45
45
46
46
47
47
47
48
48
49
51
51
54
54
59
62
63
63
65
65
66
66
67
67
68
68
68
70
71
72
72
72
72
73
74
76
79
81
82
82
83
83
83
83
83
83
83
83
87
87
89
89
96
98
99
99
101
101
103
104
104
104
104
104
105
106
106
109
109
110
110
113
113
115
116
116
116
118
118
123
128
130
130
136
136
137
137
137
138
138
140
141
141
142
142
143
143
143
143
143
143
144
144
144
144
144
144
145
145
145
146
147
147
147
147
147
147
147
147
149
149
159
159
159
159
159
160
160
160
161
162
162
163
163
165
165
166
171
171
171
171
174
175
175
175
177
177
177
180
182
182
183
184
191
191
194
195
196
197
197
197
197
198
198
199
200
200
200
201
201
201
201
201
201
202
203
208
210
211
211
213
213
213
213
214
214
215
216
216
230
231
232
234
234
234
237
237
239
239
251
251
253
253
253
254
255
259
261
262
263
264
264
264
265
265
266
266
266
267
270
270
272
272
278
279
282
282
284
284
295
295
296
296
297
299
299
300
300
301
301
304
304
304
304
304
304
313
313
323
324
324
325
326
328
330
330
330
330
330
330
335
336
336
336
341
341
342
342
342
342
342
344
347
349
354
354
357
362
362
370
370
374
374
375
375
375
375
379
379
379
379
388
393
411
411
414
418
420
421
423
440
440
442
444
445
446
447
448
448
450
468
470
475
476
478
498
501
525
530
546
551
551
568
573
573
593
597
599
613
616
618
636
641
641
661
663
666
680
681
684
702
706
706
727
730
732
746
749
751
1027
1030
1031
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
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
9
9
9
9
9
9
9
10
11
11
11
11
12
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
15
15
15
15
15
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
18
18
18
18
18
18
18
18
18
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
24
25
26
26
27
27
27
28
28
28
28
29
29
33
33
33
34
34
35
36
38
39
41
42
42
42
42
42
44
45
45
46
46
46
46
46
46
46
46
47
47
48
48
48
49
49
53
55
55
60
60
62
62
62
63
64
65
66
66
67
68
68
69
69
69
69
71
72
73
73
73
73
74
75
77
78
80
80
81
81
82
83
83
84
84
84
84
84
84
90
90
90
97
99
100
102
102
104
105
105
105
105
105
107
107
110
110
111
111
111
114
116
117
117
124
129
131
131
131
131
137
138
138
139
139
140
142
142
143
143
144
144
144
145
145
145
145
146
146
146
147
148
148
148
148
148
148
148
150
150
160
160
160
160
160
162
163
163
164
164
164
164
164
164
166
166
167
169
172
172
174
174
174
175
176
176
176
178
178
180
180
180
180
181
183
183
183
184
185
192
192
193
195
196
197
198
198
198
198
199
199
199
199
201
201
201
202
202
202
202
203
204
209
212
212
214
214
215
215
216
217
225
225
229
229
231
232
235
236
238
238
240
240
252
254
254
254
255
256
260
261
262
265
265
265
265
266
266
267
267
267
268
273
273
273
279
280
283
285
285
294
296
298
300
300
301
301
301
305
305
305
305
305
305
314
314
314
314
323
325
325
326
329
331
331
331
331
331
336
337
337
337
342
342
343
343
343
343
345
348
350
352
358
363
363
371
371
375
375
376
376
376
376
380
380
380
380
389
394
412
412
415
421
422
424
441
441
443
444
446
447
449
449
451
469
471
476
477
479
499
502
526
531
547
552
552
569
574
574
594
598
600
614
617
619
637
642
642
662
664
667
681
682
685
703
707
707
728
731
733
747
750
752
1028
1031
1032
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
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
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
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
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
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
18
18
18
18
19
19
19
19
19
19
20
20
20
20
21
21
22
22
22
23
23
23
23
23
23
23
23
24
25
25
26
26
26
26
27
27
27
27
28
28
29
29
29
29
29
33
33
33
34
34
34
35
35
36
37
39
40
40
40
42
42
42
42
42
42
43
43
43
44
45
46
46
46
46
46
47
47
47
47
47
48
48
49
49
50
54
56
56
63
63
63
63
64
64
65
65
65
66
66
66
67
68
69
69
70
70
70
71
71
71
71
73
74
74
74
74
75
76
78
78
82
82
82
82
82
83
90
98
99
100
101
102
102
102
102
103
105
105
105
106
106
106
106
106
106
108
111
111
112
112
115
115
120
125
129
130
131
131
132
132
136
136
136
137
139
139
140
141
143
144
144
144
144
144
144
145
145
145
145
145
146
146
146
147
147
148
149
149
149
149
151
151
158
159
160
160
160
160
160
160
160
160
160
161
161
163
164
164
164
164
165
165
165
165
166
167
167
168
173
173
176
177
177
177
181
181
181
181
181
181
182
182
183
183
184
184
186
193
196
197
198
199
199
200
200
200
200
202
204
210
210
213
213
215
215
215
215
216
216
216
216
216
217
218
218
223
226
226
227
229
230
236
237
239
239
241
241
254
254
254
254
255
255
256
257
261
261
263
265
266
266
266
266
267
267
268
269
273
280
281
282
284
285
285
285
285
286
289
297
298
301
301
302
302
302
303
306
306
306
306
306
306
312
314
314
315
315
319
324
327
330
331
332
332
337
338
338
338
342
343
343
343
343
343
343
344
344
344
346
349
349
349
351
351
359
364
364
372
372
376
376
377
377
377
377
381
381
381
381
390
392
392
395
413
413
416
422
423
425
442
442
444
445
447
448
450
450
452
469
470
472
477
478
480
500
503
527
532
548
553
553
570
575
575
595
599
601
615
618
618
620
620
638
643
643
663
665
668
682
683
686
704
708
708
729
732
734
748
751
751
753
753
1029
1032
1033
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
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
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
12
13
13
13
13
13
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
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
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
23
23
23
23
23
24
24
24
24
26
26
26
27
27
27
27
27
27
28
28
28
28
34
34
35
35
35
36
36
37
38
40
41
41
41
42
42
42
42
43
43
43
44
44
44
44
46
46
46
46
46
46
46
47
47
47
48
48
48
48
48
49
49
51
56
56
56
56
57
63
65
66
66
66
67
67
68
69
70
70
71
71
71
72
72
74
75
75
75
75
76
77
79
82
82
82
83
84
99
101
102
103
103
104
105
106
106
106
107
107
107
107
107
108
108
109
111
111
112
112
113
113
120
126
131
132
133
133
137
137
137
138
140
141
142
143
143
144
144
144
145
145
145
145
145
145
146
146
146
146
146
147
150
150
150
150
152
152
152
152
158
159
160
160
160
160
161
161
161
162
162
164
164
164
164
164
165
165
166
166
166
166
166
167
169
169
169
174
174
175
177
178
178
181
184
184
185
185
187
187
194
197
197
198
199
200
200
200
200
200
202
202
204
204
204
205
210
211
211
211
214
216
216
217
217
218
219
219
224
226
227
227
227
229
229
230
231
237
239
239
239
239
240
242
242
255
255
256
256
257
258
262
264
266
267
267
267
267
268
268
269
270
281
282
282
285
285
286
286
287
289
290
294
294
298
302
302
303
303
303
303
307
307
307
307
307
307
315
316
316
323
325
328
331
333
333
338
339
339
339
344
344
344
344
345
345
345
347
349
350
352
352
352
352
360
365
365
373
373
377
377
378
378
378
378
382
382
382
382
391
393
396
414
414
417
423
424
426
443
445
446
448
451
451
453
467
470
471
473
478
479
481
501
504
528
533
549
554
554
554
554
571
576
576
596
600
602
616
621
621
639
644
644
664
666
669
683
684
684
687
687
705
709
709
730
733
735
749
754
754
1030
1033
1034
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
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
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
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
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
19
19
19
19
19
19
20
20
20
20
20
21
22
22
22
22
24
24
25
25
27
27
28
28
28
28
29
29
29
29
29
33
33
33
35
35
36
36
37
37
38
39
39
41
41
41
42
42
42
42
43
44
44
44
45
45
45
45
47
47
47
47
47
47
47
48
48
48
49
49
49
50
50
52
57
57
58
60
63
66
67
67
69
70
71
71
72
72
72
73
73
76
76
76
76
77
78
80
80
82
83
83
84
84
84
100
102
102
102
103
104
104
106
107
108
108
108
108
109
109
110
112
112
113
113
114
114
117
117
117
127
131
131
132
133
136
136
137
138
139
141
142
143
146
146
146
146
146
147
147
147
147
147
148
151
151
151
151
153
153
159
160
160
160
160
162
162
162
163
163
163
165
165
165
165
165
166
166
166
167
167
170
170
170
175
175
176
176
178
181
183
184
185
188
188
188
188
193
195
197
198
198
198
199
200
200
201
201
201
202
202
205
205
206
211
211
212
212
215
215
216
216
216
217
217
218
218
220
220
224
224
226
227
228
230
230
231
232
238
240
240
241
243
243
256
256
257
257
259
263
265
267
268
268
268
269
269
270
271
282
285
285
286
286
287
287
289
295
295
299
303
303
304
304
304
308
308
308
308
308
308
314
314
316
319
324
326
329
332
334
334
339
340
340
340
343
343
345
345
345
345
346
346
348
349
353
353
353
353
361
366
366
374
374
378
378
379
379
379
379
383
383
383
383
392
394
397
415
418
424
425
427
442
444
444
446
446
448
452
452
454
471
472
474
479
480
482
502
505
529
534
550
555
555
572
577
577
597
601
603
617
622
622
640
645
645
665
667
670
684
688
688
706
710
710
731
734
736
750
755
755
1031
1034
1035
4
4
4
4
4
4
5
5
5
5
5
5
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
9
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
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
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
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
17
17
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
19
19
19
20
20
20
20
20
20
21
21
22
22
23
25
25
26
26
26
27
28
29
29
29
29
29
30
30
30
34
34
34
37
37
38
38
39
40
41
43
43
44
45
45
45
45
46
46
46
48
48
48
48
48
48
49
49
49
49
51
51
53
58
58
61
61
63
63
66
66
66
67
67
67
68
70
71
72
72
73
73
73
77
77
77
77
78
78
78
79
81
81
81
82
84
84
84
84
84
84
101
103
103
104
107
108
109
109
109
110
110
111
113
113
113
114
114
115
115
115
117
118
118
120
120
128
131
132
133
137
137
138
139
140
142
143
144
145
147
147
147
147
148
148
148
148
149
152
152
154
154
159
161
163
163
164
164
166
166
166
166
166
167
167
167
169
171
171
171
171
176
176
179
179
181
181
183
184
184
184
185
185
185
186
188
188
189
189
192
193
196
198
199
199
199
199
200
201
202
202
202
202
202
202
202
202
204
206
206
211
212
213
213
215
215
216
217
217
217
218
218
221
221
227
228
229
231
232
232
239
241
241
244
244
258
260
261
261
264
265
266
269
269
269
270
270
271
272
283
286
287
287
290
294
296
296
296
300
303
303
304
304
305
305
305
309
309
309
309
309
309
314
315
323
325
330
333
335
335
340
341
341
341
344
346
346
347
347
349
350
352
354
354
354
354
354
362
367
367
375
375
379
379
380
380
380
380
384
384
393
395
398
414
416
417
419
425
426
428
445
445
447
448
453
453
455
472
473
475
480
481
483
503
506
530
535
551
556
556
573
578
578
598
602
604
618
623
623
641
646
646
666
668
671
685
689
689
707
711
711
732
735
737
751
756
756
1032
1035
1036
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
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
10
10
10
10
10
11
11
11
11
11
11
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
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
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
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
22
23
23
24
24
26
26
27
27
27
27
28
29
29
30
30
35
35
35
38
38
39
39
40
41
41
41
43
43
44
44
45
45
45
46
46
46
47
47
49
49
50
50
52
52
54
64
64
67
67
68
68
69
71
71
72
73
73
74
74
74
78
78
79
79
79
80
82
82
82
82
82
83
83
85
85
85
85
85
85
85
85
87
102
102
102
104
104
105
105
109
110
110
110
111
112
115
116
116
116
118
121
121
129
129
131
131
132
133
134
134
136
138
138
138
139
139
140
141
143
143
144
145
146
147
147
148
148
148
149
149
150
153
153
155
155
159
159
160
160
162
163
163
164
165
165
167
167
168
168
169
170
172
177
177
178
182
182
185
185
186
186
189
190
190
193
197
197
197
199
200
200
200
200
201
202
203
203
203
203
203
203
203
203
203
205
212
213
214
217
218
218
218
219
219
222
222
226
226
228
229
240
245
245
254
257
259
259
261
262
262
265
265
265
266
266
267
270
270
270
270
271
271
272
273
284
285
285
287
288
288
294
295
301
301
304
304
305
305
306
306
306
310
310
310
310
314
314
315
316
319
324
326
326
330
331
334
336
336
341
342
342
342
343
343
345
347
348
350
352
353
355
355
363
368
368
376
376
380
380
381
381
381
381
385
385
394
396
399
417
418
420
426
427
429
446
446
448
454
454
456
473
474
476
481
482
484
504
507
531
531
536
536
552
557
557
574
579
579
599
603
605
619
624
624
642
647
647
667
669
672
686
690
690
708
712
712
733
736
738
752
757
757
1033
1036
1037
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
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
9
9
9
9
9
9
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
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
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
22
22
23
23
23
25
26
26
27
28
28
28
29
29
30
30
30
30
30
30
31
33
36
36
39
39
40
40
41
41
41
42
43
44
45
45
46
46
46
46
47
47
48
49
49
49
49
49
49
49
49
51
51
53
53
55
56
56
63
64
64
67
67
67
67
68
68
68
68
68
69
70
71
71
72
72
73
74
74
75
75
75
79
79
80
81
83
83
83
83
83
83
85
85
85
85
86
86
86
86
88
88
90
90
99
102
102
103
103
103
105
105
106
106
106
108
110
111
111
111
112
112
113
113
114
114
115
115
116
117
119
119
131
132
133
135
135
139
140
140
140
141
142
145
147
147
148
148
148
148
148
148
149
149
150
150
151
151
151
151
151
154
154
156
156
159
159
160
160
161
161
164
164
164
164
165
166
167
167
167
167
167
167
167
167
169
169
170
170
171
171
173
178
178
178
181
182
182
183
183
185
185
185
185
186
186
186
186
186
187
188
188
190
198
198
200
201
201
201
201
201
202
202
203
203
203
203
203
203
204
204
204
204
204
206
212
212
213
213
213
214
215
216
218
219
219
220
220
223
223
224
226
227
239
239
241
246
246
254
254
255
260
260
262
266
266
268
271
271
271
271
271
272
272
273
273
273
274
282
285
285
285
286
286
289
289
295
295
296
296
302
302
302
306
306
307
307
307
311
311
311
311
314
315
316
323
325
331
331
331
331
335
337
337
342
342
343
343
343
343
343
344
344
346
346
347
347
348
349
351
353
353
354
354
356
356
364
369
369
377
377
381
381
382
382
382
382
383
383
383
383
386
386
395
397
400
418
419
421
427
428
430
447
447
449
455
455
457
474
475
477
482
483
485
505
508
508
537
537
553
558
558
575
580
580
604
606
620
625
625
643
648
648
670
673
687
691
691
709
713
713
737
739
753
758
758
1034
1037
1038
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
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
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
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
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
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
18
18
18
18
18
18
19
19
19
19
20
20
20
21
21
21
21
23
23
26
27
27
28
28
29
29
29
30
31
31
31
31
32
34
36
40
40
41
41
41
41
42
43
43
43
44
45
46
46
47
47
47
47
48
48
49
50
50
50
50
52
52
54
54
56
56
56
57
57
64
64
64
64
65
68
68
69
69
69
70
71
71
72
73
73
74
75
75
76
76
76
80
80
81
82
83
83
83
84
84
84
84
84
84
84
85
85
86
86
87
87
87
87
91
91
91
100
103
104
104
105
106
106
107
107
108
108
108
109
111
112
112
112
114
114
115
116
117
118
118
118
118
129
133
134
136
136
138
139
139
139
141
141
141
141
141
143
143
143
145
145
146
146
146
148
149
149
149
149
150
150
151
152
152
152
155
155
157
157
160
162
162
165
165
165
165
166
168
168
168
168
170
170
172
172
174
179
179
181
182
182
182
182
183
184
184
186
186
187
187
187
188
189
198
198
199
200
200
200
201
201
201
201
202
203
203
203
203
204
204
204
204
204
205
205
205
205
205
214
214
215
216
217
219
219
221
221
224
224
224
224
226
226
227
228
232
239
239
240
240
242
247
247
254
255
256
261
261
263
267
267
267
267
267
267
269
272
272
272
273
273
274
274
274
274
275
283
286
287
287
290
290
297
297
303
307
307
308
308
308
312
312
312
312
312
316
317
324
324
324
326
326
326
332
332
332
336
338
338
343
343
344
344
344
345
345
347
348
349
350
352
355
355
357
357
365
370
370
378
378
382
382
383
383
383
384
384
387
387
396
398
401
419
420
422
429
431
448
448
450
456
456
458
475
476
478
483
484
486
505
509
509
538
538
554
559
559
576
581
581
605
607
621
626
626
644
649
649
671
674
688
692
692
710
714
714
738
740
754
759
759
1035
1038
1039
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
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
7
7
8
8
8
8
8
8
9
9
9
9
9
9
10
10
10
10
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
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
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
20
20
20
21
21
21
22
22
22
22
26
27
27
28
29
30
30
30
30
30
30
30
31
31
32
32
32
32
36
41
42
43
44
44
44
45
46
47
47
47
48
49
49
51
51
51
51
55
55
57
58
58
65
65
67
67
67
68
68
68
69
69
69
70
70
72
73
74
74
74
75
76
76
77
77
81
81
81
82
83
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
86
86
87
87
91
100
101
105
105
107
108
108
108
109
109
109
109
110
110
112
112
113
113
113
113
113
115
115
116
116
117
118
118
119
119
119
121
125
126
130
134
135
137
137
138
138
139
140
140
140
141
143
144
144
144
146
147
147
148
149
149
149
150
151
151
152
153
153
153
156
156
158
158
160
161
163
163
166
167
169
169
169
169
170
171
171
171
173
173
175
178
178
180
180
182
182
183
183
185
185
185
186
186
186
187
187
188
188
188
188
190
199
200
201
201
202
202
202
202
202
203
203
203
203
203
203
203
204
204
204
204
204
205
205
205
205
205
206
212
213
213
213
215
215
217
219
220
222
222
225
225
227
227
228
229
230
241
241
243
248
248
252
256
257
257
262
262
264
267
267
268
268
268
270
273
273
274
274
275
276
283
284
287
288
288
291
291
295
296
296
296
298
298
304
304
308
308
309
309
313
313
313
313
313
317
318
324
326
327
327
327
332
337
339
339
343
344
344
345
345
346
346
348
349
350
351
353
353
354
354
354
356
356
358
358
366
371
371
379
379
383
383
384
384
384
385
385
388
388
397
399
402
420
421
423
427
430
432
449
449
451
457
457
459
476
477
479
484
485
487
510
510
527
528
539
539
555
560
560
577
582
582
606
608
622
627
627
645
650
650
672
675
689
693
693
711
715
715
739
741
755
760
760
1036
1039
1040
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
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
8
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
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
17
17
17
17
17
18
18
18
18
18
18
19
20
21
21
21
22
22
23
23
23
23
26
26
28
28
28
28
28
29
29
29
30
30
31
31
31
31
31
31
31
31
32
32
33
33
34
42
43
44
45
45
45
46
46
48
48
48
48
48
48
49
49
50
50
54
56
56
58
59
59
61
64
64
65
65
65
65
65
65
66
67
68
68
68
69
69
70
70
73
74
74
75
76
76
76
77
77
77
77
78
78
82
82
82
83
83
83
84
84
84
84
85
85
85
86
86
86
86
86
86
86
87
87
100
101
105
105
106
108
109
109
110
110
110
111
111
112
112
112
112
112
113
113
114
114
114
114
114
117
117
117
118
119
120
121
127
130
130
134
134
136
138
138
141
141
141
144
145
145
145
146
146
147
147
147
148
148
148
149
149
150
150
150
150
151
152
152
153
154
154
154
157
157
159
159
160
161
163
163
163
164
166
166
166
166
167
167
168
170
170
170
171
172
172
172
176
176
179
179
179
181
181
182
182
183
183
183
183
183
183
184
185
186
186
186
187
187
188
188
189
189
198
200
200
201
201
201
202
202
202
202
203
203
204
204
205
205
205
205
205
206
206
206
207
212
212
214
214
214
217
218
221
223
223
226
226
228
229
229
237
242
242
244
249
249
253
253
257
257
263
263
265
268
269
269
269
271
274
274
275
276
277
283
284
288
288
288
289
292
292
295
295
295
296
297
297
297
304
305
308
308
309
309
309
309
310
310
313
313
314
314
314
314
317
317
319
327
328
328
328
338
340
340
343
344
344
344
345
346
346
346
346
347
349
350
351
352
353
353
353
354
354
355
355
355
359
359
367
372
372
380
380
382
382
384
384
385
385
385
386
386
389
389
400
403
421
422
424
428
430
431
433
450
450
452
458
458
460
477
478
480
485
486
486
488
488
511
511
529
540
540
556
561
561
578
583
583
607
609
623
628
628
646
651
651
673
676
690
694
694
712
716
716
740
742
756
761
761
1037
1040
1041
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
6
6
6
6
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
9
9
9
9
9
9
9
9
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
14
14
14
14
14
14
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
16
16
16
16
17
17
18
18
18
18
19
19
19
19
19
20
20
20
21
21
22
22
22
22
23
23
24
24
29
29
30
31
31
32
32
32
32
32
32
32
32
33
33
34
34
43
44
45
46
46
49
49
49
49
49
49
49
49
49
49
50
50
51
51
55
57
57
59
59
60
62
65
66
66
66
67
67
68
69
69
70
70
74
75
75
76
77
78
78
78
78
78
78
79
79
83
83
83
83
83
83
84
84
84
84
85
85
85
86
86
86
87
87
87
87
88
88
106
106
107
109
109
110
110
110
110
110
112
112
113
114
114
115
115
115
115
115
118
119
120
121
128
135
135
137
139
139
139
141
141
142
142
145
148
149
149
149
150
150
151
151
151
152
153
153
154
155
155
155
158
158
160
160
164
164
164
165
167
167
167
167
167
167
167
167
168
168
169
172
173
173
173
177
177
177
180
182
182
183
184
184
184
184
185
185
186
187
187
188
188
190
190
201
201
201
202
202
203
203
203
204
204
205
205
205
206
206
206
206
206
207
207
208
215
215
215
219
222
224
224
227
227
238
242
243
245
250
250
258
258
264
264
266
267
267
269
272
275
275
276
277
278
289
289
289
290
293
293
297
298
298
298
306
310
310
310
310
310
310
311
311
315
315
315
315
315
315
318
318
320
324
324
328
339
341
341
345
346
347
347
347
347
348
350
351
352
353
355
355
356
356
356
360
360
368
373
373
381
381
383
385
385
386
386
386
387
387
390
390
397
401
401
404
422
423
425
431
432
434
448
451
451
453
459
459
461
478
479
481
486
489
489
512
512
530
541
541
557
562
562
579
584
584
608
610
624
629
629
647
652
652
674
677
691
695
695
713
717
717
741
743
757
762
762
1038
1041
1042
1
4
4
4
4
4
4
4
4
4
4
4
4
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
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
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
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
13
13
14
14
14
14
14
14
14
14
14
14
14
14
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
18
18
19
20
20
21
21
22
22
22
22
22
23
23
24
24
24
30
30
30
30
31
32
33
33
33
33
33
33
33
34
35
42
43
44
45
46
47
47
47
49
49
49
49
49
50
50
50
50
50
50
50
50
51
51
52
55
58
58
59
60
61
65
65
65
65
66
66
67
67
67
67
68
68
69
69
70
71
71
75
76
76
77
78
79
79
80
80
83
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
86
86
86
88
88
89
89
107
107
109
109
109
110
110
111
111
111
111
111
113
114
115
116
116
116
119
119
120
121
122
129
136
136
140
140
140
142
142
142
143
143
143
148
149
150
150
151
151
152
152
155
156
156
156
159
159
161
161
165
165
165
165
167
167
167
167
168
168
168
168
168
168
169
169
171
173
174
174
178
183
183
183
183
183
183
184
184
184
185
185
185
185
186
186
186
187
188
189
191
191
198
202
202
202
202
202
202
203
203
203
203
204
204
204
205
206
206
206
207
207
207
207
208
208
209
213
216
216
220
223
225
225
228
228
232
238
242
244
246
251
251
252
254
259
259
265
265
266
267
267
267
268
268
273
274
275
276
276
277
278
279
290
290
290
294
294
296
298
299
299
307
311
311
312
312
316
316
316
316
316
316
319
319
325
325
326
326
326
340
342
342
346
348
348
348
351
352
353
354
354
356
356
357
357
361
361
369
374
374
382
382
384
387
387
387
388
388
391
391
402
402
405
423
424
426
432
433
435
446
448
449
452
452
454
460
460
462
479
480
482
487
490
490
513
513
531
542
542
558
563
563
580
585
585
609
611
625
630
630
648
653
653
675
678
692
696
696
714
718
718
742
744
758
763
763
1039
1042
1043
2
2
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
7
8
8
8
8
8
8
8
8
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
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
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
20
22
23
23
24
24
24
25
25
28
29
30
31
31
31
31
31
32
33
34
34
34
36
40
41
43
44
45
46
46
47
47
47
48
48
48
48
48
48
50
50
51
51
51
51
51
51
52
52
52
52
53
59
59
60
61
62
62
62
65
65
66
66
66
66
67
69
70
70
70
71
71
71
71
72
72
75
76
76
78
79
80
80
81
81
82
84
84
84
84
84
84
85
85
85
85
85
86
86
86
86
87
87
88
88
88
88
89
89
90
90
111
111
112
112
112
112
112
114
114
115
117
119
119
119
120
121
122
123
130
141
141
142
142
144
144
144
144
146
147
148
149
149
150
151
153
156
157
157
157
160
160
162
162
165
165
166
166
166
166
166
169
169
169
169
170
170
170
170
172
172
179
179
180
180
183
183
184
184
184
184
184
184
185
187
187
188
188
188
189
189
189
190
192
198
199
200
200
202
202
202
202
203
204
204
205
205
206
206
206
206
206
207
207
208
208
208
208
209
209
210
214
216
221
224
226
229
229
229
233
233
243
245
247
252
254
255
266
266
267
267
268
269
269
272
273
274
275
276
277
277
278
279
280
291
295
295
297
297
307
308
308
312
312
313
313
317
317
317
317
317
317
327
327
327
327
341
343
343
347
349
352
353
354
355
355
355
357
362
362
370
375
375
383
383
385
388
388
388
389
389
392
392
403
403
406
425
427
433
434
436
447
449
453
453
455
461
461
463
480
481
483
488
491
491
514
514
532
543
543
559
564
564
581
586
586
610
612
626
631
631
649
654
676
679
693
697
697
715
719
719
743
745
759
764
764
1040
1043
1044
2
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
7
7
7
7
7
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
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
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
14
14
14
14
14
14
14
14
14
14
14
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
19
19
22
22
23
23
24
25
25
26
28
29
30
31
31
32
32
32
32
33
33
35
35
35
36
37
44
44
45
46
47
47
48
48
48
48
49
49
49
52
52
52
52
52
52
52
52
53
53
53
53
54
59
60
61
62
63
65
67
67
70
71
71
71
72
72
72
73
73
77
77
77
79
80
81
81
82
82
82
82
84
86
86
86
86
86
87
87
87
87
87
88
88
89
89
89
89
90
90
91
91
91
91
100
110
112
112
113
113
113
113
114
115
116
117
118
119
120
120
120
120
121
122
123
124
131
134
140
140
142
142
143
145
145
145
146
147
148
149
149
149
149
150
150
151
152
153
153
154
157
157
157
158
158
158
160
161
161
163
163
166
166
166
167
170
170
170
170
170
170
171
171
171
171
179
180
181
183
185
185
185
187
187
188
189
189
189
190
190
190
191
191
191
191
193
197
199
200
200
200
201
202
204
205
205
206
206
207
207
207
207
208
208
209
209
209
210
210
211
216
219
222
225
227
227
230
230
230
232
242
244
248
253
256
267
267
269
270
270
270
274
274
275
276
277
278
278
279
280
281
283
292
296
296
302
309
309
309
313
313
314
314
314
317
318
318
318
318
318
328
328
328
331
332
332
342
343
344
344
346
347
348
350
353
354
355
356
358
363
363
371
376
376
384
384
385
385
386
389
389
389
389
389
390
390
393
393
404
404
407
423
426
428
434
435
437
447
449
454
454
456
462
464
481
482
484
489
492
492
515
515
533
544
544
560
565
565
582
587
599
611
613
627
632
632
650
655
677
680
694
698
698
716
720
733
744
746
760
765
765
1041
1044
1045
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
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
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
10
10
11
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
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
18
18
18
22
22
23
24
24
24
25
26
27
28
29
30
31
31
31
32
32
33
33
33
33
34
34
36
36
36
37
38
45
46
46
47
48
48
48
48
48
48
48
49
49
49
50
50
50
50
52
52
53
53
54
54
54
54
55
55
59
60
61
63
63
64
65
66
68
70
70
72
72
73
73
74
78
80
81
81
82
82
83
83
83
83
83
84
85
87
87
87
87
87
88
88
88
88
88
90
90
90
90
91
91
92
92
100
101
105
111
111
114
114
115
116
116
117
118
119
120
120
120
120
121
121
121
121
121
122
123
124
125
130
132
134
135
141
142
142
143
143
144
145
146
147
148
148
149
149
150
150
150
150
151
151
152
155
158
158
158
159
159
159
160
161
162
162
163
164
164
164
166
166
166
166
167
167
168
170
170
172
172
172
172
174
181
181
182
183
184
186
186
190
190
191
191
191
192
192
194
198
201
201
201
202
202
203
203
205
206
206
206
206
206
208
208
208
208
209
211
211
211
212
214
217
219
220
223
225
225
226
228
231
231
231
231
233
233
238
242
243
249
253
253
254
257
265
268
269
270
270
271
275
275
275
277
278
278
279
279
280
281
282
283
284
288
293
297
297
299
303
304
304
310
313
314
314
315
315
315
317
318
319
319
319
319
319
328
331
332
333
333
336
342
343
344
344
345
346
347
348
349
351
352
353
354
355
356
357
357
359
364
364
372
377
377
385
387
390
390
390
390
391
391
394
394
405
405
408
424
426
427
429
435
436
438
449
455
455
457
463
465
482
483
483
485
485
490
493
493
516
516
534
544
544
545
561
566
566
583
588
600
605
611
613
614
628
633
633
651
656
667
671
677
680
681
695
699
699
717
721
734
738
744
746
747
761
766
766
1042
1045
1046
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
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
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
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
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
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
16
16
17
17
18
18
19
22
23
23
23
24
25
25
25
26
27
28
30
31
31
32
33
33
34
34
34
34
35
37
37
37
37
38
39
46
46
47
47
47
48
48
48
48
48
48
48
48
49
50
50
50
50
51
51
51
51
51
52
52
53
53
54
54
55
56
60
61
62
63
64
64
65
66
67
68
68
69
71
71
74
74
74
79
81
83
83
83
83
84
84
84
84
84
84
86
87
87
88
88
88
88
88
88
89
89
89
89
89
92
92
92
92
93
101
105
106
115
115
116
118
120
120
121
121
122
122
122
122
122
122
122
123
124
125
126
130
133
135
136
141
141
142
143
143
144
144
145
148
149
149
149
150
150
150
151
151
151
152
152
156
159
159
159
160
160
160
161
163
163
163
164
164
165
165
165
165
166
166
166
166
166
166
168
168
169
169
170
170
171
171
174
179
179
181
182
182
182
183
184
185
186
186
187
187
187
192
193
193
201
201
201
202
202
202
202
204
204
205
205
205
206
206
207
207
207
207
207
212
212
212
213
218
220
220
221
224
226
227
229
231
232
232
233
234
234
238
243
244
250
254
254
255
257
257
257
269
270
271
272
275
275
276
278
279
279
280
280
281
282
283
284
288
289
294
298
298
299
305
305
305
305
311
313
315
315
316
316
316
318
319
320
320
320
320
320
332
333
333
334
337
344
345
346
346
347
350
352
353
354
355
356
357
357
358
360
365
365
373
378
378
386
388
391
391
391
391
392
392
395
395
406
406
409
427
428
430
436
437
439
456
456
458
464
466
483
486
486
491
494
494
517
517
535
545
546
562
567
567
584
589
606
614
615
629
634
634
652
657
672
681
682
696
700
700
718
722
739
747
748
762
767
767
1043
1046
1047
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
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
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
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
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
16
18
18
18
19
20
22
22
23
24
25
26
26
26
27
28
29
32
33
35
35
35
37
38
38
38
39
40
46
47
48
48
49
49
49
49
49
50
50
51
51
51
51
51
52
52
52
52
52
52
52
52
52
53
53
54
54
55
55
57
61
62
63
65
65
65
66
66
66
67
68
69
69
70
70
70
71
71
75
75
75
80
82
84
84
84
84
85
85
85
85
87
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
90
90
90
90
92
92
93
93
93
94
105
106
107
112
113
113
113
116
119
120
120
120
121
121
122
122
122
122
123
123
123
124
124
125
125
126
126
127
127
134
134
136
137
143
144
144
145
145
146
150
150
150
151
151
152
152
156
157
160
160
160
161
161
161
161
161
163
164
164
164
164
164
165
166
166
167
167
167
167
169
169
169
170
170
170
170
170
170
171
171
172
172
177
180
180
183
183
183
183
184
184
184
185
186
187
187
188
188
188
188
189
189
193
201
202
202
202
202
202
203
205
205
205
206
206
206
206
206
206
206
206
207
207
208
208
208
208
208
213
213
213
214
218
218
220
221
222
225
227
228
229
230
231
233
233
233
234
235
235
244
245
251
256
258
258
258
270
271
272
275
275
276
277
279
280
280
281
281
282
283
284
288
289
290
295
299
299
305
305
306
306
312
316
316
317
317
317
317
319
320
321
321
321
321
321
321
321
321
321
333
333
334
335
338
344
346
346
347
347
348
351
353
354
355
356
356
357
357
358
358
359
359
361
366
366
374
379
379
384
387
388
389
389
389
392
392
392
392
393
393
393
393
396
396
396
396
407
407
410
428
429
431
437
440
457
457
459
465
467
484
487
487
492
495
495
518
536
546
547
563
568
568
585
590
607
615
616
630
635
635
653
658
673
682
683
697
701
701
719
723
740
748
749
763
768
768
1044
1047
1048
1
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
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
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
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
12
12
12
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
15
15
16
16
16
16
17
17
17
17
17
18
18
19
20
21
22
23
24
25
27
27
27
28
30
36
37
38
39
39
39
40
41
47
47
47
48
49
50
50
51
51
51
51
52
52
52
53
53
53
53
53
53
53
53
54
54
56
56
58
59
62
63
64
66
66
67
70
70
70
70
70
70
71
71
71
71
71
72
72
74
75
76
76
81
83
84
84
85
85
86
86
86
86
87
88
88
89
89
89
89
90
90
90
90
90
90
91
91
91
93
94
94
94
105
106
107
107
111
113
113
114
114
116
116
117
118
118
120
121
122
122
123
123
124
124
124
127
127
128
128
134
134
135
135
137
137
143
145
145
146
146
151
152
157
158
161
161
161
162
163
164
165
165
165
165
165
165
165
167
167
169
171
171
171
171
171
171
172
172
174
174
178
178
184
184
184
184
185
188
188
188
188
188
189
189
189
189
189
189
190
190
191
194
202
202
202
203
203
204
205
206
206
206
206
206
207
207
207
207
207
208
208
209
209
209
214
214
214
215
221
222
223
226
228
229
230
230
231
234
234
234
235
242
245
246
252
253
257
257
258
259
259
269
271
272
273
276
277
280
281
281
282
282
282
283
283
284
284
285
285
288
289
290
290
296
299
299
300
300
306
307
307
313
317
317
317
317
318
318
318
318
320
320
322
322
322
322
322
334
335
339
345
346
347
347
348
348
348
350
352
354
355
356
357
357
359
359
360
360
362
367
367
375
380
380
388
389
390
390
393
393
393
393
397
397
397
397
408
408
411
429
430
432
438
441
458
458
460
466
468
485
488
488
493
496
496
519
537
547
548
564
569
569
586
591
608
616
617
631
636
636
654
659
674
683
684
698
702
702
720
724
741
749
750
764
769
769
1045
1048
1049
1
1
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
6
6
6
6
6
6
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
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
11
11
11
11
11
11
11
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
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
18
18
18
20
20
21
23
24
25
25
26
28
28
31
31
32
33
33
34
35
37
37
38
39
40
40
40
42
44
46
47
47
47
49
50
50
50
51
52
52
52
52
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
57
59
60
62
63
64
65
67
70
71
71
71
72
72
72
72
72
72
73
73
73
74
75
76
76
77
82
83
84
84
86
86
87
87
87
87
87
88
89
89
89
89
89
89
90
90
91
91
91
91
91
91
91
91
91
91
92
94
95
95
100
105
106
107
108
112
112
114
117
117
118
118
119
120
121
122
122
123
123
124
124
125
128
128
129
129
130
135
135
136
137
138
141
143
144
144
146
147
149
150
151
152
152
158
159
160
162
162
162
163
163
164
165
165
165
165
166
166
166
166
166
168
168
169
170
170
170
172
172
172
172
172
172
172
172
172
172
172
172
172
175
175
181
185
185
185
185
185
187
189
189
189
190
190
190
190
190
190
190
191
191
191
191
192
201
204
204
205
206
206
207
207
207
207
207
207
207
207
208
208
208
209
209
209
209
209
209
210
215
215
215
216
216
220
222
223
227
227
229
229
230
232
233
233
235
235
235
243
245
247
253
253
257
258
258
259
259
260
267
267
270
272
273
274
277
281
282
282
283
283
285
285
286
286
288
289
290
291
297
297
300
300
301
301
305
307
313
314
318
318
318
318
319
319
319
320
321
323
323
323
323
323
327
335
340
343
346
347
348
348
349
349
351
353
355
355
356
357
358
358
360
360
361
361
363
368
368
376
381
381
389
390
391
391
394
394
394
394
398
398
398
398
409
412
430
431
433
439
442
459
461
467
469
486
489
489
494
497
497
520
538
548
549
565
570
570
587
592
609
617
618
632
637
637
655
660
675
684
685
699
703
703
721
725
742
750
751
765
770
770
1046
1049
1050
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
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
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
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
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
18
18
18
19
21
21
23
25
25
25
26
27
29
29
31
32
32
32
33
33
33
33
33
34
34
34
34
34
35
35
35
37
38
38
39
41
41
43
45
45
47
47
48
48
48
48
50
51
51
51
51
51
52
53
53
53
53
53
54
54
54
54
54
54
55
55
55
55
55
55
55
55
58
60
62
63
63
63
64
65
66
68
68
68
71
72
72
72
72
73
73
73
73
73
74
74
75
76
77
78
83
83
85
85
85
87
87
87
87
87
87
88
88
88
88
88
88
88
89
89
89
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
93
96
106
107
108
109
115
115
119
119
120
120
121
122
122
122
123
124
124
124
125
126
129
129
130
130
136
137
138
139
141
143
144
145
145
145
145
145
147
148
150
150
150
151
151
151
151
152
152
152
152
153
153
159
160
160
163
163
163
163
164
164
165
166
166
166
167
167
167
167
167
169
169
169
169
170
171
171
171
171
171
172
172
172
172
173
173
173
173
173
173
173
173
180
181
181
182
183
185
185
186
186
186
186
186
187
189
190
190
190
190
191
191
191
191
191
191
192
192
192
193
201
201
202
205
205
206
207
207
207
207
207
208
208
208
209
209
209
209
209
209
210
210
210
210
210
210
211
214
216
216
216
216
217
217
218
220
221
228
228
230
230
230
231
231
231
233
234
234
236
236
245
246
248
254
258
259
259
260
261
268
268
270
270
271
273
274
275
275
282
283
283
284
286
286
287
287
289
290
291
292
298
298
298
302
302
305
306
315
319
319
319
320
320
320
320
320
321
322
324
324
324
324
324
328
328
328
328
333
341
347
348
349
349
350
350
352
354
354
356
356
356
356
357
358
361
361
362
362
364
369
369
377
382
382
390
391
392
392
392
395
395
395
395
395
399
399
399
399
410
413
431
432
434
440
443
460
462
468
470
487
490
490
495
498
521
539
549
550
566
571
571
588
593
610
618
619
633
638
638
656
661
676
685
686
700
704
704
722
726
743
751
752
766
771
771
1047
1050
1051
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
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
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
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
15
15
15
15
15
15
17
18
19
19
21
23
25
25
26
26
26
27
28
30
30
31
32
32
33
34
34
34
34
35
35
35
35
35
35
36
36
37
38
39
39
40
42
42
44
45
47
48
48
50
51
52
52
52
52
52
53
55
55
55
55
56
56
56
56
56
56
56
56
59
60
61
64
64
67
68
68
68
69
69
69
71
72
72
72
72
73
73
73
73
74
74
74
75
75
76
76
78
83
84
86
87
88
88
88
88
88
88
89
89
89
89
89
90
92
92
92
92
93
93
93
93
93
93
93
93
93
93
93
94
97
106
107
107
108
109
114
114
114
119
119
120
121
122
122
123
123
124
125
125
125
126
127
130
130
131
131
135
137
138
139
141
143
144
145
146
146
146
146
148
149
149
150
150
150
151
152
152
153
153
153
153
154
154
160
164
164
164
164
164
165
165
165
166
167
168
168
168
168
170
170
170
170
171
173
173
174
174
174
174
174
174
180
182
186
186
186
186
187
187
187
187
187
189
190
190
190
190
191
191
191
191
191
192
192
192
192
193
193
193
194
201
201
203
205
206
207
207
208
208
209
209
209
210
210
211
211
211
211
211
211
212
215
217
217
217
217
217
218
218
218
220
221
222
227
228
230
231
231
231
231
232
233
234
235
235
237
237
243
247
255
259
259
260
261
271
271
271
272
274
275
275
275
276
276
283
284
284
285
287
287
288
288
289
290
290
291
292
299
303
303
305
307
316
318
320
320
320
321
321
321
322
325
325
325
325
325
329
329
329
333
333
334
342
347
348
348
349
350
350
351
353
357
357
358
359
362
362
363
363
365
370
370
378
383
383
391
392
393
396
396
396
396
396
400
400
400
400
408
411
411
414
432
433
435
441
444
449
461
463
469
471
488
491
491
496
499
522
540
550
551
567
572
572
589
594
611
619
620
634
639
639
657
662
677
686
687
701
705
705
723
727
744
752
753
767
772
772
1048
1051
1052
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
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
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
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
10
11
11
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
14
14
15
15
17
18
18
19
19
20
25
25
26
26
27
27
28
28
31
32
32
32
33
34
34
34
35
35
36
36
36
37
37
38
39
40
40
41
43
43
45
45
47
48
49
49
51
51
52
53
53
53
53
53
53
53
53
53
54
54
54
54
56
56
56
56
57
57
60
61
62
65
68
69
69
69
70
70
70
70
71
71
72
72
73
73
73
74
74
74
74
75
75
76
76
77
85
87
88
88
88
88
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
92
93
93
93
94
94
94
94
94
95
98
106
108
109
112
114
115
115
117
120
121
122
122
123
123
123
124
124
125
126
126
126
127
128
131
131
132
132
135
136
137
137
139
143
144
146
146
146
149
149
150
150
150
151
151
152
152
153
154
154
155
155
161
164
165
165
165
165
166
166
167
169
169
169
169
169
171
171
171
171
171
171
171
171
172
172
172
172
174
174
175
185
185
187
187
187
187
188
188
188
189
189
190
190
191
191
191
192
192
192
192
192
193
193
194
201
202
202
204
206
206
206
207
207
207
207
207
208
208
208
208
209
210
210
210
211
211
213
215
215
217
218
218
218
218
219
219
221
222
223
228
230
231
232
232
232
232
233
234
235
236
236
238
238
244
248
258
259
259
260
261
271
272
273
275
275
276
276
277
277
284
285
285
286
288
288
289
289
289
291
292
300
300
303
304
304
305
306
308
317
318
319
320
320
321
321
322
322
326
326
326
326
326
329
332
333
334
335
343
347
349
350
351
352
354
358
358
358
359
360
363
363
364
364
366
371
371
379
384
384
392
393
394
397
397
397
397
397
401
401
401
401
412
412
415
433
436
442
445
447
449
450
462
464
470
472
489
492
492
497
500
523
541
551
552
568
573
573
595
612
620
621
635
640
640
663
678
687
688
702
706
706
728
745
753
754
768
773
773
1049
1052
1053
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
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
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
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
13
13
13
13
13
14
15
15
16
16
18
19
19
20
21
25
26
27
27
32
32
33
34
34
34
35
35
35
35
35
35
36
36
37
40
40
41
42
44
44
46
48
49
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
55
55
55
55
57
57
58
58
61
61
63
65
66
69
69
70
70
70
71
71
71
74
74
74
75
75
75
76
76
77
78
86
88
88
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
94
95
95
95
95
95
96
99
107
109
110
113
113
117
119
121
122
123
123
124
124
125
125
126
127
127
128
129
132
132
133
133
136
137
138
138
140
145
150
150
150
151
151
152
152
152
152
153
153
153
153
153
154
162
165
166
166
166
166
167
167
168
170
170
170
170
170
170
171
171
171
171
172
172
172
172
172
172
172
172
172
173
173
173
173
175
186
187
188
188
188
189
189
192
192
192
192
192
193
193
193
194
194
194
195
202
202
203
206
207
208
208
208
208
208
208
208
208
209
209
209
209
209
209
209
209
209
209
210
211
214
218
219
219
219
219
220
220
223
223
231
232
233
233
234
236
236
236
236
236
237
239
239
244
248
249
259
259
260
261
262
273
274
276
277
277
278
278
285
286
286
287
289
289
290
290
290
292
293
300
301
304
305
305
307
309
318
319
320
321
321
322
322
323
323
327
327
327
327
327
333
335
336
344
348
350
351
352
353
355
358
359
359
360
361
364
364
365
365
367
372
372
380
385
385
393
394
395
398
398
398
398
398
402
402
402
402
413
413
416
434
437
443
446
448
450
463
465
471
473
490
493
493
498
501
524
542
552
553
569
574
574
596
613
621
622
636
641
641
664
679
688
689
703
707
707
729
746
754
755
769
774
774
1050
1053
1054
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
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
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
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
14
15
16
20
21
21
26
27
32
32
33
33
33
34
35
35
35
36
36
36
36
36
36
37
37
42
43
45
45
45
47
47
47
47
49
54
54
54
54
54
54
54
54
55
55
55
55
55
56
56
56
56
58
58
59
59
61
61
62
64
66
67
69
70
70
70
70
71
72
72
72
72
73
75
75
76
76
76
76
76
78
79
87
89
90
91
91
91
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
95
96
96
96
96
96
97
100
106
107
108
110
119
123
123
124
124
125
125
125
127
128
128
129
130
133
133
134
134
135
137
138
138
139
141
150
150
150
151
151
151
152
153
153
153
153
154
154
154
154
154
155
163
164
165
166
167
167
167
167
168
168
171
171
171
171
172
172
172
172
172
173
173
173
173
173
174
174
174
174
185
185
187
187
188
188
188
189
190
190
190
191
193
193
194
194
194
195
195
195
196
202
203
204
207
209
209
210
210
210
210
210
210
210
210
210
210
210
210
212
215
217
219
220
220
220
220
221
230
230
232
234
234
235
237
237
237
238
240
240
244
244
249
250
259
259
259
261
262
263
273
275
277
277
278
278
279
279
279
286
287
287
288
289
290
290
290
291
291
291
293
302
306
306
308
308
310
318
319
320
321
321
322
323
323
324
324
328
328
328
328
328
333
336
337
345
347
348
349
351
353
354
356
360
360
361
362
365
365
366
366
368
373
373
381
386
394
395
396
399
399
399
399
399
403
403
403
403
414
414
417
435
438
444
447
448
450
464
466
472
474
491
494
494
499
502
525
543
553
554
570
575
575
597
614
622
623
637
642
642
665
680
689
690
704
708
708
730
747
755
756
770
775
775
1051
1054
1055
4
4
4
4
4
4
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
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
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
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
10
10
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
12
12
12
12
12
12
12
13
13
15
16
17
17
21
21
25
26
27
28
28
32
34
34
35
36
36
36
37
37
37
37
43
44
45
45
46
48
48
48
48
53
53
55
55
55
55
56
57
57
57
57
57
57
59
60
62
62
63
65
65
65
67
69
69
71
71
71
71
72
73
73
73
74
74
76
76
77
79
88
88
88
90
91
92
92
92
93
93
93
93
93
93
93
93
93
95
97
97
97
97
97
98
101
106
107
108
108
115
117
117
121
123
123
124
125
125
126
126
128
129
129
130
131
134
134
135
135
135
137
138
139
142
144
146
151
152
153
153
154
154
154
155
155
155
155
164
164
165
166
166
168
168
168
168
169
171
171
172
172
172
172
173
174
174
175
175
175
175
175
175
175
175
178
185
185
186
186
187
187
189
189
189
190
191
191
192
192
196
196
196
203
203
204
204
206
206
208
210
210
211
211
211
211
211
211
211
213
215
216
217
218
221
221
221
222
228
228
231
231
235
235
236
238
238
238
241
241
245
245
248
248
250
259
259
260
262
264
274
276
278
279
280
280
280
287
288
288
289
289
290
291
291
291
292
300
300
303
304
307
307
309
311
318
320
320
321
322
324
324
325
325
329
329
329
329
329
334
336
338
346
347
348
349
349
354
355
357
358
358
361
361
362
363
366
366
367
367
369
374
374
382
385
385
387
394
396
397
398
400
400
400
400
400
404
404
404
404
415
415
418
436
439
445
448
450
465
467
473
475
492
495
500
503
526
544
554
555
571
576
576
598
615
623
624
638
643
643
666
681
690
691
705
709
709
731
748
756
757
771
776
776
1052
1055
1056
1
4
4
4
4
4
4
4
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
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
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
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
10
10
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
13
13
13
13
13
13
13
13
13
13
16
17
17
21
22
22
26
27
27
28
28
28
29
29
32
34
34
35
35
35
36
37
37
37
37
38
38
38
38
38
44
45
47
47
49
49
49
49
52
53
53
54
54
56
57
57
57
58
60
61
61
64
66
66
66
72
72
72
72
74
75
76
77
78
85
89
89
89
90
90
90
91
93
93
93
93
94
94
94
95
96
98
98
98
98
99
102
108
109
115
115
115
115
118
118
119
124
124
125
125
126
126
127
130
130
131
132
135
135
136
136
138
139
143
145
145
145
146
146
147
147
152
153
153
153
154
154
155
155
155
155
156
156
156
156
165
166
167
169
169
169
169
170
170
171
171
172
172
173
173
173
173
173
175
175
175
175
176
176
179
187
187
190
190
190
192
193
194
194
197
203
204
205
205
207
207
208
208
208
209
211
211
211
214
215
217
217
218
219
222
222
223
230
232
232
236
237
239
242
242
249
249
260
261
265
268
277
278
279
280
281
281
288
289
289
290
291
292
292
293
298
301
301
304
308
308
308
310
321
321
322
325
325
326
326
328
330
330
330
330
330
336
337
347
349
350
355
356
356
358
359
359
362
362
363
364
367
367
368
368
370
375
375
383
386
388
397
398
399
401
401
401
401
401
405
405
405
405
416
416
419
437
440
446
449
460
463
466
468
474
476
493
496
501
504
527
545
555
556
572
577
577
599
616
624
625
639
644
644
667
682
691
692
706
710
710
732
749
757
758
772
777
777
1053
1056
1057
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
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
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
10
10
10
11
11
11
11
11
11
13
13
13
13
13
13
13
13
13
13
14
17
18
21
22
23
23
26
28
29
29
30
30
35
35
36
36
36
37
37
37
38
38
38
38
39
39
39
45
46
48
48
50
50
50
50
53
53
53
53
54
54
55
55
56
57
58
59
59
61
62
62
65
67
67
67
70
73
73
73
75
75
75
75
76
76
76
78
86
86
88
88
90
91
91
91
91
92
92
92
94
94
95
95
95
96
97
99
99
99
99
100
103
103
109
113
116
116
116
116
116
116
124
124
125
126
126
126
126
127
127
128
131
131
132
133
136
136
137
137
139
144
144
146
146
146
146
147
147
148
148
153
154
154
154
155
155
155
155
156
156
156
156
157
157
166
167
170
170
170
170
171
171
171
172
172
173
173
174
174
174
174
174
174
176
176
180
180
183
188
188
188
191
191
192
193
193
193
194
194
194
195
198
204
205
206
206
209
209
209
209
210
210
211
215
218
218
219
220
223
223
224
231
233
233
235
236
236
237
238
238
240
243
243
250
250
261
266
269
269
271
271
278
279
280
281
282
282
289
290
290
291
292
293
294
299
299
305
309
309
309
311
322
322
326
326
327
327
329
329
329
329
331
331
331
331
331
337
338
348
350
356
357
357
357
359
363
363
364
365
368
368
369
369
371
376
376
384
387
389
398
399
400
402
402
402
402
402
406
406
406
406
417
417
420
438
441
447
450
458
461
461
464
467
469
475
477
494
497
502
505
505
528
546
556
557
573
578
578
600
617
625
626
640
645
645
668
683
692
693
707
711
711
733
750
758
759
773
778
778
1054
1057
1058
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
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
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
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
13
13
13
13
13
13
15
16
16
17
19
21
22
23
27
29
29
29
31
31
37
37
37
38
39
39
39
40
40
40
46
47
49
50
50
50
50
51
51
51
53
53
54
54
55
55
55
55
56
56
56
57
57
57
57
58
59
60
62
63
63
66
67
67
68
68
71
71
73
73
74
75
76
76
76
76
77
77
89
89
89
91
92
92
92
93
93
93
93
93
93
93
93
93
95
95
96
96
96
96
97
98
100
100
100
100
100
104
104
110
114
116
116
117
117
126
126
127
127
127
128
128
128
129
132
132
133
134
137
137
138
138
138
145
145
147
147
147
147
147
147
149
149
154
155
155
156
156
156
157
157
157
158
158
167
168
171
171
171
171
172
173
173
173
173
174
174
174
175
175
175
175
175
175
175
175
177
177
179
181
181
181
181
184
188
189
189
189
191
192
192
193
194
194
194
195
195
196
199
203
204
205
206
210
210
210
211
211
211
211
211
211
211
211
216
219
220
220
221
221
224
224
225
233
233
233
233
234
236
236
237
237
238
239
239
241
244
244
250
250
251
259
267
272
272
272
279
279
280
281
282
283
283
290
291
291
292
293
294
295
306
309
310
310
311
312
321
323
327
327
328
328
330
330
330
332
332
332
332
332
337
338
339
349
351
357
358
360
364
364
365
366
369
369
370
370
372
377
377
385
388
390
399
400
401
403
403
403
403
403
407
407
407
407
418
421
439
442
448
451
462
465
468
470
475
477
478
495
498
502
506
506
529
547
557
558
574
579
579
601
618
626
627
641
646
646
669
684
693
694
708
712
712
734
751
759
760
774
779
779
1055
1058
1059
1
1
1
1
1
1
1
1
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
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
8
8
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
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
12
12
13
13
16
16
16
17
20
22
23
27
27
27
29
30
30
30
37
38
38
39
40
40
41
47
48
50
51
51
52
52
52
55
55
56
58
58
58
58
58
58
59
60
61
63
64
64
67
68
69
69
73
74
74
75
75
76
77
77
79
89
92
92
94
94
94
94
94
94
94
96
96
97
97
97
98
99
101
101
101
101
105
105
108
110
111
116
117
118
118
118
124
124
126
128
128
128
129
129
130
133
133
134
135
138
138
139
139
139
139
145
145
145
146
147
147
148
148
148
155
156
156
156
157
157
157
158
166
168
168
169
172
172
172
172
173
174
176
176
176
176
176
176
176
176
176
176
176
178
178
181
181
182
182
184
184
188
188
188
190
191
192
192
193
193
193
194
194
195
200
203
205
206
210
212
212
212
212
212
212
217
220
222
223
225
225
226
234
234
235
238
238
239
240
240
242
245
245
251
252
260
262
268
272
280
281
282
283
284
284
291
291
292
292
293
293
294
295
296
301
307
311
311
312
313
322
322
324
328
328
329
329
330
333
333
333
333
333
339
340
349
350
351
352
358
359
359
361
365
365
366
367
370
370
371
371
373
378
378
386
389
391
400
401
402
404
404
404
404
404
408
408
408
408
419
422
440
443
449
452
463
466
469
471
478
479
496
499
507
507
530
548
558
559
575
580
580
602
619
627
628
642
647
647
670
685
694
695
709
713
713
735
752
760
761
775
780
780
1056
1059
1060
1
1
1
1
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
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
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
8
8
8
8
8
8
8
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
12
12
17
21
21
23
24
30
31
31
31
34
37
37
38
38
38
39
39
40
41
42
48
49
51
51
52
52
53
53
53
56
56
58
58
60
61
62
64
65
65
68
69
70
73
73
73
76
77
77
77
78
79
79
80
91
93
94
94
95
97
97
98
98
98
99
102
102
102
102
106
106
109
110
111
116
116
116
117
118
118
125
126
126
126
127
129
130
130
134
134
135
136
139
139
139
139
139
140
140
140
147
148
149
149
149
155
156
156
157
157
157
158
167
168
169
169
171
173
173
173
173
174
176
176
176
177
177
177
177
179
179
181
181
182
183
183
184
189
189
189
191
191
191
191
194
195
195
195
195
196
201
204
206
207
209
212
212
217
218
220
221
221
223
223
224
226
226
227
234
235
235
239
239
240
241
241
243
246
246
252
260
262
262
263
269
281
282
284
285
285
292
292
293
293
293
294
294
296
297
301
308
312
312
313
322
322
322
323
325
329
329
330
330
334
334
334
334
334
340
350
351
351
352
359
359
360
362
366
366
367
368
371
371
372
372
374
379
379
387
390
392
401
402
403
405
405
405
405
405
409
409
409
409
420
423
441
444
450
453
464
467
470
472
479
480
497
500
508
508
531
549
559
560
576
581
581
603
620
628
629
643
648
648
671
686
695
696
710
714
714
736
753
761
762
776
781
781
1057
1060
1061
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
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
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
7
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
10
10
11
11
12
12
12
12
12
13
13
18
22
22
24
29
31
32
32
32
32
32
34
35
37
37
38
39
39
40
40
41
41
43
49
50
52
52
54
54
54
55
55
56
56
56
57
61
61
62
62
63
64
65
65
66
66
67
69
71
71
74
74
76
76
76
77
77
77
78
79
79
80
92
92
92
92
93
93
94
96
97
98
98
99
99
99
103
103
103
103
107
107
109
110
114
117
118
124
126
127
127
128
130
131
135
135
136
137
139
140
140
140
141
141
147
148
149
150
150
150
150
155
155
156
157
158
158
159
167
168
170
172
172
173
173
174
174
174
174
174
174
175
178
178
178
178
180
180
181
182
183
189
190
190
190
192
192
194
194
194
195
195
195
196
196
196
196
202
205
207
210
210
210
210
211
211
215
217
218
219
220
222
222
224
224
224
227
227
228
235
239
240
241
242
242
244
247
247
250
262
263
270
280
282
285
286
292
293
293
293
294
294
294
295
296
297
297
298
309
309
313
313
322
323
326
330
330
331
331
335
335
335
335
335
338
350
351
352
360
361
363
367
367
368
369
372
372
373
373
375
380
380
388
391
393
402
403
404
406
406
406
406
406
410
410
410
410
421
424
442
445
451
454
465
468
471
473
480
481
498
501
509
509
532
550
560
561
577
582
582
604
621
629
630
644
649
649
672
687
696
697
711
715
715
737
754
762
763
777
782
782
1058
1061
1062
4
4
4
4
4
4
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
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
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
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
12
12
12
13
13
13
14
14
19
23
24
26
28
30
32
32
33
33
35
35
36
37
38
38
38
39
39
40
41
41
41
42
44
50
50
51
52
53
55
56
56
56
56
56
57
57
57
58
58
58
58
58
64
65
66
66
67
67
67
67
68
70
72
72
72
74
75
77
77
78
78
79
80
93
93
93
94
94
94
94
94
94
94
94
95
96
97
97
98
99
99
100
100
100
100
104
104
104
104
108
108
114
116
118
119
125
126
126
127
127
128
128
128
131
132
136
136
137
138
141
141
142
142
148
149
150
150
151
151
153
154
154
155
155
156
156
156
157
158
159
159
160
171
174
174
174
174
175
175
175
175
175
175
175
176
176
176
176
176
179
179
179
179
181
181
181
182
183
188
190
190
191
192
193
195
195
195
196
196
196
197
197
203
207
209
211
211
211
211
212
212
212
212
212
212
212
212
218
220
221
222
223
224
225
225
228
228
229
233
233
235
239
241
243
243
245
248
248
250
250
251
271
279
280
281
283
286
287
295
296
297
298
298
299
309
310
310
311
314
314
327
331
331
332
332
336
336
336
336
336
337
338
339
353
361
362
364
368
368
369
370
373
373
374
374
376
381
381
389
392
394
403
404
405
407
407
407
407
407
411
411
411
411
422
425
443
446
455
466
469
472
474
481
482
499
502
502
510
510
533
551
561
562
578
583
583
605
622
630
631
645
650
650
673
688
697
698
712
716
716
738
755
763
764
778
783
783
1059
1063
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
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
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
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
11
11
13
13
14
14
15
15
20
24
27
28
29
30
32
33
33
34
34
34
36
36
36
37
37
37
39
39
40
40
41
41
42
42
42
43
45
50
50
51
51
52
54
56
57
57
59
59
59
59
59
59
59
65
66
67
67
67
68
68
68
69
70
72
73
74
75
75
76
76
80
81
92
92
93
95
95
95
95
95
95
95
95
96
96
97
98
98
98
99
100
100
101
101
101
101
105
105
105
105
109
109
115
116
117
120
127
127
127
128
128
128
128
129
129
132
133
137
137
138
139
142
142
143
143
150
150
151
152
152
154
154
154
155
155
156
157
157
158
158
159
159
160
160
161
172
175
176
176
176
176
177
177
177
177
177
177
177
180
180
180
180
181
182
182
183
184
188
189
192
193
193
194
194
197
198
198
204
210
211
211
212
213
213
213
213
213
213
219
221
222
223
225
226
226
227
229
229
230
233
233
234
234
240
242
244
244
246
249
250
251
252
272
279
281
282
284
287
288
296
297
298
299
299
300
310
311
311
312
315
315
328
332
332
333
333
337
337
337
337
337
337
339
340
354
362
363
365
369
369
370
371
374
374
375
375
377
382
390
393
395
404
405
406
408
408
408
408
408
412
412
412
412
423
426
433
435
437
439
444
447
448
456
467
470
472
474
475
482
483
494
494
497
497
499
500
500
503
503
511
511
534
552
562
563
579
584
584
606
623
631
632
646
651
674
689
698
699
713
717
717
739
756
764
765
779
784
1060
1064
1
1
1
1
1
1
1
1
2
2
2
2
4
4
4
4
4
4
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
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
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
11
11
12
12
12
12
13
13
13
14
14
15
15
15
15
18
18
21
25
29
30
32
33
34
34
37
38
40
40
40
41
41
41
42
42
43
43
43
46
52
52
53
54
55
56
57
58
59
59
59
59
59
59
66
67
68
68
69
69
69
70
73
74
74
74
74
77
77
78
81
82
89
89
92
93
95
95
95
95
95
95
96
97
99
99
100
101
101
102
102
102
102
106
106
106
106
110
110
111
115
115
116
118
119
119
119
119
121
128
129
129
129
130
130
133
134
138
138
139
139
140
143
143
144
144
147
147
150
151
151
152
157
158
158
158
158
159
159
159
160
160
161
161
162
169
172
173
174
177
177
177
177
177
177
177
177
177
177
178
179
181
181
181
181
181
182
183
184
184
188
189
190
192
192
192
195
196
198
205
210
212
213
213
213
213
213
213
213
220
222
226
227
228
230
230
231
235
235
239
241
245
245
247
250
252
253
260
272
272
273
282
283
285
288
289
294
297
298
299
299
300
300
301
312
312
313
316
322
329
330
330
333
333
334
334
338
338
338
338
338
340
341
352
355
357
363
364
366
370
370
371
372
375
375
376
376
378
383
394
396
405
407
409
409
409
409
409
413
413
413
413
424
427
436
440
445
448
449
457
468
471
475
476
483
484
495
498
501
504
504
512
512
535
553
563
564
580
585
607
624
632
633
647
652
675
690
699
700
714
718
740
757
765
766
780
785
1061
1065
1
1
2
2
2
2
2
2
2
2
3
3
3
3
4
4
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
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
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
10
10
10
10
10
11
12
12
12
12
12
12
13
13
15
15
15
15
15
18
18
22
26
31
34
35
35
36
37
38
39
40
41
41
41
41
42
43
43
44
44
47
48
52
53
53
54
55
55
56
56
57
57
57
58
60
60
60
60
67
68
69
69
70
70
70
72
74
75
75
75
77
77
77
78
78
78
78
80
82
83
86
90
90
93
93
93
93
94
96
96
96
96
97
98
100
100
102
102
103
103
103
103
107
107
107
107
109
111
111
111
112
115
115
117
118
118
119
120
120
120
120
122
130
130
130
134
135
139
139
140
140
140
141
144
144
145
145
146
148
148
152
152
154
158
158
159
159
160
161
161
162
162
163
167
169
170
173
173
174
175
175
175
176
176
178
178
178
178
178
178
178
178
179
180
182
182
182
182
183
184
185
189
190
190
191
193
193
195
195
195
195
196
196
196
206
211
211
211
211
214
214
214
214
214
218
220
221
223
224
224
228
229
231
231
231
232
235
236
236
239
240
246
246
248
251
253
261
263
269
273
273
274
283
286
289
290
292
294
295
298
299
300
300
301
301
301
301
302
313
313
317
323
323
329
330
331
331
334
334
335
335
339
339
339
339
339
341
350
352
353
356
358
359
359
364
365
367
371
371
372
373
376
376
377
377
379
384
395
397
406
408
410
410
410
410
410
414
414
414
414
425
428
437
441
446
449
450
450
458
469
472
476
477
484
485
496
499
502
505
505
513
513
536
554
564
565
581
586
608
625
633
634
648
653
676
691
700
701
715
719
741
758
766
767
781
786
1062
1066
1
1
1
1
1
2
2
2
2
2
2
2
2
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
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
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
12
12
13
13
16
21
23
25
27
29
30
32
32
35
35
36
36
36
37
37
38
38
39
39
40
40
41
41
42
42
42
42
45
48
48
49
51
52
53
54
54
55
55
57
57
58
58
58
58
58
58
58
59
60
60
60
60
61
61
68
69
70
70
71
71
73
73
75
76
78
78
78
79
79
80
80
81
83
84
87
90
90
91
94
94
94
94
94
95
96
96
96
96
97
97
98
99
101
103
103
104
104
104
104
108
108
110
111
112
112
112
119
119
119
119
119
119
121
121
121
121
127
135
136
140
140
140
140
140
141
141
142
145
146
147
148
148
148
149
150
150
153
153
153
154
155
159
159
160
160
163
164
168
169
170
175
176
176
176
176
176
177
177
177
177
178
178
178
178
179
179
179
179
179
179
180
180
183
183
184
184
185
186
189
191
191
191
191
192
195
196
196
196
196
197
197
204
207
208
212
212
212
212
212
212
214
214
214
214
215
215
219
220
221
221
222
222
223
224
225
225
229
230
231
232
232
232
233
234
235
236
237
237
240
241
247
247
249
252
261
263
263
264
270
273
273
274
275
287
287
290
290
291
293
294
295
299
300
301
302
302
302
302
302
302
303
314
318
323
323
323
324
330
331
331
331
332
335
335
336
336
340
340
340
351
352
353
357
360
360
360
360
365
366
368
372
372
373
374
377
378
380
385
396
398
407
409
411
411
411
411
411
415
415
426
429
438
442
447
450
451
451
451
451
459
470
473
477
478
485
486
497
500
503
506
506
514
514
537
555
565
566
582
587
609
626
634
635
649
654
677
692
701
702
716
720
742
759
767
768
782
787
1061
1063
1067
2
2
2
2
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
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
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
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
11
12
13
14
14
17
17
21
21
22
24
25
27
28
30
31
31
31
33
35
35
35
36
36
36
37
37
38
38
39
40
41
42
42
43
43
43
43
49
49
50
50
53
53
53
53
53
55
56
56
56
56
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
61
61
62
62
69
70
71
71
72
72
75
75
75
75
76
76
77
78
78
78
78
79
79
79
79
79
79
80
80
81
85
90
90
91
92
94
94
94
95
95
96
96
96
96
96
96
97
97
98
98
99
100
102
104
104
105
105
105
105
109
109
110
111
113
119
119
119
120
120
120
122
122
127
128
128
136
137
140
141
141
141
142
143
146
147
148
148
149
149
149
149
150
151
153
153
154
154
154
155
158
160
160
161
161
164
165
168
169
174
174
176
176
177
177
177
177
178
178
178
178
178
178
178
179
179
180
180
180
180
180
180
180
181
184
184
184
185
186
187
189
191
192
193
193
193
193
193
194
196
196
196
196
196
196
196
197
197
197
197
197
197
197
198
203
204
205
207
207
208
208
210
212
212
212
213
213
213
214
214
214
214
214
215
215
216
216
218
219
221
221
222
225
226
226
230
231
232
233
233
233
233
234
236
236
236
238
239
239
241
242
248
248
250
253
263
264
273
273
274
275
276
285
285
290
290
291
291
291
291
292
293
294
300
301
302
302
302
303
303
303
303
304
315
319
323
324
331
331
332
332
333
336
336
337
337
341
341
341
351
352
358
360
360
361
361
366
367
369
373
373
374
375
378
379
381
386
397
399
408
410
412
412
412
412
412
416
416
430
439
443
451
451
451
452
452
460
471
474
478
479
487
498
501
504
507
507
515
538
556
566
567
583
588
610
627
635
636
650
655
678
693
702
703
717
721
743
760
768
769
783
788
1061
1062
1064
1068
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
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
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
10
10
11
12
12
12
13
13
14
14
15
17
18
22
23
24
25
26
29
31
31
34
34
36
36
37
37
38
39
40
41
41
41
42
43
43
43
44
44
44
44
44
44
50
51
54
54
54
56
56
57
57
57
57
59
59
59
59
59
60
60
60
60
60
60
61
61
61
61
62
62
70
70
72
73
73
75
76
76
76
77
77
78
78
79
79
79
79
80
80
80
80
81
86
91
92
95
95
95
95
95
96
96
96
97
97
97
97
98
98
100
100
101
103
105
105
106
106
106
106
110
110
114
115
120
120
120
121
121
122
123
128
128
128
129
130
137
138
142
142
143
144
147
148
149
149
150
152
152
154
154
155
155
155
158
159
159
161
161
161
162
162
162
165
166
175
175
175
177
177
177
178
178
178
178
179
179
179
179
179
180
180
181
181
181
181
182
185
185
185
186
187
192
193
193
194
194
194
195
196
197
197
197
197
197
197
198
198
198
198
198
199
205
206
207
208
209
209
213
213
213
213
213
214
214
214
214
215
215
215
216
216
222
223
224
226
227
227
227
231
232
234
234
234
235
237
237
239
239
240
242
243
249
251
253
254
274
275
277
283
286
291
292
292
292
293
301
302
303
304
304
304
305
313
316
320
332
333
333
337
337
338
338
341
342
342
342
359
361
362
362
367
368
370
374
374
375
376
379
380
382
387
398
400
409
411
413
413
413
413
413
417
417
417
431
440
444
452
452
453
453
461
472
475
479
480
488
499
502
505
508
508
516
539
557
567
568
584
589
611
628
636
637
651
656
679
694
703
704
718
722
744
761
769
770
784
789
1063
1065
1069
3
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
6
6
6
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
9
9
9
10
11
11
12
12
12
13
13
14
15
16
18
18
19
23
25
26
27
29
30
32
32
32
37
37
37
37
38
38
38
38
39
40
42
42
42
43
43
44
44
44
44
45
45
45
45
45
51
52
53
55
55
55
55
57
57
58
58
59
59
59
60
60
60
60
60
61
61
61
61
61
62
62
62
62
70
71
71
73
73
74
74
76
76
76
76
76
77
78
78
78
79
79
79
80
80
80
81
81
81
87
92
93
95
95
95
96
96
96
96
97
97
98
98
98
98
100
101
101
102
104
106
106
107
107
107
111
111
115
119
120
121
121
122
123
124
129
129
130
130
131
138
139
143
144
145
148
149
150
150
150
155
155
155
155
156
156
156
156
156
158
159
160
160
161
162
162
162
163
163
163
166
167
173
175
176
177
177
177
178
178
178
178
179
179
179
180
180
180
182
182
182
182
182
183
184
184
186
186
186
188
191
193
194
194
194
194
194
195
196
196
197
197
198
198
198
198
199
199
199
199
206
208
209
210
210
211
212
213
213
213
214
214
214
214
215
215
215
216
216
216
223
225
227
227
228
228
233
235
235
235
236
236
238
238
240
241
242
244
248
248
250
251
251
252
253
254
255
275
278
283
284
287
292
293
293
293
294
302
302
303
304
305
306
313
314
315
315
317
317
317
321
333
334
338
338
339
341
342
343
343
343
360
360
362
368
369
371
375
376
377
380
381
381
381
383
388
390
394
399
401
405
408
410
412
414
414
414
414
418
418
418
420
432
441
445
451
453
453
462
473
476
480
481
489
500
503
506
509
509
517
540
558
568
569
584
584
585
586
586
590
612
629
637
638
650
650
652
653
653
657
680
695
704
705
717
717
719
719
719
723
745
762
770
771
783
783
785
790
1064
1066
1070
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
15
15
17
19
20
27
30
30
31
33
35
36
38
38
38
38
38
39
39
40
41
42
42
43
43
44
45
46
46
46
46
46
49
52
53
54
56
56
58
59
59
59
60
60
60
60
61
61
61
61
62
62
62
62
63
63
71
72
74
74
75
75
76
77
77
77
77
78
78
79
79
80
80
81
82
88
90
94
95
96
96
96
96
97
97
97
98
99
99
101
102
103
105
107
107
108
108
108
112
112
116
119
120
120
122
123
124
130
130
131
131
139
140
144
145
146
148
148
149
150
151
153
154
156
156
156
157
157
157
159
159
160
160
161
161
163
164
164
164
167
168
174
176
177
177
177
178
178
178
178
179
179
179
180
181
183
183
183
183
184
184
185
187
187
189
189
192
194
195
195
195
195
196
196
197
198
199
200
200
210
211
212
213
213
214
214
214
214
215
215
215
216
217
221
221
228
229
229
232
234
236
236
236
237
237
241
242
243
245
249
251
252
253
254
256
273
279
284
288
293
294
294
294
295
302
303
303
304
306
307
314
316
318
318
322
331
335
339
339
340
342
344
344
344
360
361
361
369
370
372
376
377
378
381
382
382
384
389
395
400
402
409
411
413
415
415
415
415
419
419
421
433
442
446
449
451
452
454
463
474
477
481
482
490
501
504
507
510
510
518
541
559
569
570
585
586
587
591
613
630
638
639
651
653
654
658
681
696
705
706
718
720
720
724
746
763
771
772
784
786
791
1065
1067
1071
1
1
1
1
1
1
1
1
1
1
1
1
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
2
2
2
2
2
2
2
2
4
4
4
4
4
5
6
6
6
6
6
6
6
6
6
6
6
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
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
14
14
14
15
20
21
25
30
32
32
34
35
36
36
38
39
39
39
39
40
40
40
41
41
42
43
43
44
45
46
46
47
47
47
47
49
53
53
54
55
56
57
57
59
59
59
60
60
61
61
61
62
62
62
63
63
63
64
64
73
75
76
76
76
78
78
78
78
80
80
81
81
82
83
89
90
90
91
95
96
96
97
97
97
98
99
100
100
103
104
106
106
106
107
107
107
107
108
108
109
109
109
113
113
117
119
121
121
122
124
129
131
132
140
141
142
142
144
144
145
145
145
146
147
148
148
149
150
151
152
153
156
157
157
158
158
158
158
159
161
161
162
164
164
165
165
165
168
169
177
177
177
178
178
179
179
179
180
180
180
181
181
181
182
182
182
182
182
184
184
184
184
184
185
185
186
188
188
189
190
190
191
194
196
196
196
196
198
198
199
200
201
208
212
213
213
214
214
215
215
215
215
216
217
218
219
219
222
222
225
229
230
231
232
234
235
236
237
237
237
238
238
239
240
242
242
244
244
250
252
253
254
257
273
273
274
280
289
294
295
295
295
296
302
304
304
305
307
308
317
319
319
323
331
331
332
336
338
338
339
339
339
339
340
340
341
345
345
345
360
362
362
370
371
373
374
374
376
376
377
377
377
378
379
382
383
383
385
390
396
401
403
410
412
413
413
414
414
414
414
414
416
416
416
416
420
420
422
434
443
447
451
453
455
464
475
478
482
483
491
502
505
508
511
511
519
542
560
570
571
586
587
588
592
614
631
639
640
652
654
655
659
682
697
706
707
719
721
721
725
747
764
772
773
785
787
792
1066
1068
1072
1
1
1
1
1
1
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
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
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
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
8
8
8
10
10
10
11
11
11
12
13
13
15
16
21
22
23
24
26
28
31
31
33
33
34
34
36
36
36
37
38
38
39
40
40
40
41
41
41
42
42
42
43
43
44
46
46
47
47
47
48
48
48
49
52
54
54
55
55
56
56
57
58
58
59
59
60
61
62
62
63
63
63
64
64
65
65
74
74
76
76
76
77
77
77
79
81
81
81
81
81
82
82
82
83
84
87
87
89
90
90
91
92
94
95
95
97
98
99
100
101
101
104
105
107
107
108
108
110
110
112
112
112
114
114
117
117
118
119
120
120
120
122
122
122
123
132
141
141
141
141
142
143
145
146
146
147
147
148
149
149
149
150
151
152
152
152
154
154
155
156
158
159
159
159
160
160
161
162
164
165
165
165
166
166
170
170
170
170
174
175
175
177
177
177
178
179
180
180
180
181
181
182
182
183
183
183
184
184
184
185
185
185
186
187
189
189
190
191
191
191
191
192
192
194
194
195
196
197
197
199
199
199
200
200
201
202
206
207
209
211
212
213
213
213
214
215
216
216
217
218
219
219
221
222
223
223
224
226
230
231
232
235
235
236
237
238
238
238
239
239
240
241
243
245
245
251
254
255
258
264
264
264
270
270
272
273
274
275
281
290
295
295
295
295
296
296
297
300
300
302
303
303
305
306
308
309
318
320
324
324
324
324
330
330
331
332
332
333
337
339
340
340
342
346
346
346
353
353
353
358
358
360
361
363
363
372
374
375
377
378
378
383
384
384
391
397
404
411
413
414
415
415
417
417
421
421
423
435
444
448
449
451
452
454
456
465
476
479
484
492
503
506
509
512
520
543
561
572
587
589
593
615
632
641
653
656
660
683
698
708
720
722
726
748
765
774
786
793
1067
1073
1
1
2
2
2
2
2
2
2
2
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
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
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
9
9
9
9
9
10
10
11
12
12
14
14
16
17
22
22
23
26
27
31
31
33
34
34
34
35
36
36
37
37
38
38
38
39
39
39
40
41
41
41
41
41
41
42
42
42
42
43
43
43
43
46
47
47
47
47
48
48
48
49
49
49
49
52
53
53
55
55
55
56
56
57
57
57
58
58
58
58
59
59
59
59
60
60
60
60
60
61
62
62
63
63
63
63
64
64
64
65
65
66
66
71
75
75
76
76
77
77
77
78
78
78
78
78
78
79
79
79
80
81
82
82
82
82
83
83
83
84
85
88
90
90
91
92
92
92
93
95
95
95
95
96
96
96
96
96
96
96
98
99
99
99
100
101
101
102
102
105
106
108
108
109
109
110
111
111
112
113
113
115
115
118
119
119
119
120
121
122
122
122
123
123
123
123
124
127
128
130
131
133
140
141
142
142
142
143
144
146
147
147
148
148
148
149
150
150
150
151
152
152
153
153
154
155
155
156
157
158
159
159
159
159
160
160
160
160
161
161
164
165
165
166
166
166
167
167
168
170
171
171
171
175
175
176
176
176
177
177
177
177
178
178
178
178
178
179
180
180
181
181
181
181
182
182
183
183
184
184
184
185
185
186
186
186
187
188
189
190
190
191
192
192
192
193
193
194
194
195
195
195
196
196
196
196
197
197
197
198
200
200
200
201
201
202
203
205
209
210
213
213
213
213
214
214
214
214
214
214
214
214
214
216
216
217
217
217
217
218
219
219
220
221
221
222
222
224
224
224
225
226
230
231
232
232
235
236
236
236
237
238
238
239
239
239
240
240
241
241
242
244
245
246
246
252
254
255
256
259
261
264
265
265
271
273
273
275
275
275
276
282
284
291
293
295
296
296
296
297
297
298
301
302
302
304
305
305
306
307
309
310
314
319
321
323
324
325
325
325
331
331
331
333
333
333
334
338
340
341
341
342
343
347
347
347
351
353
354
354
359
360
360
362
364
364
373
375
376
378
379
379
384
385
385
392
398
405
412
414
415
416
416
418
418
422
422
424
436
445
449
450
451
451
453
455
457
466
477
480
485
493
504
507
510
513
521
544
562
573
588
590
594
616
633
642
654
657
661
684
699
709
721
723
727
749
766
775
787
794
1068
1074
2
2
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
7
8
8
8
8
8
9
9
10
10
12
13
14
15
15
15
17
18
23
24
25
28
34
35
35
36
38
39
39
40
40
41
42
42
42
42
43
43
43
44
44
47
48
48
48
48
49
49
50
50
50
54
54
56
56
56
57
57
57
58
58
58
58
59
60
60
60
61
61
61
62
62
63
63
63
63
64
64
64
64
65
65
66
66
67
67
71
72
74
75
76
76
77
77
78
78
79
79
79
79
80
80
81
81
82
83
83
83
84
84
84
86
90
91
92
93
93
94
94
95
95
96
96
96
96
97
97
97
98
99
99
99
100
100
100
101
102
102
103
103
106
109
109
110
110
111
112
112
114
116
116
120
120
122
122
123
123
124
124
124
124
125
128
129
131
131
132
133
134
141
143
143
145
147
148
148
149
150
151
151
152
153
154
154
156
158
159
159
160
160
160
161
161
161
162
165
166
166
167
167
168
168
169
172
172
174
175
175
176
176
176
178
178
179
179
179
180
180
181
181
181
182
182
182
182
184
184
185
185
185
186
187
187
187
188
189
191
191
192
192
193
193
193
194
194
195
195
196
197
197
198
198
198
199
199
200
201
201
201
202
202
204
208
211
212
213
213
214
214
214
214
215
215
215
215
216
217
217
217
217
218
218
218
218
220
221
222
222
223
225
225
226
231
232
233
237
237
237
239
240
240
241
241
242
243
245
246
247
247
253
254
255
256
257
260
262
266
273
274
276
276
277
283
284
285
292
294
297
297
298
298
299
303
305
306
307
308
310
311
314
315
320
322
324
326
326
332
333
334
334
335
341
342
342
342
343
344
348
348
348
352
355
361
363
365
365
374
377
379
380
380
385
386
386
393
399
406
413
416
417
417
419
419
423
423
425
437
446
450
452
454
456
458
467
478
481
486
494
505
508
511
514
522
545
563
574
589
591
595
617
634
643
655
658
662
685
700
710
722
724
728
750
767
776
788
795
1069
1075
3
3
4
4
4
4
4
4
4
4
4
5
5
5
5
5
7
9
9
10
10
11
11
12
13
14
16
16
16
18
24
25
26
35
36
37
40
41
42
43
43
43
43
43
43
44
44
45
48
48
48
49
49
49
51
51
55
57
58
59
59
59
61
61
61
62
62
62
62
63
63
63
64
64
64
65
65
65
66
66
67
67
68
68
72
77
77
78
78
79
80
80
80
81
81
81
82
82
83
84
84
85
85
85
85
87
91
92
93
94
95
95
97
97
97
98
98
99
99
99
100
100
101
101
101
102
103
104
104
107
110
110
111
111
113
113
115
117
117
121
121
121
124
124
125
125
125
126
130
131
132
132
135
144
144
146
148
149
149
150
151
152
153
153
154
155
155
159
160
160
161
161
161
161
162
162
162
166
166
166
167
169
169
173
173
177
177
179
179
180
180
181
181
181
182
182
183
183
183
183
185
185
186
186
186
187
188
188
189
190
192
192
193
194
195
195
196
196
198
198
199
199
199
199
200
200
201
202
203
203
203
205
209
215
215
215
216
216
216
217
217
217
218
218
218
219
219
219
221
222
223
226
226
232
233
238
238
241
241
242
242
244
245
245
247
248
254
255
257
258
261
267
274
275
277
278
278
284
285
293
298
298
299
299
300
304
304
307
308
308
309
311
312
315
321
323
327
327
333
334
335
336
336
342
343
343
343
345
349
349
349
356
362
366
366
375
378
380
381
381
386
387
387
394
400
407
414
417
418
418
420
420
424
424
426
438
447
451
453
457
459
468
479
482
487
495
506
509
512
515
523
546
564
575
590
592
596
618
635
644
656
659
663
686
701
711
723
725
729
751
768
777
789
796
1070
1076
4
8
10
11
12
17
17
19
25
26
37
42
44
45
46
49
50
52
52
58
62
63
64
64
64
66
67
67
68
68
69
69
78
80
81
81
82
82
83
86
86
86
88
94
96
100
100
100
102
104
105
105
108
111
111
112
112
114
114
118
118
122
126
126
136
145
147
149
150
150
154
155
156
160
162
163
163
167
170
170
174
182
182
182
184
186
186
187
187
187
189
189
191
193
193
195
200
200
201
204
204
206
217
218
218
218
220
222
223
234
239
242
243
246
249
255
258
259
262
279
285
294
299
300
300
301
309
310
312
313
322
324
328
337
343
344
344
346
350
350
350
367
376
379
381
382
382
387
388
388
395
401
408
415
418
419
419
421
421
425
425
427
439
448
452
460
469
480
483
488
496
507
510
513
516
524
547
565
576
591
593
597
619
636
645
657
660
664
687
702
712
724
726
730
752
769
778
790
797
1071
1077
