1
1
1
1
2
1
2
2
2
3
2
3
3
3
4
1
1
1
1
3
4
4
4
5
1
1
2
2
4
5
5
5
5
6
2
2
3
3
5
6
6
6
6
6
6
7
3
4
6
6
7
7
7
7
7
7
7
8
1
4
5
5
5
5
6
7
8
8
8
8
8
8
9
9
1
3
5
6
6
6
7
7
7
8
8
9
9
10
10
1
6
6
6
7
7
7
7
8
10
10
11
11
1
2
5
7
7
7
7
8
8
8
9
11
11
12
12
1
6
7
7
7
7
7
8
8
9
9
9
10
13
13
1
7
7
8
9
9
10
10
11
14
14
1
7
7
7
9
10
10
11
11
15
15
1
7
7
7
7
7
7
8
8
8
10
10
11
12
16
16
7
7
8
8
9
9
9
10
10
11
13
17
17
1
9
9
10
11
11
14
18
18
1
1
7
7
7
10
10
10
15
19
19
1
7
7
7
7
7
7
7
8
8
8
10
11
16
20
20
1
2
7
7
8
8
9
9
9
10
10
11
17
21
21
1
3
7
7
9
9
10
10
11
11
18
22
22
2
4
7
7
7
7
7
8
8
8
10
10
10
11
19
23
23
3
7
7
7
7
7
8
8
9
9
9
10
10
11
20
24
24
7
7
7
7
7
7
8
9
9
10
10
10
10
11
11
21
25
25
1
7
7
8
8
9
9
9
10
10
10
10
10
11
11
11
22
26
26
1
2
9
9
10
11
11
11
11
11
12
23
25
25
27
27
2
3
9
10
10
10
10
10
11
12
13
24
26
26
28
28
3
4
8
8
9
10
10
11
12
13
13
14
25
27
27
29
1
8
8
8
9
9
9
9
10
11
11
12
13
14
14
26
28
28
30
2
8
10
10
10
10
10
11
12
12
13
13
13
14
27
29
31
1
3
11
11
11
11
14
14
15
28
30
32
2
4
11
11
11
12
12
13
14
15
16
29
31
33
3
11
11
11
11
11
12
12
14
14
14
14
16
16
17
17
26
30
32
34
11
11
11
12
12
13
13
13
13
16
17
17
17
17
27
31
33
33
35
35
11
11
11
13
13
14
14
14
14
14
16
17
28
32
34
34
36
36
11
12
14
14
16
17
18
29
33
35
35
37
37
1
11
12
12
13
13
14
17
18
19
34
36
36
38
38
12
12
13
13
13
14
16
19
20
35
39
39
1
1
13
14
14
14
16
17
20
36
40
40
1
13
13
13
14
15
15
17
19
37
41
41
12
12
12
14
14
14
16
19
19
19
20
38
42
42
1
13
13
13
14
15
16
16
20
20
20
39
43
43
1
14
15
16
17
17
40
44
44
1
1
13
13
14
14
15
16
19
41
45
45
1
1
12
12
13
14
14
14
14
19
19
19
20
42
46
46
2
13
13
13
14
15
16
16
20
20
20
43
47
47
1
3
13
13
14
14
15
16
17
17
19
44
48
48
2
4
12
12
14
14
14
15
16
19
19
19
20
45
49
49
3
13
13
13
13
13
13
14
14
14
15
16
16
20
20
20
46
50
50
13
13
14
14
14
14
15
16
17
17
19
19
19
19
19
47
51
51
1
12
14
14
15
15
15
16
19
20
20
20
20
20
20
20
48
52
52
1
2
15
16
16
17
17
20
21
21
49
51
51
53
53
2
3
13
15
16
16
16
16
22
22
50
52
52
54
54
3
4
13
14
16
16
16
17
17
22
23
23
51
53
53
55
1
13
13
13
16
16
17
17
18
18
22
22
23
52
54
54
56
2
13
14
16
16
16
17
17
17
18
18
19
22
23
23
53
55
57
1
3
17
17
18
18
18
23
24
54
56
58
2
4
17
18
18
18
18
23
23
24
25
25
55
57
59
3
18
18
18
18
18
19
22
23
25
26
26
26
26
52
56
58
60
17
17
17
18
18
18
19
19
19
20
23
23
26
26
53
57
59
59
61
61
17
18
19
20
20
20
21
21
22
25
54
58
60
60
62
62
18
18
21
22
22
23
25
26
55
59
61
61
63
63
1
17
19
20
21
23
23
25
25
26
27
60
62
62
64
64
1
19
19
20
20
21
22
25
26
26
27
28
61
65
65
1
19
21
21
23
26
28
29
62
66
66
1
20
21
21
22
24
28
29
63
67
67
1
19
20
20
21
21
21
21
23
25
25
28
29
64
68
68
19
19
21
22
22
26
26
28
28
29
65
69
69
1
22
23
23
29
29
66
70
70
1
1
20
20
21
23
24
28
67
71
71
1
20
20
20
21
21
21
21
21
25
25
28
29
68
72
72
1
2
19
19
21
22
22
26
26
28
28
29
69
73
73
1
3
20
21
22
23
23
28
29
29
70
74
74
2
4
20
20
21
21
21
21
23
24
25
25
28
29
71
75
75
3
19
19
20
20
21
21
22
22
26
26
28
28
29
72
76
76
20
20
20
21
21
21
21
22
23
23
28
28
28
29
29
73
77
77
1
19
21
21
22
22
23
24
26
26
28
28
28
29
29
29
74
78
78
1
2
22
23
23
29
29
29
29
29
30
75
77
77
79
79
2
3
23
23
23
23
23
24
25
30
31
76
78
78
80
80
3
4
20
20
23
23
24
24
26
31
31
32
77
79
79
81
1
20
20
20
23
23
23
23
25
25
25
25
31
32
32
78
80
80
82
2
20
23
24
24
24
25
26
26
26
26
31
31
32
79
81
83
1
3
25
25
25
26
26
32
32
32
33
80
82
84
2
4
25
25
25
26
31
32
32
33
34
78
81
82
83
85
3
24
24
24
25
25
26
26
26
26
32
32
34
34
35
35
79
83
84
86
24
25
25
25
27
27
31
34
35
35
35
35
80
84
85
85
87
87
24
24
25
25
26
28
28
28
28
31
32
34
34
35
81
85
86
86
88
88
25
25
26
27
31
32
35
35
36
86
87
87
89
89
1
26
26
27
27
32
36
37
87
88
88
90
90
1
26
26
27
27
27
34
37
38
88
91
91
1
27
27
27
27
28
34
35
37
38
89
92
92
1
27
27
27
28
28
29
35
37
38
90
93
93
1
26
26
26
27
29
29
37
37
38
91
94
94
1
1
2
27
27
27
27
30
34
34
38
38
92
95
95
1
3
27
27
27
27
28
28
35
35
37
93
96
96
2
4
26
26
27
27
28
29
29
37
37
37
38
94
97
97
3
27
27
27
27
27
27
27
27
27
29
34
34
38
38
38
95
98
98
27
27
27
27
28
28
28
30
35
35
37
37
37
37
37
96
99
99
1
26
27
28
28
29
29
29
37
38
38
38
38
38
38
38
97
100
100
1
2
29
29
30
35
35
38
39
39
98
99
99
101
101
2
3
27
29
29
29
30
30
40
40
99
100
100
102
102
3
4
27
28
29
30
30
30
34
40
41
41
100
101
101
103
1
27
27
27
30
30
30
31
34
35
40
40
41
101
102
102
104
2
27
28
29
30
30
31
31
32
34
34
35
40
41
41
102
103
105
1
3
31
31
32
35
35
41
42
103
104
106
2
4
30
32
32
32
32
41
41
42
43
43
104
105
107
3
31
32
32
32
33
35
40
41
43
44
44
44
44
101
104
106
108
30
30
30
31
32
32
32
33
33
34
41
41
44
44
102
105
107
107
109
109
30
32
33
34
34
34
35
35
40
43
103
106
108
108
110
110
32
32
35
40
40
41
43
44
104
107
109
109
111
111
1
30
33
34
35
41
41
43
43
44
45
108
110
110
112
112
1
33
33
34
34
35
36
43
44
44
45
46
109
113
113
1
33
35
35
37
44
46
47
110
114
114
1
34
35
35
36
38
46
47
111
115
115
1
33
34
34
35
35
35
35
37
43
43
46
47
112
116
116
33
33
35
36
36
44
44
46
46
47
113
117
117
1
36
37
37
47
47
114
118
118
1
1
34
34
35
37
38
46
115
119
119
1
34
34
34
35
35
35
35
35
43
43
46
47
116
120
120
1
2
33
33
35
36
36
44
44
46
46
47
117
121
121
1
3
34
35
36
37
37
46
47
47
118
122
122
2
4
34
34
35
35
35
35
37
38
43
43
46
47
119
123
123
3
33
33
34
34
35
35
36
36
44
44
46
46
47
120
124
124
34
34
34
35
35
35
35
36
37
37
46
46
46
47
47
121
125
125
1
33
35
35
36
36
37
38
44
44
46
46
46
47
47
47
122
126
126
1
2
36
37
37
47
47
47
47
47
48
123
125
125
127
127
2
3
37
37
37
37
37
38
43
48
49
124
126
126
128
128
3
4
34
34
37
37
38
38
44
49
49
50
125
127
127
129
1
34
34
34
37
37
37
37
39
39
43
43
49
50
50
126
128
128
130
2
34
37
38
38
38
40
40
43
44
44
49
49
50
127
129
131
1
3
39
39
39
44
50
50
51
128
130
132
2
4
39
39
39
40
44
49
50
51
52
129
131
133
3
38
38
38
39
39
40
40
50
50
50
50
52
52
53
53
126
130
132
134
38
39
39
39
40
40
41
41
49
52
53
53
53
53
127
131
133
133
135
135
38
39
39
40
42
42
42
42
49
50
52
53
128
132
134
134
136
136
38
40
41
50
52
53
54
129
133
135
135
137
137
1
39
39
40
41
41
49
53
54
55
134
136
136
138
138
40
40
40
41
41
50
52
55
56
135
139
139
1
1
41
41
41
42
52
53
56
136
140
140
1
41
41
41
41
42
43
53
55
137
141
141
40
40
40
41
41
42
43
55
55
55
56
138
142
142
1
41
41
41
41
43
52
52
56
56
56
139
143
143
1
42
42
44
53
53
140
144
144
1
1
41
41
41
41
43
43
55
141
145
145
1
1
40
40
41
41
41
41
42
55
55
55
56
142
146
146
2
41
41
41
41
43
52
52
56
56
56
143
147
147
1
3
41
41
41
42
42
44
53
53
55
144
148
148
2
4
40
40
41
41
42
43
43
55
55
55
56
145
149
149
3
41
41
41
41
41
41
41
41
41
43
52
52
56
56
56
146
150
150
41
41
41
41
42
42
42
44
53
53
55
55
55
55
55
147
151
151
1
40
41
42
42
43
43
43
55
56
56
56
56
56
56
56
148
152
152
1
2
43
43
44
53
53
56
57
57
149
151
151
153
153
2
3
41
43
43
43
44
44
58
58
150
152
152
154
154
3
4
41
42
43
44
44
44
52
58
59
59
151
153
153
155
1
41
41
41
44
44
44
45
52
53
58
58
59
152
154
154
156
2
41
42
43
44
44
45
45
46
52
52
53
58
59
59
153
155
157
1
3
45
45
46
53
53
59
60
154
156
158
2
4
44
46
46
46
46
59
59
60
61
61
155
157
159
3
45
46
46
46
47
53
58
59
61
62
62
62
62
152
156
158
160
44
44
44
45
46
46
46
47
47
48
59
59
62
62
153
157
159
159
161
161
44
46
47
48
48
48
49
49
58
61
154
158
160
160
162
162
46
46
49
58
58
59
61
62
155
159
161
161
163
163
1
44
47
48
49
59
59
61
61
62
63
160
162
162
164
164
1
47
47
48
48
49
50
61
62
62
63
64
161
165
165
1
47
49
49
51
62
64
65
162
166
166
1
48
49
49
50
52
64
65
163
167
167
1
47
48
48
49
49
49
49
51
61
61
64
65
164
168
168
47
47
49
50
50
62
62
64
64
65
165
169
169
1
50
51
51
65
65
166
170
170
1
1
48
48
49
51
52
64
167
171
171
1
48
48
48
49
49
49
49
49
61
61
64
65
168
172
172
1
2
47
47
49
50
50
62
62
64
64
65
169
173
173
1
3
48
49
50
51
51
64
65
65
170
174
174
2
4
48
48
49
49
49
49
51
52
61
61
64
65
171
175
175
3
47
47
48
48
49
49
50
50
62
62
64
64
65
172
176
176
48
48
48
49
49
49
49
50
51
51
64
64
64
65
65
173
177
177
1
47
49
49
50
50
51
52
62
62
64
64
64
65
65
65
174
178
178
1
2
50
51
51
65
65
65
65
65
66
175
177
177
179
179
2
3
51
51
51
51
51
52
61
66
67
176
178
178
180
180
3
4
48
48
51
51
52
52
62
67
67
68
177
179
179
181
1
48
48
48
51
51
51
51
53
53
61
61
67
68
68
178
180
180
182
2
48
51
52
52
52
54
54
61
62
62
67
67
68
179
181
183
1
3
53
53
53
62
62
68
68
68
69
180
182
184
2
4
53
53
53
54
67
68
68
69
70
178
181
182
183
185
3
52
52
52
53
53
54
54
54
54
68
68
70
70
71
71
179
183
184
186
52
53
53
53
55
55
67
70
71
71
71
71
180
184
185
185
187
187
52
52
53
53
54
56
56
56
56
67
68
70
70
71
181
185
186
186
188
188
53
53
54
55
67
68
71
71
72
186
187
187
189
189
1
54
54
55
55
68
72
73
187
188
188
190
190
1
54
54
55
55
55
70
73
74
188
191
191
1
55
55
55
55
56
70
71
73
74
189
192
192
1
55
55
55
56
56
57
71
73
74
190
193
193
1
54
54
54
55
57
57
73
73
74
191
194
194
1
1
2
55
55
55
55
58
70
70
74
74
192
195
195
1
3
55
55
55
55
56
56
71
71
73
193
196
196
2
4
54
54
55
55
56
57
57
73
73
73
74
194
197
197
3
55
55
55
55
55
55
55
55
55
57
70
70
74
74
74
195
198
198
55
55
55
55
56
56
56
58
71
71
73
73
73
73
73
196
199
199
1
54
55
56
56
57
57
57
73
74
74
74
74
74
74
74
197
200
200
1
2
57
57
58
71
71
74
75
75
198
199
199
201
201
2
3
55
57
57
57
58
58
76
76
199
200
200
202
202
3
4
55
56
57
58
58
58
70
76
77
77
200
201
201
203
1
55
55
55
58
58
58
59
70
71
76
76
77
201
202
202
204
2
55
56
57
58
58
59
59
60
70
70
71
76
77
77
202
203
205
1
3
59
59
60
71
71
77
78
203
204
206
2
4
58
60
60
60
60
77
77
78
79
79
204
205
207
3
59
60
60
60
61
71
76
77
79
80
80
80
80
201
204
206
208
58
58
58
59
60
60
60
61
61
62
77
77
80
80
202
205
207
207
209
209
58
60
61
62
62
62
63
63
76
79
203
206
208
208
210
210
60
60
63
76
76
77
79
80
204
207
209
209
211
211
1
58
61
62
63
77
77
79
79
80
81
208
210
210
212
212
1
61
61
62
62
63
64
79
80
80
81
82
209
213
213
1
61
63
63
65
80
82
83
210
214
214
1
62
63
63
64
66
82
83
211
215
215
1
61
62
62
63
63
63
63
65
79
79
82
83
212
216
216
61
61
63
64
64
80
80
82
82
83
213
217
217
1
64
65
65
83
83
214
218
218
1
1
62
62
63
65
66
82
215
219
219
1
62
62
62
63
63
63
63
63
79
79
82
83
216
220
220
1
2
61
61
63
64
64
80
80
82
82
83
217
221
221
1
3
62
63
64
65
65
82
83
83
218
222
222
2
4
62
62
63
63
63
63
65
66
79
79
82
83
219
223
223
3
61
61
62
62
63
63
64
64
80
80
82
82
83
220
224
224
62
62
62
63
63
63
63
64
65
65
82
82
82
83
83
221
225
225
1
61
63
63
64
64
65
66
80
80
82
82
82
83
83
83
222
226
226
1
2
64
65
65
83
83
83
83
83
84
223
225
225
227
227
2
3
65
65
65
65
65
66
79
84
85
224
226
226
228
228
3
4
62
62
65
65
66
66
80
85
85
86
225
227
227
229
1
62
62
62
65
65
65
65
67
67
79
79
85
86
86
226
228
228
230
2
62
65
66
66
66
68
68
79
80
80
85
85
86
227
229
231
1
3
67
67
67
80
86
86
87
228
230
232
2
4
67
67
67
68
80
85
86
87
88
229
231
233
3
66
66
66
67
67
68
68
86
86
86
86
88
88
89
89
226
230
232
234
66
67
67
67
68
68
69
69
85
88
89
89
89
89
227
231
233
233
235
235
66
67
67
68
70
70
70
70
85
86
88
89
228
232
234
234
236
236
66
68
69
86
88
89
90
229
233
235
235
237
237
1
67
67
68
69
69
85
89
90
91
234
236
236
238
238
68
68
68
69
69
86
88
91
92
235
239
239
1
1
69
69
69
70
88
89
92
236
240
240
1
69
69
69
69
70
71
89
91
237
241
241
68
68
68
69
69
70
71
91
91
91
92
238
242
242
1
69
69
69
69
71
88
88
92
92
92
239
243
243
1
70
70
72
89
89
240
244
244
1
1
69
69
69
69
71
71
91
241
245
245
1
1
68
68
69
69
69
69
70
91
91
91
92
242
246
246
2
69
69
69
69
71
88
88
92
92
92
243
247
247
1
3
69
69
69
70
70
72
89
89
91
244
248
248
2
4
68
68
69
69
70
71
71
91
91
91
92
245
249
249
3
69
69
69
69
69
69
69
69
69
71
88
88
92
92
92
246
250
250
69
69
69
69
70
70
70
72
89
89
91
91
91
91
91
247
251
251
1
68
69
70
70
71
71
71
91
92
92
92
92
92
92
92
248
252
252
1
2
71
71
72
89
89
92
93
93
249
251
251
253
253
2
3
69
71
71
71
72
72
94
94
250
252
252
254
254
3
4
69
70
71
72
72
72
88
94
95
95
251
253
253
255
1
69
69
69
72
72
72
73
88
89
94
94
95
252
254
254
256
2
69
70
71
72
72
73
73
74
88
88
89
94
95
95
253
255
257
1
3
73
73
74
89
89
95
96
254
256
258
2
4
72
74
74
74
74
95
95
96
97
97
255
257
259
3
73
74
74
74
75
89
94
95
97
98
98
98
98
252
256
258
260
72
72
72
73
74
74
74
75
75
76
95
95
98
98
253
257
259
259
261
261
72
74
75
76
76
76
77
77
94
97
254
258
260
260
262
262
74
74
77
94
94
95
97
98
255
259
261
261
263
263
1
72
75
76
77
95
95
97
97
98
99
260
262
262
264
264
1
75
75
76
76
77
78
97
98
98
99
100
261
265
265
1
75
77
77
79
98
100
101
262
266
266
1
76
77
77
78
80
100
101
263
267
267
1
75
76
76
77
77
77
77
79
97
97
100
101
264
268
268
75
75
77
78
78
98
98
100
100
101
265
269
269
1
78
79
79
101
101
266
270
270
1
1
76
76
77
79
80
100
267
271
271
1
76
76
76
77
77
77
77
77
97
97
100
101
268
272
272
1
2
75
75
77
78
78
98
98
100
100
101
269
273
273
1
3
76
77
78
79
79
100
101
101
270
274
274
2
4
76
76
77
77
77
77
79
80
97
97
100
101
271
275
275
3
75
75
76
76
77
77
78
78
98
98
100
100
101
272
276
276
76
76
76
77
77
77
77
78
79
79
100
100
100
101
101
273
277
277
1
75
77
77
78
78
79
80
98
98
100
100
100
101
101
101
274
278
278
1
2
78
79
79
101
101
101
101
101
102
275
277
277
279
279
2
3
79
79
79
79
79
80
97
102
103
276
278
278
280
280
3
4
76
76
79
79
80
80
98
103
103
104
277
279
279
281
1
76
76
76
79
79
79
79
81
81
97
97
103
104
104
278
280
280
282
2
76
79
80
80
80
82
82
97
98
98
103
103
104
279
281
283
1
3
81
81
81
98
98
104
104
104
105
280
282
284
2
4
81
81
81
82
103
104
104
105
106
278
281
282
283
285
3
80
80
80
81
81
82
82
82
82
104
104
106
106
107
107
279
283
284
286
80
81
81
81
83
83
103
106
107
107
107
107
280
284
285
285
287
287
80
80
81
81
82
84
84
84
84
103
104
106
106
107
281
285
286
286
288
288
81
81
82
83
103
104
107
107
108
286
287
287
289
289
1
82
82
83
83
104
108
109
287
288
288
290
290
1
82
82
83
83
83
106
109
110
288
291
291
1
83
83
83
83
84
106
107
109
110
289
292
292
1
83
83
83
84
84
85
107
109
110
290
293
293
1
82
82
82
83
85
85
109
109
110
291
294
294
1
1
2
83
83
83
83
86
106
106
110
110
292
295
295
1
3
83
83
83
83
84
84
107
107
109
293
296
296
2
4
82
82
83
83
84
85
85
109
109
109
110
294
297
297
3
83
83
83
83
83
83
83
83
83
85
106
106
110
110
110
295
298
298
83
83
83
83
84
84
84
86
107
107
109
109
109
109
109
296
299
299
1
82
83
84
84
85
85
85
109
110
110
110
110
110
110
110
297
300
300
1
2
85
85
86
107
107
110
111
111
298
299
299
301
301
2
3
83
85
85
85
86
86
112
112
299
300
300
302
302
3
4
83
84
85
86
86
86
106
112
113
113
300
301
301
303
1
83
83
83
86
86
86
87
106
107
112
112
113
301
302
302
304
2
83
84
85
86
86
87
87
88
106
106
107
112
113
113
302
303
305
1
3
87
87
88
107
107
113
114
303
304
306
2
4
86
88
88
88
88
113
113
114
115
115
304
305
307
3
87
88
88
88
89
107
112
113
115
116
116
116
116
301
304
306
308
86
86
86
87
88
88
88
89
89
90
113
113
116
116
302
305
307
307
309
309
86
88
89
90
90
90
91
91
112
115
303
306
308
308
310
310
88
88
91
112
112
113
115
116
304
307
309
309
311
311
1
86
89
90
91
113
113
115
115
116
117
308
310
310
312
312
1
89
89
90
90
91
92
115
116
116
117
118
309
313
313
1
89
91
91
93
116
118
119
310
314
314
1
90
91
91
92
94
118
119
311
315
315
1
89
90
90
91
91
91
91
93
115
115
118
119
312
316
316
89
89
91
92
92
116
116
118
118
119
313
317
317
1
92
93
93
119
119
314
318
318
1
1
90
90
91
93
94
118
315
319
319
1
90
90
90
91
91
91
91
91
115
115
118
119
316
320
320
1
2
89
89
91
92
92
116
116
118
118
119
317
321
321
1
3
90
91
92
93
93
118
119
119
318
322
322
2
4
90
90
91
91
91
91
93
94
115
115
118
119
319
323
323
3
89
89
90
90
91
91
92
92
116
116
118
118
119
320
324
324
90
90
90
91
91
91
91
92
93
93
118
118
118
119
119
321
325
325
1
89
91
91
92
92
93
94
116
116
118
118
118
119
119
119
322
326
326
1
2
92
93
93
119
119
119
119
119
120
323
325
325
327
327
2
3
93
93
93
93
93
94
115
120
121
324
326
326
328
328
3
4
90
90
93
93
94
94
116
121
121
122
325
327
327
329
1
90
90
90
93
93
93
93
95
95
115
115
121
122
122
326
328
328
330
2
90
93
94
94
94
96
96
115
116
116
121
121
122
327
329
331
1
3
95
95
95
116
122
122
123
328
330
332
2
4
95
95
95
96
116
121
122
123
124
329
331
333
3
94
94
94
95
95
96
96
122
122
122
122
124
124
125
125
326
330
332
334
94
95
95
95
96
96
97
97
121
124
125
125
125
125
327
331
333
333
335
335
94
95
95
96
98
98
98
98
121
122
124
125
328
332
334
334
336
336
94
96
97
122
124
125
126
329
333
335
335
337
337
1
95
95
96
97
97
121
125
126
127
334
336
336
338
338
96
96
96
97
97
122
124
127
128
335
339
339
1
1
97
97
97
98
124
125
128
336
340
340
1
97
97
97
97
98
99
125
127
337
341
341
96
96
96
97
97
98
99
127
127
127
128
338
342
342
1
97
97
97
97
99
124
124
128
128
128
339
343
343
1
98
98
100
125
125
340
344
344
1
1
97
97
97
97
99
99
127
341
345
345
1
1
96
96
97
97
97
97
98
127
127
127
128
342
346
346
2
97
97
97
97
99
124
124
128
128
128
343
347
347
1
3
97
97
97
98
98
100
125
125
127
344
348
348
2
4
96
96
97
97
98
99
99
127
127
127
128
345
349
349
3
97
97
97
97
97
97
97
97
97
99
124
124
128
128
128
346
350
350
97
97
97
97
98
98
98
100
125
125
127
127
127
127
127
347
351
351
1
96
97
98
98
99
99
99
127
128
128
128
128
128
128
128
348
352
352
1
2
99
99
100
125
125
128
129
129
349
351
351
353
353
2
3
97
99
99
99
100
100
130
130
350
352
352
354
354
3
4
97
98
99
100
100
100
124
130
131
131
351
353
353
355
1
97
97
97
100
100
100
101
124
125
130
130
131
352
354
354
356
2
97
98
99
100
100
101
101
102
124
124
125
130
131
131
353
355
357
1
3
101
101
102
125
125
131
132
354
356
358
2
4
100
102
102
102
102
131
131
132
133
133
355
357
359
3
101
102
102
102
103
125
130
131
133
134
134
134
134
352
356
358
360
100
100
100
101
102
102
102
103
103
104
131
131
134
134
353
357
359
359
361
361
100
102
103
104
104
104
105
105
130
133
354
358
360
360
362
362
102
102
105
130
130
131
133
134
355
359
361
361
363
363
1
100
103
104
105
131
131
133
133
134
135
360
362
362
364
364
1
103
103
104
104
105
106
133
134
134
135
136
361
365
365
1
103
105
105
107
134
136
137
362
366
366
1
104
105
105
106
108
136
137
363
367
367
1
103
104
104
105
105
105
105
107
133
133
136
137
364
368
368
103
103
105
106
106
134
134
136
136
137
365
369
369
1
106
107
107
137
137
366
370
370
1
1
104
104
105
107
108
136
367
371
371
1
104
104
104
105
105
105
105
105
133
133
136
137
368
372
372
1
2
103
103
105
106
106
134
134
136
136
137
369
373
373
1
3
104
105
106
107
107
136
137
137
370
374
374
2
4
104
104
105
105
105
105
107
108
133
133
136
137
371
375
375
3
103
103
104
104
105
105
106
106
134
134
136
136
137
372
376
376
104
104
104
105
105
105
105
106
107
107
136
136
136
137
137
373
377
377
1
103
105
105
106
106
107
108
134
134
136
136
136
137
137
137
374
378
378
1
2
106
107
107
137
137
137
137
137
138
375
377
377
379
379
2
3
107
107
107
107
107
108
133
138
139
376
378
378
380
380
3
4
104
104
107
107
108
108
134
139
139
140
377
379
379
381
1
104
104
104
107
107
107
107
109
109
133
133
139
140
140
378
380
380
382
2
104
107
108
108
108
110
110
133
134
134
139
139
140
379
381
383
1
3
109
109
109
134
134
140
140
140
141
380
382
384
2
4
109
109
109
110
139
140
140
141
142
378
381
382
383
385
3
108
108
108
109
109
110
110
110
110
140
140
142
142
143
143
379
383
384
386
108
109
109
109
111
111
139
142
143
143
143
143
380
384
385
385
387
387
108
108
109
109
110
112
112
112
112
139
140
142
142
143
381
385
386
386
388
388
109
109
110
111
139
140
143
143
144
386
387
387
389
389
1
110
110
111
111
140
144
145
387
388
388
390
390
1
110
110
111
111
111
142
145
146
388
391
391
1
111
111
111
111
112
142
143
145
146
389
392
392
1
111
111
111
112
112
113
143
145
146
390
393
393
1
110
110
110
111
113
113
145
145
146
391
394
394
1
1
2
111
111
111
111
114
142
142
146
146
392
395
395
1
3
111
111
111
111
112
112
143
143
145
393
396
396
2
4
110
110
111
111
112
113
113
145
145
145
146
394
397
397
3
111
111
111
111
111
111
111
111
111
113
142
142
146
146
146
395
398
398
111
111
111
111
112
112
112
114
143
143
145
145
145
145
145
396
399
399
1
110
111
112
112
113
113
113
145
146
146
146
146
146
146
146
397
400
400
1
2
113
113
114
143
143
146
147
147
398
399
399
401
401
2
3
111
113
113
113
114
114
148
148
399
400
400
402
402
3
4
111
112
113
114
114
114
142
148
149
149
400
401
401
403
1
111
111
111
114
114
114
115
142
143
148
148
149
401
402
402
404
2
111
112
113
114
114
115
115
116
142
142
143
148
149
149
402
403
405
1
3
115
115
116
143
143
149
150
403
404
406
2
4
114
116
116
116
116
149
149
150
151
151
404
405
407
1
1
3
5
5
5
115
116
116
116
117
143
148
149
151
152
152
152
152
401
404
406
408
4
4
5
5
6
6
6
114
114
114
115
116
116
116
117
117
118
149
149
152
152
402
405
407
407
409
409
5
7
7
7
7
114
116
117
118
118
118
119
119
148
151
403
406
408
408
410
410
4
6
8
8
8
8
116
116
119
148
148
149
151
152
404
407
409
409
411
411
1
5
7
9
9
114
117
118
119
149
149
151
151
152
153
408
410
410
412
412
1
4
4
5
5
10
10
117
117
118
118
119
120
151
152
152
153
154
409
413
413
1
5
5
5
7
11
11
117
119
119
121
152
154
155
410
414
414
1
5
5
6
7
12
12
118
119
119
120
122
154
155
411
415
415
1
5
5
7
8
13
13
117
118
118
119
119
119
119
121
151
151
154
155
412
416
416
5
5
7
9
14
14
117
117
119
120
120
152
152
154
154
155
413
417
417
1
5
5
7
10
15
15
120
121
121
155
155
414
418
418
1
1
5
5
5
7
11
16
16
118
118
119
121
122
154
415
419
419
1
5
5
5
6
7
7
7
12
17
17
118
118
118
119
119
119
119
119
151
151
154
155
416
420
420
1
2
5
5
7
8
8
13
16
16
18
18
117
117
119
120
120
152
152
154
154
155
417
421
421
1
3
9
9
14
17
17
19
118
119
120
121
121
154
155
155
418
422
422
2
4
5
9
15
18
18
20
118
118
119
119
119
119
121
122
151
151
154
155
419
423
423
3
5
9
9
16
19
21
117
117
118
118
119
119
120
120
152
152
154
154
155
420
424
424
1
5
5
9
10
17
20
22
118
118
118
119
119
119
119
120
121
121
152
152
154
154
154
155
155
421
425
425
1
2
9
9
10
11
11
11
11
21
23
117
119
119
120
120
121
122
154
154
154
155
155
155
155
155
422
425
425
426
426
1
2
3
4
5
9
9
9
11
11
15
20
22
22
24
24
120
121
121
121
122
155
155
155
156
423
426
426
427
427
3
4
5
5
9
16
21
23
23
25
25
118
121
121
121
121
121
151
156
157
424
427
427
428
428
5
5
6
9
10
11
11
17
22
24
24
26
26
118
118
118
121
121
121
121
122
122
151
151
152
152
157
157
157
158
158
425
428
428
429
4
4
4
5
6
7
9
11
11
12
12
23
27
27
118
118
121
121
122
122
123
123
151
152
152
157
157
158
158
158
158
158
426
426
429
430
430
4
4
5
5
7
8
11
13
13
24
28
28
122
123
123
124
124
124
124
152
158
158
159
427
427
430
431
431
4
5
5
6
8
9
11
11
13
25
29
29
123
123
123
124
159
160
428
428
431
432
432
4
4
4
5
5
7
9
10
13
13
13
26
30
30
122
123
123
124
157
160
160
161
429
429
432
433
433
5
5
5
6
8
10
11
11
11
13
27
31
31
122
123
123
124
125
157
158
160
161
161
433
434
434
4
5
6
7
9
11
12
13
13
13
28
32
32
124
125
126
158
161
434
435
435
7
7
8
10
11
11
12
13
13
29
33
33
125
126
435
436
436
1
9
11
13
13
13
13
14
30
34
34
436
437
437
1
1
7
7
11
11
12
13
13
13
13
14
15
31
35
35
437
438
438
1
7
7
8
8
8
8
13
13
13
13
13
14
14
16
32
34
34
36
36
438
439
439
1
7
7
7
7
8
8
11
13
14
14
15
15
17
17
33
35
35
37
439
440
440
13
14
15
15
15
16
18
18
34
36
36
38
122
123
160
438
441
441
1
7
7
8
8
11
11
14
15
16
16
16
19
19
35
37
39
122
122
123
123
123
124
157
160
440
442
442
8
8
8
9
9
11
16
16
16
17
20
20
36
38
40
122
123
123
123
124
124
125
157
160
440
441
443
443
7
10
10
11
15
15
15
17
17
18
18
21
21
39
41
122
123
123
124
125
125
126
152
152
160
160
442
444
444
8
8
10
15
16
18
18
18
18
18
18
22
22
34
38
40
40
42
42
122
123
123
124
125
126
126
157
158
158
158
430
430
443
445
445
10
10
10
15
15
18
19
19
23
23
35
39
41
41
43
43
123
124
124
124
125
126
158
160
426
431
431
444
446
446
1
8
8
10
19
20
20
24
24
36
40
42
42
44
44
124
125
126
427
432
432
445
447
447
1
1
10
10
10
18
20
21
21
25
25
41
45
45
126
428
433
433
446
448
448
1
2
8
8
10
15
18
18
22
26
26
42
46
46
429
434
434
438
447
449
2
3
10
10
10
20
20
21
23
27
27
43
47
47
430
435
435
448
450
3
4
8
8
10
10
10
10
18
18
21
24
28
28
44
48
48
431
431
449
451
1
4
4
5
5
10
10
10
10
11
11
20
20
21
25
27
27
29
29
45
49
49
121
121
121
121
157
157
447
450
452
5
5
6
6
8
12
12
18
18
21
26
28
28
30
46
50
50
118
118
121
121
121
121
122
122
157
157
448
448
451
453
7
7
12
13
20
20
21
27
29
29
31
47
51
51
118
118
122
122
123
123
151
151
435
440
440
449
452
454
4
4
8
8
8
8
13
18
18
20
21
28
30
32
48
52
52
123
123
124
124
152
438
440
440
441
441
450
453
455
5
5
5
5
8
9
9
9
13
13
14
20
20
20
21
21
21
21
29
31
33
49
53
53
124
124
152
155
155
425
435
440
440
442
442
451
454
456
8
10
10
10
10
12
12
12
14
15
15
18
18
21
22
22
32
34
50
52
52
54
54
121
121
121
155
155
157
423
425
426
441
443
443
452
455
457
4
5
11
11
11
11
12
13
15
15
15
15
15
23
23
27
31
33
33
35
35
51
53
53
55
118
121
121
121
122
122
157
424
426
427
442
453
456
458
1
1
5
6
8
12
12
12
12
15
16
18
23
28
32
34
34
36
36
52
54
54
56
118
122
123
151
425
427
428
454
457
459
1
1
1
4
5
5
9
13
13
16
17
18
23
23
29
33
35
35
37
37
53
55
57
123
124
426
428
429
440
440
440
455
458
459
460
5
6
6
10
14
14
15
17
18
18
18
23
24
34
38
38
54
56
58
124
427
429
430
440
441
441
456
458
460
461
5
5
5
11
12
15
15
15
15
23
23
24
25
25
25
25
35
39
39
57
59
428
430
442
442
457
461
462
5
6
6
12
16
16
17
17
18
18
23
23
23
25
25
36
40
40
52
56
58
58
60
60
428
443
458
462
463
5
5
5
13
15
15
17
17
18
23
37
41
41
53
57
59
59
61
61
118
119
154
430
440
443
459
463
464
5
6
6
14
17
17
18
18
18
23
24
25
25
38
42
42
54
58
60
60
62
62
117
118
118
119
119
120
152
154
154
430
440
441
460
464
465
5
5
5
15
15
15
18
19
19
23
25
25
26
26
39
43
43
59
63
63
117
117
118
118
119
119
120
120
121
151
152
154
154
155
155
421
438
442
461
465
466
5
5
6
6
6
6
16
17
17
18
20
20
25
27
27
40
44
44
60
64
64
117
117
118
119
120
120
121
121
121
122
151
154
155
155
420
421
422
439
443
462
466
467
5
5
5
5
7
7
15
15
17
17
18
19
19
21
21
25
25
27
41
45
45
61
65
65
117
120
121
121
121
122
122
122
151
421
422
423
439
443
444
463
467
468
1
8
8
8
17
17
17
18
18
18
18
18
20
20
22
27
27
27
42
46
46
62
66
66
121
122
122
422
423
424
439
443
444
445
464
468
469
1
1
5
9
9
15
15
18
19
19
19
21
21
23
25
25
27
43
45
45
47
47
63
67
67
122
423
424
425
439
443
443
444
445
465
469
470
5
9
10
20
20
20
22
24
27
27
27
44
46
46
48
64
68
68
424
425
426
439
443
444
444
445
466
470
471
5
5
9
11
15
20
21
23
25
25
25
27
27
27
27
45
47
47
49
65
69
69
425
426
439
444
445
445
467
471
472
8
8
8
8
10
12
12
15
20
20
24
26
27
27
27
27
28
28
46
48
50
66
68
68
70
70
425
443
445
446
468
472
473
5
9
11
11
11
11
12
15
15
19
20
21
23
25
25
25
27
27
29
29
47
49
51
67
69
69
71
426
444
446
469
473
474
4
4
5
8
8
12
13
20
20
20
21
22
22
22
22
24
26
26
28
28
29
30
50
52
68
70
70
72
118
119
152
154
426
444
470
474
475
5
5
5
5
5
5
6
13
14
15
20
20
20
21
22
22
25
25
25
27
27
29
29
30
45
49
51
51
53
53
69
71
73
117
118
118
119
119
120
152
154
154
155
155
418
446
471
475
476
6
6
7
7
12
14
15
20
25
26
30
30
30
30
31
46
50
52
52
54
54
70
72
74
117
117
118
119
120
120
121
121
151
154
155
155
416
417
419
446
472
476
477
4
5
7
7
8
8
8
11
11
20
21
22
22
25
27
29
29
29
31
31
31
32
32
47
51
53
53
55
55
73
75
117
118
119
120
121
121
121
122
122
151
154
417
418
420
473
477
478
1
4
5
6
9
9
14
14
15
20
22
22
23
23
28
29
30
32
32
32
32
32
32
32
52
56
56
68
72
74
74
76
76
117
118
119
120
121
122
122
154
418
419
421
474
478
479
1
1
4
5
5
5
10
10
11
11
15
22
24
24
29
29
29
32
33
33
33
53
57
57
69
73
75
75
77
77
117
120
121
122
151
419
420
422
475
479
480
5
6
6
6
11
11
14
14
15
22
22
24
30
33
34
34
34
54
58
58
70
74
76
76
78
78
121
122
420
421
423
476
480
481
5
5
5
7
11
11
12
12
15
24
24
24
31
32
34
35
35
35
55
59
59
75
79
79
122
421
422
446
477
481
482
5
6
6
8
13
13
14
14
15
22
22
24
29
32
32
32
36
36
56
60
60
76
80
80
421
444
446
447
478
482
483
5
5
5
9
11
11
14
14
14
15
24
24
24
33
34
34
35
37
37
57
61
61
77
81
81
422
445
447
479
483
484
5
6
6
10
14
14
14
15
15
15
15
15
15
22
22
24
24
24
24
32
32
34
35
38
38
58
62
62
78
82
82
118
119
152
154
423
445
480
484
485
5
5
5
11
11
11
15
16
16
16
16
24
24
24
24
25
25
34
34
35
35
37
37
39
39
59
61
61
63
63
79
83
83
117
118
118
119
119
120
152
154
154
155
155
414
447
481
485
486
5
5
6
6
6
6
12
17
17
17
17
22
26
26
32
32
35
36
38
38
40
60
62
62
64
80
84
84
117
117
118
119
120
120
121
121
151
154
155
155
412
414
415
447
482
486
487
5
5
5
5
7
7
11
13
16
16
17
18
18
26
27
34
34
35
37
39
39
41
61
63
63
65
81
85
85
117
118
119
120
121
121
121
122
122
151
154
413
415
416
483
487
488
1
8
8
8
11
14
17
17
17
17
19
22
22
27
32
32
34
35
38
40
42
62
64
66
82
86
86
117
118
119
120
121
122
122
154
414
416
417
484
488
489
1
1
5
9
9
11
11
15
17
18
18
18
20
22
27
27
28
34
34
34
35
35
35
35
39
41
43
63
65
67
83
87
87
117
120
121
122
151
415
417
418
485
489
490
5
9
10
16
17
17
18
19
19
19
19
19
21
22
26
26
26
28
29
29
32
32
35
36
36
42
44
66
68
84
86
86
88
88
121
122
416
418
419
486
490
491
5
5
9
11
11
17
17
17
17
19
19
20
22
26
27
29
29
29
29
29
37
37
37
41
43
43
45
45
61
65
67
67
69
69
85
87
87
89
122
417
419
447
487
491
492
4
8
8
8
8
10
12
12
17
21
23
26
26
29
30
32
37
38
42
44
44
46
46
62
66
68
68
70
70
86
88
88
90
417
445
447
448
488
492
493
5
5
5
9
11
11
11
11
12
15
17
18
19
19
20
22
22
24
24
30
31
32
37
37
39
43
45
45
47
47
63
67
69
69
71
71
87
89
91
419
446
448
489
493
494
4
5
5
6
8
8
12
13
16
17
19
19
20
20
21
23
23
25
25
29
31
32
32
32
37
38
44
48
48
68
72
72
88
90
92
118
119
154
419
446
490
494
495
4
4
5
5
6
7
13
14
17
19
21
21
22
24
24
26
26
26
29
29
37
37
38
39
39
39
39
45
49
49
69
73
73
91
93
117
118
118
119
119
120
154
154
448
491
495
496
4
5
5
6
7
8
12
14
15
19
19
21
23
27
27
31
31
32
32
37
37
37
39
39
46
50
50
70
74
74
86
90
92
92
94
94
117
117
118
119
120
120
121
151
152
154
448
492
496
497
4
4
5
7
8
8
9
11
11
21
21
21
24
28
28
29
29
32
37
47
51
51
71
75
75
87
91
93
93
95
95
117
118
119
120
121
121
122
149
151
152
152
154
407
493
497
498
4
5
5
5
5
8
9
10
14
14
15
19
19
21
25
29
29
31
31
32
37
38
39
39
48
52
52
72
76
76
88
92
94
94
96
96
117
118
119
119
120
121
122
122
149
152
154
408
409
409
494
498
499
4
4
5
6
9
10
11
11
11
15
21
21
21
26
29
29
30
30
32
37
39
39
40
40
49
53
53
73
77
77
93
97
97
117
118
119
120
121
122
151
409
410
410
495
499
500
1
1
4
5
6
7
10
11
12
14
14
15
19
19
21
21
21
21
27
31
31
31
31
32
39
41
41
50
54
54
74
78
78
94
98
98
121
122
410
411
411
496
500
501
1
1
1
7
7
9
10
11
11
12
13
15
21
21
21
21
22
22
28
29
29
31
32
32
32
39
39
41
51
53
53
55
55
75
79
79
95
99
99
122
411
412
412
497
501
501
502
7
10
11
13
14
14
14
15
19
23
23
29
31
31
31
32
32
32
32
33
33
41
41
41
52
54
54
56
76
80
80
96
100
100
412
413
413
498
501
502
503
7
7
8
11
11
12
14
14
15
15
23
24
29
29
30
32
33
33
34
34
39
39
41
53
55
55
57
77
79
79
81
81
97
101
101
414
414
414
446
499
503
504
7
8
8
9
9
13
14
14
14
15
15
15
15
16
19
19
24
31
34
34
35
35
41
41
41
54
56
58
78
80
80
82
98
102
102
412
414
447
500
504
505
7
7
7
7
8
9
9
11
11
13
14
14
15
16
16
17
17
19
24
24
25
29
32
34
34
34
36
36
39
39
41
55
57
59
79
81
81
83
99
103
103
114
114
116
116
151
151
447
501
505
506
7
7
8
9
13
14
15
15
17
17
18
18
19
23
23
23
25
26
26
29
33
34
34
35
35
37
41
41
41
58
60
80
82
84
100
104
104
114
114
114
116
116
116
116
116
117
117
148
148
151
502
506
507
9
10
11
14
15
16
16
17
19
19
23
24
26
26
26
26
26
29
29
34
34
35
36
36
38
39
39
41
41
41
41
53
57
59
59
61
61
81
83
85
101
105
105
114
116
116
116
116
117
117
117
118
118
148
149
151
151
448
448
503
507
508
8
10
11
11
16
17
17
20
20
23
23
26
27
34
34
35
35
36
36
36
36
37
39
41
41
41
41
42
42
54
58
60
60
62
62
84
86
102
104
104
106
106
116
117
118
118
118
119
119
149
149
151
401
449
449
449
449
504
508
509
7
9
9
11
11
17
17
18
21
21
27
28
29
34
34
34
36
36
36
38
39
40
43
43
55
59
61
61
63
63
79
83
85
85
87
87
103
105
105
107
116
118
119
119
119
143
149
402
404
449
449
449
449
450
450
505
509
510
10
10
11
17
17
18
18
19
19
19
19
22
22
26
28
29
34
39
41
43
44
60
64
64
80
84
86
86
88
88
104
106
106
108
115
119
143
403
404
405
450
450
451
451
506
510
511
1
9
9
11
11
17
17
17
19
19
19
23
23
23
26
26
34
34
35
36
36
38
39
39
40
40
42
42
44
61
65
65
81
85
87
87
89
89
105
107
109
116
404
405
406
451
451
507
511
512
1
1
10
10
11
17
20
24
24
28
28
29
34
35
36
36
37
37
39
39
41
41
43
43
44
44
45
62
66
66
86
90
90
106
108
110
405
406
407
508
512
513
1
2
9
9
11
17
18
19
19
21
25
25
26
26
29
36
36
38
38
39
40
42
42
43
43
43
44
44
45
46
46
63
67
67
87
91
91
109
111
406
407
408
449
509
513
514
1
2
3
10
10
11
17
19
19
20
20
22
26
26
28
28
29
36
36
38
41
43
44
45
45
46
46
46
46
46
64
68
68
88
92
92
104
108
110
110
112
112
406
408
409
449
449
450
513
514
515
3
4
9
9
10
11
19
21
21
23
26
26
27
27
29
38
38
38
42
43
43
46
46
46
47
65
69
69
89
93
93
105
109
111
111
111
113
113
113
142
409
449
450
451
509
514
515
516
4
5
10
10
10
11
11
11
11
19
19
21
24
28
28
28
28
29
36
36
38
43
47
47
47
48
66
70
70
90
94
94
106
110
111
112
112
113
114
114
114
114
148
409
451
452
515
516
517
4
5
5
6
9
9
11
12
12
21
21
21
25
26
26
27
27
28
29
29
29
38
38
38
44
46
48
48
48
49
67
71
71
91
95
95
111
111
113
114
114
115
115
115
142
148
409
447
452
516
517
518
5
6
7
13
13
19
19
21
26
28
28
28
28
28
29
29
29
29
30
36
36
38
43
45
46
46
49
49
68
72
72
92
96
96
111
112
113
114
114
115
116
116
116
148
448
452
453
517
518
519
7
8
9
13
21
21
21
26
26
27
29
29
29
30
30
31
38
38
38
46
48
48
49
50
50
69
71
71
73
73
93
97
97
111
113
113
114
114
115
116
117
117
142
146
148
448
452
454
518
519
520
5
5
8
9
9
13
13
19
19
21
21
21
21
28
30
31
31
32
36
36
38
38
38
38
46
46
47
49
51
51
70
72
72
74
94
98
98
111
113
114
114
114
115
116
118
118
146
146
146
148
398
448
452
453
455
519
520
521
4
4
5
5
9
9
9
9
10
13
14
21
21
21
21
22
22
26
29
31
31
33
38
38
38
38
39
39
48
48
48
49
50
50
52
52
71
73
73
75
95
97
97
99
99
114
114
114
115
115
116
119
119
143
143
148
399
399
399
452
453
454
520
521
522
5
10
10
11
11
13
13
14
15
15
15
15
19
23
23
26
31
31
32
34
36
40
40
46
46
49
49
51
51
53
72
74
76
96
98
98
100
113
113
115
116
116
120
120
400
400
400
448
453
454
521
522
523
1
1
4
6
9
11
11
12
12
13
13
13
15
15
23
24
26
26
27
31
31
32
33
33
35
35
40
41
48
48
49
50
52
52
54
73
75
77
97
99
99
101
116
117
121
121
401
401
401
454
522
523
524
1
1
1
5
7
8
13
13
13
19
19
24
28
31
31
32
32
33
33
33
33
34
34
36
36
36
36
41
46
46
48
49
51
53
55
76
78
98
100
102
118
122
122
402
402
402
452
455
523
523
524
525
4
5
5
9
13
14
14
14
15
15
19
24
24
25
26
29
31
31
31
33
33
33
35
35
36
37
37
41
41
42
48
48
48
49
49
49
49
52
54
56
71
75
77
77
79
79
99
101
103
119
123
123
403
403
403
448
453
524
524
525
526
5
5
7
10
13
15
15
15
15
16
16
19
23
23
23
25
26
26
31
34
36
38
38
40
40
40
42
43
43
46
46
49
50
50
55
57
72
76
78
78
80
80
102
104
120
122
122
124
124
403
404
404
454
525
526
527
5
5
7
11
15
16
16
17
17
23
24
26
26
26
26
26
31
32
33
33
35
39
39
40
41
43
43
43
43
43
50
51
51
54
56
56
58
58
73
77
79
79
81
81
97
101
103
103
105
105
121
123
123
125
404
404
455
526
527
528
5
5
7
12
15
15
17
17
17
23
23
26
27
31
33
33
34
34
36
40
40
40
40
43
44
46
51
51
55
57
57
59
59
78
82
82
98
102
104
104
106
106
110
110
111
111
122
124
124
126
142
142
452
455
527
528
529
5
5
7
13
17
17
17
18
18
27
28
33
35
35
37
41
41
44
45
46
51
51
52
56
58
58
60
60
79
83
83
99
103
105
105
107
107
110
110
110
111
111
111
111
111
112
112
123
125
127
142
145
145
146
448
453
528
529
530
5
5
7
14
15
15
17
19
19
26
28
29
33
33
35
38
42
42
43
45
46
46
46
51
52
57
61
61
80
84
84
104
108
108
110
111
111
111
111
112
112
112
113
113
124
126
128
145
145
145
146
146
146
394
452
454
529
530
531
5
5
5
7
15
17
17
17
20
20
23
26
26
35
35
35
39
40
43
43
43
43
51
51
52
53
53
53
53
58
62
62
81
85
85
105
109
109
111
112
113
113
113
114
114
114
127
129
143
143
145
395
395
396
453
453
455
455
530
531
532
5
5
5
6
7
7
7
15
15
16
17
17
17
17
21
21
28
28
29
33
33
35
40
44
44
45
45
46
46
51
51
51
53
53
59
63
63
82
86
86
106
110
110
113
113
113
114
114
114
122
126
128
128
130
130
396
396
397
453
453
455
455
456
456
531
532
533
1
5
5
7
8
8
17
17
17
17
17
18
18
20
20
22
22
26
26
29
35
35
35
41
43
43
43
43
45
45
46
51
60
64
64
83
87
87
107
111
111
114
123
127
129
129
131
131
397
397
398
456
456
457
457
532
533
534
1
1
9
9
15
18
19
19
21
21
23
28
28
29
33
33
35
42
44
44
45
45
46
46
51
52
53
53
61
65
65
84
88
88
108
112
112
124
128
130
130
132
132
398
398
399
457
457
533
534
535
5
9
19
19
20
22
22
24
26
26
29
35
35
35
43
43
43
45
45
46
47
51
53
53
54
54
62
66
66
85
89
89
109
113
113
129
133
133
399
399
400
453
453
534
535
536
5
9
9
15
15
20
20
23
25
28
28
29
33
33
35
35
35
35
44
45
45
46
46
48
53
55
55
63
67
67
86
90
90
110
114
114
130
134
134
399
400
401
454
454
455
455
455
535
536
537
5
5
9
10
15
20
20
21
21
24
26
26
26
28
29
35
35
35
35
36
36
43
43
45
45
46
47
49
53
53
55
64
68
68
87
89
89
91
91
111
115
115
131
135
135
400
401
456
456
456
536
537
538
9
9
10
11
11
11
11
15
19
19
19
21
22
22
25
27
28
28
28
29
29
29
29
33
37
37
45
45
45
46
46
46
46
48
50
55
55
55
65
69
69
88
90
90
92
112
116
116
132
136
136
456
457
457
537
538
539
5
9
9
9
11
11
19
19
20
22
22
22
22
22
24
26
26
26
26
28
28
29
30
30
37
38
43
43
43
46
47
47
47
49
49
51
51
53
53
55
66
68
68
70
70
89
91
91
93
110
111
113
115
115
117
117
133
137
137
142
146
457
457
538
539
540
1
1
5
5
5
9
19
19
20
22
23
25
27
27
29
29
31
31
33
33
38
44
48
48
48
50
50
52
52
55
55
55
67
69
69
71
90
92
94
110
110
110
111
111
111
111
112
114
116
116
118
134
138
138
142
142
145
146
146
146
390
539
540
541
4
4
5
5
6
6
6
9
10
11
11
21
23
24
26
26
28
28
30
30
31
33
38
38
39
43
45
48
49
51
51
53
53
53
53
55
55
55
55
68
70
70
72
91
93
95
110
110
111
111
111
111
111
112
112
112
113
114
115
117
117
119
135
139
139
143
143
145
145
145
391
392
392
540
541
542
5
7
7
7
7
9
11
11
12
12
22
24
25
26
27
31
31
31
31
33
37
37
37
39
40
40
43
48
48
50
54
54
55
55
55
55
56
56
69
71
73
94
96
111
111
112
112
113
113
113
113
113
114
116
118
120
136
138
138
140
140
145
145
392
393
393
541
542
543
1
4
6
8
8
8
8
11
13
13
19
22
22
26
26
28
31
32
32
32
37
38
40
40
40
40
40
43
43
48
49
51
53
55
55
57
57
70
72
74
89
93
95
95
97
97
113
113
114
114
114
117
119
121
137
139
139
141
393
394
394
542
543
544
1
1
5
7
9
9
11
11
13
24
24
25
29
31
31
32
33
33
33
33
33
33
37
37
40
41
48
48
49
50
50
50
50
52
56
56
57
58
73
75
90
94
96
96
98
98
114
114
120
122
138
140
140
142
394
395
395
543
544
545
4
4
5
5
10
10
13
13
13
22
22
25
26
30
31
31
31
33
33
34
34
41
42
43
48
48
48
50
50
53
53
53
57
57
58
68
72
74
74
76
76
91
95
97
97
99
99
115
119
121
121
123
123
139
141
143
395
396
396
544
545
546
5
5
5
7
11
11
11
11
13
24
24
25
31
31
35
35
40
42
43
48
53
54
58
58
58
58
59
69
73
75
75
77
77
96
100
100
116
120
122
122
124
124
140
142
144
395
397
397
456
545
546
547
5
5
6
7
12
12
13
13
13
22
22
25
31
32
32
33
33
36
36
37
40
40
48
49
50
50
53
55
57
57
57
59
59
59
60
60
70
74
76
76
78
78
97
101
101
117
121
123
123
125
125
143
145
397
397
457
457
457
546
547
548
5
5
7
8
11
11
13
13
13
13
13
13
24
24
25
31
33
33
33
34
34
37
37
42
42
43
48
50
50
51
51
56
57
58
60
60
60
60
60
60
60
75
79
79
98
102
102
122
126
126
138
142
144
144
146
146
457
458
458
547
548
549
5
5
7
9
13
13
13
13
14
14
14
14
22
22
24
25
33
34
35
35
36
36
38
38
40
40
43
50
52
52
57
57
57
60
61
61
61
76
80
80
99
103
103
110
111
123
127
127
139
142
143
145
145
147
147
458
458
548
549
550
5
5
7
10
11
15
15
15
15
24
24
24
25
25
25
25
33
33
35
35
37
37
39
42
42
43
50
50
52
58
61
62
62
62
77
81
81
100
104
104
110
110
110
111
111
111
111
112
124
128
128
140
142
142
143
144
145
146
146
148
148
549
550
551
5
5
5
7
11
15
16
16
16
22
22
25
26
26
35
35
35
36
38
38
40
40
40
43
52
52
52
59
60
61
61
62
63
63
63
78
82
82
101
105
105
110
110
111
111
111
111
111
112
112
112
113
125
129
129
140
143
143
145
145
145
145
149
149
385
550
551
552
5
5
5
6
7
7
7
11
11
12
16
17
17
27
27
33
33
35
37
39
41
42
42
43
50
50
52
57
60
60
60
62
62
64
79
83
83
102
106
106
111
111
112
112
112
113
113
113
114
126
130
130
140
143
145
145
146
150
150
386
387
387
551
552
553
5
5
7
8
8
11
13
16
16
16
16
17
18
18
22
27
35
35
35
38
40
40
40
42
42
43
52
52
52
61
62
62
63
63
63
65
80
84
84
103
107
107
111
112
113
113
114
114
114
127
131
131
147
151
151
387
388
388
552
553
554
1
9
9
11
14
15
15
15
17
17
17
18
18
19
22
27
27
33
33
35
41
42
42
42
43
43
43
43
43
50
50
52
52
52
52
60
60
62
63
64
66
81
85
85
104
108
108
114
114
128
132
132
148
152
152
388
389
389
553
554
555
1
1
1
5
9
15
15
16
18
18
18
18
18
18
18
20
22
22
27
28
35
35
35
36
40
40
40
42
42
43
44
44
44
44
52
52
52
52
53
53
62
62
63
63
65
67
82
86
86
105
107
107
109
109
129
131
131
133
133
149
153
153
389
390
390
554
555
556
5
9
9
15
15
16
18
19
19
21
27
27
28
29
29
29
29
33
33
35
35
35
35
37
41
43
43
45
45
45
45
50
54
54
60
60
63
66
68
83
87
87
106
108
108
110
130
132
132
134
150
154
154
390
391
391
555
556
557
1
5
5
9
10
17
19
20
20
22
22
27
27
27
29
29
35
35
35
35
36
36
38
40
42
44
44
45
46
46
54
55
61
62
62
63
65
67
67
69
69
84
86
86
88
88
107
109
109
111
131
133
133
135
151
155
155
392
392
556
556
558
9
9
10
11
11
11
11
18
20
21
21
23
27
33
37
37
40
43
45
45
47
47
50
50
55
60
60
62
62
63
66
68
68
70
70
85
87
87
89
108
108
109
110
112
132
134
136
142
152
156
156
390
457
556
557
557
559
1
4
5
9
9
9
11
11
15
15
18
18
20
22
22
24
24
27
28
29
29
37
38
40
40
44
45
46
48
48
50
55
55
56
62
62
62
63
63
63
63
63
67
69
69
71
71
86
88
88
90
108
109
109
109
110
111
113
133
135
137
139
153
157
157
392
458
558
558
560
5
5
9
16
20
20
21
21
23
23
25
25
27
29
29
30
30
33
33
38
45
45
45
46
47
47
47
47
49
49
50
54
54
54
56
57
57
60
60
63
64
64
68
72
72
87
89
91
108
109
109
110
111
112
114
136
138
142
142
154
156
156
158
158
392
458
458
559
559
561
5
5
6
9
10
11
11
17
18
18
21
22
24
24
26
26
29
31
31
33
38
38
39
40
45
45
45
46
47
47
50
50
54
55
57
57
57
57
57
65
65
69
73
73
88
90
92
107
108
109
109
110
111
111
112
113
113
115
115
131
135
137
137
139
139
139
155
157
157
159
458
459
459
560
560
562
4
4
4
5
6
7
9
11
11
12
12
20
20
21
23
27
27
29
29
31
33
37
37
37
39
40
40
45
47
51
51
54
54
57
58
60
65
70
74
74
91
93
108
108
109
109
110
111
112
112
114
114
116
116
132
134
136
138
138
140
140
142
142
156
158
158
160
459
459
460
561
561
563
4
4
5
5
7
8
11
13
13
18
18
21
24
28
28
31
31
31
37
38
40
40
40
40
40
45
46
47
47
48
52
52
58
59
60
65
65
71
75
75
86
90
92
92
94
94
108
109
109
109
110
111
112
113
115
115
117
117
133
134
137
139
139
139
140
140
141
141
157
159
161
382
459
459
460
461
562
562
564
4
5
5
6
8
9
11
11
13
20
20
21
25
29
29
29
29
31
37
37
40
41
45
47
47
48
48
49
53
53
57
59
60
60
60
65
66
72
76
76
87
91
93
93
95
95
109
110
110
111
112
114
118
118
138
140
140
142
142
142
158
160
162
378
382
383
460
461
563
563
565
4
4
4
5
5
7
9
10
13
13
13
18
18
20
21
26
30
30
31
31
31
41
42
47
49
49
50
54
54
54
57
57
65
65
66
67
67
67
67
73
77
77
88
92
94
94
96
96
110
110
111
112
115
119
119
139
143
143
161
163
379
383
384
459
459
461
564
564
566
1
1
5
5
5
6
8
10
11
11
11
13
20
20
20
21
21
21
21
27
29
29
31
31
31
40
42
43
47
47
49
51
55
55
59
59
60
60
65
65
65
67
67
74
78
78
93
97
97
112
116
120
120
140
144
144
156
160
162
162
164
164
380
384
385
460
565
565
567
1
1
4
5
6
7
9
11
12
13
13
13
18
18
21
22
22
28
31
31
31
32
32
37
40
40
49
49
49
52
54
54
56
56
57
57
60
65
75
79
79
94
98
98
117
121
121
141
145
145
157
161
163
163
165
165
381
385
386
459
461
566
566
568
7
7
8
10
11
11
12
13
13
13
13
13
23
23
29
29
29
31
31
31
31
33
33
42
42
43
47
47
49
53
55
55
57
59
59
60
65
66
67
67
76
80
80
95
99
99
118
122
122
142
146
146
158
162
164
164
166
166
382
386
387
459
460
567
569
9
11
13
13
13
13
13
14
14
14
18
23
30
31
31
31
31
32
32
32
32
34
34
40
40
43
49
49
49
54
56
56
57
57
58
60
65
67
67
68
68
77
79
79
81
81
96
100
100
119
123
123
143
147
147
163
167
167
383
387
461
568
570
7
7
11
12
14
15
15
15
18
23
23
29
31
33
33
33
33
35
42
42
43
47
47
49
49
49
49
55
57
59
59
59
60
67
69
69
78
80
80
82
97
101
101
120
124
124
144
148
148
164
168
168
383
462
569
571
1
7
7
8
8
8
8
13
15
16
16
18
18
23
24
32
33
34
34
34
36
40
40
43
49
49
49
49
50
50
56
57
57
58
59
60
60
67
67
69
79
81
81
83
98
102
102
107
107
107
107
121
123
123
125
125
139
139
145
149
149
165
169
169
459
565
570
572
7
7
7
7
8
8
11
11
13
14
14
16
17
17
23
23
24
25
25
25
25
29
29
33
34
35
37
42
42
43
47
51
51
59
59
59
59
60
60
60
60
61
69
69
69
80
82
84
99
103
103
104
104
107
107
107
107
108
108
122
124
124
126
139
139
146
150
150
166
170
170
458
459
460
566
568
571
573
11
13
14
15
15
16
16
17
18
18
18
23
23
23
25
25
29
34
34
34
35
36
38
40
40
42
43
51
52
54
57
57
58
60
60
60
61
61
62
62
67
67
69
81
83
85
100
104
104
104
104
108
108
109
109
123
125
125
127
133
133
147
149
149
151
151
167
171
171
387
459
459
461
569
572
574
7
7
8
8
11
14
15
15
15
15
16
16
17
18
18
19
19
23
29
33
33
33
35
36
36
37
39
42
42
42
43
43
43
43
47
47
52
55
59
61
61
62
62
63
63
69
69
69
84
86
101
105
105
109
109
110
110
124
126
128
134
148
150
150
152
168
172
172
387
460
460
462
462
570
573
575
8
8
8
9
9
15
16
16
18
18
18
18
18
20
20
23
24
25
25
32
33
34
36
36
36
36
36
36
38
38
40
40
40
40
43
44
44
47
52
52
53
56
57
60
62
62
62
64
64
67
67
69
79
83
85
85
87
87
102
104
104
106
106
110
110
125
127
129
134
137
137
149
151
151
153
169
173
173
377
459
462
462
463
463
571
574
576
7
10
10
15
15
17
18
19
21
21
23
25
25
26
26
33
33
33
36
37
37
39
39
41
41
45
45
47
51
51
51
53
54
54
57
61
62
62
65
65
69
69
69
80
84
86
86
88
88
103
105
105
107
107
107
107
128
130
137
137
139
150
152
154
170
174
174
375
377
378
463
464
464
572
575
577
8
8
10
18
19
20
22
22
25
27
27
34
37
38
38
40
40
40
42
42
45
51
52
54
54
54
54
54
57
57
62
62
63
66
66
67
67
69
69
69
69
81
85
87
87
89
89
104
104
106
106
107
107
107
108
108
108
123
127
129
129
131
131
139
151
153
155
171
175
175
376
378
379
464
573
576
578
1
1
10
10
10
18
19
20
21
23
23
25
25
27
36
38
39
39
40
43
43
45
45
51
51
54
55
62
62
63
63
64
64
64
64
67
67
69
69
69
69
70
70
86
90
90
104
105
107
108
109
109
124
128
130
130
132
132
133
154
156
172
174
174
176
176
377
379
380
574
577
579
1
1
1
8
8
10
15
18
18
20
24
24
27
27
27
33
36
36
40
40
40
44
44
45
46
55
56
57
62
62
62
64
64
64
67
68
68
71
71
87
91
91
106
108
109
110
110
125
129
131
131
133
133
149
153
155
155
157
157
173
175
175
177
378
380
381
459
459
462
575
578
579
580
10
10
10
20
20
21
21
25
25
25
25
27
38
38
39
41
45
45
45
45
46
47
47
47
47
54
56
57
62
65
69
69
71
72
88
92
92
109
110
111
130
134
134
150
154
156
156
158
158
174
176
176
178
379
381
382
460
462
463
576
578
580
581
2
8
8
10
10
10
10
18
18
21
22
26
26
27
27
27
36
36
39
40
42
45
45
45
46
46
47
47
51
54
54
62
63
64
64
66
67
67
70
70
72
89
93
93
104
108
110
110
112
112
131
135
135
151
155
157
157
159
159
175
177
179
380
382
463
464
577
581
582
2
3
10
10
10
10
11
11
20
20
21
23
25
25
25
25
27
27
27
38
38
39
43
45
47
47
56
56
57
62
64
64
65
65
67
67
71
71
72
72
73
90
94
94
105
109
111
111
113
113
132
136
136
156
160
160
176
178
180
380
464
578
582
583
3
4
8
12
12
18
18
21
24
26
26
27
27
27
28
36
36
39
44
45
46
47
47
48
48
54
54
57
64
66
66
67
68
71
71
71
72
72
73
74
74
91
95
95
104
105
106
110
112
112
114
114
133
136
137
137
157
161
161
179
181
382
459
464
579
583
584
4
4
5
5
12
13
20
20
21
25
25
25
27
27
27
27
27
27
29
38
38
39
45
45
47
47
48
48
49
49
56
56
57
64
64
66
69
71
72
73
73
74
74
74
74
74
92
96
96
103
104
104
105
105
106
111
115
115
134
134
136
136
138
138
158
162
162
174
178
180
180
182
182
382
460
462
580
584
585
5
5
6
6
8
8
13
18
18
20
21
26
27
27
27
27
28
28
28
30
36
36
38
39
46
47
49
49
50
50
54
54
57
66
66
66
70
71
71
72
72
74
74
74
75
93
97
97
103
103
104
104
105
105
106
106
107
112
116
116
133
134
135
136
136
137
137
139
139
159
163
163
175
179
181
181
183
183
373
462
463
581
585
586
7
7
8
13
13
14
20
20
20
21
21
21
21
25
27
29
29
29
31
38
38
38
39
39
39
39
47
47
47
49
51
51
56
56
57
64
64
66
71
73
73
75
75
76
94
98
98
103
103
104
105
106
106
107
107
107
108
113
117
117
133
136
136
137
137
140
140
160
164
164
176
180
182
182
184
184
372
373
374
463
464
582
586
587
4
4
8
8
8
12
12
12
14
15
15
18
18
21
22
22
29
30
30
32
36
36
39
40
40
48
49
49
49
50
50
52
52
54
54
56
57
66
66
66
72
74
74
74
76
76
77
95
97
97
99
99
103
106
107
107
107
108
108
108
114
118
118
133
137
141
141
161
165
165
181
185
185
373
374
375
463
464
465
583
587
588
1
5
5
5
5
9
9
9
12
13
15
15
15
15
15
23
23
25
25
25
29
30
31
31
33
33
41
41
47
47
49
49
51
51
53
56
56
56
57
57
57
57
64
64
66
71
73
74
74
75
77
96
98
98
100
107
108
108
115
119
119
138
142
142
162
166
166
182
186
186
374
375
376
463
464
465
466
584
588
589
1
1
10
10
10
10
12
12
15
16
18
23
25
26
30
30
30
31
32
32
34
34
36
41
49
49
49
50
52
52
54
54
54
57
58
58
66
66
66
74
76
76
76
77
78
97
99
99
101
108
116
120
120
139
141
141
143
143
163
167
167
183
187
187
375
376
377
463
464
464
465
466
585
589
590
4
5
11
11
11
11
16
17
18
23
23
25
27
29
29
29
31
31
32
32
33
33
35
35
36
41
41
47
47
49
49
49
49
51
53
55
59
59
64
64
66
66
66
66
74
74
77
77
79
98
100
102
117
121
121
140
142
142
144
164
168
168
184
188
188
376
377
378
463
464
465
465
466
586
590
591
5
6
8
12
12
15
17
18
18
18
23
24
29
30
32
32
32
32
32
32
36
36
36
36
41
42
49
49
49
49
50
50
52
54
54
56
59
66
66
66
66
67
67
72
76
76
76
77
78
78
80
80
99
101
103
118
120
120
122
122
141
143
143
145
165
167
167
169
169
185
189
189
377
378
463
465
466
466
587
591
592
4
5
5
9
12
13
13
15
15
23
23
24
25
25
25
25
29
29
32
33
33
37
37
41
41
42
43
43
43
43
47
51
51
54
55
57
59
59
64
68
68
73
74
74
77
77
79
79
81
81
102
104
119
121
121
123
142
144
146
166
168
168
170
186
190
190
377
464
466
467
588
592
593
5
6
6
10
14
14
17
17
18
18
23
23
23
25
25
33
34
34
36
38
38
41
41
41
43
43
50
51
52
54
54
54
56
56
58
58
59
60
68
69
74
76
76
77
78
80
80
82
82
97
101
103
103
105
105
120
122
122
124
143
145
147
167
169
169
171
187
191
191
378
465
467
589
593
594
5
5
5
11
15
15
15
15
18
23
32
34
35
35
39
39
41
47
47
51
52
55
57
57
59
59
59
59
60
61
61
61
61
64
64
69
74
74
76
77
79
83
83
98
102
104
104
104
105
106
106
121
123
125
134
136
146
148
168
170
172
188
192
192
378
465
590
594
595
5
6
6
12
16
16
17
17
18
23
24
25
25
29
32
32
36
40
40
41
42
43
43
47
52
52
52
53
54
56
58
58
59
59
59
60
60
61
61
64
69
69
70
76
76
76
77
77
77
77
80
84
84
99
103
103
104
104
105
105
105
105
106
107
107
122
124
126
134
136
136
137
137
141
145
147
147
149
149
169
171
173
189
193
193
370
467
591
595
596
5
5
5
13
15
15
17
17
18
23
25
25
26
26
34
34
35
37
41
41
41
43
43
44
44
47
51
51
51
53
54
54
57
59
61
61
64
68
68
68
70
71
71
74
74
77
78
78
81
85
85
103
103
104
104
105
106
106
107
107
108
108
125
127
133
136
137
137
142
146
148
148
150
150
172
174
190
192
192
194
194
368
369
371
467
592
596
597
5
5
6
6
6
6
14
17
17
18
18
18
25
27
27
32
32
35
38
42
42
43
45
45
51
52
54
54
54
54
54
58
59
60
61
61
62
62
68
69
71
71
71
71
71
79
79
82
86
86
103
104
105
105
106
107
107
107
108
108
109
109
120
124
126
126
128
128
133
136
143
147
149
149
151
151
167
171
173
173
175
175
191
193
193
195
369
370
372
593
597
598
1
5
5
5
5
7
7
15
15
15
17
17
17
18
19
19
25
25
27
34
34
35
39
43
43
43
43
45
51
51
54
55
59
59
61
61
62
62
63
63
68
68
71
72
74
79
83
87
87
103
104
105
106
106
107
108
108
110
110
121
125
127
127
129
129
136
148
152
152
168
172
174
174
176
176
192
194
194
196
370
371
373
594
598
599
1
1
8
8
8
16
17
17
17
18
18
18
18
18
18
20
27
27
27
32
32
35
40
44
44
45
45
45
55
56
60
61
63
63
64
64
72
73
74
79
79
84
88
88
103
106
107
107
108
111
111
122
126
128
128
130
130
133
149
153
153
169
173
175
175
177
177
193
195
197
371
372
374
595
599
600
5
9
9
15
15
17
18
19
19
19
19
21
25
25
27
34
34
35
41
43
43
43
43
45
45
45
54
56
57
61
61
61
63
65
65
71
73
74
74
74
79
80
85
89
89
107
108
108
112
112
127
131
131
150
154
154
174
178
178
194
196
198
372
373
375
596
600
601
5
9
10
18
20
20
20
22
27
27
27
32
32
34
35
42
44
44
45
45
45
46
51
54
54
62
63
63
63
66
66
68
71
71
79
79
80
81
81
81
81
86
90
90
108
109
113
113
128
132
132
151
155
155
175
179
179
197
199
373
374
467
597
601
602
5
5
9
11
15
19
20
21
23
25
25
27
34
34
34
35
35
35
35
43
43
43
45
45
45
45
45
45
47
56
56
57
61
61
63
63
67
67
73
73
74
74
79
79
79
81
81
87
91
91
110
114
114
129
133
133
152
156
156
176
180
180
192
196
198
198
200
200
373
465
467
468
598
602
603
8
8
8
8
10
12
12
15
20
20
22
24
27
27
27
32
32
35
36
36
44
45
45
45
45
46
46
46
48
54
54
57
63
63
63
64
68
68
71
71
74
79
88
90
90
92
92
111
113
113
115
115
130
134
134
153
157
157
177
181
181
193
197
199
199
201
201
374
466
468
599
603
604
5
9
11
11
11
11
12
15
15
17
20
21
21
23
23
25
25
25
25
27
27
27
27
37
37
43
45
47
47
47
49
56
56
57
61
61
63
65
69
69
73
73
74
79
80
81
81
89
91
91
93
104
105
112
114
114
116
131
134
135
135
136
154
158
158
178
182
182
194
198
200
200
202
202
375
466
600
604
605
8
8
12
13
18
20
20
21
22
22
22
22
22
24
24
26
26
27
27
27
27
28
28
32
37
47
48
48
50
54
54
57
63
63
63
66
68
68
70
70
71
71
74
79
81
81
82
82
90
92
92
94
103
104
104
105
105
106
113
115
115
117
132
134
136
136
136
136
137
137
155
159
159
179
183
183
199
203
203
366
468
601
605
606
13
14
15
19
20
20
20
22
22
23
25
25
25
27
27
29
29
32
37
37
43
43
43
47
48
49
49
51
51
56
56
57
61
61
63
63
63
63
67
69
69
71
73
73
74
81
83
83
91
93
95
103
103
104
105
106
106
107
107
114
116
118
133
133
136
137
137
137
137
156
160
160
180
184
184
200
204
204
364
366
367
468
602
606
607
4
4
5
12
14
15
20
24
28
28
29
30
32
32
37
38
43
44
48
48
48
49
50
50
52
52
54
54
56
57
63
63
63
63
64
64
68
70
70
71
71
72
73
74
81
81
83
92
94
96
103
104
105
106
107
107
107
108
108
115
117
119
133
134
136
138
138
157
159
159
161
161
181
185
185
201
205
205
365
367
368
603
607
608
1
5
5
5
5
5
5
6
8
11
11
20
21
22
22
25
25
25
29
29
30
37
37
38
39
39
39
39
43
45
47
47
47
49
49
50
50
51
51
53
53
56
56
56
57
57
57
57
61
65
65
69
71
73
73
73
73
74
74
74
74
83
83
83
95
97
103
104
105
106
107
108
108
118
120
135
136
139
139
158
160
160
162
182
186
186
202
206
206
366
368
369
604
608
609
1
1
6
6
7
7
14
14
15
20
22
22
23
23
25
26
30
30
30
30
31
32
37
37
37
39
39
47
48
50
50
50
50
50
50
54
54
54
54
57
58
58
65
66
70
71
71
72
74
74
75
75
81
81
83
90
94
96
96
98
98
103
106
107
108
113
117
119
119
121
121
133
136
138
138
140
140
159
161
161
163
183
185
185
187
187
203
207
207
367
369
370
605
609
610
4
5
7
7
8
8
11
11
15
22
24
24
25
27
29
29
29
31
31
31
32
32
37
47
47
50
51
51
55
55
59
59
61
61
66
73
75
76
76
83
83
83
91
95
97
97
99
99
107
108
114
118
120
120
122
122
137
139
139
141
160
162
164
184
186
186
188
204
208
208
368
370
371
606
610
611
4
5
6
9
9
14
14
15
22
22
24
28
29
30
32
32
32
32
32
32
32
37
38
39
39
51
52
52
54
56
56
59
61
66
66
67
68
71
72
74
74
76
76
76
81
81
83
83
83
83
92
96
98
98
100
100
108
115
119
121
121
123
123
138
140
140
142
161
163
165
185
187
187
189
205
209
209
369
371
468
607
611
612
4
5
5
5
10
10
11
11
15
24
24
24
29
29
29
32
33
33
33
37
39
39
40
40
50
52
53
53
54
57
57
59
59
61
65
65
65
67
68
68
69
71
73
75
75
76
76
77
77
83
83
83
83
84
84
97
101
101
120
124
124
139
141
143
164
166
186
188
190
206
208
208
210
210
369
466
468
469
608
612
613
5
6
6
6
11
11
14
14
15
22
22
24
30
33
34
34
34
39
41
41
47
50
50
54
54
54
58
58
59
60
65
66
68
68
68
68
68
70
71
71
74
76
76
76
77
78
78
81
85
85
98
102
102
121
125
125
140
142
144
159
163
165
165
167
167
187
189
191
207
209
209
211
371
467
469
609
613
614
5
5
5
7
11
11
12
12
14
15
24
24
24
31
32
34
35
35
35
39
39
41
52
52
53
55
59
59
59
59
60
61
61
61
61
65
65
68
69
75
76
76
77
78
78
78
78
79
79
85
86
99
103
103
104
105
122
126
126
136
143
145
160
164
166
166
168
168
190
192
208
210
210
212
371
467
610
614
615
5
6
6
8
13
13
14
14
14
15
15
15
15
22
22
24
29
32
32
32
36
36
41
41
41
50
50
53
54
56
59
59
59
60
60
61
61
69
70
71
76
76
76
76
78
78
80
80
81
81
86
100
103
104
104
104
104
105
105
106
123
127
127
136
136
138
142
144
144
146
146
161
165
167
167
169
169
185
189
191
191
193
193
209
211
213
469
611
615
616
5
5
5
9
11
11
14
14
15
16
16
24
24
24
33
34
34
35
35
35
37
37
39
39
41
52
52
53
57
59
61
61
68
70
71
76
77
81
81
81
86
86
87
101
103
103
104
105
105
105
106
106
107
124
128
128
133
134
136
139
143
145
145
147
147
166
170
170
186
190
192
192
194
194
210
212
214
469
612
616
617
5
5
6
6
6
6
10
15
15
17
17
22
22
24
24
24
24
32
32
34
35
36
36
38
41
41
41
50
50
53
58
59
60
61
61
62
62
65
68
68
76
77
78
78
78
81
82
82
85
85
85
87
88
88
102
103
104
105
106
106
106
107
107
108
125
129
129
131
133
134
134
136
140
144
146
146
148
148
167
171
171
187
191
193
193
195
195
213
215
359
613
617
618
5
5
5
5
7
7
11
11
14
14
16
16
17
24
24
24
24
25
25
34
34
35
35
37
37
39
39
39
41
41
41
41
52
52
53
59
59
61
61
61
61
62
62
63
63
70
70
71
76
78
78
79
79
79
83
83
85
86
88
88
88
88
88
103
103
104
105
105
106
107
107
107
108
108
126
130
130
131
134
136
145
149
149
168
172
172
192
196
196
208
212
214
214
216
216
360
361
361
614
618
619
8
8
8
11
12
15
15
17
17
17
22
26
26
32
32
35
36
38
40
41
41
41
41
42
42
50
50
52
53
60
61
62
62
63
63
64
68
68
71
78
80
80
80
84
84
85
85
88
89
103
104
104
105
106
106
106
107
108
108
108
127
131
131
133
146
150
150
169
173
173
193
197
197
209
213
215
215
217
217
361
362
362
615
619
620
1
1
5
9
9
11
11
13
16
16
17
18
18
26
27
34
34
35
37
39
39
41
43
43
52
52
52
53
53
53
53
61
61
61
63
63
63
65
70
70
71
78
78
80
81
85
85
89
90
105
107
107
107
108
109
128
132
132
147
151
151
170
174
174
194
198
198
210
214
216
216
218
218
362
363
363
616
620
621
1
1
1
5
9
10
14
17
17
17
18
19
19
19
19
19
22
22
27
32
32
34
35
40
42
43
44
50
50
53
54
54
62
63
63
63
64
66
68
68
71
80
80
80
82
86
86
88
90
91
106
108
108
108
110
129
131
131
133
133
148
152
152
171
175
175
195
199
199
215
219
219
363
364
364
617
621
621
622
5
5
9
11
11
15
17
17
17
18
19
19
20
22
27
27
28
34
34
34
35
35
35
35
35
39
39
39
41
41
43
43
44
55
55
61
61
63
63
65
67
70
70
71
78
78
80
83
85
87
87
88
88
107
109
111
130
132
132
134
149
153
153
172
176
176
196
200
200
216
220
220
364
365
365
618
621
622
623
8
8
8
8
10
12
12
17
19
21
22
26
26
26
28
29
29
32
32
35
36
36
36
39
40
42
42
44
44
44
44
45
50
55
63
63
63
66
68
68
68
70
71
80
80
80
84
86
86
88
88
90
90
91
108
110
112
131
133
133
135
150
154
154
173
177
177
197
201
201
217
221
221
366
366
366
467
619
623
624
4
5
9
11
11
11
11
12
13
17
18
18
19
19
20
20
22
22
26
27
29
29
29
29
29
37
37
37
39
41
43
43
43
43
43
45
45
45
46
46
50
55
55
61
61
61
63
65
67
67
69
69
70
70
70
71
71
71
71
78
78
80
80
80
80
85
87
87
88
88
89
91
111
113
132
134
136
151
155
155
174
178
178
198
202
202
218
222
222
364
366
468
620
624
625
4
5
5
5
8
8
12
13
14
17
19
19
19
20
20
21
21
23
23
26
26
29
30
32
37
42
43
44
46
46
46
46
46
46
46
50
50
55
56
62
63
63
63
66
68
68
68
68
70
70
71
72
72
80
80
80
80
81
81
86
88
88
90
90
90
91
100
100
102
102
106
110
112
112
114
114
133
133
133
135
137
152
156
156
175
177
177
179
179
199
201
201
203
203
219
223
223
468
621
625
626
4
5
5
5
6
6
13
14
15
19
20
21
21
22
22
24
24
30
31
32
37
37
43
43
43
46
47
47
47
55
55
56
57
57
57
57
61
61
63
63
63
63
63
67
69
69
71
71
73
73
78
82
82
87
88
88
89
91
91
100
100
100
102
102
102
102
102
103
103
107
111
113
113
115
115
130
130
133
136
138
153
157
157
176
178
178
180
200
202
202
204
220
224
224
622
626
627
4
4
5
6
7
7
12
14
15
19
19
21
21
25
25
29
31
32
32
32
37
38
44
47
48
48
48
50
55
55
55
57
57
63
63
63
63
64
64
68
68
72
72
73
82
83
88
90
90
90
91
92
100
102
102
102
102
103
103
103
104
104
108
112
114
114
116
116
130
131
131
133
133
135
137
137
139
139
154
156
156
158
158
177
179
179
181
201
203
203
205
221
225
225
469
469
623
627
628
4
5
5
5
5
7
8
8
8
11
11
21
21
21
22
26
26
26
29
29
37
37
38
39
39
39
39
45
46
48
49
49
49
55
61
65
65
68
69
73
73
73
73
78
78
83
88
88
90
91
91
93
102
103
104
104
104
105
105
113
117
117
131
131
132
133
136
138
138
140
140
155
157
157
159
178
180
182
202
204
206
222
226
226
352
470
470
470
470
624
628
629
4
4
5
6
8
9
9
14
14
15
19
19
21
23
27
27
31
31
32
32
37
37
37
39
39
43
46
46
46
50
50
55
56
57
57
65
66
68
68
70
73
74
74
74
78
83
83
84
86
90
90
90
90
91
91
91
91
92
92
94
94
102
104
105
105
105
114
118
118
125
131
133
137
139
139
141
141
156
158
158
160
179
181
183
203
205
207
223
227
227
353
356
470
470
470
470
471
471
625
629
630
4
5
6
7
9
10
10
11
11
15
21
21
21
24
28
28
29
29
32
37
47
48
48
49
51
51
55
57
57
58
58
61
61
66
71
73
73
74
75
75
75
75
75
75
78
82
82
82
84
85
85
87
88
88
91
91
92
92
93
93
95
95
101
105
115
119
119
125
138
142
142
157
159
161
182
184
206
208
224
226
226
228
228
354
356
357
471
471
472
472
626
630
631
1
7
7
8
9
11
11
14
14
15
19
19
21
25
29
29
31
31
32
37
38
39
39
46
46
48
49
52
52
57
59
59
61
66
66
67
68
72
73
73
73
75
75
76
76
82
83
85
85
85
85
85
88
92
93
93
94
94
96
96
102
116
120
120
139
143
143
158
160
162
177
181
183
183
185
185
201
205
207
207
209
209
225
227
227
229
355
357
358
472
472
627
631
632
1
1
7
9
10
11
11
12
12
15
21
21
21
26
29
29
30
30
32
37
39
39
40
40
48
48
49
49
53
53
57
57
59
61
65
65
65
67
68
68
73
73
77
77
82
82
85
86
88
93
93
97
97
117
121
121
140
144
144
161
163
178
182
184
184
186
186
202
206
208
208
210
210
226
228
228
230
356
358
359
628
632
633
1
7
7
8
11
13
13
14
14
15
19
19
21
21
21
21
27
31
31
31
31
32
39
41
41
46
46
49
50
54
54
59
59
59
65
66
68
68
68
68
68
73
74
74
75
75
78
78
86
87
88
93
93
94
98
98
118
122
122
141
145
145
156
160
162
162
164
164
179
183
185
185
187
187
203
207
209
209
211
211
227
229
231
357
359
360
470
629
633
634
1
7
8
8
9
9
11
11
12
14
14
15
21
21
21
21
22
22
28
29
29
31
32
32
32
39
39
41
48
48
49
51
53
53
55
55
57
57
59
65
65
68
69
73
75
75
75
76
76
79
79
85
87
88
88
88
93
94
95
99
99
119
123
123
142
146
146
157
161
163
163
165
165
184
188
188
208
212
212
228
230
232
357
360
361
470
470
471
633
634
635
7
7
7
7
8
9
9
11
13
13
14
14
14
15
15
15
15
15
15
19
23
23
29
31
31
31
32
32
32
32
33
33
41
41
41
46
46
48
49
52
54
54
56
59
59
59
69
70
75
76
77
77
80
80
82
85
85
93
93
94
95
95
95
95
96
97
99
100
100
120
124
124
124
143
147
147
158
162
164
164
166
166
185
189
189
209
213
213
231
233
361
470
471
472
629
634
635
636
7
7
8
9
11
11
12
12
14
14
15
16
16
16
16
23
24
29
29
30
32
32
32
33
33
34
34
39
39
41
48
48
48
49
49
49
49
53
55
55
57
57
57
59
68
70
71
75
75
77
77
79
79
81
81
87
87
88
88
93
93
93
95
95
97
97
99
100
100
101
101
121
125
125
130
144
148
148
163
167
167
186
190
190
210
214
214
226
230
232
232
234
234
361
472
473
635
636
637
9
10
13
13
15
15
17
17
17
17
19
19
24
31
33
33
34
34
35
41
41
41
46
46
49
50
50
54
56
58
59
59
59
65
68
68
77
77
77
78
80
80
82
85
85
88
93
97
98
99
100
100
101
102
102
122
124
124
124
126
126
130
145
149
149
164
168
168
187
191
191
211
215
215
227
231
233
233
235
235
361
468
473
636
637
638
8
10
11
11
14
17
18
18
19
24
24
25
29
32
34
34
34
36
39
39
41
41
41
41
51
51
55
57
57
57
59
59
59
59
59
70
70
71
75
75
77
79
81
81
83
87
87
88
93
94
95
95
97
99
99
100
100
101
102
103
103
123
125
125
127
130
146
150
150
165
169
169
188
192
192
212
216
216
228
232
234
234
236
236
469
473
474
637
638
639
7
9
9
11
15
17
17
19
19
19
23
23
23
25
26
26
29
33
34
34
35
37
41
41
41
41
42
42
46
51
58
59
59
59
59
60
60
60
68
68
71
77
77
77
80
82
84
85
85
88
93
95
95
96
96
97
99
100
100
100
101
102
102
102
104
104
124
124
126
126
128
128
130
147
149
149
151
151
166
170
170
189
193
193
213
217
217
233
237
237
469
473
475
638
639
640
10
10
11
11
11
16
17
18
20
20
23
24
26
26
26
26
26
29
29
34
34
35
36
38
39
43
43
46
51
51
53
57
57
59
59
61
61
61
61
70
70
71
75
75
77
77
77
77
81
83
85
87
87
88
95
97
97
97
99
100
100
101
101
102
103
103
105
125
127
128
128
128
129
130
148
150
150
152
167
171
171
190
194
194
214
218
218
234
238
238
349
469
473
474
476
639
640
641
9
9
11
17
17
17
18
19
19
19
19
21
21
23
23
26
27
34
34
35
36
36
36
36
37
39
43
44
46
46
51
52
54
58
60
60
61
62
62
62
68
68
71
77
77
77
77
78
78
84
85
85
86
87
88
95
95
97
100
100
100
101
102
102
104
104
106
125
125
126
128
130
130
149
151
151
153
168
172
172
191
193
193
195
195
215
219
219
235
239
239
350
351
351
473
474
475
640
641
642
10
10
11
11
17
17
17
18
19
19
22
22
27
28
29
32
34
34
34
36
36
36
38
38
39
39
40
40
44
51
51
52
53
53
53
53
55
57
57
59
61
61
62
63
63
70
70
71
75
79
79
79
83
85
85
87
87
87
87
87
88
88
88
88
97
97
97
99
99
101
102
103
105
107
129
131
150
152
154
169
173
173
192
194
194
196
216
220
220
236
240
240
351
352
352
469
474
475
641
642
643
1
1
2
9
9
11
17
19
23
23
26
28
29
33
34
37
39
39
39
41
41
44
44
45
46
51
51
51
53
53
57
60
62
62
63
64
64
68
68
70
71
79
80
80
84
85
85
86
86
88
88
88
89
89
95
95
97
102
104
106
108
124
128
130
130
132
132
151
153
155
170
174
174
193
195
195
197
217
219
219
221
221
237
241
241
352
353
353
475
642
643
644
1
1
1
2
3
10
10
11
17
18
19
19
20
23
24
24
26
26
34
34
35
36
36
38
39
40
40
42
42
43
43
43
45
46
46
51
57
61
61
61
61
63
64
64
65
65
70
70
70
71
71
71
71
75
75
80
81
85
87
87
89
89
90
90
97
97
97
107
109
125
129
131
131
133
133
154
156
171
175
175
194
196
198
218
220
220
222
238
242
242
353
354
354
473
476
643
643
644
645
3
4
9
9
10
11
17
19
19
20
20
21
25
25
28
28
29
34
36
36
37
37
39
43
43
43
44
46
46
46
46
46
51
52
53
53
61
62
62
64
64
64
64
64
66
66
68
68
71
72
72
75
80
80
81
85
86
90
90
90
95
95
97
102
106
108
108
110
110
126
130
132
132
134
134
149
153
155
155
157
157
172
174
174
176
176
195
197
199
219
221
221
223
239
243
243
354
355
355
469
474
644
644
645
646
3
4
4
5
10
10
10
11
11
11
11
19
21
21
22
26
26
26
26
29
36
38
38
40
43
43
44
44
46
47
51
53
53
54
54
61
61
63
64
65
67
67
73
73
75
79
79
79
81
82
82
85
87
90
90
91
91
97
97
97
103
107
109
109
111
111
131
135
135
150
154
156
156
158
158
173
175
175
177
198
200
220
222
224
240
244
244
354
356
356
475
645
646
647
5
5
6
9
9
11
12
12
19
19
21
23
25
25
27
27
28
28
29
36
36
38
41
45
45
47
48
53
55
55
64
65
66
68
68
68
73
79
80
82
82
82
82
82
85
85
88
90
91
92
92
95
95
97
97
97
97
104
108
110
110
112
112
132
136
136
151
155
157
157
159
159
174
176
176
178
193
197
199
199
201
201
221
223
225
241
245
245
356
356
476
646
647
648
6
7
13
13
21
21
21
24
26
26
26
26
28
29
38
38
38
42
46
46
46
48
49
53
53
55
64
65
66
67
68
69
69
73
73
79
79
82
83
89
90
90
91
92
92
92
92
93
93
96
96
97
97
97
97
97
97
98
98
109
113
113
124
124
133
137
137
156
160
160
175
177
179
194
198
200
200
202
202
224
226
242
244
244
246
246
473
476
647
648
649
5
5
7
8
9
13
19
19
21
25
27
27
28
28
29
29
36
36
38
43
43
46
46
47
47
55
55
55
61
64
64
66
68
68
70
70
73
74
83
84
85
90
90
90
90
92
92
94
94
95
96
96
96
97
97
97
97
97
98
98
99
99
110
114
114
124
127
127
128
134
138
138
157
161
161
176
178
180
195
199
201
201
203
203
219
223
225
225
227
227
243
245
245
247
469
474
648
649
650
4
4
5
5
8
8
9
9
13
13
21
21
21
26
26
26
28
28
29
30
38
38
38
44
48
48
48
48
49
53
53
55
66
66
67
67
71
71
73
73
74
75
75
75
75
82
84
85
90
91
95
95
96
97
97
97
97
98
98
98
99
99
99
100
111
115
115
127
127
127
128
128
128
135
139
139
158
162
162
179
181
200
204
204
220
224
226
226
228
228
244
246
246
248
346
473
475
649
650
651
5
9
9
9
9
10
10
13
14
19
19
21
27
28
28
28
29
29
29
29
29
31
36
36
38
38
38
38
45
46
46
49
49
49
55
55
55
64
64
67
68
68
72
72
73
73
73
75
75
79
82
82
90
91
92
92
92
95
95
96
96
97
98
99
99
99
100
100
100
100
112
116
116
125
125
127
136
140
140
159
163
163
174
178
180
180
182
182
201
205
205
221
225
227
227
229
229
245
247
249
347
347
347
474
474
476
476
650
651
652
4
6
10
10
11
11
13
13
14
15
15
15
15
21
21
21
26
26
29
30
30
30
32
38
38
38
38
39
39
46
48
48
49
50
50
53
53
55
66
66
67
69
71
71
73
73
73
84
84
85
90
92
92
93
93
93
95
95
95
97
97
99
99
99
100
100
100
100
100
101
113
117
117
137
141
141
160
164
164
175
179
181
181
183
183
202
206
206
226
230
230
246
248
250
348
348
348
474
474
476
476
477
477
651
652
653
1
5
7
7
9
12
12
13
13
13
15
15
19
19
21
21
21
21
25
29
31
31
31
31
33
33
36
40
40
46
46
47
49
51
51
55
55
55
64
64
67
70
72
72
73
74
74
75
75
82
82
85
92
94
94
94
95
96
96
98
99
99
99
100
101
102
102
114
118
118
138
142
142
161
165
165
176
180
182
182
184
184
203
207
207
227
231
231
249
251
349
349
349
477
477
478
478
652
653
654
1
1
4
5
5
8
13
13
13
21
21
21
21
22
22
26
26
30
31
32
32
34
34
40
41
48
48
48
49
50
50
52
52
53
53
55
55
55
55
66
66
67
71
73
73
73
75
75
75
76
76
84
84
85
92
92
94
95
97
97
99
99
100
102
102
102
102
102
115
119
119
139
143
143
162
166
166
181
185
185
204
208
208
228
232
232
244
248
250
250
252
252
350
350
350
478
478
653
654
655
5
5
7
9
13
14
14
14
15
15
19
23
23
26
27
31
31
31
33
33
35
35
36
36
41
46
46
48
49
49
51
51
53
55
55
55
55
56
56
64
64
66
67
72
74
75
76
77
77
82
82
85
94
94
94
96
98
99
99
100
102
103
116
120
120
140
142
142
144
144
163
167
167
182
186
186
205
209
209
229
233
233
245
249
251
251
253
253
351
351
351
474
474
654
655
656
5
5
7
10
13
15
15
15
15
16
16
23
24
26
26
31
32
32
36
36
36
41
41
42
48
48
48
49
49
49
49
50
52
52
53
54
57
57
66
66
66
67
67
67
67
73
75
75
75
77
77
84
84
85
92
92
94
97
99
101
103
104
117
121
121
141
143
143
145
164
168
168
183
187
187
206
210
210
230
234
234
246
250
252
252
254
254
351
352
352
475
475
476
476
476
655
656
657
5
5
7
11
15
16
16
17
17
19
19
24
31
31
32
33
33
33
33
33
36
37
37
40
40
40
42
43
43
46
46
49
50
50
51
53
55
57
58
64
64
67
68
68
76
77
77
77
78
82
82
84
85
94
94
94
100
102
102
104
105
118
120
120
122
122
142
144
144
146
165
167
167
169
169
184
188
188
207
211
211
231
235
235
251
255
255
352
352
477
477
477
656
657
658
5
5
7
12
15
15
17
17
17
19
24
24
25
26
31
31
31
33
33
34
38
38
40
41
43
43
43
43
43
51
51
52
53
53
54
56
58
69
69
71
75
75
75
77
77
77
79
79
84
84
84
85
85
85
85
92
92
94
95
99
99
101
101
102
102
103
103
119
121
121
123
143
145
147
166
168
168
170
185
189
189
208
212
212
232
236
236
252
256
256
477
478
478
657
658
659
5
5
7
13
17
17
17
18
18
19
23
23
23
25
26
26
31
35
39
39
40
40
43
44
46
51
53
55
57
58
58
59
64
69
72
76
77
77
77
78
78
80
80
82
82
85
86
86
94
94
94
96
96
97
100
102
102
104
104
104
104
105
120
122
122
124
124
128
144
146
148
167
169
169
171
186
190
190
209
211
211
213
213
233
237
237
253
257
257
478
478
658
659
660
5
5
5
7
14
15
15
17
19
19
23
24
26
26
26
26
26
31
32
33
33
36
40
40
44
45
46
50
51
51
53
54
56
56
57
57
57
58
58
59
60
60
64
69
69
73
75
75
77
77
77
77
77
79
79
81
81
87
87
92
92
94
94
94
94
96
96
96
97
97
97
97
97
98
101
102
102
103
103
105
105
105
121
123
124
124
125
127
128
128
128
147
149
168
170
172
187
191
191
210
212
212
214
234
238
238
254
258
258
342
659
660
661
5
5
5
6
7
7
7
15
17
17
17
20
20
23
23
26
27
31
33
33
34
34
37
41
41
43
45
46
46
46
51
51
52
55
57
57
57
58
59
59
60
60
60
60
60
64
64
69
70
77
77
77
77
78
78
78
82
82
82
87
94
94
94
94
95
95
96
96
97
97
97
97
97
98
98
98
99
100
102
104
104
105
106
106
122
124
125
125
126
127
127
127
142
146
148
148
150
150
169
171
173
188
190
190
192
192
211
213
213
215
235
237
237
239
239
255
259
259
343
343
344
660
661
662
5
5
7
8
8
15
15
16
17
19
19
21
21
27
28
33
35
35
38
40
42
42
43
43
51
51
52
52
53
53
53
53
56
57
57
58
58
60
60
60
61
69
69
70
71
71
71
71
75
79
79
79
82
83
83
87
87
92
96
96
97
97
98
98
99
99
99
99
99
100
102
102
103
105
107
107
125
127
127
127
143
147
149
149
151
151
172
174
189
191
191
193
212
214
216
236
238
238
240
256
260
260
344
344
345
661
662
663
1
9
9
17
17
17
17
20
20
22
26
28
29
33
33
35
39
43
43
45
45
46
46
51
51
51
53
53
57
61
61
61
62
64
69
69
69
71
71
79
80
80
82
82
84
84
87
88
96
97
99
99
100
100
100
104
104
104
105
108
108
120
124
126
126
128
128
144
148
150
150
152
152
167
171
173
173
175
175
190
192
192
194
213
215
217
237
239
239
241
257
261
261
345
345
346
662
663
664
1
1
1
1
5
5
5
5
9
15
15
17
17
17
17
18
21
21
23
23
26
26
35
35
35
40
43
43
44
44
46
51
58
60
62
62
62
63
69
75
75
80
81
85
85
87
87
88
89
89
89
89
92
92
97
100
100
102
102
104
105
105
109
109
121
125
127
127
129
129
149
153
153
168
172
174
174
176
176
191
193
195
216
218
238
240
242
258
262
262
346
346
347
663
664
665
4
4
5
5
5
6
6
6
9
9
17
17
17
17
18
18
19
22
24
28
28
29
33
33
35
41
43
43
45
45
45
45
46
51
52
53
53
57
59
60
60
63
63
69
70
71
71
75
80
80
81
82
82
86
86
87
87
87
89
89
92
97
97
98
104
104
104
105
105
105
105
106
110
110
122
126
128
128
130
130
150
154
154
169
173
175
175
177
177
192
194
196
211
215
217
217
219
219
239
241
243
259
263
263
347
347
348
664
665
666
5
5
5
7
7
7
7
9
10
15
19
19
20
23
25
26
26
29
35
35
35
42
43
43
44
44
46
46
51
53
53
54
54
60
62
62
63
64
64
69
71
71
72
72
75
79
79
79
81
82
82
83
87
87
87
92
96
96
96
98
99
99
102
102
105
106
106
107
111
111
127
131
131
151
155
155
174
178
178
195
197
212
216
218
218
220
220
242
244
260
262
262
264
264
347
348
349
477
665
666
667
4
6
8
8
8
8
9
9
10
11
11
11
11
19
20
24
26
28
28
29
33
33
35
35
35
35
43
45
45
45
45
46
47
53
55
55
60
60
61
63
65
65
71
73
73
79
80
82
82
82
82
82
84
87
88
88
88
89
89
96
97
99
99
99
99
99
107
107
108
112
112
128
132
132
152
156
156
175
179
179
190
194
196
196
198
198
213
217
219
219
221
221
237
241
243
243
245
245
261
263
263
265
348
349
478
478
478
666
667
668
5
5
7
9
9
9
9
9
11
11
15
15
18
20
23
25
25
26
26
27
27
29
35
35
35
35
36
36
43
43
44
45
46
46
48
53
53
55
62
62
62
63
66
66
71
71
73
79
79
82
83
85
87
87
87
89
89
89
89
90
90
96
96
99
100
102
107
109
113
113
129
133
133
153
157
157
176
180
180
191
195
197
197
199
199
218
222
222
238
242
244
244
246
246
262
264
264
266
478
479
479
667
668
669
4
4
5
5
9
10
10
15
19
20
20
21
24
26
26
28
28
28
28
29
33
37
37
45
45
45
45
46
46
46
46
47
49
55
55
55
60
60
63
63
67
67
73
73
73
83
84
86
88
88
89
90
91
91
96
97
100
101
102
107
107
110
114
114
124
128
130
134
134
154
158
158
177
181
181
192
196
198
198
200
200
219
223
223
239
243
245
245
247
247
263
265
267
479
479
668
669
670
5
5
5
7
9
10
11
11
11
11
15
19
19
19
20
21
22
22
25
26
26
27
27
28
29
29
29
37
38
43
43
46
47
47
48
50
53
53
55
62
62
63
64
68
68
71
71
73
82
84
85
87
89
89
89
89
91
91
96
96
96
97
97
97
97
98
99
101
102
102
102
107
108
111
113
113
115
115
124
124
127
128
128
128
131
135
135
155
159
159
178
182
182
197
201
201
220
224
224
244
248
248
264
266
268
338
669
670
671
5
5
6
7
9
11
11
12
12
12
12
19
20
22
22
22
22
22
26
28
28
28
29
29
29
29
30
30
33
33
38
43
47
48
48
49
49
51
51
55
55
55
60
60
62
63
65
69
69
73
73
73
79
82
82
88
90
91
91
91
92
96
96
96
97
97
97
97
97
98
98
98
99
99
99
100
107
107
108
109
109
109
109
112
114
114
116
125
125
127
127
127
132
136
136
156
160
160
179
183
183
198
202
202
221
225
225
245
249
249
267
269
339
340
340
670
671
672
5
5
7
8
11
13
13
13
13
19
19
22
23
26
26
27
29
30
30
31
31
33
38
38
39
43
44
48
48
50
50
52
52
53
53
55
62
62
62
63
63
63
63
66
68
68
70
70
71
71
73
73
73
73
84
84
85
89
89
89
91
91
93
97
97
98
98
99
99
99
99
99
100
101
101
102
102
107
107
107
109
109
113
115
115
117
127
127
133
137
137
157
161
161
180
184
184
199
203
203
222
226
226
246
250
250
262
266
268
268
270
270
340
341
341
671
672
673
1
5
5
7
9
11
11
13
14
14
23
24
28
31
31
32
32
33
37
37
37
39
40
40
43
45
48
48
49
51
51
53
53
55
55
55
60
60
63
64
64
67
69
69
71
73
73
73
73
74
74
82
82
85
91
91
91
92
94
99
99
99
99
100
100
100
102
107
114
116
118
134
138
138
158
160
160
162
162
181
183
183
185
185
200
204
204
223
227
227
247
251
251
263
267
269
269
271
271
341
342
342
672
673
674
1
1
5
5
7
10
13
13
13
15
15
22
24
25
26
29
31
33
33
37
38
40
40
40
40
40
43
43
48
49
50
53
53
54
54
55
55
55
55
65
65
68
70
70
71
72
75
75
84
84
85
87
89
89
91
91
93
93
95
95
100
100
101
101
102
107
108
109
109
115
117
119
135
139
139
159
161
161
163
182
184
184
186
201
205
205
224
228
228
248
252
252
264
268
270
270
272
272
342
343
343
673
674
675
5
5
5
7
11
11
11
13
16
16
19
22
22
26
30
31
31
34
34
37
37
40
41
48
48
49
50
50
50
50
51
55
55
55
55
55
55
56
56
60
65
69
71
73
75
76
82
82
85
88
91
91
91
92
94
94
96
96
99
99
102
107
109
109
110
110
118
120
136
138
138
140
140
160
162
162
164
183
185
185
187
202
206
206
225
229
229
249
253
253
269
273
273
343
344
344
674
675
676
5
5
5
6
7
7
7
12
13
13
13
17
17
24
24
25
26
26
31
31
32
35
35
41
42
43
48
48
48
50
50
52
53
56
56
57
57
60
65
65
70
71
71
72
74
76
84
84
85
89
89
89
91
91
91
91
93
95
95
97
97
101
101
102
109
111
111
113
117
119
119
121
121
137
139
139
141
161
163
165
184
186
188
203
207
207
226
230
230
250
254
254
270
274
274
343
345
345
478
675
676
677
5
5
7
8
8
11
11
13
13
16
16
18
18
22
22
25
31
31
32
32
33
33
33
33
36
36
40
42
43
48
53
57
57
57
58
60
60
65
66
71
73
75
76
76
77
82
82
84
85
91
91
91
91
92
92
94
98
98
99
99
101
102
109
109
111
114
118
120
120
122
122
138
140
140
142
162
164
166
185
187
189
204
208
208
227
229
229
231
231
251
255
255
271
275
275
345
345
479
479
479
676
677
678
9
9
13
13
13
14
17
17
19
24
24
25
26
31
31
31
33
33
33
37
37
37
40
40
48
49
50
50
53
53
54
58
58
58
65
65
66
67
67
67
67
68
71
72
74
74
75
75
75
76
76
77
78
78
84
84
84
85
85
85
85
89
93
93
95
99
99
101
101
101
102
102
102
102
111
111
111
115
119
121
121
123
123
139
141
143
165
167
188
190
205
209
209
228
230
230
232
252
256
256
272
276
276
479
480
480
677
678
679
5
9
11
11
13
13
13
13
15
18
18
20
22
22
25
31
34
38
38
42
42
43
48
50
50
51
51
53
55
58
58
59
59
59
60
65
65
65
67
67
69
73
75
75
75
76
77
77
78
78
78
78
78
82
82
85
86
86
93
94
96
96
97
99
99
100
100
102
103
103
109
109
111
120
124
124
124
140
142
144
160
164
166
166
168
168
183
187
189
189
191
191
206
208
208
210
210
229
231
231
233
253
255
255
257
257
273
277
277
480
480
678
679
680
5
9
9
13
13
13
13
14
14
16
19
21
24
24
25
31
32
33
33
35
37
37
39
39
40
40
43
50
52
52
53
56
57
57
57
59
60
60
60
60
65
70
74
75
75
76
76
78
78
78
79
87
87
89
89
94
96
96
96
97
97
97
97
97
98
101
101
104
104
111
111
111
121
124
124
125
125
125
127
143
145
161
165
167
167
169
169
184
188
190
190
192
192
207
209
209
211
230
232
234
254
256
256
258
274
278
278
679
680
681
5
5
9
10
11
15
15
17
20
22
22
22
24
25
31
33
33
34
34
36
38
38
40
42
42
43
50
50
52
57
57
58
60
60
60
60
60
61
61
65
66
67
67
75
79
79
79
80
82
87
89
94
94
95
96
96
97
97
97
97
97
98
98
98
98
99
99
102
102
104
109
109
111
111
111
111
122
122
125
125
126
126
127
127
127
138
142
144
144
146
146
162
166
168
168
170
170
185
189
191
191
193
193
208
210
210
212
231
233
235
255
257
257
259
275
279
279
333
680
681
682
9
9
10
11
11
11
11
15
16
21
23
24
24
24
25
25
25
25
33
35
35
37
39
39
40
40
41
43
52
52
52
57
57
58
60
61
62
62
65
67
67
68
68
76
78
80
80
80
81
82
87
87
89
93
93
93
95
96
96
97
97
98
98
98
99
99
99
99
99
100
103
103
104
104
111
111
111
111
112
112
122
123
125
127
127
127
127
139
143
145
145
147
147
167
171
171
190
194
194
209
211
213
234
236
256
258
260
276
278
278
280
280
334
335
335
681
682
683
1
4
5
9
9
9
11
11
11
11
15
16
20
22
22
22
22
24
24
25
26
26
33
33
35
38
40
42
42
42
43
50
50
52
59
61
61
61
62
63
63
67
69
69
75
77
78
78
81
81
82
82
87
88
93
94
96
96
96
96
96
97
98
99
99
99
99
100
100
100
100
104
104
104
105
109
113
113
124
128
128
140
144
146
146
148
148
168
172
172
191
195
195
210
212
214
229
233
235
235
237
237
257
259
261
277
279
279
281
335
336
336
682
683
684
1
5
5
9
11
16
16
16
17
21
23
23
25
25
27
27
35
35
35
39
40
40
41
42
43
43
52
52
52
60
60
62
62
62
63
64
67
67
69
78
80
80
81
82
82
87
87
88
89
89
89
89
93
93
96
97
100
100
101
104
104
105
105
105
106
106
106
106
113
114
125
129
129
145
149
149
169
173
173
192
196
196
213
215
230
234
236
236
238
238
260
262
278
280
280
282
336
337
337
683
684
685
1
1
1
5
5
6
9
10
11
11
11
15
15
15
17
17
18
18
22
22
24
24
26
26
27
33
33
35
42
42
42
42
43
43
43
43
44
50
50
52
57
60
60
61
63
63
65
69
69
69
78
78
79
81
82
83
83
87
87
87
89
89
97
98
99
102
104
104
104
106
106
106
106
109
109
114
126
130
130
146
150
150
170
174
174
193
197
197
208
212
214
214
216
216
231
235
237
237
239
239
255
259
261
261
263
263
279
281
283
337
338
338
684
685
686
4
4
4
5
6
7
9
11
11
12
12
15
16
18
18
18
18
18
22
23
27
27
27
27
35
35
35
37
40
40
41
43
43
43
44
44
45
45
52
52
52
62
62
62
63
64
66
67
67
69
80
80
80
81
84
84
87
96
98
99
103
104
105
105
107
107
109
114
114
115
127
131
131
147
151
151
171
175
175
194
198
198
209
213
215
215
217
217
236
240
240
256
260
262
262
264
264
280
282
284
338
339
339
685
686
687
1
4
4
5
5
7
8
11
13
13
15
15
18
19
22
22
24
27
28
28
28
33
33
35
35
35
35
38
42
44
44
45
45
46
46
50
50
52
52
52
52
60
60
63
63
65
67
69
69
69
78
78
81
81
85
85
87
88
89
89
93
96
96
104
104
105
106
106
106
106
108
109
113
113
113
115
116
116
128
132
132
148
152
152
172
176
176
195
199
199
210
214
216
216
218
218
237
241
241
257
261
263
263
265
265
283
285
340
340
686
686
688
4
5
5
6
8
9
11
11
13
19
20
25
27
27
28
29
29
29
29
29
29
35
35
35
35
36
36
39
40
43
45
45
45
47
47
52
52
52
52
53
53
62
62
63
66
67
67
68
69
69
69
69
80
80
81
82
84
84
86
86
87
89
89
90
90
94
95
98
98
99
104
105
106
106
107
107
107
107
109
113
114
116
116
116
116
116
124
129
131
131
133
133
149
153
153
173
177
177
196
200
200
215
219
219
238
242
242
262
266
266
278
282
284
284
286
286
338
479
686
687
687
689
4
4
4
5
5
7
9
10
13
13
13
18
20
21
22
26
27
27
27
29
29
30
30
33
37
37
40
44
45
45
48
48
50
54
54
60
60
61
63
65
67
67
69
69
69
69
69
69
70
70
78
78
80
81
83
85
85
87
89
91
91
94
95
95
96
96
96
99
106
106
108
108
108
110
113
113
116
117
121
130
132
132
134
150
154
154
174
176
176
178
178
197
201
201
216
220
220
239
243
243
263
267
267
279
283
285
285
287
287
340
480
688
688
690
5
5
5
6
8
10
11
11
11
13
15
18
18
27
27
31
31
37
38
40
40
45
45
46
49
49
54
55
62
62
62
63
66
67
68
68
70
70
71
71
80
80
80
81
81
81
81
84
86
86
88
89
89
91
94
95
95
96
97
98
98
99
106
106
107
108
109
111
117
118
124
124
131
133
133
135
151
155
155
175
177
177
179
198
202
202
217
221
221
240
244
244
264
268
268
280
284
286
286
288
288
340
480
480
689
689
691
4
5
6
7
9
11
12
13
13
13
20
20
21
27
28
28
29
29
32
32
33
33
38
45
45
46
46
47
47
47
47
50
50
50
50
55
60
60
62
63
63
67
69
69
71
71
71
72
78
78
81
82
82
85
87
89
91
91
91
94
95
95
96
96
96
97
98
99
108
108
108
110
112
116
118
119
121
132
134
136
152
156
156
176
178
178
180
199
201
201
203
203
218
222
222
241
245
245
265
269
269
285
289
289
480
481
481
690
690
692
7
7
8
10
11
11
12
13
13
18
18
21
27
29
29
29
30
30
33
33
33
38
38
39
40
45
45
45
47
47
47
50
51
51
55
55
56
62
62
62
63
63
63
63
67
67
68
72
72
72
83
83
86
88
89
89
90
91
94
95
95
96
97
98
98
98
99
105
106
106
108
109
111
111
113
113
113
116
116
116
124
124
133
135
137
153
157
157
177
179
181
200
202
202
204
219
223
223
242
246
246
266
270
270
286
290
290
481
481
482
691
691
693
9
11
13
13
13
13
14
20
20
21
29
30
31
31
33
34
34
37
37
37
39
40
40
45
48
50
52
52
54
54
54
56
57
57
60
60
63
64
64
67
69
72
72
73
73
73
78
83
89
91
91
91
91
94
95
95
96
96
96
97
98
98
99
106
108
108
108
110
112
112
114
114
116
118
118
119
121
122
122
136
138
154
156
156
158
158
178
180
182
201
203
203
205
220
224
224
243
247
247
267
271
271
287
291
291
330
481
481
482
483
692
692
694
7
7
11
11
12
13
13
13
13
14
15
18
18
21
29
29
31
31
35
35
37
38
40
40
40
40
40
45
46
47
47
49
53
53
54
55
57
57
57
57
57
65
65
67
70
71
71
71
73
74
74
74
74
78
83
83
84
88
89
89
90
90
91
92
92
95
96
96
97
98
98
98
98
99
99
99
99
106
106
107
108
108
108
108
111
113
113
115
115
116
116
119
122
122
124
131
135
137
137
139
139
155
157
157
159
181
183
202
204
206
221
225
225
244
248
248
268
272
272
288
292
292
326
330
331
482
483
693
693
695
7
7
8
8
8
8
13
13
13
13
13
14
14
16
20
20
21
31
31
31
32
34
34
36
36
37
37
40
41
45
47
47
48
48
50
54
54
54
54
57
58
60
65
71
71
72
74
74
74
74
74
75
75
78
78
83
84
85
89
91
91
91
91
91
93
93
96
96
96
96
97
98
99
100
100
108
108
108
108
109
109
112
116
116
118
118
119
132
136
138
138
140
140
156
158
158
160
176
180
182
182
184
184
203
205
207
222
226
226
245
247
247
249
249
269
271
271
273
273
289
293
293
327
331
332
481
481
483
694
694
696
1
1
7
7
7
7
8
8
11
13
14
14
15
15
17
17
18
18
20
21
29
29
31
33
35
35
37
41
42
47
49
49
51
55
55
58
59
60
65
65
71
71
72
74
75
76
76
83
83
84
85
85
85
85
86
89
89
90
91
91
91
91
92
92
94
94
98
101
101
106
110
110
113
116
116
117
117
119
133
137
139
139
141
141
157
159
161
177
181
183
183
185
185
206
208
223
227
227
246
248
248
250
270
272
272
274
290
294
294
328
332
333
482
695
695
697
1
1
13
14
15
15
15
16
18
18
20
20
20
21
21
21
21
31
31
31
34
36
36
38
40
42
43
47
47
49
52
56
56
57
59
60
60
60
65
66
73
75
76
77
77
78
83
83
83
85
85
91
91
91
91
91
92
92
95
95
96
101
110
111
114
118
118
118
118
119
138
142
142
158
160
162
178
182
184
184
186
186
201
205
207
207
209
209
224
226
226
228
228
247
249
249
251
271
273
273
275
291
295
295
329
333
334
481
483
696
696
698
7
7
8
8
11
11
14
15
16
16
16
18
18
19
19
21
22
22
29
29
31
31
31
31
35
37
37
39
40
40
49
49
49
53
54
55
55
57
57
57
57
65
65
66
67
67
67
67
74
74
76
77
78
78
83
89
92
93
93
96
96
96
101
101
106
106
111
115
116
116
118
119
119
119
139
143
143
161
163
183
187
187
202
206
208
208
210
210
225
227
227
229
248
250
252
272
274
276
292
296
296
330
334
335
481
482
697
699
8
8
8
9
9
11
16
16
16
17
20
20
23
23
31
31
31
31
32
32
36
38
40
42
42
43
47
47
49
54
56
56
58
59
59
60
60
65
65
65
67
67
71
74
74
75
77
77
79
79
83
84
85
85
93
93
94
96
96
97
97
101
102
106
111
111
112
116
118
118
118
119
119
119
119
120
120
140
144
144
156
160
162
162
164
164
184
188
188
203
207
209
209
211
211
226
228
228
230
249
251
253
273
275
277
293
297
297
331
335
483
698
700
7
10
10
11
15
15
15
17
17
18
18
18
21
21
23
29
33
33
39
40
40
41
43
49
49
49
55
57
57
57
57
59
60
65
76
76
76
77
78
78
80
83
85
85
86
86
89
89
94
94
98
98
101
101
102
103
103
103
103
106
110
110
110
112
113
113
116
116
117
119
120
120
121
121
141
145
145
157
161
163
163
165
165
185
189
189
208
212
212
227
229
231
252
254
276
278
294
296
296
298
298
331
484
699
701
1
8
8
10
15
16
18
18
18
18
18
18
18
22
22
23
23
33
34
34
38
40
40
42
42
42
42
43
47
47
49
56
58
59
59
60
60
65
66
67
67
74
74
77
77
79
79
81
85
87
87
89
93
93
93
93
94
94
95
95
96
99
99
101
101
101
103
103
110
111
113
113
113
113
113
118
121
121
121
121
122
122
142
146
146
158
162
164
164
166
166
186
190
190
209
213
213
228
230
232
247
251
253
253
255
255
271
275
277
277
279
279
295
297
297
299
481
695
700
702
10
10
10
15
15
18
18
18
19
19
23
23
23
24
29
29
34
35
39
40
40
41
41
43
43
43
49
49
49
57
57
57
59
60
61
65
67
67
68
68
76
76
77
78
80
82
85
85
87
89
90
90
93
93
93
93
93
93
93
94
94
95
96
96
96
100
100
101
110
110
113
114
116
119
121
121
121
121
121
123
123
143
147
147
163
167
167
187
191
191
210
214
214
231
233
248
252
254
254
256
256
272
276
278
278
280
280
296
298
298
300
480
481
482
696
698
701
703
8
8
10
19
20
20
23
23
24
24
24
25
25
25
25
29
34
34
35
36
40
42
42
42
42
43
44
44
47
47
49
49
49
49
59
59
60
60
62
67
69
69
74
74
77
79
81
83
87
87
87
90
90
93
94
94
94
95
95
96
96
96
96
96
97
101
101
101
102
103
103
114
115
115
115
116
116
120
121
121
121
124
124
144
148
148
164
168
168
188
192
192
211
215
215
226
230
232
232
234
234
249
253
255
255
257
257
273
277
279
279
281
281
296
297
299
300
301
335
481
481
483
699
702
704
10
10
10
18
18
20
21
21
23
23
23
25
25
25
25
29
33
33
33
35
36
36
40
40
41
42
43
45
45
49
49
49
49
50
50
55
57
57
59
59
60
61
61
63
63
67
67
69
76
76
77
82
84
85
85
87
93
93
95
95
96
96
96
97
98
101
102
102
103
103
104
104
113
115
116
116
116
116
121
121
122
123
123
125
125
145
149
149
165
169
169
189
193
193
212
216
216
227
231
233
233
235
235
254
258
258
278
282
282
297
298
300
301
302
335
482
482
484
484
700
703
705
2
8
8
10
15
18
18
22
23
26
26
33
34
36
36
36
36
36
42
42
42
42
43
43
43
43
46
46
47
51
51
56
59
59
59
60
60
60
60
60
62
62
64
64
69
69
69
74
74
76
77
77
81
83
83
85
85
87
87
87
96
96
97
98
99
103
103
103
105
105
110
113
113
116
119
119
121
122
122
123
124
124
126
146
150
150
166
170
170
190
194
194
213
217
217
228
232
234
234
236
236
255
259
259
279
283
283
298
301
302
303
325
481
484
484
485
485
701
704
706
2
3
10
10
10
20
20
21
23
23
24
25
25
27
27
33
33
36
37
40
40
43
43
44
44
47
47
51
52
57
57
57
60
61
61
61
63
63
65
65
67
67
69
76
76
76
77
77
77
77
78
82
84
84
85
85
86
86
87
93
93
93
96
98
99
100
102
102
103
103
104
104
105
115
115
116
119
119
121
123
123
123
123
125
125
127
147
149
149
151
151
167
171
171
191
195
195
214
218
218
233
237
237
256
260
260
280
284
284
302
303
304
323
325
326
485
486
486
702
705
707
3
4
8
8
10
10
10
10
18
18
21
23
24
25
25
26
26
28
28
37
38
44
45
45
47
47
48
48
52
62
62
62
66
66
69
69
69
74
74
77
78
78
79
83
85
85
87
87
87
87
87
90
93
93
93
93
94
94
96
96
101
103
103
105
105
105
105
113
113
116
121
121
124
126
128
148
150
150
152
168
172
172
192
194
194
196
196
215
219
219
234
238
238
257
261
261
281
285
285
303
304
305
324
326
327
486
703
706
708
1
1
4
4
5
5
10
10
10
10
11
11
20
20
21
25
25
27
27
27
27
29
29
36
38
39
40
45
45
47
49
49
52
52
53
57
62
63
67
67
67
67
69
69
69
69
79
79
84
85
85
87
87
87
87
88
88
90
94
95
98
98
99
102
103
103
104
104
105
106
115
115
115
116
125
127
129
149
151
151
153
169
173
173
193
195
195
197
216
220
220
235
239
239
258
262
262
282
286
286
304
305
306
325
327
328
704
707
709
1
1
1
5
5
6
6
8
12
12
18
18
21
25
25
26
27
28
28
30
33
36
36
40
45
45
46
47
50
50
51
51
51
53
54
54
57
62
62
64
68
68
69
69
69
69
70
70
74
79
85
87
87
87
87
88
88
89
89
95
96
96
96
99
103
105
105
105
105
107
113
113
116
128
130
150
152
154
170
172
172
174
174
194
196
196
198
217
219
219
221
221
236
240
240
259
263
263
283
287
287
305
306
307
326
328
329
481
481
484
705
708
709
710
7
7
12
13
20
20
21
27
27
27
27
29
29
31
38
38
39
40
40
45
46
47
51
51
51
52
54
54
54
54
54
57
57
62
63
65
67
69
69
71
71
74
79
79
85
86
89
89
90
90
96
98
98
99
103
103
104
105
105
105
105
106
108
115
115
116
123
127
129
129
131
131
151
153
155
171
173
173
175
195
197
199
218
220
220
222
237
241
241
260
264
264
284
288
288
305
306
307
308
327
329
330
482
484
485
706
708
710
711
4
4
8
8
8
8
13
18
18
20
21
25
25
27
28
30
32
36
36
39
45
45
46
47
47
47
47
48
51
51
52
52
54
55
62
62
63
64
64
64
64
66
70
70
71
72
74
74
79
80
87
89
90
91
91
96
96
99
105
105
105
105
106
106
107
109
113
113
115
116
123
123
124
128
130
130
132
132
154
156
172
174
174
176
196
198
200
219
221
221
223
238
242
242
261
263
263
265
265
285
289
289
308
309
328
330
485
486
707
711
712
5
5
5
5
8
9
9
9
13
13
14
20
20
20
21
21
21
21
27
27
27
29
31
33
38
38
39
40
45
45
45
47
47
49
53
53
55
56
57
62
62
62
64
64
67
67
67
71
71
72
79
79
80
81
81
81
81
85
85
88
90
92
92
98
98
99
102
103
106
107
107
108
108
110
110
115
115
115
116
116
116
116
121
121
121
125
129
131
131
133
133
149
153
155
155
157
157
173
175
177
199
201
220
222
224
239
243
243
262
264
264
266
286
290
290
307
307
309
310
328
486
708
712
713
8
10
10
10
10
12
12
12
14
15
15
18
18
21
22
22
25
25
27
27
27
27
32
34
36
36
39
45
50
52
52
54
54
54
56
57
62
67
68
72
72
72
72
73
74
79
79
79
81
81
85
89
90
90
90
91
91
93
93
96
96
98
99
103
107
107
108
109
109
111
111
113
113
116
116
117
117
118
121
121
123
123
123
130
134
134
150
154
156
156
158
158
174
176
178
194
198
200
200
202
202
221
223
225
240
244
244
263
265
265
267
287
289
289
291
291
300
308
310
311
330
481
486
709
713
714
4
5
11
11
11
11
12
13
15
15
15
15
15
23
23
27
27
27
27
27
28
28
31
33
33
35
35
38
38
39
45
46
47
47
51
51
53
53
54
54
55
62
63
64
64
67
69
71
71
71
71
71
73
73
73
74
74
79
85
89
89
89
89
90
90
90
91
91
91
92
92
92
94
94
98
98
98
99
99
99
99
103
103
104
108
108
110
110
112
112
116
116
118
118
118
118
121
121
131
135
135
151
155
157
157
159
159
177
179
195
199
201
201
203
203
224
226
241
245
245
264
266
268
288
290
290
292
296
300
301
309
311
312
330
482
484
710
714
715
5
6
8
12
12
12
12
15
16
18
23
25
28
29
29
32
34
34
36
36
36
36
38
39
45
47
47
48
48
52
54
54
56
56
56
57
62
64
64
65
65
70
71
72
72
72
74
74
74
74
74
74
79
80
81
81
89
89
89
90
90
90
91
91
91
92
92
92
92
92
92
92
93
95
95
96
96
99
100
100
103
108
108
109
109
113
113
113
115
116
118
118
118
118
118
119
119
123
132
136
136
156
160
160
172
176
178
178
180
180
196
200
202
202
204
204
219
223
225
225
227
227
242
244
244
246
246
265
267
269
289
291
291
293
297
301
302
310
312
313
321
484
485
711
715
716
4
5
5
9
13
13
16
17
18
23
23
29
29
30
33
35
35
37
37
38
38
38
39
39
39
39
47
49
49
53
54
54
55
57
57
64
66
66
71
71
71
73
73
74
75
75
79
81
81
82
82
89
89
89
89
90
91
92
92
92
92
93
93
93
93
94
96
96
101
101
103
107
107
107
109
110
110
110
113
113
114
114
115
118
118
118
118
119
119
133
137
137
157
161
161
173
177
179
179
181
181
201
205
205
220
224
226
226
228
228
243
245
245
247
268
270
289
290
292
293
294
298
302
303
305
311
314
320
321
322
485
486
712
716
717
5
6
6
10
14
14
15
17
18
18
18
23
24
25
25
30
34
36
36
38
38
39
40
40
47
47
49
54
56
56
56
57
58
64
64
66
72
74
75
76
76
81
83
83
89
92
93
93
93
93
93
94
94
94
94
95
95
96
97
97
101
107
108
110
110
110
110
110
111
113
113
115
115
115
118
119
134
138
138
158
162
162
174
178
180
180
182
182
202
206
206
221
225
227
227
229
229
244
246
246
248
263
267
269
269
271
271
290
291
293
294
295
299
303
312
315
321
322
323
485
486
487
713
717
718
1
5
5
5
11
12
15
15
15
15
23
23
24
25
25
25
25
25
30
30
31
35
39
39
41
41
49
49
49
54
54
57
57
59
66
66
66
73
74
75
76
77
77
81
81
83
92
93
94
94
94
94
95
96
96
96
98
101
101
107
107
110
111
112
116
116
118
119
120
121
135
139
139
159
163
163
179
183
183
203
207
207
226
230
230
245
247
249
264
268
270
270
272
272
291
294
295
296
299
307
313
316
322
323
324
485
486
487
488
714
718
719
1
1
5
6
6
12
16
16
17
17
18
18
23
23
23
25
25
25
29
29
29
31
32
32
36
36
40
40
41
47
47
49
52
56
56
56
57
58
58
60
60
64
64
66
71
74
74
76
78
83
83
83
89
92
92
94
95
96
96
97
97
99
101
102
111
112
113
117
117
120
120
120
121
121
136
140
140
160
164
164
180
184
184
204
208
208
227
231
231
246
248
250
265
269
271
271
273
273
295
296
297
307
307
308
312
314
317
323
324
325
485
486
486
487
488
715
719
720
5
5
5
13
15
15
17
17
18
23
29
30
32
32
32
32
32
36
37
41
41
41
41
49
49
49
53
54
54
56
57
57
59
59
61
61
66
66
66
71
75
76
76
77
77
77
79
79
81
81
83
94
94
95
96
98
100
101
101
102
103
103
103
103
110
112
113
114
116
118
118
118
121
137
141
141
161
165
165
181
185
185
205
209
209
228
232
232
249
251
270
274
274
296
297
298
307
307
307
308
309
313
313
315
318
324
325
326
485
486
487
487
488
716
720
721
5
6
6
14
17
17
18
18
18
23
24
25
25
29
29
32
33
36
36
38
41
42
42
42
47
47
49
54
56
56
56
57
57
57
57
58
60
60
62
62
64
64
66
66
66
66
72
74
74
76
77
78
78
80
80
83
83
83
92
92
95
96
97
99
101
101
101
101
103
103
107
110
110
115
116
118
119
119
119
138
142
142
162
166
166
182
186
186
206
210
210
229
233
233
244
248
250
250
252
252
271
275
275
297
298
299
303
308
309
310
314
316
319
325
326
485
487
488
488
717
721
722
5
5
5
15
15
15
18
19
19
23
25
25
26
26
33
34
39
41
41
42
43
43
43
43
43
43
49
49
49
54
54
57
58
58
59
63
63
66
66
66
66
67
67
73
76
76
77
77
79
79
81
81
81
81
83
94
94
95
100
101
102
112
112
113
116
116
116
118
120
120
139
141
141
143
143
163
165
165
167
167
183
187
187
207
211
211
230
234
234
245
249
251
251
253
253
272
276
276
296
296
298
299
300
305
309
310
315
317
320
325
486
488
489
718
722
723
5
5
6
6
6
6
16
17
17
18
20
20
25
27
27
32
34
35
36
40
41
41
41
43
43
44
44
47
47
49
49
49
49
59
59
60
64
64
64
68
68
74
74
77
78
82
82
83
83
83
92
92
95
95
99
101
101
101
102
103
103
103
103
110
110
113
117
119
121
121
140
142
142
144
164
166
166
168
184
188
188
208
212
212
231
235
235
246
250
252
252
254
254
273
277
277
294
297
297
298
299
300
301
303
316
318
321
326
487
489
719
723
724
5
5
5
5
7
7
15
15
17
17
18
19
19
21
21
25
25
27
29
32
32
41
41
45
45
49
49
49
49
50
50
54
59
61
65
65
68
69
76
76
77
79
81
81
83
83
83
83
83
83
90
91
94
94
95
96
100
101
102
102
103
103
104
104
104
104
112
112
113
116
118
118
120
120
120
120
121
122
122
141
143
143
145
165
167
167
169
185
189
189
209
213
213
232
236
236
251
255
255
274
278
278
295
298
298
301
302
307
317
319
319
322
322
326
487
720
724
725
8
8
8
17
17
17
18
18
18
18
18
20
20
22
27
27
27
34
34
35
41
42
42
43
43
46
46
47
51
51
54
59
59
62
64
64
66
66
69
74
74
76
77
80
83
83
83
83
84
84
84
84
89
90
90
91
91
92
92
92
94
95
97
101
103
103
103
105
105
105
105
110
110
113
116
118
118
118
118
118
119
119
119
121
121
121
123
142
144
146
166
168
170
186
190
190
210
212
212
214
214
233
237
237
252
256
256
275
279
279
296
299
299
300
300
302
303
307
307
307
308
318
318
323
323
489
721
725
726
5
9
9
15
15
18
19
19
19
21
21
23
25
25
27
32
32
35
41
43
43
43
44
44
45
45
47
47
51
52
54
54
59
60
63
64
67
67
69
69
70
76
76
76
77
77
77
77
81
81
85
85
85
85
89
89
90
91
92
92
93
93
94
94
94
95
95
95
95
102
103
103
105
106
106
112
112
113
113
115
116
118
118
118
119
119
120
120
120
120
122
122
124
143
145
147
167
169
171
187
191
191
211
213
213
215
234
238
238
253
257
257
276
280
280
293
297
297
301
303
304
307
308
309
316
317
319
319
324
324
489
722
726
727
5
9
10
20
20
20
22
24
27
27
27
34
34
35
43
44
45
45
46
46
47
47
48
52
59
59
60
61
61
61
61
64
64
68
68
68
68
68
70
71
71
74
74
77
78
78
82
85
86
86
86
89
90
91
92
92
92
93
93
93
94
94
95
96
96
103
105
105
105
107
107
110
110
112
113
113
115
118
118
118
121
123
125
146
148
170
172
188
190
190
192
192
212
214
214
216
235
237
237
239
239
254
258
258
277
281
281
289
293
294
302
304
305
307
308
309
310
310
317
318
320
320
325
325
723
727
728
1
5
5
9
11
15
20
21
23
25
25
25
27
27
27
27
32
32
35
43
43
45
45
47
47
47
49
52
52
53
54
59
59
59
61
61
65
68
69
69
69
71
71
71
71
71
79
79
81
81
83
86
87
87
89
90
91
92
93
94
94
97
97
103
103
104
105
108
108
112
112
112
113
113
113
113
118
118
118
118
119
120
122
124
126
141
145
147
147
149
149
165
169
171
171
173
173
189
191
191
193
213
215
217
236
238
238
240
255
259
259
278
282
282
290
294
295
299
303
305
305
306
309
318
319
321
321
326
326
724
728
729
1
1
8
8
8
8
10
12
12
15
20
20
24
26
27
27
27
27
28
28
34
34
35
45
45
45
46
47
48
50
51
51
51
53
54
54
59
66
68
68
68
68
70
70
71
72
74
79
81
84
86
86
87
88
88
89
92
92
93
94
97
105
105
105
105
109
109
110
110
113
114
114
115
116
116
118
119
119
125
127
142
146
148
148
150
150
166
170
172
172
174
174
190
192
192
194
214
216
218
237
239
239
241
256
260
260
279
281
281
283
283
291
294
294
295
296
298
299
304
306
306
307
310
310
319
320
322
322
327
327
725
729
730
5
9
11
11
11
11
12
15
15
19
20
21
23
25
25
25
27
27
29
29
32
32
34
35
43
43
45
47
49
51
51
52
54
54
54
54
54
59
60
61
61
67
69
69
71
72
73
74
79
79
81
85
85
85
85
87
88
88
89
89
92
93
94
97
97
103
103
105
105
105
105
106
110
110
115
115
116
116
118
119
120
124
126
126
128
128
143
147
149
149
151
151
167
171
173
173
175
175
191
193
195
217
219
238
240
242
257
261
261
280
282
282
284
292
292
295
295
296
305
308
311
311
320
321
323
323
328
328
726
730
731
4
4
5
8
8
12
13
20
20
20
21
22
22
22
22
24
26
26
28
28
29
30
34
34
34
35
35
35
35
45
45
45
50
51
51
52
54
55
59
61
61
62
62
68
70
70
71
72
73
74
74
74
79
80
85
86
86
88
88
88
88
88
90
90
92
92
94
97
98
105
105
105
105
106
106
107
110
111
111
115
115
115
118
119
121
125
127
127
129
129
148
152
152
172
176
176
192
194
196
212
216
218
218
220
220
239
241
243
258
260
260
262
262
281
283
283
285
292
293
296
296
300
306
306
309
310
310
310
312
312
321
322
324
329
329
489
727
731
732
5
5
5
5
5
5
6
13
14
15
20
20
20
21
22
22
25
25
25
27
27
29
29
30
32
32
35
36
36
43
43
45
45
49
51
51
53
53
55
56
61
63
63
68
69
71
71
71
73
79
79
80
81
81
81
81
85
85
87
88
89
89
89
91
91
97
97
98
99
99
99
99
103
107
107
108
110
110
112
112
115
115
115
116
118
118
122
126
128
128
130
130
149
153
153
173
177
177
195
197
213
217
219
219
221
221
242
244
259
261
261
263
281
282
284
285
286
294
297
297
300
300
301
305
306
306
306
307
310
310
311
311
311
321
325
330
330
487
489
490
728
732
733
6
6
7
7
12
14
15
20
25
26
30
30
30
30
31
37
37
45
45
45
46
50
52
52
54
54
54
56
57
61
61
63
70
72
73
73
74
74
74
79
79
79
81
81
88
89
90
90
90
92
92
97
97
97
99
99
107
108
109
110
110
113
113
113
115
116
118
127
131
131
150
154
154
174
178
178
190
194
196
196
198
198
214
218
220
220
222
222
237
241
243
243
245
245
260
262
262
264
282
283
285
286
287
295
295
300
300
300
301
302
306
306
308
311
311
312
312
312
322
326
331
331
488
490
729
733
734
4
5
7
7
8
8
8
11
11
20
21
22
22
25
27
29
29
29
31
31
31
32
32
32
37
43
43
45
45
45
45
47
51
51
53
53
54
54
55
55
63
63
63
71
71
73
74
75
79
88
89
90
90
91
91
91
91
93
97
103
103
108
110
113
114
114
115
115
116
116
116
117
118
128
132
132
151
155
155
175
179
179
191
195
197
197
199
199
219
223
223
238
242
244
244
246
246
261
263
265
283
286
287
288
296
301
302
303
307
309
310
312
312
313
313
323
327
332
332
488
730
734
735
4
5
6
9
9
14
14
15
20
22
22
23
23
28
29
30
32
32
32
32
32
32
32
32
37
37
45
45
45
45
46
46
52
56
56
56
56
57
61
61
63
68
72
73
73
74
74
74
76
76
79
80
81
81
85
88
88
89
90
90
90
91
91
92
92
94
97
98
99
99
103
108
108
109
111
113
113
113
113
115
115
115
116
117
117
117
118
118
118
119
119
119
129
133
133
152
156
156
176
180
180
192
196
198
198
200
200
220
224
224
239
243
245
245
247
247
262
264
266
287
288
289
289
289
297
298
302
303
308
310
311
311
313
314
328
333
333
490
731
735
736
4
5
5
5
10
10
11
11
15
22
24
24
29
29
29
32
32
32
33
33
33
37
38
43
47
47
53
54
54
57
57
57
63
63
63
69
71
71
73
74
75
75
77
77
79
81
81
82
82
89
89
90
90
90
91
91
91
92
92
93
93
93
95
97
99
99
100
100
103
107
107
107
109
110
110
112
114
114
115
115
116
116
116
116
118
118
118
118
119
119
130
134
134
153
157
157
177
181
181
197
201
201
221
225
225
244
248
248
265
267
287
288
289
290
290
290
292
292
296
297
309
311
312
314
314
315
329
334
334
490
732
736
737
5
6
6
6
11
11
14
14
15
22
22
24
30
33
34
34
34
37
37
38
39
39
39
39
47
48
54
56
56
57
58
58
61
61
63
63
63
63
70
73
73
74
74
76
76
78
78
81
83
83
88
88
89
90
91
91
92
93
93
93
94
94
94
96
99
101
101
107
108
110
110
110
110
110
113
115
115
115
117
118
118
119
119
119
131
135
135
154
158
158
178
182
182
198
202
202
222
226
226
245
249
249
260
264
266
266
268
268
288
289
290
290
291
291
291
293
293
300
310
312
312
313
313
315
315
315
316
330
335
335
733
737
738
1
5
5
5
7
11
11
12
12
15
24
24
24
31
32
32
34
35
35
35
37
37
37
39
39
43
43
48
54
54
55
57
59
59
63
63
63
63
64
64
71
71
73
74
75
79
79
81
81
83
89
89
90
90
90
91
91
92
93
93
94
94
95
95
97
97
99
99
101
107
107
110
111
114
116
116
116
118
118
118
132
136
136
155
157
157
159
159
179
183
183
199
203
203
223
227
227
246
250
250
261
265
267
267
269
269
289
290
291
291
292
292
292
294
294
300
300
300
301
311
313
314
316
316
316
317
331
336
336
734
738
739
1
1
5
6
6
8
13
13
14
14
15
22
22
24
29
32
32
32
36
36
37
43
48
48
49
56
56
56
57
60
60
61
65
65
73
73
73
74
74
74
74
76
80
80
83
83
83
88
88
89
90
91
92
93
94
94
96
96
98
98
101
101
101
111
112
113
115
115
117
118
119
133
137
137
156
158
158
160
180
184
184
200
204
204
224
228
228
247
251
251
262
266
268
268
270
270
290
290
290
291
292
292
293
295
295
300
301
302
312
315
317
317
317
318
332
337
337
735
739
740
5
5
5
9
11
11
14
14
14
15
24
24
24
33
34
34
35
37
37
37
38
39
39
43
47
47
47
49
50
50
54
54
56
57
57
61
61
65
66
71
71
74
75
75
77
81
81
81
81
83
90
90
91
91
93
94
95
97
97
99
99
99
99
101
110
112
113
117
117
118
119
120
134
138
138
157
159
159
161
181
183
183
185
185
201
205
205
225
229
229
248
252
252
267
271
271
293
293
293
294
300
301
302
303
303
313
313
313
316
318
318
318
319
333
338
338
736
740
741
5
6
6
10
14
14
14
15
15
15
15
15
15
22
22
24
24
24
24
32
32
34
35
37
38
38
39
39
40
40
47
48
50
50
50
50
50
56
56
56
57
57
57
57
58
61
61
62
62
66
76
76
78
82
82
83
83
83
88
88
90
91
94
96
100
100
101
101
101
107
110
110
113
115
115
115
115
115
115
116
116
117
119
119
121
121
135
139
139
158
160
162
182
184
184
186
202
206
206
226
230
230
249
253
253
268
272
272
292
292
292
294
295
298
302
311
314
314
314
317
319
319
319
334
339
339
490
737
741
742
5
5
5
11
11
11
15
16
16
16
16
24
24
24
24
25
25
34
34
35
35
37
37
39
39
39
41
41
47
47
50
51
54
54
57
58
58
59
61
61
61
63
63
66
66
67
71
76
79
81
81
83
83
83
90
90
90
91
91
91
91
97
99
99
101
101
101
101
101
101
110
112
112
113
113
113
114
115
115
115
116
116
117
117
117
118
118
119
120
120
122
122
136
138
138
140
140
159
161
163
183
185
185
187
203
207
207
227
231
231
250
254
254
269
273
273
285
287
287
292
293
295
295
296
299
299
303
303
312
312
315
317
320
320
335
340
340
488
490
491
738
742
743
5
5
6
6
6
6
12
17
17
17
17
22
26
26
32
32
35
36
38
38
39
39
40
41
51
52
59
59
60
61
62
62
64
65
65
65
67
68
68
71
76
76
80
83
83
83
84
84
88
88
91
92
92
98
101
101
101
101
102
102
102
102
110
110
110
113
113
113
115
115
115
115
116
116
116
118
118
118
119
121
121
123
123
137
139
139
141
162
164
184
186
188
204
208
208
228
230
230
232
232
251
253
253
255
255
270
274
274
281
285
285
286
288
288
290
290
294
295
296
297
304
304
316
319
321
321
336
341
341
489
491
739
743
744
5
5
5
5
7
7
11
13
16
16
17
18
18
26
27
34
34
35
37
39
39
41
41
41
41
50
52
53
54
59
61
63
63
65
65
66
68
68
68
68
68
71
71
76
77
81
81
81
83
83
83
83
85
85
90
91
93
93
99
99
103
103
103
103
112
112
113
116
117
118
119
119
119
120
124
124
138
140
140
142
157
161
163
163
165
165
185
187
189
205
209
209
229
231
231
233
252
254
254
256
271
275
275
282
286
286
287
288
289
289
291
291
295
297
298
299
303
303
303
305
305
314
317
319
322
322
337
342
342
489
740
744
745
8
8
8
11
14
17
17
17
17
19
22
22
27
32
32
34
35
38
39
39
40
41
42
47
50
50
54
59
59
62
64
65
65
66
68
69
76
76
77
78
78
78
78
82
83
83
83
83
84
84
86
86
88
89
90
90
91
91
92
93
100
103
104
104
104
110
110
113
113
116
116
118
118
121
125
125
139
141
143
158
162
164
164
166
166
188
190
206
208
208
210
210
230
232
232
234
253
255
255
257
272
276
276
283
287
287
288
289
290
290
290
292
292
296
299
299
299
299
303
304
304
304
314
318
323
323
338
343
343
491
741
745
746
5
9
9
11
11
15
17
18
18
18
20
22
27
27
28
34
34
34
35
35
35
35
39
41
41
41
41
43
52
52
53
54
54
59
60
63
65
67
69
70
71
76
76
76
78
78
81
83
85
85
87
87
88
89
89
90
91
92
92
93
93
93
99
99
101
104
105
105
112
112
113
115
116
118
118
122
126
126
140
142
144
159
163
165
165
167
167
183
187
189
189
191
191
207
209
209
211
231
233
235
254
256
258
273
277
277
284
288
288
288
290
293
293
297
300
304
305
305
305
319
324
324
339
344
344
491
742
746
747
5
9
10
16
17
17
18
19
19
19
19
19
21
22
26
26
26
28
29
29
32
32
35
36
36
39
39
41
42
44
50
50
53
59
59
60
61
61
61
61
66
68
68
70
71
76
84
85
86
86
86
88
88
88
88
89
90
91
92
93
93
93
94
94
99
102
104
104
105
106
106
110
110
112
113
113
115
115
116
116
118
119
123
127
127
143
145
164
168
168
184
188
190
190
192
192
208
210
210
212
232
234
236
255
257
259
274
278
278
284
291
291
292
298
301
303
305
306
306
307
314
314
320
325
325
340
345
345
743
747
748
5
5
9
11
11
17
17
17
17
19
19
20
22
26
27
29
29
29
29
29
37
37
37
41
41
41
41
43
43
45
45
52
52
53
54
59
59
59
61
61
61
65
65
67
67
68
68
69
69
76
77
78
78
81
81
85
86
87
87
89
89
90
91
91
92
93
93
93
94
94
94
95
95
95
95
99
103
103
103
103
105
106
106
107
107
112
112
112
113
113
113
113
113
115
115
115
116
116
116
118
124
128
128
138
142
144
144
146
146
165
169
169
185
189
191
191
193
193
209
211
213
235
237
258
260
275
279
279
290
292
292
293
297
299
302
304
304
308
309
309
312
315
315
321
326
326
341
346
346
744
748
749
4
8
8
8
8
10
12
12
17
21
23
26
26
29
30
32
37
38
39
39
41
41
41
41
42
44
44
46
46
50
50
53
59
62
66
68
68
70
70
70
70
71
76
78
78
79
79
81
86
86
86
87
88
88
88
89
90
90
91
92
93
93
93
93
94
95
95
103
104
104
106
106
106
106
106
108
108
110
110
110
113
113
113
114
114
115
115
115
115
115
125
129
129
139
143
145
145
147
147
166
170
170
190
194
194
210
212
214
230
234
236
236
238
238
253
257
259
259
261
261
276
278
278
280
280
285
285
290
292
292
292
293
293
294
298
298
300
303
309
310
310
313
313
322
327
327
342
347
347
745
749
750
1
1
5
5
5
9
11
11
11
11
12
15
17
18
19
19
20
22
22
24
24
30
31
32
37
37
39
41
41
41
41
42
42
43
45
45
47
47
52
52
53
59
60
61
61
63
67
68
68
69
69
71
71
71
78
80
80
81
85
85
85
87
87
88
88
89
91
93
93
94
103
103
105
106
107
107
107
109
109
110
112
113
115
115
116
116
116
118
118
126
130
130
140
144
146
146
148
148
167
171
171
191
195
195
213
215
231
235
237
237
239
239
254
258
260
260
262
262
277
279
279
281
283
286
286
288
293
293
294
295
299
301
304
306
310
311
311
323
328
328
343
348
348
746
750
751
1
1
1
4
5
5
6
8
8
12
13
16
17
19
19
20
20
21
23
23
25
25
29
31
32
32
32
37
38
39
43
43
44
48
48
50
50
52
53
59
61
61
62
62
68
70
70
71
72
72
78
78
80
85
86
88
88
88
88
88
88
90
92
93
94
94
95
95
106
107
108
108
108
110
110
110
110
112
113
113
115
115
115
116
119
119
127
131
131
145
149
149
168
172
172
192
196
196
208
212
214
214
216
216
232
236
238
238
240
240
255
259
261
261
263
263
278
280
280
281
281
282
284
287
287
290
294
295
300
302
305
306
311
312
312
315
324
329
329
344
349
349
747
751
751
752
4
4
5
5
6
7
13
14
17
19
21
21
22
24
24
26
26
26
29
29
37
37
38
39
39
39
39
43
44
45
49
49
52
52
52
53
53
53
53
61
63
63
68
68
69
71
73
73
80
80
80
85
85
88
89
91
93
93
95
95
96
96
106
107
108
109
109
109
110
110
111
113
113
115
115
115
115
116
116
116
116
128
132
132
146
150
150
169
173
173
193
197
197
209
213
215
215
217
217
237
241
241
260
264
264
278
279
279
281
282
282
282
283
284
285
288
288
288
301
303
306
312
313
313
315
325
330
330
345
350
350
748
751
752
753
4
5
5
6
7
8
12
14
15
19
19
21
23
27
27
31
31
32
32
37
37
37
39
39
39
39
44
46
50
50
50
50
53
54
54
61
61
63
70
70
70
71
74
74
78
78
80
86
89
90
90
92
92
94
94
95
97
97
103
106
106
108
110
110
110
112
113
115
115
116
116
116
118
129
131
131
133
133
147
151
151
170
174
174
194
198
198
210
214
216
216
218
218
238
242
242
261
265
265
279
280
280
282
283
283
283
284
285
286
286
286
286
292
302
304
304
306
306
307
307
314
314
314
326
331
331
346
351
351
489
749
753
754
4
4
5
7
8
8
9
11
11
21
21
21
24
28
28
29
29
32
37
39
44
44
45
47
51
51
55
55
63
63
63
68
68
70
71
71
75
75
80
80
80
87
88
90
91
91
93
93
95
95
95
95
97
108
108
109
109
111
113
113
115
115
116
117
119
130
132
132
134
148
152
152
171
175
175
195
199
199
215
219
219
239
243
243
262
266
266
280
281
283
284
284
284
285
286
287
287
292
292
292
293
303
304
307
307
308
308
312
314
327
332
332
347
352
352
490
750
754
755
4
5
5
5
5
8
9
10
14
14
15
19
19
21
25
29
29
31
31
32
37
38
39
39
39
43
43
43
45
46
46
48
50
52
52
55
61
61
63
70
70
70
71
71
71
71
72
76
76
78
78
80
85
86
86
88
88
88
88
88
92
94
94
96
96
97
97
97
106
106
109
110
112
114
115
115
115
116
116
117
117
117
131
133
133
135
149
153
153
172
176
176
196
200
200
216
220
220
240
244
244
263
267
267
282
282
284
285
286
287
288
288
288
292
293
294
304
305
305
309
309
328
333
333
348
353
490
751
755
756
4
4
5
6
9
10
11
11
11
15
21
21
21
26
29
29
30
30
32
37
39
39
40
40
43
44
46
46
46
46
46
49
50
53
53
55
55
63
63
63
68
68
71
72
72
73
77
77
80
80
80
86
86
86
88
88
88
88
88
89
89
90
90
91
93
95
95
97
97
97
107
108
108
109
111
112
112
113
113
113
113
115
115
115
115
115
115
115
132
134
136
150
154
154
173
175
175
177
177
197
201
201
217
221
221
241
245
245
264
268
268
283
283
285
286
287
288
289
289
292
293
294
295
295
305
310
310
313
329
334
334
349
354
752
756
757
4
5
6
7
10
11
12
14
14
15
19
19
21
21
21
21
27
31
31
31
31
32
39
41
41
43
43
46
47
50
50
50
54
54
55
56
61
61
63
63
63
63
73
73
74
78
78
78
78
80
80
80
80
86
88
88
88
88
88
88
89
89
89
90
90
91
94
97
97
97
98
98
106
106
108
109
112
112
112
112
112
113
113
114
114
115
115
116
116
116
116
116
133
135
137
151
155
155
174
176
176
178
198
202
202
218
222
222
242
246
246
265
269
269
281
284
284
284
286
287
287
288
290
294
306
307
311
311
314
330
335
335
350
352
352
355
491
491
753
757
758
7
7
9
10
11
11
12
13
15
21
21
21
21
22
22
28
29
29
31
32
32
32
39
39
41
47
48
51
53
53
55
55
55
55
56
57
57
57
57
63
63
63
63
64
64
68
73
75
79
79
80
80
80
80
81
81
88
89
90
90
90
90
90
91
91
91
95
95
95
97
97
97
97
99
99
108
108
109
109
110
110
112
113
113
113
113
113
113
113
115
115
115
116
116
117
117
136
138
152
154
154
156
156
175
177
177
179
199
201
201
203
203
219
223
223
243
247
247
266
270
270
279
279
282
284
285
285
287
288
289
289
291
291
295
295
301
307
307
312
312
315
315
331
336
336
351
353
356
492
492
492
492
754
758
759
7
10
11
13
14
14
14
15
19
23
23
29
31
31
31
32
32
32
32
33
33
41
41
41
46
48
49
50
52
54
54
55
55
55
56
57
57
61
65
65
68
73
73
76
78
80
80
82
82
88
88
88
90
91
91
91
91
96
97
97
97
97
98
98
100
100
106
106
107
108
109
110
110
112
113
113
113
113
114
115
118
118
131
135
137
137
139
139
153
155
155
157
176
178
180
200
202
202
204
220
224
224
244
246
246
248
248
267
271
271
277
280
280
283
286
286
287
288
289
289
290
296
296
302
304
308
313
313
316
316
316
316
332
337
337
352
354
357
492
492
492
492
493
493
755
759
760
7
7
8
11
11
12
14
14
15
15
23
24
29
29
30
32
33
33
34
34
39
39
41
43
46
46
53
55
55
55
57
65
66
68
68
73
74
77
79
79
81
81
82
83
87
90
90
91
91
95
97
99
99
101
101
107
108
108
108
109
109
109
109
113
115
116
116
116
117
117
119
119
132
136
138
138
140
140
154
156
156
158
177
179
181
201
203
203
205
221
225
225
245
247
247
249
268
272
272
278
281
281
284
284
290
291
291
295
295
295
297
297
303
304
305
307
307
309
314
314
314
316
316
317
317
333
338
338
353
355
358
493
493
494
494
756
760
761
1
7
8
8
9
9
13
14
14
14
15
15
15
15
16
19
19
24
31
34
34
35
35
41
41
41
48
48
49
54
55
56
56
57
57
58
61
61
66
73
73
74
75
75
75
75
78
78
78
80
80
82
83
88
88
88
90
91
98
99
100
102
102
106
106
109
110
110
110
113
113
115
115
115
116
116
120
120
133
137
139
139
141
141
155
157
159
180
182
202
204
206
222
226
226
246
248
248
250
269
271
271
273
273
279
282
282
289
289
291
291
291
291
292
295
296
296
296
304
305
305
306
308
308
310
315
315
317
318
318
334
339
339
354
356
359
494
494
757
761
762
1
1
7
7
7
7
8
9
9
11
11
13
14
14
15
16
16
17
17
19
24
24
25
29
32
34
34
34
36
36
39
39
41
46
46
49
55
55
57
57
57
58
58
59
61
66
66
67
68
73
73
73
75
75
78
79
81
81
83
83
83
84
90
90
90
91
91
91
91
95
95
99
100
103
103
109
109
110
111
111
113
114
115
115
117
117
117
117
121
121
138
142
142
156
158
160
175
179
181
181
183
183
203
205
207
223
227
227
247
249
251
270
272
272
274
278
280
280
282
286
290
292
293
296
297
297
297
305
306
306
306
307
311
316
316
316
316
318
335
340
340
355
357
360
758
762
763
1
7
7
8
9
13
14
15
15
17
17
18
18
19
23
23
23
25
26
26
29
33
34
34
35
35
37
41
41
41
48
48
49
57
58
59
59
60
61
65
65
65
67
68
68
73
78
80
82
82
82
82
84
84
85
85
88
88
91
92
92
95
100
100
100
101
104
104
106
110
111
111
111
113
114
115
115
115
115
116
118
122
122
139
143
143
159
161
176
180
182
182
184
184
206
208
224
226
226
228
228
248
250
252
271
273
273
275
278
279
282
282
282
283
286
291
293
294
295
297
298
298
306
307
308
312
317
317
317
336
341
341
356
358
361
492
759
763
764
1
9
10
11
14
15
16
16
17
19
19
23
24
26
26
26
26
26
29
29
34
34
35
36
36
38
39
39
41
41
41
41
46
46
49
53
57
57
57
59
59
59
61
61
65
66
68
68
68
68
68
73
74
75
75
81
82
83
83
85
85
85
85
85
85
93
93
95
99
99
99
101
101
102
102
105
105
106
106
111
111
111
112
113
113
116
116
117
119
123
123
140
144
144
154
158
160
160
162
162
177
181
183
183
185
185
201
205
207
207
209
209
225
227
227
229
251
253
271
272
274
275
276
279
280
282
283
283
283
284
292
294
295
296
296
306
308
308
309
313
316
316
318
318
318
337
342
342
357
359
362
492
492
493
763
764
765
8
10
11
11
16
17
17
20
20
23
23
26
27
34
34
35
35
36
36
36
36
37
39
41
41
41
41
42
42
48
48
49
54
58
59
59
59
60
60
62
62
65
65
68
69
73
75
75
76
76
82
82
83
84
85
85
86
86
88
93
99
100
102
102
102
102
102
102
104
104
106
106
106
106
106
110
110
110
111
112
112
112
112
113
113
113
113
120
124
124
141
145
145
155
159
161
161
163
163
182
186
186
202
206
208
208
210
210
226
228
228
230
246
250
252
252
254
254
272
273
275
276
277
277
277
277
280
281
281
282
284
284
284
285
287
293
296
308
309
314
316
316
317
317
319
319
338
343
343
360
363
492
493
494
759
764
765
766
7
9
9
11
11
17
17
18
21
21
27
28
29
34
34
34
36
36
36
38
39
40
43
43
46
46
48
49
55
57
57
59
59
61
61
63
63
69
70
75
77
77
79
83
83
85
85
85
86
86
86
87
87
87
88
93
93
99
99
102
103
103
105
105
107
110
111
112
112
113
113
113
113
113
115
121
125
125
142
146
146
156
160
162
162
164
164
183
187
187
203
207
209
209
211
211
227
229
231
247
251
253
253
255
255
273
275
276
277
278
278
278
278
279
279
281
285
285
285
294
297
298
309
315
318
318
320
320
339
344
344
361
364
494
495
765
766
767
10
10
11
17
17
18
18
19
19
19
19
22
22
26
28
29
34
39
41
43
44
48
48
48
49
49
49
49
59
59
59
60
64
64
68
70
71
75
75
77
80
83
84
85
85
86
86
86
86
87
87
88
88
88
88
88
93
94
103
104
104
106
106
106
108
109
110
110
112
113
113
113
115
116
122
126
126
143
147
147
161
165
165
184
188
188
208
212
212
228
230
232
248
252
254
254
256
256
276
277
278
279
279
279
279
280
280
281
289
295
298
298
309
314
316
319
319
321
321
340
345
345
362
365
490
495
766
767
768
9
9
11
11
17
17
17
19
19
19
23
23
23
26
26
34
34
35
36
36
38
39
39
40
40
42
42
44
46
46
49
50
50
57
57
59
59
59
59
61
65
65
65
68
68
77
77
77
81
82
83
85
85
85
85
86
86
87
87
87
88
89
89
93
93
94
95
95
95
95
102
104
105
105
107
109
109
111
112
112
113
113
115
115
123
125
125
127
127
144
148
148
162
166
166
185
189
189
209
213
213
231
233
253
257
257
277
278
279
280
280
280
280
281
281
289
289
290
294
296
299
315
317
320
322
322
341
346
357
361
363
366
491
495
496
767
768
769
10
10
11
17
20
24
24
28
28
29
34
35
36
36
37
37
39
39
41
41
43
43
44
44
45
51
51
59
59
59
59
60
60
62
66
66
70
70
71
75
75
77
83
85
86
86
86
87
87
87
88
88
88
90
90
93
93
93
95
95
99
102
102
106
106
108
110
110
110
112
113
113
114
115
124
126
126
128
145
147
147
149
149
163
167
167
186
190
190
210
214
214
226
230
232
232
234
234
254
258
258
278
278
279
280
281
282
282
285
289
289
289
290
291
295
295
297
298
298
300
306
315
315
318
319
319
321
323
323
342
347
362
364
367
491
495
497
768
769
770
2
9
9
11
17
18
19
19
21
25
25
26
26
29
36
36
38
38
39
40
42
42
43
43
43
44
44
45
46
46
46
51
57
61
61
63
67
67
68
68
71
77
77
77
83
85
85
85
86
86
87
87
88
88
91
91
93
104
104
105
109
110
110
110
110
110
111
111
112
112
113
114
125
127
127
129
146
148
148
150
164
168
168
187
191
191
211
215
215
227
231
233
233
235
235
255
259
259
280
280
281
282
285
285
290
291
292
296
296
298
298
299
299
301
307
319
320
320
322
324
324
343
345
345
348
363
365
368
491
495
496
498
769
770
771
2
3
10
10
11
17
19
19
20
20
22
26
26
28
28
29
36
36
38
41
43
44
45
45
46
46
46
46
46
46
51
51
61
62
64
68
68
70
70
71
75
75
77
86
86
86
87
87
87
88
88
88
92
92
93
94
95
95
102
102
104
105
107
107
108
109
109
110
110
110
110
111
112
112
112
112
112
113
113
113
126
128
130
147
149
149
151
165
169
169
188
192
192
212
216
216
228
232
234
234
236
236
256
260
260
276
278
278
280
280
281
282
282
283
287
291
292
297
297
297
299
299
299
299
302
308
308
319
320
321
321
325
325
344
346
349
364
366
369
495
496
497
770
771
772
3
4
9
9
10
11
19
21
21
23
26
26
27
27
29
38
38
38
42
43
43
46
46
46
46
46
47
51
52
57
57
62
65
68
68
69
69
71
77
77
77
85
85
85
85
87
88
88
89
93
93
93
95
95
96
96
104
104
105
105
109
109
110
110
110
110
111
111
111
111
112
112
112
113
113
113
113
113
127
129
131
148
150
152
166
170
170
189
193
193
213
217
217
233
237
237
257
261
261
275
275
276
277
278
278
279
279
280
282
283
284
285
298
300
300
300
300
303
309
309
309
309
319
321
326
326
345
347
350
365
367
370
491
496
497
771
772
773
1
1
4
5
10
10
10
11
11
11
11
19
19
21
24
28
28
28
28
29
36
36
38
43
47
47
47
48
51
51
52
53
53
53
53
57
62
62
63
66
70
70
70
70
71
75
75
77
77
77
77
87
87
88
88
90
94
94
95
97
97
102
102
105
106
110
111
111
111
112
112
113
113
113
113
113
113
114
114
115
130
132
149
151
153
167
171
171
190
194
194
214
218
218
234
238
238
258
262
262
273
276
276
277
278
279
279
280
280
282
282
284
285
289
299
299
301
301
301
301
301
304
304
307
309
309
310
310
315
319
320
322
327
327
346
348
351
366
368
368
371
371
497
772
773
774
1
1
1
4
5
5
6
9
9
11
12
12
21
21
21
25
26
26
27
27
28
29
29
29
38
38
38
44
46
46
48
48
48
49
51
51
51
53
53
57
61
61
61
63
64
64
67
68
68
70
71
71
71
77
77
77
77
78
78
85
85
87
88
91
95
95
95
95
97
104
104
105
106
110
110
110
111
111
111
113
113
113
113
114
115
115
115
125
129
131
131
133
133
152
154
168
172
172
191
193
193
195
195
215
219
219
235
239
239
259
263
263
274
275
277
277
278
279
279
280
280
281
281
283
285
286
289
289
289
290
299
300
302
302
302
305
305
310
311
311
315
320
321
323
328
328
347
349
352
367
372
372
495
498
773
773
774
775
5
6
7
13
13
19
19
21
26
28
28
28
28
28
29
29
29
29
30
36
36
38
43
45
46
46
49
49
51
61
62
64
64
64
64
64
68
70
70
70
71
71
71
71
72
72
75
79
79
87
87
87
88
88
88
88
92
96
96
97
97
97
102
102
104
105
106
106
106
110
110
111
111
111
112
112
116
116
126
130
132
132
134
134
147
151
153
153
155
155
169
173
173
192
194
194
196
216
220
220
236
240
240
260
264
264
271
271
275
275
276
278
278
279
279
281
281
284
286
287
289
290
291
301
303
303
303
306
306
309
309
311
319
321
322
324
329
329
348
350
353
368
373
373
491
496
774
774
775
776
7
8
9
13
21
21
21
26
26
27
29
29
29
30
30
31
38
38
38
46
48
48
49
50
50
51
52
53
53
61
61
64
65
68
68
69
71
71
71
72
72
73
73
79
80
85
85
88
89
89
93
95
95
97
97
97
104
104
104
105
105
105
105
110
111
113
113
113
113
117
117
127
131
133
133
135
135
148
152
154
154
156
156
170
172
172
174
174
193
195
195
197
217
219
219
221
221
237
241
241
261
265
265
272
272
275
275
276
276
276
277
281
285
287
288
289
290
291
292
292
299
299
302
303
304
304
307
307
310
315
320
322
322
325
330
330
349
351
354
369
374
374
497
775
776
777
5
5
8
9
9
13
13
19
19
21
21
21
21
28
30
31
31
32
36
36
38
38
38
38
46
46
47
49
51
51
51
53
53
54
54
65
66
70
72
72
73
73
74
75
75
80
90
90
94
97
97
97
98
98
102
102
105
106
106
109
109
110
111
112
112
112
113
114
118
118
132
136
136
149
153
155
155
157
157
171
173
173
175
194
196
198
218
220
220
222
238
242
242
262
264
264
266
266
273
273
276
276
277
278
280
281
281
286
287
289
291
297
300
300
303
304
304
308
308
309
309
311
319
321
326
331
331
350
352
355
370
375
375
498
776
777
778
4
4
5
5
9
9
9
9
10
13
14
21
21
21
21
22
22
26
29
31
31
33
38
38
38
38
39
39
48
48
48
49
50
50
52
52
53
55
55
64
66
67
68
71
73
73
73
75
75
80
80
81
82
82
83
83
85
90
95
95
95
97
97
97
97
97
97
99
99
106
106
107
107
109
109
109
110
110
111
111
111
112
113
113
115
119
119
133
137
137
154
158
158
172
174
174
176
195
197
199
219
221
221
223
239
243
243
263
265
265
267
274
274
274
274
276
276
277
277
278
278
281
287
288
288
290
292
292
298
298
304
309
309
309
309
310
310
320
320
322
322
327
332
332
353
356
371
376
376
495
498
777
778
779
5
10
10
11
11
13
13
14
15
15
15
15
19
23
23
26
31
31
32
34
36
40
40
46
46
49
49
51
51
53
53
53
55
61
64
64
68
72
73
73
74
75
76
79
79
79
81
82
82
82
82
82
83
83
83
83
83
84
84
85
90
90
96
97
97
97
97
98
98
98
98
100
102
106
107
107
107
109
109
110
110
110
111
111
111
111
111
111
112
112
112
113
116
120
120
134
138
138
155
159
159
173
175
177
198
200
220
222
224
240
242
242
244
244
264
266
266
268
274
274
275
276
276
277
277
278
278
278
282
288
291
293
293
305
310
310
311
311
320
322
323
323
328
333
333
354
357
372
377
377
491
496
778
779
780
4
6
9
11
11
12
12
13
13
13
15
15
23
24
26
26
27
31
31
32
33
33
35
35
40
41
48
48
49
50
52
52
54
55
55
55
66
66
67
68
68
73
73
74
75
77
79
80
82
82
82
82
82
82
83
83
83
83
84
84
84
85
85
85
85
90
91
95
97
99
99
99
99
101
102
102
106
107
107
107
109
109
109
110
110
110
110
111
111
111
113
113
113
117
121
121
135
139
139
156
160
160
174
176
178
193
197
199
199
201
201
221
223
225
241
243
243
245
264
265
267
268
269
275
276
277
277
278
278
282
282
283
287
288
289
292
292
292
292
294
294
294
300
306
307
311
311
312
312
320
322
323
324
324
329
334
334
355
358
373
378
378
495
497
779
780
781
5
7
8
13
13
13
19
19
24
28
31
31
32
32
33
33
33
33
34
34
36
36
36
36
41
46
46
48
49
51
53
53
53
55
55
64
64
67
73
73
74
75
75
75
75
76
78
79
79
82
83
83
84
85
85
85
86
86
86
90
90
91
92
92
92
92
98
99
100
100
102
102
102
106
106
107
107
107
107
108
109
110
110
110
110
110
110
111
118
122
122
136
140
140
157
161
161
177
179
194
198
200
200
202
202
224
226
242
244
244
246
265
266
268
269
269
270
276
277
277
278
278
279
279
282
282
282
283
284
288
288
288
288
288
290
292
293
293
293
293
295
295
296
300
307
308
312
312
313
320
320
323
324
330
335
335
350
354
356
359
374
379
379
496
496
498
498
780
781
782
4
5
5
9
13
14
14
14
15
15
19
24
24
25
26
29
31
31
31
33
33
33
35
35
36
37
37
41
41
42
48
48
48
49
49
49
49
52
54
55
55
55
56
66
66
67
68
71
73
73
73
75
75
75
77
77
79
79
83
84
85
85
85
85
86
86
86
90
90
90
92
92
95
95
99
100
101
103
106
107
107
108
108
109
109
110
110
111
112
119
123
123
137
141
141
158
162
162
172
176
178
178
180
180
195
199
201
201
203
203
219
223
225
225
227
227
243
245
247
266
269
270
270
271
271
271
277
277
278
278
279
279
283
284
285
289
291
293
294
294
294
294
296
296
297
308
308
308
312
312
313
313
314
321
321
322
322
322
324
331
336
336
355
357
360
375
380
380
496
496
498
498
499
499
781
782
783
1
5
5
7
10
13
15
15
15
15
16
16
19
23
23
23
25
26
26
31
34
36
38
38
40
40
40
42
43
43
46
46
49
50
50
53
53
55
55
55
55
55
57
64
64
67
72
73
76
78
78
80
80
82
84
85
86
90
95
100
100
101
102
104
106
106
108
108
109
109
109
111
113
120
122
122
124
124
138
142
142
159
163
163
173
177
179
179
181
181
200
204
204
220
224
226
226
228
228
244
246
248
270
271
271
271
271
272
272
272
278
279
280
284
285
290
292
292
294
295
295
295
297
297
298
309
313
313
314
314
315
323
323
323
323
332
337
337
356
358
361
376
381
381
499
499
500
500
782
783
784
1
1
5
5
7
11
15
16
16
17
17
23
24
26
26
26
26
26
31
32
33
33
35
39
39
40
41
43
43
43
43
43
50
51
51
54
55
55
55
55
56
56
56
56
58
58
66
66
67
73
73
74
75
75
77
79
79
79
81
81
82
82
90
91
92
92
95
97
99
99
99
101
101
102
102
103
103
105
105
106
106
107
108
109
110
111
112
113
121
123
123
125
139
141
141
143
143
160
164
164
174
178
180
180
182
182
201
205
205
221
225
227
227
229
229
247
249
269
269
271
272
272
272
272
273
273
273
278
279
279
291
293
293
293
296
298
298
299
310
312
314
314
315
315
324
324
333
338
357
359
362
377
382
382
500
500
783
784
785
5
5
7
12
15
15
17
17
17
23
23
26
27
31
33
33
34
34
36
40
40
40
40
43
44
46
51
51
53
55
57
57
57
57
59
59
64
64
66
67
73
75
75
76
76
78
82
82
84
84
85
90
92
92
93
93
98
99
100
102
102
102
102
102
102
104
104
106
106
106
108
108
109
109
109
109
110
110
111
111
112
112
112
122
124
124
126
140
142
142
144
161
165
165
179
183
183
202
206
206
226
230
230
242
246
248
248
250
250
270
270
271
271
272
272
273
273
273
274
274
274
274
274
279
282
292
294
294
297
297
298
299
299
300
311
312
316
316
324
334
339
358
360
363
378
383
383
496
496
784
785
786
5
5
7
13
17
17
17
18
18
27
28
33
35
35
37
41
41
44
45
46
51
51
52
56
57
58
58
58
60
60
66
66
66
67
67
67
67
75
77
77
79
82
82
83
83
85
92
94
94
99
99
99
102
103
103
105
105
107
107
110
111
111
111
111
111
113
113
113
123
125
127
141
143
143
145
162
166
166
180
184
184
203
207
207
227
231
231
243
247
249
249
251
251
271
271
272
272
272
272
273
273
274
274
274
274
274
275
275
275
282
282
282
283
293
295
298
298
299
299
300
301
308
312
312
313
317
317
324
335
337
337
340
359
361
361
364
364
379
384
384
497
497
498
498
498
785
786
787
5
5
7
14
15
15
17
19
19
26
28
29
33
33
35
38
42
42
43
45
46
46
46
51
52
53
53
57
58
61
61
64
64
67
68
68
75
75
77
80
84
84
84
84
85
92
92
94
103
104
104
106
108
108
109
110
110
110
110
111
111
111
124
126
128
142
144
146
163
165
165
167
167
181
185
185
204
208
208
228
232
232
244
248
250
250
252
252
272
272
272
272
273
273
273
273
274
274
274
275
275
275
276
276
276
282
283
284
294
295
299
299
300
300
300
301
308
313
313
314
318
318
336
338
341
360
365
365
380
385
385
499
499
499
786
787
788
5
5
5
7
15
17
17
17
20
20
23
26
26
35
35
35
39
40
43
43
43
43
51
51
52
53
53
53
53
53
58
58
58
59
62
62
69
69
77
77
77
81
82
82
85
85
85
94
94
94
102
104
105
105
107
107
109
109
109
109
111
112
127
129
143
145
147
164
166
166
168
182
186
186
205
209
209
229
233
233
249
253
253
274
274
274
274
275
275
276
276
276
277
277
277
282
283
284
285
285
295
300
300
301
301
301
301
312
314
314
315
319
319
337
339
342
361
366
366
381
386
386
499
500
500
787
788
789
5
5
5
6
7
7
7
15
15
16
17
17
17
17
21
21
28
28
29
33
33
35
40
44
44
45
45
46
46
51
51
51
53
53
53
57
57
57
59
59
60
60
63
63
64
69
75
75
77
82
82
83
84
84
85
86
86
92
92
94
99
102
102
106
106
107
107
107
108
108
108
109
110
110
110
110
110
111
113
122
126
128
128
130
130
146
148
165
167
167
169
183
187
187
206
210
210
230
234
234
250
254
254
274
274
275
275
275
275
277
277
277
278
280
284
295
295
296
299
301
301
301
301
302
302
308
313
315
315
315
320
320
323
338
340
343
362
367
367
382
387
387
500
500
788
789
790
5
5
7
8
8
17
17
17
17
17
18
18
20
20
22
22
26
26
29
35
35
35
41
43
43
43
43
45
45
46
51
57
58
60
60
60
60
60
60
64
64
64
69
69
77
77
77
82
82
82
82
82
83
83
83
83
83
84
84
85
87
87
94
94
94
102
104
104
105
106
106
106
106
106
106
107
107
107
107
108
108
109
109
109
109
109
109
110
110
110
110
110
111
111
123
127
129
129
131
131
141
145
147
147
149
149
166
168
170
184
188
188
207
211
211
231
235
235
251
255
255
268
269
269
274
274
276
277
278
279
281
281
285
285
290
293
296
296
297
302
302
302
303
303
312
314
316
321
321
324
324
324
324
339
341
344
363
368
368
383
388
388
789
790
791
9
9
15
18
19
19
21
21
23
28
28
29
33
33
35
42
44
44
45
45
46
46
51
52
53
53
57
57
60
61
61
64
64
65
65
69
70
75
75
77
82
82
83
83
83
83
83
84
84
84
84
84
84
84
85
85
85
85
85
86
88
88
92
92
94
94
94
94
102
102
102
103
103
105
106
106
106
106
106
107
107
107
107
107
108
108
108
108
108
108
109
109
109
109
112
112
112
113
124
128
130
130
132
132
142
146
148
148
150
150
167
169
171
185
189
189
208
212
212
232
236
236
252
256
256
263
264
267
267
268
269
270
270
277
277
277
279
280
286
286
291
292
292
294
294
298
301
301
303
303
303
313
313
315
315
317
322
322
325
325
340
342
345
364
369
369
384
389
389
790
791
792
5
9
19
19
20
22
22
24
26
26
29
35
35
35
43
43
43
45
45
46
47
51
53
53
54
54
61
62
62
66
66
69
69
70
71
71
71
71
77
77
77
82
82
83
83
84
84
85
85
85
85
85
85
85
86
86
86
89
89
94
94
94
94
95
95
104
104
105
107
108
108
108
108
108
108
109
109
109
109
109
109
109
110
110
110
112
112
112
113
113
129
133
133
143
147
149
149
151
151
170
172
186
190
190
209
211
211
213
213
233
235
235
237
237
253
257
257
264
265
267
267
268
268
269
269
269
270
271
271
272
272
277
278
280
281
281
285
285
285
287
287
292
293
293
299
302
304
304
313
315
316
316
318
323
323
325
341
343
346
365
370
370
385
390
390
791
792
793
1
5
9
9
15
15
20
20
23
25
28
28
29
33
33
35
35
35
35
44
45
45
46
46
48
53
55
55
60
62
63
63
64
67
67
69
69
69
71
71
75
75
77
77
77
77
85
85
86
86
86
86
87
87
90
90
92
96
96
102
102
105
106
107
108
109
110
111
111
113
113
113
114
114
130
134
134
148
152
152
165
169
171
171
173
173
187
191
191
210
212
212
214
234
236
236
238
254
258
258
265
266
268
268
269
269
270
270
270
270
271
272
272
273
273
273
279
281
281
281
282
285
286
286
286
293
294
294
296
300
301
301
303
305
305
313
315
316
317
317
319
324
324
325
342
344
347
366
371
371
386
391
391
792
793
794
1
1
5
5
9
10
15
20
20
21
21
24
26
26
26
28
29
35
35
35
35
36
36
43
43
45
45
46
47
49
53
53
55
57
60
60
64
68
68
69
77
77
77
77
78
78
82
86
86
87
87
89
89
91
91
96
97
104
104
105
109
109
109
109
110
110
111
111
111
115
115
131
135
135
149
153
153
166
170
172
172
174
174
188
190
190
192
192
211
213
213
215
235
237
237
239
255
259
259
266
266
267
268
269
269
270
270
270
270
270
271
271
271
271
274
274
280
283
286
287
287
287
294
295
295
296
301
301
301
302
302
306
306
313
313
316
317
320
325
325
345
348
367
372
372
387
392
392
793
794
795
9
9
10
11
11
11
11
15
19
19
19
21
22
22
25
27
28
28
28
29
29
29
29
33
37
37
45
45
45
46
46
46
46
48
50
55
55
55
62
62
63
65
69
69
69
70
71
71
75
79
79
82
87
87
88
90
90
92
92
92
97
102
102
104
105
107
107
111
112
112
116
116
132
136
136
150
154
154
167
171
173
173
175
175
189
191
191
193
212
214
216
236
238
240
256
260
260
267
269
270
270
270
271
272
272
272
275
275
275
281
284
285
287
288
288
295
296
296
302
303
303
307
307
314
314
315
315
315
317
321
326
326
346
349
368
373
373
388
393
393
794
795
796
5
9
9
9
11
11
19
19
20
22
22
22
22
22
24
26
26
26
26
28
28
29
30
30
37
38
43
43
43
46
47
47
47
49
49
51
51
53
53
55
60
60
63
66
68
68
69
70
70
71
71
72
72
79
80
82
82
87
88
89
91
91
92
93
97
97
98
103
104
104
104
105
105
105
105
107
107
108
109
111
113
113
115
115
117
117
133
137
137
151
155
155
172
176
176
190
192
192
194
213
215
217
237
239
241
257
261
261
270
271
272
272
272
273
273
275
275
276
280
282
285
286
286
295
296
296
297
297
299
303
304
304
308
308
316
316
316
316
322
327
327
347
350
369
374
374
389
394
394
499
795
796
797
1
1
5
5
5
9
19
19
20
22
23
25
27
27
29
29
31
31
33
33
38
44
48
48
48
50
50
52
52
55
55
55
62
62
63
67
69
69
71
71
73
73
75
75
80
87
87
88
89
89
89
89
90
92
92
94
96
96
96
98
99
99
102
102
102
103
105
106
106
106
106
107
107
108
108
108
108
110
114
116
116
118
134
138
138
152
156
156
173
177
177
191
193
195
216
218
240
242
258
260
260
262
262
267
267
271
272
272
272
273
275
275
275
276
277
281
281
283
286
294
297
297
297
297
300
304
305
309
309
317
317
323
328
328
342
346
348
351
370
375
375
390
395
500
500
500
796
797
798
4
4
5
5
6
6
6
9
10
11
11
21
23
24
26
26
28
28
30
30
31
33
38
38
39
43
45
48
49
51
51
53
53
53
53
55
55
55
55
60
60
63
68
70
70
71
71
72
73
75
80
80
81
82
87
87
87
89
89
91
93
95
96
97
99
99
99
99
99
102
104
105
106
106
106
106
107
107
107
108
108
109
109
109
115
117
117
119
135
139
139
153
157
157
174
178
178
192
194
196
211
215
217
217
219
219
235
239
241
241
243
243
259
261
261
263
265
265
268
268
270
271
271
273
275
276
277
278
282
284
287
288
295
295
300
300
304
304
305
306
310
310
317
324
324
329
329
347
349
352
371
376
376
391
394
394
396
500
501
501
797
798
799
5
7
7
7
7
9
11
11
12
12
22
24
25
26
27
31
31
31
31
33
37
37
37
39
40
40
43
48
48
50
54
54
55
55
55
55
56
56
62
62
63
69
71
73
73
73
73
75
79
79
79
81
82
82
82
83
87
94
96
96
96
99
100
102
102
102
104
105
106
106
106
107
107
107
108
108
108
108
108
109
112
112
116
118
120
136
138
138
140
140
154
158
158
175
179
179
195
197
212
216
218
218
220
220
236
240
242
242
244
244
260
262
262
264
264
264
266
266
267
267
269
269
270
273
273
275
277
278
283
285
288
288
305
305
306
307
311
311
317
325
325
325
325
330
330
348
350
353
372
377
377
392
395
397
501
501
798
799
800
4
6
8
8
8
8
11
13
13
19
22
22
26
26
28
31
32
32
32
37
38
40
40
40
40
40
43
43
48
49
51
53
55
55
57
57
60
60
62
63
70
71
71
72
73
74
79
80
82
82
82
82
82
82
82
82
83
83
83
83
84
87
88
89
89
89
93
95
95
97
97
100
101
102
102
103
103
105
105
106
106
106
107
107
107
107
107
108
108
108
109
109
110
113
113
117
119
121
137
139
139
141
155
159
159
176
180
180
190
194
196
196
198
198
213
217
219
219
221
221
237
241
243
243
245
245
260
261
261
262
263
264
265
265
265
267
267
268
268
270
270
271
273
284
286
289
297
304
306
306
307
312
312
326
326
326
331
331
349
351
354
373
378
378
393
396
398
799
800
801
5
7
9
9
11
11
13
24
24
25
29
31
31
32
33
33
33
33
33
33
37
37
40
41
48
48
49
50
50
50
50
52
56
56
57
58
62
62
62
63
63
63
63
73
73
73
73
75
79
79
82
82
82
83
83
83
83
83
83
84
84
84
85
87
89
89
90
90
90
94
96
96
98
98
99
101
102
102
102
103
104
105
105
107
107
107
107
107
107
108
108
109
109
109
109
109
110
110
110
110
120
122
138
140
140
142
156
160
160
177
181
181
191
195
197
197
199
199
218
222
222
242
246
246
261
262
262
263
263
263
264
265
266
266
266
266
268
268
268
268
269
269
275
285
285
287
287
288
288
290
290
297
304
308
313
313
325
326
326
326
326
327
327
332
332
350
352
355
374
379
379
394
397
399
800
801
802
4
4
5
5
10
10
13
13
13
22
22
25
26
30
31
31
31
33
33
34
34
41
42
43
48
48
48
50
50
53
53
53
57
57
58
60
60
63
64
64
68
71
71
72
73
74
74
76
76
83
83
83
84
84
84
84
85
85
85
86
89
91
91
91
95
96
97
97
99
99
99
99
104
106
107
107
107
107
107
107
107
108
108
109
109
109
109
109
110
112
115
119
121
121
123
123
139
141
143
157
159
159
161
161
178
182
182
192
196
198
198
200
200
219
223
223
243
247
247
262
263
264
264
264
265
266
267
267
267
267
268
268
270
270
275
275
275
276
286
286
286
287
287
289
289
291
291
300
304
305
309
314
314
316
327
327
328
328
333
333
351
353
353
356
356
375
380
380
395
398
400
801
802
803
5
5
5
7
11
11
11
11
13
24
24
25
31
31
35
35
40
42
43
48
53
54
58
58
58
58
59
65
65
69
73
73
73
73
75
75
77
77
82
83
84
84
85
85
85
86
86
86
89
89
91
96
100
100
101
101
102
102
102
102
107
107
108
108
109
109
109
109
113
116
120
122
122
124
124
140
142
144
158
160
160
162
179
183
183
197
201
201
220
224
224
244
248
248
264
264
265
265
265
265
266
266
266
267
268
268
269
269
270
270
275
276
277
287
287
287
287
288
288
292
292
300
305
306
310
315
315
317
317
317
317
326
326
328
328
329
334
334
352
357
357
376
381
381
396
399
401
802
803
804
1
5
5
6
7
12
12
13
13
13
22
22
25
31
32
32
33
33
36
36
37
40
40
48
49
50
50
53
55
57
57
57
59
59
59
60
60
60
65
70
71
71
73
73
73
73
74
76
76
78
78
79
82
82
86
86
91
91
91
97
99
99
101
101
102
106
106
107
107
108
108
108
109
110
117
121
123
123
125
125
143
145
159
161
161
163
180
184
184
198
202
202
221
225
225
245
249
249
262
265
265
266
266
267
267
267
268
269
269
270
270
270
270
275
276
277
278
278
288
288
289
289
293
293
304
306
307
311
316
316
318
318
327
330
335
353
358
358
377
382
382
397
400
402
803
804
805
1
1
1
5
5
7
8
11
11
13
13
13
13
13
13
24
24
25
31
33
33
33
34
34
37
37
42
42
43
48
50
50
51
51
56
57
58
60
60
60
60
60
60
60
60
65
65
73
73
73
73
74
74
75
79
79
84
84
85
89
89
91
98
101
101
102
102
102
104
104
104
105
106
106
109
109
109
122
126
126
138
142
144
144
146
146
160
162
164
181
183
183
185
185
199
203
203
222
226
226
246
250
250
263
263
266
266
266
267
268
268
268
269
270
271
271
273
277
289
289
289
290
290
294
294
295
300
305
307
307
312
317
317
318
326
328
331
336
354
359
359
378
383
383
398
401
403
804
805
806
5
5
7
9
13
13
13
13
14
14
14
14
22
22
24
25
33
34
35
35
36
36
38
38
40
40
43
50
52
52
57
57
57
60
60
60
61
61
61
65
66
71
75
75
76
80
80
82
82
85
91
91
91
99
99
99
102
102
102
103
103
103
103
104
104
105
105
105
106
106
106
108
108
123
127
127
139
143
145
145
147
147
161
163
165
182
184
184
186
200
204
204
223
227
227
247
251
251
262
262
264
264
266
267
267
267
269
269
269
269
270
271
274
274
278
278
289
290
290
291
291
295
295
296
304
306
313
318
318
318
326
326
327
332
334
334
337
355
360
360
379
384
384
402
404
805
806
807
1
5
5
7
10
11
15
15
15
15
24
24
24
25
25
25
25
33
33
35
35
37
37
39
42
42
43
50
50
52
58
61
62
62
62
65
65
66
67
67
67
67
75
76
77
81
81
84
84
85
89
89
91
91
91
91
100
101
101
102
102
102
103
103
103
104
104
104
105
105
105
105
106
106
106
106
108
108
108
110
110
124
128
128
140
144
146
146
148
148
164
166
183
185
185
187
201
205
205
224
228
228
248
252
252
259
260
261
263
263
263
265
265
265
268
268
269
270
271
271
272
279
279
291
292
292
296
296
297
297
305
305
307
307
314
319
319
325
326
327
328
333
335
338
356
361
361
380
385
385
403
405
806
806
808
5
5
5
7
11
15
16
16
16
22
22
25
26
26
35
35
35
36
38
38
40
40
40
43
52
52
52
59
60
60
61
61
62
63
63
63
65
65
65
67
67
71
71
76
78
80
81
82
82
82
82
85
91
91
91
91
92
92
99
99
101
101
102
104
105
105
105
105
105
105
105
105
106
107
107
107
108
109
109
109
125
129
129
145
149
149
159
163
165
165
167
167
184
186
188
202
206
206
225
227
227
229
229
249
253
253
260
261
261
261
262
263
264
264
264
266
266
271
272
273
274
278
278
278
280
280
289
289
290
292
297
297
298
298
298
298
305
307
308
308
315
320
320
326
328
329
334
336
339
357
362
362
381
386
386
404
406
500
806
807
807
809
5
5
5
6
7
7
7
11
11
12
16
17
17
27
27
33
33
35
37
39
41
42
42
43
50
50
52
57
60
60
60
62
62
64
65
71
76
76
77
79
80
81
81
82
83
83
84
84
85
89
93
93
101
101
101
102
102
102
102
102
102
103
105
106
106
106
107
107
107
107
107
108
110
110
126
130
130
146
150
150
160
164
166
166
168
168
185
187
189
203
207
207
226
228
228
230
250
254
254
261
262
262
262
263
264
265
265
265
271
271
273
274
274
274
274
278
279
279
279
287
290
290
292
293
296
298
298
298
298
299
299
305
307
308
309
309
316
321
321
326
327
329
335
337
340
358
363
363
382
387
387
398
405
407
501
808
808
810
5
5
7
8
8
11
13
16
16
16
16
17
18
18
22
27
35
35
35
38
40
40
40
42
42
43
52
52
52
61
62
62
63
63
63
65
65
66
67
67
71
75
75
75
77
78
78
80
80
81
81
82
82
82
83
84
84
84
85
93
94
99
99
102
102
102
103
103
103
106
106
107
107
107
107
107
107
109
109
109
110
127
131
131
147
151
151
161
165
167
167
169
169
188
190
204
208
208
227
229
229
231
251
253
253
255
255
262
262
263
263
263
263
264
264
265
266
268
272
274
275
279
280
280
280
288
288
292
294
299
299
299
300
300
305
305
308
309
317
322
322
326
327
329
329
330
336
338
341
359
364
364
383
388
399
403
406
408
501
501
809
809
811
9
9
11
14
15
15
15
17
17
17
18
18
19
22
27
27
33
33
35
41
42
42
42
43
43
43
43
43
50
50
52
52
52
52
60
60
62
63
64
65
66
67
67
68
68
75
76
78
78
78
78
78
80
81
81
81
82
83
84
84
84
84
85
85
85
85
85
85
89
89
94
102
102
103
103
103
104
104
104
104
105
107
107
107
108
108
108
108
108
128
132
132
148
152
152
166
170
170
183
187
189
189
191
191
205
209
209
228
230
232
252
254
254
256
260
260
264
264
264
264
265
266
268
269
273
275
276
278
280
281
281
295
298
298
300
300
300
306
306
307
307
307
309
317
318
323
323
330
330
331
337
339
342
360
365
365
384
387
387
389
404
407
409
501
502
502
810
810
812
5
9
15
15
16
18
18
18
18
18
18
18
20
22
22
27
28
35
35
35
36
40
40
40
42
42
43
44
44
44
44
52
52
52
52
53
53
62
62
63
63
65
67
67
69
69
75
75
78
79
80
81
81
82
82
82
82
83
84
85
86
86
86
86
89
94
94
95
98
99
102
102
104
104
104
104
104
105
105
106
106
106
106
107
107
107
108
109
109
109
109
109
110
129
131
131
133
133
149
153
153
167
171
171
184
188
190
190
192
192
206
208
208
210
210
229
231
233
253
255
255
257
261
261
262
262
264
264
264
265
265
266
266
269
274
276
277
279
279
290
296
299
301
301
308
308
308
308
318
318
318
319
324
324
331
331
338
340
343
361
366
366
385
388
390
405
408
410
502
502
503
811
811
813
5
9
9
15
15
16
18
19
19
21
27
27
28
29
29
29
29
33
33
35
35
35
35
37
41
43
43
45
45
45
45
50
54
54
60
60
63
66
67
67
68
69
79
80
80
81
81
82
83
83
84
87
87
87
87
89
93
93
93
95
96
96
98
99
99
102
102
103
103
104
104
104
104
104
104
104
104
104
105
105
106
106
106
106
106
106
108
108
110
130
132
132
134
150
154
154
168
172
172
185
189
191
191
193
193
207
209
209
211
232
234
253
254
256
257
258
259
260
260
260
262
262
263
263
264
265
265
265
266
266
267
269
275
278
282
290
297
298
298
300
302
302
309
309
319
319
320
325
325
329
339
341
344
362
367
367
386
389
391
406
409
411
502
502
503
504
812
812
814
5
5
9
10
17
19
20
20
22
22
27
27
27
29
29
35
35
35
35
36
36
38
40
42
44
44
45
46
46
54
55
61
62
62
63
65
67
67
69
69
69
69
69
78
80
81
81
82
82
82
83
84
84
86
86
87
88
88
93
94
96
96
96
96
96
99
99
103
103
103
103
103
104
104
104
104
105
105
105
105
105
106
106
106
107
107
108
109
109
111
131
133
133
135
151
155
155
169
173
173
190
194
194
208
210
210
212
227
231
233
233
235
235
254
255
257
257
258
258
259
260
261
261
261
261
261
263
263
263
264
264
266
266
267
276
278
279
281
282
283
298
298
298
299
299
303
303
309
318
319
319
319
319
320
321
326
326
326
342
345
363
368
368
387
390
392
407
410
410
412
412
503
504
813
813
815
9
9
10
11
11
11
11
18
20
21
21
23
27
33
37
37
40
43
45
45
47
47
50
50
55
60
60
62
62
63
66
67
67
68
68
69
70
70
75
78
78
82
82
82
83
84
85
87
87
87
87
89
93
93
96
97
102
102
104
104
104
105
105
105
105
105
106
106
106
107
107
108
109
110
112
132
134
136
152
156
156
170
174
174
191
195
195
209
211
213
228
232
234
234
236
236
255
258
258
259
259
259
259
260
261
262
262
262
262
262
263
265
265
267
267
271
277
279
280
281
283
284
299
300
300
304
304
309
320
320
321
322
326
327
327
327
329
329
343
346
364
369
369
388
391
393
408
413
413
502
502
504
814
814
816
1
1
1
4
5
9
9
9
11
11
15
15
18
18
20
22
22
24
24
27
28
29
29
37
38
40
40
44
45
46
48
48
50
55
55
56
62
62
62
63
63
63
63
63
67
69
69
69
69
69
71
71
80
80
81
82
82
84
86
87
88
88
88
90
97
98
99
99
102
103
103
104
104
104
105
105
106
106
106
106
107
107
109
111
113
133
135
137
153
157
157
171
175
175
192
196
196
210
212
214
229
233
235
235
237
237
259
259
259
259
260
260
260
260
261
262
263
263
263
263
263
263
271
271
272
276
278
280
281
284
285
296
300
301
301
305
305
319
319
321
321
323
326
328
330
330
344
347
365
370
370
389
392
394
409
414
414
503
815
815
817
1
1
5
5
9
16
20
20
21
21
23
23
25
25
27
29
29
30
30
33
33
38
45
45
45
46
47
47
47
47
49
49
50
54
54
54
56
57
57
60
60
63
64
64
67
67
68
69
72
72
78
78
81
87
87
87
88
89
89
89
89
89
91
96
98
99
102
103
104
104
105
105
106
107
107
112
114
136
138
154
156
156
158
158
172
176
176
193
197
197
213
215
234
238
238
255
260
260
260
260
260
261
261
261
261
261
262
264
264
271
271
271
272
273
277
277
279
281
281
281
282
285
286
288
297
301
302
306
306
320
324
327
329
329
331
331
331
339
343
345
348
366
371
371
390
393
395
410
415
415
502
504
816
816
818
5
5
6
9
10
11
11
17
18
18
21
22
24
24
26
26
29
31
31
33
38
38
39
40
45
45
45
46
47
47
50
50
54
55
57
57
57
57
57
65
65
69
69
69
69
73
73
80
80
81
82
87
87
87
88
89
89
90
92
93
96
96
102
102
104
104
104
104
105
105
105
107
107
108
111
113
113
115
115
131
135
137
137
139
139
155
157
157
159
173
177
177
194
198
198
208
212
214
214
216
216
235
239
239
256
261
261
261
262
262
262
262
263
265
267
267
272
273
274
278
279
280
282
282
282
283
286
287
289
297
297
301
301
302
303
307
307
308
319
321
325
327
327
329
330
330
344
346
349
367
372
372
391
394
396
411
416
416
502
503
817
819
4
4
4
5
6
7
9
11
11
12
12
20
20
21
23
27
27
29
29
31
33
37
37
37
39
40
40
45
47
51
51
54
54
57
58
60
65
67
67
69
69
69
69
70
74
74
78
78
81
87
91
93
98
98
99
102
102
102
102
104
104
104
105
105
105
105
106
106
108
108
112
114
114
116
116
132
136
138
138
140
140
156
158
158
160
174
178
178
195
199
199
209
213
215
215
217
217
236
240
240
257
260
260
260
260
262
262
262
262
263
263
264
264
265
267
269
273
274
279
280
280
281
283
284
287
290
290
302
302
303
304
308
308
309
309
309
309
319
319
320
326
328
330
330
331
331
331
345
347
350
368
373
373
395
397
412
417
417
504
818
820
4
4
5
5
7
8
11
13
13
18
18
21
24
28
28
31
31
31
37
38
40
40
40
40
40
45
46
47
47
48
52
52
58
59
60
65
65
69
69
69
69
70
70
71
75
75
80
80
81
86
87
88
89
89
90
92
92
94
94
96
96
99
102
102
102
102
103
103
103
103
104
104
104
104
105
105
105
109
113
115
115
117
117
133
137
139
139
141
141
157
159
161
175
177
177
179
179
196
200
200
210
214
216
216
218
218
237
241
241
258
258
258
258
258
258
258
261
261
261
261
262
262
263
263
264
264
265
267
280
282
283
285
291
291
291
291
301
303
303
304
309
309
310
310
318
319
320
321
327
329
332
332
332
346
348
351
369
374
374
396
398
413
418
418
505
819
821
1
4
5
5
6
8
9
11
11
13
20
20
21
25
29
29
29
29
31
37
37
40
41
45
47
47
48
48
49
53
53
57
59
60
60
60
65
66
67
71
71
72
76
76
78
78
79
79
79
79
80
81
87
87
89
89
90
90
91
93
93
95
95
98
98
99
103
103
103
103
103
104
105
105
105
105
105
105
106
106
106
106
107
114
118
118
138
142
142
158
160
162
176
178
178
180
197
201
201
215
219
219
238
242
242
256
259
259
259
259
259
260
260
262
262
262
262
265
266
271
281
282
283
283
286
286
289
291
291
292
292
301
305
310
310
310
319
321
322
328
330
330
331
331
331
333
333
333
347
349
352
370
375
375
397
399
414
419
419
502
815
820
822
4
4
4
5
5
7
9
10
13
13
13
18
18
20
21
26
30
30
31
31
31
41
42
47
49
49
50
54
54
54
57
57
65
65
66
67
67
67
67
71
72
73
76
76
77
77
79
79
79
79
80
80
80
80
80
81
81
81
81
88
89
91
91
92
94
94
96
96
96
96
99
101
102
102
102
103
103
103
103
104
104
104
104
104
105
105
106
107
107
115
119
119
139
143
143
161
163
177
179
179
181
198
202
202
216
220
220
239
243
243
257
260
260
260
260
260
261
261
263
263
263
263
264
264
266
267
271
271
271
272
282
282
287
287
292
293
293
297
301
302
306
310
311
311
319
320
322
329
330
330
330
331
331
332
332
332
334
348
350
350
353
353
371
376
376
391
398
400
415
420
420
501
502
503
816
818
821
823
5
5
5
6
8
10
11
11
11
13
20
20
20
21
21
21
21
27
29
29
31
31
31
40
42
43
47
47
49
51
55
55
59
59
60
60
65
65
65
67
67
67
67
72
74
76
76
78
78
78
78
80
80
81
81
81
82
82
89
89
91
93
97
97
97
97
98
98
99
99
99
99
99
102
103
103
103
103
103
104
104
104
104
104
105
105
106
106
106
108
116
120
120
140
144
144
156
160
162
162
164
164
178
180
182
199
201
201
203
203
217
221
221
240
244
244
253
253
255
257
258
261
261
261
261
261
261
261
261
262
262
265
267
268
271
272
273
283
287
288
288
291
291
293
297
302
303
307
312
312
319
320
322
322
323
330
332
332
333
333
333
335
349
354
354
372
377
377
392
396
399
401
416
421
421
502
502
504
819
822
824
4
5
6
7
9
11
12
13
13
13
18
18
21
22
22
28
31
31
31
32
32
37
40
40
49
49
49
52
54
54
56
56
57
57
60
65
67
72
72
73
75
79
79
81
81
82
82
83
83
91
91
91
94
96
96
98
98
98
98
99
99
99
101
101
102
103
104
104
104
105
105
106
117
121
121
141
145
145
157
161
163
163
165
165
179
181
183
200
202
202
204
218
222
222
241
245
245
253
254
254
255
256
257
257
257
258
259
259
262
263
263
266
268
269
271
272
273
274
274
282
282
284
287
289
289
292
301
303
304
308
313
313
323
323
324
331
331
333
333
334
334
336
350
355
355
373
378
378
397
400
402
417
422
422
503
503
505
505
820
823
825
7
7
8
10
11
11
12
13
13
13
13
13
23
23
29
29
29
31
31
31
31
33
33
42
42
43
47
47
49
53
55
55
57
59
59
60
65
66
67
67
67
71
71
71
73
74
74
76
78
80
80
82
82
83
89
89
91
95
98
98
98
98
99
99
99
99
99
99
99
99
101
101
101
102
104
104
104
104
105
105
105
106
118
122
122
142
146
146
158
162
164
164
166
166
182
184
201
203
203
205
219
223
223
242
246
246
254
255
255
255
255
256
257
258
258
258
259
262
263
263
263
267
269
269
270
273
277
280
283
283
285
290
290
291
291
293
297
302
304
304
309
314
314
324
324
332
332
332
334
337
351
356
356
374
379
379
398
401
403
418
423
423
502
505
505
506
506
821
824
826
9
11
13
13
13
13
13
14
14
14
18
23
30
31
31
31
31
32
32
32
32
34
34
40
40
43
49
49
49
54
56
56
57
57
58
60
65
67
67
68
68
71
72
74
74
74
74
74
77
78
79
79
79
79
79
81
81
83
83
91
91
91
96
96
96
99
100
100
100
100
101
101
102
102
102
102
102
103
103
103
104
104
104
104
105
105
105
119
123
123
143
147
147
163
167
167
177
181
183
183
185
185
202
204
206
220
224
224
243
245
245
247
247
253
255
256
256
256
256
256
257
258
258
258
258
258
259
259
259
260
261
262
263
263
263
268
270
270
271
274
274
275
277
278
281
281
286
291
291
291
291
292
292
301
303
310
315
315
322
335
338
352
357
357
375
380
399
402
404
419
424
424
506
507
507
822
825
827
7
7
11
12
14
15
15
15
18
23
23
29
31
33
33
33
33
35
42
42
43
47
47
49
49
49
49
55
57
59
59
59
60
67
69
69
71
71
74
75
76
78
78
78
79
79
79
80
80
80
80
82
83
84
89
89
91
91
91
91
97
101
101
101
101
102
102
103
103
103
103
104
104
104
104
105
105
105
105
105
105
105
120
124
124
144
148
148
164
168
168
178
182
184
184
186
186
203
205
207
221
225
225
244
246
246
248
254
256
256
256
256
256
257
257
258
259
259
259
259
260
260
260
261
269
272
275
275
276
278
279
287
292
292
293
293
302
302
304
304
309
311
316
316
319
334
336
339
353
358
358
376
379
379
381
400
403
403
405
405
420
425
425
507
823
826
828
1
1
7
7
8
8
8
8
13
15
16
16
18
18
23
24
32
33
34
34
34
36
40
40
43
49
49
49
49
50
50
56
57
57
58
59
60
60
67
67
69
75
76
76
79
80
81
81
81
83
83
83
84
85
85
85
85
91
91
91
91
92
92
96
97
98
99
101
101
101
102
102
102
102
102
103
104
104
105
105
105
105
105
105
105
105
121
123
123
125
125
145
149
149
165
169
169
179
183
185
185
187
187
206
208
222
224
224
226
226
245
247
247
249
255
256
257
257
257
258
258
258
258
258
260
260
260
260
264
270
270
273
274
274
274
276
276
277
279
280
283
288
289
293
293
294
294
302
304
305
305
310
310
310
312
317
317
319
320
322
322
334
337
340
354
359
359
377
380
382
401
406
406
421
426
426
824
827
829
1
1
1
7
7
7
7
8
8
11
11
13
14
14
16
17
17
23
23
24
25
25
25
25
29
29
33
34
35
37
42
42
43
47
51
51
59
59
59
59
60
60
60
60
61
69
69
69
74
76
77
78
80
81
82
82
83
83
83
84
85
85
89
93
93
96
96
99
99
99
99
101
101
101
101
102
102
102
102
102
103
103
103
103
104
104
104
105
122
124
124
126
146
150
150
166
170
170
184
188
188
201
205
207
207
209
209
223
225
225
227
245
246
248
249
250
252
256
256
258
258
258
258
259
259
261
261
261
261
264
264
265
269
270
270
270
271
274
274
275
275
275
278
280
281
283
289
290
294
294
295
302
304
305
306
306
311
311
313
318
318
319
323
323
332
336
338
341
355
360
360
378
381
383
402
407
407
422
427
427
502
502
505
825
828
829
830
11
13
14
15
15
16
16
17
18
18
18
23
23
23
25
25
29
34
34
34
35
36
38
40
40
42
43
51
52
54
57
57
58
60
60
60
61
61
62
62
67
67
69
71
74
74
81
82
83
83
85
93
94
96
96
99
99
100
101
101
102
102
103
103
104
104
104
104
104
105
123
125
125
127
147
149
149
151
151
167
171
171
185
189
189
202
206
208
208
210
210
224
226
226
228
246
247
249
250
251
253
254
254
259
259
259
259
259
259
260
260
260
264
264
264
265
266
270
270
272
275
275
276
276
276
279
281
282
290
290
290
294
294
295
295
296
302
302
305
306
310
311
311
311
311
312
314
319
319
320
322
324
324
324
334
334
337
339
342
356
361
361
379
382
384
403
408
408
423
428
428
503
505
506
826
828
830
831
7
7
8
8
11
14
15
15
15
15
16
16
17
18
18
19
19
23
29
33
33
33
35
36
36
37
39
42
42
42
43
43
43
43
47
47
52
55
59
61
61
62
62
63
63
69
69
69
76
76
77
83
84
84
85
85
86
89
89
94
99
101
101
101
101
101
101
101
101
101
102
102
102
102
103
103
103
104
105
105
105
124
126
128
148
150
150
152
168
172
172
186
190
190
203
207
209
209
211
211
225
227
229
247
250
251
252
254
255
255
258
260
260
261
261
265
266
267
271
273
274
276
276
277
277
280
282
291
295
295
296
296
297
303
303
304
304
304
306
312
312
313
315
320
320
322
323
332
335
335
338
340
343
357
362
362
380
383
385
404
409
409
424
429
429
506
507
827
831
832
8
8
8
9
9
15
16
16
18
18
18
18
18
20
20
23
24
25
25
32
33
34
36
36
36
36
36
36
38
38
40
40
40
40
43
44
44
47
52
52
53
56
57
60
62
62
62
64
64
67
67
69
74
74
77
79
83
83
85
85
85
85
86
86
87
87
89
94
94
95
96
96
99
99
99
99
99
99
101
101
101
101
101
102
102
102
102
103
103
103
104
104
104
104
105
105
106
106
125
127
129
149
151
151
153
169
173
173
187
191
191
208
212
212
226
228
230
251
251
251
251
252
253
253
253
253
253
255
256
256
258
261
261
261
262
266
267
272
274
275
275
277
280
292
294
296
296
297
297
305
305
305
305
311
311
313
313
316
321
323
323
324
324
333
333
339
341
344
358
363
363
381
384
386
405
410
410
425
430
430
507
828
832
833
7
10
10
15
15
17
18
19
21
21
23
25
25
26
26
33
33
33
36
37
37
39
39
41
41
45
45
47
51
51
51
53
54
54
57
61
62
62
65
65
69
69
69
76
76
76
77
77
80
84
85
86
86
87
87
88
88
89
93
93
93
95
96
96
99
99
99
100
101
101
101
101
101
102
102
102
102
102
102
103
103
104
104
104
104
104
104
105
105
105
107
128
130
150
152
154
170
174
174
188
192
192
209
213
213
229
231
247
251
251
252
252
252
252
253
253
253
254
254
254
254
254
256
256
256
256
257
257
260
261
261
261
273
275
278
281
282
293
294
298
298
306
306
312
317
322
325
325
340
342
345
359
364
364
382
385
387
406
411
411
426
431
431
502
507
829
833
834
8
8
10
18
19
20
22
22
25
27
27
34
37
38
38
40
40
40
42
42
45
51
52
54
54
54
54
54
57
57
62
62
63
66
66
67
67
69
69
69
69
74
74
75
76
76
77
77
77
78
81
85
85
85
87
87
87
89
89
93
94
96
96
96
96
96
98
100
100
102
103
103
103
103
103
104
104
105
105
105
105
105
105
105
106
106
108
123
127
129
129
131
131
151
153
155
171
175
175
189
193
193
210
214
214
224
228
230
230
232
232
248
252
252
253
253
253
253
254
254
254
254
254
254
255
255
255
255
255
255
257
257
257
257
264
274
276
276
277
279
279
282
282
290
294
294
295
299
299
306
311
313
318
320
320
323
323
324
324
324
326
326
335
341
343
343
346
346
360
365
365
383
386
388
407
412
412
427
432
432
503
505
830
834
835
10
10
10
18
19
20
21
23
23
25
25
27
36
38
39
39
40
43
43
45
45
51
51
54
55
62
62
63
63
64
64
64
64
67
67
69
69
69
69
70
70
75
75
76
76
76
76
77
77
77
78
78
79
86
87
87
87
90
90
93
93
96
97
97
98
99
100
100
101
101
102
102
102
102
102
102
104
104
105
105
105
105
105
107
109
124
128
130
130
132
132
154
156
172
174
174
176
176
190
194
194
211
215
215
225
229
231
231
233
233
249
253
253
254
254
254
254
254
255
255
255
255
255
255
256
256
256
256
256
256
256
257
258
258
258
258
264
264
264
265
273
275
277
280
280
283
283
290
295
295
296
300
300
306
311
311
312
319
321
323
323
323
324
324
325
325
325
335
342
347
347
361
366
366
387
389
408
413
413
428
433
433
505
506
831
835
836
8
8
10
15
18
18
20
24
24
27
27
27
33
36
36
40
40
40
44
44
45
46
55
56
57
62
62
62
64
64
64
67
68
68
71
71
74
74
75
75
76
76
77
77
78
78
79
79
79
80
85
85
87
87
91
91
97
97
98
99
99
99
100
101
101
103
104
104
105
105
106
108
110
125
129
131
131
133
133
149
153
155
155
157
157
173
175
175
177
191
195
195
212
216
216
226
230
232
232
234
234
250
250
254
254
254
254
254
255
256
256
256
256
256
256
257
257
257
257
259
259
259
259
264
265
266
272
273
274
276
281
281
284
284
284
284
294
296
296
297
301
301
310
311
312
313
320
322
325
325
326
326
326
343
348
348
362
367
367
388
390
409
414
414
429
434
434
506
507
832
836
837
10
10
10
20
20
21
21
25
25
25
25
27
38
38
39
41
45
45
45
45
46
47
47
47
47
54
56
57
62
65
69
69
71
72
75
76
76
76
77
77
77
77
78
79
79
79
80
80
80
87
87
87
88
92
92
96
97
98
99
101
102
102
103
103
105
105
105
109
111
130
134
134
150
154
156
156
158
158
174
176
176
178
192
196
196
213
217
217
231
235
235
256
257
257
257
257
257
257
257
258
258
258
264
265
266
267
267
273
274
275
277
277
277
282
282
282
284
284
285
285
290
295
297
297
297
302
302
311
313
314
321
323
324
326
326
327
327
335
335
344
349
349
363
368
368
389
391
410
415
415
430
435
435
506
507
508
833
837
838
1
2
8
8
10
10
10
10
18
18
21
22
26
26
27
27
27
36
36
39
40
42
45
45
45
46
46
47
47
51
54
54
62
63
64
64
66
67
67
70
70
72
74
74
77
78
78
79
80
80
85
85
87
87
87
87
89
93
93
93
96
96
99
99
99
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
104
105
108
110
110
112
112
131
135
135
151
155
157
157
159
159
175
177
179
193
195
195
197
197
214
218
218
232
236
236
256
256
256
256
256
258
259
259
259
262
266
274
275
275
276
278
278
278
283
283
285
286
286
294
296
298
303
303
305
311
312
314
322
324
325
325
327
333
336
336
345
350
350
364
369
369
383
390
392
411
416
416
431
436
436
506
507
508
509
834
838
839
1
1
2
3
10
10
10
10
11
11
20
20
21
23
25
25
25
25
27
27
27
38
38
39
43
45
47
47
56
56
57
62
64
64
65
65
67
67
71
71
72
72
73
79
79
80
87
87
87
87
88
88
90
94
94
95
95
96
96
98
98
99
99
99
99
99
99
99
99
99
100
101
101
101
101
101
101
101
101
101
101
102
102
103
103
103
104
105
105
109
111
111
113
113
132
136
136
156
160
160
176
178
180
194
196
196
198
215
217
217
219
219
233
237
237
246
249
249
251
251
251
251
256
256
257
259
259
259
259
260
263
263
267
267
275
276
276
276
277
279
284
284
284
284
286
295
295
297
297
299
304
304
306
306
306
306
311
312
314
314
315
323
325
328
334
334
346
351
351
365
370
370
384
388
391
393
412
417
417
432
437
437
506
507
507
508
509
835
839
840
3
4
8
12
12
18
18
21
24
26
26
27
27
27
28
36
36
39
44
45
46
47
47
48
48
54
54
57
64
66
66
67
68
71
71
71
72
72
73
74
74
74
79
85
89
89
91
95
95
96
96
96
96
98
99
99
99
99
99
100
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
104
104
104
104
104
106
110
112
112
114
114
133
137
137
157
161
161
179
181
195
197
197
199
216
218
218
220
234
238
238
245
247
249
249
249
250
250
250
250
251
251
252
252
252
252
254
254
254
258
259
259
259
260
261
268
268
276
277
278
280
285
285
285
295
297
298
298
300
305
305
307
307
315
315
316
324
326
327
329
347
352
352
366
371
371
389
392
394
413
418
418
433
438
438
506
507
508
508
509
836
840
841
4
4
5
5
12
13
20
20
21
25
25
25
27
27
27
27
27
27
29
38
38
39
45
45
47
47
48
48
49
49
56
56
57
64
64
66
69
71
72
73
73
74
74
74
74
74
74
79
79
89
90
92
96
96
96
96
98
98
98
99
99
99
101
102
102
103
103
103
105
105
105
105
105
111
115
115
134
138
138
158
162
162
174
178
180
180
182
182
196
198
200
217
219
219
221
235
239
239
246
247
247
248
250
250
250
251
251
251
251
252
252
252
253
253
253
253
254
255
255
259
261
262
263
267
267
267
269
269
277
278
278
281
284
284
286
286
286
295
297
298
299
299
301
306
306
307
316
316
325
327
327
330
336
348
353
353
367
372
372
390
393
395
414
419
419
434
439
439
506
508
509
509
837
841
842
5
5
6
6
8
8
13
18
18
20
21
26
27
27
27
27
28
28
28
30
36
36
38
39
46
47
49
49
50
50
54
54
57
66
66
66
70
71
71
72
72
74
74
74
74
74
75
79
80
85
85
90
93
96
96
97
97
99
99
99
99
101
101
102
102
102
102
102
102
103
105
105
112
116
116
135
139
139
159
163
163
175
179
181
181
183
183
197
199
201
218
220
222
236
240
240
245
247
248
248
249
249
250
251
251
251
252
252
252
252
252
253
253
253
254
254
254
254
254
256
256
260
263
263
263
263
267
268
268
268
277
278
282
284
284
285
285
287
287
295
295
298
299
302
307
307
307
314
328
331
336
349
354
354
368
373
373
391
394
396
415
420
420
435
440
440
507
509
510
838
842
843
7
7
8
13
13
14
20
20
20
21
21
21
21
25
27
29
29
29
31
38
38
38
39
39
39
39
47
47
47
49
51
51
56
56
57
64
64
66
71
73
73
75
75
76
79
79
80
81
81
81
81
85
90
90
91
94
98
98
98
98
99
99
101
102
102
103
103
103
103
104
104
105
105
113
117
117
136
140
140
160
164
164
176
180
182
182
184
184
200
202
219
221
223
237
241
241
246
248
249
249
250
251
252
252
252
252
252
252
252
252
253
253
254
254
254
257
257
261
264
268
269
269
269
278
283
286
286
288
288
296
296
297
297
297
299
303
308
308
311
327
327
329
332
350
355
355
369
374
374
392
395
395
397
397
416
421
421
436
441
441
508
510
839
843
844
4
4
8
8
8
12
12
12
14
15
15
18
18
21
22
22
29
30
30
32
36
36
39
40
40
48
49
49
49
50
50
52
52
54
54
56
57
66
66
66
72
74
74
74
74
76
76
76
77
77
79
79
79
81
81
85
89
89
89
91
92
92
95
95
96
96
97
97
98
98
99
99
99
99
100
101
101
101
105
105
105
114
118
118
137
141
141
161
165
165
181
185
185
195
199
201
201
203
203
222
224
238
242
242
247
248
250
250
251
252
252
253
253
253
254
255
255
256
262
265
267
269
270
270
278
278
278
282
284
287
287
289
289
298
298
298
298
304
309
309
311
312
314
314
325
328
328
330
333
351
356
356
370
375
375
393
398
398
417
422
422
437
442
442
508
840
844
845
5
5
5
5
9
9
9
12
13
15
15
15
15
15
23
23
25
25
25
29
30
31
31
33
33
41
41
47
47
49
49
51
51
53
56
56
56
57
57
57
57
64
64
66
71
73
74
74
75
75
76
76
77
77
77
78
79
89
90
92
92
92
92
92
95
96
96
98
98
98
98
98
98
99
99
99
99
99
100
100
100
101
101
101
101
101
101
101
102
102
102
102
105
115
119
119
138
142
142
162
166
166
182
186
186
196
200
202
202
204
204
217
221
223
223
225
225
239
243
243
248
248
252
253
253
254
254
254
254
254
254
256
256
257
261
263
266
268
268
270
276
279
279
283
285
288
290
290
299
299
305
310
310
311
315
315
325
326
326
329
331
334
352
357
357
371
376
376
394
399
399
418
423
423
438
443
510
841
845
846
10
10
10
10
12
12
15
16
18
23
25
26
30
30
30
31
32
32
34
34
36
41
49
49
49
50
52
52
54
54
54
57
58
58
66
66
66
74
75
75
76
76
76
76
77
77
78
78
78
79
79
79
80
81
81
89
89
92
93
96
96
96
97
97
99
99
99
99
99
99
99
99
99
99
99
99
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
116
120
120
139
141
141
143
143
163
167
167
183
187
187
197
201
203
203
205
205
218
222
224
224
226
226
240
242
242
244
244
247
249
249
249
249
253
253
254
254
254
255
255
255
256
256
256
257
257
258
262
262
264
267
268
269
271
277
277
283
283
286
287
287
289
291
291
299
306
311
311
312
314
316
316
316
330
332
334
335
353
358
358
372
377
395
400
400
419
424
424
439
444
510
842
846
847
4
5
11
11
11
11
16
17
18
23
23
25
27
29
29
29
31
31
32
32
33
33
35
35
36
41
41
47
47
49
49
49
49
51
53
55
59
59
64
64
66
66
66
66
74
74
75
76
77
77
77
78
79
79
79
79
79
80
80
81
81
82
82
93
94
96
97
97
98
98
98
98
98
99
99
100
100
100
101
101
101
101
101
101
102
102
102
102
102
102
102
104
104
117
121
121
140
142
142
144
164
168
168
184
188
188
202
206
206
219
223
225
225
227
227
241
243
243
245
247
247
248
249
249
250
250
250
250
250
252
253
253
253
255
257
257
258
259
263
265
268
269
270
270
272
287
288
288
290
292
292
299
306
307
312
312
314
315
328
331
333
335
336
354
359
359
373
376
376
378
396
401
401
420
425
425
440
442
442
445
843
847
848
1
5
6
8
12
12
15
17
18
18
18
23
24
29
30
32
32
32
32
32
32
36
36
36
36
41
42
49
49
49
49
50
50
52
54
54
56
59
66
66
66
66
67
67
72
75
76
76
76
76
77
77
78
78
78
79
80
80
80
80
81
83
83
92
94
95
95
95
96
96
96
96
96
97
98
98
99
99
99
99
99
99
99
99
100
101
101
101
101
101
101
102
102
102
103
103
105
105
118
120
120
122
122
141
143
143
145
165
167
167
169
169
185
189
189
203
207
207
224
228
228
242
244
244
244
245
245
245
245
246
248
248
249
250
250
250
251
251
251
251
254
255
255
258
259
264
266
269
270
270
271
273
279
287
288
289
289
293
293
307
307
307
308
313
313
315
315
316
316
328
332
334
336
336
337
355
360
360
374
377
379
397
402
402
421
426
426
441
443
446
844
848
849
1
1
4
5
5
9
12
13
13
15
15
23
23
24
25
25
25
25
29
29
32
33
33
37
37
41
41
42
43
43
43
43
47
51
51
54
55
57
59
59
64
68
68
73
74
74
75
77
77
78
79
79
79
80
81
81
81
81
83
89
92
92
95
96
96
96
96
97
97
97
98
99
99
99
99
99
101
101
101
101
101
101
101
102
102
102
102
102
103
104
119
121
121
123
142
144
146
166
168
168
170
186
190
190
204
208
208
225
229
229
242
243
243
243
245
245
246
246
246
246
246
246
246
247
248
249
249
250
250
251
251
252
252
252
252
252
255
255
265
267
270
271
272
274
279
287
289
294
294
308
308
309
314
314
317
317
333
335
337
337
337
337
338
356
361
361
375
378
380
398
403
403
422
427
427
442
444
447
845
849
850
5
6
6
10
14
14
17
17
18
18
23
23
23
25
25
33
34
34
36
38
38
41
41
41
43
43
50
51
52
54
54
54
56
56
58
58
59
60
68
69
74
76
76
77
78
79
80
80
80
82
82
83
83
83
94
94
95
96
96
97
99
99
99
101
101
101
101
101
102
102
102
102
102
102
103
103
103
104
105
105
120
122
122
124
143
145
147
167
169
169
171
187
191
191
205
209
209
226
230
230
243
244
244
244
246
246
247
247
247
247
247
247
247
248
249
250
250
250
250
250
250
252
252
256
266
268
268
270
270
271
271
272
273
275
283
287
288
290
295
295
298
307
308
308
308
308
309
310
315
315
315
316
316
316
318
318
328
328
334
335
336
336
337
337
338
338
339
339
357
362
362
376
379
381
399
404
404
423
428
428
443
445
448
846
850
851
5
5
5
11
15
15
15
15
18
23
32
34
35
35
39
39
41
47
47
51
52
55
57
57
59
59
59
59
60
61
61
61
61
64
64
69
74
74
76
77
79
80
81
81
83
83
83
92
92
95
96
98
99
99
99
100
101
101
101
101
102
102
102
103
103
103
104
104
105
106
106
121
123
125
146
148
168
170
172
188
192
192
206
210
210
227
231
231
244
245
245
247
247
247
248
248
248
248
248
248
248
249
250
251
251
252
256
256
256
257
267
268
271
271
272
272
273
274
283
288
289
291
296
296
299
299
299
299
309
309
310
311
315
315
315
316
316
316
317
317
317
326
329
329
335
338
339
339
340
340
358
363
363
377
380
382
400
405
405
424
429
429
444
446
449
510
847
851
852
5
6
6
12
16
16
17
17
18
23
24
25
25
29
32
32
36
40
40
41
42
43
43
47
52
52
52
53
54
56
58
58
59
59
59
60
60
61
61
64
69
69
70
76
76
76
77
77
77
77
80
83
83
83
84
84
94
94
95
95
95
96
96
96
99
99
100
101
101
101
102
102
103
103
103
103
105
105
107
107
122
124
126
141
145
147
147
149
149
169
171
173
189
193
193
207
211
211
228
232
232
244
246
246
246
246
248
248
248
249
249
249
250
251
252
252
252
252
252
256
257
258
268
269
269
273
273
273
287
289
290
292
297
297
300
300
308
308
310
310
312
317
317
318
318
318
327
327
336
337
337
339
341
341
359
364
364
378
381
383
401
406
406
425
430
430
445
447
450
508
510
511
848
852
853
5
5
5
13
15
15
17
17
18
23
25
25
26
26
34
34
35
37
41
41
41
43
43
44
44
47
51
51
51
53
54
54
57
59
61
61
64
68
68
68
70
71
71
74
74
77
78
78
81
81
81
83
83
83
83
85
85
92
92
95
99
99
99
99
99
100
101
101
101
101
101
101
101
102
103
104
108
108
125
127
142
146
148
148
150
150
172
174
190
192
192
194
194
208
212
212
229
233
233
244
245
247
247
248
248
249
249
249
249
250
251
252
252
253
253
256
257
258
259
259
269
274
274
274
277
283
288
290
290
293
298
298
300
309
313
316
318
318
319
319
337
338
342
342
360
365
365
379
382
384
402
407
407
426
431
431
446
448
451
509
511
849
853
854
5
5
6
6
6
6
14
17
17
18
18
18
25
27
27
32
32
35
38
42
42
43
45
45
51
52
54
54
54
54
54
58
59
60
61
61
62
62
68
69
71
71
71
71
71
76
77
79
79
82
83
83
83
83
84
84
86
86
94
94
95
95
95
97
97
98
98
98
98
98
99
99
99
99
100
101
101
102
102
102
102
102
105
109
109
120
124
126
126
128
128
143
147
149
149
151
151
167
171
173
173
175
175
191
193
193
195
209
211
211
213
213
230
234
234
245
245
246
248
248
248
248
249
249
249
250
250
250
251
251
252
254
258
270
271
275
275
275
278
287
289
294
299
299
300
308
310
314
316
316
317
317
319
329
337
337
338
339
343
343
361
366
366
380
383
385
403
408
408
427
432
432
447
449
452
509
850
854
855
5
5
5
5
7
7
15
15
15
17
17
17
18
19
19
25
25
27
34
34
35
39
43
43
43
43
45
51
51
54
55
59
59
61
61
62
62
63
63
68
68
71
72
74
75
76
76
77
77
78
79
81
83
85
85
87
87
92
92
94
95
95
95
95
96
96
96
96
96
97
97
97
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
99
99
100
100
101
101
101
101
102
102
106
110
110
121
125
127
127
129
129
148
152
152
168
172
174
174
176
176
192
194
194
196
210
212
212
214
231
235
235
242
243
243
243
243
243
243
245
246
246
247
247
248
248
249
249
250
250
251
251
251
252
253
253
255
255
259
259
266
271
271
276
276
279
279
288
288
290
290
295
300
300
308
308
309
315
317
320
329
337
337
338
338
339
344
344
362
367
367
384
386
404
409
409
428
433
433
450
453
511
851
855
856
8
8
8
16
17
17
17
18
18
18
18
18
18
20
27
27
27
32
32
35
40
44
44
45
45
45
55
56
60
61
63
63
64
64
72
73
74
75
75
76
77
78
78
79
79
79
79
84
85
86
88
88
94
94
94
95
95
95
95
96
96
96
97
97
97
97
97
97
97
98
99
99
99
99
99
99
99
100
101
101
101
101
101
107
111
111
122
126
128
128
130
130
149
153
153
169
173
175
175
177
177
193
195
197
211
213
213
215
232
236
236
241
241
243
244
244
244
244
244
244
244
244
245
245
245
246
247
247
247
250
250
251
251
251
252
253
253
254
260
260
264
266
267
272
277
277
280
280
280
280
288
290
291
291
296
301
301
307
308
309
310
316
318
319
321
339
339
340
345
345
363
368
368
385
387
405
410
410
429
434
434
451
454
511
852
856
857
5
9
9
15
15
17
18
19
19
19
19
21
25
25
27
34
34
35
41
43
43
43
43
45
45
45
54
56
57
61
61
61
63
65
65
71
73
74
74
74
75
76
77
78
79
79
79
79
80
80
80
81
81
85
86
89
89
92
92
95
95
96
96
96
96
97
97
99
100
101
101
102
102
102
102
103
103
108
112
112
127
131
131
150
154
154
174
178
178
194
196
198
212
214
216
233
235
235
237
237
242
242
244
245
245
245
245
245
245
245
245
246
246
246
247
248
248
254
255
255
259
259
259
261
261
265
267
268
271
271
273
278
278
278
280
280
281
281
288
290
291
292
292
297
302
302
308
310
311
317
319
319
322
335
340
340
341
346
346
364
369
369
386
388
406
411
411
430
435
435
452
455
853
857
858
1
5
9
10
18
20
20
20
22
27
27
27
32
32
34
35
42
44
44
45
45
45
46
51
54
54
62
63
63
63
66
66
68
71
71
75
76
77
78
79
79
79
80
80
80
81
81
81
81
81
86
86
86
87
90
90
95
96
97
97
98
99
99
99
99
100
101
101
101
101
101
102
109
113
113
128
132
132
151
155
155
175
179
179
197
199
213
215
217
234
236
236
238
243
243
245
245
246
246
246
246
246
246
246
246
247
247
247
248
253
253
255
255
255
255
256
259
260
260
260
266
268
269
269
272
272
274
279
279
281
282
282
288
288
291
292
298
303
303
308
309
311
318
320
323
336
341
342
347
347
365
370
380
387
389
407
412
412
431
436
447
451
453
456
854
858
859
1
1
5
5
9
11
15
19
20
21
23
25
25
27
34
34
34
35
35
35
35
43
43
43
45
45
45
45
45
45
47
56
56
57
61
61
63
63
67
67
73
73
74
74
75
78
79
79
79
79
80
81
81
81
85
85
85
87
87
88
88
91
91
92
95
95
96
96
97
97
97
97
99
99
99
100
100
101
101
101
103
103
103
110
114
114
129
133
133
152
156
156
176
180
180
192
196
198
198
200
200
216
218
235
237
237
239
242
244
244
244
244
246
246
247
247
248
248
248
250
251
254
256
257
260
261
261
261
267
269
270
270
270
275
280
280
280
280
282
289
289
290
290
290
292
299
299
304
304
308
309
311
311
312
319
319
319
321
324
327
336
336
340
340
342
343
348
348
366
369
369
371
381
385
388
390
408
413
413
432
437
452
454
457
855
859
860
8
8
8
8
10
12
12
15
20
20
22
24
27
27
27
32
32
35
36
36
44
45
45
45
45
46
46
46
48
54
54
57
63
63
63
64
68
68
71
71
74
79
79
80
85
86
88
88
88
88
88
88
90
90
92
92
92
92
96
96
96
97
97
97
97
98
99
99
99
100
100
101
101
101
101
102
111
113
113
115
115
130
134
134
153
157
157
177
181
181
193
197
199
199
201
201
211
215
217
217
219
219
235
236
238
239
240
242
243
246
246
246
246
247
247
248
250
251
251
255
257
258
259
261
262
262
268
270
271
276
281
281
281
291
291
291
291
300
300
300
300
305
305
312
312
313
317
320
320
320
322
325
328
341
341
343
344
349
349
367
370
372
386
389
391
409
414
414
433
435
435
438
453
455
458
856
860
861
5
9
11
11
11
11
12
15
15
17
20
21
21
23
23
25
25
25
25
27
27
27
27
37
37
43
45
47
47
47
49
56
56
57
61
61
63
65
69
69
73
73
74
79
80
80
81
81
85
85
88
89
89
91
91
92
92
93
95
95
96
96
97
97
97
97
98
98
98
98
99
99
99
99
99
99
102
102
103
112
114
114
116
131
135
135
154
158
158
178
182
182
194
198
200
200
202
202
212
216
218
218
220
220
236
237
239
240
241
242
243
244
244
244
246
246
247
247
247
247
248
248
248
251
256
258
259
260
260
269
271
272
277
280
280
282
282
282
292
292
301
301
301
306
306
313
313
318
318
321
323
326
329
329
340
342
342
345
350
350
368
371
373
387
390
392
410
415
415
434
436
439
454
456
459
511
857
861
862
8
8
12
13
18
20
20
21
22
22
22
22
22
24
24
26
26
27
27
27
27
28
28
32
37
47
48
48
50
54
54
57
63
63
63
66
68
68
70
70
71
71
74
79
81
81
82
82
89
90
90
92
92
94
95
95
95
95
95
96
96
96
96
96
96
96
97
97
97
97
97
98
98
98
98
98
98
98
99
99
99
99
99
99
99
113
115
115
117
132
136
136
155
159
159
179
183
183
199
203
203
213
217
219
219
221
221
237
240
240
241
241
241
241
241
241
242
242
243
244
244
244
245
245
245
245
246
246
248
248
248
248
249
251
257
260
269
272
278
280
280
281
281
283
283
292
300
301
301
301
301
302
302
307
307
311
324
327
330
330
330
330
340
346
351
351
369
372
374
388
391
393
411
416
416
435
437
440
455
457
460
509
511
512
858
862
863
13
14
15
19
20
20
20
22
22
23
25
25
25
27
27
29
29
32
37
37
43
43
43
47
48
49
49
51
51
56
56
57
61
61
63
63
63
63
67
69
69
71
73
73
74
81
83
83
88
90
91
91
93
95
96
97
97
97
97
97
97
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
101
101
114
116
118
133
137
137
156
160
160
180
184
184
200
204
204
218
222
222
239
239
241
241
242
242
242
242
242
242
242
242
243
243
243
243
244
245
245
245
246
246
249
249
249
258
261
262
271
279
282
282
284
284
292
302
302
303
303
308
308
308
320
325
328
328
330
330
331
331
336
340
341
347
352
352
370
373
375
389
392
392
394
394
412
417
417
436
438
441
456
458
458
461
461
510
512
859
863
864
4
4
5
12
14
15
20
24
28
28
29
30
32
32
37
38
43
44
48
48
48
49
50
50
52
52
54
54
56
57
63
63
63
63
64
64
68
70
70
71
71
72
73
74
76
77
81
81
83
85
88
88
92
92
92
94
95
95
96
96
96
96
96
96
97
97
97
97
97
99
100
100
101
101
102
115
117
119
134
138
138
157
159
159
161
161
181
185
185
201
205
205
219
223
223
240
240
241
241
242
242
243
243
243
243
243
243
243
243
244
244
244
244
245
245
245
246
246
247
247
253
259
262
262
271
278
280
283
283
285
285
301
301
303
303
304
308
309
309
309
311
311
320
326
329
331
332
332
336
341
342
348
353
353
371
374
376
390
395
395
413
418
418
437
439
442
457
462
462
510
860
864
865
5
5
5
5
5
5
6
8
11
11
20
21
22
22
25
25
25
29
29
30
37
37
38
39
39
39
39
43
45
47
47
47
49
49
50
50
51
51
53
53
56
56
56
57
57
57
57
61
65
65
69
71
73
73
73
73
74
74
74
74
75
76
76
77
77
78
83
83
83
90
90
91
92
92
95
95
96
96
97
97
97
97
98
98
99
99
99
100
100
101
101
118
120
135
139
139
158
160
160
162
182
186
186
202
206
206
220
224
224
237
237
241
241
242
242
243
243
243
244
244
244
244
244
244
244
244
245
245
245
245
245
247
247
253
253
254
258
260
263
279
281
284
286
286
302
305
308
310
312
312
321
325
327
330
330
330
332
340
342
343
349
354
354
372
375
377
391
396
396
414
419
419
438
440
443
458
463
463
512
861
865
866
6
6
7
7
14
14
15
20
22
22
23
23
25
26
30
30
30
30
31
32
37
37
37
39
39
47
48
50
50
50
50
50
50
54
54
54
54
57
58
58
65
66
70
71
71
72
74
74
75
75
75
75
76
77
78
78
79
81
81
83
88
88
90
91
94
96
96
96
96
97
97
97
98
98
98
99
99
99
99
100
100
101
113
117
119
119
121
121
136
138
138
140
140
159
161
161
163
183
185
185
187
187
203
207
207
221
225
225
238
238
241
241
242
242
242
242
243
243
244
245
245
245
246
246
246
247
249
253
253
253
254
255
259
259
261
262
262
264
270
279
279
282
283
283
285
287
287
291
301
303
306
309
311
311
313
313
313
320
320
326
328
331
331
336
341
343
343
350
355
355
373
376
378
392
397
397
415
420
420
439
441
444
459
464
464
512
862
866
867
4
5
7
7
8
8
11
11
15
22
24
24
25
27
29
29
29
31
31
31
32
32
37
47
47
50
51
51
55
55
59
59
61
61
66
73
75
75
76
76
76
77
78
79
79
80
83
83
83
90
90
91
91
95
95
95
95
96
96
96
97
97
97
97
97
98
98
98
98
98
98
99
99
99
99
100
100
114
118
120
120
122
122
137
139
139
141
160
162
164
184
186
186
188
204
208
208
222
226
226
239
239
242
242
244
244
244
244
245
245
246
247
247
247
249
249
254
255
256
259
260
260
262
263
263
265
271
283
284
284
286
288
288
292
292
292
292
301
301
302
307
309
309
311
312
312
318
321
321
327
329
330
330
332
332
340
342
351
356
356
377
379
393
398
398
416
421
421
440
442
445
460
465
465
863
867
868
4
5
6
9
9
14
14
15
22
22
24
28
29
30
32
32
32
32
32
32
32
37
38
39
39
51
52
52
54
56
56
59
61
66
66
67
68
71
72
74
74
75
76
76
76
76
77
77
78
79
80
80
81
81
83
83
83
83
88
88
91
92
95
95
95
95
95
95
96
96
96
96
96
97
97
97
97
98
98
98
98
98
98
99
99
99
99
99
99
99
100
100
100
115
119
121
121
123
123
138
140
140
142
161
163
165
185
187
187
189
205
209
209
223
227
227
240
240
240
240
240
240
242
242
242
242
243
243
244
244
245
246
247
247
248
251
255
256
260
261
261
261
261
261
263
266
272
272
283
284
285
285
289
289
293
293
300
301
302
303
308
310
312
312
313
313
313
319
319
328
330
330
330
331
331
333
341
341
343
343
352
357
357
378
380
394
399
399
417
422
422
443
446
461
466
466
864
868
869
4
5
5
5
10
10
11
11
15
24
24
24
29
29
29
32
33
33
33
37
39
39
40
40
50
52
53
53
54
57
57
59
59
61
65
65
65
67
68
68
69
71
73
75
75
75
76
76
76
77
77
77
78
79
80
83
83
83
83
84
84
90
90
91
95
95
95
96
96
96
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
97
98
98
98
98
98
98
99
99
101
101
120
124
124
139
141
143
164
166
186
188
190
206
208
208
210
210
224
228
228
239
239
240
240
241
241
242
242
242
242
243
243
243
243
244
244
244
244
246
246
246
248
249
249
261
262
262
262
264
267
273
273
273
273
283
285
290
290
293
301
303
304
309
311
314
314
314
329
331
332
332
334
341
343
344
344
353
358
358
379
381
395
400
400
418
423
423
444
447
462
467
467
865
869
870
1
1
5
6
6
6
11
11
14
14
15
22
22
24
30
33
34
34
34
39
41
41
47
50
50
54
54
54
58
58
59
60
65
66
68
68
68
68
68
70
71
71
74
76
76
76
77
78
78
79
80
81
85
85
88
88
90
91
92
92
93
95
96
97
97
97
97
97
97
97
98
99
99
99
99
99
99
99
99
99
99
99
99
101
102
102
121
125
125
140
142
144
159
163
165
165
167
167
187
189
191
207
209
209
211
225
229
229
237
239
240
240
241
241
242
242
243
243
243
243
244
244
244
244
247
249
250
253
262
263
263
263
263
265
265
268
268
271
273
273
274
274
279
283
284
286
291
291
293
301
302
304
310
312
312
313
313
313
315
315
315
321
328
330
332
332
333
333
335
335
341
343
344
345
345
354
359
359
373
380
382
396
401
401
419
424
424
445
448
463
468
468
866
870
871
1
1
1
5
5
5
7
11
11
12
12
14
15
24
24
24
31
32
34
35
35
35
39
39
41
52
52
53
55
59
59
59
59
60
61
61
61
61
65
65
68
69
75
76
76
77
78
78
78
78
79
79
80
85
86
90
90
90
91
91
91
91
92
92
92
93
95
95
95
95
96
96
96
96
96
96
96
96
96
97
97
97
97
97
99
99
100
101
103
103
122
126
126
143
145
160
164
166
166
168
168
190
192
208
210
210
212
226
230
230
235
235
236
238
238
239
240
241
241
242
242
243
243
243
243
244
244
244
244
245
245
245
245
248
250
251
253
253
253
254
263
263
264
264
264
269
269
274
275
275
279
284
285
287
292
292
301
302
304
304
305
311
312
312
312
313
313
314
314
314
316
321
329
331
334
336
336
341
341
344
345
355
360
360
374
378
381
383
397
402
402
420
425
425
440
444
446
449
464
469
469
867
871
871
872
5
6
6
8
13
13
14
14
14
15
15
15
15
22
22
24
29
32
32
32
36
36
41
41
41
50
50
53
54
56
59
59
59
60
60
61
61
69
70
71
76
76
76
76
78
78
80
80
81
81
86
88
88
91
92
92
92
92
92
93
93
94
95
96
96
96
96
97
97
97
98
98
99
100
104
104
123
127
127
138
142
144
144
146
146
161
165
167
167
169
169
185
189
191
191
193
193
209
211
213
227
229
229
231
231
235
236
236
237
237
237
238
239
239
240
241
242
242
243
243
243
243
244
244
245
245
245
245
249
251
252
253
254
255
264
265
265
265
270
270
273
273
275
283
285
286
288
293
293
305
305
306
312
314
314
315
315
315
317
329
329
332
333
333
335
337
337
342
342
343
343
343
345
356
361
361
379
382
384
398
403
403
421
426
426
445
447
450
465
470
470
868
871
872
873
5
5
5
9
11
11
14
14
15
16
16
24
24
24
33
34
34
35
35
35
37
37
39
39
41
52
52
53
57
59
61
61
68
70
71
76
77
81
81
81
86
86
87
92
92
93
93
94
94
96
97
97
97
99
99
99
101
105
105
124
128
128
139
143
145
145
147
147
166
170
170
186
190
192
192
194
194
210
212
214
228
230
230
232
236
237
237
237
237
238
238
238
239
239
239
240
240
240
241
242
244
244
244
245
245
250
253
253
254
255
256
256
263
263
266
266
266
266
271
271
274
279
284
286
286
289
294
294
306
306
313
313
315
315
316
316
318
333
334
334
336
338
338
344
344
344
344
357
362
362
380
383
385
399
404
404
422
427
427
446
448
451
466
471
471
510
869
873
874
5
5
6
6
6
6
10
15
15
17
17
22
22
24
24
24
24
32
32
34
35
36
36
38
41
41
41
50
50
53
58
59
60
61
61
62
62
65
68
68
76
77
78
78
78
81
82
82
85
85
85
87
88
88
88
92
92
93
93
93
94
95
95
95
96
96
97
97
98
98
98
98
99
99
102
106
106
125
129
129
140
144
146
146
148
148
167
171
171
187
191
193
193
195
195
213
215
229
231
231
233
235
235
237
238
238
238
238
239
239
239
240
240
240
241
242
245
245
245
245
251
251
254
255
261
264
264
264
266
267
272
272
273
273
275
283
285
290
295
295
304
314
314
314
316
319
333
334
335
335
339
339
345
345
358
363
381
384
386
400
405
405
423
428
447
449
452
467
472
472
511
870
874
875
5
5
5
5
7
7
11
11
14
14
16
16
17
24
24
24
24
25
25
34
34
35
35
37
37
39
39
39
41
41
41
41
52
52
53
59
59
61
61
61
61
62
62
63
63
70
70
71
72
72
74
74
76
78
78
79
79
79
83
83
85
86
88
88
88
88
88
88
88
92
93
93
93
94
94
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
103
107
107
126
130
130
145
149
149
168
172
172
192
196
196
208
212
214
214
216
216
229
230
232
233
234
236
236
237
237
238
238
238
238
238
239
239
239
240
240
240
240
240
240
241
241
241
242
245
245
246
252
252
252
255
256
256
262
262
268
273
273
273
273
274
274
284
284
286
286
291
292
296
296
301
317
319
320
333
335
340
340
345
359
362
362
364
382
385
385
387
387
401
406
406
424
429
448
450
453
468
473
473
511
871
875
876
8
8
8
11
12
15
15
17
17
17
22
26
26
32
32
35
36
38
40
41
41
41
41
42
42
50
50
52
53
60
61
62
62
63
63
64
68
68
71
72
72
72
74
74
74
74
74
75
75
78
80
80
80
84
84
85
85
88
88
88
89
93
94
94
94
95
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
97
98
98
98
99
99
99
99
104
106
106
108
108
127
131
131
146
150
150
169
173
173
193
197
197
209
213
215
215
217
217
230
231
233
234
235
237
237
238
238
238
238
238
239
239
240
240
240
240
240
240
241
241
241
241
241
242
242
242
246
246
247
251
253
256
257
257
269
274
274
275
275
284
286
287
287
292
293
293
293
297
297
301
302
304
304
316
318
320
321
329
333
334
336
341
341
345
360
363
365
383
388
388
402
407
407
425
427
427
430
449
451
451
454
454
469
474
474
872
876
877
5
9
9
11
11
13
16
16
17
18
18
26
27
34
34
35
37
39
39
41
43
43
52
52
52
53
53
53
53
61
61
61
63
63
63
65
70
70
71
72
74
74
74
74
75
75
75
76
76
78
78
80
81
85
85
89
90
92
92
92
93
93
94
94
95
95
95
95
96
96
96
96
96
97
97
97
97
97
97
97
99
99
99
105
107
107
109
128
132
132
147
151
151
170
174
174
194
198
198
210
214
216
216
218
218
231
234
235
236
238
238
238
238
239
239
239
239
240
240
240
241
241
241
241
241
242
242
242
242
246
246
246
247
248
252
252
252
254
256
256
256
257
258
258
264
270
271
275
275
276
276
284
286
287
288
288
293
294
294
298
298
301
305
305
316
319
321
321
322
329
334
335
337
342
342
361
364
366
384
389
389
403
408
408
426
428
431
450
455
455
470
475
475
512
512
873
877
878
5
9
10
14
17
17
17
18
19
19
19
19
19
22
22
27
32
32
34
35
40
42
43
44
50
50
53
54
54
62
63
63
63
64
66
68
68
71
74
75
76
76
76
77
77
80
80
80
82
86
86
88
90
91
92
92
93
93
93
93
94
95
95
95
95
95
95
95
96
96
96
96
96
96
97
97
98
106
108
108
110
129
131
131
133
133
148
152
152
171
175
175
195
199
199
215
219
219
233
235
236
237
240
240
240
240
240
241
241
241
241
242
242
242
242
242
243
243
243
243
247
248
249
252
252
252
252
253
255
256
257
257
257
258
264
271
272
276
276
277
284
284
287
288
293
294
294
294
294
294
295
299
299
302
304
306
306
306
314
318
320
322
322
322
322
323
333
335
336
338
343
343
362
365
367
385
390
390
404
409
409
427
429
432
451
456
456
471
476
476
513
513
513
513
874
878
879
5
5
9
11
11
15
17
17
17
18
19
19
20
22
27
27
28
34
34
34
35
35
35
35
35
39
39
39
41
41
43
43
44
55
55
61
61
63
63
65
67
70
70
71
74
76
77
77
77
78
78
80
83
85
87
87
88
88
89
92
92
93
93
93
93
94
94
94
94
95
95
95
95
96
96
96
96
97
97
98
99
107
109
111
130
132
132
134
149
153
153
172
176
176
196
200
200
216
220
220
234
235
235
235
235
236
237
238
240
240
241
241
241
241
242
243
243
243
243
244
248
249
253
254
256
256
257
258
258
258
259
272
272
272
276
276
277
277
278
285
285
286
286
286
288
295
295
295
296
300
300
304
305
316
316
319
320
321
322
322
323
323
324
329
334
336
336
339
344
344
344
363
366
368
386
391
391
405
410
410
428
430
433
452
457
457
472
477
477
513
513
513
513
514
514
875
879
880
8
8
8
8
10
12
12
17
19
21
22
26
26
26
28
29
29
32
32
35
36
36
36
39
40
42
42
44
44
44
44
45
50
55
63
63
63
66
68
68
68
70
71
73
77
80
80
80
84
86
86
88
88
88
88
89
90
90
91
92
92
92
92
93
93
93
94
94
94
95
95
95
96
96
97
99
108
110
112
131
133
133
135
150
154
154
173
177
177
197
201
201
217
221
221
233
234
234
235
235
235
236
236
236
236
237
238
239
240
240
242
242
243
243
254
255
256
256
257
257
258
259
259
260
273
277
277
278
278
279
287
287
287
287
294
294
296
296
296
301
301
305
305
306
306
314
317
317
320
322
323
324
324
325
333
335
340
345
345
345
345
345
345
364
367
369
387
392
392
406
411
411
429
431
434
453
458
458
473
478
478
514
514
515
515
876
880
881
1
4
5
9
11
11
11
11
12
13
17
18
18
19
19
20
20
22
22
26
27
29
29
29
29
29
37
37
37
39
41
43
43
43
43
43
45
45
45
46
46
50
55
55
61
61
61
63
65
67
67
69
69
70
70
70
71
71
71
71
74
78
78
80
80
80
80
85
87
87
88
88
89
89
89
91
92
92
92
92
92
92
92
93
93
94
94
94
94
94
94
95
95
96
97
97
97
98
98
99
99
111
113
132
134
136
151
155
155
174
178
178
198
202
202
218
222
222
229
230
233
233
233
234
235
235
236
236
236
237
237
237
237
238
239
240
243
243
243
243
246
255
256
257
257
257
258
258
258
261
261
274
276
278
278
279
279
288
288
295
297
302
307
307
315
315
321
322
322
323
324
326
334
334
336
336
341
346
346
346
346
365
368
370
388
393
393
407
412
412
430
432
435
454
459
459
474
479
479
515
515
877
881
882
1
1
4
5
5
5
8
8
12
13
14
17
19
19
19
20
20
21
21
23
23
26
26
29
30
32
37
42
43
44
46
46
46
46
46
46
46
50
50
55
56
62
63
63
63
66
68
68
68
68
70
70
71
72
72
80
80
80
80
81
81
86
88
88
90
90
90
91
92
93
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
96
96
96
96
96
97
97
97
98
98
98
98
98
98
106
110
112
112
114
114
133
135
137
152
156
156
175
177
177
179
179
199
201
201
203
203
219
223
223
230
231
233
233
234
234
234
235
235
235
235
235
236
236
236
236
237
237
238
238
238
238
238
238
238
238
238
239
240
241
243
243
246
246
246
247
256
257
258
259
262
262
262
275
276
280
280
288
294
296
298
303
305
306
306
306
308
308
322
323
324
327
334
336
337
337
342
346
347
347
366
369
371
389
394
394
408
413
413
431
433
436
455
460
460
475
480
480
878
882
883
1
4
5
5
5
6
6
13
14
15
19
20
21
21
22
22
24
24
30
31
32
37
37
43
43
43
46
47
47
47
55
55
56
57
57
57
57
61
61
63
63
63
63
63
67
69
69
71
71
73
73
78
82
82
87
88
88
89
91
91
92
92
94
95
95
96
97
97
97
97
97
97
97
97
99
99
99
99
99
99
107
111
113
113
115
115
136
138
153
157
157
176
178
178
180
200
202
202
204
220
224
224
231
232
234
234
235
235
235
236
236
236
236
236
236
236
236
236
237
237
237
237
238
238
238
238
238
238
239
239
239
239
241
242
246
247
248
257
258
259
259
260
263
263
263
272
276
276
277
281
281
288
294
294
295
299
301
301
304
305
305
305
306
307
307
307
317
322
322
323
324
325
325
328
328
334
336
337
338
338
343
346
348
348
370
372
390
395
395
409
414
414
432
434
437
456
461
461
476
481
481
513
879
883
884
1
4
4
5
6
7
7
12
14
15
19
19
21
21
25
25
29
31
32
32
32
37
38
44
47
48
48
48
50
55
55
55
57
57
63
63
63
63
64
64
68
68
72
72
73
82
83
88
90
90
90
91
92
93
93
93
95
95
96
96
96
96
96
96
97
97
97
97
97
108
112
114
114
116
116
131
135
137
137
139
139
154
156
156
158
158
177
179
179
181
201
203
203
205
221
225
225
232
232
233
233
235
235
236
236
236
236
236
236
237
237
237
237
237
237
238
238
238
239
239
239
239
240
240
240
240
240
240
242
243
246
247
248
249
249
257
259
259
260
261
264
264
264
264
272
277
277
278
282
282
293
294
295
296
300
302
305
307
308
308
308
317
322
322
323
323
324
329
329
334
334
337
338
344
349
349
371
373
391
396
396
410
415
415
435
438
457
462
462
477
482
482
513
513
514
883
884
885
4
5
5
5
5
7
8
8
8
11
11
21
21
21
22
26
26
26
29
29
37
37
38
39
39
39
39
45
46
48
49
49
49
55
61
65
65
68
69
69
71
73
73
73
73
78
78
83
88
88
88
88
90
91
91
93
93
93
93
93
93
94
94
94
95
95
95
95
97
97
98
98
113
117
117
132
136
138
138
140
140
155
157
157
159
178
180
182
202
204
206
222
226
226
233
236
236
238
238
238
238
238
238
238
238
239
239
239
239
240
240
240
240
241
241
241
241
241
243
244
244
248
260
261
265
265
265
265
265
265
276
278
278
279
283
283
294
296
297
301
303
306
306
308
309
309
324
324
325
330
330
335
335
336
336
336
338
345
350
350
372
374
392
397
397
411
416
416
436
439
458
463
463
478
483
483
513
514
515
879
884
885
886
4
4
5
6
8
9
9
14
14
15
19
19
21
23
27
27
31
31
32
32
37
37
37
39
39
43
46
46
46
50
50
55
56
57
57
65
66
68
68
69
70
71
72
72
73
74
74
74
78
83
83
84
86
88
89
90
90
90
90
91
91
91
91
92
92
92
92
93
93
93
93
94
94
94
94
94
95
95
95
96
96
97
97
99
99
114
118
118
133
137
139
139
141
141
156
158
158
160
179
181
183
203
205
207
223
227
227
229
233
233
233
234
238
238
238
238
239
239
239
239
241
241
241
241
242
244
245
245
245
249
249
259
259
261
261
263
265
265
266
266
266
266
272
277
279
279
279
284
284
287
294
295
297
302
304
307
307
307
317
317
320
325
325
326
331
331
337
337
337
337
345
346
351
351
366
373
375
393
398
398
412
417
417
437
440
459
464
464
479
484
484
515
516
885
886
887
4
5
6
7
9
10
10
11
11
15
21
21
21
24
28
28
29
29
32
37
47
48
48
49
51
51
55
57
57
58
58
61
61
66
69
71
71
72
72
73
73
73
74
75
75
75
75
75
75
78
82
82
82
84
85
85
87
88
88
88
88
89
91
91
92
92
92
92
92
92
92
92
93
93
93
93
93
94
94
94
94
94
94
94
95
95
95
95
96
96
96
115
119
119
138
142
142
157
159
161
182
184
206
208
224
226
226
228
228
230
231
233
233
234
234
234
235
238
238
238
241
241
243
245
246
250
250
257
260
260
261
262
266
267
267
267
267
276
278
280
285
285
288
288
288
288
294
295
297
297
298
303
305
308
315
318
318
321
326
327
332
332
338
338
346
346
346
346
347
352
352
367
371
374
376
394
399
399
413
418
418
432
436
438
441
460
465
465
480
485
485
511
516
886
887
888
7
7
8
9
11
11
14
14
15
19
19
21
25
29
29
31
31
32
37
38
39
39
46
46
48
49
52
52
57
59
59
61
66
66
67
68
69
71
72
72
72
73
73
73
73
74
75
75
76
76
82
83
85
85
85
85
85
88
88
89
89
90
91
92
92
92
92
92
92
92
92
93
93
93
93
94
94
94
94
94
94
94
94
94
95
95
95
95
96
96
98
99
116
120
120
139
143
143
158
160
162
177
181
183
183
185
185
201
205
207
207
209
209
225
227
227
227
229
231
231
231
231
232
234
234
235
235
235
236
236
237
238
241
241
241
241
244
245
247
249
249
249
251
251
258
258
263
265
265
267
268
268
277
277
279
279
281
286
286
289
289
298
298
299
304
306
309
309
316
316
321
321
325
325
327
328
333
333
338
347
347
348
353
353
372
375
377
395
400
400
414
419
419
437
439
442
461
466
466
481
486
486
512
516
517
887
888
889
7
9
10
11
11
12
12
15
21
21
21
26
29
29
30
30
32
37
39
39
40
40
48
48
49
49
53
53
57
57
59
61
65
65
65
67
68
68
69
71
72
72
73
73
73
74
77
77
82
82
85
86
88
88
88
88
90
91
92
92
92
92
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
96
96
96
97
97
98
98
98
98
98
117
121
121
140
144
144
161
163
178
182
184
184
186
186
202
206
208
208
210
210
226
228
228
228
230
230
230
231
231
232
232
232
232
233
233
233
233
233
235
235
236
236
236
236
236
236
237
241
241
245
245
245
245
248
249
250
250
250
264
266
269
269
277
279
280
280
282
287
287
289
299
299
305
307
309
310
326
326
328
329
334
334
338
347
349
354
354
373
376
378
396
401
401
415
420
420
438
440
443
462
467
467
482
487
487
512
516
518
888
889
890
7
7
8
11
13
13
14
14
15
19
19
21
21
21
21
27
31
31
31
31
32
39
41
41
46
46
49
50
54
54
59
59
59
65
66
68
68
68
68
68
69
71
72
72
73
73
74
74
74
75
75
78
78
86
87
88
88
89
89
91
91
92
92
92
92
93
93
93
93
93
93
94
94
94
94
94
94
95
95
96
97
97
97
97
98
98
99
99
99
99
99
118
122
122
141
145
145
156
160
162
162
164
164
179
183
185
185
187
187
203
207
209
209
211
211
226
227
227
228
229
229
230
231
231
231
232
232
232
233
233
233
234
234
234
234
234
234
234
236
236
237
237
240
246
249
249
250
251
251
251
260
265
265
265
267
270
270
277
279
280
281
281
283
288
288
289
297
306
308
311
318
325
327
327
330
335
335
347
350
355
355
374
377
379
397
402
402
416
421
421
439
441
444
463
468
468
483
488
488
512
516
517
519
889
890
891
7
8
8
9
9
11
11
12
14
14
15
21
21
21
21
22
22
28
29
29
31
32
32
32
39
39
41
48
48
49
51
53
53
55
55
57
57
59
65
65
68
69
72
72
72
73
73
74
75
75
75
76
76
79
79
85
87
88
88
88
89
89
89
91
91
93
93
93
93
93
94
94
94
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
97
97
97
97
99
99
119
123
123
142
146
146
157
161
163
163
165
165
184
188
188
208
212
212
227
228
228
229
229
229
230
230
230
231
232
232
232
232
232
232
233
233
234
234
234
234
234
234
234
234
235
235
235
235
235
238
238
240
240
241
245
247
249
250
250
251
251
251
252
252
260
265
265
266
266
266
271
271
277
277
280
281
284
289
289
294
309
309
309
312
318
325
331
336
336
351
356
356
375
378
378
380
380
398
403
403
417
422
422
440
442
445
464
469
469
484
489
489
516
517
518
890
891
892
7
7
7
7
8
9
9
11
13
13
14
14
14
15
15
15
15
15
15
19
23
23
29
31
31
31
32
32
32
32
33
33
41
41
41
46
46
48
49
52
54
54
56
59
59
59
69
70
71
71
73
74
75
76
77
77
80
80
82
85
85
88
92
93
93
93
93
93
93
93
94
94
94
95
95
96
96
97
97
98
98
100
100
120
124
124
143
147
147
158
162
164
164
166
166
185
189
189
209
213
213
228
229
230
230
230
231
232
233
233
233
233
233
233
234
234
234
234
234
234
235
235
236
236
236
236
236
236
239
239
240
240
240
241
242
246
246
248
250
250
251
251
252
252
267
267
267
272
272
278
278
279
279
279
281
285
290
290
294
295
297
297
307
310
310
310
313
321
325
326
332
337
337
337
352
357
357
376
381
381
399
404
404
418
423
423
441
443
443
446
446
465
470
470
485
490
490
512
517
518
891
892
893
1
1
7
7
8
9
11
11
12
12
14
14
15
16
16
16
16
23
24
29
29
30
32
32
32
33
33
34
34
39
39
41
48
48
48
49
49
49
49
53
55
55
57
57
57
59
68
70
71
74
75
75
77
77
79
79
81
81
87
87
88
88
88
89
90
91
92
92
94
94
94
94
94
95
95
95
95
97
97
97
99
99
101
101
121
125
125
144
148
148
163
167
167
186
190
190
210
214
214
230
230
231
231
231
231
231
231
232
233
234
234
234
234
235
235
235
235
236
236
236
236
236
236
236
237
237
241
242
243
247
249
252
252
253
253
260
260
263
268
268
268
273
273
280
280
280
280
286
291
291
294
298
298
308
308
311
314
321
326
327
333
338
338
338
338
338
338
353
358
358
377
382
382
400
405
405
419
424
424
442
447
447
466
471
471
486
491
491
518
892
893
894
1
1
1
9
10
13
13
15
15
17
17
17
17
19
19
24
31
33
33
34
34
35
41
41
41
46
46
49
50
50
54
56
58
59
59
59
65
68
68
77
77
77
78
80
80
82
85
85
88
88
88
89
90
92
92
93
93
94
94
94
94
94
95
95
95
96
96
98
102
102
122
124
124
126
126
145
149
149
164
168
168
187
191
191
211
215
215
229
229
229
231
231
232
232
232
232
233
234
235
235
235
235
236
236
236
236
236
236
236
237
237
238
242
243
248
250
252
253
253
254
254
258
261
261
264
269
269
274
274
281
281
287
292
292
295
297
299
299
299
306
310
312
315
325
327
328
334
339
339
339
339
354
359
378
383
383
401
406
406
420
425
443
448
448
467
472
472
487
492
516
519
893
893
894
895
8
10
11
11
14
17
18
18
19
24
24
25
29
32
34
34
34
36
39
39
41
41
41
41
51
51
55
57
57
57
59
59
59
59
59
70
70
71
75
75
77
79
81
81
83
87
87
88
90
90
90
91
91
92
92
92
92
92
92
92
92
92
92
93
94
94
94
95
95
95
99
103
103
123
125
125
127
146
150
150
165
169
169
188
192
192
212
216
216
227
229
229
229
230
230
230
232
232
232
233
233
233
234
234
235
235
235
236
236
237
237
237
237
239
249
251
252
254
254
255
255
259
259
264
264
268
268
270
270
275
275
281
288
288
293
293
297
298
310
311
313
316
316
321
326
328
328
335
339
340
340
346
355
358
358
360
379
384
384
402
407
407
421
426
444
449
449
468
473
473
488
491
491
493
512
517
894
894
895
896
7
9
9
11
15
17
17
19
19
19
23
23
23
25
26
26
29
33
34
34
35
37
41
41
41
41
42
42
46
51
58
59
59
59
59
60
60
60
68
68
71
77
77
77
80
82
84
85
85
88
88
88
89
89
90
91
91
91
91
92
92
93
94
94
94
94
94
94
94
94
94
94
95
95
98
98
100
102
102
104
104
124
126
126
128
147
149
149
151
151
166
170
170
189
193
193
213
217
217
228
228
228
230
230
230
231
231
231
231
231
231
231
232
233
233
233
234
234
234
235
235
236
237
237
237
239
240
250
252
252
254
255
255
256
256
269
269
271
271
276
276
281
289
289
289
289
294
294
298
298
299
299
310
312
314
317
317
325
327
336
339
341
341
347
347
347
356
359
361
380
385
385
403
408
408
422
424
424
427
445
450
450
469
474
474
489
492
494
518
895
896
897
10
10
11
11
11
16
17
18
20
20
23
24
26
26
26
26
26
29
29
34
34
35
36
38
39
43
43
46
51
51
53
57
57
59
59
61
61
61
61
70
70
71
75
75
77
77
77
77
81
83
85
87
87
88
88
88
89
89
89
89
89
90
91
91
91
91
91
92
92
93
93
93
94
94
94
94
94
95
95
95
96
96
96
99
99
101
103
103
105
125
127
129
148
150
150
152
167
171
171
190
194
194
214
218
218
225
225
226
229
229
229
231
231
231
232
232
232
232
232
232
232
232
234
234
235
236
237
237
237
237
238
240
240
240
241
251
252
252
256
256
256
256
261
268
270
270
272
277
277
290
290
290
295
295
300
300
313
315
318
318
318
326
326
328
328
337
342
342
348
348
357
360
362
381
386
386
404
409
409
423
425
428
446
451
451
470
475
475
490
493
495
519
896
897
898
9
9
11
17
17
17
18
19
19
19
19
21
21
23
23
26
27
34
34
35
36
36
36
36
37
39
43
44
46
46
51
52
54
58
60
60
61
62
62
62
68
68
68
68
69
69
71
77
77
77
77
78
78
84
85
85
86
87
88
88
88
88
89
91
91
91
91
91
91
91
91
92
93
93
93
93
93
94
94
95
95
95
95
95
96
96
96
96
102
104
104
106
126
128
130
149
151
151
153
168
172
172
191
193
193
195
195
215
219
219
226
226
227
227
227
227
227
230
230
230
230
230
232
232
232
232
232
232
233
233
233
233
237
238
239
240
241
242
250
252
253
253
257
257
261
268
273
278
278
289
290
290
290
290
291
291
296
296
298
299
299
299
301
301
310
310
314
316
319
319
319
319
319
326
328
329
329
338
343
343
347
348
348
348
348
349
358
361
363
382
387
387
405
410
410
424
426
429
447
452
452
471
476
476
491
494
496
516
519
897
898
899
10
10
11
11
17
17
17
18
19
19
22
22
27
28
29
32
34
34
34
36
36
36
38
38
39
39
40
40
44
51
51
52
53
53
53
53
55
57
57
59
61
61
62
63
63
68
68
68
69
69
69
69
69
70
70
70
70
71
75
79
79
79
83
85
85
87
87
87
87
87
88
88
88
88
88
88
91
91
91
92
92
93
93
93
93
93
93
93
93
93
94
94
94
95
95
95
95
95
96
96
96
98
103
105
107
129
131
150
152
154
169
173
173
192
194
194
196
216
220
220
227
227
228
228
228
228
228
231
231
231
232
232
234
234
234
234
234
237
237
239
240
240
241
242
243
243
251
251
253
258
258
264
268
269
274
279
279
280
291
291
292
292
297
297
298
298
298
299
300
300
300
308
311
311
315
317
317
317
319
319
320
320
320
320
326
328
329
330
330
338
339
344
344
349
349
350
359
362
364
383
388
388
406
411
411
425
427
430
448
453
453
472
477
477
492
495
497
512
517
898
899
900
2
9
9
11
17
19
23
23
26
28
29
33
34
37
39
39
39
41
41
44
44
45
46
51
51
51
53
53
57
60
62
62
63
64
64
68
68
68
69
69
69
69
70
70
70
70
71
71
71
79
80
80
84
85
85
86
86
88
88
88
88
88
88
88
88
89
89
90
90
90
91
91
91
91
92
92
92
92
92
93
93
93
93
93
93
93
94
94
94
94
95
95
95
96
99
104
106
108
124
128
130
130
132
132
151
153
155
170
174
174
193
195
195
197
217
219
219
221
221
228
228
228
228
229
229
229
229
229
229
229
229
230
230
230
230
230
232
232
233
233
234
234
234
234
238
238
240
241
242
246
254
259
259
264
269
270
275
280
280
281
281
281
281
290
290
292
292
293
298
298
300
301
301
301
309
309
316
320
321
321
321
321
326
326
329
330
339
339
339
339
340
345
345
348
348
350
350
360
363
365
384
389
389
407
412
412
426
428
431
449
454
454
473
478
478
493
496
498
516
518
899
900
901
2
3
10
10
11
17
18
19
19
20
23
24
24
26
26
34
34
35
36
36
38
39
40
40
42
42
43
43
43
45
46
46
51
57
61
61
61
61
63
64
64
65
65
69
70
70
70
70
71
71
71
71
71
71
71
72
72
72
75
75
80
81
85
87
87
88
88
88
89
89
89
89
89
89
90
90
90
91
91
91
93
93
93
93
93
94
94
94
95
95
95
95
95
96
107
109
125
129
131
131
133
133
154
156
171
175
175
194
196
198
218
220
220
222
226
226
226
226
227
227
227
230
230
230
230
230
230
230
231
231
231
231
231
232
233
234
234
234
234
234
239
239
239
241
242
243
243
247
247
247
253
255
260
260
268
270
271
276
281
281
282
282
291
294
299
299
301
302
302
317
319
319
321
322
322
327
327
328
328
328
330
340
340
341
346
346
349
361
364
366
385
390
390
408
413
413
427
429
432
450
455
455
474
479
479
494
497
499
517
517
519
519
900
901
902
3
4
9
9
10
11
17
19
19
20
20
21
25
25
28
28
29
34
36
36
37
37
39
43
43
43
44
46
46
46
46
46
51
52
53
53
61
62
62
64
64
64
64
64
66
66
68
68
71
71
71
71
72
72
72
72
72
75
80
80
81
85
86
88
88
90
90
90
90
90
90
90
91
91
92
92
92
92
92
92
92
93
94
95
95
95
96
102
106
108
108
110
110
126
130
132
132
134
134
149
153
155
155
157
157
172
174
174
176
176
195
197
199
219
221
221
223
225
227
227
227
227
228
228
228
230
230
230
230
231
231
231
231
232
232
232
232
232
235
235
240
242
243
244
244
248
248
248
253
256
259
261
261
264
269
271
271
277
282
282
282
290
292
295
300
300
300
311
318
320
323
323
329
329
329
329
340
342
347
347
348
350
362
365
367
386
391
391
409
414
414
428
430
433
451
456
456
475
480
480
495
498
500
517
517
519
519
520
520
901
902
903
1
3
4
4
5
10
10
10
11
11
11
11
19
21
21
22
26
26
26
26
29
36
38
38
40
43
43
44
44
46
47
51
53
53
54
54
61
61
63
64
65
67
67
72
73
73
75
79
79
79
81
82
82
85
85
87
88
88
89
89
89
90
90
90
90
90
90
90
90
91
91
91
91
91
92
92
92
92
92
92
94
94
94
94
94
103
107
109
109
111
111
131
135
135
150
154
156
156
158
158
173
175
175
177
198
200
219
220
222
223
224
225
226
226
226
228
228
228
228
229
229
229
230
230
231
231
231
232
232
232
233
233
233
233
233
233
235
239
241
243
243
243
244
245
245
249
249
249
257
260
262
262
268
270
278
282
283
283
290
290
291
296
298
298
301
311
319
319
319
321
324
324
330
330
340
343
348
348
348
348
349
366
368
387
392
392
410
415
415
429
431
434
452
457
457
476
481
481
499
501
520
520
521
521
902
903
904
1
1
5
5
6
9
9
11
12
12
19
19
21
23
25
25
27
27
28
28
29
36
36
38
41
45
45
47
48
53
55
55
64
65
66
68
68
68
73
79
80
82
82
82
82
82
85
85
88
88
89
89
89
89
89
89
89
89
90
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
94
94
94
94
94
95
96
96
104
108
110
110
112
112
132
136
136
151
155
157
157
159
159
174
176
176
178
193
197
199
199
201
201
220
221
223
223
223
224
224
225
225
225
226
227
227
227
227
227
227
227
229
229
229
229
229
229
229
230
230
230
230
232
232
233
235
239
239
239
242
243
244
244
244
245
250
250
250
253
253
258
261
261
263
263
269
269
271
271
279
284
284
289
290
291
292
297
299
302
302
319
319
320
320
320
325
325
330
344
347
348
349
349
349
350
367
369
388
393
393
411
416
416
432
435
453
458
458
477
482
482
500
502
521
521
903
904
905
6
7
13
13
21
21
21
24
26
26
26
26
28
29
38
38
38
42
46
46
46
48
49
53
53
55
64
65
66
67
68
69
69
73
73
79
79
82
83
88
88
89
90
90
90
91
91
91
91
91
91
91
91
91
91
92
92
93
93
93
93
93
93
93
94
94
95
109
113
113
133
137
137
156
160
160
175
177
179
194
198
200
200
202
202
221
224
224
224
225
225
225
225
225
225
226
226
226
227
227
227
228
228
228
228
228
228
228
228
229
233
233
235
237
243
244
245
245
245
246
251
251
251
251
254
254
259
262
262
262
262
264
264
269
271
272
272
280
285
285
290
292
293
298
300
302
303
321
321
321
326
326
330
345
348
350
350
350
351
368
370
389
394
394
412
417
417
433
436
454
459
459
478
483
483
501
503
517
517
904
905
906
5
5
7
8
9
13
19
19
21
25
27
27
28
28
29
29
36
36
38
43
43
46
46
47
47
55
55
55
61
64
64
66
68
68
70
70
73
74
83
84
89
89
90
90
91
91
91
92
92
92
92
93
93
93
93
93
93
94
94
94
94
96
96
110
114
114
134
138
138
157
161
161
176
178
180
195
199
201
201
203
203
225
225
225
226
226
226
226
226
226
227
227
227
228
228
228
229
229
229
229
229
229
232
237
237
238
242
243
244
245
246
246
247
251
252
252
252
252
260
260
262
262
263
263
265
265
269
271
272
273
273
281
286
286
290
291
293
299
301
304
317
322
322
322
327
327
346
348
349
351
351
351
362
369
371
390
395
395
413
418
434
437
455
460
460
479
484
484
495
502
504
518
518
519
519
519
905
906
907
4
4
5
5
8
8
9
9
13
13
21
21
21
26
26
26
28
28
29
30
38
38
38
44
48
48
48
48
49
53
53
55
66
66
67
67
71
71
73
73
74
75
75
75
75
82
84
85
88
88
88
89
90
90
91
91
91
91
93
93
93
93
93
94
94
95
95
96
111
115
115
135
139
139
158
162
162
179
181
200
204
204
226
226
226
226
226
227
227
227
227
227
227
227
228
228
228
229
229
230
230
230
230
230
232
237
237
237
238
239
243
243
244
244
245
248
252
252
261
263
264
264
266
266
269
269
272
273
282
287
287
290
291
293
293
294
300
302
302
302
305
309
318
323
323
328
328
347
348
349
351
351
352
352
363
367
370
372
391
396
396
414
419
429
433
435
438
456
461
461
480
485
496
500
503
505
520
520
520
906
907
908
5
9
9
9
9
10
10
13
14
19
19
21
27
28
28
28
29
29
29
29
29
31
36
36
38
38
38
38
45
46
46
49
49
49
55
55
55
64
64
67
68
68
72
72
73
73
73
75
75
79
82
82
88
88
88
88
88
88
89
89
90
90
90
90
90
90
91
91
91
91
92
92
93
93
94
94
95
95
96
96
112
116
116
136
140
140
159
163
163
174
178
180
180
182
182
201
205
205
224
225
225
227
228
228
228
228
228
228
228
228
229
230
230
230
233
233
233
233
238
239
240
244
246
249
254
262
262
262
264
267
267
270
270
271
271
271
273
281
283
288
288
294
294
295
300
301
303
303
303
306
310
318
318
322
322
324
324
329
329
329
339
348
351
351
352
352
353
353
368
371
373
392
397
397
415
417
417
420
434
436
439
457
462
462
481
484
484
486
501
504
506
520
521
521
907
908
909
4
6
10
10
11
11
13
13
14
15
15
15
15
21
21
21
26
26
29
30
30
30
32
38
38
38
38
39
39
46
48
48
49
50
50
53
53
55
66
66
67
68
69
69
71
71
73
73
73
84
84
85
88
88
88
88
88
88
88
89
90
90
90
90
91
91
91
91
91
92
92
92
92
92
92
92
92
92
93
93
94
94
95
95
96
97
97
113
117
117
137
141
141
160
164
164
175
179
181
181
183
183
202
206
206
223
223
225
226
226
226
226
226
226
226
226
228
228
228
228
228
229
229
230
230
230
230
233
233
233
235
239
240
245
246
247
250
254
263
263
268
268
272
272
272
272
282
282
282
284
289
289
295
295
301
301
302
304
307
311
311
323
323
325
325
330
330
330
330
330
330
340
340
340
349
352
353
353
354
369
372
374
393
398
398
416
418
421
435
437
440
458
463
463
482
485
487
502
505
507
521
521
908
909
910
5
7
7
9
12
12
13
13
13
15
15
19
19
21
21
21
21
25
29
31
31
31
31
33
33
36
40
40
46
46
47
49
51
51
55
55
55
64
64
67
68
68
68
69
69
69
69
70
70
72
72
73
74
74
75
75
82
82
85
88
88
88
88
88
88
89
89
89
89
89
90
90
90
90
90
91
91
91
91
91
91
91
92
92
92
92
92
92
94
94
96
96
98
114
118
118
138
142
142
161
165
165
176
180
182
182
184
184
203
207
207
224
224
224
224
224
224
224
224
225
225
226
227
227
227
227
227
227
227
227
228
228
228
229
229
229
229
230
230
230
230
231
233
242
246
246
248
251
262
262
264
264
269
269
273
273
283
283
285
290
290
293
303
305
308
312
312
312
312
322
324
324
326
331
331
331
331
341
341
350
351
353
355
370
373
375
394
399
399
417
419
422
436
438
441
459
464
464
483
486
488
503
506
508
909
910
911
4
5
5
8
13
13
13
21
21
21
21
22
22
26
26
30
31
32
32
34
34
40
41
48
48
48
49
50
50
52
52
53
53
55
55
55
55
66
66
67
68
68
69
69
69
69
69
70
70
70
71
71
72
73
73
73
75
75
75
76
76
84
84
85
89
89
89
89
89
89
89
89
89
89
89
90
90
90
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
93
93
93
95
95
97
97
99
115
119
119
139
143
143
162
166
166
181
185
185
204
208
208
221
221
222
225
225
225
225
225
225
225
225
226
226
226
226
227
227
228
228
228
228
228
228
228
228
230
230
231
232
237
243
243
244
247
249
249
252
252
262
262
263
263
265
270
270
273
282
283
283
283
283
284
286
290
291
291
303
306
309
310
312
312
313
313
322
327
331
332
332
340
341
341
341
341
342
348
351
354
356
371
374
374
376
376
395
400
400
418
420
423
437
439
442
460
465
465
484
487
489
504
507
507
509
509
910
911
912
5
5
7
9
13
14
14
14
15
15
19
23
23
26
27
31
31
31
33
33
35
35
36
36
41
46
46
48
49
49
51
51
53
55
55
55
55
56
56
64
64
66
67
69
69
70
70
71
71
71
71
71
72
72
74
75
76
77
77
82
82
85
88
88
89
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
93
93
93
93
96
98
100
116
120
120
140
142
142
144
144
163
167
167
182
186
186
205
209
209
222
222
223
223
223
223
223
226
226
226
226
226
226
226
226
226
227
227
227
227
229
229
229
229
229
229
230
230
231
231
232
233
237
237
237
238
244
244
245
246
246
248
253
253
264
264
266
271
271
273
284
284
285
287
290
291
292
293
293
303
307
310
313
314
314
318
322
323
328
331
333
333
342
342
343
348
349
351
351
352
355
357
372
377
377
396
401
401
419
421
424
438
440
440
443
443
461
466
466
485
488
490
505
510
510
911
912
913
1
5
5
7
10
13
15
15
15
15
16
16
23
24
26
26
31
32
32
36
36
36
41
41
42
48
48
48
49
49
49
49
50
52
52
53
54
57
57
66
66
66
67
67
67
67
71
71
72
72
72
73
75
75
75
77
77
84
84
85
85
85
85
85
85
85
85
88
88
88
88
89
89
89
89
90
90
90
90
90
90
90
90
91
91
91
91
92
92
92
94
97
99
101
117
121
121
141
143
143
145
164
168
168
183
187
187
206
210
210
219
223
223
223
223
223
223
223
224
224
224
224
224
227
227
227
227
227
227
227
227
227
227
228
228
228
228
231
233
234
237
238
239
244
245
245
246
247
247
249
252
254
254
260
265
265
267
272
272
283
283
285
285
288
290
293
294
294
308
311
312
312
314
318
323
324
329
334
334
341
341
343
343
348
352
352
353
356
358
373
378
378
397
402
402
420
422
425
439
444
444
462
467
467
486
489
491
506
511
511
912
913
914
1
1
5
5
7
11
15
16
16
17
17
19
19
24
31
31
32
33
33
33
33
33
36
37
37
40
40
40
42
43
43
46
46
49
50
50
51
53
55
57
58
64
64
67
68
68
72
72
76
77
77
77
78
82
82
84
85
85
89
89
90
90
90
90
90
90
91
91
91
91
92
92
92
93
100
102
118
120
120
122
122
142
144
144
146
165
167
167
169
169
184
188
188
207
211
211
219
219
219
220
223
223
223
224
224
224
224
224
224
224
224
224
225
225
225
225
225
225
226
228
229
229
232
234
235
237
238
239
240
240
245
245
246
246
247
250
253
255
255
261
266
268
273
273
284
289
291
291
291
293
294
295
295
295
303
303
303
307
309
312
313
322
324
325
330
335
335
342
349
351
353
353
353
354
357
359
374
379
379
398
403
403
421
423
426
440
445
445
463
468
468
487
490
492
507
512
512
913
914
915
5
5
7
12
15
15
17
17
17
19
24
24
25
26
31
31
31
33
33
34
38
38
40
41
43
43
43
43
43
51
51
52
53
53
54
56
58
69
69
71
75
75
75
77
77
77
79
79
84
84
84
85
85
85
85
88
88
88
90
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
92
92
92
93
94
95
99
101
101
103
103
119
121
121
123
143
145
147
166
168
168
170
185
189
189
208
212
212
220
220
220
221
223
223
224
224
224
225
225
225
225
225
226
226
226
226
228
228
229
229
229
229
231
233
235
235
236
239
247
247
248
251
254
254
256
256
261
261
265
265
267
269
272
274
274
283
285
290
292
293
294
295
301
304
304
308
310
312
312
313
314
318
323
325
325
330
331
336
336
341
343
351
352
355
358
360
375
380
380
399
404
404
422
424
427
441
446
446
464
469
469
488
491
493
508
513
513
914
915
916
5
5
7
13
17
17
17
18
18
19
23
23
23
25
26
26
31
35
39
39
40
40
43
44
46
51
53
55
57
58
58
59
64
69
72
76
77
77
77
78
78
80
80
82
82
85
86
86
88
88
88
88
88
88
89
89
89
89
90
90
90
91
91
91
91
91
91
91
91
91
91
91
94
96
100
102
102
104
104
120
122
122
124
144
146
148
167
169
169
171
186
190
190
209
211
211
213
213
221
221
221
221
222
222
224
224
224
224
224
224
224
224
225
225
225
226
226
226
226
226
226
226
227
228
228
229
229
229
229
231
234
236
236
237
240
240
247
247
248
249
252
255
255
255
255
257
257
266
266
268
270
273
273
273
273
275
275
283
283
284
291
293
294
294
295
295
296
302
302
309
311
312
312
313
313
314
322
324
331
331
331
331
332
337
337
341
341
342
352
352
353
353
359
361
376
381
381
400
405
405
425
428
442
447
447
465
470
470
492
494
509
514
514
520
915
916
917
5
5
5
7
14
15
15
17
19
19
23
24
26
26
26
26
26
31
32
33
33
36
40
40
44
45
46
50
51
51
53
54
56
56
57
57
57
58
58
59
60
60
64
69
69
73
75
75
77
77
77
77
77
79
79
81
81
87
87
88
88
88
88
88
88
88
88
89
89
89
89
89
90
90
90
90
90
91
91
91
91
91
91
91
92
92
97
101
103
103
105
105
121
123
125
147
149
168
170
172
187
191
191
210
212
212
214
222
222
222
222
222
222
222
222
222
222
222
225
225
225
225
225
225
225
225
226
226
226
226
226
227
235
238
241
241
247
248
249
253
253
255
255
256
256
258
258
265
267
267
271
274
274
276
276
282
283
284
285
292
294
296
296
297
310
312
314
314
315
323
323
325
325
332
332
333
338
338
340
341
342
343
354
354
360
362
377
382
382
401
406
406
426
429
443
448
448
466
471
471
493
495
510
515
515
521
521
521
916
917
918
5
5
5
6
7
7
7
15
17
17
17
20
20
23
23
26
27
31
33
33
34
34
37
41
41
43
45
46
46
46
51
51
52
55
57
57
57
58
59
59
60
60
60
60
60
64
64
69
70
77
77
77
77
78
78
78
82
82
82
85
87
87
87
88
89
89
89
89
89
89
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
92
102
106
106
122
124
126
142
146
148
148
150
150
169
171
173
188
190
190
192
192
211
213
213
215
222
223
223
223
223
223
223
224
224
224
224
226
226
226
226
226
226
226
226
230
236
236
239
240
240
240
242
242
254
256
257
257
259
259
265
272
274
277
277
283
285
286
293
294
295
295
295
295
297
297
298
304
310
311
313
315
315
316
323
325
326
326
332
334
339
339
341
343
344
352
353
353
353
355
355
361
363
378
383
383
402
407
407
427
430
444
449
449
467
472
472
494
496
511
516
516
521
522
522
917
918
919
5
5
7
8
8
15
15
16
17
19
19
21
21
27
28
33
35
35
38
40
42
42
43
43
51
51
52
52
53
53
53
53
56
57
57
58
58
60
60
60
61
68
69
69
69
70
71
71
71
71
75
79
79
79
82
82
83
83
85
85
85
85
87
87
87
87
87
88
88
88
88
88
88
88
88
89
89
89
89
90
90
90
90
90
90
90
91
91
91
91
91
91
92
93
103
107
107
125
127
143
147
149
149
151
151
172
174
189
191
191
193
211
212
214
215
216
217
218
224
224
224
224
224
224
224
225
225
225
225
227
227
227
227
227
227
230
230
231
235
236
236
236
237
240
240
241
241
241
247
247
255
255
255
257
260
260
261
265
266
273
274
278
278
283
284
286
294
294
294
294
295
296
296
296
296
299
304
311
312
314
314
316
317
317
323
325
326
327
327
332
335
340
340
341
342
344
352
352
352
353
354
354
354
355
362
364
379
384
384
403
408
408
422
426
428
431
445
450
450
468
473
473
488
495
497
512
517
517
522
522
918
919
920
9
9
17
17
17
17
20
20
22
26
28
29
33
33
35
39
43
43
45
45
46
46
51
51
51
53
53
57
61
61
61
62
64
68
68
68
69
69
69
69
69
69
69
70
71
71
79
80
80
82
82
84
84
85
85
85
85
87
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
91
91
91
91
91
92
92
92
92
94
104
108
108
120
124
126
126
128
128
144
148
150
150
152
152
167
171
173
173
175
175
190
192
192
194
212
213
215
216
217
217
217
218
219
219
219
220
220
221
221
225
225
225
225
225
225
225
225
225
225
226
226
226
226
226
230
230
230
231
232
236
236
238
238
241
241
242
242
242
245
248
248
256
256
261
261
261
266
267
274
279
279
283
284
286
286
287
295
296
297
297
297
297
300
311
311
313
315
315
317
318
318
323
323
326
327
336
341
341
341
342
344
344
345
354
355
355
355
356
360
363
365
380
385
385
404
409
409
427
429
432
446
451
451
469
474
474
489
493
496
498
513
518
518
919
920
921
1
1
5
5
5
5
9
15
15
17
17
17
17
18
21
21
23
23
26
26
35
35
35
40
43
43
44
44
46
51
58
60
62
62
62
63
68
68
69
69
69
69
69
69
70
70
70
71
72
75
75
80
81
85
85
85
85
85
87
87
87
87
87
87
87
88
88
88
88
89
89
89
90
91
91
91
91
91
91
105
109
109
121
125
127
127
129
129
149
153
153
168
172
174
174
176
176
191
193
195
213
216
217
218
218
218
219
219
219
220
220
220
221
221
222
222
226
226
226
226
226
227
227
227
227
231
232
233
237
239
239
240
240
240
242
242
243
243
246
246
255
255
257
257
262
262
265
267
268
275
280
280
287
287
288
295
296
297
298
298
298
301
314
316
316
318
319
319
324
324
325
325
325
327
337
342
342
345
345
346
353
355
356
356
361
364
366
381
386
386
405
410
410
428
430
433
447
452
452
470
475
475
494
497
499
514
519
519
920
921
922
4
4
5
5
5
5
5
6
6
6
9
9
17
17
17
17
18
18
19
22
24
28
28
29
33
33
35
41
43
43
45
45
45
45
46
51
52
53
53
57
59
60
60
63
63
69
69
69
70
70
70
71
71
71
71
71
71
71
72
75
80
80
81
82
85
85
85
85
85
85
85
85
86
86
87
87
87
87
88
89
89
89
90
90
90
90
90
91
91
91
91
91
91
91
106
110
110
122
126
128
128
130
130
150
154
154
169
173
175
175
177
177
192
194
196
217
217
218
219
219
219
219
219
219
219
219
219
220
220
220
220
221
221
221
222
222
223
223
226
226
226
227
227
227
227
227
228
232
233
238
240
240
241
241
241
241
243
255
255
256
256
258
261
263
263
266
268
268
276
281
281
288
288
296
296
299
302
315
315
317
317
320
320
326
326
326
326
338
343
343
346
346
354
354
362
365
367
382
387
387
406
411
429
431
434
448
453
453
471
476
476
495
498
500
515
520
520
921
922
923
1
4
5
5
5
5
6
6
7
7
7
7
9
10
15
19
19
20
23
25
26
26
29
35
35
35
42
43
43
44
44
46
46
51
53
53
54
54
60
62
62
63
64
64
69
71
71
71
71
72
72
72
72
72
75
79
79
79
81
82
82
83
85
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
89
89
90
90
90
90
90
90
90
90
90
91
91
91
91
107
111
111
127
131
131
151
155
155
174
178
178
195
197
217
217
217
218
218
219
219
219
220
220
220
220
220
220
220
220
220
221
221
222
222
222
222
222
222
222
222
223
223
224
224
226
227
227
227
227
227
239
241
241
242
242
244
248
257
257
259
264
264
265
267
277
282
282
286
300
302
303
315
316
321
321
327
327
339
344
344
363
366
368
383
388
388
407
412
430
432
435
449
454
454
472
477
496
499
501
516
521
521
922
923
924
1
1
4
5
5
6
6
6
7
7
8
8
8
8
9
9
10
11
11
11
11
19
20
24
26
28
28
29
33
33
35
35
35
35
43
45
45
45
45
46
47
53
55
55
60
60
61
63
65
65
71
72
72
73
73
79
80
82
82
82
82
82
84
85
85
88
88
88
88
88
88
89
89
89
89
89
89
89
89
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
108
112
112
128
132
132
152
156
156
175
179
179
190
194
196
196
198
198
217
218
218
218
219
219
220
220
220
220
220
220
220
220
220
220
221
221
221
221
221
221
221
221
222
222
223
223
223
223
223
223
230
240
242
242
242
243
243
243
245
245
248
253
258
258
260
265
265
266
266
268
268
273
278
283
283
283
298
301
303
304
311
315
316
317
322
322
327
331
340
341
343
343
345
356
364
367
367
369
369
384
389
389
408
410
410
413
431
433
433
436
436
450
455
455
473
476
476
478
497
500
500
502
502
517
522
522
923
924
925
5
5
7
7
7
8
8
9
9
9
9
9
11
11
15
15
18
20
23
25
25
26
26
27
27
29
35
35
35
35
36
36
43
43
44
45
46
46
48
53
53
55
62
62
62
63
66
66
71
71
73
79
79
82
83
85
85
85
87
87
88
88
88
88
88
88
88
88
88
89
89
89
89
89
90
90
90
90
90
91
91
91
91
91
91
91
91
91
109
113
113
129
133
133
153
157
157
176
180
180
191
195
197
197
199
199
218
219
219
219
219
219
220
220
220
221
221
221
221
221
221
221
221
222
222
222
222
222
222
222
222
222
222
222
222
222
223
224
224
224
224
224
224
230
230
230
231
241
243
243
244
244
246
246
254
259
261
266
266
266
268
269
269
274
274
274
279
283
284
284
284
286
286
296
298
300
302
304
304
305
311
316
317
318
323
323
327
332
332
332
341
341
342
344
344
344
346
356
365
370
370
385
390
390
409
411
414
432
437
437
451
456
456
474
477
479
498
503
503
518
523
523
924
925
926
4
4
5
5
5
8
8
9
9
9
10
10
15
19
20
20
21
24
26
26
28
28
28
28
29
33
37
37
45
45
45
45
46
46
46
46
47
49
55
55
55
60
60
63
63
67
67
73
73
73
83
84
85
85
85
85
85
86
87
87
88
88
89
89
89
89
90
90
90
90
90
91
91
91
91
110
114
114
130
134
134
154
158
158
177
181
181
192
196
198
198
200
200
219
220
220
220
220
220
220
220
220
220
221
222
222
222
222
222
222
222
222
222
222
223
223
223
223
223
223
224
225
225
225
225
225
225
230
231
232
242
243
245
245
247
247
254
254
258
258
260
262
266
267
267
268
269
270
270
275
275
280
283
285
285
287
287
301
303
305
305
305
305
306
315
317
318
319
324
324
333
333
341
342
345
345
345
347
366
371
371
386
391
391
410
412
415
433
438
438
452
457
457
475
478
480
499
504
504
519
521
524
524
925
926
927
4
4
5
5
5
5
6
7
9
10
10
10
11
11
11
11
15
19
19
19
20
21
22
22
25
26
26
27
27
28
29
29
29
37
38
43
43
46
47
47
48
50
53
53
55
62
62
63
64
68
68
71
71
73
82
84
85
87
87
87
87
88
88
88
89
89
89
89
89
89
90
91
91
91
91
91
111
113
113
115
115
131
135
135
155
159
159
178
182
182
197
201
201
220
221
221
222
223
223
223
223
223
223
223
223
223
223
223
224
224
224
224
224
224
230
231
232
233
233
243
243
243
245
245
248
248
259
259
261
263
266
266
268
268
269
270
274
275
275
275
275
276
281
284
286
286
288
288
288
298
298
302
303
304
305
305
306
306
307
311
316
318
318
320
325
325
332
333
333
333
333
334
342
343
344
346
346
346
346
348
356
356
367
372
372
387
392
392
411
413
416
434
439
439
453
458
458
476
479
481
500
505
505
520
522
522
522
525
525
926
927
928
5
5
5
5
6
6
7
7
9
11
11
11
11
12
12
12
12
19
20
22
22
22
22
22
26
28
28
28
29
29
29
29
30
30
33
33
38
43
47
48
48
49
49
51
51
55
55
55
60
60
62
63
65
69
69
73
73
73
79
82
82
85
85
85
85
85
87
87
87
87
87
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
90
91
92
112
114
114
116
132
136
136
156
160
160
179
183
183
198
202
202
215
222
222
222
222
222
222
222
222
224
225
225
225
225
225
228
232
241
244
244
244
246
249
249
258
260
260
264
267
267
268
268
268
269
269
270
276
276
277
282
286
287
287
296
299
299
303
305
306
307
307
308
315
317
321
326
326
326
334
334
335
344
344
345
347
349
354
357
357
368
373
373
388
393
393
412
414
417
435
440
440
454
459
459
477
480
482
501
506
506
521
522
523
523
526
526
927
928
929
5
5
7
8
8
8
8
8
8
11
12
12
13
13
13
13
19
19
22
23
26
26
27
29
30
30
31
31
33
38
38
39
43
44
48
48
50
50
52
52
53
53
55
62
62
62
63
63
63
63
66
68
68
68
69
70
70
71
71
73
73
73
73
81
81
82
82
82
82
82
84
84
85
85
85
85
85
85
85
85
85
85
85
85
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
89
89
89
89
90
90
90
91
91
91
91
93
113
115
115
117
133
137
137
157
161
161
180
184
184
199
203
203
212
215
215
215
215
215
215
216
217
217
217
217
217
217
217
217
220
222
222
222
223
225
225
225
225
225
225
226
229
229
233
233
242
242
245
247
250
250
258
265
269
269
269
269
270
270
275
275
277
277
283
285
285
287
287
288
288
288
297
297
304
305
305
306
307
309
316
316
318
318
322
327
327
327
327
327
327
333
333
335
335
345
345
345
346
346
348
350
355
355
369
374
374
389
394
394
413
415
418
436
441
441
455
460
460
478
481
483
502
507
507
522
523
523
527
527
928
929
930
5
5
7
9
9
9
9
11
11
13
13
13
14
14
23
24
28
31
31
32
32
33
37
37
37
39
40
40
43
45
48
48
49
51
51
53
53
55
55
55
60
60
63
64
64
67
68
68
68
69
69
69
69
69
69
70
71
73
73
73
73
74
74
82
82
82
85
85
85
85
85
85
85
85
86
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
90
90
90
90
90
90
90
90
90
91
91
91
92
94
114
116
118
134
138
138
158
160
160
162
162
181
183
183
185
185
200
204
204
211
211
211
213
215
215
215
215
216
216
216
216
216
216
216
216
217
217
217
218
218
218
218
218
218
218
218
220
220
220
220
220
220
222
224
225
225
225
225
225
226
227
234
234
246
248
248
251
251
254
258
259
266
270
270
271
271
276
284
286
289
289
289
305
306
307
307
310
310
316
318
319
319
323
328
328
328
328
334
346
347
347
349
351
370
375
375
390
395
395
414
416
419
437
442
442
456
461
461
479
482
484
503
508
508
523
528
528
929
930
931
5
5
5
7
10
10
10
10
10
10
13
13
13
13
13
14
14
15
15
22
24
25
26
29
31
33
33
37
38
40
40
40
40
40
43
43
48
49
50
53
53
54
54
55
55
55
55
65
65
68
68
68
69
69
69
69
69
70
70
70
70
70
71
71
72
75
75
84
84
85
85
85
86
87
87
88
88
88
89
89
89
89
89
89
89
89
89
89
89
90
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
93
93
95
95
115
117
119
135
139
139
159
161
161
163
182
184
184
186
201
205
205
212
212
212
214
216
216
216
216
217
217
217
217
217
217
217
217
218
218
218
218
218
218
218
218
218
219
219
219
219
219
219
219
219
221
221
221
221
221
221
222
225
227
228
229
233
233
233
233
235
235
244
247
249
249
249
249
252
252
254
259
260
267
270
272
272
275
277
285
287
287
288
288
288
290
290
290
299
305
305
306
307
311
311
316
318
319
320
320
324
328
329
329
333
335
345
346
346
346
347
348
348
350
352
357
371
376
376
391
396
396
415
417
420
438
443
443
457
462
462
480
483
485
504
509
509
524
529
529
930
931
932
5
5
5
5
6
7
11
11
11
11
13
14
14
15
15
16
16
19
22
22
26
30
31
31
34
34
37
37
40
41
48
48
49
50
50
50
50
51
55
55
55
55
55
55
56
56
60
65
69
69
69
70
70
70
71
71
71
71
72
73
75
76
82
82
85
85
85
85
86
88
88
88
88
88
88
88
88
88
89
91
91
91
91
91
91
91
91
91
91
92
94
94
96
96
118
120
136
138
138
140
140
160
162
162
164
183
185
185
187
202
206
206
213
213
213
215
215
217
217
217
217
218
218
218
218
218
218
218
218
218
219
219
219
219
219
219
219
220
220
220
220
220
220
220
220
220
220
220
220
220
222
222
222
222
222
222
226
229
229
229
229
233
234
234
234
234
235
235
244
247
248
249
249
250
250
253
253
258
260
261
268
270
273
273
275
275
276
286
287
287
287
288
288
289
289
289
291
299
305
305
306
306
307
312
312
316
316
319
320
325
328
330
330
333
333
334
345
345
345
346
347
347
347
351
353
357
372
377
377
392
397
397
418
421
439
444
444
458
463
463
484
486
505
510
510
525
530
530
931
932
933
5
5
5
5
6
6
7
7
7
7
11
11
12
12
13
13
13
15
15
16
16
17
17
24
24
25
26
26
31
31
32
35
35
41
42
43
48
48
48
50
50
52
53
56
56
57
57
60
65
65
69
70
70
71
71
71
71
72
72
72
72
74
76
84
84
85
85
88
89
89
89
90
90
90
91
91
91
91
93
95
95
97
97
113
117
119
119
121
121
137
139
139
141
161
163
165
184
186
188
203
207
207
214
214
214
214
214
218
218
218
218
218
218
218
219
219
220
220
220
220
220
220
220
220
221
221
221
221
223
223
223
223
223
223
227
230
234
235
235
235
235
236
236
249
250
251
251
254
254
254
259
261
261
269
274
274
274
275
276
277
287
289
289
290
290
290
292
307
307
308
313
313
317
317
318
318
318
320
326
331
331
332
333
334
335
347
348
348
348
352
354
373
378
378
393
398
398
419
422
440
445
445
459
464
464
485
487
506
511
511
526
531
531
932
933
934
1
5
5
7
8
8
8
8
11
11
12
12
12
13
13
13
15
15
16
16
17
17
18
18
22
22
25
31
31
32
32
33
33
33
33
36
36
40
42
43
48
53
57
57
57
58
60
60
65
66
71
72
72
73
75
76
76
77
81
81
81
82
82
84
85
85
85
85
86
87
87
87
87
91
91
91
91
91
94
98
98
114
118
120
120
122
122
138
140
140
142
162
164
166
185
187
189
204
208
208
211
214
220
220
221
221
221
221
221
221
221
221
221
221
222
222
222
222
222
228
231
233
235
236
236
236
237
237
244
244
249
249
250
251
255
255
258
260
270
275
275
275
277
278
288
288
290
290
291
291
293
299
299
303
308
308
309
314
314
319
319
319
319
327
332
332
333
335
336
346
348
349
349
353
355
357
357
374
379
379
394
399
399
420
423
441
446
446
460
465
465
486
488
507
512
512
527
532
532
933
934
935
1
1
1
9
9
13
13
13
13
13
13
14
14
16
16
16
16
17
17
18
18
19
24
24
25
26
31
31
31
33
33
33
37
37
37
40
40
48
49
50
50
53
53
54
58
58
58
65
65
66
67
67
67
67
68
71
72
74
74
75
75
75
76
76
77
78
78
81
84
84
84
85
85
85
85
85
85
85
85
85
86
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
91
91
95
99
99
115
119
121
121
123
123
139
141
143
165
167
188
190
205
209
209
212
213
215
215
220
220
220
220
222
222
223
223
223
223
223
227
229
232
234
234
237
238
238
242
245
245
250
251
256
256
259
259
261
261
269
271
275
276
276
276
278
289
289
289
291
294
297
300
300
304
309
310
315
315
320
320
327
328
333
333
333
334
336
347
347
347
354
355
356
358
358
375
380
380
395
400
400
415
419
421
424
442
447
447
461
466
466
480
487
489
508
513
513
528
533
533
934
935
936
5
5
9
9
11
11
13
13
13
13
14
15
15
17
17
18
18
19
19
20
22
22
25
31
34
38
38
42
42
43
48
50
50
51
51
53
55
58
58
59
59
59
60
65
65
65
67
67
69
73
75
75
75
76
77
77
78
78
78
78
78
82
82
82
82
82
85
85
85
85
85
85
85
85
85
85
85
85
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
96
100
100
120
124
124
140
142
144
160
164
166
166
168
168
183
187
189
189
191
191
206
208
208
210
210
213
213
214
215
215
215
215
215
215
215
215
216
216
219
220
220
220
222
222
222
223
223
223
223
223
223
224
228
228
230
233
238
239
239
243
243
249
249
251
252
257
257
259
261
262
262
270
270
270
270
272
275
276
277
277
278
278
279
290
292
295
298
298
304
304
308
308
310
311
316
316
320
328
328
328
328
329
333
334
334
334
336
336
337
348
352
355
356
356
357
376
381
381
396
401
401
420
422
425
443
448
448
462
467
467
481
485
488
490
509
514
514
529
534
534
935
936
937
1
5
9
9
10
13
13
13
13
14
14
14
16
16
18
18
18
18
19
20
20
21
24
24
25
31
32
33
33
35
37
37
39
39
40
40
43
50
52
52
53
56
57
57
57
59
60
60
60
60
65
70
74
75
75
76
76
78
78
78
79
82
82
82
83
84
84
84
85
85
85
86
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
90
90
90
90
90
90
97
101
101
121
125
125
143
145
161
165
167
167
169
169
184
188
190
190
192
192
207
209
209
211
213
213
213
214
214
214
215
215
215
216
216
216
216
216
216
216
216
217
217
218
218
218
219
223
223
223
223
223
223
224
225
229
231
234
236
240
240
249
249
250
250
253
258
258
259
261
262
263
263
271
271
273
278
278
279
279
280
291
293
296
309
309
311
312
317
317
320
329
329
330
335
335
337
337
338
349
353
356
358
377
382
382
397
402
402
421
423
426
444
449
449
463
468
468
486
489
491
510
515
515
530
535
535
936
936
938
5
5
9
10
11
11
15
15
15
15
17
17
19
19
20
20
20
21
21
22
22
22
24
25
31
33
33
34
34
36
38
38
40
42
42
43
50
50
52
57
57
58
60
60
60
60
60
61
61
65
66
66
67
67
67
75
79
79
79
80
81
81
82
82
82
82
82
82
82
83
84
84
84
85
85
85
85
85
85
85
87
87
87
87
87
88
88
88
88
89
89
89
89
91
91
91
91
91
91
98
102
102
122
126
126
138
142
144
144
146
146
162
166
168
168
170
170
185
189
191
191
193
193
208
210
210
210
211
211
211
211
211
211
212
214
214
214
215
216
216
216
216
217
217
217
217
217
217
217
217
218
218
218
218
220
224
225
230
232
235
236
238
245
251
251
254
259
259
259
259
262
263
271
274
279
279
280
280
291
294
297
300
308
310
310
313
318
318
329
331
336
336
338
338
349
354
357
358
359
378
383
383
398
403
403
422
424
427
445
450
450
464
469
469
487
490
492
511
516
516
522
531
536
536
936
937
937
939
9
9
10
11
11
11
11
15
16
16
18
21
21
21
22
22
23
24
24
24
25
25
25
25
33
35
35
37
39
39
40
40
41
43
52
52
52
57
57
58
60
61
62
62
65
66
67
67
67
67
68
68
68
76
78
80
80
80
81
81
81
82
82
83
83
85
85
85
85
85
85
85
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
89
89
91
91
91
91
99
103
103
123
127
127
139
143
145
145
147
147
167
171
171
190
194
194
208
209
209
209
209
211
211
212
212
212
212
212
212
212
212
212
213
214
214
214
215
215
215
216
216
217
217
218
218
218
218
218
218
218
218
218
231
233
236
240
245
247
252
252
255
260
260
260
260
261
261
261
263
271
275
278
280
280
295
298
300
308
314
319
319
329
332
336
337
337
355
358
358
360
379
384
384
399
404
404
423
425
428
446
451
451
465
470
470
488
491
493
512
517
517
523
532
537
537
938
938
940
1
4
5
9
9
9
11
11
11
11
13
13
15
16
17
17
18
18
19
20
22
22
22
22
22
22
23
23
24
24
25
26
26
33
33
35
38
40
42
42
42
43
50
50
52
59
61
61
61
62
63
63
66
67
67
67
68
69
69
69
75
77
78
78
81
81
81
82
82
85
85
85
85
85
87
87
87
87
87
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
90
90
90
91
91
91
91
100
104
104
124
128
128
140
144
146
146
148
148
168
172
172
191
195
195
209
210
210
210
210
212
212
213
213
213
213
213
213
213
213
213
214
214
214
215
215
215
216
216
216
216
216
216
216
216
216
216
216
216
216
216
218
218
218
222
232
234
234
236
236
237
237
240
248
253
256
261
261
262
262
262
262
275
276
281
281
290
291
291
294
296
299
304
308
309
315
319
320
320
333
333
338
338
349
349
356
359
359
361
361
380
385
385
400
405
405
424
426
426
429
429
447
452
452
466
471
471
489
492
492
494
494
513
518
518
523
523
533
538
538
939
939
941
5
5
9
11
16
16
16
17
18
19
19
19
20
21
23
23
24
24
25
25
27
27
35
35
35
39
40
40
41
42
43
43
52
52
52
60
60
62
62
62
63
64
66
67
67
67
67
68
69
69
70
78
80
80
81
82
82
85
85
85
85
85
86
86
87
87
87
87
87
87
87
88
89
91
91
91
91
91
101
105
105
125
129
129
145
149
149
169
173
173
192
196
196
210
211
211
211
213
213
213
214
214
214
214
214
214
214
214
214
215
215
215
216
216
216
216
216
217
217
217
217
217
217
217
217
218
218
218
222
222
222
223
233
234
237
237
238
238
248
248
252
252
254
257
262
262
263
263
275
276
277
278
278
282
282
289
292
292
295
297
300
304
309
310
316
320
320
320
320
321
321
333
334
334
336
336
339
339
347
350
350
357
362
362
381
386
386
401
406
406
425
430
430
448
453
453
467
472
472
490
495
495
514
519
519
523
524
524
534
539
539
940
940
942
5
5
6
9
10
11
11
11
15
15
15
17
17
18
18
20
20
20
21
22
22
24
24
25
25
26
26
27
33
33
35
42
42
42
42
43
43
43
43
44
50
50
52
57
60
60
61
63
63
65
66
67
67
68
69
69
69
69
70
78
78
79
80
81
82
82
82
83
83
83
85
85
85
85
86
87
87
87
87
87
88
88
88
88
88
88
88
88
89
89
89
91
91
102
106
106
126
130
130
146
150
150
170
174
174
193
197
197
211
212
212
212
212
212
212
214
215
215
215
216
216
216
217
217
217
217
217
218
218
218
218
218
218
218
218
218
218
218
218
218
222
223
224
234
235
235
239
239
253
253
255
258
263
263
263
275
278
279
279
283
290
290
296
298
301
308
310
311
317
321
321
322
322
333
335
337
337
340
340
348
348
358
363
363
382
387
387
402
407
426
431
431
449
454
454
468
473
473
491
496
496
515
520
520
524
524
525
535
540
941
941
943
4
4
4
5
6
7
9
11
11
11
12
12
15
16
17
18
18
18
18
18
21
22
22
22
22
22
22
23
26
26
27
27
27
27
35
35
35
37
40
40
41
43
43
43
44
44
45
45
52
52
52
62
62
62
63
64
66
66
67
67
67
67
68
69
69
70
80
80
80
80
81
81
81
83
84
84
85
85
85
85
85
85
85
85
85
85
85
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
103
105
105
107
107
127
131
131
147
151
151
171
175
175
194
198
198
209
211
212
213
213
213
213
213
213
213
213
215
215
216
217
217
217
218
218
218
218
218
219
219
219
219
219
219
219
219
222
223
224
225
225
230
235
240
240
243
252
254
254
259
263
264
264
276
278
279
280
280
280
284
297
298
299
302
304
309
311
311
318
321
323
323
334
336
336
338
338
338
341
356
359
364
364
383
388
388
403
408
427
432
432
450
455
455
469
474
492
497
497
516
521
521
524
524
525
526
536
541
942
942
944
4
4
5
5
7
8
11
13
13
15
15
18
18
19
22
22
23
23
23
24
27
27
27
28
28
28
33
33
35
35
35
35
38
42
44
44
45
45
46
46
50
50
52
52
52
52
60
60
63
63
65
67
67
68
68
69
69
69
69
70
78
78
81
81
81
81
81
83
83
83
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
86
86
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
104
106
106
108
128
132
132
148
152
152
172
176
176
195
199
199
210
211
211
211
211
211
212
213
213
213
214
214
214
214
214
214
214
214
214
214
214
215
216
217
217
217
217
217
217
218
219
219
220
224
226
230
231
236
237
241
241
244
252
260
265
265
270
278
279
280
282
282
285
292
298
299
300
303
308
310
319
321
324
324
328
336
337
337
340
340
342
350
357
360
365
365
384
389
389
404
406
406
409
428
433
433
451
456
456
470
473
473
475
493
498
498
517
522
522
525
526
537
539
539
542
943
943
945
4
5
5
6
8
9
11
11
13
19
19
20
24
24
24
24
24
25
27
27
27
27
28
28
28
29
29
29
29
29
29
35
35
35
35
36
36
39
40
43
45
45
45
47
47
52
52
52
52
53
53
62
62
63
66
67
67
68
68
68
69
69
69
69
69
70
80
80
81
81
81
81
82
82
82
82
82
82
82
83
83
83
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
87
87
87
88
88
88
88
88
88
89
89
105
107
107
109
129
131
131
133
133
149
153
153
173
177
177
196
200
200
208
209
209
209
209
209
209
211
212
212
212
212
212
213
214
214
214
214
214
214
214
215
215
215
215
215
215
215
215
217
218
219
219
219
219
219
219
221
221
225
225
227
231
232
237
237
242
242
245
245
248
252
253
261
266
266
271
271
271
279
279
280
280
281
283
286
292
299
300
300
301
301
304
304
309
309
311
311
320
325
325
329
329
329
337
337
338
338
338
341
343
350
358
358
361
366
366
385
390
390
405
407
410
429
434
434
452
457
457
471
474
476
494
499
499
518
523
523
524
524
526
538
540
543
944
944
946
1
1
4
4
4
5
5
7
9
10
13
13
13
18
20
21
21
21
22
25
26
27
27
27
28
28
29
29
29
29
30
30
33
37
37
40
44
45
45
48
48
50
54
54
60
60
61
63
65
67
67
69
69
69
69
69
69
70
70
70
78
78
80
81
82
82
82
82
82
82
83
83
83
83
83
83
84
84
84
85
85
85
85
85
85
85
85
85
85
85
86
87
87
87
87
87
87
87
87
89
89
106
108
110
130
132
132
134
150
154
154
174
176
176
178
178
197
201
201
207
207
207
209
210
210
210
210
210
210
210
210
212
212
213
213
213
213
213
214
214
215
215
216
216
216
216
216
216
216
216
217
218
219
219
219
219
219
219
220
226
226
228
232
233
238
243
243
246
246
246
246
248
253
254
262
262
267
267
272
272
281
281
282
284
287
300
301
301
301
301
305
305
309
311
312
312
321
326
326
330
330
339
339
339
342
344
359
359
359
359
362
367
367
386
391
391
406
408
411
430
435
435
453
458
458
472
475
477
495
500
500
519
524
524
525
539
541
544
945
945
947
1
1
5
5
5
6
8
10
11
11
11
13
15
18
18
20
20
22
25
25
26
27
27
29
29
30
30
31
31
37
38
40
40
45
45
46
49
49
54
55
62
62
62
63
66
67
68
68
70
70
71
71
80
80
80
81
81
81
81
83
84
85
85
85
86
86
87
87
87
88
88
88
88
88
88
88
88
88
88
89
89
89
89
107
109
111
131
133
133
135
151
155
155
175
177
177
179
198
202
202
208
208
208
210
211
211
211
211
211
211
211
211
214
214
214
214
214
214
214
214
216
216
216
220
221
221
225
225
225
227
227
229
233
234
237
237
239
244
244
244
246
246
247
247
252
254
255
263
263
263
263
263
268
268
271
272
272
272
272
273
279
280
280
280
282
282
283
285
288
292
292
299
301
301
301
302
302
306
306
309
311
312
313
313
320
322
327
327
329
330
330
330
330
331
337
338
338
338
340
340
340
343
345
350
350
357
359
359
360
360
363
368
368
387
392
392
407
409
412
431
436
436
454
459
459
473
476
478
496
501
501
520
524
525
525
526
540
542
545
946
946
948
4
5
6
7
9
11
12
13
13
13
20
20
21
23
23
26
26
26
27
27
28
28
29
29
29
29
31
31
32
32
33
33
38
45
45
46
46
47
47
47
47
50
50
50
50
55
60
60
62
63
63
67
69
69
71
71
71
72
78
78
81
82
82
82
82
82
85
85
85
85
85
85
85
87
87
87
87
87
87
87
87
88
88
88
89
89
89
89
89
110
112
132
134
136
152
156
156
176
178
178
180
199
201
201
203
203
209
209
209
211
211
212
212
212
212
212
212
212
212
214
216
216
219
219
221
221
221
221
222
225
226
226
226
230
234
235
235
238
238
240
245
245
247
248
248
248
253
255
255
264
264
264
269
269
273
273
274
279
279
279
280
281
281
281
284
286
289
290
293
293
302
302
303
303
307
307
309
309
312
313
321
321
321
321
323
328
328
331
331
332
337
337
337
338
339
339
339
341
344
346
348
351
351
360
361
361
364
369
369
388
393
393
408
410
413
432
437
437
455
460
460
474
477
479
497
502
502
521
524
525
526
526
541
543
546
947
949
7
7
8
10
11
11
12
13
13
18
18
21
27
27
27
27
28
29
29
29
30
30
30
30
30
30
32
32
33
33
33
38
38
39
40
45
45
45
47
47
47
50
51
51
55
55
56
62
62
62
63
63
63
63
67
67
68
72
72
72
81
81
81
81
81
81
81
81
82
82
82
82
82
83
83
83
85
85
85
85
85
86
86
86
86
87
87
87
87
87
87
88
89
89
89
90
105
109
111
111
113
113
133
135
137
153
157
157
177
179
181
200
202
202
204
208
208
208
210
210
210
210
210
210
212
212
212
212
212
213
213
214
216
216
216
216
220
222
223
226
227
227
227
231
235
236
236
241
246
246
246
246
248
252
254
264
265
270
270
272
272
274
274
281
282
282
282
285
287
290
291
291
301
301
303
303
308
308
310
310
311
311
311
313
322
322
324
329
329
330
330
332
332
339
340
340
340
342
345
347
349
349
359
359
361
365
370
370
389
394
394
409
411
414
433
438
438
456
461
461
475
478
480
498
503
503
522
526
527
527
542
544
547
948
950
9
11
13
13
13
13
14
19
20
20
21
24
28
29
29
30
31
31
31
31
33
33
33
34
34
37
37
37
39
40
40
45
48
50
52
52
54
54
54
56
57
57
60
60
63
64
64
67
69
72
72
73
73
73
78
81
81
81
82
83
83
83
83
83
83
83
85
85
85
85
85
85
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
89
89
89
91
106
110
112
112
114
114
136
138
154
156
156
158
158
178
180
182
201
203
203
205
207
208
208
208
209
209
209
212
212
212
212
212
212
212
213
213
213
213
213
213
216
216
216
221
223
224
225
227
228
228
231
242
247
247
247
253
253
255
255
264
266
271
271
273
280
282
283
283
286
288
291
302
304
309
309
312
312
312
312
322
325
330
330
331
338
340
341
341
343
346
348
360
366
371
371
390
395
395
410
412
415
434
439
439
457
462
462
476
479
481
499
504
504
523
527
528
528
543
545
548
949
951
1
7
7
11
11
12
13
13
13
13
14
15
18
18
21
25
28
29
29
30
31
31
32
32
32
32
34
34
35
35
37
38
40
40
40
40
40
45
46
47
47
49
53
53
54
55
57
57
57
57
57
65
65
65
65
65
65
67
70
71
71
71
73
74
74
74
74
78
78
83
83
83
83
83
83
83
83
83
83
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
87
87
87
87
88
88
88
88
88
88
88
89
90
90
92
92
107
111
113
113
115
115
131
135
137
137
139
139
155
157
157
159
181
183
201
202
204
205
206
207
208
209
209
209
209
209
209
210
210
210
212
212
212
213
213
213
213
213
213
213
213
214
214
214
214
214
222
224
225
226
226
238
243
246
246
248
248
248
253
255
256
256
267
272
272
272
274
281
281
287
289
292
293
301
301
303
305
310
310
313
313
322
326
330
331
331
332
339
339
344
347
349
351
359
359
361
367
372
372
391
396
396
411
413
416
435
440
440
458
463
463
477
480
482
500
505
505
524
524
529
529
544
546
549
945
950
952
7
7
8
8
8
8
13
13
13
13
13
14
14
16
20
20
21
26
29
29
31
31
31
31
32
33
33
34
34
34
34
35
35
36
36
37
37
40
41
45
47
47
48
48
50
54
54
54
54
57
58
60
62
62
65
65
65
65
65
66
66
71
71
72
74
74
74
74
74
75
75
78
78
81
81
81
81
82
82
82
82
82
82
82
82
82
83
83
83
83
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
87
87
87
89
91
91
93
93
112
116
116
132
136
138
138
140
140
156
158
158
160
176
180
182
182
184
184
202
203
205
206
206
207
207
207
207
207
207
207
207
207
207
207
208
209
209
209
210
210
210
210
210
210
211
211
211
211
211
211
212
212
212
214
214
214
214
214
214
214
215
215
215
215
215
217
223
226
238
244
246
246
247
247
249
249
253
255
256
257
257
268
272
272
273
273
273
290
293
293
301
301
302
302
306
311
311
313
327
330
330
331
332
332
348
350
351
359
359
360
360
368
373
373
392
397
397
414
417
436
441
441
459
464
464
481
483
501
506
506
523
524
525
525
530
530
547
550
946
948
951
953
7
7
7
7
8
8
11
13
14
14
15
15
17
17
18
18
20
21
29
29
30
31
32
33
35
35
35
35
36
36
37
41
42
47
49
49
51
55
55
58
59
60
62
62
65
65
66
66
67
67
71
71
72
74
75
76
76
79
79
82
82
82
83
83
83
83
83
83
84
85
85
85
85
85
85
85
85
85
85
85
85
85
86
87
87
87
87
87
90
92
92
94
94
113
117
117
133
137
139
139
141
141
157
159
161
177
181
183
183
185
185
203
205
205
205
206
207
207
208
208
208
208
208
208
208
208
208
208
208
208
208
209
209
209
209
209
209
209
209
210
210
210
210
211
211
211
211
211
211
211
211
215
215
215
215
215
215
215
224
227
228
235
245
248
248
250
250
253
253
256
257
269
271
272
273
274
274
274
283
291
294
303
303
307
312
312
313
328
329
330
331
332
333
333
341
349
351
361
361
369
374
374
393
398
398
415
418
437
442
442
460
465
465
482
484
502
507
507
524
524
526
526
531
531
548
551
949
952
954
13
14
15
15
15
16
18
18
20
20
20
21
21
21
21
27
27
31
31
31
31
31
32
32
33
34
36
36
36
36
37
37
38
40
42
43
47
47
49
52
56
56
57
59
60
60
60
65
66
67
67
68
68
73
75
76
77
77
80
81
81
81
81
82
82
82
82
82
82
83
83
85
85
85
87
87
87
87
88
88
88
91
95
95
114
118
118
138
142
142
158
160
162
178
182
184
184
186
186
206
206
206
207
208
208
209
209
209
209
209
209
209
209
209
209
209
209
209
210
210
210
210
210
210
210
210
211
211
211
212
212
212
219
225
228
228
235
244
246
249
249
251
251
254
254
255
255
255
257
270
272
274
275
275
275
283
292
295
299
304
304
308
313
313
329
330
332
333
334
341
350
352
357
362
362
370
375
375
394
399
399
416
419
438
443
443
461
466
466
483
485
503
508
508
525
525
527
527
527
532
532
549
552
950
953
955
7
7
8
8
11
11
14
15
16
16
16
18
18
19
19
21
22
22
29
29
31
31
31
31
32
33
33
33
34
35
37
37
38
38
39
40
40
49
49
49
53
54
55
55
57
57
57
57
65
65
66
67
67
67
67
68
68
74
74
76
77
78
78
80
81
81
81
83
83
83
83
84
84
84
85
85
85
85
85
85
87
87
87
87
87
87
92
96
96
115
119
119
139
143
143
161
163
183
187
187
207
207
207
208
209
209
209
210
210
210
210
210
210
210
210
210
210
210
210
210
210
211
211
211
211
211
211
211
212
212
212
219
219
220
224
225
226
229
245
247
250
252
252
256
256
256
256
263
271
272
273
275
276
287
291
293
296
300
305
309
314
314
330
330
331
333
333
333
335
344
351
353
358
363
371
376
376
395
400
411
415
417
420
439
444
444
462
467
477
484
486
504
509
509
524
527
527
528
528
528
533
544
548
550
553
951
954
956
8
8
8
9
9
11
16
16
16
17
20
20
23
23
31
31
31
31
32
32
34
34
34
35
36
38
39
39
40
42
42
43
47
47
49
54
56
56
58
59
59
60
60
65
65
65
65
65
65
67
67
71
74
74
75
77
77
79
79
82
82
82
83
83
83
83
85
85
85
85
85
85
85
85
86
86
86
87
87
87
93
97
97
116
120
120
140
144
144
156
160
162
162
164
164
184
188
188
208
208
208
208
208
208
209
210
210
211
211
211
212
212
212
212
212
212
212
212
212
215
215
215
219
219
219
220
221
223
225
225
225
226
227
228
228
230
236
245
245
248
249
249
251
253
253
257
257
264
264
264
272
272
273
275
275
276
277
283
283
291
292
294
297
300
300
304
304
306
310
312
315
315
321
330
331
331
333
333
334
334
336
341
341
345
349
349
352
354
358
358
362
362
364
372
377
377
396
401
416
418
421
440
445
445
463
466
466
468
478
482
485
487
505
510
510
528
529
529
529
534
549
551
554
952
955
957
7
10
10
11
15
15
15
17
17
18
18
18
21
21
23
26
29
31
33
33
35
36
36
36
36
36
39
40
40
40
40
41
43
49
49
49
55
57
57
57
57
59
60
62
65
65
65
65
66
66
76
76
76
77
78
78
80
81
81
81
81
82
82
82
82
82
82
83
83
83
83
83
84
84
84
85
85
85
85
85
85
86
86
86
94
98
98
117
121
121
141
145
145
157
161
163
163
165
165
185
189
189
205
210
210
210
210
211
211
212
212
212
215
215
215
215
215
215
220
221
222
224
226
226
226
227
228
229
229
231
237
249
250
250
252
254
254
257
265
265
273
275
275
276
276
277
278
281
284
284
292
293
295
298
305
305
307
311
313
313
313
313
316
316
322
322
322
332
334
334
335
335
337
339
342
342
350
350
353
355
363
363
365
373
378
378
397
399
399
402
417
419
422
441
446
446
464
467
469
483
486
488
506
511
511
529
530
532
532
535
550
552
555
953
956
958
1
1
8
8
10
15
16
18
18
18
18
18
18
18
22
22
23
23
32
33
34
34
37
37
37
38
40
40
41
41
42
42
42
42
43
47
47
49
56
58
59
59
60
60
62
65
66
66
67
67
67
74
74
77
77
79
79
79
81
81
81
81
81
81
81
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
83
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
95
99
99
118
122
122
142
146
146
158
162
164
164
166
166
186
190
190
206
206
206
206
207
207
208
208
208
208
208
208
210
210
210
210
211
211
212
212
212
212
212
213
215
215
217
221
222
225
227
227
227
227
228
229
232
238
238
249
250
251
251
255
255
257
264
265
265
265
265
266
274
276
277
277
279
282
282
293
293
294
296
299
304
306
306
312
314
314
317
317
323
323
333
335
335
336
338
340
340
351
351
351
354
356
362
364
364
374
379
379
398
400
403
418
420
423
442
447
447
465
468
470
484
487
489
507
512
512
531
533
536
551
553
556
954
957
959
1
1
1
5
10
10
10
15
15
18
18
18
19
19
23
23
23
24
29
29
33
34
35
38
38
38
38
38
39
40
40
41
41
41
41
42
42
43
43
43
49
49
49
57
57
57
59
60
61
65
67
67
67
68
68
68
76
76
77
78
80
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
96
100
100
119
123
123
143
147
147
163
167
167
187
191
191
204
205
205
205
205
205
205
206
206
206
207
207
207
207
208
208
208
208
208
208
208
208
209
209
209
209
209
209
210
210
210
212
212
212
213
214
215
226
228
228
229
230
233
239
239
239
239
249
251
256
256
266
266
267
275
275
277
280
294
294
294
294
295
297
300
304
313
314
318
318
322
323
323
323
323
324
333
334
337
339
352
352
352
352
352
355
357
362
375
380
380
399
401
404
419
421
424
443
448
448
466
469
471
485
488
490
508
513
513
524
524
527
532
534
537
552
554
557
955
958
959
960
5
6
8
8
10
19
20
20
23
23
24
24
24
25
25
25
25
29
34
34
35
35
35
36
39
40
42
42
42
42
42
42
43
43
43
44
44
47
47
49
49
49
49
59
59
60
60
62
67
68
69
69
74
74
77
78
78
79
81
83
83
83
83
83
83
83
83
83
83
83
83
83
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
87
87
87
97
101
101
120
124
124
144
148
148
164
168
168
188
192
192
203
203
203
205
205
205
206
206
206
206
206
206
206
206
207
207
207
208
208
208
208
208
209
209
209
209
209
209
209
209
210
210
210
210
210
210
212
212
214
215
219
227
229
229
229
230
231
231
234
234
237
239
239
240
240
245
249
250
252
257
257
265
265
267
267
272
276
278
281
284
292
294
294
295
295
296
298
298
300
301
301
304
305
314
314
319
319
324
324
325
330
335
338
340
342
350
352
352
353
353
353
356
356
358
358
358
362
363
376
381
381
400
402
405
420
422
422
425
425
444
449
449
467
470
472
486
489
489
491
491
509
514
514
525
527
528
533
535
538
553
555
555
558
558
956
958
960
961
6
7
10
10
10
18
18
20
21
21
23
23
23
25
25
25
25
29
33
33
33
34
34
35
36
36
36
39
39
40
40
40
41
42
43
43
43
44
44
45
45
49
49
49
49
50
50
55
57
57
59
59
60
61
61
63
63
67
67
69
76
76
77
78
78
78
81
82
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
83
84
85
85
85
85
85
85
85
86
86
86
87
87
87
98
102
102
121
123
123
125
125
145
149
149
165
169
169
189
193
193
201
204
204
204
205
205
205
206
206
206
207
207
207
207
207
207
207
207
208
208
208
209
209
209
209
209
209
210
210
210
210
210
210
210
210
211
211
211
211
211
211
213
215
216
219
219
219
220
228
229
230
230
235
235
240
241
241
245
250
251
253
256
258
258
266
272
273
275
275
277
279
282
284
295
296
296
297
300
302
302
305
306
315
320
320
323
323
325
325
330
331
333
333
336
339
341
342
353
354
354
354
358
359
359
363
364
377
382
382
401
403
406
421
426
426
445
450
450
468
471
473
487
492
492
510
515
515
528
529
534
536
539
554
559
559
957
961
962
2
4
5
5
5
6
7
7
8
8
8
10
15
18
18
22
23
26
26
33
34
36
36
36
36
36
37
37
40
40
40
41
42
42
42
42
43
43
43
43
43
43
45
45
46
46
47
51
51
56
59
59
59
60
60
60
60
60
62
62
64
64
69
69
69
74
74
76
77
77
78
78
78
78
78
78
78
81
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
84
84
84
85
85
85
99
103
103
122
124
124
126
146
150
150
166
170
170
190
194
194
201
201
201
201
201
202
205
205
205
205
206
206
206
207
207
207
207
208
208
208
208
208
208
208
208
209
209
209
209
209
209
210
211
211
211
211
211
211
214
216
217
219
220
221
228
231
236
236
239
239
241
249
251
252
254
257
257
257
257
259
259
265
267
272
276
276
278
280
283
294
294
296
298
303
303
304
306
307
316
321
321
324
330
334
334
337
340
342
352
352
354
355
360
360
362
364
365
378
383
383
402
404
407
422
427
427
446
451
451
469
472
474
488
493
493
511
516
516
529
535
537
540
555
560
560
958
962
963
2
3
7
8
8
9
10
10
10
20
20
21
23
23
24
25
25
27
27
33
33
36
37
40
40
41
41
41
42
43
43
44
44
44
44
44
44
46
46
47
47
51
52
57
57
57
60
61
61
61
62
63
63
63
65
65
67
67
69
76
76
76
77
77
77
77
78
82
82
82
82
82
83
83
83
83
84
84
85
85
85
85
85
85
85
86
86
100
102
102
104
104
123
125
125
127
147
149
149
151
151
167
171
171
191
195
195
202
202
202
202
202
203
205
205
205
205
205
205
206
206
206
206
206
206
206
207
207
207
208
208
209
209
210
211
211
211
215
217
218
219
220
221
222
222
229
229
230
232
237
237
240
245
250
252
252
255
258
258
260
260
265
265
266
273
275
277
277
277
279
281
284
284
284
295
299
300
304
304
305
307
307
313
317
322
322
323
325
331
333
335
335
335
341
342
342
343
353
356
358
361
361
363
365
365
379
384
384
403
405
408
423
428
428
447
452
452
470
473
475
489
494
494
512
517
517
524
529
536
538
541
556
561
561
959
963
964
3
4
5
8
8
8
9
9
10
10
10
10
10
18
18
21
23
24
25
25
26
26
28
28
33
37
38
38
42
43
44
45
45
45
45
47
47
47
47
48
48
52
61
62
62
62
62
62
63
63
64
66
66
69
69
69
74
74
77
78
78
79
80
81
81
81
81
81
81
81
81
82
82
82
82
82
83
83
83
83
84
84
84
84
84
84
84
84
84
85
85
85
85
85
87
87
101
103
103
105
124
126
128
148
150
150
152
168
172
172
192
194
194
196
196
203
203
203
203
203
204
204
206
206
206
206
206
206
207
208
208
208
209
210
211
211
211
211
211
211
216
217
219
221
227
230
230
230
233
238
238
239
239
241
249
251
256
258
261
261
264
265
266
267
275
276
280
282
282
285
285
285
294
294
296
300
304
305
305
306
314
314
314
314
318
323
323
323
323
324
333
334
340
342
343
343
344
352
352
354
357
362
362
362
364
380
385
385
404
406
409
424
429
429
448
453
453
474
476
490
495
495
513
518
518
525
527
537
539
542
557
562
562
960
964
965
4
4
4
5
5
5
6
8
9
10
10
10
10
10
11
11
11
20
20
21
25
25
27
27
27
27
29
29
36
38
39
39
40
42
44
45
45
46
46
46
46
47
48
48
49
49
52
52
53
57
61
61
62
62
62
63
63
63
64
64
65
67
67
67
67
69
69
69
69
79
79
79
79
80
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
85
85
85
85
85
85
88
88
102
104
104
106
125
127
129
149
151
151
153
169
173
173
193
195
195
197
204
204
204
204
204
204
204
204
204
204
204
204
206
206
206
206
206
206
207
207
207
207
207
207
208
208
208
208
209
211
211
211
217
218
218
220
221
222
222
228
228
234
239
239
239
239
240
240
250
250
252
252
257
258
262
262
265
267
268
276
276
277
277
283
283
283
286
294
294
295
295
301
305
305
306
306
307
307
315
315
319
322
323
324
324
324
325
334
334
335
335
341
341
343
345
352
352
353
353
358
363
363
363
363
365
365
381
386
386
407
410
425
430
430
449
454
454
475
477
491
496
496
514
519
519
527
528
540
543
558
563
563
961
965
966
4
5
5
5
6
6
6
7
8
9
9
10
10
11
12
12
12
18
18
21
25
25
26
27
28
28
30
33
36
36
40
40
43
43
45
45
45
46
47
47
47
48
48
49
49
50
50
51
51
51
53
54
54
57
61
61
62
62
62
63
64
64
64
65
65
65
66
68
68
69
69
69
69
70
70
74
79
79
79
79
81
81
81
81
81
81
82
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
85
85
85
85
89
89
103
105
107
128
130
150
152
154
170
172
172
174
174
194
196
196
198
201
203
204
204
204
204
205
205
205
206
206
206
206
206
206
207
207
207
207
207
207
208
208
208
208
208
208
208
208
208
212
218
220
221
221
222
223
223
235
240
240
241
241
250
252
253
253
258
263
263
265
266
268
278
278
284
287
296
296
302
305
307
307
307
308
308
315
320
323
325
325
325
326
336
336
337
344
346
354
354
359
363
364
364
365
366
366
382
387
387
408
411
426
431
431
450
455
455
476
478
492
497
497
515
520
520
528
529
541
544
559
564
564
962
966
967
5
7
7
7
10
11
12
12
13
13
20
20
21
27
27
27
27
29
29
31
38
38
39
40
40
44
45
46
46
47
49
49
50
50
51
51
51
52
54
54
54
54
54
57
57
61
62
63
64
65
65
65
65
66
66
66
67
69
69
71
71
74
74
78
78
78
78
79
79
79
79
79
79
81
82
82
82
83
83
83
83
83
83
83
83
83
83
83
85
85
85
85
85
85
85
85
85
86
90
90
104
106
108
123
127
129
129
131
131
151
153
155
171
173
173
175
194
195
197
198
199
202
203
204
205
205
205
206
206
206
207
207
207
207
207
207
208
208
208
208
208
208
212
212
213
217
218
219
221
222
222
222
222
222
223
224
224
230
236
237
241
241
242
242
250
252
253
254
254
259
264
264
265
266
268
268
269
276
277
277
277
279
279
285
285
288
292
297
297
303
305
307
308
308
308
309
309
315
321
323
324
326
326
326
334
335
335
335
337
337
338
342
343
345
347
350
355
355
360
363
365
365
365
366
367
367
383
388
388
409
412
427
432
432
451
456
456
470
477
479
493
498
498
516
521
521
528
529
530
542
545
560
565
565
963
967
968
1
4
4
5
8
8
8
8
8
11
11
12
12
13
13
14
18
18
20
21
25
25
27
28
30
32
36
36
39
41
41
45
45
45
45
46
46
46
47
47
47
47
47
48
50
50
51
51
51
51
52
52
54
55
62
62
63
64
64
64
64
65
66
66
66
70
70
71
72
74
74
78
78
78
78
78
78
79
79
79
79
80
80
81
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
87
91
91
107
109
124
128
130
130
132
132
154
156
172
174
174
176
195
196
198
199
199
199
199
200
200
202
203
204
205
206
206
206
207
207
207
207
207
207
208
208
208
208
208
208
208
209
209
209
209
209
209
212
212
212
213
214
218
218
218
218
218
220
222
222
223
223
223
223
223
224
230
237
238
242
242
243
250
250
253
254
260
265
265
269
269
270
276
276
276
277
278
278
278
280
284
285
286
289
293
298
304
305
305
308
309
309
309
322
323
324
326
326
327
327
327
334
334
334
335
336
336
336
343
343
346
348
351
356
361
363
363
366
366
366
367
384
389
389
404
408
410
413
428
433
433
452
457
457
471
475
478
480
494
499
499
517
522
522
528
529
530
531
537
541
543
546
561
566
566
964
968
969
1
1
5
5
5
5
5
6
7
8
9
9
9
9
12
13
13
13
13
14
14
14
15
20
20
20
21
21
21
21
27
27
27
29
31
33
38
38
39
40
45
45
45
46
47
47
47
47
47
48
49
52
52
53
53
55
56
57
62
62
62
64
64
66
67
67
67
71
71
72
78
78
78
78
79
79
79
79
79
80
80
80
80
81
81
81
82
82
82
82
82
82
83
83
83
83
84
84
84
88
92
92
102
106
108
108
110
110
125
129
131
131
133
133
149
153
155
155
157
157
173
175
177
196
199
200
200
200
200
201
201
201
201
201
201
201
201
201
201
202
203
204
205
206
207
207
207
207
207
207
208
208
208
208
208
208
209
209
209
209
209
209
213
214
215
219
221
223
223
224
224
224
224
224
225
238
238
238
242
242
243
243
244
251
251
252
252
252
254
261
266
266
270
270
278
279
279
279
285
287
290
293
293
297
297
299
305
306
306
307
307
307
309
310
310
323
327
327
328
328
336
337
337
337
344
347
349
351
351
355
355
357
362
364
364
365
365
365
367
367
367
385
390
390
409
411
414
429
434
434
453
458
458
476
479
481
495
500
500
518
523
523
528
529
529
530
531
542
544
547
562
567
567
965
969
970
8
8
10
10
10
10
10
12
12
12
14
14
15
15
15
15
16
18
18
21
22
22
25
25
27
27
27
27
32
34
36
36
39
45
48
48
48
49
50
52
52
53
53
54
54
54
56
57
62
67
68
72
72
72
72
73
78
78
78
78
80
80
80
80
80
81
81
81
81
83
83
83
83
85
85
85
89
93
93
103
107
109
109
111
111
130
134
134
150
154
156
156
158
158
174
176
178
199
200
201
201
201
201
201
201
201
201
202
202
202
202
202
202
202
202
202
202
203
204
204
206
208
208
208
208
209
209
209
210
214
215
220
222
222
224
224
225
225
225
225
226
239
243
243
244
244
245
253
253
253
253
257
262
267
267
268
277
279
280
280
286
288
291
298
298
300
306
308
308
308
308
311
311
324
327
327
328
328
329
335
337
338
338
345
348
350
356
356
358
363
366
366
366
366
368
368
386
391
391
410
412
415
430
435
435
454
459
459
477
480
482
496
501
501
519
524
524
528
529
530
530
531
543
545
548
563
568
568
966
970
971
4
5
5
7
9
9
11
11
11
11
11
11
12
12
13
15
15
15
15
15
15
16
16
17
23
23
27
27
27
27
27
28
28
31
33
33
35
35
38
38
39
40
45
45
46
47
47
49
50
50
50
50
50
51
51
53
53
54
54
54
54
55
62
63
64
64
67
69
71
71
71
71
71
73
73
73
74
74
78
78
78
78
78
78
79
80
80
80
81
81
81
82
82
82
83
83
83
83
84
84
84
85
85
85
90
94
94
104
108
110
110
112
112
131
135
135
151
155
157
157
159
159
177
179
199
199
199
199
199
200
201
202
202
202
202
202
202
202
202
203
203
203
203
203
203
203
203
203
203
204
205
206
208
209
209
209
209
209
209
221
223
223
223
225
226
226
240
242
244
244
245
245
254
254
258
258
258
263
265
268
278
278
287
289
292
297
299
299
307
309
309
312
312
325
326
328
330
336
336
346
349
349
351
351
355
357
357
364
367
367
369
369
387
392
411
413
416
431
436
436
455
460
478
481
483
497
502
502
520
525
528
530
531
531
544
546
549
564
569
569
967
971
972
5
6
8
10
11
12
12
12
12
12
12
13
15
16
17
18
18
23
25
28
29
29
32
34
34
36
36
36
36
38
39
45
46
47
47
48
48
51
51
51
52
54
54
55
55
56
56
56
57
62
64
64
65
65
70
71
72
72
72
74
74
74
74
74
74
78
78
78
79
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
91
95
95
109
113
113
132
136
136
156
160
160
172
176
178
178
180
180
200
200
200
200
200
201
201
201
201
201
201
201
202
202
202
202
203
203
203
203
203
203
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
205
206
209
209
209
212
222
224
224
225
227
227
228
241
242
246
246
254
259
259
264
265
266
268
268
269
283
288
290
293
297
308
309
313
313
314
323
326
329
331
341
347
352
352
355
365
367
370
370
388
393
412
414
417
432
437
437
456
459
459
461
479
482
482
484
484
498
503
503
521
526
529
531
532
545
547
550
565
570
570
968
972
973
4
5
5
9
12
13
13
13
13
14
16
17
18
18
19
23
23
29
29
30
33
35
35
37
37
38
38
38
39
39
39
39
47
47
49
49
52
52
52
52
52
53
54
54
55
55
55
56
56
57
57
64
66
66
71
71
71
73
73
74
75
75
78
79
81
81
82
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
85
85
85
85
85
85
85
85
85
92
96
96
110
114
114
133
137
137
157
161
161
173
177
179
179
181
181
201
201
201
201
201
202
202
202
202
202
202
202
202
202
202
202
202
202
202
203
203
203
203
204
204
204
204
204
204
204
204
204
204
204
205
205
205
205
205
205
205
205
212
212
212
213
223
225
226
228
228
229
238
242
242
243
247
247
254
258
259
259
259
259
260
265
265
267
267
269
269
270
280
284
289
291
291
293
294
294
297
298
309
309
314
314
315
315
315
323
324
326
326
327
330
332
338
342
348
351
353
353
355
356
366
367
371
371
389
391
391
394
413
415
415
418
418
433
438
438
457
460
462
480
485
485
499
504
504
522
524
524
527
530
532
546
548
548
551
551
566
571
571
969
973
974
5
5
6
6
9
10
13
14
14
14
15
15
15
16
16
17
18
18
18
19
20
23
24
25
25
30
34
36
36
38
38
39
40
40
47
47
49
49
49
53
54
56
56
56
56
56
57
57
57
58
62
63
64
64
66
72
74
75
76
76
78
78
79
79
79
80
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
93
95
95
97
97
111
115
115
134
138
138
158
162
162
174
178
180
180
182
182
202
202
202
202
202
202
202
202
202
202
203
203
203
203
203
203
203
203
203
203
204
204
204
204
204
204
204
205
205
205
205
205
205
205
205
206
206
206
206
206
206
206
212
213
214
224
225
226
229
229
230
230
238
243
243
244
248
248
260
260
261
266
266
268
268
270
270
270
271
280
285
285
290
293
295
295
298
299
310
315
315
316
316
323
327
327
328
331
333
338
343
343
349
351
354
354
356
357
367
372
372
390
392
395
414
419
419
434
439
439
458
461
463
481
486
486
500
505
505
523
525
528
530
547
552
552
567
572
572
970
974
975
5
5
5
10
11
12
15
15
15
15
15
16
17
20
21
23
23
24
25
25
25
25
25
30
30
31
35
39
39
41
41
48
48
49
49
49
50
53
53
54
54
54
57
57
57
57
58
58
59
61
62
62
63
63
64
66
66
66
73
74
74
74
75
76
77
77
79
79
79
79
79
79
79
79
79
80
80
80
80
81
81
81
81
82
82
83
83
83
83
83
84
84
84
94
96
96
98
112
116
116
135
139
139
159
163
163
179
183
183
199
199
204
204
204
204
204
204
204
204
204
204
204
204
204
205
205
205
205
205
205
206
206
206
206
206
206
206
207
207
207
207
207
207
207
212
213
214
215
215
218
225
230
230
231
231
231
231
242
244
244
245
249
249
259
259
261
261
267
268
269
269
272
286
286
286
286
291
296
296
297
299
300
311
315
316
316
316
316
316
316
317
324
326
328
328
328
329
332
334
344
344
344
344
350
355
355
355
357
358
368
373
373
391
393
396
415
420
420
435
440
440
459
462
464
482
487
487
501
506
506
524
526
529
532
548
553
553
568
573
573
971
975
976
5
6
6
11
12
16
16
16
17
17
17
17
18
18
18
18
20
21
21
22
23
23
23
25
25
25
29
29
29
31
32
32
36
36
40
40
41
47
47
49
51
51
52
54
54
54
55
56
56
56
57
57
57
58
58
59
59
60
60
61
61
62
63
64
64
64
64
65
65
66
71
74
74
76
78
78
78
79
79
79
79
79
79
79
80
80
80
80
80
80
80
81
81
81
81
81
81
81
82
82
82
82
82
82
82
83
83
83
83
83
85
85
85
95
97
97
99
113
117
117
136
140
140
160
164
164
180
184
184
195
199
199
200
200
204
204
204
204
204
204
205
205
205
205
205
205
205
205
207
207
207
207
207
207
207
208
210
214
216
217
219
225
225
226
229
231
231
231
231
232
232
238
243
245
245
245
250
250
253
260
268
269
269
270
270
270
273
280
280
284
286
286
287
287
292
293
297
297
298
300
300
308
312
317
317
317
317
318
326
327
330
333
335
338
338
342
344
344
345
345
351
351
356
356
356
358
358
366
369
374
374
392
394
397
416
421
421
436
441
441
460
463
465
483
488
488
502
507
507
525
527
530
532
549
554
554
569
574
574
972
976
977
5
5
5
13
13
13
15
15
17
17
17
18
21
22
22
23
23
29
30
32
32
32
32
32
36
37
41
41
41
41
49
49
49
53
54
54
55
55
55
56
56
57
57
58
58
58
58
59
59
60
60
61
61
61
62
63
64
65
65
65
66
66
66
66
66
71
74
74
74
75
76
76
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
96
98
100
114
118
118
137
141
141
161
165
165
181
185
185
196
197
198
198
198
199
199
199
199
200
200
201
201
204
204
204
204
204
206
207
207
207
208
209
211
211
215
215
217
218
220
223
226
226
227
232
232
232
233
233
242
244
246
251
251
254
254
254
254
259
261
269
271
271
271
274
278
281
281
287
288
288
293
297
298
298
299
309
309
309
309
313
316
316
318
318
318
318
327
327
328
328
331
334
336
336
339
339
345
346
346
352
355
357
357
357
367
367
367
367
370
375
375
393
395
398
417
422
422
437
442
442
461
464
466
484
489
489
503
508
508
526
528
531
550
555
555
570
575
575
973
977
978
1
5
6
6
13
14
14
14
17
17
18
18
18
18
18
19
22
23
23
23
24
24
25
25
29
29
32
33
36
36
38
41
42
42
42
47
47
47
49
52
54
56
56
56
56
57
57
57
57
57
58
59
59
60
60
61
61
61
62
62
62
63
64
64
64
65
66
66
66
66
66
66
72
74
74
74
75
75
75
75
75
75
76
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
82
83
84
84
84
85
85
85
97
99
101
115
119
119
138
142
142
162
166
166
182
186
186
193
193
193
194
194
197
197
197
197
197
197
198
198
199
199
199
200
200
200
200
201
201
202
202
207
207
207
207
207
207
207
209
210
216
216
218
219
221
224
224
228
231
231
233
233
233
243
243
245
245
247
252
252
255
255
259
259
260
269
270
270
270
270
272
272
272
275
279
279
286
286
288
294
298
298
299
299
300
300
310
310
314
317
319
319
329
329
335
337
337
337
344
344
346
353
356
356
358
358
358
358
368
368
371
376
376
394
396
399
418
423
423
438
443
443
462
465
467
485
490
490
504
509
509
527
529
532
551
556
556
571
576
576
974
978
979
1
1
5
5
5
15
15
15
15
15
18
18
19
19
19
19
20
22
23
23
24
25
25
25
26
26
33
34
39
41
41
42
43
43
43
43
43
43
49
49
49
53
54
54
56
57
58
58
58
59
60
60
60
60
61
62
62
63
63
64
65
66
66
66
66
66
67
67
73
76
76
77
77
78
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
83
84
84
84
84
84
84
84
84
84
100
102
116
120
120
139
141
141
143
143
163
165
165
167
167
183
187
187
194
194
194
195
195
197
197
197
197
197
197
198
198
198
198
198
198
198
199
199
199
199
199
199
199
199
200
200
200
200
201
201
201
201
202
202
202
202
202
202
202
202
207
207
207
208
210
211
211
215
215
215
217
217
219
220
222
229
232
234
234
243
245
246
246
248
253
253
255
258
259
260
261
269
269
269
270
271
271
271
271
273
276
287
295
298
300
300
300
301
301
310
315
316
318
320
320
327
328
328
328
330
330
336
338
345
354
356
358
359
359
359
359
368
372
377
377
395
397
400
419
424
424
439
444
444
463
466
468
486
491
491
505
510
510
528
530
533
552
557
557
572
577
577
975
979
980
5
5
6
6
6
6
16
17
17
18
19
20
20
20
20
21
23
23
24
24
25
25
26
27
27
32
34
35
36
40
41
41
41
43
43
44
44
47
47
49
49
49
49
54
57
57
59
59
59
60
61
61
62
62
63
63
64
64
64
65
66
68
68
74
74
77
78
78
78
79
79
79
80
80
80
81
81
82
82
83
83
83
83
83
83
83
83
85
85
85
85
85
85
85
85
85
95
99
101
101
103
103
117
121
121
140
142
142
144
164
166
166
168
184
188
188
195
195
195
196
196
198
198
198
198
198
198
199
199
199
199
199
200
200
200
200
200
200
200
200
200
200
200
200
201
201
201
201
202
202
202
202
202
202
203
203
203
203
203
203
203
209
211
211
211
212
215
216
216
216
220
221
223
226
230
231
231
233
235
235
243
245
246
247
247
249
254
254
255
259
261
262
271
272
272
272
272
274
277
281
286
286
288
296
298
300
301
301
301
302
302
310
316
316
316
317
321
321
327
327
327
328
329
329
329
337
339
339
344
344
346
355
356
358
359
360
360
360
360
368
373
378
378
396
398
401
420
425
425
440
445
445
467
469
487
492
492
506
511
511
529
531
534
553
558
558
573
578
578
976
980
981
5
5
5
5
7
7
11
15
15
16
17
17
18
19
19
20
21
21
21
24
25
25
25
26
27
27
29
32
32
41
41
45
45
49
49
49
49
50
50
54
58
59
60
61
63
63
64
64
65
65
66
68
69
76
76
77
79
79
79
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
83
83
83
83
83
83
83
83
96
100
102
102
104
104
118
120
120
122
122
141
143
143
145
165
167
167
169
185
189
189
196
196
196
196
196
196
197
197
197
198
198
199
199
199
199
199
199
200
200
200
200
200
200
200
200
200
200
200
200
201
201
201
201
201
201
201
201
201
201
202
203
203
204
204
204
204
204
204
210
213
216
217
217
217
221
222
226
231
231
231
232
232
236
236
243
243
246
247
250
255
255
259
260
262
270
272
273
273
275
278
281
286
286
287
287
297
298
298
301
302
302
302
315
316
317
317
318
322
322
329
330
330
330
331
338
339
340
344
344
345
345
356
356
356
359
360
361
361
374
379
379
399
402
421
426
426
441
446
446
468
470
488
493
493
507
512
512
532
532
535
554
559
559
574
579
579
977
981
982
8
8
8
17
17
17
17
18
18
18
18
18
20
20
20
22
22
25
25
26
26
27
27
27
27
28
34
34
35
41
42
42
43
43
46
46
47
51
51
54
55
55
59
59
59
59
60
60
61
62
64
64
64
64
65
65
66
66
69
74
74
74
76
77
79
79
79
79
79
80
80
81
83
83
83
84
84
84
84
84
97
101
103
103
105
105
119
121
121
123
142
144
146
166
168
170
186
190
190
197
199
199
200
200
200
200
200
200
200
200
201
201
202
202
202
202
202
202
202
202
202
202
203
203
204
204
205
205
205
205
205
205
205
211
214
215
217
218
218
221
232
233
233
237
237
244
244
245
245
245
247
251
256
256
259
260
262
262
263
271
271
276
279
288
288
298
299
299
300
300
300
302
303
303
316
318
318
319
323
323
328
330
331
331
332
336
339
341
346
346
357
357
357
358
358
358
360
362
362
375
380
380
400
403
422
427
427
442
447
447
469
471
489
494
494
508
513
513
530
532
533
533
536
555
560
560
575
580
580
978
982
983
5
9
9
15
15
18
18
19
19
19
21
21
21
21
23
23
25
25
26
27
27
27
28
28
29
32
32
35
41
43
43
43
44
44
45
45
47
47
51
52
54
54
59
60
60
61
61
61
62
63
64
66
66
67
67
69
69
70
74
75
75
75
76
76
76
76
77
77
77
77
77
78
78
79
79
79
79
80
80
80
80
80
81
81
81
83
83
83
85
85
85
85
85
102
106
106
120
122
122
124
143
145
147
167
169
171
187
191
191
197
197
200
200
201
201
202
202
202
202
202
202
202
202
202
203
203
203
203
203
203
205
205
205
205
206
210
212
215
216
216
222
226
226
229
233
234
234
238
238
246
246
246
246
252
257
257
263
263
264
277
280
281
281
284
289
289
299
301
301
301
301
304
304
309
316
317
319
319
324
324
329
329
337
339
339
340
342
342
347
347
358
359
359
359
359
363
363
376
381
381
401
404
423
428
428
443
448
448
463
470
472
490
495
495
509
514
514
531
533
534
537
556
561
561
576
581
581
979
983
984
5
9
10
20
20
20
22
22
24
24
27
27
27
28
29
29
30
34
34
35
43
44
45
45
46
46
47
47
48
52
59
59
60
61
61
61
61
62
62
62
62
63
63
64
64
67
67
68
68
68
68
68
70
71
71
74
74
74
74
74
74
75
75
75
76
77
78
78
78
78
78
78
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
81
81
81
82
82
82
82
82
86
86
103
107
107
121
123
125
146
148
170
172
188
190
190
192
192
195
195
195
197
197
197
197
198
198
201
201
202
202
202
202
202
202
202
202
203
203
205
205
205
205
206
207
211
211
213
216
223
224
227
227
230
234
235
239
239
247
247
253
258
258
264
264
272
273
276
278
279
281
282
282
285
290
300
302
302
305
305
310
310
310
310
316
317
319
319
320
320
325
337
338
340
340
341
343
343
348
359
360
360
364
364
377
382
382
396
400
402
405
424
429
429
444
449
449
464
468
471
473
491
496
496
510
515
515
529
531
533
535
538
557
562
562
577
582
980
984
985
5
5
9
11
15
20
20
21
21
23
23
23
25
25
25
25
25
26
27
27
27
27
29
30
30
31
32
32
35
43
43
45
45
47
47
47
49
52
52
53
54
54
59
59
59
59
61
61
61
62
62
63
63
63
64
64
64
64
64
64
65
68
68
68
69
69
69
71
71
71
71
71
74
74
76
76
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
80
80
80
80
80
80
80
81
81
81
81
81
81
82
82
83
83
83
87
87
104
108
108
122
124
126
141
145
147
147
149
149
165
169
171
171
173
173
189
191
191
193
193
195
195
195
195
195
196
196
196
198
198
198
198
199
199
200
200
200
201
201
201
201
203
203
205
205
205
205
206
207
208
212
214
214
217
218
225
225
230
230
234
234
235
236
240
240
247
254
254
259
259
262
273
277
279
280
280
282
285
285
289
289
291
301
302
306
306
311
311
320
320
321
321
324
324
326
331
338
338
339
342
343
343
344
347
347
349
360
360
365
365
367
378
383
383
401
403
406
425
430
430
445
450
450
469
472
474
492
497
497
511
516
516
533
534
536
539
558
563
563
578
581
581
583
981
985
986
8
8
8
8
10
12
12
15
20
20
24
24
25
26
26
26
27
27
27
27
27
28
28
31
32
34
34
35
45
45
45
46
47
48
50
51
51
51
53
54
54
59
60
61
61
62
63
64
64
65
65
65
65
65
66
68
68
68
68
69
69
70
70
71
72
74
74
74
74
74
76
76
77
77
77
78
78
78
78
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
82
83
83
84
84
84
84
84
84
84
88
88
105
109
109
125
127
142
146
148
148
150
150
166
170
172
172
174
174
190
192
192
194
194
194
194
194
194
196
196
196
196
196
197
197
197
197
197
197
197
197
197
199
199
199
199
200
200
200
200
200
201
203
203
203
205
205
205
207
208
212
213
214
215
215
218
218
235
235
236
237
241
241
247
255
255
255
255
259
260
260
278
280
283
290
290
292
302
302
307
307
311
321
321
322
325
327
331
340
343
343
345
345
348
348
350
360
361
366
366
368
368
368
379
384
384
402
404
407
426
431
431
446
451
451
470
473
475
493
498
498
512
517
517
533
535
537
540
559
564
564
579
582
584
982
986
987
5
9
11
11
11
11
12
15
15
19
20
21
23
25
25
25
26
27
27
27
27
28
29
29
32
32
32
33
34
35
43
43
45
47
49
51
51
52
54
54
54
54
54
59
60
61
61
61
61
62
63
64
65
65
65
66
66
66
66
66
66
66
67
69
69
69
69
70
70
71
72
73
74
74
75
75
75
75
75
75
77
77
77
77
77
78
78
78
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
81
81
81
81
82
82
82
82
83
83
85
85
85
85
85
85
85
89
89
106
110
110
120
124
126
126
128
128
143
147
149
149
151
151
167
171
173
173
175
175
190
191
191
191
191
192
192
193
194
195
195
195
195
195
195
197
197
197
197
197
198
198
198
198
198
198
198
198
198
198
200
200
200
200
201
203
203
213
214
215
216
216
219
227
234
236
236
237
242
242
256
256
256
259
260
261
261
262
262
273
273
279
281
282
284
289
291
291
303
308
308
311
319
323
326
328
340
341
346
346
347
349
349
362
367
367
369
369
380
385
385
403
405
408
427
432
432
447
452
452
471
474
476
494
499
499
513
518
518
536
538
541
560
565
565
580
583
585
983
987
988
1
4
4
5
8
8
12
13
18
20
20
20
21
22
22
22
22
23
24
26
26
27
28
28
28
29
29
29
30
30
30
33
34
34
34
34
35
35
35
35
45
45
45
50
51
51
52
54
55
59
61
61
61
62
62
62
63
63
63
64
65
66
66
67
68
70
70
70
70
71
71
71
72
73
74
74
74
74
75
75
75
77
77
77
77
77
77
78
79
79
79
79
79
79
79
79
80
80
80
80
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
82
83
83
86
90
90
107
111
111
121
125
127
127
129
129
148
152
152
172
176
176
191
192
192
192
192
193
193
193
193
193
193
193
193
194
195
196
196
196
196
196
196
196
196
196
196
196
198
198
198
198
198
198
198
198
198
198
198
199
199
199
199
199
199
205
214
215
216
217
217
217
218
218
220
220
227
234
238
243
243
255
256
256
256
256
257
257
259
262
262
263
263
271
274
274
280
282
282
285
289
304
309
309
316
324
327
329
331
331
340
342
347
347
347
363
368
368
368
369
369
369
369
370
381
386
386
404
406
409
428
433
433
448
453
453
472
475
475
477
477
495
500
500
514
519
519
537
539
542
561
566
566
581
584
586
984
988
989
1
1
5
5
5
5
5
5
6
13
14
15
20
20
20
21
22
22
24
25
25
25
27
27
29
29
29
30
30
31
32
32
34
35
35
36
36
43
43
45
45
49
51
51
53
53
55
56
61
61
62
62
63
63
64
64
65
66
67
67
68
68
69
71
71
71
71
71
72
72
73
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
81
81
81
81
81
81
82
82
82
83
84
84
84
87
89
89
91
91
108
112
112
122
126
128
128
130
130
149
153
153
173
177
177
192
193
193
193
194
194
194
194
194
194
194
194
195
196
197
197
197
197
197
197
197
197
197
198
198
198
198
198
198
198
199
200
200
200
200
200
200
200
205
205
205
206
215
216
216
217
218
219
219
221
221
230
234
235
239
244
244
246
257
257
258
258
260
262
263
263
264
264
264
272
272
281
283
283
285
286
286
289
290
301
305
310
310
316
317
319
319
325
328
329
330
332
332
343
343
347
348
348
348
359
364
369
369
370
370
371
382
387
387
405
407
407
410
410
429
434
434
449
454
454
473
478
478
496
501
501
515
520
520
538
540
540
543
543
562
567
567
582
585
587
985
989
990
6
6
7
7
12
14
15
20
25
25
26
30
30
30
30
30
31
31
31
32
32
34
35
35
36
37
37
45
45
45
46
50
52
52
54
54
54
56
57
61
61
63
65
65
65
66
68
68
68
69
70
71
71
72
73
73
73
73
74
74
74
74
74
74
74
74
76
76
76
77
78
78
79
79
79
79
80
80
80
80
80
80
80
80
81
81
81
81
81
83
85
85
85
88
90
90
92
109
113
113
127
131
131
150
154
154
174
178
178
194
194
194
194
194
194
195
195
195
195
195
195
195
195
195
195
195
195
196
196
196
196
196
197
198
198
198
198
198
198
199
199
199
199
199
199
199
200
200
200
200
200
200
200
205
206
207
216
217
217
217
218
219
222
222
230
235
236
240
245
245
247
247
247
247
256
256
258
258
259
262
263
264
264
282
285
287
287
290
291
302
302
302
302
306
311
311
316
320
320
326
329
330
330
331
343
344
348
349
349
349
360
360
360
360
365
369
369
370
370
371
371
383
388
388
406
411
411
430
435
435
450
455
455
474
479
479
497
502
502
516
521
521
539
544
544
563
568
568
583
586
588
986
990
991
4
5
7
7
8
8
8
11
11
20
21
22
22
25
27
27
27
29
29
29
31
31
31
31
32
32
32
35
36
36
37
37
43
43
45
45
45
45
47
51
51
53
53
54
54
55
55
63
63
63
66
69
69
69
70
71
71
72
72
72
72
73
74
74
74
74
74
75
76
77
77
78
78
78
78
79
79
79
80
80
80
80
80
80
80
81
81
81
81
81
82
82
82
89
91
91
93
110
114
114
128
132
132
151
155
155
175
179
179
192
192
193
193
193
195
195
195
195
196
196
196
196
196
196
196
196
197
197
197
197
197
198
198
199
199
199
199
199
200
200
200
200
200
200
200
200
200
200
200
200
201
205
206
207
208
208
217
218
219
223
223
234
236
237
241
246
246
248
248
257
260
263
263
264
264
265
274
283
288
288
289
291
292
303
303
307
312
312
317
319
321
321
321
327
330
332
345
347
349
350
350
350
361
361
366
370
371
371
384
389
407
412
412
431
436
436
451
456
475
480
480
498
503
503
517
522
533
540
545
545
564
569
569
584
587
589
987
991
992
4
5
6
9
9
14
14
15
20
22
22
23
23
27
28
28
28
29
30
32
32
32
32
32
32
32
32
32
32
33
36
37
37
37
37
38
45
45
45
45
46
46
52
56
56
56
56
57
61
61
61
63
66
68
70
71
72
73
73
73
73
74
74
74
74
74
75
75
76
76
76
76
76
76
76
76
76
77
77
77
78
78
78
78
78
78
78
78
78
78
80
81
81
81
81
81
81
90
92
94
111
113
113
115
115
129
133
133
152
156
156
176
180
180
191
193
193
193
193
193
194
194
194
196
196
196
196
196
196
196
197
197
197
197
198
198
198
198
198
199
199
200
201
201
201
201
201
201
201
203
207
217
219
219
224
224
225
230
235
237
237
242
247
247
248
256
258
261
265
265
266
274
280
284
285
289
289
290
292
292
303
308
310
313
313
319
320
328
331
332
333
338
343
346
348
350
350
351
351
361
367
369
371
372
372
385
390
408
413
413
432
437
437
452
455
455
457
476
481
481
499
504
504
518
523
531
533
534
541
546
546
565
570
570
585
588
590
988
992
993
4
5
5
5
10
10
11
11
15
22
24
24
29
29
29
29
29
32
32
32
32
33
33
33
33
33
34
36
37
37
38
38
39
43
47
47
53
54
54
57
57
57
63
63
63
67
69
70
71
71
72
73
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
80
80
80
80
80
80
80
80
80
81
91
93
95
112
114
114
116
130
134
134
153
157
157
177
181
181
192
192
192
192
192
194
194
194
194
194
195
195
195
195
195
196
196
196
197
197
197
197
197
197
198
198
199
199
199
199
199
199
199
199
200
201
201
204
204
208
208
219
219
220
225
225
226
234
236
243
248
248
248
256
256
257
262
263
264
264
264
264
264
266
266
267
281
285
289
290
290
291
303
309
311
311
311
314
314
320
320
321
321
332
332
334
339
347
347
349
352
352
361
368
369
369
370
373
373
386
388
388
391
409
414
414
433
438
438
453
456
458
477
482
482
500
505
505
519
521
521
524
532
534
542
547
547
566
571
571
589
591
989
993
994
5
6
6
6
11
11
14
14
15
22
22
24
30
33
33
34
34
34
34
34
35
37
37
37
37
38
38
38
39
39
39
39
39
40
47
48
54
56
56
57
58
58
61
61
62
63
63
63
63
63
68
70
71
71
73
73
73
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
79
80
80
80
80
80
80
80
80
81
81
82
82
82
82
82
82
82
94
96
113
115
115
117
131
135
135
154
158
158
178
182
182
189
189
189
190
190
191
191
193
193
193
193
193
193
193
195
195
195
195
195
195
195
196
196
196
196
196
196
198
198
198
198
199
200
201
201
201
201
201
202
209
209
219
221
226
226
227
227
235
235
237
237
244
249
249
255
256
257
258
263
263
263
263
264
265
265
265
265
268
274
274
282
282
286
290
290
291
291
292
292
310
312
312
315
315
322
322
333
335
340
340
348
348
348
350
350
353
353
368
369
369
370
371
374
374
387
389
392
410
415
415
434
439
439
454
457
459
478
483
483
501
506
506
520
522
525
532
543
548
548
567
572
572
590
592
990
994
995
5
5
5
7
11
11
12
12
15
24
24
24
25
30
31
32
32
34
34
35
35
35
35
37
37
37
38
39
39
39
40
41
43
43
48
54
54
55
57
59
59
61
62
62
63
63
63
63
63
63
64
64
64
71
71
72
73
74
74
75
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
79
79
79
79
79
79
79
79
79
79
79
80
80
80
81
81
81
81
81
82
82
89
93
95
95
97
97
114
116
118
132
136
136
155
157
157
159
159
179
183
183
190
190
190
191
191
191
191
191
191
191
191
192
192
193
193
194
194
194
194
194
194
194
194
196
196
196
196
196
196
197
197
201
201
201
202
203
204
208
208
208
210
210
219
219
222
227
227
228
228
228
228
235
237
238
238
245
250
250
256
258
259
264
265
266
266
266
266
269
272
275
275
283
283
283
283
287
290
292
292
292
293
293
311
311
312
312
312
312
313
316
316
320
321
321
321
323
323
332
332
334
336
341
341
341
341
348
349
350
351
351
354
354
369
370
371
372
375
375
388
390
393
411
416
416
435
440
440
455
458
460
479
484
484
502
507
507
521
523
526
534
544
549
549
568
573
573
591
593
991
995
996
5
6
6
8
13
13
14
14
15
22
22
24
29
31
32
32
32
34
36
36
36
37
39
39
40
40
41
42
43
48
48
49
56
56
56
57
60
60
61
61
61
62
63
64
64
65
65
65
69
69
73
73
73
73
73
74
74
74
74
74
74
74
74
75
76
77
77
77
78
78
78
78
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
81
81
82
82
82
82
82
82
82
90
94
96
96
98
98
115
117
119
133
137
137
156
158
158
160
180
184
184
191
191
191
192
192
192
192
192
192
192
192
193
193
194
194
195
195
195
195
195
195
198
198
198
201
201
203
204
204
204
204
208
209
209
209
217
220
220
223
226
228
228
228
228
229
229
235
237
238
239
239
246
251
251
256
257
259
264
265
266
267
267
267
270
273
273
281
283
283
284
284
288
290
292
293
293
293
294
294
302
312
313
313
314
317
317
320
320
320
321
322
322
322
328
330
333
333
335
337
339
341
341
342
342
348
350
350
351
352
352
355
355
369
370
371
372
376
376
389
391
394
412
417
417
436
441
441
456
459
461
480
485
485
503
508
508
522
524
527
534
545
550
550
569
574
574
585
592
594
992
996
997
5
5
5
5
5
9
11
11
14
14
14
15
24
24
24
32
33
34
34
35
35
35
37
37
37
37
38
39
39
40
41
41
42
42
43
43
47
47
47
49
50
50
54
54
56
57
57
61
61
61
62
63
64
65
65
65
66
66
71
71
74
74
74
74
74
74
74
75
75
75
75
75
76
76
77
77
77
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
81
81
81
81
81
82
82
82
82
91
95
97
97
99
99
118
120
134
138
138
157
159
159
161
181
183
183
185
185
192
192
192
192
192
192
193
193
193
193
193
193
193
193
193
193
194
194
194
194
194
195
195
196
196
196
198
198
198
198
202
204
205
207
209
210
210
210
218
218
224
229
229
229
230
230
235
235
238
239
247
252
252
256
257
259
259
260
265
265
266
268
271
284
285
285
289
290
290
293
294
294
294
303
303
303
303
312
312
313
314
314
318
322
323
323
323
329
331
331
333
336
338
342
343
343
348
348
351
351
352
356
356
369
370
372
372
372
373
377
377
390
392
395
413
418
418
437
442
442
457
460
462
481
486
486
504
509
509
523
525
528
546
551
551
570
575
586
590
593
595
993
997
998
4
5
5
6
6
6
6
10
14
14
14
15
15
15
15
15
15
22
22
24
24
24
24
32
32
34
35
36
37
38
38
38
39
39
40
40
42
43
43
44
47
48
50
50
50
50
50
56
56
56
57
57
57
57
58
61
61
61
62
62
62
63
63
64
65
66
66
66
74
74
74
74
74
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
77
77
77
77
78
78
79
79
79
79
79
79
80
80
80
80
80
80
80
80
81
81
81
81
81
82
82
82
96
100
100
113
117
119
119
121
121
135
139
139
158
160
162
182
184
184
186
190
190
190
190
190
191
191
194
194
194
194
194
194
194
194
194
195
195
195
196
196
196
198
198
198
199
199
203
205
206
208
208
209
209
210
211
211
225
228
228
230
230
230
236
236
237
237
237
239
247
248
253
253
260
260
261
267
269
272
275
283
283
285
290
291
291
292
292
292
294
295
295
304
304
313
314
317
317
319
321
323
324
324
334
337
339
341
341
343
349
349
350
350
350
352
352
357
357
360
373
373
373
374
378
378
391
393
396
414
419
419
438
443
443
458
461
463
482
487
487
505
510
510
524
526
529
547
552
552
571
574
574
576
591
594
596
994
998
999
5
5
5
5
5
6
6
7
7
11
11
11
15
16
16
16
16
24
24
24
24
25
25
34
34
34
35
35
35
37
37
37
37
39
39
39
39
39
40
41
41
43
44
44
45
47
47
50
51
54
54
57
58
58
59
61
61
61
61
62
63
63
63
64
65
66
66
66
67
68
71
73
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
78
78
78
78
78
78
78
79
79
79
79
79
80
80
80
81
81
81
81
81
82
82
82
82
82
83
83
97
101
101
114
118
120
120
122
122
136
138
138
140
140
159
161
163
183
185
185
187
189
189
191
191
191
191
191
192
192
192
192
192
192
194
194
194
194
194
194
194
194
194
195
195
195
196
196
196
196
196
199
199
204
206
207
209
209
209
210
210
220
226
229
231
231
238
238
238
238
248
248
248
249
254
254
261
261
267
268
270
273
275
284
291
293
293
293
293
296
296
304
312
314
315
318
320
322
322
333
335
338
340
342
351
351
351
351
353
358
358
361
361
361
374
374
374
379
379
392
394
397
415
420
420
439
444
444
459
462
464
483
488
488
506
511
511
525
527
530
548
553
553
572
575
577
592
595
597
995
999
1000
1
1
5
5
6
6
6
6
7
7
8
8
12
17
17
17
17
22
26
26
32
32
35
36
38
38
38
39
39
39
40
40
40
41
41
45
46
51
52
59
59
60
61
62
62
64
65
65
65
65
66
67
68
68
71
71
74
74
74
74
74
74
74
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
80
80
80
80
83
83
84
84
98
102
102
115
119
121
121
123
123
137
139
139
141
162
164
183
184
186
187
188
189
189
190
190
190
190
190
190
190
190
191
191
192
192
192
192
192
193
193
193
193
193
193
194
194
194
195
195
195
195
195
195
195
195
196
196
196
197
197
197
199
205
208
210
211
211
220
227
228
228
230
232
232
239
239
249
249
250
255
255
259
267
269
271
274
283
283
285
292
294
294
297
297
304
312
312
313
316
319
321
333
336
339
341
341
341
343
352
352
354
359
359
362
362
372
375
380
380
393
395
398
416
421
421
440
445
445
463
465
484
489
489
507
512
512
526
528
531
549
554
554
573
576
578
593
596
598
996
1000
1001
1
1
1
5
5
5
5
5
7
7
8
8
9
9
11
13
16
16
17
18
18
26
27
34
34
35
37
39
39
40
41
41
41
41
41
41
42
46
47
50
52
53
54
59
61
63
63
65
65
66
66
68
68
68
68
68
71
71
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
79
79
80
80
80
80
80
80
80
80
80
81
81
83
83
84
84
85
85
99
103
103
120
124
124
138
140
140
142
157
161
163
163
165
165
184
185
187
187
187
187
188
188
188
189
189
190
190
191
191
191
191
191
191
191
191
191
191
191
191
191
192
192
193
193
193
193
193
193
193
193
193
194
194
194
194
194
194
196
196
196
196
196
196
197
206
209
211
211
212
212
228
228
228
229
229
233
233
239
248
249
249
249
249
250
251
256
256
256
272
275
283
283
284
284
293
294
298
298
311
312
313
314
317
320
322
324
337
340
340
341
341
342
342
342
342
352
355
360
360
361
362
362
362
362
363
369
376
381
381
396
399
417
422
422
441
446
446
464
466
485
490
490
508
513
513
529
532
550
555
555
574
577
579
594
597
597
599
599
997
1001
1001
1002
4
4
5
6
8
8
8
10
10
11
14
17
17
17
17
19
22
22
27
32
32
32
34
35
37
38
39
39
40
41
41
42
42
43
43
44
44
47
47
48
50
50
54
59
59
62
64
65
65
66
68
69
74
74
74
74
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
79
79
79
79
80
81
81
81
82
84
84
85
85
86
86
100
104
104
121
125
125
139
141
143
158
162
164
164
166
166
185
188
188
188
188
189
189
189
189
189
189
189
189
189
190
190
191
191
191
192
192
192
192
192
192
192
192
192
192
192
192
192
192
193
193
193
195
195
195
195
197
197
197
197
197
197
201
207
210
211
212
213
213
229
230
230
234
234
239
250
250
251
252
256
257
257
257
259
259
267
267
273
276
285
285
294
294
299
299
312
314
315
318
321
323
324
338
343
343
343
343
352
356
361
361
363
363
364
369
370
372
372
377
382
397
400
418
423
423
442
447
447
465
467
486
491
491
509
514
514
530
533
551
556
556
575
578
580
595
600
600
998
1001
1002
1003
5
5
5
6
7
9
9
11
11
11
11
15
17
18
18
18
20
22
27
27
28
34
34
34
35
35
35
35
38
39
41
41
41
41
43
43
44
45
48
49
52
52
53
54
54
59
60
63
65
67
69
70
71
71
71
71
74
74
74
75
75
75
75
75
75
76
76
76
76
76
76
76
76
77
77
77
77
77
77
78
78
78
78
78
78
79
79
79
79
80
81
81
82
83
85
85
86
86
87
87
101
105
105
122
126
126
140
142
144
159
163
165
165
167
167
189
189
189
189
189
189
189
189
190
190
190
190
190
190
190
190
190
191
191
192
192
192
193
193
193
193
193
193
193
193
193
193
193
193
193
194
194
201
201
202
206
208
211
214
214
214
226
230
231
231
235
235
249
249
251
251
253
256
258
260
260
265
268
268
273
274
277
281
286
286
295
300
300
312
313
315
319
322
324
339
339
344
344
344
344
357
362
362
362
362
364
364
369
373
373
378
383
398
401
419
424
424
443
448
448
459
466
468
487
492
492
510
515
531
532
534
552
557
557
576
579
581
596
601
601
999
1003
1004
5
8
8
8
8
8
9
10
12
12
16
17
17
18
19
19
19
19
19
21
22
26
26
26
28
29
29
32
32
35
36
36
39
39
39
41
42
44
44
45
45
46
46
48
49
49
50
50
50
53
59
59
60
61
61
61
61
66
68
68
70
71
74
74
75
75
75
76
76
76
76
77
77
77
77
77
77
78
78
79
79
79
79
79
79
79
82
82
82
83
84
85
85
86
86
87
87
88
88
102
106
106
123
127
127
143
145
164
168
168
185
185
190
190
190
190
190
190
190
190
190
190
190
191
191
191
191
191
191
191
191
191
191
191
192
192
192
193
194
194
194
194
194
194
201
201
201
202
203
207
207
209
211
211
212
212
214
218
227
231
232
236
236
250
254
257
259
259
261
261
261
266
266
269
273
274
275
278
282
287
296
301
301
312
313
315
315
316
320
323
324
324
325
331
340
340
345
345
345
358
363
363
363
370
372
374
374
374
379
381
381
384
393
397
399
402
420
425
425
444
449
460
464
467
469
488
493
493
511
516
526
530
532
533
535
553
558
558
577
580
582
597
602
602
1000
1004
1005
5
5
9
9
9
9
11
11
13
13
17
17
17
17
19
19
20
22
26
27
29
29
29
29
29
37
37
37
41
41
41
41
41
41
43
43
45
45
45
49
50
50
51
52
52
53
54
58
58
59
59
59
60
60
61
61
61
65
65
67
67
68
68
69
69
74
74
74
74
74
74
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
78
78
79
79
79
79
79
80
80
80
83
83
83
84
85
86
86
86
86
87
87
88
88
89
103
107
107
124
128
128
138
142
144
144
146
146
165
169
169
186
186
189
189
191
191
191
191
191
192
192
192
192
192
192
192
192
192
192
193
194
194
194
195
195
197
197
197
197
197
202
203
204
208
209
210
212
212
213
219
227
227
231
231
232
233
237
237
238
249
251
255
257
257
259
260
260
274
275
275
276
279
282
282
286
286
288
293
297
302
302
303
316
316
317
321
322
324
325
325
326
332
340
340
341
344
344
346
346
346
351
359
362
364
364
364
372
373
380
382
385
398
400
403
421
426
426
445
448
448
450
465
468
470
489
494
494
512
514
514
517
531
533
533
536
554
559
559
578
581
583
598
603
603
1001
1005
1006
4
5
8
8
8
8
10
10
10
10
10
10
12
12
13
13
14
14
17
21
23
26
26
29
30
32
37
38
39
39
41
41
41
41
41
42
42
42
44
44
46
46
46
46
47
50
50
50
51
51
52
53
58
58
58
59
60
60
60
60
60
61
61
62
66
68
68
70
70
70
70
71
74
74
74
74
74
74
74
74
75
75
75
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
79
80
80
80
80
84
85
86
87
87
88
88
89
89
90
104
108
108
125
129
129
139
143
145
145
147
147
166
170
170
187
187
187
190
190
190
190
190
190
190
190
190
190
192
192
192
192
192
192
192
192
193
193
193
194
194
194
194
194
195
195
197
197
197
197
199
203
204
209
210
210
211
214
220
220
232
232
233
234
238
238
239
239
239
239
249
249
250
256
258
260
260
261
261
261
268
275
276
276
276
276
277
280
287
287
289
294
294
294
294
298
303
303
304
304
304
317
317
323
323
325
327
333
333
342
345
345
347
347
347
352
352
352
352
360
362
362
363
365
365
373
373
374
374
381
383
386
399
401
404
422
427
427
446
449
451
466
469
471
490
495
495
513
515
518
532
534
537
555
560
560
582
584
599
604
604
1002
1006
1007
5
5
5
5
6
9
11
11
11
11
11
12
14
14
15
15
15
17
18
19
19
20
22
22
24
24
30
31
32
37
37
39
41
41
41
41
42
42
43
43
43
45
45
46
47
47
47
47
48
50
51
52
52
52
53
53
58
59
60
60
60
60
60
61
61
61
61
61
62
62
63
67
68
68
69
69
71
71
71
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
78
78
78
79
79
81
84
86
87
88
88
88
88
89
90
90
91
105
107
107
109
109
126
130
130
140
144
146
146
148
148
167
171
171
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
191
191
191
191
191
191
191
191
191
191
192
192
192
192
193
193
193
194
194
194
194
195
197
210
212
215
221
221
221
221
231
233
233
234
239
239
240
240
248
249
250
251
257
259
262
262
262
268
274
276
276
276
277
277
278
281
286
288
288
295
295
299
304
304
305
305
315
326
328
334
334
334
334
343
344
346
346
348
348
353
353
361
361
362
363
364
366
366
375
375
382
384
387
400
402
405
423
428
428
447
450
452
467
470
472
491
496
496
514
516
519
533
534
534
535
538
556
561
561
583
585
600
605
605
1003
1007
1008
4
5
5
5
6
6
7
8
8
11
11
12
12
13
15
15
16
16
16
17
19
19
20
20
21
23
23
25
25
29
31
32
32
32
37
38
39
43
43
44
47
48
48
48
48
49
50
50
51
51
52
52
52
53
53
54
59
60
61
61
61
62
62
62
62
62
63
63
68
70
70
71
72
72
75
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
79
79
79
82
85
85
87
88
89
89
90
90
90
91
91
92
106
108
108
110
127
131
131
145
149
149
168
172
172
185
186
186
189
189
189
189
189
189
189
189
189
189
189
189
190
190
190
190
190
190
192
192
192
192
192
192
192
192
192
192
195
196
201
201
211
212
213
213
216
216
219
221
221
222
222
231
235
240
240
240
249
251
252
258
260
260
261
261
261
263
263
263
277
277
278
278
279
282
286
295
300
304
305
305
305
305
305
305
306
312
325
327
329
332
334
334
335
335
344
344
349
349
353
362
362
364
365
367
367
373
374
374
374
376
376
383
385
388
401
403
406
424
429
429
448
451
453
468
471
471
473
473
492
497
497
515
517
520
534
535
535
535
535
536
539
557
562
562
584
586
601
606
606
1004
1008
1009
4
4
5
5
6
7
8
8
12
12
12
13
13
14
15
15
17
17
17
19
21
21
22
24
24
26
26
26
29
29
37
37
38
39
39
39
39
39
43
44
44
45
48
49
49
49
52
52
52
52
53
53
53
53
53
54
55
60
61
62
63
63
63
63
63
68
68
69
71
71
71
71
73
73
73
73
74
74
74
74
74
74
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
78
78
78
78
79
79
79
79
79
86
88
91
91
91
92
92
93
107
109
109
111
128
132
132
146
150
150
169
173
173
183
186
187
187
187
187
190
190
190
190
190
190
190
190
190
190
190
190
190
191
191
191
191
191
191
193
193
193
193
193
193
193
193
194
194
196
197
201
201
201
202
202
204
212
212
217
217
222
223
223
227
231
232
236
240
241
241
249
250
252
259
260
260
260
261
261
262
262
262
264
268
268
276
276
278
278
280
280
282
283
283
286
287
295
301
306
306
306
306
307
312
313
315
315
321
325
328
330
335
336
336
340
344
345
345
350
350
353
362
363
363
365
368
368
373
373
373
374
375
375
375
384
386
389
402
404
404
407
407
425
430
430
449
452
454
469
474
474
493
498
498
516
518
521
535
535
535
535
535
536
536
537
537
540
540
558
563
563
578
585
587
602
607
607
1005
1009
1010
4
5
5
6
7
8
12
13
13
13
14
14
15
16
16
16
16
18
18
19
19
21
23
27
27
31
31
32
32
37
37
37
39
39
39
39
44
45
46
48
50
50
50
50
50
53
53
53
54
54
54
54
55
56
59
61
61
63
63
70
70
70
71
71
71
71
71
71
71
71
71
71
71
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
78
78
78
78
80
80
80
83
83
86
87
87
88
88
89
90
92
92
92
92
93
93
94
94
108
110
112
129
131
131
133
133
147
151
151
170
174
174
183
183
183
183
184
185
185
187
187
187
187
187
187
188
188
188
188
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
192
192
192
192
192
192
195
197
198
201
202
203
203
204
205
213
218
218
221
221
223
227
232
233
237
242
242
249
250
252
252
253
260
262
262
263
263
263
265
266
269
269
277
279
282
284
284
287
288
302
305
305
307
307
307
307
312
316
316
322
326
329
331
334
334
336
340
345
346
346
351
351
362
363
364
365
365
366
369
369
375
376
376
376
385
387
390
403
408
408
426
431
431
450
453
455
470
475
475
494
499
499
517
519
522
536
536
536
537
537
541
541
559
564
564
579
583
586
588
603
608
608
1006
1010
1011
1
4
4
5
5
7
8
8
9
9
11
11
14
15
17
17
19
19
21
21
21
24
28
28
29
29
32
37
39
44
44
45
46
47
49
49
51
51
51
54
55
55
55
55
56
56
57
60
63
63
63
68
68
70
71
71
71
71
71
73
73
73
73
74
74
75
75
75
75
76
76
76
76
76
77
77
77
77
77
78
78
78
87
88
89
89
89
90
91
93
93
94
94
95
95
109
111
113
130
132
132
134
148
152
152
171
175
175
183
183
184
184
184
184
185
185
185
186
186
187
187
187
187
187
188
188
188
188
188
188
188
189
189
189
189
189
189
192
192
192
193
193
193
193
193
193
196
198
199
201
202
203
204
204
204
205
206
212
212
214
219
219
222
231
233
234
238
243
243
253
253
254
261
261
263
263
264
264
266
267
267
276
276
278
280
285
285
286
288
289
303
306
308
308
313
315
317
317
317
325
325
327
330
332
335
344
346
347
347
352
352
365
366
366
367
370
370
374
376
377
377
386
388
391
404
409
409
427
432
432
451
454
456
471
476
476
495
500
500
518
520
523
537
537
537
542
542
560
565
565
584
587
589
604
609
609
1007
1011
1012
1
1
4
5
5
5
5
8
9
10
10
14
14
14
15
16
18
18
18
18
19
19
20
20
21
25
29
29
31
31
32
37
38
39
39
39
43
43
43
45
46
46
48
50
50
52
52
52
55
56
57
57
58
61
61
63
70
70
70
71
71
71
71
71
71
71
71
72
73
73
74
74
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
78
88
90
90
90
91
92
94
94
95
95
96
96
112
114
131
133
133
135
149
153
153
172
176
176
184
184
185
185
185
185
185
185
185
185
186
186
186
186
187
187
188
188
188
188
188
189
189
189
189
189
190
190
192
192
192
193
193
193
193
193
193
193
197
199
199
200
203
205
206
207
210
213
213
215
220
220
221
221
223
227
232
234
234
239
244
244
254
254
262
262
262
264
267
276
276
277
277
281
282
286
286
287
289
289
294
304
305
307
309
309
315
316
323
326
326
328
331
333
334
334
336
340
345
347
347
348
353
353
366
367
367
371
371
375
375
389
392
405
410
410
428
433
433
452
455
457
472
477
477
496
501
501
519
521
524
538
543
543
561
566
566
585
588
590
605
610
610
1008
1012
1013
1
4
4
5
6
9
10
11
11
11
11
15
15
15
17
19
19
20
20
21
21
21
21
21
26
29
29
30
30
32
37
39
39
40
40
43
44
46
46
46
46
46
48
49
49
50
51
51
53
53
53
53
54
55
55
57
58
58
59
63
63
63
68
68
71
72
72
73
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
82
87
91
92
92
92
92
92
93
96
96
97
97
107
111
113
113
115
115
132
134
136
150
154
154
173
175
175
177
177
183
183
185
185
186
186
186
186
186
186
186
186
186
186
187
187
188
188
188
188
188
188
188
188
188
188
189
189
189
189
189
190
190
190
190
190
190
191
191
192
193
193
193
193
193
193
193
198
200
200
201
204
204
206
207
208
211
211
216
221
221
221
221
222
222
231
233
240
245
245
252
265
268
269
278
278
282
286
287
287
288
295
295
295
295
305
305
305
306
310
316
316
317
317
324
324
329
332
334
334
334
335
335
344
346
349
354
354
365
367
372
372
390
393
406
411
411
429
434
434
456
458
473
478
478
497
502
502
522
525
535
539
544
544
562
567
586
589
591
606
611
611
1009
1013
1014
1
4
5
6
7
10
11
12
14
14
15
16
18
19
19
21
21
21
21
21
21
22
22
27
31
31
31
31
32
39
41
41
43
43
46
47
50
50
50
52
53
54
54
54
54
55
55
56
59
60
61
61
63
63
63
63
71
71
73
73
74
74
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
77
77
77
77
77
77
77
77
77
77
77
78
78
88
93
93
93
94
97
97
98
98
108
112
114
114
116
116
133
135
137
151
155
155
174
176
176
178
183
184
184
186
186
186
186
186
186
186
186
186
186
186
186
187
187
187
187
188
188
189
189
189
189
189
189
189
189
190
190
190
190
190
190
191
191
199
202
205
205
206
208
209
217
222
222
223
223
232
232
234
234
239
241
246
246
249
264
266
269
269
274
279
279
283
287
287
288
288
289
289
296
296
304
305
306
306
307
309
309
311
318
318
330
333
333
335
335
336
336
345
345
347
347
350
352
355
355
362
368
373
373
377
391
394
407
412
412
430
435
435
457
459
474
479
479
498
503
503
523
526
535
535
536
540
545
545
563
566
566
568
587
590
590
592
592
607
612
612
1013
1014
1015
7
7
9
10
11
11
12
13
13
13
15
17
17
18
18
19
21
21
21
21
22
22
22
22
23
23
28
29
29
31
32
32
32
39
39
41
47
48
51
53
53
54
55
55
55
55
55
55
55
56
56
57
57
57
57
57
60
61
63
63
63
63
64
64
68
70
71
71
71
71
73
73
73
74
74
74
74
74
74
74
75
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
79
79
89
94
94
94
94
94
95
97
97
98
98
99
99
109
113
115
115
117
117
136
138
152
154
154
156
156
175
177
177
179
184
185
185
185
185
186
187
187
187
187
187
187
187
188
188
188
188
188
188
188
188
188
188
188
188
190
190
190
190
190
190
190
190
194
200
200
203
204
204
204
206
206
209
213
218
219
223
223
224
224
232
234
235
235
240
240
240
242
247
247
249
250
252
252
264
267
270
275
280
284
287
289
289
289
290
290
296
305
307
307
308
310
312
316
317
317
317
319
319
326
331
332
336
336
337
337
345
347
348
348
351
353
353
353
356
356
362
363
365
365
369
374
374
377
386
390
392
395
408
413
413
431
436
436
458
460
475
480
480
499
504
504
524
527
535
536
537
541
546
546
564
567
569
588
593
593
608
613
613
1009
1014
1015
1016
7
10
11
13
14
14
14
15
18
19
19
19
19
20
23
23
24
24
29
31
31
31
32
32
32
32
33
33
41
41
41
46
46
48
49
50
51
52
54
54
55
55
55
55
55
56
56
57
57
57
57
57
58
58
58
58
61
61
62
65
65
68
68
71
71
71
71
71
71
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
80
80
91
91
95
96
98
98
99
99
100
100
114
118
118
131
135
137
137
139
139
153
155
155
157
175
176
178
179
180
182
182
185
186
186
186
186
186
186
188
188
188
188
188
188
188
188
188
189
189
189
189
189
189
190
191
191
191
191
191
191
191
191
194
194
195
199
200
200
200
201
204
204
205
205
205
209
213
219
220
224
224
225
232
234
235
236
236
241
241
243
248
248
249
253
253
262
266
268
271
275
275
279
279
281
285
287
289
290
290
290
291
291
296
305
306
308
308
311
313
316
316
316
317
318
318
318
326
332
333
337
337
338
345
347
348
349
349
352
354
354
357
357
362
366
366
370
375
375
391
393
396
409
414
414
432
437
437
452
459
461
476
481
481
500
505
505
519
523
525
528
537
538
542
547
547
565
568
570
589
594
594
609
614
614
1015
1016
1017
7
7
8
11
11
12
14
14
15
15
20
20
20
21
23
24
25
25
29
29
30
32
33
33
34
34
39
39
41
43
46
46
52
53
55
55
55
55
57
57
57
58
58
58
59
59
62
63
65
66
68
68
70
71
71
71
71
73
73
73
73
74
74
74
74
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
77
77
77
77
77
79
79
81
81
90
90
92
95
95
96
97
99
99
100
100
101
101
115
119
119
132
136
138
138
140
140
154
156
156
158
176
177
179
180
181
181
183
183
183
184
184
184
184
186
187
187
189
189
189
189
189
189
189
189
189
189
189
189
189
189
190
190
190
190
190
190
190
190
190
194
194
194
195
196
200
200
202
205
205
206
206
206
209
220
220
220
224
224
225
225
226
232
232
235
236
240
241
241
241
241
242
244
249
249
250
252
254
254
254
264
264
267
269
272
280
280
282
286
287
287
290
291
291
291
305
306
308
308
309
309
312
314
318
319
319
319
333
333
333
337
337
338
338
339
345
345
348
349
353
353
354
354
354
354
355
358
358
363
365
367
367
367
371
376
377
377
392
394
397
410
415
415
433
438
438
453
457
460
462
477
482
482
501
506
506
524
526
529
533
538
543
548
548
566
569
571
590
595
595
610
615
615
1016
1017
1018
7
8
8
9
9
11
13
14
14
14
15
15
15
15
16
17
19
19
21
22
22
22
22
22
24
26
26
31
34
34
35
35
41
41
41
48
48
49
53
54
55
55
56
56
57
57
57
58
58
58
58
59
59
59
60
60
60
61
61
62
63
63
64
66
71
71
71
71
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
75
75
75
75
75
76
76
76
77
77
77
78
80
80
82
93
93
96
96
96
97
98
99
99
101
101
102
102
116
120
120
133
137
139
139
141
141
155
157
159
177
180
181
181
182
182
183
184
184
184
185
185
185
185
188
188
188
188
190
190
190
190
191
191
191
191
191
191
195
196
197
201
203
204
206
206
207
207
221
225
225
226
226
227
233
233
234
234
234
236
242
242
243
245
250
250
252
253
262
265
265
267
268
270
273
279
281
281
287
288
288
289
289
289
291
292
292
309
309
310
310
313
315
317
319
320
320
334
338
338
339
339
340
346
346
347
347
347
349
354
355
355
356
359
359
365
366
372
375
377
378
378
393
395
398
411
416
416
434
439
439
458
461
463
478
483
483
502
507
507
525
527
530
534
538
539
544
549
549
567
570
572
591
596
596
611
616
616
1017
1018
1019
7
7
7
7
8
9
9
11
11
13
14
14
15
16
16
17
17
18
19
23
23
23
24
24
25
27
27
29
32
34
34
34
36
36
39
39
41
46
46
49
55
55
55
55
55
57
57
57
57
58
58
58
58
59
59
59
60
61
63
64
64
65
66
66
67
68
68
68
68
70
71
71
71
71
71
71
71
71
71
71
71
71
71
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
75
75
75
76
76
76
76
76
77
77
77
77
77
79
81
81
83
97
97
97
98
99
100
100
100
100
102
102
103
103
117
121
121
138
142
142
156
158
160
181
181
181
181
181
181
181
182
182
183
183
183
183
183
183
183
183
183
183
183
183
184
185
185
185
186
186
186
186
186
188
188
190
191
191
191
191
191
191
191
192
196
197
202
204
205
205
207
222
224
226
226
227
227
235
235
235
235
241
241
243
243
246
251
253
253
254
254
263
263
268
269
271
274
279
288
290
290
290
290
293
293
310
310
311
314
316
318
318
335
337
339
339
340
340
348
348
348
348
354
354
355
356
356
360
360
366
366
367
367
373
375
375
376
376
378
394
396
399
412
417
417
435
440
440
459
462
464
479
484
484
503
508
526
528
531
534
538
540
545
550
550
568
571
573
592
597
597
612
617
617
1018
1019
1020
7
7
8
9
13
14
15
15
17
17
18
18
19
19
23
23
23
24
24
24
24
24
25
26
26
27
27
28
28
29
33
34
34
35
35
37
41
41
41
48
48
49
55
55
56
56
57
57
58
58
58
59
59
59
60
60
60
60
61
61
64
65
65
65
65
65
66
67
68
68
71
71
71
71
71
71
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
80
82
84
89
94
98
99
100
101
101
103
103
104
104
118
122
122
139
143
143
159
161
177
177
181
181
181
181
182
182
182
182
182
182
182
183
183
183
183
183
183
184
184
184
184
184
184
184
184
184
184
184
184
185
186
186
186
186
186
186
186
186
186
187
187
187
187
188
190
191
191
191
191
191
191
191
198
203
205
208
211
223
224
228
228
236
236
242
247
252
255
255
269
269
270
272
275
275
279
280
289
291
291
294
294
308
312
315
317
324
336
337
341
341
349
349
355
356
361
361
368
368
374
376
379
395
397
397
400
400
413
418
418
436
441
460
463
465
480
485
485
504
509
527
529
532
534
538
539
541
546
551
551
569
572
574
593
598
598
613
618
618
1019
1020
1021
9
10
11
14
15
16
16
17
19
19
21
21
23
24
25
26
26
26
26
26
28
28
29
29
29
29
34
34
35
36
36
38
39
39
41
41
41
41
46
46
49
53
57
57
57
57
57
58
58
58
59
59
59
59
60
60
61
61
61
61
62
64
65
65
66
66
67
68
68
68
68
68
71
71
71
71
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
81
83
85
95
98
100
101
102
102
102
102
104
104
105
105
119
123
123
140
144
144
154
158
160
160
162
162
178
178
182
182
182
182
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
184
184
184
184
184
184
184
185
185
185
185
185
185
185
185
185
185
185
185
185
186
187
187
187
187
187
187
187
187
188
194
199
199
199
204
206
206
207
209
209
212
220
224
224
225
229
229
236
241
243
248
250
250
253
253
254
254
254
256
256
265
270
270
270
270
271
273
273
275
276
276
280
281
290
291
295
295
295
305
313
316
318
320
325
333
337
337
338
342
342
349
354
356
357
362
362
366
367
367
367
369
369
375
377
378
380
396
401
401
414
419
419
437
440
440
442
461
464
464
466
466
481
486
486
505
507
507
510
528
530
530
533
533
538
539
540
547
552
552
570
573
575
594
599
599
614
619
619
1020
1021
1022
8
10
11
11
16
17
17
20
20
20
20
22
23
23
25
25
26
26
27
29
29
30
30
34
34
35
35
36
36
36
36
37
39
41
41
41
41
42
42
48
48
49
54
57
57
58
59
59
59
59
60
60
60
61
62
62
62
62
63
65
65
65
65
66
66
67
68
68
69
71
71
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
84
86
96
99
99
101
102
103
103
104
104
104
104
105
105
106
106
120
124
124
141
145
145
155
159
161
161
163
163
179
179
183
183
183
183
184
184
184
184
184
184
184
184
184
185
185
185
185
185
185
185
185
185
185
185
185
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
187
187
188
188
188
188
188
188
188
188
194
194
194
195
200
200
200
205
207
210
210
213
213
220
225
225
226
230
230
236
241
241
242
249
251
253
253
253
254
254
255
255
255
265
268
270
270
271
271
272
277
277
279
281
282
291
291
296
296
296
296
296
305
306
308
308
317
319
320
326
326
333
338
338
339
343
343
349
354
354
355
358
363
363
366
366
366
367
368
368
368
376
378
378
381
397
402
402
415
420
420
438
441
443
462
467
467
482
487
487
506
508
511
529
534
534
534
539
540
548
553
553
574
576
595
600
600
615
620
620
1021
1022
1023
1
1
7
9
9
11
11
17
17
18
21
21
23
23
26
26
26
27
27
28
29
29
29
31
31
34
34
34
36
36
36
38
39
40
43
43
46
46
48
49
53
55
57
57
58
59
59
60
61
61
62
63
63
63
66
67
68
69
69
70
71
71
71
71
71
71
71
73
74
75
75
75
75
76
76
76
76
77
77
77
77
77
77
79
83
85
85
87
87
100
102
103
105
105
105
105
106
106
107
121
125
125
142
146
146
156
160
162
162
164
164
180
180
180
180
184
184
184
184
184
184
184
184
184
185
186
186
186
186
186
186
186
186
186
186
186
186
186
186
187
187
187
187
187
187
187
187
187
189
189
189
189
189
189
189
189
194
195
196
201
201
201
206
211
211
214
214
214
214
224
226
226
227
231
231
240
241
242
243
250
252
255
255
256
256
256
271
272
272
273
275
278
278
280
282
282
292
297
297
297
297
305
309
309
318
320
327
327
327
327
337
339
339
340
344
344
353
354
355
356
359
364
364
368
369
369
369
377
379
382
398
403
403
416
421
421
439
442
444
463
468
468
483
488
488
507
509
512
530
535
535
540
549
554
554
575
577
596
601
601
616
621
621
1022
1023
1024
1
1
1
10
10
11
17
17
18
18
19
19
19
19
22
22
26
27
27
27
28
28
29
30
30
30
30
32
32
34
39
41
43
44
48
48
48
49
49
49
49
59
59
59
59
60
62
64
64
64
67
67
67
67
68
68
68
69
70
70
71
71
71
71
72
73
73
73
73
74
74
74
74
75
75
75
77
77
77
77
77
77
77
80
84
86
86
88
88
97
97
101
101
102
102
103
104
106
106
106
106
107
107
108
122
126
126
143
147
147
161
165
165
177
186
186
186
187
187
187
187
187
187
187
187
187
187
187
187
187
187
187
188
188
188
188
188
188
188
194
195
196
197
197
202
202
202
207
207
207
212
212
212
214
214
215
215
220
225
227
227
227
232
232
241
243
244
251
253
254
256
256
257
257
265
265
270
270
272
274
279
279
279
281
293
296
297
297
297
297
298
298
298
306
308
310
310
310
319
320
320
321
325
327
327
328
328
333
338
340
340
340
345
345
354
356
357
360
365
365
367
369
370
370
378
378
378
380
383
399
404
404
417
422
422
440
443
445
464
469
469
484
489
489
508
510
513
531
536
536
538
541
550
555
555
576
578
597
602
602
617
622
622
1023
1023
1024
1025
9
9
11
11
17
17
17
19
19
19
19
23
23
23
24
26
26
28
29
31
31
33
33
34
34
35
36
36
38
39
39
40
40
42
42
44
46
46
49
50
50
57
57
59
59
59
59
60
61
63
63
65
65
65
65
68
68
68
69
69
70
70
71
71
71
71
71
71
71
71
71
71
71
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
75
75
77
77
77
81
85
87
87
89
89
102
103
103
103
104
105
107
108
108
109
123
125
125
127
127
144
148
148
162
166
166
178
179
181
181
186
186
186
186
186
186
186
186
188
189
189
189
189
189
189
189
192
196
203
203
203
205
208
208
208
213
213
215
216
216
224
226
228
233
233
235
241
242
244
252
254
255
255
257
263
266
266
271
275
280
280
280
280
282
282
290
294
298
298
299
299
299
308
309
313
318
320
321
321
322
328
329
329
337
339
341
346
346
348
354
355
357
361
366
366
368
368
376
379
379
379
381
384
400
405
405
418
423
423
441
444
446
465
470
470
485
490
490
509
511
514
532
534
537
537
539
551
556
556
570
577
579
598
603
603
618
623
623
1024
1024
1025
1026
10
10
11
17
20
24
24
25
28
28
28
29
30
32
32
32
32
34
34
34
35
36
36
37
37
39
39
41
41
43
43
44
44
45
51
51
59
59
59
59
60
60
62
64
66
66
66
67
67
67
67
68
68
68
68
68
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
75
75
75
76
76
77
77
86
90
90
104
104
104
105
106
108
109
109
110
124
126
126
128
145
147
147
149
149
163
167
167
176
176
179
179
179
179
179
179
180
181
181
181
181
181
181
181
181
181
181
182
182
186
186
186
186
187
189
189
189
189
189
189
189
189
190
193
193
197
197
203
204
204
206
206
209
214
214
214
214
216
225
225
227
227
229
234
234
236
236
236
236
241
242
244
244
245
253
255
258
264
264
270
270
272
276
280
281
281
282
283
283
291
291
291
291
295
297
297
299
299
300
300
309
309
310
310
314
318
319
319
321
323
327
327
329
338
338
340
340
342
347
347
349
349
349
349
354
355
357
357
358
362
367
367
377
377
380
382
385
401
406
406
419
424
424
442
445
447
466
471
471
486
491
491
510
512
515
533
538
538
540
552
557
557
571
575
578
580
599
604
604
619
624
624
1025
1026
1027
2
9
9
11
17
18
19
19
21
25
25
26
26
26
29
29
29
31
33
33
34
34
35
35
36
36
38
38
39
40
42
42
43
43
43
44
44
45
46
46
46
51
57
61
61
62
63
63
65
65
67
67
67
67
68
68
68
68
68
68
70
70
71
71
71
71
71
71
71
71
71
71
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
76
76
76
76
76
76
76
76
76
76
77
87
91
91
96
101
105
106
106
106
106
106
109
110
110
111
125
127
127
129
146
148
148
150
164
168
168
175
175
177
177
179
179
179
179
179
180
180
180
180
180
180
180
180
180
180
180
181
181
181
181
181
182
182
182
182
182
182
182
182
182
182
183
183
184
184
184
184
184
184
188
189
189
189
189
189
189
189
190
191
198
198
204
204
210
215
215
215
225
227
228
228
230
235
235
237
237
245
245
246
254
256
257
259
270
270
271
271
277
280
282
282
282
283
284
284
292
292
296
298
301
301
311
311
319
322
324
328
338
340
341
341
343
348
348
350
350
358
358
359
363
368
368
370
383
386
402
407
407
420
425
425
443
446
448
467
472
472
487
492
492
511
513
516
534
539
539
541
553
558
558
576
579
581
600
605
605
620
625
625
1026
1027
1028
2
3
10
10
11
17
19
19
20
20
22
26
26
28
28
29
30
32
35
35
36
36
36
36
38
41
43
44
45
45
46
46
46
46
46
46
51
51
54
54
55
55
61
62
64
66
67
68
68
68
68
68
68
68
68
69
70
70
70
70
70
70
71
71
71
71
71
73
73
73
74
74
74
74
74
75
75
75
75
75
75
75
75
75
77
77
77
77
77
77
77
77
77
77
77
88
92
92
102
104
107
107
107
108
110
110
111
111
112
112
126
128
130
147
149
149
151
165
169
169
176
176
177
177
177
177
178
178
180
180
180
180
180
181
181
181
181
181
181
181
181
181
182
182
182
182
182
182
182
182
182
183
183
183
183
183
183
183
183
183
183
184
184
184
184
185
185
185
185
189
191
192
193
197
197
197
199
199
208
211
214
214
216
216
216
225
227
228
229
229
231
236
236
237
246
246
255
257
257
260
266
272
272
278
280
280
283
283
283
284
292
297
297
299
302
302
309
310
310
310
312
312
320
321
323
325
327
327
329
338
340
341
342
342
344
349
349
350
359
359
364
369
369
370
379
384
387
403
408
408
421
426
426
444
447
449
468
473
473
488
493
493
512
514
517
535
538
540
540
541
554
559
559
577
580
582
601
606
606
621
626
626
1027
1028
1029
3
4
9
9
10
11
19
21
21
23
26
26
27
27
27
27
29
31
31
32
32
33
36
36
37
37
38
38
38
42
43
43
46
46
46
46
46
47
51
52
54
54
54
55
55
55
55
55
56
56
57
57
62
65
67
68
68
68
69
69
69
69
70
70
71
71
71
71
71
71
71
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
77
77
77
77
77
77
77
77
89
93
93
103
105
108
108
108
108
108
109
111
111
111
111
112
112
113
113
127
129
131
148
150
152
166
170
170
175
175
177
177
178
178
178
178
179
179
179
179
180
180
181
181
181
181
181
182
182
182
182
182
182
182
182
182
182
182
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
184
184
184
184
184
186
186
186
186
190
193
193
193
193
197
198
198
198
208
212
214
214
215
215
217
217
225
225
228
229
232
237
237
237
244
258
261
266
268
273
273
279
281
281
282
282
282
284
284
284
292
297
297
298
298
303
303
309
309
309
310
311
311
311
321
321
324
326
327
327
328
328
338
338
341
342
345
350
350
350
357
365
370
370
379
385
388
404
409
409
422
427
427
448
450
469
474
474
489
494
494
515
518
534
536
539
541
541
555
560
560
578
581
583
602
607
607
622
627
627
1028
1029
1030
4
5
5
10
10
10
11
11
11
11
19
19
21
24
28
28
28
28
29
32
33
33
33
34
36
36
38
38
38
43
47
47
47
48
51
51
52
53
53
53
53
54
55
55
55
55
56
56
56
57
57
57
60
62
62
63
65
66
67
69
70
70
70
70
70
71
71
71
71
71
71
72
72
73
73
73
73
73
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
90
94
94
105
105
106
109
110
112
112
112
112
113
113
114
114
130
132
149
151
153
167
171
171
176
176
178
178
178
179
179
179
179
180
180
181
181
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
183
183
183
183
184
184
184
184
184
184
184
184
185
185
187
187
187
187
191
194
194
198
199
199
199
213
216
216
218
218
226
226
227
227
227
229
233
238
238
241
257
257
259
262
269
274
280
283
283
283
283
285
285
296
297
298
299
299
304
304
311
312
312
312
322
325
325
327
327
329
329
339
339
340
340
340
342
346
351
351
354
366
370
370
371
371
380
384
386
389
405
410
410
423
428
428
449
451
470
475
475
490
495
495
516
519
537
538
540
542
542
556
561
561
579
582
582
584
584
603
608
608
623
628
628
1029
1030
1031
4
5
5
5
6
6
9
9
11
12
12
21
21
21
25
26
26
27
27
28
29
29
29
34
34
34
35
38
38
38
39
39
44
46
46
48
48
48
49
51
51
51
53
53
55
56
57
57
57
57
58
58
58
61
61
61
63
64
64
66
67
67
67
68
68
70
71
71
71
71
71
71
71
71
71
72
72
73
73
73
73
73
73
73
73
73
76
77
77
77
77
77
77
77
77
91
95
95
104
104
106
109
109
110
111
113
113
114
114
115
115
125
129
131
131
133
133
152
154
168
172
172
177
177
178
180
180
180
180
181
181
182
182
182
182
183
183
183
183
183
183
184
184
184
184
185
185
185
185
185
185
186
186
186
192
195
195
195
196
197
199
200
200
208
208
212
214
217
217
219
219
228
228
228
228
234
239
239
241
242
244
244
255
258
258
260
263
269
269
273
273
275
281
284
284
286
286
297
299
300
300
305
305
310
312
313
313
321
321
323
325
328
328
330
330
341
341
341
341
347
352
352
354
355
357
357
367
368
371
371
372
372
385
387
390
406
411
411
424
429
429
450
452
471
476
476
491
496
496
517
520
538
539
539
541
541
543
543
557
562
562
580
585
585
604
609
609
624
629
629
1030
1031
1032
5
6
6
7
7
13
13
19
19
21
26
26
28
28
28
28
28
29
29
29
29
30
31
35
36
36
36
36
36
36
36
38
40
40
43
45
46
46
49
49
51
57
57
57
58
58
58
61
62
64
64
64
64
64
67
67
67
68
68
68
69
70
70
70
71
71
71
71
71
71
71
71
71
71
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
76
77
77
77
77
77
78
92
96
96
107
107
110
110
110
111
112
113
113
115
115
116
116
126
130
132
132
134
134
147
151
153
153
155
155
169
173
173
177
178
178
178
178
182
182
183
183
183
183
184
184
184
184
184
184
184
184
184
184
184
184
184
186
186
187
187
187
191
193
196
196
196
197
198
198
206
209
209
213
215
218
220
220
229
229
235
240
240
241
245
245
255
256
256
259
261
264
274
274
276
282
284
287
287
291
297
298
300
301
306
306
311
311
319
322
322
324
326
329
329
331
342
342
348
353
353
354
358
358
368
369
369
373
386
388
391
407
412
412
425
430
430
444
451
453
472
477
477
492
497
497
512
516
518
521
539
539
539
541
541
542
542
544
544
558
563
563
581
586
586
605
610
610
625
630
1031
1032
1033
1
4
5
5
5
6
7
7
7
8
8
9
13
21
21
21
26
26
27
29
29
29
30
30
31
32
37
37
37
38
38
38
41
41
46
48
48
49
50
50
51
52
53
53
58
61
61
64
65
67
67
68
68
68
68
69
69
69
69
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
77
78
78
79
93
97
97
111
111
111
112
113
114
114
114
114
116
116
117
117
127
131
133
133
135
135
148
152
154
154
156
156
170
172
172
174
174
175
177
177
178
179
179
179
179
179
179
179
179
179
179
183
183
183
183
184
184
184
184
184
184
185
185
185
185
185
185
186
186
186
187
187
187
187
188
192
192
194
197
197
197
198
207
207
213
213
216
217
217
219
221
221
229
236
241
241
242
244
246
246
246
260
262
264
265
273
275
275
283
284
288
288
292
292
292
292
297
298
300
300
301
302
307
320
320
325
326
326
330
330
330
330
332
342
349
354
354
355
357
359
359
359
369
374
377
387
389
392
408
413
413
426
431
431
445
449
452
454
473
478
478
493
498
498
517
519
522
540
542
542
543
543
545
545
559
564
582
587
587
606
611
611
626
631
1032
1033
1034
1
1
5
5
7
8
8
8
9
9
9
13
13
19
19
21
21
21
21
28
30
31
31
32
33
36
36
38
38
38
38
38
38
38
38
38
41
41
42
42
46
46
47
49
51
51
51
53
53
54
54
65
66
67
68
68
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
76
76
76
76
78
79
79
80
94
98
98
103
108
111
111
112
113
114
115
115
116
116
117
117
118
118
132
136
136
149
153
155
155
157
157
171
173
173
175
176
177
177
177
177
177
177
178
178
179
179
179
179
179
180
180
180
180
180
180
180
180
180
180
180
180
182
182
183
183
183
183
183
183
185
185
187
187
187
187
188
189
193
195
198
198
198
199
200
217
218
218
220
222
222
229
236
237
242
242
244
245
258
261
263
265
266
273
284
289
289
293
293
301
301
302
303
306
306
308
313
326
331
331
331
331
333
342
349
350
355
355
357
358
370
371
372
372
375
378
388
390
393
409
414
414
427
432
432
450
453
455
474
479
479
494
499
499
518
520
523
541
543
543
546
546
560
563
563
565
583
588
588
607
612
612
627
629
629
632
1033
1034
1035
4
4
5
5
5
8
9
9
9
9
9
9
10
10
13
14
21
21
21
21
22
22
26
29
31
31
33
35
35
38
38
38
38
39
39
39
42
42
43
43
48
48
48
49
50
50
52
52
53
55
55
64
66
67
67
67
67
67
68
68
68
68
68
68
68
68
68
69
69
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
75
75
75
75
75
75
75
76
77
77
77
77
78
79
80
81
95
97
97
99
99
109
112
114
115
116
116
117
117
118
118
119
119
133
137
137
154
158
158
172
174
174
174
174
175
175
175
175
175
175
175
175
176
177
178
178
178
178
178
178
179
179
180
180
180
180
180
180
180
180
181
181
181
181
181
181
181
181
181
181
182
184
185
185
185
185
188
189
194
196
199
199
199
200
200
209
217
218
219
219
223
223
237
237
237
238
243
243
245
245
246
246
258
262
264
266
266
267
269
273
274
285
290
290
293
302
302
304
307
309
313
322
327
330
332
332
332
332
350
350
350
351
356
356
358
358
359
359
371
371
373
376
379
379
389
391
391
394
394
410
415
415
428
433
433
451
454
456
475
480
480
495
500
500
519
521
524
539
539
542
547
547
561
564
566
584
589
589
608
613
613
628
630
633
1034
1035
1036
4
5
6
8
9
10
10
10
11
11
11
13
13
14
15
15
15
15
19
23
23
26
31
31
32
34
34
34
36
36
39
39
40
40
40
43
43
44
44
46
46
49
49
51
51
53
53
53
55
61
64
64
67
67
68
68
68
68
68
68
69
69
69
69
70
70
71
71
71
71
71
71
71
71
71
71
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
75
75
75
75
76
76
76
77
77
77
79
79
80
80
81
82
96
98
98
100
110
113
113
115
116
117
117
118
118
119
119
120
120
134
138
138
155
159
159
172
173
173
173
173
173
175
175
175
176
176
176
176
176
176
176
176
176
176
176
176
176
177
178
178
178
178
179
179
179
179
179
179
180
180
180
180
181
181
181
181
182
182
182
182
182
182
182
182
182
182
182
185
185
185
185
195
197
199
200
200
201
209
217
219
224
224
238
238
239
244
244
247
247
263
265
267
267
267
267
268
269
274
275
283
286
291
291
293
300
305
308
310
322
328
330
333
333
351
351
352
357
357
360
360
372
374
377
380
380
380
380
390
395
395
411
416
416
429
434
434
452
455
457
476
481
481
496
501
501
520
522
525
540
540
541
541
541
543
548
548
562
565
567
585
590
590
609
614
614
629
631
634
1035
1036
1037
4
5
6
7
9
9
9
10
10
11
11
11
12
12
12
13
13
13
15
15
23
24
26
26
27
31
31
32
33
33
35
35
37
37
40
40
40
40
41
41
43
43
45
45
48
48
49
50
52
52
54
55
55
55
66
66
67
67
68
68
71
71
71
71
71
71
72
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
76
76
76
77
77
77
77
80
81
82
83
97
99
99
101
110
114
115
116
117
117
117
118
118
119
119
120
120
121
121
135
139
139
156
160
160
173
174
174
174
174
174
176
176
176
177
177
177
177
177
177
177
177
177
177
177
177
177
178
178
179
179
180
180
180
180
180
180
180
180
180
180
180
180
180
180
180
182
182
182
182
182
186
196
198
198
200
200
200
201
201
201
213
217
218
220
225
225
228
237
238
238
238
238
239
240
245
245
245
246
246
246
248
248
258
258
264
265
266
266
267
267
268
268
269
269
273
275
276
284
284
284
284
287
292
292
297
306
309
311
313
313
326
329
330
331
334
334
341
350
351
351
351
351
352
353
358
358
358
359
359
359
361
361
371
371
373
375
378
378
380
380
381
381
391
396
396
412
417
417
430
435
435
453
456
456
458
458
477
482
482
497
502
502
521
523
523
526
526
542
542
542
544
549
549
563
566
568
586
591
591
610
615
615
630
632
635
1036
1037
1038
5
7
8
10
11
12
13
13
13
13
19
19
24
28
31
31
32
32
33
33
33
33
34
34
36
36
36
36
41
41
41
41
42
44
44
44
44
46
46
46
46
48
49
51
53
53
53
55
55
64
64
67
68
68
71
71
71
71
71
71
72
72
73
73
73
73
73
73
73
73
73
73
74
74
74
75
75
75
75
75
76
76
77
77
77
78
78
81
81
82
82
83
84
98
100
102
115
116
117
118
120
120
121
121
122
122
136
140
140
157
161
161
174
175
175
175
175
177
177
177
177
177
178
178
178
178
178
178
178
178
178
178
178
178
178
179
179
180
180
180
180
181
181
181
181
181
182
182
182
186
186
186
187
197
198
201
201
202
202
213
218
219
221
226
226
229
229
229
229
239
239
240
241
245
245
245
246
246
246
247
247
247
256
259
259
265
268
269
269
269
270
270
274
276
276
285
285
288
293
293
297
298
300
300
307
310
311
312
314
314
326
330
331
332
335
335
342
342
342
342
352
352
353
354
358
358
358
359
359
359
360
360
360
369
372
372
374
376
379
381
382
382
392
397
397
413
418
418
431
436
436
454
459
459
478
483
483
498
503
503
522
527
527
542
543
543
545
550
550
564
567
569
587
592
592
611
616
616
631
633
636
1037
1038
1039
4
5
5
9
11
11
12
12
13
13
14
14
14
14
15
15
19
24
24
25
26
29
31
31
31
33
33
33
33
35
35
36
37
37
38
41
41
42
42
43
45
45
47
47
48
48
48
49
49
49
49
52
54
54
55
55
55
55
56
66
66
67
67
67
67
67
67
67
68
68
68
68
68
68
69
70
71
71
71
71
71
71
71
72
72
73
73
73
73
73
73
73
74
74
74
74
74
74
75
75
75
75
77
77
77
77
77
79
79
79
82
83
83
84
84
85
99
101
103
116
116
116
117
118
119
119
119
119
119
119
119
121
121
122
122
123
123
137
141
141
158
162
162
174
174
175
176
176
176
176
176
176
176
176
178
178
178
178
178
179
179
179
179
179
180
180
180
181
181
181
182
182
182
182
182
182
182
182
182
182
182
186
187
188
198
199
199
203
203
217
219
220
222
227
227
230
230
238
238
240
240
242
247
247
248
248
248
257
257
266
267
267
269
271
271
273
275
285
289
294
294
297
301
301
308
311
312
312
313
330
331
332
333
336
336
343
343
351
351
353
353
355
360
360
360
361
361
361
370
370
375
377
380
380
380
382
393
398
398
414
419
419
432
437
437
455
460
460
479
484
484
499
504
523
528
528
543
543
546
551
551
565
568
570
588
593
593
612
617
617
632
634
637
1038
1039
1040
5
5
7
10
12
13
13
13
14
14
15
15
15
15
15
16
16
19
23
23
23
25
26
26
31
34
36
38
38
39
40
40
40
42
42
43
43
44
46
46
46
46
46
46
48
48
49
50
50
53
53
54
54
54
55
55
55
55
55
55
55
55
55
56
57
64
64
67
67
67
67
69
69
69
70
70
71
71
71
71
71
71
71
71
71
71
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
75
75
76
78
78
78
80
80
80
84
85
85
86
102
104
111
111
116
116
116
117
117
117
117
117
118
119
119
119
119
119
120
120
120
120
120
122
122
123
123
124
124
138
142
142
159
163
163
173
174
174
175
175
176
177
177
177
177
177
177
178
178
178
178
179
179
179
179
179
179
179
180
181
181
182
182
182
182
182
183
183
183
183
183
186
187
188
189
189
190
199
204
204
207
213
218
220
220
223
228
228
230
239
243
246
248
248
249
249
267
268
272
272
274
274
276
276
285
290
295
295
298
300
302
302
302
309
312
314
320
326
331
332
333
333
337
337
343
352
356
359
361
361
361
362
362
376
378
381
381
394
399
399
415
420
420
433
438
456
461
461
480
485
485
500
505
524
529
529
547
552
552
566
569
571
589
594
594
613
618
618
633
635
638
1039
1040
1041
5
5
7
11
14
15
15
15
16
16
16
17
17
23
24
26
26
26
26
26
31
32
33
33
35
39
39
40
40
41
43
43
43
43
43
43
43
45
47
47
48
48
49
49
50
51
51
54
54
54
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
57
58
58
58
66
66
67
67
67
67
67
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
76
77
77
79
79
79
79
81
81
81
81
82
85
86
86
87
97
101
103
103
105
105
112
112
117
117
119
119
119
119
119
119
119
120
120
120
121
121
121
121
121
123
123
124
124
125
139
141
141
143
143
160
164
164
174
175
175
175
175
175
175
176
176
177
178
178
178
178
178
178
178
178
178
178
179
179
179
179
179
179
180
180
180
180
180
181
181
181
181
182
183
184
188
191
192
192
200
201
205
205
208
217
219
224
229
229
230
238
240
244
246
246
247
247
249
259
267
267
268
269
273
273
274
276
277
277
291
292
296
296
300
301
310
313
314
315
321
330
332
333
338
338
343
351
353
357
360
360
362
362
372
377
379
380
380
382
382
395
400
400
416
421
421
434
437
437
439
457
462
462
481
486
486
501
503
503
506
525
530
530
548
553
553
567
570
572
590
595
595
614
619
619
634
636
639
1040
1041
1042
5
5
5
7
7
11
12
12
15
15
15
16
16
17
17
17
17
23
23
26
27
31
33
33
34
34
36
40
40
40
40
43
44
44
46
46
49
49
50
50
51
51
53
55
55
55
56
56
57
57
57
57
57
57
57
57
57
58
59
59
64
64
66
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
73
73
73
73
73
73
73
74
74
74
74
75
78
80
81
82
82
82
82
83
87
88
98
102
104
104
106
106
112
112
115
118
118
118
120
120
120
121
121
121
122
122
122
122
122
124
124
125
125
126
140
142
142
144
161
165
165
172
172
173
173
173
173
173
173
173
173
173
173
173
173
175
175
175
176
176
176
176
176
176
177
177
177
177
178
178
178
178
178
178
179
179
179
179
179
179
180
180
180
180
181
181
181
181
181
182
183
183
183
183
185
185
189
189
192
193
193
201
201
206
206
209
209
218
218
220
220
225
230
230
238
238
239
245
247
250
259
267
267
268
268
269
274
274
274
276
277
278
278
292
293
293
293
297
297
301
301
302
302
314
314
316
322
322
331
331
333
333
334
339
339
351
351
352
358
363
363
372
380
380
380
381
381
383
396
401
401
417
422
422
435
438
440
458
463
463
482
487
487
502
504
507
526
531
531
549
554
554
571
573
591
596
596
615
620
620
637
640
1041
1042
1043
1
5
5
7
12
13
13
17
17
17
17
18
18
18
27
28
33
35
35
37
41
41
41
41
44
45
45
45
46
46
46
47
50
50
51
51
51
51
52
56
57
57
57
58
58
58
58
58
58
60
60
66
66
66
67
67
67
67
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
73
73
73
73
73
73
73
73
75
79
82
83
83
83
83
84
88
89
99
103
105
105
107
107
110
115
116
116
118
118
119
119
121
121
121
121
122
122
122
123
123
123
125
126
126
127
141
143
143
145
162
166
166
171
171
171
171
173
173
174
174
174
174
174
174
174
174
174
174
174
174
174
174
174
174
175
175
175
175
175
175
176
176
176
176
177
177
177
177
177
177
177
177
180
180
180
180
180
180
181
181
181
181
181
182
183
183
183
183
184
190
190
193
194
194
202
207
207
210
210
210
210
218
220
221
221
226
231
231
237
238
239
240
246
248
249
251
269
269
270
274
274
275
275
277
278
284
293
294
294
298
298
303
303
315
317
323
323
323
323
331
333
334
334
335
340
340
350
351
352
353
359
362
364
364
381
382
382
384
397
402
402
418
423
423
436
439
441
459
464
464
483
488
488
503
505
508
527
532
532
550
555
555
572
574
592
597
597
616
621
621
638
641
1042
1043
1044
1
1
5
5
7
13
14
14
15
15
17
18
19
19
19
26
28
29
33
33
35
38
42
42
43
45
46
46
46
46
47
47
47
48
51
52
52
52
53
53
57
58
58
58
61
61
64
64
67
67
67
68
68
68
68
68
68
69
69
71
71
73
73
73
73
73
74
74
74
74
74
74
74
74
74
75
75
75
79
80
83
84
84
84
85
85
86
86
89
90
104
108
108
111
116
118
118
118
119
119
119
120
120
122
122
122
122
123
124
124
124
126
127
127
128
142
144
146
163
165
165
167
167
172
172
172
172
174
174
175
175
175
175
175
175
175
175
175
175
175
175
175
175
175
175
176
176
176
176
176
176
177
177
178
178
178
178
178
178
180
184
185
185
189
189
189
191
191
194
195
195
201
201
203
208
208
208
210
210
211
211
218
220
221
222
222
227
232
232
238
240
241
247
249
249
252
265
270
270
271
275
275
276
276
276
276
276
278
285
285
285
285
293
294
294
294
294
294
295
299
299
301
302
302
302
304
304
314
314
316
318
321
323
323
324
324
331
333
334
335
335
336
341
341
351
353
354
360
362
365
365
378
382
383
383
385
398
403
403
419
424
424
437
440
442
460
465
465
484
489
489
504
506
509
528
533
533
551
556
556
573
575
593
598
598
617
622
622
639
642
1043
1044
1045
5
5
5
7
15
15
15
16
16
17
17
17
19
20
20
20
23
26
26
35
35
35
39
40
43
43
43
43
48
48
48
49
51
51
52
53
53
53
53
53
53
53
58
58
58
59
62
62
67
67
68
68
69
69
70
70
71
71
71
71
71
71
71
71
73
73
73
73
73
73
73
73
73
74
74
75
75
80
81
85
85
85
86
87
90
91
105
109
109
111
113
113
114
114
117
117
119
119
119
119
119
120
120
120
121
121
123
123
124
125
125
125
125
127
128
128
128
128
129
143
145
147
164
166
166
168
173
173
173
173
175
175
175
175
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
177
177
177
177
177
177
178
178
178
180
183
183
185
185
185
185
186
189
190
190
190
195
196
196
199
202
202
204
209
209
211
212
212
218
218
221
222
228
233
233
238
239
241
248
250
253
266
271
272
277
277
277
277
277
277
286
286
295
295
295
296
300
301
301
301
302
303
303
303
310
312
315
315
317
319
324
325
325
331
331
334
335
337
342
342
351
352
354
361
366
377
379
381
383
384
386
399
404
404
420
425
425
438
441
443
461
466
466
485
490
490
505
507
510
529
534
534
552
557
567
574
576
594
599
599
618
623
634
638
640
643
1044
1045
1046
5
5
5
6
7
7
7
15
15
16
16
17
17
17
17
17
20
21
21
21
28
28
29
33
33
35
40
40
44
44
45
45
45
46
46
49
50
50
50
50
50
51
51
51
53
53
53
54
54
57
57
57
59
59
60
60
63
63
64
67
67
67
67
68
68
68
68
68
69
69
69
69
71
71
71
71
71
71
71
71
72
72
72
72
73
73
73
73
73
73
75
75
75
81
82
86
86
86
87
87
88
88
90
91
91
92
106
110
110
111
111
114
114
115
115
117
117
117
117
119
119
119
119
119
119
120
120
120
120
121
121
121
122
122
124
124
125
126
128
128
129
129
129
129
130
130
146
148
165
167
167
169
172
172
174
174
174
174
174
174
174
174
176
176
176
176
176
177
177
177
177
178
178
178
178
178
178
178
180
180
181
181
184
186
187
190
191
191
191
195
197
197
200
200
205
210
210
210
210
212
219
219
220
220
220
222
229
229
234
234
238
239
241
241
242
249
249
249
251
254
257
266
266
270
270
272
273
278
278
278
278
286
294
294
296
296
296
299
299
301
303
304
304
304
311
313
313
315
318
320
323
323
325
332
332
333
333
333
335
338
342
343
343
351
352
354
354
355
362
362
362
367
370
379
379
382
383
383
384
385
387
400
405
405
421
426
426
439
442
444
462
467
467
486
491
491
506
508
511
530
535
535
542
553
556
556
558
568
572
575
577
595
600
600
619
624
639
641
644
1045
1046
1047
5
5
7
8
8
17
17
17
17
17
17
17
18
18
18
18
20
20
20
21
21
22
22
22
26
26
29
35
35
35
41
43
43
43
43
45
45
46
46
51
51
51
51
55
55
57
58
60
60
60
60
60
60
64
64
64
64
67
67
67
67
68
68
68
68
68
69
69
69
69
69
69
69
70
70
71
71
71
71
71
71
71
72
72
72
72
73
73
73
73
73
73
73
73
73
74
74
75
83
83
83
87
87
87
91
92
92
93
107
111
111
112
112
112
112
117
117
118
118
118
118
118
120
120
121
121
121
121
122
122
122
122
123
123
125
125
126
127
129
129
130
130
130
130
131
131
141
145
147
147
149
149
165
166
168
169
170
171
172
172
173
173
176
176
176
176
176
176
176
177
177
177
177
177
178
178
180
180
181
181
181
181
185
187
188
189
191
192
192
197
197
206
211
211
211
221
221
221
221
230
230
230
230
235
235
242
242
243
247
250
250
250
252
255
258
271
271
273
274
278
279
279
286
295
297
300
302
302
304
305
305
316
319
321
324
334
334
334
334
339
343
343
343
344
344
355
355
356
360
363
363
363
365
365
368
371
383
384
384
385
386
388
401
406
406
422
427
427
440
443
445
463
468
468
487
492
492
507
509
512
531
536
536
543
543
543
554
557
559
573
576
578
596
601
601
620
622
622
625
640
642
645
1046
1047
1048
9
9
15
18
19
19
21
21
21
22
22
23
23
28
28
29
33
33
35
42
44
44
45
45
46
46
47
51
52
52
52
52
52
52
53
53
55
55
56
56
57
57
60
61
61
64
64
65
65
67
67
67
67
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
73
73
74
74
74
74
75
83
84
84
84
88
88
88
88
89
92
93
93
94
108
112
112
112
113
116
118
118
119
121
121
122
122
122
122
122
123
123
123
123
124
124
124
126
126
127
127
128
130
130
131
131
131
131
132
132
142
146
148
148
150
150
166
167
169
170
171
171
172
172
172
173
173
173
173
173
174
174
174
174
174
174
176
176
176
176
177
177
177
177
177
177
177
178
178
178
178
178
178
178
181
181
186
188
189
190
190
202
207
210
210
212
212
212
222
222
231
231
231
236
236
243
243
248
248
251
253
256
259
259
270
272
272
275
278
280
280
294
296
298
301
303
303
303
315
317
320
322
323
323
325
335
335
340
344
344
345
345
356
356
361
361
364
366
369
372
372
383
384
385
385
386
389
402
407
407
423
428
428
441
444
446
464
469
469
488
493
493
508
510
513
532
537
537
543
544
544
555
558
560
574
577
579
597
602
602
621
623
626
641
643
646
1047
1048
1049
5
9
13
14
18
19
19
19
20
22
22
22
23
23
24
24
26
26
29
35
35
35
43
43
43
45
45
46
47
49
49
51
53
53
53
54
54
54
55
56
56
57
57
61
62
62
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
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
73
85
85
85
88
89
89
89
89
90
92
93
94
95
109
110
113
113
113
113
113
114
114
114
114
114
116
116
118
118
118
118
118
119
120
122
122
122
122
122
122
123
124
124
124
124
127
127
128
128
129
132
132
132
132
133
133
143
147
149
149
151
151
167
170
170
170
171
171
171
171
171
171
171
171
171
171
171
172
172
172
172
173
173
173
173
174
174
174
174
174
174
174
174
174
175
175
175
175
175
175
175
175
176
176
176
176
178
178
178
178
178
178
178
179
179
179
181
187
190
202
208
210
210
211
211
213
213
222
230
231
231
231
231
232
232
237
237
241
254
257
260
260
260
260
270
276
281
281
294
294
295
299
302
304
315
318
321
323
323
323
324
324
335
341
343
344
344
344
344
345
346
346
354
365
367
370
373
373
373
373
383
385
387
390
403
408
408
424
429
429
445
447
465
470
470
489
494
494
511
514
533
538
538
544
544
556
559
561
575
578
580
598
603
603
622
624
627
642
644
647
1048
1049
1050
5
9
9
15
15
19
20
20
20
22
23
23
24
25
25
28
28
29
33
33
35
35
35
35
44
45
45
46
46
48
48
48
50
53
53
53
54
54
54
54
55
55
55
55
55
55
56
57
57
58
58
60
62
63
63
67
67
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
73
73
73
73
73
73
86
89
90
90
90
90
91
93
93
94
94
95
96
110
111
111
111
111
114
114
114
114
115
115
115
115
116
117
117
118
118
118
118
118
118
119
120
121
121
122
122
123
123
123
123
123
123
124
128
128
129
129
130
133
133
133
133
134
134
148
152
152
169
169
169
169
171
171
171
172
172
172
172
172
172
172
172
172
172
172
172
172
172
172
173
173
173
173
173
173
173
173
174
174
174
174
174
175
175
175
175
175
175
175
175
175
175
176
176
176
176
179
179
179
179
179
188
191
192
209
212
212
214
214
222
232
232
233
233
238
238
238
250
255
258
258
260
260
261
261
266
270
271
277
282
282
293
294
295
296
300
303
305
305
319
322
322
324
324
325
325
335
342
345
345
346
347
347
351
363
366
368
371
371
373
373
374
374
379
383
384
386
388
388
391
391
404
409
409
425
430
430
446
448
466
471
471
490
495
495
512
515
534
539
539
557
560
562
576
579
579
581
581
599
604
604
623
625
628
643
645
645
648
648
1049
1050
1051
5
5
9
10
15
20
20
20
21
21
21
23
23
24
24
24
25
26
26
26
26
28
29
35
35
35
35
36
36
43
43
45
45
46
47
49
51
51
53
53
54
54
54
54
54
55
55
55
55
55
55
55
56
56
56
57
57
57
57
59
59
60
60
64
64
64
64
64
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
71
71
71
71
72
72
73
73
73
73
73
73
73
74
74
81
86
87
89
89
90
91
91
91
94
95
96
97
111
112
112
112
112
115
115
120
121
121
122
122
123
123
124
124
124
124
124
124
125
129
129
130
130
131
134
134
134
134
135
135
149
153
153
170
170
170
170
171
171
171
171
172
172
172
173
173
173
173
173
173
173
173
173
173
173
173
173
173
173
174
174
174
174
174
174
174
174
175
175
175
175
175
175
176
176
176
176
176
176
176
177
177
177
177
183
185
189
192
192
208
210
213
213
215
215
231
231
233
233
234
238
239
239
239
241
241
250
256
259
261
262
262
266
271
272
277
278
283
283
294
296
297
301
304
305
306
320
321
325
325
326
326
343
344
344
346
346
348
348
351
352
354
354
363
367
369
372
374
375
375
379
384
385
387
392
392
405
410
410
426
431
447
449
467
472
472
491
496
496
513
516
535
540
540
558
561
563
577
582
582
600
605
605
624
626
629
644
649
649
1050
1051
1052
9
9
10
11
11
11
11
15
19
19
19
21
22
22
24
25
25
26
27
27
28
28
28
29
29
29
29
33
37
37
45
45
45
46
46
46
46
48
50
55
55
55
55
55
55
55
55
56
56
56
56
57
57
57
58
58
58
58
58
60
60
62
62
63
64
64
64
64
65
67
67
68
68
68
68
68
69
69
69
69
69
69
69
69
70
70
70
70
71
71
71
71
71
71
71
73
73
73
73
73
73
87
88
90
90
90
92
92
95
95
96
96
97
98
112
112
113
113
116
116
117
121
121
121
122
122
123
123
124
124
125
125
125
125
126
130
130
131
131
132
135
135
135
135
136
136
150
154
154
167
167
167
167
171
171
171
171
172
172
172
172
173
173
173
173
173
174
174
174
174
174
174
174
174
174
174
174
174
174
174
174
174
175
175
175
175
175
175
175
175
175
176
176
177
177
177
177
183
183
184
186
187
187
188
190
193
209
211
214
216
216
232
235
238
240
242
242
251
255
257
260
260
260
262
270
272
273
278
278
278
278
279
284
284
285
294
295
297
302
305
307
321
322
326
326
327
344
345
349
349
351
355
355
368
370
373
373
373
375
383
385
386
388
393
393
406
411
411
427
430
430
432
441
448
450
468
473
473
492
497
508
512
514
517
536
541
541
559
562
564
578
583
583
601
606
606
625
627
630
645
650
650
1051
1052
1053
5
9
9
9
11
11
19
19
20
22
22
22
22
22
24
25
25
26
26
26
26
26
26
27
28
28
28
29
30
30
37
38
43
43
43
46
47
47
47
47
49
49
51
51
52
53
53
55
55
56
56
57
57
57
58
58
58
59
59
60
60
61
61
63
66
68
68
68
68
68
68
69
69
69
69
69
70
70
71
71
71
71
71
71
71
71
71
72
72
73
73
88
89
91
91
91
91
93
93
96
97
97
98
98
99
110
113
113
113
113
114
114
114
114
114
114
115
115
117
117
117
117
117
121
122
122
122
123
123
123
123
127
131
131
132
132
133
136
136
136
136
137
137
151
155
155
168
168
168
168
171
171
171
171
172
172
172
172
172
172
172
172
173
173
173
173
174
175
175
175
175
175
176
176
176
176
176
176
176
177
177
179
179
183
183
183
184
185
187
188
188
189
189
191
192
192
194
200
209
209
212
213
213
215
217
217
221
231
233
236
239
241
241
243
243
243
250
250
256
258
261
261
266
271
273
273
279
279
280
285
285
286
286
286
294
295
297
297
298
303
305
305
306
308
313
322
322
322
326
326
327
327
328
334
344
345
346
350
350
352
354
356
356
356
363
363
369
371
374
374
379
384
386
386
389
394
394
407
412
412
428
431
433
442
446
449
451
469
474
474
493
498
513
515
518
537
542
542
560
563
565
579
584
584
602
607
607
626
628
631
646
651
651
1052
1053
1054
1
1
1
5
5
5
9
19
19
20
22
23
25
26
27
27
27
27
28
28
29
29
29
31
31
33
33
38
44
48
48
48
50
50
52
52
53
55
55
55
56
58
58
58
60
60
60
60
62
62
62
62
63
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
71
71
71
71
71
71
72
72
90
92
92
94
94
98
99
99
100
111
111
111
111
114
114
114
115
115
115
115
116
116
118
122
123
123
123
128
132
132
133
133
134
137
137
137
137
138
138
152
156
156
169
169
169
169
169
172
172
172
172
174
174
174
174
174
174
174
175
175
175
176
176
177
177
177
177
177
179
179
179
179
184
185
186
188
189
189
190
190
192
193
193
195
201
213
214
214
216
218
218
222
222
222
222
231
231
232
237
239
239
241
242
242
248
251
251
257
259
260
260
262
262
270
272
279
281
286
286
287
287
298
298
299
303
306
306
307
309
314
323
327
327
328
328
329
335
335
335
335
344
344
345
346
351
351
354
355
361
364
364
370
372
373
373
375
375
383
385
390
395
395
408
413
413
429
432
434
447
450
452
470
475
475
494
496
496
499
514
516
519
538
543
543
564
566
580
585
585
603
608
608
627
629
632
647
652
652
1053
1054
1055
1
1
1
4
4
5
5
6
6
6
9
10
11
11
21
23
24
26
26
28
28
28
29
29
30
30
30
31
33
38
38
39
43
45
48
49
51
51
53
53
53
53
54
55
55
55
55
57
57
59
60
60
61
61
62
62
63
63
63
67
67
67
67
67
67
67
67
67
67
68
68
68
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
70
71
71
71
71
71
71
71
71
71
71
71
71
71
72
90
91
91
93
93
93
95
95
95
96
99
100
100
101
112
112
112
112
115
117
117
119
121
123
124
124
125
125
125
125
125
125
129
133
133
134
134
135
138
138
138
138
139
139
153
157
157
170
170
170
170
170
170
170
170
170
170
170
170
170
171
171
172
172
172
172
172
172
172
172
173
173
173
173
174
174
174
174
175
175
176
176
177
177
177
178
179
181
185
186
189
190
190
191
191
191
193
196
202
202
213
214
215
215
219
219
223
223
230
231
232
233
238
240
242
242
243
243
243
249
249
258
260
260
260
261
261
263
271
271
273
273
279
282
286
287
287
287
287
287
287
288
299
299
304
304
308
310
315
315
324
326
328
328
329
329
336
336
343
344
345
346
347
352
352
355
355
356
356
362
362
373
373
373
374
374
376
384
384
386
386
391
396
396
409
414
414
430
433
435
448
451
453
471
476
476
495
497
500
515
517
520
539
544
544
565
567
581
586
586
604
609
609
630
633
648
653
653
1054
1055
1056
5
7
7
7
7
9
11
11
12
12
20
21
22
24
25
25
26
26
27
29
30
30
31
31
31
31
31
33
37
37
37
39
40
40
43
48
48
50
54
54
55
55
55
55
56
56
58
60
62
62
63
63
63
64
64
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
73
94
94
95
96
96
96
97
101
102
112
113
113
116
118
120
122
122
123
123
125
125
126
126
126
126
130
134
134
135
135
136
138
138
139
139
139
139
140
140
154
158
158
169
169
169
169
170
170
170
170
171
171
171
171
171
172
172
172
172
172
172
172
172
172
172
173
173
173
173
173
173
173
173
174
174
174
174
174
174
174
174
176
176
176
176
178
179
179
190
191
191
192
194
197
203
203
203
203
213
215
220
220
223
231
233
234
239
241
244
244
244
259
261
262
262
264
271
273
274
274
283
288
288
288
288
289
297
309
311
316
316
316
316
325
326
330
330
336
344
346
347
348
353
353
357
357
374
375
375
377
384
386
387
387
392
397
397
410
415
415
431
434
436
449
452
454
472
477
477
496
498
501
516
518
521
540
545
545
566
568
582
587
587
605
610
610
631
634
649
654
654
1055
1056
1057
1
4
6
8
8
8
8
11
13
13
19
22
22
26
26
26
27
28
31
31
32
32
32
32
37
38
40
40
40
40
40
43
43
48
49
51
53
55
55
55
55
57
57
59
59
60
60
60
60
61
62
63
64
64
64
64
64
64
64
65
65
65
65
67
67
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
73
73
74
89
93
95
95
96
97
97
97
97
98
102
103
110
113
113
113
114
114
114
114
114
114
117
119
121
124
124
124
124
131
135
135
136
136
137
139
139
140
140
140
140
141
155
159
159
167
167
169
169
169
170
170
170
170
171
171
171
171
172
172
172
172
172
172
173
173
173
173
173
173
173
173
173
173
174
174
174
174
174
174
174
174
177
179
180
183
192
192
193
193
195
195
198
198
201
203
203
204
204
209
213
214
216
221
221
223
231
232
234
240
242
242
243
243
243
245
245
245
251
258
260
262
262
263
263
265
265
271
273
274
275
275
284
287
287
289
289
289
289
294
303
306
310
312
314
316
316
317
317
322
326
326
327
331
331
336
344
345
347
349
354
354
355
356
356
356
358
358
364
371
375
376
376
378
384
386
387
388
388
393
398
398
411
416
416
432
435
437
450
453
453
455
455
473
478
478
497
499
502
517
519
519
522
522
541
546
546
560
567
569
583
588
588
606
611
611
632
635
650
655
655
1056
1056
1058
5
7
9
9
11
11
13
24
24
25
27
28
29
31
31
32
32
33
33
33
33
33
33
33
37
37
40
41
48
48
49
50
50
50
50
52
52
53
56
56
57
58
60
61
61
61
62
62
62
62
63
63
63
63
64
64
64
64
64
65
65
66
66
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
70
71
71
71
72
72
73
73
73
75
88
90
93
94
96
96
97
98
98
98
99
99
100
100
103
104
111
111
111
111
114
114
115
115
115
115
120
122
124
124
124
132
136
136
137
137
138
140
140
141
141
141
141
142
156
160
160
165
165
165
165
166
166
168
168
168
168
169
170
170
170
171
171
171
171
172
172
172
172
173
173
173
173
173
173
173
173
174
174
174
174
174
174
174
174
174
174
175
175
175
175
175
175
175
175
178
180
181
183
183
183
184
190
193
194
199
199
204
205
205
209
214
215
217
222
222
231
232
234
234
235
241
242
242
242
243
243
244
244
244
246
251
259
261
264
266
266
271
271
274
275
278
285
288
290
290
294
295
297
297
304
306
308
311
313
317
318
318
322
327
327
328
332
332
344
345
347
347
348
350
355
355
355
355
355
356
357
357
357
364
370
372
374
376
377
379
384
384
387
388
394
399
399
412
417
417
433
436
438
451
456
456
474
479
479
498
500
503
518
523
523
542
543
547
547
561
565
568
570
584
589
589
607
612
612
627
631
633
636
651
656
656
1056
1057
1057
1059
4
4
5
5
10
10
13
13
13
22
22
25
26
29
29
30
30
30
31
31
31
33
33
33
34
34
34
41
42
43
48
48
48
50
50
52
53
53
53
53
53
54
57
57
58
60
60
62
62
62
63
63
64
64
64
64
64
64
64
64
65
65
65
65
66
66
67
67
67
67
67
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
70
70
70
70
71
72
74
74
76
76
91
94
95
97
97
99
99
99
100
101
104
105
112
112
112
112
115
119
121
121
122
123
123
124
125
125
126
126
126
126
126
126
133
137
137
138
138
139
141
142
142
142
142
143
157
159
159
161
161
165
165
166
166
166
166
167
167
167
167
167
167
168
168
169
169
169
169
170
171
171
171
172
172
172
172
173
173
173
173
173
173
173
173
174
174
174
174
174
175
175
175
175
175
175
175
175
179
181
182
183
184
185
192
195
200
200
203
203
205
213
215
216
218
223
223
235
235
236
242
244
244
245
245
245
247
259
259
262
263
263
265
267
267
272
272
273
273
273
275
279
279
279
279
286
287
289
291
291
294
298
298
309
312
314
316
316
318
326
328
328
329
333
333
348
348
349
351
356
356
357
358
358
358
372
372
375
376
376
377
378
380
385
385
386
386
386
388
395
400
400
413
418
418
434
437
439
452
457
457
475
480
480
499
501
504
519
524
524
543
544
548
548
566
569
571
585
590
590
608
613
613
632
634
637
652
657
657
1058
1058
1060
5
5
5
7
11
11
11
11
13
24
24
25
30
31
31
31
34
35
35
35
40
42
43
48
52
53
53
53
54
54
54
55
58
58
58
58
59
59
63
64
64
64
64
64
64
64
64
64
65
65
66
66
66
66
68
68
68
68
69
69
69
69
69
69
69
70
70
71
71
71
71
71
71
73
75
75
77
77
95
96
100
100
100
101
101
102
102
104
105
105
106
112
113
113
116
120
122
122
123
123
124
124
124
124
126
126
127
127
127
127
134
138
138
139
139
140
142
143
143
143
143
144
158
160
160
162
166
166
167
167
167
167
167
167
167
167
168
168
168
168
168
168
169
169
169
169
169
169
170
170
170
170
170
170
171
172
172
172
174
174
174
174
174
174
175
175
175
175
180
183
183
184
185
186
186
192
193
193
196
201
201
204
209
214
216
216
219
224
224
236
236
243
243
245
245
246
246
248
263
264
264
266
268
268
274
274
274
274
280
280
287
287
287
288
292
292
295
297
299
299
299
306
306
310
313
315
317
322
327
329
329
329
334
334
349
349
352
356
357
357
358
359
359
376
377
377
378
379
381
387
387
387
387
396
401
401
414
419
419
438
440
453
458
458
476
481
481
500
502
505
520
525
525
544
544
544
549
549
567
570
572
586
591
591
609
614
614
633
635
638
653
658
658
1059
1059
1061
5
5
6
7
12
12
13
13
13
22
22
25
31
31
31
32
32
32
32
33
33
34
35
35
36
36
36
37
40
40
48
49
50
50
52
53
53
53
54
55
55
56
57
57
57
59
59
59
60
60
60
60
64
64
64
64
65
65
65
65
65
65
66
66
67
67
67
67
67
67
67
67
67
68
68
68
68
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
71
71
71
71
74
76
76
78
78
97
97
97
101
101
101
105
106
106
107
110
113
114
114
114
114
117
121
123
123
125
125
125
125
125
125
135
139
139
140
140
143
144
144
144
144
145
159
161
161
163
165
165
165
165
167
167
168
168
168
168
168
168
168
168
168
169
169
169
169
169
169
170
170
170
170
170
170
171
171
172
175
175
175
175
175
175
175
175
181
181
184
185
191
194
194
197
202
202
203
203
205
213
215
220
225
225
234
244
244
244
246
249
263
264
265
265
269
269
275
275
280
286
287
288
288
289
293
297
298
304
307
307
311
314
316
316
316
318
326
328
330
335
335
347
353
357
357
358
376
377
378
378
379
382
388
388
397
402
402
415
420
420
439
441
454
459
459
477
482
482
501
503
506
521
526
526
544
545
545
545
550
568
571
573
587
592
592
610
615
634
636
639
654
659
659
1060
1060
1062
5
5
7
8
11
11
13
13
13
13
13
13
24
24
25
31
33
33
33
34
34
35
36
36
37
37
37
42
42
43
48
50
50
51
51
52
53
53
54
55
56
56
57
58
60
60
60
60
60
60
60
60
60
61
62
64
64
65
65
65
65
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
75
79
79
97
98
98
98
102
102
102
102
103
106
107
107
108
111
111
115
115
122
125
125
125
126
126
136
138
140
140
141
141
142
144
144
145
145
145
145
146
146
159
160
162
163
164
166
166
166
166
167
167
167
167
168
168
168
168
168
168
168
168
168
169
169
169
169
169
169
170
170
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
171
172
172
175
175
175
175
176
182
182
182
185
186
186
192
192
198
203
203
203
203
204
204
214
214
216
216
221
222
226
226
231
247
249
250
263
265
270
270
275
280
287
289
289
290
292
292
294
298
298
299
299
305
305
312
315
315
316
316
317
317
317
317
327
327
329
329
331
335
336
336
344
354
359
362
376
378
380
383
388
398
403
403
416
421
421
440
442
455
460
460
478
483
483
504
507
522
527
527
545
545
546
546
549
549
551
569
572
572
574
574
588
593
593
611
616
635
637
640
655
660
660
1061
1061
1063
5
5
7
9
13
13
13
13
14
14
14
14
22
22
24
25
27
28
32
33
33
34
35
35
36
36
36
37
37
38
38
38
40
40
43
50
52
52
52
53
53
54
55
56
57
57
57
60
60
60
61
61
61
62
63
63
65
66
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
76
80
80
99
99
99
102
103
103
103
103
104
106
107
108
108
108
109
123
123
125
126
126
127
127
127
127
137
139
141
141
142
142
143
145
145
146
146
146
146
147
147
160
161
163
164
165
165
167
167
167
167
167
168
168
168
168
168
168
168
168
168
168
169
169
169
169
170
170
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
172
172
172
172
172
172
176
176
177
181
182
183
186
187
187
199
204
204
205
205
214
216
217
217
222
223
223
223
227
227
231
232
234
234
246
248
250
251
259
263
264
266
271
271
275
287
288
290
290
293
295
300
300
313
318
318
318
318
327
329
330
330
332
336
336
336
337
337
344
345
347
347
355
357
357
359
360
363
372
376
377
379
381
381
384
384
388
399
404
404
417
422
422
434
441
443
456
461
461
479
484
484
505
508
523
528
528
545
545
546
547
547
550
552
570
575
575
589
594
594
612
614
614
617
636
638
638
641
641
656
661
661
1062
1062
1064
5
5
7
10
11
15
15
15
15
24
24
24
25
25
25
25
33
33
33
34
35
35
36
37
37
37
38
39
39
42
42
43
50
50
52
53
54
54
55
56
58
61
62
62
62
62
62
64
64
64
64
64
64
64
65
65
65
65
66
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
70
71
71
71
71
71
71
71
71
72
72
77
81
81
100
103
104
104
104
104
105
107
107
108
108
109
109
109
110
111
111
111
111
113
124
124
124
127
127
127
127
127
127
128
128
138
140
142
142
143
143
144
146
146
147
147
148
148
161
164
165
166
166
167
168
168
168
168
168
168
168
168
168
169
169
169
169
169
169
169
169
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
172
172
172
172
172
172
172
172
176
176
176
177
178
178
182
182
182
182
183
184
186
186
186
187
188
188
194
200
201
205
205
206
206
214
216
217
218
218
223
224
224
228
228
231
235
235
246
249
251
251
252
259
264
265
267
272
272
287
288
290
290
291
291
294
296
298
299
299
299
301
301
307
314
314
319
319
319
319
327
329
330
331
331
333
337
337
338
338
344
348
348
356
358
359
361
364
364
372
377
378
380
385
385
400
405
405
418
423
423
435
439
442
444
457
462
462
480
485
485
506
509
524
529
529
546
547
548
551
553
571
576
576
590
595
595
613
615
618
637
642
642
657
662
662
1063
1063
1065
5
5
5
7
11
15
16
16
16
22
22
25
26
26
34
35
35
35
35
36
37
37
38
38
38
38
39
40
40
40
40
43
52
52
52
54
54
55
56
59
60
61
61
62
63
63
63
64
64
64
64
65
65
65
65
65
65
65
65
65
65
66
66
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
70
70
71
71
73
73
78
82
82
95
100
101
104
104
105
105
105
105
108
109
109
110
110
111
112
112
112
112
114
125
125
125
128
128
128
128
128
128
128
128
129
129
139
143
143
144
144
145
148
148
149
149
163
163
165
166
167
167
168
169
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
171
171
171
172
172
172
172
172
172
172
172
172
172
173
173
173
173
173
173
173
173
177
178
179
179
182
182
182
183
183
184
185
186
187
187
187
188
194
201
202
206
206
207
214
214
217
218
223
224
224
224
224
224
225
229
229
232
234
236
236
236
244
248
250
252
252
252
252
253
263
265
266
268
273
273
291
291
292
292
295
297
298
298
298
299
300
300
300
307
315
315
320
320
320
327
327
330
331
334
336
337
337
337
337
338
339
339
345
347
349
349
349
357
359
362
365
365
365
365
376
378
379
381
386
386
401
406
406
419
424
424
440
443
445
458
463
463
481
486
486
501
505
507
510
525
530
530
545
545
547
549
552
554
572
577
577
591
596
596
614
616
619
638
643
643
658
663
663
1064
1064
1066
1
1
5
5
5
6
7
7
7
11
11
12
16
17
17
27
27
33
33
35
37
38
39
39
40
41
41
42
42
43
50
50
52
56
57
60
60
60
62
62
64
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
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
70
70
70
71
71
72
72
72
72
74
74
79
83
83
101
102
104
106
106
106
107
109
109
109
110
110
111
111
112
126
126
126
126
128
128
128
128
129
129
129
129
130
130
140
144
144
145
145
146
146
146
146
146
149
149
150
150
164
164
165
165
165
165
165
165
165
165
166
167
168
168
169
170
170
170
170
170
171
171
171
171
171
171
171
171
172
172
172
173
173
173
173
173
173
173
173
174
178
179
180
184
184
185
186
187
188
188
188
189
202
202
202
206
206
207
207
208
215
215
216
216
216
218
225
225
225
226
230
230
234
235
246
246
249
250
251
252
252
253
253
254
259
264
266
266
269
274
274
274
292
292
293
296
298
300
301
301
301
315
315
316
319
319
321
321
321
328
328
329
329
329
331
335
338
338
339
340
340
347
348
358
359
359
360
363
363
365
365
366
366
372
377
379
379
382
387
387
387
402
407
407
420
425
441
444
446
459
464
464
482
487
487
506
508
511
526
531
531
546
550
553
555
573
578
578
592
597
597
615
617
620
639
644
644
659
664
664
1065
1065
1067
1
1
5
5
7
8
8
11
13
16
16
16
16
17
18
18
22
27
35
35
35
38
39
39
40
40
40
40
40
41
42
42
42
43
52
52
52
60
60
60
60
61
61
62
62
63
63
63
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
66
66
66
67
67
67
67
67
67
68
68
68
68
69
69
70
71
71
71
73
73
75
75
80
84
84
102
103
105
105
107
107
107
108
110
110
110
111
111
112
112
112
112
113
126
126
126
127
128
128
129
129
130
130
130
130
131
131
141
145
145
146
147
147
147
150
150
151
151
163
163
164
164
164
164
165
165
165
165
165
165
166
166
166
166
166
166
166
166
167
168
168
169
170
170
170
170
170
172
172
172
173
173
173
173
181
185
185
186
186
187
188
189
189
190
203
207
207
208
208
209
217
217
217
217
224
224
226
226
226
231
231
235
235
236
236
244
247
247
250
252
253
254
254
255
263
265
270
275
275
275
275
275
275
279
290
294
297
299
299
301
302
302
317
320
320
322
322
322
330
330
330
330
336
337
337
339
339
341
341
348
348
349
349
357
359
360
360
361
364
366
367
367
376
378
383
388
388
388
388
388
388
403
408
408
421
424
424
426
442
445
447
460
465
465
483
488
488
507
509
512
527
532
532
545
547
551
554
556
574
579
579
593
598
598
616
618
621
640
645
645
660
665
665
1066
1066
1068
5
5
9
9
11
14
15
15
15
17
17
17
18
18
19
22
27
27
33
33
35
40
41
41
41
42
42
42
42
42
43
43
43
43
43
43
50
50
52
52
52
52
60
60
61
61
61
61
62
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
68
68
69
69
69
69
69
69
70
70
70
70
70
71
71
71
71
72
74
74
74
74
76
76
81
85
85
102
104
106
107
108
108
108
110
111
111
111
111
112
112
112
112
113
113
114
124
127
127
127
127
128
128
128
128
128
128
128
129
129
130
130
132
132
142
146
146
147
148
148
148
151
151
152
152
159
159
160
160
163
163
163
163
163
163
164
164
165
165
165
165
166
166
166
166
166
166
167
167
167
167
167
167
167
167
168
169
170
170
173
173
173
173
173
173
173
173
176
182
186
186
187
187
187
188
188
191
191
204
206
208
208
209
209
218
218
225
227
232
237
237
245
245
251
252
252
253
254
256
264
264
266
266
271
276
276
276
276
280
280
280
287
295
298
300
300
300
318
319
321
321
323
323
331
331
337
338
342
342
350
350
358
358
360
362
365
365
365
367
377
377
379
379
384
389
389
389
389
404
409
409
422
425
427
443
446
446
448
448
461
466
466
484
489
508
510
513
528
533
533
545
546
552
555
557
575
580
580
594
599
599
617
619
622
641
646
646
661
666
666
1067
1069
4
5
5
6
6
9
15
15
16
18
18
18
18
18
18
18
20
22
22
27
28
35
35
35
36
40
40
40
42
42
42
43
43
43
44
44
44
44
44
52
52
52
52
53
53
62
62
63
63
64
64
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
71
71
73
75
75
76
76
77
77
82
86
86
105
107
107
107
108
108
109
109
109
113
114
114
115
125
126
126
127
127
128
128
129
129
129
130
130
131
131
133
133
143
145
145
147
147
148
149
149
149
152
152
153
153
160
160
161
161
163
163
163
163
164
164
164
164
164
164
165
165
165
165
165
165
165
165
165
165
166
166
166
166
166
166
166
166
167
167
167
167
168
168
168
168
168
168
168
168
168
168
168
168
168
168
168
168
168
169
170
170
171
173
173
173
173
176
176
176
177
183
187
187
192
192
192
205
206
210
210
218
224
226
228
233
235
236
236
236
238
238
252
253
254
257
264
266
267
267
272
276
277
277
281
281
287
288
290
290
296
299
301
305
319
319
324
324
331
337
338
339
343
343
348
349
349
349
351
351
361
363
366
366
377
379
380
380
385
389
390
390
405
410
410
423
426
428
444
449
449
462
467
467
485
490
509
511
514
529
534
534
547
553
556
558
576
581
581
595
600
600
618
620
623
642
647
647
662
667
667
1068
1070
5
5
5
6
6
7
7
9
9
15
15
16
18
19
19
21
27
27
28
29
29
29
29
33
33
34
35
35
35
35
35
37
39
40
41
43
43
43
44
44
45
45
45
45
45
50
54
54
60
60
63
64
64
64
64
65
66
66
66
67
67
67
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
71
71
71
71
71
71
71
71
71
71
71
71
72
74
77
77
78
78
83
87
87
104
104
106
108
108
108
109
109
110
110
110
111
112
112
112
113
113
113
114
115
115
116
126
126
127
128
128
128
129
129
130
130
130
131
131
132
132
134
144
146
148
148
149
150
150
150
153
153
154
154
161
161
162
162
164
164
164
164
165
165
165
165
165
165
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
167
167
167
167
167
167
167
167
168
168
168
168
168
168
168
168
168
168
168
168
169
169
169
169
169
169
169
169
171
172
176
177
178
183
188
189
193
193
193
202
206
206
207
211
211
218
224
224
225
229
231
231
234
235
235
235
236
237
237
237
247
252
252
253
254
255
255
258
258
264
266
267
268
268
273
276
278
278
280
281
281
281
281
282
287
291
291
300
302
302
306
315
319
320
320
325
325
331
337
337
338
339
344
344
348
348
348
349
350
350
350
360
362
364
365
365
367
367
377
379
380
381
381
386
389
391
391
406
411
411
424
427
429
445
450
450
463
468
468
486
488
488
491
510
512
512
515
515
530
535
535
548
557
559
577
582
582
596
601
601
619
621
624
643
648
648
663
668
668
1069
1071
1
5
5
7
7
8
8
9
10
17
19
20
20
22
22
27
27
27
29
29
35
35
35
35
36
36
38
40
40
41
42
44
44
45
45
46
46
46
51
51
51
51
54
55
61
62
62
63
65
65
65
65
65
65
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
73
73
74
74
75
78
78
79
79
84
86
86
88
88
104
105
105
105
105
105
107
108
108
108
109
109
109
109
109
109
110
110
110
110
111
111
111
111
111
112
112
113
113
113
113
114
114
116
117
127
127
127
127
127
128
128
128
129
129
129
131
132
132
133
133
135
145
147
150
151
151
151
154
154
155
155
162
162
162
162
163
163
163
163
165
165
165
165
166
166
166
166
166
166
166
166
166
166
166
166
167
167
167
167
167
167
167
167
167
167
167
167
168
168
168
168
168
168
169
169
169
169
169
169
169
169
170
170
170
170
170
170
170
170
170
170
172
173
176
177
178
179
179
189
189
194
194
194
194
202
207
207
208
212
212
223
224
225
226
230
232
235
237
238
238
238
247
252
252
253
253
254
259
259
264
264
267
268
274
279
279
282
282
283
288
290
292
292
292
301
302
303
307
307
315
320
321
321
326
326
336
337
338
339
340
345
345
350
351
351
351
360
365
365
365
366
366
368
377
377
380
381
387
392
392
407
412
412
425
428
430
446
451
451
464
469
469
487
489
492
511
516
516
531
536
536
545
558
560
578
583
583
597
602
602
622
625
644
649
649
664
669
669
1065
1070
1072
5
8
8
9
9
9
9
10
11
11
11
11
18
20
21
21
23
27
33
37
37
40
41
42
43
45
45
46
47
47
47
48
48
50
50
51
51
51
51
52
52
55
60
60
60
60
60
62
62
63
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
67
67
67
67
67
67
67
68
68
69
69
69
69
70
70
70
70
70
70
74
75
75
75
76
80
80
85
87
87
89
105
106
108
109
109
110
110
110
110
111
111
112
112
112
112
112
113
113
113
113
114
114
114
115
115
117
118
125
127
127
127
127
128
129
130
130
131
131
131
131
132
133
133
134
136
146
148
151
152
152
152
155
155
156
156
163
163
163
166
166
166
166
168
168
168
168
168
168
168
168
168
168
168
168
168
168
168
168
169
169
169
169
169
169
169
169
170
170
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
173
174
174
178
190
195
195
195
195
195
195
206
208
208
209
213
213
224
226
227
231
233
236
236
238
239
239
254
254
255
260
260
265
265
266
266
266
268
275
280
280
281
281
283
283
290
291
302
304
308
308
308
308
319
321
322
322
327
327
337
339
340
341
346
346
349
351
352
352
366
367
367
369
378
378
379
379
379
381
388
393
393
408
413
413
426
429
431
447
452
452
465
470
470
488
490
493
512
517
517
532
537
537
544
545
546
559
561
579
584
584
598
603
603
623
626
645
650
650
665
670
670
1066
1068
1071
1073
1
4
4
4
5
5
6
9
9
9
10
10
11
11
15
15
18
18
20
22
22
24
24
27
28
29
29
37
38
40
40
43
43
44
44
44
45
46
47
48
48
48
48
48
50
52
52
53
53
55
55
56
60
61
61
61
61
62
62
62
63
63
63
63
63
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
67
67
67
67
67
67
67
67
68
68
68
68
69
69
69
69
69
69
71
71
71
71
71
71
76
76
76
77
81
81
86
88
88
90
103
105
106
107
109
110
110
110
111
112
113
113
113
114
114
115
115
115
116
116
118
119
125
127
129
130
131
131
132
132
132
132
133
134
134
135
137
147
149
152
153
153
153
156
156
157
157
159
159
163
163
163
163
163
164
164
164
168
168
168
168
168
168
168
168
169
169
169
169
169
169
169
169
171
171
171
171
171
171
171
171
172
174
175
175
175
179
179
187
189
189
191
193
195
195
196
196
196
196
202
207
209
209
209
214
214
217
224
225
227
232
234
237
237
237
247
247
250
255
255
256
261
261
267
267
267
267
275
276
281
281
282
291
291
292
292
296
302
302
303
305
306
308
308
309
309
315
320
322
322
323
328
328
330
337
338
340
342
347
347
350
350
360
360
363
367
368
368
370
380
380
380
380
388
389
394
394
409
414
414
427
430
432
448
453
453
466
471
471
489
491
494
513
518
518
533
538
538
545
545
547
553
560
562
580
585
585
599
604
604
624
627
646
651
651
666
671
671
1069
1072
1074
5
5
5
5
6
7
9
11
11
16
20
20
21
21
23
23
25
25
27
29
29
30
30
33
33
38
44
45
45
45
45
46
47
47
47
47
48
49
49
49
50
53
53
54
54
54
54
54
56
57
57
60
60
60
60
61
61
62
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
68
68
68
68
68
68
68
68
72
72
73
77
78
78
78
78
78
82
82
87
89
91
102
104
104
107
107
108
108
108
110
110
111
111
112
114
114
114
114
115
115
115
116
116
117
119
120
126
127
128
131
133
133
133
133
136
138
148
148
150
152
152
153
154
154
154
156
156
157
157
158
158
160
160
161
161
163
163
163
163
164
164
164
164
164
165
165
165
168
168
168
168
168
168
171
171
171
171
173
175
176
180
180
187
187
190
190
192
196
197
197
197
197
206
208
210
215
215
218
218
218
218
224
225
227
227
228
233
235
238
245
248
248
251
256
257
262
262
268
268
276
276
276
276
277
281
282
282
283
293
293
297
300
301
303
303
304
306
309
310
310
319
321
324
329
329
331
331
331
331
337
338
340
340
341
343
348
348
358
361
361
362
364
366
368
369
371
381
381
389
389
389
389
390
395
395
410
415
415
428
431
433
449
454
454
467
472
472
490
492
495
514
519
519
534
539
539
546
546
548
548
554
558
561
563
581
586
586
600
605
605
619
623
625
628
647
652
652
667
672
672
1070
1073
1075
5
5
6
8
8
8
8
8
9
10
11
11
12
12
17
18
18
21
22
24
24
26
26
29
31
31
33
38
38
39
40
45
45
45
45
45
46
46
46
47
47
48
49
49
50
50
50
54
54
54
55
57
57
57
57
57
60
60
61
61
61
61
62
62
62
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
69
70
70
71
71
73
73
74
79
79
79
83
83
88
90
92
103
107
108
108
109
109
109
110
110
110
111
111
112
112
112
113
113
113
115
115
115
115
115
116
116
117
118
120
121
126
126
129
130
130
131
131
131
131
131
132
135
137
137
139
139
151
153
153
154
155
155
155
157
157
157
157
158
158
159
161
161
161
161
161
161
161
161
162
162
164
164
164
164
165
165
165
165
165
166
166
166
166
166
167
167
168
171
171
171
171
171
171
171
171
174
175
177
177
179
179
179
181
181
188
188
193
195
195
197
198
198
207
207
209
209
211
216
216
219
219
228
228
229
234
236
239
239
246
246
251
251
255
255
257
258
263
263
268
277
277
278
281
281
282
283
283
291
292
292
292
294
294
301
301
302
305
307
308
308
310
320
320
322
322
325
330
330
332
332
341
341
342
344
349
349
352
359
359
364
364
367
368
368
369
370
372
381
390
390
391
396
396
411
416
416
432
434
450
455
455
468
473
473
491
493
496
515
520
520
535
540
540
545
548
548
549
549
559
562
564
582
587
587
601
606
606
624
626
629
648
653
653
668
673
673
1071
1074
1076
4
4
4
5
6
7
9
9
9
9
11
11
12
12
13
13
20
20
21
23
27
27
29
29
31
33
37
37
37
39
40
40
45
47
49
50
50
51
51
51
51
51
51
54
54
57
58
60
60
60
60
60
62
62
63
63
64
64
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
70
70
70
70
70
70
70
70
70
70
70
74
74
75
80
80
80
80
80
83
83
84
84
91
93
103
104
104
106
107
107
108
108
110
110
110
111
111
112
112
112
112
113
113
113
113
113
114
114
114
116
116
116
116
117
118
118
119
119
121
121
122
122
127
127
127
127
130
131
131
131
131
132
132
132
132
132
133
136
138
138
140
140
152
154
154
155
156
156
156
156
156
158
158
158
158
159
159
159
159
160
160
160
160
160
161
161
161
161
162
162
162
162
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
165
165
165
165
166
166
166
166
166
166
166
166
166
166
166
167
167
171
171
171
171
175
175
175
175
175
177
178
178
179
180
180
180
194
196
199
199
207
209
210
210
212
217
217
219
229
229
235
237
239
240
256
256
258
259
264
264
268
277
279
280
281
282
283
284
284
291
291
291
292
293
293
293
303
306
308
309
320
322
323
323
326
331
331
332
342
342
345
350
350
352
368
369
369
370
371
373
381
390
392
397
397
412
417
417
433
435
451
456
456
469
474
474
492
494
497
516
521
521
536
541
541
549
550
550
560
563
565
583
588
588
602
607
607
625
627
630
649
654
654
669
674
674
1072
1075
1077
4
4
5
5
5
7
8
10
10
10
10
10
11
13
13
13
13
14
14
18
18
21
24
28
28
31
31
31
37
38
40
40
40
40
40
41
42
45
46
46
47
47
47
48
48
50
51
51
51
51
51
52
52
52
52
52
58
59
60
60
61
61
61
61
63
63
63
63
64
64
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
67
67
67
67
67
68
68
69
69
69
69
69
69
69
69
71
71
71
71
71
71
71
71
71
71
71
75
75
77
77
81
84
84
85
85
86
90
92
92
94
94
104
105
105
105
105
105
106
106
106
106
107
108
108
109
109
110
110
111
111
112
112
112
112
112
113
113
113
113
113
113
114
114
114
115
115
115
117
117
117
117
118
122
122
123
123
127
127
131
131
131
131
132
132
132
132
133
133
133
133
133
137
139
139
141
141
147
151
153
155
155
156
156
157
157
157
158
158
159
159
159
160
160
160
160
160
161
161
161
161
161
162
162
162
162
162
163
163
163
163
163
163
164
164
164
164
164
164
164
164
164
164
164
164
164
164
166
166
166
166
167
167
167
167
170
176
176
178
179
179
180
181
181
181
190
195
195
195
197
200
200
207
209
210
211
211
213
218
218
219
227
236
238
241
248
255
257
257
260
265
265
277
280
281
283
284
285
285
293
294
294
294
303
304
307
308
308
309
310
320
322
323
324
324
327
332
332
332
340
346
351
351
361
368
369
370
370
371
374
390
393
398
398
413
418
418
434
436
452
457
457
470
475
475
493
495
498
517
522
522
537
542
542
550
561
564
566
584
589
589
603
608
608
626
628
631
650
655
655
670
675
675
1073
1076
1078
1
1
4
5
5
5
6
6
8
9
11
11
11
13
14
14
15
15
20
20
21
25
29
29
29
29
31
37
37
40
41
45
47
47
47
48
48
48
48
49
50
51
52
52
53
53
53
53
57
59
60
60
60
61
61
61
63
63
63
63
65
65
65
65
65
65
65
65
65
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
72
76
76
76
76
78
81
81
82
85
85
86
86
87
91
93
93
95
95
105
105
106
106
107
107
107
107
108
110
110
111
111
111
112
112
113
113
113
114
114
114
115
115
115
115
116
116
118
118
118
118
119
123
123
124
124
130
130
132
132
132
132
133
133
134
134
134
134
134
134
138
142
142
152
154
156
156
157
157
158
158
158
159
159
159
159
159
159
160
160
160
160
160
161
161
161
161
161
162
162
162
162
162
162
162
162
162
162
162
163
163
163
163
164
164
164
164
164
164
164
164
164
164
164
164
164
164
164
164
165
165
165
165
165
165
165
165
165
165
168
168
168
168
170
170
171
175
177
177
179
179
180
180
181
182
182
190
195
195
196
196
196
201
201
207
207
210
211
214
219
219
224
239
239
239
242
248
255
261
266
266
281
281
282
284
286
286
292
294
295
295
303
305
308
308
308
308
309
309
310
310
320
320
323
324
328
333
333
337
347
352
352
352
352
361
368
370
372
375
394
399
399
414
419
419
428
435
437
453
458
458
471
476
476
496
499
518
523
523
538
543
543
562
565
565
567
567
585
590
590
604
609
609
627
629
632
651
656
656
671
676
676
1074
1077
1079
1
1
1
4
4
4
5
5
5
6
7
7
9
10
11
11
12
13
13
13
15
15
16
16
18
18
20
21
26
30
30
31
31
31
41
42
47
48
49
49
49
50
51
51
52
52
53
53
54
54
54
54
54
57
57
60
60
64
64
65
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
67
67
67
68
68
69
69
69
69
70
70
70
70
73
77
77
79
79
82
82
82
83
85
85
87
87
88
92
94
94
96
96
103
104
105
107
107
108
109
110
110
111
114
114
115
115
115
115
116
116
116
116
116
116
117
117
119
119
119
119
119
120
124
124
125
125
126
126
130
131
131
132
132
134
134
134
134
134
134
135
135
135
135
139
143
143
153
155
155
157
157
158
158
158
159
159
160
160
160
160
160
160
161
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
163
164
164
164
164
164
164
164
164
164
164
164
164
165
165
165
165
166
166
166
166
166
166
166
166
166
166
166
166
169
169
169
169
170
170
170
171
172
176
176
178
178
180
180
180
181
181
197
197
197
202
202
208
208
209
209
209
211
215
220
220
224
225
227
227
237
240
240
240
243
251
255
256
262
267
267
267
281
282
282
284
284
285
287
287
293
293
306
310
310
311
311
321
321
322
322
322
324
329
334
334
337
338
340
340
348
350
353
353
353
353
364
368
369
371
373
373
376
376
380
395
400
400
415
420
420
429
433
436
438
454
459
459
472
477
477
497
500
519
524
524
539
544
544
545
545
548
563
568
568
586
591
591
605
610
610
628
630
630
633
633
652
657
657
672
677
677
1075
1078
1079
1080
5
5
5
6
8
8
8
10
11
11
11
12
12
12
13
13
15
15
17
17
20
20
20
21
21
21
21
27
29
29
31
31
31
40
42
43
47
47
49
51
52
53
54
54
55
55
55
59
59
60
60
60
60
60
61
61
62
62
63
63
64
64
64
64
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
69
69
69
69
71
71
71
71
74
78
78
83
83
83
84
86
86
86
86
88
88
93
97
97
102
104
104
104
104
105
105
105
106
106
107
107
107
107
107
108
108
108
108
110
110
110
111
111
112
112
115
115
115
115
116
116
116
116
117
117
118
118
120
120
120
120
120
121
125
125
126
126
126
130
130
131
132
132
132
132
134
134
135
135
136
136
136
136
140
144
144
154
158
158
159
159
160
160
160
160
161
161
161
161
161
161
161
161
161
161
161
161
162
163
163
163
163
163
164
164
164
164
164
164
164
165
165
165
165
165
165
165
165
166
166
166
166
166
166
166
166
166
166
166
166
166
166
167
167
167
167
171
172
173
177
179
179
181
182
182
190
190
193
198
198
198
203
203
210
210
210
210
216
221
221
224
228
228
238
238
241
244
251
256
257
263
268
268
268
268
268
268
283
285
285
286
288
288
303
303
306
307
311
311
312
312
323
323
323
323
330
335
335
337
341
341
349
351
351
354
354
364
369
370
372
377
377
381
381
381
381
396
401
401
416
421
421
434
437
439
455
460
460
473
478
478
498
501
520
525
525
540
545
545
546
548
549
564
569
569
587
592
592
606
611
611
629
634
634
653
658
658
673
678
678
1076
1078
1080
1081
4
5
6
7
9
11
12
13
13
13
13
13
13
14
16
16
16
16
18
18
18
18
21
22
22
28
31
31
31
32
32
37
40
40
49
49
49
52
53
53
54
54
54
54
55
56
56
56
57
57
60
60
60
60
60
61
61
62
62
64
64
64
64
65
65
65
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
68
68
68
68
75
75
79
79
80
84
85
87
87
89
89
94
98
98
103
103
104
105
105
105
105
105
106
106
106
106
106
106
107
108
108
108
108
109
109
109
109
111
111
111
111
112
112
112
112
113
113
115
116
116
116
116
116
117
117
117
117
121
121
121
121
121
122
126
126
127
127
131
131
132
132
132
132
132
133
133
133
135
135
136
136
141
145
145
155
159
159
159
159
159
159
159
159
160
160
161
161
161
161
162
162
162
162
162
162
162
162
163
164
164
164
164
164
165
165
165
165
165
165
165
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
167
167
167
167
168
172
173
178
180
180
182
182
183
188
191
191
194
199
199
204
204
211
211
217
222
222
225
227
229
229
229
236
240
242
245
255
257
258
264
269
269
269
269
284
286
286
289
295
301
304
304
307
308
312
313
313
324
324
331
336
336
338
340
342
342
342
350
355
368
370
371
373
378
378
382
382
397
402
402
417
422
435
438
440
456
461
461
474
479
479
493
497
499
502
521
526
526
541
546
549
550
565
570
570
588
593
593
607
612
630
635
635
654
659
659
674
679
1077
1081
1082
5
7
7
8
9
10
11
11
12
13
13
13
13
13
14
15
17
17
19
19
23
23
29
29
29
31
31
31
31
33
33
42
42
43
47
47
49
53
54
55
55
55
55
56
56
57
57
59
59
60
62
62
62
62
62
62
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
66
66
66
66
66
66
67
67
67
67
67
67
76
80
80
81
84
86
88
88
88
88
90
90
95
99
99
105
105
106
106
106
107
107
107
107
112
113
113
114
114
116
117
117
117
117
117
118
118
118
118
122
122
122
122
122
123
127
127
128
128
131
133
133
133
133
133
133
133
134
134
134
134
134
134
134
134
136
136
142
146
146
156
157
157
159
159
159
159
159
159
160
160
160
160
160
160
160
160
161
161
162
162
162
162
162
162
163
163
163
163
163
163
164
164
164
165
165
165
165
165
165
165
165
165
166
166
167
167
167
167
167
167
167
167
169
169
179
180
181
182
184
189
189
194
194
198
198
200
200
205
205
211
218
218
223
223
227
228
240
241
243
246
246
251
256
258
258
265
269
270
270
276
284
285
288
288
290
295
302
302
307
307
309
311
311
313
314
314
324
331
332
337
337
340
341
351
353
356
359
364
369
371
371
374
379
379
382
389
398
403
403
418
421
421
423
436
439
441
457
462
462
475
480
480
498
500
503
522
527
527
542
545
545
547
550
566
571
571
589
594
594
608
613
631
636
636
655
660
660
675
678
678
680
1078
1082
1083
9
10
11
13
13
13
13
13
14
14
14
14
16
18
18
18
18
18
20
20
23
30
31
31
31
31
32
32
32
32
34
34
40
40
43
48
49
49
49
49
54
56
56
56
57
57
57
57
58
58
60
60
60
60
60
61
61
61
61
62
62
63
63
63
63
63
63
63
63
64
64
64
64
64
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
70
70
70
70
77
79
79
81
81
82
85
85
87
89
89
90
90
91
91
96
100
100
103
104
105
105
106
107
107
109
113
113
113
115
115
115
116
117
118
118
118
118
119
119
119
123
123
123
123
123
124
128
128
129
129
131
133
134
135
135
135
135
135
135
135
135
135
135
143
147
147
157
158
158
158
158
158
158
160
160
160
160
160
160
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
162
162
162
162
163
163
163
163
163
163
164
164
164
164
164
164
165
165
165
166
166
166
166
166
167
167
167
167
167
169
169
170
180
182
182
182
185
185
199
199
201
201
206
206
211
219
219
219
219
224
224
228
228
229
229
240
242
244
247
247
255
257
266
269
271
271
277
277
277
281
286
289
291
310
312
312
314
315
315
324
332
332
332
333
338
338
341
341
342
342
352
353
354
354
357
360
368
370
375
380
380
382
390
390
390
399
404
404
419
422
424
437
440
440
442
442
458
463
463
476
481
481
499
501
504
523
528
528
543
545
546
548
550
567
572
572
590
595
595
609
611
611
614
632
637
637
656
661
661
676
679
681
1079
1083
1084
7
7
11
11
12
14
15
15
15
15
15
17
18
19
19
20
20
21
21
23
23
29
31
33
33
33
33
35
42
42
43
47
47
47
48
48
48
49
49
49
49
49
49
49
50
53
54
55
57
57
58
58
59
59
59
59
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
62
62
62
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
68
68
68
68
68
68
71
71
71
71
78
80
80
82
86
88
91
91
92
92
97
101
101
102
104
104
104
104
105
105
105
106
106
106
107
107
107
107
107
108
108
109
109
109
113
114
114
114
116
116
117
117
119
120
124
124
124
124
124
125
129
129
130
130
131
131
134
135
136
136
136
136
144
148
148
155
155
155
155
156
156
158
159
159
159
159
159
159
161
161
161
161
161
161
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
163
163
164
164
164
164
165
166
167
167
167
167
167
167
167
167
167
167
167
168
170
170
170
171
181
182
182
182
186
186
191
198
200
200
202
207
207
220
220
220
225
225
230
230
243
245
248
248
248
256
256
258
258
267
272
272
278
278
281
282
284
284
287
290
292
295
295
304
311
311
313
313
316
316
333
333
334
339
339
343
343
353
355
358
361
361
369
369
371
371
376
381
381
391
391
400
405
405
420
423
425
438
443
443
459
464
464
477
482
482
500
502
505
524
529
529
544
546
547
548
549
568
573
573
591
596
596
610
612
615
633
638
638
657
662
662
677
680
682
1080
1084
1085
7
7
8
8
8
8
13
15
16
16
16
18
18
18
21
21
22
22
23
24
32
33
34
34
34
36
40
40
43
47
47
48
48
49
49
49
49
49
49
50
50
50
50
51
54
55
56
57
57
58
59
59
60
60
60
60
60
61
61
61
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
79
81
81
83
83
83
87
87
88
88
89
92
92
93
93
98
102
102
103
103
104
105
105
105
105
105
106
106
106
106
106
106
107
108
108
108
109
109
114
115
115
115
120
121
123
123
125
125
125
125
125
126
130
130
131
131
132
132
133
133
133
135
136
136
145
149
149
156
156
156
156
157
157
157
157
157
157
157
157
157
157
159
160
160
160
160
160
160
160
160
160
160
162
162
162
162
162
162
162
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
164
164
167
167
168
168
168
168
168
169
170
171
172
173
180
182
183
183
187
187
191
198
203
208
208
219
220
220
220
220
221
221
226
226
228
229
229
229
231
231
240
240
244
246
249
249
249
249
249
256
258
259
259
268
273
273
277
278
278
278
278
279
281
285
285
288
291
293
293
296
296
304
311
312
317
317
332
333
333
333
333
334
335
340
340
341
342
342
342
344
344
353
353
354
356
359
362
362
362
362
369
371
372
372
377
382
382
390
391
391
391
391
392
401
406
406
421
424
426
439
444
444
460
465
465
478
483
483
501
503
506
525
530
530
545
548
548
549
550
569
574
574
592
597
597
611
613
616
634
639
639
658
663
663
678
681
683
1081
1085
1086
7
7
7
7
8
8
11
11
13
13
13
14
14
16
17
17
17
17
18
18
19
22
22
23
23
23
23
24
25
25
25
25
29
29
33
34
35
37
42
42
43
47
47
47
48
49
50
50
51
51
51
51
51
52
55
56
59
59
59
59
60
60
60
60
60
60
60
61
61
61
63
63
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
70
70
80
82
84
88
89
89
89
90
94
94
99
103
103
105
105
106
106
106
107
107
107
107
113
115
116
116
118
118
118
119
119
119
121
122
124
124
126
126
126
126
127
131
131
132
132
134
134
134
134
135
135
136
136
146
150
150
157
157
157
157
158
158
158
158
158
158
158
158
158
158
160
161
161
161
161
161
161
162
162
162
162
164
164
164
164
164
164
164
164
164
164
164
164
165
165
167
167
169
169
169
169
169
170
170
171
172
172
173
173
173
174
181
181
183
188
188
194
198
199
204
209
209
210
221
221
222
222
227
227
228
228
228
229
230
230
230
238
241
241
245
247
247
247
249
249
250
250
250
250
256
258
259
260
260
268
269
274
274
279
279
280
282
284
286
286
286
289
292
294
294
294
307
311
312
313
318
318
323
334
334
335
336
341
341
341
341
341
342
343
343
343
351
354
354
355
357
360
360
362
362
363
363
369
371
372
373
373
378
381
383
383
392
392
393
402
407
407
422
425
427
440
445
445
461
466
466
479
484
484
502
504
504
507
507
526
531
531
546
549
549
550
551
570
575
575
593
598
598
612
614
617
635
640
640
659
664
664
679
682
684
1082
1086
1087
11
13
14
15
15
16
16
17
18
18
18
18
19
19
19
20
23
23
23
24
24
25
25
29
34
34
34
35
36
38
40
40
42
43
47
50
51
51
51
51
52
52
52
52
54
57
57
57
57
58
58
58
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
62
62
62
62
62
62
62
62
62
63
63
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
67
67
67
68
68
71
71
81
83
85
90
90
90
91
95
95
100
103
104
104
104
105
105
106
107
107
114
114
116
117
118
119
119
119
120
120
122
123
125
125
127
127
127
127
128
132
132
133
133
135
135
136
136
136
136
136
136
136
136
147
149
149
151
151
158
158
158
158
158
158
158
158
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
159
160
160
160
160
160
160
160
160
160
161
162
162
162
162
163
163
163
163
164
164
164
164
164
164
164
164
165
165
166
166
168
168
170
170
170
170
170
171
172
173
174
175
184
189
189
194
199
200
205
210
210
211
211
211
211
220
220
222
222
223
228
228
230
231
231
231
239
239
246
250
251
251
251
251
256
256
259
260
269
269
269
269
270
275
275
278
278
280
280
284
285
290
293
295
307
312
313
314
319
319
324
324
324
324
333
333
335
335
337
342
342
343
344
344
344
352
352
356
358
361
363
364
364
369
369
372
373
379
382
382
382
382
384
384
391
391
393
393
403
408
408
423
426
428
441
446
446
462
467
467
480
485
485
503
508
508
527
532
532
547
549
550
550
551
552
571
576
576
594
599
599
613
615
618
636
641
641
660
665
665
680
683
685
1083
1087
1088
1
7
7
8
8
11
14
15
15
15
15
16
16
17
18
18
19
19
20
20
20
21
23
25
25
29
33
33
33
35
36
36
37
39
42
42
42
43
43
43
43
47
47
51
52
52
52
55
58
59
59
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
63
63
63
63
63
63
63
65
65
65
65
65
65
65
65
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
68
68
82
84
86
87
91
92
92
92
92
92
96
96
101
102
104
104
105
105
105
105
105
106
106
106
107
107
107
107
107
108
108
117
117
118
118
123
124
126
128
128
128
128
129
133
133
134
134
135
137
137
137
137
148
150
150
152
156
156
156
156
156
156
156
157
157
157
157
157
157
160
160
160
160
160
160
160
160
160
160
160
160
160
161
161
161
161
161
161
161
161
161
162
162
162
163
163
164
164
164
164
164
164
164
164
164
164
166
166
167
167
169
169
169
171
171
171
171
171
172
173
173
174
175
176
183
185
190
190
198
200
201
206
211
211
212
212
221
224
229
229
231
232
232
247
249
249
251
252
252
257
257
258
258
258
260
270
270
271
276
276
279
285
285
286
286
291
294
296
296
311
313
314
315
320
320
325
325
334
338
342
343
343
344
345
345
357
359
362
362
362
364
370
370
371
371
371
373
380
383
383
385
385
392
404
409
409
424
427
429
442
447
447
463
468
468
481
486
504
509
509
528
533
533
548
549
550
551
551
552
553
572
577
577
595
600
600
614
616
619
637
642
642
661
666
666
681
684
686
1084
1088
1089
1
1
8
8
8
9
9
11
15
16
16
17
18
18
18
18
18
20
20
21
22
22
22
22
22
23
24
25
25
26
26
32
33
34
36
36
36
36
36
36
38
38
40
40
40
40
43
44
44
47
52
52
52
53
56
57
59
59
60
60
60
60
60
60
60
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
66
66
67
67
67
67
67
68
68
79
83
85
85
87
87
88
93
93
93
97
97
102
103
103
104
104
104
105
106
106
106
106
107
108
108
108
109
109
116
116
116
124
125
127
129
129
129
129
130
134
134
134
135
135
135
137
137
149
151
151
153
155
155
157
157
157
157
157
157
157
158
158
158
158
158
158
160
160
160
160
160
160
160
160
161
161
161
161
161
161
161
162
162
162
162
162
162
162
162
162
163
165
165
165
165
167
167
168
168
170
172
172
172
172
172
173
174
174
175
176
177
183
186
189
191
191
194
199
201
201
207
212
212
212
220
222
225
230
230
230
241
248
250
253
253
259
259
259
259
270
272
277
277
278
280
287
287
292
295
296
297
302
307
312
314
314
316
321
321
325
333
335
339
343
343
344
344
354
358
360
363
363
372
372
372
372
381
383
386
386
391
393
405
410
410
425
428
430
443
448
448
464
469
469
482
487
505
510
510
529
534
534
549
549
550
550
551
552
552
554
573
578
578
596
601
601
615
617
620
638
643
643
662
667
667
682
685
687
1085
1089
1090
7
10
10
15
15
17
18
18
19
21
21
23
23
23
23
25
25
26
26
27
27
33
33
33
36
37
37
39
39
41
41
45
45
47
51
51
51
53
54
54
57
57
60
60
60
60
61
61
61
61
61
61
61
62
62
62
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
64
65
65
65
66
66
66
66
66
66
66
66
66
66
80
84
86
86
88
88
89
94
94
94
94
94
97
97
98
98
102
102
103
104
104
105
105
105
105
106
106
106
107
114
116
117
117
119
119
119
120
120
120
125
128
130
130
130
130
131
135
135
135
135
135
135
136
136
137
137
137
137
137
137
149
150
152
153
154
155
155
156
156
156
156
156
156
158
158
158
158
158
158
158
159
159
159
159
159
159
160
160
160
160
161
161
161
161
161
161
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
163
164
165
168
168
169
169
169
171
173
173
173
173
173
173
173
174
175
175
176
177
178
187
190
192
192
198
200
208
212
213
213
220
220
221
226
228
228
231
241
249
249
249
251
254
254
260
260
270
273
278
278
278
278
279
285
286
286
286
288
288
296
298
303
311
313
317
322
322
325
333
333
334
340
345
345
354
359
361
362
362
364
364
373
373
382
383
387
387
391
391
392
406
411
411
429
431
444
449
449
465
470
470
483
485
485
488
506
511
511
530
535
535
549
550
551
551
552
553
555
574
579
579
597
602
602
616
618
621
639
644
644
663
668
668
686
688
1086
1090
1091
8
8
10
18
19
19
20
22
22
24
24
24
24
24
25
27
27
27
27
28
28
34
37
38
38
40
40
40
42
42
45
51
52
54
54
54
54
54
55
56
57
57
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
68
68
68
68
81
85
87
87
89
89
91
91
95
98
98
99
99
103
103
104
104
104
104
105
105
105
105
106
106
106
108
115
115
117
118
119
120
120
120
121
121
123
126
127
129
129
131
131
131
131
131
132
136
136
136
136
137
137
138
138
138
138
150
151
153
153
153
153
153
154
154
154
155
155
155
155
155
156
156
157
157
157
157
157
157
157
157
157
157
157
157
157
157
159
159
159
159
159
159
159
159
159
159
159
159
159
160
160
160
160
160
160
160
160
162
162
162
162
163
165
165
165
169
169
169
169
169
170
170
172
173
174
174
174
174
174
175
177
178
183
183
188
191
191
193
193
199
199
201
201
209
214
214
219
220
221
222
227
229
232
232
249
249
250
250
250
255
255
260
274
277
278
279
279
279
280
285
285
285
286
287
287
287
296
296
297
299
304
304
312
312
314
314
318
323
323
332
333
334
335
341
345
346
346
362
362
362
363
363
365
373
383
388
388
390
391
392
393
407
412
412
430
432
445
450
450
466
471
471
484
486
489
507
512
512
531
536
536
549
551
552
552
554
556
575
580
580
598
603
603
619
622
640
645
645
664
669
669
687
689
1087
1091
1092
10
10
10
18
19
20
21
21
21
23
23
25
25
25
27
28
28
29
29
36
38
39
39
40
43
43
45
45
51
51
54
55
60
60
60
60
61
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
67
67
67
67
67
86
90
90
90
90
92
95
95
96
99
99
100
100
102
103
103
105
105
105
105
106
106
107
107
108
109
118
118
119
119
124
127
128
130
130
132
132
132
132
132
133
136
136
136
137
137
138
138
138
138
138
138
138
138
138
138
139
139
151
154
154
154
154
154
155
155
155
155
155
155
155
155
155
155
155
156
156
156
156
156
157
157
157
157
157
157
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
159
163
163
163
163
165
165
166
167
170
170
171
171
173
173
173
173
173
174
175
175
175
175
175
176
177
181
184
184
189
192
192
192
192
194
194
199
201
202
202
210
215
215
220
222
223
228
230
232
233
251
251
251
256
256
260
275
278
280
280
280
281
287
288
288
288
294
297
297
298
300
305
305
305
305
312
314
315
315
319
324
324
333
335
336
342
345
347
347
363
364
364
366
373
384
389
389
391
393
394
408
413
413
431
433
446
451
451
467
472
472
485
487
490
508
513
513
532
537
537
550
552
553
555
557
576
581
581
599
604
604
620
623
641
646
646
665
670
670
688
690
1088
1092
1093
8
8
10
15
18
18
20
20
20
22
24
24
25
25
26
27
27
27
29
29
30
30
33
36
36
40
40
40
44
44
45
46
55
56
61
61
61
61
62
62
62
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
67
68
68
68
68
68
68
68
87
91
91
93
93
96
96
96
97
99
99
101
101
101
103
103
103
105
105
106
108
108
109
110
117
117
117
125
128
129
131
131
133
133
133
133
133
134
136
136
136
137
137
138
138
139
139
139
139
139
139
140
140
155
155
155
155
155
156
156
156
156
156
156
156
156
156
156
156
157
157
157
157
157
158
158
158
158
158
158
159
159
159
159
159
159
159
159
159
159
159
159
162
162
167
167
167
168
171
171
172
172
172
173
174
174
174
175
176
176
176
176
177
178
182
182
190
190
192
192
193
193
195
195
199
201
202
203
203
211
216
216
220
221
223
229
231
234
247
252
252
252
257
257
276
278
279
281
281
281
286
288
289
289
292
295
295
299
301
303
305
305
306
306
312
314
315
316
316
320
325
325
333
334
336
343
348
360
364
365
365
367
385
390
390
391
392
394
409
414
414
425
432
434
447
452
452
468
473
473
486
488
491
509
514
514
533
538
538
549
551
553
556
558
577
582
582
600
605
621
624
642
647
647
666
671
671
682
689
691
1089
1093
1094
10
10
10
20
20
21
21
23
23
25
25
25
25
26
26
26
27
27
29
29
31
31
38
38
39
41
45
45
45
45
46
47
47
47
47
48
49
54
56
57
60
60
60
60
60
61
61
62
62
62
62
63
63
63
63
63
63
64
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
67
68
68
68
69
69
69
88
92
92
97
97
97
98
100
100
100
100
101
102
102
102
102
103
104
105
105
109
111
115
117
118
118
120
121
129
130
134
134
134
134
134
135
137
137
138
138
138
138
138
138
139
139
140
140
140
140
140
140
156
156
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
157
157
157
157
158
158
158
158
158
159
159
159
159
160
160
160
160
160
160
160
160
160
160
162
162
167
167
167
168
168
169
172
172
173
173
173
174
174
175
175
175
177
177
178
178
191
193
194
194
196
196
199
199
202
203
212
217
217
220
221
223
223
224
230
232
232
232
235
239
248
253
253
258
258
277
278
279
281
281
282
282
287
287
293
297
300
302
306
307
307
312
312
315
316
321
326
326
333
334
336
336
337
344
345
345
349
352
359
361
363
365
366
368
386
391
391
391
392
394
394
395
410
415
426
430
433
435
448
453
453
469
474
474
487
489
492
510
515
515
534
539
550
551
554
557
559
578
583
583
601
606
616
620
622
625
643
648
648
667
672
683
687
690
692
1090
1094
1095
2
8
8
10
10
10
10
18
18
21
22
26
26
27
27
27
27
27
27
28
30
30
30
30
32
32
36
36
39
40
42
45
45
45
46
46
47
47
47
48
48
49
49
50
51
54
54
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
64
64
64
64
65
65
65
65
65
65
66
66
66
66
66
67
67
67
67
67
67
68
68
69
70
70
70
89
89
93
93
94
97
97
98
99
101
101
102
102
102
102
103
103
103
104
104
104
104
105
105
105
108
110
110
112
112
116
116
120
120
120
121
121
121
130
131
135
135
135
135
135
135
136
137
137
137
137
137
137
137
137
138
138
138
139
139
139
139
140
141
154
154
155
155
155
155
157
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
159
160
160
160
160
160
160
163
163
163
163
163
163
163
168
169
169
170
170
172
172
173
173
174
174
176
176
176
178
178
179
184
192
192
192
194
197
197
200
200
201
201
201
203
211
213
218
218
224
224
225
230
231
233
233
233
236
240
248
248
252
252
254
254
259
259
259
269
278
281
281
282
282
283
283
297
298
301
303
305
305
307
313
313
314
314
314
316
322
324
327
327
337
337
338
343
345
346
346
347
347
350
353
361
361
364
365
365
366
367
369
372
382
387
392
392
395
395
396
411
414
414
416
431
434
436
449
454
454
470
475
475
488
490
493
511
516
516
535
538
538
540
553
555
558
560
579
584
584
602
604
604
607
621
623
626
644
649
649
668
671
671
673
688
691
693
1091
1095
1096
2
3
10
10
10
10
11
11
19
20
20
21
23
24
25
25
25
25
27
27
27
28
29
31
31
33
33
38
38
39
43
45
47
47
47
47
48
49
50
50
51
51
56
56
57
60
60
60
60
60
60
60
60
60
60
61
61
61
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
66
66
66
66
67
68
68
68
69
69
70
70
71
71
71
90
94
94
95
98
100
102
102
102
102
102
102
103
103
104
104
104
105
105
105
106
106
106
109
111
111
113
113
118
119
121
121
121
121
122
122
122
122
131
132
136
136
136
136
136
136
137
138
138
138
138
138
138
139
140
140
140
140
141
142
153
153
153
153
155
155
156
156
156
156
156
156
156
156
156
156
156
156
156
156
158
158
158
158
158
158
158
158
158
159
159
159
160
160
160
160
160
160
160
163
163
163
163
163
163
165
168
169
169
170
170
171
173
174
174
175
175
176
177
177
177
179
179
180
184
193
193
198
198
202
202
202
202
212
212
212
214
219
219
225
225
231
231
232
234
237
241
241
253
253
255
255
260
260
260
260
260
260
270
270
270
279
282
283
283
284
289
297
299
302
304
306
315
315
315
315
323
325
325
325
328
328
338
338
344
344
346
348
351
354
354
365
366
366
367
368
370
373
373
373
373
383
383
383
388
393
393
396
396
412
415
417
432
435
437
450
455
455
471
476
476
489
491
494
512
517
517
536
539
541
553
556
559
561
580
585
585
603
605
608
622
624
627
645
650
650
669
672
674
689
692
694
1092
1096
1097
3
4
8
12
12
18
18
21
24
25
26
26
27
27
27
28
28
30
32
32
32
32
34
34
36
36
39
44
45
46
47
47
47
48
48
48
49
50
51
51
51
52
52
54
54
57
60
60
60
60
60
60
60
60
61
61
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
63
63
63
64
64
64
64
64
64
64
66
66
68
70
71
71
72
72
72
91
95
95
96
97
97
99
99
99
101
102
103
103
103
103
103
103
103
104
104
104
105
105
106
110
112
112
114
114
118
119
120
121
121
122
122
122
122
123
123
132
133
137
137
137
137
137
137
137
137
138
138
138
138
138
139
139
139
139
139
139
139
139
140
140
141
141
142
143
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
155
155
155
155
156
156
157
157
157
157
157
157
157
157
157
157
157
157
157
157
158
158
158
158
158
159
159
159
159
159
159
159
160
160
160
160
160
160
160
161
163
169
170
171
172
174
176
176
176
178
178
178
180
180
181
192
192
194
194
199
199
203
203
213
213
215
220
220
223
233
235
238
242
242
242
242
252
254
254
256
261
261
261
261
271
271
280
281
283
285
289
300
303
305
305
305
307
316
316
324
326
326
329
329
336
347
349
352
355
355
355
355
365
366
367
367
368
371
374
374
384
384
389
394
394
394
413
416
418
433
436
438
451
456
456
472
477
477
490
492
495
513
518
518
537
540
542
557
560
562
581
586
586
604
606
609
623
625
628
646
651
651
670
673
675
690
693
695
1093
1097
1098
1
4
4
5
5
12
13
20
20
21
25
25
25
26
27
27
27
27
27
27
29
29
29
31
33
33
34
34
35
35
38
38
39
45
45
47
47
47
48
48
48
49
49
49
50
51
52
52
56
56
57
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
67
67
67
68
69
71
72
72
73
73
73
92
96
96
96
98
98
98
98
100
100
101
102
102
102
103
103
104
104
105
105
105
106
106
106
111
115
115
118
118
118
121
122
122
123
123
123
124
124
133
134
136
136
137
138
138
138
138
138
138
138
138
139
139
139
140
140
140
141
141
141
141
141
142
142
143
144
151
151
151
151
152
152
155
155
155
155
155
155
155
155
155
155
155
155
155
155
155
156
156
156
156
156
156
156
156
157
157
157
157
158
158
158
158
158
158
158
158
158
158
158
158
158
158
160
160
160
160
161
162
167
170
171
172
173
175
177
177
179
179
179
179
181
181
182
182
192
192
193
193
195
200
200
203
212
213
213
213
213
214
216
220
221
221
233
236
239
240
242
242
243
243
252
257
261
262
262
270
271
271
271
271
272
278
281
284
286
301
304
304
305
305
306
306
306
306
316
325
325
326
326
326
326
327
330
330
333
346
348
350
353
353
355
355
356
356
365
367
369
372
374
383
384
384
384
384
385
390
391
395
395
414
417
419
434
437
437
439
439
452
457
457
473
478
478
493
496
514
519
519
538
541
543
558
561
561
563
563
582
587
587
605
607
610
624
626
629
647
652
652
671
674
676
691
694
694
696
696
1094
1098
1099
1
1
5
5
6
6
8
8
13
18
18
20
21
26
27
27
27
27
28
28
28
30
30
32
35
35
36
36
36
36
38
39
46
47
47
49
49
50
50
50
51
52
54
54
57
60
60
60
60
61
61
61
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
68
69
70
72
72
73
74
74
74
93
97
97
101
101
101
102
103
103
103
105
106
106
106
107
107
112
116
116
116
119
119
119
119
121
121
121
122
122
122
122
123
123
124
134
135
137
137
139
139
139
139
139
139
140
141
141
141
142
142
142
142
142
143
143
144
145
152
152
152
152
153
153
153
153
153
153
153
153
153
153
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
159
159
159
159
159
159
159
159
159
159
160
160
161
161
161
161
162
163
167
167
167
168
171
172
173
174
176
176
176
178
178
180
180
182
182
183
183
194
194
196
201
201
203
214
214
215
217
220
221
222
223
223
233
237
240
243
244
244
248
252
253
258
261
263
263
272
272
273
278
279
281
281
282
285
287
289
289
302
307
307
307
307
316
326
327
327
328
331
331
333
334
336
336
346
349
351
354
356
357
357
361
365
366
368
370
370
373
373
374
385
385
386
391
391
392
394
394
396
396
415
418
420
435
440
440
453
458
458
474
479
494
497
515
520
520
539
542
544
559
564
564
583
588
588
606
608
611
625
627
627
630
630
648
653
653
672
675
677
692
697
697
1095
1099
1100
7
7
8
13
13
14
20
20
20
21
21
21
21
25
27
27
27
29
29
29
31
31
31
32
32
33
36
36
37
37
38
38
38
39
39
39
39
47
47
47
49
51
51
51
52
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
64
64
64
66
66
69
70
71
73
73
74
75
75
94
96
98
98
100
102
102
102
102
102
103
104
105
105
105
105
105
105
107
107
108
108
113
117
117
117
119
119
119
120
120
120
122
123
123
124
135
136
137
137
137
137
138
138
140
140
140
140
140
141
142
143
143
143
143
143
145
146
149
149
153
153
153
153
153
153
153
153
153
153
153
153
153
154
154
154
154
154
154
154
154
154
154
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
158
158
158
158
158
158
158
158
161
163
164
167
168
169
172
173
174
174
174
175
177
177
177
179
179
181
181
182
183
183
184
184
190
195
195
197
202
202
213
213
215
215
218
220
223
224
224
238
241
242
242
244
248
253
254
259
264
264
271
271
273
273
278
282
282
283
286
287
288
290
290
295
303
303
308
308
308
308
326
326
327
328
328
332
332
333
337
337
350
352
355
355
355
357
361
366
367
369
374
374
384
384
386
386
391
392
395
395
397
397
416
419
421
436
441
441
454
459
459
475
480
495
498
516
521
521
540
543
545
560
565
565
584
589
589
607
609
612
626
631
631
649
654
654
673
676
678
693
698
698
1096
1100
1101
4
4
8
8
8
12
12
12
14
15
15
18
18
21
22
22
29
30
30
32
32
33
33
33
34
36
36
38
38
39
40
40
48
49
49
49
50
50
52
52
52
54
54
56
57
57
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
64
64
65
65
71
71
72
72
72
74
74
75
76
76
95
97
97
97
97
97
97
97
98
99
99
102
102
102
103
103
103
103
103
103
104
105
105
105
105
105
106
106
106
106
109
109
114
118
118
119
119
120
120
121
121
121
122
123
124
124
125
136
137
137
138
138
138
138
139
140
140
141
141
141
141
141
142
143
144
146
147
149
149
149
149
149
150
150
153
153
153
153
153
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
154
155
155
155
155
155
155
155
155
155
155
155
155
156
156
158
158
159
159
159
159
162
164
165
167
168
169
170
170
173
174
175
175
175
175
178
179
179
180
180
182
182
183
184
184
185
185
191
196
198
203
203
214
219
221
221
221
223
224
225
225
225
233
233
233
237
239
242
243
252
254
255
260
265
265
272
279
281
283
283
283
284
287
288
288
289
296
304
304
309
309
309
327
328
333
333
334
336
338
338
338
346
346
351
353
356
356
365
367
368
370
375
375
385
392
393
394
396
396
396
398
398
417
420
422
437
442
442
455
460
460
476
478
478
481
490
494
496
499
517
522
522
541
544
546
553
561
566
566
585
590
590
608
610
613
627
632
632
650
655
655
674
677
679
694
699
699
1097
1101
1102
5
5
5
5
9
9
9
12
13
15
15
15
15
15
23
23
25
25
25
29
30
31
31
33
33
34
34
34
35
39
39
41
41
47
47
49
49
51
51
53
56
56
56
57
57
57
57
60
60
60
60
60
60
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
64
64
64
64
64
65
65
66
66
72
73
73
75
76
77
77
96
98
98
98
98
98
98
99
99
99
99
100
100
100
101
102
102
103
103
103
103
103
103
105
105
105
105
105
105
105
106
106
106
107
107
107
107
110
110
115
119
119
119
119
119
120
120
121
121
121
122
122
123
125
126
137
138
138
138
139
139
139
140
141
141
141
141
142
142
142
142
144
145
147
148
150
150
150
150
150
151
151
153
153
153
153
154
154
154
154
154
155
155
155
155
155
155
155
155
155
156
156
156
156
156
156
156
156
158
158
158
158
159
159
159
159
159
159
159
161
161
163
165
165
166
169
173
179
180
180
181
181
183
183
183
183
184
184
185
185
185
185
186
186
191
191
195
195
197
199
202
204
204
213
215
220
222
223
224
225
231
234
234
238
240
242
242
243
244
248
253
255
255
260
261
266
266
271
273
281
282
285
288
290
297
297
304
304
305
308
308
310
310
310
315
326
328
329
334
334
336
337
344
347
347
352
354
355
355
357
357
361
366
368
368
371
373
376
376
384
386
394
394
395
399
399
418
421
423
438
443
443
456
461
461
477
479
482
495
497
500
518
523
523
542
545
547
551
553
554
562
567
567
586
591
591
609
611
614
628
633
633
651
656
656
675
678
680
695
700
700
1098
1102
1103
10
10
10
10
12
12
15
16
18
23
25
26
26
30
30
30
31
31
32
32
34
34
35
36
36
36
36
36
36
40
40
41
49
49
49
50
52
52
54
54
54
57
58
58
60
60
60
60
60
60
60
60
60
60
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
63
63
63
63
63
63
63
66
66
73
73
74
74
74
76
76
77
77
78
78
97
97
97
98
98
99
99
100
100
101
101
101
101
102
103
103
103
103
104
104
104
104
106
106
106
107
107
107
108
108
108
108
111
111
116
117
120
120
120
120
120
121
121
121
123
124
124
124
125
125
126
127
138
138
138
139
139
139
140
141
141
141
141
141
141
141
141
142
142
142
142
143
143
143
145
146
148
149
151
151
151
151
151
151
151
152
152
152
152
154
154
154
154
154
154
154
154
154
154
154
154
154
154
155
155
155
155
155
156
156
156
156
156
156
156
156
156
156
156
156
156
157
157
158
158
158
159
159
159
159
159
159
159
161
161
164
166
166
167
170
170
173
174
177
180
181
181
182
182
185
185
185
185
186
186
186
186
187
187
196
196
198
200
203
203
203
203
205
205
213
213
214
221
223
224
224
225
225
226
232
232
239
241
242
242
243
243
244
252
254
261
261
261
261
262
267
267
271
271
272
282
282
283
283
289
290
291
298
298
298
298
306
309
309
311
311
311
316
316
316
316
326
326
327
330
335
335
337
337
338
338
345
345
355
355
355
356
356
358
365
367
372
374
374
374
374
377
377
384
384
385
395
395
395
396
396
400
400
422
424
439
444
444
457
462
462
478
480
483
496
498
501
519
524
524
546
548
552
554
563
568
568
587
592
592
612
615
629
634
634
652
657
657
679
681
696
701
701
1099
1103
1104
4
5
11
11
11
11
16
17
18
23
23
25
27
29
29
29
31
31
32
32
32
33
33
35
35
36
37
37
37
41
41
41
41
47
47
48
49
49
49
49
49
51
53
55
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
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
63
63
63
63
63
64
64
64
64
64
77
77
78
78
79
79
95
96
98
98
98
98
98
100
101
102
102
102
104
104
105
105
107
107
107
107
108
108
108
109
109
112
112
117
117
119
121
121
121
122
124
125
125
125
126
126
127
128
137
139
140
141
141
141
142
142
142
142
142
142
142
142
142
142
143
143
143
143
144
144
146
147
149
150
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
155
155
155
155
155
155
155
155
155
155
155
155
155
155
156
156
156
156
156
156
156
156
156
157
157
165
168
171
171
174
175
177
178
181
182
182
183
183
183
185
185
186
186
187
187
187
187
188
188
195
197
197
201
204
204
206
206
212
213
214
215
222
224
226
226
227
240
242
244
244
245
253
253
255
255
262
262
263
268
268
270
271
272
273
284
284
290
290
292
296
298
298
299
299
307
308
310
310
312
312
317
317
325
326
327
328
331
336
336
339
339
356
357
357
359
366
366
368
368
373
375
375
378
378
383
384
385
386
396
397
397
401
401
423
425
440
445
445
458
463
463
479
481
484
497
499
502
520
525
525
547
549
552
564
569
569
588
593
593
613
616
630
635
635
653
658
658
680
682
697
702
702
1100
1104
1105
5
5
6
8
12
12
15
17
18
18
18
23
24
29
30
32
32
32
32
32
32
33
36
36
36
36
38
38
38
38
38
41
41
41
42
42
42
47
48
48
49
49
49
49
49
49
50
50
50
52
54
54
56
57
57
59
59
59
60
60
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
65
65
69
70
72
74
75
76
78
78
78
79
79
80
80
80
96
96
97
98
99
99
99
100
101
102
102
103
104
104
104
105
105
105
106
106
108
108
108
108
109
110
110
113
113
118
118
119
120
120
120
122
122
123
126
126
127
127
137
138
140
141
141
142
142
143
143
143
143
143
143
143
143
144
144
144
144
145
145
145
146
147
148
150
151
152
153
153
153
153
153
153
153
153
153
153
153
154
154
154
154
154
154
154
154
156
156
156
156
156
156
156
156
156
156
156
156
156
156
160
166
166
166
169
170
170
170
172
172
179
182
182
183
183
184
184
184
186
187
187
188
188
188
188
189
189
195
202
204
207
207
213
215
216
223
224
225
225
225
225
227
227
228
234
240
241
243
245
245
246
253
255
256
256
262
264
269
269
271
273
274
282
283
283
283
285
285
291
293
299
300
300
308
308
313
313
317
326
328
329
332
337
337
337
338
338
338
340
340
347
353
357
358
358
360
366
368
369
369
374
375
379
379
384
386
387
395
396
396
396
397
398
398
402
402
424
426
441
446
446
459
464
464
480
482
485
498
500
503
521
526
526
548
550
554
565
570
570
589
594
594
614
617
631
636
636
654
659
659
681
683
698
703
703
1101
1105
1106
4
5
5
5
6
9
12
13
13
15
15
23
23
24
25
25
25
25
29
29
32
33
33
35
35
37
37
39
41
41
42
42
42
43
43
43
43
43
43
47
47
47
48
49
50
50
51
51
51
51
54
54
55
57
57
57
57
57
57
57
57
57
59
59
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
61
61
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
64
65
65
65
65
73
75
76
77
78
79
79
79
80
81
81
81
96
97
99
99
99
99
99
100
100
100
100
100
100
100
100
101
102
102
102
103
103
103
104
105
105
105
105
105
106
106
106
107
107
109
109
110
111
111
111
111
114
114
114
114
118
118
119
121
121
121
122
122
123
124
124
124
125
125
137
138
140
140
140
141
141
142
142
142
143
143
143
143
143
143
143
144
145
145
145
145
145
146
146
146
147
147
147
148
148
148
149
151
152
154
154
154
154
154
154
154
154
154
154
154
154
154
155
155
155
155
155
155
155
155
157
157
157
157
157
157
157
157
157
157
160
160
161
164
165
166
166
166
166
167
167
170
170
171
171
171
177
177
180
184
184
185
185
185
185
185
187
189
189
189
189
190
190
191
195
196
203
204
208
208
213
214
216
224
224
224
224
225
226
226
226
226
229
234
241
242
244
244
246
247
247
253
255
256
257
257
262
265
270
270
271
272
274
282
282
282
283
284
284
284
285
290
290
292
294
298
298
300
304
308
309
309
314
314
317
326
327
329
333
337
337
337
338
338
338
339
339
339
347
352
354
356
358
359
361
366
368
369
370
370
375
375
380
380
384
385
387
395
395
395
396
397
397
397
398
403
403
418
425
427
442
447
447
460
465
465
481
483
486
499
501
501
504
504
522
527
527
542
549
551
554
566
571
571
590
595
595
609
613
615
618
632
637
637
655
660
660
675
682
684
699
704
704
1102
1106
1107
5
6
6
6
7
10
14
14
17
17
18
18
23
23
23
25
25
33
34
34
34
34
36
36
38
38
39
39
40
41
41
41
43
43
43
43
44
44
47
48
49
50
50
51
51
51
51
52
52
52
54
54
54
56
56
57
57
57
57
57
57
57
58
58
59
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
64
64
64
66
66
74
76
77
78
79
79
80
80
80
80
81
82
82
82
97
97
97
97
97
97
97
97
98
100
100
100
100
101
101
101
101
101
101
101
103
103
103
103
103
103
103
104
105
105
105
105
105
105
105
105
106
106
106
106
107
107
107
108
110
110
111
115
115
115
115
120
120
120
121
121
122
122
122
123
123
124
124
125
125
125
125
126
126
140
141
141
141
141
142
142
142
142
142
142
142
142
142
143
143
143
144
144
144
144
144
144
144
145
146
147
147
147
147
147
147
147
148
148
148
149
149
149
149
149
149
149
149
150
150
150
150
150
150
151
151
151
151
152
152
153
153
155
155
155
155
155
155
155
155
155
155
155
155
155
155
155
155
155
155
156
156
156
156
156
156
156
156
156
156
160
160
160
161
162
165
166
166
167
168
168
171
171
172
172
172
175
178
178
181
185
185
186
186
186
186
190
190
190
190
191
191
191
196
197
204
209
209
213
214
216
216
217
225
226
227
227
227
227
230
241
241
243
245
245
247
248
248
253
253
256
257
266
271
271
271
272
274
274
275
284
285
285
285
286
288
290
291
291
293
295
299
304
309
310
310
315
315
326
327
329
329
330
334
339
339
339
340
340
340
354
354
357
358
358
359
360
362
366
366
369
370
376
381
381
384
385
387
387
388
397
398
398
398
399
404
404
419
423
426
428
443
448
448
461
466
466
482
484
487
500
505
505
523
528
528
543
547
550
552
567
572
572
591
596
596
614
616
619
633
638
638
656
661
661
676
680
683
685
700
705
705
1103
1107
1108
1
4
5
5
5
5
5
5
6
7
7
8
11
15
15
15
15
18
23
32
34
35
35
37
37
39
39
40
40
40
41
41
43
43
45
45
47
47
47
48
49
50
51
51
52
52
52
55
57
57
57
57
57
57
57
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
61
62
62
63
63
63
63
63
63
64
79
80
81
82
83
83
83
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
100
100
102
103
103
104
104
104
104
104
104
104
106
106
106
106
107
107
107
107
108
108
108
108
109
111
111
112
116
116
116
116
120
121
121
123
124
124
124
124
125
125
125
125
126
126
126
127
127
139
142
142
142
143
143
143
143
144
144
145
145
145
145
145
145
145
146
147
148
148
148
148
148
148
148
149
149
149
149
149
149
149
150
150
150
150
150
150
151
151
151
151
152
152
152
152
153
153
154
154
156
156
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
161
162
163
166
167
168
169
169
170
172
172
173
173
176
176
182
185
185
186
186
187
187
187
187
191
191
191
191
192
192
195
197
198
205
210
210
217
217
218
225
226
227
228
228
228
231
244
246
246
248
249
249
254
254
255
255
255
257
267
272
272
275
275
276
283
285
286
286
289
289
291
294
296
298
298
300
308
310
311
311
316
316
330
330
331
335
338
340
340
340
341
341
358
359
359
360
361
363
367
367
368
368
368
370
377
382
382
388
388
389
396
398
399
399
400
405
405
424
427
429
444
449
449
462
467
467
483
485
488
501
506
506
524
529
529
548
551
553
568
573
573
592
597
597
615
617
620
634
639
639
657
662
662
681
684
686
701
706
706
1104
1108
1109
1
1
5
6
6
7
8
8
9
12
16
16
17
17
18
23
24
25
25
29
32
32
36
40
40
41
41
41
41
42
42
43
43
44
44
44
44
46
46
47
47
50
51
52
52
52
52
53
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
59
59
59
59
59
59
59
60
60
60
60
61
61
61
61
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
80
81
81
82
82
83
84
84
84
98
98
99
99
99
99
100
100
100
101
101
102
103
104
104
105
105
105
107
107
107
107
108
108
108
108
108
109
109
109
109
110
110
112
112
113
113
117
117
117
117
122
122
122
124
125
125
126
126
126
126
127
127
127
127
128
128
128
141
142
142
142
143
143
144
144
144
145
145
146
146
146
146
146
147
147
147
148
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
150
150
150
150
150
150
150
150
150
151
151
151
151
151
151
152
152
152
152
153
153
153
153
154
154
155
155
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
158
162
163
167
168
169
170
170
171
171
173
183
185
185
186
186
187
187
188
188
188
191
192
192
192
192
193
193
196
198
198
206
211
211
218
218
226
226
229
232
245
245
247
247
250
250
256
256
256
256
268
273
273
276
276
284
284
292
295
297
298
298
299
299
304
309
311
311
312
317
317
331
331
336
339
339
341
358
359
360
360
361
364
369
369
369
369
378
383
383
389
389
397
397
401
406
406
425
428
430
445
450
450
463
468
468
486
489
502
507
507
525
530
530
549
552
554
569
574
574
593
598
616
618
621
635
640
640
658
663
663
682
685
687
702
707
707
1105
1109
1110
5
5
5
5
8
9
9
10
13
15
15
17
17
18
23
25
25
26
26
33
34
34
35
37
38
41
41
41
42
43
43
43
44
44
45
45
47
47
47
51
51
51
51
52
53
54
54
57
57
57
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
81
82
83
83
84
84
85
85
85
95
96
96
99
99
99
99
99
99
100
100
100
100
100
100
100
100
100
100
100
100
101
101
102
102
104
104
104
104
104
104
105
106
108
108
108
108
108
108
108
108
109
110
110
110
110
113
113
114
114
118
118
118
118
118
118
122
123
123
125
125
126
127
127
127
127
128
128
128
128
128
129
129
141
141
141
142
143
143
143
144
144
144
144
145
147
147
147
147
147
147
147
148
148
148
149
149
149
149
149
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
151
151
151
151
151
152
152
152
152
152
152
152
152
152
152
152
152
152
152
153
153
153
153
154
154
154
154
155
155
156
156
156
157
157
157
157
157
157
157
157
157
168
169
170
171
171
174
178
184
187
187
188
188
189
189
189
193
193
193
193
194
194
195
197
207
212
212
216
230
232
233
245
246
251
251
257
257
269
274
274
291
293
296
298
300
300
308
310
313
318
318
329
337
342
345
358
360
362
365
370
370
379
384
384
387
402
407
426
429
431
446
451
451
464
469
469
487
490
503
508
508
526
531
550
553
555
570
575
575
594
599
617
619
622
636
641
641
659
664
683
686
688
703
708
708
1106
1110
1111
4
5
5
5
6
6
6
6
6
8
9
10
11
14
17
17
18
18
18
25
27
27
32
32
35
38
39
42
42
42
43
44
45
45
46
46
46
46
48
48
51
52
52
54
54
54
54
54
57
57
57
57
58
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
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
82
84
85
85
86
86
86
96
96
97
97
97
97
97
97
97
97
97
97
97
98
100
100
100
100
100
101
101
101
101
101
101
101
101
101
102
103
103
104
104
104
104
104
104
105
105
106
107
107
108
108
109
109
109
109
109
109
109
109
110
114
114
115
115
118
119
119
119
119
120
122
122
123
124
124
124
125
126
126
126
127
128
128
128
128
129
129
129
130
130
143
144
144
144
146
147
147
148
148
148
148
148
149
149
149
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
151
151
151
151
151
151
151
151
151
151
151
151
151
151
151
151
152
152
152
152
152
153
153
153
153
153
153
153
153
153
153
156
156
157
157
160
169
170
171
172
172
173
175
175
178
183
185
188
188
189
189
190
190
190
194
194
194
194
195
195
196
196
198
198
203
208
213
213
213
228
231
233
234
241
245
246
247
252
252
257
261
270
271
273
273
275
286
291
294
296
297
297
299
299
301
301
309
309
311
311
314
316
319
319
326
338
340
340
341
343
346
354
358
359
361
363
363
366
366
370
374
380
384
385
385
399
403
406
406
408
427
430
430
432
432
447
452
452
465
470
470
488
491
504
509
509
527
530
530
532
551
554
554
554
556
556
571
576
576
595
597
597
600
618
620
620
623
623
637
642
642
660
663
663
665
684
687
687
689
689
704
709
709
1107
1111
1112
4
5
5
5
5
5
6
7
7
7
9
9
10
10
11
12
15
15
15
17
17
17
18
19
19
25
25
27
34
34
35
39
40
43
43
43
43
43
43
45
45
47
47
48
48
49
49
51
51
54
55
57
57
57
57
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
76
77
81
82
83
85
86
86
87
87
87
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
100
100
106
106
107
107
108
108
109
109
110
110
110
110
110
110
110
110
111
115
115
116
116
120
120
120
120
121
123
123
124
125
125
125
125
125
125
126
126
127
127
128
129
129
129
129
130
142
144
145
145
146
146
146
146
146
146
147
148
148
149
149
149
149
149
149
149
149
149
150
150
150
150
150
151
151
151
151
151
151
151
151
151
151
151
151
151
151
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
153
153
153
154
154
154
154
154
154
154
154
154
154
157
157
158
158
160
160
160
161
169
171
173
176
176
184
186
189
190
190
191
191
191
195
195
195
195
196
196
196
198
199
199
204
204
204
209
213
214
214
214
216
216
226
228
230
232
234
234
235
241
246
247
248
253
253
257
262
262
262
271
271
272
274
274
274
276
286
295
297
300
300
302
309
311
312
312
315
317
317
317
320
320
326
327
329
329
339
341
341
344
347
347
354
359
360
362
367
367
370
375
375
375
381
384
385
386
386
387
387
399
404
407
409
428
433
433
448
453
453
466
471
471
483
487
489
492
505
510
510
528
531
533
552
552
554
555
557
557
572
577
577
596
598
601
619
624
624
638
643
643
661
664
666
685
690
690
705
710
710
1108
1112
1113
5
7
8
8
8
10
11
12
13
16
17
17
17
18
18
18
18
18
18
20
27
27
27
32
32
35
40
44
44
44
45
45
45
46
49
49
50
50
55
56
57
57
57
57
57
57
57
57
57
59
59
59
59
60
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
64
64
82
83
84
87
88
88
88
98
98
98
99
99
99
99
100
100
101
101
103
107
107
107
107
108
108
109
109
110
110
111
111
111
111
111
111
112
116
116
117
117
121
121
121
121
122
123
125
125
125
126
126
126
126
126
127
127
127
127
127
128
128
128
128
128
129
130
130
130
143
143
144
144
146
146
147
147
147
147
148
149
149
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
151
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
153
153
153
153
153
153
153
153
153
153
153
153
153
153
154
154
154
155
155
155
155
155
155
155
155
155
155
158
158
159
159
160
161
162
171
172
177
177
184
184
187
188
188
190
191
191
192
192
192
196
196
196
196
196
197
197
198
199
200
200
205
205
210
213
215
215
217
217
231
233
235
235
235
235
236
245
247
248
249
254
254
263
263
271
272
275
275
275
277
296
297
297
301
301
301
301
303
309
311
312
313
313
316
318
318
321
321
326
330
330
340
342
345
348
348
348
348
358
360
361
363
368
368
376
376
382
384
387
387
388
388
405
408
410
429
434
434
449
454
454
467
472
472
488
490
493
506
511
511
529
532
534
553
553
555
558
558
573
578
578
597
599
602
620
625
625
639
644
644
662
665
667
686
691
691
706
711
711
1109
1113
1114
5
5
8
9
9
11
11
12
12
13
14
15
15
17
18
19
19
19
19
21
25
25
27
34
34
35
41
41
41
43
43
43
43
45
45
45
45
45
46
46
47
48
49
50
50
51
51
54
56
57
59
59
59
59
59
59
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
63
63
63
63
63
63
63
64
65
65
83
84
85
88
89
89
89
95
96
96
98
99
99
99
99
99
99
100
100
100
100
100
100
100
100
100
100
100
100
100
101
103
103
103
107
108
108
108
108
109
109
109
109
112
112
113
117
117
118
118
122
122
122
122
123
125
126
127
127
127
128
128
128
128
129
129
129
129
131
131
145
145
145
145
149
150
150
151
151
151
151
152
152
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
153
154
154
154
154
154
154
154
154
154
154
154
154
154
154
155
159
159
160
160
160
161
162
163
163
171
173
173
173
178
178
188
189
189
191
192
192
193
193
193
196
196
197
197
197
197
198
198
199
200
204
205
205
205
205
206
211
214
216
216
218
218
218
228
228
232
233
234
235
235
236
236
237
241
246
248
248
250
255
255
262
263
263
263
263
264
272
273
274
276
276
276
276
278
286
286
297
302
302
302
302
304
309
309
312
313
317
317
318
318
318
318
319
322
322
327
329
331
331
331
341
341
341
343
346
346
348
348
349
349
354
359
361
361
364
369
369
375
376
376
376
376
377
383
385
387
388
388
389
389
389
399
399
406
409
411
430
435
435
450
455
455
468
473
489
491
494
507
512
512
530
533
535
553
554
559
559
574
579
579
598
600
603
621
626
626
640
645
645
663
666
668
687
692
692
707
712
712
1110
1114
1115
5
5
6
7
9
9
10
12
13
13
14
14
15
18
20
20
20
22
27
27
27
32
32
34
35
42
44
44
45
45
45
46
46
47
47
47
47
48
48
48
49
49
50
51
52
52
54
54
57
57
57
57
57
57
57
57
57
57
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
63
63
64
64
66
66
85
85
86
86
86
89
90
90
90
96
96
97
97
97
97
97
97
97
97
97
97
97
98
100
100
100
100
100
101
101
101
101
101
101
101
101
101
108
109
109
109
109
113
113
114
118
118
119
119
123
123
123
123
123
123
126
127
128
129
129
130
130
132
132
145
145
145
145
145
150
152
152
152
152
152
152
152
152
152
152
152
152
152
154
155
155
155
155
155
155
155
155
155
155
155
155
156
158
160
160
161
161
162
171
174
174
174
176
179
179
188
189
190
190
193
193
194
194
194
197
197
198
198
198
198
198
198
198
199
199
200
206
206
207
212
216
217
217
226
229
229
233
235
236
237
237
238
245
247
251
256
256
256
264
264
265
274
274
275
277
279
284
287
287
289
298
301
303
303
303
303
310
310
311
311
311
313
318
319
319
320
323
323
329
330
339
342
342
342
344
347
349
350
350
358
360
365
369
370
370
377
377
378
384
387
388
389
389
397
400
400
407
410
412
431
436
436
451
456
456
469
474
490
492
495
508
513
513
531
534
536
555
555
560
560
575
580
580
599
601
604
622
627
627
641
646
646
664
667
669
688
693
693
708
713
713
1111
1115
1116
5
5
8
9
10
11
14
15
15
15
16
19
20
21
23
25
25
27
34
34
34
35
35
35
35
43
43
43
45
45
45
45
45
45
47
47
47
48
48
48
48
49
49
50
50
51
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
61
61
61
61
62
62
62
62
62
62
63
63
63
63
63
63
64
67
67
86
87
87
90
91
91
91
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
100
100
107
109
110
110
110
111
111
111
111
111
111
114
114
115
119
119
120
120
124
124
124
124
124
124
125
125
125
127
129
129
130
133
133
142
142
143
145
145
145
145
145
145
145
145
145
145
145
145
146
146
146
146
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
150
150
151
152
152
152
152
152
153
155
155
155
155
155
155
155
155
155
155
156
156
156
156
157
159
159
161
161
162
162
163
163
172
172
175
177
180
180
188
190
194
194
195
195
195
199
199
199
199
199
199
199
199
200
200
205
205
207
207
213
215
215
217
217
218
218
218
227
227
234
235
235
236
237
239
246
246
248
248
252
257
257
257
257
257
257
263
263
265
265
275
275
275
276
276
278
280
285
285
290
299
301
304
304
312
312
312
312
318
318
319
320
320
324
324
330
330
331
331
340
340
343
345
348
348
348
350
359
359
361
361
366
370
370
370
370
371
371
376
376
378
378
385
388
388
389
389
390
390
398
398
408
411
413
432
437
437
452
457
457
470
472
472
475
491
493
496
509
514
514
532
535
537
555
556
561
561
576
581
581
600
602
605
623
628
628
642
647
647
665
668
670
689
694
694
709
714
714
1112
1116
1117
5
7
8
8
8
8
9
9
10
11
11
12
12
12
15
15
16
16
17
20
20
22
24
27
27
27
32
32
35
36
36
40
44
45
45
45
45
45
46
46
46
47
48
48
49
49
50
50
50
50
50
50
51
51
52
54
54
54
54
54
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
64
64
68
68
87
87
88
88
88
90
90
90
91
91
92
92
92
98
98
98
99
99
99
99
100
100
101
101
108
108
109
109
111
111
111
112
112
112
112
113
113
115
115
116
120
120
121
121
125
125
125
125
126
126
126
126
128
129
129
130
130
134
134
141
141
141
141
141
143
143
144
144
145
145
145
145
145
145
145
145
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
147
147
147
147
147
147
147
147
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
150
150
150
150
150
150
150
150
150
150
152
152
152
154
155
155
155
155
155
155
155
155
155
156
157
157
157
157
158
159
162
162
163
163
164
164
176
178
178
181
181
184
188
189
191
195
195
196
196
196
200
200
200
200
200
200
201
201
206
214
216
219
219
219
235
236
237
237
240
240
246
248
249
249
253
258
258
258
258
264
276
277
277
279
281
291
291
297
300
301
302
305
305
313
313
319
320
325
325
332
332
344
346
349
349
359
361
362
362
367
371
371
372
372
377
386
390
390
391
391
409
412
414
433
438
438
453
458
458
471
473
476
492
494
494
497
497
510
515
515
533
536
538
557
562
562
577
582
582
601
603
606
624
629
629
643
648
648
666
669
671
690
695
695
710
715
715
1113
1117
1118
5
9
10
11
11
11
11
11
12
12
12
13
15
15
17
17
18
20
21
21
23
23
25
25
25
25
27
27
27
27
37
37
43
45
46
47
47
47
47
48
49
49
49
50
51
51
51
51
52
52
55
55
56
56
57
57
57
57
57
59
59
59
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
65
69
69
89
91
91
91
92
92
93
93
95
96
96
98
99
99
99
99
100
100
100
100
100
100
100
100
100
100
100
101
110
110
110
110
112
114
114
116
117
121
121
122
122
126
126
126
126
127
127
129
129
129
129
130
130
130
130
131
135
135
142
142
142
142
142
144
144
146
146
146
146
146
146
146
146
146
146
147
147
147
147
147
147
147
147
147
147
147
147
147
147
147
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
149
149
149
149
149
149
149
149
149
149
149
149
149
149
151
151
151
151
151
151
151
151
151
151
152
152
153
155
157
158
158
158
158
159
159
160
161
161
163
163
163
163
163
164
164
165
165
174
177
179
179
179
179
182
182
184
189
190
192
196
196
197
197
197
200
201
201
201
201
202
202
205
207
215
217
217
218
218
218
220
220
220
229
235
235
236
237
241
241
246
248
249
250
250
254
258
259
259
263
265
275
276
276
276
277
278
278
280
282
287
292
292
292
292
297
301
302
303
306
306
313
318
320
321
326
326
330
331
331
331
333
333
342
345
347
348
348
350
350
359
361
362
363
363
368
371
373
373
376
378
387
388
389
389
389
391
391
392
392
400
410
413
415
434
439
439
454
459
459
472
474
477
493
498
498
511
516
516
534
537
539
558
563
563
578
583
583
602
604
607
625
630
630
644
649
649
667
670
672
691
696
696
711
716
716
1114
1118
1119
8
8
12
12
13
13
13
14
18
18
19
20
20
21
22
22
22
22
22
24
24
26
26
27
27
27
27
28
28
32
37
47
47
47
48
48
48
49
50
50
51
52
52
52
52
52
52
54
54
55
55
56
56
57
57
57
57
57
57
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
66
68
68
70
70
83
84
88
89
90
92
92
92
93
93
94
94
96
96
97
97
97
97
97
97
97
97
100
100
100
101
101
101
101
101
101
101
110
110
110
113
115
115
117
118
122
122
123
123
127
127
127
127
127
130
130
131
131
132
136
136
143
143
143
143
143
145
145
145
145
146
146
146
147
147
147
147
147
147
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
149
149
149
149
149
149
149
149
149
149
149
149
149
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
152
152
152
152
152
152
152
152
152
152
154
156
159
159
159
159
159
159
159
160
161
162
162
163
164
164
164
164
164
165
165
174
177
178
179
179
180
180
183
183
188
190
191
193
197
197
198
198
198
200
202
202
202
202
203
203
205
205
206
216
217
217
217
218
218
219
219
219
221
229
235
235
236
236
237
242
242
246
246
249
250
255
258
260
260
263
263
264
275
275
275
276
277
277
277
281
283
287
290
292
292
293
293
301
302
303
304
307
307
313
318
318
319
322
327
327
330
330
330
331
332
332
332
342
348
348
348
349
349
351
359
359
362
363
369
371
374
374
376
376
377
388
388
388
388
389
390
390
390
393
393
400
414
416
435
440
440
455
460
460
473
475
478
494
499
499
512
517
517
538
540
559
564
564
579
584
584
605
608
626
631
631
645
650
650
671
673
692
697
697
712
717
717
1115
1119
1120
1
1
5
9
13
13
14
14
15
15
15
16
16
19
19
20
20
20
20
22
22
23
25
25
25
27
27
29
29
32
37
37
43
43
43
47
48
49
49
49
49
51
51
51
52
53
56
56
56
56
57
57
57
57
57
60
60
61
61
61
61
62
62
62
62
62
63
63
63
63
63
63
63
63
67
69
69
71
89
90
91
92
93
93
94
94
94
95
95
98
98
98
98
98
98
108
110
111
111
112
112
112
112
112
112
114
116
118
119
123
123
124
124
126
127
128
128
128
128
130
131
133
137
137
144
144
144
144
144
144
144
144
144
144
146
147
147
148
148
148
148
148
148
148
148
148
148
148
148
148
149
149
149
149
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
151
151
151
151
151
151
151
151
153
153
153
153
153
153
153
153
153
153
155
157
160
160
160
160
161
162
163
163
164
165
165
165
165
165
166
166
179
180
181
181
184
184
184
189
191
191
194
198
198
199
199
199
203
203
203
203
204
204
204
205
206
207
217
219
219
220
220
220
222
237
237
238
243
243
247
247
248
248
248
250
256
261
261
262
263
264
265
277
278
278
278
282
284
293
294
294
297
302
303
304
304
308
308
317
318
319
320
323
328
328
332
333
333
333
349
350
350
352
360
360
361
361
361
363
370
375
375
375
376
377
378
389
390
391
391
391
394
394
415
417
436
441
441
456
461
461
474
476
479
495
500
500
513
518
518
539
541
560
565
565
580
585
585
606
609
627
632
632
646
651
651
672
674
693
698
698
713
718
718
1116
1120
1121
1
1
1
4
4
5
10
12
14
15
15
16
17
20
20
21
24
28
28
29
30
32
32
37
38
43
44
48
48
48
48
48
49
50
50
50
52
52
52
53
53
53
53
53
53
53
53
54
54
54
56
57
57
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
63
63
63
63
63
63
63
63
63
68
70
70
72
90
91
92
93
93
94
94
94
95
95
95
95
96
96
96
97
97
97
97
97
98
98
98
99
99
99
109
109
110
110
112
112
113
113
113
113
115
117
119
120
124
124
125
125
127
127
127
127
129
129
129
129
130
130
130
131
131
131
134
138
138
141
141
144
145
145
148
148
148
148
148
148
150
150
150
150
151
151
151
151
151
151
151
151
151
151
151
151
151
151
151
151
151
151
152
152
152
152
152
152
152
152
152
156
158
161
161
161
161
162
163
163
164
164
165
166
166
166
166
167
167
174
174
179
179
180
181
185
185
188
190
195
199
199
200
200
200
204
204
205
205
205
207
208
218
218
220
220
221
221
223
229
229
233
238
238
239
244
244
249
249
249
249
257
262
262
263
265
266
276
278
279
279
283
285
287
287
292
292
294
301
303
304
309
309
318
320
321
324
329
329
331
333
334
334
342
342
346
350
351
351
353
362
362
362
362
371
376
376
376
378
379
389
390
391
392
392
395
395
400
400
416
418
437
442
442
457
462
462
475
477
480
496
501
501
514
519
519
540
542
561
566
566
581
586
586
607
610
628
633
633
647
652
652
673
675
694
699
699
714
719
719
1117
1121
1121
1122
5
5
5
5
5
5
6
8
11
11
11
16
17
17
18
18
20
20
21
21
21
22
22
22
25
25
25
29
29
30
37
37
38
39
39
39
39
43
45
47
47
47
49
49
50
50
51
51
51
51
53
53
53
53
54
54
54
55
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
63
63
63
63
69
71
73
90
91
94
95
95
95
96
96
96
96
97
97
97
97
98
98
98
98
98
98
98
99
99
100
100
100
100
100
111
111
111
111
118
120
121
125
125
126
126
128
128
130
130
130
130
131
131
132
132
135
139
139
142
142
143
143
145
145
145
145
146
146
149
149
149
149
149
149
149
149
150
150
150
150
150
150
150
152
152
153
153
153
153
153
153
153
153
153
157
157
159
162
162
162
162
163
164
164
164
165
165
167
168
172
175
175
180
181
186
186
189
189
191
191
196
199
200
200
201
201
201
205
205
205
206
206
206
208
219
219
219
221
224
227
230
230
234
239
240
245
245
250
250
257
258
263
263
263
264
266
277
277
277
284
285
286
288
288
293
302
302
304
304
305
310
310
312
318
319
321
325
330
330
332
332
340
343
343
345
347
349
351
352
354
363
363
370
372
376
377
377
377
379
390
390
391
396
396
398
401
401
410
417
419
438
443
443
458
463
463
476
478
481
497
502
502
515
520
520
534
541
543
562
567
567
582
587
587
602
606
608
611
629
634
634
648
653
653
667
674
676
695
700
700
715
720
720
1118
1121
1122
1123
6
6
7
7
13
13
14
14
15
17
20
21
22
22
22
22
23
23
23
25
26
30
30
30
30
31
32
37
37
37
39
39
47
48
50
50
50
50
50
50
54
54
54
54
54
54
54
54
54
55
55
55
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
70
72
74
90
93
94
95
95
95
96
96
96
96
96
97
97
97
97
97
98
98
98
98
99
101
101
111
111
111
113
117
119
119
121
121
122
126
126
127
127
128
129
130
131
131
131
131
131
131
131
131
132
132
132
132
132
133
136
138
138
140
140
143
143
143
143
144
144
145
145
145
145
145
145
145
145
145
145
145
145
145
145
146
146
146
146
147
147
147
149
149
149
149
149
149
150
150
150
150
150
150
150
150
150
152
152
152
153
153
153
153
153
153
153
153
153
153
154
158
158
158
160
163
163
163
163
164
166
166
166
166
166
167
167
168
169
173
173
179
179
181
182
187
187
189
191
192
192
197
200
200
200
200
201
201
202
202
202
203
203
203
203
205
206
206
206
207
207
208
208
209
220
222
225
228
228
234
234
238
238
240
241
246
246
250
258
258
258
258
259
263
264
264
264
266
266
267
278
282
285
286
286
287
292
292
294
302
304
305
305
306
311
311
313
313
313
313
318
319
321
321
322
326
331
331
341
341
347
347
350
351
351
352
353
355
363
371
371
371
371
373
376
377
378
378
379
379
380
392
397
397
399
399
411
415
418
420
439
444
444
459
464
464
477
479
482
498
503
503
516
521
521
535
539
542
544
553
563
568
568
583
588
588
607
609
612
630
635
635
649
654
654
668
672
675
677
696
701
701
716
721
721
1119
1123
1124
4
5
7
7
8
8
11
11
13
14
14
15
18
18
19
22
22
23
23
24
24
24
25
27
29
29
29
31
31
31
32
32
37
47
47
47
50
51
51
52
54
54
54
54
54
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
57
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
62
62
62
62
62
62
62
62
62
62
73
75
91
93
94
94
94
95
95
96
96
96
97
97
97
97
98
98
98
98
98
99
99
99
99
109
111
112
112
113
113
114
118
120
120
122
122
123
127
127
128
128
128
128
128
130
131
132
132
132
132
132
132
133
133
133
134
137
139
139
141
143
143
143
143
143
144
144
144
144
144
144
145
145
145
145
145
145
146
146
146
146
146
146
146
146
146
146
146
146
146
146
147
147
147
147
147
147
147
148
148
148
148
148
149
149
149
149
150
150
151
151
151
151
153
153
153
153
153
153
153
153
153
153
154
155
159
159
161
164
164
164
164
164
165
166
166
167
168
169
170
179
179
180
180
183
188
188
189
191
192
193
193
198
201
201
202
202
203
203
204
204
207
207
208
208
209
209
210
221
223
226
239
239
241
242
247
247
250
259
259
260
265
265
267
267
268
279
283
286
288
292
292
293
293
302
304
305
306
306
307
312
312
314
314
322
322
323
327
332
332
334
351
352
352
353
354
356
363
372
372
374
379
379
380
380
381
392
393
398
398
416
419
421
440
445
445
460
465
465
480
483
499
504
504
517
522
522
540
543
545
554
564
569
569
584
589
589
608
610
613
631
636
636
650
655
655
673
676
678
697
702
702
717
722
722
1120
1124
1125
4
5
6
9
9
14
14
15
15
15
18
19
19
20
22
22
22
23
24
24
25
28
29
30
32
32
32
32
32
32
32
37
38
39
39
44
44
46
46
51
52
52
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
55
55
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
58
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
62
62
63
63
63
63
63
63
63
63
63
63
68
72
74
74
76
76
92
94
95
95
95
96
96
96
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
99
99
99
99
100
100
100
110
110
113
113
113
113
113
113
115
119
121
121
123
123
124
128
128
129
129
129
129
131
131
131
132
132
132
133
133
133
133
134
134
138
140
140
140
140
141
141
141
141
141
141
141
141
141
141
142
144
144
144
144
144
145
145
145
146
146
146
146
146
146
146
146
147
147
147
147
147
147
147
147
147
147
147
147
147
147
148
148
148
148
148
148
148
148
148
148
148
148
149
149
149
149
149
149
150
150
150
151
151
154
155
160
160
162
165
165
165
166
166
168
169
170
171
175
181
181
184
189
189
189
189
192
193
199
201
203
203
204
204
205
205
208
208
209
209
210
210
221
224
227
230
238
240
240
243
248
248
259
261
266
266
268
268
279
284
287
288
289
294
294
302
302
305
306
308
313
313
314
323
323
328
333
333
334
343
351
352
353
353
354
357
372
375
380
380
381
381
392
394
399
399
401
417
420
422
441
446
446
461
466
466
481
484
500
505
505
518
523
523
541
544
546
554
565
570
570
585
590
590
609
611
614
632
637
637
651
656
656
674
677
679
698
703
703
718
723
723
1121
1125
1126
4
5
5
5
10
10
11
11
15
19
20
20
21
23
23
24
24
24
24
24
25
26
29
29
29
32
33
33
33
37
39
39
40
40
44
44
44
46
46
46
46
46
47
47
50
52
53
53
53
53
53
53
54
54
54
55
55
55
55
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
63
63
63
63
63
63
63
63
63
63
69
73
75
75
77
77
94
94
96
97
98
98
98
98
99
100
100
100
101
101
101
111
111
114
114
114
114
114
114
114
114
120
124
124
125
127
129
129
129
129
129
129
130
130
130
130
130
131
131
131
132
132
132
133
133
134
134
138
139
139
139
139
139
139
141
141
141
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
143
144
144
144
144
144
145
145
145
145
145
146
146
146
146
146
147
147
147
147
147
147
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
149
149
150
150
151
151
161
161
163
164
164
166
166
166
167
169
170
171
172
175
177
182
182
185
190
190
190
190
191
191
191
193
200
201
202
202
204
204
205
205
206
206
208
209
209
210
210
225
228
230
238
244
249
249
259
262
266
267
267
285
288
288
290
290
295
295
303
303
304
304
304
306
309
314
314
314
321
329
334
334
343
351
353
355
358
372
376
379
381
381
395
400
400
401
418
421
423
442
447
447
462
467
467
482
485
501
506
506
519
524
524
542
545
547
566
571
571
586
591
591
610
612
615
633
638
638
652
657
657
675
678
680
699
704
704
719
724
724
1122
1126
1127
5
6
6
6
11
11
11
14
14
15
16
20
21
22
22
24
24
25
26
27
30
33
34
34
34
39
41
41
44
46
46
46
46
47
47
47
47
48
48
50
50
53
53
54
54
54
57
57
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
61
61
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
64
64
70
74
76
76
78
78
90
90
93
95
95
95
95
95
96
96
96
96
97
98
98
98
98
99
99
99
100
101
101
102
102
102
112
112
112
114
114
114
114
115
115
115
115
121
125
125
126
128
130
130
130
130
131
131
131
131
131
132
132
132
132
132
132
133
133
134
134
135
135
139
140
140
140
140
140
140
142
142
142
143
143
143
143
143
143
143
143
143
143
143
143
143
143
143
144
144
144
144
144
145
145
145
145
145
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
147
147
148
148
148
148
148
148
148
149
149
149
150
150
151
151
152
152
152
162
162
164
164
165
166
166
167
167
167
167
168
170
171
172
173
178
183
186
191
191
192
192
192
192
201
203
205
205
205
206
206
207
207
210
210
211
211
220
221
221
224
226
229
234
238
239
245
249
250
250
263
263
268
268
279
279
286
289
289
291
291
291
296
305
305
305
305
310
315
315
318
330
334
334
335
335
347
351
352
354
356
356
359
359
362
376
377
382
382
392
392
396
401
401
419
422
422
424
424
443
448
448
463
468
468
477
481
483
486
502
507
507
520
525
525
543
546
546
548
548
555
555
567
572
572
587
592
592
611
613
613
616
616
634
639
639
653
658
658
676
679
679
681
681
700
705
705
720
725
725
1123
1127
1128
5
5
5
7
11
11
12
12
14
15
17
20
22
24
24
24
25
25
26
26
27
28
31
32
34
35
35
35
39
39
41
46
47
48
48
48
49
49
52
52
53
55
55
55
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
61
61
61
63
63
63
63
63
63
63
63
63
64
64
65
65
75
79
79
90
90
91
91
91
91
91
91
94
94
94
95
95
95
96
96
96
96
96
96
96
96
97
97
97
97
97
98
98
98
98
99
99
99
99
99
100
100
102
103
103
103
112
112
112
114
114
115
115
116
116
116
116
122
126
126
127
129
129
129
131
131
131
131
131
131
132
132
132
132
132
133
133
133
133
134
135
136
136
140
141
141
141
141
141
143
143
143
143
143
144
144
144
144
144
144
144
144
144
144
144
144
144
144
144
145
145
145
145
145
146
146
146
146
146
146
146
146
146
147
147
147
147
147
147
147
147
147
147
147
147
147
147
148
148
148
148
148
148
148
148
148
148
148
149
149
149
150
150
150
152
152
152
152
153
153
153
163
163
164
166
167
167
168
168
168
171
172
173
174
178
178
182
182
184
187
192
192
193
193
202
204
205
206
207
207
208
208
208
208
211
211
212
212
219
222
222
225
227
230
234
239
240
246
250
250
250
250
251
251
263
264
264
266
266
269
269
277
280
280
287
291
291
292
292
295
295
297
306
306
311
316
316
318
319
321
321
331
332
335
335
336
336
347
352
353
355
360
360
363
363
363
363
376
377
378
379
379
383
383
390
393
393
397
402
402
420
425
425
444
449
449
464
469
469
482
484
487
503
508
508
521
526
526
544
549
549
556
556
556
556
568
573
573
588
593
593
612
617
617
635
640
640
654
659
659
677
682
682
701
706
706
721
726
726
1124
1128
1129
5
6
6
8
13
13
14
14
14
15
15
15
15
18
21
21
22
22
23
24
26
27
27
28
28
29
29
32
32
32
36
36
41
41
41
46
48
49
49
49
50
50
53
53
54
54
54
54
54
55
55
56
57
57
57
57
57
57
57
57
58
58
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
62
63
63
63
63
66
66
76
80
80
91
91
91
92
92
92
95
95
96
96
96
97
97
97
98
98
98
98
98
99
99
99
99
100
100
100
100
101
101
103
104
104
104
110
113
113
113
113
114
114
114
114
114
114
115
115
116
116
123
127
127
128
128
128
129
130
130
131
132
132
132
132
133
133
133
134
134
134
134
134
135
135
135
136
137
137
141
141
142
142
142
142
142
142
142
142
142
142
144
145
145
145
145
145
146
146
146
146
146
146
147
147
147
147
147
147
147
147
147
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
149
150
151
151
152
152
152
152
152
153
153
154
154
154
156
164
164
165
165
167
169
169
169
172
173
174
175
183
183
185
188
193
193
193
203
205
205
208
208
209
209
209
209
212
212
213
220
220
226
228
231
238
240
241
247
251
251
252
252
263
265
267
267
270
270
278
278
288
293
293
296
296
298
306
312
317
317
318
322
322
332
333
333
337
351
353
354
356
361
361
364
364
376
379
380
380
384
384
391
391
398
403
403
421
426
426
445
450
450
465
470
483
485
488
504
509
509
522
527
527
545
550
550
556
556
556
556
557
557
569
574
574
589
594
613
618
618
636
641
641
655
660
660
678
683
683
702
707
707
722
727
1125
1129
1130
5
5
5
9
11
11
14
14
15
16
16
22
24
24
24
24
28
29
29
30
33
34
34
35
35
35
37
37
39
39
41
45
49
52
52
53
53
53
53
53
53
55
55
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
61
61
62
62
62
63
67
67
77
81
81
89
91
92
93
93
94
99
100
100
101
101
101
101
102
102
104
105
105
105
111
112
112
113
113
114
114
115
115
116
116
124
128
128
129
129
129
131
131
131
131
133
133
134
134
135
135
135
135
135
136
136
136
137
138
138
139
139
141
141
142
142
143
143
143
143
143
143
143
143
143
143
143
143
143
143
145
145
145
146
146
147
147
147
147
147
148
148
148
148
148
148
148
148
148
148
149
149
149
149
149
149
149
149
149
149
149
149
149
149
150
151
152
152
152
153
153
153
153
153
154
154
155
155
155
155
156
157
165
165
168
170
170
170
173
173
174
175
176
182
184
184
189
193
194
194
204
206
206
208
209
209
210
210
210
210
210
213
213
214
227
228
229
232
234
239
241
241
248
251
253
253
264
266
266
268
268
268
271
286
289
294
294
295
297
297
306
313
318
318
319
321
323
323
323
333
338
341
347
352
354
354
357
362
362
364
377
379
380
381
381
381
385
385
399
399
404
422
427
427
446
451
451
466
471
484
486
489
505
510
510
523
528
546
551
551
557
557
558
558
570
575
575
590
595
614
619
619
637
642
642
656
661
679
684
684
703
708
708
723
728
1126
1130
1131
1
5
5
6
6
6
6
10
15
15
17
17
20
21
22
22
23
23
24
24
24
24
25
25
26
29
30
30
31
32
32
34
35
36
36
38
41
41
41
46
50
50
53
53
53
53
53
53
53
54
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
58
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
62
62
63
64
64
64
64
64
68
68
78
82
82
88
90
90
90
90
93
94
94
94
97
100
100
101
101
101
102
102
102
103
105
106
106
106
112
112
113
114
114
114
115
115
116
116
117
117
125
129
129
129
129
130
130
130
132
132
134
134
135
136
136
136
136
137
137
139
139
140
140
141
141
141
141
141
141
141
141
141
142
142
143
143
143
143
143
143
144
144
144
144
144
144
144
144
144
144
144
144
144
144
144
144
144
144
144
145
145
146
147
147
147
147
147
147
147
147
147
147
147
148
148
149
149
149
149
149
150
152
154
154
154
154
154
155
157
158
166
167
167
168
169
171
171
171
174
174
175
176
177
182
190
195
195
200
205
205
207
208
209
209
209
210
210
211
211
212
212
214
214
215
222
228
229
230
233
238
240
249
251
254
254
258
266
267
267
270
270
272
280
287
290
295
295
295
313
314
319
319
321
322
334
335
336
336
339
342
351
353
358
363
363
364
371
379
380
381
386
386
393
400
400
403
403
405
423
428
428
447
452
452
467
469
469
472
485
487
490
506
511
511
524
527
527
529
547
552
552
558
558
571
576
576
591
593
593
596
615
620
620
638
643
643
657
660
660
662
680
685
685
704
709
709
724
726
726
729
1127
1131
1132
1
1
5
5
5
5
7
7
11
11
14
14
16
16
17
24
24
24
24
24
25
25
25
26
26
27
31
32
34
34
35
35
37
37
39
39
39
41
41
41
41
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
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
63
63
65
65
65
69
69
79
83
83
89
89
91
91
91
91
94
94
94
95
95
95
95
95
97
98
99
101
101
102
102
103
103
104
106
107
107
107
113
113
113
113
113
114
114
114
115
115
115
118
118
126
129
130
130
130
131
131
131
132
132
132
133
133
136
137
137
138
138
139
139
139
139
139
139
139
139
139
139
140
140
141
141
142
142
142
142
142
142
142
142
142
143
143
144
144
144
144
144
144
144
144
144
144
144
144
144
145
145
145
145
145
145
145
145
145
145
145
145
145
145
147
147
147
148
149
149
149
149
149
149
149
149
149
149
150
151
151
151
151
152
152
152
152
153
155
155
156
158
159
167
167
168
169
170
172
172
172
172
173
175
175
175
176
177
178
178
182
183
191
196
196
201
201
201
208
209
209
210
210
210
210
211
211
212
212
213
215
215
216
222
229
230
230
231
231
234
234
239
239
241
241
250
255
255
259
259
259
267
267
268
268
268
271
273
280
288
288
291
291
295
296
296
296
314
314
314
315
320
320
322
322
323
323
335
335
337
340
343
343
352
352
354
354
359
364
364
372
372
372
380
380
381
381
382
387
387
393
401
401
401
404
406
424
429
429
448
453
453
468
470
473
486
488
488
491
491
507
512
512
525
528
530
548
553
553
572
577
577
592
594
597
616
621
621
639
644
644
658
661
663
681
686
686
705
710
710
725
727
730
1128
1132
1133
1
8
8
8
11
12
15
15
17
17
17
22
26
26
26
27
27
28
32
32
32
33
35
36
38
40
41
41
41
41
42
42
50
50
52
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
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
60
61
61
61
61
61
62
62
64
66
66
66
66
66
69
69
70
70
80
84
84
90
90
92
92
93
93
93
93
94
94
95
95
96
96
96
96
96
96
97
97
98
98
99
99
99
100
102
103
104
104
104
105
105
106
106
107
107
108
108
108
108
111
113
113
113
113
114
115
116
116
117
117
117
117
119
119
127
131
131
131
132
132
132
132
133
133
133
134
134
134
135
137
137
137
137
137
137
138
138
139
139
140
140
140
140
140
140
140
140
140
140
140
140
140
140
141
141
142
142
142
142
143
143
143
143
143
143
143
143
143
144
144
144
144
145
145
145
145
146
146
146
146
146
146
146
146
146
146
146
146
146
146
147
148
148
148
148
148
149
149
149
149
149
149
149
149
149
149
150
151
152
152
152
152
153
153
153
153
154
156
156
157
159
160
168
171
173
173
173
173
174
176
176
176
176
176
176
177
177
178
178
178
179
179
183
184
192
192
197
197
202
202
209
211
211
211
211
212
212
213
213
213
213
214
216
216
216
216
217
230
231
231
231
231
235
235
239
241
242
242
251
256
256
260
260
269
269
269
272
274
289
289
289
289
291
292
296
297
297
297
305
315
315
316
321
321
324
324
336
338
341
344
344
344
344
352
354
355
355
360
365
365
373
373
382
382
383
388
388
402
402
402
402
402
405
407
425
430
430
449
454
454
469
471
474
487
492
492
508
513
513
526
529
531
549
554
554
556
573
578
578
593
595
598
617
622
622
640
645
645
659
662
664
682
687
687
706
711
711
726
728
731
1129
1133
1134
1
5
9
9
11
11
13
16
16
17
18
18
18
23
26
27
27
28
29
29
30
30
33
34
34
34
35
37
39
39
41
43
43
52
52
52
53
53
53
53
55
55
57
57
57
57
57
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
63
63
63
63
65
67
70
70
71
71
81
85
85
89
90
90
91
91
91
91
91
91
92
92
92
92
93
93
94
94
94
94
95
95
96
96
96
97
97
97
98
98
98
99
99
99
99
100
100
101
103
104
105
107
107
108
108
109
109
109
111
113
115
116
117
117
118
118
118
118
120
120
128
131
132
132
132
132
133
133
134
134
134
134
134
135
135
135
135
135
136
138
138
138
138
138
138
139
139
140
140
141
141
141
141
141
141
141
141
141
141
141
141
141
141
142
142
144
144
144
144
144
144
144
144
144
144
144
144
144
144
146
146
146
146
146
146
148
148
150
151
151
152
152
152
152
153
153
153
153
154
154
154
154
155
155
155
157
157
157
160
161
165
167
167
169
172
174
174
174
174
174
175
176
176
177
177
179
179
180
180
182
184
185
193
193
193
193
193
198
198
201
202
202
202
202
203
204
208
209
210
210
210
210
212
212
212
212
213
213
215
217
217
217
217
218
222
222
229
231
231
231
232
232
236
236
239
241
242
243
243
250
252
257
257
259
260
260
260
260
261
267
268
268
268
270
270
270
273
275
280
280
287
289
289
290
290
293
295
297
298
298
298
306
306
306
306
314
315
315
315
315
316
317
322
322
322
323
323
323
325
325
335
335
337
339
342
342
344
344
345
345
352
354
355
356
356
361
363
366
366
372
373
373
373
373
374
380
381
381
381
383
383
384
389
389
393
393
400
402
402
403
403
403
406
408
426
431
431
450
455
455
470
472
475
488
493
493
509
514
514
527
530
532
550
555
555
556
556
557
574
579
579
594
596
599
618
623
623
641
646
646
660
663
665
683
688
688
707
712
712
727
729
732
1133
1134
1135
5
9
10
14
17
17
17
18
19
19
19
19
19
22
22
24
27
29
30
31
32
32
34
34
35
35
40
41
42
43
43
44
50
50
52
53
54
54
54
54
54
54
54
57
57
57
57
57
57
57
57
57
57
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
64
64
66
67
67
68
71
71
72
72
82
86
86
90
90
91
91
91
91
92
92
92
92
93
93
93
93
93
94
94
96
97
97
97
98
98
99
100
100
101
101
101
102
102
104
105
106
108
108
109
109
110
110
110
112
113
114
117
119
119
119
119
129
129
131
131
133
133
134
134
134
135
135
135
135
135
136
136
136
136
136
136
136
137
137
138
138
139
139
139
139
139
139
140
140
141
141
141
141
142
142
142
142
142
142
142
142
142
142
142
142
142
142
143
143
144
144
146
146
146
146
149
149
151
151
151
151
151
151
152
153
153
153
153
154
154
155
155
155
155
155
155
155
156
156
156
161
165
166
168
168
170
170
173
175
175
175
175
176
177
178
178
178
180
180
181
181
183
185
185
194
194
194
199
199
203
203
204
209
209
209
209
210
211
211
211
211
213
213
214
214
216
218
218
218
218
219
220
223
223
232
232
233
233
237
237
239
239
242
243
251
251
251
251
253
258
258
261
261
262
267
267
267
268
269
269
269
271
274
276
278
281
281
290
291
291
291
294
296
298
298
299
299
307
307
316
316
317
318
322
322
322
323
323
323
324
324
324
333
336
336
338
340
343
345
346
346
352
352
355
356
362
364
364
364
364
367
367
374
374
375
380
380
380
381
382
382
382
385
390
390
391
394
394
403
404
404
404
407
409
427
432
432
451
456
456
471
473
476
489
494
494
510
515
515
528
531
533
551
556
556
556
557
558
575
580
580
595
597
600
619
624
624
642
647
647
661
664
666
684
689
689
708
713
713
728
730
733
1129
1134
1135
1136
5
5
9
11
11
15
17
17
17
18
19
19
20
22
25
27
27
28
30
31
31
32
32
34
34
34
34
35
35
35
35
35
35
35
36
39
39
39
41
41
41
43
43
43
44
44
44
53
53
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
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
61
61
61
63
65
65
65
67
68
68
68
69
71
71
73
73
83
87
87
89
90
91
93
93
94
94
95
95
95
95
100
101
101
101
102
102
102
102
103
103
105
106
107
109
110
110
111
111
111
112
112
115
116
116
117
117
117
117
118
129
130
130
132
132
132
134
136
136
136
137
137
137
137
137
137
138
138
138
138
138
138
138
139
139
140
140
140
140
140
140
140
140
140
140
140
141
141
142
142
142
142
142
142
142
142
142
143
143
143
143
144
144
144
144
146
146
146
146
146
146
146
147
147
150
151
152
152
152
153
153
153
155
155
155
155
155
155
156
156
156
156
156
157
157
157
161
166
166
171
171
174
174
176
176
176
176
176
176
176
177
178
181
181
182
182
182
184
194
195
200
200
202
202
204
204
210
211
212
212
212
212
212
214
214
215
215
215
217
219
219
219
219
220
221
221
231
231
233
233
238
238
240
240
241
241
241
243
252
252
254
259
259
260
260
262
262
269
270
270
270
272
275
277
279
279
289
289
291
295
295
297
300
300
307
315
315
317
317
319
324
324
324
325
325
325
334
334
339
341
344
344
344
346
353
353
354
354
354
356
363
365
365
368
368
373
373
375
375
382
383
383
383
386
391
391
392
392
402
402
404
405
408
410
428
433
433
452
457
457
472
474
477
490
495
495
511
516
516
529
532
534
552
557
557
558
559
576
581
581
596
598
601
620
625
625
643
648
648
662
665
667
685
690
690
709
714
714
729
731
734
1135
1136
1137
8
8
8
8
10
12
12
17
19
21
22
26
26
26
27
27
28
29
29
31
32
32
35
35
36
36
36
36
36
37
39
40
41
42
42
43
44
44
44
44
44
44
45
45
50
52
53
53
53
53
53
53
54
55
55
55
55
55
55
55
55
55
55
55
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
61
61
61
61
66
68
69
69
69
70
72
72
72
72
74
74
84
86
86
88
88
88
90
90
90
90
90
90
91
91
91
92
92
92
93
93
93
93
93
93
93
93
94
94
94
94
94
96
96
97
98
101
101
101
102
102
102
103
103
104
104
106
107
108
110
111
111
112
112
112
113
113
113
113
116
117
117
117
117
118
118
118
118
119
129
130
131
132
132
132
133
133
133
135
135
136
136
136
136
137
137
137
137
137
138
138
138
138
138
138
138
138
139
139
139
139
139
139
139
140
140
141
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
143
143
143
143
143
143
143
143
143
143
143
145
145
145
145
146
146
146
146
146
147
151
151
151
152
153
153
153
153
153
154
155
155
155
156
156
157
157
157
157
157
158
158
161
172
172
177
177
177
177
177
177
178
182
182
183
183
183
183
185
185
194
196
201
201
203
210
211
212
213
213
215
215
216
216
216
218
220
220
220
220
221
232
234
239
239
242
242
242
242
252
255
260
260
261
268
270
271
271
273
276
278
290
296
296
296
298
298
301
301
307
316
320
323
325
325
325
326
326
340
342
345
345
355
355
355
355
364
365
369
369
374
381
383
384
384
387
392
392
403
406
409
411
429
434
434
453
458
458
473
475
478
491
496
496
512
517
517
530
533
535
553
554
558
558
559
577
582
582
597
599
602
621
626
626
644
649
649
663
666
668
686
691
691
710
715
715
730
732
735
1136
1137
1138
4
5
9
11
11
11
11
12
13
17
18
18
19
19
20
20
22
22
26
27
27
28
28
29
29
29
29
29
32
32
33
36
37
37
37
37
37
38
39
41
41
43
43
43
43
43
43
44
44
45
45
45
45
46
46
46
50
50
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
61
61
61
65
66
67
67
69
69
70
71
73
73
75
75
85
87
87
89
89
89
90
90
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
93
93
94
94
94
94
94
94
95
95
95
95
97
97
97
98
98
98
101
102
102
102
102
103
103
103
107
108
111
112
112
113
113
113
113
113
117
117
117
117
118
118
118
118
119
119
119
119
131
132
132
133
133
133
133
133
134
134
134
135
135
135
135
136
136
136
136
136
137
137
137
137
137
137
137
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
139
139
140
140
140
140
140
141
141
142
142
142
142
142
142
143
143
143
143
143
143
143
143
143
143
143
143
143
144
144
144
144
144
144
144
144
144
146
146
146
146
152
152
152
153
153
153
153
153
154
154
154
154
155
156
156
156
156
157
157
168
173
173
176
176
178
178
178
178
178
178
179
183
183
183
184
184
185
186
186
197
202
202
202
204
211
211
212
216
216
217
217
217
219
221
221
221
221
222
223
231
231
233
235
240
240
243
243
252
256
260
261
261
262
269
269
274
277
279
281
289
289
291
296
297
298
299
299
302
302
315
317
321
324
324
326
326
336
341
343
344
344
346
346
356
356
365
365
370
370
373
375
382
382
388
393
393
394
402
402
404
407
410
412
430
435
435
454
459
459
474
476
479
492
497
497
513
518
518
531
534
536
554
555
559
559
559
560
578
583
583
598
600
603
622
627
627
645
650
650
664
667
669
687
692
692
711
716
716
731
733
736
1137
1138
1139
4
5
5
5
8
8
12
13
14
17
19
19
19
20
20
21
21
23
23
26
26
29
29
29
30
32
32
33
33
34
36
37
37
38
39
41
42
43
43
44
44
44
45
46
46
46
46
46
46
46
46
50
50
52
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
59
59
59
59
59
59
62
66
67
68
68
70
70
70
72
74
74
74
74
76
76
86
88
88
90
91
91
91
91
92
92
92
92
92
93
93
93
93
93
93
93
93
94
102
103
103
103
103
104
104
104
106
108
109
110
112
112
113
113
114
114
114
114
116
116
118
118
118
118
119
119
120
120
120
120
120
120
132
133
134
134
134
135
135
135
136
136
136
137
137
137
137
137
137
137
137
137
137
137
137
137
137
137
137
137
137
137
138
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
140
140
140
140
140
140
140
140
140
140
140
140
141
141
141
141
141
141
141
141
141
141
142
142
142
142
142
142
142
143
144
144
144
144
144
144
144
144
144
144
144
145
145
145
145
145
145
145
145
145
147
147
147
147
147
152
153
154
154
154
154
154
154
154
155
155
155
155
155
155
155
155
156
157
157
168
174
174
176
176
177
177
179
179
179
179
179
180
183
184
184
185
185
185
186
187
187
198
202
202
203
203
203
213
217
217
218
218
220
222
222
222
222
223
223
231
231
232
232
236
241
241
243
257
260
260
261
262
262
278
280
281
289
289
290
290
296
298
298
299
300
300
303
303
315
315
316
322
327
327
336
344
344
344
345
345
347
356
366
371
371
373
373
374
389
394
394
394
402
402
403
403
411
413
431
436
436
455
460
460
477
480
493
498
498
514
519
519
535
537
555
555
559
560
560
561
579
584
584
601
604
623
628
628
646
651
651
668
670
688
693
693
712
717
717
734
737
1138
1139
1140
4
5
5
5
6
6
13
14
15
19
20
21
21
22
22
24
24
30
31
32
33
34
34
35
37
37
37
37
38
38
39
40
41
43
43
43
43
44
44
45
46
46
47
47
47
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
59
59
59
59
59
59
59
59
59
63
67
68
69
69
71
71
71
71
73
75
75
76
76
77
77
87
89
89
89
90
91
91
91
92
93
93
93
93
95
101
102
103
104
104
104
105
105
107
109
110
111
112
112
113
113
114
114
115
115
115
115
116
117
117
118
118
120
120
120
120
120
120
121
121
121
121
133
133
134
134
134
135
135
135
135
135
136
136
136
136
137
137
137
137
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
140
140
140
140
140
140
140
140
140
140
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
143
143
144
144
145
145
145
145
145
145
145
145
145
145
145
148
148
148
148
149
152
154
154
155
156
156
156
156
156
156
156
156
156
156
157
158
175
175
178
178
180
180
180
180
180
181
183
183
185
185
186
186
186
187
199
201
202
203
204
204
204
213
214
218
218
219
219
221
223
223
223
223
224
233
233
237
242
242
243
258
259
260
261
262
263
263
271
279
281
291
291
296
296
299
299
300
304
304
314
315
316
317
323
326
328
328
345
346
346
348
356
367
372
372
372
373
374
375
384
390
395
395
404
404
412
414
432
437
437
456
461
461
478
481
494
499
499
515
520
520
536
538
555
556
559
560
561
561
562
580
585
585
602
605
624
629
629
647
652
652
669
671
689
694
694
713
718
718
735
738
1139
1140
1141
4
4
5
6
7
7
12
14
15
19
19
21
21
25
25
25
29
30
31
32
32
32
34
35
37
38
38
39
40
41
44
44
44
44
45
46
47
48
48
48
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
55
55
55
55
57
57
57
58
59
59
59
59
59
59
59
60
60
60
60
60
68
72
72
72
74
77
77
78
78
88
88
90
90
90
90
90
90
90
90
90
91
91
91
91
91
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
94
94
94
94
102
102
103
103
108
110
111
112
112
114
114
115
115
116
116
116
116
116
116
117
118
118
118
118
120
120
121
121
122
122
122
122
133
133
133
134
135
135
135
136
136
136
136
136
137
137
137
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
139
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
141
141
141
141
141
142
142
142
142
142
142
144
144
145
145
149
149
149
149
149
150
151
151
152
152
155
155
156
157
157
157
157
158
158
174
176
176
179
179
181
181
181
181
181
182
184
184
185
185
185
186
186
187
187
187
200
202
204
205
205
205
213
215
219
219
220
220
222
224
224
224
224
225
229
234
234
238
243
243
259
260
262
263
264
271
280
282
287
292
292
297
297
298
298
298
300
300
305
305
315
317
318
324
326
329
329
342
346
347
347
349
368
373
373
373
375
376
384
391
396
396
400
405
405
413
415
433
438
438
457
462
462
479
482
495
500
500
516
521
537
539
557
559
560
561
562
562
581
586
586
603
606
625
630
630
648
653
653
670
672
690
695
695
714
719
719
736
739
1140
1141
1142
4
5
5
5
5
7
8
8
8
11
11
21
21
21
22
26
26
26
29
29
31
34
36
37
37
38
39
39
39
39
39
39
40
40
41
42
43
43
45
45
46
46
48
49
49
49
53
53
53
53
53
55
55
55
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
59
59
59
59
59
59
59
59
59
59
69
69
69
73
73
73
73
74
74
75
78
78
79
79
89
89
90
90
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
92
93
93
93
94
94
94
94
94
94
95
95
95
95
111
112
113
116
116
117
117
117
117
117
117
118
118
118
118
118
119
119
119
121
121
122
122
135
136
136
136
137
137
137
137
137
138
139
139
139
139
139
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
141
141
141
141
141
141
141
141
141
141
141
141
141
142
142
142
142
142
142
145
145
146
146
149
149
150
150
150
150
150
151
152
152
153
153
154
154
154
154
156
156
157
157
159
175
177
177
180
182
182
182
182
182
183
186
186
186
186
187
187
188
188
193
201
202
203
205
206
216
217
220
220
221
221
221
223
225
225
225
225
226
230
235
239
244
244
260
260
261
263
263
263
265
274
281
283
288
293
299
299
299
299
301
306
306
306
315
316
318
325
330
341
343
345
347
348
350
369
373
374
374
374
376
392
397
401
406
407
414
416
434
439
439
458
463
474
478
480
483
496
501
501
517
520
520
522
531
538
540
555
558
560
561
563
563
582
587
598
602
604
607
626
631
631
649
654
664
671
673
691
696
696
715
720
731
735
737
740
1141
1142
1143
1
1
4
4
5
5
5
6
8
9
9
14
14
15
19
19
21
23
27
27
31
31
32
32
32
35
35
37
37
37
37
39
39
40
41
41
42
42
43
43
46
46
46
46
50
50
54
54
54
54
54
55
55
55
55
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
59
59
59
59
59
70
74
74
74
75
75
75
76
80
80
86
90
91
91
91
91
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
94
94
104
104
104
105
105
105
112
113
114
117
117
117
118
118
118
118
119
119
119
119
119
119
119
120
120
120
120
120
120
120
120
122
122
134
136
137
137
138
138
138
138
138
138
138
138
138
138
139
139
139
139
140
140
140
140
140
140
141
141
141
141
141
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
145
145
145
145
145
146
146
147
147
149
149
149
150
151
151
151
151
151
152
153
153
155
155
155
155
155
155
156
156
157
157
157
158
158
160
166
175
175
178
178
179
179
181
183
183
183
183
183
184
187
187
188
188
189
189
194
194
194
202
202
203
205
205
206
207
213
213
217
221
221
221
222
222
222
224
226
226
226
226
227
230
230
234
234
236
240
242
245
245
251
260
261
261
263
263
264
264
266
271
271
275
279
279
282
284
288
288
292
292
294
300
300
302
307
307
307
307
307
315
316
318
318
319
326
326
326
331
334
343
343
346
347
347
348
349
351
355
364
370
373
374
375
375
376
376
377
384
384
392
393
396
396
398
401
401
405
405
407
408
412
415
417
435
440
440
459
464
479
481
484
497
502
502
518
521
523
532
536
539
541
559
561
564
564
583
588
603
605
608
627
632
632
650
653
653
655
665
669
672
674
692
697
697
716
721
736
738
741
1142
1143
1144
1
1
1
4
4
5
5
6
6
6
7
9
10
10
11
11
15
21
21
21
24
28
28
29
29
32
36
37
38
42
43
43
44
47
48
48
49
51
51
53
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
55
56
56
56
56
56
57
57
57
57
57
57
57
57
57
58
58
58
58
58
71
75
75
76
76
76
77
81
81
87
89
89
90
91
91
91
92
92
93
93
93
93
93
93
95
95
102
103
104
105
105
105
106
106
113
114
115
117
118
118
119
119
119
119
119
120
121
121
121
121
121
121
121
121
121
121
135
135
135
135
137
138
139
140
140
140
140
140
140
140
140
140
141
141
141
141
141
142
142
142
142
142
143
145
145
145
145
145
145
145
145
145
145
147
147
148
148
150
151
152
152
152
152
152
153
154
154
156
156
156
156
157
157
157
157
157
157
157
157
158
159
159
161
167
179
179
180
180
182
184
184
184
184
184
185
187
189
189
190
190
195
195
203
205
205
206
206
207
208
211
214
214
218
222
222
222
223
223
223
225
227
227
227
227
228
235
235
237
241
243
243
243
243
246
246
252
252
252
262
264
264
265
265
267
269
272
272
280
280
283
285
293
293
295
300
303
308
308
308
308
319
319
320
324
327
327
327
329
329
332
335
347
348
348
349
350
352
356
356
356
356
365
365
365
371
376
376
377
377
378
382
385
385
393
394
397
399
406
406
408
413
416
418
436
441
441
460
462
462
465
480
482
485
498
503
503
519
522
524
537
540
542
559
560
562
565
565
584
586
586
589
604
606
609
628
633
633
651
654
656
670
673
675
693
698
698
717
719
719
722
737
739
742
1143
1143
1144
1145
5
5
6
6
7
7
7
7
8
9
11
11
14
14
15
19
19
21
25
29
29
31
31
32
34
35
37
37
37
38
39
39
39
39
40
43
44
44
45
46
46
48
49
52
52
53
53
53
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
55
55
55
55
55
55
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
57
57
57
57
57
57
57
57
57
68
72
73
76
76
77
78
78
78
78
78
82
82
88
88
90
90
90
90
90
90
90
90
91
91
91
91
91
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
96
96
103
103
104
104
114
115
116
117
117
119
119
120
120
120
120
120
121
122
122
122
122
136
136
136
136
136
136
136
137
137
137
137
138
138
138
138
138
138
138
138
138
138
138
138
139
139
140
140
140
140
140
140
141
141
141
142
142
142
142
142
142
142
142
143
144
145
145
145
145
147
148
148
149
149
151
152
153
153
153
153
154
155
155
156
157
157
157
158
158
158
158
159
162
168
168
179
180
180
181
181
185
185
185
185
185
186
187
190
190
191
191
194
195
195
195
195
196
204
206
207
207
209
212
212
219
223
223
223
223
224
224
224
226
228
228
228
228
229
234
236
236
242
244
244
247
247
253
253
263
265
265
266
268
270
270
281
281
281
284
286
292
294
294
300
304
307
308
308
308
308
309
309
309
320
320
325
325
328
330
333
336
336
347
348
349
349
350
353
357
357
366
366
372
377
377
378
378
383
383
394
394
395
398
400
405
407
407
414
417
419
437
442
442
461
463
466
481
483
486
499
504
504
520
523
525
538
541
543
555
560
561
566
566
585
587
590
605
607
610
629
634
634
652
655
657
671
674
676
694
699
699
718
720
723
738
740
743
1144
1144
1145
1146
7
7
7
8
8
9
10
11
11
12
12
15
21
21
21
26
29
29
30
30
32
37
38
39
39
39
40
40
40
40
41
45
46
48
48
49
49
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
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
73
74
77
77
79
79
79
83
83
89
89
90
90
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
92
93
93
93
94
94
94
94
94
94
95
95
95
95
97
97
115
116
117
118
118
119
119
119
120
120
121
121
121
121
121
122
122
134
134
135
135
135
135
135
135
135
135
135
135
136
136
136
136
136
137
137
137
137
137
137
137
137
137
137
138
138
138
138
138
138
138
138
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
140
140
140
140
140
142
142
142
142
142
143
144
145
145
149
149
150
150
154
154
154
154
154
155
156
156
156
158
158
158
160
163
169
169
169
169
179
181
181
186
186
186
186
186
187
191
191
192
192
196
196
197
205
205
207
210
220
224
224
224
224
224
224
225
225
225
227
229
229
229
229
230
234
243
244
248
248
252
253
253
253
253
254
263
264
267
269
282
282
282
282
282
285
287
292
305
309
309
310
310
310
318
329
331
334
337
337
337
337
347
349
351
354
357
365
366
366
366
366
367
373
376
378
378
395
395
395
395
396
399
401
405
415
418
420
438
443
443
462
464
467
482
484
487
500
505
505
521
524
526
539
542
544
561
562
567
567
586
588
591
606
608
611
630
635
635
653
656
658
672
675
677
695
700
700
719
721
724
739
741
744
1145
1146
1147
5
7
7
8
8
8
9
9
11
13
13
14
14
15
19
19
21
21
21
21
27
31
31
31
31
32
39
40
41
41
41
41
42
46
46
46
47
49
50
50
50
50
50
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
59
59
59
59
59
74
75
78
78
80
80
80
80
80
83
83
84
84
91
91
91
91
92
92
92
92
92
92
93
93
93
93
93
93
93
93
94
98
98
105
105
105
106
106
106
116
117
118
120
120
120
120
121
121
121
121
122
122
122
122
122
122
133
133
133
133
133
135
135
135
135
135
135
135
136
136
136
136
136
136
136
136
136
136
136
136
136
136
137
137
137
137
137
137
138
138
138
138
138
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
139
139
139
139
140
140
140
140
140
140
140
140
140
140
140
140
140
141
141
141
142
142
144
145
146
149
150
150
151
151
155
155
155
155
156
156
156
156
156
156
157
157
158
158
159
159
161
161
164
164
167
169
169
170
170
175
179
180
182
182
187
187
187
187
187
188
192
192
193
193
195
195
197
197
202
206
208
211
214
221
222
224
224
225
225
225
225
226
226
226
228
228
230
230
230
230
230
231
231
234
235
244
244
249
249
254
254
255
260
265
268
270
272
280
282
282
283
283
283
286
286
288
288
288
292
293
306
308
308
310
310
311
311
315
327
330
332
335
335
337
337
338
338
343
347
348
350
352
352
355
355
357
367
367
368
373
374
379
379
385
393
395
395
396
396
397
400
401
402
405
406
416
419
419
421
421
439
444
444
463
465
468
483
485
485
488
488
501
506
506
522
525
527
540
543
543
545
545
562
563
568
568
587
589
592
607
609
609
612
612
631
636
636
654
657
659
673
676
676
678
678
696
701
701
720
722
725
740
742
742
745
745
1146
1147
1148
4
4
5
6
7
8
8
9
9
10
10
11
11
12
14
14
15
21
21
21
21
22
22
28
29
29
31
32
32
32
32
37
39
39
40
40
41
41
41
41
42
43
43
44
44
47
48
48
48
49
50
50
50
50
50
51
52
52
53
53
53
53
54
54
54
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
55
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
59
59
59
59
59
75
77
77
79
79
81
84
84
85
85
89
89
90
91
91
92
92
93
93
93
93
95
99
99
103
104
105
106
106
106
107
107
117
118
119
121
121
122
122
122
122
122
122
122
122
122
122
123
123
123
123
131
131
134
134
134
134
134
135
135
135
135
135
136
136
136
136
136
136
136
136
137
137
137
137
137
137
137
137
137
137
137
137
137
137
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
139
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
141
141
141
141
141
141
141
141
141
141
141
141
141
142
142
143
145
146
147
149
149
149
150
151
151
152
152
156
156
156
156
157
157
158
158
158
158
158
158
158
158
159
160
165
165
170
171
171
175
180
181
183
183
186
188
188
188
188
188
189
193
193
194
194
196
202
203
205
205
207
209
212
214
222
225
226
226
226
226
227
227
227
230
231
231
231
231
232
232
235
236
245
250
250
253
253
255
255
260
261
263
263
266
269
271
272
283
284
284
284
288
289
289
293
294
299
307
309
312
312
315
316
318
318
327
331
333
336
338
339
339
343
348
349
351
356
356
366
366
368
368
373
374
375
376
376
380
380
385
396
397
397
398
401
401
403
406
407
417
422
422
440
445
445
464
466
469
484
489
489
502
507
507
523
526
528
541
546
546
559
562
564
569
569
588
590
593
608
613
613
632
637
637
655
658
660
674
679
679
697
702
702
721
723
726
741
746
746
1147
1148
1149
5
5
6
7
7
7
7
7
8
9
9
11
11
11
13
13
14
14
14
15
15
15
15
15
15
19
23
23
29
31
31
31
32
32
32
32
33
33
38
40
40
40
41
41
41
41
41
41
41
41
42
42
43
44
45
46
46
48
48
49
49
50
50
50
50
50
50
50
50
50
50
50
52
52
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
56
56
56
56
56
56
56
57
57
76
76
76
78
80
80
81
81
82
85
85
86
86
88
90
90
90
90
91
91
91
91
91
92
92
93
93
93
93
93
93
94
94
96
100
100
104
104
105
105
118
119
120
121
123
123
123
123
123
123
124
124
124
124
131
131
131
131
131
131
131
131
132
132
135
135
135
135
135
135
136
136
136
136
136
137
137
137
137
137
137
137
137
138
138
138
138
138
138
138
138
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
139
139
140
140
140
140
141
141
141
141
141
141
141
141
141
141
144
146
147
148
149
150
151
152
152
153
153
157
157
157
157
157
159
159
159
159
161
166
166
169
169
171
179
181
182
184
184
187
187
187
187
189
189
189
189
189
190
194
194
195
195
195
197
202
206
206
208
210
213
223
224
224
226
227
227
228
228
228
232
232
232
232
233
233
234
236
237
246
251
251
254
260
264
264
267
270
272
282
282
284
285
290
290
292
294
295
300
300
300
300
308
308
310
313
313
315
319
319
332
334
337
337
337
339
347
349
350
352
357
357
367
373
376
377
377
381
381
395
395
397
399
402
404
405
407
408
418
423
423
441
446
446
465
467
470
485
490
490
503
508
508
524
527
529
542
547
547
555
560
565
570
570
589
591
594
609
614
614
633
638
638
656
659
661
675
680
680
698
703
703
722
724
727
742
747
747
1148
1149
1150
7
7
8
8
8
8
8
8
9
11
11
12
12
12
12
14
14
15
16
16
16
16
23
24
29
29
30
32
32
32
33
33
34
34
39
39
39
40
41
41
41
41
41
42
42
42
43
43
44
45
45
46
46
48
48
48
48
49
49
49
49
49
49
50
53
54
54
54
54
54
55
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
77
79
79
79
79
81
81
82
82
82
83
85
85
87
87
89
89
92
92
92
92
94
94
95
95
97
101
101
119
120
120
121
121
123
123
124
124
125
125
125
125
132
132
132
132
132
132
132
132
133
133
135
135
135
135
135
135
135
135
135
135
136
136
136
136
136
136
136
136
136
136
136
137
137
137
137
137
138
138
138
138
138
138
138
139
139
139
139
140
140
141
141
141
141
141
145
146
147
148
149
149
150
151
152
152
153
153
154
154
156
157
158
158
158
158
159
159
159
159
162
167
167
170
175
180
182
182
185
185
188
188
190
190
190
190
190
191
195
195
195
195
196
196
196
203
205
207
207
207
209
211
214
214
214
224
225
228
228
229
229
229
230
233
233
233
233
234
234
235
237
237
243
247
252
252
253
255
261
263
265
265
265
271
272
272
273
283
286
288
291
291
293
295
295
301
301
308
308
309
309
314
314
316
318
320
320
320
327
327
333
335
338
338
343
348
350
350
353
356
358
358
366
368
374
376
377
378
378
378
382
382
385
385
396
400
401
403
405
406
408
408
419
424
424
442
447
447
466
468
471
486
491
491
504
509
509
528
530
543
548
548
559
561
566
571
571
590
592
595
610
615
615
634
639
639
657
660
662
676
681
681
699
704
704
723
725
728
743
748
748
1149
1150
1151
9
9
9
9
10
13
13
13
13
15
15
17
17
17
17
19
19
24
31
33
33
34
34
35
41
41
41
41
41
41
42
43
43
43
44
44
44
45
46
46
49
49
50
50
50
50
51
53
53
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
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
58
78
80
80
82
83
83
83
84
86
86
86
86
87
87
88
88
88
88
88
88
88
88
90
90
90
90
92
92
98
102
102
106
107
120
121
121
121
121
121
122
123
123
123
123
123
123
124
124
125
125
126
126
126
126
133
133
133
133
133
133
133
133
134
134
134
134
136
136
136
136
136
136
136
136
136
136
136
137
138
138
138
138
138
138
139
139
139
139
140
141
141
141
141
141
141
141
141
141
141
141
142
146
147
147
147
147
149
150
151
154
154
155
155
157
157
157
157
157
159
159
159
159
159
159
159
159
159
159
160
160
163
168
168
169
169
171
179
181
186
186
188
191
191
191
191
191
192
194
195
196
196
196
197
197
197
205
206
210
212
212
215
215
215
224
224
225
226
229
229
230
230
230
234
234
234
234
234
235
235
236
244
244
244
244
248
253
253
253
253
254
263
264
270
272
273
273
274
282
282
284
287
292
292
292
294
301
307
308
309
310
310
315
315
318
319
325
328
328
334
336
337
337
339
339
347
349
354
357
357
357
357
359
359
366
366
367
376
377
378
383
383
383
386
386
395
395
397
404
405
406
407
420
425
425
443
448
448
467
469
472
487
492
492
505
510
510
529
531
544
549
549
560
560
562
562
567
572
572
591
593
596
611
616
616
635
640
640
661
663
677
682
682
700
705
705
724
726
729
744
749
749
1150
1151
1152
5
8
10
10
10
10
10
10
11
11
13
13
14
14
14
17
18
18
19
24
24
25
29
32
34
34
34
36
39
39
41
41
41
41
41
42
42
43
43
43
44
44
44
46
46
47
50
51
51
51
51
51
51
52
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
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
59
75
79
80
81
81
83
83
83
84
85
87
87
88
88
88
88
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
92
92
99
103
103
106
106
106
107
107
107
121
122
122
122
123
124
124
124
124
125
125
126
127
127
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
136
136
136
136
136
136
136
136
136
136
137
137
137
137
137
137
137
137
137
137
137
137
138
138
138
138
138
138
139
139
141
141
141
141
141
141
141
141
142
142
142
147
148
148
148
148
148
150
151
152
152
155
155
156
156
158
158
158
158
160
160
160
160
160
160
164
169
169
169
169
170
170
180
180
182
182
187
187
188
192
192
192
192
192
193
195
197
197
198
198
206
206
207
207
213
213
213
216
224
224
225
225
226
230
230
231
231
231
235
235
235
235
236
236
237
237
245
245
249
252
253
254
254
254
255
264
264
265
265
271
271
273
275
282
282
283
283
288
293
293
293
293
295
295
301
308
310
311
311
316
316
319
319
320
320
326
326
337
337
337
338
338
340
348
348
350
350
355
358
358
360
360
365
366
367
368
377
377
378
378
379
384
384
384
384
395
395
396
396
405
406
406
407
408
408
421
426
426
444
449
449
470
473
488
493
493
506
511
511
530
532
545
550
550
560
560
562
562
563
563
568
573
573
594
597
612
617
617
636
641
641
662
664
678
683
683
701
706
706
727
730
745
750
750
1151
1152
1153
1
5
6
7
9
9
11
11
14
14
15
15
15
17
17
19
19
19
23
23
23
25
26
26
29
33
34
34
35
37
41
41
41
41
42
42
43
43
44
46
46
47
47
48
50
51
51
51
51
52
53
53
53
53
53
53
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
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
58
60
80
81
82
84
84
86
88
88
89
89
89
89
89
89
90
90
91
91
91
91
91
91
91
91
92
92
92
92
92
100
102
102
104
104
104
105
107
107
107
107
108
108
108
108
122
122
122
122
123
124
124
124
124
124
124
124
124
124
125
125
126
126
127
128
128
131
131
133
133
134
134
134
134
134
134
135
135
135
135
135
136
136
136
136
136
136
136
136
136
136
137
137
137
137
137
137
137
137
137
137
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
139
140
142
142
142
142
142
143
143
143
143
148
149
149
149
151
152
153
153
156
156
157
157
158
158
158
159
159
159
159
160
160
160
160
160
160
160
160
161
161
161
161
165
170
170
171
171
180
182
183
183
188
188
193
193
193
193
193
194
195
196
198
198
199
208
208
214
217
226
226
227
231
231
232
232
232
234
234
234
234
235
236
236
237
237
237
238
238
245
250
253
255
255
255
256
266
266
267
274
276
284
284
289
293
294
294
295
296
296
308
309
311
312
317
317
321
321
338
339
339
341
348
350
351
351
356
358
361
361
366
368
369
379
379
380
385
385
397
397
406
406
408
408
409
409
422
427
427
445
450
450
471
474
489
494
494
507
512
512
524
531
533
546
551
551
563
563
564
564
569
574
574
595
598
613
618
618
637
642
642
663
665
679
684
684
702
707
707
728
731
746
751
751
1152
1153
1154
1
1
5
6
7
10
10
11
11
11
11
11
12
15
15
16
16
16
17
18
20
20
23
24
26
26
26
26
26
29
29
34
34
35
36
38
39
43
43
46
46
47
48
48
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
52
52
53
53
53
53
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
59
59
61
61
81
82
83
85
85
85
85
87
87
87
88
88
89
89
89
89
89
89
90
90
91
91
91
91
91
91
101
103
103
105
105
106
107
107
108
108
108
108
109
109
122
122
122
123
123
123
124
124
125
125
125
125
125
125
125
126
126
126
126
127
128
128
129
129
132
132
133
133
134
134
135
135
135
135
135
136
136
136
136
136
137
137
137
137
137
137
137
137
137
137
138
138
138
138
138
138
138
138
138
138
139
140
141
142
142
142
142
143
143
143
143
143
144
144
147
148
149
150
150
150
152
152
152
152
153
154
154
157
157
158
158
158
158
158
159
159
160
160
160
161
161
161
161
162
162
162
162
166
167
171
171
172
172
180
182
183
184
184
189
189
194
194
194
194
194
195
195
196
196
196
197
197
198
198
199
199
200
206
207
207
207
209
209
215
215
218
222
227
227
228
232
232
233
233
233
235
235
235
237
237
237
238
238
238
239
239
245
251
253
254
256
256
256
264
265
265
265
267
267
268
272
273
275
277
280
285
285
290
293
295
295
295
296
297
297
308
309
311
311
312
313
318
318
319
320
320
320
322
322
328
335
339
340
340
342
348
350
351
352
352
357
358
362
362
366
367
369
377
378
378
378
380
380
381
386
386
386
393
398
398
400
406
407
408
409
409
410
410
423
428
428
446
451
451
472
475
490
495
495
508
513
513
525
529
532
534
547
552
552
564
564
570
575
575
596
599
614
619
619
638
643
643
657
664
666
680
685
685
703
708
708
729
732
747
752
752
1153
1154
1155
8
8
9
9
11
12
12
12
13
15
15
17
17
17
17
17
18
19
19
19
19
21
21
23
23
26
27
34
34
35
36
36
36
36
37
39
39
43
44
44
46
46
48
49
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
58
60
60
62
62
82
84
86
86
86
87
88
88
88
88
88
89
89
89
89
90
90
90
90
91
91
91
91
91
91
91
91
92
92
92
92
102
104
104
106
107
108
108
109
109
109
110
110
123
123
124
124
124
124
124
124
124
125
125
126
126
126
126
126
126
127
128
129
129
129
129
129
129
129
130
130
130
130
132
132
133
133
134
134
135
135
136
136
136
136
136
137
137
137
137
137
137
137
137
137
137
138
138
138
138
138
138
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
139
139
139
142
142
142
142
143
143
143
144
144
144
144
145
145
148
148
148
148
148
150
151
151
151
152
153
153
153
153
154
158
158
159
159
159
160
160
160
160
160
160
160
161
161
162
162
162
162
163
163
167
168
172
172
173
180
180
183
184
190
190
195
195
195
195
196
197
198
199
199
200
200
201
206
206
206
207
208
208
208
210
214
215
216
219
223
228
229
233
233
234
234
235
235
236
236
238
238
238
239
239
239
252
253
254
256
256
257
257
257
264
264
264
265
266
266
266
273
273
276
278
281
286
291
293
293
296
296
296
297
312
312
313
314
319
319
319
319
319
320
321
321
321
328
334
336
338
340
341
343
348
348
351
352
358
363
363
366
367
369
369
370
377
377
377
378
379
379
379
382
386
387
387
394
399
401
405
406
406
408
409
410
410
424
429
429
447
452
452
467
471
473
476
491
496
496
509
514
514
530
533
535
548
553
553
560
560
571
576
576
591
595
597
600
615
620
620
639
644
644
658
662
665
667
681
686
686
704
709
709
724
728
730
733
748
753
753
1154
1155
1156
10
10
11
11
13
13
13
14
16
16
16
16
17
17
17
18
18
18
19
19
22
22
27
28
29
32
34
34
34
36
36
36
38
38
39
39
40
40
44
45
48
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
52
53
53
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
56
56
56
56
56
56
59
61
61
63
63
79
83
85
85
87
87
87
88
88
88
89
89
89
90
90
91
91
92
92
92
92
93
93
103
105
107
107
107
107
108
108
108
108
109
109
110
121
123
123
123
123
123
123
123
123
124
124
124
125
125
125
125
125
126
126
127
128
129
130
130
130
130
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
132
132
133
133
134
134
135
135
136
136
137
137
137
137
137
137
137
137
137
137
137
138
138
138
138
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
140
140
140
140
142
142
142
143
143
143
143
143
144
144
144
145
145
149
151
151
152
152
153
154
154
154
154
155
157
158
158
159
159
159
159
159
159
159
159
159
159
160
160
160
160
161
161
161
161
162
162
164
164
168
168
168
172
172
173
173
174
181
181
182
182
182
184
191
191
196
196
196
196
197
198
199
200
200
201
202
208
209
209
209
215
217
220
223
223
227
227
229
230
233
233
234
234
235
235
236
236
237
237
237
237
237
239
239
239
240
240
253
257
257
258
258
266
267
267
267
274
277
279
281
281
285
285
287
292
294
294
295
295
295
297
297
297
313
313
315
320
320
321
322
322
322
336
336
339
340
340
341
342
344
349
349
350
350
350
352
359
364
364
370
370
371
379
380
380
380
383
388
388
394
394
398
398
400
406
407
407
408
408
408
409
410
411
425
430
430
448
453
453
472
474
477
492
497
497
510
515
531
534
536
549
554
554
561
561
562
562
562
572
577
577
596
598
601
616
621
621
640
645
645
663
666
668
682
687
687
705
710
710
729
731
734
749
754
754
1155
1156
1157
2
5
9
9
9
11
14
15
17
17
17
19
19
19
23
23
26
28
29
33
34
37
39
39
39
41
41
44
44
45
46
49
49
50
50
50
50
50
50
51
52
52
52
52
52
52
52
52
53
53
53
53
53
54
55
55
55
55
55
55
55
55
55
56
56
57
57
57
57
57
57
60
64
64
80
84
86
86
86
88
88
88
88
88
88
88
88
88
88
88
88
88
89
90
90
90
91
91
91
91
91
91
93
93
94
94
104
105
106
106
108
108
109
109
110
122
124
124
124
124
124
124
125
126
126
126
126
126
127
128
129
129
129
130
131
131
131
131
131
131
131
131
131
131
131
131
131
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
133
133
134
134
134
134
136
136
138
138
138
138
138
138
138
138
139
139
139
139
139
140
140
140
140
141
141
141
143
144
144
144
145
145
150
152
152
152
152
154
155
155
155
156
158
159
160
160
160
160
160
160
160
160
161
161
162
162
162
162
163
163
165
165
169
173
173
174
174
175
183
183
183
183
187
192
192
194
194
197
197
197
197
198
198
199
200
202
203
207
209
210
210
216
218
221
228
228
230
231
234
235
235
236
236
238
238
238
238
238
238
240
240
241
241
254
257
257
258
258
259
265
267
268
268
275
278
280
286
286
288
293
296
296
296
296
298
298
300
311
316
320
321
321
322
323
323
340
341
341
342
343
345
351
351
351
351
360
365
365
371
371
378
380
381
381
384
389
389
399
399
401
407
409
409
409
409
410
412
426
431
431
449
454
454
473
475
478
493
498
498
511
514
514
516
532
535
537
550
555
555
563
563
563
573
578
578
597
599
602
617
622
622
641
646
646
664
667
669
683
688
688
706
711
711
730
732
735
750
755
755
1156
1157
1158
2
3
10
10
10
11
14
16
17
18
18
18
18
18
19
19
20
20
20
23
24
24
26
26
34
34
35
36
36
38
39
40
40
42
42
43
43
43
45
46
46
50
50
50
50
50
50
50
50
50
50
50
51
52
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
55
55
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
57
57
58
61
65
65
81
83
83
83
83
83
83
83
83
84
84
85
87
87
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
91
91
91
91
91
92
92
92
92
95
95
105
106
107
107
108
109
109
110
110
111
123
123
123
124
124
124
124
125
125
125
125
125
125
127
127
127
128
129
129
129
129
129
129
129
129
129
130
130
130
131
132
132
132
132
132
132
132
132
132
132
132
132
132
133
133
133
133
133
133
133
133
133
133
133
133
133
133
133
133
133
133
134
134
135
135
136
136
138
139
139
139
139
139
139
139
139
139
139
140
140
141
141
142
142
142
143
144
145
145
146
151
153
153
153
156
157
159
159
159
160
160
160
160
160
161
161
161
161
161
161
162
163
163
164
164
166
166
170
172
174
174
175
175
184
184
188
188
188
193
193
195
195
198
198
198
199
200
201
203
204
208
208
217
219
222
227
229
229
232
235
237
237
239
239
239
239
241
241
242
242
255
256
258
260
266
266
276
279
279
281
281
285
287
287
294
297
297
299
299
301
301
301
308
317
321
321
322
340
341
342
342
343
346
352
352
361
366
366
369
379
379
385
390
398
400
400
408
410
410
411
413
427
432
432
450
455
474
476
479
494
499
499
512
515
517
533
536
536
538
538
551
556
556
563
564
564
574
579
598
600
603
618
623
623
642
647
665
668
670
684
689
689
707
712
731
733
736
751
756
756
1157
1158
1159
3
4
9
9
10
11
11
15
15
17
17
19
19
19
19
20
20
20
20
21
21
21
25
25
28
28
29
34
36
36
37
37
39
40
41
43
43
43
44
46
46
46
46
46
48
49
50
50
50
50
50
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
53
53
53
53
53
54
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
56
56
56
56
56
56
56
56
56
56
56
57
58
58
59
62
66
66
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
86
87
87
88
88
88
88
89
89
89
89
89
90
90
91
91
91
91
91
91
91
92
92
92
93
93
93
93
96
96
102
106
106
107
107
108
108
108
108
109
110
110
111
112
122
122
123
124
124
124
124
125
125
126
126
127
127
127
127
128
128
130
130
130
130
130
130
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
132
132
132
132
132
132
133
133
133
133
133
133
133
133
133
133
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
135
135
136
136
139
139
139
139
139
140
140
140
141
141
142
142
142
142
143
143
144
146
147
152
154
154
157
157
158
158
158
158
159
160
160
160
160
161
161
161
162
162
163
163
163
163
163
164
164
165
165
167
167
171
172
176
176
184
189
189
194
194
195
196
196
198
198
199
199
201
202
204
205
213
218
220
223
227
233
236
238
238
239
240
240
242
242
243
243
244
253
256
259
261
271
277
282
282
285
295
297
300
300
302
302
308
309
311
311
318
323
326
340
342
344
347
352
357
362
366
367
367
384
386
389
389
391
398
409
410
412
412
414
414
428
433
433
451
456
475
477
480
495
500
500
513
516
518
534
539
539
552
557
557
564
564
575
580
599
601
604
619
624
624
643
646
646
648
666
669
669
671
671
685
690
690
708
713
732
734
737
752
757
757
1158
1159
1160
3
4
4
5
10
10
10
11
11
11
11
16
18
19
21
21
21
21
22
22
22
26
26
26
26
29
36
38
38
40
40
40
40
41
41
41
41
42
43
43
44
44
46
47
50
50
51
51
52
52
52
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
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
59
60
63
67
67
84
84
87
87
87
87
87
87
88
88
89
89
89
89
90
90
90
90
90
91
91
92
92
92
93
93
93
94
94
94
94
97
97
103
106
106
107
107
107
109
109
109
110
110
110
111
111
111
111
112
113
123
123
125
125
127
127
128
128
128
128
129
129
131
131
131
131
131
131
131
131
131
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
133
133
133
133
133
133
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
135
135
135
135
135
135
135
135
135
135
135
135
135
135
138
141
141
141
142
142
142
142
142
142
142
143
144
145
145
145
146
146
147
148
153
155
158
158
159
159
159
159
161
161
162
163
163
164
164
164
164
164
165
165
166
166
168
168
168
172
172
173
177
177
184
188
189
189
189
189
190
195
195
195
197
197
197
199
199
200
200
202
203
205
206
210
214
219
221
221
223
224
224
227
228
234
237
239
239
239
241
241
243
243
244
244
245
245
245
253
254
256
256
257
260
262
268
272
278
281
283
283
285
286
296
297
301
301
301
302
302
302
302
303
308
312
312
319
321
321
323
324
327
336
340
341
343
345
345
348
348
352
358
358
358
363
366
367
368
368
369
369
381
385
387
390
392
394
398
399
410
410
415
415
429
434
434
452
454
454
457
476
478
478
481
481
496
501
501
514
517
519
535
540
540
553
558
558
576
578
578
581
600
602
602
605
605
620
625
625
644
647
649
667
672
672
686
691
691
709
711
711
714
733
735
735
738
738
753
758
758
1159
1160
1161
5
5
6
9
9
11
12
12
13
13
17
17
18
18
19
19
19
21
22
22
23
23
23
25
25
27
27
28
28
29
36
36
38
40
40
41
41
41
41
41
41
42
42
42
43
44
45
45
47
48
50
50
50
51
51
51
51
51
51
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
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
55
55
55
55
55
56
60
61
64
68
68
81
82
82
82
87
88
88
88
88
88
88
88
90
90
91
91
92
92
93
93
93
93
94
94
94
95
95
98
98
104
108
110
110
110
111
111
111
112
112
112
112
113
114
123
123
124
124
126
129
129
129
129
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
133
133
133
133
133
133
133
133
133
133
133
133
133
133
133
133
133
134
134
134
134
134
134
134
134
134
134
134
135
135
135
135
135
135
135
135
135
135
135
135
135
135
136
136
136
136
136
136
136
136
136
136
136
136
138
140
142
142
143
143
143
143
144
144
145
146
146
146
147
147
148
149
154
155
159
159
159
159
160
160
160
160
160
160
162
163
165
165
165
165
165
167
167
168
169
169
173
173
174
178
178
190
190
191
196
196
196
198
198
198
200
200
200
201
201
203
204
206
207
210
215
215
220
223
225
225
228
229
235
235
238
240
240
242
242
244
244
245
245
246
246
253
257
257
258
261
263
268
273
273
279
281
284
284
286
287
297
302
302
303
303
304
309
311
313
313
313
320
322
323
325
328
328
336
341
342
344
349
349
359
359
364
366
369
369
370
370
381
386
386
388
391
393
394
399
400
411
416
416
430
435
435
453
455
458
477
482
482
497
502
502
515
518
520
536
541
541
554
559
559
577
579
582
601
606
606
621
626
626
645
648
650
668
673
673
687
692
692
710
712
715
734
739
739
754
759
759
1160
1161
1162
6
7
13
13
18
19
19
19
20
21
21
21
24
24
24
26
26
26
26
28
29
38
38
38
41
41
42
42
42
43
43
43
43
43
44
46
46
46
46
46
46
46
46
48
49
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
53
53
53
53
53
53
55
55
55
55
55
55
55
55
56
56
56
56
56
56
57
57
58
58
61
62
65
69
69
82
82
83
83
83
83
83
85
86
88
89
90
90
90
91
91
91
92
92
93
93
94
94
94
94
95
96
96
99
99
109
112
112
113
113
113
113
123
124
124
124
125
126
126
127
127
128
129
129
129
129
131
132
133
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
134
135
135
135
135
135
135
135
135
135
135
136
136
136
136
136
136
136
136
136
136
136
136
137
137
137
137
137
137
137
137
137
137
137
137
139
140
141
142
143
144
144
144
144
145
145
145
147
147
148
148
155
159
160
160
160
160
160
161
161
161
161
161
161
161
162
162
163
164
165
165
166
168
168
170
170
172
174
174
175
179
179
189
189
191
191
197
198
198
199
199
199
199
202
202
202
203
204
205
207
208
216
216
216
216
221
226
226
227
229
230
236
236
239
240
240
241
241
243
243
245
245
245
246
246
246
246
246
246
247
254
256
258
258
258
259
262
264
274
274
274
274
280
285
285
285
287
288
298
302
302
303
303
304
304
311
312
321
323
326
329
329
329
329
340
342
343
345
350
350
358
359
359
359
359
360
365
367
369
370
370
371
371
371
387
387
387
387
389
392
394
398
400
401
412
417
417
431
436
436
454
456
459
478
483
483
498
503
503
516
519
521
537
542
542
555
560
560
578
580
583
602
607
607
622
627
627
646
649
651
669
674
674
688
693
693
711
713
716
735
740
740
755
760
760
1161
1162
1163
1
5
5
7
8
9
13
19
19
20
20
20
21
21
25
25
25
27
27
28
28
29
29
36
36
38
43
43
43
43
44
44
44
46
46
47
47
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
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
57
57
57
57
57
57
58
59
62
63
66
70
70
83
85
85
85
85
85
85
86
86
86
86
86
86
86
87
88
88
89
89
89
89
89
89
89
89
90
91
91
91
91
91
92
92
92
93
93
94
94
95
95
96
97
97
97
97
100
100
100
100
110
110
110
111
111
114
114
124
124
125
125
125
125
126
127
127
127
127
128
129
129
129
129
130
130
130
130
132
133
134
134
134
134
134
134
134
134
134
134
134
135
135
135
135
135
135
135
135
135
135
135
135
135
137
137
137
137
137
137
137
137
137
137
137
137
138
138
139
139
140
142
143
143
144
145
145
145
145
145
146
146
146
155
155
156
159
160
160
161
161
161
161
161
161
162
162
162
163
163
163
163
164
165
166
166
167
168
169
169
169
169
171
171
171
171
173
175
175
175
180
180
183
190
198
199
199
200
200
200
200
203
203
203
204
205
206
208
209
210
210
214
216
216
217
217
222
223
227
227
228
230
230
238
240
241
241
242
242
244
244
244
244
246
246
246
246
247
247
247
247
248
256
257
260
263
265
268
268
272
274
274
275
275
281
281
286
286
286
288
288
296
299
303
304
304
312
312
313
313
322
323
323
324
327
327
329
329
330
330
336
341
343
343
346
351
351
351
360
360
361
366
369
370
371
371
381
381
385
387
387
388
388
390
393
394
395
399
401
401
409
413
418
418
432
437
437
455
457
460
479
484
484
499
504
504
517
520
522
538
543
543
556
561
561
579
581
584
603
608
608
623
628
628
647
650
652
670
675
675
689
694
694
712
714
717
736
741
741
756
761
761
1162
1163
1164
1
1
4
4
5
5
8
8
9
9
11
13
13
17
21
21
21
21
22
22
22
22
22
26
26
26
26
26
28
28
29
30
38
38
38
44
44
44
46
46
46
46
46
48
48
48
48
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
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
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
58
59
59
60
60
62
63
63
64
67
71
71
83
83
83
83
83
83
83
83
84
84
86
86
86
86
86
86
87
87
87
87
87
87
89
89
89
89
89
89
89
89
89
89
90
90
91
91
91
91
91
91
91
92
92
92
92
93
93
93
94
95
95
96
96
97
101
101
101
101
106
106
107
107
110
111
111
111
111
112
112
115
115
124
124
125
125
126
126
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
130
130
130
130
131
131
131
131
133
134
134
134
134
134
134
134
134
134
135
135
136
136
136
137
137
137
137
137
138
138
138
139
139
139
141
141
141
141
142
142
143
144
144
145
145
145
146
146
146
146
146
146
147
147
147
153
156
156
157
159
160
160
161
161
162
162
162
163
163
163
163
163
163
163
163
164
164
164
164
166
167
167
168
172
172
172
172
172
174
176
181
181
184
184
184
184
189
191
199
201
201
201
201
204
204
204
205
206
206
207
207
208
209
209
210
210
211
211
217
218
218
223
227
228
228
229
234
239
239
239
239
241
242
242
243
243
246
246
247
247
247
247
248
248
248
248
257
257
258
258
261
264
266
266
269
269
275
276
276
282
285
287
287
287
297
297
297
297
300
302
304
305
305
314
314
321
323
324
324
325
328
330
331
331
340
342
347
352
352
352
352
352
352
359
359
361
361
367
370
370
371
371
372
372
379
382
382
388
389
389
391
394
396
398
400
410
410
410
410
414
419
419
433
438
438
456
458
461
480
485
485
500
505
505
518
521
523
539
544
544
557
562
562
580
582
585
604
609
609
624
629
629
648
651
653
671
676
676
690
695
695
713
715
718
737
742
742
757
762
762
1163
1164
1165
5
9
9
9
9
10
10
13
14
18
19
19
21
23
23
23
27
27
27
28
28
28
29
29
29
29
29
31
36
36
38
38
38
38
45
46
46
46
47
47
47
47
47
47
47
47
47
47
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
55
55
55
55
56
56
56
56
56
57
57
57
57
57
59
63
64
64
65
68
72
72
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
86
86
86
86
89
89
90
90
90
90
90
92
92
92
93
93
93
93
94
94
94
94
95
96
96
97
97
98
102
102
102
102
106
107
110
110
111
111
111
112
112
112
112
113
113
116
116
123
123
123
123
123
123
124
124
124
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
131
131
131
131
132
132
132
132
134
135
137
137
137
137
137
137
137
137
137
137
137
139
139
139
140
140
140
141
142
145
145
145
145
146
146
146
146
146
147
147
147
147
147
148
148
148
154
154
158
159
160
161
161
163
163
163
163
163
164
164
164
164
164
164
164
164
164
165
165
165
165
167
168
168
169
173
173
173
173
173
173
175
175
177
182
182
185
185
189
189
190
196
199
200
200
200
200
200
202
202
202
202
205
205
205
206
209
209
210
210
211
211
216
216
218
224
228
228
229
229
230
230
235
239
240
240
242
243
243
244
244
247
248
248
248
248
249
249
259
259
265
267
267
267
274
274
276
283
286
286
288
288
288
288
298
298
301
302
302
303
306
306
312
313
313
313
315
315
322
322
324
326
329
329
329
331
341
341
343
343
348
353
353
353
353
360
368
372
372
373
373
380
380
387
387
389
392
395
397
399
399
401
401
411
411
415
420
420
434
439
439
457
459
462
481
486
486
501
506
506
522
524
540
545
545
558
563
563
581
583
586
605
610
610
625
630
630
649
652
654
672
677
677
691
696
696
714
716
719
738
743
743
758
763
763
1164
1165
1166
4
6
10
10
11
11
13
13
14
15
15
15
15
19
21
21
21
24
24
24
24
24
26
26
27
27
28
28
29
30
30
30
32
38
38
38
38
39
39
46
48
48
49
50
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
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
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
60
60
61
64
65
65
66
69
71
71
73
73
84
84
84
85
85
85
86
86
86
86
86
87
87
87
87
88
88
88
90
90
91
93
93
93
94
94
94
94
94
95
95
95
95
95
95
96
96
97
97
98
98
99
99
103
103
103
103
111
111
112
112
112
113
113
113
113
113
114
114
114
117
117
123
124
124
124
124
124
124
125
125
125
126
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
131
131
131
131
131
131
132
132
132
132
132
132
132
132
132
132
132
132
132
132
135
136
137
137
137
137
137
138
140
140
140
141
141
141
141
143
143
145
145
145
146
146
147
147
147
147
147
147
148
148
148
148
148
149
149
149
149
159
159
160
162
162
164
164
165
165
165
165
165
165
165
166
166
166
166
168
168
169
169
170
170
173
174
174
174
174
175
176
176
178
183
183
185
188
189
190
191
199
199
199
200
201
201
201
201
201
203
203
206
206
206
207
211
211
212
212
217
225
228
230
230
230
231
231
240
240
243
243
244
244
245
245
245
246
248
249
249
249
249
250
250
257
258
258
258
260
260
266
268
275
284
286
288
289
289
289
289
298
301
302
302
303
304
307
307
312
312
312
313
314
314
314
325
327
330
330
341
343
344
344
349
353
354
354
359
361
369
370
371
371
371
373
373
374
374
388
393
396
398
399
401
402
402
411
416
421
421
435
440
440
458
460
463
482
487
487
502
507
507
523
525
541
546
546
559
563
564
564
582
584
587
606
611
611
626
631
631
650
653
655
673
678
678
692
697
697
715
717
720
739
744
744
759
764
764
1165
1166
1167
5
7
7
9
12
12
13
13
13
15
15
19
19
21
21
21
21
21
21
25
25
28
28
29
29
29
31
31
31
31
33
33
36
40
40
46
46
47
49
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
53
53
53
55
55
55
55
55
55
55
55
55
55
55
55
55
55
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
60
61
61
62
64
65
66
67
70
72
72
74
81
82
82
82
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
87
88
88
88
88
90
90
90
90
90
91
92
94
94
94
94
94
94
94
95
96
96
96
96
96
96
98
99
99
100
100
104
104
104
104
111
112
113
113
113
114
114
114
114
114
114
115
115
118
118
123
124
125
125
125
125
125
126
126
126
126
126
126
127
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
131
131
131
131
131
131
131
131
131
131
131
132
132
132
132
132
132
132
132
132
132
133
133
133
133
133
133
133
133
133
133
133
136
137
139
139
139
141
141
141
141
141
142
142
142
143
144
144
145
146
146
146
146
147
148
148
148
148
149
149
149
149
149
149
150
150
156
159
160
160
161
161
162
162
162
163
163
164
164
165
165
165
165
165
165
165
165
166
167
167
167
167
170
170
171
171
173
175
175
175
175
175
176
177
177
179
184
184
185
189
191
192
201
202
202
202
202
202
204
204
204
207
207
207
207
208
211
212
212
213
213
216
216
218
226
228
230
231
231
231
232
232
240
241
245
245
246
246
246
246
246
247
250
250
250
250
251
251
257
257
257
258
259
259
259
267
269
269
274
274
276
285
286
288
289
290
290
290
290
298
302
303
304
305
308
308
314
315
315
315
324
326
328
329
329
331
331
341
343
344
345
345
350
353
355
355
359
359
360
370
370
370
370
371
372
372
372
375
375
382
387
387
389
397
399
399
401
402
403
403
411
417
422
422
436
441
441
459
461
464
483
488
488
503
508
508
524
526
542
547
547
560
564
564
564
565
565
583
585
588
607
612
612
627
632
632
654
656
674
679
679
693
698
698
716
718
721
740
745
745
760
765
765
1166
1167
1168
4
5
5
8
13
13
13
20
20
21
21
21
21
22
22
22
25
25
26
26
26
29
29
30
30
30
31
32
32
34
34
40
41
48
48
48
49
50
50
51
51
51
51
52
52
53
53
53
53
53
53
53
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
55
55
61
62
62
63
65
65
66
66
67
68
71
73
73
75
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
88
89
89
90
90
90
90
90
90
91
92
93
93
94
94
95
95
95
95
95
95
95
96
97
97
99
100
100
101
101
105
105
105
105
111
112
113
114
114
115
115
115
115
116
116
119
119
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
132
132
133
133
133
133
134
134
134
134
134
134
134
134
134
134
137
138
139
140
142
142
143
143
143
143
143
144
145
145
146
146
147
147
147
147
148
149
149
150
150
150
151
151
156
161
161
161
162
162
162
163
163
163
163
164
164
164
164
164
164
164
164
165
165
166
166
166
166
166
166
166
166
167
171
171
172
172
173
173
176
176
176
176
176
177
180
185
185
189
190
192
200
202
203
203
203
205
208
208
208
208
209
211
213
213
214
214
216
216
217
217
227
228
228
231
232
232
232
242
245
246
246
246
247
247
247
247
248
251
251
251
251
252
252
259
260
260
260
261
268
269
270
274
274
275
275
286
286
286
289
290
291
291
302
303
304
305
309
309
313
315
316
316
324
329
329
329
330
330
332
341
341
344
345
351
356
356
358
359
360
361
371
372
373
373
373
376
376
382
387
387
388
388
398
399
399
400
402
403
418
423
423
437
442
442
462
465
484
489
489
504
509
509
518
525
527
543
548
548
561
564
565
565
566
566
586
589
608
613
613
628
633
633
655
657
675
680
680
694
699
699
719
722
741
746
746
761
766
766
1167
1168
1169
5
5
7
9
13
14
14
14
15
15
19
23
23
23
23
26
26
26
26
27
27
29
29
31
31
31
31
31
33
33
35
35
36
36
40
41
41
46
46
46
46
48
49
49
51
51
51
51
51
51
51
51
51
51
52
52
52
53
53
53
53
55
55
55
55
55
56
56
56
56
56
56
58
62
63
66
67
68
69
72
74
76
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
86
86
86
86
92
93
93
94
94
95
95
96
96
96
96
96
96
96
97
98
100
101
101
102
102
106
106
106
106
111
111
112
112
114
115
115
116
116
120
120
127
128
128
128
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
131
131
131
131
131
131
131
131
131
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
133
133
133
133
134
134
134
134
135
135
135
135
135
135
135
135
135
135
135
138
139
141
143
143
144
144
144
144
144
145
145
146
146
146
146
146
147
147
147
148
148
149
150
150
151
162
163
163
164
164
164
165
165
166
166
167
167
167
167
167
167
167
167
168
172
172
173
173
174
174
175
175
175
177
177
177
177
177
181
186
186
189
190
192
192
193
201
201
204
206
209
209
209
209
210
214
214
215
215
218
218
228
229
229
230
230
230
232
233
233
243
246
247
247
248
248
248
248
249
252
252
252
252
253
253
258
260
261
261
262
266
269
271
276
276
287
287
287
288
288
288
290
292
292
302
303
305
305
305
306
310
310
314
314
330
331
331
333
342
342
343
343
343
345
352
357
357
359
361
362
371
372
373
374
374
377
377
389
389
399
400
400
401
401
401
401
403
419
424
424
438
443
443
463
466
485
490
490
505
510
510
519
523
526
528
544
549
549
562
565
565
567
567
587
590
609
614
614
629
634
634
656
658
676
681
681
695
700
700
720
723
742
747
747
762
767
767
1168
1169
1170
5
5
7
10
13
15
15
15
15
16
16
23
24
26
26
27
27
27
28
30
30
30
30
31
32
32
32
32
36
36
36
40
40
40
41
41
41
41
41
41
42
42
46
46
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
54
55
55
55
55
55
55
56
56
56
57
57
57
57
57
59
62
64
67
67
68
68
69
70
73
75
77
84
84
84
84
85
85
85
85
85
85
86
86
86
86
87
87
87
87
89
93
93
93
94
94
95
95
96
96
97
97
97
97
97
98
99
101
102
102
103
103
107
107
107
107
112
112
113
113
113
113
113
114
114
114
115
116
117
121
121
127
127
127
127
127
128
128
128
129
129
130
130
130
130
130
131
131
131
131
131
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
133
133
133
133
133
133
133
133
133
133
135
135
135
135
135
135
136
138
139
140
140
142
144
144
144
145
145
145
146
146
146
146
146
147
147
147
147
148
148
148
148
148
149
149
149
150
151
156
156
159
163
163
164
164
164
164
164
165
165
166
166
167
167
168
168
168
168
168
168
169
173
173
174
174
176
176
176
176
178
178
178
178
182
187
187
193
193
194
205
207
210
210
210
210
211
211
211
214
215
215
216
216
219
219
229
231
231
231
231
234
234
239
244
246
247
248
248
249
249
249
249
253
253
253
253
254
254
259
259
267
269
269
270
272
272
277
277
288
289
289
289
289
293
293
306
306
306
307
311
311
324
324
327
331
332
332
334
344
344
344
344
352
353
358
358
359
360
362
372
372
373
378
378
382
382
385
390
390
393
400
402
402
402
402
402
420
425
425
439
444
444
464
467
486
491
491
506
511
511
524
527
529
545
550
550
563
568
568
588
591
610
615
615
630
635
635
650
657
659
677
682
682
696
701
701
721
724
743
748
748
763
768
768
1169
1170
1171
5
5
7
11
15
16
16
17
17
19
19
19
24
24
28
29
31
31
31
31
32
33
33
33
33
33
33
33
36
37
37
40
40
40
40
40
41
41
41
41
41
42
42
42
42
43
43
43
44
46
46
46
46
46
46
46
46
46
47
47
47
47
47
48
48
49
50
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
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
54
55
55
55
55
60
63
63
65
68
69
69
70
70
71
76
78
81
82
82
82
84
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
89
89
89
93
94
94
94
95
95
95
95
99
100
102
103
103
104
104
108
108
108
108
114
114
114
114
115
115
115
115
118
120
120
122
122
125
125
125
125
125
125
127
127
127
127
127
127
127
127
127
128
128
128
128
128
129
129
129
130
130
130
130
131
131
131
132
132
132
132
132
132
132
132
132
132
132
132
132
133
133
133
135
135
135
135
135
136
137
139
140
140
140
141
141
141
143
144
145
145
146
146
146
146
147
148
148
149
149
149
149
150
150
150
150
154
157
157
160
163
163
163
164
164
165
165
165
165
166
166
166
166
169
169
170
174
174
175
175
177
177
179
179
179
179
183
188
188
194
194
202
203
206
206
208
209
211
211
211
211
212
212
212
215
216
216
217
217
220
230
232
232
235
235
240
240
240
240
245
246
247
249
249
249
249
250
250
250
250
254
254
254
254
255
267
268
270
270
271
273
273
278
289
290
290
294
294
307
307
307
312
312
316
322
325
325
326
328
330
332
333
335
345
345
353
353
353
353
354
359
359
359
360
362
362
363
374
379
379
380
383
383
386
391
394
398
401
403
403
403
421
426
426
440
445
445
459
463
465
468
487
492
492
507
512
525
528
530
546
551
551
564
569
569
583
587
589
592
611
616
616
631
636
636
651
655
658
660
678
683
683
697
702
702
716
720
722
725
744
749
749
764
769
1170
1171
1172
5
5
7
12
15
15
17
17
17
19
24
24
25
25
26
28
30
31
31
31
32
32
32
32
33
33
34
34
34
38
38
40
41
41
41
42
42
43
43
43
43
43
43
43
43
43
43
44
46
46
46
48
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
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
54
55
55
56
64
66
70
71
71
71
72
75
77
77
79
79
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
94
95
95
95
95
99
100
101
101
103
103
104
104
105
105
109
109
109
109
115
115
116
116
119
121
121
123
123
123
125
125
125
125
125
125
125
125
126
126
126
126
126
126
128
128
128
128
128
128
129
129
129
129
129
130
130
130
130
130
130
130
130
131
131
131
131
131
131
133
133
133
135
135
135
135
135
135
135
136
137
138
140
141
141
141
142
142
144
144
144
146
146
147
147
147
147
148
148
150
150
151
151
155
155
160
160
164
164
165
165
166
166
166
166
170
170
171
175
175
176
176
177
180
180
180
180
184
184
189
189
192
203
207
207
209
210
210
212
212
212
212
213
215
215
217
217
218
218
219
219
221
231
232
236
236
241
241
246
250
250
250
250
251
251
251
251
254
254
255
255
255
255
256
261
268
268
269
272
273
273
274
277
277
279
290
290
295
295
297
305
308
313
313
316
323
323
328
328
331
332
332
333
334
336
345
354
354
355
360
360
363
363
364
374
375
380
380
381
381
386
386
390
390
392
399
402
403
404
410
422
427
427
441
446
446
464
466
469
488
493
493
508
511
511
513
526
529
531
547
552
552
565
570
570
588
590
593
612
617
617
632
637
637
656
659
661
679
684
684
698
703
703
721
723
726
745
750
750
765
768
768
770
1171
1172
1173
1
5
5
7
13
17
17
17
18
18
19
23
23
23
25
26
26
26
29
29
31
31
33
33
34
34
35
35
35
39
39
40
40
43
43
43
44
44
44
44
46
46
46
46
46
46
46
48
48
48
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
55
56
56
56
56
56
56
56
56
56
56
57
62
63
65
65
67
67
68
71
72
72
72
73
76
78
78
80
80
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
86
86
86
86
93
95
96
96
96
97
97
97
97
97
97
100
101
102
102
104
104
105
105
106
106
110
110
110
110
115
116
120
122
122
124
124
124
124
124
124
124
124
124
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
131
131
131
131
132
132
132
132
132
132
133
133
133
133
135
135
135
135
135
137
138
141
142
142
142
143
143
145
145
145
146
146
146
147
147
148
148
148
148
148
150
151
164
165
165
166
166
167
167
167
168
168
168
168
168
168
171
171
172
176
176
177
177
177
181
181
181
181
185
185
185
185
189
190
190
208
208
210
213
213
213
213
214
218
218
219
219
220
220
222
232
232
237
237
241
247
251
251
251
251
252
252
252
255
256
256
256
256
257
261
270
273
273
275
275
278
278
280
290
291
296
296
298
298
298
302
309
314
314
332
333
333
334
335
337
345
354
356
361
361
364
364
374
376
381
381
391
391
393
400
403
403
405
411
411
411
423
428
428
442
447
447
465
467
470
489
494
494
509
512
514
527
530
530
532
532
548
553
553
566
571
571
589
591
594
613
618
618
633
638
638
657
660
662
680
685
685
699
704
704
722
724
727
746
751
751
766
769
771
1172
1173
1174
1
1
5
5
5
7
14
15
15
17
19
19
23
24
26
26
26
26
26
30
31
32
32
33
33
35
35
36
36
36
40
40
44
44
44
45
46
46
47
47
47
47
47
47
47
47
47
47
49
49
49
49
49
49
49
49
50
50
50
50
50
50
51
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
53
54
54
54
54
54
54
55
55
55
55
56
56
57
57
57
57
57
57
57
57
57
57
58
58
66
67
68
68
69
73
73
74
77
79
79
81
81
84
84
84
84
85
85
85
85
85
85
86
86
86
86
87
87
87
87
94
94
95
95
97
97
97
98
98
98
98
101
102
103
103
105
105
106
106
107
107
111
111
111
111
114
115
115
116
120
121
121
121
121
121
121
122
122
122
123
124
125
125
125
125
125
125
125
125
125
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
129
130
130
130
130
130
130
130
130
131
132
132
133
133
133
133
133
133
133
142
143
143
143
144
144
146
147
147
147
147
148
148
149
149
149
149
150
150
151
157
164
165
165
166
166
166
166
167
168
168
169
169
169
169
172
172
173
177
177
178
178
182
182
182
182
186
186
186
189
190
191
191
192
192
203
203
209
209
211
212
214
214
214
214
215
219
219
219
220
220
221
221
233
238
238
241
248
249
252
252
253
253
253
256
257
257
257
257
258
270
271
276
276
277
279
279
292
297
297
299
299
302
303
305
305
310
315
315
316
316
325
332
333
334
334
335
338
354
357
362
362
362
377
382
382
383
390
392
392
401
404
406
412
412
424
429
429
443
448
448
466
468
471
490
495
495
510
513
515
528
533
533
549
554
554
567
572
572
590
592
595
614
619
619
634
639
639
658
661
663
681
686
686
700
705
705
723
725
728
747
752
752
767
770
772
1173
1174
1175
5
5
5
6
7
7
7
15
17
17
17
20
20
23
23
26
27
27
27
31
31
31
32
32
33
33
33
34
34
36
36
37
37
37
41
41
43
45
46
46
46
46
46
47
47
47
47
47
49
49
49
49
49
49
49
49
49
49
50
50
51
51
51
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
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
57
57
59
59
68
69
69
70
74
75
78
81
82
82
82
82
82
84
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
96
96
96
96
102
103
106
106
107
107
108
108
112
112
112
112
115
115
115
115
116
116
116
116
121
122
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
123
124
125
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
131
131
131
131
135
143
144
144
144
145
145
147
147
148
148
148
148
149
149
150
150
150
150
150
150
150
150
151
151
151
151
157
164
167
167
167
167
168
173
173
174
178
178
179
179
183
183
183
183
185
186
186
186
186
187
187
189
192
192
193
193
201
204
204
210
210
212
212
215
215
215
215
216
219
220
220
221
221
234
239
239
246
249
253
253
254
254
254
257
258
258
258
258
259
261
261
270
272
277
277
277
293
298
298
298
299
299
299
299
300
302
306
306
311
314
316
316
317
317
325
332
334
336
339
358
359
363
363
374
374
378
383
383
383
390
402
405
405
407
407
411
412
412
412
412
413
425
430
430
444
449
449
467
469
472
491
496
496
511
514
516
529
534
534
550
555
555
568
573
573
591
593
596
615
620
620
635
640
640
659
662
662
664
664
682
687
687
701
706
706
724
726
729
748
753
753
768
771
773
1174
1175
1176
5
5
5
7
8
8
15
15
16
17
19
19
21
21
27
28
32
33
33
33
33
34
35
35
38
38
38
40
42
42
43
43
50
50
50
51
51
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
53
53
53
53
53
53
53
53
53
54
54
54
54
54
55
55
56
56
56
56
56
56
58
58
60
60
60
65
69
70
71
71
72
72
75
76
79
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
96
96
96
103
104
107
107
108
108
109
109
113
113
113
113
116
116
117
117
122
123
123
123
123
123
124
124
124
124
124
124
124
124
124
124
124
124
124
125
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
129
129
130
130
130
130
130
130
130
130
130
130
130
130
131
131
131
135
135
135
136
143
145
145
145
146
146
146
148
149
149
150
150
151
151
151
151
151
151
152
152
160
164
165
167
167
167
169
174
174
175
176
179
179
180
180
184
184
184
184
187
187
188
188
190
192
193
193
194
194
194
202
202
211
211
213
213
215
216
216
216
216
216
217
219
220
221
221
222
222
231
235
240
240
246
247
249
249
250
254
254
255
255
255
258
259
259
259
259
259
260
262
262
273
273
277
278
278
278
289
294
299
299
300
300
301
303
305
307
307
307
312
315
315
317
317
328
332
333
335
337
337
340
340
344
359
359
360
362
362
364
364
372
375
375
379
384
384
386
390
391
402
403
408
408
413
413
414
426
431
431
445
450
450
468
470
470
473
473
492
497
497
512
515
517
530
535
535
551
556
556
564
569
574
574
592
594
594
597
597
616
621
621
636
641
641
660
665
665
683
688
688
702
707
707
725
727
727
730
730
749
754
754
769
772
774
1175
1176
1177
5
6
9
9
17
17
17
17
20
20
22
26
28
29
33
33
34
34
34
35
35
39
39
39
43
43
45
45
46
46
46
46
46
46
46
46
46
46
48
48
48
48
48
48
49
49
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
55
55
57
57
57
57
57
57
61
61
66
71
72
73
76
77
80
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
86
86
94
96
97
97
98
98
98
98
98
98
104
105
108
108
109
109
110
110
114
114
114
114
116
117
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
127
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
131
132
132
133
133
133
133
133
133
135
136
137
145
145
146
147
147
147
147
147
148
151
151
151
152
152
152
152
152
160
165
165
166
167
168
168
169
169
169
169
169
169
170
175
175
176
177
177
177
177
180
180
181
181
185
185
185
185
186
186
188
188
189
192
193
194
194
212
212
215
217
217
217
217
217
218
220
221
222
222
223
223
232
232
232
232
236
241
241
246
250
250
251
255
255
256
256
256
259
260
260
260
260
260
260
261
273
274
278
279
279
279
290
290
290
290
295
299
299
300
300
301
301
305
306
313
318
318
328
333
334
336
341
341
345
345
345
345
359
360
363
363
365
365
373
373
380
385
385
386
391
392
403
403
403
403
404
409
409
412
412
414
414
427
432
432
446
451
451
469
474
474
493
498
498
513
516
518
531
536
536
552
557
557
565
565
565
570
575
575
593
598
598
617
622
622
637
642
642
661
666
666
684
689
689
703
708
708
726
731
731
750
755
755
770
773
775
1176
1177
1178
1
1
5
5
5
5
6
7
9
15
15
17
17
17
17
18
21
21
23
23
26
26
26
31
35
35
35
35
36
36
36
36
36
40
40
40
43
43
44
44
46
46
46
46
46
48
48
49
49
49
49
50
50
50
50
50
50
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
58
62
62
67
72
73
73
74
74
76
77
77
78
81
81
82
83
84
84
84
84
84
85
85
85
85
85
85
85
85
86
86
87
87
95
95
96
96
98
98
99
99
99
99
105
106
109
109
110
110
111
111
115
115
115
115
116
116
116
117
117
117
122
122
122
123
123
123
123
123
123
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
128
128
128
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
131
131
131
131
133
133
134
134
134
134
135
136
137
138
138
147
148
148
148
148
148
148
150
151
151
152
152
152
153
153
153
153
164
166
166
166
167
167
167
169
169
170
170
170
170
171
176
176
177
178
178
181
181
182
182
186
186
186
186
187
190
193
193
194
194
195
204
213
213
218
218
218
218
218
219
219
221
222
223
223
224
224
233
233
237
242
242
247
249
251
251
251
252
256
256
257
257
257
260
261
261
261
261
262
275
277
279
280
280
280
291
291
296
300
301
301
306
306
307
307
314
317
319
332
334
335
337
342
342
346
346
360
361
362
364
364
364
366
366
381
386
390
392
393
404
404
405
410
410
413
428
433
433
447
452
470
475
475
494
499
499
514
517
519
532
537
537
553
558
558
565
566
566
571
576
594
599
599
618
623
623
638
643
662
667
667
685
690
690
704
709
727
732
732
751
756
756
771
774
776
1177
1178
1179
4
4
4
5
5
5
5
5
5
6
6
6
6
7
7
8
9
9
17
17
17
17
18
18
19
22
24
28
28
29
32
33
33
35
37
37
37
40
41
41
41
41
43
43
45
45
45
45
46
46
46
46
46
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
50
50
50
50
52
52
52
53
53
53
53
53
53
53
53
53
59
63
63
69
69
73
77
78
78
79
81
82
82
82
82
82
83
83
84
84
84
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
87
97
97
97
97
106
107
110
110
111
111
112
112
116
116
116
116
117
117
118
118
121
121
123
123
123
123
123
123
123
123
124
124
124
124
124
124
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
128
128
128
128
128
128
128
129
129
129
130
131
131
131
131
131
131
131
131
131
131
131
131
132
132
132
132
133
137
148
149
149
149
149
149
151
151
151
151
152
152
152
152
153
154
154
154
155
160
165
167
167
168
168
168
168
172
177
177
178
178
182
182
183
183
186
187
187
187
187
188
191
195
195
196
204
210
214
214
215
219
219
219
219
219
220
220
222
222
224
224
225
225
233
238
240
243
243
249
250
253
257
257
258
258
258
261
262
262
262
262
262
263
268
273
276
278
280
280
281
281
291
297
299
301
302
302
308
308
315
317
320
323
328
333
335
335
338
343
343
346
353
362
362
363
367
367
375
381
382
385
385
386
387
391
393
393
404
406
411
411
412
414
429
434
434
448
453
471
476
476
495
500
500
515
518
520
533
538
538
554
559
559
566
566
572
577
595
600
600
619
624
624
639
642
642
644
663
668
668
686
691
691
705
710
728
733
733
752
757
757
772
775
777
1178
1179
1180
5
5
5
7
7
7
7
7
8
8
9
9
10
15
19
19
20
23
25
26
26
29
33
35
35
35
38
38
38
38
38
40
40
40
41
41
41
41
41
41
42
42
42
42
43
43
44
44
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
55
60
64
64
69
70
70
74
74
75
78
79
79
80
82
82
82
83
83
83
83
83
83
83
83
83
83
84
85
86
87
87
87
87
87
87
87
87
87
97
97
97
107
108
111
111
112
112
113
113
115
116
117
117
117
117
117
117
117
117
118
118
118
118
118
119
122
122
122
122
122
122
122
122
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
127
127
127
127
127
127
127
127
127
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
130
131
131
131
132
132
132
134
134
138
138
149
149
149
150
150
152
152
152
152
153
153
153
153
154
155
155
155
156
164
166
168
168
168
173
178
178
178
179
183
183
184
184
186
186
187
188
188
188
188
192
193
194
194
194
194
194
196
196
197
211
215
215
219
220
220
220
220
220
221
221
225
225
226
226
233
239
241
241
241
244
244
250
250
251
251
254
258
258
259
259
262
262
263
263
263
263
264
269
277
277
279
282
282
291
298
299
299
300
303
303
306
307
307
307
309
309
316
318
318
321
324
332
334
339
344
344
346
354
354
354
363
363
363
364
364
368
368
375
382
383
386
388
390
392
404
407
412
412
412
412
413
430
435
435
449
451
451
454
472
477
477
496
501
501
519
521
534
539
539
555
560
560
573
575
575
578
596
601
601
620
625
625
640
643
645
664
669
669
687
692
692
706
708
708
711
729
734
734
753
758
758
776
778
1179
1180
1181
4
5
6
8
8
8
8
8
9
9
9
9
10
10
11
11
11
11
19
20
24
26
28
28
29
33
33
35
35
35
35
35
35
39
40
40
41
41
41
41
41
42
42
42
42
42
43
43
43
43
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
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
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
55
55
55
61
65
65
71
71
74
75
75
76
78
79
80
80
80
80
80
80
80
81
84
84
84
84
85
88
88
95
97
98
98
99
99
108
109
112
112
113
113
114
114
116
117
118
118
118
118
118
118
119
119
119
119
119
119
119
119
120
120
120
120
121
121
121
123
123
123
123
123
123
123
123
123
123
123
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
126
126
128
128
128
128
128
128
129
130
130
131
131
131
131
131
131
131
131
132
132
133
133
133
134
134
139
139
148
149
150
151
151
152
153
153
154
155
156
156
156
157
157
165
165
166
167
167
168
169
169
170
170
174
179
179
180
184
184
185
185
185
186
187
188
189
189
189
189
193
193
193
193
194
195
195
195
195
198
204
204
212
212
216
216
220
220
221
221
221
221
221
222
222
222
226
226
227
227
240
242
242
245
245
252
252
255
259
259
260
260
263
264
264
264
264
265
270
270
278
278
278
280
280
283
283
298
299
299
300
301
304
304
306
306
306
307
308
308
308
317
317
317
319
322
325
325
333
333
335
335
340
345
345
355
355
364
365
365
369
369
383
383
384
387
389
391
391
393
393
408
411
412
413
413
413
414
431
436
436
450
452
455
473
478
478
497
502
502
520
522
535
540
540
556
561
561
574
576
579
597
602
602
621
626
626
641
644
646
665
670
670
688
693
693
707
709
712
730
735
735
754
759
759
777
779
1180
1181
1182
4
5
5
6
7
8
9
9
9
9
9
9
10
11
11
11
15
15
18
20
23
25
25
26
26
27
27
29
34
34
35
35
35
35
36
36
36
39
39
40
41
41
42
42
42
43
43
43
43
43
43
43
44
44
44
44
45
46
46
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
53
53
53
53
53
53
53
53
55
55
62
66
66
75
76
76
77
79
79
80
80
81
81
81
81
81
81
81
81
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
85
85
85
85
85
87
87
89
89
96
96
99
99
99
99
99
99
109
110
113
113
114
114
115
115
117
117
117
118
118
118
119
119
119
119
120
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
121
121
121
122
122
122
123
123
123
124
124
124
124
124
124
124
124
124
124
124
124
124
126
126
126
126
126
126
126
126
126
126
127
127
127
127
131
131
131
131
131
131
131
132
133
134
134
134
134
134
134
134
134
135
135
138
138
138
140
140
149
149
149
149
149
149
151
152
152
152
152
152
153
153
153
154
155
156
157
157
157
158
158
158
158
165
167
167
167
168
168
170
170
170
170
170
170
175
180
180
181
185
185
186
186
186
188
189
190
190
194
195
196
196
196
196
199
202
205
205
213
213
213
213
217
217
220
222
222
222
222
222
222
223
223
223
227
227
228
228
241
241
242
242
242
242
243
246
246
250
251
251
251
253
253
256
260
260
261
261
262
262
264
265
265
266
271
271
271
271
278
279
280
281
281
284
284
299
300
301
302
305
305
308
309
309
309
315
318
318
318
320
323
326
326
326
326
333
335
336
336
341
346
346
354
355
355
355
355
356
363
364
364
364
365
366
366
370
370
375
375
384
384
384
384
385
388
390
391
393
394
394
409
412
414
414
414
415
432
437
437
451
453
456
474
479
479
498
503
503
521
523
536
541
541
557
562
562
575
577
580
598
603
603
622
627
627
642
645
647
666
671
671
689
694
694
708
710
713
731
736
736
755
760
760
778
780
1181
1182
1183
4
4
5
5
5
7
9
9
9
10
10
10
10
11
12
15
19
20
20
21
24
26
26
28
28
28
28
29
33
37
37
37
37
40
40
40
41
41
42
43
43
43
43
44
44
44
45
45
45
45
45
45
46
46
46
46
46
46
46
47
49
49
49
49
49
49
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
53
53
53
53
54
54
54
54
54
54
54
54
54
54
63
67
67
67
72
76
76
77
77
80
81
81
82
82
82
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
86
86
86
86
88
88
90
97
97
100
100
100
100
100
100
100
100
110
111
114
114
115
115
116
116
116
116
117
117
117
118
118
118
119
119
120
120
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
122
122
123
123
123
124
124
124
125
125
125
125
125
125
125
125
125
128
128
128
128
128
128
131
131
132
132
133
134
134
134
134
135
135
135
135
135
135
135
135
135
136
136
138
139
139
139
147
150
150
150
150
152
153
153
153
153
154
154
155
156
156
157
158
158
158
158
158
159
159
165
167
168
168
168
169
169
171
171
171
171
171
171
171
171
176
181
181
182
186
186
186
187
187
187
189
191
191
194
195
196
197
197
197
200
203
203
211
213
213
214
214
218
218
220
222
223
223
223
223
223
223
224
224
224
228
229
232
242
243
243
244
247
247
250
250
250
251
252
252
252
257
258
260
261
261
262
262
263
263
265
266
266
267
269
271
271
272
272
278
280
280
281
282
282
285
285
299
300
301
302
306
306
307
309
310
310
316
316
319
321
324
324
326
326
327
327
333
335
336
337
337
342
345
347
347
356
356
357
363
363
363
364
365
365
365
366
371
371
373
376
376
382
384
384
385
385
386
389
391
391
393
394
395
395
410
412
413
415
415
415
433
438
438
452
454
457
475
480
480
499
504
504
515
522
524
537
542
542
558
563
563
576
578
581
599
604
604
623
628
628
643
646
648
667
672
672
690
695
695
709
711
714
732
737
737
756
761
761
772
779
781
1182
1183
1184
1
5
5
5
7
9
10
10
11
11
11
11
11
12
13
15
19
19
19
20
21
22
22
25
26
26
27
27
28
29
29
29
37
38
41
41
41
42
43
43
44
44
44
44
44
44
46
46
46
46
46
46
46
46
46
46
46
47
47
48
48
48
49
49
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
53
53
53
54
54
54
54
54
64
68
68
73
76
78
79
79
79
81
81
81
81
81
81
81
81
81
82
82
82
82
82
83
83
83
84
84
85
87
89
89
91
98
98
98
100
100
100
100
101
101
101
101
111
112
113
113
115
115
116
116
117
117
117
117
118
118
118
118
118
118
119
119
120
120
121
121
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
125
125
125
126
126
126
126
126
128
128
128
128
128
128
128
132
133
133
133
134
135
135
135
135
135
136
136
136
136
136
137
137
139
140
140
140
148
148
150
151
152
153
153
153
153
153
154
154
154
154
154
154
154
155
156
157
158
159
159
159
159
160
160
165
165
168
169
169
169
169
171
171
171
171
172
172
172
172
177
182
182
183
186
187
187
187
188
188
189
189
189
189
189
189
190
192
192
195
195
196
198
201
214
215
215
219
219
220
220
223
224
224
224
224
224
224
225
227
227
228
228
229
230
233
233
233
233
242
242
243
244
244
248
252
253
253
253
258
259
261
261
262
262
263
263
263
264
264
264
264
266
267
267
268
272
273
273
278
278
281
281
282
286
286
299
300
302
302
302
303
307
307
308
308
320
322
325
327
328
328
333
333
336
337
343
346
346
346
346
348
348
355
355
357
357
365
366
366
366
367
372
372
374
374
385
386
386
387
390
391
391
392
394
395
411
412
413
415
415
416
416
416
434
439
439
453
455
458
476
481
481
500
505
516
520
523
525
538
543
543
559
564
564
577
579
582
600
605
605
624
629
629
644
647
649
668
673
673
691
696
696
710
712
715
733
738
738
757
762
773
777
780
782
1183
1184
1185
1
1
1
5
5
6
7
9
11
11
11
11
12
12
12
12
12
12
13
14
19
20
22
22
22
22
22
26
28
28
28
29
29
29
29
30
30
33
33
33
38
38
42
43
43
45
45
46
46
46
46
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
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
53
53
53
53
53
65
69
69
74
76
77
77
77
79
79
80
80
80
81
82
82
82
82
82
82
82
82
82
83
83
83
83
84
84
84
84
84
84
84
84
84
85
85
88
90
92
98
98
98
100
100
101
101
102
102
102
102
112
113
114
114
116
117
117
117
117
118
118
118
118
118
119
119
119
119
120
120
120
120
120
120
120
120
120
121
121
121
121
121
122
122
124
124
124
124
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
126
126
126
126
126
128
128
128
128
128
129
129
129
133
133
133
133
135
135
135
136
136
136
137
137
137
137
137
138
138
138
140
141
141
150
150
150
152
153
154
154
155
155
155
155
156
157
158
158
158
159
160
160
160
160
166
166
167
167
167
169
169
169
169
171
171
172
172
173
173
173
173
177
178
183
183
184
188
188
189
190
190
190
190
191
193
193
197
199
202
205
213
213
215
220
220
221
221
222
222
222
224
225
225
225
225
225
226
228
229
230
231
234
234
243
244
247
247
249
251
253
254
254
259
263
263
264
264
265
265
267
268
268
269
271
271
273
279
279
280
280
280
282
282
287
287
290
303
303
303
304
308
308
318
321
323
326
326
326
328
334
334
335
335
335
337
344
347
347
349
349
356
364
366
367
367
368
373
373
384
384
386
388
391
392
392
393
393
393
393
395
403
412
416
416
417
417
417
435
440
440
454
456
459
477
482
482
501
504
504
506
521
524
526
539
544
544
560
565
565
578
580
583
601
606
606
625
630
630
645
648
650
669
674
674
692
697
697
711
713
716
734
739
739
758
761
761
763
778
781
783
1184
1185
1186
5
5
7
8
11
12
13
13
13
13
13
13
14
14
15
19
19
22
23
26
26
27
29
30
30
31
31
33
38
38
39
39
42
43
44
44
46
46
46
46
46
46
46
46
46
46
47
47
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
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
54
54
54
54
54
66
68
68
70
70
74
77
77
78
78
78
79
80
80
81
82
82
83
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
85
85
85
86
89
91
93
96
99
99
99
99
100
100
100
100
100
100
101
101
102
102
113
114
115
115
117
117
118
118
118
118
119
119
119
119
119
119
119
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
123
123
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
125
125
125
125
126
126
126
126
126
126
126
126
129
129
129
131
134
134
134
134
134
135
135
135
135
135
135
136
136
136
137
137
137
138
139
139
139
139
150
151
151
153
153
153
154
154
154
155
155
156
156
156
158
159
159
160
161
161
161
167
168
168
168
168
170
170
170
170
171
171
171
171
171
171
172
172
173
173
178
178
178
179
184
184
185
189
189
190
191
191
191
191
194
194
197
198
200
203
205
214
221
221
223
223
223
223
226
226
226
226
227
229
230
231
232
234
242
244
245
248
250
252
252
260
263
264
264
265
265
266
266
268
269
269
270
272
281
281
281
281
283
288
288
291
291
291
304
304
304
309
309
310
318
322
324
327
327
336
336
336
336
345
347
350
350
355
357
365
365
369
374
374
376
385
389
392
394
394
394
394
394
404
404
404
413
417
417
418
418
436
441
441
455
457
460
478
483
483
502
505
507
522
525
527
540
545
545
561
566
566
579
581
584
602
607
607
626
631
631
646
649
651
670
675
675
693
698
698
712
714
717
735
740
740
759
762
764
779
782
784
1185
1186
1187
1
5
5
7
9
11
11
13
14
14
14
15
15
16
23
24
28
31
31
32
32
33
37
37
37
39
40
40
40
43
43
43
43
45
45
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
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
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
52
52
52
52
52
52
53
53
67
69
69
71
79
80
80
80
80
80
81
82
85
86
86
87
92
94
97
98
98
99
99
100
100
101
101
102
102
113
114
115
116
117
117
117
118
119
119
119
119
119
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
127
127
127
127
127
129
132
133
133
134
134
135
135
135
136
136
137
137
138
140
140
149
150
151
151
151
151
152
152
152
153
153
153
154
154
154
155
155
157
158
158
159
160
160
161
162
162
162
168
169
169
169
169
170
170
171
171
172
172
173
173
179
179
180
185
185
186
188
188
189
190
190
191
192
192
195
195
197
199
201
204
213
213
215
222
222
224
224
225
225
227
227
227
227
228
230
231
232
233
234
242
242
243
246
249
251
261
263
263
263
265
265
266
266
267
267
269
270
270
271
271
271
273
282
282
284
289
289
292
292
302
305
310
310
310
323
325
326
326
328
328
337
337
346
347
351
351
355
355
356
370
375
375
376
384
384
386
393
395
395
395
405
405
414
415
419
419
437
442
442
456
458
461
479
484
484
503
506
508
523
526
528
541
546
546
562
567
567
580
582
585
603
608
608
627
632
632
650
652
671
676
676
694
699
699
713
715
718
736
741
741
760
763
765
780
783
785
1186
1186
1188
5
5
5
7
7
10
11
12
13
13
13
15
15
15
16
16
17
22
24
25
26
29
31
33
33
37
38
38
39
40
40
40
40
40
43
43
44
46
47
47
47
47
47
47
47
47
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
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
52
52
52
52
52
52
52
52
53
53
54
54
68
70
70
72
76
76
76
76
76
76
80
81
81
81
81
82
82
82
82
82
83
83
83
84
84
84
85
85
85
86
87
87
87
88
91
93
93
95
95
98
98
99
100
100
100
101
101
102
102
103
103
114
115
116
117
117
117
117
117
117
118
118
118
118
118
119
119
119
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
124
125
125
126
126
126
126
126
126
126
126
126
126
127
133
133
134
135
135
135
136
136
136
137
137
138
138
138
139
141
150
152
152
153
153
153
153
154
154
154
155
155
156
156
158
158
158
159
159
160
161
162
163
163
163
169
169
169
170
171
171
171
172
172
173
173
174
174
178
179
179
179
179
180
181
186
186
186
187
189
191
191
192
193
193
196
196
202
205
213
213
214
214
223
223
224
226
228
228
228
228
229
231
232
233
234
241
242
243
244
247
250
252
254
262
264
266
266
267
267
268
268
270
270
271
271
271
271
272
272
272
272
282
285
290
290
291
292
292
292
292
293
299
306
311
311
326
326
326
327
327
329
337
347
352
352
354
355
356
357
367
371
376
376
384
384
385
385
394
395
396
404
405
405
405
405
406
412
415
420
420
438
443
443
459
462
480
485
485
504
507
509
524
527
527
529
529
542
547
547
563
565
568
568
583
586
604
609
609
628
633
633
651
653
672
677
677
695
700
700
716
719
737
742
742
761
764
766
781
784
784
786
786
1186
1187
1187
1189
5
5
5
7
11
11
11
12
13
13
16
16
17
18
19
22
22
26
30
31
31
34
34
37
37
38
39
39
40
40
41
41
41
45
45
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
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
51
51
51
51
51
51
51
51
51
52
52
53
53
53
55
55
69
71
73
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
83
83
83
83
83
83
83
83
84
84
85
85
85
85
86
86
88
88
89
92
94
94
96
96
99
99
99
99
99
100
100
100
101
101
101
104
104
115
117
117
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
120
120
120
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
125
125
125
125
125
125
126
126
127
127
127
127
127
127
127
127
127
127
131
134
134
134
134
134
135
135
135
136
136
136
137
139
139
140
140
141
151
151
151
153
153
153
153
154
154
154
154
154
155
155
155
156
157
158
159
159
160
160
161
162
163
164
164
164
169
170
170
170
170
170
171
171
171
172
172
172
175
175
180
180
181
182
186
187
187
187
188
189
189
190
193
194
194
197
197
197
197
203
206
215
215
224
224
224
227
229
229
229
232
233
234
235
242
244
245
248
251
253
254
263
265
268
268
269
269
272
272
273
273
273
273
282
286
291
291
293
293
294
299
300
302
302
307
310
310
312
327
328
328
330
337
348
353
353
355
357
358
367
372
377
377
386
386
395
395
397
406
406
407
412
413
415
415
416
421
421
439
444
444
460
463
481
486
486
505
508
510
525
530
530
543
548
548
564
566
569
584
587
605
610
610
629
634
634
652
654
673
678
678
696
701
701
717
720
738
743
743
762
765
767
782
787
787
1188
1188
1190
5
5
5
6
7
7
7
12
13
13
13
13
14
17
17
18
19
24
24
25
26
26
31
31
32
35
35
38
39
39
40
41
41
42
43
43
43
43
43
43
46
46
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
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
52
56
56
70
72
74
77
77
77
78
78
78
78
79
79
80
81
81
81
81
81
81
82
82
82
82
82
82
82
82
83
83
83
84
84
84
84
85
85
85
85
86
86
86
87
87
89
89
90
93
95
95
97
97
97
99
99
99
99
100
101
102
102
103
103
103
103
105
105
117
118
118
118
119
119
119
119
119
119
119
119
119
119
119
119
119
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
121
121
121
121
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
127
127
131
131
132
132
134
134
134
134
135
136
136
137
137
138
138
138
138
138
140
140
140
141
150
150
151
152
152
153
154
154
155
155
156
156
156
156
157
157
157
158
159
160
160
161
161
162
162
163
163
164
164
165
165
165
165
168
170
170
170
170
171
172
173
173
174
174
174
174
176
176
179
179
181
181
183
186
188
189
190
190
191
194
195
195
195
198
198
198
198
203
204
207
211
216
216
225
225
228
230
230
230
233
234
235
236
242
243
245
249
252
254
264
266
269
269
269
270
270
273
273
274
274
274
274
287
292
292
292
292
294
294
299
303
303
308
308
311
311
313
316
324
328
329
329
331
349
354
354
355
356
358
373
378
378
382
387
387
389
396
398
405
405
407
407
412
416
416
417
422
422
440
445
461
464
482
487
487
506
509
511
526
531
531
544
549
549
565
566
566
570
585
588
606
611
611
630
635
635
646
653
655
674
679
679
697
702
718
721
739
744
744
763
766
768
783
788
788
1189
1189
1191
5
5
7
8
8
11
11
13
13
15
15
16
16
16
16
18
18
19
20
22
22
25
31
31
32
32
33
33
33
33
36
36
38
39
39
40
40
41
42
42
43
46
46
46
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
49
50
50
50
51
51
51
51
51
51
51
51
53
53
53
57
57
73
75
75
75
75
76
77
77
78
79
79
79
79
80
80
81
82
82
82
82
83
84
85
85
86
86
87
87
87
88
88
90
91
94
97
98
98
99
101
102
103
103
104
104
104
104
106
106
115
115
115
117
118
118
119
119
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
122
122
122
122
122
122
123
123
124
124
124
124
124
124
124
124
124
124
124
125
125
128
128
131
131
131
132
132
133
134
136
137
137
137
138
138
139
139
139
139
139
141
141
141
141
142
148
151
151
153
153
156
157
157
157
157
158
158
158
159
160
161
161
162
165
165
166
166
166
166
168
170
172
173
174
174
175
175
175
175
177
177
180
184
187
189
189
190
191
191
191
192
195
196
196
196
196
199
199
199
203
204
205
208
212
217
226
226
229
231
231
231
234
235
236
237
242
243
245
245
246
250
253
254
254
255
261
265
267
270
270
270
271
271
274
274
275
275
275
288
293
293
293
300
302
304
304
304
309
309
309
311
311
314
317
323
325
327
329
330
332
350
355
355
355
356
358
358
359
367
367
374
374
379
383
388
390
394
397
399
406
413
415
417
417
417
418
423
423
441
446
456
460
462
465
483
488
488
507
510
512
527
532
532
545
550
550
566
566
567
567
568
568
571
580
584
586
589
607
612
612
631
636
647
651
654
656
675
680
680
698
703
713
717
719
722
740
745
745
764
767
769
784
789
789
1190
1190
1192
9
9
13
13
13
14
16
17
17
17
19
20
21
24
24
25
26
31
31
31
33
33
33
37
37
37
38
39
39
40
40
40
40
41
42
44
45
46
46
46
46
46
46
46
46
46
46
48
48
48
48
48
48
48
48
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
51
51
51
51
51
52
52
52
52
52
52
52
54
54
54
58
58
68
72
74
74
74
74
76
76
76
76
76
76
76
76
77
77
78
78
79
79
79
79
80
80
80
80
80
80
80
82
82
83
83
86
86
86
87
87
87
88
88
89
91
92
95
98
99
99
99
100
103
105
105
105
105
116
116
116
119
119
119
119
120
120
120
121
121
121
121
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
123
123
123
124
124
124
124
124
124
124
124
125
125
125
125
126
126
127
127
127
127
127
127
127
127
129
129
132
133
133
134
134
135
138
138
139
140
140
140
140
140
142
142
143
149
151
151
152
152
154
157
157
158
158
159
159
161
161
161
162
162
163
166
166
167
167
167
167
168
169
170
171
174
176
176
176
176
179
181
185
187
187
189
190
190
191
191
193
195
195
196
197
197
200
200
204
205
205
206
209
212
212
216
216
218
223
227
228
229
230
232
232
232
233
235
236
237
238
246
246
247
251
252
254
255
255
256
262
266
266
268
270
270
270
270
271
271
272
272
274
274
275
275
276
276
276
281
289
292
294
294
294
302
303
310
312
315
318
318
325
325
328
329
329
330
331
333
336
346
351
356
356
359
359
360
365
368
368
375
375
378
378
380
383
383
387
387
389
394
395
398
400
405
407
415
416
419
424
424
442
444
444
447
461
463
466
484
489
489
508
511
513
528
533
533
546
551
551
567
567
567
568
569
572
585
587
590
608
613
613
632
635
635
637
652
655
657
676
681
681
699
701
701
704
718
720
723
741
746
746
765
768
770
785
790
790
1191
1191
1193
5
9
11
11
13
13
13
13
15
17
17
18
18
18
18
20
20
21
21
22
22
22
25
31
34
38
38
38
39
39
40
41
42
42
42
43
44
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
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
49
49
50
50
50
50
50
50
50
50
50
50
51
51
51
52
52
52
52
52
55
55
55
59
59
69
73
75
75
75
75
75
77
77
80
80
80
80
81
81
81
81
81
81
81
81
81
82
82
82
83
84
84
84
85
87
87
87
88
88
89
90
92
93
96
98
98
100
100
101
102
102
103
103
103
103
104
117
117
117
117
117
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
126
127
127
127
127
127
127
127
127
127
129
130
130
130
133
133
133
134
136
137
137
138
138
138
138
139
139
140
140
141
144
150
150
151
152
153
153
154
154
154
155
162
162
162
163
163
164
167
167
168
168
168
168
169
169
169
169
169
169
172
173
173
174
174
174
174
175
179
179
180
186
188
190
190
191
191
191
194
196
196
197
198
198
198
201
201
205
206
206
206
206
207
210
217
217
219
224
224
224
224
228
229
230
231
233
233
233
233
234
234
234
234
236
237
238
239
247
247
253
253
255
257
263
263
269
271
271
272
272
273
273
275
275
276
276
277
277
277
282
282
282
282
290
292
292
293
295
295
303
303
304
304
311
311
313
316
319
319
319
319
329
330
330
331
332
334
337
337
337
337
347
347
347
352
357
357
360
360
366
366
376
376
376
379
381
388
388
390
395
395
395
395
396
399
401
405
405
406
416
416
417
417
420
425
425
443
445
448
462
464
467
485
490
490
512
514
529
534
534
547
552
552
567
567
568
568
569
570
573
586
588
591
609
614
614
633
636
638
653
656
658
677
682
682
700
702
705
719
721
724
742
747
747
769
771
786
791
791
1192
1192
1194
5
9
9
13
13
13
13
14
14
16
19
21
21
22
22
23
24
24
25
31
32
33
33
35
37
37
39
39
39
40
40
40
40
41
42
43
46
46
46
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
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
49
49
49
49
50
50
50
50
50
50
50
50
52
52
52
52
52
52
55
55
56
56
56
60
60
70
74
75
76
76
76
76
76
76
76
76
78
78
78
78
78
79
79
79
79
79
79
79
80
80
80
80
82
82
82
82
82
82
82
82
83
83
83
84
84
84
85
85
85
85
85
86
88
88
89
90
90
91
91
93
93
94
94
97
99
99
99
99
101
101
102
103
103
103
103
104
104
104
104
105
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
125
125
125
126
126
126
127
127
128
128
128
128
130
131
131
131
131
131
134
134
134
134
137
138
138
138
138
139
139
139
139
140
140
142
145
151
151
151
151
153
154
154
154
155
155
155
156
156
157
161
163
163
163
164
164
168
168
169
169
169
169
170
170
170
170
170
170
173
174
174
174
174
175
175
175
175
176
178
179
180
181
187
189
192
192
192
195
197
197
198
198
199
199
199
199
202
202
202
202
204
206
206
206
207
207
208
211
216
218
218
225
225
229
232
234
234
234
234
235
235
235
237
237
238
238
239
239
240
240
245
256
258
264
264
264
264
270
272
272
273
273
274
274
274
274
274
276
276
277
277
277
277
278
278
283
283
291
291
292
293
294
296
296
305
305
311
312
314
317
317
319
319
320
320
329
330
331
331
332
335
338
338
348
348
353
358
358
358
377
377
377
377
377
380
382
387
389
389
396
396
397
400
402
404
405
406
407
418
418
421
426
426
444
446
449
463
465
468
486
491
491
513
515
530
535
535
548
553
553
568
569
569
571
574
587
589
592
610
615
615
634
637
639
654
657
659
678
683
683
701
703
706
720
722
725
743
748
748
770
772
787
792
792
1193
1193
1195
5
5
9
10
11
13
14
15
15
17
18
19
20
22
22
22
22
23
23
24
24
25
31
33
33
34
34
36
38
38
40
40
40
41
42
42
42
43
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
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
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
53
56
56
57
57
57
61
61
75
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
80
80
80
80
80
80
80
81
81
81
81
82
82
82
83
83
83
84
84
84
84
84
85
85
85
85
85
86
86
86
87
89
89
90
94
94
95
95
98
99
99
102
102
103
103
103
103
104
104
104
104
105
105
105
105
115
115
116
116
116
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
120
120
120
120
120
120
120
120
120
120
121
121
121
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
124
124
124
125
125
126
127
127
127
128
131
131
132
132
132
132
132
134
134
138
138
138
138
139
139
139
139
140
140
140
140
141
142
143
143
146
146
149
151
151
152
152
153
154
154
155
156
156
156
156
156
157
157
157
157
158
161
164
165
165
169
169
170
170
170
170
170
170
170
174
174
174
174
175
175
175
175
176
176
176
176
179
181
182
188
190
190
190
191
191
191
193
193
193
194
196
198
198
199
203
203
203
203
207
207
208
208
209
212
216
225
226
230
233
234
235
235
235
235
235
235
235
235
236
236
240
240
241
241
242
255
257
259
262
264
264
265
265
265
269
271
273
273
274
274
274
278
278
278
278
279
279
283
292
292
294
295
297
297
303
304
304
304
306
306
313
315
318
320
321
321
329
331
333
336
338
347
348
348
348
348
349
354
355
359
359
368
375
377
377
378
378
378
381
383
387
396
398
401
401
403
403
405
407
408
416
417
417
417
419
419
422
427
427
445
447
450
464
466
469
487
492
492
514
516
531
536
536
549
554
554
567
567
569
570
572
575
588
590
593
611
616
616
635
638
640
655
658
658
660
660
679
684
684
702
704
707
721
723
726
744
749
749
771
773
788
793
793
1194
1194
1196
1
1
9
9
10
11
11
11
11
15
16
19
20
21
22
23
23
24
24
24
24
25
25
25
25
25
33
35
35
37
39
39
40
40
41
42
43
43
43
43
43
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
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
53
53
54
57
57
58
58
58
62
62
76
77
77
77
77
77
77
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
82
82
83
83
83
84
84
85
85
85
86
86
87
87
87
87
88
88
90
90
91
95
95
96
96
99
102
102
103
103
104
104
104
104
105
105
106
106
106
106
106
106
113
113
116
116
117
117
117
117
117
117
117
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
123
123
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
125
125
125
126
126
127
128
128
128
129
131
131
131
132
132
133
133
133
133
133
137
137
139
139
139
139
140
140
141
141
141
141
141
141
142
142
147
147
151
152
153
153
156
157
157
157
157
157
157
158
158
158
158
158
158
159
159
161
162
165
166
166
170
170
170
171
171
171
171
173
173
175
175
175
175
176
176
177
177
177
177
177
177
179
180
182
189
190
190
190
191
191
192
192
192
194
195
197
198
198
199
199
200
204
204
204
204
206
206
208
208
210
210
212
213
213
216
217
225
227
231
231
234
236
236
236
236
236
236
237
237
241
241
242
242
242
243
245
245
251
255
258
260
265
266
266
270
270
272
274
274
274
275
275
275
279
279
279
279
280
280
283
292
293
293
295
298
298
303
303
303
304
305
305
305
311
311
314
316
319
319
319
321
325
329
330
332
334
334
337
337
338
349
349
350
355
355
356
358
358
360
360
368
378
379
379
379
382
383
384
387
388
396
399
404
404
405
406
408
416
416
416
417
418
418
418
423
428
428
446
448
451
465
467
467
470
470
488
493
493
508
515
517
532
537
537
550
555
555
568
571
573
576
589
591
591
594
594
612
617
617
636
639
641
656
661
661
680
685
685
703
705
708
722
724
724
727
727
745
750
750
765
772
774
789
794
794
1195
1195
1197
1
1
1
4
5
9
9
9
11
11
11
11
15
16
20
20
21
22
22
22
22
23
23
24
24
24
24
25
25
26
26
26
33
33
35
38
40
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
46
46
46
46
46
47
47
47
47
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
48
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
51
51
52
52
52
52
52
54
54
54
55
57
57
59
59
59
61
61
63
63
75
75
75
76
76
77
77
77
79
79
79
79
79
79
80
80
81
81
81
81
81
82
82
83
86
86
87
87
87
88
88
88
88
88
88
89
89
91
91
91
92
96
96
97
97
98
98
100
102
103
103
104
104
104
104
106
106
106
106
106
106
107
107
107
107
113
113
113
113
113
113
114
114
115
115
115
117
117
117
117
117
117
117
117
117
117
117
118
118
118
118
118
118
118
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
123
124
125
125
125
125
125
126
126
127
127
127
128
129
129
129
130
130
131
132
133
133
133
133
134
134
134
134
134
137
138
138
139
139
141
141
141
141
141
141
142
142
142
142
143
148
148
151
151
151
152
153
154
157
158
158
158
159
159
159
159
159
160
160
162
163
166
167
167
169
169
171
171
172
172
172
172
173
174
174
175
175
177
177
177
177
177
177
178
178
178
178
179
180
182
182
183
190
192
192
193
193
193
195
196
196
198
198
199
199
200
200
201
201
205
205
205
205
207
209
212
214
214
217
218
232
232
235
235
235
235
237
237
237
237
237
237
237
238
242
242
242
243
243
246
246
252
256
259
261
264
264
266
270
271
273
273
275
275
275
276
276
276
276
280
280
280
280
281
281
292
293
294
295
295
296
299
299
305
306
306
306
309
312
312
315
317
320
320
325
330
331
333
338
338
348
348
350
350
355
356
359
359
361
361
377
377
379
380
383
383
385
388
389
400
405
405
405
406
408
408
409
418
419
419
419
424
429
429
447
449
452
466
471
471
489
494
494
509
513
516
518
533
538
538
551
556
556
567
569
572
574
577
590
595
595
613
618
618
637
640
642
657
662
662
681
686
686
704
706
709
723
728
728
746
751
751
766
770
773
775
790
795
795
1196
1196
1198
5
5
9
11
16
16
16
17
21
23
23
24
25
25
25
26
27
27
27
35
35
35
39
40
40
41
42
43
43
43
43
43
43
45
45
45
45
45
45
46
46
46
47
47
47
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
50
50
50
50
50
55
55
55
56
58
58
58
58
60
60
60
62
62
64
74
74
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
82
82
82
82
82
83
83
84
84
87
87
87
87
88
88
88
89
89
90
90
92
92
92
93
97
97
98
98
98
101
102
102
103
104
104
104
104
105
105
106
106
107
107
108
108
108
108
113
113
113
114
114
114
114
114
114
115
115
115
115
115
116
116
116
117
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
119
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
124
124
126
126
128
129
130
130
130
131
131
131
132
133
133
134
134
134
135
135
135
135
135
137
137
138
139
139
139
139
141
141
142
142
142
142
143
143
143
143
144
149
149
151
152
152
154
154
154
155
157
158
158
158
158
159
159
159
160
160
161
161
161
163
164
167
168
168
169
172
172
173
173
173
173
173
173
174
175
175
175
175
177
177
178
178
179
179
179
179
183
183
184
191
191
193
193
194
194
196
197
197
197
201
201
202
202
206
206
206
206
206
206
208
210
215
215
216
218
219
233
233
236
238
238
238
238
238
239
243
243
243
244
244
245
247
247
247
255
255
257
260
262
265
272
274
276
276
276
277
277
277
277
281
281
281
281
282
282
295
296
296
297
300
300
304
306
307
307
310
310
316
318
319
319
321
321
329
331
332
334
339
339
349
356
357
358
360
360
360
362
362
368
368
378
381
384
386
387
389
390
401
406
406
409
409
410
417
419
420
420
425
430
430
448
450
453
467
472
472
490
495
495
514
517
519
534
539
539
552
557
557
567
568
573
575
578
591
596
596
614
619
619
638
641
643
658
663
663
682
687
687
705
707
710
724
729
729
747
752
752
771
774
776
791
796
796
1197
1199
5
5
6
9
10
11
11
11
15
15
15
17
17
18
18
22
22
24
24
25
25
26
26
26
26
27
27
28
33
33
35
42
42
42
42
43
43
43
43
43
43
43
43
43
43
44
45
45
45
46
46
46
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
50
52
56
57
59
59
61
61
61
63
63
65
75
75
75
75
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
83
83
83
83
83
83
84
84
84
84
85
85
87
88
88
88
88
88
89
89
89
93
93
93
94
98
98
99
99
102
103
103
104
104
104
104
104
105
105
105
106
106
107
107
108
108
114
114
114
115
115
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
117
117
117
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
120
120
120
120
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
127
127
129
129
130
131
131
131
132
132
133
135
136
136
136
136
138
138
139
139
139
139
139
140
140
140
140
142
142
143
143
143
143
145
150
150
151
151
153
154
155
155
155
155
156
156
157
157
157
157
158
158
158
158
159
159
159
159
160
160
160
162
164
164
168
169
169
173
173
174
174
174
174
174
174
175
175
175
175
175
176
176
176
178
178
179
179
184
184
192
192
192
194
197
198
202
202
203
203
206
206
207
207
207
207
207
207
211
212
216
216
217
219
219
224
234
234
235
237
239
239
239
239
239
240
244
244
245
245
245
246
253
256
256
258
261
263
264
264
266
270
273
275
277
277
277
277
278
278
278
282
282
282
282
283
283
296
297
297
301
301
305
305
319
319
319
320
320
322
325
330
332
332
335
337
340
340
348
350
358
358
359
363
363
366
369
369
377
377
379
382
383
385
387
388
390
390
402
407
407
410
410
418
418
426
431
431
449
451
454
468
473
473
491
496
496
515
518
520
535
540
540
553
558
558
569
576
579
592
597
597
615
620
620
639
642
644
659
664
664
683
688
688
706
708
711
725
730
730
748
753
753
772
775
777
792
797
797
1198
1200
4
4
4
5
6
7
9
11
11
12
12
15
16
18
18
18
18
18
22
23
26
27
27
27
27
27
27
28
28
29
35
35
35
37
40
40
41
43
43
43
44
44
45
45
46
46
46
46
46
46
46
46
46
46
46
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
49
49
49
49
49
49
49
49
49
49
49
49
53
56
58
60
60
60
60
62
62
62
64
66
77
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
80
84
84
84
85
85
86
86
88
89
89
89
89
89
90
90
90
94
94
94
95
99
99
100
100
103
103
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
107
107
108
108
113
113
113
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
117
117
117
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
120
120
120
120
120
120
120
120
120
120
120
121
121
121
122
123
123
123
123
123
123
123
123
123
123
123
125
125
125
126
126
126
128
128
130
130
131
131
132
132
133
133
134
134
137
137
137
137
138
140
140
140
140
140
140
140
141
141
141
141
141
141
141
141
141
141
143
143
146
151
151
151
151
152
152
156
156
156
157
157
159
160
160
160
160
161
161
161
161
163
169
170
170
174
174
174
175
175
175
175
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
179
179
182
195
198
199
199
203
203
204
204
208
208
208
208
208
208
212
216
217
217
218
225
225
225
225
235
235
235
235
236
240
240
240
240
241
245
245
246
246
246
246
247
247
254
254
259
262
264
264
264
265
265
274
274
276
278
278
279
279
279
283
283
283
283
284
284
295
297
302
302
312
320
321
321
323
329
331
336
338
338
338
338
341
341
348
348
349
359
359
359
360
360
364
364
367
367
377
377
378
378
386
387
388
389
403
408
408
408
427
432
432
452
455
469
474
474
492
497
516
519
521
536
541
541
554
559
559
570
577
580
593
598
598
616
621
621
643
645
660
665
665
684
689
689
709
712
726
731
731
749
754
773
776
778
793
798
798
1199
1201
1
4
4
5
5
7
8
11
13
13
15
15
18
19
22
22
24
27
28
28
28
28
29
29
30
33
33
35
35
35
35
37
37
37
37
38
42
43
43
43
43
44
44
45
45
46
46
46
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
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
49
49
49
49
49
49
49
49
49
49
54
57
57
59
61
61
62
62
63
63
63
65
67
75
75
75
76
76
77
77
77
77
78
78
78
79
79
79
79
79
79
81
81
85
85
85
85
85
87
87
87
88
89
90
90
90
90
91
91
95
95
95
96
100
100
101
101
103
104
105
106
106
106
107
107
107
107
107
107
107
107
107
107
108
113
113
114
114
114
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
118
118
118
119
119
119
119
119
119
119
119
119
119
119
119
120
120
120
120
120
120
120
120
120
121
121
121
123
124
125
126
126
126
127
127
129
129
132
133
133
134
134
135
135
138
138
138
138
138
140
141
142
142
142
142
142
142
142
142
142
142
147
152
152
153
153
155
156
156
156
158
158
158
159
160
161
161
161
162
162
162
162
164
164
169
170
171
171
174
175
175
176
176
176
176
176
177
178
178
178
178
178
178
178
178
178
178
179
194
196
199
199
200
204
204
204
205
205
209
209
209
209
209
209
213
217
217
218
218
219
219
226
226
234
235
236
236
236
237
239
239
241
241
241
241
242
246
246
247
247
248
248
260
263
263
265
265
266
266
275
275
275
277
277
279
279
280
280
280
282
284
284
284
284
285
285
292
298
303
303
307
312
317
321
322
322
324
330
330
332
332
337
339
339
342
342
347
348
349
350
360
361
361
365
365
379
379
387
388
388
389
390
390
395
404
405
409
409
420
428
433
433
453
456
470
475
475
493
496
496
498
517
520
520
522
522
537
542
542
555
560
560
567
578
581
594
599
599
617
622
622
644
646
661
666
666
685
690
690
710
713
727
732
732
750
753
753
755
774
777
777
779
779
794
799
799
1195
1200
1202
4
5
5
6
8
9
11
11
13
19
20
20
21
25
25
26
27
27
28
29
29
29
29
29
29
29
30
30
31
34
34
35
35
35
35
36
36
37
37
37
37
38
38
39
40
43
43
43
43
43
43
43
43
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
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
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
58
60
63
63
64
64
66
68
74
74
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
81
81
81
82
84
84
85
86
86
86
86
86
88
88
89
89
91
96
96
96
97
101
101
102
102
103
103
105
106
107
107
107
108
108
108
108
109
114
114
115
115
115
115
115
115
115
116
117
117
117
117
117
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
120
120
120
120
120
120
120
120
120
120
120
120
124
124
124
125
125
130
130
130
133
134
134
134
134
134
135
135
136
136
138
138
139
139
139
139
141
142
143
143
143
143
143
148
149
153
153
154
154
155
155
155
156
157
157
157
159
159
160
160
162
164
165
165
170
170
170
171
172
172
174
174
176
176
177
177
177
177
177
178
179
179
179
179
179
180
182
182
194
197
200
201
205
205
205
206
206
210
210
210
210
210
214
217
219
219
219
220
220
226
235
237
237
237
238
240
242
242
242
242
243
246
247
247
247
247
247
248
248
249
249
256
261
262
266
266
267
267
275
276
277
278
278
280
280
281
281
281
283
283
283
285
285
285
285
286
286
292
293
295
295
299
304
304
307
316
318
320
322
323
325
330
332
333
333
338
339
343
343
348
350
351
359
360
360
360
361
362
362
366
366
369
375
380
380
388
388
390
390
391
391
396
396
396
405
405
406
408
408
410
410
420
429
434
434
454
457
471
476
476
494
497
499
518
523
523
538
543
543
556
561
561
566
567
568
573
577
579
582
595
600
600
618
623
623
645
647
662
667
667
686
691
691
711
714
728
733
733
751
754
756
775
780
780
795
800
800
1196
1198
1201
1203
4
4
4
5
5
7
9
10
13
13
13
18
20
21
22
26
26
27
27
27
27
29
29
30
30
31
32
33
34
34
37
37
38
38
39
39
40
40
43
43
43
43
43
43
43
43
43
43
43
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
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
48
49
49
49
49
49
49
49
49
49
49
49
55
55
59
59
60
60
61
61
64
64
65
65
65
67
67
69
69
75
75
75
75
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
83
85
85
86
87
87
87
87
92
97
97
97
98
102
102
103
103
104
104
105
105
105
105
106
107
108
108
108
109
110
112
112
112
115
115
116
116
116
116
116
116
116
116
116
116
118
118
118
118
118
118
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
119
120
120
121
121
121
121
121
121
121
121
121
121
121
121
124
124
125
129
130
130
130
131
131
134
134
135
135
135
135
135
135
136
136
139
139
140
140
140
140
140
140
140
142
143
143
143
149
150
154
154
155
157
158
158
158
162
164
165
166
166
171
171
172
173
173
175
175
176
176
176
177
177
178
178
178
178
178
179
179
179
183
183
192
196
198
201
202
205
205
206
206
207
207
209
209
211
211
211
211
211
215
217
219
220
220
220
221
221
226
235
236
238
238
238
241
243
243
243
243
244
246
246
246
247
248
248
248
248
248
249
249
256
262
263
267
267
268
275
277
277
278
279
279
281
281
282
282
282
284
284
286
286
286
286
287
287
292
296
296
300
305
305
318
318
321
322
322
323
324
326
330
332
333
334
334
339
339
344
344
348
349
351
359
359
359
360
361
361
361
362
367
367
369
376
381
382
388
389
390
391
391
392
392
397
397
405
406
409
409
411
411
430
435
435
449
453
455
458
472
477
477
495
498
500
519
524
524
539
544
544
557
562
562
567
567
569
578
580
583
596
601
601
619
624
624
639
646
648
663
668
668
687
692
692
706
710
712
715
729
734
734
752
755
757
776
781
781
796
801
801
1199
1202
1204
5
5
5
6
8
10
11
11
11
13
15
18
18
27
27
27
28
31
31
32
33
37
38
39
39
40
40
40
40
43
43
43
43
43
43
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
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
60
61
61
61
62
62
66
66
66
68
68
70
70
77
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
84
85
86
86
87
88
88
88
90
90
90
91
91
91
93
98
98
98
99
103
103
104
104
106
106
106
106
106
107
107
107
108
108
109
110
111
111
111
113
113
113
113
113
114
114
114
114
114
114
116
116
117
117
117
117
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
124
124
124
125
126
126
126
126
127
127
127
130
130
132
132
135
135
135
136
136
136
136
136
137
137
141
141
141
141
141
141
141
141
142
142
143
143
150
150
150
154
154
155
155
156
156
158
159
159
161
161
161
162
162
162
162
162
165
166
170
171
171
171
171
172
173
174
174
177
177
177
177
178
178
178
178
179
179
179
179
179
179
180
182
184
184
184
194
194
197
199
202
203
207
207
208
208
210
210
212
212
212
212
212
216
217
217
220
221
221
221
235
236
238
238
239
239
239
242
244
244
244
244
245
248
249
249
249
249
249
250
250
263
263
263
267
267
268
268
269
275
275
278
278
279
282
282
283
283
283
283
284
284
284
284
285
287
287
287
287
288
288
293
295
297
297
297
301
306
307
307
322
323
323
324
325
327
330
330
333
334
340
345
345
348
349
351
351
352
361
362
362
362
363
368
368
376
376
380
380
382
383
387
388
388
390
391
392
392
396
397
397
397
397
398
406
407
408
410
410
410
412
412
420
420
431
436
436
454
456
459
473
478
478
496
499
501
520
525
525
540
545
545
558
563
568
568
570
570
579
581
584
597
602
602
620
625
625
640
644
647
649
664
669
669
688
693
693
711
713
716
730
735
735
753
756
758
777
782
782
797
802
802
1200
1203
1205
4
5
6
7
9
11
12
13
13
13
20
20
21
27
28
28
29
29
29
29
30
30
32
32
33
33
33
34
38
40
40
43
43
43
43
43
43
43
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
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
48
48
48
49
49
49
49
49
50
50
62
62
62
63
63
67
67
67
69
69
71
71
75
75
75
76
76
77
77
77
77
78
78
78
79
79
79
79
79
79
85
86
86
87
88
89
89
90
91
91
91
92
92
94
99
99
99
100
104
104
105
105
107
107
107
108
108
108
108
108
108
108
108
110
111
111
111
112
112
112
113
113
114
114
114
114
114
115
115
115
115
115
115
118
118
118
118
118
118
118
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
124
125
125
125
126
126
127
127
127
127
128
128
131
133
133
134
136
136
137
137
137
137
138
138
142
142
142
142
142
142
143
143
143
143
143
143
143
143
151
155
155
156
156
157
157
157
159
160
161
162
162
162
163
163
163
163
164
164
164
166
172
172
173
174
175
175
178
178
179
179
179
179
179
179
179
179
179
179
180
180
180
180
182
183
192
195
195
197
198
200
203
204
208
208
209
209
209
211
211
213
213
213
213
217
218
218
219
219
219
221
222
222
239
239
240
240
240
243
245
245
245
245
246
247
249
250
250
250
250
251
251
264
268
268
269
269
270
276
276
277
277
277
279
279
283
283
284
284
284
285
285
286
288
288
288
288
289
289
295
296
302
305
307
308
308
310
322
323
324
324
325
328
331
331
332
332
332
334
341
346
346
352
352
353
360
362
363
363
364
369
369
381
381
383
388
389
389
390
390
390
391
392
393
398
398
399
408
408
409
413
413
418
421
421
432
437
437
455
457
460
474
479
479
497
500
502
521
526
526
541
546
546
559
564
567
570
570
571
571
580
582
585
598
603
603
621
626
626
645
648
650
665
670
670
689
694
694
712
714
717
731
736
736
754
757
759
778
783
783
798
803
803
1201
1204
1206
7
7
8
10
11
11
12
13
13
18
18
21
27
29
29
29
30
30
30
31
33
33
33
34
35
37
37
37
38
38
39
40
40
40
40
40
40
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
51
51
54
59
63
64
64
64
64
64
68
68
68
72
72
74
74
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
86
88
89
89
90
90
90
95
100
100
100
101
105
105
106
106
107
109
109
109
109
111
111
111
111
111
111
111
111
111
111
112
112
112
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
114
114
115
115
115
115
115
116
116
116
116
116
116
116
116
118
118
118
120
120
121
121
121
121
121
121
121
121
121
121
121
122
123
125
125
125
126
126
126
126
127
132
134
134
135
135
137
138
138
139
139
142
143
143
143
143
144
144
144
144
152
154
156
156
157
157
160
160
161
161
165
165
165
165
171
171
173
173
175
176
176
178
180
180
180
180
180
180
181
181
181
183
183
184
184
193
193
198
199
201
204
205
209
209
209
210
210
214
214
214
214
218
220
220
220
220
223
223
240
240
241
241
244
246
246
246
246
247
248
248
251
251
252
252
265
267
269
269
270
270
278
278
278
278
280
284
284
284
284
285
285
285
286
286
289
289
289
289
290
290
296
296
297
297
303
305
305
306
306
308
311
322
324
326
329
333
333
333
333
342
347
347
353
353
361
361
365
370
370
380
382
382
389
391
391
391
391
392
394
397
397
399
399
409
409
409
410
410
414
414
419
419
433
438
456
458
461
475
480
480
498
501
503
522
527
527
542
547
547
560
562
562
565
571
572
572
581
583
586
599
604
604
622
627
627
646
649
651
666
671
671
690
695
713
715
718
732
737
737
755
758
760
779
784
784
799
804
804
1202
1205
1207
9
11
13
13
13
13
14
20
20
21
29
30
31
31
31
31
32
32
33
34
34
34
34
35
35
36
37
37
37
37
37
37
38
38
39
40
40
43
43
43
43
43
43
43
43
43
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
52
52
60
65
65
65
69
69
69
73
73
75
75
75
75
76
76
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
79
79
80
80
80
80
80
80
80
81
81
81
81
81
88
88
88
89
91
96
101
101
101
102
106
106
106
107
107
107
107
107
107
109
109
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
115
115
116
116
116
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
118
118
120
121
121
121
121
121
121
121
121
121
121
121
124
126
127
133
135
135
138
139
139
140
140
141
141
142
144
144
144
144
144
144
153
154
158
158
159
159
159
166
166
172
176
177
177
177
178
180
180
181
181
182
182
182
185
185
199
199
200
202
205
205
206
209
210
210
210
211
211
215
215
215
215
219
221
221
224
224
238
242
242
245
247
247
247
247
248
252
252
253
253
254
266
267
271
271
279
279
281
285
285
285
286
286
286
290
290
290
290
291
291
298
298
304
306
309
312
312
318
322
323
325
327
327
330
330
334
334
343
348
348
351
366
367
371
380
390
392
392
393
395
398
410
411
411
415
415
434
439
457
459
462
476
481
481
499
502
504
523
528
528
543
548
548
561
563
566
572
582
584
584
587
587
600
605
605
623
628
647
650
652
667
672
672
691
696
714
716
719
733
738
738
756
759
761
780
785
785
800
805
805
1203
1206
1208
1
1
7
7
11
11
12
13
13
13
13
14
15
18
18
21
29
29
31
31
34
35
35
35
36
36
37
37
38
38
39
40
40
40
40
40
43
43
43
43
43
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
53
53
61
66
66
66
66
66
69
69
70
70
70
73
74
74
74
74
74
74
74
76
76
76
76
77
77
77
77
78
78
78
78
78
78
78
79
79
79
79
84
86
88
88
89
89
90
90
91
91
91
92
92
92
92
92
97
102
102
102
103
107
107
107
107
107
107
108
108
108
108
108
109
109
109
109
109
109
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
116
116
117
117
117
117
117
117
117
117
117
117
117
117
118
118
124
125
127
127
128
128
134
136
136
136
137
139
139
140
140
141
141
142
142
142
142
142
143
143
144
144
145
145
145
145
150
154
154
155
157
159
159
159
160
160
162
162
162
163
163
163
166
171
173
177
178
178
178
178
178
178
180
180
180
180
180
180
180
180
182
182
183
183
183
183
184
184
184
186
186
195
200
200
200
200
201
203
203
205
206
206
207
210
211
211
211
212
212
216
216
216
216
220
221
225
225
225
235
243
243
246
248
248
248
248
249
250
253
253
254
254
255
263
267
267
268
272
272
279
282
284
286
286
286
287
287
287
291
291
291
291
292
292
296
297
297
297
299
299
305
307
308
310
313
313
313
313
318
323
324
326
331
331
334
338
344
348
349
349
363
367
368
370
370
372
376
380
381
391
392
394
394
396
396
397
399
409
410
410
410
411
412
412
416
416
421
435
437
437
440
458
460
460
463
463
477
482
482
500
503
505
524
529
529
544
549
549
562
564
567
583
588
588
601
606
606
624
627
627
629
648
651
651
653
653
668
673
673
692
694
694
697
715
717
717
720
720
734
739
739
757
760
762
781
786
786
801
806
806
1204
1207
1209
1
1
1
7
7
8
8
8
8
13
13
13
13
13
14
14
16
20
20
21
27
28
31
31
31
32
32
33
34
34
36
36
36
37
37
37
37
38
39
40
40
41
43
43
43
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
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
49
50
54
54
63
63
67
70
70
71
71
71
74
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
78
78
78
79
79
85
87
87
89
89
90
91
91
91
92
92
92
93
93
93
93
98
103
103
103
104
108
108
108
108
109
109
109
109
109
110
110
110
110
113
113
113
113
113
113
114
114
114
114
114
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
117
117
117
118
118
118
118
118
118
118
118
118
118
118
118
124
124
124
125
126
127
127
127
128
128
128
128
129
135
137
137
140
140
141
141
142
142
143
143
143
143
144
144
144
144
144
144
144
144
146
146
150
155
155
156
158
158
160
160
160
161
162
163
163
163
164
164
166
171
171
172
178
179
179
179
179
181
181
181
181
181
183
183
183
183
184
184
184
185
185
185
195
198
200
200
201
201
202
207
207
208
209
211
212
212
212
213
213
217
217
217
217
221
221
226
226
226
226
226
235
236
238
238
244
247
249
249
249
249
250
250
254
254
255
255
256
256
263
268
268
269
273
273
279
283
284
284
285
287
287
288
288
288
292
292
293
293
296
296
296
297
298
298
298
306
308
308
311
311
313
313
314
314
322
324
325
327
332
332
334
339
339
339
345
348
349
350
350
351
351
363
368
369
369
371
373
376
381
382
392
392
397
397
397
397
398
409
409
409
410
411
411
411
412
417
417
421
436
438
441
459
464
464
478
483
483
504
506
525
530
530
545
550
550
563
565
567
567
568
570
584
589
589
602
607
607
625
628
630
649
654
654
669
674
674
693
695
698
716
721
721
735
740
740
761
763
782
787
787
802
807
807
1205
1208
1209
1210
7
7
7
7
8
8
11
13
14
14
15
15
17
17
18
18
20
21
29
29
31
33
33
34
35
35
36
37
37
38
39
40
41
42
43
43
43
43
43
43
43
43
43
43
43
45
45
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
51
55
55
62
62
64
67
67
68
71
71
72
72
72
74
74
75
75
75
75
76
76
76
76
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
79
79
79
79
80
80
86
90
90
90
91
91
92
92
94
94
99
104
104
104
105
108
108
108
109
109
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
111
111
114
114
114
114
114
114
114
114
114
114
114
114
114
115
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
117
117
117
117
117
117
117
119
119
119
119
119
119
119
119
119
119
119
119
124
125
125
126
126
127
128
128
128
128
129
129
129
129
129
130
136
138
141
141
142
142
143
143
143
144
144
144
144
145
145
145
145
145
145
145
145
147
147
154
156
156
157
161
161
161
161
162
162
170
171
172
173
179
179
179
179
180
180
181
181
181
181
181
181
181
181
182
182
182
184
185
185
185
186
186
186
201
202
202
203
205
208
208
209
210
212
212
213
213
214
214
218
218
218
218
222
227
227
227
227
235
239
239
245
248
250
250
250
250
251
255
255
256
256
257
257
257
257
267
269
269
270
274
274
283
284
284
285
286
288
288
289
289
289
291
291
291
291
293
293
294
294
298
299
299
299
307
309
312
314
315
315
318
323
325
325
328
333
333
340
340
346
348
351
351
352
352
369
370
370
370
370
372
374
380
382
383
393
396
397
398
398
398
399
411
412
412
412
413
418
418
437
439
442
460
465
465
479
484
484
505
507
526
531
531
546
551
551
564
566
568
569
570
571
585
590
590
603
608
608
626
629
631
650
655
655
670
675
675
694
696
699
717
722
722
736
741
741
762
764
783
788
788
803
808
808
1206
1208
1210
1211
13
14
15
15
15
16
18
18
20
20
20
21
21
21
21
31
31
31
34
34
35
36
36
37
37
38
38
38
39
39
39
39
39
40
40
42
43
43
43
43
43
43
43
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
49
49
49
49
49
49
49
49
49
49
49
52
56
56
65
65
68
68
68
69
71
71
73
73
73
73
73
74
75
75
75
75
75
75
75
77
77
77
77
77
77
78
78
80
80
81
81
89
89
89
91
95
95
100
105
105
105
106
107
107
108
108
108
109
109
110
110
111
111
111
111
111
111
112
112
116
116
116
116
116
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
118
118
124
125
126
126
127
127
127
128
128
128
129
129
129
129
130
130
130
137
137
137
139
142
142
142
142
143
143
143
144
144
144
144
145
145
145
145
146
146
148
148
150
155
157
157
157
160
160
160
162
162
171
173
174
179
179
179
180
180
180
181
181
182
182
182
182
182
182
183
183
183
183
183
184
185
186
186
186
187
187
195
195
200
200
202
204
209
209
209
210
211
214
214
215
215
219
219
219
219
223
226
227
227
227
227
228
228
228
236
238
240
240
240
246
249
250
250
251
251
251
251
252
255
256
256
257
257
257
257
258
258
263
268
270
270
270
275
275
284
285
286
287
289
289
290
290
290
292
292
294
294
295
295
297
299
300
300
308
308
308
310
313
313
313
315
322
324
329
334
334
339
340
340
340
340
341
347
349
351
352
352
353
353
353
363
363
368
370
370
370
371
371
373
375
376
381
383
383
394
397
399
399
399
400
410
412
413
413
414
419
419
421
421
438
440
443
461
466
466
480
485
485
506
508
527
532
532
547
552
552
565
567
570
571
572
586
591
591
604
609
609
627
630
632
651
656
656
671
676
676
695
697
700
718
723
723
737
742
742
763
765
784
789
789
804
809
809
1207
1211
1212
7
7
8
8
11
11
14
15
16
16
16
18
18
19
19
21
22
22
29
29
31
31
31
31
35
37
37
38
39
39
40
40
40
41
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
49
49
49
49
49
53
55
55
57
57
69
69
69
70
72
72
72
72
73
73
74
74
74
74
74
74
74
74
74
75
75
76
76
76
76
77
77
77
77
77
78
78
78
78
87
89
90
90
92
92
93
96
96
101
106
106
106
107
108
108
109
109
109
109
110
110
110
110
110
110
111
111
111
111
111
111
112
112
112
112
112
112
116
116
116
116
116
116
116
116
116
116
116
118
119
119
119
119
119
119
119
119
119
119
119
122
126
128
128
129
129
130
130
130
131
131
135
138
138
138
140
143
143
143
143
143
143
144
144
145
145
145
145
145
145
145
145
146
146
147
147
149
149
154
156
158
158
160
161
161
163
163
163
164
165
171
172
174
180
180
181
181
181
181
181
181
181
182
182
183
183
183
183
183
184
184
185
185
186
187
187
193
196
196
201
205
210
210
210
210
211
212
212
215
215
216
216
220
220
220
220
220
224
228
228
229
229
229
238
239
243
247
248
250
251
251
252
252
252
252
253
257
257
258
258
258
259
259
267
269
271
276
276
278
284
285
286
287
290
290
291
291
293
293
295
295
296
296
298
298
306
309
309
309
311
314
314
323
323
325
325
330
333
335
335
341
341
342
348
351
352
353
353
361
364
364
371
371
372
372
374
376
380
382
391
395
397
398
400
400
400
411
411
415
419
420
420
422
422
439
441
444
462
467
467
481
486
486
500
507
509
528
533
533
548
553
553
566
568
571
572
587
592
592
605
610
610
628
631
633
652
657
657
672
677
677
696
698
701
719
724
724
738
743
743
757
764
766
785
790
790
805
810
810
1208
1212
1213
8
8
8
9
9
11
16
16
16
17
20
20
23
23
31
31
31
31
32
32
34
35
36
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
41
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
47
47
47
48
48
48
49
49
49
54
56
56
58
61
66
69
69
70
71
73
73
74
74
74
74
74
74
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
78
78
79
79
88
88
92
92
92
93
93
93
93
97
97
102
106
106
106
107
107
107
107
108
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
112
112
112
112
112
113
116
116
116
116
116
116
117
119
119
119
119
119
119
119
119
119
119
119
119
120
123
123
127
127
128
128
128
129
129
129
129
130
130
130
131
136
136
139
141
144
144
144
144
144
144
144
144
145
145
146
146
146
146
146
146
148
148
150
150
155
155
157
157
159
159
159
163
163
163
164
164
164
164
164
166
166
166
166
171
172
174
174
175
178
180
180
180
180
180
180
180
180
181
181
181
182
182
182
182
182
183
183
184
185
185
187
188
188
194
194
200
200
202
206
210
211
211
212
212
213
213
216
216
217
217
221
221
221
221
221
221
225
227
227
229
229
230
230
239
239
240
240
244
248
248
249
249
251
253
253
253
253
254
257
257
258
259
259
268
268
270
270
272
277
277
279
279
279
279
284
285
287
287
287
288
290
290
291
291
292
292
294
294
296
296
297
297
307
307
310
312
313
313
315
315
323
325
326
326
331
334
334
334
334
336
336
340
340
342
342
349
352
352
353
353
354
354
362
362
370
370
372
372
375
377
381
381
383
383
392
392
392
392
396
397
398
400
400
401
401
401
416
420
420
421
421
440
442
445
463
468
468
482
487
487
501
505
508
510
529
534
534
549
554
554
567
567
569
572
572
588
593
593
606
611
611
629
632
634
653
658
658
673
678
678
697
699
702
720
725
725
739
744
744
758
762
765
767
786
791
791
806
811
811
1209
1213
1214
5
5
7
10
10
11
15
15
15
17
17
18
18
18
21
21
23
29
33
33
33
34
34
35
35
36
39
40
40
40
40
40
40
40
41
41
41
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
55
57
57
59
67
70
72
74
74
74
74
74
74
74
74
74
74
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
78
78
78
78
78
78
78
78
80
90
91
93
93
93
93
94
94
94
94
94
98
98
103
105
105
105
107
107
107
108
108
108
108
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
113
113
113
113
113
114
114
114
114
114
114
114
114
114
114
118
119
119
119
119
119
119
119
119
119
119
119
120
121
126
127
128
128
129
130
130
130
131
140
142
144
144
144
145
145
145
145
146
146
146
146
146
146
146
146
146
146
147
147
147
149
149
151
151
155
157
158
158
160
161
162
164
164
164
164
165
165
165
165
165
165
167
167
175
175
176
179
181
181
181
181
181
181
182
183
183
183
183
183
184
184
185
186
186
187
188
189
189
200
200
201
201
207
210
212
212
212
213
213
214
214
217
217
218
218
220
220
220
220
222
222
222
222
226
228
231
231
241
241
249
249
252
254
254
254
254
255
258
259
260
268
270
271
271
273
278
278
280
280
288
288
288
289
291
292
292
293
293
295
295
297
297
298
298
300
313
313
313
314
314
316
323
325
326
327
327
332
335
335
337
337
341
350
354
354
355
355
371
373
376
378
381
383
384
384
393
393
397
401
401
402
402
402
413
417
422
422
441
443
446
464
469
469
483
488
488
506
509
511
530
535
535
550
555
555
568
570
570
573
589
594
594
607
612
612
630
633
635
654
659
659
674
679
679
698
700
703
721
726
726
740
745
745
763
766
768
787
792
792
807
812
812
1210
1214
1215
4
5
6
6
8
8
10
15
16
18
18
18
18
18
18
18
22
22
23
23
33
33
33
34
34
34
34
35
35
36
36
37
38
40
40
40
40
40
40
40
40
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
44
44
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
56
58
60
68
69
69
69
69
69
70
71
71
71
71
73
73
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
77
77
77
77
77
79
79
81
90
91
92
93
93
94
94
94
94
95
95
95
99
99
104
106
106
106
107
107
107
107
107
107
108
108
108
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
119
121
121
122
123
126
127
127
127
127
128
129
129
129
130
131
131
132
138
141
143
144
144
144
144
144
145
145
146
146
146
146
147
147
147
147
148
148
148
150
150
152
152
155
157
158
159
159
161
161
162
163
164
164
165
165
165
165
166
166
166
166
167
176
176
180
180
180
181
181
181
181
182
182
182
182
182
182
184
184
184
185
185
186
187
187
187
189
190
190
196
202
202
208
210
210
213
213
213
214
214
218
218
219
219
221
221
222
223
223
227
227
229
232
232
239
240
240
240
242
242
250
250
251
253
255
255
255
255
256
257
257
257
257
258
258
259
260
261
268
270
271
272
272
274
279
279
280
289
289
289
292
294
294
296
296
298
298
299
299
300
309
314
315
315
317
323
323
326
327
333
335
338
338
340
342
351
352
353
353
353
355
355
356
356
364
370
370
372
374
377
379
381
383
384
385
385
393
398
402
402
403
403
413
418
422
423
423
442
444
447
465
470
470
484
489
489
507
510
512
531
536
536
551
556
556
570
571
571
574
590
595
595
608
613
613
631
634
636
655
660
660
675
680
680
699
701
704
722
727
727
741
746
746
764
767
769
788
793
793
808
813
813
1211
1215
1216
5
5
6
6
7
7
10
10
10
15
15
18
18
18
19
19
23
23
23
24
29
29
33
33
34
34
34
35
35
35
36
36
37
37
37
38
39
39
39
39
40
40
40
41
41
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
49
49
49
49
49
49
49
49
49
49
49
49
49
49
57
59
61
68
70
70
70
70
70
70
70
70
70
70
71
71
72
72
72
73
73
74
74
74
74
74
74
74
74
75
75
75
75
76
76
76
77
77
77
77
77
77
78
78
78
78
78
80
82
90
90
90
93
94
94
95
95
95
96
96
96
100
100
105
105
105
105
107
107
107
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
115
116
116
116
116
116
116
116
120
120
121
122
123
123
123
123
127
127
128
128
128
128
128
129
129
130
132
133
138
142
144
144
144
145
145
145
145
146
146
146
146
146
146
147
147
147
148
148
148
148
149
151
151
153
153
155
155
158
159
161
161
161
162
164
165
165
166
166
166
167
167
167
167
167
174
179
179
180
181
181
181
181
182
182
183
183
184
184
184
184
185
185
187
188
188
190
191
191
196
198
203
203
209
211
211
212
212
212
214
214
214
215
219
219
220
222
222
222
224
224
227
227
228
228
233
233
239
239
239
240
241
241
241
251
251
251
254
256
256
256
257
257
257
258
258
258
259
261
262
268
268
271
272
275
280
280
280
287
290
293
295
295
297
297
299
299
300
300
309
311
315
316
316
318
324
324
325
325
325
327
334
335
339
339
340
340
341
352
352
352
352
353
354
354
354
357
357
364
370
370
371
371
378
380
381
381
384
385
393
399
400
404
404
419
422
424
424
445
448
466
471
471
485
490
490
508
511
513
532
537
537
552
557
557
571
572
572
575
591
596
596
609
614
614
635
637
656
661
661
676
681
681
702
705
723
728
728
742
747
747
765
768
770
789
794
794
809
814
814
1212
1216
1217
7
7
8
8
8
8
10
19
20
20
23
23
24
24
24
25
25
25
25
29
33
34
34
35
36
36
37
37
37
38
38
38
39
39
40
40
41
42
42
42
42
43
43
43
43
43
43
43
44
44
45
45
45
45
46
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
49
49
49
49
49
49
49
49
49
49
60
62
73
73
73
73
73
74
74
74
75
75
75
75
75
75
75
76
76
77
77
78
78
78
78
79
79
79
81
83
88
91
91
91
91
93
93
93
94
94
94
94
95
95
96
97
101
101
106
106
106
106
108
108
108
108
108
109
109
109
109
109
109
109
109
110
110
110
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
115
115
115
115
115
115
116
117
117
117
117
117
117
117
121
121
122
123
124
127
127
128
128
128
129
129
129
130
131
131
131
132
132
133
134
143
143
145
145
145
145
145
145
145
145
145
146
146
146
146
146
147
147
147
147
148
148
148
150
152
152
154
154
156
156
157
157
157
159
159
162
162
162
162
163
164
164
164
165
165
165
165
166
166
167
168
168
171
180
180
182
182
184
184
185
185
185
185
186
186
187
187
188
189
189
191
192
192
199
204
210
213
213
213
213
215
215
216
219
219
220
220
221
223
223
225
225
226
227
228
229
229
234
234
241
242
242
242
252
252
255
255
257
257
257
257
258
259
259
259
260
262
263
269
269
270
270
270
272
276
281
281
284
291
294
296
296
298
298
300
300
300
300
301
301
310
312
314
316
317
319
326
326
326
326
335
339
340
340
340
341
342
353
354
355
355
355
358
358
372
372
379
381
382
382
383
383
383
385
397
400
405
405
413
413
420
425
425
446
449
467
472
472
486
491
491
509
512
512
514
514
533
538
538
553
558
558
567
571
571
572
573
573
576
592
597
597
610
615
615
636
638
657
662
662
677
682
682
703
706
724
729
729
743
748
748
766
769
769
771
771
790
795
795
810
815
815
1213
1217
1218
1
5
8
8
9
9
10
10
10
18
18
20
21
21
23
23
23
25
25
25
25
29
33
33
33
35
36
36
37
38
38
39
39
39
40
40
41
41
42
42
43
43
43
43
43
43
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
46
47
49
49
49
49
49
49
49
49
49
49
49
55
59
61
61
63
63
68
68
72
72
74
74
74
74
74
74
74
74
74
74
74
75
76
76
77
77
77
77
77
77
79
79
80
80
82
84
89
91
91
91
92
92
92
94
95
95
96
98
102
102
107
107
107
107
108
109
109
109
109
110
110
110
110
110
110
110
110
111
111
111
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
117
118
122
122
123
124
125
127
129
130
130
131
132
132
132
133
133
134
135
138
138
142
144
144
146
146
146
146
146
146
146
146
147
147
147
148
148
148
148
149
149
149
151
153
153
155
155
158
158
158
158
160
162
162
162
163
163
163
164
165
166
166
167
169
169
171
172
174
174
180
180
181
181
183
185
186
186
186
186
188
188
189
190
190
192
193
193
199
199
203
203
205
211
214
214
216
216
217
220
221
221
222
224
224
226
226
227
229
230
230
235
235
240
242
243
243
251
251
253
253
255
255
255
258
258
258
258
259
260
260
260
261
263
264
271
271
271
271
277
282
282
284
285
287
287
292
292
295
297
297
298
299
299
301
301
301
301
302
302
312
312
315
316
316
317
318
320
327
327
336
340
341
341
342
343
353
354
355
356
356
359
359
364
364
368
373
373
380
382
384
384
384
384
397
398
400
400
401
406
406
411
414
414
421
426
426
447
450
468
473
473
487
492
492
510
515
515
534
539
539
554
559
559
571
572
572
573
574
574
577
593
598
598
611
616
616
637
639
658
663
663
678
683
683
704
707
725
730
730
744
749
749
767
772
772
791
796
796
811
816
816
1214
1218
1219
1
1
2
4
4
5
6
8
8
10
10
10
15
18
18
22
23
26
26
33
34
36
36
36
36
36
38
39
39
39
40
40
40
41
41
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
48
49
49
49
49
49
56
60
62
62
64
64
69
69
69
69
69
69
69
69
69
69
70
70
74
74
74
75
75
75
75
75
75
75
75
75
75
75
76
76
77
77
77
77
77
77
78
78
78
78
81
81
81
83
83
85
85
91
91
92
92
93
93
93
94
95
96
96
97
99
103
103
107
107
108
108
108
108
108
108
108
109
110
110
110
110
111
112
112
112
112
112
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
114
115
116
116
116
117
117
117
117
117
118
119
121
123
123
124
125
126
128
128
133
133
134
134
136
139
139
143
145
145
145
145
146
146
146
146
147
147
147
147
147
147
147
147
148
149
149
150
150
150
151
151
152
154
154
156
156
159
159
162
162
163
163
164
164
164
165
165
166
167
167
168
170
170
171
175
175
180
181
181
181
182
183
183
184
184
185
185
186
186
188
189
189
190
191
191
193
194
194
204
204
206
212
214
217
217
218
221
221
223
225
225
227
227
227
228
230
231
236
236
241
241
249
252
252
254
254
256
256
259
259
259
259
260
261
261
262
264
265
272
272
278
283
283
284
288
288
293
293
296
297
297
298
298
299
299
300
300
302
302
303
316
317
317
318
319
321
327
334
337
340
341
342
342
343
354
354
355
360
360
362
365
365
369
374
374
381
383
385
385
397
401
401
402
407
407
412
412
422
427
427
442
446
448
451
469
474
474
488
493
493
511
516
516
535
540
540
555
560
571
572
572
573
573
574
575
578
594
599
599
612
617
617
631
638
640
659
664
664
679
684
684
699
703
705
708
726
731
731
745
750
750
768
773
773
792
797
797
812
817
1215
1219
1220
2
3
5
5
6
7
10
10
10
11
11
20
20
21
23
23
24
25
25
27
27
33
33
36
37
39
39
39
39
40
40
40
40
40
41
41
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
47
47
48
49
57
61
63
63
65
65
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
72
72
72
72
73
73
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
77
77
77
77
77
77
77
78
78
78
78
79
79
79
79
82
82
82
84
84
86
86
91
91
91
92
92
93
93
93
94
94
95
97
98
100
102
102
104
104
105
105
107
107
107
108
108
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
110
110
111
111
111
112
113
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
116
116
116
116
117
117
117
117
117
117
117
118
119
120
122
122
124
124
125
126
127
131
131
132
132
137
137
143
143
144
144
145
146
146
146
146
146
147
147
147
147
148
148
149
149
149
149
149
150
150
151
151
151
152
152
153
155
155
155
155
157
157
157
157
159
162
162
162
163
163
164
164
164
165
165
166
166
168
169
171
171
172
174
176
176
176
181
181
182
182
183
184
184
184
184
185
189
190
190
191
192
192
194
194
195
195
203
205
205
213
214
218
218
219
222
222
222
222
222
224
226
226
227
228
228
228
230
230
231
232
237
250
250
255
255
256
256
257
260
260
260
260
260
262
262
263
265
266
272
279
284
284
285
287
289
289
289
297
298
298
299
299
301
301
301
301
303
303
303
303
304
307
316
317
318
318
319
322
327
335
335
335
335
338
340
341
343
343
343
343
344
356
361
361
363
363
369
369
373
373
375
375
379
382
384
385
398
400
402
402
402
403
408
408
420
423
428
428
447
449
452
470
475
475
489
494
512
517
517
536
541
541
556
561
571
572
573
573
574
574
576
579
595
600
600
613
618
618
632
636
639
641
660
665
665
680
685
685
704
706
709
727
732
732
746
751
769
774
774
793
798
798
813
818
1216
1220
1221
3
4
8
8
8
8
8
8
8
10
10
10
10
12
12
18
18
21
23
24
25
25
26
26
28
28
37
38
39
39
40
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
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
48
48
48
48
48
48
48
48
48
49
49
50
62
66
66
69
69
69
69
69
70
70
70
72
72
72
72
73
73
73
73
73
73
73
74
74
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
78
78
78
79
79
79
79
80
80
80
80
83
83
83
85
85
87
87
89
92
92
92
93
93
93
95
96
96
96
97
97
98
99
101
103
103
105
106
106
107
107
107
107
107
107
107
107
107
107
108
108
108
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
111
111
112
112
112
112
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
114
114
114
114
115
115
115
115
117
117
117
117
117
117
117
118
118
119
120
121
123
125
125
126
127
127
128
128
128
130
131
132
132
132
133
133
145
145
145
147
147
147
148
148
149
149
150
150
150
150
150
151
151
152
152
152
153
153
154
158
158
158
158
159
160
163
163
163
164
164
164
166
166
167
167
167
167
168
168
169
170
172
172
174
175
181
181
182
182
184
184
184
184
184
184
185
185
185
185
188
190
191
191
192
192
193
193
193
195
195
195
196
196
196
203
214
219
219
220
223
223
223
225
227
227
229
229
231
231
232
233
236
236
238
243
256
256
258
261
261
261
261
261
263
263
264
266
267
272
279
280
285
285
287
288
291
298
299
299
300
300
301
302
302
304
304
304
304
305
308
316
318
320
323
336
336
339
344
344
344
344
345
356
357
362
362
374
374
376
380
383
385
385
392
400
401
404
409
409
414
421
424
429
429
448
450
453
471
476
476
490
493
493
495
513
518
518
537
542
542
557
559
559
562
571
573
574
574
575
577
580
596
601
601
614
619
619
637
640
642
661
666
666
681
686
686
705
707
710
728
733
733
747
750
750
752
770
775
775
794
799
799
814
816
816
819
1217
1221
1222
4
4
5
5
9
9
9
10
10
10
10
11
11
13
13
20
20
21
25
25
27
27
27
27
29
29
36
38
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
49
49
49
49
49
49
49
49
49
50
50
51
63
67
67
67
67
68
68
70
70
70
70
70
70
70
70
70
70
71
71
71
71
72
72
73
74
74
74
74
76
76
77
77
79
79
79
79
80
80
80
81
81
84
84
84
88
88
89
91
93
94
96
97
97
97
98
98
99
100
102
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
106
107
107
108
108
108
108
108
108
108
108
108
108
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
112
112
113
113
113
114
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
115
116
118
118
119
119
121
122
124
125
126
127
128
129
130
131
131
132
132
132
133
133
133
134
134
139
145
145
146
146
146
147
148
148
149
149
150
151
151
151
151
153
153
153
154
154
155
159
159
159
159
160
162
164
165
167
167
167
167
168
168
168
168
169
169
170
171
173
173
175
175
176
176
180
184
184
185
185
185
185
185
185
185
185
186
186
186
186
188
191
192
192
194
196
196
196
196
197
197
197
199
203
204
215
220
220
221
221
223
224
226
228
228
230
230
232
232
234
237
239
243
252
257
257
259
260
262
262
262
262
262
264
265
267
268
280
280
280
281
286
286
288
288
289
289
292
296
299
300
300
301
301
301
303
305
305
305
305
306
309
309
312
316
317
319
321
321
324
324
336
340
345
345
345
345
356
358
363
363
365
373
375
375
381
384
386
393
393
393
401
401
402
402
405
410
410
414
422
422
425
430
430
449
451
454
472
477
477
491
494
496
514
519
519
538
543
543
558
560
563
572
574
575
576
578
578
581
581
597
602
602
615
620
620
638
641
643
662
667
667
682
687
687
706
708
711
729
734
734
748
751
753
771
776
776
795
800
800
815
817
820
1218
1222
1223
5
5
5
6
6
8
10
10
10
10
10
12
12
13
13
14
14
18
18
21
25
25
26
27
28
28
30
33
36
36
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
49
49
49
49
50
50
50
51
51
52
64
68
68
68
68
68
68
69
69
69
70
70
71
71
71
71
72
72
72
72
73
73
74
74
74
76
76
76
77
77
77
78
78
80
80
80
80
81
82
82
85
85
85
89
89
90
91
92
95
98
98
99
99
102
103
103
103
103
103
103
103
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
107
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
113
114
114
115
115
115
115
115
115
115
115
115
115
115
115
116
116
116
116
117
117
118
119
120
122
123
125
126
127
130
132
132
133
133
133
134
134
134
134
135
135
135
139
145
146
146
146
147
147
148
148
149
149
151
154
154
154
154
155
155
156
156
160
160
160
160
161
162
163
166
168
168
169
169
169
170
170
174
174
177
177
180
181
183
186
186
186
186
186
186
187
187
187
187
192
193
193
195
197
197
197
197
197
197
198
198
198
199
204
205
213
216
221
221
222
222
223
225
226
226
227
229
229
230
231
231
235
238
240
252
258
259
260
260
260
263
263
263
263
264
265
266
268
269
281
281
282
287
287
290
290
297
300
300
301
301
302
302
302
304
306
306
306
306
307
310
310
310
310
312
317
318
320
325
325
326
336
341
343
346
346
359
364
364
365
373
382
385
387
394
394
403
403
406
411
411
423
423
423
423
426
431
431
450
452
455
473
478
478
492
495
497
515
520
520
539
544
544
559
561
564
573
575
577
582
582
598
603
603
616
621
621
639
642
644
663
668
668
683
688
688
707
709
712
730
735
735
749
752
754
772
777
777
796
801
801
816
818
821
1219
1223
1224
5
6
7
7
11
12
13
14
14
15
15
20
20
21
27
27
27
27
29
29
31
34
35
38
38
39
40
40
43
43
43
43
43
43
43
43
43
44
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
49
49
49
49
50
51
51
51
52
53
65
68
68
69
69
69
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
74
74
74
74
75
75
75
75
75
75
77
77
77
77
77
78
78
78
79
79
81
81
82
83
83
83
83
86
86
86
86
86
90
90
90
90
93
94
94
96
96
96
97
97
103
104
104
104
104
104
104
104
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
107
107
107
107
107
107
107
107
108
108
108
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
112
112
112
112
112
112
112
112
112
112
112
113
114
114
115
115
115
115
115
115
115
116
117
117
117
117
118
118
119
120
121
123
124
126
126
128
128
130
130
131
131
132
133
134
134
134
135
135
135
135
135
136
136
143
146
146
147
147
147
148
148
149
149
149
149
150
150
152
155
155
156
156
157
157
158
161
161
161
161
161
161
164
165
165
167
167
167
167
168
168
168
168
168
168
169
170
175
175
175
176
176
176
178
178
180
181
183
183
183
184
185
185
186
186
186
186
186
186
188
188
188
188
188
188
193
194
194
195
196
196
197
197
198
198
198
198
199
199
199
199
203
205
206
214
214
214
214
217
222
222
226
227
227
227
228
230
230
230
230
232
232
232
232
236
239
241
243
243
256
259
260
261
261
264
264
264
264
265
266
267
269
270
271
280
281
281
281
281
282
283
288
288
288
289
289
289
291
291
298
301
301
302
302
303
303
303
305
307
307
307
307
308
308
310
310
311
311
316
318
319
321
326
326
327
327
327
327
340
342
347
347
356
356
360
365
365
369
373
374
383
384
386
386
388
388
393
394
394
394
394
395
401
402
402
402
404
404
407
412
412
414
414
421
423
423
424
424
427
432
432
451
453
453
456
456
474
479
479
493
496
498
516
521
521
540
545
545
560
562
565
573
578
583
583
599
604
604
617
622
622
640
643
643
645
645
664
669
669
684
689
689
708
710
710
713
713
731
736
736
750
753
755
773
778
778
797
802
802
817
819
822
1220
1224
1225
4
4
5
6
7
8
8
8
8
11
11
12
13
15
15
16
16
18
18
20
21
25
25
27
28
30
32
33
34
34
35
35
36
36
36
39
40
40
40
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
48
48
49
49
49
49
49
49
51
51
52
52
52
52
53
54
66
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
72
72
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
75
75
75
75
75
75
75
75
76
76
77
77
77
77
77
77
78
78
78
78
79
79
79
80
82
82
83
87
87
87
87
87
91
91
92
92
93
93
94
95
95
96
97
97
97
97
98
98
104
105
105
105
105
105
105
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
109
109
109
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
112
112
112
112
112
112
113
113
113
113
114
114
114
114
114
114
114
114
115
115
116
116
116
116
116
116
116
116
116
116
117
118
119
119
120
121
121
122
122
124
124
125
125
127
128
131
131
132
132
132
133
134
135
135
136
136
136
137
137
143
146
146
147
147
148
149
149
149
149
149
149
149
150
150
150
150
151
153
156
156
157
157
158
158
159
159
159
159
162
162
162
162
163
163
164
164
165
166
166
167
168
168
168
168
169
169
169
169
170
171
175
175
175
176
176
176
177
177
177
183
184
184
184
184
185
185
185
185
185
185
185
185
186
186
186
187
187
187
187
187
187
189
189
194
195
195
198
199
199
199
199
199
200
200
200
200
204
206
206
215
215
218
220
223
223
227
227
228
228
228
229
230
230
233
233
233
233
237
240
241
242
244
244
256
260
261
262
262
265
265
265
265
266
267
267
268
268
270
270
271
271
272
272
272
272
282
282
283
284
288
288
288
289
289
289
290
290
290
299
299
302
302
303
303
304
304
304
306
308
308
308
308
309
311
312
312
312
317
319
319
322
327
327
328
328
340
341
343
343
343
348
348
354
357
357
361
366
366
369
374
375
384
385
385
385
385
389
389
395
395
396
401
401
401
402
403
403
403
408
412
413
413
415
415
424
425
425
428
433
433
452
457
457
475
480
480
494
497
499
517
522
522
541
546
546
561
563
566
575
579
584
584
600
605
605
618
623
623
641
646
646
665
670
670
685
690
690
709
714
714
732
737
737
751
754
756
774
779
779
798
803
803
818
820
823
1221
1225
1226
5
5
5
5
8
8
8
9
9
9
12
12
12
13
13
13
14
15
15
17
17
20
20
20
21
21
21
21
27
27
27
29
31
33
33
33
34
35
36
36
37
37
38
38
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
47
47
47
47
47
49
49
49
52
53
53
53
54
55
67
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
75
75
76
76
76
76
76
78
78
79
79
79
79
80
80
80
80
81
83
83
84
88
88
88
88
88
92
92
92
93
96
96
96
96
97
97
97
98
98
98
99
99
104
104
104
105
105
106
106
106
106
106
106
106
106
106
106
106
106
108
108
108
108
108
108
108
109
109
109
109
109
109
109
110
110
110
110
110
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
114
114
114
115
115
115
116
116
116
116
117
117
117
117
117
117
117
117
117
118
119
120
120
121
125
125
126
126
128
129
129
132
132
133
133
133
133
135
136
136
137
145
147
149
149
149
150
150
150
150
150
150
150
150
150
151
151
151
151
152
154
157
157
158
158
159
159
160
160
163
163
163
163
163
164
167
167
167
167
168
168
168
168
168
169
169
169
170
170
170
170
172
177
177
178
178
178
185
185
185
186
186
187
187
187
187
188
188
188
188
188
188
195
196
196
197
197
199
200
200
201
201
201
201
203
205
215
219
221
224
224
225
227
228
229
229
230
231
231
234
234
234
234
238
241
242
242
243
257
260
261
261
262
263
263
266
266
266
266
267
271
271
272
272
273
273
281
281
283
283
285
290
290
290
291
291
291
300
300
300
304
304
305
305
305
307
309
309
309
309
310
310
310
312
316
318
323
328
328
328
340
344
344
344
349
349
355
355
362
367
367
373
375
376
385
386
386
390
390
394
394
396
396
403
404
404
404
409
413
413
414
414
423
423
425
429
434
453
458
458
476
481
481
495
498
500
518
523
523
542
547
547
562
564
567
575
580
585
585
601
606
606
619
624
624
642
647
647
666
671
671
686
691
710
715
715
733
738
738
752
755
757
775
780
780
799
804
804
819
821
824
1222
1226
1227
8
10
10
10
10
12
12
12
13
13
13
14
14
15
15
16
16
16
16
18
18
18
18
21
22
22
25
25
27
27
27
27
32
33
34
34
35
36
36
36
37
37
37
38
38
39
39
39
39
39
39
39
41
41
41
41
41
41
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
47
47
47
50
52
52
53
53
54
54
54
54
55
56
68
70
70
70
70
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
73
74
74
76
76
77
79
79
80
80
80
80
80
81
81
81
81
82
82
84
84
85
85
89
89
89
89
89
93
93
94
94
97
97
98
98
98
99
99
99
99
100
100
100
103
103
104
104
104
105
105
105
106
106
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
109
109
109
109
109
109
109
109
109
109
110
111
111
111
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
114
114
114
115
115
116
116
116
116
117
117
117
117
118
118
118
118
118
118
118
119
119
120
121
121
122
126
126
127
127
129
133
133
134
134
134
134
134
134
134
135
135
135
136
137
137
143
145
146
148
148
150
150
151
151
151
151
151
151
152
152
152
152
153
155
158
158
159
159
160
160
160
164
164
164
164
165
165
168
168
169
169
169
169
170
170
170
170
171
171
171
173
176
178
178
179
179
184
185
185
185
186
186
187
187
188
188
189
189
189
189
196
197
197
198
201
201
202
202
202
202
204
204
206
206
215
220
225
225
226
228
229
229
230
230
230
231
231
232
232
232
235
235
235
235
239
242
244
250
256
261
262
262
263
263
264
267
267
267
267
268
272
272
273
273
273
282
286
289
291
291
291
292
292
301
305
305
306
306
306
308
310
310
310
310
311
311
317
317
319
319
324
328
329
329
341
343
345
345
345
345
350
350
363
363
368
369
374
376
376
386
386
391
391
395
402
404
405
405
410
415
415
424
430
435
454
459
459
477
482
482
496
499
501
519
524
524
543
548
548
563
565
568
581
586
586
602
607
607
620
625
643
648
648
667
672
672
687
692
711
716
716
734
739
739
753
756
758
776
781
781
800
805
805
820
822
825
1223
1227
1228
1
4
5
5
9
11
11
11
11
12
13
14
15
15
15
15
15
15
17
17
19
19
23
23
27
27
27
27
27
28
28
31
33
33
33
34
35
35
35
36
37
38
38
38
38
39
39
39
39
39
39
39
41
41
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
43
43
43
43
43
43
43
43
43
43
43
43
43
43
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
51
53
53
54
55
55
55
56
56
57
67
67
68
68
68
68
69
71
71
71
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
72
72
72
72
72
72
72
72
73
73
73
73
73
73
73
74
74
74
76
76
76
76
76
77
78
80
80
80
80
80
80
81
82
82
82
82
85
85
86
86
90
90
90
90
90
90
90
94
94
94
95
95
97
98
99
99
99
100
100
100
100
100
101
101
104
104
105
105
105
105
105
105
105
105
105
105
106
106
106
107
107
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
111
111
111
111
111
111
112
113
113
113
113
113
114
114
115
115
115
116
116
116
116
117
118
118
119
119
119
121
122
122
122
123
127
127
128
128
130
131
135
135
135
135
135
135
136
136
136
136
138
145
146
147
148
148
148
149
149
150
150
151
151
151
151
151
151
153
153
153
153
154
156
159
159
160
160
160
161
161
161
161
165
165
165
165
165
166
166
168
168
169
170
170
170
170
171
171
171
171
171
172
172
174
176
176
177
177
179
184
184
184
185
186
186
186
187
187
187
187
189
197
197
197
198
198
199
202
202
203
203
203
203
204
206
207
207
221
222
226
226
227
230
231
231
231
232
232
236
236
236
236
240
243
244
245
251
260
262
263
263
265
265
268
268
268
268
268
269
273
273
273
274
274
281
283
287
290
290
292
292
302
302
306
306
307
307
307
309
310
310
311
311
311
311
312
312
317
319
320
320
325
330
330
335
343
344
346
351
351
357
364
364
367
367
369
373
375
386
387
392
392
394
396
403
403
411
415
416
416
423
423
425
431
433
433
436
455
460
460
478
483
483
497
500
502
520
525
525
544
549
549
564
566
569
582
587
587
603
608
608
621
624
624
626
644
649
649
668
673
673
688
690
690
693
712
717
717
735
740
740
754
757
759
777
782
782
801
806
806
821
823
826
1224
1228
1229
1
1
5
6
8
10
12
12
12
12
14
15
16
16
18
18
18
18
18
20
20
23
25
28
29
29
32
33
34
34
36
36
36
36
36
37
38
38
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
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
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
52
54
54
56
56
57
57
58
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
72
72
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
75
75
76
76
76
76
76
76
77
78
79
79
80
80
81
81
81
81
81
81
82
86
86
87
87
90
91
91
91
91
91
94
94
95
95
95
96
96
97
98
99
100
100
101
101
101
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
105
105
105
105
105
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
111
111
111
111
111
111
111
112
113
113
113
113
113
113
115
115
115
116
116
116
118
119
119
119
120
122
123
123
123
124
128
128
129
129
131
131
136
136
136
136
137
137
139
139
148
148
148
149
149
149
149
150
150
150
150
150
150
150
150
150
150
151
151
152
152
152
152
152
152
155
157
160
160
161
161
161
162
162
165
165
166
166
166
166
166
167
167
168
168
168
169
169
170
171
171
172
172
172
173
173
175
177
180
186
187
187
187
189
197
197
198
198
198
199
199
203
203
204
204
204
204
204
206
207
208
208
222
223
223
223
227
227
228
231
231
232
232
232
232
233
233
237
237
237
237
244
244
246
252
252
261
261
263
263
264
264
269
269
269
269
269
270
274
274
275
275
281
281
282
288
293
293
302
303
307
307
308
308
310
310
310
311
311
312
312
312
312
313
317
319
320
321
321
326
331
331
336
336
336
344
344
345
345
347
352
352
357
365
365
365
368
370
374
374
376
376
388
393
393
394
394
395
412
415
417
417
423
423
424
424
432
434
437
456
461
461
479
484
484
501
503
521
526
526
545
550
550
567
570
583
588
588
604
609
609
622
625
627
645
650
650
669
674
674
689
691
694
713
718
718
736
741
741
758
760
778
783
783
802
807
807
824
827
1225
1229
1230
4
5
5
9
11
13
13
15
15
16
17
17
18
19
19
20
20
21
21
23
23
29
29
30
33
35
35
37
37
37
38
38
38
38
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
41
41
41
41
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
45
45
45
45
45
45
45
45
45
45
45
45
45
47
47
48
49
53
53
54
55
57
57
58
58
59
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
73
73
75
78
79
79
80
80
81
81
82
82
82
82
82
82
83
87
87
88
88
92
92
92
92
92
95
95
96
96
96
97
97
97
97
97
98
98
100
101
101
101
101
101
101
101
101
102
103
103
103
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
107
107
110
110
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
112
113
113
113
113
113
113
114
114
116
117
117
118
118
118
118
118
118
119
120
120
120
121
123
124
124
124
125
129
129
130
130
132
136
137
137
137
140
140
140
140
148
150
150
150
150
151
151
151
151
152
152
153
153
153
153
153
153
156
158
161
161
162
162
163
163
166
166
167
167
167
167
167
167
168
168
168
168
168
168
169
169
169
170
171
172
172
173
176
178
179
181
185
187
188
188
189
189
189
189
189
189
199
199
199
200
200
204
204
204
204
205
205
205
205
207
208
214
223
224
224
228
228
229
233
233
233
233
234
234
238
238
238
238
245
247
253
253
253
253
261
263
264
264
265
265
270
270
270
270
270
271
275
275
276
276
280
281
282
283
289
292
294
294
304
308
308
309
309
311
312
312
313
313
313
313
314
317
317
320
321
327
327
332
332
337
337
346
346
348
353
353
366
366
366
366
366
369
371
374
376
377
377
389
393
394
394
394
395
396
405
413
418
418
425
425
433
435
438
457
462
462
480
485
485
502
504
522
527
527
546
551
551
568
571
584
589
589
605
610
610
623
626
628
646
651
651
670
675
675
690
692
695
714
719
719
737
742
742
759
761
779
784
784
803
808
808
825
828
1226
1230
1231
5
6
6
10
14
14
15
16
17
18
18
18
18
21
21
22
22
23
24
25
25
30
34
36
36
38
38
38
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
43
43
43
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
54
54
55
56
58
59
60
70
70
70
70
70
70
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
73
73
73
73
73
73
74
75
76
79
79
79
80
80
81
81
82
82
83
83
83
83
84
88
88
89
89
93
93
93
93
93
95
95
95
97
97
97
97
97
98
98
98
98
99
99
99
99
99
100
100
100
101
102
102
102
102
102
102
102
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
107
107
107
108
108
108
108
108
108
108
108
108
108
110
110
114
115
115
115
115
116
116
118
118
119
119
119
119
119
119
119
120
121
121
121
122
125
125
125
126
130
130
131
131
131
131
133
135
136
136
137
138
138
138
140
140
141
141
148
149
150
150
150
150
151
151
151
152
152
152
152
153
153
154
154
154
154
157
159
162
162
163
163
164
164
166
168
168
168
168
168
168
168
168
169
169
169
169
170
170
170
170
170
170
171
171
171
171
172
173
177
179
179
182
186
186
187
187
189
189
190
190
190
190
195
200
200
200
201
201
205
205
205
205
206
206
206
206
206
206
206
208
215
215
215
215
223
224
224
224
224
224
225
229
229
230
231
232
232
232
234
234
234
234
235
235
239
239
239
239
244
244
246
248
251
253
253
254
254
261
263
264
265
265
266
266
271
271
271
271
271
272
276
276
277
277
281
283
284
290
292
295
295
305
308
309
309
310
310
312
313
313
314
314
314
314
315
318
318
319
319
319
321
328
328
328
328
328
333
333
336
337
337
337
337
338
344
345
345
345
347
347
349
354
354
357
357
364
366
366
367
367
367
370
372
374
376
377
378
378
390
394
395
395
396
397
405
414
419
419
421
426
426
434
436
439
458
463
463
481
486
486
503
505
523
528
528
547
552
552
569
572
575
585
590
590
606
611
611
624
627
629
647
652
652
671
676
676
691
693
696
715
720
720
738
743
743
760
762
780
785
785
804
809
809
826
829
1227
1231
1232
5
5
5
11
12
13
13
15
15
15
15
17
17
18
18
19
22
22
23
23
23
23
24
25
25
25
25
25
30
30
31
35
39
39
39
39
39
40
40
40
41
41
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
47
47
47
47
55
56
57
59
60
61
67
67
68
68
68
68
70
70
71
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
72
72
72
72
72
72
72
72
72
72
73
73
73
73
75
75
75
75
77
79
80
80
80
81
81
81
81
85
89
89
90
90
94
94
94
94
94
95
96
96
97
98
98
99
99
100
100
100
100
101
101
101
101
103
103
103
103
103
103
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
108
108
108
108
108
110
110
113
113
115
115
115
115
116
117
117
117
117
119
120
120
120
121
121
126
126
126
127
129
131
131
132
132
132
132
134
136
136
136
136
137
137
137
137
139
139
141
142
142
148
148
149
149
149
150
151
151
151
151
152
152
152
152
152
158
160
163
163
164
164
165
165
166
168
168
169
169
169
169
169
169
170
170
171
171
171
171
171
172
172
172
172
178
180
183
188
188
188
188
196
201
201
202
202
206
206
207
207
207
207
207
207
207
207
216
216
225
225
225
226
230
231
231
231
231
232
233
233
233
235
235
236
236
240
240
240
240
240
242
245
245
247
249
254
255
255
261
261
264
265
267
267
272
272
272
272
272
273
277
277
278
278
281
282
284
291
296
306
307
309
310
310
311
311
311
313
314
315
315
315
315
316
320
320
320
320
329
329
329
334
334
338
338
339
344
344
344
345
346
346
346
350
355
355
355
358
358
367
368
368
368
371
373
374
374
377
378
391
394
395
396
396
397
415
420
420
422
427
435
437
440
459
464
464
482
487
497
504
506
524
529
529
548
553
564
568
570
573
573
575
576
586
591
591
607
612
612
625
628
630
648
653
653
672
677
677
692
694
697
716
721
721
739
744
754
761
763
781
786
786
805
810
821
825
827
830
1228
1232
1233
5
6
6
12
16
16
17
17
18
18
18
19
19
19
20
23
23
23
24
24
25
25
25
29
29
29
31
32
32
36
36
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
47
47
47
52
56
57
57
58
58
58
58
60
60
61
62
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
76
78
80
81
81
81
86
90
90
91
91
95
95
95
95
95
95
95
97
97
98
99
99
101
101
102
102
102
102
102
104
104
104
104
104
104
104
104
104
104
104
104
106
106
106
106
106
106
106
106
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
108
110
110
110
111
111
111
114
116
117
117
117
117
120
121
121
121
122
122
127
127
127
128
130
130
132
132
133
133
135
137
137
138
138
140
140
140
140
142
149
149
150
150
150
151
152
152
152
152
159
159
161
164
164
165
165
166
166
166
166
168
169
169
170
170
170
170
170
171
171
172
172
172
173
173
179
179
179
181
184
187
188
188
188
196
196
200
200
202
202
203
203
207
207
208
208
208
208
208
208
216
224
224
226
226
226
229
229
231
232
233
234
234
234
236
236
237
237
241
241
241
241
241
243
243
245
248
250
253
253
255
262
262
263
263
263
265
268
268
272
273
273
273
273
273
274
278
278
279
279
281
282
284
284
285
292
292
292
297
300
307
309
309
311
311
312
312
312
313
313
314
315
316
316
316
316
317
321
321
329
330
335
335
337
337
339
339
346
347
347
347
351
356
356
356
356
366
366
368
369
372
374
375
375
376
376
376
378
385
392
394
395
397
397
397
397
398
405
405
413
416
421
421
422
422
426
426
428
436
438
441
460
465
465
483
486
486
488
498
502
505
507
525
530
530
549
554
569
571
574
574
576
587
592
592
608
613
613
626
629
631
649
654
654
673
678
678
693
695
698
717
722
722
740
743
743
745
755
759
762
764
782
787
787
806
811
826
828
831
1229
1233
1234
5
5
5
13
15
15
17
17
18
20
20
20
21
23
25
25
29
30
32
32
32
32
32
34
35
36
36
37
39
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
42
42
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
47
47
53
57
58
59
59
59
61
61
62
63
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
75
77
77
79
79
79
81
82
82
83
83
83
83
83
83
87
91
91
92
92
95
96
96
96
96
96
96
96
97
97
97
98
99
99
100
101
101
101
102
102
102
102
103
103
103
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
108
108
108
110
110
110
111
111
111
111
111
111
115
115
117
117
118
118
118
119
119
119
119
119
119
119
121
122
122
123
123
128
128
128
129
133
133
134
134
136
137
138
141
141
141
150
151
151
151
151
152
153
153
154
154
154
154
154
154
160
160
160
160
162
165
165
166
166
167
167
167
167
168
168
168
170
171
171
171
171
172
172
172
173
173
177
180
180
180
182
185
186
188
188
189
189
190
190
190
190
190
190
201
201
203
203
204
204
208
208
208
209
209
209
209
216
225
227
230
232
232
233
234
235
235
237
237
238
238
242
242
242
242
246
249
251
254
264
264
264
264
269
269
273
273
273
274
274
274
274
274
275
279
279
280
280
285
285
286
290
293
293
293
295
295
298
301
308
312
312
313
313
313
314
314
315
316
317
317
317
317
318
321
329
331
336
336
338
345
347
348
348
352
357
357
367
370
373
375
377
377
377
377
386
386
386
393
398
398
398
398
399
403
406
406
414
417
422
422
427
427
429
437
439
442
461
466
466
484
487
489
503
506
508
526
531
531
550
552
552
555
570
572
574
575
588
593
593
609
614
614
627
630
632
650
655
655
674
679
679
694
696
699
718
723
723
741
744
746
760
763
765
783
788
788
807
809
809
812
827
829
832
1230
1234
1235
5
6
6
11
14
17
17
17
18
18
18
21
22
22
22
22
22
23
24
25
25
26
26
29
29
32
33
33
34
34
35
35
36
36
36
38
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
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
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
54
58
59
59
60
60
60
60
62
62
62
63
63
64
70
70
70
70
70
70
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
73
73
73
73
73
73
76
78
78
80
80
80
80
81
81
83
83
84
84
84
84
88
92
92
93
93
96
97
97
97
97
97
98
98
98
98
99
100
100
101
101
101
101
101
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
108
111
111
111
114
116
116
116
117
117
118
119
119
119
120
120
120
120
120
120
124
129
129
129
130
132
134
134
135
135
136
137
137
137
138
140
140
142
142
142
151
151
152
152
152
152
154
154
155
155
155
155
161
161
161
163
166
166
167
167
168
168
169
169
169
169
171
172
172
172
172
172
172
173
173
173
178
178
181
183
186
187
187
188
188
189
189
190
190
191
191
191
191
200
202
202
204
205
205
208
209
209
210
210
210
210
224
226
228
231
233
233
233
234
238
238
239
239
243
243
243
243
245
247
250
252
253
253
255
265
265
270
270
274
274
275
275
275
275
275
276
280
280
281
281
286
286
291
291
294
296
299
302
302
309
313
313
313
314
314
314
315
315
316
318
318
318
318
319
321
332
337
337
337
339
346
346
353
358
358
358
366
366
368
371
374
376
378
378
387
387
394
399
399
399
399
404
404
415
415
418
423
423
426
428
428
438
440
443
462
467
467
485
488
490
504
507
509
527
532
532
551
553
556
571
573
576
576
589
594
594
610
615
615
628
631
633
651
656
656
675
680
680
695
697
700
719
724
724
742
745
747
761
764
766
784
789
789
808
810
813
828
830
833
1231
1235
1236
5
5
5
15
15
15
18
18
19
19
23
23
23
23
25
25
26
26
27
27
33
33
33
34
34
35
36
36
37
37
39
39
39
39
39
39
39
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
40
40
40
40
40
41
41
41
41
41
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
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
45
45
46
47
47
59
63
63
63
64
64
65
67
67
68
68
68
68
70
70
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
72
72
72
72
72
72
73
73
73
73
77
79
79
81
81
82
82
82
82
89
93
93
94
94
97
98
98
98
98
99
99
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
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
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
111
112
114
115
117
118
118
118
118
120
125
130
130
130
131
132
135
135
136
136
137
137
137
137
138
138
138
138
138
140
140
141
141
143
143
152
153
153
153
153
160
161
161
161
161
162
162
164
167
167
168
168
169
169
170
170
171
172
172
172
172
173
173
173
173
173
173
173
173
184
187
189
189
189
189
190
190
190
190
200
205
206
206
210
210
211
211
211
211
224
224
225
229
232
234
235
239
239
240
240
244
244
244
244
245
248
251
253
253
253
254
254
265
271
271
273
274
274
274
274
275
276
276
276
276
276
277
281
281
282
282
284
295
297
300
303
303
303
303
310
313
314
314
315
315
315
317
319
319
319
319
320
333
337
337
338
338
338
354
358
359
359
366
366
367
367
375
377
378
386
387
387
387
387
388
395
397
400
400
416
416
416
416
419
424
424
426
441
444
463
468
468
486
489
491
505
508
510
528
533
533
552
554
557
572
574
576
577
590
595
595
611
616
616
632
634
652
657
657
676
681
681
698
701
720
725
725
743
746
748
762
765
767
785
790
790
809
811
814
829
831
834
1232
1236
1237
5
5
6
6
6
6
16
17
17
18
19
20
20
24
24
24
24
24
25
27
27
27
27
28
28
32
33
34
34
35
35
36
37
37
37
38
38
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
45
45
45
45
45
45
45
45
46
55
56
60
60
61
64
64
64
65
65
66
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
78
82
82
82
82
82
90
94
94
95
95
99
99
99
99
99
99
99
99
99
99
99
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
109
109
109
109
109
109
109
113
115
116
118
118
118
118
121
122
126
131
131
131
132
136
136
137
137
138
138
139
139
139
142
142
144
144
152
153
153
153
162
162
163
163
165
168
168
168
169
169
170
170
170
173
173
174
174
174
174
174
174
180
185
188
188
189
189
189
190
190
191
191
196
200
201
206
207
207
211
211
212
212
212
212
223
224
225
226
230
233
235
235
236
240
240
241
241
245
245
245
245
249
252
252
254
254
255
255
265
272
272
275
275
276
277
277
277
277
277
278
281
282
282
283
283
293
296
298
301
301
303
303
304
304
309
311
313
314
315
315
316
316
316
318
318
320
320
320
320
321
321
334
336
337
338
339
339
339
348
355
360
360
368
368
376
378
378
388
388
389
394
396
401
401
406
414
416
416
417
417
420
422
425
425
426
427
442
445
464
469
469
487
490
492
506
509
509
511
511
529
534
534
553
555
558
573
575
575
578
578
591
596
596
612
617
617
633
635
653
658
658
677
682
682
699
702
721
726
726
744
747
749
763
766
766
768
768
786
791
791
810
812
815
830
832
832
835
835
1233
1237
1238
1
5
5
5
5
7
7
15
15
17
17
18
19
19
21
21
21
21
25
25
25
27
28
28
29
29
29
32
32
33
34
35
36
36
36
36
36
36
36
37
38
38
39
39
39
39
39
39
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
41
41
41
43
43
43
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
61
61
62
64
65
65
65
66
66
66
66
66
67
70
70
70
70
70
70
70
70
70
70
70
70
79
80
82
83
83
83
83
84
84
84
84
84
84
91
95
95
96
96
98
99
100
100
100
100
100
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
103
103
103
103
103
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
113
114
116
116
117
118
119
119
119
120
120
122
122
127
132
132
132
133
137
137
138
138
138
138
139
140
143
143
145
145
151
153
154
154
155
155
155
155
155
155
161
161
163
163
164
166
168
169
169
169
169
170
170
170
171
171
171
171
173
174
175
175
175
175
180
186
187
189
189
190
190
191
191
191
192
192
196
201
202
207
207
208
208
212
212
213
213
213
213
224
226
227
231
234
235
236
237
241
241
242
242
246
246
246
246
250
251
255
255
256
256
273
273
274
274
276
276
278
278
278
278
278
279
281
282
283
283
284
284
284
284
293
297
299
302
304
305
305
309
312
314
315
316
316
317
317
317
320
321
321
321
321
322
322
335
337
339
340
340
340
348
356
361
364
369
369
377
379
387
387
389
389
394
395
397
397
397
402
402
406
417
418
418
421
422
426
426
427
428
443
446
465
470
470
488
491
493
507
512
512
530
535
535
554
556
559
574
579
579
592
597
597
613
618
634
636
654
659
659
678
683
683
700
703
722
727
727
745
748
750
764
769
769
787
792
792
811
813
816
831
836
836
1234
1238
1239
1
1
8
8
8
17
17
17
18
18
18
18
18
20
20
20
20
22
22
25
25
26
27
27
27
29
29
30
30
33
34
34
35
36
36
36
36
36
36
36
37
38
39
39
39
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
43
43
43
43
43
43
43
45
45
45
45
45
45
46
46
62
62
63
65
65
66
66
66
66
67
67
67
67
67
67
67
67
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
71
71
71
71
71
71
80
81
81
82
82
84
84
84
84
85
85
85
85
92
96
96
97
97
97
97
97
97
97
97
99
99
99
99
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
107
107
107
107
107
107
113
113
114
115
117
117
117
118
118
120
120
120
120
120
120
120
123
128
133
133
133
134
138
138
138
138
138
139
139
139
139
139
139
141
144
146
146
152
152
153
153
155
155
156
156
156
156
162
165
167
168
170
170
170
170
170
171
171
172
172
172
172
173
173
173
174
174
174
176
176
181
185
187
188
188
190
190
190
191
191
191
191
191
191
192
200
202
203
208
208
208
208
208
209
209
213
213
214
214
214
214
215
224
225
227
232
235
237
238
242
242
243
243
247
247
247
247
251
252
256
256
257
274
274
275
279
279
279
279
279
280
281
284
284
285
285
285
285
298
300
303
303
303
305
313
313
315
316
317
317
318
318
318
321
321
321
321
322
322
323
323
328
336
337
338
340
341
341
357
360
360
362
365
370
371
378
380
388
394
398
398
398
403
403
416
416
418
422
426
427
428
429
438
442
444
447
466
471
471
489
492
494
508
513
513
531
536
536
555
557
560
575
580
580
593
598
598
614
617
617
619
628
635
637
655
660
660
679
684
695
699
701
704
723
728
728
746
749
751
765
770
770
788
793
793
812
814
817
832
837
837
1235
1239
1240
5
9
9
15
15
18
19
19
19
21
21
23
23
23
25
25
26
26
26
27
27
29
29
31
31
32
32
35
37
38
40
40
40
40
40
40
41
41
41
41
41
41
41
41
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
45
45
47
47
62
63
63
66
67
67
67
67
68
68
68
68
68
68
68
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
71
71
72
72
72
72
72
72
72
72
72
72
81
83
83
83
83
85
85
93
97
97
98
98
98
98
98
98
98
98
100
100
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
104
104
104
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
107
107
107
109
109
109
113
113
113
114
115
116
118
118
118
119
119
119
121
121
121
121
121
121
121
121
121
122
122
124
129
130
134
134
134
135
139
139
139
139
139
140
140
140
142
143
143
145
147
147
151
154
154
154
154
161
163
166
168
169
171
171
171
171
172
172
173
173
173
173
173
174
174
175
175
177
177
180
180
186
188
189
189
191
191
192
192
192
192
192
192
192
192
196
201
203
203
209
209
209
210
210
214
215
215
215
216
216
216
224
225
227
227
228
233
235
235
236
238
239
243
243
243
244
244
248
248
248
248
252
252
252
256
256
257
257
258
264
274
275
275
276
280
280
280
280
280
281
282
284
285
286
286
286
286
293
293
299
301
304
304
309
314
314
316
316
318
318
319
319
319
322
322
323
323
324
324
329
329
329
337
337
338
340
340
341
342
342
348
348
356
358
361
363
365
365
369
369
371
372
376
377
379
381
387
389
395
397
399
399
399
399
404
404
406
406
417
422
423
427
428
429
429
443
445
448
467
472
472
490
493
495
509
514
514
532
537
537
556
558
561
576
581
581
594
599
599
615
618
620
629
633
636
638
656
661
661
680
685
700
702
705
724
729
729
747
750
752
766
771
771
789
794
794
813
815
818
833
838
838
1236
1240
1241
5
9
10
20
20
20
22
24
27
27
27
27
27
27
28
30
30
30
30
32
32
34
34
35
38
39
39
39
39
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
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
46
46
48
64
65
65
67
67
67
67
67
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
70
70
70
70
71
71
71
73
73
73
73
82
83
83
83
86
86
94
98
98
99
99
99
99
99
99
99
99
99
99
100
101
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
106
106
106
107
107
107
107
107
107
107
109
109
109
109
109
109
114
115
116
117
119
119
119
119
120
120
121
121
121
121
122
122
122
122
122
123
123
125
130
131
135
135
135
136
137
138
138
138
139
139
139
139
139
139
140
140
140
140
140
140
141
141
143
144
144
146
148
148
152
152
152
152
154
154
154
161
161
162
167
169
169
169
171
171
172
172
172
173
173
173
174
174
174
174
174
174
175
175
175
175
175
175
175
175
175
176
178
178
178
181
181
187
189
190
190
190
190
190
192
192
192
192
192
192
193
193
193
193
200
202
209
210
211
211
213
213
214
214
215
216
216
216
217
217
228
228
229
233
236
236
237
239
240
244
244
244
245
245
249
249
249
249
253
257
257
258
258
259
265
265
265
265
274
274
275
276
276
281
281
281
281
281
282
284
284
284
285
285
285
286
287
291
294
294
300
302
303
303
305
305
313
315
315
319
319
320
320
320
321
321
321
321
322
324
324
325
325
330
330
338
341
341
342
343
343
346
349
349
357
359
362
364
370
370
372
377
378
378
378
378
380
382
387
387
388
397
398
400
404
405
405
407
407
416
416
418
424
426
426
426
428
429
444
446
449
468
473
473
494
496
510
515
515
533
538
538
557
559
562
576
577
582
582
595
600
600
616
619
621
634
637
639
657
662
662
681
683
683
686
701
703
706
725
730
730
751
753
767
772
772
790
795
795
814
816
819
834
839
839
1237
1241
1242
5
5
9
11
15
19
20
21
23
24
25
25
25
27
27
27
27
28
29
31
31
32
32
33
33
35
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
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
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
43
43
43
43
43
43
43
43
43
43
45
47
47
49
65
65
65
66
66
66
66
66
66
67
67
68
68
68
68
68
69
69
69
69
70
70
70
70
70
70
70
70
70
71
71
71
71
81
83
83
84
84
85
85
87
87
95
99
99
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
106
106
106
106
107
107
107
107
108
109
109
111
115
116
117
119
119
119
121
121
121
121
121
122
122
123
123
123
123
123
126
131
132
132
136
136
136
137
138
139
139
140
140
140
141
141
141
141
142
142
143
144
145
145
149
149
152
153
153
154
155
155
156
156
160
161
162
163
168
170
170
171
171
171
172
172
173
173
173
173
174
174
174
175
175
175
176
176
176
176
176
177
179
179
179
179
188
190
190
190
190
190
190
191
191
192
192
193
193
193
194
194
194
194
201
201
203
203
209
211
212
212
214
215
216
216
217
217
217
217
217
217
217
218
229
229
234
234
238
240
241
245
245
245
245
246
246
250
250
250
250
254
256
258
258
259
259
266
266
273
274
275
276
277
277
282
282
282
282
282
283
285
285
285
286
286
286
287
288
292
292
303
303
303
304
304
306
314
314
316
316
316
320
320
321
321
322
322
322
325
325
326
326
329
330
330
330
330
331
339
342
342
344
344
347
347
358
358
360
363
365
369
371
371
378
379
379
381
383
386
387
388
389
398
398
399
399
401
405
405
406
406
416
416
417
417
425
427
427
427
429
429
430
445
447
450
469
474
474
495
497
511
516
516
534
539
539
560
563
574
576
577
578
583
583
596
601
601
617
620
622
635
638
640
658
663
663
682
684
687
702
704
707
726
731
731
752
754
768
773
773
791
796
796
817
820
835
840
840
1238
1242
1243
8
8
8
8
10
12
12
15
20
20
24
25
26
27
27
27
27
28
28
28
30
32
32
32
32
34
34
34
34
35
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
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
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
42
42
42
42
43
43
43
43
43
43
43
43
43
43
46
48
50
66
66
66
67
67
67
67
67
67
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
72
82
82
84
85
85
85
85
85
85
88
88
96
99
99
99
99
99
99
100
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
106
106
106
106
106
106
106
108
109
109
117
119
120
120
120
120
121
121
121
121
121
121
122
122
122
123
123
124
127
132
133
133
133
133
137
137
138
139
139
139
140
140
140
140
141
141
141
142
142
142
143
143
145
150
150
153
153
153
156
156
156
156
156
156
161
163
164
169
171
171
172
172
174
174
174
174
174
174
175
175
175
175
175
176
176
176
177
177
177
177
180
180
188
189
191
191
191
191
191
192
192
192
192
192
192
192
192
193
193
194
194
194
201
203
204
204
212
213
213
215
216
217
218
218
218
218
218
219
227
239
241
242
246
246
246
246
246
246
247
247
251
251
255
256
260
260
266
274
276
277
278
278
283
283
283
283
284
286
287
287
287
288
289
304
305
305
307
314
316
317
317
317
321
321
322
322
323
323
326
326
327
327
331
331
332
340
340
345
345
359
359
359
359
361
364
366
369
379
379
382
384
387
389
390
400
400
402
407
407
418
418
426
427
428
429
430
430
431
446
448
451
470
475
475
496
498
512
517
517
535
540
540
561
564
575
577
579
584
584
597
602
602
618
621
623
636
639
641
659
664
664
683
685
688
703
705
708
727
732
732
753
755
769
774
774
792
797
797
818
821
836
841
841
1239
1243
1244
5
9
11
11
11
11
12
15
15
19
20
21
23
25
25
25
26
27
27
29
29
29
29
31
32
32
33
33
34
34
34
34
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
39
39
39
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
45
45
45
46
47
49
51
66
66
66
66
67
68
68
69
69
70
70
70
70
70
70
70
70
71
71
72
72
72
72
73
83
83
85
86
86
86
86
86
86
86
86
89
89
97
97
97
97
99
99
99
99
99
99
100
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
105
105
106
106
107
109
110
113
118
119
119
119
120
120
121
121
122
122
123
123
123
123
125
125
128
128
131
133
133
133
134
134
136
136
138
138
138
138
139
139
139
139
139
140
140
140
141
141
141
142
143
143
144
144
146
151
151
153
154
154
157
157
157
157
157
157
157
157
161
162
164
170
170
172
172
172
172
172
172
172
173
173
173
173
173
173
174
174
174
174
174
175
175
175
175
175
175
176
176
176
176
177
178
178
181
181
181
188
189
190
190
190
191
191
192
192
192
192
193
193
193
193
194
194
195
195
201
203
204
205
205
213
214
214
216
217
217
217
218
219
219
219
219
219
224
233
236
240
242
243
244
246
246
247
247
247
247
248
248
252
252
252
256
256
257
261
261
266
274
275
277
279
279
282
282
284
284
284
284
285
285
286
286
286
287
288
288
288
289
290
294
301
305
306
306
308
314
316
317
318
318
318
320
320
322
322
323
323
324
324
327
327
328
328
330
330
332
332
337
341
346
346
349
357
359
359
360
360
362
365
365
367
369
370
379
380
383
383
385
385
387
388
390
398
399
399
399
401
401
403
407
408
408
414
419
419
427
427
429
429
430
431
431
432
447
449
449
452
452
471
476
476
490
497
499
513
518
518
536
541
541
562
565
575
580
585
585
598
603
603
619
622
624
637
640
640
642
642
660
665
665
684
686
689
704
706
706
709
709
728
733
733
747
754
756
770
775
775
793
798
798
819
822
837
842
842
1240
1244
1245
4
4
5
8
8
12
13
20
20
20
21
22
22
22
22
24
26
26
28
28
29
30
30
32
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
39
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
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
43
43
43
43
43
44
44
44
45
45
45
46
46
50
52
62
62
62
62
65
65
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
69
69
70
70
70
70
70
71
71
71
72
72
73
73
74
84
84
84
86
86
86
86
86
87
87
87
87
90
90
95
95
95
95
95
95
96
96
96
98
98
98
98
98
98
98
99
100
100
100
100
100
100
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
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
105
105
106
106
107
107
108
110
111
113
113
113
114
119
119
120
121
121
121
122
122
123
123
123
124
124
124
129
129
134
134
135
135
137
139
139
139
139
139
140
140
140
141
141
142
142
142
143
144
144
145
145
147
152
152
155
155
155
157
157
157
157
158
158
158
158
161
162
164
164
165
171
171
172
172
172
173
173
173
173
173
174
174
174
174
174
174
175
175
175
176
176
176
177
177
177
177
178
179
179
181
182
182
189
190
190
191
191
192
192
192
193
193
194
194
194
195
195
196
196
201
201
204
205
208
214
215
215
217
218
218
219
220
220
220
224
225
227
227
234
236
238
241
243
244
247
248
248
248
248
249
249
250
250
250
250
252
253
253
257
257
258
262
262
274
275
277
277
278
280
280
283
285
285
285
285
285
285
285
286
286
287
287
287
288
289
290
291
294
300
302
304
306
307
309
314
314
317
318
319
321
321
323
323
324
324
325
325
328
328
329
329
331
337
338
340
340
342
347
347
349
360
361
361
363
365
366
368
370
371
381
386
386
387
388
390
390
391
398
398
398
399
400
400
400
404
407
409
409
415
420
427
427
428
430
430
431
433
448
453
453
472
477
477
491
495
498
500
514
519
519
537
542
542
557
561
563
566
577
581
586
586
599
604
604
620
623
625
638
643
643
661
666
666
685
687
690
705
710
710
729
734
734
748
752
755
757
771
776
776
794
799
799
814
818
820
823
838
843
843
1241
1245
1246
5
5
5
5
5
5
6
13
14
15
20
20
20
21
22
22
25
25
25
27
27
27
27
29
29
30
31
31
32
32
32
32
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
37
37
37
37
37
38
38
38
39
39
39
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
43
43
44
45
46
49
51
51
53
53
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
66
66
66
66
66
66
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
71
71
71
71
71
72
72
73
74
75
84
84
84
86
86
87
87
87
88
88
88
88
89
89
91
91
95
95
95
96
96
96
96
96
96
97
97
97
97
97
97
97
97
97
98
98
98
99
99
99
99
99
99
99
100
101
101
101
101
101
101
101
101
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
106
107
108
108
109
111
112
113
114
115
120
120
120
120
120
121
121
121
122
122
122
125
125
125
130
130
133
133
135
135
138
139
139
140
140
140
140
140
141
141
142
143
143
143
144
145
145
146
146
148
153
153
155
155
155
157
157
158
158
159
159
159
159
165
165
166
172
172
172
172
174
174
174
174
174
174
174
175
175
175
175
175
175
175
176
176
176
177
177
178
179
180
180
183
183
189
189
191
191
191
191
191
192
192
192
192
193
193
193
193
193
195
196
196
197
197
202
202
203
203
203
205
209
209
209
209
216
217
218
219
219
220
221
221
221
224
228
228
239
242
244
245
246
246
248
249
249
250
251
251
254
254
256
258
258
259
263
263
278
278
279
281
281
284
286
286
286
287
288
288
288
289
290
291
292
302
302
305
306
306
307
308
310
315
315
316
316
316
318
320
322
322
322
322
322
325
325
326
326
329
329
330
330
330
332
337
341
341
343
348
348
359
359
361
364
367
369
369
371
372
382
387
387
391
391
392
400
401
401
401
405
410
410
415
415
419
419
421
428
428
429
429
429
429
431
431
434
449
454
454
473
478
478
496
499
501
515
520
520
538
543
543
562
564
567
577
582
587
587
600
605
605
621
624
626
639
644
644
662
667
667
686
688
691
706
711
711
730
735
735
753
756
758
772
777
777
795
800
800
819
821
824
839
844
844
1242
1246
1247
6
6
7
7
12
14
15
20
25
26
30
30
30
30
31
32
33
33
33
33
34
34
35
36
36
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
38
38
38
40
40
40
41
41
41
41
41
41
41
41
41
41
43
43
43
43
43
43
43
43
43
43
44
44
46
46
50
52
52
54
54
63
63
63
63
63
63
63
64
64
64
64
64
64
64
67
67
67
67
68
68
68
68
68
69
69
69
69
69
70
70
70
70
70
70
70
70
71
71
71
71
72
72
72
72
73
73
74
75
76
82
85
85
85
85
86
86
86
86
86
86
87
87
88
88
88
90
90
92
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
100
100
100
100
100
100
100
100
100
100
100
100
101
101
102
102
102
102
102
102
102
103
104
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
106
106
106
106
106
107
107
107
107
108
109
109
110
113
113
114
115
116
116
118
120
120
120
120
121
122
123
123
123
123
124
124
124
124
126
126
126
131
131
134
136
139
139
139
140
140
141
141
141
142
142
142
143
143
143
144
144
144
145
146
146
146
147
149
153
154
154
156
156
156
156
157
157
157
157
157
157
158
158
159
159
166
166
171
171
172
173
173
173
173
174
175
175
175
175
175
176
176
176
176
177
177
177
177
178
178
178
178
179
180
181
181
184
184
189
191
191
191
191
192
193
193
194
194
194
194
195
195
195
195
196
197
197
198
198
204
204
204
204
210
210
217
217
217
218
219
220
221
222
222
222
225
227
229
229
229
236
236
240
243
245
246
247
250
250
251
252
252
252
255
255
257
259
259
259
264
264
279
279
282
282
285
286
287
287
287
288
289
289
290
291
292
293
306
307
307
308
309
311
317
317
317
317
321
323
323
323
326
326
327
327
330
330
330
330
331
331
331
338
340
342
342
342
344
349
349
349
349
360
365
368
370
370
372
372
383
388
388
392
392
399
401
402
402
406
411
411
420
420
422
430
430
430
430
430
432
435
450
455
455
474
479
479
497
500
502
516
521
521
539
544
544
563
565
568
583
588
588
601
606
606
625
627
640
645
645
663
668
668
687
689
692
707
712
712
731
736
736
754
757
759
773
778
778
796
801
801
820
822
825
840
845
845
1243
1247
1248
4
5
7
7
8
8
8
11
11
20
21
22
22
25
27
29
29
29
31
31
31
32
32
32
33
34
34
34
34
35
35
35
36
36
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
39
39
39
39
40
40
40
40
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
44
46
47
51
53
53
55
55
61
61
63
64
65
65
65
65
66
66
71
72
72
73
73
73
73
74
74
75
76
77
83
84
84
85
85
86
86
87
87
88
88
89
91
91
93
95
95
95
95
95
95
97
97
97
98
98
98
98
98
98
98
98
98
98
98
98
98
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
102
103
103
103
103
105
105
105
105
105
105
105
105
105
105
105
105
105
105
106
106
107
107
107
107
107
108
108
108
108
109
109
109
110
110
111
111
114
115
118
120
121
122
123
124
124
124
124
125
125
125
125
127
127
127
132
132
133
133
135
137
140
142
142
143
143
143
143
144
144
144
145
145
145
146
147
148
150
154
155
155
155
155
156
156
157
157
158
158
159
159
164
172
172
174
174
174
174
174
176
176
177
178
178
178
178
179
179
179
179
180
181
182
182
185
185
189
191
193
193
194
194
195
195
195
195
196
196
196
196
198
198
199
199
205
205
210
216
217
218
218
219
220
221
222
223
223
227
228
234
237
237
241
244
246
246
246
247
248
249
249
251
251
252
253
253
256
256
256
258
260
265
265
277
283
283
286
287
287
288
288
291
292
293
294
306
307
308
308
309
312
318
318
322
323
324
327
327
328
328
329
330
331
331
331
332
332
332
340
341
345
347
350
350
350
350
359
359
361
369
369
371
371
384
389
389
390
400
400
407
412
412
419
421
421
431
431
431
433
436
451
456
456
475
480
498
501
503
517
522
522
540
545
564
566
569
584
589
589
602
607
607
626
628
641
646
646
664
669
669
688
690
693
708
713
713
732
737
755
758
760
774
779
779
797
802
821
823
826
841
846
846
1244
1248
1249
4
5
6
9
9
14
14
15
20
22
22
23
23
26
28
29
30
31
32
32
32
32
32
32
32
32
32
33
34
35
35
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
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
41
41
41
41
41
41
41
41
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
43
43
43
43
43
43
43
52
56
56
60
60
62
62
62
62
62
62
62
62
65
65
66
66
66
66
66
66
68
69
69
72
72
72
73
73
73
74
74
74
74
75
76
76
77
78
84
84
85
86
86
86
87
87
88
88
89
89
89
90
92
93
94
96
96
96
96
96
96
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
104
104
105
105
105
105
105
105
106
106
106
107
108
108
108
108
109
109
109
110
110
111
111
112
112
112
115
116
116
119
120
121
122
122
124
126
126
126
126
128
133
133
133
133
134
134
139
140
141
143
144
144
144
144
145
145
146
146
146
147
148
149
151
152
155
155
156
156
156
157
157
157
158
158
159
159
160
160
161
172
172
173
173
175
177
177
177
179
179
179
179
180
180
180
181
181
182
183
183
186
186
190
191
192
193
195
195
197
197
197
197
200
200
205
210
214
215
217
219
219
220
221
222
222
222
223
224
224
228
228
229
229
235
235
242
245
245
246
246
247
247
247
247
248
250
252
252
253
254
254
257
257
257
257
259
259
261
265
266
266
274
284
285
286
287
289
289
292
292
293
294
295
306
308
310
313
318
323
323
323
325
327
327
328
328
329
329
330
332
332
332
333
333
333
341
341
342
342
346
348
348
351
351
359
359
360
360
370
370
370
372
372
372
378
385
387
390
390
405
408
413
413
419
431
434
437
452
457
457
476
479
479
481
499
502
502
504
504
518
523
523
541
546
565
567
570
585
590
590
603
608
608
627
629
642
647
647
665
670
670
691
694
709
714
714
733
736
736
738
756
759
759
761
761
775
780
780
798
803
822
824
827
842
847
847
1245
1249
1250
1
1
4
5
5
5
10
10
11
11
15
22
24
24
29
29
29
32
32
32
32
33
33
33
37
37
37
37
37
38
38
39
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
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
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
43
43
43
53
57
57
61
61
61
61
63
63
63
63
63
63
63
63
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
69
69
69
70
71
73
73
73
74
74
75
75
75
76
77
77
78
79
85
85
85
85
85
86
86
86
87
87
87
90
90
90
91
93
94
95
95
95
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
100
100
100
100
100
100
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
101
101
102
102
102
102
102
102
102
102
102
102
103
103
103
104
104
104
105
105
106
106
107
108
109
109
110
111
111
111
112
112
113
116
117
117
119
119
122
123
123
124
124
124
124
125
129
134
134
135
135
139
140
140
141
142
144
144
144
145
146
147
147
147
148
149
150
152
153
153
153
156
156
156
156
156
157
157
157
157
157
158
158
158
161
161
161
162
164
164
172
173
174
174
175
175
175
176
176
178
180
180
181
182
182
183
184
184
187
187
189
190
190
193
193
194
194
194
195
195
195
195
196
196
201
201
205
215
216
217
218
219
220
220
220
222
223
223
224
225
225
230
230
243
248
248
248
248
249
251
254
255
255
257
258
258
259
260
260
262
266
266
266
267
267
274
275
277
277
285
286
287
287
287
288
289
290
290
290
291
293
293
294
295
296
302
306
307
309
311
311
314
314
318
326
328
328
329
329
330
330
330
331
333
333
333
334
334
343
343
347
352
352
361
361
364
370
371
372
373
373
373
379
379
379
386
387
388
390
390
391
391
402
406
409
414
414
415
419
420
431
435
438
453
458
458
477
480
482
500
505
505
519
524
524
542
544
544
547
566
568
568
571
571
586
591
591
604
609
609
621
628
630
643
648
648
666
671
671
692
695
710
715
715
734
737
739
757
762
762
776
781
781
799
801
801
804
823
825
825
828
828
843
848
848
1246
1250
1251
1
1
1
5
5
6
6
6
11
11
14
14
15
22
22
24
30
33
33
34
34
34
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
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
40
40
40
41
41
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
43
43
43
54
58
58
62
62
62
62
64
64
64
64
65
65
65
65
65
65
65
65
66
66
66
66
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
70
70
70
71
71
71
72
74
74
75
76
76
76
76
77
77
78
78
79
79
80
80
83
85
85
85
85
86
87
88
88
89
89
89
89
91
91
91
94
95
96
96
96
97
97
98
98
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
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
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
103
104
104
104
104
105
105
105
106
106
106
106
106
106
107
107
108
109
110
110
111
112
112
112
112
112
113
113
114
116
116
116
117
118
118
120
120
120
120
123
124
124
124
124
124
125
125
125
125
126
130
131
135
135
136
136
139
140
140
141
142
143
143
144
145
145
146
146
147
148
148
148
148
149
149
150
150
151
151
153
154
154
154
156
156
156
156
157
158
158
158
159
159
160
160
160
160
161
162
162
165
165
174
175
175
175
176
176
176
176
177
177
178
179
181
181
181
182
183
183
184
185
185
185
185
188
188
188
188
189
191
191
191
191
194
194
195
195
195
195
195
196
196
196
196
197
197
202
202
217
218
220
220
220
221
221
221
223
223
224
224
224
225
225
226
226
226
228
229
229
229
231
231
237
244
244
249
249
249
249
250
252
255
256
256
257
259
259
259
260
261
261
263
267
267
268
268
274
278
278
286
288
289
289
291
291
291
292
294
294
294
294
295
295
296
296
297
297
302
307
308
310
315
315
327
329
329
330
330
330
331
331
331
331
331
333
333
334
334
334
334
334
335
335
341
342
342
342
344
344
348
350
353
353
357
362
362
365
369
370
372
372
373
374
374
374
380
380
387
387
391
391
392
392
402
407
407
410
415
415
415
420
421
436
439
454
459
459
478
481
483
501
506
506
520
525
525
543
545
548
567
572
572
587
592
592
605
610
610
622
626
629
631
644
649
649
667
672
672
693
696
711
716
716
735
738
740
758
763
763
777
782
782
800
802
805
824
829
829
844
849
849
1247
1251
1251
1252
5
5
5
5
6
7
11
11
12
12
15
24
24
24
31
32
34
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
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
40
40
41
41
41
41
41
42
42
42
42
42
43
43
55
59
59
61
61
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
65
65
65
65
66
66
66
66
66
66
66
66
67
67
67
67
68
68
68
68
68
69
69
69
69
69
70
70
70
71
71
71
71
72
72
73
75
75
76
79
79
80
80
81
81
83
85
87
88
89
89
90
90
90
90
92
92
93
93
93
95
96
97
97
97
98
98
99
99
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
103
103
103
104
104
105
105
106
106
106
106
106
107
107
107
107
107
107
108
108
109
110
111
111
112
112
112
112
113
113
113
114
114
115
116
117
117
117
118
120
120
124
124
124
124
124
125
125
125
125
126
126
126
126
131
132
136
136
137
137
139
140
140
141
142
142
142
143
143
143
143
144
144
144
144
146
146
147
147
148
151
151
152
152
153
154
154
154
154
154
154
155
156
158
159
159
159
160
160
161
161
161
161
162
163
163
164
166
166
166
174
174
175
175
176
176
177
177
177
177
177
178
178
178
178
178
179
180
180
182
182
182
182
182
183
184
184
185
189
189
189
189
191
191
193
195
195
195
195
195
196
196
196
196
196
197
197
197
197
198
203
203
221
221
221
222
222
222
225
226
226
227
227
227
228
228
228
229
230
230
230
237
245
245
250
250
250
251
253
256
257
257
257
257
260
260
260
261
264
266
267
267
267
267
268
269
269
275
277
279
279
279
283
287
289
290
292
292
292
293
295
295
295
295
297
297
298
298
306
308
309
311
316
316
322
326
328
330
330
331
331
334
334
335
335
335
335
335
336
336
341
341
341
342
343
343
343
349
350
354
354
358
363
370
370
370
373
373
374
375
379
380
380
380
380
381
388
388
390
392
392
392
393
393
408
408
408
408
411
416
416
419
421
422
431
435
437
440
455
460
460
479
482
484
502
507
507
521
526
526
544
546
549
568
573
573
588
593
593
606
611
611
627
630
632
645
650
650
668
673
673
688
692
694
697
712
717
717
736
739
741
759
764
764
778
783
783
801
803
806
825
830
830
845
850
850
1248
1251
1252
1253
5
6
6
6
7
8
13
13
14
14
15
22
22
24
29
32
32
32
34
34
36
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
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
41
41
41
41
41
41
42
42
42
43
43
43
43
43
44
44
56
60
60
62
62
62
62
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
66
66
66
66
68
69
69
69
70
70
71
72
72
73
73
73
74
74
76
76
77
80
80
81
81
82
82
84
85
86
89
91
91
91
91
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
96
97
98
98
98
99
99
100
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
103
103
104
106
106
106
107
107
107
107
107
108
108
108
108
108
108
108
108
109
109
109
110
110
111
112
112
114
114
114
114
115
115
116
117
118
118
118
119
123
123
125
125
125
125
126
126
127
127
127
127
127
127
132
132
132
136
136
137
137
138
138
142
142
143
143
143
143
143
144
144
144
144
144
144
145
145
145
145
145
146
146
146
147
147
148
148
152
152
153
153
155
155
155
155
156
156
157
160
160
160
162
162
162
162
164
165
172
176
176
177
178
178
178
178
178
179
179
179
179
179
179
179
180
180
180
181
181
182
182
183
183
183
184
185
185
186
189
190
190
190
190
194
194
194
196
196
196
196
196
196
197
197
198
198
198
198
198
198
199
204
204
204
222
222
222
223
223
226
227
227
228
228
228
230
231
231
231
245
245
246
249
249
251
251
251
252
252
254
256
256
257
258
258
258
258
259
259
259
261
261
261
265
268
268
269
270
270
277
278
284
288
288
289
289
290
291
293
293
293
293
294
295
295
296
296
298
298
299
299
302
307
309
309
312
317
317
317
327
329
331
331
332
332
335
335
336
336
336
336
337
337
343
344
344
344
350
355
358
358
362
362
364
371
371
371
372
372
372
374
374
376
381
381
382
389
390
391
394
394
402
402
406
408
408
409
409
412
415
417
417
420
422
422
430
436
438
441
456
461
461
480
483
485
503
508
508
522
527
527
545
547
550
569
574
574
575
589
594
594
607
612
628
631
633
646
651
651
669
674
674
693
695
698
713
718
718
737
740
742
760
765
765
779
784
784
802
804
807
826
831
831
846
851
851
1249
1253
1254
4
5
5
5
5
5
5
6
7
7
8
9
11
11
14
14
14
15
24
24
24
32
32
32
32
32
32
33
34
34
35
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
38
38
38
38
38
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
41
43
43
43
43
43
45
45
57
61
61
61
61
62
62
63
63
65
65
65
65
66
66
66
66
67
67
67
67
67
67
67
67
72
73
73
73
74
74
74
74
75
75
77
77
78
81
81
82
82
83
83
84
84
87
88
88
89
89
89
89
90
93
93
93
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
97
98
98
98
99
100
100
100
100
100
100
100
100
101
102
102
102
102
102
103
103
103
103
103
103
104
108
108
108
109
109
109
109
109
109
110
110
111
111
112
112
113
113
114
115
116
116
116
117
118
119
119
119
119
120
123
124
124
125
125
127
127
127
127
127
127
128
128
128
128
133
137
137
138
138
139
143
144
144
144
145
145
145
145
145
146
146
146
146
147
147
147
147
148
148
148
149
153
153
154
154
154
154
155
155
156
156
156
158
159
159
160
160
160
160
161
161
161
165
165
166
166
172
173
174
175
177
177
179
179
179
180
180
180
180
180
180
181
181
182
182
183
184
184
184
184
185
186
186
187
187
190
190
191
191
191
191
193
194
195
195
195
196
196
198
198
198
198
198
198
199
199
199
199
200
205
205
205
205
205
205
209
220
223
224
224
227
228
228
229
229
229
229
231
232
232
247
250
250
252
252
252
255
257
257
258
259
259
260
260
260
260
262
262
266
267
267
269
269
271
271
278
278
279
279
287
289
289
290
290
291
292
292
294
294
294
294
295
296
297
297
299
299
300
300
306
308
313
318
318
318
318
318
318
322
328
330
330
332
332
333
333
333
333
337
337
337
337
338
338
342
344
345
345
351
354
354
356
363
363
365
372
373
373
373
373
375
377
380
380
382
382
390
391
391
392
392
395
395
400
403
403
409
410
410
413
418
418
419
421
431
431
431
431
437
439
442
457
462
462
481
484
486
504
509
509
523
528
528
546
548
551
570
575
575
576
590
595
595
608
611
611
613
629
632
634
647
652
652
670
675
675
694
696
699
714
719
719
738
741
743
761
766
766
780
785
785
803
805
808
827
832
832
847
852
852
1250
1254
1255
5
6
6
7
8
8
9
10
14
14
14
15
15
15
15
15
15
22
22
24
24
24
24
30
30
32
32
32
32
33
33
33
33
33
33
34
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
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
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
44
46
46
58
60
60
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
64
64
64
64
64
64
65
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
68
68
68
68
69
70
73
73
73
74
74
74
75
75
76
76
78
78
79
82
82
83
83
84
84
85
85
85
85
88
89
89
89
89
89
89
89
90
90
90
90
90
90
90
91
93
93
93
93
93
93
93
93
93
94
94
94
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
98
99
100
100
100
101
102
103
103
103
103
103
103
103
103
103
103
103
103
104
104
104
105
106
107
108
108
108
108
109
109
109
110
110
110
111
111
112
112
113
114
114
114
114
116
117
117
117
117
117
117
118
118
119
121
121
123
123
124
125
125
125
125
127
127
128
128
129
129
129
129
134
136
138
138
139
139
143
144
144
144
144
144
145
145
145
146
146
147
147
148
148
149
149
149
150
154
154
155
155
155
156
156
156
156
157
159
160
160
160
160
161
161
161
161
162
162
167
167
172
173
175
175
175
175
175
176
178
179
179
179
179
180
180
180
181
181
181
182
182
182
182
183
183
184
186
187
187
188
188
190
192
192
192
192
194
194
194
194
195
196
196
196
196
196
196
198
198
199
199
200
200
200
200
201
206
206
206
206
210
210
210
217
224
225
225
228
229
229
230
230
230
230
230
248
249
251
251
253
253
256
258
258
259
260
260
260
260
261
261
263
263
263
263
267
268
272
272
280
280
288
288
290
290
292
295
295
295
295
295
295
296
297
300
300
301
301
307
307
309
309
314
319
319
319
319
323
323
323
329
330
333
333
334
334
334
338
338
338
338
339
339
343
343
352
355
357
362
364
364
373
374
374
376
376
378
378
381
391
393
393
396
396
401
401
408
408
410
414
419
420
420
422
422
432
432
438
440
443
458
463
463
482
485
487
505
510
510
524
529
529
547
549
552
571
576
576
576
591
596
596
609
612
614
630
633
633
635
635
648
653
653
671
676
695
697
700
715
720
720
739
742
744
762
767
767
781
786
786
804
806
809
828
833
833
848
853
853
1251
1255
1256
5
5
5
5
8
9
9
10
11
11
11
15
16
16
16
16
24
24
24
24
25
25
30
30
30
32
32
32
32
32
33
33
33
34
34
35
35
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
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
39
39
39
39
39
39
39
39
39
39
39
39
39
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
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
45
45
47
47
59
61
61
61
61
61
61
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
69
69
69
70
70
70
73
74
74
74
74
75
75
75
79
79
80
83
83
84
84
85
85
85
85
89
89
89
89
90
90
90
90
90
90
90
91
91
91
91
91
91
91
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
99
100
100
100
101
103
103
103
103
103
103
104
105
105
105
105
105
106
106
106
106
106
107
107
107
107
108
108
108
108
109
109
109
109
109
110
110
110
111
113
113
114
117
118
118
118
118
122
122
122
124
124
125
125
125
125
125
126
126
126
128
128
129
129
135
136
140
140
143
143
143
144
144
144
144
145
145
145
145
145
146
146
146
148
150
150
150
151
154
155
155
156
156
156
156
156
158
160
160
160
160
161
161
161
161
162
162
162
162
163
165
166
166
166
168
168
175
176
176
176
176
177
177
178
178
178
179
179
179
179
180
180
180
180
181
181
181
182
183
184
184
187
188
188
189
189
193
193
193
193
194
195
195
196
196
196
196
196
196
197
197
197
197
197
199
199
200
200
202
206
207
207
211
211
217
218
220
220
225
226
226
229
230
230
231
231
231
235
249
249
251
254
254
255
257
259
259
260
261
264
264
264
264
267
268
269
273
273
278
279
279
279
281
281
291
291
293
296
296
296
296
296
297
301
301
302
302
307
309
310
310
315
319
320
320
324
324
330
330
331
333
333
334
334
335
335
335
339
339
339
339
340
340
348
353
356
358
362
374
374
379
379
380
382
391
392
392
392
392
394
394
397
397
409
415
420
420
422
423
423
432
439
441
444
459
464
464
483
486
488
506
511
511
525
530
530
548
550
553
572
577
577
592
597
597
610
613
615
631
636
636
649
654
654
672
677
696
698
701
716
721
721
740
743
745
763
768
768
782
787
787
805
807
810
829
834
834
849
854
854
1252
1256
1257
4
5
5
5
6
6
6
6
6
8
9
10
11
12
17
17
17
17
22
26
26
30
32
32
32
32
32
32
33
33
33
34
34
35
36
36
36
36
36
36
36
37
37
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
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
43
43
43
43
43
43
44
46
46
46
46
48
48
60
62
62
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
66
66
74
75
75
75
75
76
76
76
80
80
81
84
84
85
85
86
86
88
88
90
90
90
90
91
91
91
91
91
92
92
92
92
92
92
92
92
92
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
99
99
101
102
106
106
106
106
107
107
107
108
109
110
110
110
110
110
111
111
111
112
114
114
115
118
119
119
119
119
119
123
123
123
124
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
129
129
132
136
136
137
141
141
145
146
146
146
146
146
147
147
147
148
151
151
151
152
154
154
155
156
156
157
157
159
159
159
161
161
161
161
161
161
162
162
163
163
163
163
163
163
164
165
165
165
166
167
167
167
177
177
177
177
178
178
180
181
181
181
181
182
182
182
182
182
183
184
185
185
185
188
188
189
189
190
190
194
194
194
194
194
195
196
197
197
197
197
197
197
197
197
198
198
198
198
198
198
198
198
198
198
200
200
203
206
208
208
210
211
211
211
211
212
217
221
221
226
227
230
231
231
232
232
232
232
236
245
249
250
250
255
255
256
258
260
260
261
261
265
265
265
265
267
267
268
269
274
274
278
278
278
279
280
280
280
290
292
292
294
295
295
297
297
297
297
297
298
302
302
303
303
307
309
310
311
311
316
319
321
321
323
324
324
324
324
325
330
331
334
334
335
335
336
336
336
340
340
340
340
341
341
345
349
354
357
358
359
362
363
374
375
380
380
380
380
381
391
391
391
392
393
393
393
393
398
398
403
408
408
410
416
418
418
420
421
422
423
424
424
432
440
442
442
445
445
460
465
465
487
489
507
512
512
526
531
531
549
551
554
573
577
577
578
578
593
598
598
611
614
616
632
637
637
650
655
655
673
675
675
678
697
699
699
702
702
717
722
722
744
746
764
769
769
783
788
788
806
808
811
830
835
835
850
855
855
1253
1257
1258
4
5
5
5
5
5
6
7
7
7
9
9
10
10
11
11
12
13
16
16
17
18
18
26
27
32
33
34
34
34
34
34
35
35
35
37
37
37
37
37
37
37
37
39
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
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
43
43
43
45
47
47
48
48
49
49
61
61
61
61
61
62
62
63
63
63
63
63
63
64
64
65
65
65
65
65
65
65
65
65
67
67
73
74
75
76
76
76
77
77
81
81
82
84
84
85
85
86
86
87
87
88
89
89
90
90
92
92
92
92
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
99
99
100
100
100
100
100
100
100
100
100
100
100
100
100
100
101
102
103
105
106
106
106
106
107
108
108
108
108
109
109
109
110
111
111
111
111
112
112
113
113
115
115
116
116
119
119
120
120
120
120
124
124
124
124
124
126
127
128
128
128
128
128
128
128
128
128
128
132
137
137
138
142
142
144
145
146
147
147
147
147
148
148
152
152
152
153
153
154
155
155
155
156
157
157
158
158
159
160
160
160
161
161
162
163
163
163
163
163
163
164
164
164
164
165
167
168
168
168
176
177
177
177
177
179
179
179
180
181
182
182
182
182
182
183
183
183
183
184
186
189
189
190
190
191
191
194
194
195
195
195
195
195
197
197
198
198
199
199
199
199
199
199
199
199
199
199
204
209
209
212
212
213
218
220
222
222
222
227
228
231
232
232
232
233
233
233
237
237
245
250
251
251
256
256
257
259
259
261
261
262
262
266
266
266
266
266
267
268
269
270
275
275
280
281
281
281
290
293
295
295
295
296
296
298
298
298
298
299
303
303
304
304
307
307
310
311
317
322
322
325
325
326
331
332
333
335
335
335
336
336
337
337
337
341
341
341
341
342
342
345
350
350
355
358
358
360
363
364
376
379
380
381
381
381
382
393
394
394
394
394
399
399
403
408
408
409
409
417
419
420
420
422
423
424
441
446
446
461
466
466
488
490
508
513
513
527
532
532
552
555
574
578
578
578
578
579
579
594
599
599
612
615
617
633
638
638
651
656
656
674
676
679
698
703
703
718
723
723
745
747
765
770
770
784
789
789
809
812
831
836
836
851
856
856
1254
1258
1259
5
7
8
8
8
10
11
11
12
13
14
17
17
17
17
19
22
22
27
32
32
32
32
32
32
32
32
34
34
35
35
35
35
35
37
37
37
37
37
37
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
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
44
46
49
49
50
50
60
60
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
74
74
75
75
82
82
83
84
86
86
87
87
88
88
88
88
89
90
90
90
90
92
92
93
93
93
93
93
93
93
94
94
94
94
96
96
96
96
96
96
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
99
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
102
103
104
104
104
105
105
105
106
107
107
107
108
109
109
110
110
112
116
116
117
117
120
121
121
121
121
124
124
125
125
125
125
125
125
127
128
129
129
129
129
136
138
138
139
143
143
145
145
146
146
148
153
153
153
154
154
155
156
157
158
158
159
159
159
159
160
161
161
161
161
161
163
163
163
164
164
165
165
165
165
166
166
168
169
169
176
176
176
177
178
178
178
180
180
181
181
184
184
185
187
190
190
191
191
192
192
195
195
195
195
196
196
196
196
196
196
196
198
198
199
200
200
200
200
205
210
210
211
211
213
213
220
221
228
229
232
233
233
234
234
234
238
238
238
238
249
251
252
252
257
257
258
262
262
263
263
267
267
267
267
267
269
270
271
276
276
279
281
282
282
294
296
297
297
299
299
299
299
300
304
304
305
305
308
308
309
309
309
311
318
323
323
324
324
326
326
333
333
334
337
337
338
338
338
342
342
342
342
343
343
351
351
351
351
356
359
361
362
364
365
377
380
382
382
382
383
392
394
395
395
395
400
400
410
410
418
420
421
421
422
422
422
423
424
442
447
447
462
467
467
489
491
509
514
514
528
533
533
553
556
575
578
578
578
578
579
579
580
580
595
600
600
613
616
618
634
639
639
652
657
657
675
677
680
699
704
704
719
724
724
746
748
766
771
771
785
790
790
810
813
832
837
837
852
857
857
1255
1259
1260
5
5
8
9
9
11
11
11
11
12
12
13
14
15
17
18
18
18
20
22
27
27
28
31
32
33
33
33
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
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
41
41
43
43
43
43
43
43
43
45
45
46
46
47
50
50
51
51
61
61
61
61
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
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
66
66
66
66
66
67
67
67
67
67
67
67
67
67
83
83
84
87
87
88
88
89
89
89
89
89
89
89
90
90
90
90
90
91
91
91
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
99
99
101
101
101
101
101
101
101
101
101
101
101
101
102
103
104
104
105
105
105
105
107
108
108
108
109
109
113
117
117
118
118
119
119
121
122
122
122
122
123
125
125
125
125
126
126
126
126
126
126
126
128
129
129
132
137
139
139
139
144
144
147
149
154
154
154
154
155
155
157
159
159
160
160
160
160
161
161
161
161
161
162
162
162
162
164
164
164
165
165
167
167
167
177
177
178
179
179
179
180
185
185
186
188
191
191
192
192
193
193
196
196
197
197
197
197
197
197
197
197
197
197
197
199
200
200
205
206
211
211
212
221
221
222
222
226
229
230
232
232
233
234
234
235
235
235
236
238
238
239
239
245
250
252
252
253
258
258
259
260
263
263
264
264
267
268
268
268
268
268
270
272
277
277
280
280
290
290
293
295
297
298
298
300
300
300
300
301
305
305
306
306
310
310
310
310
318
319
324
324
325
334
334
334
335
335
338
338
339
339
339
343
343
343
343
344
344
345
345
349
351
351
352
352
357
358
360
362
363
365
365
373
378
380
381
383
383
383
393
393
396
401
401
403
403
406
411
411
419
421
423
423
423
423
424
431
443
448
448
463
468
468
483
490
492
510
515
515
529
534
534
554
557
576
579
579
580
580
581
581
596
601
601
614
617
619
635
640
640
653
658
658
676
678
681
700
705
705
720
725
725
740
747
749
767
772
772
786
791
791
811
814
833
838
838
853
858
858
1256
1260
1261
1
5
5
6
7
9
9
10
12
13
13
14
14
15
16
17
17
18
19
19
19
19
19
21
22
26
26
26
28
29
29
32
32
32
32
32
32
33
33
33
35
36
36
36
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
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
40
40
42
44
46
47
47
47
48
52
52
63
63
63
63
63
63
63
63
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
65
65
65
66
68
76
76
76
77
77
77
84
84
85
86
86
88
88
89
89
89
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
95
95
95
95
95
98
98
98
98
98
98
98
98
98
101
101
101
101
101
101
103
104
105
105
106
106
106
108
109
109
110
110
111
111
111
112
112
112
114
117
118
118
119
119
120
120
122
123
123
123
123
126
127
127
127
127
127
127
127
127
128
128
129
129
136
138
140
145
145
147
147
147
148
148
148
148
148
148
148
150
154
155
155
155
155
156
157
157
158
160
160
160
161
161
162
162
162
162
162
162
162
163
163
163
163
163
163
163
163
163
165
165
165
168
175
177
178
178
179
180
180
181
182
182
182
183
183
183
186
187
189
192
192
193
193
194
194
198
198
198
198
198
198
198
198
198
198
199
199
200
200
206
206
206
206
207
211
212
212
213
223
223
227
230
230
231
231
233
233
234
235
235
236
236
236
239
240
240
249
251
254
259
259
260
261
261
261
261
264
264
265
265
267
268
269
269
269
269
270
270
271
273
278
278
288
291
291
292
294
296
296
298
299
301
301
301
301
302
306
306
307
307
311
311
319
319
319
319
320
324
325
325
326
335
336
336
339
339
340
340
340
343
344
344
344
344
345
345
346
346
352
353
353
358
361
362
363
364
374
374
374
374
379
380
381
383
383
384
384
384
397
401
402
402
404
404
407
412
420
422
424
424
425
432
432
432
432
444
449
449
464
469
469
484
488
491
493
511
516
516
530
535
535
549
553
555
558
577
580
580
582
582
597
602
602
615
618
620
636
641
641
654
659
659
677
679
682
701
706
706
721
726
726
741
745
748
750
768
773
773
787
792
792
806
810
812
815
834
839
839
854
859
859
1257
1261
1262
1
1
5
5
8
9
10
11
11
14
15
15
16
17
17
17
17
19
19
20
22
26
27
29
29
29
29
29
32
32
32
33
33
33
33
33
33
34
34
34
35
35
35
36
36
36
36
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
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
39
39
39
39
39
41
42
42
42
43
43
43
43
43
45
45
48
48
48
49
53
53
61
61
61
61
61
62
62
63
63
63
63
64
64
64
64
65
65
65
65
65
65
65
65
65
67
67
69
69
74
75
76
77
77
77
78
78
85
85
86
87
87
87
87
87
89
89
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
97
97
97
98
101
101
101
101
101
101
101
101
101
101
101
101
104
105
105
106
107
107
107
107
109
109
109
109
110
111
111
111
112
112
112
113
113
115
118
118
119
119
120
120
123
124
124
124
124
125
125
127
128
128
128
128
129
129
129
129
129
129
129
129
137
137
139
139
141
145
146
146
146
147
148
148
148
149
149
149
149
151
156
156
156
157
158
158
159
160
161
161
162
162
162
163
164
164
164
164
164
164
164
164
164
164
164
166
169
169
176
176
178
178
180
181
181
181
182
183
183
183
184
184
185
185
187
188
190
193
193
194
194
195
195
198
199
199
199
199
199
199
200
200
200
200
200
200
200
200
207
207
208
211
211
212
213
213
221
222
222
222
224
224
231
231
231
232
232
235
236
236
237
237
237
238
238
240
250
250
252
252
255
260
260
261
262
262
265
265
266
266
270
270
270
270
271
271
272
274
279
279
282
289
289
294
294
297
297
298
298
299
300
302
302
302
302
303
307
307
308
308
311
320
320
321
324
324
325
326
326
334
335
335
335
336
337
337
340
340
341
341
341
344
344
345
345
345
345
346
346
351
351
353
362
363
363
364
365
365
375
375
380
384
384
385
385
385
395
398
402
402
403
403
407
407
411
411
413
421
423
424
426
433
433
445
450
450
465
470
470
489
492
494
512
517
517
531
536
536
554
556
559
578
583
583
598
603
603
619
621
637
642
642
655
660
660
678
680
683
702
707
707
722
727
727
746
749
751
769
774
774
788
793
793
811
813
816
835
840
840
855
860
860
1258
1262
1263
1
4
5
7
8
8
8
8
9
9
10
11
11
12
12
12
15
16
16
17
17
21
23
26
26
29
30
32
32
32
32
32
32
32
34
34
34
35
35
35
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
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
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
44
44
45
46
46
49
50
50
50
50
50
54
54
60
60
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
68
68
70
70
75
75
76
76
86
86
87
88
88
88
88
88
89
89
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
94
94
94
94
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
101
101
101
101
101
101
105
105
105
105
106
107
108
108
109
110
110
110
110
110
111
111
116
120
120
121
121
124
125
125
125
125
126
128
129
129
130
130
130
130
137
139
140
140
142
146
146
147
147
147
147
149
152
157
157
157
158
159
159
160
160
162
162
163
163
163
164
165
165
165
165
165
167
169
170
181
181
182
182
186
186
188
189
191
194
194
195
195
196
196
198
199
200
200
200
200
201
201
201
201
207
209
210
211
212
213
214
214
221
221
221
222
223
223
223
232
233
233
236
237
237
238
238
238
239
250
252
253
253
256
261
261
262
262
266
266
267
267
271
271
271
271
272
272
275
280
280
282
298
298
299
299
300
301
303
303
303
303
304
308
308
309
309
311
320
322
323
324
325
326
327
327
334
334
334
335
336
336
336
337
341
341
342
342
342
346
346
346
346
347
347
352
363
363
365
365
366
366
375
381
385
385
386
386
395
399
404
404
412
412
414
422
424
424
427
433
446
451
451
466
471
471
490
493
495
513
518
518
532
537
537
555
557
560
578
579
584
584
599
604
604
620
622
638
643
643
656
661
661
679
681
684
703
708
708
723
728
728
747
750
752
770
775
775
789
794
794
812
814
817
836
841
841
856
861
861
1259
1263
1264
1
5
5
5
9
10
11
11
11
11
11
12
12
12
13
15
17
17
18
18
19
19
20
22
22
24
24
30
31
32
32
33
33
33
33
33
33
35
35
35
35
35
35
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
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
41
41
41
41
41
41
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
45
45
46
47
47
51
51
51
55
55
61
61
61
61
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
69
69
71
71
86
87
87
87
87
87
88
88
88
88
89
89
89
89
90
90
90
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
96
96
96
96
96
96
97
97
97
97
97
97
100
106
106
108
109
109
109
109
109
110
111
111
111
117
120
121
121
122
122
125
125
125
126
126
126
126
127
127
128
130
130
130
130
137
139
140
141
141
143
148
148
149
153
157
158
158
158
159
161
161
162
162
162
163
163
164
164
164
165
165
166
168
171
178
180
180
180
185
187
187
190
192
195
195
196
196
197
197
198
199
201
201
201
201
201
201
207
210
211
213
214
215
215
223
224
224
224
233
233
234
234
237
238
238
238
238
239
239
239
240
250
252
253
254
254
257
262
262
262
263
267
267
268
268
270
272
272
272
272
276
281
281
291
298
299
299
300
300
301
304
304
304
304
305
309
309
310
310
320
323
324
326
327
328
328
336
337
337
337
338
342
342
343
343
343
346
347
347
347
347
348
348
351
351
353
363
364
365
366
366
367
367
375
382
383
387
387
400
404
405
405
411
413
413
423
425
428
433
447
452
452
467
472
472
491
494
496
514
519
519
533
538
538
556
558
561
578
578
579
580
585
585
600
605
605
621
623
639
644
644
657
662
662
680
682
685
704
709
709
724
729
729
748
751
753
771
776
776
790
795
795
813
815
818
837
842
842
857
862
862
1263
1264
1265
4
5
5
6
8
8
12
12
13
13
13
14
16
17
18
19
19
19
20
20
21
23
23
25
25
27
29
29
31
32
32
32
33
33
33
34
35
35
35
35
35
35
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
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
40
40
41
41
41
41
41
41
41
41
41
41
41
41
44
47
48
48
52
52
52
52
52
55
55
56
56
63
63
63
63
63
63
63
63
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
65
65
65
68
72
72
77
77
77
78
78
78
87
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
91
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
95
95
95
98
98
98
98
98
98
100
100
101
105
107
107
109
109
109
110
110
110
111
112
112
112
112
112
113
113
113
118
120
122
122
123
123
125
125
126
126
126
127
127
127
127
128
128
128
128
129
129
130
130
131
131
137
137
140
141
144
148
148
148
149
149
149
149
149
154
154
159
159
159
160
163
163
163
163
164
164
164
164
165
165
165
165
169
169
169
172
178
178
180
181
181
183
183
183
184
184
184
185
191
193
196
196
197
197
198
198
199
199
199
199
200
200
201
201
202
202
202
202
211
211
212
214
216
216
222
224
225
225
233
234
235
235
238
238
238
238
239
239
239
239
240
240
240
240
250
250
253
254
258
263
263
264
267
268
268
269
269
273
273
273
273
277
282
282
282
282
291
298
300
300
302
305
305
305
305
306
310
310
311
311
324
324
325
327
329
329
335
337
338
338
339
343
343
344
344
344
346
348
348
348
348
349
349
351
351
352
352
358
363
363
365
366
367
367
380
383
388
388
395
395
401
404
406
406
411
426
429
448
453
453
468
473
473
492
495
495
497
497
515
520
520
534
539
539
557
559
562
578
579
580
581
586
586
601
606
606
615
622
624
640
645
645
658
663
663
683
686
705
710
710
725
730
730
749
752
752
754
754
772
777
777
791
796
796
814
816
819
838
843
843
858
863
863
1259
1264
1265
1266
4
4
5
5
5
6
7
9
13
13
14
14
15
15
16
16
17
19
19
20
21
21
22
24
24
26
26
26
27
29
29
29
30
30
32
32
32
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
45
49
49
49
49
53
56
56
57
57
61
61
61
61
62
62
63
63
63
63
64
64
64
64
65
65
65
65
65
65
65
65
69
73
73
75
76
77
78
78
78
79
79
88
89
89
89
89
90
90
90
90
90
90
90
90
90
90
91
92
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
99
99
99
99
99
99
100
100
100
101
102
106
106
108
108
108
109
110
110
110
111
111
112
113
113
113
114
114
119
123
123
124
124
127
127
127
128
128
128
128
129
129
130
130
130
130
130
130
130
130
132
132
138
138
139
139
139
141
145
146
147
148
149
149
149
150
150
150
150
154
155
155
157
157
160
160
160
161
164
164
165
165
165
165
165
165
165
165
165
165
166
166
167
170
170
170
173
179
179
181
181
182
183
184
184
184
185
185
185
186
192
194
197
197
197
198
198
199
199
200
200
201
201
201
201
201
201
201
201
203
203
203
203
211
212
212
214
214
215
217
217
223
223
235
236
236
240
240
240
240
241
241
241
241
251
251
252
252
252
254
259
264
264
265
267
268
269
269
270
270
270
270
274
274
274
274
278
280
283
283
283
283
294
298
299
301
301
303
303
306
306
306
306
306
307
310
311
311
312
312
324
325
325
327
327
328
330
330
336
336
340
344
344
345
345
345
349
349
349
349
350
350
353
353
359
363
364
364
365
365
365
366
367
368
380
381
383
383
384
389
389
393
396
396
402
407
407
407
411
412
423
427
430
449
454
454
469
474
474
493
498
498
516
521
521
535
540
540
558
560
560
563
563
580
581
582
587
587
602
607
607
616
620
623
625
641
646
646
659
664
664
684
687
706
711
711
726
731
731
750
755
755
773
778
778
792
797
797
815
817
817
820
820
839
844
844
859
864
864
1265
1266
1267
4
5
5
6
7
8
10
12
14
15
15
16
17
19
19
20
21
21
23
27
27
27
29
30
30
31
31
31
32
32
32
32
32
32
32
33
33
33
34
34
34
34
35
35
35
36
36
36
36
36
36
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
41
41
41
41
41
41
43
43
43
43
43
43
46
48
48
50
50
50
53
53
54
57
57
58
58
60
60
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
70
74
74
76
76
77
77
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
92
93
93
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
101
102
103
107
109
109
111
111
112
112
112
120
120
120
123
124
124
125
125
128
128
128
129
129
129
129
129
131
131
131
131
133
133
140
140
140
140
146
147
147
148
148
151
151
154
156
158
158
161
161
161
162
164
166
166
166
166
166
166
167
167
168
168
171
174
181
182
182
183
183
186
187
193
195
198
198
198
198
198
198
199
199
200
200
200
202
202
202
202
204
204
204
204
213
215
215
216
218
218
233
233
236
236
237
237
241
241
241
241
242
242
242
242
253
253
253
253
260
265
265
266
267
270
270
271
271
271
271
275
275
275
275
279
281
281
284
284
294
299
300
302
302
307
307
307
307
307
308
311
311
311
311
312
312
313
313
326
328
328
329
331
331
341
345
345
346
346
346
346
346
349
350
350
350
350
351
351
354
354
364
366
366
366
366
367
369
380
384
384
385
390
390
394
394
403
407
408
408
412
413
424
424
424
424
428
431
450
455
455
470
475
475
494
499
499
517
522
522
536
541
541
559
564
564
576
581
583
588
588
603
608
608
621
624
626
642
647
647
660
665
665
685
688
707
712
712
727
732
732
751
756
756
774
779
779
793
798
798
816
821
821
840
845
845
860
865
865
1266
1267
1268
4
4
5
7
8
8
9
11
11
11
16
17
17
18
18
20
21
21
21
21
21
22
24
27
28
28
29
29
29
30
30
31
32
32
32
32
32
32
32
32
33
33
33
34
34
34
36
36
36
36
36
36
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
39
40
40
40
40
40
40
40
47
51
51
51
51
54
54
54
55
57
57
59
59
61
61
61
61
64
64
64
64
64
64
64
64
66
66
66
66
67
67
67
67
71
75
75
89
89
89
89
89
89
89
89
89
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
92
92
92
93
93
94
95
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
98
102
103
108
110
110
110
110
112
113
118
121
121
121
124
125
125
126
126
128
129
129
129
130
130
130
130
131
131
134
134
141
141
147
152
152
155
157
157
159
159
159
162
162
162
163
163
164
166
166
166
167
167
168
168
170
172
175
181
181
181
185
187
188
194
196
199
199
199
199
199
200
200
200
201
201
202
202
205
205
205
205
214
216
216
219
225
231
234
234
237
237
238
238
242
242
242
243
243
243
243
254
254
261
266
266
267
268
270
271
271
272
272
272
272
272
276
276
276
276
280
285
298
300
301
303
303
308
308
308
308
308
309
312
312
313
313
314
314
327
329
329
332
332
338
342
344
346
346
347
347
347
347
347
350
351
351
351
351
352
355
365
367
367
368
370
381
383
385
385
385
386
391
391
404
409
409
411
413
414
423
425
425
427
429
432
451
456
456
471
476
495
500
500
518
523
523
537
542
560
565
565
577
581
582
584
589
589
604
609
622
625
627
643
648
648
661
666
666
680
684
686
689
708
713
713
728
733
752
757
757
775
780
780
794
799
817
822
822
841
846
846
861
866
1267
1268
1269
4
5
5
5
5
8
9
10
13
13
14
14
15
17
19
19
21
21
22
22
23
25
27
29
29
29
30
30
31
31
31
32
32
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
48
52
52
55
55
55
56
58
58
58
58
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
62
62
62
62
62
62
62
62
64
64
64
64
72
76
76
78
79
87
87
87
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
92
92
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
93
93
93
93
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
95
96
96
97
97
97
97
97
97
97
97
97
97
97
97
97
97
98
98
99
99
99
108
109
110
111
111
111
112
113
114
114
119
119
122
124
124
126
126
127
127
128
128
129
129
129
129
130
130
131
131
131
131
131
131
131
131
131
131
135
135
141
148
148
149
150
153
153
157
158
158
163
163
163
164
164
164
164
164
166
166
166
166
166
166
168
168
169
169
170
171
173
176
176
179
181
181
182
182
184
185
186
188
188
195
197
199
200
200
200
200
200
200
201
201
202
202
202
202
202
202
202
202
206
206
206
206
206
214
215
218
218
220
225
232
232
237
237
238
239
239
241
241
243
243
243
244
244
244
244
254
261
262
267
267
268
270
271
272
272
273
273
277
277
277
277
281
283
286
289
294
299
301
301
304
304
309
309
309
309
309
310
312
314
314
315
315
319
327
328
333
333
338
343
345
345
347
347
348
348
348
350
350
351
351
352
352
352
352
353
354
354
356
366
367
369
371
374
383
384
387
392
392
396
402
405
407
410
410
412
414
414
425
428
430
432
433
452
457
457
472
475
475
477
496
501
501
519
524
524
538
543
561
566
566
577
581
583
585
590
590
605
608
608
610
623
626
628
644
649
649
662
667
667
685
687
690
709
714
714
729
732
732
734
753
758
758
776
781
781
795
800
818
823
823
842
847
847
862
865
865
867
1268
1269
1270
4
4
5
6
9
10
11
11
11
13
14
14
15
18
18
19
21
21
21
22
23
23
24
26
27
29
29
29
30
30
30
30
31
32
32
32
32
32
32
32
32
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
38
38
38
38
38
38
38
38
38
38
38
38
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
40
42
42
42
42
42
42
47
49
52
53
53
55
55
56
57
59
59
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
73
77
77
78
78
78
79
79
79
88
88
88
88
88
88
88
88
88
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
96
96
96
96
96
97
97
97
97
97
97
97
98
98
99
99
99
99
100
109
109
110
112
112
113
113
113
114
114
114
115
115
123
127
127
128
128
129
129
130
130
131
131
132
132
132
132
132
132
136
136
141
149
149
149
149
149
149
149
150
150
150
154
154
158
158
159
159
159
164
164
164
165
165
165
167
167
167
167
169
170
170
172
174
177
177
180
180
184
184
184
185
185
185
185
187
196
198
199
201
201
201
201
202
202
203
203
203
203
203
203
207
207
207
207
207
211
216
219
221
239
240
240
242
242
244
244
245
245
245
254
262
262
262
263
268
268
269
271
271
272
272
273
273
274
274
278
278
282
283
284
284
287
290
298
300
305
305
310
310
310
310
310
311
312
315
316
320
320
320
324
329
334
334
344
348
348
349
349
349
352
353
353
354
355
355
357
367
367
370
370
372
372
375
375
375
384
384
385
385
388
393
393
396
403
406
411
411
411
413
425
429
431
433
433
433
434
453
458
458
473
476
478
497
502
502
520
525
525
539
541
541
544
562
567
567
577
581
582
584
586
591
591
606
609
611
624
627
627
629
629
645
650
650
663
668
668
686
688
691
710
715
715
730
733
735
754
759
759
777
782
782
796
798
798
801
819
824
824
843
848
848
863
866
868
1269
1270
1271
4
5
6
7
10
11
12
14
14
15
15
15
18
19
19
19
19
20
21
21
21
21
22
23
24
25
27
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
33
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
35
35
35
35
35
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
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
43
43
43
43
43
43
50
53
54
54
56
58
60
60
61
61
61
61
61
61
61
61
61
61
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
74
76
77
78
78
79
79
79
79
80
80
80
80
85
85
85
85
85
85
86
86
86
89
89
89
89
89
89
89
89
89
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
94
94
94
94
94
94
94
94
94
94
95
95
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
98
99
99
99
99
100
100
100
100
101
111
111
112
112
112
114
114
114
114
115
115
115
115
116
116
121
124
128
128
128
129
129
130
130
130
130
130
131
131
131
131
132
132
132
132
132
132
132
132
132
133
133
133
133
137
137
147
148
150
150
150
150
150
150
150
151
151
151
151
155
155
160
160
160
165
165
165
165
165
165
166
167
167
167
167
167
167
167
167
168
168
170
171
173
175
178
178
178
182
183
185
185
185
185
186
186
186
186
186
186
188
188
197
199
201
201
201
202
202
203
203
203
203
203
203
203
203
203
203
204
204
204
204
206
206
206
206
208
208
208
208
211
212
214
214
217
220
222
225
225
234
240
241
241
241
243
243
245
246
246
246
263
263
264
269
269
270
273
273
274
274
275
275
277
277
277
277
279
279
283
285
288
291
291
299
299
301
301
306
306
311
311
311
311
311
312
316
317
321
321
324
325
327
327
330
335
335
338
338
345
347
349
349
350
350
350
352
352
352
352
353
354
354
354
355
356
356
368
373
373
376
376
386
386
389
394
394
404
404
407
412
412
412
412
414
414
430
432
434
434
435
454
459
459
474
477
479
498
503
503
521
526
526
540
542
545
563
568
568
581
582
583
587
592
592
607
610
612
625
630
630
646
651
651
664
669
669
687
689
692
711
716
716
731
734
736
755
760
760
778
783
783
797
799
802
820
825
825
844
849
849
864
867
869
1270
1271
1272
7
7
9
10
11
11
12
13
15
19
20
20
21
21
21
21
21
22
22
23
23
24
24
25
26
28
29
29
29
29
31
31
32
32
32
32
32
32
32
33
33
33
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
37
37
37
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
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
51
53
53
54
55
55
57
57
57
57
59
59
59
59
59
60
60
60
60
61
61
61
61
61
61
61
61
61
61
62
62
63
63
63
63
63
63
63
63
63
63
75
77
78
79
79
79
79
80
80
80
80
81
81
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
93
93
94
94
94
95
95
95
96
97
97
97
97
97
97
97
97
97
98
98
98
98
98
99
100
100
100
100
100
101
101
102
110
111
112
112
113
113
113
114
114
115
115
115
115
116
116
117
117
121
125
128
129
129
130
130
130
130
130
131
131
132
132
133
133
133
133
133
134
134
134
134
138
138
148
149
149
150
150
150
150
150
150
151
151
151
151
151
151
152
152
156
156
158
159
159
159
161
161
161
165
165
165
166
166
166
166
166
167
168
168
168
168
168
168
169
169
169
169
170
170
171
172
174
176
179
179
179
179
179
182
183
184
185
185
186
186
186
186
186
187
187
188
189
189
198
200
201
201
201
202
202
203
203
204
204
204
204
204
204
205
205
205
205
207
207
207
208
208
208
208
209
209
209
211
215
215
218
221
223
223
226
226
234
241
241
242
242
243
243
244
244
246
247
247
247
262
263
263
263
263
264
265
270
270
271
271
272
272
272
274
274
275
275
276
276
278
278
280
280
283
283
284
286
289
292
292
292
292
299
301
302
302
307
307
312
312
312
312
312
313
314
314
315
315
317
318
320
321
321
321
321
322
324
328
328
331
336
336
336
339
339
346
347
350
350
351
351
351
353
353
354
354
355
355
356
369
374
374
375
376
376
376
376
377
384
385
385
385
387
387
390
395
395
396
396
405
405
405
405
408
412
413
413
414
415
415
431
433
433
434
434
434
434
435
436
455
460
460
475
478
480
499
504
504
522
527
527
541
543
546
564
569
569
577
582
583
588
593
593
608
611
613
626
631
631
647
652
652
665
670
670
688
690
693
712
717
717
732
735
737
756
761
761
779
784
784
798
800
803
821
826
826
845
850
850
865
868
870
1271
1272
1273
1
1
7
10
11
11
13
14
14
14
15
16
19
20
21
23
23
24
25
26
27
29
31
31
31
32
32
32
32
32
32
32
32
33
33
35
35
35
36
36
36
37
37
37
37
37
37
37
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
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
42
42
42
52
54
54
54
56
58
58
58
59
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
76
79
80
80
80
80
81
81
81
82
82
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
95
95
96
96
96
96
96
96
96
97
97
97
98
98
98
98
98
99
99
100
100
101
101
101
101
101
102
102
103
103
111
111
111
111
111
113
114
115
115
116
116
116
117
117
118
118
124
126
128
129
130
130
131
131
131
132
132
132
132
132
132
133
133
134
134
134
134
134
135
135
139
139
140
150
151
151
151
151
152
152
152
152
152
153
153
157
157
158
158
158
159
160
160
160
162
166
166
167
167
167
167
167
167
167
167
168
168
169
169
169
169
169
170
171
171
172
173
175
177
177
177
179
179
180
180
180
180
182
182
182
185
186
186
186
187
187
187
188
188
188
189
190
190
198
199
201
202
202
203
203
203
203
203
203
204
204
205
205
205
205
205
205
206
208
208
209
209
210
210
210
212
214
216
216
216
219
222
224
224
224
237
241
242
242
243
243
244
245
247
248
248
248
253
264
264
265
266
271
271
271
271
271
272
272
273
273
273
276
276
277
279
279
281
281
281
284
284
285
287
290
290
292
292
293
293
299
301
302
303
303
308
308
311
313
313
313
313
314
315
316
318
319
322
322
323
325
327
329
329
329
332
337
337
337
337
347
350
351
351
352
352
354
354
354
355
355
356
356
357
366
370
375
375
377
377
378
384
384
384
385
386
386
386
391
394
396
396
397
397
403
405
405
406
406
409
412
414
414
414
415
416
416
424
432
434
434
435
435
436
437
437
456
461
461
476
479
481
500
505
505
523
528
528
542
544
547
565
570
570
583
589
594
594
609
612
614
627
632
632
648
653
653
666
671
671
689
691
691
694
694
713
718
718
733
736
738
757
762
762
780
785
785
799
801
804
822
827
827
846
851
851
866
869
871
1272
1273
1274
1
1
1
7
7
8
11
11
12
14
14
15
15
17
20
22
23
24
25
25
26
26
27
28
29
29
30
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
36
36
36
36
36
36
37
37
37
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
39
39
39
40
40
40
43
43
43
53
55
55
57
59
60
60
60
60
60
61
61
61
61
61
62
62
62
62
63
63
63
63
64
64
64
64
64
64
65
65
77
79
79
79
79
79
80
80
80
80
81
81
81
81
82
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
92
92
92
92
92
92
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
96
96
96
97
97
97
97
97
98
98
98
99
100
100
101
102
102
102
102
102
103
109
112
112
112
112
114
114
114
114
115
115
115
115
116
116
117
119
119
124
127
129
129
130
130
130
131
131
131
131
131
131
131
131
131
131
132
132
132
132
133
133
133
133
134
134
135
136
136
140
140
141
141
141
141
150
150
150
150
150
151
151
151
151
152
152
152
152
153
153
158
158
160
161
161
161
163
164
166
166
166
166
166
166
166
166
167
167
167
168
168
168
168
168
168
169
169
169
170
171
173
174
176
180
180
181
181
181
181
183
183
183
183
185
185
185
186
186
186
186
186
186
187
187
188
189
190
199
199
199
199
200
200
202
202
202
202
202
202
202
202
202
203
203
203
204
204
204
204
205
205
205
205
206
206
207
208
208
209
209
210
210
211
211
214
215
220
223
225
237
242
243
243
244
244
245
246
248
249
249
249
254
254
254
254
263
263
265
265
267
272
272
273
273
274
274
274
276
276
277
277
278
280
280
282
282
282
282
286
288
291
293
294
294
299
299
302
303
309
309
312
312
312
312
314
314
314
314
315
316
317
319
320
321
321
323
323
327
328
333
338
338
348
350
351
351
352
352
353
353
355
355
355
356
356
357
357
358
367
367
367
367
371
376
376
376
376
378
378
386
387
387
387
392
395
395
397
397
406
407
407
410
412
412
415
415
415
416
425
425
425
425
433
434
434
436
436
438
438
457
462
462
477
480
482
501
506
506
524
529
529
543
545
548
566
571
571
581
584
590
595
595
610
613
615
628
633
633
649
654
654
667
672
672
690
695
695
714
719
719
734
737
739
758
763
763
781
786
786
800
802
805
823
828
828
847
852
852
867
870
872
1273
1273
1274
1275
7
8
8
9
9
13
14
14
14
15
15
15
15
16
18
19
19
21
21
23
24
26
27
27
28
28
29
31
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
35
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
54
56
58
58
58
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
62
62
62
62
62
63
63
63
63
63
63
65
65
66
66
77
78
78
80
80
80
81
81
82
82
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
90
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
91
91
91
91
92
92
92
93
93
93
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
94
96
96
96
96
96
96
97
98
98
98
98
98
99
99
99
99
100
101
101
102
103
103
103
103
103
103
104
110
112
112
112
113
113
113
113
115
115
116
116
117
120
120
128
128
130
130
131
131
132
132
132
132
132
132
132
132
133
133
134
134
134
134
135
135
136
137
137
141
141
142
142
148
149
151
151
152
152
153
154
159
159
161
162
162
164
165
166
166
167
167
167
167
167
167
168
169
169
169
169
169
169
170
171
172
174
175
177
179
179
181
181
182
182
183
183
183
184
184
184
186
187
187
187
187
188
188
188
188
190
200
200
201
201
203
203
203
203
203
203
203
204
205
205
205
205
206
206
206
207
207
208
209
210
210
212
212
215
215
216
216
221
224
226
226
241
243
244
244
245
245
246
247
249
250
250
250
255
255
264
268
272
273
273
274
274
275
275
277
278
278
279
281
281
283
283
287
289
292
292
292
294
300
300
301
301
301
303
310
310
312
312
313
313
315
315
315
315
316
317
318
320
321
322
328
328
329
329
334
339
339
339
349
352
353
353
354
354
354
356
356
356
357
357
358
358
359
368
368
372
377
377
377
385
387
388
388
393
398
398
405
405
407
411
413
413
414
414
414
416
416
426
426
434
435
439
439
458
463
463
478
481
483
502
507
507
525
530
530
544
546
549
567
572
572
577
582
591
596
596
611
614
616
629
634
634
650
655
655
668
673
691
696
696
715
720
720
735
738
740
759
764
764
782
787
787
801
803
806
824
829
829
848
853
853
868
871
873
1274
1274
1275
1276
7
7
7
7
8
9
9
11
11
13
14
14
15
16
16
17
17
19
22
24
24
24
25
28
29
29
29
30
32
32
32
32
32
32
32
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
38
38
38
39
39
39
39
39
39
39
40
40
40
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
57
59
60
60
60
61
61
61
61
61
61
61
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
64
64
64
64
67
67
77
78
79
79
80
81
81
81
82
82
83
83
85
85
85
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
90
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
92
92
95
95
95
95
95
95
95
95
95
96
96
96
96
97
97
97
97
97
97
99
99
99
100
100
101
102
102
103
103
104
104
104
104
104
105
112
112
113
113
113
114
114
114
115
116
116
117
117
118
119
121
121
124
129
129
131
131
131
131
131
132
132
132
132
132
133
133
133
133
133
133
134
135
135
136
136
137
138
138
142
142
142
148
149
150
150
151
152
152
153
153
154
155
160
160
160
165
166
166
166
167
167
167
167
167
168
168
168
168
168
168
170
170
170
170
171
171
172
173
175
176
178
180
183
183
183
183
184
184
185
185
185
186
187
188
188
189
189
189
189
189
200
202
202
202
202
203
203
203
203
204
204
204
204
204
204
204
206
206
207
207
207
208
209
210
211
211
213
213
217
217
222
225
226
227
232
237
242
244
244
245
246
246
247
248
250
251
251
251
255
263
265
269
273
273
274
274
275
278
280
282
282
284
284
284
288
290
293
293
302
302
302
302
311
311
313
313
316
316
316
316
317
318
319
321
321
322
323
330
330
335
339
340
340
345
350
350
353
355
355
355
357
357
357
357
358
359
359
360
368
373
376
378
378
378
386
386
394
397
399
399
406
412
415
415
415
415
417
426
434
435
436
440
440
459
464
464
479
482
484
503
508
508
526
531
531
545
547
550
568
573
573
583
592
597
597
612
615
617
630
635
635
651
656
656
669
674
692
697
697
716
721
721
736
739
741
760
765
765
783
788
788
802
804
807
825
830
830
849
854
854
869
872
874
1275
1276
1277
7
7
8
9
13
14
15
15
17
17
18
18
19
20
21
23
23
23
23
23
25
25
25
26
26
26
29
29
29
30
30
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
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
36
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
58
59
59
59
59
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
63
63
63
63
63
63
63
64
64
64
65
65
65
65
68
68
78
79
79
79
80
80
80
81
82
83
83
84
84
85
85
85
86
86
86
86
86
86
86
86
86
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
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
93
93
93
93
93
93
93
93
93
94
94
95
95
96
96
96
96
97
97
98
98
99
99
99
99
99
100
100
101
102
103
103
103
103
104
104
104
105
105
105
106
112
112
112
113
113
114
114
114
115
115
116
117
118
119
120
122
122
128
130
130
130
130
131
132
132
132
132
133
133
133
134
134
135
135
135
135
135
136
136
137
137
138
139
139
142
143
143
149
150
150
150
150
151
151
151
152
154
155
156
158
158
161
165
165
166
166
167
167
167
167
168
168
168
169
169
170
170
170
170
171
171
171
171
173
174
176
177
179
179
179
181
183
183
183
184
184
184
184
185
185
185
186
186
187
189
190
190
190
200
201
201
202
203
203
203
203
203
204
204
205
205
205
206
206
206
206
207
207
208
208
208
208
208
209
210
212
212
214
214
215
216
216
216
218
218
226
228
233
241
243
247
248
249
251
252
252
252
255
263
263
264
270
275
275
276
279
281
283
283
284
285
285
289
291
292
292
294
294
303
303
312
312
313
314
317
317
317
319
320
321
321
322
322
323
328
329
329
329
331
331
336
341
341
346
351
354
354
356
356
358
358
359
360
360
361
368
374
376
376
377
379
379
395
397
400
400
405
405
407
413
415
415
416
416
418
426
434
434
435
436
441
441
460
465
465
483
485
504
509
509
527
532
532
546
548
551
569
574
574
584
593
598
598
616
618
631
636
636
652
657
657
670
672
672
675
693
698
698
717
722
722
740
742
761
766
766
784
789
789
803
805
808
826
831
831
850
855
855
873
875
1276
1277
1278
9
10
11
14
15
16
16
17
19
19
23
24
24
25
26
26
26
26
26
26
26
26
26
27
27
27
29
29
31
32
32
32
32
33
33
33
33
33
33
33
33
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
35
35
35
35
35
35
35
35
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
36
36
36
36
36
36
36
36
36
36
36
36
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
40
40
40
40
40
40
53
56
56
57
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
64
64
64
65
65
65
66
66
66
66
69
69
78
78
79
79
80
81
81
82
82
82
83
83
83
83
83
83
83
83
83
84
84
84
84
84
85
85
85
85
85
85
85
85
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
92
92
92
92
92
92
93
95
95
95
95
95
97
97
99
99
99
99
99
100
100
100
100
101
101
102
103
103
104
104
104
104
105
106
107
110
113
113
113
113
113
114
114
114
116
117
117
117
118
118
118
119
120
121
121
123
123
129
129
131
131
131
131
131
133
133
134
135
135
136
136
136
136
136
137
137
138
138
139
140
140
144
144
149
149
149
150
150
150
151
152
152
153
153
153
154
154
155
156
157
159
162
162
166
166
167
168
168
169
170
170
171
171
171
171
172
172
172
174
175
177
178
179
179
180
180
180
181
184
184
184
185
185
185
185
185
187
188
188
188
189
189
190
190
191
202
202
204
204
204
206
206
206
207
207
207
207
207
208
208
208
209
209
209
209
210
211
213
213
215
215
215
215
215
216
217
217
217
226
226
227
229
234
234
242
242
244
244
248
249
250
252
253
253
253
262
263
264
265
271
275
276
276
277
280
282
284
284
286
286
292
292
292
293
293
295
303
313
313
315
318
318
318
320
320
321
321
322
323
323
324
328
328
328
329
330
330
330
337
339
339
342
342
347
347
352
355
355
355
357
357
357
359
359
360
361
361
362
375
375
376
377
378
380
380
388
396
401
401
405
405
406
406
414
416
416
419
433
434
435
436
437
442
442
461
466
466
484
486
505
510
510
528
533
533
549
552
570
575
575
581
584
594
599
599
617
619
632
637
637
653
658
658
671
673
676
694
699
699
718
723
723
741
743
762
767
767
785
790
790
806
809
827
832
832
851
856
856
874
876
1277
1278
1279
8
10
11
11
16
17
17
20
20
23
23
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
32
32
32
32
32
32
32
33
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
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
38
38
39
39
39
39
53
53
54
54
54
54
54
54
58
59
60
60
60
60
60
60
60
60
60
60
60
60
62
62
62
62
63
63
65
65
65
65
66
66
66
67
67
70
70
81
82
83
83
83
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
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
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
93
93
93
93
93
93
95
95
95
95
95
96
96
97
98
101
101
101
101
103
104
104
105
105
105
105
106
107
108
110
111
112
114
114
114
115
117
118
118
118
119
119
119
120
121
122
122
122
122
124
124
129
131
131
131
132
132
132
132
132
132
134
135
137
137
137
137
137
139
139
140
141
141
145
145
150
152
153
153
154
154
154
155
155
156
157
158
160
162
163
166
166
167
167
168
169
170
172
172
172
172
173
175
176
178
179
181
181
181
181
183
185
186
186
186
188
189
189
189
190
190
190
191
192
202
202
203
203
205
205
207
207
208
208
208
208
208
210
210
210
210
211
212
214
214
216
216
217
218
218
218
224
227
227
228
230
235
235
235
235
242
244
245
245
249
250
251
253
254
254
254
263
265
266
272
275
277
277
278
278
281
283
285
285
287
287
293
294
294
296
303
314
314
316
319
319
319
321
321
322
323
324
324
325
330
331
331
331
337
338
340
340
343
343
348
348
348
348
353
353
355
356
357
358
358
358
360
360
361
362
362
363
376
376
378
379
381
381
388
397
402
402
407
407
415
416
417
420
434
436
437
438
443
443
462
467
467
485
487
506
511
511
529
534
534
550
553
571
576
576
577
582
595
600
600
618
620
633
638
638
654
659
659
672
674
677
695
700
700
719
724
724
742
744
763
768
768
786
791
791
807
810
828
833
833
852
857
857
875
877
1278
1279
1280
7
9
9
11
11
17
17
18
18
21
21
23
26
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
30
30
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
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
40
40
40
40
40
40
40
54
54
54
54
55
55
55
55
55
55
55
55
55
55
57
57
58
58
59
60
61
61
62
62
62
63
63
63
63
63
64
64
66
66
66
66
67
68
68
71
71
84
84
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
92
92
92
94
95
96
96
96
97
97
97
98
98
98
99
99
100
102
103
103
104
104
105
105
106
106
106
107
108
109
111
112
112
112
113
116
119
119
120
120
120
120
122
122
123
123
125
125
129
131
131
132
132
132
132
133
133
133
133
133
134
134
135
136
137
137
138
140
140
141
142
142
146
146
150
151
153
155
155
156
156
159
161
164
166
167
167
167
168
169
169
170
170
171
171
174
174
175
176
177
177
179
180
182
182
182
182
183
184
187
187
187
190
190
191
191
202
203
203
203
204
205
205
206
206
208
208
208
209
211
211
211
211
212
212
213
215
215
216
217
217
218
219
219
222
225
225
229
231
233
235
235
236
236
242
244
245
245
246
246
246
249
250
250
251
252
254
255
255
255
263
264
266
273
278
279
279
282
283
283
284
286
286
288
288
290
294
295
295
297
315
316
317
317
320
320
320
320
321
321
322
322
323
324
325
326
329
331
332
332
338
338
339
344
344
346
348
348
349
349
354
354
355
355
357
357
358
358
358
359
359
359
361
361
362
363
363
364
376
377
377
379
382
382
398
403
403
403
408
408
416
418
421
434
435
437
439
444
444
463
468
468
479
486
488
507
512
512
530
535
551
554
572
577
577
581
583
596
601
601
612
619
621
634
639
639
655
660
660
673
675
678
696
701
701
720
725
725
736
743
745
764
769
769
787
792
808
811
829
834
834
853
858
858
869
876
878
1279
1280
1281
10
10
11
17
17
18
18
19
19
19
19
22
22
24
26
27
28
28
29
29
29
29
29
30
30
30
30
31
32
32
32
32
32
32
32
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
39
40
40
40
41
55
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
59
59
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
63
63
63
63
63
64
64
64
64
64
65
65
67
67
68
69
69
69
69
72
72
72
72
82
82
83
83
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
92
92
92
95
95
96
96
96
97
97
97
97
97
98
98
99
99
99
99
99
100
103
103
104
104
104
105
105
106
107
108
109
110
111
111
114
115
115
117
117
117
118
118
121
123
124
124
126
126
129
129
132
132
132
133
133
133
134
135
135
135
135
136
137
138
138
139
141
141
141
141
142
143
143
143
143
147
147
150
151
153
153
153
153
154
154
154
160
162
162
162
165
167
167
168
168
169
169
170
170
170
170
171
172
175
175
176
177
178
178
180
181
182
182
183
183
185
186
186
188
188
188
188
188
189
189
203
203
204
204
205
206
206
206
206
207
207
208
209
211
211
212
212
212
213
213
214
216
216
216
216
217
217
218
218
218
218
223
227
230
232
236
237
237
242
242
245
246
250
251
251
252
253
255
256
256
256
263
264
266
266
267
274
275
275
279
282
283
284
284
285
287
287
287
287
289
289
289
289
289
291
293
295
296
298
316
318
321
321
321
321
321
322
322
323
324
324
324
325
326
327
330
330
340
345
349
350
350
355
355
356
358
358
359
359
359
360
360
362
362
362
362
363
364
364
364
364
365
376
377
378
379
379
380
383
383
388
388
395
399
404
404
404
409
417
419
422
434
435
437
437
438
440
445
445
464
469
480
484
487
489
508
513
513
531
536
546
550
552
555
573
578
578
582
582
584
584
597
602
613
617
620
622
635
640
640
656
661
661
674
676
679
697
702
702
721
726
737
741
744
746
765
770
770
788
793
803
807
809
812
830
835
835
854
859
870
874
877
879
1280
1281
1282
9
9
11
11
17
17
17
19
19
19
23
23
23
25
26
26
29
29
29
30
30
30
30
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
42
42
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
63
63
63
64
64
64
64
65
65
65
65
65
66
68
68
69
73
73
73
73
78
78
79
79
82
83
83
83
84
84
84
84
84
85
85
85
85
85
85
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
90
90
90
90
90
90
90
90
90
93
93
93
93
93
93
93
93
93
93
96
96
96
96
97
97
97
98
99
99
99
99
99
99
99
100
100
100
100
100
104
105
106
106
107
107
108
108
109
110
110
111
111
113
113
114
114
114
115
116
116
117
118
118
118
118
119
119
122
122
122
124
127
127
130
130
131
131
131
131
132
132
133
133
133
135
135
135
135
135
135
136
136
136
136
138
139
139
140
141
143
144
144
144
144
148
148
149
149
150
150
153
154
154
154
154
154
155
155
155
160
161
163
163
163
166
167
167
168
168
170
170
170
170
170
170
170
171
171
171
171
173
176
176
177
178
178
178
178
179
179
181
181
182
182
182
182
184
184
184
184
185
185
186
187
187
188
189
189
189
189
189
189
189
190
190
199
203
203
204
204
206
206
206
206
206
206
206
207
207
207
207
208
211
211
212
212
213
213
213
214
214
215
219
219
219
219
227
228
231
233
235
235
237
243
243
244
244
244
246
251
252
252
253
253
254
254
254
256
256
257
257
257
257
267
267
268
273
275
276
276
277
277
277
280
283
284
285
285
286
290
290
290
290
291
291
294
295
295
296
297
299
302
312
317
319
322
322
322
322
323
324
324
325
325
325
325
326
327
327
328
328
340
341
344
344
346
348
348
350
352
356
356
357
357
357
359
359
360
360
361
361
364
365
365
365
365
366
367
379
380
380
381
384
384
386
389
389
396
400
404
404
405
405
408
408
410
415
418
420
423
425
438
438
439
441
446
446
465
468
468
470
485
488
490
509
514
514
532
534
534
537
551
553
556
574
579
579
582
582
584
584
585
585
598
601
601
603
618
621
623
636
641
641
657
662
662
675
677
680
698
703
703
722
725
725
727
742
745
747
766
771
771
789
791
791
794
808
810
813
831
836
836
855
858
858
860
875
878
880
1281
1282
1283
1
10
10
11
17
20
24
24
27
27
28
28
29
30
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
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
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
39
40
40
40
41
41
43
43
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
61
61
62
62
62
62
62
62
64
64
65
65
65
65
66
66
66
66
66
66
67
69
69
70
74
74
74
74
78
79
82
82
83
83
83
83
83
83
83
83
83
84
84
84
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
90
90
90
90
90
90
90
90
90
90
93
93
93
93
93
93
93
93
93
95
95
97
97
98
99
99
99
100
100
100
100
100
100
100
100
100
101
101
101
101
105
106
106
107
107
110
111
111
112
112
113
114
114
117
117
117
117
118
118
118
119
119
119
120
120
123
123
128
128
131
132
132
132
132
132
135
135
136
136
136
136
136
136
136
136
136
137
137
137
137
139
140
140
141
142
142
142
144
145
145
145
145
149
149
149
150
153
153
154
154
154
155
155
155
155
155
156
156
161
161
162
164
166
167
168
170
170
171
171
171
171
171
171
171
171
171
171
172
172
172
172
172
174
177
177
178
182
182
183
183
183
183
184
185
185
185
188
188
188
188
189
189
189
190
190
190
190
190
190
190
190
190
191
191
200
200
200
202
206
206
207
207
207
207
207
207
207
207
207
208
208
208
208
209
211
212
213
213
214
214
215
215
216
219
220
220
220
220
227
229
232
234
236
245
245
245
245
252
253
253
255
255
255
257
257
258
258
258
258
268
268
274
274
276
278
278
281
282
284
284
285
286
286
287
291
291
291
291
295
296
296
297
298
300
303
303
303
303
313
313
313
314
318
318
320
323
323
323
323
324
326
326
328
328
329
329
332
340
342
345
347
349
353
357
358
358
358
358
360
361
361
362
362
365
366
366
366
366
367
368
368
368
380
381
381
385
385
387
387
397
397
401
406
406
409
409
411
416
416
416
416
419
421
424
426
426
426
439
439
442
447
447
466
469
471
486
489
491
510
515
515
533
535
538
552
554
557
575
580
580
585
585
586
586
599
602
604
619
622
624
637
642
642
658
663
663
676
678
681
699
704
704
723
726
728
743
746
748
767
772
772
790
792
795
809
811
814
832
837
837
856
859
861
876
879
881
1282
1283
1284
1
1
2
9
9
11
17
18
19
19
21
25
25
26
26
27
28
28
29
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
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
38
38
38
38
40
42
42
44
44
56
56
56
56
56
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
60
60
60
60
60
62
62
63
63
65
65
66
66
66
66
66
67
67
67
67
67
67
68
68
70
70
71
71
75
75
75
75
83
83
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
91
93
95
96
98
98
98
99
101
101
101
101
101
101
102
102
102
102
106
106
107
108
108
111
112
112
113
113
115
115
118
118
119
119
119
120
120
120
120
121
121
121
122
122
124
124
129
129
131
132
133
133
134
137
137
137
137
137
137
137
138
138
138
138
140
140
141
141
142
142
143
143
145
146
146
146
146
150
150
153
154
154
155
155
155
156
156
156
156
157
157
157
163
165
166
167
168
169
172
172
172
172
172
172
172
172
172
172
173
173
173
173
173
175
178
178
179
182
183
183
184
184
184
184
186
186
186
189
189
190
190
190
191
191
191
191
191
191
191
191
192
192
192
201
201
202
203
205
208
208
208
208
208
208
209
209
209
209
210
211
212
213
215
215
215
216
216
217
217
219
221
221
221
221
230
233
235
235
235
237
246
246
253
254
254
256
256
258
258
259
259
259
259
266
277
279
282
283
285
285
285
285
286
286
287
287
288
288
292
292
292
292
295
296
297
297
298
301
304
304
314
314
319
319
321
324
324
324
324
324
325
329
329
330
330
332
343
346
348
348
348
350
358
359
359
361
361
362
362
363
363
363
366
367
367
367
367
368
369
369
379
381
386
386
398
398
398
398
402
407
407
408
410
410
417
417
420
422
425
427
427
437
443
448
448
467
470
472
487
490
492
511
516
516
534
536
539
553
555
558
576
581
581
586
586
600
603
605
620
623
625
638
643
643
659
664
664
677
679
682
700
705
705
724
727
729
744
747
749
768
773
773
791
793
796
810
812
815
833
838
838
857
860
862
877
880
882
1283
1284
1285
2
3
10
10
11
17
19
19
20
20
22
26
26
28
28
29
29
29
32
33
33
33
33
33
33
33
33
33
33
33
33
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
35
35
35
35
35
35
35
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
38
39
39
39
39
41
45
45
53
53
54
54
54
54
54
57
57
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
58
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
62
62
62
62
62
63
64
64
66
66
66
66
66
66
67
68
68
68
68
68
68
71
71
72
72
76
76
76
76
81
81
81
81
81
81
82
82
82
83
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
90
90
90
90
90
90
91
92
95
96
97
98
98
98
99
99
99
100
100
100
101
101
101
101
101
101
103
103
103
103
107
108
109
109
109
111
111
112
112
113
113
114
114
115
116
116
118
119
120
120
120
121
121
121
121
121
122
122
122
122
123
123
125
130
130
131
132
133
134
134
134
135
136
136
137
137
137
137
137
137
138
139
139
139
139
142
142
142
143
143
143
143
143
143
144
146
147
147
147
147
150
151
151
154
155
156
156
156
157
157
157
157
157
158
158
163
166
166
167
169
169
169
169
170
170
171
171
172
172
172
172
172
172
172
172
173
173
174
174
174
174
174
176
176
179
179
179
180
182
182
182
184
184
185
185
186
187
187
187
189
190
191
191
191
191
192
192
192
192
192
192
192
193
193
200
201
201
201
201
202
202
203
205
205
205
206
207
207
208
208
208
208
208
208
208
210
210
210
210
211
213
214
216
217
217
218
218
222
222
222
222
231
234
234
235
235
236
236
236
236
246
254
255
255
255
256
256
256
256
257
259
259
260
260
260
260
263
276
278
280
283
283
284
285
285
286
286
288
288
289
289
293
293
293
293
295
297
299
302
304
313
314
314
314
314
315
320
320
321
322
322
325
325
325
325
325
326
330
330
331
331
344
347
348
348
349
349
349
359
359
363
363
364
364
364
367
367
368
368
368
368
368
369
369
369
369
369
369
370
376
382
387
387
389
396
398
398
399
399
403
408
408
408
417
423
426
426
427
427
427
427
428
434
444
449
449
468
471
473
488
491
491
493
493
512
517
517
535
537
540
554
556
559
577
582
582
582
582
601
604
606
621
624
624
626
626
639
644
644
660
665
665
680
683
701
706
706
725
728
730
745
748
748
750
750
769
774
774
792
794
797
811
813
816
834
839
839
858
861
863
878
881
881
883
883
1284
1285
1286
3
4
9
9
10
11
19
21
21
23
26
26
27
27
29
32
32
32
32
32
32
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
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
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
38
38
39
40
42
46
46
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
61
61
62
62
62
62
62
62
63
64
65
65
65
66
66
67
67
67
67
67
67
68
69
69
72
72
73
73
77
77
77
77
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
85
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
89
90
90
91
91
91
91
91
91
92
93
97
97
97
98
98
99
99
99
99
99
100
100
100
100
100
100
100
100
100
101
101
101
102
102
102
102
102
102
106
106
108
109
110
111
113
113
114
114
115
115
115
115
116
117
117
118
119
120
121
121
122
122
122
123
123
124
124
126
131
131
133
134
135
135
135
135
136
136
136
136
136
136
136
136
137
137
138
138
138
138
138
138
139
143
143
144
144
144
144
145
147
148
148
148
148
150
151
152
153
153
154
155
156
157
157
158
158
158
159
159
163
167
169
170
170
170
170
170
171
171
171
171
171
171
171
171
172
172
173
173
173
173
173
173
173
174
174
175
178
180
180
180
181
182
182
183
185
185
186
186
186
186
187
188
188
188
189
190
191
191
192
192
193
193
193
193
193
194
194
202
202
203
205
206
206
206
206
207
207
207
207
207
207
207
207
208
208
208
209
209
209
209
209
209
209
211
211
212
214
215
217
218
218
219
219
219
219
223
223
223
223
232
237
237
237
237
246
255
256
256
257
257
258
260
260
261
261
261
261
263
264
266
266
276
279
281
284
285
286
287
287
289
289
290
290
291
294
294
294
294
295
296
298
300
300
303
303
304
315
315
316
321
321
321
322
324
324
326
326
326
326
326
327
331
331
332
332
332
332
345
348
350
350
350
359
360
364
364
365
365
365
369
369
369
369
370
370
370
370
371
376
377
379
379
383
388
388
389
399
400
400
404
404
408
409
409
417
424
427
428
428
429
434
435
437
437
445
450
450
469
472
474
489
494
494
513
518
518
536
538
541
555
557
557
560
560
578
583
583
583
583
584
584
584
602
605
607
622
627
627
640
645
645
661
666
681
684
702
707
707
726
729
731
746
751
751
770
775
775
793
795
798
812
814
814
817
817
835
840
840
859
862
864
879
884
884
1285
1286
1287
4
5
10
10
10
11
11
11
11
19
19
21
24
25
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
32
32
32
32
32
32
32
32
32
32
33
33
33
33
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
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
38
38
38
38
39
40
41
43
47
47
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
64
65
65
66
66
66
67
67
68
68
68
68
68
68
69
70
70
73
73
74
74
78
78
78
78
79
79
79
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
91
93
94
97
98
99
100
100
100
100
101
101
101
102
102
103
103
103
103
103
103
104
107
107
109
110
111
112
114
114
115
115
116
116
116
116
117
118
118
118
118
118
119
119
120
121
122
122
123
125
125
127
132
132
136
136
136
137
137
138
138
139
139
139
139
139
139
140
143
143
144
144
145
145
145
145
148
149
149
149
149
150
153
154
154
154
154
155
155
157
158
158
159
168
171
171
171
171
172
172
172
172
173
173
174
174
174
174
174
174
174
176
178
181
181
181
182
183
184
186
186
187
187
187
187
188
189
189
189
189
189
189
190
190
192
193
193
194
194
194
201
201
203
203
207
207
207
208
208
208
209
209
210
210
210
210
210
210
212
212
213
215
216
217
218
219
219
220
220
220
220
224
224
224
224
225
233
233
238
238
238
238
256
256
256
257
257
258
258
261
261
262
262
262
262
263
267
267
280
282
285
285
285
286
287
290
290
291
291
291
295
295
295
295
296
297
299
304
304
314
314
316
316
321
322
322
325
325
327
327
327
327
327
328
330
332
332
333
333
333
333
338
346
346
349
351
351
351
361
365
365
366
366
366
369
369
370
370
370
370
371
371
371
371
376
380
380
384
389
389
398
398
400
404
405
409
410
410
425
427
427
428
429
429
434
438
438
446
451
451
470
473
475
490
495
495
514
519
519
537
539
542
556
561
561
579
584
584
585
585
585
603
606
608
623
628
628
641
646
646
662
667
682
685
703
708
708
727
730
732
747
752
752
771
776
776
794
796
799
813
818
818
836
841
841
860
863
865
880
885
885
1286
1287
1288
4
5
5
6
9
9
11
12
12
21
21
21
25
26
26
27
27
28
29
29
29
29
31
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
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
39
39
40
40
41
42
44
48
48
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
61
65
65
65
66
66
67
67
67
68
68
69
69
69
69
70
71
71
74
74
75
75
79
79
79
79
79
79
79
79
79
79
79
80
80
80
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
87
88
88
88
88
89
89
89
89
89
89
92
94
95
97
98
99
99
100
100
100
100
100
101
101
102
102
103
103
104
104
104
104
105
105
110
111
112
113
115
115
116
116
116
117
117
118
118
118
119
119
119
119
120
120
120
120
120
121
121
121
121
122
123
126
128
133
133
135
136
136
136
137
137
138
138
139
139
140
140
140
140
141
144
145
145
146
146
149
150
150
150
150
151
151
151
153
154
155
155
155
155
155
156
156
156
156
156
157
157
157
158
159
163
163
163
167
169
170
171
171
171
172
172
172
173
173
173
174
174
175
175
175
175
177
182
182
182
182
183
184
185
187
187
187
188
188
189
189
189
190
190
190
190
190
191
191
191
191
191
192
192
192
193
194
195
195
202
206
207
207
207
208
208
209
209
209
210
210
211
211
211
211
211
213
213
213
214
216
217
218
218
219
220
220
221
221
225
225
225
225
226
234
234
239
239
239
257
257
258
258
262
262
263
263
263
263
264
266
268
268
268
276
276
281
283
286
286
287
291
291
292
292
295
296
296
296
296
297
298
300
305
305
315
322
323
323
324
326
326
326
328
328
328
328
328
329
331
331
333
333
334
334
339
347
347
350
352
352
362
366
366
367
367
367
370
371
371
371
371
372
372
377
379
381
381
381
385
389
389
390
390
399
406
408
408
408
410
411
411
420
424
426
428
429
435
437
439
439
439
447
452
452
471
474
476
491
496
496
515
520
520
538
540
543
557
562
562
580
585
585
585
586
586
604
607
609
624
629
629
642
647
647
663
665
665
668
677
681
683
686
704
709
709
728
731
733
748
753
753
772
777
777
795
797
800
814
819
819
837
842
842
861
864
866
881
886
886
1287
1288
1289
5
5
5
6
7
13
13
19
19
21
26
26
27
28
28
28
28
28
29
29
29
29
30
32
32
32
32
32
32
32
32
32
32
34
34
34
34
34
34
34
34
34
34
34
34
34
34
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
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
38
38
38
38
40
41
41
42
42
43
45
49
49
53
53
54
54
54
54
54
56
56
57
57
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
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
61
61
61
65
66
66
66
67
67
67
67
68
71
72
72
75
75
76
76
80
80
80
80
80
80
80
80
80
80
80
81
81
81
83
83
83
83
83
83
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
87
87
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
91
91
91
93
95
95
96
99
99
99
99
100
101
101
101
102
102
102
102
111
112
113
114
114
116
116
116
117
117
118
118
118
119
120
120
121
121
121
121
121
121
122
122
122
122
125
125
127
129
132
134
134
135
135
135
136
137
137
137
138
138
138
138
142
143
145
146
146
147
147
150
151
151
151
151
152
153
154
155
157
157
157
157
158
158
158
158
161
164
164
168
170
170
170
170
171
172
172
172
172
172
173
173
173
173
173
174
178
178
183
183
183
183
184
185
185
187
188
188
189
189
189
190
190
191
191
191
192
192
192
192
193
193
193
193
196
196
201
203
206
206
206
207
208
208
208
209
209
209
209
211
212
215
217
218
220
221
221
222
222
226
226
226
226
227
227
234
234
235
238
238
240
240
240
245
256
258
258
259
259
263
263
264
264
264
264
266
267
274
277
277
282
284
285
285
287
287
288
291
292
292
293
293
296
297
297
297
297
298
298
301
303
306
306
314
316
324
324
324
325
329
329
329
329
329
330
334
334
335
335
340
340
347
347
348
351
351
351
353
353
358
363
367
367
368
368
368
369
371
372
372
372
372
373
373
379
380
386
387
390
390
391
391
398
398
400
404
407
409
409
411
411
412
416
425
427
427
429
430
437
438
448
453
453
472
475
477
492
497
497
516
521
521
539
541
544
558
563
563
581
586
586
586
586
605
608
610
625
630
630
643
648
648
664
666
669
682
684
687
705
710
710
729
732
734
749
754
754
773
778
778
796
798
801
815
820
820
838
843
843
862
865
867
882
887
887
1288
1289
1290
4
5
6
6
7
8
9
13
21
21
21
26
26
26
26
26
27
27
27
27
27
28
29
29
29
30
30
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
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
35
35
35
36
37
38
38
38
38
38
38
38
42
43
43
44
46
50
50
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
66
67
67
67
69
71
71
72
73
73
76
76
77
77
81
81
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
90
91
91
91
94
96
96
97
100
100
101
102
102
102
107
112
113
114
115
115
115
115
116
116
117
117
118
118
119
119
119
120
122
122
123
123
126
126
128
130
133
133
133
133
135
135
137
138
138
138
143
143
143
144
147
147
148
148
151
152
152
152
152
153
154
154
155
155
156
158
158
159
159
162
162
169
171
172
172
172
173
173
173
173
173
174
179
182
184
184
184
184
185
187
187
189
189
190
190
190
191
191
191
191
191
192
193
193
194
194
197
197
201
201
202
208
209
209
209
212
212
213
213
218
219
220
221
222
222
223
223
227
227
227
227
228
228
228
228
236
239
239
241
241
241
246
246
246
246
256
256
257
259
260
260
264
264
265
265
265
265
267
267
268
268
275
275
285
285
285
286
286
288
289
293
293
294
294
295
297
298
298
298
298
302
304
304
304
304
307
307
314
314
315
325
325
325
325
326
326
330
330
330
330
330
331
333
335
335
336
336
341
341
341
341
352
352
352
354
354
359
359
359
359
364
368
368
369
369
369
369
369
370
373
373
373
373
374
374
380
380
381
381
387
388
388
392
392
398
398
399
399
408
408
410
410
413
417
417
417
417
426
427
427
428
428
431
438
438
439
439
449
454
454
476
478
493
498
498
517
522
522
542
545
559
564
564
582
587
587
609
611
626
631
631
644
649
649
665
667
670
683
685
688
706
711
711
733
735
750
755
755
774
779
779
799
802
816
821
821
839
844
844
866
868
883
888
888
1289
1290
1291
5
5
5
5
6
6
7
7
8
9
9
13
13
19
19
21
21
21
21
26
26
27
27
27
27
27
28
28
28
28
29
30
30
31
31
32
32
32
32
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
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
39
39
40
43
44
44
45
47
51
51
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
65
67
68
68
69
69
69
69
69
69
70
72
72
73
74
77
77
78
78
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
87
87
88
91
92
92
95
98
100
101
101
102
103
103
104
104
104
104
104
104
107
113
113
114
115
115
115
116
116
117
117
118
118
118
118
118
119
119
120
120
120
122
123
125
127
127
131
134
134
136
136
136
138
139
139
140
140
140
140
140
140
142
143
144
144
145
148
148
149
149
152
153
153
153
153
154
156
156
157
158
159
170
171
172
173
174
174
174
174
175
175
175
175
175
175
175
180
183
183
185
185
185
185
185
186
188
188
189
189
189
190
190
191
191
191
192
192
193
193
194
198
198
200
201
202
203
207
209
210
210
211
211
211
211
211
211
214
214
219
220
220
222
223
223
224
224
226
228
228
228
228
228
228
229
229
237
238
240
240
242
242
247
247
255
256
257
258
260
261
261
265
265
266
266
266
266
269
269
286
287
287
289
290
294
294
295
295
296
296
298
298
299
299
299
299
303
305
305
308
308
313
314
315
316
326
326
327
327
331
331
331
331
331
332
333
336
336
337
337
339
341
341
342
342
351
353
353
353
355
360
360
365
368
369
369
369
370
370
370
370
371
374
374
374
374
375
375
382
382
388
393
393
400
400
409
409
409
411
411
411
414
418
418
426
427
427
428
429
429
432
440
440
450
455
455
477
479
494
499
499
518
523
523
543
546
560
565
565
583
588
588
610
612
627
632
632
645
650
650
666
668
671
684
686
689
707
712
712
734
736
751
756
756
775
780
780
800
803
817
822
822
840
845
845
867
869
884
889
889
1290
1291
1292
4
4
5
5
7
7
8
8
9
9
9
9
10
13
14
21
21
21
21
22
22
26
27
27
28
28
29
29
29
29
29
29
29
29
29
30
31
31
31
31
32
32
32
33
33
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
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
37
37
38
39
40
40
41
45
46
48
50
50
52
52
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
66
66
67
67
69
69
70
70
70
70
71
73
73
74
75
78
78
79
79
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
88
90
92
93
93
96
96
99
100
100
100
101
101
102
102
102
102
104
104
105
105
105
105
114
115
116
116
117
117
119
119
119
119
119
119
120
120
121
121
121
122
122
123
125
132
134
137
137
137
137
138
138
140
140
141
141
141
141
143
145
145
146
149
149
150
150
153
154
154
154
154
154
155
155
155
155
157
157
157
158
158
158
159
164
170
171
172
172
173
173
173
175
175
175
175
176
176
176
176
176
181
183
185
186
186
186
186
186
187
190
190
190
190
191
191
192
192
192
192
193
193
194
194
199
199
201
203
204
208
208
209
209
211
211
212
212
212
212
212
213
213
213
215
215
220
221
223
224
224
225
225
229
229
229
229
229
230
230
238
238
243
243
247
256
258
259
261
262
262
266
266
267
267
267
267
267
268
268
268
270
270
277
283
287
288
288
290
291
295
295
296
296
296
298
299
299
300
300
300
300
304
305
309
309
314
316
317
325
326
326
326
327
327
328
328
332
332
332
332
332
333
337
337
338
338
342
343
343
351
354
356
360
366
369
370
370
371
371
371
371
372
375
375
375
375
376
376
380
381
381
381
383
383
389
390
394
394
396
401
401
409
410
411
412
412
412
415
418
427
428
429
430
430
433
438
439
439
439
441
441
451
456
456
478
480
495
500
500
519
524
524
544
547
561
566
566
584
589
589
611
613
628
633
633
646
651
651
667
669
672
685
687
690
708
713
713
735
737
752
757
757
776
781
781
801
804
818
823
823
841
846
846
868
870
885
890
890
1291
1292
1293
1
5
5
8
8
9
9
10
10
11
11
13
13
14
15
15
15
15
19
23
23
26
26
29
29
29
29
29
29
29
29
29
29
29
29
29
29
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
32
32
32
32
32
33
33
33
33
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
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
37
37
37
40
41
41
42
46
47
49
51
51
53
53
53
54
54
54
54
54
56
56
57
57
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
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
68
68
68
68
71
72
74
75
75
76
77
77
77
78
78
78
79
79
80
80
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
90
90
91
93
94
94
95
96
96
96
97
100
100
101
101
101
103
103
103
103
107
107
115
115
115
116
117
117
120
120
120
120
121
121
121
122
122
122
122
122
122
123
123
123
123
125
126
133
134
138
138
139
139
139
139
143
144
146
146
150
150
151
151
154
154
154
154
155
155
155
155
155
156
156
156
156
158
158
158
158
159
159
159
159
159
164
171
172
174
174
174
174
174
174
176
177
177
182
183
185
186
187
187
187
187
187
188
191
191
192
192
192
193
193
193
193
193
193
194
194
194
194
195
200
200
201
202
204
210
210
210
210
212
212
212
213
214
214
214
215
220
220
221
222
224
225
225
226
226
228
228
230
230
230
230
230
234
238
239
239
244
244
247
256
257
259
262
263
263
267
267
267
267
267
268
268
268
268
268
269
269
269
277
282
284
286
288
289
291
292
296
296
296
297
297
298
299
300
300
301
301
301
301
305
305
310
310
314
315
317
325
325
325
326
327
327
327
328
328
333
333
333
333
333
333
333
334
338
338
339
339
341
341
343
347
348
351
352
355
357
360
367
369
370
371
371
372
372
372
372
376
376
376
376
377
377
380
380
380
381
382
382
382
390
390
395
395
397
402
409
411
411
412
413
413
413
416
418
427
428
429
430
431
431
434
434
438
438
438
439
440
440
440
452
457
457
472
479
481
496
501
501
520
525
525
539
543
545
548
562
567
567
585
590
590
605
612
614
629
634
634
647
652
652
668
670
673
686
688
688
691
691
709
714
714
729
736
738
753
758
758
777
782
782
796
800
802
805
819
824
824
842
847
847
862
869
871
886
891
891
1292
1293
1294
1
1
4
4
4
5
6
6
9
10
10
11
11
12
12
13
13
13
15
15
23
24
26
26
27
29
29
29
29
29
29
29
29
29
29
30
30
31
31
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
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
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
37
38
38
38
41
42
43
43
44
44
47
48
50
52
52
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
68
68
68
72
73
75
76
76
77
77
77
77
77
77
77
78
78
78
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
88
88
89
89
90
90
90
91
92
94
95
95
96
96
98
101
101
102
102
102
103
103
103
105
108
108
116
116
117
118
120
121
121
121
122
122
123
123
123
123
124
124
126
127
134
139
139
139
139
139
143
144
146
146
147
147
151
151
152
152
155
156
156
156
156
156
157
157
157
157
159
159
160
160
160
171
171
173
174
174
174
175
175
177
178
178
183
183
183
186
187
188
188
188
189
191
193
193
194
194
194
194
195
195
196
201
201
201
202
204
204
205
210
210
210
214
215
215
215
216
218
220
221
221
222
223
225
226
226
227
227
229
231
231
231
231
234
239
240
240
245
245
256
257
259
259
260
263
264
264
268
268
269
269
269
269
269
270
270
270
284
284
287
288
288
289
290
292
293
296
296
297
297
298
298
299
300
302
302
302
302
306
311
311
314
315
317
317
318
327
328
328
328
329
329
331
334
334
334
334
334
334
334
335
339
339
340
340
342
347
349
352
353
353
356
358
368
369
370
372
372
372
372
373
373
373
373
377
377
377
377
378
378
382
383
383
383
391
396
396
397
397
401
401
403
409
409
412
412
413
414
417
427
428
430
430
430
431
435
435
440
441
441
441
453
458
458
473
477
480
482
497
502
502
521
526
526
544
546
549
563
568
568
586
591
591
606
610
613
615
630
635
635
648
653
653
669
671
674
687
692
692
710
715
715
730
734
737
739
754
759
759
778
783
783
801
803
806
820
825
825
843
848
848
863
867
870
872
887
892
892
1293
1294
1295
5
5
5
6
7
7
8
11
11
13
13
13
19
19
24
28
29
29
29
29
29
29
29
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
33
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
38
43
44
45
48
49
51
53
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
66
68
69
69
70
70
70
70
70
70
73
76
77
77
78
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
88
89
91
92
93
95
96
96
97
99
100
101
102
102
103
103
103
104
104
105
105
105
105
105
105
106
106
115
115
117
117
118
119
119
120
122
122
123
123
123
124
124
124
125
127
128
135
137
139
140
140
140
140
141
141
141
141
141
141
147
147
148
148
152
152
153
153
155
156
157
157
157
157
157
158
158
158
159
160
161
172
174
174
175
175
176
176
176
176
176
176
176
176
178
179
179
184
184
184
185
185
185
187
189
189
189
190
190
191
194
194
194
195
195
195
197
202
202
205
205
206
208
210
211
211
212
212
212
212
212
212
213
215
216
216
219
219
221
223
224
226
227
227
228
228
228
228
230
232
232
232
232
238
240
241
241
246
246
260
260
261
264
265
265
268
269
269
270
270
270
270
270
271
271
288
289
289
290
291
293
294
297
297
298
298
298
298
298
299
299
300
303
303
303
303
307
312
312
318
318
319
326
328
329
329
330
330
332
332
335
335
335
335
335
336
340
340
341
341
341
341
343
351
353
354
354
357
359
369
373
373
373
373
374
374
374
374
378
378
378
378
379
379
381
383
384
384
392
397
397
402
402
404
410
410
411
411
411
413
413
415
418
431
431
431
432
436
436
439
441
442
442
454
459
459
478
481
483
498
503
503
522
527
527
545
547
550
564
569
569
587
592
592
611
614
616
631
636
636
649
654
654
670
672
675
688
693
693
711
716
716
735
738
740
755
760
760
779
784
784
802
804
807
821
826
826
844
849
849
868
871
873
888
893
893
1294
1295
1296
4
5
5
8
8
8
8
8
9
12
12
13
14
14
14
15
15
19
24
24
25
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
31
31
31
31
31
31
31
31
31
31
32
32
32
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
37
37
39
44
45
45
46
46
48
49
49
50
52
53
53
54
54
54
55
55
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
67
67
68
68
70
70
71
71
71
71
77
77
77
77
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
83
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
89
89
89
92
93
95
97
97
98
100
101
101
102
102
103
103
103
105
105
106
106
106
106
115
115
116
116
118
119
120
120
120
120
120
121
122
123
123
123
123
124
124
124
125
125
126
128
128
136
138
138
139
139
141
141
141
141
142
142
142
142
148
148
149
153
153
154
154
156
156
158
158
158
158
159
159
159
159
160
160
160
162
173
173
174
174
175
175
176
176
177
177
177
177
177
177
180
180
185
186
186
186
186
190
190
190
191
191
191
191
191
193
194
194
195
195
195
196
196
198
203
203
206
206
209
209
210
210
212
212
213
213
213
213
214
214
222
224
225
227
228
228
228
228
229
229
229
229
233
233
233
233
234
239
241
241
242
247
247
261
261
265
266
266
269
269
270
270
271
271
271
288
289
290
290
291
294
295
299
299
299
299
299
299
300
300
304
304
304
304
308
313
313
319
319
327
327
331
331
336
336
336
336
336
337
341
341
341
341
342
342
342
342
347
352
354
354
355
358
360
370
374
374
374
374
375
375
375
379
379
379
379
380
380
382
382
393
398
398
401
403
403
412
412
412
412
416
419
432
432
432
437
437
440
440
455
460
460
479
482
484
499
504
504
523
528
546
548
551
565
570
570
585
588
593
593
612
615
617
632
637
637
650
655
655
673
676
689
694
694
712
717
717
736
739
741
756
761
761
780
785
803
805
808
822
827
827
845
850
850
869
872
874
889
894
894
1295
1296
1297
5
5
7
9
9
9
10
13
13
13
15
15
15
15
16
16
19
23
23
23
25
26
26
29
29
29
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
38
38
41
41
45
49
50
50
51
53
53
54
54
54
54
54
54
54
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
69
69
69
69
77
77
77
77
77
77
77
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
80
80
80
80
80
80
81
81
81
81
81
81
82
82
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
83
84
84
84
84
84
84
84
84
86
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
89
89
90
90
97
97
99
101
104
104
104
104
104
108
117
117
119
120
121
121
121
123
123
123
123
124
124
124
124
124
124
125
125
126
127
137
140
140
140
140
142
142
146
150
154
154
155
155
159
159
159
159
160
160
160
161
161
162
163
175
175
175
175
175
176
181
181
186
187
187
191
191
191
192
192
192
194
194
194
194
195
195
195
195
196
196
197
197
199
204
204
211
211
211
211
221
223
225
226
228
229
229
230
230
230
230
234
234
234
234
238
240
243
248
248
259
266
267
267
271
272
272
275
288
290
292
295
296
300
300
300
300
301
301
305
305
305
305
309
314
314
317
332
332
334
337
337
337
337
338
342
342
343
343
343
343
351
353
356
359
361
371
372
375
375
376
376
376
380
380
380
380
381
381
388
394
399
399
401
413
413
417
420
430
433
438
438
456
461
480
483
485
500
505
505
524
529
547
549
552
566
571
571
586
586
586
589
594
613
616
618
633
638
638
651
656
656
674
677
690
695
695
713
718
737
740
742
757
762
762
781
786
804
806
809
823
828
828
846
851
870
873
875
890
895
895
1296
1297
1298
5
5
5
7
10
10
10
10
10
11
13
13
14
14
15
16
16
17
17
23
24
26
26
26
26
26
29
29
29
29
29
29
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
33
33
33
33
33
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
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
39
39
41
42
42
46
46
47
50
50
51
51
52
54
54
54
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
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
69
69
69
77
77
77
78
78
78
78
78
78
78
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
85
85
87
88
89
89
89
89
89
89
89
89
90
90
90
90
90
90
91
100
102
102
103
104
104
104
105
105
108
113
118
118
120
121
121
122
124
124
124
124
125
125
125
125
125
125
126
126
126
127
128
128
133
138
140
140
140
143
143
143
151
155
155
156
156
158
158
159
160
160
160
160
160
160
160
160
161
161
161
161
161
161
162
163
164
171
175
175
175
175
176
177
182
182
187
187
191
192
192
192
192
193
195
195
196
196
197
197
198
198
200
201
203
203
205
211
211
211
216
221
224
226
226
227
227
229
229
230
230
231
231
231
231
235
235
235
235
239
239
241
241
244
246
249
249
256
267
268
268
270
270
270
270
271
271
271
272
273
273
276
284
288
289
291
293
293
296
296
297
300
301
301
302
302
304
306
306
306
306
310
314
315
315
329
333
333
334
336
336
338
338
338
338
339
339
343
343
344
344
344
344
352
352
354
354
357
359
360
360
362
362
369
372
376
376
377
377
377
381
381
381
381
382
382
384
389
395
397
400
400
401
402
413
417
418
421
427
434
439
439
442
457
460
460
462
481
484
484
486
486
501
506
506
525
527
527
530
548
550
550
553
553
567
572
572
586
587
587
590
593
593
595
614
617
617
619
619
634
639
639
652
657
657
675
678
691
696
696
714
717
717
719
738
741
741
743
743
758
763
763
782
784
784
787
805
807
807
810
810
824
829
829
847
850
850
852
871
874
874
876
876
891
896
896
1297
1298
1299
5
5
5
6
7
11
12
14
14
15
15
15
15
17
17
17
23
23
26
26
27
27
29
29
29
29
29
29
32
32
32
32
32
32
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
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
40
40
43
43
46
47
47
48
50
51
51
52
52
52
52
52
52
52
52
52
52
52
53
55
56
56
56
56
56
56
57
57
57
57
59
59
67
69
70
70
71
71
78
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
86
86
88
89
90
90
90
90
90
90
90
90
90
91
91
91
91
92
101
102
103
104
105
105
106
106
106
106
114
119
120
121
121
122
123
124
125
125
126
126
126
126
127
128
128
129
129
134
134
134
138
139
140
141
141
142
142
143
144
144
144
146
146
152
156
156
156
157
157
158
159
160
160
161
161
161
161
161
161
162
162
162
162
163
164
164
165
171
173
175
176
176
176
177
177
177
178
183
183
187
188
191
192
192
192
192
193
193
193
194
195
196
198
198
199
199
201
201
202
204
204
204
206
209
211
212
212
213
213
216
225
227
227
230
230
231
231
232
232
232
236
236
236
236
239
241
242
242
245
247
247
247
250
250
256
257
259
259
268
269
269
271
271
271
272
273
274
274
277
277
284
289
290
292
297
297
298
300
302
302
303
303
305
305
305
307
307
307
307
311
314
315
316
316
317
317
329
334
334
337
339
339
339
339
340
340
344
344
345
345
345
352
354
355
355
358
360
360
360
363
363
369
370
372
372
373
377
377
378
378
378
382
382
382
382
383
383
384
390
390
396
397
401
401
402
403
413
413
417
418
418
418
419
422
427
428
430
430
435
440
440
442
458
461
463
482
487
487
502
507
507
526
528
531
549
554
554
568
573
573
587
587
591
594
596
615
620
620
635
640
640
653
658
658
670
674
676
679
692
697
697
715
718
720
739
744
744
759
764
764
783
785
788
806
811
811
825
830
830
848
851
853
872
877
877
892
897
897
1298
1299
1300
5
5
5
6
7
7
11
11
12
13
15
15
16
16
17
17
17
18
18
26
26
26
27
27
27
27
27
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
31
31
31
31
31
31
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
35
35
35
35
35
35
35
35
35
35
35
35
37
37
41
41
47
48
48
49
51
51
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
57
57
57
57
57
57
57
58
58
60
60
68
68
71
71
71
71
71
71
79
79
79
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
81
82
82
82
82
82
82
82
82
82
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
83
83
83
83
83
83
83
83
83
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
87
87
89
89
89
90
90
90
90
91
91
91
91
91
92
92
92
102
103
103
106
106
106
106
106
106
107
107
114
114
118
118
120
121
121
121
121
122
123
124
124
124
124
125
125
125
126
126
127
127
127
128
128
129
129
130
130
135
135
139
139
140
142
142
142
142
142
142
143
145
145
147
147
153
157
157
158
158
160
160
160
161
161
161
161
162
162
162
162
163
163
163
165
165
165
165
166
174
174
175
177
177
177
177
177
177
177
178
179
184
184
189
192
192
192
192
193
193
194
194
194
195
195
195
195
196
196
196
199
199
200
200
201
202
205
205
205
207
210
210
213
213
213
213
213
213
226
227
227
228
231
231
231
231
232
232
233
233
233
237
237
239
241
242
243
243
246
248
248
251
251
256
260
260
269
270
270
272
272
273
274
275
275
278
278
278
278
288
290
291
293
298
298
299
303
303
304
304
306
306
308
308
312
314
317
317
318
318
335
335
338
340
340
340
340
340
340
341
344
344
345
345
346
346
346
352
354
355
356
356
359
361
361
364
364
369
373
373
374
378
378
379
379
379
383
383
384
384
391
391
391
391
397
401
402
402
403
404
418
419
419
420
423
427
431
431
436
441
441
459
462
464
483
488
488
503
508
508
527
529
532
550
555
555
569
574
574
592
595
597
616
621
621
636
641
641
654
659
659
675
677
680
693
698
698
716
719
721
740
745
745
760
765
765
784
786
789
807
812
812
826
831
831
849
852
854
873
878
878
893
898
898
1299
1300
1301
5
5
7
8
8
12
12
12
13
14
15
15
15
15
17
17
17
19
19
26
26
26
27
27
27
27
27
28
28
28
28
29
29
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
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
37
37
37
38
39
42
42
44
48
48
49
49
52
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
56
56
56
56
56
56
56
56
56
56
56
57
57
57
58
58
58
58
58
61
61
69
69
72
72
72
72
72
72
72
72
80
80
80
81
81
81
81
81
81
82
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
87
87
88
88
88
88
89
89
89
90
90
90
90
91
91
91
92
92
92
93
93
103
103
103
104
104
107
107
107
107
107
107
107
107
108
108
119
119
121
122
122
123
124
125
125
125
126
126
126
126
127
128
128
128
129
129
130
130
134
135
135
135
135
136
140
140
141
143
143
143
143
143
143
143
143
144
146
146
148
148
148
154
158
158
158
158
159
159
159
159
160
160
160
161
161
161
162
162
162
163
163
163
164
165
165
166
166
167
171
175
175
176
178
178
178
178
178
178
178
178
178
178
180
185
185
190
192
193
193
193
193
193
193
194
195
195
195
196
196
196
197
197
200
201
202
203
204
206
206
206
206
208
211
211
214
214
214
214
214
214
214
214
216
216
227
229
232
232
232
232
233
233
234
234
234
238
238
239
239
242
243
247
247
248
248
248
248
249
252
252
257
259
261
261
261
270
271
271
271
271
273
273
274
275
276
276
276
278
278
279
279
284
289
291
291
294
299
299
300
304
304
305
305
305
306
306
306
306
307
309
309
313
315
317
318
318
319
319
319
329
329
336
336
339
341
341
341
341
342
345
345
346
347
347
352
352
355
356
360
360
361
361
361
361
362
365
365
370
372
374
374
374
375
379
379
380
380
380
384
384
384
384
385
385
389
391
391
392
392
397
398
402
403
404
404
418
419
419
419
419
419
420
421
424
428
430
432
432
432
437
442
442
442
442
460
463
465
484
489
489
504
509
509
528
530
533
551
556
556
570
575
575
593
596
598
617
622
622
637
642
642
655
660
676
678
681
694
699
699
717
720
722
741
746
746
761
766
766
785
787
790
808
813
813
827
832
832
850
853
855
874
879
879
894
899
899
1300
1301
1302
5
5
5
7
13
13
13
14
15
16
16
16
16
17
17
17
18
18
20
20
23
26
26
27
27
28
28
28
29
29
29
29
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
31
31
31
31
31
31
31
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
32
32
33
33
33
33
33
33
33
33
33
33
33
33
35
35
35
35
37
37
39
43
43
45
48
50
51
51
51
51
51
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
55
55
55
55
56
56
56
57
57
58
62
62
70
70
70
72
72
72
72
73
73
73
73
75
75
75
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
86
87
87
88
88
88
89
89
89
89
90
90
90
90
90
90
91
91
92
92
92
93
93
101
104
104
104
105
105
105
106
107
107
107
107
108
108
108
108
109
109
118
120
120
122
123
124
124
125
125
125
125
125
126
126
126
126
126
126
127
127
127
128
128
128
128
129
129
129
130
130
131
136
136
137
141
141
141
142
143
143
143
143
144
144
144
144
146
147
147
155
156
159
159
159
159
160
160
160
160
161
161
161
161
161
161
162
162
163
163
163
164
164
165
166
167
167
168
175
176
176
176
177
178
178
178
178
179
179
179
179
181
186
186
186
191
193
194
194
194
195
195
196
196
196
196
196
196
196
197
197
197
197
197
197
198
199
199
200
200
201
202
204
204
205
207
209
212
212
212
214
214
214
214
214
215
215
215
215
217
217
219
228
230
231
233
233
233
233
234
234
235
235
236
236
236
236
239
239
240
240
241
241
241
243
248
249
249
250
253
253
259
260
269
271
272
272
272
272
274
274
275
276
277
277
279
280
280
288
290
295
299
300
300
301
305
305
306
306
307
307
307
307
307
307
308
310
310
314
317
318
319
319
327
330
330
332
337
337
340
342
342
342
342
343
344
345
345
346
346
346
346
347
348
353
353
354
354
354
356
361
362
362
363
366
366
372
373
376
380
380
381
381
381
382
382
382
382
382
385
385
385
385
386
386
392
393
393
399
401
403
404
412
420
420
420
421
422
425
430
431
438
440
443
443
443
443
461
464
466
485
490
490
505
510
510
529
531
534
552
557
557
571
576
576
594
597
599
618
623
623
638
643
643
656
661
677
679
682
695
700
700
718
721
723
742
747
747
762
767
767
786
788
791
809
814
814
828
833
833
851
854
856
875
880
880
895
900
900
1301
1302
1303
5
5
5
5
6
7
7
7
9
14
15
15
15
16
17
17
17
17
17
17
19
19
21
21
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
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
31
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
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
40
44
44
46
48
48
49
49
49
49
51
51
51
52
52
52
52
52
53
53
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
56
56
56
56
56
56
56
56
56
56
57
57
57
59
63
63
70
70
70
72
72
72
72
72
73
73
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
80
80
80
82
82
82
82
82
82
82
83
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
87
88
88
89
89
89
89
89
89
90
90
90
90
90
91
91
91
91
92
93
93
93
94
94
102
102
105
105
105
105
107
107
107
108
108
109
109
109
109
110
110
118
122
122
122
124
125
125
126
126
127
127
127
128
129
129
129
129
129
130
130
130
131
132
135
135
137
137
141
141
141
143
143
143
144
144
145
145
145
145
145
145
147
147
148
148
148
156
157
157
160
160
160
160
161
161
161
161
161
162
162
162
162
163
164
164
165
165
165
165
166
167
169
176
176
176
176
176
178
178
178
178
179
179
180
180
180
180
182
187
187
187
187
187
187
192
193
193
193
193
193
195
195
195
196
197
197
197
197
197
198
198
198
198
199
200
201
202
203
205
205
205
206
206
208
210
212
212
212
214
214
215
215
215
215
216
216
216
216
220
229
231
231
234
234
235
235
236
237
237
240
240
242
242
242
242
248
248
249
250
250
254
254
260
260
261
261
270
270
273
275
275
276
277
278
278
278
278
280
289
289
291
291
296
300
300
300
300
301
301
302
306
306
306
306
307
308
308
308
308
311
311
315
318
318
319
319
320
320
328
328
333
338
338
341
343
343
343
343
344
344
346
347
348
349
355
355
355
355
361
361
362
363
363
367
367
373
373
374
374
377
381
381
382
382
383
383
383
383
386
386
387
387
391
391
393
400
402
402
402
402
404
404
405
413
413
413
413
419
419
421
421
421
423
426
431
431
432
432
439
441
441
444
444
462
465
467
486
491
491
506
511
511
530
532
535
553
558
558
572
577
577
595
598
600
619
624
624
639
644
644
657
659
659
662
678
680
683
696
701
701
719
722
724
743
748
748
763
768
768
787
789
792
810
815
815
829
834
834
852
855
857
876
881
881
896
901
901
1302
1303
1304
1
5
5
7
8
8
10
14
16
17
17
17
17
17
18
18
18
18
18
18
20
20
20
20
22
22
26
26
26
29
29
29
29
29
29
29
29
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
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
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
41
43
43
45
45
46
49
49
49
49
50
50
50
50
50
51
52
52
52
53
53
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
58
60
64
64
68
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
73
73
73
73
73
74
74
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
80
80
80
80
80
80
80
80
80
80
80
80
80
80
82
82
82
84
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
87
88
89
89
89
90
90
90
90
91
91
91
92
92
92
92
92
93
93
93
94
94
94
95
95
103
106
106
106
106
106
107
107
107
107
107
107
108
108
108
108
109
109
111
111
114
118
119
123
123
125
125
125
126
126
126
126
127
127
128
128
130
130
130
131
131
131
132
133
136
139
142
142
142
142
143
143
143
143
143
143
144
144
144
145
145
146
149
149
149
157
160
161
161
161
161
162
162
162
163
163
163
163
163
164
164
164
165
165
166
166
166
167
167
170
170
174
176
177
177
177
177
178
178
178
178
178
178
178
179
179
179
179
180
180
183
188
188
188
188
193
194
194
194
196
196
196
197
197
197
198
198
198
198
199
199
199
201
202
203
204
206
207
207
209
210
211
213
213
213
213
214
214
214
214
214
214
215
215
216
216
221
221
227
230
231
232
232
235
235
236
236
237
238
238
241
241
243
243
249
250
255
255
262
262
274
276
276
277
278
279
279
279
289
291
292
292
297
301
301
302
302
303
307
307
307
308
309
309
312
312
316
320
320
321
321
334
334
339
339
340
342
344
344
344
344
345
345
347
348
349
350
356
356
362
363
368
368
375
375
378
382
382
383
383
384
384
387
387
388
388
392
401
402
403
404
405
405
406
414
414
420
422
424
424
427
427
433
433
440
445
445
463
466
468
487
492
492
507
512
512
531
533
536
554
559
559
573
578
578
596
599
601
620
625
625
640
645
645
658
660
663
679
681
681
684
684
697
702
702
720
723
725
744
749
749
764
769
769
788
790
793
811
816
816
830
835
835
853
856
858
877
882
882
897
902
902
1303
1304
1305
1
1
1
9
9
11
15
15
15
17
18
19
19
19
19
20
20
21
21
21
21
23
28
28
29
29
29
29
29
29
29
31
31
31
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
33
33
33
33
33
33
33
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
35
42
44
44
46
51
52
52
52
52
52
52
52
52
53
54
54
57
58
58
59
61
65
65
69
70
70
71
71
72
72
72
72
72
72
72
72
72
73
73
74
74
74
74
74
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
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
79
79
79
81
81
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
85
87
87
88
89
89
89
89
90
90
91
91
92
92
93
93
93
93
93
93
93
93
94
94
94
95
95
95
96
96
104
104
105
105
106
106
107
107
107
108
108
109
109
109
109
109
109
112
112
114
119
120
121
123
123
123
123
124
124
124
125
125
125
126
126
126
127
127
127
130
131
132
132
132
133
134
135
137
140
141
141
142
142
143
143
144
144
145
145
145
147
147
148
148
148
150
150
150
158
159
160
160
162
162
163
163
164
164
164
164
164
165
165
165
165
165
166
166
167
167
167
171
171
175
176
176
176
177
177
178
178
178
179
179
179
180
180
180
180
184
188
189
189
192
193
194
194
194
194
194
195
195
195
195
196
196
196
197
197
197
197
197
198
198
199
199
200
202
203
204
205
205
206
206
206
207
208
208
210
211
212
212
212
213
213
214
214
215
215
216
216
217
222
222
222
222
227
231
232
233
233
235
235
236
236
237
237
238
239
239
242
242
243
248
250
251
256
256
260
261
261
261
263
263
272
275
277
277
278
278
278
279
280
280
280
289
291
292
293
293
298
301
303
303
304
306
306
306
308
308
308
309
310
310
313
313
317
318
319
319
319
321
321
322
322
330
335
335
335
335
340
340
340
343
343
343
345
345
345
345
346
346
348
349
350
351
356
361
363
364
369
369
373
374
374
374
376
376
379
381
381
383
383
384
384
385
385
385
388
388
389
389
391
391
393
402
402
404
404
405
406
406
407
414
419
421
423
428
428
431
432
432
432
434
434
441
443
446
446
464
467
469
488
493
493
508
513
513
532
534
537
555
560
560
574
579
579
597
600
602
621
626
626
641
646
646
659
661
664
680
685
685
698
703
703
721
724
726
745
750
750
765
770
770
789
791
794
812
817
817
831
836
836
854
857
859
878
883
883
898
903
903
1304
1305
1306
5
9
16
18
19
19
20
21
21
22
22
22
22
24
26
26
29
29
29
29
29
29
29
29
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
43
45
45
47
48
48
48
48
48
48
48
48
48
48
52
53
53
53
53
53
53
54
54
54
54
54
54
54
54
55
55
55
55
55
56
56
56
57
57
57
58
59
59
60
62
66
66
70
70
71
72
72
72
73
73
73
73
73
73
73
73
73
74
74
75
75
75
75
75
75
75
75
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
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
79
79
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
82
82
82
82
82
82
82
82
82
82
82
82
82
82
86
88
89
89
89
89
90
90
91
91
92
92
93
93
94
94
94
94
94
94
94
95
95
97
97
104
105
105
106
107
107
107
107
108
108
108
109
109
109
109
110
110
110
110
113
113
118
120
121
122
124
124
125
125
125
125
126
126
126
127
127
128
128
128
130
132
133
133
133
134
135
135
135
136
141
141
142
143
143
143
144
144
145
145
146
146
146
147
147
147
148
148
149
149
149
151
159
159
161
163
163
164
165
165
165
165
165
165
166
166
166
166
167
168
168
172
172
176
176
176
176
177
178
178
178
179
179
179
180
180
180
181
181
185
188
190
190
193
193
193
194
195
195
195
196
196
196
197
197
198
198
198
199
199
200
200
201
203
204
205
205
205
205
206
206
207
207
207
211
212
212
213
213
214
214
214
215
215
216
216
217
217
217
220
222
222
223
223
231
232
233
234
234
236
237
237
238
238
239
240
240
243
243
243
248
248
249
252
257
257
260
260
260
261
262
262
262
271
272
272
278
278
278
278
279
279
279
280
281
281
289
289
292
293
299
301
304
304
305
306
306
307
307
309
309
310
311
311
314
314
318
318
318
318
319
320
320
320
323
323
330
333
335
335
336
336
341
344
344
344
346
346
346
346
347
347
349
350
351
352
356
361
361
362
365
370
370
373
373
373
374
375
375
375
380
382
384
384
385
385
385
386
386
389
389
390
390
391
391
392
392
402
402
403
405
405
406
408
414
419
419
420
424
429
429
431
431
431
432
433
433
433
442
443
447
447
468
470
489
494
494
509
514
514
535
538
556
561
561
575
580
580
601
603
622
627
627
642
647
647
660
662
665
681
686
686
699
704
704
725
727
746
751
751
766
771
771
792
795
813
818
818
832
837
837
858
860
879
884
884
899
904
904
1305
1306
1307
1
5
9
9
13
13
15
15
17
17
18
18
19
20
20
22
22
23
23
23
25
28
28
29
29
29
29
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
44
46
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
52
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
54
54
55
55
55
55
55
55
55
55
55
55
55
55
56
56
57
57
57
57
58
58
60
61
63
67
67
71
71
71
71
71
72
72
72
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
74
76
76
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
81
83
83
83
83
83
83
83
83
83
83
83
83
83
83
87
89
89
90
90
91
92
92
94
94
95
95
95
95
95
98
98
106
106
106
106
106
107
107
107
108
108
108
109
110
111
111
111
111
114
114
114
119
121
121
123
123
123
125
125
125
125
126
126
126
126
126
127
127
127
128
129
129
130
131
133
134
134
134
134
135
135
136
136
137
142
142
142
142
142
143
143
143
144
144
144
147
147
147
149
149
150
150
150
152
160
160
161
162
165
166
166
167
167
168
169
169
173
173
177
177
177
177
177
177
177
178
178
178
178
178
178
179
179
179
180
182
182
186
191
191
192
193
194
194
194
194
195
196
196
196
196
196
197
197
197
197
198
198
199
199
200
201
204
205
206
207
207
208
208
208
212
213
213
213
213
213
214
214
214
214
215
215
215
218
218
223
224
224
227
232
233
234
234
235
237
238
238
240
241
241
244
244
247
248
249
250
253
258
258
262
263
263
263
272
273
276
277
279
279
280
280
280
281
282
282
290
290
291
291
291
293
300
305
305
305
306
306
307
308
308
311
312
312
315
315
319
320
321
321
321
324
324
336
337
337
340
342
345
345
345
347
347
347
347
350
351
352
353
360
361
362
363
366
371
371
375
376
376
376
381
383
386
386
387
387
390
390
391
391
393
393
403
403
404
404
404
404
406
406
409
418
419
420
421
425
430
430
433
434
434
434
443
448
448
469
471
490
495
495
510
515
515
536
539
557
562
562
576
581
581
602
604
623
628
628
643
648
648
661
663
666
682
687
687
700
705
705
726
728
747
752
752
767
772
772
793
796
814
819
819
833
838
838
859
861
880
885
885
900
905
905
1306
1306
1308
5
5
9
10
15
18
19
19
19
20
20
20
21
21
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
28
29
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
31
31
31
31
31
31
34
35
35
35
35
35
35
35
35
35
35
35
35
35
45
47
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
52
52
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
56
56
56
56
57
57
57
57
58
58
58
59
59
61
62
64
68
68
69
71
71
71
71
71
71
71
72
73
74
74
74
75
75
75
75
77
77
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
82
88
89
90
90
90
90
91
91
92
92
93
93
95
95
96
96
96
96
99
99
104
104
104
106
106
106
106
107
108
109
109
109
109
110
110
110
110
110
111
112
112
115
115
118
120
122
122
123
124
124
125
126
126
127
127
128
128
128
129
129
129
130
130
131
132
134
134
135
135
135
135
135
136
136
137
137
137
138
140
142
142
142
142
143
144
145
145
146
146
146
146
148
148
148
148
150
150
151
151
153
159
159
160
161
161
161
162
163
163
163
164
166
167
167
168
168
169
170
170
174
174
175
177
177
177
177
178
179
179
179
179
179
180
180
181
181
181
181
183
183
187
192
192
193
193
193
194
195
195
195
196
196
197
197
197
198
198
199
199
199
200
200
200
200
201
202
205
206
206
207
208
208
209
209
211
213
213
213
213
213
214
215
215
216
216
217
217
217
217
217
217
219
219
222
222
224
231
233
234
236
238
239
239
241
242
242
245
245
248
250
251
254
259
259
261
263
264
264
272
272
276
277
278
280
280
280
281
281
281
281
282
282
283
283
283
292
292
292
292
301
306
306
306
307
308
309
309
312
313
313
316
316
319
320
321
322
322
325
325
330
330
335
335
337
343
344
346
346
346
348
348
351
352
353
354
361
363
364
367
372
372
374
376
377
377
382
384
385
385
387
387
388
388
389
391
391
392
392
394
394
405
405
405
405
405
407
410
419
421
422
426
431
431
432
434
435
435
443
443
444
449
449
470
472
491
496
496
511
516
516
537
540
558
563
563
577
582
582
586
603
605
624
629
629
644
649
649
662
664
667
683
688
688
701
706
706
727
729
748
753
753
768
773
773
794
797
815
820
820
834
839
839
860
862
881
886
886
901
906
906
1306
1307
1307
1309
9
9
10
11
11
11
11
15
19
19
19
20
20
20
21
21
22
22
24
25
25
25
25
25
25
25
25
26
27
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
31
31
31
31
31
31
31
31
31
31
31
31
31
31
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
32
35
35
35
35
35
35
47
47
47
47
47
48
48
48
49
49
49
50
50
51
51
51
51
51
51
51
52
52
52
52
53
53
54
54
54
54
54
55
55
56
57
57
58
58
59
59
59
60
60
62
63
65
69
69
69
71
72
72
72
73
73
73
73
74
75
75
75
75
75
75
75
75
76
76
76
76
78
78
80
80
80
80
80
80
80
80
80
80
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
87
89
89
90
90
91
91
92
92
92
92
92
93
93
93
93
93
94
94
94
96
97
97
100
100
102
104
105
105
106
108
109
110
110
110
111
111
111
111
111
113
113
116
116
119
119
121
121
123
123
125
125
128
129
129
129
129
130
130
130
131
131
132
133
135
136
136
136
137
137
138
138
138
140
142
144
145
146
146
147
147
147
147
149
149
149
149
149
151
154
157
160
160
160
161
161
162
162
163
163
163
164
164
164
164
164
164
165
167
168
168
169
170
171
171
175
175
175
177
179
180
180
180
181
181
182
182
182
182
184
184
187
188
193
193
193
194
194
194
196
196
196
198
199
200
200
200
201
201
201
201
202
203
206
207
207
207
207
208
209
211
213
214
215
215
216
216
217
217
218
218
218
218
218
218
220
220
223
232
232
234
234
235
237
239
240
240
242
242
243
243
246
246
248
249
251
255
260
260
262
262
270
273
273
275
277
278
279
279
281
282
283
283
284
284
284
293
293
300
302
306
307
307
307
308
309
310
313
314
314
317
317
320
320
321
326
326
328
331
331
336
340
344
345
345
347
347
347
347
349
349
352
353
354
355
355
361
362
364
368
373
373
375
375
383
383
385
386
386
388
388
389
389
390
392
392
393
393
395
406
406
406
408
411
413
419
420
422
427
432
432
433
433
441
444
444
445
450
450
464
471
473
492
497
497
512
517
517
532
536
538
541
559
564
564
578
583
583
587
597
604
606
625
630
630
645
650
650
663
665
668
684
689
689
702
707
707
721
728
730
749
754
754
769
774
774
789
793
795
798
816
821
821
835
840
840
854
861
863
882
887
887
902
907
907
1308
1308
1310
5
9
9
9
11
11
11
17
19
19
20
21
22
22
22
22
22
22
22
22
22
22
24
24
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
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
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
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
34
34
43
46
46
46
47
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
54
54
55
55
58
58
58
59
59
59
60
60
61
63
64
66
68
68
70
70
70
71
72
73
73
73
73
73
73
74
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
77
77
77
77
79
79
79
80
80
80
80
80
80
80
82
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
88
88
90
92
92
92
92
93
93
93
93
93
93
94
94
94
94
94
94
94
95
95
96
96
97
98
98
101
101
103
103
105
106
107
109
109
110
111
112
112
112
112
112
117
117
119
121
122
122
123
123
124
124
126
130
130
130
130
130
130
131
131
132
133
134
135
136
137
137
138
138
138
138
139
139
139
141
142
143
146
148
148
148
148
150
152
155
158
158
163
163
163
164
164
164
164
164
164
164
165
165
165
165
165
165
165
166
166
167
167
168
168
168
169
169
170
171
172
172
176
176
176
177
178
180
181
183
183
183
183
188
188
188
188
189
193
194
194
194
194
194
195
195
196
196
197
197
200
201
201
201
202
202
202
204
207
208
208
209
210
212
212
213
214
215
216
216
217
217
219
219
219
219
222
222
224
232
234
235
235
236
238
238
240
241
241
242
242
243
243
243
243
243
244
244
247
247
248
249
251
251
252
256
261
261
271
271
277
277
279
280
280
281
281
282
283
284
284
285
285
285
293
301
301
301
301
303
306
307
308
308
309
309
309
309
310
311
313
313
314
315
315
318
318
322
327
327
329
329
335
335
337
341
345
345
346
347
347
348
348
348
348
350
350
353
354
355
356
356
356
356
356
361
362
364
364
365
369
374
374
384
384
384
384
386
388
388
389
389
390
390
390
390
393
393
394
394
394
394
396
406
407
409
412
414
414
414
414
419
420
422
422
423
428
433
433
442
442
446
451
451
465
469
472
474
493
498
498
513
518
518
537
539
542
560
565
565
579
584
584
587
587
598
602
605
607
626
631
631
646
651
651
664
666
669
685
690
690
703
708
708
722
726
729
731
750
755
755
770
775
775
794
796
799
817
822
822
836
841
841
855
859
862
864
883
888
888
903
908
908
1309
1309
1311
1
1
5
5
5
9
18
19
19
20
22
23
23
23
23
24
25
25
25
26
26
26
26
26
26
26
26
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
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
32
32
32
32
32
34
34
34
34
34
34
34
34
34
34
34
34
34
34
44
47
47
47
47
47
48
50
50
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
55
56
56
56
57
59
59
59
60
60
61
62
64
65
67
69
69
70
70
71
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
78
78
78
78
78
78
78
79
79
79
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
85
89
91
94
94
94
94
95
95
95
95
95
95
96
96
96
97
97
98
99
99
102
102
105
105
108
109
109
109
109
110
110
110
110
110
110
111
113
118
118
119
121
122
123
123
123
124
125
125
126
126
126
127
131
131
133
134
135
138
138
139
139
139
139
140
140
140
141
141
144
145
145
146
146
146
146
147
151
153
156
165
165
165
166
166
166
166
166
166
167
167
168
168
169
169
169
170
170
171
172
173
173
176
176
177
177
179
180
180
180
181
181
181
181
182
189
189
190
194
195
195
195
196
196
197
197
197
197
197
198
198
201
202
203
205
205
206
208
209
209
210
211
212
212
213
215
216
216
216
217
217
217
217
218
218
222
222
223
223
232
234
235
236
236
237
241
242
242
243
243
244
244
244
245
245
248
248
252
252
253
257
262
262
264
280
281
281
282
282
283
284
285
285
286
286
286
293
302
302
304
309
309
310
310
311
312
314
314
315
316
316
319
319
322
323
328
328
335
335
336
336
345
346
347
347
348
348
349
349
349
349
351
351
351
352
354
355
356
357
357
357
365
365
366
370
375
375
377
387
389
389
390
390
391
391
394
394
395
395
395
395
397
406
410
413
415
415
423
423
424
429
434
434
435
447
452
452
470
473
475
494
499
499
514
519
519
538
540
543
561
566
566
580
585
585
587
588
588
603
606
608
627
632
632
647
652
652
667
670
686
691
691
704
709
709
727
730
732
751
756
756
771
776
776
795
797
800
818
823
823
837
842
842
860
863
865
884
889
889
904
909
909
1310
1310
1312
4
4
5
5
6
6
6
9
10
11
11
19
21
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
26
26
26
26
26
26
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
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
33
33
33
33
33
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
45
47
48
48
48
48
48
48
48
48
48
48
49
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
56
56
56
57
57
57
57
57
58
60
60
61
62
62
63
63
65
65
66
66
68
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
80
84
85
90
92
93
94
94
94
94
95
95
95
95
96
96
96
96
97
97
98
98
99
100
100
100
100
103
103
103
103
105
106
106
106
106
109
110
110
110
110
111
111
111
111
111
111
112
114
119
119
119
119
122
123
125
126
126
126
127
127
127
128
128
129
131
134
135
136
139
139
140
140
140
140
141
141
142
142
142
142
145
146
146
146
146
147
147
147
147
148
151
154
157
160
164
165
165
165
165
166
166
166
167
167
167
168
168
168
169
169
170
170
170
171
171
171
171
173
174
174
174
174
177
177
177
177
178
178
180
181
181
181
181
182
182
182
182
183
189
191
196
196
196
197
197
197
198
198
198
198
198
199
199
200
204
206
206
207
209
209
209
210
210
211
211
212
212
213
213
213
213
214
216
217
217
217
217
217
218
218
218
218
218
219
219
224
224
232
232
235
236
238
242
243
243
244
244
244
245
246
246
246
246
249
249
249
249
253
253
258
263
263
264
273
281
281
282
282
283
283
284
286
286
287
287
287
302
305
310
310
311
311
313
315
315
316
317
317
317
317
320
320
320
320
322
324
329
329
331
337
337
345
345
347
348
349
350
350
352
352
352
353
355
355
356
356
357
357
357
358
358
366
366
371
376
376
377
386
388
390
390
391
391
392
392
392
392
394
395
395
395
395
396
396
396
396
411
414
415
424
424
430
435
435
435
444
448
453
453
471
474
476
495
500
500
515
520
520
539
541
544
562
567
567
581
586
586
588
588
589
604
607
609
628
633
633
648
653
653
668
671
687
692
692
705
710
710
728
731
733
752
757
757
772
777
777
796
798
801
819
824
824
838
843
843
861
864
866
885
890
890
905
910
910
1311
1311
1313
5
7
7
7
7
9
11
11
12
12
21
21
22
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
31
31
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
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
35
35
35
35
35
35
35
35
35
35
35
35
48
48
48
48
48
49
49
49
49
49
49
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
50
50
50
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
54
54
54
54
54
54
55
55
55
55
56
56
56
56
56
57
57
57
57
57
58
58
58
59
61
61
62
66
66
67
67
68
69
69
69
69
69
69
69
69
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
82
91
91
93
93
93
93
94
94
94
94
95
95
95
95
95
96
96
96
96
97
99
99
100
104
104
104
104
105
106
106
107
110
110
110
110
111
111
111
111
112
112
112
112
112
112
115
120
120
120
120
121
121
121
123
125
126
126
127
128
128
128
128
128
129
129
129
129
130
131
135
136
137
138
140
140
141
141
142
142
142
142
146
146
146
146
147
147
147
147
148
148
148
148
155
158
160
162
164
164
164
165
165
165
165
166
166
166
166
166
167
167
167
168
168
170
170
171
174
175
175
175
175
177
177
179
179
181
181
181
181
182
182
182
182
183
183
183
183
189
192
196
196
197
197
197
197
198
198
199
199
199
199
199
200
200
200
200
201
205
207
207
208
212
212
213
213
213
213
215
217
217
217
217
218
218
218
218
218
218
219
219
219
219
220
220
225
225
233
233
234
234
234
236
237
239
241
243
244
244
244
245
245
246
250
250
250
250
251
259
264
264
273
281
282
283
283
285
287
287
288
288
288
302
306
308
309
311
311
312
314
316
316
317
321
321
321
321
325
330
330
331
333
338
338
344
346
346
347
347
347
348
349
351
351
353
353
353
354
357
358
358
359
359
364
372
377
377
383
386
387
389
391
391
392
392
394
396
396
396
396
397
397
412
415
415
422
431
436
436
444
449
454
454
472
475
477
496
501
501
516
521
521
540
542
545
563
568
568
582
587
587
588
588
589
590
605
608
610
629
634
634
649
654
654
669
672
688
693
693
706
711
711
729
732
734
753
758
758
773
778
778
797
799
802
820
825
825
839
844
844
862
865
867
886
891
891
906
911
911
1312
1312
1314
4
6
8
8
8
8
11
13
13
19
20
20
22
22
22
25
25
25
25
25
25
26
26
26
26
26
27
28
28
29
29
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
32
32
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
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
49
49
49
49
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
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
54
54
55
55
55
55
55
56
56
57
57
57
58
58
59
59
59
59
60
60
62
62
63
67
67
68
68
69
70
70
70
70
70
70
70
70
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
82
82
83
92
94
94
95
96
96
96
96
96
96
96
97
97
97
97
97
98
100
100
101
105
105
105
105
108
109
109
111
111
111
111
112
112
113
113
113
113
113
113
113
116
121
121
122
122
122
122
123
128
129
129
129
129
129
130
130
130
130
130
130
131
131
135
136
137
138
141
141
142
142
143
143
145
145
147
147
147
147
148
148
149
149
149
149
149
149
150
151
151
154
156
159
164
166
167
167
167
167
167
168
168
168
168
169
169
171
171
172
175
176
176
176
176
179
180
180
180
180
182
182
182
182
183
183
184
184
184
184
184
184
193
193
194
198
198
199
199
200
200
200
200
200
201
201
201
201
201
201
202
202
203
206
208
208
209
209
209
213
213
214
214
216
216
216
218
218
218
218
219
219
219
219
220
220
220
220
220
220
221
221
221
226
235
235
235
235
240
242
244
245
245
246
246
247
248
251
251
251
251
260
264
264
265
265
277
281
282
283
284
284
286
286
288
288
289
289
289
289
292
306
307
312
312
313
315
317
317
318
322
322
322
322
322
322
326
331
331
334
339
345
348
348
348
348
349
349
352
352
352
354
354
354
354
355
359
359
360
360
361
373
377
377
378
378
388
390
390
392
392
393
393
394
395
397
397
397
397
398
398
405
407
411
413
416
419
432
435
435
437
437
450
455
455
473
476
476
478
478
497
502
502
517
522
522
541
543
543
546
546
564
569
569
583
588
588
589
590
606
609
609
611
611
630
635
635
650
655
655
664
668
670
673
689
694
694
707
712
712
730
733
733
735
735
754
759
759
774
779
779
798
800
800
803
803
821
826
826
840
845
845
863
866
866
868
868
887
892
892
907
912
912
1313
1313
1315
5
7
9
9
11
11
13
23
23
24
24
25
26
26
26
26
26
27
27
28
29
29
29
29
29
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
31
31
31
31
32
33
33
33
35
35
35
35
35
35
35
35
35
35
35
35
35
47
47
47
47
47
48
48
48
49
49
49
51
51
51
51
51
51
51
51
51
51
52
52
52
52
53
53
53
53
53
54
54
55
56
56
58
58
59
59
59
60
60
60
60
60
60
61
61
63
63
63
64
68
68
69
69
70
70
70
71
71
71
71
71
71
71
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
82
82
82
83
83
84
93
94
94
95
96
97
97
97
97
97
97
98
98
98
98
99
99
101
101
102
102
105
105
106
106
106
106
108
108
109
110
110
111
111
112
112
113
113
113
113
113
113
114
114
114
114
114
117
122
122
123
123
123
124
126
130
130
130
131
131
131
131
131
132
132
135
136
137
138
138
138
139
141
141
142
142
143
143
144
144
145
146
146
147
147
149
149
149
149
149
149
149
150
150
150
150
152
152
155
157
160
164
165
166
167
168
168
168
168
169
169
169
170
170
170
172
172
173
173
176
176
176
177
177
177
177
180
180
180
180
180
181
181
181
181
182
182
184
184
184
184
184
184
185
185
185
185
193
194
194
194
195
196
196
197
199
199
201
201
201
202
202
202
202
202
203
203
204
207
207
207
209
209
209
210
210
210
212
212
214
214
215
215
216
217
217
217
218
218
220
220
220
220
220
220
221
221
221
221
221
221
222
222
225
225
227
236
236
241
243
245
245
246
246
247
247
248
248
248
249
251
251
252
252
252
252
261
262
265
265
266
266
277
282
283
284
285
285
289
289
290
290
290
290
293
293
293
293
306
307
308
309
309
313
313
314
316
316
318
318
319
319
320
323
323
323
323
323
323
327
332
332
334
334
338
338
340
349
349
350
350
353
353
355
355
355
355
355
356
360
360
361
361
361
362
364
364
374
375
378
378
379
379
389
390
391
391
393
393
394
394
394
395
396
398
398
398
398
399
399
406
406
406
406
412
414
417
419
420
422
422
433
433
436
436
438
438
451
456
456
474
479
479
498
503
503
518
523
523
542
547
547
565
570
570
584
588
588
589
589
590
607
612
612
631
636
636
651
656
656
669
671
674
690
695
695
708
713
713
731
736
736
755
760
760
775
780
780
799
804
804
822
827
827
841
846
846
864
869
869
888
893
893
908
913
913
1314
1314
1316
1
1
4
4
5
5
10
10
13
13
13
22
22
25
26
26
26
26
26
26
26
27
27
27
27
27
27
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
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
34
34
35
35
35
35
35
35
46
46
46
48
48
48
48
48
48
48
48
48
48
48
48
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
50
50
50
51
51
51
51
51
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
52
52
53
54
54
54
55
55
56
56
57
57
59
59
59
59
60
60
60
61
61
62
62
64
64
64
65
69
69
70
70
70
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
72
72
74
74
74
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
80
80
80
80
80
82
83
84
84
85
94
95
95
95
95
96
96
98
99
99
102
102
103
103
105
107
107
107
107
109
109
110
111
111
111
111
113
113
113
113
114
114
115
115
115
115
115
118
123
123
123
123
124
126
126
126
127
129
130
130
130
130
131
131
131
132
132
133
133
135
138
139
139
139
140
141
143
144
144
145
145
145
145
146
147
147
147
147
149
149
150
150
150
150
151
151
151
151
156
158
161
166
166
167
167
168
169
170
171
173
173
174
174
176
177
178
178
178
178
180
180
181
181
181
182
182
182
182
182
182
184
184
185
185
186
186
186
186
193
194
195
195
197
197
197
197
197
198
200
200
200
201
201
201
201
202
202
202
203
203
204
204
205
208
208
210
210
210
211
212
215
215
216
216
216
216
217
218
218
218
218
218
220
220
221
221
222
222
222
222
223
223
226
226
228
236
242
244
247
247
248
248
248
249
249
252
252
253
253
253
253
262
263
263
267
281
283
284
285
286
286
290
290
291
291
291
291
294
294
306
309
310
310
314
314
315
319
319
320
320
321
321
324
324
324
324
328
333
333
339
339
341
349
351
351
356
356
356
356
356
357
361
361
361
362
362
365
365
375
376
376
380
380
390
394
394
394
395
395
395
396
397
399
399
399
399
400
407
407
413
415
418
419
423
423
434
434
434
439
439
452
457
457
475
480
480
499
504
504
519
524
543
548
548
566
571
571
585
589
590
590
608
613
613
632
637
637
652
657
670
672
675
691
696
696
709
714
714
732
737
737
756
761
761
776
781
800
805
805
823
828
828
842
847
847
865
870
870
889
894
894
909
914
1315
1315
1317
1
1
5
5
5
7
11
11
11
11
13
19
24
24
24
25
25
25
25
25
25
25
27
27
27
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
29
29
29
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
33
33
35
35
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
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
50
50
50
50
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
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
54
55
55
55
55
56
56
56
56
57
57
58
58
59
60
60
60
60
60
61
61
61
65
65
65
66
69
69
69
70
70
71
71
71
71
71
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
75
75
75
75
75
75
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
78
78
78
78
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
79
79
79
79
79
80
80
81
82
83
84
85
85
85
86
95
99
100
100
103
103
103
104
104
108
108
108
108
110
110
111
111
111
111
111
112
112
112
112
114
114
114
114
115
115
119
123
124
124
126
127
127
127
127
128
128
129
129
129
130
130
130
130
131
131
131
131
132
132
132
136
138
139
140
140
140
140
141
144
145
145
146
146
146
146
147
147
147
147
147
148
148
148
150
150
151
151
157
158
159
162
164
169
170
171
171
174
174
175
175
178
179
179
179
179
181
181
181
182
182
182
182
182
183
183
183
183
183
185
185
186
186
194
196
196
197
198
198
198
198
198
198
198
199
199
200
200
200
201
201
201
201
201
202
202
202
202
203
203
203
206
211
211
211
212
216
216
216
217
217
217
217
218
218
218
218
218
219
219
219
219
221
221
222
222
224
224
225
227
227
236
243
245
248
248
249
249
249
250
250
251
253
253
253
254
254
254
254
263
268
271
277
282
284
284
286
287
287
291
291
292
292
292
292
294
307
309
310
311
311
311
315
315
316
320
320
321
321
325
325
325
325
329
329
334
338
340
340
349
352
352
357
357
357
357
357
358
362
362
362
363
363
364
366
366
366
376
381
381
384
390
391
395
395
395
396
396
396
397
397
400
400
400
400
401
407
414
416
419
420
422
424
424
424
435
440
440
442
453
458
476
481
481
500
505
505
520
525
544
549
549
567
572
572
586
588
590
591
609
614
614
633
638
638
653
658
671
673
676
692
697
697
710
715
733
738
738
757
762
762
777
782
801
806
806
824
829
829
843
848
866
871
871
890
895
895
910
915
1316
1316
1318
5
5
6
7
12
12
13
13
13
22
22
25
25
25
25
25
25
25
25
25
25
25
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
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
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
34
34
36
36
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
51
51
51
51
51
51
51
51
51
51
51
51
55
56
57
57
58
58
59
59
60
61
61
61
61
61
62
62
62
66
66
66
67
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
80
80
80
82
84
86
87
96
97
97
97
97
98
98
98
100
101
101
104
104
104
105
105
109
109
109
109
110
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
115
115
120
125
125
128
128
128
129
129
130
131
132
132
132
132
133
133
133
138
139
140
141
142
142
142
145
146
146
146
147
147
148
148
148
148
148
148
148
149
149
149
149
149
149
149
149
151
151
152
158
159
160
163
168
168
168
168
169
169
169
170
171
175
175
176
176
179
180
180
180
180
181
181
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
184
184
186
186
188
196
197
197
199
199
199
200
200
200
200
202
202
203
203
203
203
204
204
204
207
210
212
212
212
213
217
217
217
217
218
218
219
219
219
219
219
219
219
220
220
220
220
220
220
220
220
220
222
222
225
225
225
243
244
246
249
249
250
250
251
251
251
252
255
255
255
255
264
265
266
266
269
272
281
283
287
288
288
292
292
293
293
293
293
294
301
309
310
311
316
316
317
321
321
322
322
323
326
326
326
326
330
330
333
333
335
338
353
353
356
358
358
358
358
358
359
363
363
364
364
364
365
377
378
382
382
385
392
394
396
396
396
397
397
397
399
399
401
401
401
401
402
407
414
415
417
420
422
423
436
436
441
441
443
454
457
457
459
477
482
482
501
506
506
521
523
523
526
545
550
550
568
573
573
587
588
589
590
590
592
610
615
615
634
639
639
654
656
656
659
672
674
677
693
698
698
711
714
714
716
734
739
739
758
763
763
778
780
780
783
802
807
807
825
830
830
844
847
847
849
867
872
872
891
896
896
911
913
913
916
1317
1319
5
5
7
8
11
11
13
13
13
13
13
13
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
31
31
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
34
34
35
35
37
37
47
47
47
47
47
48
48
48
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
53
56
57
57
57
59
59
59
60
60
60
61
62
62
62
62
63
63
67
67
67
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
77
77
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
81
81
83
85
85
87
95
96
97
97
97
98
98
98
99
99
101
102
102
105
105
105
105
106
106
108
110
110
110
110
110
112
112
113
113
114
114
114
114
114
114
114
114
114
114
121
126
126
127
128
128
128
130
130
130
131
131
131
131
132
133
133
133
134
134
139
139
140
140
141
142
143
143
146
146
147
147
148
148
148
149
150
150
150
150
150
150
150
150
150
150
152
159
160
160
161
161
164
164
166
167
168
169
169
169
169
169
170
170
171
171
172
176
176
177
177
180
181
181
181
181
181
183
184
185
185
185
185
185
185
185
185
185
185
185
185
189
189
189
197
197
198
198
198
198
199
199
199
201
201
201
201
202
203
203
204
204
204
205
205
208
210
213
213
213
214
217
218
218
218
218
219
219
219
220
221
221
221
221
221
221
221
221
221
221
221
221
225
226
226
226
244
244
244
245
247
250
250
251
251
252
252
252
252
253
253
256
256
256
256
265
265
267
270
273
273
282
282
284
284
288
289
289
293
293
294
294
294
294
302
302
302
310
310
311
311
312
317
317
318
322
322
323
323
323
327
327
327
327
331
331
331
334
334
336
338
339
354
354
357
357
357
359
359
359
359
359
360
364
364
365
365
365
365
366
366
378
378
383
383
386
386
393
395
395
397
397
397
397
398
398
398
400
402
402
402
402
403
415
415
415
416
418
418
421
421
423
423
424
424
436
437
442
442
444
444
455
458
460
478
483
483
502
507
507
522
524
527
546
551
551
569
574
574
588
590
591
593
611
616
616
635
640
640
655
657
660
673
675
675
678
678
694
699
699
712
715
717
735
740
740
759
764
764
779
781
784
803
808
808
826
831
831
845
848
850
868
873
873
892
897
897
912
914
917
1318
1320
5
5
7
9
13
13
13
13
14
14
14
14
22
22
24
25
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
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
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
33
33
33
33
33
33
34
35
35
36
36
36
36
38
38
46
46
46
48
48
48
48
48
48
48
48
48
48
48
48
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
50
50
50
50
50
50
51
51
51
51
51
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
53
53
53
57
57
58
58
58
60
60
61
61
61
61
63
67
67
67
67
67
67
67
68
68
68
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
77
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
83
86
86
96
96
97
97
98
102
103
103
106
106
106
106
106
106
107
107
108
110
110
111
111
111
111
113
113
114
114
115
115
115
115
122
122
127
127
127
127
127
128
129
129
129
131
131
132
132
132
132
141
141
142
143
144
144
146
146
147
148
148
149
149
149
150
151
151
151
151
160
161
161
161
161
165
165
167
167
168
168
169
171
172
172
173
177
177
178
178
181
181
181
182
182
182
182
184
185
186
186
186
186
186
186
190
190
198
198
198
199
199
199
199
200
200
200
202
202
202
203
203
204
209
214
214
214
215
217
217
219
219
219
219
219
219
220
220
220
221
221
222
222
222
222
222
226
227
227
227
235
245
245
246
248
251
251
252
252
253
253
254
254
257
257
257
257
266
268
271
274
274
274
274
282
284
285
285
289
290
290
294
294
295
295
295
295
303
303
312
312
313
318
318
319
323
323
324
324
328
328
328
328
332
332
332
332
332
334
335
337
339
340
348
355
355
358
358
360
360
360
360
360
361
365
365
366
366
367
367
379
384
384
387
387
387
387
394
395
397
398
398
398
398
399
399
399
401
403
403
403
403
404
416
416
417
422
422
425
425
438
443
443
445
445
445
445
456
459
461
479
484
484
503
508
508
523
525
528
547
552
552
570
575
575
589
591
592
594
612
617
617
636
641
641
656
658
661
674
679
679
695
700
700
713
716
718
736
741
741
760
765
765
780
782
785
804
809
809
827
832
832
846
849
851
869
874
874
893
898
898
913
915
918
1319
1321
1
5
5
7
10
11
15
15
15
15
23
23
23
23
24
24
24
25
25
25
25
27
27
27
27
27
29
29
29
29
29
29
29
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
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
35
36
36
37
37
37
37
39
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
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
50
50
50
50
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
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
58
58
59
59
59
62
62
64
68
68
68
68
68
68
68
69
69
69
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
76
76
76
76
76
76
76
76
76
76
76
77
77
77
79
80
80
80
81
81
85
85
85
87
87
97
97
99
103
104
104
104
106
106
107
107
107
107
108
108
111
111
112
112
112
112
112
112
112
112
114
114
115
115
115
123
123
123
123
123
128
128
129
130
130
130
131
132
132
132
132
133
139
140
140
140
142
142
143
144
145
145
147
147
148
148
148
148
149
149
150
150
150
151
151
152
152
159
161
161
161
162
162
166
166
169
171
172
173
173
174
178
178
179
179
180
182
182
182
183
183
183
183
183
183
183
185
186
186
187
187
189
190
190
190
190
191
197
198
198
198
200
200
200
200
201
201
201
203
205
210
210
210
215
215
215
216
217
218
218
219
219
219
219
219
220
220
220
220
221
221
221
222
222
223
225
227
228
228
228
236
236
236
236
244
245
245
245
245
246
247
249
252
252
252
253
253
253
253
253
254
254
255
255
258
258
258
258
265
265
267
269
272
272
274
274
275
275
282
284
285
286
286
290
291
291
293
295
295
296
296
296
296
302
303
303
303
303
304
310
311
311
311
313
313
314
319
319
320
323
323
324
324
325
325
329
329
329
329
330
332
332
333
333
333
336
338
338
340
341
349
349
349
349
356
356
357
358
358
358
358
359
361
361
361
361
361
362
365
366
366
366
366
366
367
367
368
368
378
378
380
385
385
385
387
387
388
388
395
395
397
398
399
399
399
399
400
400
400
402
404
404
404
404
405
406
415
416
416
416
416
417
418
423
423
423
424
424
424
426
426
436
436
439
443
444
444
445
445
446
446
457
460
462
480
485
485
504
509
509
524
526
529
548
553
553
571
576
576
588
590
593
595
613
618
618
637
642
642
657
659
662
675
680
680
696
701
701
714
717
719
737
742
742
761
766
766
781
783
786
805
810
810
828
833
833
847
850
852
870
875
875
894
899
899
914
916
919
1315
1320
1322
5
5
5
5
7
11
15
16
16
16
20
20
22
22
23
23
23
23
24
24
25
26
26
26
26
26
26
26
26
26
29
29
29
29
29
29
29
29
29
29
29
29
29
29
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
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
36
38
38
38
38
40
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
51
51
51
51
51
51
51
51
51
51
51
51
57
59
59
60
60
61
61
62
62
62
63
63
63
63
63
65
69
69
69
69
69
69
69
70
70
70
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
74
74
74
75
75
76
76
76
76
76
76
76
76
78
78
78
78
79
79
79
79
80
80
81
81
81
81
82
85
86
86
86
95
98
98
98
98
98
99
99
99
100
104
105
105
107
108
108
108
108
108
109
109
113
113
113
113
113
113
113
113
113
114
114
115
115
115
115
124
124
124
128
129
129
130
131
131
133
133
133
133
133
134
134
134
134
139
139
139
140
141
141
141
144
145
146
146
149
149
149
149
149
150
150
150
150
150
151
151
151
151
153
153
162
162
163
163
167
167
169
169
169
169
169
170
170
170
172
173
175
179
179
180
180
181
181
181
181
183
184
184
184
184
184
184
184
184
185
185
186
186
188
188
191
191
192
197
197
197
198
199
199
199
199
201
201
202
202
204
204
204
204
205
205
205
206
208
211
211
211
216
216
216
217
220
220
220
220
220
221
221
221
221
221
221
221
222
222
222
222
224
226
228
228
229
229
237
237
246
246
247
248
250
252
252
252
253
253
253
254
254
254
254
254
255
255
259
259
259
259
263
266
266
268
270
273
275
276
276
282
282
285
286
291
292
292
294
294
294
294
296
296
297
297
297
297
304
304
305
310
310
310
311
312
312
312
315
320
320
321
321
324
324
325
325
326
326
330
330
330
330
333
334
334
334
334
337
339
339
341
341
350
350
357
357
359
359
360
362
362
362
362
362
363
365
365
365
366
367
367
367
367
367
368
368
376
379
379
381
386
386
388
389
389
395
395
396
398
399
400
400
401
401
401
403
405
405
405
405
406
407
407
407
407
417
417
418
419
423
423
423
424
424
424
425
425
425
434
437
437
440
445
445
446
447
447
458
461
463
481
486
486
505
510
510
525
527
530
549
554
554
572
577
577
587
588
589
591
594
596
614
619
619
638
643
643
658
660
663
676
681
681
697
702
702
715
718
720
738
743
743
762
767
767
782
784
787
806
811
811
829
834
834
848
851
853
871
876
876
895
900
900
915
917
920
1316
1318
1321
1323
5
5
5
5
6
6
7
7
7
11
11
12
16
17
17
20
20
24
24
25
25
25
25
25
25
25
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
26
27
27
27
27
27
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
31
31
31
31
31
31
31
31
31
33
33
33
34
34
34
35
37
39
39
39
41
47
47
47
47
47
48
48
48
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
58
58
60
60
61
62
62
62
63
63
63
64
64
64
66
68
68
68
68
68
68
68
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
73
74
74
74
76
76
76
76
76
76
76
76
76
76
76
76
77
77
79
79
80
80
80
80
80
80
80
80
80
82
83
86
87
87
87
87
96
96
96
97
98
99
99
99
100
100
101
105
106
106
106
106
108
109
109
110
110
112
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
124
125
129
129
130
130
131
132
132
132
133
134
134
134
134
134
135
135
141
142
142
142
145
146
147
147
150
150
150
151
151
151
151
151
151
151
151
151
151
151
151
152
152
161
161
163
163
167
168
168
168
169
170
170
170
170
170
171
171
171
171
171
173
176
180
180
181
181
182
182
184
185
185
185
185
185
185
186
186
186
186
186
186
186
186
189
189
190
190
192
192
199
200
200
200
200
200
202
202
203
204
205
205
205
205
206
206
207
209
209
212
217
217
217
218
219
219
221
221
221
222
222
222
222
222
222
222
222
222
222
223
223
225
225
227
230
230
237
245
245
247
247
249
251
254
254
254
255
255
255
255
255
256
256
260
260
260
260
264
264
269
271
274
274
274
276
283
283
284
284
284
286
292
293
293
295
295
297
297
298
298
298
298
303
303
305
305
312
313
313
313
316
321
321
322
322
322
326
326
327
327
331
331
331
331
332
332
334
335
338
338
340
340
350
358
358
358
358
360
360
363
363
363
363
363
364
367
368
368
368
368
368
369
369
377
377
382
387
387
387
387
389
396
396
397
397
397
397
399
401
401
402
402
402
404
406
406
406
406
407
408
408
416
416
418
418
420
425
425
425
426
426
426
435
435
441
445
445
446
446
447
459
462
464
482
487
487
506
511
511
526
528
531
550
555
555
573
578
578
588
588
590
592
595
597
615
620
620
639
644
644
659
661
664
677
682
682
698
703
703
716
719
721
739
744
744
763
768
768
783
785
788
807
812
812
830
835
835
849
852
854
872
877
877
896
901
901
916
918
921
1319
1322
1324
5
5
6
7
7
8
8
11
13
16
16
16
16
17
18
18
22
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
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
31
31
31
31
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
33
33
33
33
33
33
35
36
36
36
36
36
38
40
40
40
42
46
46
46
48
48
48
48
48
48
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
50
50
50
50
51
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
61
61
61
62
62
63
63
65
67
67
67
67
68
68
68
68
68
68
68
69
69
69
69
69
69
69
72
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
73
73
73
73
73
73
73
73
73
76
76
76
76
76
76
76
77
77
78
78
79
81
81
81
81
81
83
84
85
87
87
88
88
97
97
98
98
102
106
107
107
107
110
110
111
111
113
113
114
115
115
115
115
115
115
116
116
116
116
124
126
131
131
132
132
133
133
133
140
142
143
143
146
147
148
148
150
151
152
152
152
152
152
152
153
153
162
164
168
168
169
169
169
169
172
172
172
172
177
181
181
182
182
182
185
185
186
186
186
186
187
187
187
187
190
190
191
198
200
201
201
203
203
203
204
204
206
208
213
218
218
218
219
220
221
223
223
223
223
223
223
224
224
226
226
226
228
228
231
231
237
246
250
252
253
255
255
255
256
256
256
256
257
257
261
261
261
261
270
272
275
275
285
285
285
285
293
294
294
295
298
298
299
299
299
299
304
311
313
314
314
317
322
322
323
327
327
328
328
332
332
332
332
333
336
339
339
339
341
341
341
350
359
359
359
364
364
364
364
364
365
366
368
369
369
369
369
370
370
383
388
388
388
398
398
398
398
398
402
402
403
403
403
405
407
407
407
407
408
408
417
421
424
426
426
426
427
427
442
446
447
447
460
463
465
483
488
488
507
512
512
527
529
532
551
556
556
574
579
579
589
589
591
591
593
596
598
616
621
621
640
645
645
660
662
665
678
683
683
699
704
704
717
720
722
740
745
745
764
769
769
784
786
789
808
813
813
831
836
836
850
853
855
873
878
878
897
902
902
917
919
922
1320
1323
1325
4
5
5
5
6
7
7
8
9
9
11
14
15
15
15
17
17
17
18
18
19
22
22
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
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
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
33
37
37
37
41
41
41
43
47
47
47
47
47
47
48
48
48
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
50
50
50
51
51
51
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
60
60
60
61
62
64
65
66
67
67
67
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
74
74
77
78
78
78
79
79
79
81
81
82
84
85
86
86
98
103
106
106
107
108
108
108
111
111
112
112
113
113
114
115
116
116
116
116
116
116
116
116
127
131
131
131
132
132
132
134
141
141
147
148
149
149
149
150
152
152
152
153
153
153
154
154
161
161
163
165
170
170
173
173
178
182
182
182
183
183
184
185
186
187
187
187
187
187
187
190
191
191
192
199
199
202
202
202
204
207
209
211
214
219
219
219
219
219
220
220
221
221
223
223
224
224
225
225
226
227
228
229
229
232
232
245
247
251
253
254
254
256
256
257
257
258
258
262
262
262
262
266
271
273
274
274
276
276
286
286
294
295
295
295
299
299
300
300
300
300
303
305
312
312
318
323
323
324
324
328
328
329
329
332
332
333
333
333
333
334
337
339
340
341
342
342
342
358
360
360
360
365
365
365
365
365
366
367
367
370
370
371
371
379
384
387
387
389
389
389
399
399
399
403
403
404
404
404
406
408
408
408
408
408
409
416
418
422
425
425
427
427
437
443
445
445
447
448
448
461
464
466
484
489
489
508
513
513
528
530
533
552
557
557
575
580
580
588
591
591
592
592
594
597
599
617
622
622
641
646
646
661
663
666
679
684
684
700
705
705
718
721
723
741
746
746
765
770
770
785
787
790
809
814
814
832
837
837
851
854
856
874
879
879
898
903
903
918
920
923
1321
1324
1326
5
7
8
8
9
9
15
15
16
18
18
18
18
18
18
18
20
22
22
23
23
23
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
26
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
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
31
31
31
31
31
31
31
31
31
31
33
36
38
38
38
38
38
40
41
41
42
42
42
42
44
44
45
45
46
46
46
46
46
46
46
46
48
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
58
60
61
61
62
63
63
63
63
64
64
64
65
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
69
69
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
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
77
77
78
79
79
79
79
79
79
80
80
81
81
81
81
81
81
83
86
98
99
100
104
106
106
107
107
108
109
109
112
112
113
113
113
114
114
114
114
115
115
115
116
116
116
117
117
117
117
117
117
128
129
131
132
132
132
132
133
133
133
134
134
134
135
135
135
149
150
150
150
150
150
150
152
152
152
152
152
152
153
153
154
154
155
155
161
161
162
162
166
170
171
171
171
173
179
183
183
184
184
185
185
185
185
186
186
187
187
187
188
188
188
188
190
190
191
192
192
200
202
203
203
205
205
205
206
206
206
208
210
211
215
219
219
220
220
220
220
220
221
221
221
221
221
223
223
223
223
223
223
225
225
226
226
226
228
228
229
230
230
233
233
245
245
246
252
254
257
257
258
258
259
259
263
263
263
263
266
274
274
274
275
275
277
286
295
296
296
300
300
301
301
301
301
303
303
304
319
324
324
324
325
329
329
330
330
332
332
333
333
334
334
334
334
339
341
341
342
343
343
343
358
358
359
361
361
366
366
366
366
366
367
371
371
372
372
379
385
387
387
388
388
390
390
399
400
404
404
405
405
407
409
409
409
409
410
416
416
417
423
428
428
437
444
445
445
446
446
449
449
465
467
485
490
490
509
514
514
531
534
553
558
558
576
581
581
592
593
593
598
600
618
623
623
642
647
647
664
667
680
685
685
701
706
706
722
724
742
747
747
766
771
771
788
791
810
815
815
833
838
838
855
857
875
880
880
899
904
904
921
924
1322
1325
1327
5
5
8
9
9
9
9
10
15
15
16
18
19
19
20
21
23
23
23
24
24
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
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
29
29
29
29
29
31
31
31
31
31
31
31
31
31
31
31
31
31
31
35
35
37
39
41
42
42
43
43
43
43
45
45
46
46
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
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
59
59
61
62
63
63
64
64
64
65
65
65
65
65
65
65
65
65
66
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
76
76
78
79
80
80
80
80
81
81
82
82
82
82
84
87
88
99
99
99
100
100
100
105
108
108
109
110
110
113
113
113
113
114
114
115
115
116
116
116
116
116
116
116
116
116
117
118
118
129
130
130
131
132
132
133
133
134
134
134
134
135
135
135
136
136
143
150
151
151
151
151
153
153
153
153
154
155
156
163
163
167
170
170
170
171
171
171
172
172
173
180
184
184
185
185
186
186
187
187
187
187
187
187
187
187
188
189
189
189
189
189
190
191
192
193
193
201
201
201
203
204
205
206
206
206
207
207
209
211
216
221
221
221
221
221
222
222
222
224
224
224
224
226
226
226
226
227
227
229
229
230
234
234
244
245
246
247
253
255
256
258
258
259
259
260
260
264
264
275
276
276
278
286
296
297
297
301
302
302
302
302
303
304
305
314
320
325
325
326
330
330
331
331
334
334
335
335
335
335
339
339
342
342
343
344
357
358
359
360
362
362
367
367
367
367
367
368
369
372
372
373
373
386
389
389
391
391
399
401
405
405
406
406
408
410
410
411
415
416
417
418
424
427
429
429
445
447
447
450
450
466
468
486
491
491
510
515
515
532
535
554
559
559
577
582
582
593
599
601
619
624
624
643
648
648
665
668
681
686
686
702
707
707
723
725
743
748
748
767
772
772
789
792
811
816
816
834
839
839
856
858
876
881
881
900
905
905
922
925
1323
1326
1328
1
1
4
5
5
6
8
9
9
10
10
11
17
19
20
20
20
22
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
27
27
27
27
27
27
29
29
29
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
34
34
36
38
39
39
40
42
43
43
44
44
44
44
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
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
51
51
51
51
51
51
51
52
52
52
62
62
63
63
66
66
66
66
66
66
66
67
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
76
76
76
77
77
79
79
80
80
80
80
81
81
82
82
82
82
82
82
82
82
82
82
83
83
85
88
88
97
98
100
100
100
100
101
101
101
101
104
106
109
109
110
111
111
114
114
114
114
115
115
115
115
115
115
117
117
117
117
117
117
117
117
117
119
119
130
132
133
133
134
134
134
135
135
135
143
151
151
151
151
152
152
153
153
153
153
153
153
153
153
154
154
155
156
157
159
164
164
168
168
169
171
171
171
171
172
172
172
172
173
173
181
185
185
186
186
186
188
188
188
188
189
190
190
190
190
190
192
193
194
201
204
204
205
205
210
212
217
217
222
222
222
222
222
222
222
222
223
224
224
224
224
224
224
224
224
225
225
227
227
227
227
228
228
228
228
228
230
230
235
235
245
247
248
254
256
256
259
259
260
260
261
261
263
263
263
263
265
265
272
276
277
277
279
297
298
298
302
303
303
303
303
305
306
314
321
326
326
327
330
331
331
332
332
335
335
336
336
336
336
340
340
341
341
341
343
343
345
358
360
361
363
363
368
368
368
368
368
369
369
373
373
374
374
385
387
390
390
392
392
402
406
406
407
407
409
409
409
409
409
411
411
412
416
418
419
425
427
430
430
443
446
448
448
451
467
469
487
492
492
511
516
516
533
536
555
560
560
578
583
583
600
602
620
625
625
644
649
649
666
669
682
687
687
703
708
724
726
744
749
749
768
773
773
790
793
812
817
817
835
840
840
857
859
877
882
882
901
906
906
923
926
1324
1327
1329
1
1
1
5
7
9
9
9
9
10
10
10
11
11
11
11
11
12
18
20
21
21
23
25
25
25
25
25
25
25
25
26
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
31
31
31
31
31
31
31
31
31
31
31
31
31
31
37
37
40
40
40
41
43
43
43
45
45
45
45
45
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
49
49
49
49
49
49
50
50
50
50
52
52
52
53
53
53
61
61
61
67
67
67
67
67
67
67
68
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
77
77
77
78
78
79
79
80
80
80
80
80
81
81
81
82
82
83
83
83
83
83
83
84
84
84
86
89
98
99
100
100
101
101
101
101
102
102
105
107
110
111
112
112
114
115
115
115
116
116
116
116
116
116
117
117
118
118
120
120
123
131
132
132
132
132
133
135
136
147
151
151
151
151
152
152
152
153
153
154
154
154
154
154
154
155
155
155
155
156
157
158
160
165
169
169
170
171
171
172
172
172
172
173
173
174
174
182
185
186
186
186
187
187
188
188
190
190
191
191
191
191
191
193
193
193
195
203
203
203
204
211
213
218
218
222
222
222
223
223
223
223
223
223
224
225
225
225
225
226
226
228
228
229
229
229
229
229
229
231
236
236
236
245
246
248
255
257
260
261
261
262
262
264
264
266
266
271
273
275
277
278
280
298
299
299
300
300
301
301
303
303
304
304
304
304
306
322
327
328
331
332
332
333
333
336
337
337
337
337
337
342
342
342
342
344
346
349
358
359
361
364
364
369
369
369
369
369
370
374
374
375
375
386
388
391
393
403
404
407
407
408
408
408
410
410
410
412
412
413
416
417
419
426
431
431
444
447
449
450
450
452
461
468
470
488
493
493
512
517
528
532
534
537
556
561
561
579
584
588
588
591
594
601
603
621
626
626
645
650
661
665
667
670
683
688
688
704
707
707
709
718
725
727
745
750
750
769
774
785
789
791
794
813
818
818
836
841
851
858
860
878
883
883
902
907
918
922
924
927
1325
1328
1329
1330
1
4
5
9
9
9
10
11
11
11
12
13
15
15
18
18
20
22
22
24
24
26
26
26
26
26
26
26
26
27
27
27
27
27
27
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
31
31
41
41
41
42
44
44
44
44
44
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
50
50
50
50
59
61
62
62
64
65
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
70
70
70
70
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
75
75
75
75
75
75
75
78
78
78
79
79
79
79
79
80
81
81
81
81
82
82
82
82
82
82
82
83
83
84
84
84
84
84
84
85
85
87
88
88
90
96
100
101
101
102
102
102
103
103
105
105
108
109
109
111
112
113
113
115
115
115
115
116
116
117
117
117
117
117
117
117
117
117
119
119
121
121
124
124
124
130
132
132
132
133
133
133
135
135
135
136
136
137
143
143
151
152
152
152
153
153
153
153
153
153
153
154
154
155
155
155
155
155
156
157
158
159
160
160
164
164
166
170
171
172
172
172
173
173
173
174
174
175
175
181
183
186
186
186
186
187
187
188
188
188
188
188
188
188
188
190
191
191
192
192
192
192
193
193
194
194
196
201
201
201
203
204
204
205
206
207
209
209
212
214
218
218
219
222
222
223
223
224
224
224
224
224
224
224
224
224
224
225
226
226
226
226
229
229
230
230
230
230
232
237
237
237
237
237
245
246
248
248
249
256
256
256
258
261
262
262
263
264
265
265
267
267
273
273
276
277
277
278
279
281
285
294
299
300
300
301
302
303
304
304
305
305
305
306
306
307
314
314
322
323
326
326
328
329
331
331
333
333
334
334
335
335
337
338
338
338
338
338
342
343
343
345
347
350
350
350
358
359
361
361
362
365
365
369
369
370
370
370
370
370
371
375
375
376
376
377
386
386
389
390
390
392
394
398
404
407
408
408
409
409
411
411
411
413
413
414
416
417
419
419
420
427
427
427
432
432
435
444
444
448
448
448
450
451
453
462
466
469
471
489
494
494
513
518
533
535
538
557
562
562
580
583
583
585
589
591
592
595
599
602
604
622
627
627
646
651
666
668
671
684
689
689
705
708
710
719
723
726
728
746
751
751
770
775
790
792
795
814
819
819
837
840
840
842
852
856
859
861
879
884
884
903
908
923
925
928
1326
1328
1330
1331
5
5
9
11
11
12
12
13
14
16
20
20
21
21
23
23
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
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
29
29
29
29
29
30
30
30
30
30
30
30
33
38
41
41
42
43
45
45
45
46
46
46
46
46
46
46
46
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
49
49
49
49
49
49
49
50
50
50
50
60
60
64
64
64
65
65
65
65
65
65
70
70
70
70
70
70
70
70
71
71
71
71
72
72
72
72
72
72
72
74
75
75
75
75
75
75
75
75
75
75
75
75
75
75
79
79
79
79
80
80
80
81
81
81
81
81
81
81
81
81
82
82
82
82
82
83
83
83
83
84
85
86
86
88
89
89
91
97
100
100
100
101
101
101
101
102
102
103
109
110
110
112
113
114
114
116
116
116
116
117
117
117
118
118
118
118
118
120
120
122
122
125
125
131
131
133
135
135
135
135
135
136
136
136
136
136
137
138
141
144
144
150
152
152
152
152
152
152
152
152
152
153
153
153
153
154
154
154
154
154
155
155
156
157
158
159
160
165
165
167
171
171
171
171
172
172
172
172
173
173
173
173
173
173
174
176
176
182
182
182
184
187
187
188
188
189
189
189
189
189
189
192
193
193
194
194
195
195
197
199
202
202
202
202
206
206
206
207
207
207
210
210
213
215
220
221
223
223
223
223
223
223
223
223
223
223
224
224
224
225
225
225
225
225
225
225
225
226
230
230
231
233
238
238
238
238
249
249
250
254
257
257
257
259
259
259
262
262
262
263
263
264
265
266
266
268
268
277
278
278
279
280
282
286
286
286
286
295
295
295
300
301
301
302
303
305
306
306
306
307
307
308
312
315
315
323
324
327
329
330
334
334
335
335
336
336
338
339
339
343
343
346
348
351
351
362
362
363
366
366
367
370
370
371
371
371
371
371
372
376
377
378
390
391
391
392
392
393
395
399
399
399
399
405
408
408
408
408
408
409
409
410
410
412
412
412
414
414
415
420
420
421
425
428
428
428
433
433
436
449
449
449
451
452
454
467
470
472
490
495
495
514
516
516
519
534
536
539
558
563
563
581
584
586
592
593
600
603
605
623
628
628
647
649
649
652
667
669
672
685
690
690
706
709
711
724
727
729
747
752
752
771
773
773
776
791
793
796
815
820
820
838
841
843
857
860
862
880
885
885
904
906
906
909
924
926
929
1327
1331
1332
5
5
6
9
10
11
11
12
13
13
14
14
15
17
18
18
21
22
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
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
27
27
27
27
27
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
29
29
29
29
29
29
29
29
39
42
44
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
62
63
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
68
68
68
68
68
68
68
68
68
68
68
68
68
70
70
70
70
70
70
70
70
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
73
75
75
75
75
75
75
75
77
80
80
80
80
80
81
81
82
82
82
82
82
82
82
83
84
84
84
84
85
86
87
87
87
89
92
98
98
98
99
101
102
102
103
109
110
111
111
114
115
115
116
116
116
117
117
118
118
118
118
118
118
118
118
118
118
119
119
119
121
121
123
123
124
125
125
125
125
126
133
134
134
136
136
136
136
136
137
137
137
137
137
137
139
142
142
151
153
153
153
153
153
153
153
153
154
154
155
155
155
155
155
156
156
157
158
159
160
161
164
166
166
169
170
172
172
173
173
174
174
174
177
177
183
183
185
187
187
187
189
189
189
189
189
189
189
189
189
189
190
190
190
190
192
192
192
192
193
194
194
195
195
196
198
200
200
204
205
207
207
207
207
208
208
208
208
211
211
211
214
216
221
222
222
224
224
224
224
224
224
224
224
225
226
226
226
226
226
226
226
227
230
231
232
234
237
238
238
238
238
239
239
239
250
250
255
255
258
260
260
263
263
264
264
265
266
266
267
267
269
269
277
278
279
279
280
283
287
287
296
296
301
302
302
303
304
306
307
307
307
308
308
313
313
324
324
325
328
330
331
335
335
335
336
336
337
337
338
338
338
338
340
340
343
344
347
349
350
351
351
351
351
352
363
363
367
367
368
368
372
372
372
372
372
373
377
378
379
379
390
391
392
392
393
396
400
400
406
409
409
409
410
410
411
411
413
413
413
415
415
416
421
421
426
426
429
434
434
437
437
448
450
450
450
453
455
468
471
473
491
496
496
515
517
520
535
537
540
559
564
564
582
585
587
593
601
604
606
624
629
629
648
650
653
668
670
673
686
691
691
707
710
712
725
728
730
748
753
753
772
774
777
792
794
797
816
821
821
839
842
844
858
861
863
881
886
886
905
907
910
925
927
930
1328
1332
1333
4
4
4
5
6
7
9
11
11
12
12
14
15
15
16
20
20
20
21
21
23
25
25
25
25
25
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
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
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
40
41
41
41
41
41
41
41
41
42
42
43
43
43
43
43
45
45
45
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
51
51
62
63
64
64
64
64
65
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
67
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
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
72
72
72
72
72
72
72
73
74
75
76
81
81
81
81
81
81
82
82
82
82
82
82
83
83
83
83
83
83
83
83
84
84
85
85
86
87
88
90
93
98
99
99
99
99
99
100
101
102
103
103
104
109
111
115
116
116
116
116
116
117
117
118
119
119
119
119
120
120
120
122
122
124
124
126
126
127
133
134
135
135
135
136
136
137
137
137
137
137
138
138
140
152
152
152
153
153
153
153
154
154
154
154
154
154
154
154
154
154
155
156
156
156
157
157
158
159
160
161
162
164
169
170
171
172
173
173
174
174
174
175
178
178
182
183
183
183
183
184
186
187
187
187
188
188
190
190
190
190
190
190
191
191
191
191
193
193
193
194
195
195
197
199
204
205
206
207
207
208
208
208
208
209
209
212
212
212
212
212
215
217
222
222
223
223
223
224
224
224
224
225
225
225
225
225
225
227
227
227
227
227
228
229
229
230
230
232
233
235
239
239
240
240
240
248
259
261
261
264
264
266
267
267
267
267
268
268
270
270
277
279
281
284
287
295
296
296
296
296
297
302
303
303
304
305
306
307
308
308
308
325
325
325
325
326
329
331
332
335
336
336
337
337
339
339
341
341
345
348
350
352
352
353
361
368
368
373
373
373
373
373
374
375
375
376
376
378
379
380
380
380
380
390
392
394
397
400
407
408
409
409
409
409
410
410
412
412
414
414
414
416
416
417
419
430
435
435
438
438
438
438
448
451
454
456
469
472
474
492
497
497
516
518
521
536
538
541
560
565
565
583
586
588
588
593
602
605
607
625
630
630
649
651
654
669
671
674
687
692
692
708
711
713
726
729
731
749
754
754
773
775
778
793
795
798
817
822
822
840
843
845
859
862
864
882
887
887
906
908
911
926
928
931
1329
1333
1334
4
4
5
5
5
7
7
8
11
11
12
13
13
15
16
16
17
18
18
19
20
20
21
21
21
22
22
22
22
22
22
22
24
26
27
27
27
27
27
27
27
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
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
31
31
31
31
31
31
31
40
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
44
44
44
44
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
49
49
49
50
50
50
50
50
52
52
62
62
62
63
63
63
63
63
63
63
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
70
72
72
74
75
77
79
80
80
81
82
82
82
82
82
82
82
83
83
83
84
84
84
85
85
85
85
85
86
86
87
88
89
89
91
91
94
94
97
99
99
99
100
100
100
100
101
101
102
104
105
105
109
110
112
116
117
117
117
117
118
118
118
118
118
118
119
120
120
120
120
121
123
123
125
125
125
125
127
127
132
133
133
133
136
136
137
137
138
138
138
138
139
139
141
144
151
151
152
152
153
153
153
153
154
154
154
154
155
155
155
155
156
156
156
156
156
157
157
158
158
159
160
160
161
161
162
163
164
165
170
171
171
172
172
173
174
174
175
176
179
179
184
184
185
187
188
188
189
189
189
189
189
189
190
191
191
191
191
191
191
192
194
194
195
196
196
198
200
202
204
204
204
207
208
208
209
209
209
210
210
210
212
212
213
213
213
216
216
218
218
218
222
222
222
223
223
223
224
224
224
224
225
225
226
226
227
227
227
227
228
228
228
228
229
230
231
233
234
236
238
238
240
240
241
241
245
257
260
262
262
265
265
265
267
267
267
268
268
269
269
271
271
273
277
278
280
282
282
285
285
287
297
297
298
303
304
305
306
308
309
309
309
315
323
325
325
326
326
327
330
331
332
333
335
336
337
337
338
340
340
342
342
346
349
349
351
351
351
351
353
353
358
369
369
370
374
374
374
374
375
376
377
378
379
380
380
380
381
381
386
390
391
393
395
398
400
408
410
410
411
411
413
413
415
415
415
415
416
417
417
418
418
428
431
436
436
436
438
438
439
439
444
448
449
452
455
457
470
473
473
475
475
493
498
498
517
519
522
537
539
539
542
542
561
566
566
584
587
589
589
591
603
606
606
608
608
626
631
631
650
652
655
670
672
672
675
675
688
693
693
709
712
714
727
730
730
732
732
750
755
755
774
776
779
794
796
796
799
799
818
823
823
841
844
846
860
863
863
865
865
883
888
888
907
909
912
927
929
929
932
932
1330
1334
1335
4
5
5
6
8
9
11
11
12
13
13
17
18
19
19
20
20
20
20
21
21
21
22
22
22
22
22
22
22
22
22
23
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
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
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
31
31
45
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
49
49
49
49
50
50
50
50
50
51
51
53
53
60
61
61
61
63
63
63
63
64
64
64
64
64
64
64
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
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
73
73
75
76
78
79
79
79
80
81
81
83
83
83
83
84
85
85
85
86
86
86
86
86
87
87
88
89
89
90
95
95
99
99
100
100
100
101
101
102
103
103
103
104
104
105
105
106
110
111
113
115
116
117
117
117
117
117
117
117
117
117
118
118
118
118
118
119
119
119
119
120
122
124
124
126
126
126
131
132
133
134
134
134
134
135
135
136
136
136
137
137
137
137
137
138
138
139
139
142
144
152
152
154
154
155
156
156
156
156
157
157
157
157
157
158
158
160
160
161
162
162
163
164
165
166
170
170
171
171
173
174
174
174
175
175
175
176
177
180
180
183
183
185
185
186
188
188
188
188
188
188
188
188
188
189
189
189
190
190
190
190
190
191
191
191
192
192
193
193
193
195
195
196
197
197
199
201
202
202
205
205
205
205
207
207
207
208
208
208
208
209
209
210
213
214
214
214
218
219
219
223
223
223
224
224
225
225
227
227
228
228
228
228
229
229
229
229
229
230
231
232
234
235
237
239
242
242
245
246
248
248
257
261
263
263
266
266
268
268
269
269
270
270
272
272
273
278
279
281
286
286
296
296
298
298
303
304
305
306
306
306
307
309
310
310
310
315
326
327
327
328
331
331
333
334
336
337
337
337
338
338
339
341
341
342
343
343
347
352
352
352
358
359
361
361
370
370
370
375
375
375
375
376
377
378
380
381
381
382
382
386
391
392
394
396
399
409
409
409
411
411
412
414
414
416
416
416
417
418
418
419
419
419
419
428
432
437
437
439
440
440
444
449
450
453
456
458
471
476
476
494
499
499
518
520
523
538
543
543
562
567
567
585
588
590
591
592
604
609
609
627
632
632
651
653
656
671
676
676
689
694
694
710
713
715
728
733
733
751
756
756
775
777
780
795
800
800
819
824
824
842
845
847
861
866
866
884
889
889
908
910
913
928
933
933
1331
1335
1336
4
4
4
5
5
7
9
10
13
13
13
13
14
18
18
18
19
19
19
20
20
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
24
25
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
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
40
40
40
44
44
44
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
48
48
48
49
49
49
49
49
49
50
51
51
52
52
54
54
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
63
63
63
64
64
64
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
67
67
67
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
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
73
74
74
76
77
79
79
80
81
81
81
81
81
82
82
84
84
84
85
86
87
87
87
87
87
89
90
91
96
96
99
99
101
103
104
104
104
105
105
106
107
109
111
112
114
116
117
117
117
117
118
118
118
118
118
118
118
118
119
119
119
120
120
120
120
121
123
125
125
125
127
127
127
132
132
134
134
134
135
135
135
136
136
137
138
138
138
139
140
143
152
152
153
153
154
154
155
156
158
158
158
158
158
161
162
163
163
164
164
165
166
167
174
175
175
175
176
176
176
177
178
181
181
184
187
189
189
189
189
189
189
189
190
190
191
191
191
191
192
193
193
194
194
194
196
196
197
198
198
200
202
203
205
205
205
206
206
206
208
209
209
210
212
212
214
215
220
220
222
223
223
224
224
224
225
225
226
227
227
229
229
229
229
230
230
230
230
230
230
231
232
233
235
236
238
238
240
243
243
245
249
249
262
264
264
264
267
267
267
267
269
269
271
271
273
273
277
279
280
282
287
287
297
303
306
307
307
307
308
310
311
311
311
325
325
327
329
332
334
335
335
337
338
338
339
339
340
342
342
343
343
343
343
344
344
348
351
353
353
353
358
362
362
371
371
373
373
376
376
376
376
377
378
379
380
380
381
382
382
390
392
393
395
397
400
410
410
410
413
415
415
416
417
417
419
419
420
420
420
420
433
438
438
438
438
440
448
450
451
454
457
459
472
477
477
495
500
500
519
521
524
539
544
544
563
568
568
586
589
591
592
593
605
610
610
628
633
633
652
654
657
672
677
677
690
695
695
711
714
716
729
734
734
752
757
757
776
778
781
796
801
801
820
825
825
843
846
848
862
867
867
885
890
890
909
911
914
929
934
934
1332
1336
1337
5
5
5
6
8
10
11
11
11
13
15
15
16
16
19
19
20
20
20
20
21
21
21
21
22
23
23
23
24
24
24
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
31
31
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
49
49
49
49
49
50
50
50
50
51
53
53
55
55
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
64
64
65
65
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
66
66
66
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
70
70
70
71
71
71
71
71
71
71
73
74
75
75
77
78
79
80
80
81
81
82
82
82
82
82
82
83
84
84
85
85
85
86
87
88
89
89
90
91
92
97
97
100
105
105
105
106
106
110
112
112
115
117
117
117
118
118
118
118
118
118
119
119
119
119
119
119
119
119
120
120
121
121
122
123
123
124
125
125
126
126
126
128
128
133
134
134
135
135
135
136
136
136
137
137
137
137
138
139
139
139
140
141
144
144
144
152
153
153
153
154
155
155
155
156
156
157
159
160
160
161
162
163
164
164
165
165
166
167
167
173
176
176
177
177
177
182
182
183
185
188
188
188
189
189
189
189
190
190
190
190
190
190
190
191
192
192
193
193
195
195
195
195
197
197
199
199
201
202
202
203
205
205
206
206
207
207
207
208
209
210
210
211
213
216
218
221
221
223
223
224
224
224
225
225
225
226
226
226
227
228
231
231
231
231
232
233
234
236
237
238
238
239
239
244
244
246
248
250
250
250
257
257
263
265
265
265
268
268
268
269
269
270
272
272
273
274
274
278
280
280
283
286
288
288
296
298
302
303
304
306
306
307
307
308
308
308
308
309
311
312
312
312
315
315
326
330
331
333
335
336
336
338
338
339
341
343
343
344
344
345
345
349
351
351
352
354
354
359
361
363
363
363
370
370
372
372
374
377
377
377
377
378
379
380
381
382
383
386
391
393
393
396
398
399
401
409
411
411
411
414
415
415
416
416
417
418
418
419
420
420
421
421
421
421
421
428
428
434
439
439
439
444
449
451
451
458
460
473
478
478
496
501
501
520
522
525
540
545
545
564
569
569
587
590
592
592
593
594
606
611
611
629
634
634
653
655
658
673
678
678
691
696
696
715
717
730
735
735
753
758
758
777
779
782
797
802
802
821
826
826
844
847
849
863
868
868
886
891
891
910
912
915
930
935
935
1333
1337
1338
1
4
5
6
7
9
11
12
13
13
13
16
17
18
18
20
21
21
22
22
23
24
24
25
25
25
25
25
25
25
25
25
25
25
25
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
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
32
32
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
43
43
43
44
44
44
44
44
44
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
49
49
49
49
49
49
49
50
50
50
51
51
51
51
52
54
54
54
54
56
56
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
68
68
68
68
68
68
68
69
69
69
69
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
74
75
76
76
77
79
81
81
82
82
83
83
83
84
85
85
85
85
86
86
87
88
89
90
90
91
92
93
98
98
99
99
101
103
103
104
104
109
111
116
116
116
117
118
118
118
118
118
119
119
120
120
121
121
121
121
121
121
122
122
123
124
124
124
125
125
126
127
127
127
127
127
129
129
129
129
134
134
134
135
135
135
136
136
136
136
137
137
138
140
140
141
142
142
145
145
145
153
153
154
154
154
154
155
156
156
156
156
156
157
160
161
162
163
164
164
165
165
166
166
167
174
174
174
174
174
174
175
175
178
183
183
183
183
184
187
187
188
189
189
189
189
190
190
191
191
191
192
192
192
192
193
193
193
194
194
196
198
198
200
200
200
202
203
203
204
205
205
205
206
206
207
207
207
208
208
209
211
212
212
212
214
217
222
222
222
224
224
224
225
225
226
227
227
227
227
227
228
229
231
232
234
235
237
237
238
238
239
240
240
245
245
248
249
255
258
258
264
266
267
267
269
269
269
270
270
271
273
273
273
273
275
275
275
275
277
279
284
287
287
287
287
289
289
296
296
297
306
307
307
308
308
309
310
312
313
313
313
313
316
316
325
325
327
334
335
336
337
337
340
342
344
344
344
346
346
350
350
351
352
353
355
355
361
362
368
371
371
373
373
375
378
378
378
380
380
380
381
382
383
384
390
392
397
399
400
400
400
400
402
409
409
410
415
416
416
417
417
419
419
419
419
419
420
421
421
421
421
422
422
426
429
429
435
438
438
440
440
440
448
450
459
461
474
479
479
497
502
502
521
523
526
541
546
546
565
570
570
591
592
593
593
594
595
607
612
612
630
635
635
654
656
659
674
679
679
692
697
697
716
718
731
736
736
754
759
759
778
780
783
798
803
803
822
827
827
848
850
864
869
869
887
892
892
911
913
916
931
936
936
1334
1338
1339
1
1
7
7
8
10
11
11
12
13
13
13
13
13
17
17
18
18
20
21
21
22
23
23
23
23
23
24
25
25
25
25
25
25
25
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
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
27
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
29
33
33
41
41
41
41
41
41
41
41
42
42
42
42
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
50
50
50
51
51
51
52
52
52
52
53
55
55
55
55
57
61
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
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
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
70
71
71
71
71
71
71
71
71
75
76
77
77
78
78
80
82
82
82
82
82
83
83
84
85
85
85
85
85
85
86
86
86
86
87
88
88
89
90
92
93
94
99
99
99
99
99
99
100
100
100
100
103
104
104
104
105
105
110
110
112
112
117
117
117
117
118
119
119
121
121
122
122
122
122
122
122
123
123
124
125
125
125
126
127
128
130
130
130
130
132
135
135
135
136
136
136
136
136
137
137
138
139
139
139
140
140
141
142
143
143
143
146
153
153
154
154
154
154
155
155
156
156
156
156
156
156
157
157
157
157
161
162
163
164
164
165
165
165
165
166
166
167
167
167
167
168
168
170
170
171
171
174
175
175
175
175
175
176
176
179
182
183
184
184
184
185
188
188
190
190
192
192
192
193
193
193
193
194
194
194
194
195
195
195
197
199
199
201
201
201
201
203
203
205
206
206
206
207
207
207
209
210
210
210
211
211
212
212
212
213
213
213
218
223
223
223
223
224
224
225
225
225
225
227
227
227
227
227
227
228
228
228
228
228
230
231
233
235
236
238
238
239
240
241
241
246
246
249
249
250
250
256
256
263
267
267
267
268
268
270
270
271
271
272
276
276
276
276
278
278
280
280
285
288
288
290
290
295
296
297
298
307
307
308
308
308
309
309
310
310
311
311
313
313
314
314
314
314
314
314
325
325
326
326
335
336
336
337
338
338
338
341
343
344
345
345
347
347
351
351
353
354
356
356
362
362
363
363
369
369
374
374
376
379
379
379
380
380
381
381
381
382
384
385
391
391
393
393
400
401
401
403
408
409
409
410
411
416
417
417
418
418
420
420
421
421
422
422
422
422
423
423
427
427
436
438
438
439
439
441
441
449
449
451
451
460
462
475
480
480
498
503
503
524
527
542
547
547
566
571
571
592
592
593
593
594
594
595
608
613
613
631
636
636
657
660
675
680
680
693
698
698
717
719
732
737
737
755
760
760
781
784
799
804
804
823
828
828
849
851
865
870
870
888
893
893
914
917
932
937
937
1335
1339
1340
9
11
13
13
13
13
13
14
14
14
18
21
22
22
23
23
23
23
25
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
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
27
27
27
27
27
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
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
32
32
34
34
39
39
39
40
40
40
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
45
46
46
46
46
46
46
48
48
49
49
51
51
51
51
52
52
52
53
53
54
56
56
56
56
58
61
61
61
61
63
63
63
63
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
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
68
68
68
68
68
68
68
68
69
69
69
70
70
71
72
72
76
77
78
78
81
81
83
83
83
85
85
85
86
86
86
86
86
86
86
86
87
87
87
87
88
90
91
93
94
95
99
100
100
100
101
101
103
103
104
104
104
105
105
105
106
106
110
112
113
113
117
117
118
118
118
118
120
122
123
123
123
123
123
123
125
125
126
126
126
127
128
131
131
131
131
132
134
136
137
138
138
139
140
140
140
141
141
142
143
144
147
152
156
156
156
156
157
157
157
157
157
157
157
157
158
158
158
158
162
163
164
165
167
167
167
168
168
168
168
169
169
170
171
174
174
175
175
175
175
176
176
176
177
177
180
183
185
185
185
186
188
188
189
189
191
193
193
194
194
194
194
196
196
196
197
198
200
200
202
202
203
204
205
206
207
208
210
211
211
211
212
212
213
214
214
214
219
223
223
224
224
225
226
226
227
227
228
228
228
228
228
228
228
228
229
229
229
229
229
231
234
236
237
238
239
239
240
241
242
247
247
251
251
264
268
268
269
269
271
271
272
272
273
277
277
277
277
278
280
281
281
286
288
291
291
296
298
299
309
309
309
310
310
314
314
315
315
315
315
327
327
336
336
338
338
339
339
339
339
342
344
346
346
348
348
351
352
352
354
357
357
364
364
375
375
377
380
380
380
382
382
382
383
385
386
391
393
394
394
401
401
404
409
410
411
412
414
417
418
418
419
419
422
422
423
423
423
423
424
424
437
440
440
442
442
449
451
452
452
454
461
463
476
481
481
499
504
504
525
528
543
548
548
567
572
572
592
593
593
594
594
595
595
609
614
614
632
637
637
658
661
676
681
681
694
699
699
711
718
720
733
738
738
756
761
761
782
785
800
805
805
824
829
829
850
852
866
871
871
889
894
894
915
918
933
938
938
1336
1340
1341
7
7
11
12
13
14
14
15
15
15
18
18
18
19
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
24
25
25
25
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
27
27
27
27
27
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
31
33
33
35
40
40
40
40
40
40
41
41
41
41
41
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
46
46
46
46
48
48
48
49
49
49
50
50
52
52
52
52
53
54
54
54
55
57
57
57
58
59
62
62
62
62
63
63
63
63
64
64
64
64
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
68
68
68
68
68
68
68
68
68
68
68
68
68
68
70
70
71
71
72
72
73
77
77
78
78
79
81
82
82
82
82
82
84
84
84
85
86
86
87
87
87
87
87
87
88
88
88
88
89
89
90
90
91
92
94
95
96
97
101
101
102
102
104
104
105
105
105
106
106
106
106
107
107
107
110
112
113
114
114
117
118
118
118
119
119
120
120
121
123
124
124
125
126
126
126
127
127
128
128
128
128
129
132
132
132
132
133
134
135
136
137
137
137
138
139
139
141
141
142
142
145
145
148
152
152
153
155
157
157
158
158
158
158
158
158
159
159
159
159
163
164
165
165
167
168
168
168
169
169
169
169
170
170
175
175
175
176
176
176
177
177
177
177
178
178
178
181
183
184
186
186
186
188
189
189
189
190
191
191
192
194
194
194
195
195
195
197
197
197
198
198
198
199
201
201
202
203
203
203
204
205
205
206
207
209
210
212
212
213
213
215
215
220
223
223
224
225
225
225
226
226
227
227
229
229
229
229
229
229
230
230
230
230
231
232
232
235
235
236
237
238
238
239
240
241
241
241
242
243
248
248
249
250
250
250
252
252
258
265
269
269
270
270
272
272
272
273
273
274
274
278
278
278
278
278
280
281
282
282
287
288
292
292
296
297
299
307
308
308
308
310
310
310
311
311
315
315
316
316
316
316
316
323
328
328
330
336
337
338
339
339
340
340
340
340
343
344
344
345
347
347
349
349
351
352
353
354
354
355
358
358
362
363
363
363
365
365
371
376
377
378
378
378
381
381
381
381
382
383
383
383
384
386
387
391
393
394
395
395
401
402
405
409
410
412
415
418
418
419
419
420
420
420
420
421
421
421
423
423
424
424
424
424
425
425
429
436
438
441
441
443
443
449
451
452
453
453
455
459
462
464
477
482
482
500
505
505
526
529
544
549
549
568
573
573
587
592
594
594
595
595
596
610
615
615
633
638
638
659
662
677
682
682
695
700
700
712
716
719
721
734
739
739
757
762
762
783
786
801
806
806
825
830
830
844
851
853
867
872
872
890
895
895
916
919
934
939
939
1337
1341
1342
7
7
8
8
8
8
13
15
16
16
18
18
19
20
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
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
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
32
34
34
36
40
40
40
41
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
44
44
44
44
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
49
49
49
49
49
50
50
50
51
51
53
53
54
55
55
55
55
55
56
58
58
58
58
58
59
59
59
59
59
59
59
59
60
60
60
60
62
62
62
62
62
63
63
63
64
64
64
65
65
65
65
66
66
66
66
66
66
66
66
66
67
67
67
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
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
72
72
72
73
74
77
78
78
78
78
78
80
81
82
82
83
83
83
83
84
84
84
85
86
86
87
87
87
87
87
87
87
89
89
89
89
90
90
90
91
92
93
95
96
97
98
102
102
103
104
105
106
106
106
107
107
107
107
107
108
108
110
110
113
114
118
118
119
119
120
120
121
121
121
121
122
124
125
125
128
128
129
129
129
129
130
133
133
133
133
133
133
136
136
136
136
137
137
137
138
138
138
139
139
139
140
140
140
144
145
146
149
152
153
153
155
155
155
156
157
157
158
158
158
158
158
158
158
160
160
160
160
164
165
165
165
166
168
169
169
169
170
170
171
171
175
176
177
177
177
178
178
178
178
178
179
179
182
183
184
186
186
187
187
187
189
189
190
190
191
192
192
192
192
193
194
194
194
195
196
196
196
198
199
199
200
202
202
202
202
203
203
204
204
204
204
204
204
206
207
208
208
208
210
210
210
211
211
211
216
221
223
223
223
224
226
226
226
226
226
226
227
227
228
228
229
229
229
229
229
229
231
231
231
231
233
236
236
237
238
239
241
242
242
242
243
244
249
249
249
249
249
250
251
251
251
258
264
266
268
270
270
271
273
274
274
275
275
278
278
279
279
279
279
281
282
288
293
293
296
297
299
299
300
307
307
307
308
309
309
309
311
312
312
316
316
316
317
317
317
317
324
329
331
335
336
336
338
339
340
340
344
345
345
346
348
348
348
348
350
350
350
350
354
355
355
356
359
359
362
362
362
363
364
364
364
371
377
379
379
382
382
382
382
383
384
384
385
387
388
391
391
394
395
397
401
403
406
409
410
412
412
413
416
420
420
420
420
420
421
421
421
421
422
422
422
425
425
425
425
426
426
429
437
439
442
444
444
449
449
452
453
460
463
465
478
483
483
501
506
506
521
525
527
530
545
550
550
569
574
574
588
592
593
595
595
596
597
611
616
616
634
639
639
654
658
660
663
678
683
683
696
701
701
717
720
722
735
740
740
758
763
763
778
782
784
787
802
807
807
826
831
831
845
849
852
854
868
873
873
891
896
896
911
915
917
920
935
940
940
1338
1342
1343
7
7
7
7
8
8
11
11
13
14
14
16
17
17
20
21
22
22
22
22
22
22
22
22
22
22
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
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
33
35
37
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
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
45
45
45
45
45
45
45
45
45
47
47
47
47
47
47
47
47
47
47
47
48
48
48
49
49
49
49
49
49
50
50
50
50
51
51
51
52
54
54
55
56
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
61
61
61
61
61
61
61
61
62
62
62
63
63
63
64
64
64
64
64
65
65
65
65
65
66
66
66
66
67
67
67
67
67
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
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
73
74
75
78
79
81
83
84
84
84
84
84
85
85
85
85
86
86
86
86
86
86
86
86
87
87
88
88
88
88
88
88
88
91
91
92
93
93
94
94
96
96
97
97
98
98
98
102
102
103
103
104
104
105
106
107
107
108
108
108
109
109
111
111
112
112
112
114
118
118
119
119
121
121
121
121
121
121
121
122
122
122
122
125
126
126
129
129
130
130
130
130
134
134
134
134
135
135
136
136
137
138
138
138
139
139
139
139
140
140
140
140
141
141
145
147
150
153
153
155
156
156
156
156
157
157
157
157
157
157
157
157
157
157
158
158
159
159
159
159
159
159
159
165
166
166
166
167
167
167
167
169
170
170
171
171
172
172
175
176
177
178
178
179
179
179
180
180
183
187
187
188
188
189
189
190
190
192
192
192
192
192
192
192
193
193
193
193
196
197
197
197
199
200
200
201
204
205
205
205
205
206
206
207
207
207
208
209
209
209
210
211
211
211
211
211
211
212
212
215
215
217
222
224
224
225
225
225
226
227
227
227
227
227
227
227
228
228
228
228
228
228
228
228
229
229
230
230
230
230
230
230
234
237
237
238
239
239
240
240
242
242
243
243
243
243
245
250
250
251
252
252
252
266
266
269
270
270
271
271
272
274
275
275
276
276
279
279
280
280
280
280
280
280
280
282
289
294
294
300
300
301
309
310
310
310
312
313
313
317
317
318
318
318
318
324
324
328
328
330
336
337
337
338
338
338
338
339
340
341
345
346
346
347
351
351
351
351
355
356
356
360
360
364
365
365
365
378
379
379
380
383
383
383
383
383
383
384
385
385
385
386
386
388
388
389
389
392
392
393
393
393
395
402
404
407
413
413
414
417
421
421
422
422
422
422
423
423
423
426
426
426
426
427
427
437
437
440
441
441
443
445
450
450
451
451
451
453
461
464
466
479
484
484
502
507
507
526
528
531
546
551
551
570
575
575
593
594
596
596
598
612
617
617
635
640
640
659
661
664
679
684
684
697
702
718
721
723
736
741
741
759
764
764
783
785
788
803
808
808
827
832
832
850
853
855
869
874
874
892
897
897
916
918
921
936
941
941
1339
1343
1344
11
13
14
15
15
16
16
17
18
18
20
21
22
22
22
22
22
22
22
22
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
27
27
27
27
27
27
27
27
27
27
27
28
29
29
29
29
29
29
29
34
36
38
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
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
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
47
47
48
48
48
48
48
50
50
51
51
51
51
52
52
52
52
53
55
55
56
59
59
59
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
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
64
64
64
64
64
64
64
65
66
66
66
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
70
70
70
70
71
71
74
75
78
80
82
82
83
84
85
85
85
86
86
86
87
87
87
88
88
89
89
89
89
89
89
89
92
92
93
97
97
98
98
99
103
103
104
104
104
104
105
105
105
107
108
108
109
113
113
113
113
117
117
121
121
122
122
122
122
122
122
122
122
122
123
123
123
123
126
127
127
128
130
130
131
131
135
135
135
135
135
136
137
139
139
139
139
139
140
140
140
140
140
141
141
141
142
142
146
148
151
157
157
157
158
158
158
158
159
159
160
160
160
160
160
160
160
166
167
168
168
168
168
168
171
171
172
172
173
173
175
175
176
176
178
179
179
180
184
187
187
188
188
188
189
192
192
193
193
193
193
193
193
193
193
193
194
194
194
194
195
197
197
198
198
200
201
201
202
205
206
206
206
206
206
207
208
210
210
210
210
210
211
211
211
212
212
212
213
213
216
216
218
223
226
226
226
226
228
228
228
228
228
229
229
229
230
230
230
231
231
231
231
231
231
233
235
238
238
239
241
243
243
244
244
246
250
251
251
252
253
253
270
271
271
272
272
273
275
276
276
277
277
281
281
281
281
281
281
281
281
290
295
295
301
301
308
310
311
311
313
314
314
318
318
319
319
319
319
329
329
331
337
339
339
339
339
339
340
342
343
343
346
347
347
348
352
352
352
352
354
356
361
361
363
365
366
366
375
379
379
381
384
384
384
384
384
384
385
386
389
389
390
390
394
394
394
394
403
405
408
414
414
418
421
422
422
423
423
423
423
424
424
427
427
427
427
428
428
441
442
442
444
444
444
446
452
452
452
452
462
465
467
480
485
485
503
508
508
527
529
532
547
552
552
571
576
576
594
594
597
599
613
618
618
636
641
641
660
662
665
680
685
685
698
701
701
703
719
722
724
737
742
742
760
765
765
784
786
789
804
809
809
828
833
833
851
854
856
870
875
875
893
898
898
917
919
922
937
942
942
1340
1344
1345
7
7
8
8
11
14
15
15
15
15
16
16
17
18
18
19
19
19
20
20
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
37
39
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
45
46
46
46
48
48
49
51
51
52
52
52
52
52
53
53
53
53
54
54
56
56
57
57
59
59
59
59
59
59
59
59
59
59
59
60
60
60
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
65
65
65
66
66
66
66
66
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
71
71
71
71
72
72
72
81
83
83
83
85
86
86
86
86
87
87
88
88
88
89
89
90
90
90
90
90
93
93
94
98
98
99
99
100
102
104
104
105
105
105
105
106
106
106
106
106
107
107
107
108
109
114
114
117
118
118
118
118
120
123
123
123
123
123
123
123
124
124
124
124
125
127
128
131
131
132
132
136
136
136
136
137
137
138
138
140
140
141
141
141
142
142
142
142
143
143
143
147
149
152
156
157
157
157
157
158
158
159
159
159
159
160
160
161
161
161
161
167
168
169
169
169
172
172
173
173
174
174
176
176
177
177
177
177
177
178
178
178
179
180
185
186
188
188
189
190
191
194
194
194
194
194
194
195
195
195
195
196
196
198
201
201
202
202
203
203
206
207
207
207
207
208
208
209
209
211
211
211
211
212
212
212
213
213
213
213
214
214
214
215
217
217
224
227
227
227
228
228
228
229
229
229
229
230
230
231
231
231
231
231
232
232
232
232
234
236
238
239
239
240
244
244
245
245
247
251
251
252
270
271
272
272
273
273
276
277
277
278
278
282
282
282
282
282
282
291
296
296
299
309
309
314
315
315
319
319
320
320
320
328
330
330
338
340
340
341
343
344
344
344
344
347
347
348
348
349
349
351
353
353
353
353
357
362
362
364
364
380
380
382
383
385
385
385
385
385
386
390
390
391
391
395
395
404
406
409
412
419
422
422
423
423
424
424
424
428
428
428
428
429
429
441
442
443
443
445
447
453
453
463
466
466
468
468
481
486
486
504
509
528
530
533
548
553
553
572
577
595
596
598
600
614
619
619
637
642
661
663
666
681
686
686
699
702
704
720
723
723
725
725
738
743
743
761
766
785
787
790
805
810
810
829
834
852
855
857
871
876
876
894
899
918
920
923
938
943
943
1341
1345
1346
8
8
8
9
9
15
16
16
18
18
18
18
18
19
19
20
20
20
21
22
22
22
22
22
22
22
22
22
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
25
25
25
25
25
25
25
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
26
26
26
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
28
28
29
29
29
32
36
38
38
39
39
39
40
40
40
40
40
40
40
40
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
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
48
48
48
48
48
49
50
52
52
52
52
52
52
53
54
54
54
54
57
57
58
58
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
66
66
66
66
67
67
68
69
69
69
69
69
69
69
69
69
70
71
71
71
71
72
72
72
72
72
72
73
73
82
84
84
85
85
85
86
87
87
87
87
87
88
88
88
88
88
89
91
91
94
94
94
95
99
99
100
100
101
102
106
106
107
107
107
107
108
108
108
108
114
117
118
119
119
120
120
120
121
122
122
123
123
123
123
123
123
124
125
125
125
125
125
126
128
128
128
129
132
132
133
133
133
133
137
137
137
137
137
138
138
140
141
142
142
142
143
143
143
143
143
143
144
144
148
150
153
156
156
156
157
157
158
158
158
159
159
159
159
168
169
169
170
173
173
174
174
174
175
175
178
178
178
178
179
179
179
179
183
186
188
189
189
191
191
191
191
192
193
193
194
194
194
194
194
194
196
196
196
196
199
201
203
203
204
204
204
204
207
208
208
208
208
208
209
209
211
212
212
212
213
213
213
214
214
214
214
214
215
215
215
225
227
227
227
227
228
229
229
229
230
230
230
230
230
230
232
232
235
237
237
238
239
240
240
240
241
241
241
245
245
246
246
248
253
256
270
272
274
274
277
278
278
279
279
282
283
283
283
283
287
292
296
297
297
314
315
316
316
319
319
320
320
321
321
321
328
339
340
342
342
344
344
345
345
345
349
349
350
350
351
352
354
354
354
354
354
354
358
363
363
369
381
381
383
383
383
386
386
386
386
387
391
391
392
392
395
400
405
407
409
410
420
424
424
425
425
425
427
429
429
429
429
430
430
441
443
446
448
453
464
469
469
482
487
487
505
510
529
531
534
549
554
554
573
576
576
578
596
596
599
599
601
601
615
620
620
638
643
662
664
667
682
687
687
700
703
705
721
726
726
739
744
744
762
767
786
788
791
806
811
811
830
833
833
835
853
856
856
858
858
872
877
877
895
900
919
921
924
939
944
944
1342
1346
1347
7
10
10
15
15
17
18
19
19
20
21
21
21
22
22
22
22
23
23
23
23
23
23
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
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
33
37
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
44
44
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
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
47
47
48
48
48
48
48
48
49
50
51
51
52
52
53
53
53
53
53
53
54
58
58
59
59
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
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
65
65
65
65
65
66
66
67
68
68
69
69
70
70
71
72
72
72
72
72
72
73
73
73
73
74
74
83
85
87
88
88
88
88
88
89
90
95
95
95
96
98
100
100
101
101
102
102
103
107
107
108
108
109
109
114
118
119
119
119
119
120
120
121
121
121
121
122
122
122
122
122
122
122
122
123
123
124
124
124
124
124
124
125
125
127
127
129
129
129
130
133
133
133
134
134
137
137
138
138
138
138
138
139
139
140
140
141
142
143
143
144
144
144
144
145
145
149
151
151
153
154
154
157
158
158
159
159
159
169
169
170
171
174
174
175
175
175
175
175
176
176
179
179
180
180
183
184
186
186
187
190
191
192
192
192
192
192
193
193
193
193
193
193
193
193
194
194
195
195
195
195
195
195
198
200
202
204
204
204
205
205
208
208
208
209
209
209
209
209
210
210
211
211
212
213
213
213
214
214
215
215
215
215
216
216
216
226
227
229
230
230
230
231
231
231
232
232
232
232
233
236
238
241
241
241
242
242
242
246
246
247
247
249
251
251
253
254
257
266
270
271
273
275
275
275
278
278
279
279
280
280
282
284
284
284
284
288
288
288
293
296
297
298
298
299
299
311
315
316
317
317
320
321
321
322
322
322
324
328
329
340
340
344
345
345
345
345
345
345
346
346
350
350
351
351
351
355
355
355
355
355
355
359
364
364
366
370
379
382
382
383
384
384
384
387
387
387
387
388
392
392
393
393
395
401
401
401
406
408
408
409
410
411
411
412
412
421
424
425
425
426
426
426
428
430
430
430
430
431
431
437
441
442
444
447
449
453
465
470
470
483
488
488
506
508
508
511
530
532
532
535
535
550
555
555
574
577
579
597
602
602
616
621
621
639
641
641
644
663
665
665
668
668
683
688
688
701
704
706
722
727
727
740
745
745
763
765
765
768
787
789
789
792
792
807
812
812
831
834
836
854
859
859
873
878
878
896
898
898
901
920
922
922
925
925
940
945
945
1343
1347
1348
1
8
8
10
18
19
19
20
20
20
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
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
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
29
30
30
31
34
38
40
40
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
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
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
50
51
51
52
52
53
53
54
54
54
54
54
54
55
59
59
60
60
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
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
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
68
69
69
69
69
69
70
70
70
71
72
72
73
73
73
73
74
74
84
85
86
88
89
89
89
89
90
90
90
90
90
90
90
90
91
96
96
96
97
98
101
101
102
102
103
103
104
108
108
108
109
120
120
121
122
122
122
123
123
124
124
125
125
125
125
125
125
126
126
128
128
130
130
130
130
131
134
134
135
135
138
138
139
139
139
139
139
140
140
140
140
140
140
141
141
143
144
144
145
145
145
150
153
155
155
157
158
159
159
160
160
161
161
161
161
161
161
170
171
172
175
175
176
176
176
176
177
177
179
180
183
187
187
188
191
193
193
193
193
194
194
195
195
196
196
196
196
196
196
198
201
203
203
205
205
206
206
209
209
209
210
210
210
210
210
211
211
211
211
211
211
212
212
214
214
214
215
215
216
216
217
227
228
230
231
231
232
232
232
232
232
232
232
232
233
233
234
237
239
241
242
242
242
243
243
243
243
247
247
248
248
250
252
253
255
258
258
266
271
272
274
276
279
279
280
280
281
281
285
285
285
285
289
289
294
296
299
299
300
300
311
316
316
317
318
318
321
322
322
323
323
323
324
329
330
341
346
346
346
346
347
347
351
351
352
352
352
354
356
356
356
356
356
356
356
360
365
365
366
371
371
379
383
383
384
385
385
388
388
388
388
389
393
393
394
394
402
402
407
409
412
412
413
413
422
424
426
426
427
427
427
429
429
431
431
431
431
432
432
437
442
443
445
448
450
466
471
471
484
489
489
507
509
512
531
536
536
551
556
556
575
578
580
598
603
603
617
622
622
640
642
645
664
669
669
684
689
689
702
705
707
723
728
728
741
746
746
764
766
769
788
793
793
808
813
813
832
835
837
855
860
860
874
879
879
897
899
902
921
926
926
941
946
946
1344
1348
1349
1
1
10
10
10
18
18
18
18
18
18
18
19
19
20
21
22
23
23
23
23
23
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
25
25
25
25
25
25
25
25
25
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
31
32
39
42
42
42
42
42
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
45
45
45
45
45
45
45
45
45
45
47
51
51
51
52
52
53
53
54
54
55
55
55
55
56
59
59
59
59
59
59
60
60
61
61
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
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
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
69
69
69
70
70
70
70
71
71
71
71
71
71
72
72
72
72
72
73
73
74
74
74
75
75
85
87
87
88
88
90
90
90
90
91
91
91
91
91
91
91
91
92
97
97
97
98
102
102
102
103
103
104
104
105
107
108
108
109
109
109
119
119
121
121
121
122
122
122
123
123
124
124
125
125
126
126
126
126
127
128
129
129
131
132
135
135
136
136
138
140
140
140
140
140
140
140
141
141
141
141
142
142
142
142
142
143
143
143
144
145
146
146
146
146
151
156
156
157
158
158
159
159
159
160
161
161
162
162
162
162
171
172
173
175
176
176
176
176
176
176
177
177
177
178
178
178
179
179
180
184
186
188
188
188
189
192
192
193
193
193
194
194
194
195
195
196
196
197
197
197
197
202
204
204
204
204
206
206
207
207
209
210
211
211
211
211
211
211
211
212
212
212
212
213
213
213
213
213
214
214
214
215
215
215
215
216
217
218
228
229
229
230
230
232
232
232
232
233
233
233
233
233
233
234
234
238
241
242
243
243
243
244
248
248
249
249
251
253
256
259
259
259
259
270
272
273
275
277
280
280
281
281
282
282
286
286
286
286
288
289
289
289
289
290
295
297
299
300
300
301
301
301
317
317
317
317
318
319
319
322
323
323
324
324
324
328
330
331
342
345
345
347
347
347
347
348
352
352
353
353
354
355
357
357
357
357
361
366
366
372
372
372
372
383
384
384
385
386
386
389
389
389
389
390
394
394
395
395
401
402
402
402
402
403
408
410
412
413
413
414
414
414
423
427
427
428
428
428
430
430
430
430
432
432
432
432
433
433
441
443
444
446
449
451
467
472
472
485
490
490
508
510
513
532
537
537
552
557
557
576
579
581
599
604
604
618
623
623
641
643
646
665
670
670
685
690
690
703
706
708
724
729
729
742
747
747
765
767
770
789
794
794
809
814
814
833
836
838
856
861
861
875
880
880
898
900
903
922
927
927
942
947
947
1345
1349
1350
8
8
10
15
18
18
20
22
22
22
22
22
22
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
24
24
24
24
25
25
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
26
26
27
27
27
27
27
27
27
27
28
29
29
29
29
29
29
29
32
33
39
39
39
40
40
40
40
40
40
40
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
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
47
47
47
51
52
52
52
53
53
53
53
55
55
55
57
59
59
59
59
59
59
60
60
60
60
60
60
61
61
62
62
64
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
65
65
65
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
68
69
70
70
71
71
72
72
72
72
72
73
73
73
73
73
74
75
85
85
86
89
89
89
89
89
91
91
91
91
92
92
93
98
98
98
98
99
103
103
103
104
104
105
105
105
108
108
108
108
109
109
109
109
110
110
113
120
121
121
121
122
123
123
123
124
124
124
124
128
129
129
130
130
130
132
133
136
136
137
137
138
140
140
140
141
141
141
141
141
142
142
143
143
143
143
144
144
144
144
144
146
146
147
147
152
153
157
157
158
160
160
160
160
160
160
168
172
173
174
177
177
177
177
178
178
178
179
179
179
179
179
179
180
180
180
180
186
187
190
192
192
192
193
193
194
194
194
195
195
195
195
195
198
198
202
203
204
204
205
205
207
207
208
208
209
211
211
211
212
212
212
212
212
213
213
214
214
214
214
215
215
215
215
216
216
216
218
218
226
229
231
231
231
231
233
234
234
239
242
242
243
243
244
244
244
245
249
249
250
250
252
253
253
254
257
257
259
259
260
260
266
271
273
273
276
278
281
281
281
282
282
283
283
287
287
287
287
290
290
291
296
299
300
301
301
311
311
315
317
317
318
318
319
320
320
323
324
324
324
325
325
325
329
331
331
339
343
346
348
348
349
353
353
354
354
355
355
356
356
358
358
358
358
362
366
366
367
367
370
372
372
373
373
379
384
385
385
386
386
387
390
390
390
390
391
394
395
395
396
396
403
403
404
409
412
413
414
414
424
424
424
428
428
428
429
429
429
430
430
431
431
433
433
433
433
434
434
437
442
444
444
447
450
452
452
468
473
473
486
491
491
509
511
514
533
538
538
553
558
558
577
580
582
600
605
605
619
624
624
642
644
647
666
671
671
686
691
691
704
707
709
725
730
730
743
748
748
766
768
771
790
795
795
810
815
815
834
837
839
857
862
862
876
881
881
899
901
904
923
928
928
943
948
948
1346
1350
1351
10
10
10
18
18
18
18
18
18
18
20
20
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
22
22
22
22
22
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
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
29
29
30
30
33
34
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
44
44
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
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
52
53
53
53
56
56
56
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
60
60
60
60
60
60
61
61
61
61
61
61
62
62
63
63
64
64
64
64
64
64
64
64
64
64
64
66
67
67
67
67
67
67
67
67
67
67
67
67
67
68
69
70
71
71
71
73
73
73
74
74
74
75
75
83
86
86
87
89
89
89
92
92
92
93
93
94
99
99
99
100
102
104
104
104
105
105
106
109
109
110
110
111
111
114
114
114
114
119
121
123
124
124
124
129
131
131
131
133
134
137
137
138
138
138
138
138
141
141
141
142
142
142
142
142
144
144
145
145
147
148
148
153
157
158
158
159
160
160
160
169
169
169
169
173
174
175
176
176
178
178
178
178
179
179
180
180
180
180
181
181
187
187
188
188
191
194
194
195
195
195
196
196
199
199
204
205
206
206
208
208
209
209
209
209
212
212
213
213
213
213
213
215
215
215
216
216
217
217
217
227
227
227
227
230
231
231
231
232
234
235
235
240
244
244
245
245
245
246
250
250
251
251
251
253
254
254
255
258
260
261
261
270
272
277
279
282
282
282
282
282
282
283
283
284
284
288
288
288
288
289
289
291
291
297
300
300
301
301
302
302
309
312
312
318
319
319
320
321
321
324
325
325
326
326
326
328
330
340
340
340
340
344
345
347
349
349
350
354
354
355
355
357
357
359
359
359
359
363
364
367
367
368
368
373
374
374
383
385
386
386
388
391
391
391
391
392
395
395
395
395
396
396
397
397
402
402
404
404
410
413
413
414
414
415
415
422
425
425
425
429
429
430
430
430
431
432
432
434
434
434
434
435
435
441
443
448
451
453
453
453
453
453
469
474
474
487
492
492
510
512
515
534
539
539
554
559
559
578
581
583
596
601
606
606
620
625
625
643
645
648
667
672
672
687
692
692
705
708
710
726
731
731
744
749
749
767
769
772
791
796
796
811
816
816
835
838
840
858
863
863
877
882
882
900
902
905
924
929
929
944
949
949
1347
1351
1352
2
8
8
10
10
10
10
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
21
22
22
22
22
22
22
22
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
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
31
34
35
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
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
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
46
46
51
53
53
53
53
53
53
53
53
54
54
54
54
54
54
55
55
55
55
55
55
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
63
63
64
64
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
69
69
69
69
70
71
73
73
74
76
76
84
84
87
88
89
90
90
91
91
91
91
91
91
91
91
93
93
93
95
100
100
100
101
103
103
105
105
105
105
106
106
107
109
110
112
112
115
115
119
119
120
122
124
125
125
126
126
126
126
126
126
129
130
130
130
130
132
132
132
134
135
138
138
139
139
139
139
139
139
140
140
140
142
143
143
143
143
144
145
146
146
148
154
158
158
158
159
159
160
160
160
161
161
162
162
162
162
162
162
170
170
174
175
176
177
179
179
180
180
180
181
181
181
189
189
193
195
195
196
196
197
197
197
197
197
197
197
197
197
204
204
205
206
209
209
210
210
210
210
211
211
211
213
213
214
214
214
214
215
216
216
216
218
218
218
218
228
228
229
231
231
232
232
232
232
233
233
233
233
233
233
233
236
236
241
242
243
243
243
245
245
246
246
246
247
251
251
252
252
252
252
254
256
259
259
259
261
271
271
273
273
278
280
283
283
283
283
284
284
285
285
289
289
289
289
290
298
302
302
303
303
310
310
317
317
319
321
322
322
325
326
326
327
327
327
329
329
331
331
341
341
345
345
345
346
350
350
351
355
355
355
356
356
356
356
356
358
358
360
360
360
360
364
365
365
369
369
372
372
374
384
384
386
386
387
387
389
392
392
392
392
393
396
396
397
397
398
398
403
411
415
415
416
416
423
423
426
430
430
430
430
431
431
431
432
435
435
435
435
436
436
442
442
444
444
452
454
454
454
470
475
475
488
493
493
511
513
516
535
540
540
555
560
560
579
582
584
594
596
597
602
607
607
621
626
626
644
646
649
668
673
673
688
693
693
709
711
727
732
732
745
750
750
768
770
773
792
797
797
812
817
817
836
839
841
859
864
864
878
883
883
901
903
906
925
930
930
945
950
950
1348
1352
1353
2
3
10
10
10
10
11
11
20
20
21
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
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
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
31
31
32
32
34
35
35
36
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
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
47
47
52
52
53
53
54
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
57
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
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
64
64
65
65
67
67
67
67
67
67
67
68
69
69
69
69
70
70
70
70
70
71
71
72
73
73
74
74
75
75
75
77
77
88
88
89
89
89
91
91
92
92
92
92
92
94
94
96
101
101
101
102
103
105
106
106
106
106
107
107
108
108
109
109
110
113
113
115
118
119
120
121
123
123
124
124
126
126
127
127
127
127
129
129
129
130
131
131
131
131
133
135
136
139
139
140
140
141
141
141
141
143
144
144
144
144
144
144
145
147
155
158
159
159
160
160
160
160
160
161
161
162
162
163
163
163
163
170
175
176
176
177
178
179
180
180
180
180
181
181
181
182
182
187
188
188
188
190
190
194
194
195
195
196
197
197
198
198
198
198
198
205
206
210
210
211
211
212
212
212
212
214
214
215
215
215
215
215
215
216
216
218
219
219
219
219
228
230
230
231
231
231
232
232
233
233
233
234
234
234
234
234
237
237
242
242
242
242
243
244
244
244
247
247
247
248
252
252
253
253
255
257
260
260
271
273
274
274
279
281
283
284
284
285
285
286
286
289
290
290
290
290
291
299
300
301
301
301
303
303
304
304
318
322
323
323
326
327
327
328
328
328
329
331
332
332
341
344
345
346
346
347
351
351
352
355
355
355
356
356
356
357
357
357
357
357
361
361
361
361
365
370
370
373
384
386
387
387
388
388
390
393
393
393
393
394
396
398
398
399
399
402
404
412
413
414
414
414
416
416
417
417
427
431
431
431
432
432
432
436
436
436
436
437
437
442
444
445
445
453
454
455
471
476
476
489
494
494
512
514
517
536
541
541
556
561
561
580
583
585
595
597
603
608
608
622
627
627
645
647
650
669
674
674
689
694
694
710
712
728
733
733
746
751
751
769
771
774
793
798
798
813
818
818
837
840
842
860
865
865
879
884
884
902
904
907
926
931
931
946
951
951
1349
1353
1354
3
4
8
12
12
18
18
20
21
21
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
35
36
36
37
39
39
39
40
40
40
40
40
40
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
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
48
48
54
54
54
54
55
55
55
55
55
55
55
56
56
56
56
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
65
65
66
66
69
70
70
70
70
71
71
71
71
71
72
73
73
73
73
74
74
74
74
75
75
76
76
76
86
90
90
90
90
90
91
91
93
95
95
97
102
102
102
103
103
105
106
107
107
107
107
108
108
109
109
109
109
109
110
110
110
110
114
114
115
119
121
122
125
125
125
125
131
132
132
132
132
134
136
137
140
140
141
141
141
142
142
144
144
144
144
145
145
145
145
145
145
145
145
146
146
148
156
158
160
161
161
161
161
161
161
161
162
162
170
176
176
176
177
177
178
180
180
180
180
181
181
181
181
181
181
182
182
183
183
187
187
187
188
189
189
189
196
196
196
196
197
199
199
204
204
206
207
211
211
212
212
213
213
215
215
215
215
215
216
216
216
216
216
216
216
216
216
218
219
220
220
220
220
228
232
232
232
232
232
233
234
235
238
238
243
244
245
245
245
248
248
248
249
253
253
254
254
254
256
258
259
259
261
261
271
273
274
275
275
280
282
283
285
285
286
286
287
287
289
289
290
291
291
291
291
300
300
300
300
301
302
302
302
305
305
312
317
317
319
323
324
327
328
328
329
329
329
329
331
332
333
333
341
345
347
347
348
352
352
353
357
357
357
358
358
358
358
358
362
362
362
362
366
367
371
371
372
372
374
384
386
387
388
388
389
389
391
394
394
394
394
395
396
399
399
400
400
402
402
403
413
413
413
413
414
415
415
415
418
418
425
428
430
430
432
432
432
433
433
433
437
437
437
437
438
438
442
444
445
446
446
454
454
456
472
477
477
490
495
495
513
515
518
537
542
542
557
562
562
584
586
595
604
609
609
623
628
628
646
648
651
670
675
675
690
695
695
711
713
729
734
734
747
752
752
770
772
775
794
799
799
814
819
819
841
843
861
866
866
880
885
885
903
905
908
927
932
932
947
952
952
1350
1354
1355
4
4
5
5
12
13
19
20
20
20
20
21
21
21
22
23
23
23
23
23
23
25
25
25
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
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
29
29
29
32
33
36
37
37
38
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
44
44
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
45
45
45
45
45
45
45
45
49
49
54
54
54
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
66
66
66
67
67
70
71
71
71
71
71
73
74
74
75
75
76
77
77
77
86
90
90
90
91
91
91
92
92
96
96
98
103
103
103
103
103
104
106
107
108
108
109
109
110
110
110
111
111
115
115
119
120
122
125
125
125
130
132
133
133
135
137
138
141
141
141
142
142
142
145
145
146
146
146
146
146
146
146
146
147
147
157
158
158
161
161
161
161
162
162
162
175
176
177
177
178
178
179
181
181
182
182
182
182
183
183
184
184
189
190
190
190
191
196
196
196
198
199
200
204
204
205
205
208
212
212
213
213
213
216
216
216
216
216
217
217
217
217
217
217
219
220
221
221
232
232
232
232
233
234
235
239
239
243
244
245
246
246
249
249
249
250
254
254
254
255
255
259
259
259
260
260
262
271
271
274
275
281
283
286
286
287
287
288
288
288
289
290
291
292
292
292
292
301
302
303
303
303
306
306
312
317
317
318
318
324
325
328
329
329
329
329
330
330
330
332
333
345
346
348
348
353
353
354
356
358
358
358
359
359
359
359
363
363
363
363
367
367
372
372
372
372
373
373
384
384
387
388
390
392
395
395
395
395
396
400
400
401
401
401
402
403
404
414
415
416
416
416
419
419
425
429
430
430
431
431
433
433
434
434
434
438
438
438
438
439
439
442
442
445
446
448
455
457
473
478
478
491
496
496
516
519
538
543
543
558
563
563
585
587
597
605
610
610
624
629
629
649
652
671
676
676
691
696
696
705
712
714
730
735
735
748
753
753
773
776
795
800
800
815
820
820
842
844
862
867
867
881
886
886
906
909
928
933
933
948
953
953
1351
1355
1356
5
5
6
6
8
8
13
18
18
18
18
18
19
19
20
20
21
21
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
26
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
30
33
34
36
37
38
38
38
38
38
38
38
39
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
46
50
50
52
54
55
55
56
56
56
56
56
56
57
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
66
67
67
67
68
68
70
71
71
72
72
72
72
74
74
75
75
77
78
78
88
90
91
91
92
92
92
93
93
97
97
99
104
104
104
104
104
105
105
105
105
107
109
109
110
110
110
111
111
116
116
119
120
122
122
123
123
125
126
126
127
127
127
127
127
127
131
131
136
138
139
141
142
142
142
143
143
145
146
147
147
147
147
148
148
158
159
159
159
160
160
160
161
162
162
162
163
163
163
163
176
178
178
179
179
180
181
182
183
183
184
184
185
185
188
190
191
191
192
194
196
196
197
197
198
198
198
198
198
198
199
201
206
206
209
212
213
213
213
214
214
216
217
217
217
217
218
218
218
218
218
218
218
220
222
222
230
232
232
233
233
233
234
234
235
235
235
236
240
240
244
244
245
250
250
250
251
255
255
256
256
260
261
261
263
272
272
273
273
273
275
282
284
287
287
288
288
289
289
289
291
292
293
293
293
293
301
302
303
304
304
307
307
319
319
325
326
329
330
330
330
330
331
331
331
331
331
331
333
345
346
348
348
349
349
354
354
355
357
357
359
359
360
360
364
364
364
364
368
373
373
374
374
385
385
386
386
386
388
391
393
396
396
396
396
397
401
401
402
402
402
404
405
414
415
416
417
417
420
420
430
432
432
434
434
435
435
435
439
439
439
439
440
440
443
443
444
444
444
446
449
453
456
458
474
479
479
492
497
497
517
520
539
544
544
559
564
564
586
588
597
606
611
611
625
630
630
650
653
672
677
677
692
697
697
706
710
713
715
731
736
736
749
754
754
774
777
796
801
801
816
821
821
843
845
863
868
868
882
887
887
907
910
929
934
934
949
954
954
1352
1356
1357
7
7
8
13
13
14
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
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
24
24
24
24
24
24
24
24
25
25
25
25
25
27
27
27
27
27
27
27
27
28
29
29
29
29
29
29
29
29
31
34
35
37
37
38
38
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
41
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
43
43
43
43
47
51
51
53
53
54
54
56
56
57
57
57
57
57
57
57
57
57
57
60
60
60
60
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
65
65
65
65
65
65
65
65
65
66
67
68
68
68
69
69
70
71
71
71
71
72
73
73
73
73
74
74
74
75
75
75
75
76
76
86
86
89
89
89
92
92
92
92
92
92
93
94
94
98
98
100
105
105
105
106
106
106
106
106
110
110
110
110
110
111
111
111
111
111
112
117
117
123
123
124
124
124
125
125
127
127
128
128
128
128
137
139
140
141
141
142
142
142
142
143
143
144
144
144
145
145
145
146
146
146
148
148
149
149
159
160
160
161
161
161
161
163
163
163
163
163
163
164
164
169
176
177
179
179
180
181
181
181
181
182
182
182
184
184
185
185
186
186
189
189
195
195
196
196
197
198
198
199
199
199
199
199
199
200
202
202
207
207
210
213
213
213
213
214
214
215
215
216
216
216
217
217
217
218
219
219
219
219
219
219
219
219
223
223
231
231
234
234
234
234
234
234
236
236
236
237
241
241
246
251
251
251
252
254
254
256
256
257
257
257
261
262
262
264
274
274
274
274
282
283
285
288
288
289
289
289
290
290
290
292
294
294
302
302
303
308
308
312
312
315
320
320
323
326
327
330
331
331
332
332
332
332
332
332
332
349
349
350
350
355
355
356
360
360
361
361
365
365
365
365
367
367
369
370
374
374
375
375
387
387
387
387
392
394
395
397
397
397
397
398
402
402
402
403
403
403
405
415
415
416
421
421
425
425
428
431
433
433
435
435
436
436
436
440
440
441
441
445
445
445
445
454
457
459
475
480
480
493
498
498
518
521
540
545
545
560
565
565
580
587
589
607
612
612
626
631
631
651
654
673
678
678
693
698
698
711
714
716
732
737
737
750
755
755
775
778
797
802
802
817
822
822
837
844
846
864
869
869
883
888
888
908
911
930
935
935
950
955
955
1353
1357
1358
1
4
4
8
8
8
12
12
12
14
15
15
18
18
18
18
18
18
18
18
18
18
18
18
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
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
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
28
30
32
34
35
38
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
42
42
42
42
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
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
48
50
50
52
52
55
55
55
55
55
55
55
55
55
55
55
55
55
57
57
57
57
57
57
57
57
58
58
58
58
58
58
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
65
65
65
65
65
65
65
66
66
67
68
69
69
69
70
70
71
71
72
72
73
74
74
74
74
75
75
76
76
76
84
87
87
90
90
90
93
93
93
93
93
93
93
93
94
95
99
99
101
106
106
106
107
107
107
111
111
111
112
112
112
113
118
118
124
124
126
126
126
126
132
133
136
138
139
140
141
142
142
143
143
144
144
145
145
145
146
146
147
147
149
149
150
160
161
161
162
162
164
164
164
164
164
164
164
164
165
165
170
170
170
170
176
177
179
179
180
180
181
182
182
182
183
183
185
186
187
197
197
197
197
197
198
200
200
201
203
203
208
211
214
214
215
215
216
216
217
217
218
218
219
220
220
220
220
220
220
224
224
232
232
235
235
235
235
235
235
235
235
237
237
237
242
242
246
247
252
252
252
252
253
255
255
256
257
258
258
260
262
263
265
275
275
283
283
283
283
284
286
289
289
289
290
290
290
291
291
292
292
293
295
295
304
309
309
310
313
313
316
321
324
327
328
328
331
332
333
333
333
333
350
350
351
356
356
357
359
361
361
362
362
365
366
366
366
366
368
368
370
371
375
375
376
388
388
389
393
393
395
396
396
396
396
398
398
398
398
399
402
403
403
404
405
405
406
417
422
422
423
426
426
429
432
434
436
436
437
437
437
441
441
442
446
446
455
458
460
476
481
481
494
499
499
513
517
519
522
541
546
546
561
566
566
581
585
588
590
608
613
613
627
632
632
646
650
652
655
674
679
679
694
699
712
715
717
733
738
738
751
756
756
770
774
776
779
798
803
803
818
823
823
838
842
845
847
865
870
870
884
889
889
903
907
909
912
931
936
936
951
956
1354
1358
1359
1
1
5
5
5
5
9
9
9
12
13
15
15
15
15
15
18
18
18
18
19
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
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
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
29
31
31
33
33
37
37
37
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
41
42
42
42
42
42
42
43
43
43
43
43
45
45
45
45
45
45
49
51
51
53
53
53
53
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
58
58
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
63
63
63
63
65
65
65
65
65
65
65
65
65
65
66
66
67
67
68
69
70
70
70
71
71
72
72
73
74
74
75
75
75
75
75
75
75
75
76
76
76
76
76
77
77
78
85
85
90
90
91
91
91
93
93
93
93
94
94
94
94
94
94
95
96
100
100
102
107
107
107
107
108
109
110
110
110
111
111
111
111
111
111
112
112
112
112
112
112
113
113
114
114
119
119
122
126
126
126
133
137
139
140
140
141
142
143
144
145
145
145
145
145
146
146
146
146
146
146
147
147
147
147
147
147
147
147
147
148
149
149
150
150
151
161
162
162
162
162
164
164
164
164
165
165
165
165
166
166
171
171
180
180
180
181
181
181
182
182
182
182
182
183
183
183
183
183
183
184
184
184
185
185
186
186
186
187
188
191
197
197
197
198
198
199
202
203
203
204
207
207
209
212
214
215
216
216
216
217
217
217
217
217
217
218
218
218
218
218
219
220
220
221
221
221
221
225
225
227
233
233
233
235
235
235
235
235
236
236
236
236
238
243
243
246
248
253
253
253
253
253
254
256
256
257
257
258
258
258
259
261
262
262
263
264
266
275
284
284
285
287
290
290
291
291
292
292
293
293
293
293
293
293
294
296
296
304
305
310
310
311
311
316
316
320
320
322
328
329
329
331
331
332
332
332
333
333
334
334
340
348
352
357
357
358
359
362
362
363
363
366
366
367
367
367
367
371
371
371
375
375
376
376
377
388
394
394
396
397
397
399
399
399
399
400
402
402
403
403
404
405
406
406
407
417
418
423
423
424
424
429
429
433
433
433
435
437
437
438
438
438
439
439
439
439
441
441
442
442
443
446
453
456
459
461
477
482
482
495
500
500
518
520
523
542
547
547
562
567
567
586
589
591
609
614
614
628
633
633
651
653
656
675
680
680
695
698
698
700
713
716
718
734
739
739
752
757
757
775
777
780
799
804
804
819
824
824
843
846
848
866
871
871
885
890
890
908
910
913
932
937
937
952
955
955
957
1355
1359
1360
5
5
10
10
10
10
12
12
15
16
18
18
18
18
18
18
18
18
18
20
20
20
20
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
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
28
28
28
28
28
28
28
28
28
28
28
28
28
28
30
32
32
34
34
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
40
40
40
40
40
40
40
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
50
52
52
53
54
54
54
54
54
54
54
54
54
54
54
54
55
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
63
63
63
63
63
65
65
65
65
65
65
65
67
67
68
68
70
71
71
71
72
72
72
72
72
73
74
75
75
76
76
76
76
76
76
77
77
77
78
78
78
91
91
91
93
93
94
94
95
95
95
95
95
95
96
97
101
101
103
107
108
108
108
109
110
111
111
112
112
112
113
113
113
113
114
114
115
115
115
115
119
120
120
124
126
127
127
128
128
138
140
142
143
143
143
143
145
146
146
146
147
147
147
148
148
148
148
148
149
150
150
151
151
152
162
162
162
162
162
164
164
165
165
166
166
166
166
167
167
171
181
181
181
182
182
183
183
183
184
184
184
184
185
185
186
187
187
188
189
191
195
197
198
198
199
199
200
203
203
205
205
208
208
210
213
214
214
214
216
217
217
217
218
218
218
218
219
219
219
220
220
221
222
222
222
222
226
226
228
228
228
232
233
233
233
235
235
236
236
237
237
237
237
239
244
244
249
254
254
254
255
257
258
259
260
262
263
263
264
265
267
275
284
286
288
291
291
292
292
293
294
294
294
294
297
297
304
306
311
311
321
321
323
329
330
330
332
333
333
333
334
335
335
341
341
341
345
353
358
358
359
363
363
364
364
368
368
368
368
372
376
376
377
377
378
388
395
395
397
397
400
400
400
400
401
403
404
405
406
407
407
417
419
424
424
434
434
434
436
438
438
439
439
440
440
442
443
443
444
446
454
454
454
457
460
460
462
462
478
483
483
496
501
501
519
521
524
543
548
548
563
568
568
587
590
592
610
615
615
629
634
634
652
654
657
676
681
681
696
699
701
714
717
717
719
719
735
740
740
753
758
758
776
778
781
800
805
805
820
825
825
844
847
849
867
872
872
886
891
891
909
911
914
933
938
938
953
956
958
1356
1360
1361
4
4
5
5
6
6
11
11
11
11
16
17
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
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
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
29
29
29
29
29
29
29
29
29
29
29
29
29
29
31
33
33
35
35
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
41
41
41
41
41
41
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
43
43
43
43
43
43
43
43
43
43
44
50
51
51
51
51
51
51
51
51
52
52
52
52
53
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
57
57
57
57
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
58
58
58
58
58
58
58
58
58
58
58
58
60
60
60
60
60
60
60
60
61
63
63
63
63
68
69
71
72
72
73
73
73
73
74
75
75
75
76
76
76
76
77
77
77
77
78
78
79
87
89
92
92
92
92
93
93
93
93
93
93
94
94
94
95
95
96
96
97
102
102
104
109
109
110
111
111
111
112
112
112
112
113
113
113
114
114
114
115
116
116
116
119
120
121
121
122
122
125
125
128
128
128
128
128
128
133
133
139
141
142
143
144
144
144
146
146
146
147
147
147
147
147
148
148
148
149
149
149
149
149
151
151
152
152
160
163
163
163
163
163
164
164
164
164
164
164
165
165
166
166
168
168
171
179
182
182
182
183
183
183
183
184
184
184
185
185
185
186
187
188
188
189
190
196
196
199
199
199
199
199
199
200
201
206
206
207
209
209
214
215
215
217
217
217
218
218
218
218
218
219
219
219
219
220
220
222
223
223
227
227
229
229
231
232
233
234
234
234
234
235
235
235
235
235
235
235
235
236
236
237
237
240
245
245
246
246
250
255
255
255
256
258
259
260
261
262
263
264
264
265
268
284
287
289
292
292
292
293
293
294
295
295
298
298
307
312
312
313
320
322
322
330
331
331
333
334
334
335
336
336
342
342
345
346
348
348
354
359
359
359
359
360
364
364
365
365
368
369
369
373
375
377
377
378
378
396
396
397
398
401
401
401
402
404
405
405
406
407
420
425
425
426
433
435
435
435
439
439
440
440
441
441
443
444
444
445
455
455
458
463
463
479
484
484
497
502
502
520
522
525
544
549
549
564
569
569
588
591
593
597
611
616
616
630
635
635
653
655
658
677
682
682
697
700
702
715
720
720
736
741
741
754
759
759
777
779
782
801
806
806
821
826
826
845
848
850
868
873
873
887
892
892
910
912
915
934
939
939
954
957
959
1357
1361
1362
5
5
5
6
6
6
7
7
8
12
12
15
17
18
18
18
18
18
18
19
19
19
19
19
19
19
21
21
21
21
21
21
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
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
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
32
36
36
38
38
38
38
38
38
40
40
40
42
42
42
42
42
42
42
42
42
42
42
42
43
44
44
44
44
44
45
51
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
54
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
65
69
69
71
73
73
73
73
73
73
74
74
74
74
74
75
75
75
75
76
76
76
77
77
77
77
78
78
78
78
80
80
87
90
91
91
92
92
93
93
94
94
94
95
95
98
103
103
105
108
108
110
110
110
110
111
111
111
111
112
112
112
113
113
113
114
115
115
116
116
116
116
116
117
117
119
122
122
123
123
126
126
129
129
129
129
129
129
129
129
131
134
134
140
142
142
142
144
144
144
144
144
145
145
145
145
146
146
146
146
146
147
147
147
148
148
148
148
149
149
150
150
153
153
161
162
162
163
163
164
164
164
165
165
166
166
169
169
176
181
181
182
182
182
183
183
183
184
184
184
185
186
187
188
189
189
190
191
191
191
197
197
200
200
200
200
200
200
200
200
200
202
207
207
207
213
215
215
215
215
215
216
216
216
217
217
217
218
218
218
219
219
219
219
220
220
223
224
224
228
228
228
229
229
229
229
230
232
232
233
233
234
234
235
235
236
236
236
236
237
237
241
244
246
246
247
247
251
254
254
255
256
256
257
259
260
261
262
262
264
266
269
288
289
290
292
292
293
293
294
294
295
296
296
299
299
304
304
308
313
313
313
320
331
332
332
334
335
335
335
336
337
337
337
341
342
342
342
342
343
345
349
349
355
357
360
360
360
360
361
365
365
366
366
368
370
370
374
375
379
379
397
397
399
400
400
402
402
402
402
403
405
406
407
408
417
417
421
426
426
426
433
436
438
438
440
440
441
441
442
442
444
445
445
446
454
455
455
455
455
456
459
464
464
480
485
485
498
503
503
521
523
526
545
550
550
565
570
570
589
592
592
594
594
595
597
598
612
617
617
631
636
636
654
656
659
678
683
683
698
701
703
716
721
721
737
742
742
755
760
760
778
780
783
802
807
807
822
827
827
846
849
849
851
851
869
874
874
888
893
893
911
913
916
935
940
940
955
958
960
1358
1362
1363
4
5
5
7
7
8
8
9
12
13
13
15
15
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
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
26
26
26
26
26
26
26
27
27
27
28
28
28
28
28
28
28
33
34
34
34
34
34
34
37
37
37
37
37
39
39
39
39
39
39
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
41
41
41
42
42
42
43
43
43
44
45
45
46
52
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
56
56
56
56
57
57
57
57
57
57
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
58
58
58
58
58
58
58
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
65
65
65
66
70
71
72
74
74
74
74
75
75
75
75
75
76
76
76
76
76
76
76
76
77
77
78
78
79
79
79
79
81
81
90
91
91
92
93
93
93
94
94
94
95
95
95
96
96
99
104
104
106
106
109
111
111
111
111
112
112
112
113
113
114
114
114
115
116
117
117
117
118
118
120
122
123
123
124
124
124
127
127
127
129
129
129
129
130
130
130
130
132
132
141
143
143
143
145
145
145
145
146
146
146
146
146
147
147
147
148
148
149
149
149
149
149
150
150
151
151
154
154
161
162
162
163
164
164
164
165
165
165
166
166
167
167
170
170
176
177
179
179
182
182
183
183
184
184
185
185
185
186
187
188
189
189
190
190
191
192
192
192
198
198
198
200
200
200
200
201
201
201
201
203
203
207
208
208
208
214
216
216
216
217
217
217
218
218
219
219
219
220
220
220
220
221
221
222
222
222
222
224
225
225
229
229
230
230
231
233
233
233
234
235
235
235
235
236
236
237
237
237
237
237
238
238
242
245
245
247
247
252
255
257
257
258
258
260
261
262
262
263
263
265
267
267
270
270
274
289
289
290
291
292
292
293
294
294
295
295
296
297
297
300
300
302
305
305
309
314
314
316
320
321
332
332
333
333
335
336
337
338
338
338
343
343
344
346
348
350
350
350
356
358
358
361
361
362
366
366
367
367
368
368
368
368
371
371
371
375
375
376
380
380
387
398
398
400
400
401
402
403
403
403
403
403
404
405
405
406
407
408
409
415
418
418
422
427
427
429
433
434
437
439
441
441
442
442
443
443
445
445
446
446
447
456
456
457
460
465
465
481
486
486
499
504
504
522
524
524
527
527
546
551
551
566
571
571
590
595
595
596
598
613
618
618
632
637
637
655
657
657
660
660
679
684
684
699
702
704
717
722
722
738
743
743
756
761
761
779
781
781
784
784
803
808
808
823
828
828
847
852
852
870
875
875
889
894
894
912
914
914
917
917
936
941
941
956
959
961
1359
1363
1364
5
5
6
6
8
8
9
9
10
14
14
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
20
20
20
20
20
20
20
20
20
20
21
21
21
21
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
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
27
27
27
28
29
29
29
29
29
29
29
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
38
38
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
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
44
44
46
47
54
54
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
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
57
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
65
66
67
71
71
73
73
73
75
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
77
78
79
80
80
82
82
90
92
92
92
92
92
93
93
93
94
94
94
95
96
97
97
100
105
105
107
107
107
107
107
110
111
111
112
112
112
112
112
113
113
114
115
115
116
116
116
117
118
118
118
119
122
123
124
124
127
127
127
129
129
130
130
131
131
131
131
142
144
144
144
145
146
146
146
146
146
147
147
147
147
147
147
148
148
148
149
150
150
151
151
152
152
155
155
162
162
162
162
163
163
163
163
163
164
164
164
165
165
165
166
168
168
171
171
176
180
180
182
182
183
183
183
183
184
184
185
186
186
189
190
190
190
191
191
192
193
198
198
198
200
200
201
201
202
202
202
202
203
204
208
209
209
209
215
215
215
217
217
217
217
217
218
218
218
218
219
219
220
220
220
220
220
221
221
221
222
223
223
225
226
226
229
229
230
230
231
231
234
234
234
234
234
235
235
235
235
236
236
236
236
239
239
243
248
248
253
256
258
258
261
262
263
263
264
264
266
271
271
275
275
275
275
289
290
292
293
293
294
295
295
297
298
298
301
301
303
303
310
315
315
316
321
322
333
333
333
333
334
336
337
338
339
339
339
342
342
344
344
348
349
357
362
362
363
367
367
368
369
369
371
372
372
376
376
377
381
381
388
388
388
388
399
399
402
402
404
404
404
406
406
407
408
409
410
416
416
423
428
428
429
434
435
438
440
443
443
444
444
446
446
446
446
446
447
447
448
455
455
457
457
461
466
466
482
487
487
500
505
505
523
528
528
547
552
552
567
572
572
591
596
596
596
614
619
619
633
638
638
656
661
661
680
685
685
700
703
705
718
723
723
739
744
744
757
762
762
780
785
785
804
809
809
824
829
829
848
853
853
871
876
876
890
895
895
913
918
918
937
942
942
957
960
962
1360
1364
1365
4
4
5
5
5
5
6
10
10
11
15
15
15
15
18
18
18
18
18
18
18
19
20
20
20
20
20
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
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
28
28
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
43
43
44
44
44
45
45
47
48
52
52
52
52
53
53
53
53
53
53
53
53
53
54
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
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
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
65
66
67
68
68
72
72
72
73
74
74
75
76
76
76
76
77
77
77
78
78
78
78
78
78
79
79
79
80
81
81
83
83
90
92
92
92
92
93
94
94
95
95
96
96
96
96
96
97
98
98
101
106
106
108
108
108
111
111
112
112
113
113
113
114
114
114
115
115
115
116
116
117
117
118
119
120
123
123
124
124
125
125
128
128
128
128
129
129
129
129
129
129
130
130
131
131
134
143
143
143
144
145
145
146
147
147
147
148
148
148
148
149
149
149
149
149
150
150
150
151
151
152
152
153
153
156
156
161
163
163
163
163
163
163
164
165
166
166
167
167
167
167
167
169
169
172
172
177
179
181
181
181
182
183
183
184
184
185
185
185
186
186
186
187
187
190
191
192
192
193
194
196
199
199
199
199
200
200
200
200
200
200
201
201
202
202
205
207
209
210
210
210
214
214
215
216
216
217
218
218
218
219
219
220
220
220
221
221
221
221
221
222
222
222
223
224
224
226
227
227
230
231
231
232
234
234
234
234
235
236
236
236
237
237
237
237
238
238
238
238
240
240
244
247
249
254
257
259
262
262
263
264
264
265
265
267
272
272
276
276
290
291
292
293
294
294
294
295
296
296
298
299
299
302
302
311
316
320
322
323
334
334
335
337
338
339
340
340
340
343
349
349
350
350
358
360
363
363
364
368
368
369
370
370
373
373
375
377
377
378
382
389
389
400
400
403
403
405
405
405
405
407
407
407
408
409
410
411
424
429
429
433
435
436
439
441
444
444
445
445
447
447
447
448
448
449
456
462
467
467
483
488
488
501
506
524
529
529
548
553
553
568
573
592
597
597
598
615
620
620
634
639
657
662
662
681
686
686
701
704
706
719
724
724
740
745
745
758
763
781
786
786
805
810
810
825
830
849
854
854
872
877
877
891
896
914
919
919
938
943
943
958
961
963
1361
1365
1366
5
5
5
6
6
6
7
11
11
12
16
16
17
17
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
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
22
22
22
22
22
23
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
28
33
33
33
35
36
36
37
37
37
37
37
37
38
38
38
40
40
43
44
44
45
45
45
46
46
48
49
51
51
51
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
63
67
73
73
73
75
75
75
75
77
77
78
78
79
79
79
79
79
79
79
80
80
80
81
82
82
84
84
85
90
90
92
94
95
95
96
96
97
97
97
97
97
97
99
99
102
107
107
108
109
112
114
114
115
115
115
116
116
116
116
117
117
118
118
119
120
121
125
125
126
126
127
127
128
128
129
129
130
130
131
131
134
140
144
144
144
145
146
146
148
149
149
149
150
150
150
150
150
151
151
151
152
152
152
153
154
154
157
157
161
163
163
165
166
167
167
168
168
168
168
168
170
170
170
173
173
179
180
185
186
186
186
187
187
187
188
188
191
192
192
193
193
194
195
197
198
198
198
199
199
200
200
201
201
202
202
203
206
208
210
210
211
211
215
215
217
217
219
220
221
221
221
221
221
221
222
222
222
223
223
223
224
225
225
227
228
228
229
231
232
232
232
234
236
237
238
238
238
238
239
239
239
239
241
241
245
247
250
253
255
258
258
260
263
263
264
265
265
265
266
268
273
273
276
283
292
292
293
294
296
297
297
299
300
300
303
303
305
311
312
315
315
316
317
321
323
323
334
336
338
339
340
341
341
341
342
344
351
351
359
360
364
364
365
366
367
367
369
369
370
371
371
371
374
374
376
378
378
378
383
389
396
401
401
404
405
406
406
406
406
409
410
411
412
418
424
425
429
430
430
434
436
436
440
442
445
445
446
446
447
448
449
449
450
455
457
463
468
468
484
489
489
502
507
525
530
530
549
554
554
569
572
572
574
593
598
598
598
616
621
621
635
640
658
663
663
682
687
687
702
705
707
720
725
725
741
746
746
759
764
782
787
787
806
811
811
826
829
829
831
850
855
855
873
878
878
892
897
915
920
920
939
944
944
959
962
964
1362
1366
1367
5
5
5
8
8
8
8
8
12
12
13
15
15
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
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
22
22
22
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
28
32
32
32
34
34
34
34
34
34
34
34
34
34
34
34
37
37
37
37
38
38
38
38
38
38
38
38
38
41
41
41
41
41
44
44
45
45
45
46
46
47
49
50
52
52
52
52
52
52
52
52
52
52
52
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
56
56
56
56
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
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
61
61
61
61
61
61
64
64
68
68
73
73
74
74
74
76
76
78
78
79
79
80
80
80
80
80
81
81
83
83
85
85
86
91
92
93
94
96
96
98
98
98
98
103
108
108
108
111
112
113
115
116
116
116
116
117
117
117
118
119
120
121
122
123
124
124
124
124
124
126
126
127
127
127
128
129
129
129
130
130
131
131
132
132
141
144
144
145
145
145
147
149
149
149
150
150
151
151
151
151
152
152
153
153
154
155
155
158
158
162
163
163
164
167
169
169
169
169
169
171
171
171
174
174
180
180
181
181
186
187
187
187
188
188
192
192
193
194
194
195
196
198
198
199
199
200
200
200
201
201
202
202
203
203
207
207
209
212
212
215
215
216
216
218
220
221
222
222
222
223
223
224
224
225
226
226
228
229
229
229
229
230
233
233
233
234
235
236
237
237
237
238
239
239
240
240
240
240
246
248
248
251
254
257
258
259
261
262
264
264
265
266
267
269
274
274
276
284
284
284
293
293
293
294
294
295
295
297
298
298
299
299
300
301
301
304
304
305
312
313
316
318
320
322
332
333
334
337
339
340
341
342
342
342
342
342
343
349
350
350
350
352
352
360
365
365
366
367
368
370
370
371
372
372
375
375
375
377
379
381
381
384
389
397
397
397
402
403
404
405
406
406
407
407
407
407
407
410
411
412
413
418
425
426
431
431
433
435
441
441
443
445
445
446
447
447
447
449
450
450
451
455
455
456
464
469
469
485
490
490
503
505
505
508
526
531
531
550
555
555
570
573
575
594
599
599
617
622
622
636
638
638
641
659
664
664
683
688
688
706
708
721
726
726
742
747
747
760
762
762
765
783
788
788
807
812
812
827
830
832
851
856
856
874
879
879
893
895
895
898
916
921
921
940
945
945
963
965
1363
1367
1368
5
5
6
6
6
6
9
9
9
13
13
14
17
17
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
19
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
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
26
26
28
33
33
33
33
33
33
35
35
35
35
35
35
35
35
35
35
35
35
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
41
41
41
42
42
42
43
45
45
46
46
47
48
49
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
51
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
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
61
61
61
61
62
62
62
69
69
73
74
75
75
75
76
76
76
77
77
80
81
81
81
84
84
86
86
87
87
91
91
94
95
95
95
95
96
96
96
96
97
97
97
104
109
109
111
112
112
113
114
115
116
116
116
117
117
118
119
120
121
122
123
123
123
123
124
125
125
125
125
128
128
128
128
128
128
129
129
129
130
130
130
133
133
134
134
142
142
144
145
146
146
146
147
147
147
148
150
150
151
151
152
152
152
154
154
155
156
156
159
159
162
162
165
166
166
167
167
167
167
168
170
172
172
175
175
182
182
182
183
187
188
191
192
193
194
195
195
196
197
199
199
199
199
199
200
200
200
200
200
201
201
201
204
204
208
208
208
210
210
213
213
215
216
217
217
218
218
218
219
221
223
226
227
227
228
229
229
230
230
230
231
233
233
234
234
236
236
236
236
237
237
237
238
238
238
238
238
238
238
239
247
247
247
249
252
255
255
258
259
260
262
262
263
263
263
265
265
265
266
267
268
270
275
275
285
285
294
295
295
298
299
299
300
300
301
302
302
305
305
313
313
314
317
319
321
321
323
323
333
334
337
338
338
340
341
341
342
342
343
343
343
343
344
349
349
349
350
351
351
351
360
360
361
366
366
367
368
368
369
372
373
373
376
376
376
376
378
378
380
382
385
398
398
403
404
405
406
408
408
408
408
408
408
409
411
412
413
414
426
426
427
432
432
434
434
436
436
444
446
446
447
448
448
450
451
451
452
454
455
456
457
465
470
470
486
491
491
504
506
509
527
532
532
551
556
556
571
574
576
595
600
600
618
623
623
637
639
642
660
665
665
684
689
689
707
709
722
727
727
743
748
748
761
763
766
784
789
789
808
813
813
828
831
833
852
857
857
875
880
880
894
896
899
917
922
922
941
946
946
964
966
1364
1368
1369
5
5
5
5
5
7
7
10
10
10
10
10
13
13
14
14
15
15
15
17
17
17
18
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
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
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
25
25
25
25
25
25
25
25
25
25
34
34
34
34
34
34
36
36
36
36
36
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
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
43
43
43
43
43
44
46
47
48
48
49
49
50
50
50
50
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
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
58
59
60
60
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
63
63
63
64
68
68
68
70
70
75
76
76
76
76
77
77
77
78
78
78
79
79
79
81
82
82
82
85
85
87
87
88
88
88
88
92
92
92
92
95
95
96
96
96
96
97
97
97
97
97
98
98
98
105
110
110
111
112
112
113
114
115
115
116
117
117
118
118
119
120
120
121
121
122
122
123
123
124
125
126
126
126
126
126
128
128
128
128
129
129
130
131
131
132
132
132
132
132
134
134
135
135
143
143
143
143
146
147
147
147
147
148
148
148
149
149
150
150
152
152
152
153
153
153
155
155
156
157
157
157
157
160
160
160
160
163
163
163
163
166
167
167
167
167
168
168
168
168
169
171
171
172
172
172
172
173
176
176
180
181
181
181
182
183
183
183
183
184
185
186
192
192
192
193
194
195
195
196
196
196
197
197
197
198
198
199
199
199
199
200
201
201
201
201
201
202
202
203
203
203
203
205
205
208
209
210
211
211
214
214
217
218
218
218
219
219
219
220
220
221
222
224
227
228
228
229
230
231
231
231
232
234
234
234
234
235
235
237
238
238
238
238
238
239
239
239
239
239
239
239
240
245
248
248
248
250
253
256
256
256
256
261
263
263
263
264
265
266
266
266
266
267
267
268
268
269
269
271
276
276
284
285
285
285
285
286
293
294
294
294
295
296
296
299
300
300
301
301
302
303
303
303
303
305
305
306
306
306
306
314
314
314
314
315
318
320
321
323
324
324
338
339
339
341
341
342
342
342
343
343
344
344
344
344
344
345
351
352
352
352
358
361
361
362
367
367
368
369
369
369
369
370
373
374
374
376
377
377
378
379
379
381
383
386
397
398
398
398
398
399
404
406
407
407
407
407
409
409
409
409
409
409
410
412
412
413
413
414
414
415
415
418
418
427
427
427
427
428
433
433
434
436
437
437
445
447
447
448
449
449
449
449
451
452
452
452
452
453
455
457
458
466
471
471
487
492
492
505
507
510
528
533
533
552
557
557
572
575
577
596
601
601
619
624
624
638
640
643
661
666
666
685
690
690
708
710
723
728
728
744
749
749
762
764
767
785
790
790
809
814
814
829
832
834
853
858
858
876
881
881
895
897
900
918
923
923
942
947
947
965
967
1365
1369
1370
1
1
5
6
8
8
8
11
14
14
15
15
16
17
17
17
18
18
18
18
18
18
18
18
18
18
20
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
23
23
23
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
26
33
33
33
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
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
43
43
43
43
44
44
44
44
45
47
48
51
51
51
51
51
51
51
52
52
52
52
52
52
52
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
57
58
58
58
58
58
58
58
58
58
59
60
61
61
61
61
62
62
62
62
62
63
63
63
64
64
64
64
64
64
68
69
69
69
75
76
76
77
77
77
78
78
78
78
78
79
79
79
79
79
80
80
80
82
83
83
83
86
86
86
88
88
88
88
89
89
92
92
95
96
96
96
96
97
97
97
97
97
98
98
98
98
98
99
99
106
109
111
111
111
112
112
113
114
114
114
115
115
115
115
116
116
116
117
118
118
119
119
123
123
124
124
124
125
126
126
127
127
127
128
130
130
131
132
132
133
133
133
133
133
133
135
135
141
143
143
144
144
146
147
147
148
148
148
149
149
149
149
149
150
150
150
150
150
151
152
152
153
153
153
154
154
154
156
156
157
161
161
161
161
162
163
163
167
167
167
167
168
168
168
168
169
169
169
169
172
173
173
174
177
177
180
180
180
181
182
182
182
182
183
183
184
185
185
185
186
186
186
186
187
188
190
193
193
193
194
195
197
197
198
198
199
199
199
199
201
201
201
202
202
202
203
203
204
204
204
204
206
206
208
210
210
211
212
212
215
215
217
218
218
219
220
220
220
220
220
221
221
221
221
222
223
225
228
229
229
229
230
231
232
232
232
234
234
236
236
237
238
238
238
238
239
239
239
239
239
240
240
240
240
240
240
246
246
249
251
254
254
255
256
256
257
257
262
263
264
264
265
265
266
267
267
269
269
270
270
272
275
277
277
286
286
287
293
293
293
294
294
295
295
295
296
298
300
301
301
302
302
303
303
306
306
307
307
307
307
312
314
314
315
315
316
319
321
321
323
324
325
325
339
340
340
342
343
344
344
345
345
345
345
345
350
352
353
353
359
359
363
367
368
368
369
369
369
370
370
371
374
375
375
376
378
378
378
379
380
380
382
384
387
388
399
399
400
401
405
406
406
406
407
408
408
408
408
410
410
410
410
411
415
415
416
416
416
419
419
425
427
427
428
428
429
434
434
434
436
437
438
438
440
444
445
446
448
448
449
452
453
453
453
453
454
455
456
458
467
472
472
488
493
493
506
508
511
529
534
534
553
558
558
573
576
578
597
602
602
620
625
625
639
641
644
662
667
667
686
691
691
702
709
711
724
729
729
745
750
750
763
765
768
786
791
791
810
815
815
830
833
835
854
859
859
877
882
882
896
898
901
919
924
924
943
948
948
959
966
968
1366
1370
1371
1
1
1
5
5
6
7
9
9
11
11
12
15
15
15
15
16
16
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
20
20
20
21
21
21
21
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
26
26
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
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
40
41
41
41
41
42
42
43
43
43
44
44
45
45
45
45
45
46
46
48
49
52
52
52
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
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
56
56
56
56
56
56
56
56
57
58
58
58
58
58
58
58
58
58
58
58
61
62
63
63
63
63
63
64
64
64
65
69
70
70
70
73
78
78
78
78
78
79
79
79
79
79
80
80
80
80
80
80
80
81
81
82
82
83
84
84
84
87
87
89
89
89
90
90
95
95
95
95
97
97
97
97
98
98
98
99
99
99
99
99
99
99
107
110
112
112
114
114
115
115
115
115
115
116
116
116
116
116
116
116
117
117
117
117
119
119
119
119
120
120
124
124
125
125
125
125
126
127
128
128
129
131
132
134
134
134
134
144
144
145
145
149
149
150
150
150
150
150
150
150
151
151
151
151
151
151
152
152
153
153
154
154
154
155
157
157
158
162
162
162
162
163
163
163
163
166
166
168
168
168
168
169
169
170
170
170
170
170
170
172
172
173
174
174
178
182
183
183
183
185
186
186
186
186
186
187
187
187
187
187
187
188
188
189
191
191
193
194
195
196
198
198
199
199
199
200
200
200
202
203
203
203
205
205
205
205
208
208
211
211
212
215
216
216
220
221
221
221
221
221
222
222
222
222
222
222
223
223
224
224
226
228
228
229
229
230
230
230
232
232
232
233
233
233
237
237
237
237
238
238
239
239
239
239
240
240
241
241
241
241
241
241
250
252
255
256
257
258
258
260
263
263
263
265
265
266
266
267
270
270
271
271
273
276
276
276
276
278
278
285
285
287
287
295
296
296
296
297
299
301
302
302
303
303
304
304
304
308
308
308
308
315
316
316
317
320
321
321
322
324
325
340
341
341
342
343
345
345
345
345
346
346
346
346
346
351
351
364
369
369
370
370
370
371
371
372
374
374
375
376
376
376
376
379
379
379
380
383
385
388
389
389
389
389
398
398
400
400
402
406
406
408
409
409
409
409
411
411
411
411
412
416
416
417
417
417
417
428
429
429
430
434
434
435
437
438
445
446
447
449
449
450
450
453
454
454
454
454
455
455
456
458
458
459
468
473
473
489
494
494
507
509
512
530
535
535
554
559
559
574
577
579
598
603
603
621
626
626
640
642
645
663
668
668
687
692
703
707
710
712
725
730
730
746
751
751
764
766
769
787
792
792
811
816
816
831
834
836
855
860
860
878
883
883
897
899
902
920
925
925
944
949
960
964
967
969
1367
1371
1371
1372
5
8
8
9
10
12
12
12
13
15
15
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
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
33
33
33
34
34
34
35
35
35
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
42
44
44
44
45
45
45
46
46
46
46
46
47
47
49
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
58
58
58
58
58
58
58
59
59
59
59
59
60
60
61
61
61
61
62
63
64
65
65
65
66
68
70
71
71
73
74
76
80
80
80
81
81
81
81
81
81
82
82
83
83
84
85
85
85
88
88
88
88
90
90
90
91
91
95
96
96
96
96
97
97
97
97
97
99
99
99
99
99
99
99
100
100
100
100
107
108
113
113
115
116
116
116
117
117
117
117
117
118
118
118
118
120
120
120
120
120
121
121
125
125
126
126
127
127
127
129
130
131
131
132
132
132
132
132
133
135
143
143
144
145
145
147
150
151
151
151
151
151
152
152
152
152
152
152
152
152
153
153
154
154
155
155
156
156
158
158
159
159
162
162
163
163
163
163
164
164
166
167
167
168
168
170
170
170
170
170
170
171
171
171
171
173
174
177
177
179
181
183
184
184
187
187
187
188
188
188
188
188
189
189
194
195
196
197
198
198
199
200
200
201
201
201
201
201
202
202
203
203
203
203
203
204
209
209
210
210
210
212
212
215
216
217
217
218
220
222
222
222
223
223
223
223
223
224
224
227
229
229
230
231
231
233
233
233
233
233
234
234
234
237
238
238
238
238
239
239
241
241
241
241
241
241
242
242
242
242
248
251
253
256
256
256
258
261
264
264
264
264
265
265
265
266
266
266
267
267
271
271
272
272
274
277
277
279
279
286
294
296
297
297
298
300
302
302
303
303
304
304
305
305
309
309
309
309
314
314
316
318
321
322
322
323
323
323
323
325
333
341
342
342
346
346
346
346
347
347
347
347
347
361
365
369
369
370
370
371
373
375
375
376
377
377
377
377
378
378
378
380
380
380
384
386
389
390
390
399
407
407
407
409
410
410
410
410
412
412
412
412
412
413
417
417
418
418
427
427
429
431
434
434
435
435
436
436
436
436
438
446
446
448
448
450
450
451
451
451
454
455
455
455
455
456
459
459
460
469
474
474
490
495
495
508
510
513
531
536
536
555
560
560
575
578
580
599
604
604
622
627
627
641
643
646
664
669
669
688
691
691
693
708
711
713
726
731
731
747
752
752
765
767
770
788
793
793
812
817
817
832
835
837
856
861
861
879
884
884
898
900
903
921
926
926
945
948
948
950
965
968
970
1368
1371
1372
1373
5
5
9
11
13
13
13
14
15
16
16
16
16
18
18
18
18
18
18
18
18
18
18
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
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
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
32
32
32
34
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
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
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
38
38
40
40
40
40
40
40
41
42
43
45
45
45
45
45
46
46
46
47
47
47
48
48
49
49
49
49
49
49
50
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
59
59
59
59
60
61
61
61
61
62
62
62
62
63
64
66
66
66
66
67
69
69
73
74
76
76
76
77
79
80
80
80
80
80
81
81
81
82
82
82
83
83
84
84
85
86
86
86
86
86
89
89
89
89
89
91
91
91
95
95
96
97
97
97
97
98
98
98
98
99
99
100
100
101
101
101
101
108
108
108
109
114
114
115
116
116
116
116
116
117
117
117
118
118
119
119
121
121
121
121
121
122
126
126
127
127
127
128
128
128
128
128
130
131
132
132
132
132
133
133
133
133
133
134
135
144
144
145
147
147
147
148
150
151
151
151
151
151
152
152
152
153
153
153
153
153
153
154
154
155
156
156
159
159
160
160
162
164
164
164
164
164
166
166
167
168
168
168
168
170
170
171
171
172
172
172
172
172
174
175
178
180
182
182
186
187
187
187
187
188
188
188
189
189
190
190
193
195
196
197
198
199
199
199
199
200
201
201
202
202
202
202
203
203
203
203
204
204
204
204
205
211
211
211
211
213
215
216
218
218
218
218
218
219
221
221
221
221
222
222
222
222
223
223
223
224
224
225
225
228
230
230
231
232
232
232
232
233
234
234
234
235
235
235
235
237
237
238
239
239
239
239
239
239
240
241
241
242
242
243
243
243
243
248
252
254
257
257
262
266
266
266
266
267
267
267
268
272
272
273
273
275
277
280
280
285
287
295
295
299
301
304
304
305
305
306
306
306
310
310
310
310
315
319
322
324
324
324
324
324
334
334
334
342
343
343
347
347
347
347
348
348
348
348
353
361
366
370
371
371
374
376
376
377
378
378
378
378
379
379
379
379
381
381
381
381
385
387
390
390
398
400
408
408
408
408
413
413
413
413
413
414
418
418
419
419
419
428
432
435
437
437
437
437
437
447
447
447
447
451
451
452
452
452
455
456
456
456
456
457
460
460
470
475
475
491
496
496
509
511
514
532
537
537
556
561
561
576
579
581
596
600
605
605
623
628
628
642
644
647
665
670
670
689
692
694
709
712
714
727
732
732
748
753
753
766
768
771
789
794
794
813
818
818
833
836
838
857
862
862
880
885
885
899
901
904
922
927
927
946
949
951
966
969
971
1369
1373
1374
5
8
8
8
8
9
10
12
12
14
15
15
15
17
17
18
18
18
18
18
18
18
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
20
20
20
20
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
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
24
24
24
24
24
24
24
24
24
24
33
33
33
33
33
33
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
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
41
41
41
42
42
42
43
44
45
46
46
46
46
46
47
47
47
47
48
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
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
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
59
61
61
61
61
62
62
62
62
63
63
63
63
64
65
66
68
76
77
77
77
77
77
78
78
79
79
79
80
80
80
80
80
81
81
81
81
81
82
82
82
83
85
85
86
87
88
88
90
90
90
90
90
92
92
96
96
97
97
97
97
97
98
98
98
99
99
100
100
101
101
109
109
110
115
115
115
115
115
116
116
116
116
117
117
117
117
117
118
118
118
119
122
122
122
123
127
127
127
128
128
128
128
129
131
132
132
132
132
133
133
133
133
134
134
134
134
134
143
143
145
147
148
148
148
148
149
149
150
150
150
151
151
151
151
152
152
152
152
152
153
153
153
154
154
156
157
157
160
160
161
161
164
165
165
165
165
167
167
168
168
168
168
168
169
169
169
171
171
172
172
172
172
173
176
179
181
186
186
186
187
187
187
187
188
188
188
188
189
189
189
193
196
197
198
199
199
199
201
201
201
202
202
203
203
203
203
203
203
203
204
204
204
204
205
205
205
205
212
212
214
218
219
219
219
219
219
219
220
220
221
221
221
222
222
222
222
222
222
223
223
223
223
223
224
224
224
227
229
231
231
232
232
235
236
236
236
236
238
238
239
239
239
239
239
240
240
240
240
240
240
242
242
243
243
253
255
256
256
258
258
263
267
267
268
268
268
269
273
273
274
274
276
277
281
281
285
285
286
300
302
305
305
306
306
306
307
307
311
311
311
311
314
314
316
323
325
325
325
335
335
343
344
344
345
348
348
349
349
349
349
353
367
369
369
369
371
372
372
373
375
377
377
378
380
380
382
382
382
382
386
388
390
391
398
398
399
409
409
414
414
414
414
414
415
419
419
419
420
420
427
427
429
433
436
438
438
438
448
448
448
452
452
453
453
453
456
457
457
457
457
458
458
471
476
476
492
497
497
510
512
515
533
538
538
557
562
562
580
582
597
601
606
606
624
629
629
643
645
648
666
671
671
690
693
695
710
713
715
728
733
733
749
754
754
767
769
772
790
795
795
814
819
819
837
839
858
863
863
881
886
886
900
902
905
923
928
928
947
950
952
967
970
972
1370
1374
1375
5
9
10
11
11
11
11
12
14
15
15
16
17
17
17
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
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
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
35
35
35
35
35
35
35
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
37
37
37
37
37
37
37
37
37
38
38
38
44
45
46
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
49
49
49
49
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
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
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
58
58
60
60
62
62
62
62
63
63
64
64
64
64
64
64
66
69
71
78
78
78
79
79
81
82
82
82
82
82
83
83
83
84
86
86
87
88
88
88
89
89
91
91
91
91
93
93
96
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
101
101
108
109
109
109
109
110
111
116
116
116
117
118
118
118
118
118
119
119
119
123
123
123
124
128
128
129
129
131
131
132
133
133
133
133
134
134
135
135
135
135
135
135
135
143
143
144
144
149
149
149
150
150
152
153
153
153
153
153
154
154
154
154
157
158
158
161
161
162
162
166
166
166
166
167
169
169
169
169
169
169
169
170
170
170
170
170
170
170
170
171
172
172
172
173
174
177
180
182
184
188
189
189
189
189
190
190
190
197
198
199
200
200
201
201
202
202
202
202
202
202
203
203
204
204
204
204
204
204
205
205
206
206
206
206
206
206
212
215
220
220
220
220
220
221
221
221
222
222
222
222
223
223
224
224
224
224
225
225
225
228
229
230
232
232
233
236
237
237
237
237
238
240
240
240
240
240
240
240
241
241
241
241
241
241
241
241
241
241
243
243
256
256
256
257
257
259
264
267
269
269
269
270
274
274
275
275
277
282
282
284
285
286
287
297
301
303
306
306
307
307
308
308
312
312
312
312
314
314
315
315
324
325
326
334
335
335
335
335
336
342
344
345
345
349
349
350
350
350
350
368
369
369
370
370
373
373
374
376
378
378
379
380
383
383
383
383
389
392
397
398
399
400
410
410
410
415
415
415
415
415
416
420
420
421
421
427
427
428
428
434
437
438
439
447
448
448
448
448
449
449
453
453
454
454
454
455
457
457
458
458
458
458
459
459
472
477
477
493
498
498
513
516
534
539
539
558
563
563
581
583
597
602
607
607
625
630
630
646
649
667
672
672
691
694
696
711
714
714
716
716
729
734
734
750
755
755
770
773
791
796
796
815
820
820
838
840
859
864
864
882
887
887
903
906
924
929
929
948
951
953
968
971
971
973
973
1371
1375
1376
8
8
11
12
13
15
15
17
17
17
17
18
18
18
18
18
18
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
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
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
26
26
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
39
39
39
45
45
46
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
49
49
49
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
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
54
55
55
55
55
55
55
55
55
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
59
59
60
61
61
61
62
62
64
64
64
64
64
64
65
65
65
65
67
70
71
77
78
78
78
80
80
80
81
82
83
83
83
83
84
84
85
85
87
87
88
88
89
90
90
92
92
92
92
94
94
96
98
99
99
100
100
100
100
100
100
100
100
100
100
110
110
111
112
116
116
117
117
117
117
118
119
119
119
119
119
119
120
120
124
124
124
125
127
127
127
127
129
129
130
130
131
132
132
133
133
133
135
135
135
135
135
135
136
136
136
136
136
145
145
148
149
149
149
151
151
151
152
153
154
154
154
154
154
155
155
158
159
159
162
162
163
163
167
167
167
167
167
169
170
171
171
171
171
171
171
171
171
171
171
172
174
175
178
181
183
184
187
188
189
190
190
190
191
191
198
198
198
199
200
202
203
203
203
203
203
203
204
204
204
204
205
205
206
206
206
206
206
206
207
207
207
207
212
216
219
220
220
220
221
221
222
222
222
223
223
223
224
224
225
225
225
226
226
229
229
230
231
231
232
232
233
233
234
234
237
238
238
238
238
238
240
240
240
241
242
242
242
242
242
242
242
242
242
242
242
257
258
258
260
265
267
270
270
270
271
275
275
276
276
278
283
283
285
287
288
297
302
304
307
307
308
308
309
309
313
313
313
313
316
316
325
325
327
336
336
337
342
343
345
345
345
346
346
350
350
351
351
351
351
353
353
369
371
371
374
374
375
377
377
379
379
380
380
380
384
384
384
384
390
393
398
400
401
410
411
411
416
416
416
416
416
417
421
421
422
422
429
429
435
438
438
440
449
449
450
450
454
454
455
455
455
455
456
458
458
459
459
459
459
460
460
473
478
478
494
499
514
517
535
540
540
559
564
564
582
584
603
608
608
626
631
631
647
650
668
673
673
692
695
697
712
717
717
730
735
735
751
756
771
774
792
797
797
816
821
821
839
841
860
865
865
883
888
888
904
907
925
930
930
949
952
954
969
974
974
1372
1376
1377
13
14
15
15
15
15
15
15
15
15
16
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
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
23
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
27
27
32
32
32
34
34
34
34
34
34
34
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
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
37
37
37
37
37
37
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
46
46
47
47
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
50
50
50
50
51
51
51
51
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
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
55
56
59
59
60
60
60
60
61
61
61
62
62
62
62
62
64
64
65
65
66
66
66
66
66
68
71
77
77
77
78
79
79
79
81
81
82
82
84
86
88
88
89
89
90
91
91
93
93
93
93
95
95
96
96
99
100
101
101
101
101
109
109
111
111
113
116
117
117
118
118
118
120
120
120
125
125
125
125
126
127
128
128
130
130
131
131
131
131
132
133
133
133
133
133
134
135
135
136
136
137
137
137
137
137
141
146
146
148
148
148
149
150
150
150
152
152
153
153
155
159
160
160
163
163
164
164
167
167
168
168
168
168
170
171
172
172
172
172
172
173
175
179
182
184
188
188
189
189
198
199
199
200
201
202
202
203
204
204
204
204
204
204
204
204
205
205
206
206
206
206
207
207
208
208
208
208
217
219
219
219
220
221
221
221
222
222
222
222
223
223
224
224
224
224
229
230
233
233
234
234
235
235
238
238
238
238
239
239
239
239
241
241
241
242
243
243
243
243
243
246
254
258
259
259
261
266
271
271
271
272
276
276
277
277
279
284
284
285
286
288
303
305
308
308
309
309
310
310
312
314
314
314
314
317
317
319
326
328
335
335
337
337
342
346
346
346
347
347
351
351
351
352
352
352
352
354
354
359
367
370
372
372
375
376
380
380
381
381
385
385
385
385
391
394
398
399
401
412
412
417
417
417
417
417
418
422
422
423
423
425
430
430
436
439
441
448
448
450
450
451
455
455
455
456
456
456
459
459
460
460
460
460
461
461
474
479
479
495
500
515
518
536
541
541
560
565
565
576
583
585
598
598
604
609
609
627
632
648
651
669
674
674
693
696
698
713
718
718
731
736
736
752
757
772
775
793
798
798
817
822
822
833
840
842
861
866
866
884
889
905
908
926
931
931
950
953
955
970
975
975
1373
1377
1378
4
4
5
12
13
13
14
15
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
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
25
28
28
33
33
33
33
33
33
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
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
45
45
45
45
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
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
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
56
60
60
61
61
61
61
61
61
61
62
62
62
62
62
62
63
63
63
63
65
65
66
66
67
67
69
71
71
72
78
79
80
80
80
85
87
89
89
90
90
91
92
94
94
94
94
96
96
97
97
98
98
98
100
101
101
110
114
117
119
119
121
121
121
121
126
126
126
126
126
127
129
131
131
132
132
132
132
133
133
133
133
133
133
134
134
134
134
135
136
136
137
137
138
142
147
150
151
151
151
156
160
161
161
164
164
165
165
168
168
169
169
169
169
169
169
169
171
172
172
172
173
175
175
176
180
183
184
184
185
191
200
200
201
202
203
203
204
204
204
204
204
205
205
205
205
205
205
206
206
207
207
207
207
208
208
218
221
222
222
222
223
223
223
230
231
232
234
234
234
235
235
236
236
239
239
239
239
239
240
240
240
240
240
240
240
241
241
242
243
243
244
247
253
255
257
259
260
262
267
272
272
272
273
277
277
278
278
280
285
285
285
286
288
288
289
297
297
304
304
306
309
310
310
311
311
313
315
315
315
315
318
320
324
327
329
336
343
345
347
347
347
347
348
348
352
352
352
352
353
353
353
353
360
368
371
373
376
377
381
381
382
382
386
386
386
386
386
390
392
395
398
399
401
401
402
410
410
413
413
417
418
418
418
418
418
419
423
423
424
424
426
431
437
440
442
449
452
456
456
456
457
457
457
458
460
460
460
461
461
461
461
462
462
475
480
480
496
498
498
501
510
514
516
519
537
542
542
561
566
577
581
584
586
599
599
599
599
605
610
610
628
633
643
647
649
652
670
675
675
694
697
699
714
719
719
732
737
737
753
755
755
758
767
771
773
776
794
799
799
818
823
834
838
841
843
862
867
867
885
890
900
904
906
909
927
932
932
951
954
956
971
976
976
1374
1378
1379
5
5
5
5
5
5
6
8
11
11
18
18
18
18
18
18
18
18
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
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
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
29
29
35
35
35
35
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
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
46
46
46
46
48
48
48
49
49
49
49
49
49
49
49
49
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
54
54
54
54
54
54
54
54
54
55
55
55
55
56
56
57
57
57
57
57
57
57
57
57
57
57
57
61
61
61
62
62
62
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
66
66
68
69
70
72
72
73
78
79
80
81
81
83
83
83
84
84
84
86
87
87
90
90
91
91
91
91
92
93
95
95
95
95
97
97
98
99
99
99
99
100
100
101
101
109
111
115
117
117
119
119
119
119
120
120
120
120
120
122
127
127
127
128
132
132
132
133
133
134
134
134
134
134
134
134
134
135
135
135
135
135
135
135
135
135
135
136
137
137
139
142
142
146
146
148
149
151
152
152
153
154
154
154
155
155
155
157
161
162
162
163
165
165
166
166
170
170
170
170
170
170
170
170
171
171
172
172
176
176
177
181
182
184
185
185
186
190
190
190
191
191
191
192
200
200
201
202
203
203
204
204
205
205
205
205
205
205
205
206
206
206
206
206
206
206
206
206
206
206
207
207
208
208
208
208
211
219
220
222
222
223
223
224
224
224
225
225
225
226
226
226
232
232
233
236
236
237
237
240
241
241
241
241
241
241
241
241
242
242
242
243
243
245
248
248
255
255
258
259
259
260
261
263
266
268
273
273
273
274
276
278
278
279
279
281
286
286
289
289
290
295
298
298
305
305
307
308
308
310
311
311
312
312
313
313
316
316
316
316
317
317
319
324
325
328
330
335
337
345
346
348
349
349
353
353
354
354
354
354
361
361
368
368
372
372
372
374
374
374
377
378
379
382
382
383
383
387
387
387
387
389
391
393
396
402
402
403
408
411
411
414
414
418
419
419
419
419
419
420
424
424
425
425
426
426
430
430
432
437
438
441
443
448
450
453
457
457
458
458
458
458
459
462
462
462
462
463
463
476
481
481
497
499
502
515
517
520
538
543
543
562
565
565
567
582
585
587
599
599
599
599
600
600
606
611
611
629
631
631
634
648
650
653
671
676
676
695
698
700
715
720
720
733
738
738
754
756
759
772
774
777
795
800
800
819
822
822
824
839
842
844
863
868
868
886
888
888
891
905
907
910
928
933
933
952
955
957
972
977
977
1375
1379
1380
6
6
7
7
14
14
15
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
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
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
24
24
24
24
24
24
24
25
25
26
30
30
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
46
47
47
47
47
47
47
47
47
48
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
56
57
57
57
57
57
57
57
57
57
57
57
57
58
59
61
62
62
63
63
63
63
64
64
65
65
65
65
65
65
65
65
65
65
69
70
70
71
74
79
79
80
80
81
82
83
84
84
84
85
85
87
91
91
92
92
92
92
93
94
96
96
96
96
98
98
99
99
99
99
100
100
101
101
101
101
101
101
101
101
109
109
110
116
117
118
118
119
120
120
120
120
120
121
121
121
121
121
123
128
128
128
128
129
132
133
133
134
134
134
135
135
136
136
136
136
136
136
136
136
136
136
136
136
136
136
137
140
147
147
149
150
150
152
153
154
154
154
154
154
155
155
155
156
156
158
162
163
163
164
164
164
166
166
167
167
171
171
171
171
171
171
172
172
172
172
172
172
172
172
177
177
183
183
185
187
188
189
190
191
191
191
192
192
193
193
202
203
203
204
205
205
205
206
207
207
207
207
207
207
207
207
207
207
207
207
207
208
208
209
209
212
212
212
212
220
221
221
222
222
223
223
224
225
225
225
226
226
226
227
227
233
233
233
234
234
237
237
238
238
241
241
242
242
242
242
242
242
243
243
243
243
243
243
243
243
243
246
249
249
249
249
259
260
260
261
262
264
267
267
267
267
269
274
274
274
275
277
277
277
279
279
280
280
282
287
287
290
290
296
296
306
306
306
308
309
311
312
312
313
313
317
317
317
317
318
318
320
325
325
325
325
326
329
331
335
335
336
346
346
347
347
349
350
350
354
354
354
355
355
355
355
362
362
362
362
373
373
373
375
375
378
379
380
380
380
380
383
383
384
384
388
388
388
388
390
390
390
392
394
397
403
403
409
409
415
415
419
419
420
420
420
420
420
421
425
425
426
426
431
431
433
438
438
438
438
442
444
448
448
449
454
458
458
459
459
459
459
459
460
460
463
463
463
463
464
464
477
482
482
498
500
503
516
518
521
539
544
544
563
566
568
583
586
588
600
600
601
601
607
612
612
630
632
635
649
651
654
672
677
677
699
701
716
721
721
734
739
739
755
757
760
773
775
778
796
801
801
820
823
825
840
843
845
864
869
869
887
889
892
906
908
911
929
934
934
956
958
973
978
978
1376
1380
1381
1
4
5
7
7
8
8
11
11
11
15
17
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
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
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
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
26
26
27
31
31
32
32
32
34
34
34
34
34
34
34
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
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
37
37
37
37
37
37
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
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
54
54
54
55
55
57
57
58
58
59
61
61
63
63
64
64
64
65
66
66
66
66
70
72
75
81
81
81
81
82
82
83
83
88
91
92
92
93
93
93
93
94
97
97
97
97
99
99
100
100
100
102
102
102
102
108
109
110
111
117
118
118
119
119
119
122
122
122
124
128
129
129
129
130
132
132
134
134
134
135
135
135
136
136
136
136
137
137
137
137
137
137
138
141
146
148
148
153
153
154
154
155
155
159
163
164
164
165
165
167
167
168
168
171
172
172
172
172
173
173
173
173
175
186
188
189
189
190
190
194
194
194
194
203
203
203
204
204
205
206
206
206
207
208
208
208
208
208
208
209
209
210
210
213
213
221
221
222
223
224
224
224
225
225
226
226
234
235
235
238
238
239
239
241
242
242
243
243
243
243
244
244
244
244
244
247
247
249
249
250
250
259
260
261
261
262
265
268
268
270
275
275
275
276
278
278
280
280
281
281
283
288
288
288
307
307
307
307
307
309
310
312
313
313
314
314
317
318
318
318
318
319
319
326
326
327
330
332
334
335
336
337
348
348
350
351
351
354
355
355
356
356
356
356
360
362
362
363
363
372
374
374
374
376
379
380
381
381
384
384
385
385
389
389
389
389
391
391
393
395
398
401
416
416
420
420
420
420
421
421
421
421
421
422
426
426
427
427
430
432
432
439
439
443
445
447
448
449
450
455
459
459
460
460
460
461
461
464
464
464
464
465
465
478
483
483
499
501
504
517
519
522
540
545
545
564
567
569
584
587
589
601
601
608
613
613
631
633
636
650
652
655
673
678
678
700
702
717
722
722
735
740
740
756
758
761
774
776
779
797
802
802
821
824
826
841
844
846
865
870
870
888
890
893
907
909
912
930
935
935
957
959
974
979
979
1377
1381
1382
1
1
4
5
6
9
9
14
14
15
18
19
19
19
19
19
19
19
19
19
19
19
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
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
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
23
23
23
27
27
28
32
32
33
33
33
33
33
33
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
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
45
45
45
46
46
46
46
49
49
49
49
49
49
49
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
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
55
56
56
58
59
59
60
61
62
62
63
63
63
64
64
65
65
65
66
66
71
72
73
73
76
76
79
81
81
81
81
81
82
82
89
91
93
93
94
94
95
98
98
98
98
99
100
100
100
100
102
102
109
111
112
118
120
120
121
121
121
123
123
123
125
130
130
130
131
133
133
134
134
134
135
135
136
136
136
137
137
137
137
138
138
139
142
146
152
152
152
155
160
164
164
165
165
165
165
165
165
166
168
168
169
169
170
171
172
173
173
173
173
173
173
185
187
189
192
194
194
195
195
204
204
204
204
205
205
205
205
206
207
208
208
209
209
210
210
211
211
213
222
222
223
223
223
224
225
227
227
233
234
234
234
235
236
236
239
239
240
240
241
242
243
244
244
244
244
244
244
245
248
250
251
251
259
261
263
266
268
271
276
276
276
277
277
278
278
278
278
279
281
281
282
282
284
285
289
289
298
305
307
307
308
308
308
310
311
313
314
314
315
315
317
319
319
319
319
326
328
331
331
333
333
335
337
338
346
347
347
347
349
349
351
352
352
356
356
357
357
357
357
363
364
364
372
375
377
380
381
381
385
385
386
386
390
390
390
390
390
391
391
391
391
392
394
396
398
399
411
417
417
418
420
420
421
421
422
422
422
422
422
423
427
427
428
428
430
439
444
446
448
450
451
456
459
460
460
460
460
460
461
461
461
462
462
465
465
465
465
466
466
479
484
484
500
502
505
518
520
523
541
546
546
565
568
570
585
588
588
590
590
609
614
614
632
634
637
651
653
656
674
679
679
701
703
718
723
723
736
741
741
757
759
762
775
777
780
798
803
803
822
825
827
842
845
845
847
847
866
871
871
889
891
894
908
910
913
931
936
936
958
960
975
980
980
1378
1382
1383
1
4
5
5
5
10
10
11
11
15
15
15
15
15
15
15
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
20
20
20
20
20
20
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
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
23
23
23
23
23
23
23
24
24
24
24
24
27
27
28
28
29
33
33
35
35
35
35
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
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
43
43
43
46
46
46
47
47
47
47
47
47
47
47
47
47
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
56
57
57
59
60
60
61
61
61
61
62
64
64
64
64
65
65
65
65
66
66
66
66
72
72
77
77
79
81
82
82
82
83
83
84
84
84
85
85
85
87
90
91
92
94
94
95
95
96
99
99
99
99
100
100
100
100
100
101
101
101
101
102
102
109
110
112
119
120
120
120
120
120
120
121
121
121
121
121
122
122
122
124
126
128
128
131
131
131
132
135
135
135
135
136
136
136
136
136
136
137
137
137
137
138
138
140
140
142
143
143
146
147
150
152
153
153
155
155
155
155
156
156
156
161
165
166
166
166
166
167
169
169
170
170
171
171
171
171
172
172
172
173
173
173
174
174
174
174
175
175
181
185
188
190
191
191
191
192
192
192
195
196
196
200
204
205
205
206
206
206
206
206
207
207
207
208
208
210
210
211
211
212
212
213
221
222
223
223
223
224
224
225
226
226
226
227
227
227
228
228
233
233
233
234
235
235
235
236
240
240
241
241
241
241
242
242
242
242
243
243
244
244
244
245
245
245
245
246
249
249
249
251
255
259
260
262
264
264
267
267
268
272
277
277
277
278
279
279
280
282
282
283
283
285
285
286
288
288
290
290
298
308
309
309
309
311
312
313
314
315
315
316
316
317
318
320
320
320
320
326
329
334
334
335
336
338
346
346
346
347
348
348
348
352
353
353
354
354
357
357
358
358
358
358
362
362
364
368
372
373
376
378
381
381
382
386
386
387
387
391
391
391
391
392
392
393
395
397
397
398
399
400
400
401
401
411
418
418
421
422
422
423
423
423
423
423
424
426
428
428
429
429
430
431
438
439
445
447
448
449
451
457
459
459
459
460
461
461
461
461
461
462
462
462
466
466
466
466
467
467
480
485
485
501
503
506
519
521
521
524
524
542
547
547
566
569
571
586
591
591
599
610
615
615
633
635
638
652
654
654
657
657
675
680
680
695
702
704
719
724
724
737
742
742
758
760
763
776
778
778
781
781
799
804
804
823
826
828
843
848
848
867
872
872
890
892
895
909
911
911
914
914
932
937
937
952
959
961
976
981
981
1379
1383
1384
1
5
6
6
6
11
11
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
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
21
21
21
21
22
22
22
22
22
22
24
24
24
24
24
24
24
25
28
28
29
29
30
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
43
43
43
43
43
43
43
43
44
44
44
45
45
45
45
47
47
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
49
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
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
52
52
55
57
57
58
60
61
61
61
62
62
63
65
65
66
66
66
66
66
66
66
66
66
66
67
67
73
78
78
80
80
81
81
82
83
83
84
85
85
85
86
86
87
91
92
93
95
95
96
96
97
100
100
100
100
101
101
102
102
102
102
102
102
102
102
102
102
109
110
112
112
113
118
119
120
120
121
121
121
122
122
122
122
123
123
123
125
126
127
129
129
132
132
132
133
136
136
137
137
137
137
137
137
137
137
137
137
137
138
138
139
142
144
144
147
148
151
151
153
154
155
156
156
156
157
157
162
165
165
166
167
167
167
167
170
170
171
171
172
172
172
173
173
173
173
173
173
173
173
175
175
175
175
176
176
182
186
189
189
190
191
191
192
192
192
193
193
194
194
196
200
205
206
206
207
207
207
208
208
208
208
208
208
208
208
208
211
211
212
212
213
213
222
222
222
223
224
224
225
225
225
226
226
227
227
227
228
228
229
229
235
236
236
236
237
239
241
241
242
242
242
242
243
243
244
244
244
244
244
244
244
244
245
246
246
246
246
247
250
250
255
260
261
263
268
268
273
278
278
278
278
278
279
280
280
283
283
284
284
285
286
289
289
291
291
307
307
309
310
312
313
313
315
316
316
317
317
318
319
321
321
321
321
330
335
335
335
336
338
338
339
348
349
349
349
352
353
354
354
355
355
358
358
359
359
359
359
363
368
373
374
377
379
382
383
387
387
388
388
391
391
392
392
392
392
393
393
396
398
401
401
402
402
419
419
420
420
422
424
424
424
424
424
425
426
429
429
430
430
431
432
439
443
446
448
448
449
451
451
452
458
461
462
462
462
462
462
463
463
463
467
467
467
467
468
468
481
486
486
502
504
507
520
525
525
543
548
548
567
570
572
587
592
592
599
599
600
611
616
616
634
636
639
653
658
658
676
681
681
696
700
703
705
720
725
725
738
743
743
759
761
764
777
782
782
800
805
805
824
827
829
844
849
849
868
873
873
891
893
896
910
915
915
933
938
938
953
957
960
962
977
982
982
1383
1384
1385
5
5
5
7
11
11
12
12
13
14
15
15
15
15
15
15
16
16
17
17
17
17
17
17
17
17
18
18
18
18
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
22
22
22
22
22
22
22
22
25
25
26
29
29
30
30
31
32
32
32
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
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
49
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
56
58
59
61
61
62
62
63
63
64
64
65
67
67
67
67
67
67
68
68
72
72
74
79
79
82
83
83
84
84
91
92
93
94
96
96
97
97
98
101
101
101
101
101
103
103
103
103
103
103
113
113
114
119
119
120
120
121
121
123
123
124
124
126
127
127
128
133
133
133
134
136
136
136
138
138
138
138
138
138
138
139
139
140
145
145
146
148
149
154
154
155
155
163
166
167
168
168
171
171
172
172
172
173
174
174
174
174
175
176
176
176
176
177
177
177
185
185
187
190
190
190
191
191
192
195
204
206
207
207
207
208
209
209
209
209
209
212
212
213
213
214
214
225
225
225
226
226
226
226
227
230
230
234
236
237
237
238
240
240
242
242
243
243
243
245
245
245
245
246
247
247
247
247
248
249
249
251
251
259
261
262
264
269
269
274
279
279
279
279
280
284
284
285
285
286
287
288
290
290
290
292
292
298
298
308
311
313
314
316
317
317
317
318
318
319
320
322
322
322
322
331
336
336
339
339
340
347
349
350
350
353
353
354
355
355
359
359
360
360
360
360
362
362
364
372
374
375
378
380
383
384
388
388
389
389
392
393
393
393
393
397
399
401
402
402
403
403
403
411
411
420
420
421
425
425
425
425
425
426
430
430
430
431
431
432
433
444
447
449
452
452
453
459
460
462
463
463
463
463
464
464
464
468
468
468
468
469
469
482
487
487
503
505
508
521
526
526
544
549
549
568
571
573
588
593
593
599
600
601
612
617
617
635
637
640
654
659
659
677
682
682
701
704
706
721
726
726
739
744
744
760
762
765
778
783
783
801
806
806
825
828
830
845
850
850
869
874
874
892
894
897
911
916
916
934
939
939
958
961
963
978
983
983
1379
1384
1385
1386
5
6
6
8
13
13
13
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
18
18
18
18
20
20
20
20
20
20
20
20
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
21
21
21
22
22
23
23
26
26
26
27
29
29
31
31
32
33
33
33
33
33
33
36
36
36
36
36
36
36
36
36
36
36
36
36
36
38
38
38
38
38
38
39
39
39
39
39
39
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
46
46
47
47
47
47
48
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
50
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
57
59
59
60
61
63
63
64
64
65
67
67
68
68
69
69
70
73
73
75
80
80
81
81
82
82
82
83
87
92
93
94
94
97
97
98
98
99
100
101
102
102
102
102
103
103
104
104
114
114
122
122
122
124
127
129
134
134
134
135
135
136
136
136
137
137
138
138
139
139
140
140
141
142
146
146
147
149
149
153
153
153
154
164
165
167
168
169
169
171
172
172
172
173
173
174
174
175
176
177
177
177
177
183
186
186
188
191
193
194
194
196
200
205
206
207
207
207
208
209
209
209
210
213
213
214
214
215
215
224
224
224
226
227
227
231
231
235
235
239
242
243
243
243
244
244
245
245
248
248
248
248
249
249
249
250
250
252
255
260
262
262
265
267
270
270
275
278
280
280
280
280
281
285
285
286
286
288
288
289
293
293
296
299
299
307
307
309
312
313
314
315
317
318
318
318
319
319
320
320
323
323
323
323
332
337
337
340
340
348
348
355
356
356
360
360
361
361
361
361
362
362
363
363
368
373
375
375
379
380
381
384
385
389
389
390
390
391
393
394
394
394
394
398
401
402
403
403
409
412
412
420
420
421
421
422
426
426
426
426
426
426
427
431
431
431
432
432
433
433
445
448
450
453
453
460
461
461
464
464
465
465
465
469
469
469
469
470
470
483
488
488
506
509
522
527
527
545
550
550
569
572
574
589
594
594
601
602
613
618
618
636
638
641
655
660
660
678
683
683
702
705
707
722
727
727
740
745
745
763
766
779
784
784
802
807
807
826
829
831
846
851
851
870
875
875
893
895
898
912
917
917
935
940
940
959
962
964
979
984
984
1385
1386
1387
5
5
5
9
11
11
13
14
14
15
16
16
16
16
16
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
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
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
27
27
27
28
30
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
34
34
34
34
34
34
34
34
34
34
34
34
35
35
36
36
36
36
36
36
37
37
43
43
43
43
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
58
60
60
61
61
64
64
64
65
65
65
65
65
67
67
67
67
67
67
69
69
70
70
71
71
76
80
81
81
81
81
82
82
82
83
83
85
86
91
93
94
98
98
99
99
100
101
101
101
101
103
103
103
103
103
103
103
103
103
103
105
105
112
121
122
125
128
129
130
135
135
135
136
136
136
136
136
138
138
138
138
138
138
138
138
140
140
141
141
142
146
147
147
148
151
153
154
154
155
155
155
155
156
157
165
165
165
166
169
170
172
172
172
172
173
173
174
174
174
174
174
174
174
174
176
176
177
177
178
178
178
178
184
184
189
192
192
193
194
194
194
195
195
204
206
207
207
207
207
209
209
209
209
209
209
209
210
211
214
214
215
215
216
216
222
224
225
225
225
227
227
228
232
232
240
242
243
243
243
243
244
244
245
245
245
245
245
245
245
245
249
249
249
249
250
251
251
253
259
261
266
268
268
268
268
271
271
276
278
278
279
281
281
281
282
286
286
287
287
289
289
289
290
290
294
294
297
297
307
307
308
308
315
316
317
318
319
319
319
320
320
324
324
324
324
333
338
338
338
355
356
357
357
361
361
362
362
362
362
364
364
372
374
381
381
381
381
382
385
386
390
390
391
391
391
391
392
395
395
395
395
399
402
402
403
403
404
404
410
410
420
420
421
421
422
422
427
427
427
427
428
430
432
432
432
433
433
446
449
451
451
461
465
465
466
466
466
470
470
470
470
471
471
484
489
489
507
510
523
528
528
546
551
551
573
575
590
595
595
597
602
614
619
619
639
642
656
661
661
679
684
703
706
708
723
728
728
741
746
746
764
767
780
785
785
803
808
808
830
832
847
852
852
871
876
876
896
899
913
918
918
936
941
960
963
965
980
985
985
1386
1387
1388
5
5
6
6
6
6
10
13
15
15
15
15
15
15
15
15
16
16
17
17
17
18
18
18
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
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
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
21
21
21
21
21
21
21
21
21
21
22
24
27
27
28
29
31
31
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
33
33
34
34
34
34
34
34
34
34
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
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
38
43
43
43
44
44
44
44
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
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
59
62
65
65
65
66
66
66
68
68
68
68
70
71
77
81
81
82
82
83
83
85
85
85
86
86
86
92
92
94
94
95
99
99
99
100
100
101
102
102
104
104
104
104
104
104
106
106
109
121
121
121
122
122
122
124
126
129
129
131
134
136
136
136
137
137
137
139
139
139
139
139
139
141
142
143
147
147
148
148
149
149
152
152
156
156
156
156
156
157
157
157
164
165
166
166
167
169
169
170
171
173
173
174
174
175
175
175
175
175
175
178
178
179
179
190
192
192
192
193
193
193
193
193
195
195
196
196
205
205
207
207
208
208
210
210
210
210
210
211
212
212
215
215
216
217
222
223
223
227
227
227
228
228
228
228
233
233
237
241
242
244
244
245
245
246
246
246
246
246
246
247
250
250
251
252
252
254
260
260
262
262
267
269
269
272
272
277
277
278
279
280
282
282
282
283
287
288
290
291
291
295
295
309
309
316
317
318
318
319
320
320
320
320
321
321
325
325
325
334
335
339
339
350
355
357
358
358
360
362
363
363
363
365
365
373
373
375
375
382
382
383
386
387
390
391
391
391
392
392
392
393
396
396
400
404
404
405
405
422
422
423
423
426
426
428
428
428
428
429
431
431
433
433
433
434
438
447
448
450
450
452
452
462
463
466
466
467
467
467
471
471
472
472
485
490
490
508
511
524
529
529
547
552
552
574
576
591
596
596
598
602
603
615
620
620
640
643
657
662
662
680
683
683
685
704
707
707
709
709
724
729
729
742
747
747
765
768
781
786
786
804
809
809
831
833
848
853
853
872
877
877
897
900
914
919
919
937
940
940
942
961
964
964
966
966
981
986
986
1387
1388
1389
5
5
5
5
7
7
11
11
13
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
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
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
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
21
21
21
21
22
25
28
30
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
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
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
39
44
44
44
45
45
45
45
45
45
45
45
45
45
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
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
52
52
52
52
54
60
60
63
64
64
64
66
66
66
66
66
66
67
68
68
68
68
68
68
68
68
69
69
71
72
73
78
79
83
83
83
84
84
84
86
86
86
86
87
87
87
87
92
94
95
95
96
100
100
100
100
100
101
101
102
102
102
102
103
103
103
103
104
104
104
104
104
104
104
104
105
105
105
105
107
107
109
110
112
112
119
120
122
122
122
122
123
123
123
123
124
127
130
132
135
137
137
137
137
137
137
138
139
139
139
139
139
139
139
139
140
140
140
142
143
144
147
149
149
149
150
150
154
155
156
157
157
157
157
158
158
158
158
165
167
167
168
170
171
172
173
173
173
175
175
175
175
175
175
175
175
175
175
176
176
176
176
176
177
177
177
178
178
178
178
179
179
180
180
186
190
191
191
192
193
193
193
193
194
194
194
194
196
196
197
197
205
207
208
208
208
208
208
210
210
210
210
210
210
210
210
211
211
211
212
213
213
213
213
216
216
217
218
222
223
225
225
225
226
228
228
228
228
229
229
229
229
229
234
234
237
242
244
244
244
246
246
246
246
246
246
246
246
246
246
246
247
247
247
247
248
249
249
249
249
250
251
251
252
253
255
260
262
263
263
268
269
273
273
278
278
280
281
283
283
283
284
288
289
289
290
290
290
291
292
292
296
296
299
305
310
310
317
318
318
320
320
321
321
321
321
322
322
324
324
324
324
326
326
326
326
326
335
335
336
338
338
340
340
350
358
359
359
361
363
364
364
364
366
373
375
376
376
382
384
387
388
391
392
392
393
393
393
394
395
395
395
395
397
397
401
402
403
403
403
405
405
406
406
412
418
423
423
424
424
427
429
429
429
429
430
431
433
434
434
434
435
439
439
439
448
448
449
451
451
453
453
463
463
467
467
468
468
468
470
470
470
470
472
472
473
473
486
491
491
503
507
509
512
525
530
530
548
553
553
575
577
592
597
597
598
602
604
616
621
621
641
644
658
663
663
681
684
686
705
710
710
725
730
730
743
748
748
760
764
766
769
782
787
787
805
810
810
832
834
849
854
854
873
878
878
898
901
915
920
920
938
941
943
962
967
967
982
987
987
1388
1389
1390
8
8
8
11
11
12
13
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
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
19
19
20
20
20
20
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
21
21
21
21
22
26
29
29
29
29
29
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
38
39
40
42
42
42
42
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
48
48
48
48
48
48
48
48
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
49
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
53
53
54
54
55
59
60
60
60
61
64
64
65
65
65
66
66
66
67
67
67
68
69
69
69
69
69
69
70
70
70
70
72
73
73
79
80
83
84
84
84
85
85
86
86
87
87
87
87
88
88
92
94
95
96
96
97
101
101
101
101
102
102
102
102
102
103
103
103
104
104
105
105
105
105
106
106
106
106
108
108
109
113
113
120
121
122
122
122
123
123
123
123
124
124
126
128
131
133
135
135
137
137
137
138
138
138
138
138
139
139
139
140
140
140
140
140
140
141
141
141
141
141
143
144
145
147
149
150
150
150
151
151
154
155
156
156
157
157
158
158
158
158
159
159
165
166
168
168
171
172
173
173
173
173
174
174
176
176
176
176
176
176
176
176
176
177
177
177
177
177
178
178
178
179
179
181
181
186
191
192
192
193
193
193
194
194
194
194
195
195
197
197
198
205
207
208
208
208
208
209
209
209
209
211
211
211
211
212
212
212
213
214
214
214
215
215
216
216
217
217
218
219
222
225
226
226
226
227
228
228
229
229
229
229
230
230
230
235
235
243
244
244
244
245
245
247
247
247
247
247
247
248
248
248
248
248
248
250
250
251
252
252
252
252
253
254
256
260
262
263
264
264
269
269
274
274
278
279
279
281
284
284
284
285
286
286
287
287
289
289
289
289
290
290
291
291
291
292
297
297
299
306
311
312
318
318
319
320
321
321
322
322
322
322
323
323
325
325
327
327
327
327
335
336
339
339
341
341
359
360
360
361
361
361
361
362
362
364
365
365
365
365
365
367
373
375
376
377
377
379
382
383
385
388
389
391
392
393
393
394
394
394
396
396
398
398
402
402
402
402
403
404
404
404
407
407
412
419
424
425
425
428
430
430
430
430
431
431
432
432
433
433
433
434
435
435
435
436
440
440
448
449
452
452
454
454
464
468
468
469
469
469
471
471
473
473
474
474
487
492
492
508
510
513
526
531
531
549
554
554
569
576
578
593
598
598
598
602
603
605
617
622
622
636
640
642
645
659
664
664
682
685
687
706
711
711
726
731
731
744
749
749
765
767
770
783
788
788
806
811
811
826
833
835
850
855
855
874
879
879
893
897
899
902
916
921
921
939
942
944
963
968
968
983
988
988
1389
1390
1391
5
9
9
11
11
13
15
15
15
15
15
15
15
15
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
19
19
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
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
26
30
30
30
30
31
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
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
37
39
40
41
41
41
41
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
46
46
46
47
47
47
47
47
47
49
49
49
49
49
49
49
49
49
49
49
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
50
50
50
50
50
50
50
51
51
51
52
52
53
53
53
54
54
54
54
54
55
56
60
60
62
65
65
66
66
66
67
67
68
68
68
68
68
68
68
69
70
70
70
70
70
71
73
74
80
80
80
83
83
83
84
84
85
85
86
86
87
87
88
88
88
89
89
92
92
95
96
98
100
101
101
101
101
102
102
102
103
103
103
104
104
104
104
104
104
104
105
105
106
106
106
106
107
107
109
109
110
112
114
114
114
122
123
123
124
124
124
124
124
125
125
127
129
132
134
138
138
139
139
139
139
139
139
139
139
140
140
140
141
141
141
141
141
142
142
144
145
146
147
147
150
151
151
151
154
154
154
157
158
158
159
159
159
160
160
165
166
168
168
169
169
172
173
174
174
174
175
175
175
175
175
175
177
177
177
177
177
177
178
178
179
179
179
180
180
182
182
193
193
193
193
194
194
195
195
195
196
196
197
197
198
198
199
205
205
208
209
209
209
210
210
210
210
210
210
212
212
212
212
213
213
214
214
214
214
214
215
215
216
217
218
218
219
220
223
225
225
225
225
227
227
227
228
229
229
230
230
230
231
231
231
236
237
237
244
245
245
246
246
246
246
246
246
248
248
248
248
248
248
249
251
251
252
253
253
253
253
254
255
257
260
260
263
264
270
275
275
278
279
280
281
281
282
285
285
286
287
288
290
291
291
292
292
292
293
298
298
306
306
310
310
312
313
317
318
318
319
320
321
322
322
323
323
324
326
326
326
327
327
327
327
328
328
328
336
337
338
340
340
340
342
342
350
350
360
361
361
362
363
365
366
366
366
366
366
368
373
373
376
377
384
386
389
390
391
392
394
394
394
394
395
395
397
397
399
399
403
404
405
405
405
408
408
419
419
423
423
425
426
426
429
431
431
431
431
431
432
433
434
434
435
436
437
439
440
440
440
440
441
449
450
451
453
453
453
455
455
463
463
465
469
469
470
470
472
472
474
474
475
475
488
493
509
511
514
527
532
532
550
555
555
570
574
577
579
594
599
599
602
603
604
618
623
623
641
643
646
660
665
665
683
686
688
707
712
712
727
732
732
745
750
766
768
771
784
789
789
807
812
812
827
831
834
836
851
856
856
875
880
880
898
900
903
917
922
922
940
943
945
964
969
969
984
989
989
1390
1391
1392
5
9
10
14
15
15
15
15
15
15
15
15
15
15
15
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
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
20
20
20
20
21
21
21
21
21
21
21
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
40
41
41
41
41
42
42
42
42
43
43
43
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
48
48
48
48
48
48
48
48
48
48
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
53
53
54
55
56
57
61
63
64
65
66
66
67
67
67
67
67
67
67
67
67
67
68
68
68
69
69
69
69
69
70
71
72
74
75
81
81
84
84
84
84
85
85
86
86
86
86
86
87
87
87
87
87
88
88
89
93
93
94
94
94
96
99
101
102
102
102
102
103
103
103
103
103
103
103
103
103
103
103
104
104
104
104
105
105
105
105
105
106
106
108
108
110
110
112
113
122
122
122
122
123
123
123
123
124
124
125
125
125
127
128
130
133
135
136
138
138
138
138
138
138
138
138
139
139
139
139
140
140
140
140
140
140
141
141
141
142
143
145
146
147
148
148
149
149
149
151
152
152
152
155
155
155
155
157
157
157
158
158
158
158
159
159
160
169
169
170
170
172
173
174
174
174
174
174
174
174
174
174
175
175
175
175
176
176
176
176
177
177
177
178
178
179
179
180
180
181
181
183
183
193
193
193
194
194
194
194
194
195
195
196
198
198
199
199
200
206
206
207
207
207
207
209
209
209
209
209
209
209
209
209
210
210
210
211
211
211
211
214
215
215
215
216
216
217
218
219
219
220
221
223
225
226
226
226
226
226
228
228
228
229
229
229
229
230
230
231
232
235
237
238
238
240
243
245
245
245
245
245
245
245
245
245
246
246
246
247
247
247
247
248
248
249
249
250
252
252
252
253
254
254
254
254
255
258
261
261
262
262
262
264
271
276
276
281
282
282
283
286
286
287
288
289
290
291
292
292
293
293
294
299
299
311
311
313
318
319
319
320
320
320
320
321
322
323
323
323
324
324
325
327
327
328
328
329
329
329
338
338
339
343
343
348
351
351
353
361
362
362
363
364
365
366
367
367
367
367
367
374
374
375
375
375
377
385
387
390
391
394
394
395
395
395
395
396
396
398
398
400
400
403
404
405
406
406
409
409
424
424
426
427
427
430
432
432
432
432
432
433
433
433
433
434
435
435
437
438
441
441
442
451
451
452
456
456
461
464
464
466
469
469
470
470
471
471
473
473
475
475
476
476
489
494
510
512
515
528
533
533
551
556
556
575
578
580
595
598
600
600
603
604
619
624
624
642
644
647
661
666
666
684
687
689
708
713
713
728
733
733
746
751
767
769
772
785
790
790
808
813
813
832
835
837
852
857
857
876
881
881
899
901
904
918
923
923
941
944
946
965
970
970
985
990
990
1391
1392
1393
1
1
5
5
9
11
11
11
11
11
11
11
11
11
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
17
17
17
17
17
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
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
30
30
30
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
34
34
34
34
34
34
34
35
35
35
35
35
35
37
37
38
38
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
48
48
48
48
49
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
53
53
53
53
54
56
57
62
64
65
65
66
67
68
68
68
68
68
68
69
70
70
70
70
70
71
72
73
75
76
82
82
84
84
84
84
85
85
85
86
86
87
87
87
88
88
89
95
95
95
95
100
101
101
102
103
103
103
104
104
104
104
104
104
104
104
105
105
106
106
106
106
106
107
107
109
109
111
113
113
114
114
120
121
123
123
123
124
124
125
128
129
131
134
136
137
138
138
139
139
139
139
139
139
139
140
141
141
141
141
141
141
142
143
144
146
147
148
150
150
150
150
153
153
153
155
155
155
156
156
156
158
159
159
160
170
170
171
173
174
175
175
175
175
175
175
175
176
176
177
177
177
177
178
178
178
179
179
180
182
182
184
184
191
192
194
195
195
195
196
197
199
199
200
200
208
208
208
208
208
210
210
210
210
210
210
211
212
212
212
212
214
214
215
216
216
216
217
218
219
220
220
221
222
224
226
226
226
226
226
227
227
227
227
227
229
230
230
231
233
235
235
236
236
238
241
244
246
246
246
246
246
246
246
247
248
248
248
248
249
250
250
251
252
253
253
254
255
255
256
259
263
263
263
263
272
277
277
282
283
283
284
284
287
287
288
289
290
291
291
292
293
295
300
300
310
312
312
319
321
321
321
321
321
322
324
324
325
325
326
327
327
328
328
329
329
330
330
339
339
339
340
340
344
344
349
349
354
362
363
363
364
365
365
367
368
368
376
376
376
376
386
388
391
392
395
396
396
396
396
397
399
399
401
401
404
404
405
410
410
423
425
425
428
428
430
430
431
433
433
433
434
434
434
434
434
435
436
438
439
440
440
442
442
452
452
452
453
453
457
457
462
462
467
470
471
471
472
472
474
474
476
476
477
477
490
492
492
495
511
513
516
529
534
534
552
557
557
576
579
581
596
601
601
604
620
625
643
645
648
662
667
667
685
688
690
709
714
714
729
734
734
747
749
749
752
768
770
773
786
791
791
809
814
814
833
836
838
853
858
858
877
882
900
902
905
919
924
924
942
945
947
966
971
971
986
991
991
1392
1393
1394
1
1
1
8
8
8
8
10
12
12
15
15
15
15
15
15
15
15
15
15
15
15
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
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
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
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
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
36
36
36
36
37
37
37
37
39
39
41
41
41
41
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
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
49
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
53
53
54
54
54
54
55
63
65
67
67
67
68
68
68
68
68
69
69
69
69
69
69
71
71
71
71
72
73
74
76
77
83
84
84
84
85
85
86
86
86
87
88
88
88
89
89
90
96
96
101
102
103
103
103
104
104
104
104
104
105
105
105
105
105
105
106
107
107
107
108
108
110
110
112
115
115
120
121
122
123
124
125
125
126
129
129
130
132
135
135
137
138
138
138
139
139
139
139
139
139
140
140
140
140
140
140
140
142
142
142
142
143
144
145
147
148
149
151
151
154
154
155
155
156
156
157
157
157
158
159
160
160
161
168
172
174
174
174
175
175
175
175
175
176
176
176
176
176
176
176
177
178
178
179
181
183
183
184
185
185
191
192
193
194
195
196
196
196
197
197
201
201
209
209
209
209
209
210
210
210
210
211
211
211
211
211
211
213
213
215
216
217
218
219
220
221
221
222
223
226
226
227
227
228
228
228
228
228
229
230
231
231
232
234
236
239
242
242
245
245
245
246
246
246
246
247
247
247
247
247
247
247
248
249
249
250
252
252
253
254
254
255
256
256
257
257
260
260
264
264
273
278
278
281
283
285
288
288
289
290
291
293
294
296
297
301
310
320
322
322
322
323
325
325
327
328
329
329
331
331
340
341
341
345
345
355
355
361
363
364
364
365
365
366
366
368
369
369
377
377
387
389
392
393
394
396
398
400
400
402
402
406
410
411
411
423
429
429
431
432
434
434
434
435
435
435
436
437
439
440
441
453
454
454
458
458
468
471
473
473
475
475
477
477
478
478
491
493
496
512
514
514
517
517
530
535
535
553
558
577
580
582
597
602
602
602
605
621
626
644
646
649
663
668
668
686
689
691
710
715
715
730
735
735
748
750
753
769
771
771
774
774
787
792
792
810
815
834
837
839
854
859
859
878
883
901
903
906
920
925
925
943
946
948
967
972
972
987
992
992
1393
1393
1394
1395
4
5
9
11
11
11
11
12
13
15
15
15
15
15
15
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
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
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
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
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
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
35
35
35
35
35
35
35
36
36
36
37
37
37
37
38
38
38
38
40
40
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
44
44
44
44
44
44
44
44
44
44
44
44
44
44
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
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
50
51
51
52
52
53
54
54
55
55
55
56
64
66
66
66
66
67
67
68
68
68
68
69
69
69
69
70
70
71
71
71
71
72
72
72
74
75
77
78
80
84
84
84
84
84
85
85
85
86
86
86
87
87
88
89
89
90
91
96
101
102
102
102
103
103
104
104
104
104
105
105
105
106
106
107
107
107
107
107
108
108
108
109
109
110
110
111
111
113
113
114
114
114
116
116
121
122
122
123
123
124
125
126
127
130
130
130
130
131
133
133
135
136
136
137
137
138
138
139
139
139
139
140
140
140
140
141
141
141
142
142
142
142
143
143
143
145
146
148
149
150
151
155
155
155
155
155
155
156
156
157
157
157
158
158
159
161
162
165
173
173
173
174
175
175
175
175
176
176
176
177
177
177
178
178
178
178
178
179
179
180
180
182
184
184
185
186
186
192
193
193
193
194
194
195
197
197
197
198
198
202
202
208
208
209
209
210
210
210
210
211
211
212
212
213
213
213
213
214
214
214
216
217
220
221
222
222
223
224
226
226
226
226
227
227
227
227
227
228
228
228
229
229
229
229
230
232
233
235
237
238
240
243
243
243
243
244
244
245
246
246
246
246
247
247
248
248
248
248
249
249
249
249
250
250
251
253
253
254
255
255
256
257
257
261
261
264
268
274
278
279
279
284
286
289
291
292
293
294
295
297
298
300
300
302
306
310
311
321
322
323
324
324
326
326
326
327
328
329
330
330
332
332
339
340
340
340
341
342
342
346
346
351
356
356
356
356
361
365
366
366
367
367
367
367
369
370
370
377
381
388
390
390
391
393
393
394
397
399
401
401
403
403
406
407
411
412
412
419
423
424
430
430
432
433
435
435
435
437
438
440
440
441
442
452
453
453
453
454
455
455
459
459
464
469
472
474
474
476
476
478
478
479
479
492
494
497
513
518
518
531
536
536
554
557
557
559
578
581
581
583
583
598
598
603
603
603
622
624
624
627
645
647
647
650
650
664
669
669
687
690
692
711
716
716
731
736
736
749
751
754
770
775
775
788
793
793
811
814
814
816
835
838
838
840
840
855
860
860
879
881
881
884
902
904
904
907
907
921
926
926
944
947
949
968
973
973
988
993
993
1394
1394
1395
1396
4
5
5
5
8
8
12
13
14
15
15
15
15
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
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
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
23
23
28
28
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
36
36
36
37
37
37
38
38
38
38
39
39
39
39
41
41
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
50
50
51
51
53
54
54
54
54
54
54
54
55
55
55
56
56
56
57
65
67
67
67
69
69
70
70
71
71
72
72
72
72
73
73
73
73
75
76
78
79
80
82
85
85
85
85
85
86
86
86
86
88
89
89
89
90
90
90
90
91
92
96
101
101
102
103
103
103
105
105
106
107
107
108
108
108
108
108
109
109
109
110
110
111
112
112
113
113
113
114
114
115
115
115
121
121
122
122
124
125
125
125
125
126
126
127
128
128
130
130
131
131
132
137
137
138
138
139
139
140
140
141
141
142
142
142
143
143
143
143
144
144
144
146
147
149
150
151
151
153
156
156
156
156
156
156
156
156
157
157
157
159
160
160
160
161
161
162
163
165
166
168
168
174
174
176
176
177
178
178
178
179
179
179
179
179
180
180
180
181
183
185
185
186
186
187
187
192
192
193
193
193
195
196
196
196
197
197
198
198
198
199
199
203
203
209
209
209
211
211
213
213
214
214
214
214
214
214
215
215
215
218
221
222
223
223
224
224
225
226
226
226
227
227
227
227
228
228
228
228
228
228
230
231
231
231
232
232
233
234
236
238
238
241
241
243
243
244
244
245
245
247
247
249
249
249
250
250
250
250
251
251
252
252
254
254
255
256
256
257
258
258
262
262
264
269
269
269
275
278
279
280
280
281
281
285
287
290
292
293
293
295
296
298
299
299
301
303
306
311
312
322
322
324
327
327
327
327
327
328
329
331
331
333
333
339
339
339
340
341
341
341
342
347
347
351
354
356
356
357
357
365
366
367
367
368
368
368
370
371
371
377
382
382
382
389
391
392
394
394
394
394
395
398
400
402
402
404
404
406
408
412
412
413
413
419
424
425
431
433
434
435
436
436
438
439
440
440
441
441
442
452
452
452
453
454
454
454
455
460
460
464
470
473
475
475
477
477
479
479
480
480
493
495
498
514
519
519
532
537
537
555
558
560
579
584
584
599
604
604
604
623
625
628
646
651
651
665
670
670
691
693
712
717
717
732
737
737
750
752
755
771
776
776
789
794
794
812
815
817
836
841
841
856
861
861
880
882
885
903
908
908
922
927
927
948
950
969
974
974
989
994
994
1395
1396
1397
4
5
5
5
5
6
6
13
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
24
24
25
25
25
26
26
26
26
26
26
26
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
34
34
35
35
37
37
37
37
38
38
38
39
39
40
40
40
40
40
40
40
40
42
42
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
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
47
47
47
47
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
54
54
55
55
55
55
56
56
56
56
56
57
58
66
67
67
68
68
70
71
71
73
73
73
73
74
74
74
74
76
77
79
80
82
84
84
86
86
86
87
87
89
90
90
90
91
91
91
91
92
93
100
101
102
103
103
103
104
104
104
104
106
107
109
109
109
109
109
110
111
111
112
113
113
115
115
116
116
116
125
126
126
126
127
127
128
129
131
132
132
133
135
138
138
138
138
139
139
140
140
141
142
142
142
144
144
144
144
145
147
148
150
151
152
153
155
157
157
157
157
157
158
160
161
161
161
162
162
163
164
165
169
169
174
174
175
175
177
178
179
179
180
180
180
180
180
182
184
186
186
187
187
187
187
188
188
196
197
197
197
197
198
198
199
199
199
200
200
204
204
209
209
210
210
212
213
214
215
215
215
215
215
216
219
222
223
224
224
224
225
226
226
228
228
229
229
229
229
231
232
232
232
233
233
234
235
237
239
242
244
245
245
245
245
246
246
248
248
250
250
251
251
251
251
253
253
255
255
255
257
257
258
259
259
263
263
270
270
276
278
281
281
282
282
286
288
291
293
294
296
297
299
300
300
300
300
302
304
310
312
313
323
325
325
326
327
328
328
328
328
329
330
332
332
334
334
341
342
342
342
343
348
348
357
358
358
361
366
367
368
368
368
369
369
371
372
372
383
383
390
391
395
395
395
395
396
396
399
401
403
403
405
405
409
413
413
413
413
414
414
423
425
426
432
434
435
437
437
439
439
440
440
441
442
442
443
454
455
455
455
456
461
461
471
471
474
476
476
478
478
480
480
481
481
494
496
499
515
520
520
533
538
538
556
559
561
580
585
585
600
605
605
605
624
626
629
647
652
652
666
671
671
692
694
713
718
718
733
738
738
751
753
756
772
777
777
790
795
795
813
816
818
837
842
842
857
862
862
881
883
886
904
909
909
923
928
928
949
951
970
975
975
990
995
995
1396
1397
1398
4
4
5
5
6
6
7
7
11
11
11
11
11
11
12
12
12
13
13
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
29
29
29
30
30
30
32
34
34
34
35
35
35
36
36
37
37
37
38
38
38
38
39
40
40
43
43
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
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
48
48
54
55
56
56
56
57
57
57
57
67
67
67
67
68
68
68
69
70
70
71
71
72
72
72
72
74
74
75
75
75
76
77
78
80
80
81
83
84
85
85
87
87
87
88
91
91
92
92
92
92
101
103
103
104
104
104
104
105
105
105
106
106
107
108
109
109
110
111
112
112
113
114
114
114
116
116
117
117
125
125
127
127
128
128
130
130
132
134
138
139
139
139
139
139
139
140
141
141
141
142
142
143
143
146
146
147
148
149
151
152
153
154
155
156
156
157
157
157
157
158
158
158
159
162
162
163
163
166
168
170
170
170
174
175
175
175
176
177
177
178
179
180
180
180
180
181
183
184
184
185
185
187
187
187
187
188
188
189
189
193
198
198
198
199
199
200
200
200
205
205
209
210
210
210
211
212
212
213
214
216
217
217
218
220
221
222
223
224
225
225
225
226
226
227
227
227
229
230
230
230
233
233
234
234
238
238
238
240
243
243
243
245
245
246
246
246
247
248
248
249
251
251
252
254
254
255
255
256
258
258
259
260
260
264
264
269
270
270
270
270
271
277
279
281
282
282
283
283
283
288
289
289
292
292
293
293
293
294
295
297
298
298
300
300
300
301
301
303
305
306
311
313
313
324
326
326
327
329
329
329
329
330
330
330
331
333
333
335
335
340
342
343
343
344
349
349
351
351
356
356
358
363
364
365
367
367
368
368
369
370
370
372
373
373
382
383
383
383
383
384
391
392
394
396
396
396
396
396
397
397
400
401
401
402
404
404
406
406
406
406
410
411
413
413
414
414
415
415
419
424
426
426
434
435
435
436
438
438
438
439
440
440
441
442
443
443
444
453
455
456
456
457
462
462
464
464
472
472
475
476
476
477
477
479
479
481
481
482
482
495
497
500
516
521
521
534
539
539
557
560
562
581
586
586
601
602
605
606
606
625
627
630
648
653
653
667
672
672
693
695
714
719
719
734
739
739
752
754
757
773
778
778
791
796
796
814
817
819
838
843
843
858
863
863
882
884
887
905
910
910
924
929
929
950
952
971
976
976
991
996
996
1397
1398
1399
4
5
5
5
5
6
7
7
8
8
8
11
11
12
12
12
13
13
13
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
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
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
19
19
19
19
19
19
19
19
20
21
21
21
21
21
21
21
22
26
26
27
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
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
35
35
35
35
35
36
36
36
37
37
38
38
38
39
39
39
39
39
40
41
41
41
41
41
41
41
41
41
41
44
44
44
44
46
46
46
46
46
46
46
46
46
46
46
46
46
46
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
52
54
54
55
55
56
65
68
68
68
68
68
69
69
70
71
71
71
71
72
73
73
75
76
76
76
77
78
79
81
82
83
83
84
86
86
87
87
88
89
89
89
90
90
93
93
95
101
102
104
104
104
105
105
106
107
107
107
107
108
109
110
110
111
112
113
113
113
113
114
115
115
115
115
115
115
117
123
125
125
126
126
126
126
131
135
139
139
140
140
140
140
140
140
141
142
142
142
142
142
142
143
144
147
147
148
149
150
150
152
153
154
154
154
157
158
158
158
158
159
159
159
160
160
160
161
161
168
169
173
175
175
176
176
177
178
178
178
178
178
179
180
181
181
182
184
185
185
186
188
188
188
188
188
189
189
190
190
190
190
196
196
197
197
197
199
201
206
206
208
210
210
211
211
212
213
213
213
213
214
214
215
217
221
222
223
224
225
225
225
226
226
227
228
228
228
228
229
229
231
231
231
232
232
236
239
239
239
241
244
244
246
246
247
247
248
249
249
249
249
250
253
253
255
255
255
256
256
257
259
259
259
259
260
261
261
261
261
263
265
265
271
271
272
278
281
282
283
283
290
291
293
293
294
294
294
295
296
298
299
301
301
302
302
304
306
310
312
321
325
327
328
330
330
330
330
331
331
332
334
334
334
334
336
336
336
336
341
341
345
349
350
350
352
352
357
366
366
368
368
368
369
369
370
371
371
373
374
374
376
384
384
385
392
394
395
397
397
401
402
402
403
404
405
405
405
405
407
407
407
407
407
407
411
414
415
415
416
416
423
425
430
434
436
437
439
439
439
440
440
441
441
442
443
444
445
454
454
458
462
463
463
465
465
476
477
477
478
478
480
480
480
480
482
482
482
482
483
483
496
498
501
517
522
522
535
540
540
558
561
563
582
587
587
598
602
603
607
607
626
628
631
649
654
654
668
673
673
687
694
696
715
720
720
735
740
740
753
755
758
774
779
779
792
797
797
815
818
820
839
844
844
859
864
864
883
885
888
906
911
911
925
930
930
944
951
953
972
977
977
992
997
997
1398
1399
1400
4
4
4
5
5
5
5
6
6
7
7
8
8
9
9
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
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
15
15
15
15
15
15
15
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
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
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
23
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
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
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
45
45
45
45
46
46
46
46
46
46
46
46
46
47
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
51
51
53
53
54
55
55
55
56
56
57
57
66
66
68
68
69
69
69
71
71
71
71
71
71
72
72
72
72
74
74
74
74
76
77
78
79
79
80
80
82
82
83
83
85
85
85
85
86
86
87
87
87
88
88
89
89
90
90
90
90
91
91
94
94
96
96
96
96
101
102
103
104
104
104
104
105
105
105
107
107
107
107
107
107
108
108
108
108
110
111
111
112
113
115
116
116
116
116
118
121
121
122
122
124
124
125
126
126
126
127
127
130
130
132
136
139
139
140
140
140
141
141
142
142
142
142
142
142
142
143
143
143
143
143
143
145
148
148
149
150
150
151
151
151
151
151
151
153
153
154
154
155
156
156
157
157
157
157
158
159
159
159
159
160
160
160
161
161
161
161
162
162
169
169
170
170
174
175
175
176
176
178
178
178
178
178
178
178
178
179
179
179
179
179
179
181
183
185
186
186
187
187
187
189
191
191
191
191
192
192
193
193
196
197
197
197
198
198
198
198
200
200
202
207
207
209
209
209
209
210
210
211
211
213
213
213
213
213
213
214
214
214
214
214
215
217
217
218
222
223
224
225
225
226
226
227
227
227
227
228
228
228
228
229
229
229
230
230
231
232
232
232
232
233
233
237
237
240
242
243
243
245
245
246
246
247
247
249
249
249
249
249
249
249
250
250
250
250
253
255
256
256
256
257
257
258
261
262
262
262
262
264
264
264
264
266
266
270
270
272
272
279
282
282
283
283
284
284
291
292
292
294
294
295
296
296
297
297
299
299
300
300
300
300
302
302
305
307
311
311
313
313
322
322
322
322
324
326
327
328
330
330
331
331
331
331
332
332
333
337
337
337
337
346
350
350
351
351
356
356
358
366
368
369
369
369
370
370
371
371
372
372
372
374
374
375
375
375
377
377
377
377
383
383
385
385
393
395
395
395
396
396
398
398
402
403
403
404
405
405
408
408
408
408
412
413
413
415
417
417
424
424
426
426
431
435
435
435
435
435
437
438
440
440
440
440
441
441
442
442
443
443
443
443
444
445
445
446
446
459
463
463
464
464
470
477
478
478
479
479
483
483
483
483
484
484
497
499
502
518
523
523
536
541
541
559
562
564
583
588
588
602
603
604
608
608
627
629
632
650
655
655
669
674
674
688
692
695
697
716
721
721
736
741
741
754
756
759
775
780
780
793
798
798
816
819
821
840
845
845
860
865
865
884
886
889
907
912
912
926
931
931
945
949
952
954
973
978
978
993
998
998
1399
1400
1401
4
5
6
7
7
8
8
9
9
10
10
11
11
11
11
11
11
11
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
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
18
18
18
18
18
18
18
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
20
20
20
20
20
20
21
21
21
24
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
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
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
33
33
34
34
34
34
34
35
35
35
35
36
36
37
37
37
37
37
37
37
37
38
38
38
38
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
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
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
46
46
46
46
47
47
47
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
51
51
54
54
55
55
55
56
56
56
57
57
58
58
67
70
71
71
72
72
72
72
72
72
72
72
73
73
73
73
75
75
75
78
79
83
83
84
84
85
85
86
87
88
88
89
89
89
89
90
90
90
90
91
91
91
92
92
95
95
97
97
103
104
105
105
106
107
107
108
108
108
108
108
108
108
108
108
109
109
109
109
111
112
112
113
114
116
117
117
117
117
117
119
121
122
125
125
126
126
126
127
127
127
128
128
130
130
131
131
137
138
140
140
142
142
142
142
142
143
143
143
143
143
143
143
143
143
144
144
144
144
144
144
144
146
149
149
150
152
152
154
154
155
155
156
156
157
158
160
160
160
160
161
161
161
161
161
162
162
162
163
163
171
171
174
178
178
179
179
179
179
179
179
179
179
179
179
180
180
180
180
182
183
184
186
187
187
188
188
192
192
192
192
192
193
196
196
197
197
197
198
198
198
198
199
199
200
201
201
203
208
208
209
210
210
213
213
214
214
214
214
214
214
214
214
215
215
215
215
218
218
219
223
224
225
227
228
228
228
229
229
230
230
230
231
231
231
231
232
232
232
233
233
233
234
234
243
243
243
244
244
245
246
249
249
250
250
250
250
250
250
250
250
250
251
251
251
251
253
254
255
256
257
257
257
258
258
259
262
263
263
263
263
265
265
267
267
271
280
284
284
285
285
286
290
292
295
295
296
300
300
301
301
301
303
306
308
311
313
314
314
323
323
325
327
329
331
331
332
332
332
332
333
333
334
338
338
338
338
343
347
352
352
356
356
357
357
366
368
369
370
370
370
371
371
373
375
375
376
376
376
378
378
384
394
396
397
397
399
399
400
403
404
404
405
409
409
409
409
413
414
418
418
424
426
427
427
432
436
436
436
436
438
439
441
441
441
442
444
444
445
446
446
447
447
456
460
465
465
471
475
478
479
479
480
480
484
484
484
484
485
485
500
503
519
524
524
537
542
542
560
563
565
584
589
589
603
603
604
605
605
609
609
628
630
633
651
656
656
670
675
675
693
696
698
717
722
722
737
742
742
757
760
776
781
781
794
799
799
817
820
822
841
846
846
861
866
866
885
887
890
908
913
913
927
932
932
950
953
955
974
979
979
994
999
999
1400
1401
1402
5
7
7
8
8
9
9
9
10
11
11
11
11
11
11
11
11
11
11
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
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
19
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
25
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
31
31
31
31
32
32
32
32
32
32
32
34
34
35
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
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
42
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
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
47
47
47
47
48
48
48
49
51
52
53
55
55
56
56
56
57
57
57
57
57
57
57
58
58
58
59
59
67
68
68
70
71
73
73
73
73
73
73
74
74
74
74
74
74
76
76
76
79
80
84
84
85
85
85
87
87
87
88
89
89
90
90
91
91
91
91
92
92
92
92
93
93
93
96
96
97
103
104
106
106
106
109
109
109
109
109
109
109
110
110
110
110
112
112
113
113
114
114
115
117
117
118
118
118
118
120
126
126
126
127
127
127
128
128
128
128
129
129
129
132
132
138
138
139
140
140
141
143
143
143
144
144
144
144
144
144
144
145
145
145
145
145
147
150
150
151
152
155
155
156
156
157
157
158
158
159
161
161
162
162
162
162
162
163
163
163
163
164
164
164
169
170
170
170
172
172
174
175
177
180
180
180
180
180
180
180
181
181
181
181
181
183
184
185
187
187
187
187
188
188
189
189
189
193
193
193
193
197
197
198
198
198
198
199
199
199
199
200
200
200
200
201
202
202
204
209
209
209
210
210
212
215
215
215
215
215
215
216
216
216
216
219
219
224
225
226
229
229
229
229
230
230
230
231
231
232
232
233
233
233
234
234
234
234
235
235
235
239
244
245
245
245
246
247
248
251
251
251
251
251
251
252
252
252
252
253
253
255
256
257
258
258
259
259
260
260
263
264
264
264
264
265
268
268
270
272
281
282
283
283
283
285
285
286
286
291
293
294
296
296
297
300
300
301
301
302
302
302
304
307
309
311
313
314
315
315
323
328
330
332
332
333
333
333
333
334
334
335
335
339
339
339
339
343
348
352
353
353
358
358
366
366
369
370
371
372
372
374
376
376
377
377
377
378
383
385
395
395
396
396
396
398
398
400
400
401
404
404
405
405
406
406
407
410
410
410
410
413
413
414
415
419
419
424
426
427
428
428
436
437
437
439
440
442
442
442
443
445
445
447
447
448
448
456
461
465
466
466
476
479
479
480
480
481
481
481
485
485
485
485
486
486
501
504
520
525
525
538
543
543
561
564
566
585
590
590
603
603
605
605
605
606
606
610
610
629
631
634
652
657
657
671
676
676
694
697
699
718
723
723
738
743
743
758
761
777
782
782
795
800
800
818
821
823
842
847
847
862
867
867
886
888
891
909
914
914
928
933
933
951
954
956
975
980
980
995
1000
1000
1401
1402
1403
1
4
5
6
7
8
9
9
10
10
11
11
11
11
11
11
12
12
15
15
15
15
15
15
15
15
15
15
15
15
15
16
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
19
19
19
19
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
25
25
25
26
26
26
26
26
26
26
26
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
30
30
30
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
31
32
32
32
32
32
32
32
32
34
34
34
34
34
35
35
35
35
35
36
37
37
37
37
38
38
38
38
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
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
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
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
46
46
46
46
46
46
46
46
48
48
48
48
49
49
49
50
53
53
53
53
55
56
57
57
57
57
58
58
58
58
58
58
58
58
59
59
67
68
68
70
70
70
71
72
72
72
73
73
73
73
73
73
74
74
75
75
75
75
75
75
77
77
80
81
83
83
85
85
85
85
86
86
87
88
88
88
89
90
91
92
92
92
92
93
93
93
93
93
94
94
97
97
97
103
104
104
106
106
106
107
108
108
109
109
109
109
109
109
110
111
111
111
111
114
114
115
115
118
119
119
119
119
121
126
126
127
128
128
128
128
129
129
129
129
129
130
130
133
133
138
139
139
141
141
141
141
141
142
142
142
142
143
143
144
144
144
144
144
144
144
144
144
146
146
146
146
146
148
148
151
151
151
152
152
154
154
156
156
157
157
157
157
158
158
158
159
159
161
162
163
163
163
163
163
164
164
164
164
164
165
165
169
169
169
170
171
171
171
174
175
177
177
177
178
179
179
180
180
180
180
180
180
181
181
182
182
182
182
184
185
186
187
187
188
188
189
189
190
190
194
194
194
194
197
198
198
198
199
199
199
200
200
200
200
200
201
201
201
202
205
209
210
210
210
210
212
212
212
213
214
214
215
215
215
215
215
215
217
217
217
217
217
225
225
225
226
227
229
230
230
230
230
231
231
232
232
232
233
234
234
234
235
235
235
235
235
236
236
239
241
245
245
246
246
246
248
248
248
248
249
250
250
251
251
251
251
251
251
253
253
253
253
254
254
255
255
255
256
257
260
260
261
261
264
265
265
265
265
265
269
269
270
270
271
282
282
282
282
283
284
284
284
287
287
292
294
294
294
297
297
297
298
300
300
301
301
302
302
303
303
308
310
311
311
314
315
323
329
330
331
334
334
335
335
336
336
340
340
340
340
349
352
354
354
354
359
359
367
367
368
368
368
370
372
373
375
377
377
378
378
378
378
383
383
384
395
395
395
396
396
397
397
397
401
401
402
406
406
407
407
407
411
411
411
411
413
413
414
414
415
420
420
424
424
427
428
436
438
438
440
440
441
443
443
443
443
443
444
448
448
449
449
462
465
467
467
477
481
481
482
482
482
486
486
486
486
487
487
502
505
521
526
526
539
544
544
565
567
586
591
591
606
606
606
607
607
611
611
632
635
653
658
658
672
677
677
695
698
700
719
724
724
739
744
744
759
762
778
783
783
796
801
801
822
824
843
848
848
863
868
868
889
892
910
915
915
929
934
934
952
955
957
976
981
981
996
1001
1001
1402
1403
1404
1
1
4
5
6
7
7
7
8
9
9
10
10
11
11
11
11
11
12
13
13
14
14
15
15
15
15
15
15
15
15
17
17
17
17
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
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
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
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
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
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
33
33
34
34
34
34
34
34
35
36
36
36
36
36
37
37
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
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
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
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
47
47
47
47
47
47
47
47
49
49
49
49
50
50
50
51
54
55
56
57
58
58
58
59
59
59
59
59
59
60
60
70
71
71
71
71
72
72
72
72
72
72
72
72
73
73
73
74
74
74
74
74
74
76
76
78
78
81
82
83
86
86
86
86
87
87
87
87
87
87
87
88
89
89
89
90
91
92
93
93
93
94
94
94
95
95
98
98
101
106
107
107
107
107
108
108
108
108
108
108
108
108
109
109
110
110
110
110
110
110
111
115
115
116
116
117
117
119
120
120
120
120
122
126
127
128
129
129
129
130
130
130
131
131
134
140
141
142
142
142
142
143
143
143
143
143
143
143
143
143
143
143
143
144
144
145
145
145
145
145
145
145
145
147
152
152
152
153
154
156
157
157
157
158
158
158
158
158
159
159
159
160
160
161
162
163
164
164
164
164
165
165
165
166
166
171
172
172
172
177
178
178
178
178
179
179
179
179
179
179
179
179
180
180
181
181
181
181
181
181
182
185
185
186
187
187
189
189
190
190
191
191
195
195
195
195
197
198
199
199
199
200
200
200
200
200
201
201
201
202
202
202
206
211
211
212
213
213
213
213
214
214
214
214
214
214
214
214
214
215
215
216
216
216
216
216
216
225
226
227
228
229
229
230
230
230
231
231
231
231
232
232
232
233
233
233
234
235
235
236
236
236
237
237
240
242
244
246
247
248
249
249
249
249
249
250
250
250
250
250
250
250
250
251
251
252
252
252
252
252
252
256
256
256
256
257
261
261
262
262
265
266
266
266
266
269
270
270
270
271
272
283
284
285
285
285
288
288
293
298
298
298
299
302
302
303
303
304
304
309
311
312
312
313
313
313
315
327
330
332
335
335
336
336
337
337
341
341
341
341
343
343
350
355
355
355
360
369
369
369
369
373
374
376
378
378
379
379
379
382
383
384
385
397
397
398
398
398
402
402
403
407
407
408
408
412
412
412
412
415
415
416
421
421
425
425
426
426
426
428
439
439
440
442
442
444
444
444
444
444
445
449
449
450
450
456
456
463
468
468
478
482
482
483
483
483
487
487
487
487
488
488
497
501
503
506
522
527
527
540
545
545
566
568
587
592
592
607
607
607
612
612
633
636
654
659
659
673
678
678
696
699
699
701
701
720
725
725
740
745
745
754
758
760
763
779
784
784
797
802
802
823
825
844
849
849
864
869
869
890
893
911
916
916
930
935
935
953
956
956
958
958
977
982
982
997
1002
1002
1403
1404
1405
5
7
7
8
8
9
9
10
11
11
11
11
11
11
11
12
12
13
14
14
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
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
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
32
32
36
37
37
37
37
37
37
38
38
38
39
39
40
40
40
40
40
40
40
40
40
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
43
43
43
44
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
46
50
50
50
50
51
51
51
52
55
55
55
56
56
57
58
59
59
59
60
60
60
68
68
72
72
72
72
73
73
74
74
74
75
75
75
75
75
75
77
77
79
79
82
83
87
87
88
88
88
88
88
88
88
88
89
90
90
90
90
90
91
91
93
94
94
94
95
99
99
101
102
104
104
108
108
108
109
109
110
110
111
111
111
111
111
111
112
115
116
116
117
117
118
118
120
121
121
121
121
123
126
126
127
127
129
129
129
130
130
131
133
133
135
141
143
143
143
144
144
144
144
145
145
146
146
146
146
146
146
146
146
148
153
153
153
154
157
158
158
159
159
159
159
159
160
160
160
161
161
161
161
161
162
162
164
165
165
165
165
166
170
172
173
173
179
179
179
180
180
181
181
181
181
182
182
182
182
182
182
183
185
187
188
188
190
190
191
191
192
192
196
196
196
196
197
197
198
198
200
201
201
201
201
201
201
202
207
212
212
214
214
214
214
215
215
215
216
216
217
217
217
217
217
217
217
217
227
228
228
229
230
230
231
231
231
232
232
232
232
232
232
232
233
233
233
233
234
234
235
236
236
237
242
242
245
246
246
247
248
250
250
250
250
251
251
252
252
253
253
253
253
253
253
257
257
258
262
262
263
263
266
267
267
267
267
270
271
271
272
273
283
284
285
286
286
289
289
294
294
294
298
299
299
299
300
303
303
304
304
305
305
310
312
314
314
314
314
327
328
330
330
331
333
336
336
337
337
338
338
341
342
342
342
342
344
344
351
355
355
356
356
359
359
361
370
370
374
375
377
379
379
380
380
380
383
385
386
396
398
398
399
399
403
403
404
407
407
408
408
409
409
411
413
413
413
413
416
416
417
422
422
427
427
427
427
440
440
440
441
443
443
445
445
445
445
445
446
450
450
451
451
454
457
457
464
469
469
479
483
483
484
484
484
488
488
488
488
489
489
502
504
507
523
528
528
541
546
546
567
569
588
593
593
603
603
608
613
613
634
637
655
660
660
674
679
679
697
702
702
721
726
726
741
746
746
759
761
764
780
785
785
798
803
803
824
826
845
850
850
865
870
870
891
894
912
917
917
931
936
936
954
959
959
978
983
983
998
1003
1003
1404
1405
1406
5
7
7
7
7
8
8
9
9
11
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
21
21
21
21
21
21
21
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
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
33
33
33
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
40
40
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
46
46
46
46
47
47
47
47
47
47
47
47
47
51
51
51
51
51
51
52
52
53
56
56
56
57
57
57
57
57
58
58
58
58
58
59
60
66
69
69
71
72
72
72
73
73
73
74
74
75
75
75
76
76
76
76
78
80
80
83
84
88
88
88
89
89
89
89
90
90
90
91
91
91
91
92
92
92
92
92
93
93
93
94
95
95
100
100
101
105
105
107
108
108
108
109
109
110
110
111
111
112
112
112
112
113
115
116
116
117
117
118
118
119
121
122
122
122
122
124
127
127
128
128
128
128
128
129
129
129
130
131
134
134
136
142
142
143
143
143
144
144
144
145
145
146
146
147
147
147
147
147
147
149
151
154
154
154
155
157
158
159
159
159
160
160
160
161
161
161
161
162
162
162
162
163
163
163
163
163
164
164
164
165
166
166
166
171
171
178
179
179
179
179
180
180
181
181
182
182
182
182
183
183
183
183
184
186
188
189
189
191
192
192
193
193
197
197
197
197
198
198
199
199
199
199
199
200
200
200
201
202
202
202
208
213
213
213
214
214
214
214
215
215
216
216
217
217
218
218
218
218
218
218
228
229
229
229
230
230
232
232
232
233
233
233
233
233
234
234
234
234
234
234
234
235
235
235
235
235
236
237
246
247
247
248
249
249
250
250
250
251
251
251
252
252
253
253
254
254
254
254
257
259
263
263
264
264
264
267
268
268
268
268
270
271
272
272
273
284
284
285
290
290
292
295
295
295
299
300
300
300
301
304
304
305
305
306
306
311
313
315
315
327
331
331
332
334
337
337
338
338
339
339
342
342
343
343
343
343
352
357
357
360
360
362
370
372
375
376
376
377
378
380
380
381
381
381
383
384
386
397
397
399
404
404
405
405
408
408
409
409
410
410
412
414
414
414
414
417
418
423
423
428
428
440
441
441
444
444
446
446
446
446
446
447
451
451
452
452
455
455
465
470
470
480
484
484
485
485
485
489
489
489
489
490
503
505
508
524
529
529
542
547
547
561
568
570
589
594
594
604
604
605
605
605
609
614
614
629
633
635
638
656
661
661
675
680
680
698
703
703
722
727
727
742
747
760
762
765
781
786
786
799
804
804
818
825
827
846
851
851
866
871
871
886
890
892
895
913
918
918
932
937
937
955
960
960
979
984
984
999
1004
1405
1406
1407
5
6
7
7
7
8
9
9
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
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
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
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
25
25
25
26
26
26
26
26
26
26
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
30
30
30
30
30
30
30
30
30
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
32
32
33
33
33
34
34
35
35
35
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
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
45
45
45
46
46
46
47
47
47
47
47
47
47
47
47
47
48
48
48
52
52
52
52
52
52
52
52
54
57
58
58
58
58
59
59
59
59
67
67
71
71
71
72
73
73
73
73
73
74
74
74
74
76
77
77
79
81
81
84
85
88
89
89
89
90
90
90
91
92
92
93
93
93
93
94
94
94
94
96
101
101
102
104
106
106
106
107
107
107
108
109
109
109
110
110
110
110
114
118
118
119
119
120
122
123
123
123
123
124
125
129
129
129
129
130
130
130
130
133
135
135
142
142
142
143
143
144
144
144
144
145
145
145
145
148
148
150
152
152
152
152
155
155
155
156
157
158
159
160
160
160
160
161
161
161
161
162
162
163
163
164
164
164
164
165
165
165
165
167
178
178
178
179
180
180
180
180
180
181
181
181
181
185
186
186
189
190
190
190
190
192
193
193
194
194
198
198
198
198
200
200
200
200
201
201
201
201
202
209
213
213
213
214
214
214
215
215
215
215
216
216
216
216
217
219
219
219
229
230
230
231
232
233
234
234
234
235
235
235
235
235
235
236
236
236
236
236
236
237
246
247
248
248
249
249
249
249
250
251
251
251
252
252
252
252
252
257
260
264
264
265
265
265
265
265
265
268
269
269
269
269
270
271
273
273
273
273
274
286
291
291
293
293
296
299
299
301
301
301
302
303
303
305
305
306
306
307
307
309
312
314
315
328
330
332
332
332
333
335
338
338
339
339
340
340
344
344
344
344
350
353
358
358
359
361
361
370
376
377
377
378
378
378
378
379
381
381
382
382
382
383
384
386
386
387
400
405
405
406
406
406
410
410
411
411
412
412
415
415
415
415
416
416
418
419
424
428
441
442
442
443
445
445
445
447
447
447
447
447
448
452
452
453
453
463
466
471
471
481
485
485
486
486
486
490
490
490
490
491
504
506
509
525
530
530
543
548
548
562
566
569
571
590
595
595
606
606
606
610
615
615
634
636
639
657
662
662
676
681
699
704
704
723
728
728
743
748
761
763
766
782
787
787
800
805
805
819
823
826
828
847
852
852
867
872
872
891
893
896
914
919
919
933
938
956
961
961
980
985
985
1000
1005
1406
1407
1408
8
9
10
10
11
11
11
11
11
11
11
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
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
18
18
18
18
18
18
18
18
18
18
18
18
18
18
20
20
20
20
20
20
20
20
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
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
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
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
33
33
35
36
36
36
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
39
39
39
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
40
40
40
40
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
44
45
45
45
45
47
47
47
47
47
47
47
47
48
48
48
49
49
49
53
53
53
53
53
55
58
59
59
60
60
60
73
74
74
74
77
78
78
80
82
82
85
86
88
88
89
90
90
91
91
91
92
94
94
95
95
96
97
102
102
104
105
109
110
110
110
115
118
119
119
120
120
121
123
124
124
124
124
125
126
130
130
131
131
133
144
144
145
145
145
149
149
151
153
153
156
156
156
157
159
159
161
161
161
161
162
162
162
162
163
163
165
165
166
166
166
166
168
173
180
181
181
181
186
190
191
191
191
191
193
194
194
195
195
199
199
199
199
201
201
202
202
202
209
210
215
215
215
216
216
216
217
218
230
230
230
231
231
232
232
232
233
234
235
236
236
236
236
237
237
237
237
238
246
248
250
251
252
252
252
253
261
265
265
266
266
266
266
269
270
270
270
270
274
274
274
274
275
286
287
292
292
297
302
302
302
303
304
304
306
307
307
308
308
310
313
315
315
322
330
331
334
336
339
339
340
340
341
341
344
345
345
345
345
351
354
359
359
359
377
378
378
379
379
380
382
382
383
383
383
387
387
388
399
401
406
406
407
411
411
412
412
416
416
416
416
417
417
419
420
423
423
425
428
435
443
443
443
444
448
448
448
448
448
449
453
453
454
454
457
464
467
472
472
482
486
486
487
487
487
489
489
491
491
491
491
492
505
507
510
526
531
531
544
549
549
567
570
572
591
596
596
606
607
607
611
616
616
635
637
640
658
663
663
677
680
680
682
700
705
705
724
729
729
744
746
746
749
762
764
767
783
788
788
801
806
806
824
827
829
848
853
853
868
873
873
892
894
897
915
920
920
934
937
937
939
957
962
962
981
986
986
1001
1003
1003
1006
1407
1408
1409
5
7
8
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
11
11
12
12
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
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
21
21
21
21
21
21
21
21
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
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
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
32
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
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
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
44
45
45
45
45
45
45
45
45
45
48
49
49
49
50
50
54
54
54
54
54
56
59
59
60
60
69
72
74
75
75
76
76
76
76
76
76
77
78
79
79
83
83
86
87
89
89
90
90
90
91
91
92
92
92
94
95
97
97
97
98
103
103
105
105
106
106
108
110
111
111
112
112
112
112
112
112
116
118
120
120
121
121
122
124
125
125
125
125
126
126
127
129
130
131
133
134
143
145
145
146
146
147
147
147
147
147
147
150
150
152
153
157
157
157
158
160
160
161
161
161
162
162
162
162
163
163
163
164
165
166
167
169
173
179
181
182
182
182
183
183
183
183
183
183
187
190
191
192
192
192
192
195
195
196
196
200
200
200
200
201
202
210
210
210
211
214
216
216
216
217
217
218
218
218
218
218
218
218
218
219
219
231
231
231
231
232
232
232
232
233
233
234
236
236
237
237
237
238
238
239
239
242
246
247
249
250
251
251
252
253
253
254
254
254
254
254
254
254
254
262
266
266
266
267
267
270
271
271
271
271
275
275
275
275
286
288
293
293
295
298
303
303
303
303
304
305
305
308
308
309
309
311
314
316
323
323
323
331
331
332
332
335
337
340
340
341
341
342
342
344
346
346
346
346
352
352
355
355
359
360
360
360
378
379
379
379
381
383
383
384
384
384
388
388
399
402
407
407
408
408
412
412
413
413
416
417
417
417
417
418
418
421
424
426
436
436
436
444
444
444
444
445
445
449
449
449
449
449
450
454
454
455
455
457
465
465
468
473
473
483
487
487
488
488
488
490
492
492
492
492
493
506
508
508
511
511
527
532
532
545
550
550
568
571
573
592
597
597
607
607
612
617
617
636
638
641
659
664
664
678
681
683
701
706
706
725
730
730
745
747
750
763
765
765
768
768
784
789
789
802
807
807
825
828
830
849
854
854
869
874
874
893
895
898
916
921
921
935
938
940
958
963
963
982
987
987
1002
1004
1007
1408
1409
1410
7
9
9
10
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
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
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
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
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
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
32
33
33
33
33
33
33
33
33
33
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
38
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
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
45
45
45
45
45
45
45
45
46
50
50
51
51
55
55
55
55
55
57
58
59
59
60
60
69
73
73
74
74
76
76
77
77
77
77
77
79
84
84
87
88
91
91
91
91
92
92
93
93
93
94
94
95
98
98
99
104
104
107
107
109
109
110
110
112
112
113
113
113
113
117
121
121
122
122
123
125
126
126
126
126
127
127
127
127
128
129
129
130
130
131
134
135
143
144
144
145
145
146
147
147
148
148
148
148
151
151
153
153
158
158
158
159
160
162
162
162
162
163
163
164
164
164
165
165
165
166
168
170
180
180
181
181
182
183
183
184
184
184
184
188
190
192
193
193
196
196
197
197
200
201
201
201
201
201
201
202
211
211
212
215
215
216
216
217
217
218
218
219
219
219
219
220
220
232
233
233
233
233
233
234
234
235
236
236
237
237
238
238
239
239
240
240
240
240
242
247
248
250
251
251
252
252
254
254
255
255
255
255
255
255
256
263
266
267
267
268
268
271
272
272
272
272
273
276
276
289
294
294
295
299
303
304
304
304
305
309
309
310
310
312
315
317
324
324
333
333
336
338
341
341
342
342
343
343
347
347
347
347
353
353
353
353
355
356
360
361
361
361
369
379
379
380
380
382
384
384
385
385
385
386
403
408
408
408
409
413
413
414
414
416
418
418
418
418
422
425
427
437
437
445
445
446
446
450
450
450
450
450
451
455
455
456
456
466
466
466
466
469
474
474
484
488
488
489
489
489
491
493
493
493
493
494
507
512
512
528
533
533
546
551
551
569
572
574
593
598
598
613
618
618
637
639
642
660
665
665
679
682
684
702
707
707
726
731
731
746
748
751
764
769
769
785
790
790
803
808
808
826
829
831
850
855
855
870
875
875
894
896
899
917
922
922
936
939
941
959
964
964
983
988
988
1003
1005
1008
1409
1410
1411
10
10
11
11
11
12
12
12
13
13
13
13
14
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
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
19
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
21
21
21
21
25
25
25
26
26
26
26
26
26
26
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
30
30
30
30
30
30
30
30
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
33
34
34
34
34
34
34
34
34
34
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
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
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
42
42
42
42
42
42
42
42
42
42
42
43
43
44
46
47
51
51
52
52
56
56
56
56
56
58
58
59
59
59
59
60
60
60
60
60
60
61
61
73
75
75
75
75
77
78
80
85
85
88
88
89
92
92
93
93
94
94
94
94
94
94
95
95
95
95
97
98
98
98
98
99
100
105
105
105
106
106
106
108
108
111
111
111
111
118
118
118
122
122
123
123
124
125
126
126
127
127
127
127
127
127
128
128
129
129
130
130
130
130
131
131
131
131
133
135
136
144
144
144
144
146
146
146
146
147
152
152
154
157
159
159
159
160
163
163
164
164
165
165
165
165
165
165
166
166
166
166
166
169
171
173
173
182
182
182
182
186
189
190
191
193
194
194
197
197
198
198
201
201
201
201
201
202
202
202
202
202
202
202
202
210
211
211
211
211
212
213
217
217
217
217
218
218
218
219
219
219
221
221
231
231
233
234
234
234
235
235
236
236
236
236
237
237
237
237
238
238
239
239
240
240
240
240
241
241
246
248
249
251
253
253
253
253
256
256
257
257
257
257
264
268
268
269
269
270
272
273
273
273
273
277
277
286
286
290
295
295
299
300
303
304
305
305
305
306
310
310
311
311
313
314
316
316
318
318
323
324
324
324
324
325
331
332
332
332
334
334
337
339
342
342
343
343
344
344
344
344
348
348
348
348
351
353
353
354
354
357
359
361
362
362
362
370
370
370
370
380
381
381
383
383
383
385
385
386
386
386
386
399
399
404
409
409
410
412
414
414
415
415
416
417
419
419
419
419
423
426
427
428
436
437
437
437
437
438
444
445
445
445
446
446
447
447
451
451
451
451
451
452
456
456
457
457
457
457
464
466
466
467
467
470
475
475
485
489
489
490
490
490
492
494
494
494
494
495
508
513
513
529
534
534
547
552
552
570
573
573
575
575
594
599
599
614
619
619
638
640
640
643
643
661
666
666
680
683
685
703
708
708
727
732
732
747
749
752
765
770
770
786
791
791
804
809
809
827
830
830
832
832
851
856
856
871
876
876
895
897
897
900
900
918
923
923
937
940
942
960
965
965
984
989
989
1004
1006
1009
1410
1411
1412
5
9
9
9
11
11
11
11
11
13
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
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
19
19
19
19
19
19
19
19
19
19
19
19
20
21
21
21
21
21
21
21
21
21
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
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
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
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
34
35
35
35
35
35
35
35
35
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
40
40
40
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
42
42
42
44
44
45
46
46
46
47
48
52
52
53
53
57
57
57
57
57
58
60
60
61
61
61
61
62
62
73
75
75
75
78
79
81
86
86
89
89
89
89
89
90
92
94
94
95
95
95
95
96
96
99
99
100
101
105
105
105
106
106
106
107
107
107
111
111
111
116
119
119
119
123
123
124
124
125
128
128
128
128
128
129
129
129
130
130
131
131
132
132
134
136
136
145
145
146
146
146
148
153
153
155
157
158
160
160
160
160
160
161
163
165
165
166
166
166
166
167
167
167
170
171
172
174
174
182
182
182
186
190
191
192
194
195
195
198
198
199
199
202
202
202
202
202
202
203
203
203
203
203
203
212
212
213
214
217
217
217
218
218
218
219
219
219
220
220
220
229
232
232
234
234
235
236
236
237
237
238
238
239
240
240
241
241
241
242
242
242
247
249
249
252
253
253
253
257
257
258
258
265
269
269
270
270
270
271
273
273
273
274
274
274
274
278
278
284
287
287
291
296
296
299
301
304
305
306
306
306
307
311
311
312
312
314
315
315
315
315
319
319
325
325
326
331
331
331
332
333
333
333
338
340
342
343
343
344
344
345
345
345
345
349
349
349
349
354
355
355
355
358
360
362
362
363
363
371
371
381
382
382
383
384
386
386
386
386
387
387
387
387
397
400
400
405
410
410
411
412
415
415
416
416
417
418
420
420
420
420
424
427
428
428
428
428
429
438
438
439
444
444
444
445
446
446
446
447
447
452
452
452
452
452
453
455
457
457
458
458
458
458
467
468
468
471
476
476
486
490
490
491
491
491
493
495
495
495
495
496
509
514
514
530
535
535
548
553
553
571
576
576
595
600
600
615
620
620
639
644
644
662
667
667
681
684
686
704
709
709
728
733
733
748
750
753
766
771
771
787
792
792
805
810
810
828
833
833
852
857
857
872
877
877
896
901
901
919
924
924
938
941
943
961
966
966
985
990
990
1005
1007
1010
1411
1412
1413
1
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
13
13
13
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
20
21
21
21
21
22
22
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
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
30
30
30
30
30
30
34
34
34
34
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
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
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
45
45
46
46
47
48
49
53
53
54
54
58
58
58
58
58
59
59
60
61
63
63
73
75
76
76
77
77
77
77
77
77
77
79
80
82
87
87
90
90
90
91
91
92
95
95
95
96
96
96
98
98
100
100
102
107
107
108
108
108
109
111
112
112
113
113
113
113
113
113
117
117
120
124
124
125
125
126
127
127
129
129
129
129
129
131
131
131
132
133
135
144
145
146
147
147
148
148
148
148
148
148
149
154
154
156
157
161
161
161
161
161
162
162
163
166
166
166
167
167
167
168
171
172
172
173
180
182
183
183
184
184
184
184
184
184
190
191
192
193
195
196
196
199
199
200
200
202
203
203
203
204
204
204
204
211
211
213
213
215
215
217
218
218
219
219
219
219
219
219
220
220
220
221
221
221
230
230
233
234
235
236
237
237
237
238
240
240
240
241
241
242
242
242
246
248
251
253
253
254
254
255
255
255
255
255
255
258
258
258
266
270
270
270
271
271
274
274
274
275
275
275
275
279
279
285
285
292
297
297
302
303
305
306
307
307
307
308
312
312
313
313
315
316
316
320
320
324
324
326
326
333
334
334
334
339
341
343
343
344
344
345
345
346
346
350
350
350
350
353
353
355
359
359
361
364
371
382
383
383
383
387
387
387
387
388
388
388
388
398
398
406
411
411
412
416
416
416
417
417
418
419
421
421
421
421
425
428
429
429
430
437
437
439
439
446
447
447
447
448
448
453
453
453
453
453
454
456
456
458
458
459
459
466
466
468
472
477
477
487
491
491
492
492
492
494
496
496
496
496
497
510
515
515
531
536
536
549
554
554
572
577
577
596
601
601
616
621
640
645
645
663
668
668
682
685
687
705
710
710
729
734
734
749
751
754
767
772
772
788
793
793
806
811
811
829
834
834
853
858
858
873
878
897
902
902
920
925
925
939
942
944
962
967
967
986
991
991
1006
1008
1011
1412
1413
1414
1
1
2
9
9
11
11
11
11
11
11
11
11
11
11
11
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
15
15
15
15
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
19
19
19
19
19
20
21
21
22
23
23
25
25
25
26
26
26
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
29
30
30
30
30
30
30
31
31
31
31
31
31
33
33
33
34
34
34
34
35
35
35
35
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
39
39
39
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
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
46
46
46
47
47
48
49
49
50
54
54
55
55
59
59
59
59
59
60
60
60
61
61
61
64
64
67
73
74
74
75
75
77
77
78
78
78
78
78
80
80
83
88
88
90
91
92
92
92
92
92
94
95
95
96
96
96
97
97
99
103
106
108
108
109
109
110
110
111
111
113
113
114
114
114
114
121
125
125
126
126
127
128
130
130
130
130
131
131
131
132
132
132
132
132
134
134
136
136
145
145
145
146
146
148
148
149
149
149
149
150
155
155
157
158
160
162
162
162
162
162
162
163
163
163
163
163
165
166
166
167
167
167
168
168
169
172
174
180
181
181
182
182
184
184
185
185
185
185
186
191
192
193
193
196
197
197
200
200
201
201
202
202
202
203
203
203
203
205
205
205
205
212
216
216
216
217
217
219
219
219
220
220
220
220
221
221
221
222
222
234
234
234
234
236
236
237
237
237
238
238
238
241
241
242
242
243
243
247
247
249
249
252
252
253
253
254
255
255
256
256
256
256
258
259
259
267
271
271
271
272
272
273
275
275
275
275
276
276
276
276
280
280
293
293
298
299
303
304
306
306
308
308
308
309
313
313
314
314
316
316
321
321
325
332
334
335
335
340
342
345
345
346
346
347
347
351
351
351
351
354
360
360
360
362
362
365
371
383
384
384
384
386
388
388
388
388
388
389
389
389
389
406
407
412
412
412
413
417
417
417
418
418
419
419
422
422
422
422
426
429
429
431
438
445
447
448
448
449
449
454
454
454
454
454
455
459
459
460
460
467
473
478
478
488
492
492
493
493
493
495
497
497
497
497
498
511
516
516
532
537
537
550
555
573
578
578
597
602
602
617
622
641
646
646
664
669
669
683
686
688
706
711
711
730
735
735
750
752
755
768
773
773
789
794
794
807
812
830
835
835
854
859
859
874
879
898
903
903
921
926
926
940
943
945
963
968
968
987
992
992
1007
1009
1012
1413
1414
1415
2
3
10
10
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
13
13
13
13
13
13
13
13
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
20
21
22
22
23
24
24
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
38
38
38
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
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
42
43
43
43
44
47
47
48
48
51
55
55
56
56
60
60
60
60
60
61
61
61
62
62
65
65
68
76
76
76
76
77
79
84
89
89
90
92
93
93
93
95
95
95
95
96
96
96
96
97
98
98
100
104
106
106
107
107
109
112
112
112
112
119
122
126
126
127
127
127
127
128
129
131
131
131
131
132
132
133
133
133
133
134
136
137
137
147
147
147
147
151
152
156
156
158
160
161
163
163
163
164
164
164
166
166
166
166
167
167
167
167
168
168
169
169
170
173
174
175
181
183
183
183
183
190
192
193
197
198
198
201
201
202
202
203
203
203
204
204
206
206
206
206
211
213
217
218
218
218
218
220
220
222
222
232
235
235
237
237
237
237
237
238
238
238
238
238
239
239
240
240
242
242
243
244
247
249
250
250
254
254
254
254
255
260
260
265
268
272
272
273
273
273
274
276
277
277
277
277
281
281
287
294
294
297
297
299
303
304
305
309
309
309
310
314
314
315
315
316
317
322
322
324
326
333
333
341
343
345
346
346
347
347
348
348
352
352
352
352
353
353
355
360
361
362
363
363
363
363
366
378
384
385
385
386
387
389
390
390
390
400
407
408
413
413
414
416
418
418
418
419
419
423
423
423
423
427
429
430
432
437
439
446
446
450
450
455
455
455
455
455
456
458
460
460
461
461
466
466
468
474
479
479
489
493
493
494
494
494
496
498
498
498
498
499
512
517
517
533
538
538
551
554
554
556
574
579
579
598
603
603
618
620
620
623
642
647
647
665
670
670
684
687
689
707
712
712
731
736
736
751
753
756
769
774
774
790
795
795
808
811
811
813
831
836
836
855
860
860
875
877
877
880
899
904
904
922
927
927
941
944
946
964
969
969
988
993
993
1008
1010
1013
1414
1415
1416
3
4
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
11
11
11
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
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
21
22
23
23
24
25
25
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
27
28
28
28
29
29
29
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
35
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
38
38
38
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
40
40
41
41
41
41
41
41
41
41
41
41
41
41
42
43
43
43
43
43
43
43
43
45
45
47
48
49
49
49
52
56
56
57
57
59
60
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
63
66
66
69
69
76
76
76
78
78
80
80
85
90
90
93
93
94
96
96
96
96
97
97
97
97
98
98
98
99
99
105
107
110
112
112
112
119
123
127
127
127
127
128
128
128
128
129
130
131
132
132
132
132
132
132
132
132
133
133
133
133
133
134
134
134
134
136
137
138
138
147
147
147
152
153
153
153
157
157
159
161
161
162
162
164
164
164
164
165
167
167
168
168
169
169
170
170
174
174
176
182
182
183
183
183
191
191
193
193
194
198
199
199
201
202
202
202
203
203
203
203
203
203
204
204
204
204
204
205
207
207
207
207
211
211
212
218
218
218
218
223
223
232
235
238
238
239
239
239
240
240
240
240
241
241
242
242
243
243
243
244
245
247
249
250
251
251
254
254
254
256
261
261
266
266
266
269
273
273
274
274
274
274
275
275
277
278
278
278
278
282
282
287
295
295
295
298
300
304
304
305
306
306
310
310
310
311
315
315
316
316
318
323
323
324
324
325
342
344
345
347
347
348
348
349
349
353
353
353
353
353
353
354
354
360
362
362
363
364
364
364
367
379
379
379
385
386
386
387
387
388
388
388
388
389
389
390
391
391
391
400
408
408
409
414
414
415
417
417
419
419
419
419
420
420
424
424
424
424
431
433
437
437
438
451
451
456
456
456
456
456
457
458
461
461
462
462
466
466
467
467
475
480
480
490
494
494
495
495
497
499
499
499
499
500
513
518
518
534
539
539
552
555
557
575
580
580
599
604
604
606
619
621
624
643
648
648
666
671
671
688
690
708
713
713
732
737
737
754
757
770
775
775
791
796
796
809
812
814
832
837
837
856
861
861
876
878
881
900
905
905
923
928
928
945
947
965
970
970
989
994
994
1011
1014
1415
1416
1417
3
4
4
5
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
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
15
15
15
15
15
15
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
19
19
19
19
19
20
22
22
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
26
26
28
28
28
28
28
28
28
28
28
29
29
29
31
31
31
31
31
31
31
31
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
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
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
37
37
37
37
39
40
40
40
40
40
40
40
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
43
43
43
43
44
48
49
50
50
53
57
57
58
58
60
61
62
62
62
62
62
62
62
63
63
63
64
67
67
70
70
70
70
74
76
77
77
78
78
78
80
81
81
86
91
91
92
93
94
95
96
97
97
97
98
98
99
99
100
100
106
108
109
110
111
112
113
113
114
114
124
128
128
129
129
129
129
130
131
132
133
133
133
133
133
133
134
134
134
134
134
135
135
135
137
138
144
145
147
148
148
149
149
153
154
154
158
158
160
163
163
163
164
165
165
165
166
167
168
170
170
171
171
175
177
181
183
183
183
183
183
184
184
185
185
191
193
194
194
195
199
200
200
202
203
203
203
204
204
204
204
205
205
205
206
208
208
208
208
210
211
212
213
216
218
219
219
219
220
220
222
224
224
234
235
238
239
240
241
241
242
242
243
244
244
245
246
247
247
250
251
252
254
255
255
256
256
257
257
262
262
267
267
270
274
274
275
275
276
276
278
279
279
279
279
283
283
296
296
296
296
296
299
301
304
306
306
307
307
311
311
311
312
316
316
317
317
319
323
324
324
324
325
326
335
343
345
348
348
349
349
350
350
354
354
354
354
355
355
360
360
363
363
364
365
368
370
380
380
386
387
387
389
389
389
390
391
392
392
392
409
409
409
409
410
415
415
416
417
419
420
420
420
420
421
421
425
425
425
425
432
434
436
437
438
439
448
452
452
457
457
457
457
457
458
462
462
463
463
468
468
476
481
481
491
495
495
496
496
498
500
500
500
500
501
514
519
519
535
540
540
553
556
558
576
581
581
600
605
605
607
607
607
620
622
625
644
649
649
667
672
672
689
691
709
714
714
733
738
738
755
758
771
776
776
792
797
797
810
813
815
833
838
838
857
862
862
877
879
882
901
906
906
924
929
929
946
948
966
971
971
990
995
995
1012
1015
1416
1417
1418
5
5
6
9
9
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
15
15
15
15
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
19
19
19
19
19
19
20
20
21
23
23
23
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
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
29
32
32
32
32
32
32
32
32
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
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
40
40
40
40
40
43
43
43
43
43
43
44
45
45
49
49
49
51
51
54
58
58
59
59
61
61
61
61
61
62
62
62
63
63
63
63
63
64
64
68
68
68
70
70
71
71
75
75
78
78
78
78
78
78
78
80
81
82
82
87
92
92
93
93
93
93
95
96
96
96
96
97
97
97
98
98
99
100
100
101
101
107
109
109
111
111
112
114
114
114
114
114
114
125
125
129
129
130
130
130
130
131
132
132
132
133
133
133
134
134
134
134
135
135
135
135
136
136
136
136
136
138
145
145
145
145
146
146
149
149
149
149
149
149
153
154
154
154
154
154
155
159
159
161
161
162
162
162
164
164
164
164
164
164
166
166
166
167
167
167
167
168
168
168
171
171
172
172
174
174
176
178
181
182
182
183
183
184
184
185
185
185
185
185
185
191
193
194
195
195
196
200
201
201
203
203
203
204
204
204
204
204
205
205
205
205
206
206
209
209
211
213
214
217
217
220
220
220
220
220
220
220
222
225
225
235
235
235
235
238
238
238
238
239
239
239
241
242
242
243
243
244
245
245
246
247
248
248
249
249
249
251
253
253
256
256
256
256
256
256
258
258
258
258
258
263
263
266
267
267
267
267
268
271
274
275
275
275
275
275
276
276
277
277
279
280
280
284
284
287
287
294
296
296
297
297
297
300
302
304
306
307
307
308
308
312
312
312
313
317
317
318
318
320
324
325
325
326
327
335
344
346
349
349
350
350
351
351
351
355
355
356
356
361
361
362
362
362
364
364
366
369
371
371
371
371
379
380
380
380
380
381
387
387
388
388
388
388
388
390
390
390
391
392
393
393
393
400
400
407
409
409
410
410
411
416
416
417
417
419
420
421
421
421
421
422
422
426
426
433
435
437
439
440
448
453
453
458
458
458
458
458
459
463
463
464
464
464
469
469
477
482
482
492
496
496
497
497
499
501
501
502
515
520
520
536
541
541
554
557
559
577
582
582
601
606
606
607
608
608
621
623
626
645
650
650
668
673
673
690
692
710
715
715
734
739
739
756
759
772
777
777
793
798
798
811
814
816
834
839
839
858
863
863
878
880
883
902
907
907
925
930
930
947
949
967
972
972
991
996
996
1013
1016
1417
1418
1419
6
7
11
11
11
11
11
11
11
11
11
12
13
13
13
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
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
20
20
20
21
21
24
24
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
28
28
28
28
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
30
30
30
30
30
30
30
33
33
33
33
33
33
33
33
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
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
38
38
38
38
38
38
40
40
40
41
41
43
43
44
44
44
44
44
44
44
44
45
45
45
45
46
49
50
50
50
55
59
59
59
60
60
60
60
61
61
61
62
62
62
62
62
63
63
64
64
64
69
69
71
72
72
76
76
78
78
79
79
79
79
79
79
79
79
81
82
88
93
93
94
94
96
97
97
97
98
98
98
99
99
100
101
101
102
108
110
112
112
113
115
115
115
115
115
115
115
115
126
126
130
130
131
131
131
131
131
132
132
132
132
133
133
133
134
134
135
135
137
137
137
137
137
137
146
146
147
147
150
150
150
150
150
150
150
150
155
155
155
156
160
161
161
161
162
162
163
163
163
165
165
167
167
167
168
168
168
169
169
170
172
172
173
175
175
177
179
183
183
184
185
185
186
186
186
186
186
186
186
186
191
191
194
195
197
201
202
202
202
202
203
203
203
204
204
204
205
205
205
205
206
206
210
210
211
212
214
218
218
221
221
221
221
221
221
221
221
221
226
236
236
237
239
239
239
240
240
241
242
243
243
244
245
246
246
247
248
250
250
250
250
254
254
257
257
257
257
257
257
257
257
259
259
259
264
264
268
268
269
272
274
274
274
275
276
276
276
276
276
277
277
280
281
281
285
285
285
288
288
297
298
298
298
301
303
304
304
307
308
308
313
313
313
314
318
319
321
324
325
326
326
327
345
347
350
350
351
351
352
352
352
356
356
357
363
363
363
363
365
367
370
372
372
381
381
382
387
387
387
388
388
389
389
389
389
389
391
392
393
394
394
394
398
401
401
410
411
411
412
417
417
417
418
420
421
422
422
423
423
427
427
427
434
436
437
438
440
454
454
459
459
459
459
459
460
464
465
465
470
478
483
493
494
497
497
498
498
498
500
502
502
503
516
521
521
537
542
542
555
558
560
578
583
583
602
607
607
608
608
622
624
627
646
651
651
669
674
684
691
693
711
716
716
735
740
751
755
757
760
773
778
778
794
799
799
812
815
817
835
840
840
859
864
864
879
881
884
903
908
908
926
931
941
948
950
968
973
973
992
997
1008
1012
1014
1017
1418
1419
1420
5
5
7
8
9
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
13
13
13
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
16
17
17
17
17
17
17
17
17
17
17
17
17
17
19
19
19
19
20
20
20
20
22
23
23
23
23
23
23
23
25
25
25
25
25
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
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
32
32
32
32
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
36
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
38
38
38
38
38
38
38
38
38
40
40
40
40
41
41
41
41
42
42
42
44
44
44
44
44
45
45
45
45
46
47
50
51
51
51
56
60
60
60
60
61
61
61
61
62
62
62
62
62
62
63
63
64
64
65
65
65
70
70
70
70
72
77
77
77
79
79
79
79
79
79
80
80
80
80
80
80
80
82
89
89
94
94
94
95
96
97
97
97
97
97
98
98
98
98
98
98
98
99
99
100
101
101
101
102
102
103
109
109
109
111
113
113
113
114
115
115
115
115
116
116
116
116
117
126
126
127
130
130
131
131
132
132
132
132
132
133
133
133
133
133
133
133
134
134
135
135
136
136
138
138
138
138
146
148
148
148
150
150
150
150
151
151
151
151
154
154
156
156
156
159
159
161
163
163
164
164
164
165
166
167
168
168
168
168
168
168
168
169
169
169
169
169
169
170
171
171
171
172
172
173
173
173
174
175
178
180
183
183
184
184
184
185
186
186
186
186
187
187
187
187
192
192
193
193
193
195
198
202
202
203
203
203
203
204
204
205
205
206
206
206
206
207
207
208
208
208
208
211
211
211
212
214
214
215
219
219
219
221
221
221
221
222
222
222
222
222
222
222
227
230
236
237
238
239
239
239
239
239
239
240
240
240
240
240
241
242
243
243
243
244
244
245
246
247
247
248
249
251
251
255
255
255
257
257
257
257
258
258
258
258
259
260
265
265
267
267
269
269
273
276
277
277
277
277
277
278
278
279
279
279
279
281
282
282
286
286
286
286
296
296
298
299
302
304
305
305
306
306
306
308
309
314
314
314
315
315
317
317
318
318
319
320
322
324
325
327
327
327
327
328
335
335
343
346
348
351
351
352
352
352
352
353
353
354
354
354
354
356
356
357
357
358
364
364
366
368
371
372
380
380
382
382
389
389
390
390
390
390
390
392
393
394
395
395
395
399
399
409
409
411
413
416
416
418
418
418
419
419
419
419
421
423
423
424
424
425
425
425
425
428
428
428
428
432
435
437
437
438
440
440
441
448
448
455
455
456
460
460
460
460
460
461
463
463
464
464
465
465
465
466
469
469
471
479
484
494
498
498
499
499
499
500
500
500
500
501
503
503
504
517
522
522
538
543
543
556
559
561
579
584
584
603
608
608
623
625
628
647
652
652
670
673
673
675
685
689
692
694
712
717
717
736
741
756
758
761
774
779
779
795
800
800
813
816
818
836
841
841
860
865
865
880
882
885
904
909
909
927
930
930
932
942
946
949
951
969
974
974
993
998
1013
1015
1018
1419
1420
1421
4
4
5
5
8
8
9
9
9
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
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
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
20
20
20
21
21
21
21
21
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
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
30
31
31
31
32
32
32
32
33
33
33
33
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
44
44
45
45
45
46
46
46
46
47
48
49
51
52
52
57
61
61
61
61
62
62
62
62
62
63
63
63
63
64
65
66
66
66
71
71
71
77
77
77
79
79
80
80
81
81
81
81
81
81
81
81
90
90
90
90
94
94
94
95
95
96
97
98
98
99
99
99
100
101
102
102
102
103
103
104
107
110
110
110
112
113
113
113
115
115
115
116
116
117
117
117
117
118
128
131
131
132
132
132
132
133
133
133
133
133
133
134
134
134
134
134
135
136
137
137
138
139
139
146
148
148
148
150
150
151
151
152
152
152
152
155
157
160
162
162
164
164
165
165
165
165
165
167
168
169
169
169
169
169
170
170
170
170
171
172
173
174
175
176
179
181
184
184
184
184
186
186
187
187
188
188
188
188
194
194
194
194
199
203
203
203
203
203
203
204
204
204
204
204
204
205
205
206
207
207
207
208
209
209
212
212
215
215
216
219
219
219
220
221
221
222
222
223
223
223
223
223
223
223
225
225
228
231
236
236
236
238
239
240
240
241
241
241
242
243
244
244
245
246
247
248
248
249
250
251
255
255
255
257
257
258
258
259
259
259
259
259
261
266
266
268
274
275
277
278
278
278
278
279
280
280
282
283
283
287
287
297
300
303
305
307
307
307
307
310
315
315
315
316
316
316
316
318
319
320
321
323
328
328
328
328
329
333
336
336
344
347
349
352
352
353
353
354
355
355
357
357
358
358
359
364
367
369
372
372
381
388
390
391
391
391
393
394
395
396
396
396
410
414
417
419
420
420
420
420
420
424
424
425
426
426
429
429
429
429
429
433
436
438
441
441
442
446
449
449
456
456
457
461
461
461
461
461
462
464
465
466
467
470
470
472
480
482
482
485
495
499
499
500
500
501
501
502
504
504
505
518
523
523
539
544
544
557
560
562
580
585
585
604
609
609
624
626
629
648
653
653
671
674
676
690
693
695
713
718
718
737
739
739
742
757
759
762
775
780
780
796
801
801
814
817
819
837
842
842
861
866
866
881
883
886
905
910
910
928
931
933
947
950
952
970
975
975
994
996
996
999
1014
1016
1019
1420
1421
1422
5
9
9
9
9
10
10
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
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
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
21
21
21
21
21
21
22
22
22
22
22
22
22
23
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
27
27
27
27
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
30
30
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
36
36
36
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
38
38
38
38
38
38
38
38
40
40
41
41
41
41
41
41
43
43
43
43
44
44
44
44
44
44
45
45
46
46
46
48
49
50
50
58
61
62
62
62
62
62
63
63
63
64
64
64
64
64
65
65
65
66
67
67
67
70
70
72
72
72
75
78
78
78
78
79
79
79
79
79
79
80
80
81
81
82
82
91
91
91
95
95
96
96
97
97
97
98
98
98
99
99
100
100
102
103
103
103
104
105
108
108
111
111
113
114
114
114
114
115
115
115
115
115
115
116
116
116
117
117
119
119
129
130
132
132
132
133
133
133
133
134
134
134
135
135
135
135
135
135
136
136
136
137
138
138
138
140
140
146
149
149
149
149
150
150
150
150
150
150
151
151
152
152
154
156
158
161
163
163
163
165
166
166
168
168
168
169
169
169
170
170
170
170
171
171
171
173
174
175
175
176
177
180
182
182
183
183
185
185
185
185
185
186
186
186
186
186
186
187
187
188
188
195
195
200
203
204
204
204
204
204
205
205
205
205
206
206
206
207
207
207
208
208
208
209
210
210
213
213
216
216
217
220
220
220
220
221
221
221
221
221
221
221
221
222
222
223
223
224
226
229
232
232
237
237
239
239
239
240
240
240
241
241
242
242
243
244
245
245
246
248
249
249
250
251
251
253
256
256
256
256
257
257
257
257
257
257
258
258
259
259
262
267
267
267
269
275
276
276
279
279
280
281
281
283
284
284
288
288
288
296
296
298
301
304
306
308
308
311
316
316
317
317
317
319
320
321
322
324
329
329
329
329
334
334
345
345
348
350
353
353
354
354
355
356
356
356
358
358
359
359
364
368
370
373
380
382
389
389
392
394
395
396
397
397
397
401
409
409
411
415
418
420
421
421
421
425
425
426
427
427
430
430
430
430
434
437
439
442
442
447
447
457
457
458
458
462
462
462
462
463
465
466
467
468
469
471
471
481
483
486
496
500
500
501
501
502
502
503
505
505
506
519
524
524
540
545
545
558
561
563
581
586
586
605
610
610
625
627
630
649
654
654
672
675
677
691
694
696
714
719
719
738
740
743
758
760
763
776
781
781
797
802
802
815
818
820
838
843
843
862
867
867
882
884
887
906
911
911
929
932
934
948
951
953
971
976
976
995
997
1000
1015
1017
1020
1421
1422
1423
1
4
6
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
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
23
24
24
24
24
24
24
24
24
24
24
24
25
26
26
26
27
29
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
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
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
35
35
35
35
35
35
36
36
36
36
36
36
36
36
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
41
41
41
42
42
42
42
43
43
44
44
45
45
46
46
47
50
59
61
61
62
63
63
64
64
65
65
65
65
65
66
66
66
67
68
68
68
70
70
71
71
73
73
76
77
77
78
78
79
79
80
80
81
81
82
90
91
91
91
91
92
92
93
95
95
95
95
96
96
96
97
97
97
97
97
98
98
98
99
99
101
103
104
105
106
112
113
113
114
114
114
115
115
116
116
117
117
117
120
120
120
120
130
130
132
132
134
134
135
135
136
136
136
136
136
136
137
137
137
138
139
139
141
141
147
148
148
149
149
150
150
151
151
152
152
154
154
155
159
162
164
164
166
166
166
166
166
167
167
167
168
168
168
169
169
169
169
169
170
170
171
171
172
174
175
175
176
177
178
181
183
183
183
183
184
184
184
184
185
185
186
186
187
187
188
188
195
201
203
204
204
204
204
205
205
206
206
206
207
207
207
207
207
208
208
208
209
209
209
210
211
211
214
214
214
218
219
219
220
220
221
221
222
222
223
223
225
227
230
233
233
233
233
235
237
237
237
237
238
238
238
239
239
239
240
240
240
241
241
243
245
247
249
250
250
251
252
254
255
255
256
256
257
257
258
258
259
259
263
267
267
268
268
268
276
278
278
280
280
281
282
282
284
285
285
288
289
289
296
296
297
297
305
307
308
312
315
315
316
317
317
317
317
317
317
318
318
320
321
322
323
325
327
330
330
346
346
346
346
349
351
353
353
354
354
355
355
356
356
357
357
360
360
371
374
380
380
381
393
395
396
397
398
398
398
401
409
409
410
410
416
419
421
421
422
424
424
426
426
427
428
428
429
430
430
430
430
431
431
431
435
438
440
440
458
458
459
459
459
459
461
461
463
463
463
463
464
466
467
468
469
469
482
484
487
497
499
499
501
501
502
502
503
503
504
506
506
507
520
525
525
541
546
546
562
564
582
587
587
606
611
611
628
631
650
655
655
673
676
678
692
695
697
715
720
720
739
741
744
759
761
764
777
782
782
798
803
803
819
821
839
844
844
863
868
868
885
888
907
912
912
930
933
935
949
952
954
972
977
977
996
998
1001
1016
1018
1021
1422
1423
1424
1
1
5
7
7
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
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
17
17
17
17
17
17
17
17
17
17
17
20
20
20
20
20
20
20
20
20
20
20
20
20
20
24
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
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
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
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
36
36
36
36
36
36
36
36
39
39
39
39
39
39
39
39
39
42
42
42
43
43
43
44
44
44
45
45
46
46
47
47
48
51
52
60
62
64
64
65
66
66
66
66
67
67
69
69
69
72
72
74
74
77
77
78
79
79
79
80
80
81
81
82
82
82
92
92
93
93
94
96
96
97
97
97
97
98
98
98
98
98
98
99
99
100
100
104
105
106
107
110
113
113
114
115
115
115
115
116
116
117
117
118
118
118
118
120
120
121
121
126
130
131
131
133
135
135
136
137
137
137
137
137
138
138
140
140
142
142
148
148
149
150
150
150
151
151
152
152
153
153
153
154
155
156
160
163
165
165
165
167
167
167
168
168
168
169
169
170
170
170
171
171
172
172
173
175
176
177
178
179
182
182
184
184
184
184
185
185
185
186
186
186
187
187
188
188
189
189
195
202
205
205
206
206
207
207
208
208
208
209
209
210
210
211
211
212
212
215
215
219
219
220
221
221
221
222
222
223
223
223
224
224
226
228
231
231
233
233
234
234
236
238
238
239
239
239
239
240
240
241
241
242
242
243
243
244
244
246
248
248
250
251
251
251
252
253
255
255
256
257
257
257
258
258
259
259
260
260
264
266
267
268
269
269
269
277
278
279
281
281
282
283
283
285
286
286
290
290
298
298
306
308
308
313
316
318
318
318
318
319
319
321
322
323
324
324
326
331
331
336
344
346
346
347
347
350
352
352
354
355
355
356
356
356
357
357
358
358
361
361
372
375
379
380
381
382
389
390
391
394
396
397
398
399
399
399
411
411
417
420
421
422
423
425
427
427
428
429
429
431
431
432
432
432
436
437
439
439
441
441
449
457
459
459
459
459
460
460
462
464
464
464
464
465
465
467
468
469
469
470
470
483
485
488
498
500
502
502
503
503
504
504
505
505
507
507
508
508
521
526
526
542
547
547
563
565
583
588
588
607
612
612
629
632
651
656
656
674
677
679
693
696
696
698
698
716
721
721
740
742
745
760
762
762
765
765
778
783
783
799
804
804
820
822
840
845
845
864
869
869
886
889
908
913
913
931
934
936
950
953
953
955
955
973
978
978
997
999
1002
1017
1019
1019
1022
1022
1423
1424
1425
4
5
5
8
9
9
9
9
9
9
9
9
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
13
13
13
13
13
13
13
15
15
15
15
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
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
21
21
21
21
21
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
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
28
28
29
29
29
29
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
33
33
33
33
33
33
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
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
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
48
48
49
52
52
61
61
62
63
66
67
67
68
70
70
70
73
73
75
75
78
78
78
78
78
79
79
79
80
80
80
83
83
91
91
93
93
94
95
95
95
97
97
97
97
98
98
98
98
98
98
99
99
99
99
99
99
100
101
101
101
102
103
105
106
107
108
110
114
114
114
114
114
115
115
115
116
116
116
116
119
119
119
121
122
122
126
131
132
132
132
133
134
137
137
138
138
138
141
141
143
143
149
149
149
149
149
150
150
150
151
151
151
154
154
154
156
157
161
164
165
166
166
166
166
168
168
168
168
168
169
169
169
169
170
170
171
171
172
173
176
177
178
179
180
181
185
185
185
185
185
185
185
186
186
186
186
186
187
187
187
190
190
203
203
204
204
204
206
206
207
208
208
209
211
212
212
213
213
214
214
216
216
220
220
220
220
220
221
221
221
222
222
222
223
225
225
227
229
232
234
235
235
237
237
237
239
239
239
239
239
240
240
240
240
241
241
242
243
244
244
245
245
247
248
249
250
251
252
252
252
253
254
256
256
256
256
256
257
257
257
258
258
258
261
261
265
267
269
270
270
270
278
278
280
283
284
284
286
287
287
291
294
299
299
307
309
314
317
317
317
319
319
319
322
323
324
324
325
325
327
327
327
332
332
336
347
348
348
351
352
353
355
356
356
357
358
358
359
359
362
362
363
373
376
380
382
383
390
391
391
394
395
395
397
398
399
400
400
400
407
412
412
418
421
423
424
426
429
430
430
430
430
432
432
433
433
437
437
438
440
440
442
442
449
460
460
460
461
461
463
465
465
465
465
468
469
470
470
471
471
484
486
489
499
501
504
504
505
505
508
508
509
509
522
527
527
543
548
564
566
584
589
589
608
613
613
630
633
652
657
657
675
678
680
694
699
699
717
722
722
741
743
746
761
766
766
779
784
784
800
805
821
823
841
846
846
865
870
870
887
890
909
914
914
932
935
937
951
956
956
974
979
979
998
1000
1003
1018
1023
1023
1424
1425
1426
5
5
7
8
8
8
8
8
8
8
8
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
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
17
17
17
17
17
17
17
17
21
21
21
21
21
21
21
22
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
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
31
31
31
31
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
34
34
34
34
34
34
34
34
34
34
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
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
41
43
43
43
43
43
43
43
44
44
45
45
45
46
46
47
47
47
47
48
49
49
50
53
61
62
62
62
63
64
64
65
67
68
68
69
71
71
71
74
76
76
76
78
78
78
78
79
80
81
81
82
82
82
82
84
84
92
94
94
95
95
96
96
97
98
98
98
99
99
100
100
100
100
101
101
101
102
102
102
103
104
106
106
107
107
108
108
109
109
111
112
114
114
114
114
115
115
116
117
117
117
118
118
118
118
120
120
120
120
120
122
130
132
132
133
133
133
133
134
135
135
136
138
138
138
138
138
139
139
139
142
142
144
144
145
147
149
149
149
149
150
151
152
152
153
153
153
153
154
155
155
155
157
162
165
165
165
166
167
167
167
168
169
169
169
170
170
171
171
171
172
172
172
172
173
174
177
178
179
180
181
182
183
185
185
185
185
186
186
186
187
187
188
188
189
189
189
189
191
191
203
204
204
204
205
205
206
207
208
209
209
210
211
213
214
214
215
215
217
217
218
220
220
220
220
221
222
223
223
224
224
224
224
226
226
228
230
233
233
233
235
236
236
237
238
238
239
240
240
241
241
242
242
242
243
243
243
243
244
245
246
248
249
250
251
251
251
251
252
252
253
253
253
253
254
254
254
255
255
256
256
256
256
257
258
258
259
259
260
260
260
260
262
262
266
267
268
270
271
271
279
281
284
285
285
287
288
288
290
290
292
295
300
301
308
310
315
318
318
320
323
324
324
325
326
328
328
328
333
333
346
346
348
352
354
356
356
357
358
359
359
360
360
363
363
364
364
364
364
368
371
372
374
377
380
381
383
395
396
396
398
398
399
399
400
400
401
401
401
401
408
413
419
422
424
425
427
430
431
431
431
434
434
437
438
441
441
443
443
459
459
461
461
461
464
466
466
466
469
469
470
471
471
472
472
485
487
490
500
502
505
505
506
506
509
509
510
510
523
528
528
544
547
547
549
558
565
567
585
590
590
607
609
614
625
629
631
634
653
658
658
676
679
681
695
700
700
718
723
723
742
744
747
762
767
767
780
785
785
801
804
804
806
815
822
824
842
847
847
866
871
882
886
888
891
910
915
915
933
936
938
952
957
957
975
980
980
999
1001
1004
1019
1024
1024
1425
1426
1427
5
5
7
10
11
11
11
11
12
12
12
12
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
15
15
15
15
15
16
16
16
16
17
17
17
17
19
19
19
19
19
19
19
20
20
20
21
21
21
21
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
26
26
26
26
26
26
27
27
27
28
28
28
28
28
28
28
28
28
29
29
30
30
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
32
33
33
33
33
33
33
33
33
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
39
39
39
39
41
43
43
43
43
44
45
45
45
45
46
47
47
48
48
48
48
49
49
50
50
51
52
52
54
60
61
62
62
63
63
64
64
64
65
65
65
65
65
66
68
69
69
69
69
72
72
72
73
73
75
76
77
77
78
80
81
81
82
82
83
83
83
83
85
85
91
93
95
95
96
97
97
99
100
101
101
101
101
101
102
102
102
103
103
103
103
104
105
109
109
110
110
110
110
112
114
116
116
117
118
118
118
119
119
119
119
121
121
121
121
126
131
132
133
133
133
133
134
134
135
135
135
136
136
136
136
136
137
139
139
139
140
140
140
143
143
145
145
146
146
146
147
149
151
152
153
153
154
154
154
154
154
155
156
156
157
157
158
163
165
165
166
166
166
168
168
168
170
171
172
172
172
173
173
173
173
173
174
175
178
179
180
181
182
182
182
183
185
186
186
187
187
187
188
188
189
189
190
190
190
190
192
192
194
203
204
204
204
205
205
206
206
206
206
207
207
207
207
208
209
210
210
211
212
214
214
215
215
216
216
216
218
218
218
220
222
223
223
223
224
224
225
225
225
225
227
227
229
231
234
234
237
237
239
239
239
242
243
243
243
244
244
244
244
245
246
246
249
250
251
252
252
254
254
254
255
255
256
256
256
258
259
259
259
259
260
260
261
261
261
261
263
263
267
267
268
270
270
271
272
272
278
278
280
282
285
286
286
286
288
289
289
291
293
295
295
299
299
301
302
306
307
309
311
316
317
319
319
321
324
325
325
326
327
327
329
329
329
329
334
334
336
336
347
352
353
355
357
357
358
359
359
360
361
361
364
364
365
365
372
372
372
373
375
378
380
381
383
383
384
391
391
396
397
397
399
401
401
402
402
402
402
408
408
412
412
414
420
420
423
425
426
428
430
431
432
432
432
435
435
438
439
440
442
442
442
444
444
449
449
460
462
462
465
465
467
467
467
470
470
471
472
472
472
473
486
488
491
501
503
506
506
507
507
510
510
511
511
524
529
529
545
548
550
559
563
566
568
586
591
591
608
608
608
610
615
630
632
635
654
659
659
677
680
682
696
701
701
719
724
724
743
745
748
763
768
768
781
786
786
802
805
807
816
820
823
825
843
848
848
867
872
887
889
892
911
916
916
934
937
939
953
958
958
976
981
981
1000
1002
1005
1020
1025
1025
1426
1427
1428
5
5
7
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
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
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
18
18
18
18
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
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
24
24
24
26
26
27
27
29
29
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
32
32
32
32
32
32
32
32
32
32
33
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
37
37
39
39
39
39
39
39
39
39
42
43
44
44
45
46
47
49
49
49
49
50
50
52
53
53
55
61
64
64
64
65
65
65
65
65
66
66
66
66
66
66
66
67
67
68
68
69
70
70
73
73
73
74
74
76
77
78
78
78
79
82
82
82
82
82
84
84
84
84
91
91
92
95
95
96
96
97
98
99
99
101
102
102
102
102
103
103
105
106
108
110
110
111
111
111
111
113
114
115
117
118
119
120
120
120
120
120
120
122
122
130
132
135
135
135
136
136
136
136
136
137
137
137
137
137
137
137
138
138
139
139
139
140
141
141
141
144
144
146
146
147
147
148
149
150
153
155
155
155
155
158
158
159
163
166
166
166
166
167
167
167
169
169
172
173
173
173
174
174
174
174
176
179
180
181
182
183
184
185
186
187
187
188
188
189
189
191
191
191
191
195
195
195
195
204
204
205
206
206
207
207
207
207
207
208
208
208
208
208
208
209
209
210
210
211
211
212
214
214
214
215
215
216
216
219
219
219
220
221
221
224
224
224
226
226
226
226
230
232
233
233
235
235
237
237
238
238
240
243
244
244
245
245
245
250
251
252
252
255
255
255
256
256
256
257
257
257
260
260
260
262
262
262
262
268
271
271
272
273
273
276
279
279
281
281
283
285
285
286
287
287
287
289
290
290
292
294
300
300
302
307
308
308
308
308
310
312
317
317
318
318
319
320
322
325
326
327
327
328
328
330
334
335
335
337
337
346
346
348
354
356
356
356
356
356
358
358
359
360
360
361
362
362
365
365
365
373
373
374
376
379
384
384
385
389
392
392
397
398
398
400
402
402
403
403
403
403
413
413
415
421
421
421
421
424
426
427
427
429
430
430
431
431
431
432
433
433
436
436
440
440
441
445
445
447
450
450
459
459
461
463
464
465
466
468
468
468
469
471
471
472
473
474
487
489
492
502
502
504
506
506
507
507
508
508
511
511
512
512
525
530
530
546
549
551
564
567
569
587
592
592
608
609
609
611
613
613
616
631
633
636
655
660
660
681
683
697
702
702
720
725
725
744
746
749
764
769
769
782
787
787
803
806
808
821
824
826
844
849
849
868
870
870
873
888
890
893
912
917
917
938
940
954
959
959
977
982
982
1001
1003
1006
1021
1026
1026
1427
1428
1429
5
5
7
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
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
15
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
17
17
19
19
19
19
19
19
19
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
25
25
25
25
26
26
26
27
28
28
28
29
30
30
30
30
30
30
30
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
31
32
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
34
34
34
34
34
34
34
34
34
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
38
39
39
39
41
42
42
45
45
46
46
46
47
47
47
47
48
51
51
51
53
56
62
62
66
66
66
67
67
67
67
67
67
68
68
69
69
70
71
71
73
74
74
74
75
75
77
77
79
79
80
81
81
82
82
82
82
83
83
83
90
91
92
93
95
96
97
97
98
98
98
98
99
100
102
102
103
103
103
106
107
109
109
111
111
112
112
113
113
116
117
117
118
118
118
118
118
119
120
120
120
121
121
123
131
131
133
133
137
137
137
138
138
138
138
138
138
139
139
139
140
140
141
142
142
142
145
145
146
147
147
147
147
147
147
148
148
148
151
152
152
153
153
153
153
154
159
159
164
164
166
167
168
168
168
169
169
169
170
170
173
174
175
175
175
177
177
178
180
181
182
183
184
184
184
186
187
188
188
188
188
189
189
189
189
189
189
190
196
196
203
204
205
206
207
208
208
208
209
209
209
209
209
210
210
212
212
213
215
215
215
215
216
216
216
217
217
219
219
220
220
222
222
222
223
223
224
224
224
224
225
233
233
233
234
234
236
237
238
239
239
240
240
240
241
244
244
246
246
251
252
252
253
255
255
256
256
257
257
258
258
258
259
259
259
260
260
260
260
260
260
260
260
261
261
269
272
272
274
274
277
277
284
286
286
287
288
288
288
288
290
291
291
293
295
299
301
301
308
309
309
311
313
316
317
318
319
319
320
321
323
323
324
326
327
328
328
328
329
329
329
331
335
335
336
336
346
346
347
347
355
357
357
357
359
359
359
360
361
361
362
363
363
365
366
366
372
373
373
373
373
374
375
377
380
385
385
390
390
398
399
399
401
401
403
403
404
404
404
404
412
414
414
422
422
425
427
429
430
430
431
432
432
432
433
434
434
437
437
441
441
441
442
442
446
446
448
448
459
459
460
460
464
465
466
467
469
469
469
469
470
470
470
472
472
472
473
474
475
490
493
505
507
507
508
508
509
509
512
512
513
513
526
531
531
547
550
552
565
568
570
588
593
593
609
609
612
614
617
632
634
637
656
661
661
682
684
698
703
703
721
726
726
747
750
765
770
770
783
788
788
804
807
809
822
825
827
845
850
850
869
871
874
889
891
894
913
918
918
939
941
955
960
960
978
983
983
1004
1007
1022
1027
1027
1428
1429
1430
5
5
7
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
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
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
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
18
18
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
22
22
22
22
22
22
22
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
26
26
26
26
26
26
26
26
26
26
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
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
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
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
36
36
36
36
36
36
37
37
38
38
38
39
39
43
43
43
43
46
47
47
47
47
48
48
48
48
49
52
54
57
63
63
63
63
65
66
66
66
66
67
67
67
68
68
68
69
69
70
70
71
72
72
72
72
73
75
75
75
75
75
78
78
78
78
80
80
81
82
82
82
82
83
83
83
83
83
84
91
93
94
97
98
98
98
99
99
99
99
100
100
101
101
104
104
104
107
108
112
112
113
113
114
114
114
114
117
118
118
118
118
119
119
119
119
119
120
121
122
122
124
131
133
134
134
136
137
137
137
137
138
138
138
139
139
139
140
140
141
141
142
143
143
143
143
143
146
146
146
146
148
148
148
148
149
149
149
149
149
152
153
153
153
153
154
154
154
154
155
157
168
169
169
169
169
170
170
170
171
171
171
172
176
176
176
176
176
178
178
179
181
181
182
182
183
183
184
184
185
185
185
185
185
186
188
189
189
189
189
190
190
190
190
190
190
191
196
204
206
207
207
208
208
208
208
208
209
209
209
210
210
211
211
213
213
214
216
216
217
217
217
218
218
218
218
220
220
220
220
221
221
221
221
223
224
224
224
224
225
225
225
225
226
234
235
235
237
239
240
240
240
241
241
241
242
242
243
244
246
247
247
252
253
254
256
256
256
256
257
257
258
258
259
259
259
260
260
260
260
261
261
261
261
261
261
262
262
270
270
275
275
285
287
287
288
289
289
289
289
289
289
289
289
291
292
292
292
292
294
296
299
309
309
312
314
317
319
320
322
324
324
325
327
327
328
328
329
329
330
330
330
330
332
337
337
348
348
356
357
358
359
360
360
360
361
362
362
363
364
364
364
364
367
367
367
367
374
374
375
376
378
381
383
399
400
400
402
402
402
402
404
404
405
405
405
405
412
422
426
428
430
431
432
433
433
433
434
435
435
435
435
438
438
438
438
442
443
443
447
447
461
461
465
468
470
470
470
470
470
471
472
473
473
473
473
474
474
475
475
476
476
491
494
506
508
508
509
509
510
510
510
510
513
513
513
513
514
514
527
532
532
548
551
553
566
569
571
589
594
594
613
615
618
633
635
638
657
662
662
683
685
699
704
704
722
727
727
748
751
766
771
771
784
789
789
805
808
810
823
826
828
846
851
851
870
872
875
890
892
895
914
919
919
940
942
956
961
961
979
984
984
1005
1008
1023
1028
1028
1429
1430
1431
5
5
5
7
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
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
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
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
17
17
17
17
17
17
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
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
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
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
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
29
30
30
30
30
30
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
33
33
33
33
33
33
33
33
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
34
34
34
34
34
34
34
37
38
38
39
39
39
40
43
43
43
47
47
47
47
48
48
48
48
49
49
49
49
53
53
55
55
58
58
61
63
63
63
64
64
65
65
65
66
66
66
66
67
67
67
67
67
68
68
68
69
69
71
71
72
73
74
76
76
76
76
76
78
78
81
81
82
82
82
82
83
83
83
83
83
84
84
84
84
91
92
94
97
98
98
99
100
100
100
100
100
100
101
101
101
101
102
102
102
103
103
103
105
105
105
108
109
111
113
113
114
114
114
114
118
118
118
118
118
119
119
119
119
120
120
120
120
120
122
122
123
123
125
125
131
133
134
134
135
135
136
136
136
137
137
137
137
138
138
138
138
138
139
139
139
140
142
142
143
144
147
147
147
147
147
147
149
149
149
149
149
149
153
153
153
153
154
154
154
154
154
155
155
155
155
163
166
168
169
169
170
170
170
171
171
171
171
171
172
172
172
172
172
173
174
176
176
177
177
177
179
179
180
182
184
184
185
185
185
185
186
186
187
189
189
189
189
190
190
190
190
191
191
191
191
191
191
196
204
205
207
207
207
207
208
208
208
208
209
209
209
209
209
209
210
210
210
213
214
214
215
215
216
216
216
217
217
218
218
218
220
220
222
222
222
222
224
224
224
224
224
225
225
225
225
226
226
226
226
231
235
236
236
238
239
240
240
241
242
242
242
242
242
243
243
243
243
244
244
246
247
248
248
253
254
255
256
256
258
258
259
259
260
260
260
260
260
260
260
260
261
261
261
261
262
262
262
262
262
262
267
271
276
276
279
280
284
286
287
288
288
289
289
289
290
290
292
293
293
293
293
295
295
297
299
300
309
310
313
313
315
315
316
317
318
320
323
325
325
326
328
329
329
329
330
330
331
331
331
331
333
337
338
338
344
349
349
355
357
357
359
359
359
360
361
361
361
362
363
363
364
368
368
368
368
373
373
375
375
377
379
379
380
382
382
392
400
400
401
401
402
402
403
403
405
405
406
406
406
406
408
412
413
420
422
426
427
429
430
430
431
432
433
434
434
435
439
439
439
439
441
442
442
442
443
444
444
448
448
450
457
462
462
462
466
469
470
471
471
471
471
472
472
473
474
474
476
476
477
477
492
495
501
505
507
509
509
510
510
514
514
514
514
515
515
528
533
533
549
552
554
567
570
570
572
572
590
595
595
614
616
619
634
636
636
639
639
658
663
663
677
684
686
700
705
705
723
728
728
749
752
767
772
772
785
790
790
806
809
811
824
827
827
829
829
847
852
852
871
873
876
891
893
893
896
896
915
920
920
934
941
943
957
962
962
980
985
985
1006
1009
1024
1029
1029
1430
1431
1432
5
5
5
6
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
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
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
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
19
19
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
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
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
28
28
28
28
28
28
28
28
28
28
29
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
33
33
33
33
33
33
34
34
34
34
34
34
34
34
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
35
35
35
35
35
35
35
35
35
38
39
39
40
40
40
41
43
43
43
44
46
46
48
48
48
48
49
49
50
50
50
50
50
50
53
54
59
59
64
65
65
67
68
68
68
68
68
69
69
69
69
70
72
72
73
74
75
77
77
77
77
77
81
81
82
82
83
83
83
83
84
84
85
85
85
85
85
85
91
92
94
94
95
95
100
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
103
103
103
103
104
104
104
106
109
110
111
114
114
115
115
117
117
119
119
119
119
119
120
120
121
121
121
121
121
121
121
124
126
126
131
131
134
135
138
138
139
139
139
139
139
140
140
140
141
143
143
144
145
148
148
148
148
148
150
150
152
152
154
154
154
154
154
155
155
155
156
156
156
156
156
156
157
157
164
166
166
168
171
171
171
172
172
172
172
172
173
173
173
173
173
173
173
174
174
175
177
178
178
178
180
180
181
182
185
185
186
186
187
187
188
188
188
190
190
190
190
191
191
192
192
192
192
192
192
192
192
204
205
207
207
208
209
210
210
210
210
210
211
211
211
214
215
215
215
215
215
216
216
217
217
217
218
218
219
223
223
223
223
223
223
224
225
225
225
225
226
226
227
227
227
227
227
227
230
232
234
236
237
237
239
242
243
243
243
243
243
244
244
244
244
244
244
244
244
245
245
247
248
251
254
255
256
259
259
259
259
260
260
261
261
261
261
261
261
261
262
262
263
263
263
263
263
263
267
268
270
270
272
277
277
279
285
287
289
289
290
290
291
291
293
294
294
294
294
295
296
298
300
301
311
316
316
317
317
318
320
320
321
321
324
326
326
327
328
328
328
329
330
330
330
331
331
332
332
334
337
339
339
345
350
357
357
358
360
360
360
361
362
363
364
364
364
365
369
369
369
369
374
378
380
381
383
383
383
383
392
401
402
402
403
404
404
406
406
407
407
407
407
408
413
414
421
425
428
430
430
431
431
433
433
433
434
435
435
436
440
440
440
440
441
441
441
442
443
443
443
444
449
449
450
458
463
463
467
467
470
470
470
472
472
472
472
473
473
474
477
477
478
478
487
491
493
496
506
508
510
510
511
511
515
515
515
515
516
516
529
534
534
550
553
555
568
573
573
591
596
596
615
617
620
635
640
640
659
664
664
678
682
685
687
701
706
706
724
729
729
744
748
750
753
768
773
773
786
791
791
807
810
812
825
830
830
848
853
853
872
874
877
892
897
897
916
921
921
935
939
942
944
958
963
963
981
986
986
1001
1005
1007
1010
1025
1030
1030
1431
1432
1433
5
5
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
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
15
15
15
16
16
16
16
19
19
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
31
31
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
33
33
33
33
34
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
36
36
36
39
40
40
41
41
41
42
42
42
43
44
45
46
47
47
48
48
50
50
50
50
50
50
51
51
51
51
55
60
60
63
63
65
66
67
68
69
69
69
69
70
70
71
71
73
73
73
74
74
75
76
77
77
78
78
78
78
78
81
82
82
83
83
83
83
85
85
85
85
85
85
86
86
86
86
95
95
95
96
96
98
102
102
102
102
103
103
103
103
103
104
104
104
104
105
105
105
107
110
111
113
113
115
115
116
116
117
118
118
119
119
119
119
121
121
121
121
121
121
122
122
122
122
122
123
123
125
127
127
132
132
133
133
133
135
137
138
139
139
139
139
139
140
140
140
140
141
141
142
142
144
144
145
145
146
147
148
148
149
149
149
149
149
151
151
152
153
153
154
154
154
156
156
156
156
156
156
157
157
157
157
158
158
166
167
169
169
172
173
173
173
174
174
174
174
174
174
175
175
176
176
176
178
179
179
181
181
181
182
184
184
186
186
186
187
187
188
188
188
189
189
189
190
190
192
192
192
192
192
192
193
193
193
193
193
193
208
208
208
209
209
210
211
211
211
211
212
212
215
216
216
217
217
217
218
218
218
219
219
219
219
220
220
223
224
224
224
224
224
224
225
225
227
227
227
227
227
227
228
228
228
228
232
232
235
236
236
237
237
238
238
240
240
244
244
244
245
245
245
245
245
245
245
246
246
246
246
246
248
252
252
252
252
255
255
255
256
257
259
260
260
260
260
260
261
261
261
261
262
262
262
263
263
263
263
263
263
264
264
264
264
267
271
271
273
278
278
286
288
288
289
289
290
290
291
291
291
294
295
295
295
295
297
299
299
301
302
312
317
317
321
321
322
322
325
325
327
327
327
328
330
331
331
331
332
332
333
333
335
340
340
345
345
349
349
351
358
358
359
359
359
359
361
361
361
363
363
364
365
365
365
365
365
365
366
366
370
370
370
370
373
375
379
380
384
384
384
384
402
402
402
403
403
404
407
407
408
408
408
408
412
414
415
426
429
431
432
434
434
434
434
435
436
436
437
437
441
441
441
441
443
444
444
444
445
450
450
458
458
462
462
464
468
468
471
471
471
471
472
472
472
473
473
473
473
473
474
474
478
478
479
479
492
494
497
507
509
509
511
511
512
512
512
516
516
516
516
517
517
530
535
535
551
554
556
569
574
574
592
597
597
616
618
621
636
641
641
660
665
665
683
686
688
702
707
707
725
730
730
749
751
754
769
774
774
787
792
792
808
811
813
826
831
831
849
854
854
873
875
878
893
898
898
917
922
922
940
943
945
959
964
964
982
987
987
1006
1008
1011
1026
1031
1031
1432
1433
1434
1
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
18
18
18
18
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
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
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
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
24
24
24
24
24
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
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
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
40
41
41
42
42
42
43
43
44
45
46
46
46
46
47
48
48
48
48
50
50
51
51
52
52
52
52
53
53
56
61
61
64
67
67
68
68
69
70
74
74
74
75
75
76
76
77
79
79
79
79
79
81
81
82
83
83
83
83
84
84
85
85
86
86
87
87
87
87
95
96
96
96
98
98
98
99
101
102
102
102
102
103
103
103
103
103
104
104
105
105
105
105
106
106
108
111
112
113
116
116
117
117
117
117
118
119
119
119
119
121
121
122
122
123
123
123
123
123
124
124
126
128
128
134
134
134
134
138
138
139
139
140
140
141
145
145
146
146
147
147
147
148
148
150
150
150
150
152
152
152
152
153
154
154
154
154
155
156
156
157
157
157
158
158
158
158
159
159
159
166
166
166
167
169
169
169
170
170
172
173
173
173
173
173
174
174
174
175
175
175
176
176
177
177
182
182
182
182
183
184
187
187
187
188
188
188
188
189
189
189
189
190
190
190
190
192
192
193
193
194
194
194
194
194
194
209
209
209
209
210
210
212
216
216
217
217
218
219
219
219
220
220
221
221
223
223
224
225
225
225
225
225
225
225
225
227
227
228
228
229
229
229
229
236
237
237
237
238
238
239
240
240
240
241
241
243
244
244
244
244
245
245
245
246
246
247
247
247
247
247
247
253
253
255
256
257
258
259
259
260
260
260
261
261
261
261
261
261
261
262
262
263
263
263
263
264
264
265
265
265
265
268
270
272
272
272
274
279
279
279
279
287
290
291
291
292
292
295
296
296
296
296
298
300
300
302
302
313
318
318
322
322
323
328
328
328
329
329
331
332
332
333
333
334
334
336
341
341
350
350
352
360
360
360
360
360
362
362
365
366
366
366
366
367
367
371
371
371
371
373
373
374
380
381
383
385
385
385
385
385
392
392
403
403
404
404
408
408
408
409
409
409
409
413
415
415
427
430
432
433
435
435
437
437
438
438
442
442
442
442
442
444
445
445
446
451
451
463
463
465
469
469
473
473
473
473
474
474
474
474
474
475
479
479
480
480
493
495
498
508
512
512
513
513
513
517
517
517
517
518
518
531
536
536
555
557
570
575
575
593
598
598
617
619
622
637
642
642
661
666
666
684
687
689
703
708
708
726
731
731
750
752
755
770
775
775
788
793
793
812
814
827
832
832
850
855
855
874
876
879
894
899
899
918
923
923
941
944
946
960
965
965
983
988
988
1007
1009
1012
1027
1032
1032
1433
1434
1435
1
1
1
1
1
5
5
5
5
5
5
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
11
11
11
11
11
11
11
11
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
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
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
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
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
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
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
28
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
31
31
31
31
31
32
32
32
32
32
32
33
33
33
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
37
37
37
37
38
38
38
41
41
42
42
43
43
44
45
47
47
48
48
48
48
48
49
49
49
51
51
51
52
52
54
54
57
62
62
63
63
65
71
73
75
75
75
76
76
80
80
80
80
80
82
82
83
83
83
83
83
84
84
84
85
85
86
86
87
87
94
98
99
99
99
99
100
100
101
101
101
102
102
102
102
103
103
103
103
104
104
104
104
104
104
106
109
112
113
117
117
118
118
118
118
119
119
119
119
119
120
120
120
122
122
123
123
123
124
125
125
129
129
135
135
140
142
146
146
146
147
147
147
148
148
149
151
151
151
151
153
153
153
154
154
154
154
154
155
155
155
157
157
157
158
158
158
164
167
167
169
170
170
170
170
171
171
171
172
172
172
173
173
173
173
174
174
174
174
174
175
175
175
176
176
176
178
178
183
183
183
184
186
188
188
188
189
189
189
189
190
190
190
190
190
190
191
191
191
193
193
194
194
195
195
207
213
217
217
217
218
221
221
222
222
224
224
225
225
225
225
225
226
226
226
226
226
226
226
228
228
229
229
236
237
238
238
239
240
241
241
241
241
242
242
242
243
243
243
244
244
244
244
245
245
245
245
246
246
246
248
248
253
257
258
259
259
260
260
260
261
261
261
261
261
261
262
262
262
262
262
262
263
263
264
264
264
264
265
265
270
271
275
277
280
280
280
280
288
289
289
291
292
292
293
293
297
297
297
297
299
299
301
301
314
319
319
320
324
329
329
329
330
330
330
334
334
335
335
337
342
342
349
351
351
361
361
361
363
363
366
366
367
367
368
368
372
372
372
372
372
373
374
375
381
383
384
386
386
390
393
393
402
402
404
404
405
405
409
409
410
410
410
412
414
428
431
433
433
434
438
438
439
439
443
443
443
443
443
443
447
452
452
462
464
464
470
470
474
474
475
475
475
475
476
480
480
481
481
494
496
499
509
513
513
514
514
514
518
518
518
518
519
519
532
537
537
556
558
571
576
576
594
599
599
618
620
623
638
643
643
662
667
685
688
690
704
709
709
727
732
751
753
756
771
776
776
789
794
794
813
815
828
833
833
851
856
856
875
877
880
895
900
900
919
924
942
945
947
961
966
966
984
989
1008
1010
1013
1028
1033
1033
1434
1435
1436
4
4
4
5
5
5
5
5
6
6
6
6
6
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
11
11
11
11
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
15
15
15
15
15
15
15
15
18
19
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
26
26
26
26
26
26
26
26
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
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
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
36
38
38
38
38
39
39
39
42
42
42
43
43
44
44
45
46
46
47
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
52
52
52
52
58
63
63
63
63
64
64
69
69
69
70
70
70
72
74
74
76
76
76
76
77
77
81
81
81
81
81
82
82
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
86
86
87
87
91
100
100
100
101
101
103
104
104
104
104
105
105
105
107
109
110
113
114
118
118
118
119
119
120
120
120
120
120
120
120
121
121
121
121
121
121
121
121
123
123
123
125
130
130
135
140
140
140
140
141
141
141
143
147
147
147
148
148
149
149
150
152
152
152
152
152
152
153
154
155
155
155
155
155
155
155
156
156
156
156
156
156
156
156
158
158
158
158
159
159
165
165
171
171
171
172
172
172
174
175
175
175
175
175
175
176
176
176
176
176
177
177
177
177
179
184
184
184
185
187
187
189
189
189
189
189
190
190
191
191
191
191
191
191
191
191
192
192
192
192
192
192
192
192
194
194
195
196
196
204
211
211
211
212
212
212
214
218
219
222
222
222
223
223
224
226
226
226
226
226
226
226
227
227
227
227
227
227
227
227
227
227
227
227
229
229
236
238
240
242
242
242
243
243
243
245
246
246
246
246
247
247
247
248
253
258
259
260
260
260
262
262
262
262
262
262
262
262
263
263
263
263
263
263
263
263
263
263
263
264
264
265
265
265
265
271
271
272
272
276
278
278
281
281
289
289
289
290
290
293
293
294
294
298
298
298
298
300
300
300
302
302
302
308
315
317
320
320
325
330
330
330
331
335
335
335
336
336
338
343
343
349
361
364
364
366
367
368
368
369
369
373
373
373
373
373
375
376
382
384
384
385
385
387
387
391
391
402
402
403
403
405
406
406
409
409
410
410
411
411
411
413
413
415
415
421
429
430
432
432
434
434
435
439
439
440
440
444
444
444
444
448
448
453
453
462
471
471
474
476
476
476
476
477
481
481
482
482
495
497
500
510
514
514
515
515
515
519
519
519
519
520
520
533
538
538
557
559
572
577
577
595
600
600
621
624
639
644
644
663
666
666
668
686
689
689
691
691
705
710
710
728
733
752
754
757
772
777
777
790
795
795
814
816
829
834
834
852
857
857
878
881
896
901
901
920
923
923
925
943
946
946
948
948
962
967
967
985
990
1009
1011
1014
1029
1034
1034
1435
1436
1437
1
5
5
5
5
5
6
6
7
7
7
7
7
7
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
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
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
25
25
25
25
25
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
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
30
30
30
30
31
31
31
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
33
34
34
34
34
35
35
36
36
37
39
39
39
40
40
40
41
43
44
44
45
45
46
47
47
47
49
50
51
51
51
51
51
51
51
51
51
51
59
64
64
65
65
67
68
69
70
70
70
71
71
73
74
76
77
77
77
77
78
78
82
82
82
82
82
82
83
83
83
84
85
86
86
86
86
86
86
86
86
86
86
87
87
91
92
94
94
99
100
100
100
102
102
102
103
104
105
105
105
106
106
106
108
110
111
114
115
118
119
119
119
120
120
120
121
122
122
122
122
122
122
122
122
122
122
123
124
126
131
131
135
138
139
140
141
141
141
142
142
144
147
148
148
148
149
149
150
150
153
153
153
153
153
153
155
155
156
157
157
157
157
157
157
157
157
157
157
160
160
170
171
171
171
173
173
173
173
174
175
176
176
176
177
177
178
178
178
178
180
185
185
185
186
187
189
189
190
190
190
190
191
191
191
192
192
193
193
193
193
193
193
193
193
193
193
196
196
196
197
197
204
205
207
207
209
210
211
212
212
212
213
213
215
217
217
219
219
220
223
223
223
224
224
224
226
227
228
228
228
228
228
228
228
228
228
228
228
228
228
228
232
236
237
239
241
241
241
242
242
242
244
244
244
244
244
245
246
247
247
247
248
248
248
259
260
260
260
261
261
262
263
263
264
264
264
264
264
264
264
264
264
264
264
264
265
265
266
266
273
273
277
282
282
290
291
291
294
294
294
295
295
299
299
299
299
300
301
302
303
303
303
309
309
309
316
317
318
320
320
321
321
326
331
331
331
332
332
336
336
336
337
337
339
344
344
345
349
350
361
365
365
368
369
369
370
370
373
374
374
374
374
374
376
383
386
386
388
388
404
404
406
407
407
410
411
411
412
412
412
413
415
416
416
422
422
422
430
430
431
433
433
435
435
436
440
440
441
441
445
445
445
445
445
449
449
454
454
458
462
463
472
472
474
474
474
477
477
477
477
478
482
482
483
483
496
498
498
501
501
511
515
515
516
516
516
520
520
520
520
521
521
534
539
539
551
558
560
573
578
578
596
601
601
622
625
640
645
645
664
667
669
687
692
692
706
711
711
729
731
731
734
753
755
755
758
758
773
778
778
791
796
796
808
815
817
830
835
835
853
858
858
879
882
897
902
902
921
924
926
944
949
949
963
968
968
986
988
988
991
1010
1012
1012
1015
1015
1030
1035
1035
1436
1436
1438
4
6
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
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
13
13
13
13
13
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
16
18
18
18
18
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
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
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
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
24
25
25
25
25
26
26
26
26
27
27
27
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
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
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
35
36
36
36
37
38
38
40
40
40
41
42
42
42
44
45
45
46
46
46
46
46
47
47
47
48
48
50
51
52
52
52
52
54
60
61
65
65
66
66
68
68
69
69
74
74
76
77
78
78
78
78
79
79
82
82
83
83
83
83
83
84
84
85
86
87
87
87
87
88
88
91
95
95
99
99
99
100
101
101
101
103
103
104
104
106
109
111
111
112
115
116
118
118
119
120
120
121
121
121
122
123
123
123
123
124
125
127
132
132
139
139
140
140
145
147
148
149
149
150
150
150
150
151
151
153
153
154
154
154
154
154
156
156
157
158
158
158
158
158
159
159
159
161
161
167
170
170
170
171
172
172
172
174
174
174
174
175
175
179
179
179
179
181
186
186
186
187
187
189
189
189
190
191
191
191
191
192
192
192
193
193
194
194
194
194
197
197
198
198
204
208
208
210
210
211
211
216
218
219
220
221
224
224
224
224
224
224
225
225
227
228
229
229
229
229
229
229
229
229
232
237
238
240
241
241
241
242
243
243
243
245
245
245
245
246
246
260
260
260
260
261
261
262
263
263
263
264
264
265
265
265
265
265
265
266
266
267
267
271
272
272
272
274
274
278
280
283
283
287
291
292
292
295
295
295
296
296
299
300
300
300
300
300
302
302
303
304
304
304
310
310
317
317
321
321
322
322
327
332
332
332
332
333
337
337
337
337
338
338
340
345
345
345
350
351
366
366
369
370
370
371
371
373
374
375
375
375
375
376
376
377
384
384
385
385
385
387
387
389
389
393
400
405
405
407
408
408
411
412
412
413
413
413
413
415
416
417
417
423
423
430
431
434
434
436
436
437
441
441
442
442
445
446
446
446
446
450
450
450
455
455
458
463
464
473
473
475
478
478
478
478
479
483
483
484
484
497
502
502
512
516
516
517
517
517
521
521
521
521
522
522
535
540
540
552
556
559
561
574
579
579
597
602
602
608
623
626
641
646
646
665
668
670
688
693
693
707
712
712
730
732
735
754
759
759
774
779
779
792
797
797
809
813
816
818
831
836
836
854
859
859
880
883
898
903
903
922
925
927
945
950
950
964
969
969
987
989
992
1011
1016
1016
1031
1036
1036
1436
1437
1437
1439
5
5
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
11
11
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
12
13
13
13
13
13
13
13
13
14
14
14
14
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
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
22
22
22
22
22
22
22
22
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
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
27
27
27
27
28
28
28
29
29
29
30
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
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
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
36
37
38
39
40
41
41
41
42
42
42
42
43
45
46
46
46
47
47
47
47
47
48
48
48
49
49
49
51
52
52
54
61
62
66
66
67
74
74
75
77
78
79
79
80
80
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
85
86
87
87
89
89
92
94
96
96
96
101
102
102
102
104
108
110
112
112
112
112
113
116
117
119
119
120
120
120
121
121
122
122
122
123
123
123
125
126
128
133
133
146
150
150
151
151
151
151
152
152
154
154
155
155
155
155
155
155
155
155
157
157
158
158
158
158
158
159
160
160
160
167
172
173
173
173
175
175
180
180
180
182
187
187
187
187
187
188
190
190
190
191
191
191
191
192
192
193
193
193
194
194
194
196
197
197
197
197
198
199
199
205
207
209
209
209
217
219
221
222
225
225
225
225
225
225
225
225
226
226
226
226
226
228
229
229
230
230
230
230
236
238
239
241
243
244
244
244
246
246
261
261
261
262
262
262
262
263
264
264
264
265
265
265
266
266
267
267
268
268
271
271
271
272
273
273
273
279
280
284
284
288
292
293
296
296
297
297
300
300
300
301
301
301
301
303
303
304
305
309
310
310
310
310
311
318
318
320
322
322
322
323
323
328
333
333
333
334
338
338
338
338
338
338
339
339
341
346
346
349
351
352
361
365
367
367
370
371
371
372
372
376
376
376
376
377
377
378
384
384
384
385
385
386
386
386
390
390
393
401
406
408
409
409
412
413
413
413
413
414
414
414
416
417
422
423
423
423
423
424
431
432
433
435
435
435
437
437
438
442
442
443
443
447
447
447
447
451
451
451
451
451
456
456
462
464
465
474
474
476
479
479
479
479
480
484
484
485
485
498
503
503
513
517
517
518
518
518
522
522
522
522
523
523
536
541
541
557
560
562
575
580
580
598
603
603
609
618
622
624
627
642
647
647
666
669
671
689
694
694
708
713
713
731
733
736
755
760
760
775
780
780
793
798
798
814
817
819
832
837
837
855
860
860
875
879
881
884
899
904
904
923
926
928
946
951
951
965
970
970
988
990
993
1012
1017
1017
1032
1037
1037
1438
1438
1440
4
4
4
4
5
5
5
6
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
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
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
16
16
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
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
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
27
28
28
28
28
29
29
29
29
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
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
37
38
39
40
42
42
42
43
44
46
47
47
47
48
48
48
48
48
49
50
50
50
50
51
51
52
52
62
62
62
66
66
67
67
68
70
70
70
71
71
71
75
75
76
76
76
76
78
80
80
81
81
85
85
85
85
85
85
85
85
85
85
85
86
86
86
87
87
90
90
94
95
100
102
103
103
105
105
105
106
106
106
106
106
109
110
111
112
112
113
113
114
117
118
119
121
121
121
121
122
122
122
122
123
123
123
123
124
126
126
129
134
134
134
141
141
141
142
142
142
147
151
151
152
152
152
152
153
156
156
156
156
156
156
156
156
156
157
157
158
158
158
160
161
161
161
171
173
174
174
175
175
176
176
176
176
177
177
177
179
179
181
181
181
183
188
188
188
188
188
189
189
189
189
191
192
192
192
192
193
193
193
193
194
194
194
194
195
198
198
199
200
200
207
208
212
212
212
213
213
213
218
219
219
220
222
223
223
225
225
226
226
226
226
227
227
227
227
227
227
228
228
229
229
231
231
231
231
232
237
239
239
242
242
244
245
245
247
247
247
247
247
247
248
248
248
262
263
263
263
263
263
264
264
264
265
265
265
265
267
267
268
268
269
269
273
274
274
274
280
285
288
288
292
292
293
294
297
297
298
298
301
301
301
302
302
302
302
302
302
302
304
304
306
311
311
312
319
320
321
324
324
329
332
332
334
334
334
335
336
338
338
339
339
339
339
340
340
342
345
347
347
350
352
352
360
366
368
368
371
372
372
373
373
377
377
377
377
378
378
386
386
387
387
387
391
391
401
401
405
405
407
409
410
410
413
414
414
414
414
415
415
415
415
415
415
417
424
424
425
433
433
434
438
438
439
443
443
444
444
445
445
448
448
448
448
449
451
451
452
452
452
457
457
458
463
465
465
473
475
475
477
480
480
480
480
481
485
485
486
486
499
504
504
514
518
518
519
519
519
523
523
523
523
524
524
537
542
558
561
563
576
581
581
599
604
604
609
609
623
625
628
643
648
648
667
670
672
690
695
695
709
714
714
732
734
737
756
761
761
776
781
781
794
799
815
818
820
833
838
838
856
861
861
880
882
885
900
905
905
924
927
929
947
952
952
966
971
971
989
991
994
1013
1018
1018
1033
1038
1038
1439
1439
1441
5
5
5
5
5
5
5
5
5
5
5
5
5
6
7
7
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
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
13
13
13
13
13
13
14
15
15
15
15
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
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
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
28
28
28
28
29
30
30
30
30
30
30
30
30
30
30
30
30
30
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
35
35
35
36
36
38
43
43
43
44
45
46
47
48
48
48
49
49
49
49
50
51
51
52
52
52
52
52
52
52
52
63
67
67
68
68
68
69
69
70
71
71
71
72
72
77
77
77
77
77
81
81
82
82
84
84
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
91
91
95
95
96
96
101
101
103
104
104
105
106
106
106
107
107
107
107
110
112
113
114
114
115
118
119
122
122
123
123
123
123
123
123
123
123
123
123
123
124
124
125
130
135
135
135
135
135
135
139
139
140
141
142
142
142
143
143
148
150
152
152
153
153
154
157
157
157
157
157
157
157
158
158
158
158
158
158
158
158
159
159
161
162
162
172
172
174
175
176
177
177
177
177
178
178
180
180
182
182
182
184
189
189
189
190
190
190
190
190
193
193
194
194
194
194
194
194
194
194
194
194
195
195
196
197
197
199
199
201
201
208
208
209
209
210
211
212
213
213
213
214
214
217
219
220
220
221
223
224
226
227
227
227
227
228
228
228
228
229
229
229
229
229
229
229
229
232
232
232
232
236
238
243
243
243
245
246
247
248
248
248
248
248
248
248
248
248
249
249
252
263
263
264
264
264
265
265
265
265
265
265
265
265
265
268
268
269
269
270
270
272
274
275
275
281
284
284
286
293
293
294
295
298
298
299
299
302
303
303
303
303
303
303
303
303
305
307
310
310
312
312
320
321
321
322
322
325
325
330
330
333
333
335
335
335
336
339
340
340
340
340
341
341
343
348
348
349
351
361
361
361
361
365
367
369
369
372
373
373
374
374
376
378
378
378
378
385
387
387
388
388
392
392
406
406
408
410
411
411
414
415
415
416
416
416
416
416
416
416
423
423
425
425
434
434
434
435
435
439
439
440
443
444
444
445
445
446
446
449
449
449
449
452
453
453
453
458
458
462
464
474
474
474
474
476
476
478
481
481
481
481
482
486
486
487
487
500
505
505
515
519
519
520
520
520
524
524
524
524
525
525
538
541
541
543
559
562
564
577
582
582
600
605
605
609
610
610
624
626
629
644
649
649
668
671
673
691
696
696
710
715
715
733
735
738
757
762
762
777
782
782
795
798
798
800
816
819
821
834
839
839
857
862
862
881
883
886
901
906
906
925
928
930
948
953
953
967
972
972
990
992
995
1014
1019
1019
1034
1039
1039
1440
1440
1442
5
5
6
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
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
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
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
16
16
18
18
18
18
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
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
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
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
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
27
28
29
30
30
30
30
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
36
39
44
44
44
45
46
47
47
48
48
49
49
50
50
51
51
51
53
53
53
53
64
66
68
68
69
69
69
69
70
70
78
78
78
82
82
83
83
85
86
87
87
87
87
87
88
88
88
88
92
97
97
104
104
105
105
105
105
111
112
112
113
114
116
119
120
122
124
124
124
124
124
124
124
124
125
125
126
126
131
136
136
136
136
140
140
140
140
140
141
141
147
149
153
153
154
154
155
157
158
158
158
158
158
159
159
159
159
160
160
160
175
175
176
176
178
179
181
181
183
183
185
190
190
190
191
191
191
193
195
195
195
195
195
195
196
196
197
198
202
202
210
210
211
211
212
212
218
218
220
222
224
225
225
225
227
228
228
228
229
229
230
230
230
230
233
233
233
233
237
237
239
239
244
246
246
247
247
249
249
249
249
253
253
253
260
264
264
265
266
266
266
266
266
269
269
270
270
271
271
273
273
282
285
287
292
294
294
295
299
299
300
300
303
304
304
304
304
304
304
306
306
308
308
311
321
323
323
326
326
331
331
331
336
336
336
337
338
338
340
341
341
342
342
344
349
350
350
352
352
362
362
366
366
366
368
370
370
373
373
374
374
375
375
379
379
379
379
386
386
388
393
393
405
407
407
411
412
412
415
416
416
417
417
417
417
417
424
435
436
436
440
440
441
444
444
445
445
446
446
450
450
450
450
451
451
453
454
459
459
463
463
465
465
475
475
477
477
479
482
482
482
482
483
487
487
488
488
501
506
506
516
520
520
521
521
521
525
525
525
525
526
526
539
542
544
560
563
563
565
565
578
583
583
601
606
610
610
611
625
627
630
645
650
650
669
672
674
692
697
697
711
716
716
734
736
739
758
763
763
778
783
783
796
799
801
817
820
820
822
822
835
840
840
858
863
882
884
887
902
907
907
926
929
931
949
954
954
968
973
973
991
993
996
1015
1020
1020
1035
1040
1040
1441
1441
1443
5
5
5
5
5
5
5
5
5
5
7
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
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
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
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
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
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
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
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
26
26
26
26
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
28
28
28
28
28
28
28
28
28
28
28
29
30
30
30
30
30
31
32
32
32
33
33
33
33
33
33
33
33
36
36
36
37
40
45
45
45
46
47
50
50
50
51
51
51
52
52
52
53
53
65
66
70
70
78
79
83
83
84
84
84
85
86
86
88
88
88
88
88
88
88
93
95
96
96
96
98
98
103
103
103
112
113
114
117
120
121
121
122
124
124
124
125
125
126
126
126
127
127
132
136
137
137
141
141
147
148
150
150
150
154
154
155
155
156
156
157
159
159
159
159
159
159
159
161
165
174
174
174
179
179
184
184
186
191
191
191
191
192
192
193
195
195
196
196
197
197
197
198
199
203
203
208
209
209
209
211
211
221
223
225
226
226
227
228
229
229
230
230
230
230
234
234
234
234
237
239
240
240
245
245
245
245
249
250
250
254
254
260
261
263
263
263
264
265
266
266
266
267
270
270
271
271
272
272
278
283
286
288
292
296
300
300
301
301
304
304
305
305
305
305
309
309
310
312
321
322
322
322
322
324
324
327
327
332
337
337
337
338
339
342
342
343
343
345
350
350
352
353
353
362
367
367
369
371
371
373
374
374
375
375
376
376
376
376
380
380
380
380
389
391
394
394
405
412
413
413
416
417
417
417
418
418
418
423
425
434
435
435
435
436
437
437
441
441
442
446
446
447
447
451
451
451
451
452
455
460
460
463
465
466
466
475
478
478
480
483
483
483
483
484
488
488
489
489
502
507
507
517
521
521
522
522
522
526
526
526
526
527
527
540
543
545
561
566
566
579
584
584
602
607
610
610
611
612
626
628
631
646
651
651
670
673
675
693
698
698
712
717
717
735
737
740
759
764
764
779
784
784
797
800
802
818
823
823
836
841
841
859
864
883
885
888
903
908
908
927
930
932
950
955
955
969
974
974
992
994
997
1016
1021
1021
1036
1041
1041
1442
1442
1444
5
5
5
7
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
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
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
17
17
17
18
18
18
18
18
18
18
18
18
18
18
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
22
22
23
23
23
23
23
23
23
23
23
23
23
23
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
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
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
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
31
31
32
32
33
33
35
35
35
36
36
36
36
37
38
41
46
46
46
47
48
49
51
51
51
51
51
51
52
52
53
53
53
53
53
53
53
53
53
62
66
66
67
71
71
71
72
78
80
84
84
84
84
85
85
85
86
86
86
86
87
87
88
88
89
89
89
89
89
91
91
94
95
95
95
96
97
97
97
101
103
104
104
106
106
106
107
107
107
107
112
112
113
114
115
115
118
118
121
122
122
122
122
122
124
124
124
124
124
124
124
126
126
126
127
127
127
128
128
133
136
138
138
140
141
141
141
141
142
142
143
147
151
151
151
155
155
156
156
157
157
157
157
158
158
159
159
160
160
160
160
160
162
162
166
172
174
175
175
175
177
177
177
178
178
178
179
180
180
185
185
187
191
192
192
192
193
193
193
193
193
195
195
195
195
195
195
197
197
197
197
198
198
198
199
204
204
208
208
208
209
210
210
210
213
214
220
222
224
225
225
226
227
227
228
228
228
228
229
229
230
230
230
230
231
231
235
235
235
235
237
239
240
241
241
243
245
246
246
246
248
248
248
249
249
249
249
251
251
253
254
254
254
254
255
260
264
264
264
264
264
264
266
266
266
266
266
266
266
267
268
271
271
272
272
273
273
275
279
284
287
288
289
292
293
297
301
301
302
302
304
305
306
306
306
306
310
310
310
310
311
321
321
321
322
323
323
323
323
328
328
333
333
338
338
338
338
338
339
340
343
343
344
344
346
348
348
350
351
352
353
354
354
362
366
367
367
367
367
368
370
372
372
372
373
375
375
376
376
377
377
377
377
381
381
381
381
388
390
392
395
395
401
405
406
413
414
417
417
418
418
419
419
419
423
423
424
434
434
434
435
436
436
436
437
442
442
443
446
447
447
448
448
451
451
452
452
452
452
453
456
461
461
463
465
466
467
467
475
479
479
481
484
484
484
484
485
489
489
490
490
503
508
508
518
522
522
523
523
523
527
527
527
527
528
528
541
544
546
562
567
567
580
585
585
603
605
605
608
611
612
627
629
629
632
632
647
652
652
674
676
694
699
699
713
718
718
736
738
741
760
765
765
780
785
785
798
801
803
819
824
824
837
842
842
860
862
862
865
884
886
886
889
889
904
909
909
931
933
951
956
956
970
975
975
993
995
998
1017
1022
1022
1037
1042
1042
1443
1443
1445
5
5
5
6
7
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
11
11
11
11
11
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
15
15
15
15
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
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
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
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
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
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
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
32
32
33
33
34
35
36
36
36
36
37
37
37
38
39
39
42
47
47
47
48
49
49
52
52
52
52
53
53
54
54
54
54
54
54
54
54
62
67
67
68
71
71
71
72
72
72
72
72
81
83
84
85
85
85
86
86
86
87
87
88
88
88
88
88
88
88
88
90
90
90
92
95
97
98
98
98
102
102
104
105
106
107
107
107
107
108
108
112
112
113
113
114
119
119
122
123
123
123
124
124
125
125
125
125
127
127
128
128
134
139
139
142
142
142
142
142
143
143
143
143
148
150
152
152
152
152
156
156
157
157
158
158
159
159
159
159
159
159
159
159
161
161
161
161
161
162
163
167
167
173
173
175
175
176
177
178
178
178
179
179
180
181
181
186
186
188
193
193
193
194
194
194
196
196
196
196
196
197
198
198
198
199
199
199
200
205
205
210
211
211
211
213
213
213
214
214
214
220
225
225
225
226
226
227
228
229
229
230
230
230
230
230
230
230
230
231
231
232
232
236
236
237
237
240
241
244
244
246
247
247
248
249
249
249
250
250
252
252
255
255
256
261
263
265
265
265
265
265
267
267
267
267
267
268
269
272
272
273
274
275
280
280
285
288
288
290
293
294
298
302
302
303
303
306
307
307
307
307
309
310
311
311
311
312
323
324
324
324
324
329
329
333
334
338
338
339
339
339
339
339
340
344
344
345
345
347
349
350
350
352
353
354
368
368
369
371
373
374
376
376
376
377
377
378
378
378
378
378
382
382
388
391
393
393
396
396
401
406
407
414
415
418
419
420
420
422
423
424
425
436
437
437
437
438
443
443
444
446
448
448
449
449
451
451
452
452
453
453
453
453
457
462
462
463
463
466
467
480
482
485
485
485
485
486
490
490
491
491
504
509
509
519
523
523
524
524
524
528
528
529
529
542
545
547
563
568
568
581
586
586
604
606
609
610
610
612
628
633
633
648
653
653
675
677
695
700
700
714
719
719
739
742
761
766
766
781
786
786
799
802
804
820
825
825
838
843
843
861
863
866
885
890
890
905
910
910
932
934
952
957
957
971
976
976
996
999
1018
1023
1023
1038
1043
1043
1444
1444
1446
1
1
5
5
5
5
5
5
5
5
5
5
5
6
7
7
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
11
11
11
11
11
11
11
11
11
11
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
16
16
16
16
18
18
18
18
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
21
21
21
21
21
21
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
24
24
24
24
26
26
26
26
26
26
26
26
28
28
28
28
28
28
28
28
28
28
28
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
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
32
33
33
34
34
34
34
35
35
38
43
48
48
48
49
50
52
52
52
53
53
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
66
68
68
69
69
70
72
72
72
72
73
73
73
73
73
73
82
84
86
86
86
87
87
87
87
89
89
89
89
89
89
89
89
91
91
91
93
96
96
98
99
99
105
105
106
106
114
114
115
120
120
123
123
123
123
124
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
128
128
129
135
140
140
140
141
141
141
143
143
143
143
143
143
144
144
144
144
150
151
153
157
157
158
158
158
160
160
160
160
162
162
162
162
162
164
168
168
168
168
176
176
177
177
179
181
182
182
187
187
189
194
194
194
194
194
194
195
196
196
196
196
196
196
196
196
197
197
197
199
199
199
200
200
200
201
206
206
209
211
211
212
212
212
214
214
214
214
215
215
215
215
226
227
227
228
229
229
231
231
231
231
232
232
233
233
235
235
235
235
237
237
238
238
239
239
239
241
247
247
248
248
248
253
253
254
254
256
256
263
264
265
265
265
267
267
267
267
267
267
267
267
268
268
268
269
270
273
273
274
275
281
281
281
281
286
289
291
292
294
295
299
303
303
304
304
307
308
308
308
308
310
312
312
312
313
322
324
325
325
325
330
330
335
340
340
340
340
340
341
345
345
346
346
348
350
351
351
352
352
352
353
354
367
367
369
369
372
374
376
377
377
377
378
378
379
379
381
381
381
381
383
383
392
394
394
394
394
397
397
405
407
408
415
416
419
420
421
421
423
425
426
435
437
438
438
439
444
444
445
449
449
450
450
453
453
454
454
454
454
458
463
463
464
464
465
465
465
467
481
483
486
486
486
486
487
491
491
492
492
505
510
510
520
524
524
525
525
525
527
527
527
527
529
529
530
530
543
546
548
564
569
569
582
587
587
605
607
610
611
629
634
634
649
654
654
676
678
696
701
701
715
720
720
740
743
762
767
767
782
787
787
800
803
805
821
826
826
839
844
844
862
864
867
886
891
891
906
911
911
933
935
953
958
958
972
977
977
997
1000
1019
1024
1024
1039
1044
1044
1445
1445
1447
1
1
5
5
5
5
5
5
5
5
6
7
7
7
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
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
15
15
15
15
15
15
15
15
15
15
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
19
19
19
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
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
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
33
33
33
33
34
34
35
35
35
39
39
44
49
49
49
49
49
50
51
52
52
52
53
53
53
54
54
55
55
55
55
55
55
55
55
56
56
56
56
56
56
62
67
69
69
69
70
71
72
72
73
73
73
73
74
74
74
74
77
83
84
85
86
87
87
87
87
88
88
89
89
90
90
92
92
92
94
97
97
97
104
104
104
107
107
110
115
115
116
121
121
123
123
123
124
124
124
125
126
126
126
126
126
126
127
127
127
127
127
127
127
127
129
130
135
136
141
141
141
142
142
143
143
144
144
144
144
145
145
151
151
152
152
154
156
157
158
158
158
159
159
160
160
162
162
163
163
163
163
163
165
166
168
168
169
169
175
175
175
175
180
182
182
183
188
188
190
190
194
194
194
195
195
195
195
195
196
197
197
197
197
197
198
198
198
200
200
200
201
201
202
207
207
210
210
212
213
214
214
215
215
215
215
216
216
220
220
222
223
226
227
228
228
228
229
229
230
231
231
233
233
234
234
236
236
238
238
240
240
240
240
246
246
246
248
249
254
254
255
264
264
265
265
265
265
265
266
266
268
268
268
268
269
269
269
270
271
272
272
273
273
274
274
275
275
275
276
279
281
281
282
282
287
288
290
292
293
295
295
300
303
304
304
305
305
308
309
309
309
309
310
311
313
313
313
323
323
326
331
331
333
333
336
336
341
341
341
341
341
342
346
346
347
347
349
351
353
353
353
353
354
361
368
373
375
377
377
378
378
378
378
379
379
380
380
382
382
384
384
388
388
392
393
394
394
395
395
398
398
401
406
408
408
413
416
416
417
418
418
419
419
420
421
422
422
423
424
426
436
436
440
445
445
446
446
446
449
450
450
451
451
454
454
455
455
455
455
459
464
464
466
466
466
466
474
479
482
483
484
487
487
487
487
488
492
492
493
493
506
511
511
521
525
525
526
526
526
528
528
530
530
531
531
544
547
549
565
570
570
583
588
588
606
608
610
611
612
630
635
635
650
655
655
670
677
679
697
702
702
716
721
721
736
740
741
744
763
768
768
783
788
788
801
804
806
822
827
827
840
845
845
863
865
868
887
892
892
907
912
912
927
934
936
954
959
959
973
978
978
993
997
998
1001
1020
1025
1025
1040
1045
1045
1446
1446
1448
5
5
5
5
5
5
5
5
5
5
7
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
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
13
13
13
13
14
16
16
16
16
16
16
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
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
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
28
28
28
28
28
28
28
28
28
28
28
28
30
31
31
31
31
31
31
31
31
31
33
33
34
34
34
35
35
36
36
37
40
40
45
47
50
50
50
50
50
51
52
53
53
54
54
54
54
54
54
55
55
56
56
56
56
56
56
56
57
57
57
57
66
68
70
72
73
73
74
74
74
75
75
75
75
78
78
78
78
84
84
85
87
87
87
87
87
87
88
88
88
89
89
89
89
89
89
89
91
91
93
93
93
95
98
102
104
105
105
105
107
108
108
108
111
116
117
122
122
124
124
125
125
125
125
125
125
125
126
127
127
127
127
127
128
128
128
130
131
136
136
136
136
137
141
142
142
143
143
144
144
145
145
145
146
146
153
153
155
157
158
158
158
158
159
159
160
160
160
160
160
160
160
160
160
161
163
163
164
164
164
164
164
166
169
170
170
173
175
176
176
178
179
179
181
184
189
189
191
191
191
191
191
195
195
196
196
196
196
196
196
196
196
196
197
197
198
198
198
198
198
200
200
201
201
201
202
202
203
208
208
214
215
215
216
216
216
217
217
218
221
221
224
227
228
229
229
229
229
229
230
231
231
231
231
231
231
231
234
234
235
237
237
239
239
241
241
244
246
247
247
249
249
249
249
249
250
250
254
255
255
256
266
266
266
266
267
267
267
267
267
267
269
269
269
269
270
271
272
273
273
274
275
275
276
276
276
277
282
283
283
288
291
292
293
294
301
304
304
304
304
305
305
306
306
309
310
310
310
310
310
311
313
313
314
314
314
327
331
332
332
334
334
337
337
342
342
342
342
343
347
347
348
348
350
352
354
354
355
362
362
362
362
367
369
374
376
379
379
379
379
380
380
381
383
383
385
385
386
389
389
394
395
396
396
399
399
405
407
414
417
417
417
417
417
418
418
419
420
421
422
423
423
423
424
426
426
427
441
444
446
446
447
447
447
450
451
451
452
452
455
456
456
456
456
460
465
465
467
467
475
475
475
475
483
484
485
488
488
488
488
489
493
493
494
494
507
512
512
522
526
526
527
527
529
529
531
531
532
532
545
548
550
566
571
571
584
589
589
607
609
610
611
612
631
636
636
651
656
656
671
675
678
680
698
703
703
717
722
722
741
742
745
764
769
769
784
789
789
802
805
807
823
828
828
841
846
846
864
866
869
888
893
893
908
913
913
928
932
935
937
955
960
960
974
979
979
998
999
1002
1021
1026
1026
1041
1046
1046
1447
1449
5
5
5
5
5
5
5
5
5
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
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
11
11
11
11
11
11
13
13
14
14
14
14
14
14
15
15
15
15
15
17
17
17
17
17
17
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
20
20
20
20
20
20
20
20
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
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
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
34
35
35
36
36
36
37
37
37
37
39
39
39
41
41
46
48
48
51
51
51
51
52
53
53
53
53
53
53
53
53
53
54
54
54
55
55
55
55
55
55
56
57
57
58
58
67
67
69
69
71
72
72
72
73
73
73
73
74
74
75
76
76
79
79
85
88
88
88
88
88
88
89
89
89
90
90
90
90
90
92
92
94
94
94
96
99
99
103
103
106
106
107
107
107
108
108
108
111
111
115
115
117
118
122
123
123
124
124
124
124
124
124
124
124
125
125
125
126
126
126
126
126
127
128
128
129
131
132
137
137
138
141
141
142
143
143
143
143
143
144
144
144
144
145
145
146
151
152
152
152
154
154
156
159
159
160
160
161
161
161
161
161
161
161
161
162
165
165
165
167
168
168
170
174
174
178
178
178
179
179
179
180
180
182
182
185
190
190
192
192
192
193
195
195
195
195
195
195
195
195
196
196
196
197
197
197
197
197
197
197
198
201
201
202
202
203
204
209
209
212
214
214
214
215
215
215
215
216
216
217
219
219
224
224
228
228
228
229
230
230
230
231
232
232
232
232
232
234
234
235
235
236
238
238
240
240
241
245
245
249
249
249
250
250
250
250
250
251
254
254
255
256
256
264
264
265
265
265
266
266
266
266
266
266
266
266
267
267
267
267
267
268
268
268
268
271
272
273
274
274
274
275
276
276
277
278
281
281
283
292
293
293
294
295
295
302
305
305
306
306
307
307
310
311
311
314
314
315
315
315
325
328
332
332
333
333
337
337
338
341
341
343
343
343
343
344
348
349
351
353
354
356
363
363
367
367
368
375
377
377
378
378
378
380
380
380
380
380
380
381
381
382
384
384
386
386
387
387
394
394
395
396
400
400
406
406
408
408
418
418
418
419
419
420
421
422
423
424
424
427
427
428
438
442
445
445
447
447
448
450
450
452
452
453
453
454
454
456
457
457
461
466
466
467
476
476
484
485
486
489
489
489
489
490
494
495
508
513
513
523
526
526
527
527
528
528
530
530
532
532
533
533
549
551
567
572
572
585
590
590
608
610
612
613
632
637
637
652
657
657
676
679
681
699
704
704
718
723
723
742
743
746
765
770
770
785
790
790
806
808
824
829
829
842
847
847
865
867
870
889
894
894
909
914
914
933
936
938
956
961
961
975
980
980
999
1000
1003
1022
1027
1027
1042
1047
1047
1448
1450
1
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
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
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
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
16
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
19
19
19
19
19
20
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
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
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
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
27
27
27
27
31
31
31
31
31
31
31
31
31
34
35
35
35
35
35
37
37
37
37
38
38
38
38
38
39
40
40
40
47
52
52
52
52
53
54
54
54
54
54
54
54
55
56
56
56
56
56
57
58
59
59
67
69
70
70
70
71
72
73
74
74
75
77
77
79
86
88
88
88
89
89
89
90
90
90
90
90
90
90
90
90
90
91
91
91
93
93
95
95
95
97
99
100
105
106
108
108
108
108
109
109
109
109
115
116
116
118
119
123
124
124
125
125
125
125
125
125
126
127
127
127
127
127
128
128
129
130
132
133
137
139
140
141
141
142
142
143
144
144
144
145
145
146
151
151
151
152
153
153
153
157
159
159
159
161
161
161
161
161
161
161
161
161
161
162
162
162
162
163
164
164
164
164
166
166
166
168
169
176
177
179
179
179
179
180
180
180
180
180
182
183
183
186
191
191
192
193
194
196
196
196
196
196
196
197
198
198
198
198
198
198
198
199
202
202
203
204
205
210
210
212
212
213
215
216
216
217
228
229
229
229
230
230
230
230
231
232
232
232
232
232
232
232
232
232
233
233
233
235
236
236
237
239
239
241
241
241
247
248
250
250
250
250
250
251
251
251
251
252
253
254
255
256
257
257
264
264
264
265
265
266
266
266
267
267
267
267
267
267
268
269
269
269
269
272
273
274
275
276
277
277
278
279
282
293
293
295
295
296
296
303
305
307
307
308
308
310
310
310
310
311
312
312
315
315
316
316
325
329
334
334
339
341
342
342
344
344
344
344
345
349
350
352
354
354
357
363
366
367
368
369
376
377
377
377
378
378
379
379
379
381
381
381
382
382
383
385
385
387
387
395
396
401
401
406
408
409
409
418
419
420
420
421
422
423
424
425
425
428
428
438
443
448
448
449
453
453
454
454
454
455
455
456
456
456
456
457
458
458
462
467
467
467
476
485
486
487
490
490
490
490
491
495
496
509
514
514
524
527
528
528
529
529
531
531
533
533
534
534
550
552
568
573
573
586
591
591
609
611
613
614
633
638
638
653
658
658
677
680
682
700
705
705
719
724
724
743
744
747
766
771
771
786
791
791
807
809
825
830
830
843
848
848
866
868
871
890
895
895
910
915
915
934
937
939
957
962
962
976
981
981
1000
1001
1004
1023
1028
1028
1043
1048
1048
1445
1449
1451
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
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
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
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
15
15
15
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
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
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
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
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
24
24
24
24
24
24
24
24
24
24
24
24
24
24
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
30
34
35
36
36
37
37
38
38
38
38
39
39
39
40
41
41
41
48
50
53
53
53
53
53
53
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
56
56
57
57
57
58
59
60
60
67
69
70
70
71
71
71
72
73
73
74
75
75
76
78
78
79
87
87
88
88
88
89
89
90
91
91
91
91
92
92
92
94
94
96
96
96
98
101
105
106
107
108
108
108
109
109
109
109
110
110
115
117
117
120
124
124
124
125
125
125
125
125
125
126
126
126
126
126
126
128
128
128
129
130
131
133
134
137
140
141
141
142
143
143
144
144
145
145
145
146
146
147
153
154
154
154
158
159
159
159
160
160
162
162
162
162
162
162
163
163
163
163
163
164
165
165
167
167
167
168
168
169
170
176
177
178
179
179
180
180
180
180
180
181
181
182
183
184
184
187
192
192
192
194
195
195
195
196
196
196
196
197
197
197
197
197
197
199
199
199
199
199
200
200
201
201
202
202
204
205
206
211
211
212
213
214
215
216
217
217
218
221
228
230
230
230
230
230
230
231
231
231
233
233
233
233
233
234
234
234
236
238
240
240
242
242
247
248
249
250
250
250
251
251
251
251
252
252
253
254
256
257
258
258
266
266
266
266
267
267
267
267
267
267
267
268
268
268
268
268
268
270
270
273
274
275
276
276
277
278
278
279
280
281
281
283
293
294
295
296
296
297
297
304
305
308
308
309
309
311
311
312
313
313
313
317
317
330
334
335
335
340
341
343
343
345
345
345
346
347
347
348
348
350
351
353
355
358
363
367
369
370
377
379
379
380
380
380
382
382
382
384
386
386
388
388
389
394
394
396
397
402
402
406
408
409
410
410
418
420
421
421
422
423
424
425
426
426
426
444
447
449
449
450
454
454
454
455
455
456
456
457
457
459
459
463
468
468
476
486
487
488
491
491
491
491
492
493
493
494
494
496
497
510
515
515
525
528
530
530
532
532
534
534
535
535
551
553
569
574
574
587
592
592
610
610
612
615
634
639
639
654
659
659
678
681
683
701
706
706
720
725
725
744
745
748
767
772
772
787
792
792
808
810
826
831
831
844
849
849
867
869
872
891
896
896
911
916
916
935
938
940
958
963
963
977
982
982
1001
1002
1005
1024
1029
1029
1044
1049
1049
1446
1448
1450
1452
5
5
5
5
5
5
5
5
5
5
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
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
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
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
16
16
16
16
16
16
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
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
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
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
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
28
28
28
28
28
28
28
28
30
30
31
34
34
34
35
35
37
37
38
38
39
39
39
39
40
40
40
41
42
42
49
50
52
52
53
54
54
54
54
54
54
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
58
58
59
60
61
61
67
67
70
71
71
72
72
73
73
74
74
76
77
79
79
84
88
89
89
90
90
90
90
90
90
91
92
92
92
92
93
95
95
97
97
99
99
99
102
105
105
105
108
108
109
109
110
110
110
111
111
111
116
121
123
123
124
125
125
125
125
126
126
126
126
127
127
128
128
128
128
129
129
131
132
134
135
141
141
142
142
143
143
144
144
144
145
146
146
147
148
152
154
155
155
159
160
160
161
161
161
161
161
161
163
163
163
163
163
163
163
164
165
166
166
168
168
168
168
168
168
169
169
170
170
176
176
176
179
180
180
180
180
181
181
181
182
182
183
184
188
193
193
194
194
195
195
196
196
196
196
197
197
197
198
198
199
199
199
199
200
200
200
200
201
202
203
205
206
207
212
212
212
212
213
214
214
215
215
216
218
219
221
224
229
231
231
231
232
232
232
232
232
232
232
234
234
234
234
234
235
237
239
241
241
243
243
247
247
247
250
251
251
252
252
252
253
253
254
254
255
257
259
259
265
265
265
266
267
267
267
267
267
268
268
268
268
269
269
270
270
270
270
271
271
274
276
277
278
279
279
280
281
281
281
282
282
288
293
293
295
296
297
297
305
309
309
310
310
312
312
313
314
314
318
318
325
325
331
334
336
336
337
341
342
346
346
347
348
349
351
352
356
359
367
368
370
378
378
380
380
381
381
383
383
383
385
387
387
389
389
389
394
394
395
395
398
403
403
406
406
409
410
422
423
423
424
425
425
426
427
427
427
438
438
445
447
450
450
450
451
455
455
455
456
458
458
460
460
464
469
469
487
488
489
492
492
492
493
494
495
497
498
511
516
516
526
529
531
531
533
533
535
535
536
536
545
552
554
570
575
575
588
593
593
609
610
611
613
616
635
640
640
655
660
660
679
682
682
684
684
702
707
707
721
726
726
745
746
749
768
773
773
788
793
793
802
809
811
827
832
832
845
850
850
870
873
892
897
897
912
917
917
936
939
939
941
941
959
964
964
978
983
983
1002
1003
1006
1025
1030
1030
1045
1050
1050
1449
1451
1453
5
5
5
5
5
5
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
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
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
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
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
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
29
29
29
29
29
29
29
29
30
30
30
31
32
32
35
35
35
35
35
36
36
37
37
37
38
38
38
38
38
39
39
40
40
40
41
50
53
53
55
55
55
55
56
57
57
57
57
57
57
58
58
58
58
58
59
59
60
61
62
62
68
68
69
69
69
71
71
71
72
72
74
75
75
75
75
76
76
77
78
80
80
84
85
87
87
87
89
89
89
89
89
89
89
89
89
90
90
90
91
91
91
91
92
94
96
96
97
98
98
100
100
100
103
103
106
106
106
106
108
108
108
109
109
109
109
110
110
111
115
117
122
124
124
126
126
127
127
127
128
128
129
129
129
129
130
130
132
133
135
136
141
142
142
142
142
143
143
144
144
145
145
146
146
146
147
147
147
147
148
149
153
153
158
160
160
160
160
160
160
160
160
160
161
161
161
162
162
162
162
163
163
164
164
165
166
167
167
169
169
170
170
171
171
174
177
177
177
177
179
179
179
180
180
180
180
181
181
181
181
182
182
182
182
184
189
194
194
195
195
196
197
197
197
198
199
199
200
200
200
200
200
200
201
201
201
201
202
203
204
206
207
208
210
213
213
213
213
213
213
214
214
216
217
217
217
218
218
219
220
228
229
230
231
231
231
231
231
231
231
231
232
232
232
232
233
233
233
233
233
233
235
236
236
238
240
240
242
242
244
244
245
248
248
248
248
250
250
250
251
251
251
251
252
252
253
254
255
255
257
257
258
260
260
266
266
266
266
268
268
270
270
271
271
271
271
272
272
275
278
279
280
280
281
282
283
283
289
293
294
294
295
295
295
296
297
298
306
309
309
310
310
310
311
311
313
313
313
313
314
315
315
319
319
323
326
326
332
337
337
341
342
343
347
347
348
349
350
352
353
353
357
360
367
368
370
370
371
379
379
379
381
384
384
384
386
388
388
390
390
396
396
399
404
404
407
407
408
408
408
410
423
423
424
424
425
426
426
427
428
428
428
436
439
439
446
451
451
452
454
455
455
456
456
456
457
459
459
461
461
465
466
470
470
488
489
490
490
493
493
493
493
494
495
496
498
499
512
517
517
527
530
532
532
534
534
536
536
537
537
546
550
553
555
571
576
576
589
594
594
610
610
612
614
617
636
641
641
656
661
661
680
685
685
703
708
708
722
727
727
746
747
747
750
750
769
774
774
789
794
794
803
807
810
812
828
833
833
846
851
851
871
874
893
898
898
913
918
918
937
942
942
960
965
965
979
984
984
1003
1004
1004
1007
1007
1026
1031
1031
1046
1051
1051
1450
1452
1454
1
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
7
7
7
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
13
13
13
13
15
15
15
15
15
15
15
15
16
16
16
16
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
20
20
20
20
20
20
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
21
21
21
21
21
21
21
21
21
21
22
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
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
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
31
32
33
33
35
35
35
36
36
36
37
38
39
39
39
40
42
50
50
51
53
53
53
53
53
54
54
56
56
56
57
58
58
58
58
59
59
59
59
59
61
62
63
63
70
70
70
70
75
76
76
76
76
77
77
78
79
81
81
84
88
88
88
90
90
90
90
90
90
90
90
91
92
92
92
92
93
95
96
97
97
98
98
99
99
100
101
104
104
106
106
106
107
107
107
109
110
110
111
111
116
118
123
124
124
125
125
127
128
128
128
128
128
128
130
130
130
130
133
134
136
137
143
145
145
146
146
147
147
147
148
148
148
148
149
150
159
161
161
161
161
161
161
161
162
163
163
163
163
163
163
164
165
165
166
166
167
168
168
170
170
171
171
172
172
175
177
177
177
178
178
178
180
181
181
182
183
183
183
183
190
195
195
195
195
196
196
197
197
198
199
199
201
201
201
201
201
201
202
202
203
204
205
207
208
209
211
211
214
214
217
218
218
218
219
219
220
221
224
229
230
231
232
232
232
232
232
232
233
233
234
234
234
234
236
236
237
237
239
241
241
241
241
241
243
243
245
245
246
248
248
248
249
249
249
251
252
252
253
256
258
258
259
261
261
266
266
267
267
269
272
272
272
272
276
276
276
279
279
280
281
281
282
283
284
284
294
296
296
296
296
297
299
307
310
310
311
311
312
314
314
314
314
315
316
316
320
320
324
324
333
337
338
338
342
343
344
345
345
348
348
349
350
351
353
353
354
354
354
354
354
357
358
361
371
371
372
380
382
382
385
385
385
387
389
389
389
389
391
391
392
397
397
400
405
405
409
409
409
409
423
424
425
426
427
427
428
429
429
429
437
437
447
450
452
452
453
455
456
457
457
457
458
460
460
462
462
466
467
467
467
467
471
471
489
490
491
491
494
494
494
494
495
496
497
499
500
513
518
518
528
528
531
533
533
535
535
537
537
538
538
551
554
556
572
577
577
590
595
595
610
611
611
613
613
613
614
615
618
637
642
642
657
662
662
681
686
686
704
709
709
723
728
728
747
751
751
770
775
775
790
795
795
808
811
813
829
834
834
847
852
852
867
871
872
875
894
899
899
914
919
919
938
943
943
961
966
966
980
985
985
1004
1008
1008
1027
1032
1032
1047
1052
1052
1451
1453
1455
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
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
14
14
14
14
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
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
22
23
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
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
32
33
35
35
36
36
37
37
37
38
38
39
40
40
40
41
42
43
48
51
51
52
53
54
54
54
54
54
55
56
56
57
57
57
58
59
59
59
60
62
63
64
64
71
71
77
77
77
78
78
82
82
85
87
89
89
89
89
89
89
90
90
90
90
91
91
91
91
91
91
91
91
93
93
94
95
95
96
98
98
100
100
101
102
105
106
106
107
107
108
108
108
109
110
111
111
112
115
117
124
124
125
125
125
126
127
127
128
128
129
129
129
129
129
132
133
134
135
137
138
144
146
146
148
148
149
149
149
155
160
160
160
161
161
161
161
161
162
162
162
162
162
162
162
164
164
164
164
165
167
167
168
169
169
171
171
172
173
173
177
177
178
178
179
179
179
180
181
182
182
183
184
184
191
195
196
196
196
196
196
197
198
198
198
198
199
200
200
202
202
202
203
203
204
205
206
208
209
210
215
219
219
220
220
228
230
231
231
231
232
232
232
232
233
233
233
233
233
233
234
235
235
237
237
238
238
240
241
241
242
242
242
244
244
246
246
248
248
249
249
250
250
250
251
252
253
253
254
257
259
259
262
262
266
267
267
267
268
268
269
269
270
274
274
275
277
277
277
278
279
280
280
281
282
283
284
285
295
297
297
298
300
308
311
311
313
313
315
315
315
315
315
316
317
317
321
321
334
339
339
341
343
344
346
349
349
350
351
352
354
355
355
355
358
359
362
372
372
381
381
383
383
386
386
386
387
387
387
388
390
390
390
390
392
392
393
398
401
406
410
410
420
421
424
424
425
425
426
426
427
428
428
428
429
430
430
430
448
453
453
454
454
456
457
459
461
461
463
463
467
468
468
472
490
491
492
495
495
495
495
496
497
498
500
501
514
519
519
529
529
532
533
533
534
534
536
536
538
538
539
552
555
557
573
578
578
591
596
596
610
613
614
614
615
616
619
638
643
643
658
663
682
687
687
705
710
710
724
729
748
752
752
771
776
776
791
796
809
812
814
830
835
835
848
853
853
872
873
876
895
900
900
915
920
939
944
944
962
967
967
981
986
1005
1009
1009
1028
1033
1033
1048
1053
1452
1454
1456
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
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
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
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
20
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
23
23
23
23
23
23
23
24
24
24
24
24
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
29
29
29
29
35
35
35
36
36
37
37
37
38
38
39
39
41
41
42
42
44
49
49
53
54
54
54
54
55
55
55
56
57
57
57
57
58
58
58
58
60
60
60
61
63
64
65
65
71
75
75
76
76
78
78
83
83
87
88
88
88
89
90
90
90
90
91
91
92
92
93
93
93
93
94
94
95
96
96
97
99
99
99
99
100
101
101
101
101
102
103
106
106
106
106
106
107
107
108
108
108
109
109
110
111
112
113
116
118
118
125
125
125
126
126
127
128
128
128
128
129
129
130
130
133
134
135
136
136
138
139
144
145
146
146
147
147
148
148
150
155
159
159
160
161
161
161
161
162
162
162
162
163
163
163
164
164
164
164
165
165
166
167
167
168
169
170
170
171
171
172
172
173
174
174
177
177
177
178
178
179
179
179
180
180
181
183
184
184
191
192
196
196
197
197
197
197
198
199
199
199
199
199
200
200
201
201
204
206
207
209
210
211
213
216
217
217
218
218
219
224
229
230
230
231
231
231
232
232
232
232
233
233
234
234
235
235
235
235
235
236
236
239
239
241
242
242
242
243
245
245
245
245
247
247
247
247
248
248
248
249
249
249
250
250
250
251
251
252
254
255
257
258
263
263
267
267
268
268
268
269
270
270
270
270
271
275
275
278
279
280
280
280
281
281
281
282
283
284
284
284
285
286
296
297
299
301
304
309
312
313
314
314
316
316
317
318
318
322
322
326
332
335
337
340
340
342
344
344
345
347
350
352
353
355
355
356
359
360
362
363
370
381
382
387
387
387
388
388
388
388
389
391
391
391
391
393
393
393
393
393
393
397
397
399
402
405
405
407
410
417
425
426
426
426
427
427
428
430
431
431
431
439
445
449
450
454
454
455
455
457
457
458
460
462
462
464
464
468
468
473
475
491
492
493
496
496
496
498
499
501
502
515
520
520
533
534
534
535
535
537
537
537
537
538
538
539
539
539
539
540
553
556
558
574
579
579
592
597
597
614
615
615
616
617
620
639
644
644
659
662
662
664
683
688
688
706
711
711
725
730
749
753
753
772
777
777
792
795
795
797
810
813
815
831
836
836
849
854
854
873
874
877
896
901
901
916
919
919
921
940
945
945
963
968
968
982
987
1006
1010
1010
1029
1034
1034
1049
1052
1052
1054
1453
1455
1457
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
7
7
7
7
7
7
7
7
7
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
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
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
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
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
19
20
20
20
20
20
20
20
20
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
21
21
21
21
21
21
21
21
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
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
27
27
27
27
27
27
27
27
27
27
27
27
29
29
29
29
30
33
36
36
36
37
37
37
39
40
40
40
40
41
41
42
42
42
43
45
45
54
54
54
55
55
56
57
57
57
57
57
57
58
58
58
58
58
59
59
59
61
61
61
62
64
65
66
66
71
71
71
72
72
75
76
76
76
77
77
79
79
79
79
84
84
88
88
89
89
89
89
89
91
91
93
93
94
94
94
94
95
95
96
97
97
98
100
102
102
102
102
103
104
104
107
107
107
107
107
108
108
108
110
111
111
111
112
112
113
114
115
117
125
125
126
126
126
128
128
128
128
128
128
129
129
129
129
129
131
131
134
135
136
136
137
137
137
137
137
139
139
140
140
141
142
142
143
143
146
146
147
147
147
148
148
149
151
160
160
162
162
164
164
164
165
165
165
165
166
166
167
169
170
171
171
171
172
172
173
173
174
175
175
175
178
178
178
179
179
179
181
182
182
182
183
183
184
184
185
192
192
192
193
196
196
197
197
198
198
199
199
199
199
199
199
200
200
200
200
200
201
201
202
202
202
205
207
208
210
211
212
213
213
213
214
214
214
214
217
217
218
218
218
219
219
220
228
230
231
231
233
233
235
235
235
236
236
236
236
236
237
237
240
240
242
242
243
243
244
246
248
248
248
248
249
249
249
250
250
250
250
250
250
252
253
253
253
254
254
254
255
256
259
264
264
267
267
268
268
270
270
270
270
270
270
271
271
271
271
279
280
281
282
282
282
283
283
284
284
285
285
285
285
286
286
287
297
297
300
300
302
302
305
305
305
310
313
314
314
315
315
315
317
317
318
319
319
323
323
326
333
336
341
341
341
343
346
348
351
353
354
355
356
357
360
361
363
363
363
364
367
381
383
388
388
388
389
389
390
394
394
394
394
397
398
398
400
403
406
408
410
418
418
418
426
427
427
427
427
428
428
428
428
429
429
431
431
432
432
432
432
439
446
450
454
455
455
456
456
459
461
463
463
465
465
468
469
471
471
474
476
476
476
492
493
494
497
497
497
499
500
502
503
516
521
521
527
534
535
535
536
536
539
540
540
540
540
541
554
557
557
559
559
575
580
580
593
598
598
615
617
618
621
640
645
645
660
663
665
684
689
689
707
712
712
726
728
728
731
750
754
754
773
778
778
793
796
798
811
814
814
816
816
832
837
837
850
855
855
874
875
878
897
902
902
917
920
922
941
946
946
964
969
969
983
985
985
988
1007
1011
1011
1030
1035
1035
1050
1053
1055
1454
1456
1458
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
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
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
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
12
12
12
12
12
12
12
12
12
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
15
15
15
15
15
15
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
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
30
30
30
31
33
35
37
38
40
41
41
41
41
42
42
42
42
43
44
46
46
51
53
55
57
57
57
58
58
58
58
58
58
58
58
58
59
59
59
59
60
60
60
62
62
63
65
66
67
67
71
72
75
75
76
76
76
77
77
77
78
78
80
80
80
85
85
89
89
90
90
90
90
90
92
94
95
95
95
95
97
98
98
99
103
103
103
103
104
104
105
106
108
108
108
108
109
111
112
112
112
113
113
114
115
116
116
116
118
118
118
124
127
128
128
129
129
129
129
129
129
129
129
130
130
130
130
132
132
135
136
138
138
140
140
141
141
141
142
142
143
144
144
146
146
147
147
147
147
148
148
148
149
149
150
152
155
155
160
160
161
161
163
164
165
165
166
166
166
166
168
170
171
171
172
172
173
173
174
174
175
176
176
177
179
180
182
183
183
183
184
184
185
186
193
193
194
195
199
199
199
199
200
200
200
200
200
200
200
200
201
201
201
201
201
203
203
203
206
208
209
211
212
213
213
214
215
217
217
218
218
218
218
219
219
219
220
220
221
221
229
229
229
231
231
231
231
231
232
232
234
236
237
237
237
237
237
240
241
241
243
244
244
245
246
248
249
249
249
249
250
251
251
251
253
254
254
254
254
255
255
255
256
257
257
257
260
265
265
266
268
268
270
270
271
271
271
271
271
271
271
271
272
272
272
272
277
280
281
282
283
284
285
286
286
286
286
287
287
298
303
303
306
306
311
311
314
316
316
316
318
318
319
320
320
324
324
334
334
337
342
342
342
342
342
344
344
344
347
349
352
354
355
357
358
361
362
364
364
365
367
368
370
370
381
381
382
384
386
389
389
389
390
390
390
391
395
395
395
395
397
399
399
404
407
409
419
419
427
428
428
429
429
432
432
433
433
433
433
447
447
451
455
455
455
456
456
457
457
457
457
457
460
462
464
464
466
466
470
472
475
477
477
493
494
495
498
498
498
500
501
503
504
517
522
522
528
532
535
536
536
537
537
540
541
541
541
541
542
555
560
560
576
581
581
594
599
599
610
613
618
619
622
641
646
646
661
664
666
685
690
690
708
713
713
727
729
732
751
755
755
774
779
779
794
797
799
812
817
817
833
838
838
851
856
856
875
876
879
898
903
903
918
921
923
942
947
947
965
970
970
984
986
989
1008
1012
1012
1031
1036
1036
1051
1054
1056
1455
1457
1459
1
1
1
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
6
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
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
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
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
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
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
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
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
25
26
26
26
27
27
27
27
28
28
29
29
29
29
30
31
32
34
35
36
39
40
42
42
42
43
43
43
43
47
47
51
53
54
54
56
57
58
58
59
59
59
59
59
59
59
60
60
60
60
61
61
62
63
63
64
66
67
68
68
76
76
77
77
77
78
78
78
78
79
79
79
79
80
80
80
80
81
81
86
86
88
89
89
89
89
90
90
90
91
91
91
92
92
93
95
98
98
99
99
100
100
100
100
104
104
104
104
105
105
106
106
107
109
109
109
109
109
110
113
113
114
114
116
118
119
119
119
124
125
127
128
130
130
130
130
130
130
131
131
131
131
133
133
136
137
137
138
138
138
138
139
141
141
141
142
142
145
145
147
147
148
148
148
148
149
149
149
149
150
150
150
151
153
153
156
156
160
161
161
161
162
163
163
164
164
166
166
167
169
170
170
171
172
172
173
173
175
175
176
177
177
177
178
181
184
184
185
185
192
193
193
193
193
194
195
195
196
198
200
200
201
201
201
201
201
201
201
202
202
202
202
202
202
202
203
204
204
204
204
207
207
208
209
210
212
213
213
213
214
216
218
218
219
219
219
219
220
220
220
220
221
221
221
222
222
222
222
229
231
231
232
232
232
232
232
232
233
234
234
235
238
241
242
242
244
244
245
245
246
246
247
248
249
250
250
250
250
250
251
251
251
251
252
252
254
255
255
256
256
258
258
261
266
266
266
266
267
269
269
269
272
272
272
272
272
272
273
273
273
273
277
280
281
282
283
284
285
286
287
287
288
288
299
304
304
305
306
306
306
306
307
312
312
314
315
315
315
315
316
316
317
317
317
319
319
320
321
321
325
325
326
326
335
335
335
335
338
342
343
343
344
345
345
345
349
350
350
353
353
354
355
356
358
359
362
363
363
364
364
364
364
365
366
367
371
371
379
382
382
385
387
390
390
390
390
390
391
391
392
392
393
396
396
396
396
398
405
408
410
418
419
419
419
419
420
427
428
428
428
428
429
429
430
430
433
433
434
434
434
434
439
439
448
448
448
448
452
455
457
457
457
458
458
458
458
458
461
462
462
463
465
465
467
467
471
473
476
476
477
477
477
477
478
495
495
496
496
499
499
499
499
500
501
502
504
505
518
523
523
533
536
536
537
537
538
538
538
541
542
542
542
542
543
556
561
561
577
582
582
595
600
600
610
614
619
620
623
642
647
647
662
665
667
686
691
691
709
714
714
728
730
733
752
756
756
775
780
780
795
798
800
813
818
818
834
839
839
852
857
857
876
877
880
899
904
904
919
922
924
943
948
948
966
971
971
985
987
990
1009
1013
1013
1032
1037
1037
1052
1055
1057
1456
1458
1459
1460
4
4
4
5
5
5
5
5
5
7
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
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
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
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
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
19
19
19
19
19
19
19
19
19
19
19
19
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
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
26
27
27
27
27
27
27
27
29
29
30
30
30
30
30
30
30
31
32
33
33
34
34
37
38
38
40
40
40
41
41
41
41
43
48
48
53
54
56
56
56
57
58
58
58
59
59
59
59
59
59
59
60
61
61
61
61
62
62
63
64
64
65
67
68
69
69
70
76
77
78
78
78
79
79
79
79
79
80
80
81
81
82
82
87
87
88
88
88
89
90
90
90
90
90
91
91
92
93
93
93
93
94
96
98
100
100
101
101
101
101
105
105
105
105
105
105
106
107
107
107
108
109
109
109
109
110
110
110
110
111
111
111
112
112
119
120
120
120
124
125
127
127
127
128
128
129
129
129
130
130
130
130
130
130
132
132
132
132
134
134
137
138
139
139
140
142
142
142
143
143
144
146
146
146
147
148
149
149
149
149
150
150
150
150
150
151
151
152
154
154
154
161
161
162
162
163
164
164
164
164
165
170
171
171
171
172
173
173
174
174
174
174
176
176
176
176
176
176
178
178
179
180
180
182
182
182
183
183
183
194
194
195
195
196
196
198
198
198
199
200
200
201
201
201
201
201
201
201
201
201
201
201
202
203
203
203
203
203
203
203
205
208
208
209
210
211
211
213
214
214
214
215
217
218
219
220
220
220
220
220
221
221
221
221
221
222
222
222
222
223
223
232
232
232
233
233
233
233
233
234
235
235
235
235
236
239
241
242
243
243
246
246
247
247
247
247
250
251
251
251
251
251
251
252
252
253
253
253
253
254
254
255
257
259
259
259
262
266
267
267
267
267
267
269
269
269
270
271
271
272
272
272
272
272
272
274
274
274
274
282
283
284
284
285
286
287
288
288
289
289
296
300
305
305
307
307
308
314
314
314
315
316
316
316
316
317
317
318
320
320
320
320
321
322
322
322
322
324
326
326
327
327
333
335
335
336
336
339
344
344
345
346
346
346
351
354
354
354
355
356
357
359
360
363
364
364
365
365
366
367
367
368
370
372
372
372
380
380
386
388
391
391
392
392
393
393
397
397
397
397
397
399
406
409
409
411
420
420
421
427
427
427
428
429
429
429
429
430
430
434
434
435
435
435
435
437
440
440
446
448
448
449
449
453
458
458
458
459
459
459
462
463
463
464
466
466
466
466
467
468
468
468
468
472
474
477
478
478
479
496
497
500
500
500
500
501
502
503
505
506
519
524
524
534
538
538
539
539
539
542
543
543
543
543
544
557
562
562
578
583
583
596
601
601
611
613
615
620
621
621
624
624
643
648
648
663
666
668
687
692
692
710
715
715
729
731
734
753
757
757
776
781
781
796
799
801
814
819
819
835
840
840
853
858
858
877
878
878
881
881
900
905
905
920
923
925
944
949
949
967
972
972
986
988
991
1010
1014
1014
1033
1038
1038
1053
1056
1058
1457
1458
1460
1461
5
5
5
5
5
5
5
5
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
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
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
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
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
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
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
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
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
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
24
24
24
24
24
24
24
24
24
24
26
26
27
28
28
28
30
30
31
31
31
31
31
32
36
36
37
37
38
39
39
40
41
41
41
41
42
42
44
49
49
54
56
57
57
57
57
58
58
58
58
58
58
58
58
59
59
59
60
60
60
60
60
60
60
61
63
63
64
65
65
65
66
66
68
68
69
69
70
70
71
71
71
71
76
77
78
79
79
80
80
80
80
80
81
81
82
82
83
88
88
90
90
90
91
91
91
91
91
93
93
93
93
93
93
94
94
94
94
97
99
99
101
101
102
102
106
106
106
106
107
107
107
108
108
109
110
110
110
111
111
111
111
111
112
112
112
112
113
113
116
116
120
127
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
131
131
131
131
131
131
135
135
138
138
138
139
140
140
143
143
144
144
144
145
147
148
149
150
150
150
151
151
151
152
152
153
155
161
161
162
162
164
164
164
164
164
164
164
165
165
165
165
167
171
172
172
172
173
174
174
177
177
177
177
178
178
179
179
179
179
180
181
181
182
183
183
183
183
184
184
184
184
184
184
193
193
195
195
197
198
199
199
199
199
200
200
200
200
200
200
200
200
201
201
202
202
202
202
202
202
202
202
203
204
204
204
206
209
209
210
211
211
212
212
212
212
214
214
215
215
216
218
218
219
220
221
221
221
222
222
222
223
223
223
224
224
229
229
232
232
233
233
233
235
235
235
235
235
235
236
236
236
236
240
242
242
242
242
243
244
244
247
247
248
248
249
249
250
250
251
251
251
252
252
252
252
252
252
253
253
253
254
254
254
254
255
255
257
258
263
268
268
269
270
270
270
270
271
271
271
271
271
271
271
271
272
272
273
273
273
273
273
273
280
283
284
285
285
286
287
288
289
289
290
290
297
297
297
297
301
306
306
306
306
308
308
310
316
317
317
317
317
318
318
319
322
323
323
323
323
325
325
327
327
336
337
337
340
342
342
345
345
346
352
355
355
355
355
355
355
356
357
357
358
358
360
360
361
361
364
364
364
366
366
368
368
370
371
387
389
392
392
393
393
393
394
394
398
398
398
398
398
400
407
410
410
410
410
410
412
419
419
421
421
429
430
430
430
430
431
431
435
435
436
436
436
436
438
438
449
450
450
454
455
455
456
459
459
459
463
464
464
465
468
468
468
468
469
469
469
469
473
475
477
477
478
479
479
497
498
501
501
501
501
502
503
503
504
504
506
506
507
507
520
525
525
535
539
539
540
540
540
543
544
544
544
544
545
558
563
563
579
584
584
597
602
602
614
621
625
625
644
649
649
664
667
669
688
693
693
711
716
716
730
732
735
754
758
758
777
782
782
797
800
802
815
820
820
836
841
841
854
859
859
878
882
882
901
906
906
921
924
926
945
950
950
968
973
973
987
989
992
1011
1015
1015
1034
1039
1039
1054
1057
1059
1458
1461
1462
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
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
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
12
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
17
17
17
17
17
17
17
17
17
17
17
17
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
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
21
21
21
21
21
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
24
24
24
24
24
24
24
24
24
24
24
24
25
27
27
28
28
29
29
29
30
31
32
32
32
32
32
33
33
36
37
40
40
40
40
41
41
41
42
42
42
43
43
43
45
50
50
55
58
58
58
58
59
59
59
60
60
60
61
61
61
61
61
61
61
64
64
65
66
69
69
70
70
71
71
72
72
76
76
77
77
79
80
80
81
81
84
89
89
89
91
92
92
93
93
94
94
94
94
94
94
94
94
95
95
95
95
98
102
102
103
103
107
107
107
107
107
108
108
109
109
111
111
111
111
111
112
112
112
112
112
113
113
113
114
114
117
117
118
118
118
129
129
129
130
130
130
130
131
131
131
132
132
132
132
132
132
136
136
139
139
140
144
144
145
145
145
145
146
146
147
147
148
148
150
151
151
151
152
154
156
156
160
164
164
165
165
165
165
165
165
165
165
165
166
166
166
166
169
171
172
173
173
173
174
175
178
178
178
178
178
179
180
180
182
182
182
182
183
183
183
184
184
184
185
185
185
185
194
198
200
200
200
201
201
201
202
202
202
203
203
203
203
203
203
203
203
204
205
205
205
207
210
210
211
215
215
216
216
217
218
218
219
219
219
221
222
222
222
222
222
223
224
230
230
231
231
231
231
235
235
236
236
236
236
236
236
236
236
237
237
237
237
241
243
243
244
245
245
248
248
249
249
249
250
252
253
253
253
253
253
253
253
253
254
254
254
255
255
255
256
256
258
258
259
259
264
269
269
269
271
271
271
272
272
273
273
274
274
274
274
274
274
284
284
285
286
286
287
289
290
290
291
291
298
298
302
307
307
307
311
315
315
317
318
318
318
319
319
320
323
324
324
324
324
328
328
335
335
337
341
343
343
344
344
344
346
347
351
353
356
356
356
356
357
361
361
362
362
365
365
369
369
371
371
372
372
382
388
390
393
393
394
394
395
395
397
399
399
399
399
399
408
411
411
411
413
420
428
430
431
431
431
432
432
436
436
437
437
437
437
448
448
450
455
456
456
457
457
457
457
460
460
461
464
465
465
466
469
469
470
470
470
470
474
476
478
479
493
497
498
499
502
502
502
502
503
507
507
508
508
521
526
526
536
540
540
541
541
541
544
545
545
545
545
546
559
564
564
580
585
585
598
603
615
622
626
626
645
650
650
665
668
670
689
694
694
712
717
717
731
733
736
755
759
759
778
783
783
798
801
803
816
821
821
837
842
842
855
860
879
883
883
902
907
907
922
925
927
946
951
951
969
974
974
988
990
993
1012
1016
1016
1035
1040
1040
1055
1058
1060
1459
1462
1463
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
7
7
7
7
7
7
7
7
7
7
7
7
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
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
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
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
20
20
20
20
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
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
26
26
28
28
29
29
30
30
32
33
33
33
33
33
34
34
38
38
41
41
42
42
42
43
43
43
43
43
44
44
44
46
49
51
51
54
57
58
58
58
59
59
59
60
60
60
61
61
61
61
62
62
62
62
62
65
65
66
67
70
70
71
71
72
72
72
77
77
78
78
78
78
78
79
79
79
80
80
81
82
85
89
90
90
90
90
92
95
95
95
95
95
95
96
96
96
96
99
101
103
103
104
104
108
108
108
108
109
109
109
110
112
112
113
113
113
113
113
114
114
114
114
115
115
115
119
119
119
119
128
129
129
129
130
130
130
131
131
132
132
132
133
133
133
133
137
137
138
140
140
141
145
145
146
146
147
147
148
148
149
149
149
149
149
150
150
150
151
152
152
155
156
157
160
161
162
163
166
166
166
166
166
166
167
167
167
167
167
170
172
173
173
174
174
174
174
175
175
176
179
179
179
179
180
180
181
181
183
183
184
184
184
185
185
185
185
185
186
186
186
193
195
199
199
200
200
200
201
201
202
202
203
203
203
203
204
204
204
204
204
204
206
208
211
211
212
214
216
216
217
217
218
219
219
220
220
220
220
220
220
221
221
221
222
223
223
223
231
232
232
232
232
232
234
237
237
237
237
237
237
238
238
238
238
242
243
245
246
246
249
249
250
250
251
251
251
253
254
254
254
254
254
254
255
255
255
256
256
256
256
257
257
257
260
260
265
269
270
270
270
271
271
271
272
272
273
273
274
274
275
275
275
275
275
280
285
285
286
287
287
287
288
290
291
291
292
292
298
303
306
308
308
308
316
316
316
319
319
320
320
321
321
324
325
325
325
325
327
329
329
336
342
345
345
345
345
347
352
354
356
357
357
358
362
362
363
363
364
366
366
370
370
373
373
382
388
389
391
393
394
394
395
395
396
396
398
400
400
400
400
400
400
409
411
412
414
419
421
429
429
432
433
433
437
437
438
438
438
438
440
449
456
458
458
458
458
461
461
462
465
465
466
466
467
467
469
471
471
471
471
475
477
477
479
480
498
499
500
503
503
503
503
504
508
508
509
509
522
527
527
537
541
541
542
542
542
545
546
546
546
546
547
560
565
565
581
586
586
599
604
610
615
623
627
627
646
651
651
666
669
671
690
695
695
713
718
718
732
734
737
756
760
760
779
784
784
799
802
804
817
822
822
838
843
843
856
861
880
884
884
903
908
908
923
926
928
947
952
952
970
975
975
989
991
994
1013
1017
1017
1036
1041
1041
1056
1059
1061
1460
1463
1464
5
5
5
5
5
5
5
5
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
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
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
11
11
11
11
11
11
11
11
11
11
11
11
11
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
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
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
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
21
21
21
21
21
21
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
23
23
23
23
23
24
24
24
24
24
24
25
25
26
26
26
26
29
29
29
30
30
31
33
33
33
34
34
34
34
34
34
34
35
35
38
39
39
41
42
43
43
43
44
44
44
44
44
45
45
47
50
52
52
57
57
57
58
58
59
59
59
60
60
60
60
60
61
63
63
66
66
66
67
68
71
71
72
72
72
73
73
79
79
79
79
80
80
80
80
80
80
81
86
88
88
89
90
91
92
92
92
93
94
94
95
95
95
95
95
95
97
97
97
97
100
101
104
104
105
105
105
105
109
109
109
109
109
109
109
110
110
110
111
112
113
114
114
114
114
114
115
115
115
115
115
116
116
120
120
120
128
128
128
129
130
130
130
130
131
131
131
131
133
138
138
138
138
139
141
142
145
146
146
146
146
146
147
147
148
148
150
150
150
150
151
151
151
151
156
158
160
161
163
163
163
163
164
165
165
166
166
166
166
166
166
168
168
168
168
171
171
173
175
175
176
176
176
176
177
180
180
180
180
180
181
181
182
182
183
184
185
185
185
185
186
186
186
186
186
187
187
193
193
194
199
199
199
200
200
201
201
201
202
202
202
202
205
205
207
209
209
212
212
212
213
214
217
217
218
218
219
221
221
221
221
221
222
222
222
222
222
222
224
224
231
232
233
233
233
234
234
234
235
236
236
237
237
237
237
237
237
239
239
239
239
243
243
246
247
247
247
247
250
250
251
251
251
251
251
252
252
252
254
255
255
255
255
255
256
256
256
257
257
257
257
257
258
258
258
259
259
259
261
261
266
270
270
270
271
271
271
272
272
272
273
273
273
273
276
284
286
287
288
289
291
292
292
293
293
298
304
306
306
307
309
309
317
321
321
322
322
325
326
326
326
326
327
330
330
335
335
337
343
345
345
346
346
346
348
353
355
355
356
358
358
358
359
363
363
364
364
364
364
365
367
371
371
371
372
372
372
374
374
389
390
392
395
395
396
396
397
397
397
399
401
401
401
401
411
413
415
419
419
420
433
434
434
438
438
439
439
439
439
440
448
448
450
457
459
459
459
462
462
463
467
467
468
468
469
472
472
472
472
476
477
477
478
478
481
499
500
501
501
504
504
504
504
504
505
509
509
510
510
523
528
528
538
542
542
543
543
546
547
547
547
547
548
561
566
566
582
587
587
600
602
602
605
611
613
624
628
628
647
652
652
670
672
691
696
696
714
719
719
733
735
738
757
761
761
780
785
785
803
805
818
823
823
839
844
844
857
859
859
862
881
885
885
904
909
909
927
929
948
953
953
971
976
976
990
992
995
1014
1018
1018
1037
1042
1042
1060
1062
1461
1464
1465
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
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
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
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
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
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
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
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
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
22
22
22
22
22
22
22
22
22
23
23
23
24
24
25
25
25
25
25
25
25
25
25
25
26
29
29
29
30
30
31
31
32
33
34
34
34
34
35
35
35
35
35
38
38
39
40
40
41
42
43
43
43
44
44
45
45
45
46
46
48
51
51
53
53
59
59
59
59
60
60
60
61
61
61
62
67
67
67
68
69
72
72
73
73
74
74
79
80
80
80
81
81
81
82
87
89
92
92
92
93
93
93
93
94
94
94
94
94
94
94
94
95
95
96
96
96
96
96
96
101
105
105
105
106
106
109
109
109
109
110
110
110
110
110
110
110
111
111
111
112
113
114
115
115
115
115
116
116
116
117
117
120
130
131
131
131
134
137
138
139
139
139
140
142
143
145
145
145
146
147
147
147
147
147
148
148
151
151
152
152
156
156
157
159
163
164
164
164
164
164
164
165
165
165
165
165
165
165
165
166
166
167
167
167
167
167
167
172
172
172
172
174
174
174
176
176
176
177
177
178
180
180
181
181
181
181
181
182
182
183
183
183
184
185
186
186
187
187
187
188
188
192
193
194
195
201
201
202
202
202
205
206
206
208
213
213
213
214
218
218
219
219
222
222
222
222
222
223
223
223
223
225
233
234
235
235
235
235
236
236
236
236
236
236
236
236
237
237
238
238
238
238
238
238
244
247
247
248
248
250
251
251
251
251
251
252
252
252
252
253
253
253
254
255
256
256
256
256
256
257
257
258
258
258
258
258
258
259
259
259
260
260
260
267
269
269
272
272
272
273
273
273
277
277
285
285
285
287
287
287
288
289
290
292
293
293
294
294
305
305
306
307
308
310
310
318
318
322
322
323
323
326
327
327
327
327
331
331
335
335
336
336
344
346
346
349
354
359
359
359
360
363
364
364
364
365
365
365
366
368
371
371
371
372
372
372
373
373
373
382
382
390
390
391
393
396
396
397
397
398
398
398
398
398
400
400
400
402
402
402
402
414
416
418
419
420
421
431
434
435
435
439
439
440
440
440
440
448
448
449
449
458
459
463
463
464
468
468
469
469
473
473
473
473
476
477
478
479
479
482
500
501
505
505
505
505
505
506
510
510
511
511
524
529
529
539
543
543
544
544
547
548
548
548
548
549
562
567
567
583
588
588
601
603
606
613
614
625
629
629
648
653
653
671
673
692
697
697
715
720
720
736
739
758
762
762
781
786
786
804
806
819
824
824
840
845
845
858
860
863
882
886
886
905
910
910
928
930
949
954
954
972
977
977
993
996
1015
1019
1019
1038
1043
1043
1061
1063
1462
1465
1466
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
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
15
15
15
15
15
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
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
18
18
18
18
18
18
18
18
18
18
18
18
20
21
22
22
23
23
23
23
23
23
23
23
23
23
24
24
25
25
25
25
25
25
26
26
26
26
26
26
27
27
31
31
32
32
33
34
35
35
35
36
36
36
36
36
39
39
40
41
41
41
41
41
41
42
42
44
44
44
45
45
46
49
52
52
52
52
54
54
58
59
60
61
61
61
62
62
62
62
62
62
62
62
62
63
68
68
68
69
70
73
73
74
74
75
75
80
80
81
82
83
88
90
92
93
94
94
94
95
95
96
96
97
97
97
97
97
97
102
106
106
107
107
110
110
111
111
111
111
111
111
111
112
112
112
112
112
112
113
113
115
116
116
116
116
117
129
131
132
132
133
133
133
133
133
133
135
138
140
140
140
141
143
144
147
148
148
148
148
148
149
149
151
152
154
157
157
158
160
165
165
165
165
165
165
165
166
166
167
167
168
168
168
168
168
168
172
173
174
175
175
175
177
177
178
178
179
181
181
182
182
182
182
182
183
183
183
183
183
184
184
184
184
186
187
187
188
193
195
196
200
202
202
203
203
204
204
204
204
204
204
205
207
207
209
214
214
214
215
219
219
220
220
222
223
223
224
224
226
236
236
236
237
237
238
238
239
239
239
239
239
239
245
248
249
249
251
252
252
252
252
253
253
253
253
254
254
254
254
254
254
255
255
257
257
257
257
257
258
258
259
260
261
261
261
267
268
270
270
271
273
273
273
274
274
275
275
275
275
275
275
278
278
278
278
285
287
288
288
288
289
290
291
293
294
294
295
295
306
306
308
309
311
311
318
319
323
323
324
324
327
328
328
328
328
332
332
337
337
345
347
350
355
360
360
360
361
364
365
365
366
366
366
367
369
373
373
373
374
374
374
380
383
383
391
391
391
391
392
394
397
397
398
398
398
399
399
400
401
401
401
403
403
403
403
415
417
419
421
422
431
435
436
436
440
440
441
441
441
441
450
450
459
464
464
465
469
469
470
470
474
474
474
474
477
479
480
480
483
501
502
506
506
506
506
506
507
511
511
512
512
525
530
530
540
544
544
545
545
548
549
549
549
549
550
563
568
568
584
589
589
602
604
607
614
615
626
630
630
649
654
654
672
674
693
698
698
716
721
721
737
740
759
763
763
782
787
787
805
807
820
825
825
841
846
846
859
861
864
883
887
887
906
911
911
929
931
950
955
955
973
978
978
994
997
1016
1020
1020
1039
1044
1044
1062
1064
1463
1466
1467
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
16
16
16
16
16
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
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
21
22
22
22
22
22
23
23
23
23
24
24
25
25
26
26
27
27
27
27
27
27
28
28
32
32
32
33
33
33
34
35
36
36
37
37
37
37
37
39
41
41
41
42
42
42
42
42
42
43
43
43
43
43
44
44
44
45
46
50
50
52
52
53
53
55
55
59
59
60
60
62
62
62
63
63
63
63
63
63
63
64
69
69
69
70
71
74
74
75
75
76
76
79
80
80
80
81
81
83
89
91
93
94
94
94
94
95
95
96
96
97
97
98
98
98
98
103
107
107
107
108
108
110
112
112
112
112
112
112
112
112
112
113
113
113
113
113
114
114
114
114
114
115
115
115
116
117
117
117
130
130
131
131
133
133
134
134
134
134
136
138
139
141
141
141
144
145
146
148
149
149
149
149
150
150
150
151
151
152
152
155
155
159
161
163
164
165
165
165
165
165
166
166
166
166
167
167
168
168
169
169
169
169
174
175
176
176
176
178
178
179
179
180
181
183
183
183
183
183
183
183
184
184
184
184
185
185
185
185
185
185
185
186
186
186
187
188
193
194
196
201
201
202
202
203
204
204
205
205
205
205
208
210
215
215
215
216
219
220
220
220
221
221
221
222
222
223
223
224
225
225
227
235
236
236
236
237
237
238
238
239
239
240
240
240
240
246
249
250
250
251
252
252
253
253
254
254
254
254
254
254
255
255
255
255
256
256
256
256
256
257
257
257
258
258
258
258
258
259
259
261
262
262
268
268
269
272
272
273
273
274
274
275
275
276
276
276
276
276
278
278
279
279
285
288
289
289
289
290
291
292
294
295
295
296
296
306
307
307
309
312
312
320
324
324
325
325
328
329
329
329
329
333
333
333
338
338
346
348
351
356
361
361
361
362
364
365
366
366
367
367
367
370
372
374
374
374
375
375
381
381
389
391
391
392
392
393
395
398
398
399
399
400
400
401
402
402
402
404
404
404
404
409
416
418
419
420
422
436
437
437
441
441
442
442
442
442
446
451
451
460
465
466
470
470
471
471
475
475
475
475
476
477
478
480
480
481
484
502
503
507
507
507
507
507
508
512
512
513
513
526
531
531
541
542
545
545
546
546
549
550
550
550
550
551
564
569
569
585
590
590
603
605
608
614
614
615
615
616
627
631
631
650
655
655
666
673
675
694
699
699
717
722
733
737
738
741
760
764
764
783
788
788
799
806
808
821
826
826
842
847
847
860
862
865
884
888
888
907
912
912
923
930
932
951
956
956
974
979
990
994
995
998
1017
1021
1021
1040
1045
1045
1056
1063
1065
1464
1467
1468
1
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
7
7
7
7
7
7
7
7
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
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
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
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
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
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
18
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
20
20
20
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
25
25
25
25
27
27
27
28
29
29
33
33
33
33
34
34
34
34
35
38
38
38
38
38
39
41
42
43
43
44
44
44
44
45
45
45
45
51
53
54
54
56
56
59
59
61
61
61
61
63
65
70
70
70
71
72
75
75
76
76
77
77
80
80
80
80
80
81
81
81
81
81
83
83
84
90
92
92
92
93
93
93
94
95
95
95
95
96
96
96
96
99
104
108
108
108
109
109
110
112
113
113
113
113
113
113
114
114
114
115
115
115
115
116
116
116
116
118
118
132
132
132
132
137
138
139
141
141
142
142
145
146
147
147
150
150
151
151
151
151
151
151
152
152
152
152
153
157
160
162
164
164
164
165
166
166
166
166
167
167
167
167
167
167
172
172
175
176
179
179
180
180
181
181
183
184
184
184
184
184
185
185
186
186
186
186
186
186
187
187
187
187
193
194
196
196
197
203
203
203
203
204
205
205
209
211
212
216
216
216
217
221
221
221
222
222
222
222
222
222
223
223
223
223
224
225
226
228
235
235
235
236
237
237
237
238
238
238
238
247
250
251
251
251
252
252
254
254
254
254
254
255
255
255
255
256
256
257
257
257
257
258
258
258
258
259
259
259
259
260
260
270
274
274
274
274
275
279
280
280
285
285
286
289
290
291
292
293
295
296
296
297
297
306
307
308
309
309
310
313
313
318
318
321
325
325
325
326
326
329
330
330
330
330
334
334
334
339
347
349
352
357
362
362
362
363
364
365
367
367
367
367
368
368
368
371
373
373
375
375
392
393
393
394
396
398
398
399
400
400
401
401
402
405
405
405
405
410
414
417
419
419
420
422
422
423
431
431
437
438
438
438
442
442
443
443
443
443
447
452
461
466
467
471
471
472
472
476
476
476
476
477
478
480
480
481
481
482
485
503
504
508
508
508
508
508
509
513
513
514
514
527
532
542
543
546
546
547
547
547
550
551
551
551
551
552
565
570
570
586
591
591
604
606
609
614
615
616
616
617
628
632
632
651
656
667
671
674
676
695
700
700
718
723
738
739
742
761
765
765
784
789
800
804
807
809
822
827
827
843
848
848
861
863
866
885
889
889
908
913
924
928
931
933
952
957
957
975
980
995
996
999
1018
1022
1022
1041
1046
1057
1061
1064
1066
1465
1468
1469
1
1
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
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
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
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
13
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
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
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
19
20
20
20
20
20
20
20
20
20
20
20
20
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
25
25
25
25
28
29
30
30
34
34
34
35
35
36
39
39
39
39
39
39
39
42
43
44
45
45
46
46
52
52
52
54
57
57
60
60
61
61
61
61
61
61
66
71
71
71
71
72
73
76
76
77
77
78
78
81
81
82
82
84
84
85
90
91
93
93
93
95
96
96
96
96
100
105
108
108
109
109
110
110
110
110
112
112
113
114
114
114
114
114
114
115
116
116
117
117
119
119
119
129
132
132
132
138
141
141
142
142
143
143
146
147
151
151
152
152
152
152
153
153
157
158
161
163
165
165
166
167
167
167
167
173
173
174
174
174
176
180
180
181
181
181
181
182
184
184
185
185
185
185
185
187
187
187
187
188
188
197
197
198
203
203
203
203
205
206
206
207
207
210
212
213
217
217
217
218
221
221
222
222
223
223
223
223
224
224
225
225
225
226
227
229
232
237
238
238
238
242
248
251
252
252
252
252
255
255
255
255
255
256
256
256
256
258
258
259
259
260
260
260
260
270
271
274
274
274
274
274
276
278
278
280
286
286
287
287
287
291
292
293
294
296
297
297
297
298
298
309
310
310
311
314
314
316
319
319
322
326
326
326
327
327
330
331
331
331
331
334
334
335
335
338
338
340
345
348
350
353
355
358
363
363
363
364
368
368
368
368
369
369
369
372
376
376
383
391
391
393
395
397
398
398
399
399
400
400
400
400
401
401
402
402
406
406
406
406
410
415
418
420
423
423
424
429
432
432
438
439
439
439
443
443
444
444
444
444
447
447
451
451
453
458
462
464
464
467
468
468
472
472
473
473
477
477
477
477
481
481
482
482
483
486
504
505
509
509
509
509
509
510
514
514
515
515
528
531
531
533
543
547
547
548
548
548
551
552
552
552
552
553
566
571
571
587
592
592
605
607
610
615
616
617
617
629
633
633
652
655
655
657
672
675
677
696
701
701
719
721
721
724
739
740
743
762
766
766
785
788
788
790
805
808
810
823
828
828
844
849
849
862
864
867
886
890
890
909
912
912
914
929
932
934
953
958
958
976
978
978
981
996
997
1000
1019
1023
1023
1042
1045
1045
1047
1062
1065
1067
1466
1469
1470
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
9
9
9
9
11
11
11
11
12
12
12
12
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
16
16
16
16
16
16
17
18
18
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
20
23
23
23
23
23
23
23
23
23
24
25
25
25
26
26
26
27
27
27
27
27
27
29
30
31
35
35
35
36
36
36
37
40
40
40
40
40
40
40
41
41
41
43
44
45
46
53
53
58
58
59
61
62
62
62
62
62
62
63
63
63
63
63
63
67
72
72
72
72
72
72
73
74
77
77
78
78
79
79
81
82
85
85
91
91
92
94
94
96
97
97
97
98
98
98
98
98
98
101
101
106
110
110
111
111
111
111
112
112
112
112
113
113
114
115
115
115
115
115
116
116
117
120
120
120
120
120
120
130
130
130
130
132
133
133
134
134
134
134
134
134
139
142
143
143
144
147
148
149
152
152
152
153
153
153
157
159
162
164
165
166
167
168
168
169
169
169
169
169
169
175
175
175
175
177
181
181
182
182
182
182
183
183
183
183
185
185
185
185
186
186
186
186
187
188
188
188
198
198
201
203
204
204
204
204
205
205
205
205
205
205
206
208
211
213
214
214
218
218
218
219
223
223
223
224
224
224
225
226
226
226
227
228
230
233
233
233
233
236
238
239
239
240
240
240
240
240
240
243
243
243
249
252
253
253
253
253
254
254
254
256
256
256
256
256
257
257
258
259
261
261
261
261
262
270
272
272
274
275
275
275
276
276
276
276
276
276
277
279
288
288
288
288
292
293
294
295
297
298
298
298
298
298
299
299
310
311
311
315
315
317
317
323
327
327
327
327
328
328
331
332
332
332
332
336
336
338
339
339
341
346
346
346
346
349
351
354
356
356
356
359
364
364
364
365
369
369
369
369
370
370
373
375
377
377
383
392
396
398
399
401
401
401
401
401
402
402
403
403
407
407
407
407
411
411
411
416
419
421
424
424
430
430
439
440
440
440
440
444
444
445
445
445
445
451
452
452
454
459
459
459
459
463
465
468
469
469
469
469
473
473
474
474
478
478
478
478
482
482
483
484
487
505
506
510
510
510
510
510
511
515
515
516
516
529
532
534
544
548
548
549
549
549
552
553
553
553
553
554
567
572
572
588
593
593
606
608
611
614
615
616
617
630
634
634
653
656
658
673
676
678
697
702
702
720
722
725
740
741
744
763
767
767
786
789
791
806
809
811
824
829
829
845
850
850
863
865
868
887
891
891
910
913
915
930
933
935
954
959
959
977
979
982
997
998
1001
1020
1024
1024
1043
1046
1048
1063
1066
1068
1467
1470
1471
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
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
8
8
8
8
8
8
8
8
8
10
10
10
10
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
15
15
15
15
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
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
17
17
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
20
21
23
24
24
25
25
25
26
27
27
28
28
28
28
32
36
36
36
36
37
37
38
41
41
41
41
41
42
42
42
42
44
45
45
46
52
52
54
54
59
59
60
60
61
61
63
63
63
63
63
64
64
64
64
68
73
73
73
73
73
74
75
78
78
79
79
80
80
80
81
81
82
83
93
95
95
95
96
96
98
98
98
99
99
99
99
102
102
102
102
107
111
111
112
112
112
113
113
113
113
114
114
115
116
116
116
116
116
116
117
117
121
121
121
121
121
131
131
131
131
132
132
134
134
135
135
135
135
140
141
143
145
148
149
149
151
152
152
153
153
153
154
154
160
163
165
165
165
166
166
167
167
167
169
169
170
170
170
170
176
176
176
178
182
182
183
183
184
184
184
184
184
186
186
186
187
187
187
187
187
187
188
189
189
196
202
202
203
203
205
205
206
206
206
206
207
209
212
214
215
215
215
215
219
219
219
220
222
223
223
224
224
224
225
225
225
227
227
227
228
231
234
234
234
237
237
238
238
240
240
241
241
241
241
244
244
250
253
254
254
254
255
255
255
255
257
257
257
258
258
258
258
259
262
262
262
262
262
273
273
273
274
274
276
276
276
277
277
277
277
278
278
278
280
289
289
289
293
294
295
296
298
299
299
299
299
300
300
309
311
316
316
324
328
328
328
328
328
328
329
329
332
333
333
333
333
337
337
338
340
340
347
347
347
350
352
355
357
357
360
365
365
365
366
367
370
370
371
371
374
375
378
378
391
391
393
397
399
400
402
402
402
402
403
403
404
404
408
408
408
408
412
412
417
420
422
422
440
441
441
441
441
441
441
445
445
446
446
446
446
451
453
453
460
460
460
464
466
469
470
470
470
474
474
475
475
479
479
479
479
480
484
485
488
506
507
511
511
511
511
511
512
516
516
517
517
530
533
535
545
549
549
550
550
550
553
554
554
554
554
555
568
573
573
589
594
594
607
609
612
614
616
617
631
635
635
654
657
659
674
677
679
698
703
703
721
723
726
741
742
745
764
768
768
787
790
792
807
810
812
825
830
830
846
851
851
864
866
869
888
892
892
911
914
916
931
934
936
955
960
960
978
980
983
998
999
1002
1021
1025
1025
1044
1047
1049
1064
1067
1069
1468
1471
1472
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
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
16
16
16
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
20
20
20
20
20
20
20
20
21
22
25
26
26
26
26
26
27
33
37
37
37
38
38
39
39
42
42
42
42
42
42
43
43
45
45
45
45
46
46
46
46
52
52
53
53
55
60
60
62
62
62
62
63
69
72
73
73
73
73
74
74
74
74
75
76
79
79
80
80
80
81
81
81
81
81
81
82
82
82
82
93
96
97
97
97
97
99
100
102
102
103
103
108
108
112
112
113
113
113
114
114
116
116
116
116
117
117
117
117
117
117
117
117
118
121
122
122
130
131
131
131
131
132
133
133
133
133
138
141
144
146
149
150
152
152
152
152
153
153
153
153
154
154
155
155
161
164
164
165
165
166
166
166
166
168
168
168
168
176
179
183
183
184
184
185
185
185
185
186
186
186
186
187
187
187
187
187
188
188
188
188
188
188
188
188
190
190
193
204
204
204
204
206
208
210
213
213
215
215
215
216
216
220
220
220
221
221
223
223
223
223
224
224
224
224
225
225
226
226
226
228
229
232
234
239
239
239
239
243
244
244
244
244
245
251
251
254
255
255
256
256
258
258
258
258
258
258
259
259
259
259
259
259
263
263
263
263
274
275
275
275
275
277
278
278
279
279
279
289
294
295
296
297
297
298
299
299
299
299
299
299
300
300
300
301
301
306
312
317
317
319
325
326
328
328
329
329
329
329
330
330
333
334
334
334
334
334
338
338
339
347
353
356
356
357
357
357
357
358
361
364
366
366
366
367
371
371
372
372
375
379
379
391
391
392
392
398
400
401
402
403
404
404
405
405
409
409
409
409
411
412
412
412
412
413
418
419
421
421
423
423
432
439
441
441
441
442
442
442
442
446
446
447
447
447
447
447
452
460
465
467
469
470
470
470
470
470
471
471
475
475
476
476
477
480
480
480
480
485
486
489
507
508
512
512
512
512
512
513
517
517
518
518
531
534
536
546
550
550
551
551
551
554
554
555
555
555
555
556
556
569
574
574
590
595
595
610
613
615
617
618
632
636
636
655
658
660
675
678
678
680
680
699
704
704
722
724
727
742
743
746
765
769
769
788
791
793
808
811
811
813
813
826
831
831
847
852
852
867
870
889
893
893
912
915
917
932
935
935
937
937
956
961
961
979
981
984
999
1000
1003
1022
1026
1026
1045
1048
1050
1065
1068
1068
1070
1070
1469
1472
1473
5
5
5
5
5
5
5
5
5
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
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
9
9
9
9
9
9
9
10
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
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
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
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
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
21
21
21
21
21
21
21
21
22
23
26
26
26
26
27
27
27
28
34
36
36
38
38
38
39
39
43
43
43
43
43
43
43
46
46
47
47
54
54
56
61
61
62
62
62
70
74
74
75
75
75
75
76
77
80
80
80
81
81
81
82
82
82
83
83
83
83
93
97
97
97
97
100
103
104
104
109
112
113
113
114
114
114
114
117
117
118
118
118
118
118
118
119
123
123
132
132
133
133
133
133
138
139
141
141
142
145
147
149
149
150
151
153
153
154
154
155
155
156
156
162
167
167
167
167
168
168
168
180
184
184
185
185
185
186
187
187
188
188
188
189
189
189
189
189
189
191
191
193
194
196
196
204
204
204
206
209
211
214
216
216
217
217
221
221
221
222
224
224
225
225
225
226
226
227
227
227
229
230
230
233
233
239
239
239
245
245
246
251
252
252
254
254
255
256
256
256
259
259
259
259
260
260
260
260
262
262
264
264
264
264
275
275
275
275
278
280
280
280
295
296
297
300
300
300
300
301
301
301
302
302
306
307
309
309
313
318
318
319
326
329
330
330
330
330
331
331
334
335
335
335
335
338
339
340
354
357
358
358
359
362
364
365
367
367
367
367
367
368
372
372
373
373
375
375
376
380
380
393
393
399
401
402
404
405
405
406
406
410
410
410
410
413
413
414
419
419
420
422
422
424
424
432
442
442
443
443
443
443
447
447
448
448
448
448
451
453
466
468
471
471
471
472
472
476
476
477
477
477
478
480
480
481
481
481
481
486
487
487
490
490
508
509
513
513
513
513
513
514
518
518
519
519
532
535
537
547
551
551
552
552
552
556
556
556
556
557
557
570
575
575
591
596
611
614
616
618
633
637
637
656
659
661
676
681
681
700
705
705
723
725
728
743
744
744
747
747
766
770
770
789
792
794
809
814
814
827
832
832
848
853
868
871
890
894
894
913
916
918
933
938
938
957
962
962
980
982
985
1000
1001
1001
1004
1004
1023
1027
1027
1046
1049
1051
1066
1071
1071
1470
1473
1474
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
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
9
9
10
10
10
10
10
10
10
10
10
10
11
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
14
14
14
14
14
14
14
14
14
14
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
21
23
24
24
26
27
27
27
28
28
28
28
28
28
28
29
34
35
37
37
39
39
39
40
40
42
42
43
44
44
44
44
44
44
46
47
50
55
55
57
60
62
62
62
63
63
64
64
71
73
73
75
75
76
76
76
77
78
80
81
81
82
82
82
83
83
84
84
93
95
97
97
98
98
98
99
99
99
99
99
99
101
102
102
104
108
110
113
113
114
114
114
115
115
115
117
118
119
119
119
119
120
124
124
131
131
131
133
133
133
134
134
135
135
138
142
142
143
146
147
148
150
150
151
152
153
154
155
156
156
157
157
163
163
166
168
168
168
168
168
169
169
170
170
170
170
170
170
181
184
185
185
185
186
186
186
186
187
188
188
188
189
190
190
190
190
192
192
193
197
197
202
204
205
205
206
206
210
212
215
215
215
217
217
221
222
222
222
223
224
225
226
227
227
228
228
228
230
234
234
237
239
240
240
241
241
241
241
241
241
244
244
246
246
251
253
255
255
255
256
256
257
257
259
260
260
260
260
261
261
263
263
265
265
265
265
268
273
275
276
276
276
276
277
277
279
281
281
281
296
297
298
299
299
301
301
301
301
302
302
303
303
306
310
310
314
319
319
327
328
328
330
331
331
332
332
334
335
336
336
336
336
339
340
341
350
354
355
357
357
358
359
359
363
364
368
368
368
368
368
369
373
373
373
374
374
376
376
377
381
381
381
389
394
394
400
402
403
405
406
406
407
407
411
411
411
411
412
412
414
414
419
420
423
423
425
425
441
441
443
443
444
444
447
448
448
449
449
449
449
452
454
467
469
470
470
472
472
472
473
477
477
477
478
478
481
481
482
482
482
482
487
491
491
509
510
514
514
514
514
514
515
519
519
520
520
533
536
538
548
552
552
553
553
553
557
557
557
557
558
558
571
576
576
592
597
607
611
612
615
616
618
634
638
638
657
660
662
677
682
682
701
706
706
724
726
729
744
748
748
767
771
771
790
793
795
810
815
815
828
833
833
849
854
864
868
869
872
891
895
895
914
917
919
934
939
939
958
963
963
981
983
986
1001
1005
1005
1024
1028
1028
1047
1050
1052
1067
1072
1072
1471
1474
1475
2
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
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
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
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
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
21
21
21
21
22
24
25
25
25
26
26
27
28
28
28
29
29
29
29
29
30
30
35
35
36
40
40
40
41
41
43
43
43
43
43
45
45
45
45
45
45
46
46
46
47
47
47
51
56
58
61
61
63
63
64
64
64
64
64
64
72
74
77
77
77
78
79
81
81
81
82
82
82
82
82
83
83
83
83
83
83
84
85
85
85
93
93
96
96
97
97
98
99
99
99
100
100
100
100
102
102
103
111
112
114
114
114
114
114
115
115
116
116
117
117
117
118
118
118
120
120
121
125
125
132
132
132
135
135
135
135
135
135
139
141
143
143
143
144
147
148
148
149
152
153
153
153
153
154
154
154
156
157
157
158
158
164
164
167
167
168
168
169
169
169
170
170
171
171
171
171
182
185
185
185
185
186
186
187
187
187
188
188
188
188
189
189
189
191
191
191
191
193
193
194
196
198
198
198
203
203
206
206
206
206
206
206
206
206
211
213
215
216
216
218
223
223
223
224
224
224
224
225
225
225
225
227
228
228
229
229
231
235
235
238
238
239
239
241
241
242
242
242
242
245
252
254
254
256
256
256
256
256
256
256
257
258
258
259
259
259
260
260
260
261
261
261
261
262
262
266
266
269
274
274
277
277
277
277
277
277
277
277
280
282
282
297
298
299
300
302
302
303
303
304
304
307
309
311
311
311
315
319
319
320
320
328
328
329
332
332
333
333
336
337
337
337
337
338
338
338
340
341
355
356
358
359
364
365
367
369
369
369
369
369
369
370
374
374
374
374
375
375
378
382
382
382
390
395
401
403
404
406
407
407
408
408
412
412
413
420
421
422
424
424
424
426
426
432
432
441
442
444
445
445
449
449
450
450
450
450
451
453
468
470
471
473
474
478
478
478
479
479
480
482
482
482
483
483
483
483
488
492
492
510
511
515
515
515
515
515
516
520
520
521
521
534
537
539
549
553
553
554
554
554
558
558
559
559
572
577
577
593
595
595
598
612
613
616
618
635
639
639
658
661
663
678
683
683
702
707
707
725
727
730
745
749
749
768
772
772
791
794
796
811
816
816
829
834
834
850
852
852
855
869
870
873
892
896
896
915
918
920
935
940
940
959
964
964
982
984
987
1002
1006
1006
1025
1029
1029
1048
1051
1053
1068
1073
1073
1472
1475
1476
2
3
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
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
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
16
16
16
16
16
16
16
16
16
16
16
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
21
21
21
21
23
25
25
26
27
27
27
27
29
37
41
41
41
42
42
44
44
44
44
46
46
46
46
46
46
47
47
48
48
51
51
55
55
57
59
62
62
62
64
64
65
65
65
65
65
65
65
65
73
73
73
75
78
78
78
79
80
82
83
83
83
83
84
84
84
84
85
91
94
94
98
98
98
98
99
100
102
102
103
103
104
108
112
113
115
115
115
115
116
116
117
117
118
118
119
119
120
121
121
122
126
126
131
131
133
133
133
136
136
136
136
136
136
136
136
141
142
145
148
150
153
154
154
154
155
155
157
157
158
159
164
164
165
168
168
169
169
169
169
170
170
170
175
183
186
186
186
186
187
187
188
188
188
189
189
189
190
190
192
192
192
192
194
194
196
197
204
204
204
207
207
207
207
207
207
207
207
207
207
212
214
215
215
216
217
217
219
221
224
224
224
225
225
225
226
226
226
228
228
229
230
232
233
236
236
240
240
240
240
244
244
246
254
255
255
257
257
258
259
259
260
260
261
261
262
262
263
263
267
267
270
270
275
275
277
277
278
278
278
278
278
278
278
278
278
281
281
281
283
283
288
298
299
299
299
300
301
303
303
304
305
309
310
316
317
320
320
321
321
328
328
329
329
330
333
333
334
334
334
337
338
338
338
338
339
339
341
341
342
346
356
357
357
357
359
360
365
367
368
370
370
370
371
375
376
379
383
383
383
383
390
390
394
394
396
401
402
404
405
407
408
408
409
409
412
412
413
413
414
422
422
423
427
427
430
433
433
441
441
442
443
445
446
446
447
450
451
451
451
452
454
454
459
469
470
470
471
472
474
475
479
479
480
480
480
481
484
484
484
484
489
493
493
511
512
516
516
516
516
516
517
521
522
535
538
540
550
554
554
555
555
555
559
559
560
560
573
578
578
594
596
599
613
614
617
636
640
640
659
662
664
679
684
684
703
708
708
726
728
731
746
750
750
769
773
773
792
795
797
812
817
817
830
835
835
851
853
856
870
871
874
893
897
897
916
919
921
936
941
941
960
965
965
983
985
988
1003
1007
1007
1026
1030
1030
1049
1052
1054
1069
1074
1074
1473
1476
1477
3
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
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
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
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
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
24
26
26
27
27
27
27
30
30
37
38
42
42
42
43
43
44
45
45
45
45
45
46
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
49
55
56
56
58
60
63
63
63
63
63
63
63
65
65
65
65
65
65
66
66
66
66
72
73
73
74
74
74
79
79
79
80
81
81
82
82
82
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
85
85
85
85
86
92
92
98
98
98
100
101
102
103
104
104
112
113
114
115
116
117
117
117
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
120
121
121
121
121
122
122
123
127
127
130
131
131
132
132
134
134
134
136
136
136
136
137
137
137
137
142
142
143
143
149
150
151
152
153
154
154
154
154
154
155
155
155
155
155
155
156
157
157
158
158
158
158
158
158
159
160
166
168
169
169
169
169
169
171
171
171
176
176
176
176
184
185
186
186
186
187
187
187
188
188
188
189
189
189
189
189
189
190
190
190
190
190
190
191
193
193
193
193
195
195
197
197
198
198
205
205
205
205
205
207
207
207
207
208
208
208
208
215
215
216
217
218
220
223
224
225
225
225
225
225
225
225
225
226
226
226
226
226
226
227
227
228
228
229
229
230
231
233
234
234
234
234
237
237
240
240
240
243
244
244
245
245
255
255
256
256
256
257
258
259
259
260
260
260
260
260
260
261
261
261
261
261
262
263
263
263
264
264
265
265
265
265
268
268
271
271
271
271
276
276
276
278
278
278
278
279
279
279
279
281
282
282
282
284
284
289
289
289
289
298
299
299
299
300
300
300
301
303
303
304
304
304
304
305
306
310
310
311
311
317
318
318
322
322
328
329
330
330
334
334
335
335
338
338
339
339
339
339
340
340
343
347
347
347
347
356
357
357
357
358
358
358
361
366
368
368
369
369
371
371
371
372
374
374
375
375
376
376
377
380
384
384
384
384
384
384
394
395
395
397
402
402
402
402
405
406
408
409
409
410
410
411
411
411
411
411
412
412
413
413
414
414
423
423
423
424
424
428
428
431
431
441
442
443
446
447
447
449
449
450
450
451
451
452
452
452
453
460
460
460
460
469
470
470
471
471
472
475
476
480
480
481
481
481
481
482
482
485
485
485
485
490
494
494
512
513
517
517
517
517
517
518
520
520
521
521
522
523
539
541
551
555
555
556
556
556
557
557
557
557
560
560
561
561
574
579
579
595
597
600
614
615
618
637
641
641
663
665
680
685
685
704
709
709
729
732
747
751
751
770
774
774
796
798
813
818
818
831
836
836
852
854
857
871
872
875
894
898
898
920
922
937
942
942
961
966
966
986
989
1004
1008
1008
1027
1031
1031
1053
1055
1070
1075
1075
1474
1477
1478
1
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
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
8
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
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
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
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
17
17
17
17
18
19
20
21
25
25
27
28
28
28
29
29
31
31
37
39
43
43
43
43
44
44
44
44
44
45
45
46
46
46
47
48
48
48
48
48
48
48
48
49
49
49
50
55
57
57
61
63
63
63
64
64
64
65
65
66
66
66
66
67
67
67
67
73
75
75
75
80
80
80
81
82
82
83
83
84
84
84
84
85
85
85
85
86
86
86
86
87
96
98
99
99
100
100
100
101
102
104
105
105
113
113
113
114
115
115
115
115
115
115
117
118
118
118
119
119
119
120
120
120
120
120
121
122
122
122
123
123
124
128
128
131
133
133
134
134
134
136
136
137
137
138
138
138
138
144
144
150
150
152
153
154
155
155
155
156
156
156
156
156
157
158
158
158
159
159
159
160
161
167
167
168
169
170
170
170
170
171
171
172
172
177
177
177
185
186
186
186
186
188
188
188
189
189
189
190
190
190
190
191
191
191
191
192
194
194
194
194
196
196
199
199
205
205
205
207
207
208
208
209
209
209
209
213
216
217
218
219
221
224
225
226
226
226
226
226
226
226
226
227
227
227
227
228
228
228
228
229
230
231
232
234
235
235
235
238
238
238
240
241
241
242
242
244
246
246
257
257
257
257
257
257
259
260
260
261
261
261
261
262
262
262
263
263
264
264
265
266
266
269
269
269
271
271
272
272
276
276
276
278
278
279
279
280
280
280
280
281
283
283
283
285
290
290
290
299
300
301
301
301
302
304
305
305
305
306
307
312
312
318
323
323
326
330
331
331
335
335
336
336
339
339
339
339
340
340
340
340
341
341
341
341
344
348
348
348
357
358
359
359
359
362
367
370
370
372
372
372
373
375
376
376
377
378
381
382
384
384
385
385
385
385
394
396
396
403
403
403
406
407
409
410
410
411
412
412
412
414
414
415
415
424
425
425
429
429
439
443
444
447
448
448
450
451
452
452
452
452
453
453
453
454
454
454
461
461
461
470
472
472
473
476
477
481
481
482
482
483
483
486
486
486
486
491
495
495
513
514
518
518
518
518
518
519
521
522
523
524
540
542
552
556
556
557
557
558
558
561
561
562
562
575
580
580
596
598
601
615
616
619
638
642
642
664
666
681
686
686
705
710
710
730
733
748
752
752
771
775
775
797
799
814
819
819
832
837
837
853
855
858
872
873
876
895
899
899
921
923
938
943
943
962
967
967
987
990
1005
1009
1009
1028
1032
1032
1054
1056
1071
1076
1076
1475
1478
1479
1
1
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
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
9
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
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
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
19
20
20
20
21
22
26
26
26
26
29
29
29
29
29
29
29
30
30
30
32
32
40
44
44
44
45
45
45
45
46
47
47
47
47
47
48
48
48
49
49
49
49
49
49
50
50
51
56
61
62
64
64
64
64
64
65
65
65
65
65
65
66
66
67
67
67
67
73
74
76
76
76
81
81
82
83
83
83
83
84
84
84
84
84
85
85
85
85
85
85
85
86
86
86
87
87
87
88
94
97
97
100
100
100
100
100
100
101
102
103
105
106
106
113
115
115
116
116
116
116
116
118
118
118
119
119
119
119
119
120
120
120
121
121
121
121
122
124
124
125
129
129
131
132
132
134
134
135
135
135
135
136
136
136
136
136
136
137
137
138
138
142
143
143
143
145
145
151
153
154
154
154
155
155
155
156
156
156
157
157
157
159
159
160
160
160
161
162
164
168
168
168
169
171
171
171
171
171
171
173
173
177
186
186
187
187
187
189
189
189
189
189
190
190
190
190
190
191
191
191
191
192
192
192
195
195
197
197
197
198
198
198
200
200
203
206
206
206
206
207
207
207
207
207
207
207
208
208
209
209
214
217
218
219
220
222
225
225
225
226
226
226
226
227
227
227
227
228
228
228
228
229
229
229
230
231
232
233
235
235
239
239
239
239
242
242
242
242
242
242
244
245
247
247
255
256
256
256
258
258
258
258
258
260
260
260
261
261
261
261
262
262
262
262
263
263
265
265
266
267
267
270
270
272
273
273
274
277
277
277
277
277
278
278
278
278
278
278
279
279
280
280
282
284
286
290
299
300
301
302
302
302
303
305
306
306
306
307
308
310
311
311
311
313
313
319
320
324
324
327
331
332
332
336
336
337
337
339
340
341
341
341
342
342
342
342
345
348
357
358
359
360
360
360
363
368
368
369
369
369
371
371
373
373
374
376
377
378
379
382
385
386
386
386
386
390
395
403
407
408
410
411
411
412
412
413
413
413
415
415
416
416
423
424
424
424
425
426
426
430
430
433
440
444
445
448
449
449
451
452
452
453
454
454
454
454
455
455
455
461
470
471
473
473
474
477
478
481
482
482
482
482
482
483
483
484
484
487
487
492
496
496
514
515
519
519
519
519
520
522
523
524
525
541
543
553
557
557
558
558
559
559
562
562
563
563
576
581
581
597
599
602
616
617
620
639
643
643
665
667
682
687
687
706
711
711
731
734
749
753
753
772
776
776
798
800
815
820
820
833
838
838
854
856
859
873
874
877
896
900
900
922
924
939
944
944
963
968
968
988
991
1006
1010
1010
1029
1033
1033
1055
1057
1072
1077
1077
1476
1479
1480
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
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
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
12
12
12
12
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
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
20
20
20
20
21
21
22
23
26
26
26
27
27
27
30
30
30
30
30
30
30
30
30
30
31
31
31
37
37
41
43
45
45
45
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
48
48
48
49
49
50
50
50
50
55
57
62
63
63
63
64
64
65
65
66
66
67
67
68
68
73
74
76
76
77
77
80
80
82
82
82
82
83
83
83
83
84
84
84
84
84
84
84
85
85
85
85
86
86
86
86
86
87
88
89
94
98
98
101
101
101
101
101
101
101
101
101
101
103
104
104
105
105
107
107
107
114
116
116
116
116
116
116
117
117
117
117
117
117
118
118
118
118
118
119
119
119
120
120
120
120
121
122
122
125
125
126
130
130
131
132
133
134
134
134
134
135
135
135
136
136
137
137
138
138
142
142
142
143
144
144
144
150
150
152
153
153
154
154
154
154
155
155
155
156
156
157
158
158
158
160
160
161
162
163
168
169
169
169
170
172
172
172
172
172
172
172
172
174
174
185
186
187
187
187
187
187
187
188
188
188
189
189
189
189
189
190
190
190
190
191
191
191
191
192
192
193
196
196
197
197
197
198
198
198
199
199
199
204
205
205
206
206
207
207
207
208
208
209
209
214
214
218
218
218
220
221
223
224
224
225
225
225
226
226
226
226
226
227
227
228
228
229
229
230
230
230
231
232
233
234
236
240
240
240
240
243
243
243
243
243
243
243
243
244
245
247
247
248
255
255
255
256
256
257
257
257
258
258
258
258
259
259
259
259
260
260
260
261
261
261
262
262
262
263
263
263
263
264
264
266
266
267
268
268
271
271
271
271
273
275
276
276
277
277
278
278
279
279
280
280
281
283
285
287
299
300
302
302
302
303
303
304
306
307
307
307
308
309
310
310
310
311
312
312
312
320
320
325
325
327
327
331
331
333
333
337
337
338
338
341
342
342
342
343
343
343
343
346
357
358
360
360
360
361
361
361
364
364
368
368
368
369
369
370
370
370
372
372
374
374
375
376
376
377
378
379
380
383
384
384
386
387
387
394
396
408
409
410
410
411
412
412
412
413
413
414
414
415
415
416
417
417
423
423
423
424
425
425
425
426
431
431
433
440
440
444
444
446
449
450
450
452
453
454
455
455
455
455
456
456
456
470
471
473
473
474
475
478
479
481
481
481
482
483
483
483
483
483
484
484
488
488
493
497
497
515
516
518
518
520
520
520
520
521
523
524
525
526
542
544
554
556
556
558
558
559
559
560
560
563
563
564
564
577
582
582
598
600
603
617
618
618
621
621
640
644
644
666
668
683
688
688
707
712
712
732
735
750
754
754
773
777
777
799
801
816
821
821
834
839
839
855
857
860
874
875
875
878
878
897
901
901
923
925
940
945
945
964
969
969
989
992
1007
1011
1011
1030
1034
1034
1056
1058
1073
1078
1078
1477
1480
1481
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
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
8
8
8
8
8
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
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
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
18
21
21
22
22
23
28
28
28
28
30
30
30
30
31
31
31
31
31
31
32
32
32
35
38
38
42
44
45
46
46
46
46
46
46
47
47
47
47
47
48
48
48
48
48
48
49
49
50
50
51
51
51
51
51
56
58
63
63
64
64
65
65
65
66
66
67
67
68
68
69
69
77
77
78
78
81
83
83
83
83
84
84
84
85
85
85
86
86
86
86
87
87
87
87
87
88
89
90
99
99
99
101
101
101
101
102
102
102
102
104
106
106
108
108
108
113
113
115
117
117
117
117
118
118
118
119
119
119
120
120
121
121
121
121
122
123
123
126
126
127
131
131
134
134
135
135
135
136
136
136
136
137
137
138
138
139
139
144
145
145
145
148
151
151
153
154
154
155
155
155
156
156
157
157
158
158
159
159
161
162
163
164
164
169
170
170
170
170
171
172
172
172
172
173
173
173
173
175
175
186
188
188
188
189
189
189
190
190
190
190
191
191
191
192
192
192
192
193
193
194
194
194
194
194
197
197
199
199
199
200
200
200
205
205
206
207
207
207
208
208
209
209
210
210
219
219
219
221
222
224
225
225
226
226
226
226
227
227
227
228
228
229
229
230
230
232
233
234
235
237
241
241
241
241
241
243
243
243
243
244
244
244
244
248
248
249
257
257
258
258
258
259
259
260
260
260
260
261
261
261
262
262
263
263
263
264
264
264
264
265
267
267
268
269
269
271
272
272
272
276
276
277
277
278
278
278
279
279
280
280
281
281
282
284
286
288
303
303
303
304
304
305
307
308
308
308
309
310
312
313
313
313
321
326
326
332
332
334
334
338
338
339
339
339
339
340
340
340
340
342
343
343
343
344
347
361
361
361
362
365
365
370
370
371
371
371
373
374
375
375
376
377
377
378
379
380
381
384
384
385
388
388
390
395
397
409
410
411
412
413
413
414
415
415
416
416
417
418
418
425
426
426
426
427
432
432
445
445
447
450
451
451
452
452
453
454
455
456
456
456
456
474
474
475
476
479
480
483
484
484
484
484
484
485
485
486
486
486
486
489
489
494
498
498
516
517
519
521
521
521
521
522
524
525
526
527
543
545
555
557
559
559
560
560
561
561
564
564
565
565
578
583
583
599
601
604
618
618
622
622
641
645
645
667
669
684
689
689
708
713
713
733
736
751
755
755
774
778
778
800
802
817
822
822
835
840
840
856
858
861
875
879
879
898
902
902
924
926
941
946
946
965
970
970
990
993
1008
1012
1012
1031
1035
1035
1057
1059
1074
1079
1079
1478
1481
1482
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
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
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
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
19
21
22
22
23
28
28
28
29
30
30
30
31
31
32
32
32
32
32
32
33
33
36
36
43
45
45
45
45
45
46
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
50
51
52
52
52
52
55
57
64
64
64
64
64
65
65
65
65
66
66
66
69
69
70
70
78
78
79
82
83
83
84
84
84
84
84
85
85
85
86
86
87
87
87
88
88
88
88
89
90
91
99
99
99
101
101
102
102
103
103
103
103
105
107
107
109
109
114
114
115
115
115
116
116
116
118
118
118
118
118
119
119
119
119
120
120
120
121
122
123
124
124
127
127
128
132
132
135
135
135
135
135
136
136
136
136
136
137
137
137
140
140
143
145
146
146
149
149
154
154
154
155
155
155
155
156
156
156
157
158
158
158
159
160
162
163
164
165
168
170
170
170
170
171
172
172
173
173
174
174
174
174
176
176
187
187
187
189
189
189
189
189
190
190
190
190
191
191
191
191
192
193
193
193
194
195
195
195
198
198
198
200
200
200
201
201
206
206
206
206
206
207
207
207
208
208
208
211
211
220
220
220
223
225
225
225
226
226
226
226
227
227
227
227
228
228
228
228
228
229
230
233
234
235
236
238
241
241
241
242
242
243
243
244
244
245
245
245
245
249
249
256
258
258
258
258
259
259
260
260
260
260
261
261
261
261
261
262
262
262
262
263
264
264
265
265
266
269
270
270
271
271
272
273
273
273
277
277
277
277
277
278
278
278
279
279
279
281
282
282
283
287
289
304
304
304
308
309
309
309
310
311
311
313
314
314
322
327
327
333
333
335
339
339
340
340
340
341
341
341
341
341
343
344
344
345
348
362
362
362
366
366
369
371
371
372
372
374
375
375
376
379
380
381
382
384
384
385
385
386
389
389
394
396
410
411
412
413
415
416
416
417
417
419
419
424
426
427
427
428
433
433
446
446
452
453
453
454
454
454
454
455
456
457
457
457
475
475
477
480
481
482
484
485
485
485
485
486
487
487
490
490
495
499
499
517
518
520
522
522
522
525
526
527
528
544
546
556
558
561
561
562
562
565
565
566
566
579
584
584
600
602
605
616
618
619
619
623
623
642
646
646
668
670
685
690
690
709
714
714
734
737
752
756
756
775
779
779
801
803
818
823
823
836
841
841
857
859
862
876
880
880
899
903
903
925
927
942
947
947
966
971
971
991
994
1009
1013
1013
1032
1036
1036
1058
1060
1075
1080
1080
1479
1482
1483
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
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
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
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
12
12
12
12
12
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
14
14
15
15
15
15
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
19
20
23
26
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
32
32
33
44
44
44
45
45
46
46
46
47
47
48
48
48
48
48
49
49
49
50
50
50
50
50
51
51
51
51
52
53
53
53
53
56
58
58
62
64
64
64
64
65
66
66
67
67
68
68
68
68
70
70
71
71
80
83
83
84
84
85
85
85
86
86
86
86
86
87
87
87
88
88
89
89
90
91
92
97
100
100
100
100
101
101
101
101
101
101
102
102
103
103
106
110
110
115
115
116
116
116
116
116
117
117
118
119
119
119
120
120
121
121
121
121
122
122
122
123
124
125
125
128
128
129
133
133
133
135
135
135
135
136
137
138
138
139
139
139
139
141
141
144
144
154
155
155
155
156
156
157
157
157
157
158
158
158
158
159
159
160
163
164
164
165
166
168
169
171
171
171
171
171
171
172
172
172
172
172
172
172
173
173
174
174
177
177
186
186
187
188
188
189
190
190
190
191
191
192
192
192
193
193
193
194
194
194
195
196
196
196
199
199
199
199
201
204
206
206
206
206
207
208
209
209
210
210
210
210
212
212
221
224
225
226
226
226
227
227
228
228
228
229
229
229
229
229
229
229
229
230
231
234
235
236
237
239
239
242
242
242
242
243
243
243
243
243
243
243
243
244
244
245
245
257
257
257
257
258
259
259
260
261
261
262
262
262
263
263
263
264
264
264
265
265
266
266
267
270
271
271
271
272
273
274
274
275
277
277
277
277
277
278
279
280
280
281
281
281
281
282
283
283
284
284
288
290
305
309
310
310
310
311
312
312
312
323
328
328
336
340
340
341
342
342
342
342
342
342
345
345
346
349
363
367
367
370
370
372
375
377
380
381
382
383
384
385
386
386
390
390
390
395
397
397
411
412
413
414
416
417
417
420
420
425
425
429
434
434
453
455
455
455
455
455
456
457
458
458
478
481
482
483
483
486
486
487
488
488
491
491
496
500
500
518
519
521
523
523
523
526
527
528
529
545
547
557
559
562
562
563
563
566
566
567
567
580
585
585
603
606
617
619
620
624
624
643
647
647
669
671
686
691
691
710
715
735
738
753
757
757
776
780
780
802
804
819
824
824
837
842
842
860
863
877
881
881
900
904
904
926
928
943
948
948
967
972
992
995
1010
1014
1014
1033
1037
1037
1059
1061
1076
1081
1081
1480
1483
1484
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
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
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
14
14
14
14
14
14
14
14
15
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
20
20
21
25
27
28
28
29
29
30
30
31
31
31
32
32
34
38
43
45
45
45
47
47
47
47
47
48
49
49
49
50
50
51
51
51
51
51
52
52
52
53
54
54
54
54
55
57
62
64
64
64
66
67
67
68
68
69
69
69
69
71
71
72
72
73
81
83
84
84
86
86
87
87
87
88
88
88
89
89
90
90
91
92
92
93
98
99
99
100
100
101
101
102
102
103
103
105
107
111
111
116
116
117
117
117
118
118
120
121
121
121
122
122
122
122
122
122
123
123
123
124
125
125
125
126
126
129
129
130
131
133
134
135
137
138
139
139
140
140
140
140
142
142
145
151
156
156
157
158
158
158
158
158
159
159
159
159
160
160
161
164
165
166
167
168
169
170
170
170
171
171
172
172
173
173
173
174
174
177
177
178
178
186
187
187
189
189
191
192
193
193
193
193
193
194
194
194
195
195
195
196
197
197
197
200
200
202
204
205
206
208
209
210
210
211
211
211
211
213
213
218
222
225
227
228
229
229
229
229
230
230
230
230
230
230
230
230
231
232
235
235
235
236
237
238
240
240
241
241
242
242
243
243
244
244
244
244
244
245
245
258
258
260
260
263
263
264
264
264
264
265
265
265
266
266
267
267
267
268
269
271
271
271
272
272
273
274
275
275
275
277
278
279
280
281
281
281
282
282
282
282
283
284
284
289
290
290
291
299
304
305
306
310
311
311
311
312
313
318
324
329
329
331
337
339
339
341
341
342
343
343
343
343
343
346
346
347
348
348
350
357
364
368
368
373
375
376
376
377
378
381
382
382
383
384
386
387
387
391
394
396
402
403
403
412
412
413
413
413
414
415
417
417
417
418
418
421
421
430
431
435
435
444
450
451
454
456
456
456
456
457
458
459
459
461
461
470
479
482
483
485
485
487
487
488
489
489
492
492
497
501
501
519
520
521
522
522
524
524
527
528
529
530
535
546
548
558
559
559
560
563
563
563
563
564
564
567
567
568
568
581
586
586
604
607
617
619
621
625
625
644
648
659
670
672
687
692
692
711
716
736
739
754
758
758
777
781
792
803
805
820
825
825
838
843
843
861
864
878
882
882
901
905
916
927
929
944
949
949
968
973
993
996
1011
1015
1015
1034
1038
1049
1060
1062
1077
1082
1082
1481
1484
1485
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
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
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
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
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
14
14
14
14
14
16
17
17
17
17
18
18
18
18
19
20
20
21
21
22
26
26
28
28
29
30
30
30
31
31
31
32
32
33
33
33
34
35
38
44
45
45
46
46
46
48
48
48
49
50
50
50
51
52
52
52
52
53
53
55
55
55
55
56
56
56
58
58
58
63
63
64
65
65
65
68
68
68
68
70
70
70
70
73
73
73
74
76
84
85
85
87
88
88
88
88
89
89
89
90
91
91
92
93
93
94
94
94
99
99
100
101
101
101
101
102
102
103
103
104
104
105
106
108
112
112
116
116
117
117
117
119
121
123
123
123
123
123
124
124
126
126
126
127
127
130
130
131
131
132
134
134
135
135
136
139
139
139
141
141
141
141
146
146
150
151
156
157
158
159
159
159
159
160
160
160
161
162
163
164
165
166
167
168
169
169
169
170
170
171
171
171
171
172
172
172
173
173
174
174
174
175
175
176
178
178
179
179
186
187
187
187
188
188
189
190
192
194
194
194
195
195
196
196
197
198
198
198
201
201
201
203
205
206
206
207
207
207
210
210
210
212
212
212
212
212
214
216
218
219
222
225
226
230
230
230
230
231
231
231
231
233
234
234
235
236
236
236
237
238
239
241
241
241
242
243
243
243
244
244
244
245
245
245
245
245
246
246
247
258
258
259
259
259
261
264
264
265
265
266
266
268
269
270
272
272
272
273
273
274
275
276
276
276
277
278
279
281
281
281
282
282
282
283
283
283
283
283
284
284
284
289
289
291
291
291
292
299
300
302
305
306
307
309
310
311
312
312
312
313
314
314
319
320
320
325
327
330
330
331
332
338
340
342
342
343
343
344
344
347
347
347
348
349
349
351
357
358
360
365
369
369
372
376
377
377
377
379
380
381
382
383
383
384
385
387
388
388
392
395
395
395
397
397
397
402
403
404
404
407
412
413
413
415
415
415
416
418
418
418
419
419
422
422
427
431
432
433
433
436
436
440
444
445
451
452
455
455
456
456
457
458
459
460
460
460
462
462
469
470
471
473
473
479
482
483
484
485
486
488
488
489
490
490
493
493
498
502
502
521
522
523
523
525
525
526
527
528
529
530
531
536
540
546
548
549
561
564
564
564
564
565
565
568
568
569
569
582
587
587
605
608
619
622
626
626
645
649
660
664
670
672
673
688
693
693
712
717
726
730
736
739
740
755
759
759
778
782
793
797
803
805
806
821
826
826
839
844
844
862
865
879
883
883
902
906
917
921
927
929
930
945
950
950
969
974
983
987
993
996
997
1012
1016
1016
1035
1039
1050
1054
1060
1062
1063
1078
1083
1083
1482
1485
1486
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
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
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
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
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
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
18
19
19
20
20
21
22
22
23
27
29
29
29
29
29
30
30
30
31
31
31
33
34
34
35
36
44
44
45
46
47
47
47
48
48
48
48
48
49
49
50
51
52
53
53
56
56
56
56
56
58
59
59
59
63
63
64
64
64
65
65
66
66
67
67
68
68
69
69
69
69
74
74
74
76
77
83
84
86
88
88
89
90
91
92
92
93
94
95
95
95
95
95
100
100
100
100
100
101
101
101
101
102
102
102
105
105
106
107
109
113
113
116
117
118
118
119
119
119
120
122
123
123
124
124
127
127
127
128
128
131
131
132
132
134
134
134
135
135
135
136
137
138
138
139
139
140
140
140
146
151
154
155
157
157
159
160
161
161
163
164
165
166
167
168
169
169
171
171
171
171
171
171
172
172
172
172
172
172
173
173
173
175
176
176
177
178
178
179
180
180
187
187
188
189
189
189
190
190
190
190
191
193
195
198
199
199
199
201
202
202
204
205
205
206
206
208
208
208
208
208
209
209
210
210
211
211
211
214
217
219
220
225
226
226
227
232
234
235
235
236
236
236
237
237
238
239
240
242
242
242
242
242
242
243
243
243
244
244
244
245
246
246
247
247
247
248
258
259
259
260
260
261
261
261
262
265
269
270
270
270
273
273
273
274
274
274
274
276
276
276
277
277
277
277
279
280
280
281
281
282
282
282
282
284
284
285
285
285
290
291
291
292
292
293
300
302
303
308
310
311
312
313
313
313
314
314
315
321
321
321
321
326
327
331
331
332
333
339
341
344
345
345
348
348
348
349
349
349
350
352
358
360
361
366
370
370
372
378
380
381
382
383
383
383
384
385
386
387
387
389
389
393
395
397
398
398
398
403
404
404
405
408
413
415
416
416
416
417
419
419
419
420
420
423
423
427
432
434
434
434
434
437
437
440
445
446
456
456
457
458
459
460
461
461
461
462
462
463
471
473
474
474
483
484
485
485
487
490
491
491
494
494
499
503
503
522
524
526
526
527
528
529
530
531
532
541
549
550
562
565
565
565
565
566
566
569
569
570
570
583
588
588
606
609
623
627
627
646
650
665
673
674
689
694
694
713
718
731
740
741
756
760
760
779
783
798
806
807
822
827
827
840
845
845
863
866
880
884
884
903
907
922
930
931
946
951
951
970
975
988
997
998
1013
1017
1017
1036
1040
1055
1063
1064
1079
1084
1084
1483
1486
1487
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
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
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
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
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
17
17
19
20
20
20
21
21
22
23
23
23
24
24
27
28
29
29
29
29
30
31
32
32
33
33
33
33
35
35
36
37
47
47
48
48
48
48
48
49
49
49
49
49
50
50
50
50
51
51
51
52
53
54
54
57
57
57
57
59
60
60
60
64
64
65
65
66
67
67
68
68
68
68
68
68
69
69
70
70
70
70
75
75
76
77
78
81
83
83
84
84
84
85
86
86
87
87
87
89
90
91
92
92
93
93
93
94
94
95
95
95
95
96
96
96
98
100
100
100
100
101
102
103
103
104
104
104
104
105
106
106
107
108
110
114
114
118
118
119
119
119
119
120
120
120
120
121
121
121
122
122
123
123
124
124
125
125
128
128
128
129
129
129
129
132
132
132
132
133
134
135
135
135
136
137
138
139
139
139
139
139
139
140
140
141
141
141
152
154
154
155
155
155
156
157
157
158
158
160
161
162
162
164
165
166
167
167
168
168
169
169
169
170
170
171
171
171
171
172
172
173
173
173
173
174
174
175
175
175
175
176
177
177
178
178
179
180
181
181
189
189
189
190
190
190
190
190
191
191
191
191
192
192
192
193
193
194
196
199
200
200
200
203
203
205
206
206
208
208
209
209
209
210
210
210
210
210
210
211
211
212
212
212
218
218
220
221
225
225
226
226
226
227
227
227
228
228
228
229
229
233
235
236
236
236
237
237
238
238
238
239
239
240
240
240
241
241
242
242
242
242
243
243
244
245
245
246
246
246
246
247
247
247
248
248
248
249
260
260
261
261
261
261
262
262
262
263
263
263
264
264
266
266
270
270
271
274
274
274
275
275
275
275
275
275
277
277
277
278
278
278
278
280
281
281
281
281
281
281
282
282
283
283
283
285
285
286
286
286
291
291
292
293
293
294
302
303
304
309
311
312
313
313
314
314
314
314
315
315
316
316
321
321
322
322
327
331
332
332
333
334
340
342
345
346
346
349
349
349
349
350
350
351
353
360
361
362
367
371
371
373
379
381
382
383
384
384
385
385
386
386
387
387
388
388
390
390
394
398
399
399
399
404
404
405
406
409
412
415
416
416
417
417
417
418
420
420
420
421
421
421
421
424
424
424
424
433
434
434
435
435
438
438
444
446
447
457
457
458
459
459
460
460
461
461
462
462
462
462
462
463
464
473
474
475
475
484
485
486
488
491
492
492
495
495
500
504
504
519
523
525
527
527
528
529
530
530
531
531
532
532
533
533
542
550
551
558
562
563
566
566
566
566
567
567
567
567
570
570
570
570
571
571
584
589
589
607
610
624
628
628
647
651
666
674
675
690
695
695
714
719
732
741
742
757
761
761
780
784
799
807
808
823
828
828
841
846
846
864
867
881
885
885
904
908
923
931
932
947
952
952
971
976
989
998
999
1014
1018
1018
1037
1041
1056
1064
1065
1080
1085
1085
1484
1487
1488
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
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
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
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
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
17
17
18
20
21
23
23
24
24
25
25
27
29
29
31
32
33
33
33
33
34
34
34
34
36
36
37
38
48
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
53
54
54
54
55
55
56
56
58
58
58
58
60
64
64
66
67
67
68
68
69
69
69
69
70
70
71
71
71
76
76
77
78
78
82
84
85
86
86
86
86
87
87
87
87
87
88
88
88
88
88
90
91
92
94
95
95
96
96
96
97
97
97
98
100
102
103
104
104
105
105
105
105
105
105
106
107
107
108
108
111
115
115
119
120
121
121
121
121
121
122
122
122
122
122
123
123
124
125
125
126
129
129
129
133
133
133
133
134
134
135
135
135
136
136
138
138
139
139
140
140
140
140
141
141
142
142
146
146
153
155
156
157
157
157
158
158
158
158
158
159
159
161
162
163
163
166
167
169
169
169
170
170
171
171
171
173
173
174
175
175
176
176
176
176
177
178
178
179
180
182
182
189
190
190
191
191
191
192
192
192
192
192
193
193
193
193
193
194
194
195
196
196
197
200
200
200
201
201
201
201
201
204
204
206
206
206
209
209
210
210
210
210
211
211
211
211
212
212
213
213
218
218
219
219
221
221
226
227
228
228
228
228
228
229
229
229
229
229
229
230
230
232
234
236
237
237
238
238
240
241
241
242
242
242
244
244
245
246
246
247
247
247
247
247
248
248
248
249
249
249
249
259
259
261
262
263
263
263
263
263
264
264
264
264
264
265
265
267
271
271
272
275
275
275
276
276
277
277
279
279
279
279
280
281
281
282
282
282
282
282
282
283
283
284
284
286
286
292
293
294
295
302
303
304
304
310
312
313
314
314
315
315
316
316
317
317
322
323
323
328
331
331
332
333
334
334
341
342
342
343
346
346
346
347
347
350
350
350
351
351
354
360
361
362
362
368
372
372
372
372
374
378
380
382
383
384
387
387
388
388
389
389
391
395
395
395
399
405
406
410
415
416
417
417
417
418
418
419
421
421
421
425
425
425
425
427
427
434
435
436
436
439
439
444
444
445
447
447
458
458
459
462
462
463
463
463
463
464
473
474
475
475
476
485
485
485
486
487
488
488
489
492
492
492
493
493
496
496
501
505
505
520
524
524
526
528
528
529
530
533
533
534
534
543
551
552
563
564
567
567
567
567
571
571
571
571
572
572
585
590
608
611
625
629
629
648
652
667
675
676
691
696
696
715
720
733
742
743
758
762
762
781
785
800
808
809
824
829
829
842
847
865
868
882
886
886
905
909
924
932
933
948
953
953
972
977
990
999
1000
1015
1019
1019
1038
1042
1057
1065
1066
1081
1086
1086
1485
1488
1489
1
1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
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
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
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
13
13
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
15
15
16
16
16
17
17
17
17
17
18
18
18
18
20
20
21
22
23
24
25
25
26
26
28
29
30
30
31
33
33
33
34
34
35
35
35
35
36
38
39
45
51
51
51
52
52
52
52
52
52
52
53
53
53
54
55
55
55
56
56
57
57
58
58
58
59
59
59
59
63
67
67
68
69
69
69
69
69
69
70
70
71
71
71
71
71
71
72
73
76
77
77
78
79
86
87
87
87
87
88
88
88
88
88
88
89
89
89
89
89
89
91
92
93
95
95
96
96
97
97
97
98
99
100
101
101
104
104
104
106
106
106
106
106
106
108
109
112
116
116
116
116
122
122
122
123
123
123
123
123
123
124
124
124
125
126
127
130
130
130
131
134
134
134
134
134
134
135
135
136
137
138
139
139
140
140
140
140
140
140
141
141
142
142
142
142
142
142
144
147
147
149
154
158
158
158
159
159
159
159
159
159
160
160
160
162
163
167
168
170
170
170
171
171
171
171
171
171
172
172
172
175
175
175
177
177
177
177
178
180
183
183
186
187
189
190
191
192
193
193
193
194
194
194
194
194
194
195
195
195
198
199
201
201
201
202
202
202
202
202
205
205
205
207
208
209
210
210
211
211
211
211
211
211
212
212
213
213
213
213
213
213
214
219
219
220
221
222
229
229
229
229
229
230
230
230
230
230
230
230
231
231
231
233
235
237
238
238
239
241
242
242
242
243
243
243
244
245
246
246
246
247
248
248
248
248
248
249
249
249
250
257
258
260
260
262
264
264
264
265
265
265
265
265
265
266
266
266
268
272
272
273
276
276
276
276
280
280
280
280
280
281
282
282
282
282
282
282
283
283
283
283
284
284
284
284
284
284
284
284
284
287
293
295
296
299
302
303
304
305
311
312
313
314
315
315
316
316
317
317
318
318
321
323
327
329
332
332
334
334
335
342
344
347
347
347
348
348
351
351
351
352
355
357
360
361
362
363
369
370
373
373
373
373
375
379
381
383
384
385
388
388
389
389
392
396
396
396
397
397
397
406
411
412
415
416
417
418
418
419
419
420
422
422
422
425
426
426
426
426
428
428
434
435
436
440
440
440
445
445
447
448
455
459
459
460
463
463
464
464
464
464
470
473
474
475
476
477
483
486
486
486
487
490
493
493
493
494
494
497
497
502
506
506
525
525
527
529
529
530
531
534
534
535
535
544
552
553
564
565
568
568
568
568
572
572
572
572
573
573
586
591
609
612
626
630
630
649
653
668
676
677
692
697
697
716
721
734
743
744
759
763
763
782
786
801
809
810
825
830
830
843
848
866
869
883
887
887
906
910
925
933
934
949
954
954
973
978
991
1000
1001
1016
1020
1020
1039
1043
1058
1066
1067
1082
1087
1087
1486
1489
1490
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
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
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
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
12
13
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
18
18
18
18
18
18
19
19
19
21
22
23
23
24
25
26
26
27
27
28
28
29
29
31
31
32
32
32
32
33
33
34
34
34
37
38
38
39
40
45
45
46
48
48
48
51
52
52
52
52
53
53
53
53
53
53
54
54
55
56
56
56
57
57
59
59
59
59
60
60
60
60
63
65
67
67
68
69
69
69
71
71
71
71
71
71
72
72
72
72
72
72
73
77
78
78
79
80
87
87
87
88
88
88
88
88
89
89
89
89
89
90
90
90
90
92
92
93
94
95
96
96
97
97
98
98
99
99
99
100
100
102
103
103
104
104
105
105
105
107
109
110
113
116
116
117
117
117
117
117
117
117
119
119
122
123
123
123
123
123
124
124
124
124
124
125
125
127
128
128
131
131
131
131
134
135
135
135
135
135
136
136
137
138
138
138
139
140
140
140
140
142
142
142
142
142
142
143
143
143
143
143
143
145
145
150
151
151
155
158
159
159
159
159
160
160
160
160
160
161
161
161
163
164
168
169
170
170
171
171
172
172
172
172
172
172
173
173
173
174
174
175
175
176
176
176
178
179
184
184
187
187
188
190
190
190
191
192
193
193
194
194
194
194
195
195
195
195
195
196
196
199
200
200
202
202
202
203
203
203
205
206
206
208
208
209
209
209
210
211
211
211
213
213
213
213
213
213
214
214
214
214
214
214
220
221
222
223
229
230
230
230
230
230
230
230
230
230
231
231
231
231
231
231
232
232
234
236
236
236
238
238
239
240
241
241
242
242
243
243
244
244
244
245
245
246
246
246
247
247
247
248
249
250
250
250
251
258
258
258
258
259
261
261
263
264
264
264
265
265
265
265
266
266
266
266
266
267
267
269
273
273
274
274
274
276
277
277
277
277
280
280
281
281
281
281
281
282
282
282
284
284
284
284
284
284
285
285
285
285
285
285
285
285
285
285
288
291
296
297
303
304
305
306
312
313
313
314
315
317
317
318
318
319
319
321
322
330
333
335
335
336
343
343
343
343
345
348
348
348
349
349
349
352
352
353
356
361
362
363
364
370
371
371
374
374
376
377
377
380
382
382
384
384
385
386
387
389
389
390
390
393
397
398
398
398
398
404
412
416
417
418
419
419
420
420
420
421
423
423
423
423
426
426
427
427
427
427
434
435
436
441
441
446
448
449
456
456
456
456
460
460
461
462
464
464
465
465
465
474
475
476
477
478
484
484
487
488
491
494
494
494
495
495
498
498
503
507
507
526
526
528
528
530
530
530
531
532
535
535
536
536
545
553
554
565
566
566
569
569
569
569
569
573
573
573
573
574
574
587
592
610
613
627
631
631
650
654
669
677
678
693
698
698
717
722
735
744
745
760
764
764
783
787
802
810
811
826
831
831
844
849
867
870
884
888
888
907
911
926
934
935
950
955
955
974
979
992
1001
1002
1017
1021
1021
1040
1044
1059
1067
1068
1083
1088
1088
1487
1490
1491
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
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
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
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
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
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
12
12
12
12
12
12
12
12
13
14
15
15
15
15
15
15
15
15
15
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
20
20
22
23
23
24
24
25
27
27
28
28
29
29
32
32
33
33
33
33
33
33
34
34
35
35
35
39
39
39
39
40
41
44
46
48
48
48
48
49
49
49
49
51
52
52
52
52
53
53
53
53
53
54
54
54
54
55
55
56
57
57
57
58
58
58
58
60
60
60
61
61
61
61
61
61
63
65
65
66
67
68
69
70
72
72
73
73
73
73
73
73
74
77
78
78
79
79
80
86
87
88
88
88
88
89
89
89
89
89
90
90
90
90
91
91
93
93
94
95
95
96
97
98
98
99
99
99
100
100
100
103
104
104
104
104
104
104
105
105
106
106
106
106
108
110
114
117
118
118
118
118
118
119
119
119
120
120
122
123
123
123
123
123
123
124
124
124
124
124
125
125
125
126
126
128
132
132
132
132
134
135
136
136
136
136
136
136
137
137
138
138
139
140
141
141
143
143
144
144
144
144
144
144
152
152
152
152
156
157
158
159
159
159
159
160
160
160
160
161
161
161
161
162
162
162
164
165
169
170
171
171
173
173
173
173
173
174
174
174
175
175
175
175
175
175
176
176
177
177
177
178
178
179
180
185
185
188
190
190
190
190
191
191
191
191
192
193
193
194
194
194
194
195
195
195
195
195
196
196
196
197
197
199
200
203
203
203
204
204
204
204
204
205
207
207
207
207
208
209
209
210
210
211
212
214
214
215
215
215
215
215
215
219
221
222
223
229
230
230
230
230
231
231
231
231
231
231
231
231
232
232
232
232
233
233
235
236
236
237
239
239
240
241
242
242
244
244
245
245
245
246
246
246
246
246
246
247
247
247
248
248
248
248
249
249
250
251
251
251
259
261
261
261
262
262
264
265
265
265
265
265
265
265
265
266
266
266
266
267
267
267
268
268
270
270
274
274
274
275
276
278
278
278
278
280
281
282
282
282
282
282
283
285
285
286
286
286
286
286
286
286
286
286
289
291
291
292
297
298
303
304
304
305
306
313
315
316
318
318
319
319
320
320
321
323
331
332
334
336
336
341
343
344
344
344
345
346
347
349
349
349
349
349
350
350
350
350
350
353
353
353
353
353
356
357
361
362
362
363
364
371
375
375
378
378
378
378
381
383
385
385
386
387
387
388
390
390
391
391
394
398
399
399
399
404
404
405
413
416
417
417
418
419
420
421
422
424
424
424
424
428
428
428
428
434
436
437
442
442
445
447
449
457
457
457
461
461
462
462
462
463
465
465
466
466
466
474
475
475
476
477
479
487
488
489
491
492
495
495
495
496
496
496
496
499
499
499
499
504
508
508
527
527
531
531
531
532
533
536
536
537
537
546
554
555
566
570
570
570
570
570
574
574
574
574
575
575
588
593
600
604
610
613
614
619
628
632
632
651
655
670
678
679
694
699
699
718
723
736
745
746
761
765
765
784
788
803
811
812
827
832
832
845
850
857
861
867
870
871
885
889
889
908
912
927
935
936
951
956
956
975
980
993
1002
1003
1018
1022
1022
1041
1045
1060
1068
1069
1084
1089
1089
1488
1491
1492
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
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
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
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
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
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
14
14
14
14
14
14
17
18
18
18
18
19
19
19
19
19
19
20
24
24
25
25
28
28
29
29
29
29
32
33
33
33
34
34
34
34
34
35
35
36
36
39
39
40
40
41
42
44
49
49
49
49
50
50
50
50
51
51
52
52
53
53
53
54
54
54
54
54
55
55
57
58
58
58
60
62
62
62
62
62
62
64
65
66
67
68
68
68
69
69
69
69
69
70
70
70
73
73
75
77
79
80
80
87
87
88
88
89
89
89
89
90
90
90
90
90
91
91
93
94
94
95
95
96
96
98
99
99
100
100
100
100
100
101
103
104
104
105
105
105
105
106
106
106
107
107
107
108
108
115
118
119
119
120
120
120
121
121
121
122
122
122
123
123
123
124
124
124
124
125
125
125
125
125
126
129
133
133
133
133
135
137
137
137
137
137
138
139
139
139
140
140
140
140
140
141
141
141
142
144
144
147
152
152
153
153
157
157
158
158
159
159
160
160
160
161
161
161
161
162
162
163
165
166
170
171
171
171
173
174
174
174
175
175
175
175
176
176
176
176
177
177
177
178
178
178
179
180
181
186
186
190
191
191
191
192
192
192
192
193
193
193
194
194
195
195
195
196
196
196
196
197
200
201
202
204
204
204
206
208
208
208
208
208
209
210
210
210
210
211
211
211
211
211
211
212
212
212
215
215
219
220
221
221
223
229
229
230
230
231
231
231
231
232
232
232
232
232
233
233
235
236
236
237
238
240
240
241
242
242
242
245
245
245
246
246
246
246
247
247
247
247
248
248
248
248
249
249
250
251
252
252
260
262
262
262
263
263
263
264
264
265
265
265
265
266
266
266
266
266
267
267
267
267
268
270
275
275
275
276
279
279
279
279
281
281
281
282
282
282
282
282
283
283
283
283
283
283
283
286
286
286
290
290
291
292
293
298
299
303
305
306
314
315
316
317
319
319
319
320
320
321
321
321
322
324
332
332
333
334
334
337
344
346
347
348
348
349
350
350
350
350
351
354
354
354
354
357
358
361
363
364
372
373
376
376
378
378
379
379
382
383
386
386
387
388
388
389
391
391
392
392
399
399
403
404
405
406
414
416
418
419
421
422
423
425
425
425
425
428
429
429
429
429
432
434
435
437
438
443
443
445
446
447
447
457
461
462
462
463
463
464
466
466
467
467
467
474
476
477
480
486
489
490
492
493
496
496
496
500
500
500
500
505
509
509
528
532
532
532
533
534
537
537
538
538
547
555
556
567
571
571
571
571
571
575
575
575
575
576
576
589
594
605
614
615
617
619
620
629
633
633
656
671
679
680
695
700
700
724
737
746
747
762
766
766
789
804
812
813
828
833
833
846
851
862
871
872
886
890
890
913
928
936
937
952
957
957
981
994
1003
1004
1019
1023
1023
1046
1061
1069
1070
1085
1090
1090
1489
1492
1493
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
6
6
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
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
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
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
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
14
14
14
14
19
19
19
19
20
20
20
20
23
25
25
26
26
28
29
29
30
30
32
33
34
34
34
34
34
34
34
34
35
35
36
36
36
36
36
36
40
41
41
42
43
48
49
50
50
50
50
51
51
51
54
54
54
55
55
55
55
56
58
59
59
59
63
63
63
63
63
63
65
67
68
68
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
76
78
80
81
81
89
90
90
90
91
91
91
91
92
94
95
95
96
97
97
99
99
100
100
101
101
101
102
103
104
105
105
105
105
105
105
106
106
107
107
107
107
107
107
107
108
109
109
116
120
120
120
121
121
121
122
122
123
125
125
125
125
126
126
126
126
130
134
134
134
134
136
138
138
138
138
138
139
139
141
141
141
141
141
141
141
142
142
142
142
142
142
142
142
142
143
147
153
154
154
158
161
161
161
161
162
162
162
163
164
166
167
170
171
172
174
175
175
175
176
176
176
176
176
176
176
176
177
177
178
178
178
178
178
178
178
180
181
182
187
187
191
191
192
192
192
193
193
193
194
196
196
196
197
197
197
201
202
202
205
205
205
207
209
209
209
209
210
210
211
212
212
212
212
212
212
212
212
213
213
213
213
213
213
213
213
213
220
221
222
222
224
232
232
232
233
233
233
233
234
236
237
238
239
241
241
241
242
243
245
246
246
246
247
247
247
247
247
247
247
247
248
248
249
249
249
249
249
249
249
249
251
252
253
253
260
262
263
263
263
264
264
266
267
267
267
267
267
268
268
268
274
276
276
276
277
280
280
280
280
281
283
283
283
283
283
283
283
284
284
284
284
284
284
284
284
284
284
284
284
284
291
291
293
294
299
300
304
306
307
315
315
317
318
320
320
320
321
321
322
322
323
325
333
333
334
335
335
338
347
348
349
349
351
351
351
351
352
355
355
355
355
358
359
362
364
365
373
373
377
377
379
380
380
383
387
387
387
388
389
389
390
392
392
393
393
400
404
406
407
415
417
419
420
422
423
424
426
426
426
426
428
430
430
430
430
433
436
438
439
444
444
446
447
448
448
462
463
464
464
465
467
467
468
468
468
475
477
478
481
486
490
491
493
494
497
497
497
501
501
501
501
506
510
510
529
533
533
533
534
535
538
538
539
539
548
556
557
568
572
572
572
572
572
576
576
576
576
577
577
590
595
606
615
616
618
620
630
634
634
657
672
680
681
696
701
701
725
738
747
748
763
767
767
790
805
813
814
829
834
834
847
852
863
872
873
887
891
891
914
929
937
938
953
958
958
982
995
1004
1005
1020
1024
1024
1047
1062
1070
1071
1086
1091
1091
1490
1493
1494
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
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
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
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
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
17
18
18
20
20
21
21
21
23
24
26
26
27
28
30
30
31
31
32
32
33
34
34
34
35
36
36
36
36
36
36
37
37
37
37
37
37
39
41
43
44
48
48
49
49
50
50
50
51
51
51
52
52
52
53
55
55
56
56
56
57
57
59
60
60
60
60
64
64
64
64
64
64
65
68
69
71
72
72
72
72
72
72
72
72
72
72
72
77
77
78
79
81
82
88
89
91
91
92
92
92
93
96
96
97
98
98
98
99
100
101
101
102
102
102
103
103
103
104
105
105
105
106
107
107
107
107
107
107
108
108
108
108
108
108
108
109
109
110
117
120
121
121
121
121
121
122
123
123
123
123
124
126
126
126
127
127
127
131
135
135
135
135
135
136
137
139
139
139
139
139
142
143
143
143
143
143
143
143
143
143
143
143
144
152
154
159
159
160
161
161
162
162
162
163
163
164
164
167
168
170
172
173
174
174
175
176
176
176
176
176
177
177
178
178
178
178
178
178
178
179
179
179
179
179
179
181
182
183
188
188
190
191
191
192
192
192
192
193
194
194
194
194
195
197
197
198
198
202
203
203
206
206
206
206
210
210
210
210
211
211
212
213
213
214
214
214
214
214
214
214
214
214
214
214
219
221
222
222
223
225
230
231
233
233
234
234
234
235
236
238
239
240
241
242
242
243
244
245
245
246
247
247
247
247
247
248
248
248
249
249
249
249
249
249
249
250
250
250
250
250
250
250
250
252
254
254
262
263
263
263
264
265
265
265
265
266
267
268
268
269
269
274
274
275
277
277
277
277
281
281
281
281
284
285
285
285
285
285
285
285
285
285
285
285
285
285
285
285
291
292
294
295
300
301
303
304
305
307
316
318
319
321
321
322
322
323
323
324
324
326
332
334
334
335
335
336
339
348
349
349
349
350
352
352
352
352
352
353
356
356
356
356
359
360
361
362
363
365
374
378
378
378
380
384
387
387
388
388
388
389
390
390
390
393
393
394
394
401
404
407
408
416
416
417
418
420
423
424
425
427
427
427
427
431
431
431
431
437
437
439
440
445
445
445
447
448
448
449
462
464
465
465
466
468
468
469
469
469
474
475
476
478
482
491
492
494
495
495
498
498
498
498
502
502
502
502
507
511
511
530
534
534
534
535
536
539
539
540
540
549
557
558
569
573
573
573
573
573
577
577
577
577
578
578
591
596
607
616
617
618
620
631
635
635
658
673
681
682
697
702
702
726
739
748
749
764
768
768
791
806
814
815
830
835
835
848
853
864
873
874
888
892
892
915
930
938
939
954
959
959
983
996
1005
1006
1021
1025
1025
1048
1063
1071
1072
1087
1092
1092
1491
1494
1495
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
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
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
10
10
10
10
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
12
13
14
18
18
18
19
19
22
23
24
24
27
28
28
31
31
32
32
32
33
34
34
34
35
36
37
37
38
38
38
38
38
38
39
40
44
44
45
49
49
49
49
51
51
51
51
52
52
53
53
54
54
57
60
61
61
61
61
65
65
65
65
65
65
66
68
68
68
70
72
73
73
73
73
73
73
77
78
78
79
79
83
89
89
89
89
90
90
93
94
94
97
97
98
99
99
99
101
102
102
103
103
103
103
104
104
105
106
106
108
108
108
109
109
109
109
109
109
109
110
118
120
120
122
122
122
122
122
123
124
124
124
125
125
126
128
132
135
136
136
136
136
136
137
137
139
139
140
140
140
140
143
144
144
144
144
144
144
145
147
147
152
153
157
160
160
160
161
161
162
162
164
165
168
169
170
173
174
174
175
176
177
177
177
178
178
179
179
179
180
180
180
180
180
180
181
183
184
189
189
190
191
191
191
192
192
193
193
193
194
195
195
196
196
202
202
203
207
207
207
207
207
210
210
211
211
211
211
212
213
214
214
215
215
215
215
215
215
219
221
222
223
226
231
231
232
232
235
236
237
239
239
241
241
243
243
244
245
245
246
247
248
248
248
248
249
249
249
250
250
250
250
251
251
251
251
251
251
251
255
255
260
260
262
262
264
264
264
265
265
266
266
266
267
267
270
275
275
277
278
278
278
281
281
282
282
282
282
285
286
286
286
286
286
286
286
286
286
286
292
293
294
296
301
302
303
304
305
305
315
315
317
319
320
320
322
322
323
323
324
324
325
327
332
334
335
335
336
340
349
350
351
352
353
353
353
353
354
357
357
357
357
360
361
361
362
363
363
373
373
375
378
379
379
379
383
385
388
388
389
389
390
390
391
391
394
394
395
395
402
405
407
409
416
417
417
418
418
424
425
426
428
428
428
428
428
428
432
432
432
432
433
438
440
441
445
446
446
447
448
449
463
465
465
466
467
469
469
470
470
470
474
475
476
476
483
486
486
492
493
495
499
499
499
499
503
503
503
503
508
512
512
531
535
535
535
536
537
540
540
541
541
550
558
559
570
574
574
574
574
574
578
578
578
578
579
579
592
597
608
617
618
620
632
636
636
659
674
682
683
698
703
703
727
740
749
750
765
769
769
792
807
815
816
831
836
836
849
854
865
874
875
889
893
893
916
931
939
940
955
960
960
984
997
1006
1007
1022
1026
1026
1049
1064
1072
1073
1088
1093
1093
1492
1495
1496
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
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
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
20
21
23
24
25
28
29
32
32
32
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
37
38
38
39
41
45
46
50
52
52
52
52
53
55
56
58
59
61
62
62
62
62
66
66
66
66
66
66
68
69
69
69
70
70
70
73
73
79
79
80
84
87
90
90
91
92
94
95
98
98
98
99
100
100
103
103
104
104
104
104
104
104
105
105
105
105
105
105
106
106
106
109
109
109
110
117
119
123
123
123
123
123
126
126
127
127
133
137
137
137
137
137
138
140
140
141
141
141
141
141
141
141
144
144
145
146
148
148
152
154
161
162
163
163
165
166
169
170
172
174
175
175
175
175
176
176
176
176
176
177
177
177
178
178
179
179
180
180
181
182
185
190
190
192
193
194
194
194
197
198
200
203
203
204
208
208
208
208
211
211
211
212
212
212
212
212
212
212
213
214
215
215
222
223
227
230
233
234
236
237
239
240
240
244
244
245
246
246
246
246
247
247
247
247
247
248
248
248
249
249
250
250
250
251
251
251
252
256
256
258
261
261
265
265
265
265
267
268
269
276
278
279
279
279
282
282
283
283
283
283
283
283
283
285
286
286
287
287
287
287
294
294
295
302
303
305
306
313
316
316
318
320
321
323
323
324
324
324
325
325
326
335
336
336
341
343
350
352
352
353
354
354
354
354
358
358
358
358
361
362
363
364
371
374
374
376
378
380
380
380
386
389
390
390
391
391
392
392
395
395
396
396
398
403
407
408
418
418
419
425
426
426
427
429
429
429
429
429
429
433
433
433
433
437
439
442
447
447
448
449
456
465
466
466
467
470
470
471
471
471
476
477
484
484
487
487
493
494
496
500
500
500
500
504
504
504
504
509
513
513
532
536
536
536
537
538
541
541
542
542
551
559
560
571
575
575
575
575
575
579
579
579
579
580
580
593
598
609
618
619
633
637
637
660
675
683
684
699
704
704
728
741
750
751
766
770
770
793
808
816
817
832
837
837
850
855
866
875
876
890
894
894
917
932
940
941
956
961
961
985
998
1007
1008
1023
1027
1027
1050
1065
1073
1074
1089
1094
1094
1493
1496
1497
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
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
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
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
10
10
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
15
20
20
20
21
21
21
24
25
29
30
33
33
33
33
33
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
37
38
39
40
42
46
47
49
50
51
53
53
53
55
55
55
56
56
56
59
60
60
60
60
62
63
63
63
63
67
67
67
67
67
67
69
70
71
71
71
71
72
72
80
85
88
88
91
91
91
92
92
92
95
96
99
99
99
100
101
101
104
104
104
105
105
105
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
110
118
118
118
118
120
121
124
124
124
124
126
126
126
127
127
127
127
128
134
138
138
138
138
138
142
142
142
142
142
142
142
142
143
143
146
146
147
150
152
153
155
162
162
162
162
162
163
163
163
164
166
170
171
173
173
173
173
175
175
176
177
177
177
177
177
177
177
178
178
178
178
178
178
178
178
178
179
179
180
180
182
183
186
191
191
192
193
195
195
197
197
197
198
198
198
201
201
205
209
209
209
209
212
213
213
213
213
213
213
213
213
214
214
214
215
223
228
231
231
231
231
233
233
233
234
234
234
237
238
240
241
241
245
245
246
246
247
248
248
248
248
248
248
248
249
249
249
249
249
249
249
249
249
250
250
251
251
251
253
257
257
259
259
263
263
265
266
266
266
268
268
268
268
269
269
269
275
277
279
280
280
284
284
284
284
284
284
284
284
285
285
286
286
286
286
288
288
288
288
295
295
296
303
304
306
314
314
319
321
322
324
324
325
325
325
326
326
327
336
342
344
344
344
344
351
353
353
354
355
355
355
355
359
359
359
359
362
363
364
372
372
376
377
378
379
381
381
381
387
388
390
391
391
392
392
393
396
396
397
397
399
399
399
399
404
408
409
419
419
426
427
427
427
428
430
430
430
430
434
434
434
434
438
440
443
448
448
449
457
457
457
457
466
467
467
468
471
471
472
472
472
477
485
485
485
494
495
497
501
501
501
501
505
505
505
505
510
514
514
533
537
537
537
538
539
542
542
543
543
552
560
561
572
576
576
576
576
576
580
580
580
580
581
581
599
610
619
620
634
638
638
661
676
684
685
700
705
705
729
742
751
752
767
771
771
794
809
817
818
833
838
838
856
867
876
877
891
895
895
918
933
941
942
957
962
962
986
999
1008
1009
1024
1028
1028
1051
1066
1074
1075
1090
1095
1095
1494
1497
1498
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
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
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
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
13
13
13
13
13
13
13
13
13
13
15
16
18
19
21
21
22
22
25
26
30
31
34
34
35
35
36
37
37
37
37
37
37
37
37
37
37
37
38
39
41
43
47
48
49
50
51
51
51
51
53
54
56
56
57
57
60
61
61
61
63
64
64
64
64
68
68
68
68
68
68
69
70
71
72
72
72
73
73
73
73
73
73
73
73
81
86
89
90
92
92
93
93
96
97
99
100
100
101
101
102
102
105
105
106
106
106
107
107
108
108
108
108
108
108
108
108
108
108
108
109
119
119
119
121
122
122
124
125
125
125
127
127
127
128
128
128
129
135
139
139
139
139
139
143
143
143
143
143
143
143
144
144
144
144
144
144
144
144
148
151
154
156
160
161
162
163
163
163
163
164
164
164
164
171
172
174
174
174
176
177
178
179
179
179
179
179
179
179
179
179
179
179
180
180
181
181
182
183
184
187
192
192
193
193
194
195
196
198
198
199
199
206
210
210
210
210
212
214
214
214
214
214
214
214
214
215
215
215
215
215
215
215
215
215
216
222
229
231
232
232
232
232
234
234
235
235
238
239
240
241
242
242
246
246
247
248
249
250
250
250
250
250
250
250
250
250
250
250
251
251
252
252
252
254
258
258
264
264
264
266
267
267
269
269
269
270
270
275
276
277
277
281
281
285
285
285
285
285
285
285
286
286
286
286
286
286
286
286
287
287
287
289
289
289
289
295
296
296
297
304
305
307
320
322
323
325
325
325
326
326
327
327
327
328
335
343
345
345
345
352
353
354
354
355
356
356
356
356
360
360
360
360
363
364
365
377
378
380
382
382
382
388
388
389
390
390
392
392
393
394
397
397
398
398
400
400
400
405
408
409
410
420
420
427
428
429
431
431
431
431
435
435
435
435
438
440
441
444
448
449
449
458
458
458
466
467
468
468
469
472
472
473
473
473
478
486
495
496
498
502
502
502
502
506
506
506
506
511
515
515
534
538
538
538
539
540
543
543
544
544
553
561
562
573
577
577
577
577
577
581
581
581
581
582
582
600
611
620
621
635
639
639
662
677
685
686
701
706
706
730
743
752
753
768
772
772
795
810
818
819
834
839
839
857
868
877
878
892
896
896
919
934
942
943
958
963
963
987
1000
1009
1010
1025
1029
1029
1052
1067
1075
1076
1091
1096
1096
1495
1498
1499
1
1
1
1
1
1
1
1
1
1
1
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
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
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
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
11
11
11
11
11
11
11
16
17
19
19
20
20
24
26
26
27
31
32
33
33
35
35
35
36
36
37
38
38
38
38
38
38
40
42
42
44
48
49
50
51
52
52
53
54
54
55
55
61
61
64
65
65
65
65
69
69
69
69
69
69
71
72
72
74
74
74
74
74
74
79
81
82
87
90
90
90
91
91
97
98
101
101
102
102
103
103
104
104
106
106
107
107
107
108
108
109
109
109
109
109
109
110
110
119
122
124
125
125
126
126
126
126
129
130
136
137
139
140
140
140
140
140
143
144
144
144
144
145
145
145
145
145
145
148
149
155
155
157
161
161
162
162
163
164
164
165
165
172
173
174
175
175
177
178
179
180
180
180
180
180
180
181
181
182
182
184
185
188
192
193
193
194
195
195
196
196
197
197
203
207
211
211
211
211
214
215
215
215
215
215
216
216
216
216
216
216
216
217
223
223
230
232
232
232
233
233
239
240
242
243
243
246
246
247
247
248
249
250
250
251
251
251
251
251
251
252
252
252
253
253
253
255
259
259
261
266
267
267
268
268
268
268
270
276
277
278
278
282
282
285
286
286
286
286
287
287
287
287
287
287
287
290
290
290
290
297
297
298
305
305
306
307
308
316
321
323
324
326
326
327
327
328
328
328
329
336
336
344
345
353
355
355
356
357
357
357
357
361
361
361
361
363
364
365
365
366
374
379
381
381
383
383
383
389
389
390
391
391
393
393
394
395
398
398
399
399
400
406
410
411
418
420
421
421
428
429
429
430
432
432
432
432
436
436
436
436
441
442
445
449
449
450
450
458
468
469
469
470
473
473
474
474
474
476
478
479
487
487
496
497
499
503
503
503
503
507
507
507
507
512
516
516
535
539
539
539
540
541
544
544
545
545
554
562
563
574
578
578
578
578
578
582
582
582
582
583
583
601
612
621
622
636
640
640
663
678
686
687
702
707
707
731
744
753
754
769
773
773
796
811
819
820
835
840
840
858
869
878
879
893
897
897
920
935
943
944
959
964
964
988
1001
1010
1011
1026
1030
1030
1053
1068
1076
1077
1092
1097
1097
1496
1499
1500
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
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
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
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
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
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
17
21
22
25
26
27
27
32
33
34
34
35
35
35
35
36
36
37
37
38
38
38
41
43
45
49
49
50
51
52
52
53
53
53
53
56
57
62
65
66
66
66
66
70
70
70
70
70
70
71
72
74
74
80
81
82
88
90
92
93
98
99
102
102
103
103
104
105
105
106
106
106
107
107
108
108
108
109
109
109
110
110
110
111
123
124
124
124
127
127
127
128
130
137
138
139
140
141
141
141
141
142
145
145
145
145
145
145
148
150
151
156
158
162
163
164
164
165
165
165
166
173
174
176
176
177
177
177
178
179
180
180
182
182
183
183
185
189
193
194
194
194
195
195
195
195
198
199
203
208
212
212
212
212
213
216
216
216
216
216
216
216
218
223
223
223
224
231
234
235
240
241
243
244
247
247
248
248
248
248
248
249
250
251
251
251
252
253
253
253
254
254
256
260
260
261
264
266
266
266
269
269
270
271
275
277
278
278
279
283
283
284
287
287
287
287
287
287
291
291
291
291
298
298
306
306
307
307
308
316
322
324
325
327
327
328
328
329
329
329
336
336
336
337
345
354
356
356
358
358
358
358
362
362
362
362
364
365
365
366
366
374
377
380
382
384
384
384
388
390
390
391
391
392
394
394
395
396
399
399
400
400
407
411
419
420
421
422
429
429
430
431
433
433
433
433
437
437
437
437
442
446
449
449
449
450
451
451
469
470
471
474
474
475
475
475
477
478
479
487
488
497
498
500
504
504
504
504
508
508
508
508
513
517
517
536
540
540
540
541
542
545
545
546
546
555
563
564
575
579
579
579
579
579
583
583
583
583
584
584
602
613
622
623
637
641
641
664
679
687
688
703
708
708
732
745
754
755
770
774
774
797
812
820
821
836
841
841
859
870
879
880
894
898
898
921
936
944
945
960
965
965
989
1002
1011
1012
1027
1031
1031
1054
1069
1077
1078
1093
1098
1098
1497
1500
1501
1
1
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
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
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
9
9
9
9
9
9
9
9
9
9
9
12
12
12
15
21
21
21
22
22
22
25
26
28
33
34
36
36
36
36
37
37
37
37
38
38
42
42
44
49
50
51
51
51
52
53
54
54
56
56
56
57
57
57
63
66
67
67
67
67
70
71
71
71
71
71
71
72
72
72
72
73
73
80
81
89
92
92
92
93
93
93
99
99
100
103
103
104
105
107
107
107
107
108
108
108
108
109
109
109
110
110
111
122
124
125
125
127
127
127
128
128
128
128
128
128
138
138
139
142
142
142
142
143
143
143
143
144
144
146
146
146
146
151
155
157
162
163
163
163
164
164
164
164
165
166
166
174
175
178
178
178
178
179
179
179
180
183
183
183
184
184
190
193
193
194
195
195
196
196
198
198
198
199
199
199
209
212
213
213
213
213
214
214
214
214
215
215
217
217
217
217
219
223
224
232
234
234
234
235
235
235
241
241
242
245
249
249
249
249
249
249
250
250
250
251
251
252
254
254
255
255
257
261
261
264
267
267
268
269
269
269
270
270
270
270
275
277
278
279
284
284
285
285
285
285
286
286
288
288
288
288
292
292
292
292
296
299
306
307
307
308
323
325
325
326
328
328
329
329
330
330
336
337
346
354
355
357
359
359
359
359
363
363
363
363
364
365
366
367
381
381
383
385
385
388
390
391
391
392
395
395
396
397
400
400
401
401
408
409
419
420
423
430
431
432
434
434
434
434
438
438
438
438
438
447
449
450
452
452
467
471
472
475
475
476
476
476
477
478
489
498
499
501
505
505
505
505
509
509
509
509
514
518
518
537
541
541
541
542
543
546
546
547
547
556
564
565
576
580
580
580
580
580
584
584
584
584
585
585
603
614
623
624
638
642
642
665
680
688
689
704
709
709
733
746
755
756
771
775
775
798
813
821
822
837
842
842
860
871
880
881
895
899
899
922
937
945
946
961
966
966
990
1003
1012
1013
1028
1032
1032
1055
1070
1078
1079
1094
1099
1099
1498
1501
1502
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
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
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
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
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
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
13
13
13
13
15
16
19
20
22
22
23
23
29
34
35
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
43
43
45
51
52
52
52
52
53
54
55
57
57
58
58
64
67
68
68
68
68
69
70
71
72
72
72
72
72
72
73
73
73
74
74
74
74
74
74
74
74
90
90
91
93
93
94
94
99
100
100
101
101
104
104
105
106
108
108
108
109
109
109
109
109
109
109
109
109
109
110
110
110
111
123
123
125
125
126
127
128
128
128
129
129
129
129
129
139
143
143
143
143
144
144
144
145
145
145
145
145
145
145
145
147
147
147
147
152
156
158
161
162
164
164
165
165
165
166
167
175
176
179
179
179
180
180
180
180
180
180
180
180
180
181
182
183
184
184
184
185
185
191
194
194
196
196
196
197
199
199
200
200
210
212
213
214
214
214
214
214
215
215
215
216
216
216
216
216
216
216
216
218
218
218
218
220
232
233
233
235
235
236
236
240
241
242
242
243
246
250
250
250
250
250
251
251
251
251
251
251
251
251
251
252
255
255
256
256
258
262
262
265
265
267
268
269
270
270
271
271
271
278
279
285
285
286
286
286
287
287
287
287
287
287
287
287
289
289
289
289
293
293
293
293
295
296
297
300
308
309
324
325
326
326
327
327
329
329
330
330
331
331
347
353
354
355
356
358
360
360
360
360
364
364
364
364
367
368
382
382
384
386
386
391
392
392
396
396
397
398
401
401
402
402
408
409
409
410
424
431
432
433
435
435
435
435
438
439
439
439
439
439
440
448
453
453
466
467
468
472
473
476
476
477
477
477
490
499
500
502
506
506
506
506
510
510
510
510
515
519
519
538
542
542
542
543
544
547
547
548
548
557
565
566
577
581
581
581
581
581
585
585
585
585
586
586
604
615
624
625
639
643
643
666
681
689
690
705
710
710
734
747
756
757
772
776
776
799
814
822
823
838
843
843
861
872
881
882
896
900
900
923
938
946
947
962
967
967
991
1004
1013
1014
1029
1033
1033
1056
1071
1079
1080
1095
1100
1100
1499
1503
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
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
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
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
13
14
14
16
17
20
20
21
21
30
35
36
37
39
39
39
39
39
39
39
39
40
40
43
44
45
46
52
53
53
54
55
55
56
56
65
68
69
69
69
69
69
71
72
73
73
73
73
73
73
75
75
75
75
75
75
91
91
91
92
92
100
101
101
102
102
105
105
106
107
108
110
110
110
110
110
110
110
110
111
111
111
112
125
126
126
126
127
127
127
129
130
130
130
140
144
144
144
144
144
146
146
146
146
146
146
148
148
148
148
153
156
158
159
162
162
163
163
166
168
176
177
179
181
181
181
181
181
181
181
182
182
184
185
185
185
186
186
192
196
197
197
197
198
198
211
213
214
215
215
215
215
215
215
217
217
217
217
217
217
219
219
219
219
221
233
233
234
234
234
240
242
243
243
244
247
250
251
251
252
252
252
252
252
252
252
253
256
256
257
257
259
263
263
267
268
268
269
269
269
271
272
279
286
286
286
288
288
288
288
288
288
290
290
290
290
294
294
294
294
295
297
298
301
309
310
325
326
327
327
328
328
330
331
331
332
332
348
353
355
356
357
359
361
361
361
361
365
365
365
365
368
369
382
383
384
385
387
387
392
393
397
397
398
399
402
402
403
403
408
410
410
411
425
432
433
434
436
436
436
436
439
440
440
440
440
440
441
449
454
466
468
469
473
474
477
477
478
478
478
491
500
501
503
507
507
507
507
511
511
511
511
516
520
520
539
543
543
543
544
545
548
548
549
549
558
566
567
578
582
582
582
582
582
586
586
586
586
587
605
616
618
625
626
640
644
644
667
682
690
691
706
711
735
748
757
758
773
777
777
800
815
823
824
839
844
862
873
882
883
897
901
901
924
939
947
948
963
968
992
1005
1014
1015
1030
1034
1034
1057
1072
1080
1081
1096
1101
1500
1504
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
4
4
4
4
4
4
4
4
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
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
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
10
10
10
10
10
10
10
10
13
17
18
22
23
27
31
33
36
36
37
39
39
39
39
39
39
40
40
41
41
45
46
47
52
53
54
54
54
54
57
58
61
61
66
69
70
70
70
70
72
72
73
74
74
74
74
74
75
75
75
75
75
75
82
88
92
93
94
102
102
103
103
106
106
107
107
108
110
110
110
110
110
110
110
111
111
112
112
112
113
119
119
125
125
125
127
128
129
130
131
131
140
141
143
145
145
145
145
146
146
146
146
146
146
146
149
149
149
149
154
159
160
164
165
165
169
174
174
177
178
178
181
181
181
181
181
181
182
183
185
186
186
186
187
187
193
195
196
196
196
198
199
200
201
212
214
215
216
216
216
216
216
217
217
217
217
217
217
220
220
220
220
222
223
232
232
235
235
236
243
244
244
245
248
249
252
252
252
252
252
252
252
252
253
253
254
257
257
258
258
259
260
264
267
267
267
270
271
272
273
278
285
287
287
287
287
288
288
288
288
288
288
291
291
291
291
295
295
295
295
298
299
302
308
310
311
314
326
328
328
329
329
331
332
332
333
333
336
345
345
349
356
357
358
360
362
362
362
362
366
366
366
366
366
369
370
372
384
385
386
388
391
394
398
398
399
400
400
400
403
403
404
404
411
411
412
421
426
427
433
434
435
437
437
437
437
441
441
441
441
441
442
449
450
455
458
458
469
470
474
475
478
478
479
479
479
479
485
492
501
502
504
508
508
508
508
512
512
512
512
517
521
540
544
544
544
545
546
549
549
550
550
559
567
568
579
583
583
583
583
583
587
587
587
587
588
606
617
619
626
627
641
645
668
683
691
692
707
712
736
749
758
759
774
778
801
816
824
825
840
845
863
874
883
884
898
902
925
940
948
949
964
969
993
1006
1015
1016
1031
1035
1058
1073
1081
1082
1097
1102
1501
1505
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
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
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
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
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
18
22
22
22
23
23
23
25
27
28
32
34
35
35
37
37
37
37
37
38
40
40
40
40
41
41
42
42
46
47
52
53
53
54
55
55
55
57
57
57
58
58
58
60
62
62
67
70
71
71
71
71
73
73
73
73
73
75
75
75
75
75
76
76
76
76
80
82
83
89
90
90
93
93
93
93
94
94
94
103
103
104
107
107
108
108
108
108
108
109
111
111
111
111
111
111
112
112
113
113
113
114
118
120
120
123
126
126
128
128
128
128
129
129
129
131
132
138
140
141
142
144
144
144
144
146
146
146
146
147
147
147
147
147
148
148
150
150
150
150
155
160
164
164
164
165
165
165
166
166
170
173
175
175
178
179
179
179
179
179
182
182
182
182
183
184
186
187
187
188
188
193
194
194
195
196
197
197
199
199
199
199
200
200
200
202
203
203
213
215
215
215
215
216
217
217
217
217
218
218
218
218
221
221
221
221
223
224
224
231
233
233
235
235
235
236
236
236
236
244
245
246
249
250
250
250
250
251
253
253
253
253
253
253
253
254
254
255
258
258
259
259
260
261
261
261
265
265
268
268
270
270
270
271
271
271
273
279
279
286
286
286
286
286
288
288
288
288
289
289
289
289
292
292
292
292
296
296
296
296
299
303
306
308
309
311
312
315
316
316
327
329
329
330
332
333
333
334
334
337
337
344
346
346
350
357
359
361
363
363
363
363
364
366
367
367
367
367
367
370
371
373
374
374
385
386
389
392
392
395
399
399
399
400
401
401
401
404
404
405
405
412
412
419
421
422
427
428
429
429
434
435
436
438
438
438
438
442
442
442
442
442
450
450
451
456
457
459
459
470
475
476
477
479
479
479
480
480
480
480
486
487
487
493
502
503
505
509
509
509
509
513
513
513
513
518
522
541
545
545
545
546
547
550
550
551
551
560
568
569
580
584
584
584
584
584
588
588
588
588
589
607
618
620
620
627
628
642
646
669
684
692
693
708
713
737
750
759
760
775
779
802
817
825
826
841
846
864
875
884
885
899
903
926
941
949
950
965
970
994
1007
1016
1017
1032
1036
1059
1074
1082
1083
1098
1103
1502
1506
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
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
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
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
23
23
24
24
26
27
28
33
36
36
36
36
38
38
38
38
38
38
39
40
40
40
40
41
41
42
43
43
47
53
53
53
53
53
54
55
56
58
58
59
59
61
62
62
63
68
71
72
72
72
72
74
74
74
74
74
76
76
76
76
76
76
76
77
77
81
82
83
91
91
91
91
94
94
94
95
95
104
105
108
108
109
109
109
109
109
109
110
111
111
111
111
111
111
111
112
112
112
113
114
114
115
119
120
120
121
124
124
129
129
129
130
130
133
139
140
141
143
145
145
145
145
145
147
147
147
147
147
147
147
147
148
148
149
149
149
149
151
151
156
156
165
165
166
166
166
166
166
167
171
174
175
175
176
179
180
180
180
180
180
180
182
182
182
182
183
183
184
185
188
189
194
195
195
195
195
196
200
200
200
201
201
204
204
204
204
214
216
216
216
216
216
218
218
218
218
218
218
218
218
219
219
222
222
224
224
224
224
225
232
233
233
234
236
236
237
237
237
246
247
250
251
251
251
251
251
252
253
253
253
253
253
254
254
254
254
254
255
256
259
260
262
262
262
262
262
266
266
266
269
271
271
272
272
279
279
279
280
287
287
287
287
287
287
288
288
289
289
289
289
289
289
289
290
290
293
293
293
293
297
297
304
307
308
309
312
313
317
317
317
317
328
330
331
333
334
335
337
337
337
338
345
346
346
347
351
360
362
364
364
364
364
365
366
367
368
368
371
372
375
375
375
375
382
386
390
392
392
392
393
396
400
400
400
401
401
401
402
402
405
406
413
420
421
422
428
430
430
430
430
435
436
437
439
439
439
439
443
443
450
450
450
451
452
457
458
459
459
460
476
477
478
479
480
480
481
481
488
488
488
488
494
503
504
506
510
510
510
510
514
514
519
523
542
546
546
546
547
548
551
552
561
569
570
581
585
585
585
585
585
589
589
590
608
619
621
621
621
621
628
629
643
647
670
685
693
694
709
714
738
751
760
761
776
780
803
818
826
827
842
847
865
876
885
886
900
904
927
942
950
951
966
971
995
1008
1017
1018
1033
1037
1060
1075
1083
1084
1099
1104
1501
1503
1507
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
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
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
8
8
8
8
8
8
8
8
8
8
8
9
10
20
21
23
23
23
23
24
24
24
24
24
25
26
27
34
36
36
37
37
38
38
38
39
39
39
40
40
40
40
40
40
41
41
42
42
43
43
44
44
45
48
53
54
55
55
55
55
56
56
57
58
58
58
58
59
59
59
59
59
59
60
62
62
63
64
69
72
73
73
73
73
74
74
74
75
75
76
76
76
76
76
77
77
77
77
77
78
78
81
82
91
91
91
92
92
92
94
94
94
94
95
95
95
95
95
95
96
105
106
109
109
109
109
109
110
110
110
111
111
111
111
111
111
111
112
112
112
113
113
114
115
115
116
120
120
121
122
126
126
126
126
127
129
129
129
129
130
130
130
130
130
130
130
131
134
139
140
144
145
145
145
146
146
147
147
147
147
147
148
148
148
148
148
148
149
149
149
149
150
150
152
152
156
157
157
158
162
163
165
165
165
165
166
166
166
166
166
166
167
167
172
175
175
176
177
180
180
180
180
181
181
181
182
182
182
182
182
183
183
184
184
185
186
189
190
194
195
196
197
197
197
197
198
200
200
200
200
201
201
201
201
201
201
201
202
204
204
205
205
215
216
216
216
217
217
218
218
218
218
218
219
219
219
219
219
219
220
220
223
223
224
225
225
233
233
233
234
234
235
236
236
236
236
237
237
237
237
237
238
238
247
248
251
251
251
251
252
252
252
253
253
253
253
253
253
254
254
255
255
255
255
256
257
260
261
262
262
263
263
263
267
268
268
268
268
269
269
270
271
271
271
271
271
272
272
272
272
272
272
273
279
280
287
287
287
288
288
288
288
289
289
289
289
289
289
290
290
290
290
290
291
291
294
294
294
294
298
298
305
307
308
313
314
317
317
318
318
329
331
332
334
335
336
337
338
346
346
347
348
352
361
363
365
365
365
365
365
366
369
369
372
373
375
375
376
376
382
383
384
387
391
392
393
397
401
401
401
401
402
402
403
403
406
407
414
420
421
429
430
430
431
431
436
437
438
440
440
440
440
444
444
450
451
453
458
459
459
460
461
477
478
478
479
481
482
482
488
488
489
489
495
504
505
507
511
511
511
511
515
515
520
524
543
547
547
547
548
549
552
553
562
570
571
582
586
586
586
586
586
590
590
591
609
620
621
621
622
622
629
630
644
648
671
686
694
695
710
715
739
752
761
762
777
781
804
819
827
828
843
848
866
877
886
887
901
905
928
943
951
952
967
972
996
1009
1018
1019
1034
1038
1061
1076
1084
1085
1100
1105
1501
1502
1504
1508
3
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
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
6
6
6
6
6
6
6
6
6
6
7
7
7
8
10
11
14
18
21
22
24
24
24
25
25
25
26
35
37
38
38
39
39
39
39
39
40
40
40
40
41
41
41
41
42
42
44
44
45
45
46
49
55
56
56
56
57
57
58
58
59
59
59
59
60
60
60
60
61
63
64
70
73
73
74
74
74
74
75
75
75
75
75
76
76
76
77
77
77
78
78
78
78
78
92
92
93
93
93
95
95
95
96
96
96
96
97
103
106
107
110
110
110
110
110
110
110
111
111
111
111
112
112
112
112
113
113
115
116
116
117
121
122
126
127
127
127
128
129
130
130
130
130
131
131
131
131
131
131
132
135
145
146
146
146
146
146
147
147
147
148
148
148
149
149
149
149
149
149
150
151
151
153
153
157
158
158
159
163
164
166
166
166
167
167
167
168
173
176
177
181
181
181
181
181
181
182
182
182
182
183
183
183
184
184
186
186
187
190
191
197
197
198
198
198
199
200
201
201
201
201
202
202
202
202
202
203
205
206
206
216
216
217
217
217
217
217
218
218
218
219
219
219
220
220
220
220
220
220
224
224
226
234
234
235
235
237
237
237
238
238
238
239
239
244
248
249
252
252
252
252
252
252
253
253
253
254
254
254
255
255
256
256
257
258
261
262
263
264
264
264
268
268
269
269
269
270
270
271
271
272
272
272
272
272
273
273
273
273
274
288
288
288
288
288
289
289
289
289
290
290
290
290
291
291
291
291
295
295
295
295
299
299
299
306
314
315
318
319
319
329
330
332
333
335
336
337
347
348
353
357
362
364
366
366
366
366
370
370
373
374
376
377
377
383
384
385
388
392
398
402
402
402
403
403
404
407
408
412
415
430
431
432
432
437
438
439
441
441
441
441
442
445
445
454
459
460
461
470
478
479
482
483
483
489
490
490
496
505
506
508
512
512
512
512
516
516
521
525
544
548
548
548
549
550
553
554
563
571
572
583
587
587
587
587
587
591
591
592
610
621
622
623
623
630
631
645
649
672
687
695
696
711
716
740
753
762
763
778
782
805
820
828
829
844
849
867
878
887
888
902
906
929
944
952
953
968
973
997
1010
1019
1020
1035
1039
1062
1077
1085
1086
1101
1106
1503
1505
1509
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
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
7
8
8
9
11
12
14
18
19
23
24
24
25
25
25
26
26
36
36
37
38
39
39
39
40
40
40
40
41
41
41
42
42
42
42
45
46
46
47
50
53
56
56
56
56
56
57
58
58
58
59
59
59
60
60
60
61
61
61
64
71
72
72
73
73
74
74
75
75
75
75
75
75
75
75
76
76
76
76
77
77
78
78
78
79
79
79
91
93
94
95
95
96
96
96
97
97
97
103
104
107
108
108
110
110
110
111
111
111
111
111
112
112
112
113
113
113
113
116
117
117
118
122
124
127
127
127
127
127
128
129
129
130
130
130
130
131
131
131
131
132
132
132
132
132
133
133
136
144
146
146
146
146
147
147
147
147
148
148
149
149
149
149
150
150
150
151
154
154
159
159
160
165
166
166
167
167
167
168
168
174
177
179
181
181
181
182
182
182
182
182
183
183
183
184
184
184
186
187
187
188
191
192
195
196
196
198
198
198
198
198
198
199
200
200
200
200
201
201
202
202
202
203
203
203
203
204
206
215
216
217
217
217
217
217
218
218
218
218
219
219
220
220
220
221
221
221
225
225
227
235
236
237
237
238
238
238
239
239
240
244
245
249
250
250
252
252
252
253
253
253
253
253
254
254
255
255
255
257
258
259
262
262
263
263
263
264
265
266
266
266
269
269
269
269
269
269
270
271
271
272
272
272
273
273
273
273
274
274
274
286
288
288
288
289
289
289
289
290
290
290
291
291
291
292
292
296
296
296
299
300
300
300
307
315
316
317
319
329
329
329
330
331
332
332
333
334
336
337
338
348
354
357
358
363
365
367
367
367
371
371
374
375
375
377
385
386
387
387
389
390
390
393
399
403
403
404
405
408
409
412
413
416
430
431
432
438
439
440
442
442
442
442
443
446
446
453
453
455
457
457
460
461
470
471
479
480
483
484
484
488
490
497
506
507
509
513
513
513
517
517
520
520
522
523
523
526
545
549
549
550
551
554
555
564
572
573
584
586
586
588
588
588
588
589
589
592
592
593
611
621
622
623
631
632
644
644
646
647
647
650
673
688
696
697
710
710
712
714
714
717
741
754
763
764
777
777
779
780
780
783
806
821
829
830
843
843
845
846
846
850
868
879
888
889
901
901
903
904
904
907
930
945
953
954
967
967
969
971
971
974
998
1011
1020
1021
1034
1034
1036
1037
1037
1040
1063
1078
1086
1087
1100
1100
1102
1107
1504
1506
1510
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
1
1
1
1
1
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
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
10
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
19
23
23
24
24
25
26
36
37
37
38
39
40
40
40
40
41
41
41
42
42
43
43
46
47
47
51
54
56
57
57
57
57
58
58
59
59
60
60
61
62
62
72
73
74
74
75
75
76
76
76
76
76
76
76
76
77
77
77
78
79
80
80
80
91
92
94
94
95
95
96
97
98
104
108
109
109
110
111
111
111
111
112
112
112
112
113
113
114
114
117
118
118
119
120
125
127
128
128
128
128
129
129
130
131
131
132
132
133
133
134
137
145
146
147
147
147
147
147
148
148
148
149
149
150
150
151
151
151
155
155
160
160
165
165
166
166
167
168
175
175
180
181
182
182
182
182
183
183
183
183
184
184
185
187
188
189
192
193
196
197
198
199
199
199
199
199
200
200
201
201
202
203
204
204
204
205
216
217
217
218
218
218
218
218
219
219
219
220
221
222
222
222
226
226
228
233
236
236
237
237
238
239
241
245
250
251
251
252
253
253
253
253
254
254
254
254
255
256
258
259
260
262
263
263
264
264
266
267
267
269
270
270
270
270
270
271
271
272
273
273
274
275
287
288
288
289
289
289
289
290
290
290
291
292
293
293
297
297
297
300
301
301
308
316
317
317
318
330
330
332
333
334
335
337
338
339
346
355
358
364
366
368
368
368
372
372
375
375
376
376
386
388
390
391
394
400
401
404
405
406
409
410
413
417
430
431
432
439
440
441
443
443
443
443
447
447
454
456
458
459
461
471
480
481
484
485
485
488
489
498
507
508
510
514
514
514
518
518
521
523
524
527
546
550
550
551
552
555
556
565
573
574
585
587
589
589
589
589
590
593
593
594
612
619
621
622
623
632
633
645
647
648
651
674
689
697
698
711
713
715
718
742
755
764
765
778
780
781
784
807
822
830
831
844
846
847
851
869
880
889
890
902
904
905
908
931
946
954
955
968
970
972
975
999
1012
1021
1022
1035
1037
1038
1041
1064
1079
1087
1088
1101
1103
1108
1505
1507
1511
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
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
2
2
2
2
2
4
4
4
4
4
4
4
4
4
4
4
4
4
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
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
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
14
22
23
24
25
26
27
36
38
38
39
40
40
41
41
41
41
41
42
42
42
43
43
44
44
47
48
52
56
58
58
58
58
60
60
61
61
62
62
62
63
63
73
74
74
74
75
75
75
75
75
76
76
76
77
77
77
77
77
77
77
78
79
80
81
81
81
91
93
93
94
95
96
97
98
99
109
110
110
110
110
111
111
112
112
112
112
112
113
113
113
113
114
114
115
115
118
119
119
120
120
120
121
127
129
129
129
129
131
132
132
133
134
134
135
138
146
147
147
148
148
148
148
149
149
149
149
150
150
150
150
150
151
151
152
152
152
156
156
161
164
165
166
167
168
169
175
175
176
176
181
182
182
183
183
183
184
184
185
185
186
187
187
188
188
189
190
193
194
198
198
200
200
200
200
200
202
202
203
204
204
205
205
206
217
218
218
219
219
219
219
220
220
220
221
221
221
221
221
222
223
223
223
227
227
229
233
233
234
235
236
237
238
239
240
242
251
252
252
253
253
254
254
254
255
255
256
256
256
257
258
258
259
259
259
260
261
262
264
264
265
265
267
268
269
271
271
271
271
271
273
274
275
276
288
288
288
289
289
289
290
290
290
291
292
293
294
294
295
295
296
296
296
296
298
298
298
302
302
309
317
317
318
319
331
333
333
333
334
334
334
335
336
338
339
340
346
346
347
356
365
366
366
367
367
367
367
367
369
369
369
373
373
375
376
377
377
389
391
392
395
401
401
401
402
402
402
404
404
405
405
405
406
407
410
411
418
430
432
433
440
441
441
441
442
442
442
442
442
444
444
444
448
448
455
457
459
459
459
460
462
479
479
480
480
481
482
485
486
486
488
490
499
508
509
511
512
512
513
513
513
513
515
515
515
519
519
522
524
525
528
547
548
548
550
550
551
551
551
551
552
553
556
557
566
574
575
586
587
587
588
588
588
588
588
590
590
590
590
591
594
594
595
613
621
623
624
633
634
646
648
649
652
675
690
698
699
712
714
716
719
743
756
765
766
779
781
782
785
808
823
831
832
845
847
848
852
870
881
890
891
903
905
906
909
932
947
955
956
969
971
973
976
1000
1013
1022
1023
1036
1038
1039
1042
1065
1080
1088
1089
1102
1104
1109
1506
1508
1512
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
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
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
3
3
3
3
3
3
3
3
3
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
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
7
7
7
8
8
8
8
8
8
8
8
8
9
9
10
11
12
15
21
23
25
26
26
27
27
28
28
28
28
34
34
36
37
37
38
39
39
39
39
41
42
42
43
43
44
45
48
49
53
54
54
54
54
56
56
57
59
61
61
61
61
62
62
62
62
63
63
64
64
64
74
74
75
75
75
75
76
76
77
78
78
78
79
80
81
82
82
82
83
83
83
89
89
91
92
92
93
94
94
96
97
97
98
98
99
100
109
110
110
110
111
111
112
112
112
112
113
113
114
114
114
115
116
119
119
119
120
120
121
121
122
122
125
127
127
128
130
132
132
133
133
133
134
135
136
139
141
141
141
145
146
146
147
147
148
149
149
149
150
150
150
150
151
151
151
152
152
153
157
157
162
163
165
167
167
167
167
168
168
169
169
170
174
174
175
176
177
177
177
180
181
181
183
184
185
186
186
187
188
189
194
195
196
196
196
196
198
198
199
199
201
202
202
203
203
203
204
204
204
205
205
206
206
206
207
216
217
217
219
220
220
221
221
222
222
222
223
224
225
225
225
228
228
230
232
232
233
234
234
235
235
236
238
239
239
240
240
241
243
251
252
252
253
254
254
254
254
255
256
256
257
257
258
259
260
260
260
260
262
263
263
265
265
266
266
267
269
269
269
270
272
272
274
274
275
275
276
277
280
280
280
287
287
287
288
288
288
289
290
290
290
291
292
293
294
295
295
296
297
297
299
303
303
309
309
309
310
315
315
317
318
319
319
320
332
334
335
335
338
338
338
339
340
341
345
345
346
347
348
348
357
366
367
367
367
367
368
368
368
370
373
373
374
374
375
376
376
378
378
390
393
393
393
393
396
400
400
401
402
402
403
403
403
405
406
406
411
412
419
422
422
422
428
428
430
431
432
433
434
441
442
443
443
443
445
449
449
451
451
451
456
458
458
459
460
460
461
461
463
480
480
480
480
481
486
486
486
487
487
488
489
491
500
510
512
513
514
514
516
520
520
523
526
529
548
549
551
552
552
552
557
558
567
576
587
588
589
589
589
591
592
595
595
596
614
619
621
622
624
625
635
647
650
653
676
691
700
713
717
720
744
757
767
780
783
786
809
824
833
846
849
853
871
882
892
904
907
910
933
948
957
970
974
977
1001
1014
1024
1037
1040
1043
1066
1081
1090
1103
1110
1507
1513
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
2
2
2
2
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
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
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
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
10
10
12
12
12
13
16
19
22
22
23
23
23
24
24
26
26
27
27
28
28
28
29
29
29
35
36
36
38
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
42
43
43
43
43
44
44
45
46
47
49
50
53
54
54
55
55
55
56
56
57
57
58
58
58
59
59
59
60
62
62
62
62
62
63
63
63
64
64
65
65
65
65
74
75
75
75
75
75
76
76
76
76
76
76
76
76
76
77
77
78
79
79
79
79
79
80
81
81
82
83
83
83
83
84
84
90
91
91
93
93
93
94
94
94
95
95
95
95
95
97
98
98
99
99
100
101
104
110
110
110
110
111
111
111
111
111
111
111
111
111
112
112
112
113
113
113
114
114
114
114
115
115
115
116
117
120
120
120
120
121
122
122
123
123
123
126
127
127
128
128
129
129
129
130
130
130
131
132
133
133
134
134
134
135
136
137
139
140
141
142
142
146
146
146
146
147
147
147
147
147
147
147
148
149
149
149
150
150
150
150
151
151
151
152
152
152
152
152
153
153
154
158
158
160
163
164
164
165
165
165
166
166
166
167
168
168
168
169
169
170
170
171
175
175
175
177
178
178
178
178
181
181
181
181
182
182
182
182
182
182
182
184
185
185
185
186
187
187
187
188
189
190
194
195
196
196
197
197
197
198
198
199
199
200
200
200
200
201
201
201
202
203
204
204
204
204
204
205
205
206
206
207
207
208
208
208
217
217
217
217
217
218
218
218
218
218
218
218
220
221
221
221
221
222
222
223
223
223
224
224
225
225
226
226
229
229
231
233
233
233
235
235
235
236
236
236
236
236
236
237
237
239
240
240
241
241
242
244
245
252
252
252
252
252
253
253
253
253
253
253
253
254
254
255
255
255
256
256
256
257
257
258
258
259
260
261
261
261
262
262
264
265
265
266
266
267
267
268
269
269
270
270
270
271
271
271
272
272
272
273
273
273
275
275
276
276
277
278
279
280
281
281
288
288
288
288
288
288
288
289
289
289
289
289
289
289
290
291
291
291
291
292
292
292
293
294
295
296
296
297
298
298
300
300
304
304
307
309
310
310
311
316
317
317
319
320
321
321
321
330
333
335
336
336
337
338
339
339
340
341
342
346
346
346
348
349
349
349
358
358
365
367
367
368
368
368
369
369
369
371
374
375
375
375
375
377
378
378
379
379
386
391
392
393
394
394
394
397
401
401
401
403
403
404
404
404
404
406
407
407
412
413
413
420
420
422
423
423
429
430
430
432
434
434
434
435
442
443
443
444
444
444
446
450
450
450
451
452
452
457
459
459
459
461
461
462
462
462
464
471
478
480
481
481
481
482
487
487
488
488
488
488
490
492
501
511
513
514
515
515
517
521
521
524
527
530
549
550
552
553
553
553
558
559
568
577
588
589
590
590
590
592
593
596
596
597
615
620
621
621
623
625
626
636
648
651
654
677
692
701
714
718
721
745
758
768
781
784
787
810
825
834
847
850
854
872
883
893
905
908
911
934
949
958
971
975
978
1002
1015
1025
1038
1041
1044
1067
1082
1091
1104
1111
1508
1514
2
2
2
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
6
6
7
7
7
8
8
8
8
8
9
10
10
11
11
12
13
13
14
17
19
20
21
22
24
25
26
27
27
27
28
28
29
29
30
30
37
38
39
39
39
40
40
40
40
40
41
41
41
41
41
42
43
43
43
44
44
44
44
45
46
47
47
48
50
51
54
54
55
55
56
56
57
57
58
59
60
60
61
61
62
63
63
63
64
64
64
65
65
66
66
66
74
74
75
75
75
76
76
76
76
77
77
77
77
77
78
78
78
79
79
79
80
80
80
80
80
82
82
83
84
84
84
85
92
92
93
94
95
96
96
96
97
98
98
99
99
100
100
101
102
104
105
109
110
110
111
111
111
111
112
112
112
112
113
113
113
114
114
114
114
115
115
115
115
116
116
117
118
121
121
122
123
123
123
124
124
125
126
127
128
128
129
130
131
131
132
132
132
133
133
134
134
135
135
135
137
138
140
141
143
145
146
146
147
147
147
147
148
148
148
149
150
150
150
150
151
151
151
152
152
153
153
153
153
154
154
155
159
159
160
161
163
164
164
166
167
167
168
169
169
169
170
170
171
171
172
176
178
178
179
179
179
180
181
181
182
182
182
182
183
183
183
184
185
185
185
186
186
186
187
188
188
188
189
190
191
195
196
196
197
197
198
198
199
199
200
201
201
202
202
203
203
204
205
205
205
205
206
206
207
208
208
209
209
216
217
217
217
218
218
218
218
218
219
219
219
220
221
221
221
222
222
222
223
224
224
224
225
225
226
227
230
230
232
234
234
235
236
236
237
237
237
238
239
240
240
241
241
242
242
243
245
245
246
251
252
252
253
253
253
253
253
254
254
254
255
255
256
256
256
256
257
257
257
259
259
260
261
262
262
263
265
266
267
267
267
268
268
268
269
270
270
271
271
272
273
273
273
274
274
274
274
275
276
276
277
277
279
280
282
287
288
288
289
289
289
289
289
290
290
290
291
291
291
292
292
292
292
292
293
293
293
295
296
297
298
299
299
300
301
301
305
305
308
311
312
318
320
321
322
322
330
331
334
336
337
337
338
340
341
342
343
347
349
349
350
350
358
359
359
366
369
369
370
370
370
372
376
376
376
378
379
380
380
386
387
392
393
395
395
398
402
404
404
405
405
405
407
408
408
413
413
414
414
421
421
424
431
433
435
435
436
443
444
444
445
445
445
447
451
451
451
453
458
460
462
462
462
463
463
465
471
472
479
482
482
483
488
489
489
489
491
493
502
512
515
516
516
518
522
522
525
528
531
551
553
554
554
554
559
560
569
578
590
591
591
591
593
594
597
597
598
616
622
624
626
627
637
649
652
655
678
693
702
715
719
722
746
759
769
782
785
788
811
826
835
848
851
855
873
884
894
906
909
912
935
950
959
972
976
979
1003
1016
1026
1039
1042
1045
1068
1083
1092
1105
1112
1509
1515
3
3
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
6
7
7
7
7
7
7
7
8
8
9
9
9
9
9
10
11
11
12
12
12
13
14
14
15
18
20
25
26
28
28
29
29
30
30
31
31
38
41
41
41
41
42
42
42
42
43
43
43
44
44
45
45
45
45
46
47
48
48
51
52
56
57
57
58
58
60
61
61
61
62
62
63
64
64
65
65
65
65
66
67
67
67
68
75
77
77
77
78
78
78
78
79
79
79
79
79
80
80
81
81
81
81
81
83
84
85
85
85
86
93
94
96
97
97
97
98
99
99
100
100
101
101
102
103
105
112
112
112
113
113
114
114
114
114
114
115
115
115
116
116
116
116
117
117
118
119
122
122
123
124
124
125
125
126
128
129
129
131
132
132
132
133
133
133
134
135
136
136
136
136
138
139
142
144
148
148
148
149
149
150
150
150
151
151
151
152
152
152
153
154
154
154
154
155
155
156
160
160
161
165
167
168
170
170
170
171
171
172
172
173
177
179
180
180
180
181
183
183
183
184
184
185
185
185
186
186
187
187
187
188
189
189
190
191
192
197
198
199
199
200
200
202
202
203
203
203
204
204
205
206
206
206
207
207
207
207
209
209
210
210
211
218
219
219
219
220
220
221
221
221
222
222
223
223
223
224
225
225
225
226
227
228
231
231
233
235
237
238
238
238
239
239
241
241
242
242
243
243
244
246
246
254
254
254
255
255
256
256
256
256
257
257
257
258
258
258
260
260
261
262
263
263
264
267
268
268
269
269
270
271
271
272
273
274
274
274
274
275
275
275
276
277
278
278
278
280
283
290
290
290
290
291
291
292
292
292
292
293
293
293
293
294
294
294
294
296
297
298
299
300
300
301
302
306
306
312
313
319
320
322
323
323
324
331
335
337
338
338
341
342
343
344
348
350
351
351
352
359
360
370
370
371
371
371
373
377
377
377
380
381
381
387
393
396
396
399
403
405
406
406
406
407
408
409
409
414
414
415
422
425
432
433
436
436
437
437
444
445
446
446
446
448
452
452
454
459
461
463
463
464
464
465
466
472
483
483
484
489
490
490
490
494
503
513
516
517
517
519
523
523
526
529
532
552
554
555
555
555
560
561
570
579
591
592
592
592
594
595
598
598
599
617
623
627
628
638
650
653
656
679
694
703
716
720
723
747
760
770
783
786
789
812
827
836
849
852
856
874
885
895
907
910
913
936
951
960
973
977
980
1004
1017
1027
1040
1043
1046
1069
1084
1093
1106
1113
1510
1516
4
8
8
8
8
9
10
10
11
12
13
13
14
15
15
16
19
30
31
32
43
44
44
44
46
46
47
48
49
52
53
57
62
62
63
66
66
66
68
69
79
79
80
80
80
80
80
82
82
82
84
85
86
86
86
99
101
102
103
104
115
115
115
115
115
117
117
118
118
119
120
123
124
125
127
133
133
134
137
137
137
139
140
143
151
151
151
153
154
155
155
155
156
157
161
161
166
172
173
174
181
182
186
186
186
188
190
190
191
192
193
198
199
203
204
204
205
207
208
208
210
210
212
222
222
222
224
225
226
226
226
227
228
232
232
234
240
243
244
245
247
257
257
257
257
259
261
261
262
263
264
264
269
270
270
273
275
275
276
276
279
279
281
293
293
293
295
295
297
298
299
300
301
301
303
307
307
314
323
325
336
338
339
339
343
344
345
353
361
371
372
372
372
374
378
378
382
394
397
400
407
408
409
410
410
415
416
423
438
438
446
447
447
447
449
453
453
460
464
466
467
484
485
490
491
491
504
514
517
518
518
520
524
524
527
530
533
553
555
556
556
556
561
562
571
580
592
593
593
593
595
596
599
599
600
618
629
639
651
654
657
680
695
704
717
721
724
748
761
771
784
787
790
813
828
837
850
853
857
875
886
896
908
911
914
937
952
961
974
978
981
1005
1018
1028
1041
1044
1047
1070
1085
1094
1107
1114
1511
1517
