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
3
115
116
116
116
117
143
148
149
151
152
152
152
152
401
404
406
408
114
114
114
115
116
116
116
117
117
118
149
149
152
152
402
405
407
407
409
409
114
116
117
118
118
118
119
119
148
151
403
406
408
408
410
410
116
116
119
148
148
149
151
152
404
407
409
409
411
411
1
114
117
118
119
149
149
151
151
152
153
408
410
410
412
412
1
117
117
118
118
119
120
151
152
152
153
154
409
413
413
1
117
119
119
121
152
154
155
410
414
414
1
118
119
119
120
122
154
155
411
415
415
1
117
118
118
119
119
119
119
121
151
151
154
155
412
416
416
117
117
119
120
120
152
152
154
154
155
413
417
417
1
120
121
121
155
155
414
418
418
1
1
118
118
119
121
122
154
415
419
419
1
118
118
118
119
119
119
119
119
151
151
154
155
416
420
420
1
2
117
117
119
120
120
152
152
154
154
155
417
421
421
1
3
118
119
120
121
121
154
155
155
418
422
422
2
4
118
118
119
119
119
119
121
122
151
151
154
155
419
423
423
3
117
117
118
118
119
119
120
120
152
152
154
154
155
420
424
424
118
118
118
119
119
119
119
120
121
121
154
154
154
155
155
421
425
425
1
117
119
119
120
120
121
122
152
152
154
154
154
155
155
155
422
426
426
1
2
120
121
121
155
155
155
155
155
156
423
425
425
427
427
2
3
121
121
121
121
121
122
151
156
157
424
426
426
428
428
3
4
118
118
121
121
122
122
152
157
157
158
425
427
427
429
1
118
118
118
121
121
121
121
123
123
151
151
157
158
158
426
428
428
430
2
118
121
122
122
122
124
124
151
152
152
152
157
157
158
158
427
429
431
1
3
123
123
123
152
158
158
158
158
159
426
428
430
430
432
2
4
123
123
123
124
124
124
157
159
160
427
429
431
431
433
3
122
122
122
122
123
123
123
124
124
158
160
160
161
428
432
432
434
122
122
123
123
123
125
125
157
157
160
160
160
161
161
429
433
433
435
1
123
123
123
124
124
126
126
157
158
158
158
161
161
161
161
434
434
436
1
2
124
125
125
158
161
161
162
162
433
435
435
435
437
2
3
124
125
125
125
126
126
163
163
434
436
436
436
438
3
4
124
125
125
125
125
126
160
163
164
164
435
437
437
439
1
124
124
124
125
125
126
127
160
161
163
163
164
436
438
438
440
2
124
125
125
125
125
126
127
128
160
160
161
163
164
164
439
439
441
1
3
126
126
127
161
161
164
165
440
440
442
2
4
126
127
127
127
127
164
164
165
166
166
441
441
443
3
127
127
127
127
128
161
163
164
166
167
167
167
167
438
440
442
444
126
126
126
127
127
127
128
128
128
129
164
164
167
167
439
441
443
443
445
445
126
127
128
129
129
129
130
130
163
166
440
442
444
444
446
446
127
127
130
163
163
164
166
167
441
443
445
445
447
447
1
126
128
129
130
164
164
166
166
167
168
444
446
446
448
448
1
128
128
129
129
130
131
166
167
167
168
169
445
449
449
1
128
130
130
132
167
169
170
446
450
450
1
129
130
130
131
133
169
170
447
451
451
1
128
129
129
130
130
130
130
132
166
166
169
170
448
452
452
128
128
130
131
131
167
167
169
169
170
449
453
453
1
131
132
132
170
170
450
454
454
1
1
129
129
130
132
133
169
451
455
455
1
129
129
129
130
130
130
130
130
166
166
169
170
452
456
456
1
2
128
128
130
131
131
167
167
169
169
170
453
457
457
1
3
129
130
131
132
132
169
170
170
454
458
458
2
4
129
129
130
130
130
130
132
133
166
166
169
170
455
459
459
3
128
128
129
129
130
130
131
131
167
167
169
169
170
456
460
460
129
129
129
130
130
130
130
131
132
132
169
169
169
170
170
457
461
461
1
128
130
130
131
131
132
133
167
167
169
169
169
170
170
170
458
462
462
1
2
131
132
132
170
170
170
170
170
171
459
461
461
463
463
2
3
132
132
132
132
132
133
166
171
172
460
462
462
464
464
3
4
129
129
132
132
133
133
167
172
172
173
461
463
463
465
1
129
129
129
132
132
132
132
134
134
166
166
172
173
173
462
464
464
466
2
129
132
133
133
133
135
135
166
167
167
172
172
173
463
465
467
1
3
134
134
134
167
173
173
174
464
466
468
2
4
134
134
134
135
167
172
173
174
175
465
467
469
3
133
133
133
134
134
135
135
173
173
173
173
175
175
176
176
462
466
468
470
133
134
134
134
135
135
136
136
172
175
176
176
176
176
463
467
469
469
471
471
133
134
134
135
137
137
137
137
172
173
175
176
464
468
470
470
472
472
133
135
136
173
175
176
177
465
469
471
471
473
473
1
134
134
135
136
136
172
176
177
178
470
472
472
474
474
135
135
135
136
136
173
175
178
179
471
475
475
1
1
136
136
136
137
175
176
179
472
476
476
1
136
136
136
136
137
138
176
178
473
477
477
135
135
135
136
136
137
138
178
178
178
179
474
478
478
1
136
136
136
136
138
175
175
179
179
179
475
479
479
1
137
137
139
176
176
476
480
480
1
1
136
136
136
136
138
138
178
477
481
481
1
1
135
135
136
136
136
136
137
178
178
178
179
478
482
482
2
136
136
136
136
138
175
175
179
179
179
479
483
483
1
3
136
136
136
137
137
139
176
176
178
480
484
484
2
4
135
135
136
136
137
138
138
178
178
178
179
481
485
485
3
136
136
136
136
136
136
136
136
136
138
175
175
179
179
179
482
486
486
136
136
136
136
137
137
137
139
176
176
178
178
178
178
178
483
487
487
1
135
136
137
137
138
138
138
178
179
179
179
179
179
179
179
484
488
488
1
2
138
138
139
176
176
179
180
180
485
487
487
489
489
2
3
136
138
138
138
139
139
181
181
486
488
488
490
490
3
4
136
137
138
139
139
139
175
181
182
182
487
489
489
491
1
136
136
136
139
139
139
140
175
176
181
181
182
488
490
490
492
2
136
137
138
139
139
140
140
141
175
175
176
181
182
182
489
491
493
1
3
140
140
141
176
176
182
183
490
492
494
2
4
139
141
141
141
141
182
182
183
184
184
491
493
495
3
140
141
141
141
142
176
181
182
184
185
185
185
185
488
492
494
496
139
139
139
140
141
141
141
142
142
143
182
182
185
185
489
493
495
495
497
497
139
141
142
143
143
143
144
144
181
184
490
494
496
496
498
498
141
141
144
181
181
182
184
185
491
495
497
497
499
499
1
139
142
143
144
182
182
184
184
185
186
496
498
498
500
500
1
142
142
143
143
144
145
184
185
185
186
187
497
501
501
1
142
144
144
146
185
187
188
498
502
502
1
143
144
144
145
147
187
188
499
503
503
1
142
143
143
144
144
144
144
146
184
184
187
188
500
504
504
142
142
144
145
145
185
185
187
187
188
501
505
505
1
145
146
146
188
188
502
506
506
1
1
143
143
144
146
147
187
503
507
507
1
143
143
143
144
144
144
144
144
184
184
187
188
504
508
508
1
2
142
142
144
145
145
185
185
187
187
188
505
509
509
1
3
143
144
145
146
146
187
188
188
506
510
510
2
4
143
143
144
144
144
144
146
147
184
184
187
188
507
511
511
3
142
142
143
143
144
144
145
145
185
185
187
187
188
508
512
512
143
143
143
144
144
144
144
145
146
146
187
187
187
188
188
509
513
513
1
142
144
144
145
145
146
147
185
185
187
187
187
188
188
188
510
514
514
1
2
145
146
146
188
188
188
188
188
189
511
513
513
515
515
2
3
146
146
146
146
146
147
184
189
190
512
514
514
516
516
3
4
143
143
146
146
147
147
185
190
190
191
513
515
515
517
143
143
143
146
146
146
146
148
148
184
184
190
191
191
514
516
516
518
1
143
146
147
147
147
149
149
184
185
185
190
190
191
515
517
519
2
148
148
148
185
191
191
192
516
518
520
1
3
148
148
148
149
185
190
191
192
193
517
519
521
2
4
147
148
149
149
191
191
191
193
193
194
514
518
520
522
3
147
147
147
148
148
149
149
150
150
191
194
194
194
515
519
521
523
147
148
148
148
151
151
190
190
193
193
194
194
516
520
521
522
523
524
1
1
5
5
5
147
148
149
149
151
151
191
191
193
194
194
517
521
522
523
524
525
1
4
4
5
5
6
6
6
148
148
150
150
190
194
195
195
522
523
524
525
526
1
5
7
7
7
7
149
149
149
149
150
191
196
196
523
524
526
527
1
1
2
4
6
8
8
8
8
150
150
150
150
150
193
193
197
197
524
527
528
1
3
5
7
9
9
150
150
150
150
151
151
194
194
196
525
528
529
2
4
4
4
5
5
10
10
149
149
150
150
151
152
152
196
196
196
197
526
529
530
3
5
5
5
7
11
11
150
150
150
150
150
150
150
150
150
152
193
193
197
197
197
527
530
531
5
5
6
7
12
12
150
150
150
150
151
151
151
153
194
194
196
196
196
196
196
528
531
532
1
5
5
7
8
13
13
149
150
151
151
152
152
152
196
197
197
197
197
197
197
197
529
532
533
1
2
5
5
7
9
14
14
152
152
153
194
194
197
198
198
530
531
532
533
534
2
3
5
5
7
10
15
15
150
152
152
152
153
153
199
199
531
532
533
534
535
3
4
5
5
5
7
11
16
16
150
151
152
153
153
153
193
199
200
200
532
533
534
536
1
5
5
5
6
7
7
7
12
17
17
150
150
150
153
153
153
154
193
194
199
199
200
533
534
535
537
2
5
5
7
8
8
13
16
16
18
18
150
151
152
153
153
154
154
155
193
193
194
199
200
200
534
536
538
1
3
9
9
14
17
17
19
154
154
155
194
194
200
201
535
537
539
2
4
5
9
15
18
18
20
153
155
155
155
155
201
202
202
536
538
540
3
5
9
9
16
19
21
154
155
155
155
156
199
200
200
202
203
203
203
203
539
541
5
5
9
10
17
20
22
153
153
153
155
155
156
156
157
194
200
200
200
203
203
533
537
540
540
542
542
9
9
10
11
11
11
11
21
23
153
154
155
155
156
157
157
157
158
158
199
202
534
538
541
541
543
543
1
4
5
9
9
9
11
11
15
20
22
22
24
24
155
158
199
200
202
203
535
539
542
542
544
544
1
5
5
9
16
21
23
23
25
25
155
157
158
199
200
202
203
204
536
540
543
543
545
545
1
5
5
6
9
10
11
11
17
22
24
24
26
26
153
156
156
156
157
158
159
200
202
202
203
204
205
541
546
546
4
4
4
5
6
7
9
11
11
12
12
23
27
27
156
157
158
160
203
203
205
206
542
547
547
1
1
4
4
5
5
7
8
11
13
13
24
28
28
158
158
159
161
206
543
548
548
1
4
5
5
6
8
9
11
11
13
25
29
29
156
157
157
157
158
158
158
160
202
202
205
544
549
549
4
4
4
5
5
7
9
10
13
13
13
26
30
30
156
156
158
158
158
159
203
203
205
205
205
206
545
550
550
5
5
5
6
8
10
11
11
11
13
27
31
31
159
159
160
206
206
206
546
551
551
1
1
1
4
5
6
7
9
11
12
13
13
13
28
32
32
158
160
160
161
547
552
552
1
7
7
8
10
11
11
12
13
13
29
33
33
157
157
157
157
157
158
158
158
202
202
205
548
553
553
1
2
9
11
13
13
13
13
14
30
34
34
156
156
158
158
158
159
203
203
205
205
205
206
549
554
554
1
3
7
7
11
11
12
13
13
13
13
14
15
31
35
35
158
159
159
160
206
206
206
550
555
555
2
4
7
7
8
8
8
8
13
13
13
13
13
14
14
16
32
34
34
36
36
157
157
157
158
158
160
160
161
202
202
205
551
556
556
3
7
7
7
7
8
8
11
13
14
14
15
15
17
17
33
35
35
37
156
156
157
158
158
158
159
203
203
205
205
205
206
552
557
557
13
14
15
15
15
16
18
18
34
36
36
38
157
157
157
158
158
158
158
158
159
159
160
203
203
206
206
206
553
558
558
7
7
8
8
11
11
14
15
16
16
16
19
19
35
37
39
157
159
159
160
160
161
205
205
205
205
205
206
206
554
558
558
559
559
8
8
8
9
9
11
16
16
16
17
20
20
36
38
40
156
158
158
160
160
161
205
206
206
206
206
206
555
559
559
560
560
7
10
10
11
15
15
15
17
17
18
18
21
21
39
41
159
160
160
160
202
206
207
207
556
560
560
561
561
8
8
10
15
16
18
18
18
18
18
18
22
22
34
38
40
40
42
42
157
160
160
160
161
202
203
208
208
557
561
561
562
10
10
10
15
15
18
19
19
23
23
35
39
41
41
43
43
157
160
161
161
162
203
208
208
209
209
558
562
563
8
8
10
19
20
20
24
24
36
40
42
42
44
44
162
162
163
209
209
559
563
564
10
10
10
18
20
21
21
25
25
41
45
45
163
163
560
564
565
1
2
8
8
10
15
18
18
22
26
26
42
46
46
561
565
566
1
1
2
3
10
10
10
20
20
21
23
27
27
43
47
47
562
566
567
1
3
4
8
8
10
10
10
10
18
18
21
24
28
28
44
48
48
563
567
568
1
4
4
5
5
10
10
10
10
11
11
20
20
21
25
27
27
29
29
45
49
49
564
568
569
5
5
6
6
8
12
12
18
18
21
26
28
28
30
46
50
50
160
160
208
564
569
570
7
7
12
13
20
20
21
27
29
29
31
47
51
51
157
160
160
160
160
161
208
208
570
571
4
4
8
8
8
8
13
18
18
20
21
28
30
32
48
52
52
157
157
160
160
161
161
162
202
203
208
571
572
1
5
5
5
5
8
9
9
9
13
13
14
20
20
20
21
21
21
21
29
31
33
49
53
53
157
161
162
162
163
202
203
206
206
558
568
572
573
8
10
10
10
10
12
12
12
14
15
15
18
18
21
22
22
32
34
50
52
52
54
54
160
162
163
163
206
206
556
558
559
568
569
573
574
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
160
160
160
161
163
208
557
559
560
570
574
575
1
1
5
6
8
12
12
12
12
15
16
18
23
28
32
34
34
36
36
52
54
54
56
157
160
160
161
208
558
560
561
571
575
576
1
1
1
4
5
5
9
13
13
16
17
18
23
23
29
33
35
35
37
37
53
55
57
157
161
162
202
559
561
562
572
576
576
577
5
6
6
10
14
14
15
17
18
18
18
23
24
34
38
38
54
56
58
162
163
560
562
563
573
576
577
578
5
5
5
11
12
15
15
15
15
23
23
24
25
25
25
25
35
39
39
57
59
163
561
563
574
578
579
5
6
6
12
16
16
17
17
18
18
23
23
23
25
25
36
40
40
52
56
58
58
60
60
561
564
575
579
580
5
5
5
13
15
15
17
17
18
23
37
41
41
53
57
59
59
61
61
157
158
205
563
564
576
580
581
5
6
6
14
17
17
18
18
18
23
24
25
25
38
42
42
54
58
60
60
62
62
156
157
157
158
158
159
203
205
205
563
577
581
582
5
5
5
15
15
15
18
19
19
23
25
25
26
26
39
43
43
59
63
63
156
156
157
157
158
158
159
159
160
202
203
205
205
206
206
554
578
582
583
5
5
6
6
6
6
16
17
17
18
20
20
25
27
27
40
44
44
60
64
64
156
156
157
158
159
159
160
160
160
161
202
205
206
206
553
554
555
568
568
579
583
584
5
5
5
5
7
7
15
15
17
17
18
19
19
21
21
25
25
27
41
45
45
61
65
65
156
159
160
160
160
161
161
161
202
554
555
556
568
568
569
580
584
585
1
8
8
8
17
17
17
18
18
18
18
18
20
20
22
27
27
27
42
46
46
62
66
66
160
161
161
555
556
557
568
568
569
570
581
585
586
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
161
556
557
558
568
568
568
569
570
582
586
587
5
9
10
20
20
20
22
24
27
27
27
44
46
46
48
64
68
68
557
558
559
568
568
569
569
570
583
587
588
5
5
9
11
15
20
21
23
25
25
25
27
27
27
27
45
47
47
49
65
69
69
558
559
568
569
570
570
584
588
589
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
558
564
570
571
585
589
590
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
559
565
571
586
590
591
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
157
158
203
205
559
565
587
591
592
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
156
157
157
158
158
159
203
205
205
206
206
551
571
588
592
593
6
6
7
7
12
14
15
20
25
26
30
30
30
30
31
46
50
52
52
54
54
70
72
74
156
156
157
158
159
159
160
160
202
205
206
206
549
550
552
571
589
593
594
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
156
157
158
159
160
160
160
161
161
202
205
550
551
553
590
594
595
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
156
157
158
159
160
161
161
205
551
552
554
591
595
596
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
156
159
160
161
202
552
553
555
592
596
597
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
160
161
553
554
556
593
597
598
5
5
5
7
11
11
12
12
15
24
24
24
31
32
34
35
35
35
55
59
59
75
79
79
161
554
555
571
594
598
599
5
6
6
8
13
13
14
14
15
22
22
24
29
32
32
32
36
36
56
60
60
76
80
80
554
565
571
572
595
599
600
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
555
566
572
596
600
601
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
157
158
203
205
556
566
597
601
602
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
156
157
157
158
158
159
203
205
205
206
206
547
572
598
602
603
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
156
156
157
158
159
159
160
160
202
205
206
206
545
547
548
572
599
603
604
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
156
157
158
159
160
160
160
161
161
202
205
546
548
549
600
604
605
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
156
157
158
159
160
161
161
205
547
549
550
601
605
606
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
156
159
160
161
202
548
550
551
602
606
607
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
160
161
549
551
552
603
607
608
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
161
550
552
572
604
608
609
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
550
566
572
573
605
609
610
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
552
567
573
606
610
611
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
157
158
205
552
567
607
611
612
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
156
157
157
158
158
159
205
205
573
608
612
613
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
156
156
157
158
159
159
160
202
203
205
573
609
613
614
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
156
157
158
159
160
160
161
200
202
203
203
205
540
610
614
615
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
156
157
158
158
159
160
161
161
200
203
205
541
542
542
611
615
616
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
156
157
158
159
160
161
202
542
543
543
612
616
617
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
160
161
543
544
544
613
617
618
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
161
544
545
545
614
618
618
619
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
545
546
546
615
618
619
620
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
547
547
547
567
616
620
621
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
545
547
568
617
621
622
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
153
153
155
155
202
202
568
618
622
623
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
153
153
153
155
155
155
155
155
156
156
199
199
202
619
623
624
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
153
155
155
155
155
156
156
156
157
157
199
200
202
202
573
573
620
624
625
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
155
156
157
157
157
158
158
200
200
202
533
574
574
574
574
621
625
626
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
155
157
158
158
158
194
200
534
537
574
574
574
574
575
575
622
626
627
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
154
158
194
535
537
538
575
575
576
576
623
627
628
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
155
536
538
539
576
576
624
628
629
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
537
539
540
625
629
630
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
538
540
541
574
626
630
631
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
538
541
542
574
574
575
630
631
632
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
113
113
150
152
193
542
574
575
576
626
631
632
633
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
66
70
70
90
94
94
106
110
112
112
114
114
150
152
153
153
199
542
576
577
632
633
634
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
48
48
48
49
67
71
71
91
95
95
111
115
115
150
150
152
153
153
154
193
199
542
568
577
633
634
635
1
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
112
116
116
149
150
152
153
153
154
155
197
199
526
569
577
578
634
635
636
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
113
117
117
150
150
152
153
153
154
155
193
197
197
197
197
199
527
528
569
577
579
635
636
637
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
114
118
118
150
150
150
152
153
153
153
154
155
194
194
196
197
197
197
199
528
528
529
530
569
577
578
580
636
637
638
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
115
119
119
149
149
150
150
151
152
152
153
153
153
154
155
194
194
196
196
196
197
199
529
529
530
531
531
532
577
578
579
637
638
639
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
116
120
120
150
150
150
150
152
152
152
154
155
193
193
197
197
197
530
530
531
532
532
533
569
578
579
638
639
640
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
117
121
121
151
151
153
155
194
194
531
531
532
533
533
534
579
639
640
641
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
152
152
532
532
533
534
534
535
577
580
640
640
641
642
1
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
533
533
534
535
535
536
569
578
641
641
642
643
1
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
55
57
72
76
78
78
80
80
102
104
120
122
122
124
124
534
534
535
535
536
537
579
642
643
644
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
56
56
58
58
73
77
79
79
81
81
97
101
103
103
105
105
121
123
123
125
535
535
536
536
537
580
643
644
645
1
1
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
122
124
124
126
149
149
150
150
193
193
535
536
536
537
577
580
644
645
646
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
123
125
127
149
149
149
149
150
150
150
150
150
150
151
151
193
193
196
196
536
536
537
537
538
569
578
645
646
647
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
124
126
128
149
149
149
149
150
150
150
150
150
150
150
150
151
151
151
151
152
152
193
193
196
196
196
196
197
538
538
539
577
579
646
647
648
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
127
129
149
149
150
150
150
150
150
150
151
151
151
151
152
152
152
152
153
153
196
196
196
196
197
197
526
539
539
540
578
578
580
580
647
648
649
5
5
5
6
7
7
7
15
15
16
17
17
17
17
21
21
28
28
29
33
33
35
40
44
44
45
45
46
46
51
51
51
53
53
59
63
63
82
86
86
106
110
110
122
126
128
128
130
130
150
150
151
151
152
152
152
152
153
153
153
153
153
194
196
196
197
527
528
540
540
541
578
578
580
580
581
581
648
649
650
5
5
7
8
8
17
17
17
17
17
18
18
20
20
22
22
26
26
29
35
35
35
41
43
43
43
43
45
45
46
51
60
64
64
83
87
87
107
111
111
123
127
129
129
131
131
152
152
152
153
153
153
153
194
528
528
529
541
541
542
581
581
582
582
649
650
651
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
152
153
153
529
529
530
542
542
543
582
582
650
651
652
1
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
530
530
531
543
544
651
652
653
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
63
67
67
86
90
90
110
114
114
130
134
134
531
531
532
652
653
654
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
531
532
533
535
653
654
655
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
533
535
537
578
578
654
655
656
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
113
115
115
117
117
133
137
137
533
533
536
579
579
580
580
580
655
656
657
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
114
116
116
118
134
138
138
536
537
581
581
581
656
657
658
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
115
117
117
119
135
139
139
581
582
582
657
658
659
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
116
118
120
136
138
138
140
140
149
150
193
582
582
658
659
660
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
117
119
121
137
139
139
141
149
149
149
150
150
150
150
151
193
193
194
196
659
660
661
5
7
9
9
11
11
13
24
24
25
29
31
31
32
33
33
33
33
33
33
37
37
40
41
48
48
49
50
50
50
50
52
56
56
57
58
73
75
90
94
96
96
98
98
120
122
138
140
140
142
149
149
150
150
150
150
150
151
151
151
152
191
194
194
196
196
196
521
660
661
662
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
150
150
151
151
151
152
152
152
153
191
194
196
196
522
523
523
661
662
663
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
150
151
152
152
153
153
153
523
524
524
662
663
664
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
70
74
76
76
78
78
97
101
101
117
121
123
123
125
125
143
145
153
153
524
525
525
663
664
665
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
75
79
79
98
102
102
122
126
126
138
142
144
144
146
146
525
526
526
664
665
666
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
123
127
127
139
143
145
145
147
147
526
527
527
665
666
667
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
77
81
81
100
104
104
124
128
128
140
144
146
146
148
148
528
528
535
666
666
668
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
125
129
129
145
147
148
149
149
193
526
581
666
667
667
669
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
126
130
130
146
147
148
148
149
150
150
190
528
536
537
582
668
668
670
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
127
131
131
147
147
148
148
149
150
151
151
193
193
528
582
582
669
669
671
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
128
132
132
147
148
148
148
149
150
151
152
152
190
582
583
583
670
670
672
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
147
148
148
149
149
150
151
153
153
185
193
193
583
583
584
671
671
673
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
147
148
148
149
150
150
151
154
154
185
190
191
191
518
583
583
584
585
672
672
674
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
148
149
149
150
151
151
155
155
191
191
193
514
518
519
584
585
673
673
675
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
110
112
132
134
136
149
149
150
151
152
156
156
515
519
520
583
583
585
674
674
676
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
71
71
86
88
88
90
109
111
113
133
135
137
151
153
157
157
516
520
521
584
675
675
677
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
68
72
72
87
89
91
112
114
136
138
154
156
156
158
158
517
521
522
583
585
676
676
678
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
111
113
113
115
115
131
135
137
137
139
139
155
157
157
159
518
522
523
583
584
677
679
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
112
114
114
116
116
132
136
138
138
140
140
156
158
158
160
519
523
585
678
680
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
109
113
115
115
117
117
133
137
139
139
141
141
157
159
161
519
586
679
681
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
72
76
76
87
91
93
93
95
95
114
118
118
138
142
142
146
146
146
146
158
160
162
190
190
583
675
680
682
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
115
119
119
139
143
143
143
143
146
146
146
146
147
147
161
163
190
190
582
583
584
676
678
681
683
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
116
120
120
140
143
143
144
144
147
147
148
148
156
160
162
162
164
164
184
184
523
583
583
585
679
682
684
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
148
148
149
149
157
161
163
163
165
165
185
523
584
584
586
586
680
683
685
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
149
149
158
162
164
164
166
166
185
188
188
513
583
586
586
587
587
681
684
686
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
146
146
146
147
147
163
167
167
188
188
190
511
513
514
587
588
588
682
685
687
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
143
144
146
146
146
147
147
148
148
164
168
168
190
512
514
515
588
683
686
688
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
79
81
81
83
98
102
102
121
123
123
125
125
143
145
147
148
149
149
165
169
169
184
513
515
516
684
687
689
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
80
82
84
99
103
103
122
124
124
126
146
148
149
150
150
166
170
170
514
516
517
583
583
586
685
688
689
690
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
123
125
125
127
147
149
149
149
151
151
167
171
171
515
517
518
584
586
587
686
688
690
691
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
124
126
128
148
150
150
152
168
172
172
516
518
587
588
687
691
692
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
125
127
129
149
151
151
153
169
173
173
516
588
688
692
693
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
128
130
143
144
150
152
154
170
174
174
187
518
583
588
689
693
694
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
106
106
108
123
127
129
129
131
131
142
143
143
144
144
145
151
153
155
171
175
175
185
187
187
518
584
586
690
694
695
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
105
107
109
124
128
130
130
132
132
142
142
143
143
144
144
145
145
146
154
156
172
174
174
176
176
184
185
187
187
188
188
509
586
587
691
695
696
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
110
125
129
131
131
133
133
142
142
143
144
145
145
146
146
146
147
149
153
155
155
157
157
173
175
175
177
184
187
188
188
508
509
510
587
588
692
696
697
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
111
130
134
134
142
145
146
146
146
147
147
147
150
154
156
156
158
158
174
176
176
178
184
509
510
511
587
588
589
693
697
698
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
89
93
93
104
108
110
110
112
112
131
135
135
146
147
147
151
155
157
157
159
159
175
177
179
510
511
512
587
588
589
590
694
698
699
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
90
94
94
105
109
111
111
113
113
132
136
136
147
156
160
160
176
178
180
511
512
513
587
588
588
589
590
695
699
700
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
106
110
112
112
114
114
133
137
137
157
161
161
179
181
512
513
514
587
588
589
589
590
696
700
701
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
111
115
115
134
138
138
158
162
162
174
178
180
180
182
182
513
514
587
589
590
590
697
701
702
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
112
116
116
135
139
139
159
163
163
175
179
181
181
183
183
513
588
590
591
698
702
703
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
113
117
117
136
140
140
160
164
164
176
180
182
182
184
184
514
589
591
699
703
704
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
114
118
118
137
141
141
143
144
161
165
165
181
185
185
185
187
514
589
700
704
705
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
115
119
119
138
142
142
142
143
143
144
144
145
162
166
166
182
185
186
186
187
187
188
188
506
591
701
705
706
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
116
120
120
139
141
141
142
142
143
143
143
144
145
145
146
146
163
167
167
183
184
187
187
187
188
188
504
505
507
591
702
706
707
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
142
143
144
144
145
146
146
146
147
147
164
168
168
184
184
187
188
188
505
506
508
703
707
708
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
76
76
76
77
78
78
80
80
99
101
103
118
120
120
122
122
141
142
143
143
143
144
145
145
146
147
147
165
167
167
169
169
185
187
189
189
506
507
509
704
708
709
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
77
77
79
79
81
81
102
104
119
121
121
123
142
142
144
145
146
146
147
166
168
168
170
184
186
190
190
507
508
510
705
709
710
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
146
147
147
167
169
169
171
187
191
191
508
509
511
706
710
711
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
106
106
121
123
125
146
147
148
168
170
172
188
192
192
509
510
591
707
711
712
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
105
105
107
107
122
124
126
141
145
147
147
149
149
169
171
173
189
193
193
509
589
591
592
708
712
713
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
104
108
108
125
127
142
146
148
148
150
150
172
174
190
192
192
194
194
510
590
592
709
713
714
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
105
109
109
120
124
126
126
128
128
143
143
144
147
149
149
151
151
167
171
173
173
175
175
185
187
191
193
193
195
511
590
710
714
715
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
106
110
110
121
125
127
127
129
129
142
143
143
144
144
145
148
152
152
168
172
174
174
176
176
185
187
187
188
188
192
194
194
196
502
592
711
715
716
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
107
111
111
122
126
128
128
130
130
142
142
143
144
145
145
146
146
149
153
153
169
173
175
175
177
177
184
187
188
188
193
195
197
500
502
503
592
712
716
717
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
108
112
112
127
131
131
142
143
144
145
146
146
146
147
147
150
154
154
174
178
178
184
187
194
196
198
501
503
504
713
717
718
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
79
79
80
81
81
81
81
86
90
90
109
113
113
128
132
132
142
143
144
145
146
147
147
151
155
155
175
179
179
187
197
199
502
504
505
714
718
719
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
79
79
79
81
81
87
91
91
110
114
114
129
133
133
142
145
146
147
152
156
156
176
180
180
184
192
196
198
198
200
200
503
505
506
715
719
720
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
146
147
153
157
157
177
181
181
193
197
199
199
201
201
504
506
507
716
720
721
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
112
114
114
116
131
135
135
147
154
158
158
178
182
182
194
198
200
200
202
202
505
507
592
717
721
722
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
113
115
115
117
132
136
136
155
159
159
179
183
183
199
203
203
505
590
592
593
718
722
723
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
114
116
118
133
137
137
156
160
160
180
184
184
200
204
204
507
591
593
719
723
724
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
115
117
119
134
138
138
143
144
157
159
159
161
161
181
185
185
187
201
205
205
507
591
720
724
725
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
118
120
135
139
139
142
143
143
144
144
145
158
160
160
162
182
186
186
187
187
202
206
206
593
721
725
726
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
113
117
119
119
121
121
136
138
138
140
140
142
142
143
144
145
145
146
159
161
161
163
183
184
185
185
185
187
187
187
203
207
207
593
722
726
727
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
114
118
120
120
122
122
137
139
139
141
142
143
144
145
146
146
147
160
162
164
182
184
184
185
185
186
186
187
188
204
208
208
495
723
727
728
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
115
119
121
121
123
123
138
140
140
142
142
143
144
144
145
146
147
147
161
163
165
182
185
185
187
187
187
189
205
209
209
496
497
497
724
728
729
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
142
143
143
144
145
146
147
164
166
184
186
188
190
206
208
208
210
210
497
498
498
725
729
730
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
81
85
85
98
102
102
121
125
125
140
142
144
146
147
159
163
165
165
167
167
187
189
191
207
209
209
211
498
499
499
726
730
731
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
85
86
99
103
103
122
126
126
143
145
147
160
164
166
166
168
168
190
192
208
210
210
212
499
500
500
727
731
731
732
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
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
500
501
501
728
731
732
733
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
105
105
124
128
128
139
143
145
145
147
147
166
170
170
186
190
192
192
194
194
210
212
214
502
502
502
591
729
733
734
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
106
106
125
129
129
140
144
146
146
148
148
167
171
171
187
191
193
193
195
195
213
215
500
502
592
730
734
735
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
107
107
126
130
130
139
139
141
141
145
149
149
168
172
172
184
184
192
196
196
208
212
214
214
216
216
592
731
735
736
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
104
106
106
108
108
127
131
131
139
139
139
141
141
141
141
141
142
142
146
150
150
169
173
173
181
181
184
193
197
197
209
213
215
215
217
217
732
736
737
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
109
128
132
132
139
141
141
141
141
142
142
142
143
143
147
151
151
170
174
174
181
182
184
184
194
198
198
210
214
216
216
218
218
593
593
733
737
738
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
110
129
131
131
133
133
141
142
143
143
143
144
144
148
152
152
171
175
175
182
182
184
195
199
199
215
219
219
488
594
594
594
594
734
738
739
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
141
143
144
144
144
149
153
153
172
176
176
176
182
196
200
200
216
220
220
489
492
594
594
594
594
595
595
735
739
740
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
140
144
150
154
154
173
176
177
177
197
201
201
217
221
221
490
492
493
595
595
596
596
736
740
741
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
78
78
80
80
80
80
85
87
87
88
88
89
91
111
113
132
134
136
141
151
155
155
174
178
178
198
202
202
218
222
222
491
493
494
596
596
737
741
742
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
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
492
494
495
738
742
743
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
107
111
113
113
115
115
136
138
153
157
157
176
178
178
180
200
202
202
204
220
224
224
493
495
496
594
739
743
744
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
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
493
496
497
594
594
595
743
744
745
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
113
117
117
132
136
136
138
138
138
140
140
155
157
157
159
175
178
180
182
202
204
206
222
226
226
497
594
595
596
739
744
745
746
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
114
118
118
133
136
137
138
139
139
139
139
141
141
156
158
158
160
179
181
181
183
203
205
207
223
227
227
497
596
597
745
746
747
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
115
119
119
136
138
138
139
139
140
142
142
157
159
161
175
181
182
184
206
208
224
226
226
228
228
497
592
597
746
747
748
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
116
120
120
136
138
139
139
139
140
141
143
143
158
160
162
177
181
181
183
183
185
185
201
205
207
207
209
209
225
227
227
229
593
597
598
747
748
749
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
136
138
139
139
140
140
141
144
144
161
163
175
178
179
181
182
184
184
186
186
202
206
208
208
210
210
226
228
228
230
593
597
599
748
749
750
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
136
138
139
139
140
141
141
145
145
156
160
162
162
164
164
179
179
179
179
181
183
185
185
187
187
203
207
209
209
211
211
227
229
231
485
593
597
598
600
749
750
751
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
139
139
139
140
141
142
146
146
157
161
163
163
165
165
176
176
181
184
188
188
208
212
212
228
230
232
486
487
487
597
598
599
750
751
752
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
100
100
120
124
124
138
138
140
141
143
147
147
158
162
164
164
166
166
185
189
189
209
213
213
231
233
487
488
488
593
598
599
751
752
753
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
75
75
77
77
79
79
81
81
87
87
88
88
93
93
93
95
95
97
101
101
121
125
125
141
144
148
148
163
167
167
186
190
190
210
214
214
226
230
232
232
234
234
488
489
489
599
752
753
754
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
93
98
102
102
122
124
124
126
126
145
149
149
164
168
168
187
191
191
211
215
215
227
231
233
233
235
235
489
490
490
597
600
753
753
754
755
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
99
103
103
123
125
125
127
146
150
150
165
169
169
188
192
192
212
216
216
228
232
234
234
236
236
490
491
491
593
598
754
754
755
756
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
100
102
102
104
104
124
126
126
128
147
149
149
151
151
166
170
170
189
193
193
213
217
217
233
237
237
490
492
492
599
755
756
757
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
101
103
103
105
125
127
129
148
150
150
152
167
171
171
190
194
194
214
218
218
234
238
238
492
492
600
756
757
758
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
102
104
104
106
126
128
130
135
135
136
136
149
151
151
153
168
172
172
175
175
191
193
193
195
195
215
219
219
235
239
239
597
600
757
758
759
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
103
105
107
129
131
135
135
135
136
136
136
136
136
137
137
150
152
154
169
173
173
175
178
178
179
192
194
194
196
216
220
220
236
240
240
593
598
758
759
760
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
104
106
108
124
128
130
130
132
132
135
136
136
136
136
137
137
137
138
138
151
153
155
170
174
174
178
178
178
179
179
179
193
195
195
197
217
219
219
221
221
237
241
241
482
597
599
759
760
761
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
136
137
138
138
138
139
139
139
154
156
171
175
175
176
176
178
194
196
198
218
220
220
222
238
242
242
483
483
483
598
598
600
600
760
761
762
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
138
138
138
139
139
139
149
153
155
155
157
157
172
174
174
176
176
195
197
199
219
221
221
223
239
243
243
484
484
484
598
598
600
600
601
601
761
762
763
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
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
139
150
154
156
156
158
158
173
175
175
177
198
200
220
222
224
240
244
244
485
485
485
601
601
602
602
762
763
764
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
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
486
486
486
602
602
763
764
765
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
97
97
97
97
98
98
109
113
113
133
137
137
156
160
160
175
177
179
194
198
200
200
202
202
224
226
242
244
244
246
246
487
487
487
598
598
764
765
766
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
99
99
110
114
114
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
487
488
488
599
599
600
600
600
765
766
767
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
99
100
111
115
115
135
139
139
158
162
162
179
181
200
204
204
220
224
226
226
228
228
244
246
246
248
488
488
601
601
601
766
767
768
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
100
112
116
116
136
140
140
159
163
163
174
178
180
180
182
182
201
205
205
221
225
227
227
229
229
245
247
249
601
602
602
767
768
769
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
100
100
101
113
117
117
135
136
137
141
141
160
164
164
175
175
179
179
181
181
183
183
202
206
206
226
230
230
246
248
250
602
602
768
769
770
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
101
102
102
114
118
118
135
135
135
136
136
136
136
137
138
142
142
161
165
165
175
175
176
178
179
179
179
180
182
182
184
184
203
207
207
227
231
231
249
251
478
769
770
771
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
135
135
136
136
136
136
136
137
137
137
138
139
139
143
143
162
166
166
176
176
178
178
178
181
185
185
204
208
208
228
232
232
244
248
250
250
252
252
479
479
480
770
771
772
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
136
136
137
137
138
138
138
138
138
139
140
142
142
144
144
163
167
167
178
178
182
186
186
205
209
209
229
233
233
245
249
251
251
253
253
480
480
481
771
772
773
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
73
75
75
75
77
77
84
84
85
92
92
94
97
99
101
103
104
117
121
121
138
138
139
139
139
141
143
143
145
164
168
168
183
187
187
206
210
210
230
234
234
246
250
252
252
254
254
481
481
482
772
773
774
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
76
77
77
77
78
82
82
84
85
94
94
94
100
102
102
104
105
118
120
120
122
122
139
139
142
144
144
146
165
167
167
169
169
184
188
188
207
211
211
231
235
235
251
255
255
482
482
483
773
774
775
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
483
483
484
774
775
776
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
100
102
102
104
104
104
104
105
120
122
122
124
144
146
148
167
169
169
171
186
190
190
209
211
211
213
213
233
237
237
253
257
257
483
484
485
601
775
776
777
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
97
101
102
102
103
103
105
105
105
121
123
125
147
149
168
170
172
187
191
191
210
212
212
214
234
238
238
254
258
258
484
485
602
602
602
776
777
778
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
102
104
104
105
106
106
122
124
126
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
602
603
603
777
778
779
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
102
102
103
105
107
107
125
127
135
136
143
147
149
149
151
151
172
174
175
179
189
191
191
193
212
214
216
236
238
238
240
256
260
260
603
603
778
779
780
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
104
104
104
105
108
108
120
124
126
126
128
128
135
135
135
136
136
136
136
137
144
148
150
150
152
152
167
171
173
173
175
175
175
175
178
179
179
179
190
192
192
194
213
215
217
237
239
239
241
257
261
261
474
779
780
781
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
102
102
104
105
105
109
109
121
125
127
127
129
129
135
135
136
136
136
136
136
137
137
137
138
139
149
153
153
168
172
174
174
176
176
176
176
178
178
178
191
193
195
216
218
238
240
242
258
262
262
475
476
476
780
781
782
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
136
136
137
137
138
138
138
138
138
139
150
154
154
169
173
175
175
177
177
178
178
192
194
196
211
215
217
217
219
219
239
241
243
259
263
263
476
477
477
781
782
783
1
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
138
138
139
139
139
151
155
155
174
178
178
195
197
212
216
218
218
220
220
242
244
260
262
262
264
264
477
478
478
782
783
784
1
1
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
139
139
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
478
479
479
783
784
785
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
479
480
480
784
785
786
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
100
101
102
107
107
110
114
114
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
481
481
602
785
786
787
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
99
101
102
102
102
107
108
111
113
113
115
115
131
135
135
155
159
159
178
182
182
197
201
201
220
224
224
244
248
248
264
266
268
481
481
603
603
603
786
787
788
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
99
99
107
107
108
109
109
109
109
112
114
114
116
132
136
136
156
160
160
179
183
183
198
202
202
221
225
225
245
249
249
267
269
603
604
604
787
788
789
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
101
101
102
102
107
107
107
109
109
113
115
115
117
133
135
136
137
137
157
161
161
175
180
184
184
199
203
203
222
226
226
246
250
250
262
266
268
268
270
270
604
604
788
789
790
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
102
107
114
116
118
134
135
135
135
136
136
136
136
137
138
138
158
160
160
162
162
175
175
176
178
181
183
183
185
185
200
204
204
223
227
227
247
251
251
263
267
269
269
271
271
789
790
791
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
101
101
102
107
108
109
109
115
117
119
135
135
135
136
136
136
136
136
137
137
137
138
139
139
159
161
161
163
173
176
176
178
178
178
182
184
184
186
201
205
205
224
228
228
248
252
252
264
268
270
270
272
272
469
790
791
792
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
136
136
137
137
137
138
138
138
138
138
139
140
140
160
162
162
164
173
176
178
178
183
185
185
187
202
206
206
225
229
229
249
253
253
269
273
273
470
471
471
791
792
793
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
136
137
137
138
138
139
139
139
139
139
141
161
163
165
184
186
188
203
207
207
226
230
230
250
254
254
270
274
274
471
472
472
792
793
794
1
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
139
139
140
140
142
162
164
166
185
187
189
204
208
208
227
229
229
231
231
251
255
255
271
275
275
472
473
473
793
794
795
1
1
1
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
473
474
474
794
795
796
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
99
99
100
100
102
103
103
109
109
111
120
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
474
475
475
795
796
797
1
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
97
101
101
104
104
111
111
111
121
125
125
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
476
476
796
796
798
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
98
99
102
102
104
109
109
111
111
111
111
122
126
126
133
134
138
142
144
144
146
146
162
166
168
168
170
170
175
185
189
191
191
193
193
208
210
210
212
231
233
235
255
257
257
259
275
279
279
474
603
796
797
797
799
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
99
99
103
103
104
104
111
111
111
111
112
112
123
127
127
133
134
134
135
139
143
145
145
147
147
167
171
171
172
190
194
194
209
211
213
234
236
256
258
260
276
278
278
280
280
476
604
798
798
800
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
99
99
100
104
104
104
105
109
113
113
124
128
128
133
134
134
135
136
140
144
146
146
148
148
168
172
172
175
175
191
195
195
210
212
214
229
233
235
235
237
237
257
259
261
277
279
279
281
476
604
604
799
799
801
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
101
104
104
105
105
105
106
106
106
106
113
114
125
129
129
133
134
134
135
136
137
145
149
149
169
172
173
173
192
196
196
213
215
230
234
236
236
238
238
260
262
278
280
280
282
604
605
605
800
800
802
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
133
134
134
135
136
137
146
150
150
167
170
174
174
175
175
193
197
197
208
212
214
214
216
216
231
235
237
237
239
239
255
259
261
261
263
263
279
281
283
605
605
606
801
801
803
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
133
134
134
135
136
137
147
151
151
167
171
172
173
173
175
175
194
198
198
209
213
215
215
217
217
236
240
240
256
260
262
262
264
264
280
282
284
466
605
605
606
607
802
802
804
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
134
135
135
136
137
148
152
152
172
173
173
175
176
176
195
199
199
210
214
216
216
218
218
237
241
241
257
261
263
263
265
265
283
285
462
466
467
606
607
803
803
805
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
98
98
99
104
105
106
106
107
107
107
107
109
113
114
116
116
116
116
116
129
131
131
133
133
135
135
136
137
149
153
153
173
177
177
196
200
200
215
219
219
238
242
242
262
266
266
278
282
284
284
286
286
463
467
468
605
605
607
804
804
806
1
1
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
96
96
99
106
106
108
108
108
110
113
113
116
117
130
132
132
134
137
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
464
468
469
606
805
805
807
1
1
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
98
98
99
106
106
107
108
109
111
117
118
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
465
469
470
605
607
806
806
808
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
96
96
99
108
108
108
110
112
116
118
119
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
466
470
471
605
606
807
809
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
98
98
99
105
106
106
108
109
111
111
113
113
113
116
116
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
467
471
607
808
810
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
96
96
98
99
106
108
108
108
110
112
112
114
114
118
118
119
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
467
608
809
811
1
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
98
98
98
99
99
99
99
106
106
107
108
108
108
108
111
113
113
115
115
116
116
119
131
132
132
132
132
135
137
137
139
139
155
157
157
159
172
172
181
183
202
204
206
221
225
225
244
248
248
268
272
272
288
292
292
605
805
810
812
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
99
100
100
108
108
108
108
109
109
112
116
116
118
118
119
129
129
132
132
132
132
132
133
133
136
138
138
140
140
156
158
158
160
172
172
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
604
605
606
806
808
811
813
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
101
101
106
110
110
113
116
116
117
117
119
129
129
133
133
133
134
134
137
139
139
141
141
157
159
161
166
166
177
181
183
183
185
185
206
208
223
227
227
246
248
248
250
270
272
272
274
290
294
294
471
605
605
607
809
812
814
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
134
134
135
135
138
142
142
158
160
162
167
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
471
606
606
608
608
810
813
815
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
135
135
139
143
143
161
163
167
170
170
183
187
187
202
206
208
208
210
210
225
227
227
229
248
250
252
272
274
276
292
296
296
461
605
608
608
609
609
811
814
816
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
132
132
132
140
144
144
156
160
162
162
164
164
170
170
172
184
188
188
203
207
209
209
211
211
226
228
228
230
249
251
253
273
275
277
293
297
297
459
461
462
609
610
610
812
815
817
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
129
132
132
132
133
133
141
145
145
157
161
163
163
165
165
172
185
189
189
208
212
212
227
229
231
252
254
276
278
294
296
296
298
298
460
462
463
610
813
816
818
1
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
94
94
95
95
96
99
99
101
101
101
103
103
110
111
113
113
113
113
113
118
121
121
122
122
129
133
134
142
146
146
158
162
164
164
166
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
461
463
464
814
817
819
1
1
1
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
93
93
93
95
96
96
96
100
100
101
110
110
113
114
116
119
121
123
123
134
135
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
462
464
465
605
605
608
815
818
819
820
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
93
94
96
96
96
96
96
97
101
101
101
102
103
103
114
115
116
120
121
121
121
121
124
124
135
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
297
299
301
463
465
466
606
608
609
816
818
820
821
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
96
97
98
101
102
102
103
103
104
104
113
115
116
116
116
116
121
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
296
298
300
300
302
464
466
609
610
817
821
822
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
97
98
99
103
103
103
105
105
110
113
113
122
122
123
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
297
301
301
303
464
610
818
822
823
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
96
98
99
100
102
102
103
103
104
104
105
115
115
116
121
123
123
125
125
127
129
130
147
149
149
151
151
167
169
171
171
191
195
195
214
218
218
233
237
237
256
260
260
280
284
284
298
302
302
304
466
605
610
819
823
824
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
93
96
96
101
103
103
105
105
105
105
113
113
116
121
121
121
123
123
123
124
126
128
128
129
129
130
130
131
148
150
150
152
167
168
169
169
172
172
192
194
194
196
196
215
219
219
234
238
238
257
261
261
281
285
285
303
303
305
466
606
608
820
824
825
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
98
98
99
102
103
103
104
104
105
106
115
115
116
121
122
123
123
123
124
125
127
128
128
129
129
129
130
130
131
131
132
149
151
151
153
166
167
169
169
169
170
170
173
173
193
195
195
197
216
220
220
235
239
239
258
262
262
282
286
286
302
304
304
304
306
457
608
609
821
825
826
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
96
96
99
103
105
105
105
105
107
113
113
116
123
124
125
128
128
128
129
130
130
131
131
132
132
132
133
150
152
154
166
169
170
170
170
172
172
174
174
194
196
196
198
217
219
219
221
221
236
240
240
259
263
263
283
287
287
303
305
305
307
456
457
458
609
610
822
826
827
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
98
98
99
103
103
104
105
105
105
105
106
108
115
115
116
123
125
125
127
128
129
129
131
131
131
132
132
132
133
133
133
151
153
155
166
171
173
173
175
195
197
199
218
220
220
222
237
241
241
260
264
264
284
288
288
304
306
306
308
457
458
459
609
610
611
823
827
828
1
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
125
128
130
130
132
132
132
133
133
154
156
172
174
174
176
196
198
200
219
221
221
223
238
242
242
261
263
263
265
265
285
289
289
307
307
309
458
459
460
609
610
611
612
824
828
829
1
1
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
123
125
125
125
126
129
131
131
133
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
308
308
310
459
460
461
609
610
610
611
612
825
829
830
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
91
93
93
96
96
98
99
103
107
107
108
109
109
111
111
113
113
116
117
117
123
125
125
125
126
127
127
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
309
311
460
461
462
609
610
611
611
612
826
830
831
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
90
91
92
92
94
94
98
98
98
99
99
99
99
103
103
104
108
108
110
110
112
112
118
118
125
125
127
127
127
127
127
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
306
308
310
310
312
312
461
462
609
611
612
612
827
831
832
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
90
91
92
92
92
92
92
95
95
96
96
99
100
100
103
108
108
109
109
113
113
113
118
125
125
127
128
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
307
309
311
311
313
313
461
610
612
613
828
832
833
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
92
92
93
96
96
101
101
103
107
107
107
109
110
110
110
113
114
114
118
118
118
118
128
129
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
290
292
294
308
310
312
312
314
314
462
611
613
829
833
834
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
93
93
94
95
95
96
97
97
101
107
108
110
110
110
110
110
111
113
113
113
115
115
118
118
119
127
129
129
130
130
134
138
138
158
162
162
167
169
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
289
291
293
293
295
311
315
315
462
611
830
834
835
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
94
94
95
96
96
96
98
101
101
107
107
110
111
112
116
116
119
120
120
125
127
127
128
129
129
130
130
131
135
139
139
159
163
163
167
169
169
170
170
179
183
183
203
207
207
226
230
230
245
247
249
264
268
270
270
272
272
290
294
294
296
312
316
316
454
613
831
835
836
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
95
96
96
97
97
99
101
102
111
112
113
117
117
118
120
128
128
129
129
129
130
130
131
131
132
132
136
140
140
160
164
164
166
169
170
170
180
184
184
204
208
208
227
231
231
246
248
250
265
269
271
271
273
273
291
295
295
297
313
317
317
452
453
455
613
832
836
837
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
118
118
118
118
118
120
120
120
127
127
128
129
130
130
131
132
132
132
133
133
137
141
141
161
165
165
166
169
181
185
185
205
209
209
228
232
232
249
251
270
274
274
296
296
298
314
318
318
453
454
456
833
837
838
1
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
118
119
119
119
120
120
120
121
128
129
129
129
130
130
131
132
133
133
138
142
142
162
166
166
169
182
186
186
206
210
210
229
233
233
244
248
250
250
252
252
271
275
275
295
297
297
297
299
315
319
319
454
455
457
834
838
839
1
1
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
120
120
120
121
122
127
127
128
130
131
132
133
139
141
141
143
143
163
165
165
166
167
167
183
187
187
207
211
211
230
234
234
245
249
251
251
253
253
272
276
276
296
298
298
300
316
320
320
455
456
458
835
839
840
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
121
121
122
122
129
129
130
132
133
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
297
299
299
301
317
321
321
456
457
459
836
840
841
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
94
94
95
96
100
101
102
102
103
103
104
104
104
104
112
112
113
118
120
120
120
120
122
122
122
127
127
129
130
133
141
143
143
145
165
167
167
169
185
189
189
209
213
213
232
236
236
251
255
255
274
278
278
300
300
302
318
322
322
457
458
613
837
841
842
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
92
92
94
95
97
101
103
103
103
105
105
105
105
110
110
113
119
120
121
121
122
122
123
123
129
129
129
130
130
130
130
142
144
146
166
168
170
186
190
190
210
212
212
214
214
233
237
237
252
256
256
275
279
279
301
301
303
319
323
323
457
611
613
614
838
842
843
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
94
94
94
95
95
95
95
102
103
103
105
106
106
112
112
113
120
120
122
122
122
122
122
123
124
124
124
127
127
130
131
131
143
145
147
167
169
171
187
191
191
211
213
213
215
234
238
238
253
257
257
276
280
280
302
304
320
322
322
324
324
458
612
614
839
843
844
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
92
92
95
96
96
103
105
105
105
107
107
110
110
112
113
121
122
122
123
124
124
124
124
124
125
129
130
132
132
146
148
167
169
170
172
188
190
190
192
192
212
214
214
216
235
237
237
239
239
254
258
258
277
281
281
299
301
303
303
305
305
321
323
323
325
459
612
840
844
845
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
97
97
103
103
104
105
108
108
112
112
112
113
113
113
113
122
122
122
124
124
125
126
127
128
129
129
130
130
131
132
141
145
147
147
149
149
165
167
169
169
169
170
170
171
171
173
173
189
191
191
193
213
215
217
236
238
238
240
255
259
259
278
282
282
300
302
304
304
306
306
322
324
324
326
450
614
841
845
846
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
92
97
105
105
105
105
109
109
110
110
113
114
114
125
125
126
127
127
128
128
129
130
131
131
132
132
132
132
142
146
148
148
150
150
166
166
169
170
170
170
172
172
174
174
190
192
192
194
214
216
218
237
239
239
241
256
260
260
279
281
281
283
283
301
303
305
305
307
307
323
325
327
448
450
451
614
842
846
847
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
97
97
103
103
105
105
105
105
106
110
110
115
115
120
124
124
126
126
126
127
127
127
128
128
128
129
130
131
132
132
132
132
133
133
133
143
147
149
149
151
151
166
167
169
171
173
173
175
175
191
193
195
217
219
238
240
242
257
261
261
280
282
282
284
304
308
308
324
326
328
449
451
452
843
847
848
1
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
97
98
105
105
105
105
106
106
107
110
111
111
115
121
122
124
124
125
127
127
128
129
129
129
130
131
132
132
132
133
133
133
134
134
134
134
148
152
152
169
172
176
176
192
194
196
212
216
218
218
220
220
239
241
243
258
260
260
262
262
281
283
283
285
305
309
309
327
329
450
452
453
844
848
849
1
1
5
5
5
5
5
5
6
13
14
15
20
20
20
21
22
22
25
25
25
27
27
29
29
30
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
112
112
115
115
115
115
122
126
126
126
127
127
128
128
128
130
130
131
132
132
132
132
133
134
134
149
153
153
166
173
177
177
195
197
213
217
219
219
221
221
242
244
259
261
261
263
282
284
286
306
310
310
322
326
328
328
330
330
451
453
454
845
849
850
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
110
113
113
115
115
116
124
124
127
127
131
131
132
132
133
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
281
283
285
285
287
307
311
311
323
327
329
329
331
331
452
454
455
846
850
851
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
91
91
91
93
97
103
103
108
110
114
114
116
117
117
126
126
127
128
132
132
132
133
133
134
134
151
155
155
175
179
179
191
195
197
197
199
199
219
223
223
238
242
244
244
246
246
261
263
265
282
286
286
288
308
312
312
324
328
330
330
332
332
453
455
614
847
851
852
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
90
92
94
97
98
99
99
103
108
108
109
111
113
113
115
115
115
117
124
124
127
129
132
133
133
134
134
135
135
152
156
156
176
180
180
192
196
198
198
200
200
220
224
224
239
243
245
245
247
247
262
264
266
283
287
287
289
309
313
313
329
333
333
453
612
614
615
848
852
853
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
90
90
91
91
93
95
97
99
99
100
100
103
107
107
107
109
110
110
112
114
114
115
115
115
116
117
117
117
126
126
127
130
134
134
134
136
136
153
157
157
177
181
181
197
201
201
221
225
225
244
248
248
265
267
288
288
290
310
314
314
330
334
334
455
613
615
849
853
854
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
91
94
96
99
101
101
107
108
110
110
110
110
110
113
115
115
115
116
117
117
117
117
118
124
124
126
127
129
130
131
134
134
135
135
136
154
158
158
169
178
182
182
198
202
202
222
226
226
245
249
249
260
264
266
266
268
268
287
289
289
289
291
311
315
315
331
335
335
455
613
850
854
855
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
90
90
91
93
95
95
97
97
99
99
101
107
107
110
111
114
116
117
118
118
119
126
126
126
127
127
127
127
128
129
129
130
130
131
132
136
136
136
136
136
155
157
157
159
159
169
169
179
183
183
199
203
203
223
227
227
246
250
250
261
265
267
267
269
269
288
290
290
292
312
316
316
332
336
336
615
851
855
856
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
90
91
94
96
96
98
98
101
101
101
111
112
115
117
119
119
119
124
124
127
128
128
128
128
129
130
131
131
132
133
134
134
136
137
137
156
158
158
160
166
167
169
180
184
184
200
204
204
224
228
228
247
251
251
262
266
268
268
270
270
289
291
291
293
313
315
315
317
317
333
337
337
615
852
856
857
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
95
97
97
99
99
99
99
101
110
112
113
117
117
118
119
120
128
129
129
129
130
131
132
132
133
134
136
136
136
138
138
157
159
159
161
164
166
167
167
169
181
183
183
185
185
201
205
205
225
229
229
248
252
252
267
271
271
292
292
294
314
316
316
318
334
338
338
443
853
857
858
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
96
100
100
101
101
101
107
110
110
113
117
117
119
119
119
119
120
121
121
124
128
129
129
130
130
131
132
133
133
134
134
135
136
139
139
158
160
162
164
167
169
182
184
184
186
202
206
206
226
230
230
249
253
253
268
272
272
293
293
295
315
317
317
319
335
339
339
444
445
445
854
858
859
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
112
112
113
114
117
118
119
119
119
120
120
120
121
121
122
122
124
128
129
129
129
130
131
132
133
136
136
136
136
138
138
140
140
159
161
163
166
183
185
185
187
203
207
207
227
231
231
250
254
254
269
273
273
294
296
316
318
320
336
340
340
445
446
446
855
859
860
1
1
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
113
115
119
119
119
121
121
121
121
121
121
121
123
123
124
124
129
130
132
133
134
134
136
136
136
136
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
291
293
295
295
297
297
317
319
321
337
341
341
446
447
447
856
860
861
1
1
1
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
93
93
99
99
103
103
103
103
112
112
113
119
119
120
121
122
124
124
129
129
130
131
131
131
131
133
136
136
136
136
137
137
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
292
294
296
296
298
298
320
322
338
340
340
342
342
447
448
448
857
861
861
862
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
93
100
103
104
104
104
110
110
113
121
122
123
124
125
125
129
129
129
131
131
134
138
138
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
293
295
297
297
299
299
315
319
321
321
323
323
339
341
341
343
448
449
449
858
861
862
863
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
93
93
99
99
101
104
105
105
112
112
113
121
122
123
124
126
126
129
138
139
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
296
300
300
316
320
322
322
324
324
340
342
342
344
450
450
450
613
859
863
864
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
93
94
99
102
104
104
105
106
106
110
110
112
113
119
121
121
123
127
127
129
130
131
131
134
134
139
143
145
164
168
168
184
188
190
190
192
192
208
210
210
212
232
234
236
255
257
259
274
278
278
297
301
301
317
321
323
323
325
325
341
343
345
448
450
614
860
864
865
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
93
93
94
95
95
95
95
99
103
103
103
103
105
106
106
107
107
112
112
112
113
113
113
113
123
123
124
124
126
126
127
127
128
128
129
131
131
132
132
134
138
139
139
140
142
144
144
146
146
165
166
166
169
169
185
189
191
191
193
193
209
211
213
235
237
258
260
275
279
279
298
302
302
322
326
326
342
344
346
614
861
865
866
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
90
93
93
93
95
95
103
104
104
106
106
106
106
106
108
108
110
110
113
114
114
121
121
124
125
126
126
126
127
127
127
127
127
128
128
129
129
131
133
133
134
138
138
138
139
140
141
141
143
145
145
147
147
163
163
166
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
299
303
303
323
327
327
345
347
862
866
867
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
103
103
105
106
107
107
107
109
109
115
115
123
123
124
126
126
127
127
127
127
128
128
128
129
129
130
130
131
131
133
138
139
140
141
141
141
141
141
144
146
146
148
148
163
164
166
166
167
171
171
191
195
195
213
215
231
235
237
237
239
239
254
258
260
260
262
262
277
279
279
281
300
304
304
324
328
328
340
344
346
346
348
348
615
615
863
867
868
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
95
95
106
107
108
108
108
110
110
115
121
121
124
127
127
128
129
129
129
130
130
131
131
133
133
133
138
138
141
142
145
149
149
164
164
164
166
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
282
301
305
305
325
329
329
341
345
347
347
349
349
438
616
616
616
616
864
868
869
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
111
115
115
115
115
123
123
124
128
128
129
130
130
130
131
131
132
132
133
142
143
146
150
150
161
161
169
173
173
193
197
197
209
213
215
215
217
217
237
241
241
260
264
264
279
281
283
302
306
306
326
330
330
342
346
348
348
350
350
439
440
440
616
616
616
616
617
617
865
869
870
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
110
112
115
115
116
121
121
123
124
127
127
129
130
131
131
133
133
133
133
133
141
143
144
147
151
151
170
174
174
194
198
198
210
214
216
216
218
218
238
242
242
261
265
265
278
280
282
282
284
303
307
307
327
331
331
347
351
351
440
441
441
617
617
618
618
866
870
871
1
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
116
117
117
123
123
123
124
124
124
124
130
131
131
132
132
133
134
138
141
141
148
152
152
171
175
175
195
199
199
215
219
219
239
243
243
262
266
266
279
283
283
285
304
308
308
328
332
332
348
352
352
441
442
442
618
618
867
871
872
1
1
1
1
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
88
88
88
92
94
94
96
96
97
97
97
106
106
109
112
114
115
117
121
121
124
125
125
131
133
133
133
133
133
135
143
143
144
149
153
153
172
176
176
196
200
200
216
220
220
240
244
244
263
267
267
280
284
284
286
305
307
307
309
309
329
333
333
349
353
353
442
443
443
868
872
873
873
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
90
90
91
93
95
95
97
97
97
107
108
108
109
111
113
113
115
115
115
115
115
117
117
117
126
126
131
131
132
133
133
133
133
134
136
141
141
144
150
154
154
173
175
175
177
177
197
201
201
217
221
221
241
245
245
264
268
268
285
285
287
306
308
308
310
330
334
334
350
354
354
443
444
444
616
869
869
873
874
874
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
88
88
91
94
97
97
97
98
98
106
106
108
109
112
114
114
115
116
116
116
117
117
117
118
121
126
133
133
133
133
133
134
134
135
137
143
143
144
151
155
155
174
176
176
178
198
202
202
218
222
222
242
246
246
265
269
269
284
286
286
286
288
307
309
309
311
331
333
333
335
335
351
355
355
443
445
445
616
616
617
874
875
875
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
90
90
91
95
95
95
97
97
97
97
99
99
108
108
109
109
113
115
115
117
117
117
118
119
121
124
125
126
126
131
135
135
136
138
141
141
144
152
154
154
156
156
160
175
177
177
179
199
201
201
203
203
219
223
223
243
247
247
266
270
270
285
287
287
289
308
310
312
332
334
334
336
352
356
356
445
445
616
617
618
875
876
876
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
91
96
97
97
97
97
98
98
100
100
106
106
108
109
114
118
118
119
119
121
121
124
125
125
126
126
127
131
135
135
136
137
137
139
139
143
143
144
153
155
155
157
163
176
178
180
200
202
202
204
220
224
224
244
246
246
248
248
267
271
271
286
288
288
290
309
311
313
333
335
335
337
353
357
357
618
619
619
876
877
877
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
90
90
91
95
97
99
99
101
101
108
108
108
109
109
109
109
115
117
117
119
119
119
124
124
125
125
125
126
126
126
127
127
128
128
128
128
131
131
132
136
136
138
138
140
140
141
141
143
144
154
156
156
158
160
160
163
177
179
181
201
203
203
205
221
225
225
245
247
247
249
268
272
272
289
289
291
312
314
334
336
338
354
358
358
614
619
877
878
878
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
90
91
98
99
100
102
102
106
106
109
110
110
116
117
119
119
120
120
120
121
124
124
125
125
125
125
126
126
126
126
126
127
128
128
128
131
133
136
136
137
137
139
139
141
141
143
143
143
144
144
144
144
155
157
159
161
163
163
180
182
202
204
206
222
226
226
246
248
248
250
269
271
271
273
273
290
290
292
307
311
313
313
315
315
335
337
339
355
359
359
615
620
878
879
879
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
111
111
117
117
119
119
119
120
121
121
121
121
125
125
126
126
126
127
127
128
131
135
135
135
137
138
138
138
141
141
142
142
144
145
145
156
158
158
160
161
161
163
163
175
179
181
181
183
183
203
205
207
223
227
227
247
249
251
270
272
272
274
291
293
308
312
314
314
316
316
338
340
356
358
358
360
360
433
615
619
619
621
879
880
880
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
111
118
119
119
121
121
121
121
121
122
122
126
126
127
127
127
128
128
128
128
135
136
138
138
138
138
138
139
143
143
146
146
158
159
161
161
176
180
182
182
184
184
206
208
224
226
226
228
228
248
250
252
271
273
273
275
288
290
292
292
294
294
309
313
315
315
317
317
333
337
339
339
341
341
357
359
359
361
434
435
435
615
615
619
620
620
622
880
881
881
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
111
111
111
111
119
119
119
121
122
123
123
125
126
126
128
128
128
128
129
129
135
135
138
139
140
141
144
144
146
154
158
160
160
162
162
177
181
183
183
185
185
201
205
207
207
209
209
225
227
227
229
251
253
272
274
276
289
291
293
293
295
295
314
318
318
334
338
340
340
342
342
358
360
360
362
435
436
436
620
621
621
881
882
882
1
8
10
11
11
16
17
17
20
20
23
23
26
27
34
34
35
35
36
36
36
36
37
39
41
41
41
41
42
42
48
48
49
54
58
59
59
59
60
60
62
62
65
65
68
69
73
75
75
76
76
82
82
84
85
86
86
88
93
99
100
102
102
102
102
102
102
104
104
106
106
106
106
106
111
111
112
120
122
123
124
124
128
130
130
139
140
141
141
145
145
146
146
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
271
273
275
275
277
290
292
294
294
296
296
315
319
319
335
339
341
341
343
343
359
361
363
436
437
437
621
622
882
883
883
1
1
1
7
9
9
11
11
17
17
18
21
21
27
28
29
34
34
34
36
36
36
38
39
40
43
43
46
46
48
49
55
57
57
59
59
61
61
63
63
69
70
75
77
77
79
83
85
85
86
87
87
87
88
93
93
99
99
102
103
103
105
105
107
112
113
113
121
121
123
124
125
125
128
128
130
138
140
141
141
141
142
146
146
146
147
156
160
162
162
164
164
183
187
187
203
207
209
209
211
211
227
229
231
247
251
253
253
255
255
272
276
276
278
293
297
297
316
320
320
340
344
344
360
362
364
437
438
438
883
884
884
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
84
85
86
86
87
88
88
88
88
88
93
94
103
104
104
106
106
108
111
113
119
121
121
122
126
126
130
130
130
135
138
138
143
146
146
147
147
147
148
148
148
148
161
165
165
184
188
188
208
212
212
228
230
232
248
252
254
254
256
256
273
277
277
279
294
298
298
317
321
321
341
345
345
363
365
438
439
439
619
884
885
885
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
46
46
49
50
50
57
57
59
59
59
59
61
65
65
65
68
68
77
77
77
81
82
85
85
85
87
87
89
89
93
93
94
95
95
95
95
102
104
105
105
107
109
111
111
111
113
113
113
123
123
123
124
125
125
127
127
128
128
130
140
140
141
141
144
146
146
146
148
148
148
148
162
166
166
185
189
189
209
213
213
231
233
253
257
257
278
278
280
295
299
299
318
322
322
342
346
346
358
362
364
364
366
366
440
440
615
620
883
886
886
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
86
87
87
88
88
90
90
93
93
93
95
95
99
102
102
106
108
110
111
112
113
113
113
114
121
121
122
123
124
124
126
126
128
130
130
130
138
138
141
145
146
147
147
149
149
160
163
167
167
186
190
190
210
214
214
226
230
232
232
234
234
254
258
258
277
279
279
279
281
296
300
300
319
323
323
343
347
347
359
363
365
365
367
367
438
619
621
884
885
887
887
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
85
85
87
88
91
91
93
104
104
105
109
111
113
114
115
122
123
123
123
123
124
124
125
127
127
128
128
129
130
140
140
141
146
146
147
148
148
148
148
150
157
164
168
168
187
191
191
211
215
215
227
231
233
233
235
235
255
259
259
278
280
280
282
297
301
301
320
324
324
344
348
348
360
364
366
366
368
368
440
615
620
622
886
888
888
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
87
87
88
88
92
92
93
94
95
95
102
102
104
105
108
110
110
112
112
115
115
121
121
122
123
123
124
124
125
126
128
130
130
130
130
138
138
141
146
147
148
148
149
149
149
149
151
160
160
165
169
169
188
192
192
212
216
216
228
232
234
234
236
236
256
260
260
279
281
281
283
298
302
302
321
325
325
345
349
349
365
369
369
440
619
621
887
889
889
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
88
89
93
93
93
95
95
96
96
104
104
105
105
109
111
111
113
113
113
113
115
122
123
123
123
123
124
124
125
126
127
128
128
129
130
130
130
130
131
140
140
141
148
148
150
150
150
152
157
166
170
170
189
193
193
213
217
217
233
237
237
257
261
261
282
282
284
299
303
303
322
326
326
346
350
350
366
370
370
620
622
622
888
890
890
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
90
94
94
95
97
97
102
102
105
106
110
112
112
113
114
114
115
115
116
121
121
122
123
123
123
124
124
125
126
130
130
130
130
130
131
131
132
138
138
140
141
148
148
149
150
151
152
153
160
160
167
171
171
190
194
194
214
218
218
234
238
238
258
262
262
283
283
285
300
304
304
323
325
325
327
327
347
351
351
367
371
371
620
622
623
889
891
891
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
111
113
115
115
115
115
115
116
117
117
122
123
123
123
123
123
124
124
124
124
124
125
125
126
128
129
131
131
132
132
133
133
140
140
140
141
141
141
141
150
150
150
152
152
154
157
158
158
168
172
172
191
193
193
195
195
215
219
219
235
239
239
259
263
263
284
286
301
305
305
324
326
326
328
348
352
352
368
372
372
430
620
622
623
624
890
892
892
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
112
115
115
116
116
117
117
117
117
117
121
121
123
124
124
124
125
125
125
126
126
130
132
132
132
133
134
134
138
138
141
142
142
147
148
148
150
150
150
150
151
153
153
155
155
158
158
160
169
173
173
192
194
194
196
216
220
220
236
240
240
260
264
264
281
283
285
285
287
287
302
304
304
306
306
325
327
327
329
349
351
351
353
353
369
373
373
426
430
431
623
624
891
893
893
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
113
115
115
117
117
117
118
124
124
125
126
126
126
127
128
128
131
133
133
133
135
135
143
143
148
150
150
150
150
151
151
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
282
284
286
286
288
288
303
305
305
307
326
328
330
350
352
352
354
370
372
372
374
374
427
431
432
620
622
624
892
894
894
1
1
5
5
8
9
9
13
13
19
19
21
21
21
21
28
30
31
31
32
36
36
38
38
38
38
46
46
47
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
114
118
118
118
119
121
126
126
128
132
133
133
134
136
136
138
143
148
149
152
152
153
155
155
157
157
171
173
173
175
194
196
198
218
220
220
222
238
242
242
262
264
264
266
266
283
285
287
287
289
289
304
306
306
308
327
329
331
351
353
353
355
371
373
373
375
428
432
433
623
893
895
895
1
1
4
4
5
5
9
9
9
9
10
13
14
21
21
21
21
22
22
26
29
31
31
33
38
38
38
38
39
39
48
48
48
49
50
50
52
52
53
55
55
64
66
67
68
71
73
73
73
75
75
80
80
81
85
90
95
95
95
97
97
97
97
97
97
99
99
107
107
115
117
119
119
119
120
121
126
126
128
132
132
132
133
134
135
135
137
137
138
143
143
152
153
154
158
158
172
174
174
176
195
197
199
219
221
221
223
239
243
243
263
265
265
267
286
290
290
305
307
309
330
332
352
354
356
372
374
374
376
429
433
434
620
624
894
896
896
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
85
90
90
96
97
97
97
97
98
98
98
98
100
102
107
115
116
117
117
120
120
121
121
126
127
132
133
134
135
135
135
135
135
138
138
138
138
143
144
148
148
153
155
159
159
173
175
177
198
200
220
222
224
240
242
242
244
244
264
266
266
268
287
291
291
306
308
310
325
329
331
331
333
333
353
355
357
373
375
377
430
434
435
621
622
895
897
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
85
85
90
91
95
97
99
99
99
99
101
102
107
107
107
107
117
119
119
120
121
121
126
126
127
128
128
128
128
132
132
135
135
136
139
139
143
143
144
145
145
145
145
148
153
153
154
156
160
160
174
176
178
193
197
199
199
201
201
221
223
225
241
243
243
245
265
267
269
288
292
292
309
311
326
330
332
332
334
334
356
358
374
376
378
431
435
623
896
898
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
90
90
91
92
92
92
92
98
99
100
100
102
102
102
102
107
107
108
117
117
118
120
121
122
122
126
126
126
128
128
136
136
137
138
140
140
143
143
143
145
145
152
152
154
155
155
157
161
161
177
179
194
198
200
200
202
202
224
226
242
244
244
246
264
266
268
268
270
289
293
293
304
308
310
310
312
312
327
331
333
333
335
335
351
355
357
357
359
359
377
379
431
624
897
899
1
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
90
90
90
92
92
95
95
99
100
101
103
108
109
109
119
119
119
120
121
121
121
121
123
123
126
135
137
137
138
141
141
143
148
152
155
155
155
155
155
157
157
158
162
162
172
176
178
178
180
180
195
199
201
201
203
203
219
223
225
225
227
227
243
245
247
265
269
269
271
290
294
294
305
309
311
311
313
313
332
336
336
352
356
358
358
360
360
378
378
380
380
620
895
898
900
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
90
95
100
100
101
102
104
107
109
117
117
118
118
120
120
121
121
121
121
122
122
122
122
124
124
126
127
128
128
132
135
135
138
142
142
143
144
145
145
152
152
152
153
155
156
157
157
159
163
163
173
177
179
179
181
181
200
204
204
220
224
226
226
228
228
244
246
248
266
270
270
272
291
295
295
306
310
312
312
314
314
333
337
337
353
357
359
359
361
361
372
376
379
379
381
381
621
622
622
896
896
899
901
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
107
107
107
109
109
109
118
118
119
119
120
121
122
122
123
123
123
123
125
126
128
128
129
129
137
137
138
139
141
141
143
143
143
145
145
146
146
151
151
156
157
160
164
164
174
178
180
180
182
182
201
205
205
221
225
227
227
229
229
247
249
271
271
273
292
296
296
311
315
315
334
338
338
358
362
362
373
377
380
380
382
382
435
623
623
623
897
900
902
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
107
108
109
109
109
110
117
117
119
120
122
123
123
124
124
124
124
126
128
130
130
135
135
138
140
142
142
144
145
147
147
152
157
158
161
165
165
179
183
183
202
206
206
226
230
230
242
246
248
248
250
250
270
272
272
272
274
293
297
297
312
316
316
335
339
339
359
363
363
374
378
383
383
435
624
624
624
624
898
901
903
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
109
110
111
119
119
119
120
120
120
120
123
124
124
125
127
128
128
130
137
137
138
141
143
143
145
145
145
147
152
155
155
155
155
155
162
166
166
180
184
184
203
207
207
227
231
231
243
247
249
249
251
251
271
273
273
275
294
298
298
313
317
317
336
340
340
360
364
364
379
384
384
425
623
624
624
625
625
899
902
904
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
108
108
111
111
117
117
120
121
121
121
121
121
124
126
128
130
130
130
135
135
138
142
144
146
147
147
147
152
155
155
157
157
158
163
165
165
167
167
181
185
185
204
208
208
228
232
232
244
248
250
250
252
252
272
274
274
276
295
297
297
299
299
314
318
318
337
341
341
361
365
365
380
385
385
423
425
426
625
626
626
900
903
905
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
109
109
109
109
111
118
121
121
121
122
122
122
122
127
128
128
129
130
137
137
138
143
145
145
145
147
147
147
147
147
155
155
157
157
164
166
166
168
182
186
186
205
209
209
229
233
233
249
253
253
275
275
277
296
298
298
300
315
319
319
338
342
342
362
366
366
381
386
386
424
426
427
626
901
904
906
1
1
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
84
84
85
86
86
92
92
94
99
102
102
106
109
110
110
111
111
112
117
118
122
122
122
123
126
128
128
130
130
130
130
130
135
135
137
138
146
147
147
147
147
148
148
148
151
157
158
158
165
167
167
169
183
187
187
206
210
210
230
234
234
250
254
254
276
276
278
297
299
299
301
316
320
320
339
343
343
363
365
365
367
367
382
387
387
425
427
428
902
905
907
1
1
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
57
58
60
60
60
60
60
60
64
64
64
69
69
77
77
77
82
82
83
84
85
87
87
94
94
94
104
104
105
107
109
111
111
111
111
111
112
113
113
117
122
122
123
123
124
127
128
128
129
129
130
131
131
137
137
137
138
138
138
138
141
145
145
147
147
149
149
149
149
155
155
157
166
168
170
184
188
188
207
211
211
231
235
235
251
255
255
277
279
298
300
302
317
321
321
340
344
344
364
366
366
368
383
388
388
426
428
429
623
623
624
903
906
907
908
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
84
84
84
84
85
85
85
85
88
88
92
92
94
94
94
94
102
102
105
108
111
111
112
112
113
113
113
113
113
117
117
122
123
124
124
128
130
130
130
130
130
132
132
135
135
138
139
139
142
146
148
148
149
150
150
150
157
158
158
167
169
171
185
189
189
208
212
212
232
236
236
252
256
256
274
276
278
278
280
280
299
301
303
318
322
322
341
343
343
345
345
365
367
367
369
384
389
389
427
429
430
624
624
625
904
906
908
909
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
85
85
86
86
89
89
94
94
94
94
95
95
104
104
105
109
111
111
113
113
113
114
122
122
123
124
124
124
124
128
128
129
130
130
130
130
133
133
140
140
143
145
145
147
149
149
150
151
151
155
155
157
157
158
170
172
186
190
190
209
211
211
213
213
233
235
235
237
237
253
257
257
275
277
279
279
281
281
302
304
319
323
323
342
344
344
346
366
368
370
385
390
390
428
430
625
626
905
909
910
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
86
87
87
90
90
92
96
96
102
102
105
110
114
114
114
115
117
122
122
122
124
124
130
130
130
130
130
131
131
134
134
135
140
145
148
150
150
151
152
152
155
155
157
157
158
158
165
169
171
171
173
173
187
191
191
210
212
212
214
234
236
236
238
254
258
258
276
278
280
280
282
282
297
301
303
303
305
305
320
322
322
324
324
343
345
345
347
367
369
371
386
390
390
391
391
428
626
906
910
911
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
87
87
89
89
91
91
96
97
104
104
105
111
113
115
115
115
116
118
119
122
128
131
132
132
135
135
135
140
140
149
149
149
151
152
152
153
153
154
157
158
158
159
166
170
172
172
174
174
188
190
190
192
192
211
213
213
215
235
237
237
239
255
259
259
279
283
283
298
302
304
304
306
306
321
323
323
325
344
346
348
370
372
387
391
391
392
392
430
623
626
907
911
912
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
111
112
113
113
116
116
117
118
118
119
119
120
122
123
124
124
132
132
133
135
135
136
136
140
141
145
149
150
152
152
152
152
152
152
154
154
154
154
158
159
160
167
171
173
173
175
175
189
191
191
193
212
214
216
236
238
240
256
260
260
280
284
284
299
303
305
305
307
307
322
324
324
326
345
347
349
371
371
373
373
388
392
392
393
430
624
624
908
912
913
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
104
104
104
105
105
105
105
113
115
115
115
115
116
117
117
117
117
118
118
119
119
120
120
121
122
124
124
125
125
128
128
133
133
137
137
140
140
141
142
142
142
142
149
149
149
150
151
151
152
152
153
154
154
155
155
155
155
155
160
160
172
176
176
190
192
192
194
213
215
217
237
239
241
257
261
261
281
285
285
304
308
308
323
325
327
348
350
365
369
372
372
374
374
389
393
394
421
624
625
909
913
914
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
105
106
106
113
113
114
116
116
116
117
117
118
118
119
120
120
121
121
121
122
124
126
126
128
133
133
134
134
135
138
138
140
140
140
142
142
151
152
153
154
154
155
155
155
156
156
160
173
177
177
191
193
195
216
218
240
242
258
260
260
262
262
282
286
286
305
309
309
324
326
328
343
347
349
349
351
351
366
370
373
373
375
375
390
394
395
420
421
422
625
626
910
914
915
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
107
107
115
115
115
116
117
117
117
119
120
121
121
121
122
122
122
124
124
126
128
132
132
132
134
135
135
135
139
139
140
151
153
154
155
157
157
174
178
178
192
194
196
211
215
217
217
219
219
235
239
241
241
243
243
259
261
261
263
283
287
287
306
310
310
327
329
344
348
350
350
352
352
367
371
376
376
391
395
396
421
422
423
625
626
627
911
915
916
1
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
87
94
96
96
96
99
100
102
107
113
113
116
116
118
120
121
122
122
126
126
126
132
133
135
135
135
135
135
136
138
138
140
140
140
141
142
142
152
152
152
154
158
158
175
179
179
195
197
212
216
218
218
220
220
236
240
242
242
244
244
260
262
262
264
284
288
288
307
311
311
322
326
328
328
330
330
345
349
351
351
353
353
372
377
377
392
396
397
422
423
424
625
626
627
628
912
916
917
1
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
60
60
62
63
70
71
71
72
73
74
79
80
82
82
82
82
82
87
88
89
89
89
93
95
95
97
97
100
101
102
107
107
107
107
115
115
116
117
119
121
122
124
124
126
132
132
135
136
137
139
139
140
141
142
142
143
143
149
154
155
155
159
159
176
180
180
190
194
196
196
198
198
213
217
219
219
221
221
237
241
243
243
245
245
261
263
265
285
289
289
308
312
312
323
327
329
329
331
331
350
354
354
373
378
378
393
393
397
398
423
424
425
625
626
626
627
628
913
917
918
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
83
87
89
89
90
90
90
94
96
96
98
98
99
101
102
102
102
102
107
107
108
113
113
115
116
120
122
126
126
126
136
137
138
140
140
142
142
144
144
152
152
154
156
160
160
160
160
177
181
181
191
195
197
197
199
199
218
222
222
242
246
246
260
262
264
264
266
286
290
290
309
313
313
324
328
330
330
332
332
351
355
355
374
379
379
398
399
424
425
426
625
626
627
627
628
914
918
919
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
84
89
91
91
91
95
96
97
97
99
99
99
99
108
109
109
115
115
115
115
116
116
116
116
119
121
121
123
123
124
124
126
135
137
138
139
141
142
142
143
144
154
155
155
157
157
158
159
159
160
160
161
161
178
182
182
192
196
198
198
200
200
219
223
223
243
247
247
261
265
265
267
287
291
291
310
314
314
329
333
333
352
356
356
375
380
380
399
400
425
426
625
627
628
628
915
919
920
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
84
85
89
89
91
96
100
100
101
101
102
107
109
113
113
116
116
117
117
120
122
122
124
124
126
126
126
132
135
135
140
142
144
144
144
144
152
152
154
155
155
155
155
157
158
160
160
162
179
183
183
197
201
201
220
224
224
244
248
248
262
266
266
268
288
290
290
292
292
311
315
315
330
334
334
353
357
357
376
381
381
390
390
400
401
425
626
628
629
916
920
921
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
91
91
91
97
99
99
101
101
102
107
107
107
109
109
109
117
118
118
121
123
123
124
124
125
125
126
126
126
126
137
137
138
142
142
143
144
144
144
144
145
154
155
155
158
159
161
161
163
180
184
184
198
202
202
221
225
225
245
249
249
267
267
269
289
291
291
293
312
316
316
331
335
335
354
358
358
377
382
382
388
391
391
397
401
402
426
627
629
917
921
922
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
107
108
109
109
109
110
113
118
118
119
122
126
126
126
126
126
126
127
127
135
135
138
138
142
144
144
144
144
144
144
145
145
146
146
152
152
152
154
154
154
155
160
162
164
181
183
183
185
185
199
203
203
222
226
226
246
250
250
266
268
268
268
270
290
292
292
294
313
315
315
317
317
332
336
336
355
357
357
359
359
378
383
383
389
392
392
397
398
402
402
403
403
426
627
918
922
923
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
103
103
109
110
111
113
117
118
118
118
118
119
119
120
123
124
127
127
128
128
137
137
138
139
142
143
145
145
146
146
147
147
152
152
152
154
154
154
154
155
155
155
155
160
161
163
165
182
184
184
186
200
204
204
223
227
227
247
251
251
267
269
269
271
291
293
295
314
316
316
318
333
337
337
356
358
358
360
379
383
383
384
384
390
393
393
399
404
404
418
629
919
923
924
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
104
104
111
111
113
113
117
117
118
118
119
119
120
120
121
121
124
128
128
128
129
135
135
138
140
144
146
146
146
147
148
148
151
154
154
155
155
155
155
156
160
164
166
183
185
185
187
201
205
205
224
228
228
248
252
252
268
270
270
272
292
294
296
315
317
317
319
334
338
338
357
359
359
361
380
384
384
385
385
391
391
400
405
405
416
417
419
629
920
924
925
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
82
82
82
82
85
91
91
91
91
92
92
99
99
101
101
102
105
105
109
109
111
117
118
118
118
119
119
120
120
120
120
120
121
121
121
122
122
124
124
125
129
129
129
137
137
138
142
142
145
147
149
149
151
154
155
155
156
157
159
163
165
165
167
167
184
186
188
202
206
206
225
227
227
229
229
249
253
253
271
271
273
295
297
316
318
320
335
339
339
358
360
362
381
385
385
386
393
393
401
406
406
417
418
420
921
925
926
1
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
83
83
84
84
85
89
93
93
101
101
101
102
102
102
102
102
106
106
109
111
111
112
113
117
118
118
118
118
119
120
120
120
121
122
122
124
126
129
129
130
130
130
135
135
137
138
142
146
147
147
148
150
150
152
154
157
157
157
157
157
158
160
164
166
166
168
168
185
187
189
203
207
207
226
228
228
230
250
254
254
272
272
274
290
294
296
296
298
298
317
319
321
336
340
340
359
361
363
382
386
387
393
402
407
407
418
419
421
922
926
927
1
1
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
82
82
84
84
84
85
93
94
99
99
102
103
103
103
107
107
109
111
111
111
112
113
113
117
118
120
121
122
124
127
128
128
128
130
131
131
131
131
137
137
137
138
138
138
138
146
146
147
148
149
149
151
151
151
152
155
155
157
157
158
158
161
165
167
167
169
169
188
190
204
208
208
227
229
229
231
251
253
253
255
255
273
275
291
295
297
297
299
299
320
322
337
341
341
362
364
383
387
388
388
388
393
397
397
397
397
403
408
408
419
420
422
923
927
928
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
81
84
84
84
85
85
85
85
85
85
89
89
94
104
104
104
108
108
111
111
113
113
113
113
113
118
119
120
120
121
122
128
128
129
131
131
131
131
131
132
132
135
135
138
139
139
142
146
148
149
149
149
149
149
152
152
155
155
157
158
166
170
170
183
187
189
189
191
191
205
209
209
228
230
232
252
254
254
256
270
272
274
274
276
276
292
296
298
298
300
300
315
319
321
321
323
323
338
340
340
342
342
363
363
365
365
384
386
388
389
389
389
398
398
404
409
409
420
421
423
924
928
929
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
82
82
82
85
86
86
86
86
89
94
94
95
99
104
105
107
107
109
109
111
111
113
114
118
120
120
121
121
122
128
128
129
131
131
131
132
133
133
140
140
146
146
146
147
149
149
150
153
153
158
167
171
171
184
188
190
190
192
192
206
208
208
210
210
229
231
233
253
255
255
257
271
273
275
275
277
277
297
301
301
316
320
322
322
324
324
339
341
341
343
357
361
364
364
366
366
385
387
389
390
390
390
397
397
397
397
399
399
405
410
410
421
422
629
925
929
930
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
83
87
87
87
87
89
93
93
93
95
96
96
99
104
104
104
104
106
108
108
110
114
115
120
122
122
130
132
132
132
133
134
135
140
150
150
151
154
154
155
168
172
172
185
189
191
191
193
193
207
209
209
211
232
234
254
256
258
272
274
276
276
278
278
298
302
302
317
321
323
323
325
325
340
342
342
344
358
362
365
365
367
367
386
386
388
390
391
391
391
397
397
397
397
398
398
398
406
411
411
421
627
629
630
926
930
931
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
82
84
86
86
87
88
88
93
94
96
96
96
96
96
99
99
99
104
104
105
107
109
109
111
113
115
116
120
120
122
131
131
133
133
133
134
135
135
140
140
151
151
152
155
155
157
157
169
173
173
190
194
194
208
210
210
212
227
231
233
233
235
235
253
255
257
257
259
275
279
279
299
303
303
322
326
326
341
343
345
359
363
368
368
389
389
391
392
398
399
399
399
407
412
412
422
628
630
927
931
932
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
85
87
87
87
87
89
93
93
96
97
105
106
106
108
110
111
112
113
113
118
119
122
122
122
128
131
131
132
134
135
135
136
140
141
149
149
149
152
152
154
154
155
156
156
157
157
170
174
174
191
195
195
209
211
213
228
232
234
234
236
236
254
258
258
260
276
280
280
300
304
304
323
327
327
342
344
346
364
369
369
392
393
393
399
400
400
408
413
413
423
628
928
932
933
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
86
87
88
88
88
90
97
98
104
106
109
111
113
115
115
116
117
118
118
119
119
120
120
120
122
133
133
133
134
135
137
140
140
141
142
142
142
142
146
151
152
152
152
152
152
152
153
154
154
154
155
155
157
157
157
158
171
175
175
192
196
196
210
212
214
229
233
235
235
237
237
255
259
259
261
277
281
281
301
305
305
324
328
328
345
347
365
370
370
383
383
391
393
394
394
394
409
414
414
414
630
929
933
934
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
104
104
104
106
106
106
112
113
113
114
116
117
117
118
119
120
120
121
121
122
122
122
131
131
134
135
136
138
140
140
140
142
142
149
149
151
151
154
154
155
155
155
155
155
156
156
157
157
157
158
158
172
176
176
193
197
197
213
215
234
238
238
260
260
262
278
282
282
302
306
306
325
329
329
340
344
346
346
348
348
366
371
371
381
384
384
386
386
390
391
394
395
410
412
414
415
415
415
630
930
934
935
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
104
105
106
106
106
107
107
111
113
113
115
115
115
115
116
117
118
119
120
120
120
121
121
121
122
122
122
131
133
133
134
135
137
137
139
139
140
151
151
152
152
154
155
157
157
158
158
158
159
173
177
177
194
198
198
208
212
214
214
216
216
235
239
239
259
261
261
261
263
279
283
283
303
307
307
326
330
330
341
345
347
347
349
349
367
372
372
382
384
385
385
387
387
390
391
395
395
396
396
400
411
413
415
416
416
416
931
935
936
1
4
4
4
5
6
7
9
11
11
12
12
20
20
21
23
27
27
29
29
31
33
37
37
37
39
40
40
45
47
51
51
54
54
57
58
60
65
67
67
69
69
69
69
70
74
74
78
78
81
87
91
93
98
98
99
106
107
108
108
112
113
113
114
114
116
116
116
117
118
119
120
121
122
122
122
122
122
131
131
132
134
136
138
138
140
140
140
141
142
142
149
149
151
154
155
155
156
157
158
158
160
174
178
178
195
199
199
209
213
215
215
217
217
236
240
240
260
262
262
264
280
284
284
304
308
308
327
331
331
342
346
348
348
350
350
368
373
373
383
385
386
386
388
388
392
397
397
400
412
414
416
417
417
417
932
936
937
1
1
4
4
5
5
7
8
11
13
13
18
18
21
24
28
28
31
31
31
37
38
40
40
40
40
40
45
46
47
47
48
52
52
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
108
108
109
113
115
115
115
115
116
117
117
117
120
120
120
121
122
122
122
122
122
133
133
133
134
137
139
139
140
141
141
142
142
143
143
151
151
152
152
157
157
157
159
161
175
177
177
179
179
196
200
200
210
214
216
216
218
218
237
241
241
261
263
263
265
281
285
285
305
309
309
328
332
332
347
351
351
369
374
374
384
384
386
389
389
393
398
398
413
415
417
418
418
418
933
937
938
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
80
81
87
87
89
89
90
90
91
93
93
95
95
98
98
99
106
106
108
113
113
114
115
116
118
118
121
122
122
122
122
122
123
123
131
131
133
134
138
142
142
142
144
144
149
149
151
151
152
152
158
158
160
162
176
178
178
180
197
201
201
215
219
219
238
242
242
264
264
266
282
286
286
306
308
308
310
310
329
333
333
348
352
352
370
375
375
386
386
387
387
394
399
399
400
400
414
416
418
419
419
419
934
938
939
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
77
77
80
80
80
81
81
81
81
88
89
91
91
92
94
94
96
96
96
96
99
106
108
108
109
115
115
115
115
116
116
116
116
119
119
120
122
124
124
133
133
133
134
134
134
134
139
142
142
143
143
144
149
149
151
151
152
152
154
154
154
155
155
161
163
177
179
179
181
198
202
202
216
220
220
239
243
243
265
265
267
283
287
287
307
309
309
311
330
334
334
349
353
353
371
375
375
376
376
386
394
395
400
400
401
401
415
417
419
420
420
630
935
939
940
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
78
78
78
78
81
82
82
89
89
91
93
97
97
98
98
99
106
108
108
108
109
110
110
113
113
116
116
117
117
120
120
124
125
131
131
134
135
135
140
144
144
144
144
144
151
152
152
152
152
153
154
155
155
156
157
158
160
162
162
164
164
178
180
182
199
201
201
203
203
217
221
221
240
244
244
266
268
284
286
286
288
288
308
310
310
312
331
333
333
335
335
350
354
354
372
376
376
377
377
381
381
386
389
390
390
390
390
395
395
396
401
401
416
417
421
421
628
630
631
936
940
941
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
83
83
91
91
91
94
96
96
98
98
98
99
108
108
110
110
110
110
110
117
118
118
120
120
121
121
125
136
136
141
142
142
144
144
144
144
145
145
152
152
152
153
154
154
155
155
155
157
157
157
157
161
163
163
165
165
179
181
183
200
202
202
204
218
222
222
241
245
245
263
265
267
267
269
269
285
287
287
289
309
311
313
332
334
334
336
351
355
355
373
377
377
378
379
382
382
384
384
389
391
391
397
402
402
417
419
422
422
629
631
937
941
942
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
83
89
89
91
95
98
98
98
99
99
99
99
99
99
108
108
110
111
113
118
118
118
119
120
122
122
125
125
126
131
136
142
144
144
144
144
145
145
146
146
149
154
154
154
155
158
158
158
158
162
164
164
166
166
182
184
201
203
203
205
219
223
223
242
246
246
264
266
268
268
270
270
286
288
288
290
310
312
314
333
335
335
337
352
354
354
356
356
374
378
379
380
382
383
383
385
385
390
390
390
390
392
392
398
401
403
403
418
419
423
423
629
938
942
943
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
81
81
83
83
91
91
91
96
96
96
99
100
100
100
100
111
112
113
117
118
118
118
118
119
119
119
120
120
123
123
124
124
124
126
127
127
131
136
136
142
143
146
146
147
147
149
152
154
154
154
155
155
163
167
167
177
181
183
183
185
185
202
204
206
220
224
224
243
245
245
247
247
265
267
269
269
271
271
287
289
291
313
315
334
336
338
353
355
355
357
375
379
380
381
383
384
384
386
386
390
390
390
390
391
391
391
399
401
404
404
419
424
424
631
939
943
944
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
78
78
78
80
80
82
83
84
89
89
91
91
91
91
97
101
101
101
101
110
112
113
113
113
117
117
118
118
119
119
120
120
120
121
124
124
124
125
127
127
127
127
127
131
131
136
137
144
146
147
148
148
151
152
154
157
164
168
168
178
182
184
184
186
186
203
205
207
221
225
225
244
246
246
248
268
272
272
288
290
292
308
312
314
314
316
316
335
337
339
354
356
356
358
376
380
381
382
382
384
387
387
391
392
392
392
400
405
405
420
425
425
631
940
944
945
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
79
81
81
83
83
83
84
85
85
85
85
91
91
91
91
92
92
96
98
101
102
102
108
110
110
117
118
118
118
119
119
120
120
120
120
120
121
121
121
122
123
123
124
124
125
125
127
128
136
136
137
138
138
138
138
142
142
145
147
149
149
149
151
152
152
154
158
165
169
169
179
183
185
185
187
187
206
208
222
224
224
226
226
245
247
247
249
269
273
273
291
293
309
313
315
315
317
317
338
340
355
357
359
377
381
382
385
385
386
392
393
393
401
401
401
406
406
407
421
426
426
941
945
946
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
82
83
83
83
84
85
85
89
93
93
96
99
101
101
101
101
103
103
112
112
113
113
117
118
118
118
118
119
119
120
120
120
121
122
122
122
124
124
126
128
129
131
136
136
136
138
138
142
146
147
147
148
149
150
150
152
154
154
155
155
166
170
170
184
188
188
201
205
207
207
209
209
223
225
225
227
246
248
250
270
274
274
286
290
292
292
294
294
310
314
316
316
318
318
333
337
339
339
341
341
356
358
360
378
378
382
383
384
387
387
395
402
402
402
407
407
408
409
409
422
427
427
942
946
947
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
83
83
85
93
94
96
96
96
100
101
101
102
104
104
110
110
113
117
118
118
119
120
121
122
123
125
125
127
127
129
130
136
146
146
147
148
149
149
149
149
151
151
151
152
152
154
154
154
154
154
167
171
171
185
189
189
202
206
208
208
210
210
224
226
226
228
245
247
249
249
251
271
275
275
287
291
293
293
295
295
315
319
319
334
338
340
340
342
342
359
361
379
379
383
384
384
387
396
396
403
408
408
409
410
410
423
428
428
943
947
948
1
1
7
7
8
8
11
14
15
15
15
15
16
16
17
18
18
19
19
23
29
33
33
33
35
36
36
37
39
42
42
42
43
43
43
43
47
47
52
55
59
61
61
62
62
63
63
69
69
69
76
76
77
83
84
84
85
85
86
89
89
94
101
102
103
103
105
105
112
112
113
118
119
120
120
121
122
124
124
126
127
127
128
136
137
138
138
142
146
148
149
149
149
149
149
150
150
151
152
152
154
154
155
155
155
157
157
168
172
172
186
190
190
203
207
209
209
211
211
225
227
229
246
250
250
252
272
276
276
288
292
294
294
296
296
316
320
320
335
339
341
341
343
343
360
360
362
362
377
380
380
384
385
387
393
404
409
409
410
411
411
424
429
429
944
948
949
1
1
1
8
8
8
9
9
15
16
16
18
18
18
18
18
20
20
23
24
25
25
32
33
34
36
36
36
36
36
36
38
38
40
40
40
40
43
44
44
47
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
101
102
103
104
104
106
106
110
110
113
118
120
120
121
121
122
125
127
129
129
129
130
136
138
138
139
139
146
146
146
147
149
149
149
149
149
149
150
151
151
151
152
152
153
155
158
158
169
173
173
187
191
191
208
212
212
226
228
230
247
251
251
253
273
277
277
293
297
297
317
321
321
340
344
344
354
358
361
361
363
363
375
375
378
381
381
385
386
393
402
405
410
410
411
412
412
425
430
430
945
949
949
950
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
77
80
84
85
86
86
87
87
88
88
89
93
93
93
95
96
96
101
101
101
103
103
103
103
105
105
107
112
112
113
120
122
122
127
127
128
130
130
138
140
140
150
150
151
152
152
152
154
154
155
155
155
155
170
174
174
188
192
192
209
213
213
229
231
252
252
254
274
278
278
294
298
298
318
322
322
341
345
345
355
359
362
362
364
364
373
376
376
378
379
382
382
382
386
387
402
406
411
411
412
413
413
426
431
431
946
949
950
951
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
77
81
85
85
85
87
87
87
89
89
93
94
96
96
96
96
96
101
102
103
103
103
104
104
106
106
108
110
110
112
113
120
120
122
123
127
129
129
129
129
130
131
131
138
138
140
151
151
152
152
153
155
155
155
157
171
175
175
189
193
193
210
214
214
224
228
230
230
232
232
251
253
253
253
255
275
279
279
295
299
299
319
323
323
342
346
346
356
360
365
365
374
377
377
379
380
380
380
380
382
383
387
387
388
388
393
393
407
412
412
414
414
414
427
432
432
629
947
951
952
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
76
76
77
86
87
87
87
90
90
93
93
96
97
103
104
105
105
107
109
112
112
112
113
113
113
113
122
122
122
124
127
127
128
130
130
130
132
132
140
140
140
149
149
149
152
154
154
156
158
172
174
174
176
176
190
194
194
211
215
215
225
229
231
231
233
233
252
254
254
256
276
280
280
296
300
300
320
324
324
343
347
347
361
366
366
375
378
378
380
381
381
384
387
389
389
394
394
408
412
413
413
414
428
433
433
630
948
952
953
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
76
77
85
85
87
87
91
91
97
98
105
105
106
108
110
110
110
113
114
114
114
114
116
116
120
120
122
125
129
129
129
130
131
131
133
133
138
138
140
140
140
140
146
149
151
151
151
152
153
154
154
155
155
155
155
157
157
173
175
175
177
191
195
195
212
216
216
226
230
232
232
234
234
253
255
255
257
277
279
279
281
281
297
301
301
321
325
325
344
348
348
362
367
367
376
376
381
382
382
382
385
388
388
390
390
409
414
414
429
434
630
949
953
954
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
76
76
76
77
77
77
77
87
87
87
88
92
92
96
98
99
103
103
105
109
111
114
114
114
115
115
116
116
116
116
116
117
117
122
122
122
127
127
129
130
130
134
134
140
140
140
140
141
141
148
148
149
149
149
150
151
151
152
152
154
154
154
154
156
156
158
158
174
176
176
178
192
196
196
213
217
217
231
235
235
256
256
258
278
280
280
282
298
302
302
322
326
326
345
347
347
349
349
363
368
368
377
377
378
378
382
383
383
386
391
391
396
410
415
415
430
435
950
954
955
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
85
85
87
87
87
87
89
93
93
93
96
96
103
104
105
105
106
108
110
110
110
112
112
114
115
116
116
116
116
117
117
117
118
118
120
120
122
129
129
129
130
130
130
130
131
135
135
138
142
142
148
149
151
151
151
151
151
151
151
152
152
152
155
155
155
155
157
157
159
159
175
177
179
193
195
195
197
197
214
218
218
232
236
236
257
257
259
279
281
281
283
299
303
303
323
327
327
346
348
348
350
364
369
369
375
378
378
378
381
387
392
392
394
397
411
416
416
431
433
433
436
631
631
951
955
956
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
87
87
87
87
88
88
90
94
94
98
98
99
103
105
105
105
105
106
107
107
109
110
111
111
113
113
115
115
116
117
118
118
118
119
119
122
122
122
127
127
130
131
131
132
136
136
142
143
149
149
149
149
149
149
151
151
151
152
152
152
152
155
155
156
160
160
176
178
180
194
196
196
198
215
217
217
219
219
233
237
237
258
260
280
282
284
300
304
304
324
326
326
328
328
347
349
349
351
365
370
370
373
373
376
378
379
379
382
382
382
382
383
388
393
393
394
401
402
402
412
417
417
432
434
437
632
632
632
632
952
956
957
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
99
105
105
106
107
107
107
107
107
110
110
110
112
112
114
114
115
116
116
118
119
119
119
120
120
122
122
122
122
132
132
133
137
137
138
138
143
143
149
149
149
151
151
152
152
152
152
152
154
157
161
161
179
181
195
197
197
199
216
218
218
220
234
238
238
255
257
259
259
261
261
281
283
285
301
305
305
325
327
327
329
348
350
352
366
371
371
371
374
374
377
380
380
383
383
383
389
394
394
402
403
403
403
403
404
413
418
418
433
435
438
632
632
632
632
633
633
953
957
958
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
98
98
99
105
105
107
108
111
115
115
115
115
115
116
117
117
117
117
119
122
122
122
122
123
123
127
132
134
138
138
138
143
143
143
144
149
149
151
151
152
152
155
155
155
158
162
162
174
178
180
180
182
182
196
198
200
217
219
219
221
235
239
239
256
258
260
260
262
262
284
286
302
304
304
306
306
326
328
328
330
349
351
353
367
372
372
372
375
375
378
378
382
382
382
382
384
384
390
394
394
395
395
397
403
403
403
404
404
404
405
414
419
419
434
436
439
633
633
634
634
954
958
959
1
5
5
6
6
8
8
13
18
18
20
21
26
27
27
27
27
28
28
28
30
36
36
38
39
46
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
108
109
110
112
115
115
115
116
116
116
117
117
120
124
124
127
132
132
135
139
139
142
142
144
145
145
149
149
149
151
151
152
152
152
152
155
159
163
163
175
179
181
181
183
183
197
199
201
218
220
222
236
240
240
257
259
261
261
263
263
279
283
285
285
287
287
303
305
305
307
327
329
331
352
354
368
372
372
373
373
373
376
376
382
382
382
382
383
383
383
388
391
395
395
396
396
404
404
405
405
405
406
415
420
420
435
437
440
634
634
955
959
960
1
1
7
7
8
13
13
14
20
20
20
21
21
21
21
25
27
29
29
29
31
38
38
38
39
39
39
39
47
47
47
49
51
51
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
107
109
110
113
115
117
117
124
125
127
127
132
133
136
138
140
140
142
145
145
145
145
145
148
148
151
152
152
152
153
153
160
164
164
176
180
182
182
184
184
200
202
219
221
223
237
241
241
260
264
264
280
284
286
286
288
288
304
306
306
308
328
330
332
353
353
355
355
369
372
373
373
374
374
374
374
380
383
384
384
384
389
389
392
397
397
403
403
405
405
406
407
416
421
421
436
438
441
956
960
961
1
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
77
79
79
79
81
81
85
89
89
89
91
92
92
95
96
96
97
97
98
99
99
99
105
107
107
114
115
116
117
117
118
118
120
120
125
132
132
133
134
134
134
134
137
141
141
142
142
142
143
145
146
152
152
153
153
154
154
154
155
161
165
165
181
185
185
195
199
201
201
203
203
222
224
238
242
242
261
265
265
281
285
287
287
289
289
305
307
309
331
333
347
351
354
354
356
356
370
373
374
374
375
376
376
378
380
384
385
385
393
398
398
404
406
407
408
417
422
422
437
439
442
632
957
961
962
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
79
89
90
92
92
92
92
92
96
98
98
98
98
98
99
99
99
99
100
109
109
110
115
115
117
117
118
118
119
119
120
125
125
126
127
132
132
132
134
134
138
142
142
146
147
149
151
152
152
154
154
155
155
162
166
166
182
186
186
196
200
202
202
204
204
217
221
223
223
225
225
239
243
243
262
266
266
286
290
290
306
308
310
326
330
332
332
334
334
348
352
355
355
357
357
371
374
375
376
376
377
377
379
379
394
395
399
399
403
403
405
406
408
409
418
423
423
438
440
443
632
632
633
961
962
963
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
79
80
81
81
89
89
92
93
96
96
97
99
99
99
100
100
101
107
107
110
111
113
116
117
119
119
120
120
120
124
124
124
126
127
127
132
139
141
141
142
143
143
147
148
149
149
149
149
151
151
151
152
152
152
152
154
163
167
167
183
187
187
197
201
203
203
205
205
218
222
224
224
226
226
240
242
242
244
244
263
267
267
287
291
291
309
311
327
331
333
333
335
335
349
353
358
358
371
371
371
372
375
375
376
376
377
378
378
395
395
400
400
403
403
404
404
409
419
424
424
441
444
632
633
634
957
962
963
964
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
79
81
81
82
82
93
94
98
100
101
101
102
109
109
110
111
113
114
114
117
117
117
119
121
121
124
125
127
127
127
127
127
132
133
134
134
140
142
142
144
145
145
145
148
149
152
152
152
152
154
164
168
168
184
188
188
202
206
206
219
223
225
225
227
227
241
243
243
245
264
268
268
288
292
292
304
308
310
310
312
312
328
332
334
334
336
336
354
359
359
369
372
372
372
373
373
373
377
378
379
379
385
396
401
401
405
405
409
420
425
425
442
445
634
635
963
964
965
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
81
83
83
92
94
95
96
99
101
101
103
107
107
110
111
113
114
114
115
118
119
119
119
120
120
122
122
124
124
127
128
132
134
134
135
135
141
142
142
143
143
145
147
148
148
148
149
149
155
165
167
167
169
169
185
189
189
203
207
207
224
228
228
242
244
244
246
265
269
269
289
293
293
305
309
311
311
313
313
333
337
337
355
360
360
370
373
373
373
374
374
374
378
379
385
397
397
402
402
406
406
409
421
426
426
443
446
630
635
964
965
966
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
81
81
83
89
92
92
96
101
101
101
101
102
104
109
109
110
111
113
114
114
115
116
117
117
119
119
121
121
123
128
129
134
136
136
142
144
145
145
146
147
148
148
151
152
152
166
168
168
170
186
190
190
204
208
208
225
229
229
243
245
247
266
270
270
290
294
294
306
310
312
312
314
314
334
338
338
356
361
361
371
374
374
374
375
375
375
375
379
380
398
398
403
403
407
422
427
438
442
444
447
631
635
636
965
966
967
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
83
83
83
94
94
95
96
96
96
97
101
101
101
102
103
103
105
105
107
107
109
110
111
113
114
114
115
116
119
119
119
120
122
122
124
127
129
130
134
134
136
142
143
145
146
147
147
148
148
148
152
152
153
154
154
167
169
169
171
187
191
191
205
209
209
226
230
230
242
244
246
246
248
267
271
271
291
295
295
311
315
315
335
339
339
357
362
362
372
372
376
376
379
380
381
385
385
389
398
398
399
404
404
406
406
408
423
428
443
445
448
631
635
637
966
967
968
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
81
81
83
83
83
92
92
95
98
102
102
103
103
104
104
106
106
109
109
109
110
110
110
110
111
113
114
114
115
116
117
117
119
121
123
124
125
127
127
136
136
136
145
145
146
146
146
146
147
148
148
149
150
150
151
152
153
154
154
168
170
172
188
192
192
206
210
210
227
231
231
243
247
247
249
268
272
272
292
296
296
312
316
316
336
340
340
358
363
363
374
379
379
381
382
386
386
390
398
400
405
405
407
407
409
424
426
426
429
444
446
449
631
635
636
638
967
968
969
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
99
101
103
103
105
105
107
107
107
107
110
111
111
114
114
114
115
116
119
119
119
122
124
126
129
129
130
134
134
136
136
136
136
141
143
143
145
147
147
147
148
148
148
148
148
148
148
149
149
149
149
149
149
150
150
151
151
152
152
152
169
171
173
189
193
193
207
211
211
228
232
232
244
248
248
250
269
271
271
273
273
293
297
297
313
317
317
337
341
341
359
364
364
368
370
372
372
374
376
380
380
382
383
395
395
399
399
399
401
406
406
406
408
408
425
427
430
445
447
450
635
636
637
968
969
970
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
101
101
101
103
103
103
104
108
108
112
112
113
113
115
116
117
117
119
119
119
119
125
127
127
127
130
136
136
136
136
137
137
142
145
145
146
147
147
148
148
148
148
149
149
149
149
150
150
150
150
150
150
150
151
151
151
152
172
174
190
192
192
194
194
208
212
212
229
233
233
249
249
251
270
272
272
274
294
298
298
314
318
318
338
340
340
342
342
360
365
365
369
369
369
370
370
370
371
372
372
373
373
374
376
379
383
384
396
396
396
396
400
400
400
402
406
407
407
426
428
431
446
448
451
631
636
637
969
970
971
1
1
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
83
83
83
83
84
84
86
86
94
94
95
101
102
103
103
103
104
105
107
109
109
112
116
119
119
119
119
120
120
120
124
126
126
128
128
129
129
130
134
138
138
143
145
145
147
147
147
148
148
148
148
149
149
150
151
151
152
152
152
152
152
152
167
171
173
173
175
175
191
193
193
195
209
211
211
213
213
230
234
234
248
250
250
250
252
271
273
273
275
295
297
297
299
299
315
319
319
339
341
341
343
361
365
365
366
366
367
370
370
370
371
371
371
372
373
373
374
374
379
380
384
384
385
385
386
390
396
396
397
397
398
401
401
401
403
406
407
408
408
427
429
432
447
449
449
452
452
637
970
971
972
1
1
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
81
83
85
85
87
87
92
92
94
95
103
104
105
106
107
110
110
112
112
117
121
121
121
125
127
127
127
127
129
129
130
138
139
147
148
148
148
149
149
149
149
150
150
152
152
152
153
154
168
172
174
174
176
176
192
194
194
196
210
212
212
214
231
235
235
249
251
251
253
272
274
276
296
298
298
300
316
320
320
340
342
342
344
362
366
366
367
367
368
371
371
371
372
372
372
373
373
374
374
375
375
381
386
386
386
397
398
398
398
402
402
402
404
407
408
409
409
428
430
433
448
453
453
635
638
971
971
972
973
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
85
86
88
88
94
94
94
95
95
95
95
105
105
107
107
107
111
111
112
113
121
122
122
126
128
128
129
129
130
130
130
134
134
139
145
145
148
149
149
149
150
150
151
153
153
154
169
173
175
175
177
177
193
195
197
211
213
213
215
232
236
236
250
252
252
254
273
275
277
297
299
299
301
317
321
321
341
343
345
363
365
367
367
368
369
372
372
372
373
373
373
373
375
375
382
387
387
396
396
398
403
403
403
405
406
408
409
410
410
429
431
434
449
454
454
631
636
972
972
973
974
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
81
81
85
86
89
89
92
92
95
96
96
103
103
105
108
112
112
112
112
113
114
114
114
114
117
117
122
127
127
127
129
130
131
131
134
139
139
140
145
149
149
150
150
150
150
152
152
154
154
174
178
178
194
196
198
212
214
216
233
235
235
237
237
253
253
255
276
278
298
300
302
318
322
322
342
344
346
364
366
368
369
369
369
370
370
373
374
374
375
375
375
383
386
386
388
388
397
398
403
404
404
406
407
409
409
411
411
430
432
435
450
455
455
637
973
974
975
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
81
86
86
86
87
90
90
97
97
103
105
105
106
107
109
112
112
112
113
113
114
114
117
122
122
123
128
129
129
129
130
130
130
130
132
132
138
138
140
141
141
145
148
148
149
150
151
151
151
151
152
155
155
175
179
179
197
199
213
215
217
234
236
236
238
254
254
256
271
275
277
277
279
279
299
301
303
319
323
323
345
347
365
367
369
370
370
370
373
374
375
375
375
375
380
384
387
387
389
389
396
396
398
404
404
406
407
408
412
412
431
433
436
451
456
456
638
974
975
976
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
81
85
85
85
87
87
88
88
91
91
92
97
103
105
105
105
106
107
107
110
110
110
111
111
112
114
114
117
121
121
121
123
124
124
127
127
129
130
131
131
133
133
134
138
141
141
141
141
141
142
142
148
148
148
149
149
150
150
150
151
152
152
152
156
156
176
180
180
192
196
198
198
200
200
216
218
235
237
237
239
255
257
272
276
278
278
280
280
302
304
320
322
322
324
324
346
346
348
348
366
368
368
370
370
370
371
371
371
372
375
375
376
376
379
379
379
379
381
381
385
390
390
396
396
397
397
407
407
408
409
409
413
413
434
437
452
457
457
635
638
975
976
977
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
85
86
88
88
88
88
88
88
90
90
92
92
92
97
97
97
97
105
105
107
107
107
107
107
110
110
110
111
111
111
111
111
111
112
112
112
113
113
113
114
114
115
115
121
122
124
124
124
124
124
130
132
132
134
134
138
138
138
139
141
142
142
145
145
146
149
149
150
150
150
150
150
150
151
151
151
152
153
157
157
177
181
181
193
197
199
199
201
201
211
215
217
217
219
219
236
238
240
252
254
256
256
258
258
273
277
279
279
281
281
297
301
303
303
305
305
321
323
323
325
340
344
347
347
349
349
367
368
368
371
371
371
372
372
372
372
375
376
377
377
380
380
386
391
391
398
398
407
409
409
410
410
414
414
435
438
453
458
458
631
636
976
977
978
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
85
85
88
89
89
91
91
92
92
92
93
97
97
98
105
105
107
108
110
111
111
111
111
112
112
112
112
112
113
113
114
114
114
114
115
115
116
121
121
124
125
127
131
132
135
135
142
143
145
145
145
145
146
146
146
148
148
148
149
150
150
150
152
152
152
154
158
158
178
182
182
194
198
200
200
202
202
212
216
218
218
220
220
235
237
239
239
241
253
255
257
257
259
259
278
282
282
298
302
304
304
306
306
322
324
324
326
341
345
348
348
350
350
368
368
369
369
372
372
372
373
377
378
378
379
379
379
379
381
381
387
387
390
392
392
394
399
399
407
409
410
410
411
411
415
415
436
439
454
459
459
635
637
977
978
979
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
98
99
99
108
109
111
112
113
113
113
113
114
114
114
114
115
115
116
116
117
125
126
127
132
132
132
136
136
143
143
143
144
145
145
146
149
149
149
149
149
149
150
150
150
150
150
155
159
159
179
183
183
199
203
203
213
217
219
219
221
221
236
240
240
242
254
256
258
258
260
260
279
283
283
299
303
305
305
307
307
323
325
327
342
346
351
351
363
370
370
370
370
373
373
373
374
378
379
379
379
379
379
379
380
380
380
387
388
391
393
393
395
395
396
400
410
411
411
416
416
431
435
437
440
455
460
460
636
636
638
638
978
979
980
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
97
99
107
109
110
113
113
113
114
114
114
114
114
114
116
116
118
124
126
127
127
127
132
133
133
137
137
141
141
141
146
147
148
149
149
150
150
150
150
151
156
160
160
180
184
184
200
204
204
218
222
222
237
241
241
243
257
261
261
280
284
284
304
308
308
324
326
328
347
352
352
364
365
365
371
371
371
371
371
371
372
374
375
379
380
381
381
381
389
391
391
394
394
396
396
397
399
399
401
411
412
417
417
436
438
441
456
461
461
636
636
638
638
639
639
979
980
981
1
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
85
88
88
92
94
96
97
97
97
99
99
99
105
107
107
114
115
116
116
116
117
119
121
124
124
132
132
133
134
134
134
134
134
138
138
138
143
144
145
145
145
145
147
147
147
150
152
157
159
159
161
161
181
185
185
201
205
205
219
223
223
242
242
244
258
262
262
281
285
285
305
309
309
327
329
348
353
353
365
365
365
366
366
372
372
372
373
373
375
375
376
380
381
382
382
390
395
395
397
397
398
400
400
402
413
418
418
437
439
442
457
462
462
639
639
640
640
980
981
982
1
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
90
90
91
95
97
97
98
99
99
99
100
109
109
110
114
114
116
118
120
126
126
127
127
132
132
132
134
134
135
139
139
141
141
143
145
145
145
145
147
147
148
149
151
152
158
160
160
162
182
186
186
202
206
206
220
224
224
241
243
243
243
245
259
263
263
282
286
286
306
310
310
322
326
328
328
330
330
349
354
354
361
363
363
366
366
366
367
367
372
373
373
373
373
376
376
376
377
391
396
396
398
398
399
399
401
401
407
407
414
419
438
440
443
458
463
463
640
640
981
982
983
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
88
88
90
91
94
96
96
98
98
99
100
101
107
107
110
113
116
116
116
117
119
119
121
121
124
124
127
132
136
138
138
140
140
143
144
144
145
147
147
147
147
147
149
149
151
151
151
159
161
161
163
183
185
185
187
187
203
207
207
221
225
225
242
244
244
246
260
264
264
283
287
287
307
311
311
323
327
329
329
331
331
350
355
355
362
363
363
364
364
365
365
367
367
368
368
368
368
372
373
373
375
375
375
377
377
378
378
381
392
397
397
399
399
399
400
408
408
409
409
409
415
420
439
441
444
459
464
464
636
636
982
983
984
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
90
90
91
91
95
97
97
99
99
101
101
109
109
110
114
114
114
116
118
120
120
122
122
126
126
127
132
133
134
134
137
139
139
141
141
141
143
145
145
147
149
150
152
152
152
160
162
164
184
186
186
188
204
208
208
222
226
226
243
245
245
247
261
265
265
284
288
288
308
312
312
324
328
330
330
332
332
351
356
356
363
364
364
365
365
366
366
366
366
368
368
369
369
373
374
379
379
382
382
391
393
398
398
399
399
400
400
401
410
410
410
410
416
418
418
421
440
442
442
445
445
460
465
465
637
637
638
638
638
983
984
985
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
88
88
91
92
96
98
98
99
99
100
100
101
107
107
110
115
116
116
116
119
121
121
123
123
124
124
127
132
134
134
135
135
138
140
140
142
143
144
144
147
147
149
149
149
149
150
150
161
163
165
185
187
187
189
205
209
209
223
227
227
246
246
248
262
266
266
285
289
289
309
313
313
329
333
333
352
357
357
364
365
365
366
366
366
366
367
367
367
368
370
370
375
375
380
380
382
387
387
391
394
399
399
400
400
401
401
411
411
417
419
422
441
446
446
461
466
466
639
639
639
984
985
986
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
90
90
91
97
99
101
101
101
101
102
109
109
110
114
114
116
116
116
116
120
124
124
126
126
127
134
136
136
139
141
141
141
143
143
143
144
145
146
146
148
148
151
164
166
186
188
190
206
208
208
210
210
224
228
228
247
247
249
263
267
267
286
290
290
310
314
314
330
334
334
353
358
358
365
366
366
368
368
368
368
368
368
371
371
376
381
381
388
388
388
388
395
399
400
400
401
402
411
418
420
423
442
447
447
462
467
467
639
640
640
985
986
987
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
88
88
90
91
98
99
101
101
101
102
102
102
103
103
107
107
109
110
110
111
116
116
116
116
117
117
121
124
124
125
125
126
127
134
134
136
140
141
141
142
142
143
143
144
144
144
146
146
147
147
147
148
148
149
149
150
150
152
159
163
165
165
167
167
187
189
191
207
209
209
211
225
229
229
248
250
264
268
268
287
289
289
291
291
311
315
315
331
335
335
354
358
358
359
359
366
367
367
368
368
369
369
377
382
382
382
382
382
388
388
389
389
391
396
400
401
401
402
402
411
419
421
424
443
448
448
463
468
468
640
640
986
987
988
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
90
90
90
91
91
91
91
99
101
101
103
103
103
103
103
103
103
109
109
109
110
110
110
110
110
110
110
111
111
111
111
112
114
118
118
122
126
126
126
126
126
127
127
127
127
136
136
136
142
142
143
143
144
144
145
145
145
145
145
145
145
146
146
146
146
147
148
148
148
148
148
148
149
149
150
150
160
164
166
166
168
168
190
192
208
210
210
212
226
230
230
245
247
249
249
251
251
265
269
269
288
290
290
292
312
316
316
332
336
336
355
359
359
360
360
363
363
364
366
366
367
368
368
368
368
372
372
372
372
376
378
383
383
383
383
389
390
390
390
397
399
401
402
402
420
422
425
444
449
449
464
469
469
987
988
989
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
100
101
101
103
104
104
104
107
107
110
110
110
111
111
111
111
111
111
111
112
112
112
113
114
118
119
123
124
124
127
127
127
128
128
134
134
136
136
136
136
138
142
142
142
143
143
144
144
144
145
145
145
145
145
145
145
145
145
146
146
146
146
146
147
147
147
147
147
148
150
151
152
161
165
167
167
169
169
185
189
191
191
193
193
209
211
213
227
229
229
231
231
246
248
250
250
252
252
266
268
268
270
270
289
291
291
293
313
315
315
317
317
333
337
337
356
357
360
360
361
361
364
364
365
366
367
368
369
369
371
373
373
377
377
379
384
384
388
388
390
391
392
392
398
400
400
402
402
403
403
421
423
426
445
450
450
465
470
470
988
989
990
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
93
93
101
104
105
105
105
111
111
112
112
112
112
113
113
113
113
113
114
114
114
119
124
128
128
129
129
136
136
136
136
137
137
139
141
143
145
145
145
145
146
146
146
147
147
147
147
147
147
147
147
147
148
149
149
149
150
151
151
151
166
170
170
186
190
192
192
194
194
210
212
214
228
230
230
232
247
249
251
251
253
253
267
269
269
271
290
292
294
314
316
316
318
334
336
336
338
338
357
358
361
361
361
361
362
362
365
365
366
366
366
367
368
368
369
370
370
371
372
372
372
372
374
374
380
385
385
389
392
393
393
399
400
402
403
403
404
404
422
424
427
446
451
451
466
471
471
989
990
991
1
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
93
102
103
105
106
106
106
107
112
113
113
114
114
114
114
119
119
120
124
125
129
129
129
134
138
138
140
141
144
145
145
145
145
146
146
146
147
147
147
148
148
152
152
152
167
171
171
187
191
193
193
195
195
213
215
229
231
231
233
250
254
254
268
270
270
272
291
293
295
315
317
317
319
335
337
337
339
358
359
362
362
362
362
363
363
364
366
366
367
367
367
368
369
370
371
371
372
372
372
372
373
373
373
373
381
383
386
386
388
388
390
393
394
394
400
400
402
403
404
404
405
405
423
425
428
447
452
452
467
472
990
991
992
1
1
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
88
93
93
93
93
101
103
103
103
107
107
107
112
112
114
114
114
118
118
118
120
121
121
124
126
129
129
130
130
138
139
145
147
147
147
149
149
149
149
168
172
172
192
196
196
208
212
214
214
216
216
230
232
234
251
255
255
269
271
273
294
296
316
318
320
336
338
338
340
359
360
360
363
363
363
363
363
363
364
364
364
365
367
368
368
369
371
372
372
373
374
374
374
375
375
382
383
387
387
388
388
389
389
394
395
395
401
403
404
406
406
410
426
429
448
453
453
468
471
471
473
991
992
993
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
88
88
88
89
93
93
94
104
105
105
106
106
106
107
107
108
108
112
113
118
119
121
121
121
121
121
124
124
127
129
130
131
131
134
134
139
146
147
148
150
150
151
169
173
173
193
197
197
209
213
215
215
217
217
229
231
233
233
235
252
256
256
270
272
274
289
293
295
295
297
297
317
319
321
337
339
341
360
364
364
364
364
364
364
364
365
366
368
369
369
369
372
374
375
375
383
388
388
390
390
395
396
396
402
404
407
407
411
411
411
427
430
449
454
454
469
472
474
992
993
994
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
94
95
95
103
103
105
106
107
107
109
112
112
113
114
114
114
114
118
118
121
122
128
129
129
130
131
131
131
131
132
132
134
139
139
140
142
146
147
147
148
148
151
151
152
170
174
174
194
198
198
210
214
216
216
218
218
230
234
234
236
253
257
257
273
275
290
294
296
296
298
298
320
322
338
340
342
361
361
365
365
365
366
366
366
366
367
367
369
369
369
373
382
383
383
384
389
389
391
391
395
397
397
403
408
408
412
412
428
431
450
455
455
470
473
475
639
993
994
995
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
93
95
105
105
106
106
107
108
108
110
112
112
112
114
114
122
123
124
129
129
129
129
131
131
131
131
133
133
138
138
140
141
141
142
145
145
146
146
146
146
147
147
147
148
148
149
152
152
171
175
175
195
199
199
215
219
219
231
235
235
237
254
258
258
268
272
274
274
276
276
291
295
297
297
299
299
315
319
321
321
323
323
341
343
361
361
366
366
366
366
366
367
377
383
384
384
385
390
390
392
397
397
400
400
404
409
409
411
412
412
412
412
413
423
427
429
432
451
456
456
471
474
476
640
640
640
994
995
996
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
93
93
93
95
95
95
103
103
106
107
109
111
112
121
123
124
129
130
132
132
134
134
138
141
141
141
141
141
143
144
146
146
146
146
146
147
148
148
148
148
148
149
153
153
172
176
176
196
200
200
216
220
220
236
236
238
255
259
259
269
273
275
275
277
277
296
300
300
316
320
322
322
324
324
342
342
344
344
359
362
362
364
367
368
368
368
368
369
375
378
378
383
383
386
391
391
391
391
393
401
401
402
402
402
405
410
410
413
413
414
428
430
433
452
457
457
472
475
477
640
641
641
995
996
997
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
93
94
95
95
95
96
105
105
106
108
110
110
111
112
112
113
114
114
118
121
121
129
130
131
131
131
133
133
135
138
138
138
139
141
141
141
141
141
141
141
142
142
143
144
144
145
145
146
146
147
150
151
151
154
154
173
177
177
197
201
201
217
221
221
235
237
237
237
239
256
260
260
270
274
276
276
278
278
297
301
301
317
321
323
323
325
325
336
340
343
343
345
345
358
358
360
362
362
363
363
364
366
368
369
369
375
387
392
392
392
392
394
403
403
403
403
406
411
411
412
412
414
414
429
431
434
453
458
458
473
476
478
641
641
996
997
998
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
95
96
97
103
103
105
106
110
110
110
111
111
111
111
111
112
112
113
114
114
115
115
123
123
124
129
131
131
132
132
132
134
136
142
142
142
142
142
142
142
143
143
144
144
144
145
146
147
148
149
151
152
152
155
155
174
178
178
198
202
202
218
222
222
236
238
238
240
257
261
261
275
279
279
298
302
302
322
326
326
337
341
344
344
346
346
353
355
356
358
359
359
361
363
363
364
364
365
368
369
370
384
388
391
393
393
393
393
404
404
407
412
412
413
430
432
435
454
459
459
474
477
479
997
998
999
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
97
97
105
105
105
106
106
106
106
106
110
110
110
111
111
111
111
111
112
112
112
112
112
113
114
114
114
116
116
121
121
124
131
133
133
133
135
137
140
142
143
143
143
144
144
144
144
144
144
145
145
145
145
145
146
148
149
149
149
149
152
156
156
175
177
177
179
179
199
201
201
203
203
219
223
223
237
239
239
241
258
262
262
276
280
280
299
303
303
323
327
327
338
342
347
347
354
355
355
356
357
357
357
359
360
360
360
362
362
364
364
365
366
370
370
371
371
375
375
384
385
389
391
394
394
404
408
412
413
413
414
431
433
436
455
460
460
475
478
480
998
999
1000
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
95
95
97
103
103
106
107
107
107
111
111
111
112
112
112
113
113
113
113
113
114
114
114
115
115
116
123
123
124
131
131
133
136
138
140
141
141
141
142
142
143
143
144
145
145
145
145
146
146
146
147
147
149
151
153
157
157
176
178
178
180
200
202
202
204
220
224
224
240
240
242
259
261
261
263
263
277
281
281
300
304
304
324
328
328
343
348
348
355
356
356
357
358
358
358
360
361
361
361
362
362
365
365
367
369
372
372
376
376
383
386
387
387
390
391
392
395
395
404
409
412
412
413
414
414
432
434
434
437
437
456
461
461
479
481
999
1000
1001
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
95
97
97
98
108
108
108
111
112
112
113
113
114
114
114
114
114
116
116
116
116
116
121
121
124
131
133
133
133
135
137
137
138
139
139
143
144
144
144
145
145
145
145
146
147
147
147
147
148
152
154
156
156
158
158
177
179
179
181
201
203
203
205
221
225
225
241
241
243
260
262
262
264
278
282
282
301
305
305
325
329
329
344
349
349
356
357
357
357
358
358
359
359
359
359
359
361
361
362
363
363
364
368
370
370
373
373
383
387
388
388
391
392
393
396
396
410
411
412
413
414
415
415
433
438
438
457
462
462
480
482
1000
1001
1002
1
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
95
97
97
97
98
99
99
103
108
113
114
114
114
114
116
117
117
123
123
124
131
131
132
133
133
133
133
136
138
138
140
140
141
141
141
143
143
145
145
146
147
147
147
147
149
155
157
157
159
178
180
182
202
204
206
222
226
226
242
244
261
263
263
265
279
283
283
302
306
306
326
330
330
345
350
350
357
358
358
358
359
359
359
360
360
360
361
361
363
364
364
364
369
374
374
388
389
389
391
392
393
394
397
397
411
412
414
415
416
434
439
439
458
463
463
481
483
1001
1002
1003
1
1
1
4
4
5
6
8
9
9
14
14
15
19
19
21
23
27
27
31
31
32
32
37
37
37
39
39
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
97
97
99
99
99
99
99
103
108
108
114
116
116
116
118
118
121
121
123
124
133
133
133
133
133
134
134
137
139
139
141
141
143
143
143
143
144
144
144
146
146
147
148
148
148
156
158
158
160
179
181
183
203
205
207
223
227
227
239
241
243
243
245
245
262
264
266
280
284
284
303
307
307
327
329
329
331
331
346
351
351
357
358
359
359
359
360
360
360
360
361
361
365
365
370
375
375
376
378
383
389
390
390
392
393
394
394
398
398
412
412
413
415
417
435
440
440
459
464
464
475
482
484
1002
1003
1004
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
97
97
99
100
103
103
108
109
114
114
115
116
119
119
123
123
123
124
124
124
124
131
135
135
138
141
141
141
141
141
142
142
142
142
143
143
144
144
145
145
146
157
159
161
182
184
206
208
224
226
226
228
228
240
242
244
244
246
246
263
265
267
281
285
285
304
308
308
328
330
330
332
347
352
352
356
356
358
358
359
360
360
360
360
361
361
361
361
362
363
365
365
365
365
366
371
376
376
376
379
390
391
391
391
393
394
399
399
412
413
413
415
415
415
415
416
418
436
441
441
460
465
476
480
483
485
1003
1004
1005
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
100
101
108
108
109
110
110
110
110
116
116
116
116
120
120
121
121
124
125
125
135
136
139
141
141
141
142
142
142
143
143
143
143
143
144
144
144
144
144
144
144
147
149
149
158
160
162
177
181
183
183
185
185
201
205
207
207
209
209
225
227
227
229
241
243
245
245
247
247
266
268
282
286
286
305
307
307
309
309
329
331
331
333
348
353
353
354
357
357
359
360
360
361
361
362
362
362
365
365
366
366
368
368
372
377
377
384
384
392
392
392
392
394
394
395
400
400
403
414
416
416
416
417
419
437
442
442
461
464
464
466
481
484
486
1004
1004
1006
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
99
101
102
103
108
108
108
108
109
110
110
114
114
116
116
116
116
117
121
121
126
126
131
131
136
140
141
141
141
141
142
143
143
143
144
144
144
144
144
144
144
144
144
144
145
146
146
148
161
163
178
182
184
184
186
186
202
206
208
208
210
210
226
228
228
230
244
248
248
261
265
267
267
269
269
283
287
287
306
308
308
310
330
332
334
349
353
354
354
355
358
358
358
358
360
360
360
361
362
362
362
365
365
365
365
365
365
367
367
373
376
376
378
378
385
385
385
385
390
392
394
395
395
396
401
401
404
404
404
415
417
417
417
420
438
443
443
462
465
467
482
485
487
640
1004
1005
1005
1007
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
93
93
94
97
98
98
99
99
108
108
109
109
110
116
116
116
116
117
117
118
121
122
122
126
131
136
136
137
139
141
141
141
141
142
142
142
143
143
143
144
144
144
144
144
144
145
145
145
145
149
149
156
160
162
162
164
164
179
183
185
185
187
187
203
207
209
209
211
211
227
229
231
245
249
249
262
266
268
268
270
270
284
286
286
288
288
307
309
309
311
331
333
335
350
354
354
354
355
355
356
356
359
359
359
359
362
362
363
363
365
365
365
365
366
366
366
370
374
377
377
379
379
379
385
385
386
386
392
392
394
395
396
396
397
402
402
405
405
415
416
418
421
439
444
444
463
466
468
483
486
488
641
1006
1006
1008
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
88
93
93
94
95
99
99
101
101
102
108
108
109
109
109
110
110
110
111
114
118
118
119
121
123
123
126
126
135
135
137
138
138
142
142
142
143
143
144
144
144
144
144
145
145
146
146
146
146
149
157
161
163
163
165
165
184
188
188
208
212
212
226
228
230
230
232
246
250
250
263
267
269
269
271
271
285
287
287
289
308
310
312
334
336
351
355
355
355
355
355
356
356
357
357
357
360
360
362
363
364
364
366
367
367
367
371
371
375
380
380
386
387
387
392
395
396
398
403
403
404
405
405
405
405
406
412
417
419
422
440
445
445
464
467
469
484
487
487
489
489
641
641
1007
1007
1009
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
94
95
95
96
99
99
100
100
102
108
108
109
109
110
110
110
111
111
111
112
118
119
120
121
121
124
124
126
127
131
135
138
138
138
138
138
139
142
142
143
143
143
144
144
145
145
145
146
146
146
147
147
147
147
147
158
162
164
164
166
166
185
189
189
209
213
213
227
231
231
233
247
251
251
268
272
272
286
288
288
290
309
311
313
335
335
337
337
352
354
356
356
356
356
356
356
357
358
361
361
361
362
364
367
368
368
376
381
381
385
385
387
396
399
404
404
406
406
407
412
413
415
415
418
420
423
441
446
446
465
468
470
485
490
490
641
642
642
1008
1008
1010
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
93
95
97
101
101
101
101
102
108
109
109
110
110
111
112
112
112
114
114
119
121
125
125
126
126
127
128
128
128
128
134
135
135
135
136
138
138
138
139
141
141
142
142
143
143
143
144
144
145
146
146
146
147
148
148
148
148
149
163
167
167
186
190
190
210
214
214
228
232
232
234
248
252
252
269
273
273
287
289
291
312
314
329
333
336
336
338
338
353
355
355
355
357
357
357
358
358
358
358
358
359
359
359
362
362
365
377
377
382
382
386
400
405
405
405
405
407
407
412
416
416
419
421
424
442
447
447
466
469
471
486
491
491
642
642
643
1009
1009
1011
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
93
93
95
95
95
98
99
99
102
102
102
108
109
109
110
110
110
111
112
112
114
119
119
120
121
122
124
124
126
126
126
126
126
128
128
134
139
139
140
140
140
141
141
141
142
143
143
143
143
145
145
145
145
145
145
146
149
149
164
168
168
187
191
191
211
215
215
233
233
235
249
253
253
270
274
274
288
290
292
307
311
313
313
315
315
330
334
337
337
339
339
351
353
354
354
354
356
356
356
358
358
358
358
359
359
359
359
377
378
382
383
383
385
385
387
392
392
401
406
406
406
413
415
417
417
417
420
422
425
443
448
448
467
470
472
487
492
492
642
642
643
644
1010
1010
1012
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
95
96
99
101
101
102
103
103
109
110
110
111
112
112
112
112
114
118
118
118
120
121
121
123
125
125
126
127
140
140
140
141
142
142
143
143
143
144
144
144
144
145
146
147
150
150
165
169
169
188
192
192
212
216
216
232
234
234
234
236
250
254
254
271
275
275
291
293
308
312
314
314
316
316
331
335
340
340
352
352
354
355
355
355
355
355
357
357
357
357
359
360
360
360
360
360
360
361
368
378
379
382
383
384
384
385
385
386
386
393
393
394
394
394
402
405
407
407
407
415
416
423
426
444
449
449
468
471
473
488
493
493
643
644
1011
1011
1013
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
95
96
97
99
99
100
101
102
102
102
104
104
110
110
110
110
111
112
112
118
119
121
121
121
121
121
124
126
126
126
127
128
128
128
138
138
138
141
141
141
141
143
144
144
147
148
149
149
151
151
166
170
170
189
193
193
213
217
217
233
235
235
237
251
255
255
272
276
276
286
290
292
292
294
294
309
313
315
315
317
317
336
341
341
353
353
355
356
356
356
356
356
356
356
358
358
358
360
361
361
361
361
368
379
380
383
384
385
385
387
387
395
395
395
395
403
405
405
406
408
408
416
416
417
417
424
427
445
450
450
472
474
489
494
494
642
642
644
1012
1012
1014
1
1
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
97
97
101
101
101
101
102
102
102
102
103
103
105
112
112
112
112
118
118
121
122
125
126
127
128
128
129
129
129
135
140
141
141
141
142
143
143
144
145
148
150
150
152
167
171
171
190
194
194
214
218
218
234
236
236
238
252
256
256
273
277
277
287
291
293
293
295
295
314
318
318
337
342
342
354
354
354
354
356
357
357
357
357
357
357
357
357
360
361
362
379
380
381
384
385
386
386
388
388
396
396
404
404
405
406
407
409
418
418
425
428
446
451
451
473
475
490
495
495
643
1013
1013
1015
1
1
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
99
99
102
102
103
103
104
104
106
110
110
112
122
123
126
128
128
130
130
130
138
138
140
142
142
142
143
144
144
146
146
146
149
151
151
153
168
172
172
191
193
193
195
195
215
219
219
237
237
239
253
255
255
257
257
274
278
278
288
292
294
294
296
296
315
319
319
338
343
343
355
355
355
358
358
358
358
362
363
368
368
371
380
381
382
385
386
387
387
389
396
405
405
407
408
410
416
417
417
417
419
419
420
424
426
429
447
452
452
474
476
491
496
496
642
644
1014
1014
1016
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
95
97
97
98
103
104
104
105
107
112
112
112
121
123
124
128
128
129
130
131
140
140
141
141
141
141
142
143
143
143
144
144
144
146
146
146
147
150
152
154
169
173
173
192
194
194
196
216
220
220
238
238
240
254
256
256
258
275
279
279
293
297
297
316
320
320
339
344
344
356
356
359
359
361
362
363
364
369
369
372
380
380
382
383
386
387
388
388
388
388
390
396
405
406
406
408
408
408
411
416
416
416
417
418
418
418
425
427
430
448
453
453
468
475
477
492
497
497
642
643
1015
1017
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
97
97
97
98
99
99
99
104
104
106
108
110
110
112
112
112
112
118
121
121
124
128
130
130
130
130
130
132
132
138
138
138
140
141
141
141
141
142
142
142
142
143
143
143
144
144
144
144
144
145
145
147
151
153
155
170
174
174
193
195
195
197
217
219
219
221
221
239
241
255
257
257
259
276
280
280
294
298
298
317
321
321
340
345
345
349
351
354
354
357
357
357
358
361
363
363
364
365
377
377
383
384
387
389
389
389
389
391
405
406
407
408
408
409
409
412
418
419
419
419
426
428
431
449
454
454
469
473
476
478
493
498
498
644
1016
1018
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
99
99
99
99
99
99
104
104
107
109
112
112
112
112
113
113
123
123
124
125
128
128
129
130
130
130
130
131
131
133
133
138
140
140
140
141
141
141
141
141
142
142
142
142
142
142
143
143
143
144
144
144
144
154
156
171
175
175
194
196
198
218
220
220
222
236
238
240
240
242
242
256
258
260
277
279
279
281
281
295
299
299
318
322
322
341
346
346
350
350
351
352
352
352
352
352
355
355
357
358
358
361
365
366
378
378
378
378
383
385
388
390
390
390
390
408
409
409
410
410
413
417
419
420
420
427
429
432
450
455
455
474
477
479
494
499
499
645
1017
1019
1
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
97
97
99
99
99
100
102
104
105
106
107
107
107
107
108
108
110
110
110
114
114
121
121
124
126
130
130
130
130
130
131
131
132
132
134
134
138
138
138
138
139
139
140
140
140
141
142
143
144
144
144
144
144
144
144
144
144
144
145
145
149
153
155
155
157
157
172
174
174
176
176
195
197
199
219
221
221
223
237
239
241
241
243
243
257
259
261
278
280
280
282
296
300
300
319
321
321
323
323
342
347
347
350
351
351
351
351
352
352
352
353
353
353
353
353
354
354
356
356
358
359
361
362
366
366
367
367
369
372
378
378
379
379
386
388
391
391
409
410
410
411
414
418
418
428
430
433
451
456
456
475
478
480
495
500
500
642
1013
1018
1020
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
90
90
91
91
100
101
103
104
104
104
104
105
106
106
106
106
107
107
107
107
107
108
108
109
109
111
111
114
115
123
123
124
128
131
132
132
135
135
138
138
139
139
140
140
141
141
141
141
141
141
141
142
142
142
143
143
143
144
145
146
146
150
154
156
156
158
158
173
175
175
177
198
200
220
222
224
238
240
242
242
244
244
260
262
279
281
281
283
297
301
301
320
322
322
324
343
347
347
348
348
349
351
352
352
352
352
353
353
353
354
354
354
354
354
354
354
355
355
357
357
358
359
363
368
368
369
379
380
380
380
387
388
389
392
392
408
410
412
415
429
431
431
434
434
452
457
476
479
481
496
501
501
641
642
643
1014
1016
1019
1021
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
85
88
90
90
91
92
92
99
99
101
102
104
104
104
104
104
104
106
106
108
108
108
109
109
110
110
110
110
112
112
115
121
121
124
132
132
133
133
133
136
136
138
138
140
141
141
142
142
143
143
143
144
144
144
144
144
146
147
151
155
157
157
159
159
174
176
176
178
193
197
199
199
201
201
219
221
223
223
225
241
245
245
255
259
261
261
263
263
280
282
284
298
302
302
321
323
323
325
344
347
348
348
349
349
350
352
352
352
353
353
353
354
354
354
355
355
355
355
355
355
355
355
356
356
360
360
364
369
369
378
378
380
380
387
388
389
390
393
393
395
405
411
413
416
420
430
435
435
453
456
456
458
477
480
480
482
482
497
502
502
642
642
644
1017
1020
1022
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
91
92
92
93
93
97
99
99
104
109
109
109
110
110
110
113
113
115
115
116
123
123
124
128
128
133
133
134
137
137
141
141
141
141
142
142
142
143
143
143
144
145
156
160
160
175
177
179
194
198
200
200
202
202
220
224
224
226
242
246
246
256
260
262
262
264
264
281
283
285
299
303
303
322
324
326
345
348
349
349
350
351
351
351
353
353
353
354
354
354
354
355
355
356
356
357
357
357
357
365
369
369
370
370
379
387
388
389
390
391
394
394
396
396
396
405
406
408
408
412
414
417
420
431
436
436
454
457
459
478
483
483
498
503
503
643
643
645
645
1018
1021
1023
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
90
90
92
94
94
101
101
102
104
105
106
106
110
110
110
110
114
114
114
114
114
116
117
117
121
121
123
124
128
133
133
134
134
134
137
137
138
138
138
138
140
141
142
143
143
143
143
143
143
144
157
161
161
176
178
180
195
199
201
201
203
203
221
225
225
227
243
247
247
257
261
263
263
265
265
284
286
300
304
304
323
325
327
346
349
350
351
352
352
352
352
354
354
355
356
356
357
357
357
357
363
366
370
370
371
371
377
378
378
380
380
389
390
391
391
395
395
397
397
405
409
409
413
415
418
432
437
437
455
458
460
479
484
484
499
504
504
642
645
645
646
646
1019
1022
1024
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
90
90
91
92
92
92
95
95
99
99
102
104
106
106
107
107
107
107
107
111
114
115
115
115
117
117
117
117
117
123
123
123
124
124
124
124
132
132
134
135
135
135
137
137
138
139
139
139
140
141
141
142
142
142
143
143
144
144
144
158
162
162
179
181
200
204
204
226
226
228
244
248
248
262
266
266
279
283
285
285
287
287
301
305
305
326
328
347
350
350
351
352
352
352
353
353
355
355
355
355
356
357
357
357
357
361
361
361
361
364
364
367
372
372
375
377
378
378
378
379
379
388
390
391
396
396
396
397
397
397
397
398
406
408
410
410
410
416
419
420
420
433
438
438
456
459
461
480
485
485
500
505
505
646
647
647
1020
1023
1025
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
92
93
96
96
101
101
102
104
106
107
107
107
108
108
108
108
112
114
114
116
116
117
118
121
121
124
125
125
128
132
135
135
135
135
135
136
139
140
140
140
140
140
140
140
141
141
141
141
142
142
142
142
142
143
143
143
144
144
144
144
159
163
163
174
178
180
180
182
182
201
205
205
225
227
227
227
229
245
249
249
263
267
267
280
284
286
286
288
288
302
304
304
306
306
327
327
329
329
348
350
352
353
353
353
354
354
354
355
357
358
358
362
362
368
373
373
376
378
379
380
380
389
389
391
391
392
397
397
398
398
399
408
409
417
418
420
421
421
434
439
439
457
460
462
481
486
486
501
506
506
647
1021
1024
1026
1
1
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
92
93
93
94
95
95
97
97
99
99
102
104
106
106
108
108
109
113
117
117
118
119
126
126
132
132
132
133
133
135
135
135
136
137
138
138
138
140
140
140
141
141
141
141
141
143
144
144
144
144
144
144
144
144
144
144
160
164
164
175
179
181
181
183
183
202
206
206
226
228
228
230
246
250
250
264
268
268
281
285
287
287
289
289
303
305
305
307
321
325
328
328
330
330
347
347
349
349
349
350
351
353
354
354
354
354
357
357
358
359
359
361
361
361
361
363
363
369
370
372
374
374
377
379
380
381
381
389
391
392
392
393
397
397
398
398
399
399
409
409
410
410
418
419
419
421
435
440
440
458
461
463
482
487
487
502
507
507
1022
1025
1027
1
1
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
94
94
94
96
96
98
101
101
102
108
108
108
109
110
114
117
118
118
119
120
121
126
136
137
138
138
138
138
138
140
140
141
141
141
141
141
141
141
141
142
142
142
142
142
142
142
143
143
143
144
144
144
161
165
165
176
180
182
182
184
184
203
207
207
227
229
229
231
247
251
251
265
269
269
286
290
290
304
306
306
308
322
326
329
329
331
331
343
346
347
348
348
350
350
350
350
351
352
352
352
354
355
355
355
357
359
360
360
361
361
361
361
362
362
362
370
370
373
375
375
378
380
381
382
389
391
392
393
393
394
398
399
399
411
411
413
417
419
422
436
441
441
459
462
464
483
488
488
503
508
508
642
642
645
1023
1026
1027
1028
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
99
101
102
106
106
108
110
114
115
117
117
119
119
121
126
126
137
138
138
139
141
141
142
143
143
143
143
143
143
144
144
144
144
144
144
162
166
166
181
185
185
204
208
208
230
230
232
248
252
252
266
270
270
287
291
291
305
307
309
323
327
332
332
344
347
348
348
348
349
349
350
351
351
352
352
352
353
353
353
353
354
355
356
360
361
361
362
363
363
363
371
373
373
376
376
379
381
381
381
382
383
392
393
395
397
399
400
400
409
410
410
410
412
412
418
420
421
423
437
442
442
460
463
465
484
489
489
504
509
509
643
645
646
1024
1026
1028
1029
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
92
94
94
95
96
98
100
101
101
101
102
102
102
102
108
108
108
116
119
119
120
120
120
121
121
126
127
135
135
135
138
140
140
140
140
141
141
141
142
142
143
143
143
144
144
144
144
163
167
167
182
186
186
205
209
209
231
231
233
249
253
253
267
271
271
288
292
292
306
308
310
328
333
333
345
348
349
349
349
350
350
351
352
352
353
353
353
353
354
354
354
356
357
357
361
363
364
364
372
377
377
380
382
382
382
384
393
396
397
397
398
401
401
409
409
409
410
411
411
411
419
421
421
424
438
443
443
464
466
485
490
490
505
510
510
646
647
1025
1029
1030
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
94
94
94
95
96
96
97
99
99
99
101
102
103
103
106
106
108
117
117
117
120
121
121
126
126
127
128
128
128
128
132
137
138
138
138
138
138
138
138
138
138
140
140
140
141
141
143
143
143
143
144
145
164
168
168
183
187
187
206
210
210
232
234
250
252
252
254
254
268
272
272
289
293
293
309
311
329
334
334
343
345
346
346
347
347
349
350
350
350
350
352
354
354
355
355
355
355
355
357
358
358
358
362
373
378
378
380
381
383
383
396
397
397
398
399
402
411
412
412
412
420
422
425
439
444
444
465
467
486
491
491
506
511
511
647
1026
1030
1031
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
96
96
96
96
96
100
102
104
104
104
105
108
108
108
118
119
119
120
120
120
121
122
122
126
126
126
128
128
135
135
136
137
138
140
140
140
140
140
140
141
141
141
142
143
143
143
144
144
144
146
165
167
167
169
169
184
188
188
207
211
211
229
231
233
233
235
235
251
253
253
255
269
273
273
290
294
294
304
308
310
310
312
312
330
335
335
344
345
345
345
346
347
347
348
348
350
350
351
351
353
353
354
355
355
355
355
358
359
364
374
379
379
381
382
389
389
397
398
399
400
403
410
412
413
413
421
421
421
423
426
440
445
445
466
468
487
492
492
507
512
512
642
647
1027
1031
1032
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
94
94
95
96
97
99
99
101
101
103
103
103
104
104
104
105
105
106
106
106
108
108
108
108
117
117
119
120
121
121
123
126
134
136
136
137
138
138
138
138
140
140
140
140
141
141
142
143
144
144
144
145
147
166
168
168
170
185
189
189
208
212
212
230
232
234
234
236
236
252
254
254
256
270
274
274
291
295
295
305
309
311
311
313
313
331
336
336
345
346
346
346
347
348
348
348
349
349
349
351
351
352
354
355
357
357
357
359
359
360
360
364
365
373
375
380
380
381
382
382
390
390
391
391
391
397
398
399
400
401
401
404
411
411
419
422
422
422
424
424
427
427
441
446
446
460
467
469
488
493
493
508
513
513
643
645
1028
1032
1033
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
96
97
98
99
100
102
102
103
103
104
104
104
104
104
104
105
105
106
106
107
108
108
108
108
109
109
119
119
120
120
122
122
124
126
127
128
128
133
134
135
135
135
136
136
137
137
137
138
138
140
140
140
140
140
140
141
141
141
141
143
143
144
146
148
167
169
169
171
186
190
190
209
211
211
213
213
231
233
235
235
237
237
253
255
257
271
273
273
275
275
292
296
296
306
310
312
312
314
314
332
337
337
346
347
347
347
347
347
348
348
349
349
349
350
350
351
352
352
352
355
355
356
361
361
364
370
370
373
373
376
381
381
382
383
392
392
392
392
397
398
400
400
400
401
402
405
420
420
423
428
428
442
447
447
461
465
468
470
489
494
494
509
514
514
645
646
1029
1033
1034
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
96
97
98
99
99
99
101
103
103
103
103
104
104
105
105
105
105
106
106
106
107
107
107
108
110
110
117
117
119
120
121
123
125
126
128
128
129
129
133
135
136
137
137
137
137
138
138
138
138
138
141
141
141
143
143
143
143
147
149
168
170
172
187
191
191
210
212
212
214
234
238
238
254
256
258
272
274
274
276
293
297
297
311
315
315
333
338
338
345
347
348
348
348
348
348
348
350
350
350
350
351
353
353
355
357
357
362
362
371
371
371
371
372
373
374
377
381
382
382
383
384
393
393
401
401
401
402
403
406
413
424
429
429
443
448
448
466
469
471
490
495
495
510
515
515
646
647
1030
1034
1035
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
96
96
102
103
104
104
105
106
106
106
106
106
106
106
107
107
107
108
108
108
110
111
119
119
119
120
120
120
120
122
124
126
128
130
130
133
135
135
135
135
137
137
137
138
138
138
138
141
141
141
142
142
142
144
144
144
146
148
148
150
150
169
171
173
188
190
190
192
192
211
213
213
215
235
239
239
257
259
273
275
275
277
294
298
298
312
316
316
334
339
339
343
343
346
348
349
349
349
349
350
350
350
350
351
351
358
363
363
364
364
365
371
371
372
372
373
373
374
375
378
382
383
383
384
384
393
402
402
402
404
407
413
422
425
430
430
444
449
449
467
470
472
491
496
496
511
516
516
646
647
648
1031
1035
1036
1
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
87
87
98
98
99
99
103
104
104
104
106
106
106
106
107
107
107
108
108
111
117
117
120
121
121
125
127
128
128
130
135
135
137
137
138
138
138
138
138
138
138
140
140
140
140
140
141
141
141
141
141
141
141
142
143
144
144
147
149
149
151
151
172
174
189
191
191
193
212
214
216
236
240
240
252
256
258
258
260
260
274
276
278
295
297
297
299
299
313
317
317
335
339
339
340
340
341
344
344
346
347
348
349
350
350
350
350
350
350
358
359
364
364
365
365
372
373
373
374
375
376
379
381
383
384
384
393
400
403
405
408
422
426
431
431
445
450
450
468
471
473
492
497
497
512
517
517
646
647
648
649
1032
1036
1037
1
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
82
84
84
87
87
88
96
96
99
104
104
106
108
108
108
111
111
112
120
122
122
124
126
126
128
128
130
130
130
134
134
137
138
138
138
138
138
138
138
138
138
139
139
140
140
140
140
140
141
141
141
141
142
142
142
142
143
143
144
144
144
144
148
150
150
152
152
167
171
173
173
175
175
190
192
192
194
211
213
215
215
217
237
241
241
253
257
259
259
261
261
275
277
279
296
298
298
300
314
318
318
336
340
340
340
341
341
342
345
345
345
345
346
347
348
348
348
348
348
350
350
351
351
353
354
354
354
354
359
359
360
365
365
371
371
373
375
376
377
380
382
382
384
384
385
385
397
404
406
409
413
413
427
432
432
446
451
451
469
472
472
474
474
493
498
498
513
518
518
646
647
647
648
649
1033
1037
1038
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
88
89
89
98
98
99
104
105
105
106
106
106
109
109
110
110
110
112
113
113
117
121
122
125
127
127
128
128
129
129
130
130
130
130
138
138
138
138
138
139
139
140
140
140
140
140
140
140
140
140
140
141
141
141
141
143
143
143
144
144
149
153
153
168
172
174
174
176
176
191
193
195
212
216
216
218
238
242
242
254
258
260
260
262
262
278
280
297
299
299
301
315
319
319
337
341
341
341
342
343
343
343
344
344
346
346
346
346
347
348
348
348
348
349
349
349
350
351
352
352
353
355
355
361
366
366
372
376
377
378
381
382
384
385
385
386
386
397
398
400
400
405
407
410
411
414
414
428
433
433
447
452
452
470
475
475
494
499
499
514
519
519
646
647
648
648
649
1034
1038
1039
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
86
86
87
89
96
96
99
104
106
106
106
107
107
110
110
110
111
113
113
113
113
113
117
122
122
122
126
128
128
130
130
130
130
130
130
131
131
135
135
138
138
138
140
140
140
140
140
140
141
141
141
144
144
144
144
150
154
154
169
173
175
175
177
177
192
194
196
213
217
217
219
239
243
243
259
263
263
273
277
279
279
281
281
298
300
302
316
318
318
320
320
338
342
342
343
344
344
344
344
345
345
346
347
347
348
349
349
349
349
350
350
350
350
352
353
353
354
354
354
354
356
356
362
365
367
367
371
371
373
377
378
382
382
384
385
386
386
387
387
397
401
401
406
408
411
412
412
429
434
434
448
453
453
471
476
476
495
500
500
515
520
646
648
649
649
1035
1039
1040
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
87
87
89
89
89
98
98
99
106
107
108
108
110
110
111
111
113
114
117
117
122
123
127
128
131
131
132
132
135
138
138
138
140
140
140
140
140
140
140
141
141
151
155
155
174
178
178
195
197
218
218
220
240
244
244
260
264
264
274
278
280
280
282
282
299
301
303
317
319
319
321
339
343
343
343
344
345
345
345
345
345
345
346
346
347
348
348
349
350
350
350
350
351
351
351
353
354
354
354
354
354
354
355
355
355
355
363
365
368
368
371
371
372
372
377
383
385
386
388
388
398
400
402
402
402
409
412
420
430
435
435
449
454
472
477
477
496
501
501
516
521
647
649
650
1036
1040
1041
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
89
90
96
96
98
99
106
106
108
108
112
112
114
115
122
122
123
124
124
124
124
128
132
132
132
133
137
137
137
138
140
141
141
141
143
152
156
156
175
179
179
190
194
196
196
198
198
217
219
219
219
221
241
245
245
261
265
265
275
279
281
281
283
283
302
304
318
320
320
322
340
343
344
345
346
346
346
346
346
346
346
346
346
347
347
348
349
349
351
351
351
354
355
356
356
356
357
357
364
369
369
373
373
378
384
386
389
389
392
400
401
410
413
414
421
431
436
436
450
453
453
455
473
478
478
497
502
502
517
519
519
522
648
650
1037
1041
1042
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
89
89
89
90
91
98
98
98
99
99
99
99
104
105
108
108
108
109
113
113
113
115
116
117
122
122
122
124
124
128
128
129
133
133
133
134
134
135
135
136
137
138
138
138
138
141
141
142
144
153
157
157
176
180
180
191
195
197
197
199
199
218
220
220
222
242
246
246
262
266
266
280
284
284
297
301
303
303
305
305
319
321
323
341
341
341
344
345
346
346
347
347
347
347
348
348
349
349
350
351
351
355
356
357
357
365
365
365
365
370
370
374
374
378
385
390
390
393
393
393
401
401
402
402
411
414
414
422
422
432
437
437
451
454
456
474
479
479
498
503
503
518
520
523
648
1038
1042
1043
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
90
91
91
96
96
99
100
100
103
104
104
105
105
106
106
106
108
110
110
113
113
114
114
122
128
130
133
133
134
134
134
134
134
135
135
136
136
137
137
137
138
138
138
138
140
140
140
141
141
142
154
158
158
177
181
181
192
196
198
198
200
200
219
221
221
223
243
245
245
247
247
263
267
267
281
285
285
298
302
304
304
306
306
320
322
324
339
342
342
342
342
345
346
347
348
348
348
348
348
348
351
351
351
351
359
366
366
366
366
370
371
371
375
382
382
386
391
391
394
394
403
403
406
410
412
415
423
423
423
423
433
438
438
452
455
457
475
480
480
499
504
504
519
521
524
650
1039
1043
1044
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
101
101
103
103
104
105
106
106
107
107
108
108
108
111
113
113
115
115
115
115
116
122
123
124
124
131
132
132
133
134
135
135
135
135
136
137
137
138
138
138
138
139
140
140
140
140
140
140
141
141
141
142
155
159
159
178
182
182
197
201
201
222
222
224
244
246
246
248
264
268
268
282
286
286
299
303
305
305
307
307
323
325
340
343
343
343
343
346
346
347
347
348
348
350
350
350
351
360
360
366
366
367
368
369
371
372
372
374
374
376
383
383
384
384
384
387
392
392
393
394
394
394
394
395
401
402
402
402
404
404
411
413
414
414
416
421
423
423
424
424
434
439
439
453
456
458
476
481
481
500
505
505
520
522
525
650
1040
1044
1045
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
89
90
91
91
92
92
96
101
103
104
105
106
106
106
107
107
107
108
108
108
112
113
113
114
114
116
116
122
124
124
125
125
128
132
132
133
135
135
135
135
135
135
136
136
136
136
136
137
138
138
138
139
140
140
140
140
141
141
141
141
142
142
143
143
156
160
160
179
183
183
198
202
202
223
223
225
245
247
247
249
265
269
269
283
287
287
304
308
308
324
324
326
326
341
341
344
344
344
344
347
348
348
349
351
357
368
369
370
372
373
373
375
375
377
385
385
385
385
388
393
393
395
395
396
401
401
401
402
403
403
403
412
412
414
415
415
417
424
425
425
435
440
440
454
457
459
477
482
482
501
506
506
521
523
526
1041
1045
1046
1
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
91
91
91
91
92
93
93
93
96
101
101
103
104
105
106
107
108
108
108
108
108
113
115
115
115
115
116
117
124
126
126
132
132
132
133
133
134
134
134
134
134
134
135
135
135
135
135
135
135
136
136
136
136
137
137
137
138
138
138
139
140
140
141
144
144
157
161
161
180
184
184
199
203
203
224
226
246
248
250
266
270
270
284
288
288
305
309
309
318
322
325
325
327
327
336
338
339
339
340
342
342
342
344
344
345
345
348
349
350
350
357
366
369
370
371
373
374
374
374
376
376
386
386
389
394
394
394
394
396
396
403
404
404
404
413
413
413
415
418
423
423
425
436
441
441
455
458
460
478
483
483
502
507
507
522
524
527
1042
1046
1047
1
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
92
93
93
93
93
93
94
96
96
101
102
103
106
106
106
107
108
108
108
108
108
113
113
114
116
116
118
124
124
126
133
134
134
136
136
136
136
136
136
137
138
138
138
138
138
138
138
139
140
140
140
140
141
141
141
141
141
142
158
160
160
162
162
181
183
183
185
185
200
204
204
221
223
225
225
227
227
247
249
251
267
271
271
285
289
289
306
310
310
319
323
326
326
328
328
337
337
338
338
339
340
340
340
340
340
341
342
343
344
344
345
345
346
346
346
348
350
351
366
370
371
372
374
374
375
375
386
390
395
395
395
402
404
405
405
414
416
419
424
437
442
442
456
459
461
479
484
484
503
508
508
523
525
528
1043
1047
1048
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
91
91
91
93
93
93
94
95
95
101
101
102
103
103
103
103
107
108
108
108
108
108
109
109
115
115
115
116
117
119
126
126
126
134
134
135
136
136
137
137
138
138
138
138
138
138
139
139
140
140
141
141
141
141
143
159
161
161
163
182
184
184
186
201
205
205
222
224
226
226
228
228
250
252
268
270
270
272
272
286
290
290
307
311
311
320
324
329
329
338
338
339
339
340
341
341
341
341
341
342
343
344
344
344
344
344
345
345
346
346
346
347
351
351
352
352
357
357
366
371
372
373
374
375
375
376
376
386
391
394
396
396
396
403
403
415
415
417
417
420
420
423
423
425
438
443
443
457
460
462
480
485
485
504
509
509
524
526
529
1044
1048
1049
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
92
94
94
94
95
96
96
96
101
101
101
103
103
106
108
110
110
113
113
115
116
118
120
124
124
126
126
126
126
135
135
135
135
135
135
136
136
136
137
137
137
138
138
138
138
138
138
138
138
138
138
138
139
140
140
140
140
140
144
160
162
162
164
183
185
185
187
202
206
206
223
225
227
227
229
229
245
249
251
251
253
253
269
271
271
273
287
291
291
308
312
312
325
330
330
339
339
339
339
339
339
340
340
341
341
341
342
342
342
342
342
343
343
344
344
345
345
346
346
347
347
348
351
353
353
358
358
366
372
373
374
375
376
377
377
392
394
394
395
397
397
415
416
421
421
423
423
424
424
439
444
444
461
463
481
486
486
505
510
510
527
530
650
1045
1049
1050
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
93
93
95
95
95
96
97
97
101
110
111
113
115
115
115
116
116
116
116
117
119
119
121
121
126
126
126
126
127
127
132
135
136
137
137
138
138
138
138
138
139
139
140
140
140
140
141
141
141
161
163
165
184
186
188
203
207
207
226
230
230
246
250
252
252
254
254
270
272
272
274
288
292
292
309
311
311
313
313
326
331
331
337
340
340
340
340
340
340
340
341
341
341
341
341
342
343
343
343
343
345
346
346
346
347
347
349
352
352
354
354
373
373
374
376
377
378
378
393
393
394
395
396
398
405
417
422
422
425
425
440
445
445
462
464
482
487
487
506
511
511
528
531
648
650
651
1046
1050
1051
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
93
93
94
98
98
101
102
103
103
106
106
111
113
113
114
116
117
117
118
120
120
122
122
124
128
128
134
135
135
135
135
135
137
138
138
138
140
140
140
140
140
140
140
141
142
162
164
166
185
187
189
204
208
208
227
231
231
247
251
253
253
255
255
271
273
275
289
291
291
293
293
310
312
312
314
327
332
332
338
341
341
341
341
341
341
341
342
342
342
342
342
342
342
343
343
346
347
347
350
355
355
360
366
374
374
375
377
377
379
379
394
394
396
397
399
405
418
421
423
423
426
426
441
446
446
463
465
483
488
488
507
512
512
529
532
649
651
1047
1051
1052
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
95
95
95
96
99
99
101
103
103
104
104
104
105
106
111
111
112
115
118
118
119
121
121
123
123
128
129
134
134
134
134
136
137
137
137
137
137
138
138
138
138
138
139
140
140
141
141
141
141
143
165
167
188
190
205
209
209
228
232
232
252
256
256
272
274
276
290
292
292
294
311
313
313
315
328
333
333
339
339
341
342
342
342
342
342
342
342
342
343
343
343
343
343
343
344
345
348
351
356
356
358
361
374
375
375
376
380
380
394
395
395
397
397
397
400
419
422
424
424
427
442
447
457
464
466
484
489
489
508
513
524
528
530
533
649
1048
1052
1053
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
93
96
96
100
100
103
103
104
104
105
105
105
105
106
106
110
110
110
112
113
113
113
118
120
124
124
124
124
129
134
134
134
134
135
135
135
135
135
136
136
136
136
136
137
137
137
137
138
138
138
138
138
138
139
140
140
141
141
142
144
160
164
166
166
168
168
183
187
189
189
191
191
206
208
208
210
210
229
233
233
253
257
257
275
277
291
293
293
295
312
314
316
329
334
334
337
337
340
340
340
342
342
343
343
343
344
344
344
344
344
346
346
346
346
347
347
350
350
352
357
357
358
366
366
366
375
375
376
377
377
381
381
385
394
395
396
397
397
398
398
401
405
405
413
420
422
422
425
425
426
426
428
443
446
446
448
458
462
465
467
485
490
490
509
514
529
531
534
651
1049
1053
1054
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
95
95
96
97
101
101
103
103
103
103
104
105
105
106
106
107
107
110
111
113
113
113
113
113
113
118
118
121
124
125
125
129
129
130
133
135
135
135
135
136
136
136
136
136
136
136
136
137
137
137
137
137
138
138
138
138
138
138
138
139
140
143
145
161
165
167
167
169
169
184
188
190
190
192
192
207
209
209
211
230
234
234
254
258
258
270
274
276
276
278
278
292
294
296
313
315
317
330
335
335
335
336
338
338
341
342
343
344
344
344
344
345
345
347
347
347
347
347
353
358
358
364
366
367
367
367
367
367
375
377
377
378
378
382
382
386
386
386
397
398
398
399
399
402
403
406
406
414
421
426
426
427
427
429
444
447
449
463
466
468
486
491
491
510
512
512
515
530
532
535
651
1050
1054
1055
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
93
93
96
98
102
102
103
104
105
105
105
105
106
107
107
107
108
108
110
110
113
113
113
114
118
119
122
126
126
128
128
130
131
131
133
134
134
134
134
134
135
135
135
135
136
136
136
136
136
136
137
137
137
137
138
138
138
138
138
138
138
141
141
141
142
144
144
146
146
162
166
168
168
170
170
185
189
191
191
193
193
208
210
210
212
231
235
235
255
259
259
271
275
277
277
279
279
293
295
297
316
318
331
336
336
336
337
338
339
339
340
340
342
342
342
344
344
345
346
346
346
346
346
346
347
348
348
354
358
358
359
359
361
365
367
367
367
368
368
368
375
377
378
378
379
379
383
383
387
387
398
399
399
400
403
404
404
415
415
422
426
427
427
428
428
445
448
450
464
467
469
487
492
492
511
513
516
531
533
536
1051
1055
1056
1
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
87
87
95
95
96
99
103
103
103
103
103
104
105
105
106
107
108
108
114
115
118
118
119
120
120
120
120
123
124
127
127
128
131
131
131
131
131
134
135
135
135
135
135
135
135
136
136
136
136
136
136
136
137
137
137
137
137
138
138
138
138
138
138
139
141
143
145
145
147
147
167
171
171
190
194
194
209
211
213
232
236
236
256
260
260
272
276
278
278
280
280
296
298
317
317
319
319
332
336
336
337
337
337
337
337
338
338
338
338
339
340
340
340
340
341
341
342
344
346
346
346
346
346
347
347
347
347
347
352
355
359
359
360
360
366
368
368
369
369
369
378
379
379
384
384
386
387
387
387
387
388
397
399
401
404
416
416
416
416
423
426
428
428
446
449
451
465
468
470
488
493
493
512
514
517
532
534
537
1052
1056
1057
1
1
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
82
87
87
88
93
93
95
96
100
103
104
104
105
105
105
106
107
108
113
113
115
116
118
118
118
120
120
124
128
128
128
128
128
129
131
132
133
134
134
136
136
136
137
138
138
138
138
138
138
138
138
138
138
138
139
139
140
140
144
146
146
148
148
168
172
172
191
195
195
208
210
212
212
214
233
237
237
257
261
261
277
281
281
291
295
297
297
299
299
311
315
318
318
320
320
333
335
336
337
337
338
338
338
338
338
338
339
339
339
339
339
340
341
341
342
342
344
347
347
348
348
348
353
353
356
361
361
367
367
367
369
369
370
379
380
385
385
388
388
389
394
400
402
405
406
414
416
416
417
417
422
424
426
427
429
429
447
450
452
466
469
469
471
471
489
494
494
513
515
518
533
535
535
538
538
1053
1057
1058
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
88
89
89
95
95
95
96
96
96
96
101
103
103
105
105
105
107
108
110
113
113
118
125
129
129
131
131
132
133
135
135
135
136
136
138
138
138
139
139
139
140
140
140
140
141
145
149
149
169
173
173
192
196
196
209
213
213
215
234
238
238
258
262
262
278
282
282
292
296
298
298
300
300
312
316
319
319
321
321
334
336
337
337
337
338
338
339
339
339
340
340
340
340
340
341
341
341
341
342
342
342
343
343
344
348
348
349
349
357
362
362
368
368
370
371
381
386
386
387
387
389
389
394
395
397
397
401
403
406
406
417
418
418
422
425
427
428
430
430
448
451
453
467
472
472
490
495
495
514
516
519
534
539
539
1054
1058
1059
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
83
83
87
89
93
93
96
97
97
102
105
105
105
106
106
108
115
115
116
118
119
120
120
126
130
130
131
131
133
134
135
135
135
136
136
137
137
138
138
138
140
140
141
141
146
150
150
170
174
174
193
197
197
210
214
214
216
235
237
237
239
239
259
263
263
279
283
283
293
297
299
299
301
301
313
317
322
322
333
333
335
337
338
338
338
339
340
340
340
340
341
341
341
341
341
341
341
343
343
343
343
358
359
363
363
367
367
369
369
371
375
375
382
387
387
388
394
398
398
402
404
407
416
416
418
426
426
428
429
431
431
449
452
454
468
473
473
491
496
496
515
517
520
535
540
540
651
1055
1059
1060
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
87
87
89
89
89
98
98
103
103
103
105
105
105
105
105
105
107
107
113
113
116
118
120
120
121
121
127
131
131
131
131
131
135
135
135
135
135
136
137
137
137
138
138
138
138
138
138
140
147
151
151
171
175
175
194
198
198
215
215
217
236
238
238
240
260
264
264
280
284
284
298
302
302
318
323
323
334
334
335
335
335
336
337
337
338
338
339
339
339
339
340
340
341
342
342
343
343
343
343
359
359
364
364
367
367
368
368
369
376
376
377
377
377
383
387
388
388
389
395
397
399
399
399
405
406
406
408
417
422
427
427
429
429
432
432
450
453
455
469
474
474
492
497
497
516
518
521
536
541
541
649
651
652
1056
1060
1061
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
89
90
93
98
104
105
105
105
105
106
106
106
106
108
115
115
116
120
122
122
128
128
132
132
133
134
134
134
135
135
136
137
137
137
138
138
138
138
138
140
148
152
152
172
176
176
195
199
199
214
216
216
216
218
237
239
239
241
261
263
263
265
265
281
285
285
299
303
303
319
324
324
333
335
335
336
336
336
337
337
337
338
338
340
340
341
341
342
343
343
343
343
349
360
365
365
369
369
371
378
378
378
378
384
387
387
388
389
389
397
398
404
406
407
407
409
416
416
418
426
428
428
433
433
454
456
470
475
475
493
498
498
517
519
522
537
542
542
650
652
1057
1061
1062
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
89
90
91
93
98
98
103
104
105
105
107
107
107
107
109
113
113
116
120
120
122
129
131
131
131
131
133
133
133
134
134
134
134
135
135
135
135
136
136
136
136
137
138
138
141
149
153
153
173
177
177
196
200
200
215
217
217
219
238
240
242
262
264
264
266
282
286
286
300
304
304
320
325
325
334
336
336
336
336
336
337
337
337
338
338
338
338
338
339
339
340
342
343
343
343
349
361
361
366
366
370
370
371
379
379
385
386
387
388
389
390
390
398
398
399
399
405
405
407
410
416
416
417
417
427
427
429
429
429
434
434
455
457
471
476
476
494
499
499
520
523
538
543
543
650
1058
1062
1063
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
91
91
93
93
98
99
103
104
104
105
105
106
106
107
108
108
110
115
115
116
122
122
122
130
132
132
133
134
134
134
134
134
134
135
135
136
136
136
136
136
136
136
136
137
137
137
137
138
138
138
150
154
154
174
176
176
178
178
197
201
201
216
218
218
220
239
241
243
263
265
265
267
283
287
287
301
305
305
321
326
326
335
336
337
338
338
338
338
338
339
339
339
339
339
339
340
340
340
343
344
362
362
367
367
371
379
386
387
389
390
391
400
400
402
406
408
411
418
418
427
429
430
430
430
435
435
456
458
472
477
477
495
500
500
521
524
539
544
544
652
1059
1063
1064
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
98
98
99
100
100
100
100
103
103
103
103
104
105
106
106
107
107
108
109
111
113
113
115
116
120
120
122
122
122
122
131
131
131
131
132
133
133
133
133
134
134
135
135
136
136
136
136
136
136
138
138
138
138
138
139
140
140
151
155
155
175
177
177
179
198
202
202
219
219
221
242
244
264
266
268
284
288
288
302
306
306
322
327
327
336
336
337
338
339
339
340
340
340
340
343
344
345
349
349
353
362
362
363
368
368
370
370
372
379
387
387
388
390
392
398
399
399
399
401
401
407
407
409
412
414
419
419
427
429
430
431
431
431
436
436
450
457
459
473
478
478
496
501
501
522
525
540
545
545
652
1060
1064
1065
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
89
91
91
92
93
98
98
98
100
100
103
103
104
105
106
107
107
108
108
108
109
110
112
115
115
115
116
116
116
116
122
122
122
122
123
123
131
131
131
132
132
133
133
134
134
134
134
134
134
134
134
134
135
135
135
135
135
135
135
136
136
136
136
136
136
136
137
138
139
140
140
152
156
156
176
178
178
180
199
201
201
203
203
220
220
222
237
241
243
243
245
245
265
267
269
285
289
289
303
305
305
307
307
323
328
328
331
332
334
338
338
339
339
340
340
341
341
343
343
345
346
350
350
354
359
364
369
369
371
371
373
387
388
388
390
390
390
390
391
393
398
398
398
399
400
400
400
407
408
410
413
415
420
427
427
430
431
432
437
437
451
455
458
460
474
479
479
497
502
502
517
521
523
526
541
546
546
1061
1065
1066
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
90
91
91
91
92
93
93
98
103
103
104
105
105
105
106
107
107
107
107
108
108
109
109
110
110
111
111
113
113
113
113
116
117
117
120
124
124
131
131
131
131
132
132
133
133
133
133
134
134
134
134
134
134
134
135
135
135
135
135
135
135
136
136
136
136
136
137
137
137
137
138
138
138
153
157
157
177
179
181
200
202
202
204
221
223
238
242
244
244
246
246
268
270
286
288
288
290
290
304
306
306
308
324
329
329
332
332
333
333
333
334
334
335
336
336
338
339
339
340
340
340
341
341
344
344
346
347
359
359
360
361
361
365
370
370
370
372
372
389
391
391
391
392
394
400
401
401
401
409
411
414
415
415
419
419
421
428
428
429
429
429
431
433
438
438
456
459
461
475
480
480
498
503
503
522
524
527
542
547
547
1062
1066
1067
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
93
93
93
93
93
98
99
100
100
103
104
105
106
106
107
107
108
108
110
110
110
110
110
110
112
112
114
114
118
118
124
125
131
131
131
131
133
133
133
133
133
134
134
134
135
135
135
135
136
136
136
136
136
136
136
136
137
137
137
138
138
138
154
156
156
158
158
178
180
182
201
203
203
205
218
220
222
222
224
224
239
243
245
245
247
247
263
267
269
269
271
271
287
289
289
291
305
307
307
309
325
329
329
330
330
333
333
333
333
333
333
334
334
334
334
334
334
335
335
336
336
336
337
337
338
340
340
340
341
343
347
348
360
360
360
360
361
362
362
366
370
371
371
390
392
392
392
395
399
401
402
402
410
412
415
420
420
422
430
430
430
430
434
439
439
457
460
462
476
481
481
499
504
504
523
525
528
543
548
548
1063
1067
1068
1
1
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
83
83
84
88
90
90
91
91
92
92
93
94
98
100
100
101
101
107
107
107
107
108
110
111
111
113
113
113
115
115
118
120
120
125
131
131
131
133
133
134
134
134
134
134
135
135
135
136
136
137
137
137
138
138
138
138
138
138
138
139
139
155
157
157
159
181
183
202
204
206
219
221
223
223
225
225
244
248
248
264
268
270
270
272
272
288
290
290
292
306
308
310
326
330
330
331
331
331
331
331
334
334
334
334
334
334
335
335
335
335
335
335
336
336
337
337
337
338
338
341
341
341
343
344
348
348
349
349
350
354
360
360
361
361
362
362
363
363
367
370
371
372
372
390
391
393
396
400
400
411
413
413
416
416
419
421
421
431
431
435
440
458
461
463
477
482
482
500
505
524
526
529
544
549
549
1064
1068
1069
1
1
1
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
78
83
83
84
85
89
91
91
93
93
94
95
100
102
102
108
111
112
112
113
116
116
118
118
120
125
125
126
131
132
133
133
134
134
134
134
134
135
135
135
135
135
135
136
136
136
136
136
136
137
137
137
138
138
138
139
140
140
140
156
158
158
160
176
180
182
182
184
184
201
203
205
205
207
220
222
224
224
226
226
245
249
249
265
269
271
271
273
273
289
291
293
307
309
311
327
331
331
332
332
332
332
333
333
334
335
335
335
335
335
335
336
336
336
336
336
336
336
337
337
337
338
338
339
339
341
343
343
345
350
350
350
361
362
362
362
363
364
364
368
371
372
373
373
378
387
392
394
397
405
412
417
417
419
431
436
439
439
441
459
462
462
464
464
478
483
483
501
506
525
527
530
545
550
550
1065
1069
1069
1070
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
84
85
85
86
90
92
92
93
94
94
95
96
100
100
102
110
112
113
113
113
113
117
117
118
119
124
124
126
127
127
131
131
131
133
134
135
135
136
136
136
136
136
136
136
136
137
137
138
138
138
139
139
140
141
141
157
159
161
177
181
183
183
185
185
202
206
206
208
223
227
227
246
250
250
270
274
274
290
292
294
310
312
328
329
332
333
333
333
333
334
334
334
334
335
336
336
336
336
336
336
336
337
337
337
337
337
337
337
339
339
346
351
351
360
360
362
364
365
365
369
370
372
373
374
374
379
379
379
387
388
390
390
393
395
398
402
406
413
415
418
418
419
420
431
437
440
442
460
465
465
479
484
484
502
504
504
507
526
528
528
531
531
546
551
551
1066
1069
1070
1071
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
83
85
91
91
93
93
95
95
102
102
102
107
110
110
114
118
118
118
118
119
120
120
120
120
120
124
127
127
127
127
127
131
131
132
134
134
135
135
135
135
135
135
136
136
136
136
136
138
138
138
142
142
158
160
162
178
182
184
184
186
186
203
207
207
209
224
228
228
247
251
251
271
275
275
293
295
311
311
313
313
329
330
333
333
333
334
334
334
334
334
334
334
335
335
335
336
336
337
337
337
337
338
338
338
338
339
339
339
347
350
350
352
352
361
362
366
366
366
370
371
373
373
375
375
380
380
387
391
391
394
396
399
402
407
407
414
415
419
419
420
421
438
441
443
461
466
466
480
485
485
503
505
508
527
532
532
547
552
552
650
1067
1071
1072
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
83
83
85
85
85
92
95
95
96
96
96
100
100
102
112
112
113
113
115
118
118
118
119
119
120
120
124
124
124
125
127
128
132
132
132
134
134
134
135
136
137
137
137
137
138
139
143
143
161
163
183
187
187
208
208
210
225
229
229
248
252
252
272
276
276
288
292
294
294
296
296
305
309
312
312
314
314
330
331
334
334
334
335
336
336
336
336
337
337
337
338
338
338
339
339
339
339
339
339
344
348
351
351
353
353
360
360
362
364
366
370
371
372
376
376
379
380
380
380
380
381
388
390
392
392
392
395
397
400
408
408
408
408
415
419
420
420
421
422
439
442
444
462
467
467
481
486
486
504
506
509
528
533
533
548
553
553
651
1068
1072
1073
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
85
86
93
93
93
96
97
97
100
100
102
102
102
102
102
110
110
113
116
118
120
120
128
129
132
132
133
133
133
133
133
134
134
134
134
134
134
135
135
135
135
136
136
136
136
137
138
138
138
140
144
144
156
160
162
162
164
164
184
188
188
207
209
209
209
211
226
230
230
249
253
253
273
277
277
289
293
295
295
297
297
306
310
313
313
315
315
331
332
332
334
334
335
335
335
336
336
336
336
337
337
339
339
339
339
340
340
343
343
343
343
345
345
349
354
354
360
360
361
361
371
371
372
373
373
377
377
381
381
382
390
391
398
401
402
402
406
408
408
409
409
415
416
420
421
421
422
422
430
440
443
445
463
468
468
482
487
487
505
507
510
529
534
534
549
554
554
651
1069
1073
1074
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
85
86
87
94
95
95
96
98
98
100
100
100
100
100
102
102
102
102
102
102
103
103
112
112
113
117
118
119
120
120
121
121
127
127
129
130
130
130
131
131
131
131
132
132
132
133
133
133
134
134
135
135
135
135
136
136
136
136
136
136
137
137
137
138
141
145
145
157
161
163
163
165
165
185
189
189
208
210
210
212
227
231
231
250
254
254
274
278
278
290
294
296
296
298
298
307
311
316
316
330
330
331
331
332
332
332
332
335
335
336
336
336
336
336
336
337
339
339
340
341
341
344
344
350
355
355
362
362
371
373
373
374
374
378
378
380
380
382
382
391
391
392
392
399
400
402
403
403
409
410
410
417
419
421
422
422
431
431
431
431
441
444
446
464
469
469
483
488
488
506
508
511
530
535
535
550
555
555
1070
1074
1075
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
87
87
93
93
95
96
99
99
100
102
102
102
102
102
102
102
103
103
103
104
104
110
110
113
118
118
120
120
121
121
122
122
127
127
127
128
128
130
131
131
131
131
131
131
131
132
132
133
133
133
133
133
133
133
134
134
134
134
134
135
136
136
136
136
136
136
137
138
138
138
138
142
146
146
158
162
164
164
166
166
186
190
190
209
211
211
213
228
232
232
251
255
255
275
279
279
295
299
299
312
317
317
325
326
329
329
331
331
332
332
333
333
336
336
337
338
339
339
341
342
342
343
343
343
343
345
345
351
351
354
356
356
363
363
371
373
374
374
375
375
379
379
381
393
393
400
401
401
403
408
408
410
418
420
420
422
422
423
423
432
432
442
445
447
465
470
470
484
489
489
507
509
512
531
536
536
551
556
556
652
652
1071
1075
1076
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
95
95
96
96
100
100
100
100
102
102
102
102
102
103
104
104
104
105
105
112
112
113
119
120
122
122
123
123
124
129
130
131
131
131
132
132
133
133
133
133
133
133
133
133
134
134
134
134
134
134
135
135
135
135
135
135
135
135
135
136
136
136
136
136
136
137
137
137
143
147
147
163
167
167
187
191
191
212
212
214
229
233
233
252
256
256
276
280
280
296
300
300
313
318
318
326
327
327
329
329
330
330
331
331
332
332
332
333
333
334
334
334
334
334
334
337
337
338
339
339
342
343
343
343
343
343
343
344
344
344
351
352
352
355
357
357
364
374
375
375
380
380
380
382
391
392
392
392
394
394
395
399
401
404
409
419
420
422
423
423
424
424
432
443
446
448
466
471
471
485
490
490
508
510
513
532
537
537
552
557
557
653
653
653
653
1072
1076
1077
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
85
87
87
88
93
93
95
96
97
101
101
102
102
102
102
102
103
103
104
105
105
105
110
110
112
113
120
120
120
122
124
124
125
127
127
129
131
131
131
131
131
131
132
133
133
135
135
136
136
136
136
136
136
137
138
138
138
144
148
148
164
168
168
188
192
192
213
213
215
230
234
234
253
255
255
257
257
277
281
281
297
301
301
314
319
319
327
328
328
329
329
329
329
330
330
331
331
332
332
332
333
333
333
334
334
334
334
335
335
335
335
335
335
335
335
336
339
340
343
344
345
345
345
353
353
355
355
356
358
358
363
363
365
375
376
380
380
381
381
381
391
391
391
392
393
393
393
400
402
403
405
408
408
410
420
420
422
423
424
424
425
425
432
447
449
467
472
472
486
491
491
509
511
514
533
538
538
553
558
558
653
653
653
653
654
654
1073
1077
1078
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
87
87
87
88
89
89
95
95
95
96
96
96
96
98
100
101
102
102
104
104
105
112
112
112
113
113
113
113
121
122
122
122
123
123
125
125
125
129
130
130
133
133
134
134
135
135
136
136
136
138
145
149
149
165
169
169
189
193
193
214
216
231
235
235
254
256
256
258
278
282
282
298
302
302
315
320
320
327
328
328
329
329
329
330
330
330
330
331
331
332
332
332
332
333
333
333
334
335
335
336
336
336
336
336
336
337
337
339
340
341
344
345
346
346
354
354
356
357
359
359
364
364
366
377
379
380
381
382
382
382
393
394
394
394
401
403
403
406
408
408
409
409
420
420
421
423
424
426
426
448
450
468
473
473
487
492
492
512
515
534
539
539
554
559
559
654
654
655
655
1074
1078
1079
1
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
89
89
89
89
89
93
93
96
97
97
99
102
103
103
104
105
110
110
113
114
114
120
120
122
122
122
122
122
124
124
126
127
127
129
131
131
131
131
132
133
133
135
136
137
137
138
146
150
150
166
170
170
190
194
194
211
213
215
215
217
217
232
234
234
236
236
255
257
257
259
279
281
281
283
283
299
303
303
316
321
321
325
327
328
330
331
331
331
331
332
332
334
334
334
335
335
336
336
336
337
337
337
337
337
337
337
340
340
341
341
342
342
355
355
357
358
360
360
363
365
365
371
371
378
380
382
383
383
392
394
395
395
402
404
407
410
410
421
421
422
422
422
422
424
427
427
449
451
469
474
474
488
493
493
513
516
535
540
540
555
560
560
655
655
1075
1079
1080
1
1
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
86
86
87
87
89
90
98
98
100
100
100
102
102
104
104
105
115
115
122
122
122
122
123
123
123
125
125
127
128
129
130
130
131
132
132
133
133
133
133
133
133
134
135
135
136
136
137
137
137
138
147
149
149
151
151
167
171
171
191
195
195
212
214
216
216
218
218
233
235
235
237
256
258
260
280
282
282
284
300
302
302
304
304
317
322
322
326
327
327
328
329
329
329
332
332
332
332
332
332
334
334
335
335
337
337
337
338
339
339
339
343
343
345
356
356
358
359
361
361
363
372
372
373
373
373
379
380
381
383
384
393
393
403
403
403
405
406
408
411
411
423
423
423
423
423
428
428
431
443
450
452
470
475
475
489
494
494
514
517
536
541
541
556
561
561
1076
1080
1081
1
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
90
91
93
98
100
101
103
103
105
105
105
106
110
115
120
124
124
124
126
127
127
127
128
128
129
129
130
131
131
131
131
132
132
133
133
133
133
133
135
135
136
138
138
138
148
150
150
152
168
172
172
192
194
194
196
196
213
215
217
217
219
219
234
236
236
238
257
259
261
281
283
283
285
301
303
303
305
318
323
323
327
328
328
329
329
329
330
330
330
330
330
330
333
333
334
334
337
337
339
344
344
346
346
355
357
357
359
360
362
362
363
364
374
374
374
374
380
380
381
382
382
383
383
384
385
401
404
404
404
406
406
407
409
409
412
424
424
424
429
429
432
432
432
432
444
448
451
453
471
476
476
490
495
495
509
513
515
518
537
542
542
557
562
562
653
1077
1081
1082
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
88
88
89
91
92
93
98
98
100
102
104
104
104
104
104
106
106
107
107
110
115
115
124
125
125
127
127
127
127
129
129
129
129
130
130
130
131
131
131
131
131
132
133
133
133
133
134
134
134
135
135
135
135
136
149
151
151
153
169
173
173
193
195
195
197
216
220
220
235
237
239
260
262
282
284
286
302
304
304
306
319
323
323
324
324
327
327
328
329
329
330
330
330
330
331
331
331
332
332
332
332
333
334
334
337
337
339
340
345
345
346
351
351
355
357
358
360
361
363
363
364
365
375
375
381
383
384
384
385
386
395
402
402
405
407
407
410
410
411
411
413
424
425
430
430
433
433
449
452
454
472
477
477
491
496
496
514
516
519
538
543
543
558
563
563
653
653
654
1081
1082
1083
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
89
89
89
89
93
93
97
98
99
99
103
104
105
105
107
107
107
107
107
107
110
110
115
116
120
120
124
125
127
127
128
129
129
130
130
130
130
131
131
131
132
132
133
133
133
133
133
133
133
133
134
134
134
134
134
137
137
137
150
152
154
170
172
172
174
174
194
196
196
198
217
221
221
236
238
240
255
259
261
261
263
263
283
285
287
303
305
307
320
324
324
325
325
326
326
328
328
329
329
329
330
330
331
331
332
332
332
332
332
332
333
335
335
337
341
346
346
352
352
352
352
359
361
363
364
364
365
366
375
382
384
385
385
387
395
406
411
411
412
412
414
424
426
431
431
433
450
453
455
473
478
478
492
497
497
515
517
520
539
544
544
559
564
564
653
654
655
1077
1082
1083
1084
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
79
79
86
90
90
91
91
92
97
98
98
99
99
100
100
100
100
100
100
104
104
104
106
107
108
108
115
115
116
117
117
117
117
120
123
125
125
126
127
128
128
129
129
130
130
130
130
131
131
131
131
131
131
132
132
132
133
133
133
133
134
134
134
134
135
135
135
136
136
136
136
138
138
138
151
153
155
171
173
173
175
195
197
199
218
222
222
239
241
256
260
262
262
264
264
286
288
304
306
308
321
323
324
325
325
326
327
327
327
327
329
329
330
330
330
331
331
332
332
332
332
333
333
336
336
336
336
342
346
346
346
347
347
352
352
353
353
355
360
361
364
365
365
366
366
375
383
383
385
388
404
407
411
412
412
413
413
427
432
432
433
451
454
456
474
479
479
493
498
498
516
518
521
540
545
545
560
565
565
655
656
1083
1084
1085
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
74
79
79
80
87
89
89
91
91
92
93
97
98
98
98
99
100
100
100
100
101
107
108
109
109
110
115
115
115
117
117
124
124
124
124
126
127
127
127
128
128
130
130
130
130
130
131
131
131
131
132
132
132
132
132
132
132
133
133
134
134
134
134
134
134
134
134
134
134
135
135
135
135
135
135
136
136
136
136
154
156
172
174
174
176
194
196
198
198
200
219
223
223
234
238
240
240
242
242
257
261
263
263
265
265
281
285
287
287
289
289
307
309
322
324
325
325
325
325
326
327
328
328
328
328
328
328
328
330
330
330
330
330
330
330
331
331
331
332
332
332
337
337
340
343
347
347
348
348
353
354
354
361
361
363
365
366
366
380
384
386
389
395
395
404
408
411
413
413
428
433
433
452
455
455
457
457
475
480
480
494
499
499
517
519
522
541
546
546
561
566
566
651
656
1084
1085
1086
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
80
81
81
88
91
91
92
92
92
97
98
99
100
100
101
102
102
106
107
108
108
109
110
110
110
115
120
124
125
127
127
127
127
127
127
128
128
129
130
131
131
131
131
131
131
132
132
132
132
132
132
132
133
133
133
133
133
133
133
134
135
136
136
137
137
138
149
153
155
155
157
157
173
175
177
195
199
199
201
220
224
224
235
239
241
241
243
243
262
266
266
282
286
288
288
290
290
308
308
310
310
321
323
325
326
326
326
326
327
328
329
329
329
329
329
329
329
330
330
330
330
331
331
332
332
332
333
333
335
336
336
336
336
338
338
341
341
344
349
349
352
352
354
362
364
364
366
366
367
367
380
381
383
383
385
387
390
393
396
396
407
409
411
412
414
414
423
429
434
434
453
458
458
476
481
481
495
500
500
518
520
520
523
523
542
547
547
562
567
567
652
656
657
1085
1086
1087
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
79
81
89
89
89
92
93
93
97
98
99
99
100
100
100
100
101
102
103
104
107
107
107
109
109
111
111
115
116
117
117
124
124
124
124
125
127
127
128
128
130
130
131
132
133
133
133
133
133
133
133
133
133
134
134
134
135
135
135
136
136
137
137
137
138
150
154
156
156
158
158
174
176
178
196
200
200
202
221
225
225
236
240
242
242
244
244
263
267
267
283
287
289
289
291
291
302
306
309
309
311
311
322
324
325
325
325
326
326
327
327
327
327
327
328
329
330
330
330
330
330
330
330
331
331
331
331
332
332
332
332
332
333
334
334
335
336
336
336
336
337
337
337
345
350
350
353
363
364
366
367
367
368
368
380
384
384
386
388
391
394
394
407
410
412
413
415
415
424
424
424
424
430
435
435
454
459
459
477
482
482
496
501
501
519
524
524
543
548
548
563
568
568
652
656
658
1086
1087
1088
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
79
79
81
81
81
90
91
91
92
94
94
97
98
99
100
100
100
100
101
101
101
102
104
108
109
109
110
110
110
112
112
115
117
117
118
118
128
128
128
128
129
130
131
131
131
131
131
131
133
133
133
133
133
133
133
135
135
135
138
138
138
151
155
157
157
159
159
177
179
201
201
203
222
226
226
241
245
245
264
268
268
288
292
292
303
307
310
310
312
312
323
325
326
326
326
327
327
328
328
328
328
328
329
330
331
331
331
331
331
332
332
332
332
332
332
333
333
334
335
335
337
337
338
338
338
346
347
349
351
351
352
352
354
364
364
366
367
368
368
369
369
381
383
385
385
385
387
389
392
411
411
413
414
416
416
425
425
431
436
455
460
460
478
483
483
497
502
520
525
525
544
549
549
564
569
652
656
657
659
1087
1088
1089
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
81
82
89
89
91
91
92
95
95
100
100
100
100
101
102
102
102
107
107
109
110
113
113
117
119
119
125
125
129
129
129
129
130
130
130
131
131
131
131
132
133
133
133
133
134
134
134
135
135
136
136
156
160
160
172
176
178
178
180
180
200
202
202
202
204
223
227
227
242
246
246
265
269
269
289
293
293
304
308
313
313
324
324
325
325
326
326
327
327
327
327
327
328
328
328
329
329
330
331
331
331
332
332
332
333
333
333
333
335
336
336
338
339
339
339
339
347
347
350
351
351
352
352
352
352
353
353
365
367
368
370
370
374
383
384
390
393
396
402
407
412
412
414
414
417
417
425
432
432
435
435
437
456
461
461
479
484
484
498
503
521
526
526
545
550
550
565
568
568
570
656
657
658
1088
1089
1090
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
81
82
83
91
91
91
92
92
92
92
92
96
96
99
99
100
100
101
102
102
109
109
110
110
114
114
117
117
119
127
127
127
127
127
128
128
129
130
130
130
131
131
132
132
133
133
133
133
133
133
133
134
134
134
137
137
137
157
161
161
173
177
179
179
181
181
201
203
203
205
224
228
228
243
247
247
266
270
270
290
294
294
309
314
314
324
324
326
326
327
327
328
328
328
328
328
328
328
329
329
329
330
330
331
331
332
333
333
333
333
333
333
336
348
351
352
352
353
353
354
354
366
368
371
371
375
375
375
384
384
385
385
391
394
396
403
411
413
413
418
418
425
433
433
433
433
436
438
457
462
462
480
485
485
499
501
501
504
522
527
527
546
551
551
566
569
571
652
657
658
1089
1090
1091
1
1
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
83
83
89
89
92
93
93
93
95
95
97
97
102
102
102
102
107
107
110
111
115
115
119
119
119
124
127
127
128
128
128
128
129
129
129
130
130
130
130
130
130
131
131
131
132
132
132
132
133
133
133
133
133
133
134
134
134
135
135
138
138
138
158
162
162
174
178
180
180
182
182
202
204
204
206
225
227
227
229
229
244
248
248
267
271
271
291
295
295
310
315
315
321
322
325
325
325
325
327
327
328
328
329
329
330
330
330
330
330
331
331
332
333
333
333
333
337
346
347
347
349
352
353
353
354
354
355
355
367
372
372
376
376
386
386
392
395
404
404
412
412
414
414
414
419
419
434
434
434
437
439
458
463
463
481
486
486
500
502
505
523
528
528
547
552
552
567
570
572
658
1090
1091
1092
1
1
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
94
94
94
96
96
98
100
100
102
109
109
110
112
116
116
117
117
119
119
119
119
127
127
127
127
127
127
128
129
129
130
130
130
130
130
130
132
132
132
132
132
133
134
134
134
134
134
134
135
135
139
139
159
163
163
179
183
183
205
205
207
226
228
228
230
245
249
249
268
272
272
292
296
296
311
316
316
322
323
323
323
323
323
323
326
326
326
326
328
328
328
328
329
329
330
330
330
333
333
334
339
341
347
348
348
350
353
354
354
355
355
356
364
364
368
373
373
375
376
376
376
376
377
384
385
385
385
387
387
387
391
393
396
396
396
405
405
405
405
412
414
415
415
415
420
420
433
434
434
434
434
435
435
438
440
459
464
464
482
487
487
501
503
506
524
529
529
548
553
553
568
571
573
656
659
1091
1091
1092
1093
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
81
83
83
84
89
94
95
97
97
99
102
102
102
107
107
109
110
113
117
117
119
119
119
119
120
120
127
129
130
130
130
130
131
131
131
132
132
132
132
132
133
133
134
134
134
134
135
135
136
140
140
160
164
164
180
184
184
206
206
208
227
229
229
231
246
250
250
269
273
273
293
295
295
297
297
312
317
317
321
323
324
324
324
324
324
324
327
327
327
327
328
330
330
330
332
332
332
333
334
335
339
342
342
347
347
351
354
355
355
355
355
356
356
357
365
365
366
366
366
369
374
374
377
377
378
384
384
384
385
386
386
386
392
394
394
397
397
397
403
405
405
406
406
412
414
415
416
416
416
421
421
424
435
435
436
436
439
441
460
465
465
483
488
488
502
504
507
525
530
530
549
554
554
569
572
574
652
657
1092
1092
1093
1094
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
83
83
83
84
85
85
89
94
94
96
98
100
100
100
102
109
109
109
110
110
110
110
114
117
118
118
121
121
127
127
127
127
127
127
129
130
130
132
132
132
132
132
133
133
135
137
137
137
141
141
161
165
165
181
185
185
207
209
228
230
232
247
251
251
270
274
274
294
296
296
298
313
318
318
322
324
324
325
325
325
325
325
325
325
326
326
326
326
328
328
328
330
330
330
330
331
333
335
335
336
336
352
354
356
356
356
356
357
357
358
367
367
367
367
370
375
375
376
376
378
378
386
387
387
387
393
395
395
395
398
406
407
407
412
412
415
416
417
422
422
425
425
425
425
434
434
436
436
437
440
442
461
466
466
484
489
489
503
505
508
526
531
531
550
555
555
570
573
575
658
1093
1094
1095
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
85
85
85
85
85
89
89
94
95
97
99
101
102
102
102
107
107
110
111
111
115
119
119
121
122
128
128
128
128
128
128
129
130
130
130
130
132
132
132
132
133
133
133
134
134
134
135
138
138
138
142
142
162
166
166
182
186
186
204
206
208
208
210
210
229
231
233
248
252
252
271
273
273
275
275
295
297
297
299
314
317
319
319
319
322
322
322
323
326
326
326
326
326
326
327
327
327
327
330
330
332
332
337
337
339
339
348
353
355
356
356
357
357
358
358
368
368
371
376
376
377
385
387
388
388
394
396
399
405
405
407
413
413
414
414
414
416
418
423
423
426
426
435
438
441
443
462
467
467
485
490
490
504
506
509
527
532
532
551
556
556
571
574
576
659
1094
1095
1096
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
83
83
85
86
94
94
95
96
96
96
96
96
96
97
97
100
100
100
102
102
102
102
102
112
112
116
117
117
120
120
122
124
124
127
127
128
129
129
129
130
130
130
130
130
130
130
131
131
131
131
131
131
132
132
132
133
134
134
135
135
135
135
135
139
141
141
143
143
163
165
165
167
167
183
187
187
205
207
209
209
211
211
232
234
249
253
253
272
274
274
276
296
298
300
315
318
319
319
320
320
320
321
321
323
323
323
324
324
324
326
326
326
327
328
328
328
328
333
333
338
338
340
340
348
354
355
359
359
368
372
376
377
377
378
386
386
395
397
397
400
406
415
415
415
415
419
424
424
426
434
436
439
442
444
463
468
468
486
491
491
505
507
510
528
533
533
552
557
557
572
575
577
656
659
1095
1096
1097
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
86
87
89
94
94
94
95
96
96
96
96
96
97
97
97
97
97
98
98
99
101
101
102
102
102
102
103
103
103
103
107
112
117
117
121
121
122
122
123
124
127
127
127
127
127
127
127
128
128
128
128
129
129
129
129
129
129
129
130
130
130
130
131
131
131
131
131
131
132
132
133
133
133
133
133
134
135
137
140
142
142
144
164
166
166
168
184
188
188
206
208
210
210
212
212
227
231
233
233
235
235
250
252
252
254
254
273
275
275
277
297
299
301
316
319
320
320
320
320
321
321
321
321
322
322
322
322
324
324
324
325
326
326
326
326
326
327
327
327
328
329
329
329
329
334
334
334
339
339
347
355
355
356
360
360
368
373
376
376
377
378
378
396
397
398
398
401
401
405
405
407
416
416
420
425
425
426
434
434
435
443
445
464
469
469
487
492
492
506
508
511
529
534
534
553
558
558
576
578
652
657
1096
1097
1098
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
83
83
85
87
88
94
96
96
97
97
97
97
98
98
98
99
99
100
100
102
102
104
104
104
104
107
112
112
118
120
120
121
121
122
122
123
124
124
127
127
127
128
128
128
128
128
128
128
128
129
129
129
129
130
130
130
130
130
130
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
133
133
133
133
133
133
133
133
133
138
141
143
143
145
165
167
167
169
185
189
189
209
213
213
228
232
234
234
236
236
251
253
253
255
274
276
278
300
302
317
319
320
320
321
321
321
321
321
321
322
322
322
322
322
323
323
323
323
323
323
323
323
323
323
325
325
325
325
325
325
326
326
327
327
328
328
328
335
340
340
346
347
356
356
357
361
361
374
375
376
377
378
379
379
388
397
402
402
405
405
406
406
416
421
426
426
433
434
435
436
444
446
465
470
470
488
493
493
509
512
530
535
535
554
559
559
577
579
656
658
1097
1098
1099
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
84
84
85
85
94
95
96
96
97
97
98
99
99
99
100
100
100
101
103
103
104
105
105
105
107
107
112
113
117
119
121
121
121
123
124
124
124
124
124
125
125
127
127
127
127
127
129
129
129
130
130
130
130
130
130
130
131
132
132
132
133
133
134
134
134
134
135
142
144
146
166
168
170
186
190
190
210
214
214
229
233
235
235
237
237
252
254
254
256
275
277
279
301
301
303
303
318
320
321
321
321
321
321
321
321
322
322
322
322
322
322
323
323
323
323
324
324
324
324
324
324
324
324
324
324
326
327
328
328
329
329
330
330
330
330
336
340
341
341
347
347
347
355
357
357
358
362
362
375
376
378
379
380
388
398
403
403
407
407
416
422
427
427
434
436
437
445
447
466
471
471
489
494
494
510
513
531
536
536
555
560
560
578
580
657
657
659
659
1098
1099
1100
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
85
85
87
87
88
94
96
96
97
97
99
99
99
100
100
100
100
100
102
105
106
106
112
112
113
114
114
114
114
120
121
121
121
122
122
122
124
124
125
127
127
127
128
128
129
129
130
130
130
131
131
131
132
132
132
132
132
132
133
133
143
145
147
167
169
171
187
191
191
211
215
215
234
238
238
253
255
257
278
280
295
299
302
302
304
304
319
319
321
322
322
322
322
322
322
322
323
323
323
323
323
324
324
324
324
324
325
325
325
325
325
325
325
325
329
329
331
331
337
340
342
342
342
347
348
348
348
356
358
358
358
363
363
376
376
377
379
381
399
403
404
404
408
408
423
428
428
434
435
437
439
446
448
467
472
472
490
495
511
514
532
537
537
556
561
561
572
579
581
657
657
659
659
660
660
1099
1100
1101
1
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
85
86
86
88
96
98
98
100
100
103
105
105
106
107
107
107
112
112
112
114
114
121
123
125
125
126
127
127
127
128
128
128
130
130
130
132
132
132
132
133
146
148
170
172
188
190
190
192
192
212
216
216
235
239
239
254
256
258
273
277
279
279
281
281
296
300
303
303
305
305
320
320
322
322
322
323
323
323
323
323
323
323
323
324
324
324
324
324
324
325
325
325
326
326
326
326
326
326
327
330
330
330
330
330
332
332
338
343
343
343
349
349
349
355
357
359
364
364
376
377
377
379
379
379
379
380
382
388
388
395
400
404
405
405
409
424
429
434
435
437
437
438
440
444
447
449
468
473
473
491
496
506
510
512
515
533
538
538
557
562
573
577
580
582
660
660
661
661
1100
1101
1102
1
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
83
87
87
87
87
88
96
96
98
100
104
104
104
104
106
107
107
108
108
112
122
124
126
126
127
127
127
127
127
128
128
128
129
129
130
130
130
130
130
130
132
133
134
135
135
141
145
147
147
149
149
165
169
171
171
173
173
189
191
191
193
213
217
217
236
240
240
257
259
274
278
280
280
282
282
297
301
306
306
321
321
324
324
324
324
324
324
324
324
324
324
325
325
325
326
326
326
329
329
329
329
330
330
330
330
331
331
331
332
332
339
340
340
344
344
348
348
350
350
350
356
356
358
358
360
365
365
367
378
380
380
380
381
383
386
389
389
396
401
404
404
406
406
408
408
410
415
425
425
428
428
430
438
438
439
445
448
450
469
474
474
492
494
494
497
511
513
516
534
539
539
558
561
561
563
578
581
583
661
661
1101
1102
1103
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
84
85
85
88
88
88
98
98
98
104
105
105
107
107
107
107
107
109
109
112
113
114
114
124
124
124
125
127
127
127
127
127
129
129
129
130
130
130
130
130
130
130
130
131
131
131
131
131
132
132
133
142
146
148
148
150
150
166
170
172
172
174
174
190
192
192
194
214
218
218
237
241
241
252
256
258
258
260
260
275
279
281
281
283
283
302
307
307
317
322
322
322
322
322
322
322
324
324
325
325
326
326
326
326
326
326
327
329
329
329
329
331
332
332
332
334
340
341
341
345
345
349
349
349
349
351
351
351
356
358
359
359
361
366
366
368
368
368
379
381
381
381
384
387
387
397
397
402
407
407
409
409
411
416
416
416
416
426
426
426
426
429
431
439
439
446
449
451
470
475
475
493
495
498
512
514
517
535
540
540
559
562
564
579
582
584
657
657
1102
1103
1104
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
79
79
85
87
87
88
89
89
96
96
98
104
104
106
107
108
110
110
112
114
114
115
115
120
121
124
126
126
126
127
127
127
128
128
128
128
128
128
128
128
128
129
129
129
129
129
130
130
130
130
130
130
130
131
131
135
135
143
147
149
149
151
151
167
171
173
173
175
175
191
193
195
215
219
219
238
242
242
253
257
259
259
261
261
280
284
284
303
308
308
318
320
320
320
320
320
323
323
323
323
323
323
324
325
326
326
326
326
326
326
327
327
327
328
332
333
333
335
335
341
343
346
346
349
349
350
350
351
352
352
356
358
359
360
360
362
367
367
369
369
379
380
382
385
398
398
398
398
403
408
408
408
410
410
417
417
427
427
427
430
432
437
447
450
452
471
476
476
494
496
499
513
515
518
536
541
541
560
563
565
580
583
585
658
658
659
659
659
1103
1104
1105
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
74
79
79
80
85
85
86
87
88
90
90
98
98
98
107
108
109
111
111
114
116
116
121
124
124
125
126
127
127
128
128
128
128
128
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
131
131
131
131
132
132
132
132
132
133
133
135
148
152
152
172
176
176
190
192
194
194
196
216
220
220
239
243
243
254
258
260
260
262
262
281
285
285
304
309
309
317
318
319
319
319
321
321
321
321
321
322
322
324
324
324
324
324
326
327
327
327
328
328
328
329
342
347
347
350
351
351
352
352
359
360
363
368
368
368
369
369
369
369
370
376
381
383
386
389
396
398
398
399
399
404
408
409
409
417
426
427
427
427
427
428
428
431
433
434
448
451
451
453
453
472
477
477
495
497
500
514
516
519
537
542
542
561
564
566
581
584
584
586
586
660
660
660
1104
1105
1106
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
80
81
81
87
87
87
87
88
88
88
88
89
89
91
91
96
96
98
107
108
109
110
112
112
114
114
116
122
126
126
127
127
127
127
127
127
128
128
128
128
128
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
131
131
131
131
131
131
132
132
132
132
132
132
133
134
134
149
153
153
173
177
177
191
195
195
197
217
221
221
240
244
244
259
263
263
282
286
286
305
310
310
318
318
319
319
319
319
319
320
320
320
320
322
322
322
322
322
323
323
324
325
325
325
325
328
329
330
341
343
348
348
349
349
351
360
364
369
369
370
370
371
376
377
379
379
382
384
387
389
399
400
400
404
405
408
409
410
410
417
428
428
429
429
432
434
434
435
437
437
449
454
454
473
478
478
496
498
501
515
517
517
520
520
538
543
543
562
565
567
582
587
587
660
661
661
1105
1106
1107
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
79
81
85
85
88
88
89
89
90
90
92
96
97
98
98
98
104
107
107
109
113
113
116
116
116
124
124
124
124
124
124
124
124
124
126
127
127
127
127
127
127
127
128
128
128
128
129
129
129
129
129
129
129
130
130
130
130
130
131
131
131
131
131
131
132
133
133
135
150
154
154
174
178
178
192
196
196
198
218
220
220
222
222
241
245
245
260
264
264
283
287
287
306
311
311
315
317
317
319
319
319
319
319
319
320
320
320
320
320
320
320
321
321
322
322
322
322
323
323
323
323
323
323
323
323
324
324
329
330
331
333
341
344
349
349
350
365
369
369
370
370
371
371
376
380
380
383
385
388
398
398
400
404
406
409
410
411
411
427
427
429
429
430
433
434
435
438
438
450
455
455
474
479
479
497
499
502
516
521
521
539
544
544
563
566
568
583
588
588
661
661
1106
1107
1108
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
79
79
81
81
81
89
90
90
91
91
93
96
96
96
96
96
97
97
97
97
98
98
98
98
98
109
109
110
110
114
114
114
114
116
116
116
116
124
124
126
127
127
127
127
127
128
128
128
128
128
128
129
129
129
130
130
130
131
131
131
131
132
132
133
151
155
155
175
179
179
197
197
199
219
221
221
223
242
246
246
261
265
265
284
288
288
307
312
312
315
315
316
318
318
318
319
319
319
319
320
320
320
320
320
320
320
321
321
321
321
321
321
321
321
322
322
322
323
323
325
325
327
331
332
333
342
345
349
349
350
350
351
356
356
366
370
371
371
377
379
381
381
381
384
386
389
389
389
399
407
408
410
411
412
412
428
431
434
435
436
437
439
439
439
451
456
456
475
480
480
498
500
503
517
522
522
540
545
545
564
567
569
584
589
589
1107
1108
1109
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
81
82
85
90
90
92
94
96
96
97
97
97
97
97
98
98
98
98
98
98
98
99
99
99
100
107
107
110
111
113
113
115
115
116
116
116
116
117
117
124
124
125
125
126
126
127
127
127
127
127
129
129
129
129
129
129
129
129
130
130
130
133
133
134
152
156
156
176
180
180
196
198
198
198
200
220
222
222
224
243
245
245
247
247
262
266
266
285
287
287
289
289
308
313
313
316
316
317
319
319
319
320
320
320
320
321
321
321
321
321
321
322
322
322
322
322
322
324
324
324
324
324
325
325
325
327
328
332
332
333
333
343
343
344
346
349
349
350
350
351
351
357
357
358
358
358
367
369
371
372
372
379
380
387
387
390
390
390
398
398
400
404
408
409
411
411
413
413
416
427
429
432
435
437
437
438
452
457
457
476
481
481
499
501
504
518
523
523
541
546
546
565
568
570
585
590
590
1108
1109
1110
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
81
82
83
85
90
90
91
93
95
96
97
97
98
98
99
99
99
99
99
100
100
100
109
109
110
112
114
114
114
116
118
118
124
124
126
126
127
127
127
127
127
127
127
127
128
128
129
129
130
130
130
130
130
130
130
131
132
134
134
153
157
157
177
181
181
197
199
199
201
221
223
225
244
246
246
248
263
267
267
286
288
288
290
309
313
313
314
314
317
317
318
318
320
320
320
320
320
320
320
320
321
321
321
321
322
322
322
322
322
322
323
323
323
325
325
325
325
325
329
333
333
334
334
344
344
345
347
351
351
352
352
359
359
359
359
368
369
369
370
373
380
380
381
381
388
388
388
391
398
398
399
399
408
409
410
414
414
417
417
417
417
427
427
428
436
438
438
438
439
439
453
458
458
477
482
482
502
505
519
524
524
542
547
547
569
571
586
591
591
1109
1110
1111
1
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
83
83
85
85
90
91
94
96
99
99
100
100
100
100
101
107
107
110
113
115
115
117
118
119
126
127
127
127
127
127
127
127
128
128
128
128
128
129
129
129
129
130
130
130
130
130
131
132
135
135
154
158
158
178
182
182
198
200
200
202
222
224
226
245
247
247
249
264
268
268
287
289
289
291
310
314
314
315
315
318
318
318
318
318
318
318
321
321
321
321
321
321
322
322
322
322
322
323
324
327
330
334
334
335
335
335
343
345
345
346
348
352
352
353
353
360
360
368
369
369
370
371
374
382
382
389
392
400
400
409
409
410
411
411
415
415
418
418
426
427
428
429
437
439
440
440
454
459
459
478
483
483
503
506
520
525
525
543
548
548
570
572
587
592
592
1110
1111
1112
1
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
90
90
91
92
92
92
92
93
95
95
96
96
97
97
100
100
101
109
109
110
114
114
114
116
118
119
124
127
127
127
128
128
128
128
128
128
129
129
129
129
130
130
130
130
130
130
130
130
130
130
132
132
136
136
155
157
157
159
159
179
183
183
201
201
203
225
227
246
248
250
265
269
269
288
290
292
311
315
315
316
319
319
319
320
320
320
322
322
322
322
322
323
323
328
328
331
336
336
336
344
346
346
347
349
353
354
354
360
369
370
371
372
372
372
375
380
381
381
381
383
383
384
388
390
390
393
396
401
401
409
411
411
412
412
416
416
418
427
429
430
438
438
439
439
439
440
441
441
455
460
460
479
484
484
504
507
521
526
526
544
549
549
571
573
588
593
593
1111
1112
1113
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
81
83
83
84
85
90
90
90
90
92
92
94
96
96
96
98
98
101
101
102
107
107
109
110
114
115
117
119
119
119
120
124
124
124
126
126
127
127
127
127
127
127
127
127
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
131
131
132
133
133
137
137
156
158
158
160
180
184
184
202
202
204
220
224
226
226
228
228
247
249
251
266
270
270
289
291
293
312
314
316
317
317
317
320
320
320
321
321
322
322
323
323
323
323
323
325
332
337
337
341
341
344
344
347
347
348
350
352
352
354
355
355
360
369
370
371
372
373
376
380
380
380
381
382
382
382
389
390
391
394
397
402
409
411
412
412
413
413
417
417
418
427
428
430
432
438
438
438
439
439
440
440
440
441
456
461
461
480
485
485
499
503
505
508
522
527
527
545
550
550
565
572
574
589
594
594
1112
1113
1114
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
83
83
83
84
85
85
90
91
95
96
97
97
99
99
100
100
100
102
103
103
109
109
109
110
110
110
110
118
118
118
120
120
121
121
124
124
124
124
127
127
127
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
133
134
138
138
157
159
159
161
181
183
183
185
185
203
205
221
225
227
227
229
229
250
252
267
271
271
292
294
313
313
313
315
315
315
315
316
316
317
318
318
318
318
318
321
321
321
321
321
321
322
322
322
322
323
325
327
327
327
327
333
334
338
338
342
342
342
342
347
348
349
351
353
353
355
356
356
369
370
372
372
372
373
374
377
382
383
383
383
390
392
395
397
397
401
401
403
409
409
412
413
413
418
418
427
428
430
430
431
433
437
440
440
441
441
441
442
457
462
462
481
486
486
504
506
509
523
528
528
546
551
551
566
570
573
575
590
595
595
660
1113
1114
1115
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
85
85
85
85
85
90
91
92
92
96
100
100
100
101
103
103
103
103
103
107
107
110
111
111
113
114
117
118
119
119
121
121
121
121
121
121
121
124
124
126
126
126
126
126
127
127
127
127
127
127
128
128
128
128
129
129
130
130
130
130
130
130
131
131
135
139
139
158
160
162
182
184
184
186
200
202
204
204
206
206
222
226
228
228
230
230
245
249
251
251
253
253
268
270
270
272
272
293
293
295
295
314
314
314
314
315
315
316
316
316
316
316
316
317
317
318
319
319
319
319
319
322
322
322
323
323
328
328
334
334
336
339
339
342
342
343
343
348
349
352
352
354
354
357
357
373
373
373
374
375
378
381
383
384
384
391
393
396
402
402
404
410
410
411
411
411
413
414
419
419
431
431
432
438
439
441
441
442
442
443
458
463
463
482
487
487
505
507
510
524
529
529
547
552
552
571
574
576
591
596
596
661
661
661
1114
1115
1116
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
83
83
83
83
85
86
90
92
92
93
93
97
100
100
101
101
103
104
112
112
114
118
118
118
118
119
120
120
121
122
122
122
124
124
124
124
124
124
126
126
126
127
128
128
129
129
129
130
130
130
130
130
130
130
130
130
130
131
136
138
138
140
140
159
161
163
183
185
185
187
201
203
205
205
207
207
227
231
231
246
250
252
252
254
254
269
271
271
273
287
291
294
294
296
296
313
315
315
315
315
315
315
315
315
316
316
316
316
317
317
317
317
317
317
318
318
318
318
319
320
320
320
320
320
322
322
323
323
323
327
327
327
327
329
329
335
340
340
343
344
344
352
353
358
358
374
374
374
376
379
382
382
392
394
397
401
403
403
412
412
412
412
415
420
420
432
432
439
440
440
442
444
459
464
464
483
488
506
508
511
525
530
530
548
553
553
572
575
577
592
597
597
661
662
662
1115
1116
1117
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
76
76
80
84
84
86
87
92
94
94
96
97
98
102
102
104
105
107
112
115
119
121
121
122
123
123
123
124
124
124
124
126
126
127
127
127
127
127
127
127
128
128
128
128
129
129
129
129
129
129
129
130
130
130
132
137
139
139
141
162
164
184
186
188
202
204
206
206
208
208
228
232
232
247
251
253
253
255
255
270
272
272
274
288
292
295
295
297
297
311
313
313
314
315
315
316
316
316
316
316
316
316
316
316
317
317
317
317
318
318
318
318
318
318
318
318
318
318
319
319
319
319
320
321
321
321
322
323
323
323
327
327
327
327
328
328
328
334
334
336
341
341
342
342
344
344
352
353
354
359
359
372
375
377
380
388
393
395
395
398
398
401
413
413
416
421
430
440
443
445
460
465
465
484
489
507
509
512
526
531
531
549
554
573
576
578
593
598
598
662
662
1116
1117
1118
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
71
76
76
77
81
85
85
85
87
88
92
92
94
96
96
96
97
97
97
97
98
99
103
103
103
105
106
107
112
112
120
123
124
124
124
124
124
127
127
128
128
128
128
128
128
128
128
128
129
129
129
129
129
130
130
130
130
130
130
130
130
130
131
133
138
140
140
142
157
161
163
163
165
165
183
185
187
187
189
205
209
209
229
233
233
252
256
256
271
273
275
289
293
298
298
312
314
314
315
315
315
316
316
316
316
316
316
316
317
317
317
317
317
317
318
318
318
318
319
319
319
319
319
319
319
319
320
320
321
322
324
324
328
328
329
329
329
335
335
337
338
342
342
343
344
353
354
355
359
360
360
369
376
378
381
384
389
394
397
399
399
401
402
413
417
417
420
420
422
427
441
442
444
444
446
446
461
466
466
485
487
487
490
508
510
510
513
513
527
532
532
550
553
553
555
574
577
577
579
579
594
599
599
1117
1118
1119
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
77
78
78
82
83
85
85
86
86
94
94
94
96
96
97
97
97
97
97
98
98
98
99
100
100
100
103
103
104
104
107
107
112
113
121
121
121
121
125
125
125
125
126
127
127
127
127
127
127
127
127
127
127
128
128
129
129
129
129
129
130
130
130
130
139
141
143
158
162
164
164
166
166
184
188
188
190
206
210
210
230
234
234
253
257
257
272
274
276
294
299
299
313
315
315
316
316
316
316
317
317
317
317
317
318
318
318
318
318
318
318
318
318
319
319
319
320
320
320
320
320
321
321
322
323
323
329
329
329
330
330
338
339
340
340
342
342
343
343
344
352
354
355
356
360
360
360
361
361
369
370
372
372
377
379
382
384
390
390
395
397
400
400
402
403
413
418
418
418
418
421
423
427
428
430
430
442
442
447
447
462
467
467
486
488
491
509
514
514
528
533
533
551
554
556
575
580
580
595
600
600
1118
1119
1120
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
76
78
83
87
87
87
87
88
92
92
94
97
97
98
98
99
99
99
99
99
100
101
105
105
105
105
106
112
112
113
114
114
114
114
118
122
123
124
124
124
124
124
124
124
124
124
126
126
126
126
126
127
127
128
128
128
129
129
129
129
129
130
130
130
140
142
144
159
163
165
165
167
167
185
189
189
191
207
211
211
231
235
235
254
258
258
275
277
295
300
300
313
313
314
314
316
316
316
316
317
317
318
318
318
318
318
318
318
319
319
319
319
320
320
320
321
321
321
321
321
321
323
324
324
324
339
340
341
341
342
342
343
343
344
344
344
353
355
355
357
361
361
362
362
369
373
373
380
383
391
391
391
391
396
401
401
401
403
404
419
419
419
422
424
427
431
431
443
448
448
463
468
468
487
489
492
510
515
515
529
534
534
552
555
557
576
581
581
596
601
601
1119
1120
1121
1
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
76
76
78
78
78
84
85
85
86
86
88
88
88
94
94
94
99
99
100
100
100
102
103
103
106
106
106
107
112
112
112
114
114
121
121
123
123
126
126
127
127
127
127
127
127
127
127
128
128
128
128
129
129
129
130
130
130
130
130
143
145
164
168
168
190
190
192
208
212
212
232
236
236
255
259
259
270
274
276
276
278
278
296
301
301
311
314
314
316
316
318
318
318
319
319
319
319
319
319
319
320
320
320
320
321
321
321
321
324
325
335
340
341
342
342
344
344
345
345
352
354
358
360
361
361
361
361
362
363
363
370
372
374
374
374
381
384
384
384
389
391
391
392
392
397
397
402
402
402
404
404
418
419
419
419
419
420
420
423
425
428
430
432
432
432
442
442
444
449
449
464
469
469
488
490
493
511
516
516
530
535
535
553
556
558
577
582
582
597
602
602
1120
1121
1122
1
1
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
78
79
85
87
87
87
87
88
89
92
92
94
100
100
103
105
105
106
107
107
112
123
124
124
124
124
124
124
124
124
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
130
130
130
130
130
130
130
138
142
144
144
146
146
165
169
169
189
191
191
191
193
209
213
213
233
237
237
256
260
260
271
275
277
277
279
279
297
302
302
311
312
314
315
315
317
317
318
318
318
320
321
321
321
321
322
322
325
325
326
326
330
335
336
341
342
343
343
345
345
346
346
353
353
355
355
359
362
362
363
364
364
372
373
382
382
385
385
385
392
393
393
398
401
403
403
403
412
420
420
421
421
424
426
430
431
440
443
443
445
450
450
465
470
470
489
491
494
512
517
517
531
536
536
554
557
559
578
583
583
598
603
603
1121
1122
1123
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
78
79
80
85
85
86
88
88
88
90
94
94
94
103
103
104
106
108
108
112
113
114
114
120
120
121
121
121
121
121
121
123
124
124
124
124
124
124
124
124
124
124
125
125
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
128
129
129
129
129
129
129
130
130
130
130
130
130
130
130
139
143
145
145
147
147
166
170
170
190
192
192
194
210
214
214
234
238
238
257
261
261
272
276
278
278
280
280
298
303
303
308
311
311
311
311
311
312
313
313
313
313
313
313
313
314
315
316
316
318
318
318
318
321
321
321
321
322
322
323
323
327
327
330
337
342
343
344
344
346
347
347
353
355
356
356
360
361
361
363
363
365
365
373
373
374
374
377
381
383
383
383
386
391
391
393
399
402
402
404
404
404
404
413
413
413
413
419
419
421
421
422
425
427
431
431
432
432
441
441
446
451
451
466
471
471
490
492
495
513
518
518
532
537
537
555
558
560
579
584
584
599
604
604
1122
1123
1124
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
80
80
87
87
87
88
89
91
92
92
94
94
94
94
105
105
105
106
107
107
109
109
112
114
114
115
115
123
124
124
124
124
124
124
124
125
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
140
144
146
146
148
148
167
171
171
191
193
193
195
211
215
215
235
239
239
258
262
262
277
281
281
299
304
304
307
307
309
311
311
312
312
312
312
312
312
312
313
313
313
314
314
314
314
314
314
314
314
315
316
316
316
316
316
318
319
319
321
321
321
323
323
324
324
328
328
337
337
343
343
345
345
345
345
347
348
348
353
355
356
357
357
361
362
366
366
375
375
382
384
387
392
400
402
404
405
405
405
405
414
414
420
423
426
428
433
433
447
452
452
467
472
472
491
493
496
514
519
519
533
538
538
556
559
561
580
585
585
600
605
605
661
1123
1124
1125
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
85
87
88
88
90
92
94
94
94
94
95
95
103
103
105
106
106
108
108
110
114
116
116
121
121
123
123
124
124
126
126
126
127
127
127
127
128
128
128
128
129
130
130
130
130
130
130
130
130
130
130
130
131
131
145
149
149
168
172
172
194
194
196
212
216
216
236
238
238
240
240
259
263
263
278
282
282
300
305
305
308
308
310
312
312
313
313
313
313
313
313
313
314
314
314
314
314
314
315
315
315
315
315
315
316
316
316
316
316
317
317
317
317
317
317
318
324
324
325
325
329
329
330
330
344
345
345
346
346
348
349
349
356
357
361
362
363
367
373
374
374
374
376
376
383
385
385
388
391
391
393
401
402
404
405
406
406
406
406
414
419
421
424
427
429
431
432
432
432
434
434
443
448
453
453
468
473
473
492
494
497
515
520
520
534
539
539
557
560
562
581
586
586
601
606
606
662
662
662
1124
1125
1126
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
78
80
80
81
87
87
87
88
88
88
88
91
92
93
96
96
105
105
105
106
106
106
106
107
109
109
111
114
114
116
121
121
123
123
124
124
124
124
124
124
124
124
126
126
126
126
126
127
127
127
127
127
127
128
130
130
130
130
130
132
132
146
150
150
169
173
173
195
195
197
213
217
217
237
239
239
241
260
264
264
279
283
283
301
305
305
306
306
307
309
309
309
311
311
313
313
314
314
314
314
314
314
314
314
315
315
315
315
315
316
316
316
316
316
316
316
316
316
317
317
317
317
318
318
318
318
324
325
325
329
330
330
331
331
345
345
347
347
350
350
357
361
361
362
363
368
373
373
373
374
375
375
375
384
385
386
389
391
391
392
392
402
402
402
405
406
407
407
414
419
419
420
428
430
431
431
431
432
433
433
433
443
449
454
454
469
474
474
495
498
516
521
521
535
540
540
561
563
582
587
587
602
607
607
662
663
663
1125
1126
1127
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
80
80
80
81
82
82
85
85
86
88
89
89
90
92
92
94
94
96
96
97
97
103
103
106
107
107
108
110
112
116
116
116
123
124
124
124
124
124
124
125
126
126
126
126
126
126
127
127
128
129
129
129
129
130
130
130
131
131
133
133
147
151
151
170
174
174
196
198
214
216
216
218
218
238
240
240
242
261
263
263
265
265
280
284
284
302
306
306
307
307
308
309
309
310
310
310
310
310
311
311
311
311
314
314
314
314
314
315
315
316
316
316
316
316
316
317
317
318
318
319
319
319
319
319
319
319
320
320
320
320
325
325
326
326
330
331
331
345
346
351
351
360
361
362
363
364
366
366
369
375
376
376
376
385
387
390
393
393
403
403
403
404
404
404
406
408
408
418
419
420
421
429
431
433
434
434
434
450
455
455
470
475
475
496
499
517
522
522
536
541
541
562
564
583
588
588
603
608
608
663
663
1126
1127
1128
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
82
82
82
82
82
87
90
90
91
92
92
93
93
95
95
96
96
96
97
97
97
97
97
98
108
108
109
111
113
114
114
116
116
116
116
120
124
124
124
124
124
124
124
125
125
126
126
126
126
126
127
127
127
127
127
127
128
129
129
129
130
130
130
130
132
132
134
148
152
152
171
175
175
193
195
197
197
199
199
215
217
217
219
239
241
243
262
264
264
266
281
285
285
303
307
307
308
309
309
310
310
311
312
312
312
312
314
314
316
316
317
317
317
317
317
317
318
318
319
319
319
319
321
321
327
332
332
335
335
337
345
346
347
352
352
353
353
361
363
364
365
367
370
374
376
377
377
385
385
386
388
388
389
391
391
394
394
404
405
405
405
405
409
409
419
421
422
430
432
432
434
435
435
443
443
451
456
456
471
476
476
497
500
518
523
523
537
542
542
563
565
584
589
589
604
609
609
1127
1128
1129
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
80
80
82
83
85
88
90
92
92
94
94
96
96
96
96
97
97
97
97
97
97
97
98
98
98
98
99
103
108
112
114
116
116
116
116
117
117
120
121
122
124
124
124
125
125
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
129
130
130
130
130
131
133
133
135
149
153
153
172
176
176
194
196
198
198
200
200
216
218
218
220
240
242
244
263
265
265
267
282
284
284
286
286
304
308
309
310
310
311
311
312
312
312
313
313
313
313
315
315
316
316
316
316
319
319
320
320
320
320
321
321
321
322
322
328
331
333
333
333
336
336
336
336
337
346
347
348
353
353
354
354
355
355
355
361
362
364
366
368
371
375
375
383
386
386
387
390
392
392
395
405
406
406
410
410
413
419
420
422
424
431
433
433
433
441
444
444
452
457
457
472
477
477
492
496
498
501
519
524
524
538
543
543
557
564
566
585
590
590
605
610
610
1128
1129
1130
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
83
84
85
90
90
92
93
96
96
96
97
97
97
97
98
98
98
98
99
99
99
99
99
100
103
107
108
108
111
113
113
114
115
115
118
118
121
121
121
122
124
124
124
124
124
124
124
124
124
124
125
125
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
132
134
136
150
154
154
173
175
175
177
177
195
197
199
199
201
201
217
219
221
243
245
264
266
268
283
285
285
287
305
309
309
310
311
311
311
311
311
311
312
312
313
314
314
314
314
315
316
316
316
316
319
319
319
319
320
320
320
320
321
321
321
329
330
331
334
334
334
335
335
336
336
337
337
345
347
348
349
354
354
356
356
356
356
361
362
364
364
365
367
369
372
384
384
388
390
390
393
393
394
394
396
406
406
411
411
414
414
414
414
419
420
422
422
423
425
429
432
434
442
442
453
458
458
473
478
478
497
499
502
520
525
525
539
544
544
558
562
565
567
586
591
591
606
611
611
1129
1130
1131
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
82
84
85
85
85
90
91
94
96
97
97
98
98
98
99
99
99
99
99
99
99
100
100
100
103
103
108
108
109
112
114
114
116
116
118
119
121
121
122
123
123
124
124
124
125
126
126
126
126
127
127
127
127
127
127
127
129
129
129
129
129
133
135
137
151
155
155
174
176
176
178
198
202
202
218
220
222
238
242
244
244
246
246
265
267
269
284
286
286
288
306
309
309
310
310
311
311
311
312
312
312
312
312
312
312
313
313
314
314
314
314
315
317
317
319
319
319
321
321
322
322
322
330
335
335
335
336
336
337
337
338
338
346
348
348
350
355
355
357
357
365
365
366
368
370
373
377
389
394
394
395
395
397
406
407
412
412
415
415
423
423
424
430
433
435
435
454
459
459
474
479
479
498
500
503
521
526
526
540
545
545
563
566
568
587
592
592
607
612
612
1130
1131
1132
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
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
82
82
90
90
91
92
92
92
92
95
96
96
99
99
99
100
100
100
108
108
109
109
110
110
110
110
113
114
114
115
115
117
117
119
120
120
120
120
121
121
121
121
122
123
123
124
124
124
124
124
124
124
124
125
126
126
127
127
128
128
128
128
130
130
130
130
130
136
138
152
154
154
156
156
175
177
177
179
199
203
203
221
223
239
243
245
245
247
247
268
270
285
287
289
305
306
307
307
307
307
307
310
310
311
311
312
312
312
312
313
313
313
313
313
314
314
314
314
314
315
315
316
322
323
323
331
331
331
336
336
336
336
336
337
337
338
345
347
351
356
356
357
366
366
369
371
374
377
386
390
394
395
395
396
396
408
413
413
415
424
424
431
434
435
436
444
455
460
460
475
480
480
499
501
504
522
527
527
541
546
546
564
567
569
588
593
593
608
613
613
1131
1132
1133
1
1
1
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
73
73
76
80
80
84
84
85
85
90
90
90
92
92
96
100
100
100
101
103
108
108
108
110
110
114
114
118
118
119
119
120
120
122
122
124
124
124
124
124
124
124
125
125
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
128
128
130
130
130
130
131
135
137
137
139
139
153
155
155
157
176
178
180
200
204
204
216
220
222
222
224
224
240
244
246
246
248
248
263
267
269
269
271
271
286
288
290
305
305
306
307
308
308
308
308
308
308
308
308
309
309
310
310
311
311
312
312
312
313
313
313
314
314
314
314
314
314
315
315
317
317
325
332
332
332
337
337
337
337
338
338
346
346
348
348
352
357
357
357
364
370
372
375
386
391
394
396
396
409
414
414
415
422
432
435
437
444
456
461
461
476
481
481
500
502
505
523
528
528
542
547
547
565
568
570
589
594
594
609
614
614
1132
1133
1134
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
68
73
73
74
77
79
79
81
81
82
82
85
90
97
99
101
101
101
102
108
115
118
118
119
119
120
121
121
124
124
124
124
125
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
128
128
128
128
128
128
128
128
129
129
130
130
130
130
132
136
138
138
140
140
154
156
156
158
175
177
179
179
181
201
205
205
217
221
223
223
225
225
245
249
249
264
268
270
270
272
272
289
291
306
306
307
307
308
309
309
309
309
309
309
309
309
310
310
310
310
311
311
312
312
312
312
312
312
312
312
312
312
313
314
314
314
314
314
315
316
316
317
326
326
333
336
336
338
338
338
338
339
339
346
348
349
349
353
358
358
361
371
373
376
377
377
390
392
394
395
397
397
405
410
415
415
419
433
435
435
436
436
438
438
457
462
462
477
482
482
501
503
503
506
506
524
529
529
543
548
548
566
569
569
571
571
590
595
595
610
615
615
1133
1134
1135
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
74
75
75
78
80
80
82
84
84
85
90
91
92
92
96
98
99
99
102
102
108
109
110
110
114
116
118
120
120
121
121
121
121
121
123
124
124
124
124
124
124
125
126
126
126
126
126
126
126
126
126
127
127
127
129
129
130
130
130
130
133
137
139
139
141
141
155
157
159
176
180
180
182
202
206
206
218
222
224
224
226
226
246
250
250
265
269
271
271
273
273
290
290
292
292
307
307
307
308
308
308
309
309
310
310
310
310
310
310
310
310
311
311
311
311
312
312
312
312
313
313
313
313
313
313
314
314
315
316
317
317
317
323
334
336
336
337
337
339
339
340
340
346
348
349
350
350
354
359
359
361
362
364
364
374
375
377
378
378
390
393
395
396
398
398
406
406
406
406
411
416
416
419
420
422
422
433
434
436
436
439
439
458
463
463
478
483
483
502
507
507
525
530
530
544
549
549
567
572
572
591
596
596
611
616
616
1134
1134
1136
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
73
75
79
81
81
82
82
83
85
90
92
92
93
93
94
95
99
101
101
102
103
103
108
110
110
111
111
117
118
118
118
119
121
121
121
121
121
121
121
121
121
122
123
124
124
124
126
126
126
126
126
126
127
127
127
127
127
130
130
130
130
138
142
142
156
158
160
177
181
181
183
203
207
207
223
227
227
247
251
251
270
274
274
284
288
291
291
293
293
305
305
308
308
308
308
308
309
309
309
311
311
311
311
312
312
312
312
313
313
313
313
314
314
314
314
314
314
314
314
314
315
316
317
318
318
323
332
335
338
338
338
340
340
349
350
355
360
360
361
365
365
375
376
376
378
394
394
396
397
399
399
407
407
412
417
417
419
423
423
434
434
435
440
440
459
464
464
479
484
503
508
508
526
531
531
545
550
550
568
573
573
592
597
597
612
617
662
1134
1135
1135
1137
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
73
73
75
75
75
80
82
84
84
84
85
92
94
94
94
95
95
96
99
99
100
102
104
104
110
112
112
118
120
121
122
122
122
123
124
124
124
124
124
124
124
124
124
124
126
126
126
126
126
126
126
126
126
127
127
127
127
139
143
143
159
161
182
182
184
204
208
208
224
228
228
248
252
252
271
275
275
285
289
292
292
294
294
303
306
306
307
308
309
309
309
309
309
310
310
310
310
311
312
312
312
313
313
314
314
314
314
315
315
315
315
315
315
316
317
318
319
330
332
336
339
339
340
341
341
350
356
361
361
362
364
366
366
366
376
379
384
390
395
395
397
397
400
400
407
413
418
420
422
424
424
424
436
441
441
442
460
465
465
480
485
504
509
509
527
532
532
546
551
569
574
574
593
598
598
613
618
663
1136
1136
1138
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
75
76
81
82
82
83
84
85
85
92
92
94
94
95
95
96
97
101
101
101
102
105
105
110
110
112
119
120
120
120
122
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
126
126
126
126
127
127
127
127
127
127
127
127
129
140
144
144
154
158
160
160
162
162
181
183
183
183
185
205
209
209
225
229
229
249
253
253
272
276
276
286
290
295
295
304
307
307
307
307
308
309
309
309
310
310
310
310
310
310
310
310
310
310
311
311
311
312
312
312
313
313
313
313
313
315
315
317
317
318
318
319
321
321
323
323
331
337
340
340
342
342
356
357
362
362
364
365
371
375
377
378
380
385
394
396
396
401
401
407
414
414
417
417
419
422
423
436
437
442
442
443
461
466
466
481
483
483
486
505
510
510
528
533
533
547
550
550
552
570
575
575
594
599
599
614
616
616
619
663
663
1137
1137
1139
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
75
76
77
84
84
84
84
85
85
85
85
86
94
94
94
94
95
95
96
97
98
99
99
102
102
104
104
106
106
112
112
112
120
120
120
120
121
121
121
121
121
121
121
121
122
122
122
123
123
124
124
124
124
124
124
124
124
124
124
124
124
124
125
126
126
126
127
127
127
127
128
128
130
141
145
145
155
159
161
161
163
163
182
184
184
186
206
210
210
226
230
230
250
254
254
273
277
277
291
296
296
304
305
305
305
305
305
308
308
308
308
309
310
310
310
310
310
311
311
311
311
311
311
312
312
312
312
314
315
315
315
315
317
319
319
324
324
331
331
338
339
339
341
343
343
346
346
357
357
357
358
363
363
365
365
366
366
376
378
378
381
386
386
395
395
397
397
397
402
402
415
415
415
415
418
420
423
423
424
424
436
438
443
443
444
444
462
467
467
482
484
487
506
511
511
529
534
534
548
551
553
571
576
576
595
600
600
615
617
620
663
664
664
1138
1138
1140
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
77
77
79
82
82
83
85
85
85
86
86
87
87
92
92
94
94
95
95
96
97
98
101
101
102
103
105
105
107
110
110
112
112
112
112
116
118
121
121
121
121
121
122
122
122
122
122
122
122
123
123
123
124
124
124
124
124
124
124
125
125
125
125
125
126
126
126
126
126
126
126
127
127
128
128
142
146
146
156
160
162
162
164
164
183
185
185
187
207
209
209
211
211
227
231
231
251
255
255
274
278
278
292
297
297
303
303
305
306
306
306
306
306
306
306
306
309
309
310
310
311
311
311
312
312
312
312
312
312
312
312
314
314
314
315
315
315
315
315
318
318
320
320
339
340
340
342
344
344
347
347
348
348
348
358
358
359
364
367
367
377
379
382
387
387
387
387
395
397
398
398
398
403
403
416
416
416
419
421
425
425
439
444
444
445
445
445
445
463
468
468
483
485
488
507
512
512
530
535
535
549
552
554
572
577
577
596
601
601
616
618
621
664
664
665
1139
1139
1141
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
84
86
86
87
87
88
88
94
94
94
94
95
95
96
97
98
99
99
101
102
104
106
106
108
112
112
112
112
113
113
116
120
120
120
120
121
121
121
121
122
122
122
122
122
122
123
124
124
124
124
126
126
126
126
126
126
126
126
127
127
127
127
127
127
128
128
143
147
147
161
165
165
186
186
188
208
210
210
212
228
232
232
252
256
256
275
277
277
279
279
293
298
298
301
303
304
304
306
307
307
307
307
307
307
307
307
308
308
310
310
310
310
312
312
312
312
313
313
316
321
321
326
330
339
340
341
341
345
345
349
349
349
349
357
358
358
358
358
359
360
365
365
366
366
366
368
368
378
378
378
380
383
385
387
387
388
388
395
397
398
399
399
399
404
404
406
415
416
416
416
416
417
417
420
422
423
424
424
424
426
426
436
436
440
443
445
445
445
445
446
446
464
469
469
484
486
489
508
513
513
531
536
536
550
553
555
573
578
578
597
602
602
617
619
622
664
664
665
666
1140
1140
1142
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
75
77
77
78
81
82
85
87
87
87
89
89
92
92
94
95
96
96
97
98
101
101
101
102
102
102
102
105
107
109
110
114
114
120
121
121
122
122
122
122
122
122
122
123
123
123
123
123
124
124
124
124
124
124
124
125
125
125
126
126
126
126
127
127
127
127
127
127
127
128
128
128
128
144
148
148
162
166
166
187
187
189
209
211
211
213
229
233
233
253
257
257
276
278
278
280
294
299
299
302
303
303
304
305
305
305
305
305
307
307
308
308
308
308
308
308
308
308
308
311
312
314
317
322
322
324
326
327
330
331
339
341
346
346
350
350
359
359
360
361
363
363
365
365
365
366
366
367
367
367
376
379
379
379
381
384
388
389
389
395
395
398
399
400
405
405
407
407
407
407
417
417
418
418
421
423
423
423
423
424
425
425
425
434
437
437
441
446
446
446
447
447
465
470
470
485
487
490
509
514
514
532
537
537
551
554
556
574
579
579
598
603
603
618
620
623
665
666
1141
1141
1143
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
77
77
77
78
79
79
82
86
87
87
90
90
94
94
94
96
96
97
98
99
99
102
103
103
106
108
110
114
115
120
120
120
120
121
121
121
121
121
121
121
121
122
123
123
123
123
124
124
124
124
124
124
124
124
124
125
125
125
126
126
126
126
126
126
127
127
128
145
147
147
149
149
163
167
167
188
190
210
212
214
230
234
234
254
256
256
258
258
277
279
279
281
295
300
300
303
303
303
304
304
304
305
306
306
306
306
306
306
306
306
308
308
308
308
308
309
309
309
309
312
312
312
312
312
312
312
313
318
323
323
324
327
331
331
332
332
332
339
340
342
347
347
350
358
358
360
360
362
364
367
367
368
368
368
377
377
380
382
382
385
385
387
387
389
396
396
397
397
397
399
401
406
406
408
408
416
416
418
418
419
422
424
425
426
426
426
435
435
442
445
445
447
447
447
466
471
471
486
488
491
510
515
515
533
538
538
552
555
557
575
580
580
599
604
604
619
621
624
664
664
666
1142
1142
1144
1
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
46
51
57
61
61
63
67
67
68
68
71
77
77
79
79
79
79
79
82
82
87
87
88
91
91
92
92
94
94
94
94
98
104
104
109
110
110
111
115
121
121
122
122
122
123
123
124
124
124
124
124
124
124
124
124
125
125
125
125
125
126
126
126
126
126
126
126
126
126
127
127
127
127
128
128
129
146
148
148
150
164
168
168
185
187
189
189
191
191
211
213
215
231
235
235
255
257
257
259
278
280
282
296
301
301
301
304
304
304
304
304
305
305
305
306
306
307
307
307
307
308
308
308
308
309
309
309
309
309
310
310
312
312
313
313
313
319
324
324
328
331
332
333
333
333
333
333
340
341
343
348
348
350
359
363
365
366
368
368
369
369
381
386
386
388
398
398
398
398
402
407
407
408
417
420
423
424
425
426
427
427
443
446
448
448
467
472
472
487
489
492
511
516
516
534
539
539
553
556
558
576
581
581
600
605
605
620
622
625
665
1143
1143
1145
1
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
46
51
51
61
62
64
68
68
70
70
71
77
77
79
80
87
87
88
88
89
89
89
89
92
92
94
94
94
94
95
95
99
104
104
108
110
110
110
112
112
115
115
116
121
121
122
122
123
123
123
123
124
124
124
124
124
124
124
124
124
124
124
126
126
126
126
126
127
127
127
127
127
127
127
128
130
147
149
149
151
165
169
169
186
188
190
190
192
192
214
216
232
234
234
236
236
256
258
258
260
279
281
283
297
302
302
302
303
305
305
305
305
305
305
306
306
306
308
308
308
308
308
308
308
309
309
309
309
309
310
310
310
310
312
312
312
312
314
314
320
324
324
325
325
327
329
333
333
333
334
334
334
339
341
342
344
349
349
358
360
364
366
367
367
369
379
382
387
387
387
387
389
399
399
403
408
408
408
416
418
421
424
425
425
426
437
444
445
445
447
449
449
468
473
473
488
490
493
512
517
517
535
540
540
554
557
559
577
582
582
601
606
606
621
623
626
664
666
1144
1144
1146
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
80
81
82
87
87
87
89
89
89
92
93
93
96
96
99
104
104
105
109
111
111
113
113
114
114
116
117
117
120
120
120
120
121
121
121
121
121
121
121
121
122
122
122
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
126
126
126
127
127
129
131
148
150
152
166
170
170
187
189
191
191
193
193
209
213
215
215
217
217
233
235
235
237
257
259
261
282
284
298
302
302
302
303
303
303
303
303
303
303
303
303
303
304
305
305
306
306
306
306
306
306
307
307
307
307
308
308
308
309
309
310
310
310
310
311
311
311
311
312
312
312
312
313
313
313
318
321
325
325
326
326
330
331
334
334
335
335
335
340
342
342
345
350
350
358
358
359
365
367
370
379
383
387
387
388
388
388
388
399
404
409
409
416
416
417
425
427
437
445
445
445
446
446
450
450
469
474
474
491
494
513
518
518
536
541
541
558
560
578
583
583
602
607
607
624
627
664
665
1145
1147
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
79
81
82
87
90
94
94
96
97
99
99
104
105
106
110
110
112
112
114
114
114
117
117
117
117
117
120
120
120
120
121
122
122
122
122
122
122
123
124
124
124
124
124
124
124
124
124
124
124
125
125
126
126
126
126
130
132
149
151
153
167
171
171
190
194
194
210
214
216
216
218
218
234
236
236
238
258
260
262
283
283
285
285
299
301
301
302
303
303
303
304
304
304
304
304
304
304
304
304
304
304
304
304
305
305
305
305
305
305
306
306
306
307
307
307
307
307
307
308
308
308
310
311
311
311
311
313
314
314
314
319
319
322
327
327
331
333
333
335
335
339
341
346
351
351
357
358
359
360
366
368
369
371
384
389
389
389
389
399
405
410
410
415
416
417
418
426
427
428
446
447
447
451
451
470
475
475
492
495
514
519
519
537
542
542
559
561
579
584
584
603
608
608
621
625
625
628
666
1146
1148
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
79
79
87
88
89
89
91
92
92
95
95
97
104
104
105
106
106
106
106
111
114
114
114
115
115
115
117
118
120
120
120
120
120
121
121
121
121
122
122
122
122
122
123
124
124
125
125
125
126
126
126
126
126
126
127
127
127
129
131
131
133
133
152
154
168
172
172
191
195
195
211
215
217
217
219
219
235
237
239
261
263
277
281
284
284
286
286
300
302
302
303
304
304
304
305
305
305
305
305
305
305
305
305
305
306
306
306
306
306
306
306
306
307
307
308
308
308
309
309
310
311
312
314
315
315
323
328
328
331
334
340
340
342
342
347
352
352
358
360
361
367
369
369
372
385
385
390
390
390
390
406
411
416
418
419
427
427
429
443
447
448
448
452
452
471
476
476
493
496
515
520
520
538
543
543
560
562
580
585
585
604
609
609
626
626
629
667
1147
1149
1
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
81
81
82
87
89
89
90
90
92
92
93
93
93
93
96
96
97
97
98
99
104
104
104
106
106
112
116
116
118
119
120
121
121
121
122
122
122
122
122
122
122
123
123
123
123
124
124
124
124
124
125
126
126
126
126
126
126
126
127
127
130
132
132
134
134
147
151
153
153
155
155
169
173
173
192
196
196
216
220
220
236
238
240
256
260
262
262
264
264
278
282
285
285
287
287
301
301
303
303
304
305
305
305
306
306
306
306
306
306
306
306
306
306
306
306
307
307
307
307
307
307
307
308
308
308
309
309
309
310
310
311
314
314
324
325
329
329
333
333
335
340
342
343
343
348
349
353
353
358
359
361
368
370
373
386
386
391
391
391
407
410
410
412
416
417
419
421
428
430
444
448
449
453
453
472
477
488
492
494
497
516
521
521
539
544
554
561
563
581
586
586
605
610
627
627
630
664
1143
1148
1150
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
79
82
89
90
90
91
91
92
93
93
93
93
93
94
94
96
96
96
97
97
98
99
99
104
113
117
117
119
120
120
120
120
121
121
121
121
121
121
121
121
122
122
122
122
123
123
123
124
124
124
124
124
124
124
124
125
125
125
126
126
126
127
131
133
133
135
135
148
152
154
154
156
156
170
172
172
174
174
193
197
197
217
221
221
239
241
257
261
263
263
265
265
279
283
288
288
301
301
301
302
302
304
304
304
304
305
305
306
306
306
307
307
307
308
308
308
308
308
308
308
308
310
311
311
311
325
325
330
330
333
333
334
334
340
342
343
344
344
349
350
350
350
354
354
358
359
361
361
362
369
369
371
374
377
386
386
387
390
390
392
392
392
398
407
408
411
413
416
417
419
419
420
422
426
427
427
429
431
435
444
444
448
448
448
449
450
454
454
473
478
493
495
498
517
522
522
540
543
543
545
555
559
562
564
582
587
587
606
611
628
628
631
663
664
665
1144
1146
1149
1151
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
81
81
82
89
89
90
90
91
94
94
94
95
95
96
97
98
98
99
99
99
99
99
104
105
106
106
114
115
115
117
117
117
118
118
121
121
121
121
121
121
122
122
122
122
122
123
123
123
123
124
124
124
124
124
124
124
124
125
125
126
132
136
136
149
153
155
155
157
157
171
173
173
175
194
198
198
218
222
222
234
238
240
240
242
242
258
262
264
264
266
266
284
289
289
299
302
302
302
303
303
303
303
303
303
306
306
307
307
308
308
308
309
309
311
311
311
311
312
312
315
326
331
331
335
335
335
343
344
350
351
351
355
355
362
362
363
367
370
370
372
375
378
388
391
391
393
393
393
399
399
399
399
408
408
408
409
412
414
420
420
421
425
427
428
428
430
432
436
448
449
449
450
451
455
455
474
476
476
479
494
496
499
518
523
523
541
544
546
560
563
565
583
588
588
607
609
609
612
629
629
632
664
664
666
1147
1150
1152
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
79
79
82
91
91
91
95
95
95
96
96
96
96
97
97
99
99
99
100
104
106
106
107
107
114
115
116
119
119
119
120
120
120
120
121
121
121
121
121
121
122
122
122
122
122
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
125
127
133
137
137
154
158
158
172
174
174
176
195
199
199
219
223
223
235
239
241
241
243
243
263
267
267
285
290
290
300
302
302
303
303
303
304
304
304
304
304
304
304
304
304
304
304
304
306
306
307
308
308
308
308
309
311
311
312
315
327
327
332
332
335
336
336
344
350
351
351
351
351
351
352
356
356
363
363
368
368
373
376
379
379
389
390
392
392
394
394
400
400
409
409
410
413
415
421
421
426
426
428
431
433
437
437
444
449
450
450
451
456
456
475
477
480
495
497
500
519
524
524
542
545
547
561
564
566
584
589
589
608
610
613
630
630
633
665
665
667
667
1148
1151
1153
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
73
73
74
76
81
81
82
89
89
91
96
96
96
98
98
100
100
101
106
108
108
116
116
117
117
119
119
119
120
120
120
120
120
120
120
120
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
124
124
124
124
124
124
124
125
134
138
138
155
159
159
173
175
177
196
200
200
220
224
224
236
240
242
242
244
244
264
268
268
286
291
291
300
301
301
301
301
301
302
302
303
303
304
304
304
304
304
304
305
305
305
305
305
305
305
305
305
305
305
306
306
306
306
308
308
309
310
313
325
328
328
333
333
337
352
352
352
353
357
361
368
372
374
377
380
380
380
380
390
390
395
395
400
408
409
409
409
409
410
411
414
416
419
429
432
434
438
438
438
438
450
452
457
457
476
478
481
496
498
501
520
525
525
543
546
548
562
565
567
585
590
590
609
611
614
631
631
634
664
667
667
668
668
1149
1152
1154
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
68
73
73
73
74
75
77
79
79
81
82
91
91
91
93
93
93
97
99
99
99
101
101
102
106
106
108
117
117
117
119
119
119
120
120
121
121
121
122
122
122
122
122
122
122
122
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
125
126
126
126
126
135
139
139
156
160
160
172
174
176
176
178
197
201
201
221
225
225
241
245
245
265
269
269
287
292
292
299
299
301
301
301
302
302
302
302
302
302
302
302
303
303
304
304
305
305
305
306
306
306
306
306
306
306
306
306
306
309
310
311
315
315
319
323
325
326
328
328
329
334
334
336
336
338
340
340
351
351
353
353
353
358
358
370
373
375
378
378
380
380
381
381
386
390
391
391
396
396
400
410
410
411
412
415
416
417
428
430
433
433
435
435
436
438
438
439
439
448
451
453
458
458
477
479
482
497
499
499
502
502
521
526
526
544
547
549
563
566
566
568
568
586
591
591
610
612
615
632
632
635
668
669
669
1150
1153
1155
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
74
75
75
76
78
81
81
81
82
82
82
82
89
89
90
91
93
93
93
94
94
96
98
99
99
100
102
108
108
108
117
117
117
117
118
119
120
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
123
124
124
124
124
125
125
126
126
126
126
136
140
140
157
161
161
173
177
177
179
198
202
202
222
226
226
242
246
246
266
270
270
288
293
293
297
300
300
301
301
302
302
302
303
303
303
303
303
303
304
304
304
305
305
305
306
306
306
307
307
307
307
307
308
308
308
309
309
311
312
316
316
320
324
326
327
330
335
335
337
337
339
341
341
342
342
342
352
354
356
356
358
359
359
361
361
370
374
376
379
381
382
382
386
391
392
392
397
397
409
409
411
411
413
416
416
417
418
419
419
428
431
436
436
439
440
440
444
448
449
454
459
459
478
480
483
498
503
503
522
527
527
545
548
550
564
569
569
587
592
592
611
613
616
633
636
669
1151
1154
1156
1
1
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
71
73
75
75
77
77
79
79
79
79
82
83
83
90
91
91
91
94
95
99
101
101
101
102
103
106
106
108
108
108
108
115
117
117
119
119
120
120
120
120
120
120
120
120
121
121
121
121
121
121
121
122
122
122
122
122
122
122
123
123
123
123
123
123
124
124
124
124
137
141
141
158
162
162
174
178
178
180
199
201
201
203
203
223
227
227
243
247
247
267
271
271
289
294
294
297
297
298
298
299
300
301
301
302
302
302
302
303
303
303
303
304
304
304
304
304
304
304
305
305
305
305
305
306
306
307
307
307
310
310
312
313
325
325
325
327
328
331
336
336
336
338
338
343
343
343
343
351
353
355
357
358
360
362
362
375
377
380
380
380
382
390
392
393
393
398
398
410
414
416
417
419
420
420
432
437
437
438
438
440
444
449
450
455
460
460
479
481
484
499
504
504
523
528
528
546
549
551
565
570
570
588
593
593
612
614
617
632
634
635
637
1152
1155
1157
1
1
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
73
73
75
75
75
76
78
78
80
80
84
84
89
89
91
91
91
91
95
96
99
99
102
102
104
108
108
108
108
109
109
117
117
119
119
120
120
120
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
123
123
123
123
124
124
124
124
124
124
124
138
142
142
159
163
163
179
179
181
200
202
202
204
224
228
228
244
248
248
268
270
270
272
272
290
295
295
298
298
299
299
299
299
300
300
300
300
301
301
301
301
301
302
302
302
302
302
302
303
303
303
303
304
304
304
305
305
306
307
307
308
309
313
314
326
326
326
326
326
328
329
332
336
337
337
344
344
351
351
352
356
358
359
361
361
363
363
363
370
370
376
378
381
381
386
391
393
393
394
399
399
399
409
411
417
418
419
420
421
421
421
428
428
433
438
438
439
448
450
451
456
461
461
480
482
485
500
505
505
524
529
529
547
550
552
566
571
571
589
594
594
613
615
618
635
636
638
664
664
667
1153
1156
1157
1158
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
75
76
77
79
79
79
81
81
84
91
91
91
91
92
92
96
97
101
101
101
102
103
103
105
105
106
110
110
117
117
119
119
120
120
120
120
120
120
120
120
121
121
121
121
122
122
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
125
139
141
141
143
143
160
164
164
178
180
180
180
182
201
203
203
205
225
227
227
229
229
245
249
249
269
271
271
273
291
295
295
296
296
297
299
299
300
300
300
300
300
301
301
301
301
302
302
302
302
302
303
303
304
304
304
304
305
307
307
307
307
309
310
314
314
315
315
316
320
326
326
327
327
327
328
329
330
333
336
337
338
338
344
350
351
352
353
357
359
361
362
362
368
371
371
377
379
379
380
380
382
382
382
390
392
395
400
400
400
400
400
400
409
409
410
419
419
420
421
426
429
429
434
438
438
439
439
440
449
451
457
462
462
481
483
486
501
506
506
525
530
530
551
553
567
572
572
590
595
595
614
616
619
636
637
639
665
667
668
1154
1156
1158
1159
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
75
76
77
78
79
82
82
84
84
89
93
93
98
99
99
102
102
104
104
106
106
110
111
118
119
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
123
123
123
124
124
124
124
124
124
124
125
126
126
140
142
142
144
161
165
165
179
181
181
183
202
204
206
226
228
228
230
246
250
250
270
272
272
274
292
296
296
297
297
298
300
300
300
300
300
301
301
301
302
302
302
302
302
302
302
302
302
303
303
303
303
303
303
304
304
304
304
305
305
305
307
307
311
316
316
316
327
328
328
328
328
330
334
337
338
339
339
344
351
353
354
358
360
362
362
363
363
363
369
369
378
380
380
381
381
383
383
391
391
393
393
396
401
401
401
401
408
409
410
411
420
420
420
421
421
422
427
427
435
438
438
439
439
440
440
449
449
451
451
451
452
458
463
463
484
487
502
507
507
526
531
531
552
554
568
573
573
591
596
596
617
620
637
638
640
668
669
1155
1159
1160
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
77
77
79
79
79
83
83
84
85
93
94
99
101
101
102
103
105
105
106
106
107
107
111
117
117
120
120
120
120
120
120
120
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
124
124
125
126
127
141
143
143
145
162
166
166
180
182
182
184
203
205
207
227
229
229
231
247
251
251
271
273
275
293
295
297
297
297
298
299
299
300
300
301
302
302
302
302
302
303
303
303
303
303
303
303
303
304
304
304
304
304
304
305
305
312
317
317
326
326
328
328
335
336
338
339
340
340
351
352
354
359
361
364
364
364
379
382
382
384
384
391
393
394
394
397
401
402
402
409
411
412
414
421
422
422
423
436
440
440
441
441
452
452
453
459
464
464
485
488
503
508
508
527
532
532
553
555
569
574
574
592
597
597
614
618
618
621
638
639
641
669
1156
1160
1161
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
86
86
86
86
89
89
90
91
94
99
99
101
102
104
106
108
108
111
111
112
116
116
117
117
117
118
118
118
120
120
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
124
124
124
124
124
124
124
124
124
126
128
142
144
146
163
165
165
167
167
183
183
185
206
208
228
230
232
248
252
252
272
274
276
294
296
298
298
299
299
299
299
300
300
300
300
300
301
301
302
303
303
303
304
304
304
304
304
304
304
305
305
305
313
316
316
318
318
327
328
330
336
337
339
339
341
341
351
352
354
354
355
360
362
362
363
363
363
365
365
365
371
378
380
383
383
385
385
391
393
394
395
395
398
401
403
403
409
410
412
415
419
420
421
421
421
422
423
423
424
429
436
437
441
441
442
442
449
451
453
453
460
465
465
486
489
504
509
509
528
533
533
547
554
556
570
575
575
593
598
598
619
619
622
639
640
642
664
669
1157
1161
1162
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
75
77
77
78
79
81
84
84
84
85
85
86
86
89
89
90
90
91
91
92
94
94
95
101
101
101
102
102
102
102
105
109
109
110
110
112
113
113
116
117
117
117
117
118
118
118
119
119
120
120
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
121
121
121
122
122
122
122
122
122
123
123
123
123
124
127
129
143
145
147
164
166
166
168
184
184
186
201
205
207
207
209
209
229
231
233
249
253
253
275
277
295
295
295
296
296
297
298
299
299
300
300
300
300
301
301
301
302
302
303
303
303
304
304
304
304
304
305
305
305
305
305
305
305
305
310
314
317
317
319
319
326
326
328
330
336
337
338
342
342
355
355
356
361
362
362
362
363
363
364
364
364
366
371
379
381
384
386
386
391
391
394
395
399
404
404
409
410
412
412
413
420
420
420
420
421
422
422
422
423
425
429
437
438
442
443
443
452
461
466
466
481
485
487
490
505
510
510
529
534
534
548
552
555
557
571
576
576
594
599
599
620
620
623
640
641
643
665
667
1158
1162
1163
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
77
77
77
78
79
79
82
84
86
86
89
89
89
90
90
91
91
92
92
93
93
93
93
95
96
96
99
99
102
103
103
106
106
110
110
110
113
113
113
113
113
115
116
117
117
117
118
118
118
118
119
119
119
119
119
120
120
120
120
121
121
121
121
121
122
122
122
122
122
122
122
122
123
123
123
124
124
126
128
128
130
130
146
148
165
167
167
169
185
187
202
206
208
208
210
210
232
234
250
252
252
254
254
276
276
278
278
296
296
296
297
297
297
297
297
297
297
297
298
298
298
299
300
300
300
300
301
301
301
301
302
302
302
302
303
303
303
303
304
304
304
305
305
305
305
306
306
306
309
309
309
309
311
311
315
320
320
321
326
326
327
327
337
337
338
339
339
343
343
356
356
364
364
365
365
365
367
379
379
382
383
383
385
387
387
392
392
393
393
393
395
400
405
413
413
414
421
422
423
423
423
424
426
437
437
439
441
441
441
443
444
444
449
453
462
467
467
486
488
491
506
511
511
530
535
535
553
556
558
572
577
577
595
600
600
621
621
624
641
642
644
667
668
1159
1163
1164
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
69
69
77
77
79
79
79
79
79
83
84
85
86
86
87
87
89
89
90
91
92
92
93
93
93
93
94
94
96
96
96
96
96
104
104
107
110
110
110
111
111
111
113
114
115
117
117
118
118
119
119
119
119
120
120
120
121
121
122
122
122
122
122
122
122
122
122
123
123
123
123
124
124
124
127
129
129
131
131
141
145
147
147
149
149
166
168
170
182
184
186
186
188
188
203
207
209
209
211
211
227
231
233
233
235
235
251
253
253
255
270
274
277
277
279
279
295
297
297
297
297
297
298
298
298
298
298
298
298
298
298
298
299
300
300
301
301
301
302
302
302
302
302
303
303
304
304
305
305
306
307
307
308
308
310
310
316
320
321
321
321
322
328
328
337
339
339
340
340
343
344
344
354
363
365
365
366
366
368
383
384
384
386
388
388
394
394
394
394
401
404
404
406
414
414
421
422
423
424
424
425
427
440
441
442
442
444
445
445
449
450
451
463
468
468
487
489
492
507
512
512
531
536
536
554
557
559
573
578
578
596
601
601
622
622
625
643
645
668
669
1160
1164
1165
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
64
65
65
69
69
70
77
77
79
80
84
84
86
86
87
87
88
88
89
92
93
93
93
93
93
94
94
94
96
97
99
104
108
112
112
114
115
115
117
117
117
119
120
120
120
120
120
120
120
120
121
121
121
122
122
122
122
122
122
123
123
124
124
124
124
124
124
128
130
130
132
132
142
146
148
148
150
150
165
167
169
169
171
183
185
187
187
189
189
208
212
212
228
232
234
234
236
236
252
254
254
256
271
275
278
278
280
280
295
295
295
296
297
298
298
298
298
298
298
299
299
299
299
299
299
299
299
299
299
299
300
301
302
302
302
302
303
305
305
305
307
308
308
309
309
309
309
311
311
317
317
320
321
322
322
322
323
329
329
337
339
340
340
341
341
344
344
344
345
345
351
364
364
366
369
383
384
385
385
389
389
395
395
402
405
407
412
422
422
423
426
426
428
428
437
441
442
443
443
446
446
450
451
451
452
464
469
488
490
493
508
513
513
532
537
555
558
560
574
579
579
597
602
623
623
626
644
646
668
669
670
1161
1165
1166
1
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
70
71
71
80
81
85
86
88
88
89
89
93
94
94
97
98
99
104
104
109
113
113
115
116
117
117
118
118
118
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
123
123
123
123
123
123
129
133
133
143
147
149
149
151
151
166
170
170
172
184
186
188
188
190
190
209
213
213
229
233
235
235
237
237
253
255
257
272
276
281
281
293
296
296
296
297
297
297
297
298
298
299
299
299
300
300
300
300
300
300
300
300
300
300
300
300
300
300
301
302
303
303
303
304
305
305
308
309
309
309
309
309
309
310
310
310
317
318
321
322
323
323
323
324
330
340
341
341
345
345
346
346
351
352
354
354
361
365
367
369
370
383
385
390
390
395
400
403
406
408
409
424
427
429
429
442
443
447
447
452
452
453
465
470
489
491
494
509
514
514
533
536
536
538
556
559
559
561
561
575
580
580
598
603
624
624
627
645
647
668
669
670
671
1162
1166
1167
1
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
67
67
69
71
79
81
82
86
86
86
88
90
90
94
96
98
99
99
99
104
105
110
113
113
113
114
114
117
118
118
119
120
120
120
121
121
121
121
121
122
122
122
122
122
122
122
122
122
123
124
124
124
124
124
124
130
134
134
148
152
152
167
171
171
173
187
191
191
210
214
214
234
238
238
254
256
258
277
282
282
294
295
295
297
297
297
298
298
298
298
298
298
298
298
298
299
299
300
300
300
300
301
301
301
301
301
301
301
301
301
301
301
302
304
305
309
310
311
311
311
319
321
321
323
324
324
324
325
329
329
331
341
342
344
345
345
345
345
346
347
347
351
355
355
366
366
368
370
371
379
383
384
386
391
391
395
401
401
401
404
407
409
409
410
412
412
424
425
428
430
430
441
443
444
448
448
452
453
453
466
468
468
471
490
492
492
495
495
510
515
515
534
537
539
557
562
562
576
581
581
599
601
601
604
625
625
628
641
646
648
668
669
669
670
671
1163
1167
1168
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
69
69
71
71
71
77
79
79
87
88
88
88
89
89
91
91
93
96
96
104
104
105
106
106
106
106
110
111
115
115
115
116
116
117
117
117
117
117
118
118
118
119
119
119
120
120
120
120
121
121
121
121
121
121
121
121
121
122
122
122
122
124
131
135
135
149
153
153
172
172
174
188
192
192
211
215
215
235
239
239
257
259
278
283
283
295
295
295
296
296
298
298
298
298
298
299
299
299
299
299
300
300
300
300
301
301
301
302
302
302
302
302
302
302
303
303
305
305
306
310
311
312
312
320
324
325
325
325
326
330
330
332
343
346
346
347
348
348
352
354
356
356
356
366
367
369
371
371
372
379
384
385
387
392
392
402
402
405
408
409
410
413
413
424
426
429
429
431
431
437
441
442
444
449
449
452
453
453
453
454
467
469
472
491
496
496
511
516
516
535
538
540
558
563
563
577
582
582
600
602
605
626
629
642
644
647
649
668
669
670
670
671
1164
1168
1169
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
71
72
81
81
82
86
86
88
88
90
90
92
98
98
99
99
104
104
104
106
106
112
113
113
113
113
115
116
116
116
117
117
117
117
118
118
118
118
118
118
119
119
119
119
119
119
119
119
120
120
120
121
122
123
123
123
124
132
136
136
150
154
154
171
173
173
173
175
189
193
193
212
216
216
236
240
240
252
256
258
258
260
260
279
284
284
291
293
293
295
295
296
296
296
297
297
298
300
300
300
300
300
300
300
300
301
301
302
302
302
303
303
303
303
303
303
303
303
303
306
306
306
307
321
325
326
326
326
329
331
331
337
337
344
345
345
347
347
349
354
355
368
370
372
372
372
372
373
383
385
386
388
393
393
401
402
402
402
402
403
406
409
410
411
412
414
414
414
427
430
430
430
430
432
432
437
442
443
445
450
450
454
454
455
468
470
473
492
497
497
512
517
517
536
539
541
559
564
564
578
583
583
601
603
606
625
627
628
630
645
648
650
668
670
671
671
1165
1169
1170
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
70
70
71
72
73
79
79
82
88
88
88
89
91
91
93
96
96
99
104
113
115
115
115
116
116
116
116
117
117
117
117
117
118
118
118
118
119
119
119
119
119
119
119
119
119
120
120
120
120
120
120
120
121
121
121
121
121
121
122
123
123
123
124
124
133
137
137
151
155
155
172
174
174
176
190
194
194
213
217
217
237
241
241
253
257
259
259
261
261
280
285
285
291
292
293
293
294
294
295
295
295
295
296
296
296
296
297
297
298
298
298
298
300
300
300
300
301
301
301
301
302
303
303
303
303
303
305
305
305
307
307
308
308
311
322
325
327
327
329
338
338
339
339
339
345
346
350
355
355
356
356
366
366
369
370
371
372
372
373
373
374
379
384
386
386
389
394
394
394
403
403
404
407
410
412
412
413
424
424
428
428
430
430
431
431
433
433
441
443
444
446
451
451
455
455
469
471
474
493
498
498
513
518
518
537
540
542
560
565
565
579
584
584
602
604
607
628
629
631
646
649
651
669
671
672
1166
1170
1171
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
73
73
81
81
82
86
86
88
90
92
94
98
98
99
104
105
106
106
113
113
113
113
114
115
116
116
117
117
117
117
117
117
117
117
118
118
118
118
118
119
119
119
119
119
119
120
120
120
120
121
121
121
121
121
122
124
124
124
134
138
138
152
156
156
173
175
175
177
191
195
195
214
218
218
238
242
242
254
258
260
260
262
262
281
286
286
292
293
293
294
294
294
294
294
295
295
295
295
296
296
296
296
296
296
297
297
297
297
298
298
299
299
300
300
300
303
303
304
309
309
312
312
321
323
326
328
328
329
330
340
340
340
340
345
346
347
348
348
351
357
357
364
367
367
370
372
372
373
374
374
375
375
383
385
390
395
395
395
395
395
395
402
402
404
404
408
411
413
413
413
414
414
422
425
425
429
431
432
432
434
434
442
444
447
452
452
453
470
472
475
494
499
499
514
519
519
538
541
543
561
566
566
580
585
585
603
605
608
629
630
632
647
650
652
670
672
1167
1171
1172
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
79
79
82
88
88
88
90
91
91
93
95
96
96
99
104
106
106
107
107
114
114
115
115
116
116
116
117
117
117
117
117
117
117
117
117
118
118
118
118
119
119
119
119
119
119
119
119
119
119
120
120
120
120
121
121
121
121
121
122
122
122
123
123
124
124
135
139
139
153
157
157
176
176
178
192
196
196
215
219
219
239
243
243
259
263
263
282
287
287
289
290
291
293
293
293
294
294
295
295
295
295
295
296
296
296
296
296
296
297
297
297
297
297
298
298
298
298
298
300
300
303
303
303
305
305
310
310
312
317
317
321
324
326
329
329
330
331
341
341
345
345
346
347
349
352
355
356
356
356
358
358
365
365
371
372
372
374
376
376
384
384
386
386
391
396
396
396
396
403
412
414
415
415
423
423
430
430
430
432
435
435
442
442
444
444
444
445
448
452
453
453
471
473
476
495
500
500
515
520
520
539
542
544
562
567
567
581
586
586
604
606
609
630
631
633
648
651
651
653
653
670
1168
1172
1173
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
71
73
73
73
74
81
81
82
86
86
88
88
88
88
89
90
90
91
91
92
94
96
98
98
99
106
108
108
113
113
115
115
116
116
116
117
117
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
119
120
120
120
120
120
120
120
120
120
120
121
121
121
121
121
121
121
122
123
123
123
123
123
123
123
136
138
138
140
140
154
158
158
177
177
179
193
197
197
216
220
220
240
244
244
260
264
264
283
288
288
290
291
292
293
293
293
293
294
294
294
294
295
295
295
295
296
296
296
296
296
296
297
297
298
298
298
298
298
298
298
298
298
298
298
298
299
299
301
301
303
303
306
311
311
318
318
318
318
318
325
329
330
330
331
332
341
344
345
346
347
348
350
353
355
355
355
356
357
357
357
372
373
377
377
384
386
387
387
392
396
397
397
402
404
413
413
414
414
414
415
416
416
431
431
436
436
445
445
446
449
452
453
453
453
454
454
472
474
477
496
501
501
516
521
521
540
543
545
563
568
568
582
587
587
605
607
610
631
632
634
649
654
654
672
1169
1173
1174
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
72
73
73
73
74
74
75
75
79
79
81
82
88
88
88
88
89
89
89
89
89
90
91
92
92
93
93
93
95
95
96
96
97
97
98
99
106
106
108
113
113
113
113
115
115
115
116
116
116
117
117
118
118
118
118
118
119
119
119
119
119
119
119
120
120
121
121
121
122
122
122
122
122
122
124
124
124
124
124
124
124
137
139
139
141
155
159
159
178
180
194
198
198
217
219
219
221
221
241
245
245
261
265
265
284
288
288
289
289
291
292
293
293
293
294
294
294
294
295
295
296
296
296
296
296
296
296
297
297
297
297
297
297
297
298
298
298
298
298
298
299
299
299
299
299
299
307
312
312
312
312
312
316
317
318
318
319
319
319
321
326
330
331
331
332
332
341
345
347
348
349
351
354
357
358
358
358
367
372
372
373
374
378
378
384
386
387
388
388
393
396
398
398
402
402
403
413
413
413
414
414
415
415
415
416
425
430
430
432
432
437
437
442
444
446
446
450
452
454
454
455
455
473
475
478
497
502
502
517
522
522
544
546
564
569
569
583
588
588
606
608
611
632
633
635
650
655
655
672
1170
1174
1175
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
75
75
75
75
75
75
81
81
81
82
82
82
82
86
89
90
90
90
90
91
92
93
93
93
94
94
94
96
96
98
98
98
98
98
99
99
99
99
108
108
108
115
115
116
116
117
117
117
117
117
118
118
118
118
118
119
120
120
120
120
120
120
120
120
120
121
121
121
121
121
121
122
122
122
122
122
138
140
140
142
156
160
160
175
177
179
179
181
181
195
199
199
218
220
220
222
242
246
246
262
266
266
285
289
289
289
290
290
292
292
293
293
293
293
294
294
294
294
294
295
295
295
295
296
296
296
296
296
296
297
297
297
297
297
298
298
298
298
298
299
299
300
300
300
300
302
302
302
302
306
308
313
313
313
313
317
318
319
320
320
320
327
329
331
332
332
345
346
348
350
352
355
356
358
359
359
367
372
372
373
373
374
379
379
384
384
387
388
394
399
399
401
402
403
404
408
415
415
416
416
416
417
425
430
430
431
431
433
438
438
445
451
453
453
455
455
455
456
456
476
479
498
503
503
518
523
523
545
547
565
570
570
584
589
589
609
612
633
634
636
651
656
656
1171
1175
1176
1
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
72
73
73
74
74
75
76
76
76
79
79
82
83
83
89
90
90
91
91
91
92
93
94
94
95
96
96
97
97
99
99
99
100
100
106
106
108
108
108
108
113
114
114
115
116
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
120
120
121
121
122
122
123
123
123
123
123
124
139
141
143
157
159
159
161
161
176
178
180
180
182
182
196
198
198
200
200
219
221
221
223
243
245
245
247
247
263
267
267
286
287
290
290
290
291
291
294
294
295
295
295
296
296
296
296
296
297
298
298
298
298
298
298
299
299
299
299
299
300
300
301
301
301
301
301
303
303
307
307
309
314
314
318
318
318
319
320
321
328
330
330
332
332
333
333
345
346
348
348
349
351
353
356
357
357
374
374
375
380
380
385
385
386
386
386
388
395
400
400
402
404
405
409
413
414
416
416
417
417
418
432
432
434
439
439
442
446
452
453
454
457
457
477
480
499
504
504
519
524
524
546
548
566
571
571
585
590
590
606
610
610
613
634
635
637
652
657
657
1172
1176
1177
1
1
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
75
75
76
77
77
77
84
84
86
86
89
91
92
93
94
96
100
100
101
101
108
108
108
108
109
109
113
113
114
115
115
116
116
116
116
117
117
117
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
119
119
119
119
120
120
120
121
121
121
122
122
122
122
123
123
123
124
124
124
124
140
142
144
158
160
160
162
177
179
181
181
183
183
197
199
199
201
220
222
224
244
246
246
248
264
266
266
268
268
287
288
291
291
291
291
291
292
292
293
293
294
294
295
295
296
296
296
296
296
296
297
298
298
298
298
298
298
299
299
299
299
299
299
300
300
301
301
301
302
302
302
302
304
304
310
315
315
319
319
320
322
329
330
332
333
333
334
334
349
349
350
352
354
357
367
367
370
375
375
376
381
381
387
387
387
387
395
396
401
401
402
403
405
414
415
415
417
419
425
425
428
433
433
435
440
440
442
443
444
453
454
454
455
455
458
458
478
481
500
505
505
520
525
525
540
547
549
567
572
572
586
591
591
611
611
614
636
638
653
658
658
1173
1177
1178
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
74
75
76
76
77
78
78
78
79
84
86
91
91
92
93
94
96
97
101
101
101
106
110
110
113
113
113
113
114
115
116
116
117
117
117
117
117
117
117
117
118
118
118
118
119
119
119
119
119
119
119
119
119
120
120
120
121
121
121
123
123
124
124
124
125
125
143
145
159
161
161
163
180
184
184
198
200
200
202
221
223
225
245
247
247
249
265
267
267
269
288
289
291
291
291
292
292
292
292
292
292
292
293
293
293
293
294
294
294
295
295
296
296
296
297
297
297
298
298
298
298
299
300
301
301
301
302
302
302
302
303
303
303
303
311
313
316
316
318
318
320
320
321
323
330
330
332
333
334
334
335
335
350
350
353
355
358
359
365
368
368
371
376
377
382
382
388
388
396
396
396
396
397
402
402
403
405
405
406
415
418
420
423
426
426
429
434
436
441
441
443
444
444
445
454
456
456
459
459
473
477
479
482
501
506
506
521
526
526
541
545
548
550
568
573
573
587
592
592
612
612
615
637
639
654
659
659
1174
1178
1179
5
5
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
65
65
73
75
75
75
79
79
79
84
84
86
90
90
90
92
93
93
94
96
98
101
101
102
102
110
111
113
115
116
116
117
117
117
117
117
117
118
118
119
119
119
119
119
119
119
119
120
120
120
121
121
122
126
126
138
142
144
144
146
146
160
162
164
181
185
185
199
201
203
224
226
246
248
250
266
268
268
270
289
289
290
290
291
291
292
292
292
293
293
293
293
293
293
293
294
294
294
294
294
295
295
295
296
296
296
297
297
298
298
299
301
301
301
301
302
302
303
304
304
304
305
305
312
313
317
317
318
318
319
319
321
322
331
333
334
336
336
340
348
356
359
359
366
366
371
371
375
375
377
378
383
383
388
397
397
398
401
401
403
406
406
407
416
417
419
421
424
424
429
429
433
433
433
435
437
442
442
445
445
446
454
455
455
455
455
457
457
460
460
478
480
483
502
507
507
522
527
527
546
549
551
569
574
574
588
593
593
613
613
616
638
640
655
660
660
672
1175
1179
1180
4
5
5
5
6
6
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
60
61
61
61
65
65
66
76
77
77
78
79
79
80
80
84
85
90
91
93
93
93
93
93
96
96
99
101
102
103
103
106
106
111
113
113
115
115
116
116
117
117
117
117
118
118
118
119
119
119
119
119
119
119
119
120
120
120
123
123
123
123
123
123
127
127
139
143
145
145
147
147
159
161
163
163
165
182
186
186
200
202
204
219
223
225
225
227
227
247
249
251
267
269
271
290
290
290
290
292
292
293
293
293
293
293
294
294
294
294
294
294
294
294
295
295
295
296
296
296
296
297
297
297
298
299
299
299
301
301
302
304
305
305
313
318
318
320
320
321
332
334
337
337
341
341
341
345
357
360
376
376
378
379
384
384
388
397
399
402
404
407
407
417
417
420
420
422
422
433
434
434
436
438
443
443
445
446
446
454
454
454
455
456
456
456
456
461
461
479
481
484
503
508
508
523
528
528
547
550
552
570
575
575
589
594
594
614
614
617
634
639
641
656
661
661
670
672
673
1176
1180
1181
5
5
5
5
6
6
7
7
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
66
67
67
75
75
77
78
81
81
84
84
85
86
86
86
86
90
90
93
94
100
101
101
102
103
103
103
103
104
104
106
111
111
112
113
114
114
114
116
116
117
117
117
117
118
118
118
118
119
119
119
119
119
120
120
120
120
121
121
122
122
124
124
124
124
124
124
128
128
140
144
146
146
148
148
160
164
164
166
183
187
187
203
205
220
224
226
226
228
228
250
252
268
270
272
287
287
288
289
291
291
291
291
291
293
293
294
294
294
294
294
294
295
295
295
295
295
296
296
296
296
296
296
297
297
299
299
299
303
312
313
313
314
319
319
321
321
322
333
338
338
342
342
345
346
348
348
358
359
359
361
368
375
377
377
380
385
385
397
400
403
405
405
418
423
423
426
429
434
435
435
439
444
444
445
446
446
446
447
456
457
457
457
457
462
462
480
482
485
504
509
509
524
529
529
548
551
553
571
576
576
590
595
595
615
615
618
635
637
640
642
657
662
662
671
673
1177
1181
1182
5
5
5
7
7
7
8
8
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
65
67
77
77
78
78
79
82
82
84
84
84
86
86
90
91
94
95
96
101
101
101
101
103
103
105
105
110
110
112
113
113
113
113
114
114
115
115
116
116
116
116
117
117
117
118
118
118
118
118
118
118
119
119
119
119
119
119
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
122
122
125
129
129
145
149
149
161
165
165
167
184
188
188
198
202
204
204
206
206
221
225
227
227
229
229
245
249
251
251
253
253
271
273
288
288
289
289
289
289
290
291
291
292
292
292
292
292
292
292
294
294
294
294
294
295
295
296
296
296
296
296
296
297
307
313
314
314
315
320
320
322
323
330
330
334
339
339
341
342
342
342
342
343
345
349
349
353
357
357
359
360
360
362
368
375
381
386
386
401
402
404
406
417
417
419
424
424
426
435
440
445
445
447
447
448
455
457
458
458
458
463
463
481
483
486
505
510
510
525
530
530
549
552
552
554
554
572
577
577
591
596
596
616
616
619
638
641
643
658
663
663
671
1178
1182
1183
5
5
5
5
6
7
7
7
8
8
9
9
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
65
65
67
67
67
75
75
78
79
83
83
84
89
90
90
91
91
92
93
95
96
101
102
106
106
106
110
113
113
113
113
113
113
113
115
115
116
116
117
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
121
121
122
123
123
126
130
130
146
150
150
166
166
168
185
189
189
199
203
205
205
207
207
226
230
230
246
250
252
252
254
254
272
272
274
274
289
289
289
289
289
290
290
290
290
291
292
292
293
293
293
293
293
294
294
294
294
294
294
295
296
296
296
296
297
297
298
298
298
298
299
305
308
308
313
313
314
316
321
321
321
321
323
331
331
332
332
332
335
340
340
343
343
344
346
348
350
350
350
358
358
358
360
363
371
375
376
382
387
387
387
402
402
403
405
405
405
407
415
418
418
420
425
425
433
436
441
446
446
448
448
456
456
459
464
464
482
484
484
487
487
506
511
511
526
531
531
550
555
555
573
578
578
592
597
597
617
617
620
639
642
644
659
664
664
673
1179
1183
1184
4
4
5
5
5
6
7
8
8
10
10
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
67
68
77
77
78
80
84
84
84
85
86
86
89
89
90
90
91
92
92
93
93
93
93
101
102
103
103
103
107
107
110
110
110
111
113
113
113
113
113
113
113
113
114
115
115
115
115
115
116
116
116
116
116
116
117
117
117
117
118
118
118
118
118
118
119
119
119
119
119
119
119
119
120
122
123
123
124
124
127
131
131
147
151
151
165
167
167
167
169
186
190
190
200
204
206
206
208
208
227
231
231
247
251
253
253
255
255
266
270
273
273
275
275
287
288
288
290
290
290
290
290
290
291
291
291
291
291
291
291
292
292
292
292
292
293
293
294
294
294
294
294
295
295
295
295
295
296
296
296
296
296
297
298
299
299
305
312
314
315
317
322
322
322
322
324
333
333
333
333
336
341
341
342
342
344
344
348
349
359
361
364
371
376
377
383
388
388
388
388
388
388
402
403
406
406
406
408
416
416
421
426
426
429
433
434
442
446
447
447
460
465
465
483
488
488
507
512
512
527
532
532
551
556
556
574
579
579
593
598
598
618
621
640
643
645
660
665
665
673
1180
1184
1185
5
5
6
7
9
9
11
11
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
67
68
69
75
75
77
78
81
84
85
85
86
86
87
87
89
90
91
92
93
93
93
94
94
95
95
96
101
103
103
104
104
104
108
108
113
113
114
114
114
114
114
115
115
115
116
116
116
116
116
117
117
118
118
118
119
119
119
119
119
119
119
119
120
120
120
120
121
121
121
124
124
128
132
132
148
152
152
166
168
168
170
187
191
191
205
209
209
228
232
232
252
256
256
267
271
274
274
276
276
283
285
286
288
288
289
289
289
289
289
290
290
291
291
291
291
291
292
292
292
292
292
293
293
293
293
294
294
294
295
295
295
295
296
296
296
296
296
296
296
297
298
299
300
313
314
315
316
318
321
323
323
323
323
334
334
337
342
342
343
349
349
350
350
360
360
362
365
375
377
378
384
389
389
389
389
403
404
405
407
407
407
407
409
422
427
427
429
434
435
443
445
448
448
458
461
466
484
489
489
508
513
513
528
533
552
557
557
575
580
580
594
599
617
619
620
622
641
644
644
646
646
661
666
666
1181
1185
1186
1
5
8
8
8
8
8
9
12
12
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
69
69
77
77
77
78
78
78
78
82
86
86
86
88
88
89
90
91
92
93
93
93
94
94
96
103
105
105
105
107
107
109
109
113
113
114
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
117
117
118
118
118
119
120
120
120
120
121
121
121
121
129
131
131
133
133
149
153
153
167
169
169
171
188
192
192
206
210
210
229
233
233
253
257
257
268
272
277
277
284
285
285
286
287
287
287
287
289
289
289
289
290
290
290
290
290
290
291
292
292
292
292
292
292
292
292
293
293
293
294
294
294
294
295
295
296
297
297
297
297
297
300
300
301
301
305
305
314
314
316
317
319
321
324
324
334
338
342
343
343
344
351
351
360
361
363
366
366
371
376
378
378
385
389
390
390
396
405
405
406
408
410
418
423
424
428
428
433
435
436
444
445
446
446
446
449
449
458
462
467
485
490
490
509
514
514
529
532
532
534
553
558
558
576
581
581
595
600
620
621
623
642
647
647
662
667
667
1182
1186
1187
1
1
5
9
9
9
9
9
13
13
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
75
75
78
79
79
83
86
86
87
87
88
89
92
93
94
95
95
96
103
103
105
106
108
108
110
113
113
113
113
113
113
114
114
114
114
115
115
115
115
116
116
116
116
116
117
117
117
117
117
118
118
118
118
119
119
119
119
119
119
119
120
121
123
130
132
132
134
150
154
154
170
170
172
189
191
191
193
193
207
211
211
230
234
234
254
258
258
273
278
278
285
286
286
287
288
288
288
288
288
288
290
290
290
290
290
291
291
291
291
291
291
291
291
292
292
292
292
292
293
293
293
294
294
295
295
295
295
295
295
297
297
299
302
302
306
306
313
315
317
318
320
321
322
325
325
334
339
342
342
343
344
344
349
350
350
350
352
352
362
364
364
367
367
367
375
377
386
389
391
391
397
397
397
406
406
407
407
409
411
418
424
425
429
429
434
436
445
445
447
447
450
450
463
465
465
468
486
491
491
510
515
515
530
533
535
554
559
559
577
582
582
596
598
598
601
621
622
624
643
648
648
663
668
668
1183
1187
1188
5
5
5
9
10
10
10
10
10
10
13
13
14
14
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
67
69
69
69
69
70
80
80
84
86
86
88
88
88
88
88
93
93
93
94
96
105
105
105
107
109
109
110
111
113
113
113
114
114
114
115
115
115
116
116
116
116
116
116
116
117
117
117
117
117
117
118
118
119
119
119
119
119
119
119
119
120
120
120
121
121
121
121
124
131
133
133
135
151
155
155
171
171
173
190
192
192
194
208
212
212
231
235
235
255
259
259
274
279
279
285
286
286
287
287
287
288
288
289
289
289
289
289
289
289
289
291
291
291
291
292
292
292
292
292
292
292
293
293
293
293
294
294
294
297
297
297
298
300
300
303
303
313
316
318
319
321
322
323
326
326
340
341
342
343
344
345
345
349
349
349
350
351
351
351
360
360
363
368
368
368
368
376
376
378
378
387
392
392
398
398
408
408
410
412
425
426
426
430
430
434
434
436
436
436
437
446
446
446
448
448
448
451
451
458
458
464
466
469
487
492
492
511
516
516
531
534
536
555
560
560
578
583
583
597
599
602
622
623
625
644
649
649
664
669
669
1184
1188
1189
5
6
9
9
10
11
11
11
11
11
14
14
15
15
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
68
68
69
69
69
70
70
70
71
71
75
80
85
86
86
87
87
88
89
94
95
95
96
103
103
105
105
105
105
108
110
112
113
113
113
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
117
117
117
117
117
118
118
118
118
119
119
119
119
119
119
119
120
120
121
132
134
136
152
156
156
172
174
191
193
193
195
209
213
213
232
236
236
256
260
260
275
280
280
286
287
287
287
287
288
288
288
289
289
289
290
290
290
290
290
290
290
291
291
292
292
292
292
292
293
293
293
294
294
294
297
297
299
304
304
317
319
321
322
323
324
327
327
341
342
344
345
346
351
352
352
352
358
361
361
364
369
369
369
369
369
369
376
378
379
379
388
393
393
397
398
398
398
398
399
406
407
407
407
409
409
411
413
418
418
426
427
427
427
427
431
431
437
437
438
446
447
447
452
452
456
459
459
465
467
470
488
493
493
512
517
517
532
535
537
556
561
561
579
584
584
598
600
603
623
624
626
645
650
650
665
670
670
673
1185
1189
1190
1
4
5
5
6
7
9
9
9
11
11
11
11
12
15
15
15
15
16
16
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
71
71
71
71
71
71
71
75
80
80
86
88
88
88
88
88
90
93
93
95
96
105
105
105
105
106
106
109
110
110
111
113
113
113
113
115
115
115
115
115
115
115
116
116
116
116
116
116
117
118
118
118
118
118
119
119
119
120
120
120
120
120
121
121
121
121
133
135
137
153
157
157
169
171
173
173
175
175
192
194
196
210
214
214
233
237
237
257
259
259
261
261
276
281
281
285
285
287
287
287
287
288
288
288
288
289
289
289
290
290
290
290
291
291
291
291
292
294
294
294
295
295
295
300
305
305
306
308
313
317
322
323
324
324
328
328
342
342
343
345
347
350
352
353
353
359
359
365
367
369
369
370
370
370
370
376
378
379
380
380
388
389
394
394
399
399
400
405
406
406
406
407
408
408
408
412
414
416
419
419
425
427
427
427
428
428
432
432
434
436
438
438
447
447
448
448
448
453
453
457
457
466
468
471
489
494
494
513
518
518
533
536
538
557
562
562
580
585
585
599
601
604
624
625
627
646
651
651
666
671
671
671
673
674
1186
1190
1191
5
5
8
8
9
12
12
12
13
15
15
16
17
17
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
69
69
71
72
72
72
75
75
80
81
86
86
87
88
89
91
95
95
95
96
96
96
96
103
107
107
112
113
113
113
113
113
113
113
113
113
114
114
114
115
115
115
115
115
116
116
116
116
116
116
117
117
117
118
118
118
118
118
118
118
119
119
119
121
121
136
138
154
156
156
158
158
170
172
174
174
176
176
193
195
197
211
215
215
234
238
238
258
260
260
262
277
281
282
282
285
286
286
286
286
288
288
288
288
288
288
289
289
289
289
289
290
290
290
290
290
290
290
290
291
291
291
291
292
292
293
294
294
294
295
295
295
295
295
296
301
306
306
306
309
319
321
323
324
329
329
342
343
343
345
345
345
345
346
348
351
351
366
370
371
371
371
371
376
376
379
380
389
389
389
389
390
395
398
398
400
400
406
408
409
409
409
410
413
415
417
417
428
428
429
429
433
433
437
449
449
449
454
454
467
469
472
490
495
495
514
519
519
534
537
539
558
563
563
581
586
586
600
602
605
625
626
628
647
652
652
667
672
672
672
674
1187
1191
1192
5
5
6
9
10
11
11
13
13
13
14
16
16
16
16
17
18
18
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
72
73
73
73
80
80
81
82
82
82
82
88
88
88
88
90
90
91
92
93
93
96
97
97
107
107
108
111
113
113
113
113
113
113
113
114
114
114
114
114
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
117
117
117
118
118
118
119
119
119
119
119
119
119
119
119
120
120
120
121
121
131
135
137
137
139
139
155
157
157
159
171
173
175
175
177
177
196
198
212
216
216
235
237
237
239
239
259
261
261
263
278
282
283
283
284
286
286
286
287
287
287
287
287
287
288
288
289
289
289
290
290
290
290
291
291
291
291
291
291
292
292
292
292
294
294
295
295
296
296
298
298
302
307
307
314
314
319
322
322
324
324
325
330
330
333
344
346
346
346
347
349
361
367
369
369
371
372
372
377
377
378
378
378
380
390
390
391
394
394
396
399
407
409
410
410
411
414
416
427
427
429
429
434
434
434
438
447
448
448
448
450
450
450
455
455
459
468
470
473
491
496
496
515
520
520
535
538
540
559
564
564
582
587
587
601
603
606
626
627
629
648
653
653
668
672
673
673
1188
1192
1193
4
4
4
5
5
6
7
9
9
11
11
12
12
14
15
17
17
19
19
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
71
73
74
74
74
75
80
80
80
82
82
86
86
88
88
88
88
89
90
90
91
91
91
92
93
98
98
103
103
108
108
112
113
113
113
113
113
114
114
114
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
117
118
118
118
118
118
119
119
119
120
120
120
121
121
132
136
138
138
140
140
156
158
158
160
174
178
178
191
195
197
197
199
199
213
217
217
236
238
238
240
260
262
264
279
283
283
284
284
285
285
285
287
287
287
288
288
288
288
288
288
288
288
289
289
290
290
290
290
290
290
290
290
290
290
291
291
292
292
292
292
292
292
292
295
295
295
295
295
295
297
297
303
306
306
308
308
315
315
315
315
322
324
325
325
326
331
331
334
334
334
345
347
347
347
350
353
361
368
370
373
373
379
379
379
379
390
392
395
397
398
400
408
408
412
415
417
419
428
430
434
435
435
435
436
447
447
447
448
449
449
449
451
456
456
459
469
471
474
492
497
497
516
521
521
536
539
541
560
565
565
583
588
588
602
604
607
628
630
649
654
654
669
674
674
674
1189
1193
1194
4
4
5
5
7
8
10
11
13
13
14
16
18
18
18
18
18
18
20
20
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
65
65
69
71
71
71
75
75
80
86
88
88
88
88
89
89
89
89
90
90
91
92
92
92
92
93
93
94
94
98
103
108
108
109
109
113
113
113
113
113
113
113
113
114
114
114
114
115
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
117
117
117
118
118
119
119
119
121
121
133
137
139
139
141
141
157
159
161
175
179
179
192
196
198
198
200
200
214
216
216
218
218
237
239
239
241
261
263
265
280
284
284
284
284
284
285
285
285
286
286
286
286
286
286
287
287
288
288
288
288
289
289
289
289
289
289
290
290
290
291
291
291
291
291
292
292
293
293
293
293
293
293
295
295
295
295
296
296
296
300
304
307
307
309
309
309
315
315
316
316
322
324
325
326
326
327
332
332
335
335
345
346
348
351
353
369
369
369
371
374
374
380
380
390
393
396
398
398
398
399
413
416
418
419
427
427
429
431
435
436
436
436
436
437
449
450
450
450
452
457
457
470
472
475
493
498
498
517
522
522
540
542
561
566
566
584
589
589
603
605
608
629
631
650
655
655
670
674
675
675
1190
1194
1195
4
5
5
6
8
9
11
11
11
13
15
15
17
19
19
20
20
20
20
21
21
21
25
29
29
29
29
31
37
37
40
41
45
47
47
48
48
49
53
53
57
59
60
60
60
60
65
65
66
72
73
73
74
76
76
80
81
82
82
86
87
89
90
90
90
91
91
92
93
93
93
93
93
94
95
95
98
98
107
107
109
110
110
113
114
114
114
114
114
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
118
118
118
118
118
119
119
119
119
120
121
138
142
142
156
158
160
160
162
176
180
180
193
197
199
199
201
201
215
217
217
219
238
240
242
264
266
281
283
284
285
285
285
285
285
285
286
286
286
287
287
287
287
287
287
287
287
287
287
288
288
289
289
289
289
290
290
290
290
291
291
291
291
292
292
292
292
292
293
294
294
296
297
297
297
301
301
305
307
310
310
316
317
317
325
326
328
333
333
334
335
335
335
335
336
342
347
349
352
369
369
370
370
370
375
375
380
394
397
397
398
399
399
400
410
414
417
417
419
419
427
427
428
428
432
437
437
437
437
438
448
450
451
451
453
458
458
459
459
473
476
494
499
499
518
523
523
541
543
562
567
567
585
590
590
606
609
630
632
651
656
656
671
676
676
1191
1195
1196
4
4
4
5
5
7
9
10
13
13
13
16
18
18
18
20
21
21
21
22
22
26
30
30
31
31
31
41
42
47
49
49
50
54
54
54
57
57
66
67
67
71
71
73
74
77
77
80
82
82
83
83
88
89
90
90
91
91
91
92
92
93
93
93
94
94
94
94
96
96
98
99
103
107
110
110
110
110
110
113
113
113
114
114
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
117
117
117
117
118
118
118
118
118
119
119
119
119
119
119
120
139
143
143
157
161
161
163
177
181
181
198
202
202
216
218
218
220
239
241
243
265
265
267
267
282
284
284
285
285
285
286
286
286
286
286
286
286
287
287
287
288
288
288
288
288
288
288
288
288
289
289
290
291
291
291
292
293
293
293
293
294
297
298
298
306
308
309
309
311
311
315
315
317
326
329
334
334
336
336
337
342
343
345
345
348
350
353
353
353
371
371
371
376
376
380
395
398
398
400
400
401
410
415
420
420
429
429
433
437
438
438
438
438
449
449
454
457
459
460
460
474
477
495
500
500
519
524
524
542
544
563
568
568
586
591
591
603
607
607
610
626
631
633
652
657
657
672
677
677
1192
1196
1197
5
5
5
6
8
10
11
11
11
13
13
13
17
17
18
18
19
20
20
20
21
21
21
21
22
22
23
23
27
29
29
31
31
31
40
42
43
47
47
49
51
55
55
59
59
60
65
67
73
73
74
74
78
78
82
84
84
86
86
89
90
91
91
92
93
93
94
97
97
98
98
99
100
100
100
100
107
107
107
108
110
110
110
110
111
113
113
113
113
113
114
114
115
115
115
115
115
115
115
115
115
116
116
116
116
117
117
117
118
118
118
118
118
119
119
120
120
120
120
121
140
144
144
158
162
162
164
178
182
182
199
203
203
217
219
221
242
244
259
263
266
266
268
268
283
285
285
285
285
285
285
286
286
286
287
287
287
287
288
288
288
288
288
288
288
289
289
289
289
289
289
289
289
290
290
290
292
292
293
293
295
307
307
309
310
310
312
312
316
330
335
335
335
335
337
337
342
346
346
349
351
351
354
354
354
359
367
372
372
372
377
377
396
398
399
399
401
401
416
421
421
425
430
430
434
437
438
438
438
439
439
439
455
458
458
460
475
478
496
501
501
520
525
525
536
543
545
564
569
569
587
592
608
608
611
627
629
632
634
653
658
658
673
678
678
1193
1197
1198
1
1
4
5
6
7
9
11
12
13
13
13
18
18
18
19
19
19
20
21
22
22
24
24
28
31
31
31
32
32
37
40
40
49
49
49
52
54
54
56
56
57
57
60
65
65
65
67
67
67
71
71
74
75
79
79
82
82
84
86
91
91
92
93
93
94
94
98
98
98
98
98
100
100
110
111
112
112
113
113
113
113
113
114
114
115
115
115
115
115
116
116
116
116
116
116
117
117
117
117
117
117
117
118
118
118
118
118
119
121
121
141
145
145
163
163
165
179
183
183
200
204
204
218
220
222
237
241
243
243
245
245
260
264
267
267
269
269
281
283
283
284
284
284
286
286
286
286
286
286
286
287
287
287
287
288
288
288
288
288
288
288
289
289
289
289
289
290
290
290
290
293
293
307
308
310
311
311
313
313
315
315
317
322
322
331
336
336
336
343
345
347
347
347
350
352
352
352
355
360
368
373
373
378
378
397
398
399
400
401
401
402
402
410
410
417
417
422
422
426
431
435
439
439
440
440
440
451
456
458
458
461
470
474
476
479
497
502
502
521
526
537
541
544
546
565
570
570
588
593
609
609
612
630
633
635
654
659
659
674
679
679
1194
1198
1199
1
1
1
7
7
8
10
11
11
12
13
13
13
13
13
20
20
20
21
23
23
25
25
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
68
73
73
74
76
80
80
84
84
84
86
90
90
90
92
93
93
94
95
98
99
99
110
110
112
112
113
113
113
113
113
113
113
114
115
115
115
115
115
115
115
116
116
116
116
116
116
116
117
117
117
118
118
119
119
119
119
119
119
122
122
142
146
146
162
164
164
164
166
180
184
184
201
205
205
221
223
238
242
244
244
246
246
261
265
270
270
281
281
282
282
284
284
285
285
285
285
285
285
285
287
287
287
287
287
287
288
288
288
288
288
289
290
290
290
290
290
290
290
290
290
291
293
293
298
309
311
312
312
314
314
315
315
316
316
323
323
324
324
324
332
335
337
337
337
345
346
353
356
361
361
368
368
372
372
374
374
379
379
379
389
398
401
402
402
403
403
408
411
411
418
418
423
423
426
426
430
430
430
432
436
440
440
441
441
451
457
459
460
462
475
477
480
498
503
503
522
525
525
527
542
545
547
566
571
571
589
591
591
594
610
610
613
631
634
636
655
660
660
675
680
680
1195
1199
1199
1200
9
11
11
13
13
13
13
13
14
14
14
17
18
21
22
22
22
22
22
23
26
26
30
31
31
31
31
32
32
32
32
34
34
40
40
43
49
49
49
54
56
56
57
57
58
60
67
68
69
71
71
73
74
77
79
79
81
81
82
82
84
90
91
93
93
93
93
93
96
98
99
100
100
100
100
110
110
110
113
113
113
113
113
113
113
113
114
114
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
119
119
119
120
123
123
143
147
147
163
165
165
167
181
185
185
202
206
206
216
220
222
222
224
224
239
243
245
245
247
247
266
271
271
279
282
282
283
283
283
284
285
285
286
286
286
286
286
286
286
286
286
286
286
288
288
288
288
288
288
289
290
290
290
290
291
291
291
291
293
293
298
310
312
313
313
315
315
317
317
325
325
325
325
333
335
335
336
338
338
346
346
347
347
354
354
357
362
362
362
362
373
373
375
375
380
380
380
380
380
380
390
390
390
402
403
403
404
409
409
419
419
419
424
424
430
431
431
433
437
438
442
442
458
460
460
463
476
478
481
499
504
504
523
526
528
543
546
548
567
572
572
590
592
595
611
611
614
632
635
637
656
661
661
676
681
681
1196
1199
1200
1201
7
7
11
12
14
15
15
15
18
18
23
23
23
23
23
27
27
29
31
33
33
33
33
35
42
42
43
47
47
49
49
49
49
55
57
59
59
59
60
69
69
73
73
73
74
74
74
74
78
80
80
82
84
84
84
90
90
93
94
97
98
100
100
101
101
101
101
107
112
113
113
113
113
113
113
113
113
114
114
114
115
115
115
115
115
115
115
115
115
116
116
116
116
116
116
117
117
117
117
117
117
117
118
119
120
124
124
144
148
148
164
166
166
168
182
186
186
203
207
207
217
221
223
223
225
225
244
248
248
267
272
272
280
283
283
284
284
284
284
284
284
284
284
284
284
285
286
286
286
286
286
286
287
287
287
287
287
287
287
287
287
287
287
287
288
289
290
290
290
291
292
309
311
314
314
314
316
316
318
318
326
326
334
334
335
336
337
339
348
348
354
355
358
360
362
362
363
363
372
374
374
376
381
381
381
381
391
391
401
403
405
420
420
420
420
420
425
425
426
431
432
432
437
438
443
443
451
451
459
461
464
477
479
482
500
505
505
524
527
529
544
547
549
568
573
573
591
593
596
612
612
615
633
636
636
638
638
657
662
662
672
677
682
682
1197
1201
1202
7
7
8
8
8
8
13
15
16
16
18
18
19
23
24
24
24
24
24
24
27
27
28
28
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
71
71
74
75
75
79
81
81
82
82
83
84
94
95
98
100
102
102
102
102
110
110
112
113
114
114
114
114
114
114
114
114
114
115
115
115
115
115
116
116
116
116
116
116
116
116
117
117
117
117
118
118
118
118
119
119
121
123
123
125
125
145
149
149
167
167
169
183
185
185
187
187
204
208
208
218
222
224
224
226
226
245
249
249
268
273
273
281
281
282
284
284
285
285
285
285
285
285
285
285
285
286
286
286
286
287
287
287
288
288
288
288
288
288
288
288
292
293
298
298
301
310
312
312
314
317
317
319
326
335
335
337
338
340
346
347
347
347
349
349
350
354
356
359
363
364
364
372
377
381
382
382
390
391
391
391
391
392
398
404
406
411
418
420
420
421
421
421
426
426
432
437
438
438
438
439
444
444
449
452
452
460
462
465
478
480
483
501
506
506
525
528
530
545
548
548
550
550
569
574
574
592
594
597
613
613
616
634
639
639
658
663
663
673
678
683
683
1198
1202
1203
7
7
7
7
8
8
11
11
13
14
14
16
17
17
21
21
23
23
24
25
25
25
25
25
28
28
29
29
29
29
33
34
35
37
42
42
43
47
51
51
59
59
59
59
60
60
60
60
61
67
69
69
70
76
76
80
82
84
84
84
84
86
86
88
88
93
95
96
99
100
100
102
103
103
110
110
110
112
112
113
113
113
113
113
113
114
114
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
117
117
117
118
118
118
118
118
119
122
124
124
126
146
150
150
168
168
170
184
186
186
188
205
209
209
223
227
227
246
250
250
269
274
274
279
282
282
282
283
283
283
286
286
286
286
286
286
286
286
286
287
287
287
287
288
288
288
288
289
289
289
289
291
292
293
294
299
299
302
310
310
313
318
318
318
318
320
326
335
336
336
338
338
338
341
346
346
346
347
348
348
348
354
354
355
357
360
362
362
364
368
372
373
378
381
383
383
392
392
393
398
398
399
401
401
405
407
411
421
422
422
422
427
427
430
433
437
439
439
440
445
445
450
450
461
463
466
479
481
481
484
484
502
507
507
526
529
531
546
551
551
570
575
575
593
595
598
614
614
617
635
640
640
659
664
664
673
679
684
1199
1203
1204
11
13
14
15
15
16
16
17
18
18
18
20
20
22
23
23
23
25
25
25
25
26
29
29
29
30
30
34
34
34
35
36
38
40
40
42
43
51
52
54
57
57
58
60
60
60
61
61
62
62
67
69
69
69
70
71
71
71
76
81
82
82
83
84
84
84
84
85
86
86
86
88
88
88
88
88
89
89
90
93
93
100
102
102
102
104
104
110
110
110
110
110
112
112
112
113
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
117
117
117
119
119
123
125
125
127
147
149
149
151
151
169
171
185
187
187
189
206
210
210
224
228
228
247
251
251
270
275
275
279
280
281
281
283
283
283
283
283
283
283
284
284
284
284
284
287
287
287
287
287
287
287
287
287
287
288
288
288
288
288
289
289
289
291
293
293
294
295
307
307
314
319
319
319
319
321
335
336
337
338
338
339
339
342
348
349
349
349
352
355
355
356
358
361
363
368
373
374
379
384
384
391
391
393
393
398
399
402
402
403
406
408
420
420
422
423
426
428
428
430
431
438
438
440
440
440
441
446
446
458
462
464
467
480
485
485
503
508
508
527
530
532
547
552
552
571
576
576
594
596
599
615
618
636
641
641
660
665
665
680
685
1200
1204
1205
7
7
8
8
11
14
15
15
15
15
16
16
17
18
18
19
19
23
23
23
26
26
26
27
29
29
29
31
31
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
71
71
71
71
71
71
76
76
84
84
84
84
84
85
85
86
86
88
88
88
88
89
89
89
90
90
95
95
96
100
100
101
102
102
102
102
105
105
110
112
112
112
112
112
112
112
113
113
113
113
113
113
113
114
114
114
114
114
114
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
117
117
124
126
128
148
150
150
152
166
168
170
170
172
172
186
188
190
207
209
209
211
211
225
229
229
248
252
252
271
276
276
279
280
280
281
281
281
282
282
282
282
282
282
283
283
284
284
284
284
284
284
284
284
284
285
285
285
285
285
285
287
287
287
288
288
288
289
289
289
291
295
296
308
308
308
308
315
318
320
320
320
320
338
339
339
340
340
343
347
349
350
350
353
353
357
359
362
362
362
364
372
374
375
380
385
385
392
399
401
403
403
403
404
407
409
411
411
421
424
426
429
429
431
432
438
439
442
447
447
452
459
463
465
468
481
486
486
504
509
509
528
531
533
548
553
553
572
577
577
595
597
600
614
616
617
619
637
642
642
661
666
666
674
674
681
683
683
686
1201
1205
1206
8
8
8
9
9
15
16
16
18
18
18
18
18
20
20
23
24
25
25
27
27
27
28
30
30
30
30
32
32
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
69
69
71
71
71
72
76
77
79
82
83
85
85
86
86
87
87
88
89
90
90
90
91
91
93
93
96
102
102
102
102
102
103
103
104
104
106
106
110
110
110
110
110
110
112
112
112
112
113
113
113
113
113
113
113
113
114
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
116
116
117
117
117
125
127
129
149
151
151
153
167
169
171
171
173
173
187
189
191
208
210
210
212
226
230
230
249
251
251
253
253
272
277
277
279
279
280
280
281
281
281
281
282
282
282
282
282
282
283
283
283
283
283
283
284
284
284
284
284
285
285
285
285
285
285
286
286
286
286
288
288
289
289
289
289
289
291
292
296
296
297
297
299
301
302
308
308
309
309
316
318
321
321
339
340
340
341
344
348
348
358
360
362
362
363
363
363
368
373
375
375
380
381
386
386
391
393
401
402
405
408
409
410
412
412
420
420
422
425
430
430
430
432
433
439
439
440
440
443
448
448
452
460
460
466
469
482
487
487
505
510
510
529
532
534
549
554
554
573
578
578
596
598
601
617
618
620
638
643
643
662
667
667
675
675
675
675
682
684
687
1202
1206
1207
7
10
10
15
15
17
18
19
19
21
21
23
24
25
25
26
26
28
29
31
31
33
33
33
33
33
36
37
37
39
39
41
41
45
45
47
51
51
51
53
54
54
57
61
62
62
62
62
65
65
72
73
76
76
77
78
78
78
78
80
84
86
86
86
87
88
88
88
90
91
91
91
95
95
96
100
103
104
104
105
105
107
107
110
110
110
110
112
112
112
113
113
113
113
113
113
113
113
113
113
113
113
113
113
114
114
114
114
114
115
115
115
115
115
115
116
116
116
116
116
116
117
117
118
118
128
130
150
152
154
168
170
172
172
174
174
190
192
209
211
211
213
227
231
231
250
252
252
254
273
277
277
277
278
278
279
280
280
281
281
282
282
282
282
283
283
283
283
284
284
284
284
284
284
284
284
284
284
284
285
285
285
285
286
286
286
286
286
286
286
287
287
287
288
289
289
289
289
289
293
298
298
299
302
304
309
310
310
310
317
318
319
322
322
338
340
342
345
355
359
361
361
364
364
364
364
372
374
381
381
381
381
382
387
391
391
392
402
402
403
403
406
409
410
410
411
420
420
421
421
426
431
431
431
433
441
441
444
449
449
461
461
461
461
467
470
483
488
488
506
511
511
533
535
550
555
555
574
579
579
599
602
618
619
621
639
644
644
663
668
668
675
675
675
675
676
676
683
685
688
1203
1207
1208
8
8
10
18
19
20
22
22
25
25
27
27
28
30
32
32
32
32
34
34
34
37
38
38
40
40
40
42
42
45
51
52
54
54
54
54
54
57
57
57
62
62
62
63
66
66
71
71
73
74
76
76
76
78
78
81
82
82
85
87
87
87
87
89
89
91
93
93
96
104
104
105
106
106
107
108
110
110
110
110
112
113
113
113
113
113
113
113
113
113
114
114
114
114
114
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
117
118
119
123
127
129
129
131
131
149
151
153
153
155
171
175
175
185
189
191
191
193
193
210
212
214
228
232
232
251
253
253
255
274
277
278
278
278
279
279
279
280
281
281
282
282
282
282
282
282
282
283
283
283
284
284
284
284
284
285
285
285
285
285
285
285
285
285
285
286
286
286
286
286
287
290
290
294
299
299
303
304
305
308
308
310
310
318
319
320
323
323
325
335
341
343
346
350
355
360
360
365
365
365
365
373
373
375
375
382
382
383
386
386
388
390
391
392
393
404
404
407
410
410
412
412
422
422
427
431
431
432
432
433
433
433
434
439
440
440
440
442
442
445
450
450
452
452
459
461
461
462
462
468
471
484
489
489
507
512
512
534
536
551
556
556
575
580
580
596
600
600
603
619
620
622
640
645
645
664
669
669
676
676
677
677
684
686
689
1204
1208
1209
1
10
10
10
18
19
20
21
23
23
25
25
26
27
29
29
31
33
33
34
34
35
35
36
38
39
39
40
43
43
45
45
51
51
54
55
63
63
64
64
67
67
69
71
71
76
82
86
87
87
88
88
90
90
95
95
96
100
100
105
105
107
109
110
110
110
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
117
117
117
124
128
130
130
132
132
150
154
154
156
172
176
176
186
190
192
192
194
194
211
213
215
229
233
233
252
254
256
275
278
279
279
279
280
280
281
281
281
281
281
282
282
283
283
283
283
283
284
284
284
284
284
284
285
285
286
286
286
286
286
287
287
287
287
295
299
299
300
300
304
305
306
309
318
319
320
321
324
324
326
326
326
335
336
338
338
342
344
347
350
361
361
366
366
366
373
375
376
376
382
384
387
389
391
393
394
402
403
403
403
405
405
408
412
413
413
418
423
423
428
433
433
434
434
435
439
439
439
440
441
441
441
446
450
451
451
453
453
462
463
463
463
467
469
472
485
490
490
508
513
513
535
537
552
557
557
576
581
581
601
601
604
620
621
623
641
646
646
665
670
670
677
677
685
687
690
1205
1209
1210
1
1
8
8
10
15
18
18
20
24
24
27
27
27
30
32
33
35
35
36
36
36
36
40
40
40
44
44
45
46
55
56
62
64
64
68
68
73
73
74
76
77
78
78
82
86
86
86
87
88
89
89
91
91
93
93
95
96
100
105
105
106
106
108
109
109
110
110
110
110
110
111
112
112
113
113
113
113
113
113
113
113
114
114
114
114
115
115
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
125
129
131
131
133
133
151
155
155
157
173
177
177
187
191
193
193
195
195
214
216
230
234
234
253
255
257
276
278
278
279
280
280
280
281
281
282
282
282
282
282
282
282
282
284
284
284
284
285
285
285
286
286
286
286
286
287
287
287
287
287
287
293
296
300
300
301
301
305
306
307
308
308
310
310
319
320
321
321
325
325
327
327
335
339
339
343
345
348
361
361
362
365
365
367
367
367
373
375
376
377
377
382
385
388
390
391
392
394
402
402
402
403
404
404
404
409
412
414
414
419
424
429
431
433
434
434
435
435
441
442
442
442
447
451
451
452
452
461
461
463
468
470
473
486
491
491
509
514
514
529
536
538
553
558
558
577
582
582
602
602
605
621
622
624
642
647
647
666
671
671
686
688
691
1206
1210
1211
1
10
10
10
20
20
21
21
25
25
25
25
27
27
27
31
31
32
32
33
36
36
37
37
38
38
39
41
45
45
45
45
46
47
47
47
47
54
56
57
62
62
62
64
64
64
65
69
69
71
71
74
76
78
78
79
79
86
87
88
89
89
89
89
89
92
92
95
95
95
96
96
96
96
104
104
106
107
107
109
110
110
111
111
112
112
113
113
113
113
113
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
116
117
130
134
134
156
156
158
174
178
178
192
196
196
209
213
215
215
217
217
231
235
235
256
258
277
277
278
279
279
279
280
280
280
280
281
282
282
282
282
282
282
283
283
283
283
283
283
285
285
285
285
285
285
285
285
286
286
286
286
286
287
287
287
287
291
291
291
291
294
294
297
302
302
306
307
308
308
308
309
309
318
320
321
326
326
326
327
327
327
327
328
336
338
340
340
340
346
349
350
350
363
366
366
368
368
368
373
373
376
377
386
389
391
391
392
394
394
395
404
405
405
405
410
415
415
419
419
423
423
423
425
430
434
435
435
440
442
443
443
448
453
462
469
471
474
487
492
492
510
515
515
530
534
537
539
554
559
559
578
583
583
603
603
606
622
623
625
643
648
648
667
672
672
675
687
689
692
1207
1211
1212
1
2
8
8
10
10
10
10
18
18
21
22
26
26
27
27
27
32
33
33
33
34
36
36
38
38
39
40
42
45
45
45
46
46
47
47
51
54
54
62
63
64
64
64
65
66
70
70
73
73
74
78
80
80
86
86
89
89
90
93
93
93
93
96
97
97
100
104
104
107
107
107
107
107
108
110
110
110
110
110
111
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
115
115
115
115
116
116
116
116
116
116
116
116
131
135
135
155
157
157
157
159
175
179
179
193
197
197
210
214
216
216
218
218
232
234
234
236
236
257
257
259
259
277
278
278
279
279
280
280
280
280
281
281
282
282
283
283
283
283
283
284
284
284
284
284
284
284
285
286
287
287
287
288
288
292
292
298
303
303
306
308
309
310
310
319
319
321
321
322
327
327
328
328
329
338
339
347
348
350
351
351
353
364
365
367
367
369
369
374
374
375
375
375
377
387
390
392
395
395
396
403
405
406
406
411
416
416
423
424
424
426
431
431
435
436
436
441
441
449
453
454
461
461
463
470
472
475
488
493
493
511
516
516
535
538
540
555
560
560
579
584
584
604
604
607
623
624
626
644
649
649
668
673
673
675
675
676
688
690
693
1211
1212
1213
2
3
10
10
10
10
11
11
20
20
21
23
25
25
25
25
27
27
27
34
34
34
35
38
38
39
39
39
43
45
47
47
56
56
57
64
65
66
67
71
71
71
71
74
78
78
80
83
85
90
90
91
94
94
98
98
104
104
104
105
105
106
107
107
107
108
109
110
110
110
110
110
110
110
110
110
111
111
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
113
113
113
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
132
136
136
156
158
158
160
176
180
180
194
198
198
211
215
217
217
219
219
233
235
235
237
251
255
258
258
260
260
277
277
277
277
277
277
278
279
279
279
279
279
279
279
279
279
280
280
280
281
281
281
281
281
282
282
282
282
283
284
284
284
284
284
284
285
285
286
287
287
287
287
288
289
289
291
291
291
291
293
293
299
300
302
304
304
309
311
311
319
321
322
322
323
327
327
328
328
329
329
339
339
340
340
348
349
349
351
354
365
365
370
370
376
376
376
376
388
391
393
396
396
404
404
412
417
417
419
424
425
425
431
432
432
433
437
437
450
452
452
453
455
461
461
462
462
471
473
476
489
494
494
512
517
517
536
539
541
556
561
561
580
585
605
605
608
625
627
645
650
650
669
674
674
675
676
677
691
694
1207
1212
1213
1214
3
4
8
12
12
18
18
21
24
26
26
26
27
27
27
28
31
35
36
36
36
36
36
36
36
39
40
40
44
45
46
47
47
48
48
54
54
57
66
66
68
72
72
73
73
74
80
80
80
83
85
86
86
89
91
91
92
93
95
95
98
106
108
109
110
110
110
110
110
110
111
112
112
112
112
112
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
115
116
116
116
116
133
137
137
157
159
159
161
177
181
181
195
199
199
216
220
220
234
236
236
238
252
256
259
259
261
261
273
275
276
277
277
278
278
278
278
278
278
279
279
279
279
280
280
280
280
280
280
280
280
280
280
281
281
281
281
282
282
282
282
282
282
283
283
284
284
285
285
285
285
285
287
287
287
289
290
290
291
291
291
291
292
292
292
300
300
303
305
305
309
312
319
321
322
323
323
324
328
329
329
341
341
343
347
349
352
355
355
361
365
366
366
371
371
377
377
389
392
394
394
410
413
418
418
425
432
433
433
433
434
438
438
443
451
453
456
463
463
472
474
474
477
477
490
495
495
513
518
537
540
542
557
562
562
581
586
606
606
609
626
628
646
651
651
670
675
675
677
678
692
695
1213
1214
1215
4
4
5
5
12
13
20
20
21
25
25
25
27
27
27
27
27
27
29
32
37
37
37
38
38
39
41
41
45
45
47
47
48
48
49
49
56
56
57
64
64
66
69
71
71
73
73
73
74
78
78
80
83
85
86
86
86
87
89
89
92
93
96
96
98
98
106
109
109
110
110
110
110
110
110
111
112
113
113
114
114
114
114
114
115
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
134
138
138
160
160
162
178
182
182
196
200
200
217
221
221
235
237
239
253
257
262
262
274
276
277
278
278
278
278
279
279
279
279
279
279
280
280
280
280
280
280
280
280
280
281
281
281
281
281
281
281
281
282
282
282
282
283
283
283
283
283
283
284
284
285
286
290
291
291
292
293
293
293
301
303
303
306
306
309
311
311
313
322
323
325
327
329
330
330
339
340
340
340
342
342
348
350
351
353
356
356
356
356
361
366
367
367
372
372
377
381
390
391
393
395
406
411
414
419
419
423
426
434
434
434
435
439
439
443
452
454
457
459
464
464
473
478
478
491
496
496
514
517
517
519
538
541
541
543
543
558
563
563
582
584
584
587
607
607
610
627
629
647
652
652
671
673
676
676
678
693
696
1214
1215
1216
5
5
5
6
6
8
8
13
18
18
20
21
26
27
27
27
27
28
28
28
30
33
36
36
38
38
38
38
38
38
39
41
41
42
42
46
47
49
49
50
50
54
54
57
64
66
66
67
70
72
72
73
73
73
74
74
74
74
74
74
80
80
80
83
85
86
86
87
88
91
91
92
93
93
93
97
97
98
99
107
107
107
109
110
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
113
114
115
115
115
115
115
115
116
116
116
116
116
116
116
116
135
139
139
161
161
163
179
183
183
197
201
201
218
222
222
236
238
240
258
263
263
275
277
278
279
279
279
279
280
280
280
280
280
280
281
281
281
281
281
281
282
282
282
282
282
282
282
282
282
282
283
283
283
283
283
284
284
284
284
284
286
287
287
291
293
294
294
302
307
307
312
312
314
323
326
327
327
328
331
331
339
339
339
340
341
341
341
349
351
351
354
354
356
356
357
357
365
367
368
368
373
373
377
382
382
382
391
392
394
394
394
396
406
412
412
415
419
420
420
423
424
434
435
435
435
440
440
453
455
458
460
465
474
479
479
492
497
497
515
518
520
539
544
544
559
564
564
583
585
588
608
611
623
628
630
648
653
653
672
674
677
678
679
688
692
694
697
1215
1216
1217
5
6
7
7
8
13
13
14
20
20
20
21
21
21
21
25
27
29
29
29
31
35
35
38
38
38
39
39
39
39
39
42
42
43
43
47
47
47
49
51
51
56
56
57
64
66
66
66
67
68
68
71
71
71
73
73
74
75
75
75
78
78
80
83
85
86
86
87
88
89
89
92
94
98
98
98
98
99
100
100
100
100
104
106
109
110
110
110
110
110
110
110
110
110
110
110
110
110
111
111
112
112
112
112
112
113
113
113
113
113
114
114
114
115
115
115
115
116
116
116
117
117
136
140
140
162
164
180
182
182
184
184
198
202
202
219
223
223
239
241
259
264
264
273
275
276
276
277
277
278
278
279
280
280
280
280
280
280
280
282
282
282
282
282
282
282
282
283
283
283
284
284
285
285
285
285
285
285
285
285
287
288
288
288
292
303
308
308
311
313
313
326
327
327
328
329
332
341
342
342
342
350
352
355
357
358
358
361
366
368
368
369
374
374
383
383
391
395
395
395
397
413
413
413
413
416
419
421
421
424
425
434
435
435
435
436
436
441
441
443
443
451
454
456
459
460
460
464
464
466
475
480
480
493
498
498
516
519
521
540
545
545
560
565
565
584
586
589
607
609
610
612
624
626
629
631
649
654
654
673
674
678
678
680
693
695
698
1216
1217
1218
4
4
6
7
8
8
8
12
12
12
14
15
15
18
18
21
22
22
29
30
30
32
34
34
36
36
36
39
39
39
40
40
40
43
43
44
44
48
49
49
49
50
50
52
52
54
54
56
57
66
66
68
68
68
68
68
72
74
74
76
76
76
80
80
80
83
85
86
86
87
88
91
91
92
93
95
97
97
98
98
98
99
99
100
100
106
106
107
107
109
110
110
110
110
110
110
110
110
110
111
111
112
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
114
114
114
115
115
115
116
116
116
118
118
137
141
141
159
161
163
163
165
165
181
183
183
185
199
203
203
220
224
224
234
238
240
240
242
242
260
265
265
273
274
275
275
275
276
277
277
278
278
280
280
280
281
281
282
282
283
283
283
283
283
283
284
284
284
285
285
285
285
285
285
288
289
294
298
304
309
309
311
319
319
327
328
329
330
333
340
342
343
343
351
351
351
353
356
356
356
358
365
367
370
375
375
382
383
383
383
383
384
392
394
396
396
396
396
398
406
406
411
413
413
414
414
417
422
422
423
425
426
436
436
437
437
441
442
442
444
444
452
455
457
460
465
465
467
476
481
481
494
499
499
517
520
522
541
546
546
561
566
566
585
587
590
610
611
613
627
630
632
650
655
655
674
674
676
676
678
679
679
681
694
696
699
1217
1218
1219
4
5
5
5
5
5
5
5
6
7
7
8
9
9
9
12
13
15
15
15
15
15
23
23
25
25
25
29
30
31
31
33
33
37
37
40
40
40
41
41
41
43
43
45
45
47
47
49
49
51
51
53
56
56
56
57
57
57
57
66
66
68
69
71
73
75
76
77
78
78
80
80
80
80
86
86
86
87
88
89
89
92
96
98
98
98
100
107
107
109
109
109
110
110
110
110
110
110
110
110
110
110
111
111
111
111
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
114
114
114
115
116
116
116
116
119
119
138
142
142
160
162
164
164
166
166
182
184
184
186
200
204
204
221
225
225
235
239
241
241
243
243
261
266
266
274
275
275
276
276
276
276
277
277
277
278
278
278
278
278
279
279
279
280
281
281
282
282
282
282
284
285
285
285
285
287
287
287
289
289
290
290
294
295
299
299
299
303
305
310
310
311
312
320
320
321
321
321
327
328
329
330
331
331
334
341
341
349
352
352
352
354
354
357
357
357
366
366
368
368
371
376
376
376
384
384
385
390
394
395
397
399
404
407
407
414
415
415
418
423
423
424
426
437
437
438
442
442
443
443
453
453
456
458
461
464
466
466
477
482
482
495
500
500
518
521
523
542
547
547
562
567
567
586
588
591
611
612
614
628
631
633
651
656
656
675
677
678
679
680
680
695
697
700
1218
1219
1220
7
8
8
9
10
10
10
10
12
12
15
16
18
23
25
26
30
30
30
31
32
32
34
34
36
41
41
41
41
42
44
44
44
44
46
46
49
49
49
50
52
52
54
54
54
57
58
58
69
70
71
74
76
76
76
78
80
80
80
80
81
81
85
85
87
88
91
91
92
97
98
99
99
99
100
100
101
107
107
107
107
107
109
109
109
109
110
110
110
110
110
110
110
110
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
115
115
115
116
116
120
120
139
141
141
143
143
161
163
165
165
167
167
183
185
187
201
203
203
205
205
222
226
226
236
240
242
242
244
244
262
267
267
274
275
275
275
275
275
276
276
276
277
277
277
277
277
277
277
277
277
277
278
278
278
278
278
278
279
279
279
279
279
280
280
280
281
282
282
282
282
282
285
285
285
285
286
291
291
294
300
300
300
300
300
303
306
311
311
312
313
322
322
322
322
327
328
330
330
330
331
332
335
350
350
353
356
356
358
358
358
366
368
369
369
372
377
377
377
377
377
377
383
383
385
385
391
395
395
395
396
396
398
400
405
405
413
413
415
419
424
424
424
424
426
426
426
427
435
439
444
444
454
454
454
454
457
459
462
464
478
483
483
496
501
501
519
522
524
543
548
548
563
568
568
587
589
592
612
613
615
629
632
634
652
657
657
674
676
678
679
680
681
696
698
701
1219
1220
1221
1
1
4
5
5
8
9
9
10
11
11
11
11
16
17
18
23
23
25
27
29
29
29
31
31
32
32
33
33
33
35
35
36
38
41
41
42
43
45
45
47
47
47
47
49
49
49
49
51
53
55
59
59
68
70
71
71
71
76
77
77
78
79
82
82
88
89
89
91
92
98
98
100
100
100
101
101
102
107
109
109
110
110
110
110
110
110
110
111
111
111
111
112
112
112
113
113
113
113
113
113
113
113
113
113
113
113
113
113
113
114
115
115
115
115
115
115
115
115
116
117
121
121
140
142
142
144
164
168
168
184
186
188
202
204
204
206
223
227
227
241
245
245
263
268
268
271
273
275
275
275
276
276
276
276
276
276
276
276
277
277
277
278
278
278
278
278
278
278
278
278
278
278
279
279
279
279
280
280
280
280
280
280
280
280
281
283
283
285
285
285
287
287
292
292
301
301
301
301
301
301
301
307
311
312
312
313
314
323
323
331
331
331
332
333
336
343
354
356
356
357
357
359
359
366
368
369
370
370
373
378
378
378
378
384
396
397
397
399
401
414
420
425
425
427
427
428
434
440
444
445
445
452
454
454
455
455
460
460
463
464
465
479
484
484
497
502
502
520
523
525
544
549
549
564
569
569
588
590
593
613
614
616
630
633
633
635
635
653
658
658
677
679
680
682
697
699
699
702
702
1220
1221
1222
1
1
1
4
5
5
6
6
8
8
9
10
11
12
12
15
17
18
18
18
23
24
29
30
32
32
32
32
32
32
36
36
36
36
39
41
42
42
44
46
46
46
46
48
48
49
49
49
49
50
50
52
54
54
56
59
66
68
68
72
76
76
76
77
78
78
78
78
78
78
80
80
82
83
91
91
91
92
92
92
92
99
100
101
102
102
103
106
106
107
107
107
107
109
109
109
110
110
110
110
110
110
110
111
111
113
113
113
113
113
114
114
114
114
114
114
114
115
116
116
116
116
116
116
116
118
120
120
122
122
141
143
143
145
165
169
169
187
189
203
205
205
207
224
228
228
242
246
246
264
269
269
272
273
273
274
275
275
276
276
276
277
277
277
277
277
277
278
278
278
278
278
278
279
279
279
279
279
279
279
279
279
279
280
280
280
280
280
280
280
280
281
281
281
281
281
281
288
293
293
294
294
295
301
301
302
302
302
302
302
303
308
312
313
313
314
314
323
332
332
332
334
337
343
352
355
358
358
360
360
366
366
369
370
374
378
379
379
383
385
395
396
396
396
397
398
398
400
402
407
413
413
415
421
424
426
426
426
428
428
434
435
435
435
441
444
446
446
455
456
456
460
461
464
465
466
480
485
485
498
503
503
521
524
526
545
550
550
565
570
570
589
591
594
614
615
617
631
636
636
654
659
659
678
678
680
681
683
698
703
703
1221
1221
1222
1223
4
4
5
5
5
6
7
9
9
9
10
10
11
12
12
13
13
15
15
23
23
24
25
25
25
25
29
29
32
33
33
37
37
40
41
41
42
43
43
43
43
43
43
45
47
47
47
48
48
49
49
51
51
54
55
57
59
59
59
59
70
70
71
71
73
76
76
76
77
78
78
78
78
79
79
81
81
83
89
89
92
93
93
100
100
102
102
104
106
106
106
107
107
109
109
110
110
110
110
110
110
110
110
110
110
111
111
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
114
116
116
116
116
116
116
119
121
121
123
142
144
146
166
170
170
182
186
188
188
190
190
204
206
208
225
227
227
229
229
243
247
247
265
269
269
270
270
271
271
271
273
274
274
275
276
276
276
277
277
277
277
278
278
278
278
278
278
278
279
279
279
279
279
280
280
280
280
280
280
280
280
280
280
280
280
281
281
282
282
288
289
294
294
295
295
302
303
303
303
303
303
309
311
313
314
314
323
330
333
335
338
352
354
356
359
359
361
361
367
367
368
368
368
370
375
378
380
380
383
383
384
395
395
395
396
397
397
397
398
401
403
407
413
413
414
414
422
427
427
427
434
436
436
442
447
447
454
454
456
462
464
465
466
467
481
486
486
499
504
504
525
527
546
551
551
566
571
571
592
595
615
616
618
632
637
637
655
660
660
674
679
679
681
684
699
704
704
1222
1222
1223
1224
5
5
6
6
7
10
10
11
12
13
14
14
17
17
18
18
23
23
23
25
25
33
34
34
36
38
38
41
41
41
43
43
44
46
49
49
50
50
50
51
52
54
54
54
54
56
56
58
58
59
59
60
68
68
71
74
76
78
78
80
80
82
82
83
83
84
94
94
97
101
102
102
102
103
103
105
105
106
106
106
109
110
110
110
110
110
110
110
110
110
110
110
111
111
111
112
112
112
112
112
113
113
113
113
113
113
114
114
114
114
114
115
115
115
116
116
116
116
116
120
122
122
124
141
143
145
145
147
167
171
171
183
187
189
189
191
191
205
207
209
226
228
228
230
244
248
248
266
270
270
270
271
271
272
272
272
274
274
275
275
275
275
275
275
276
276
276
277
277
277
278
278
278
278
278
278
278
279
279
280
280
280
280
280
281
281
281
281
281
283
283
283
284
284
284
284
289
289
290
295
295
301
301
303
303
304
304
310
312
312
314
314
315
315
327
334
336
339
343
343
355
357
360
362
362
369
369
369
369
376
381
381
382
383
384
385
397
398
398
398
399
402
402
404
404
415
415
423
424
428
428
428
435
435
437
437
437
443
444
444
448
448
455
457
460
461
463
465
466
467
467
482
487
487
500
505
505
526
528
547
552
552
567
572
572
589
593
593
596
616
617
619
633
638
638
656
661
661
680
680
682
685
700
705
705
1223
1224
1225
5
5
5
5
8
11
11
11
12
12
13
14
15
15
15
15
18
23
32
34
35
35
39
39
41
41
41
45
45
46
46
47
47
47
50
50
51
51
51
52
55
57
57
59
59
60
61
61
70
70
71
76
77
78
78
78
79
82
82
82
83
83
84
85
85
89
94
98
100
100
102
102
102
102
102
104
104
106
106
109
109
109
110
110
110
110
110
110
110
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
112
112
112
112
113
113
113
113
113
115
115
115
116
116
116
116
121
123
125
142
146
146
148
168
172
172
184
188
190
190
192
192
208
210
227
229
229
231
245
249
249
267
271
271
271
272
273
273
273
273
273
274
274
276
276
276
276
276
276
277
278
278
278
278
278
278
279
279
279
279
280
280
280
281
281
281
281
281
281
281
282
282
282
282
283
285
285
291
296
296
302
304
304
311
312
314
315
315
316
316
327
328
330
330
335
337
340
341
344
344
355
355
358
359
359
361
363
363
370
370
377
382
382
383
385
386
396
398
399
399
400
405
405
407
407
411
416
416
424
424
425
426
429
429
435
436
442
444
445
445
449
449
454
454
456
462
464
464
466
467
483
488
488
501
506
506
527
529
548
553
553
568
573
573
594
594
597
618
620
634
639
639
657
662
662
681
681
683
686
701
706
706
1224
1225
1226
5
5
6
6
6
7
9
12
12
13
13
14
14
15
16
16
17
17
18
23
24
25
25
29
32
32
36
40
40
41
42
43
43
46
47
47
47
47
48
52
52
52
52
52
53
56
58
58
59
60
60
61
68
68
71
76
78
78
79
79
80
82
82
82
83
83
83
84
84
85
85
85
85
85
89
94
94
99
102
102
102
102
103
103
103
105
105
106
106
107
107
107
107
108
109
109
109
109
110
110
110
110
110
110
110
110
110
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
116
116
116
116
116
122
124
126
143
147
147
149
169
173
173
189
193
193
203
207
209
209
211
211
228
230
232
246
248
248
250
250
268
272
272
273
273
274
274
274
274
274
274
274
274
274
275
275
276
276
276
277
277
277
277
278
278
279
279
279
279
279
280
280
280
280
280
280
281
282
283
283
283
283
284
284
284
284
286
286
292
295
297
297
301
301
303
312
312
314
315
316
316
317
317
327
331
331
336
338
341
342
342
359
360
360
362
364
364
370
377
378
383
383
383
384
386
397
397
401
405
406
406
408
408
412
417
425
425
426
426
427
430
430
436
436
437
437
443
443
445
450
454
454
455
455
463
465
465
465
467
467
468
484
489
489
502
507
507
521
528
530
549
554
554
569
574
574
595
595
598
619
621
635
640
640
658
663
663
678
681
684
687
702
707
707
1225
1226
1227
5
5
5
8
10
13
14
15
15
15
15
16
17
17
18
23
25
25
26
26
34
34
35
37
41
41
41
43
43
44
44
47
48
48
48
49
51
51
51
53
53
53
54
54
57
59
59
59
61
61
61
61
61
70
70
71
78
80
80
81
82
82
82
82
82
83
83
83
83
83
84
84
85
85
85
86
89
89
94
95
100
104
104
104
106
106
106
107
107
108
108
108
109
109
110
110
110
110
110
110
110
110
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
113
113
113
125
127
148
148
150
170
174
174
190
194
194
204
208
210
210
212
212
229
231
233
247
249
249
251
269
271
273
273
273
274
274
274
275
275
275
275
275
275
275
275
275
275
275
276
276
276
276
277
277
277
278
278
278
278
278
279
280
280
280
280
280
281
281
281
283
283
283
284
284
284
284
284
284
285
285
285
285
293
295
298
298
301
301
302
302
313
315
316
318
318
328
330
332
332
332
339
342
350
359
360
361
361
365
365
370
378
378
378
378
379
383
384
384
386
386
387
402
406
406
407
407
412
412
416
416
416
418
426
427
427
428
431
431
438
438
446
451
456
456
464
465
466
467
468
468
469
485
490
490
503
508
508
522
526
529
531
550
555
555
570
575
575
596
596
599
620
622
636
641
641
659
664
664
674
679
685
688
703
708
708
1226
1227
1228
5
5
5
6
6
6
6
7
9
9
11
11
12
14
15
16
16
17
17
17
18
18
18
25
27
27
32
32
35
38
40
42
42
43
45
45
45
49
50
50
50
50
50
51
52
54
54
54
54
54
54
54
58
59
60
61
61
61
62
62
62
68
68
70
71
78
78
80
82
82
83
83
83
83
84
84
84
85
85
86
86
86
87
94
94
95
96
96
96
96
104
105
105
106
106
107
107
108
108
109
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
111
111
111
111
112
112
112
113
113
113
113
113
113
113
113
113
115
115
115
120
124
126
126
128
128
147
149
149
149
151
171
175
175
191
195
195
205
209
211
211
213
213
232
234
248
250
250
252
270
272
273
273
273
273
274
275
275
275
276
276
276
276
276
276
276
276
276
276
276
276
276
276
277
277
277
277
278
278
278
278
279
279
281
281
281
283
283
284
285
286
286
286
287
287
294
294
299
299
303
303
314
316
319
319
322
330
331
340
343
344
351
359
361
366
366
379
379
380
383
383
385
387
387
388
399
403
408
408
416
417
417
419
427
427
428
428
432
432
436
437
437
437
439
439
445
447
449
449
452
452
457
457
465
465
467
467
468
469
469
470
486
491
491
504
509
509
527
530
532
551
556
556
571
576
576
597
597
600
616
621
623
637
642
642
660
665
665
678
680
686
689
704
709
709
1227
1228
1229
5
5
5
5
7
7
10
11
12
12
13
15
15
15
17
17
17
17
18
18
19
19
25
25
27
34
34
35
39
43
43
43
43
45
46
51
51
51
51
51
54
55
55
55
59
61
62
63
63
63
70
70
70
71
71
71
71
80
80
80
83
83
84
85
85
85
85
86
86
86
87
87
87
88
89
94
94
94
96
96
100
100
105
106
106
106
106
107
107
107
107
107
107
107
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
111
111
112
113
113
113
114
114
114
116
116
116
121
125
127
127
129
129
148
150
150
152
172
176
176
192
196
196
210
214
214
227
231
233
233
235
235
249
251
253
269
270
271
271
271
271
271
272
273
274
274
274
274
275
276
276
276
276
276
277
277
277
277
277
277
277
277
277
277
278
278
278
278
278
279
279
279
279
280
281
281
285
286
287
287
295
295
295
295
295
295
296
300
300
304
304
315
320
320
323
323
323
331
331
332
332
341
344
344
352
352
355
359
360
362
367
367
379
381
384
386
388
388
399
404
408
409
409
412
417
418
418
427
428
428
428
428
429
433
433
436
436
436
437
438
438
438
445
448
450
453
453
458
465
465
466
468
468
468
469
471
471
487
492
492
505
510
510
528
531
533
552
557
557
572
577
577
598
598
601
617
619
622
624
638
643
643
661
666
666
679
679
681
681
681
685
687
690
705
710
710
1228
1229
1230
8
8
8
12
13
13
14
16
17
17
17
18
18
18
18
18
18
18
19
20
27
27
27
32
32
35
40
44
44
45
45
45
47
52
52
52
52
52
55
55
55
56
56
56
60
63
63
64
64
68
68
71
72
72
78
78
80
82
84
85
85
85
85
85
86
86
86
88
88
94
100
105
105
106
106
106
107
107
107
107
107
108
109
109
110
110
110
110
110
110
110
111
111
111
111
111
111
112
112
112
112
112
112
112
113
113
113
113
113
113
114
114
116
116
122
126
128
128
130
130
149
151
151
153
173
175
175
177
177
193
197
197
211
215
215
228
232
234
234
236
236
250
252
254
269
269
270
271
271
271
272
272
272
272
272
272
272
273
274
274
274
275
275
275
275
276
277
277
277
278
278
278
278
278
278
278
278
278
278
278
278
279
279
281
281
281
281
289
296
296
296
296
296
296
297
301
301
305
312
312
316
321
321
324
324
333
333
336
340
342
345
353
353
353
353
355
360
361
363
368
368
369
379
382
385
386
387
405
408
410
410
418
429
429
429
430
434
434
438
439
439
439
449
451
453
453
454
457
457
459
466
466
467
467
467
467
469
472
472
488
493
493
506
511
511
529
532
534
553
558
558
573
578
578
599
599
602
620
623
625
639
644
644
662
667
667
679
679
681
681
682
682
686
688
691
706
711
711
1229
1230
1231
1
5
5
9
9
9
13
14
15
15
15
15
16
16
17
18
19
19
19
19
19
20
21
25
25
27
34
34
35
41
43
43
43
43
45
45
45
49
49
53
54
56
56
56
57
57
57
61
61
61
63
65
65
73
73
80
80
80
85
86
87
87
88
89
89
94
95
96
96
104
104
106
106
106
107
107
108
108
108
110
110
110
110
111
111
111
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
114
114
114
114
114
115
116
116
127
131
131
152
152
154
174
176
176
178
194
198
198
212
216
216
229
233
235
235
237
237
253
255
270
270
271
271
271
272
272
272
273
273
273
273
273
273
273
274
274
275
276
276
276
276
276
276
276
276
276
277
277
278
278
278
278
278
279
280
280
280
281
290
290
296
296
297
297
297
298
302
302
304
304
306
313
313
314
314
314
317
322
322
323
324
324
324
324
325
331
332
332
332
334
334
341
343
344
344
346
351
353
353
354
354
359
361
362
364
369
369
370
370
370
370
383
383
386
388
399
399
406
411
411
416
419
430
430
430
435
435
437
439
440
440
450
452
455
458
458
460
468
468
468
468
468
473
473
489
494
494
507
512
512
530
533
533
535
535
554
559
559
574
579
579
600
600
603
621
624
626
640
645
645
663
668
668
682
682
683
683
687
689
692
707
712
712
1230
1231
1232
1
1
5
9
10
10
15
16
17
18
20
20
20
20
21
22
27
27
27
32
32
34
35
42
44
44
45
45
45
46
48
48
50
51
53
53
54
54
54
57
57
58
58
61
62
63
63
64
66
66
68
73
78
78
80
85
85
86
88
90
90
94
96
96
97
97
100
104
106
106
107
107
107
107
107
107
108
108
108
109
109
109
110
110
110
110
110
111
111
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
114
114
115
115
116
116
128
132
132
153
153
155
175
177
177
179
195
199
199
213
217
217
234
238
238
254
254
256
256
269
269
271
271
271
272
272
272
273
273
273
274
274
274
274
274
274
274
275
275
276
276
276
277
277
277
277
278
278
278
279
279
279
281
287
298
298
298
299
303
303
305
305
307
315
315
315
315
318
323
323
325
325
326
331
331
331
332
333
333
333
342
342
344
345
345
347
354
355
355
355
360
362
362
365
370
370
371
371
383
384
384
386
386
387
389
397
400
400
407
412
412
412
416
417
428
431
436
436
438
438
451
453
456
457
459
459
469
469
469
474
474
490
495
495
508
513
513
531
536
536
555
560
560
575
580
580
601
604
622
625
627
641
646
646
664
669
683
683
688
690
693
708
713
713
1231
1232
1233
5
5
9
11
11
15
16
17
17
18
18
19
20
20
21
21
21
22
23
25
25
27
34
34
34
35
35
35
35
43
43
43
45
45
45
45
45
45
47
51
51
54
54
54
55
56
56
57
57
57
59
59
61
63
63
63
63
64
65
65
67
67
68
73
73
80
80
80
87
87
87
88
91
91
96
98
98
104
104
104
105
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
108
108
108
108
108
108
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
111
111
111
112
112
112
112
112
112
112
113
113
113
114
114
116
116
116
129
133
133
154
156
176
178
180
196
200
200
214
218
218
235
239
239
248
252
255
255
257
257
266
268
269
269
270
270
270
271
271
271
272
272
272
272
272
272
273
273
273
274
274
274
274
274
274
275
275
275
276
276
277
277
278
278
278
278
278
279
279
280
280
287
296
299
299
299
300
304
304
304
306
306
316
316
319
324
324
324
324
326
326
333
334
334
334
343
343
343
345
348
353
353
355
359
361
366
371
371
371
383
385
387
387
388
390
398
398
408
412
413
413
417
418
427
432
437
437
443
452
454
457
457
469
470
475
475
491
496
496
509
514
514
532
537
537
556
561
561
576
581
600
602
603
605
623
626
626
628
628
642
647
647
665
670
679
679
689
691
694
709
714
714
1232
1233
1234
8
8
8
8
10
12
12
13
13
15
17
20
20
21
22
22
22
23
24
27
27
27
32
32
35
36
36
44
45
45
45
45
46
46
46
48
54
54
55
55
55
56
57
58
58
58
58
60
60
63
63
64
65
65
65
65
65
68
68
68
68
73
74
78
78
80
80
80
80
85
85
88
88
90
90
92
92
96
96
98
106
106
106
106
108
108
108
108
108
108
108
108
108
109
109
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
114
115
115
130
134
134
151
153
155
155
157
157
177
179
181
197
201
201
215
219
219
236
240
240
249
253
256
256
258
258
267
267
268
268
269
269
270
270
270
270
270
271
271
271
272
272
272
272
272
272
273
273
273
273
273
273
274
274
274
274
274
274
275
275
275
275
275
276
276
276
277
278
278
278
279
279
279
280
281
296
299
300
300
301
304
305
305
316
320
325
325
325
332
334
335
335
344
346
349
354
360
360
362
362
367
371
372
372
384
386
386
388
388
388
389
391
406
409
414
414
416
418
419
427
428
428
428
433
438
438
440
444
453
453
455
457
458
458
469
471
476
476
492
497
497
510
515
533
538
538
557
562
562
577
582
603
604
606
624
629
629
643
648
648
666
668
668
671
680
680
681
681
681
690
692
692
695
695
710
715
715
1233
1234
1235
5
9
11
11
11
11
12
13
14
14
15
15
17
18
18
19
20
21
21
22
23
23
23
23
24
25
25
25
25
27
27
27
27
37
37
43
45
47
47
47
47
49
52
56
56
56
57
57
59
59
61
61
63
63
65
65
66
69
69
73
73
74
75
75
75
75
80
80
80
80
81
81
87
87
88
89
91
91
93
98
98
98
106
106
106
107
108
108
108
108
108
108
108
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
110
111
111
111
112
112
112
112
112
113
113
113
113
113
113
113
114
114
115
116
131
135
135
152
154
156
156
158
158
180
182
198
200
200
202
202
216
220
220
237
241
241
250
254
259
259
268
268
269
269
270
270
271
271
271
271
271
271
271
271
272
272
272
272
272
273
273
273
273
273
274
274
274
274
274
274
274
274
274
274
274
274
275
275
275
275
275
276
276
276
276
276
277
277
277
279
281
281
282
282
287
287
296
300
301
301
304
305
306
306
316
321
324
326
326
326
333
333
345
345
347
347
350
350
353
353
355
360
362
363
363
368
373
373
378
386
387
387
390
392
400
407
410
415
415
417
419
427
429
429
434
439
439
440
445
445
453
454
456
458
459
459
472
477
477
493
498
498
511
514
514
516
534
539
539
558
563
563
578
580
580
583
604
605
607
625
630
630
644
649
649
667
669
672
682
682
682
691
696
696
711
716
716
1234
1235
1236
8
8
12
13
15
15
18
18
19
19
20
20
20
21
22
22
22
22
22
22
23
24
24
24
25
26
26
27
27
27
27
28
28
32
37
47
48
48
50
53
54
54
56
57
58
60
60
60
60
62
62
66
66
67
68
68
68
70
70
73
73
73
75
75
78
82
82
85
85
87
88
90
92
92
94
96
96
98
98
98
98
107
107
107
107
107
107
107
107
107
107
107
108
108
108
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
110
110
111
111
112
112
112
112
112
113
113
113
114
115
115
116
117
132
136
136
153
155
157
157
159
159
175
179
181
181
183
183
199
201
201
203
217
221
221
238
242
242
255
260
260
269
269
269
269
269
269
269
269
270
270
271
271
271
271
272
272
272
272
272
272
272
272
273
273
274
274
274
274
274
274
274
274
274
275
275
275
275
275
275
275
275
276
276
276
276
277
277
277
277
278
279
279
281
283
283
288
288
296
302
305
306
307
307
322
324
324
325
327
327
345
346
351
351
353
353
354
354
360
362
363
364
364
369
374
374
379
379
379
387
387
388
388
391
393
400
408
408
411
416
416
417
417
419
419
419
420
428
428
430
430
430
435
440
440
446
446
446
446
457
457
459
460
460
473
478
478
494
499
499
512
515
517
535
540
540
559
564
564
579
581
584
605
606
608
626
631
631
645
650
650
668
670
673
682
683
683
692
697
697
712
717
717
1235
1236
1237
13
14
15
19
19
20
20
20
20
20
21
22
22
23
23
23
24
24
25
25
25
25
26
27
27
29
29
32
37
37
43
43
43
47
48
49
49
51
51
54
56
56
57
57
57
59
61
61
62
62
63
63
65
67
67
68
69
69
71
73
82
82
83
83
87
87
87
88
88
88
88
91
93
95
98
98
98
98
99
99
104
106
107
107
107
107
107
108
108
108
108
109
109
109
109
109
110
110
110
110
110
110
110
110
110
111
111
111
112
112
112
112
112
112
112
113
113
113
114
114
116
118
133
137
137
156
160
160
176
180
182
182
184
184
200
202
202
204
218
222
222
239
241
241
243
243
256
261
261
267
267
270
270
270
270
270
270
270
270
270
271
271
271
271
271
272
272
272
273
273
273
273
273
273
273
274
274
275
275
275
276
276
276
276
276
276
276
277
277
277
277
279
279
279
282
282
284
284
303
304
306
307
308
308
323
323
324
325
326
328
335
347
352
352
355
355
360
360
363
364
370
370
375
375
380
380
389
389
392
394
409
409
409
409
412
417
417
420
420
421
428
429
436
440
440
441
441
444
446
446
447
447
453
458
458
460
460
461
468
474
479
479
495
500
500
513
516
518
536
541
541
560
565
565
580
582
585
606
607
609
627
632
632
646
651
651
669
671
674
683
683
693
698
698
713
718
718
1236
1237
1238
4
4
5
11
12
14
15
16
20
20
21
24
24
25
26
27
28
28
29
30
32
32
37
38
43
44
48
48
48
49
50
50
52
52
54
54
56
57
58
60
63
63
63
64
64
65
65
68
70
70
72
73
74
75
75
78
78
82
82
82
83
83
83
83
83
84
85
85
88
89
89
92
94
96
96
100
100
102
102
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
108
108
109
109
109
109
110
110
110
110
110
110
110
110
112
112
112
112
112
112
113
113
113
113
114
115
117
119
134
138
138
157
161
161
177
181
183
183
185
185
201
203
205
219
221
221
223
223
240
242
242
244
257
262
262
268
268
268
268
269
269
271
271
271
271
271
271
271
271
271
272
272
272
272
272
272
272
273
273
274
274
274
274
274
274
276
276
277
277
277
280
285
285
290
290
296
304
305
307
307
309
309
324
324
326
327
329
335
348
351
353
353
356
356
361
361
362
362
362
364
371
371
371
371
371
376
376
379
380
380
380
380
381
387
388
388
388
390
390
393
395
400
400
407
409
409
410
410
413
417
418
418
419
421
421
429
429
430
430
437
438
441
441
442
442
447
448
448
457
459
459
462
469
469
469
469
475
480
480
496
501
501
514
517
519
537
542
542
561
566
566
581
583
586
607
608
610
628
633
633
647
652
652
670
672
675
694
699
699
714
719
719
1237
1238
1239
5
5
5
5
5
5
6
8
11
11
17
20
20
21
22
22
22
25
25
25
25
25
26
26
27
28
29
29
30
37
37
38
39
39
39
39
43
45
47
47
47
49
49
50
50
51
51
53
53
55
55
56
56
56
57
57
57
57
59
59
60
60
61
64
64
65
65
67
67
68
69
71
73
73
75
75
76
76
78
82
82
83
83
83
83
83
83
83
84
84
84
84
85
86
90
90
95
97
100
101
103
103
106
106
106
106
106
106
106
106
107
107
107
107
107
108
108
108
108
108
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
111
112
112
112
112
112
113
113
113
113
113
114
114
118
120
135
139
139
158
162
162
182
186
186
202
204
206
220
222
222
224
241
243
243
245
258
263
263
263
264
267
267
269
269
269
269
269
270
270
271
272
272
272
272
272
272
272
272
272
272
273
273
273
273
273
273
274
274
275
276
277
277
278
281
286
286
288
291
291
292
292
304
305
306
310
310
324
325
325
327
327
327
330
349
352
354
354
357
363
363
363
363
372
372
372
377
381
381
382
387
387
387
387
388
389
389
389
394
396
398
401
401
410
411
411
414
419
419
420
431
431
438
439
439
443
446
446
448
454
458
458
458
460
460
460
463
470
470
476
481
481
497
502
502
515
518
520
538
543
543
562
567
567
582
584
587
608
609
611
629
634
634
648
653
653
671
673
676
695
700
700
715
720
720
1238
1239
1240
6
6
7
7
14
14
15
18
20
21
21
22
22
23
23
23
25
26
26
27
27
28
28
29
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
60
61
61
61
62
65
65
66
66
68
70
72
74
75
77
77
78
82
82
82
83
83
84
84
84
85
85
85
85
85
85
85
85
86
90
90
94
96
96
96
96
98
98
101
106
106
106
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
111
111
111
112
112
112
112
112
112
113
113
113
117
119
119
121
121
136
138
138
140
140
159
163
163
183
187
187
205
207
221
223
223
225
242
244
246
259
264
264
264
265
267
267
267
267
268
268
269
269
270
270
270
270
270
270
270
270
271
271
272
272
272
272
272
272
273
273
273
274
274
274
274
274
274
276
276
276
276
276
277
277
277
280
280
282
287
287
288
292
293
293
296
296
305
305
306
307
307
311
311
315
324
325
326
327
327
328
328
331
335
335
343
350
352
352
355
355
356
356
358
364
364
372
373
376
376
378
380
380
382
382
388
389
390
390
390
392
395
397
399
399
409
409
411
415
417
420
420
421
429
430
430
430
432
432
439
444
447
458
459
460
461
461
461
464
470
477
482
482
498
503
503
516
519
521
539
544
544
563
568
568
583
585
588
609
610
612
630
635
635
649
654
654
672
674
677
696
701
701
716
721
721
1239
1240
1241
1
4
5
7
7
8
8
11
11
15
22
22
24
24
24
25
27
28
29
29
29
29
29
30
31
31
31
32
32
37
47
47
50
51
51
55
55
59
59
62
62
62
63
67
67
67
67
68
73
75
75
75
77
82
83
85
85
85
85
85
85
85
85
86
86
86
90
90
91
95
96
97
97
99
99
101
101
102
106
106
106
106
106
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
109
109
109
109
110
110
110
110
110
110
110
110
111
111
111
111
111
112
112
112
112
112
112
113
113
113
113
114
114
118
120
120
122
122
137
139
139
141
160
164
164
184
188
188
200
204
206
206
208
208
222
224
226
243
245
247
260
265
265
265
265
266
266
267
268
268
268
268
268
269
269
270
270
270
271
271
271
271
272
272
272
272
272
273
273
273
273
273
274
274
274
274
275
275
276
277
277
277
277
277
283
288
288
293
294
294
297
297
297
297
305
307
307
308
308
312
312
316
316
316
327
328
328
329
329
332
333
336
336
344
351
356
356
357
357
359
364
372
374
377
379
381
388
390
391
391
393
396
398
410
416
417
418
419
421
421
429
429
429
430
431
431
431
440
441
442
442
445
446
446
448
458
460
460
461
462
462
462
465
470
478
483
483
499
504
504
517
520
522
540
545
545
564
569
569
584
586
589
611
613
631
636
636
650
655
655
673
675
678
697
702
702
717
722
722
1240
1241
1242
1
1
4
5
6
9
9
14
14
15
20
21
22
22
23
23
24
25
25
26
28
29
29
30
30
30
31
32
32
32
32
32
32
32
37
38
39
39
51
52
52
54
54
56
56
59
59
63
64
64
64
64
64
65
65
68
68
68
68
72
74
74
76
76
77
77
77
82
82
85
85
85
86
86
86
90
91
92
96
98
98
100
100
100
100
102
103
103
106
106
106
106
106
107
107
107
107
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
110
110
110
110
110
110
110
111
111
112
112
113
113
113
113
113
115
119
121
121
123
123
138
140
140
142
161
165
165
185
189
189
201
205
207
207
209
209
223
225
227
246
248
261
266
266
266
266
266
267
267
267
267
268
268
268
269
269
269
269
269
269
269
269
270
270
270
270
270
270
270
271
271
271
272
272
272
272
272
273
273
274
274
274
274
274
274
275
276
276
276
276
276
276
277
278
278
284
288
288
289
289
291
294
295
295
297
297
298
298
305
307
308
308
309
309
313
313
317
317
328
329
329
330
333
334
334
345
345
352
356
357
357
358
358
364
375
378
380
380
382
389
389
394
397
399
401
409
409
411
417
418
419
419
420
422
422
431
432
432
432
441
441
443
446
446
446
447
447
458
458
461
461
462
463
466
479
484
484
500
505
505
518
521
523
541
546
546
565
570
570
585
587
590
612
614
632
637
637
651
656
656
676
679
698
703
703
718
723
723
1241
1242
1243
4
5
5
5
10
10
11
11
15
24
24
24
24
25
26
26
27
29
29
29
31
32
32
33
33
33
37
39
39
40
40
50
52
53
53
54
57
57
59
59
59
59
60
65
65
65
67
67
68
69
69
69
73
75
75
75
75
77
77
77
86
87
90
90
91
92
92
92
92
96
97
100
101
101
103
103
103
103
103
106
106
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
111
112
112
113
120
124
124
139
141
143
162
166
166
186
190
190
202
206
208
208
210
210
226
228
247
247
249
249
262
266
266
267
267
267
267
267
267
267
267
268
268
268
268
268
269
269
269
269
270
270
270
270
270
270
270
270
270
270
270
271
271
271
272
272
272
272
272
273
273
274
274
274
275
275
275
275
276
276
276
276
276
277
277
277
277
277
282
285
289
289
290
290
295
296
296
298
299
299
308
309
309
314
314
316
317
317
317
317
318
327
329
331
334
346
346
346
346
353
356
358
358
376
379
380
380
381
381
395
398
400
401
409
409
410
410
418
420
420
421
423
423
430
432
433
433
442
444
447
448
448
459
459
460
460
460
462
462
464
467
480
485
485
501
506
506
522
524
542
547
547
566
571
571
588
591
613
615
633
638
638
652
657
657
677
680
699
704
704
719
724
724
1242
1243
1244
5
6
6
6
11
11
14
14
15
22
22
24
26
27
27
28
30
32
33
33
34
34
34
39
41
41
47
50
50
54
54
54
54
58
58
59
59
60
61
65
65
66
66
66
66
66
67
68
69
69
70
70
70
74
76
76
77
77
77
78
78
85
85
87
88
90
90
90
92
92
98
100
100
100
101
102
102
103
103
104
106
106
107
107
108
108
108
108
108
108
109
109
110
110
110
110
110
110
110
110
110
110
110
110
110
110
110
111
111
111
112
112
112
113
121
125
125
138
140
142
142
144
163
167
167
187
191
191
207
211
211
221
225
227
227
229
229
241
245
248
248
250
250
263
265
265
266
267
267
268
268
268
268
268
268
268
268
268
269
269
269
269
269
269
269
269
270
270
270
270
270
271
271
271
271
271
271
271
271
272
272
272
272
272
273
273
274
275
275
277
277
278
278
278
283
283
286
291
291
295
297
297
297
297
299
309
310
315
315
318
318
319
324
330
332
335
336
344
346
346
347
347
352
354
356
357
359
359
377
379
380
380
381
382
382
391
396
399
399
401
401
411
411
419
420
421
421
424
424
431
431
441
441
443
444
445
448
449
449
461
461
461
461
463
465
465
468
468
481
486
486
502
507
507
523
525
543
548
548
567
572
572
585
589
589
592
609
614
616
634
639
639
653
658
658
678
681
682
700
705
705
720
725
725
1243
1244
1245
5
5
5
7
11
11
12
12
14
15
18
23
24
24
24
27
28
29
29
30
30
31
32
33
34
34
35
35
35
39
39
41
52
52
53
55
59
59
60
61
61
63
63
67
67
67
67
68
68
68
68
70
70
71
71
75
75
75
77
79
79
82
85
85
90
99
102
103
103
103
103
103
104
105
106
106
107
107
107
107
107
107
107
108
108
108
108
108
108
108
109
110
110
110
110
111
111
111
112
112
112
112
112
113
113
122
126
126
139
143
143
145
164
168
168
188
192
192
208
212
212
222
226
228
228
230
230
242
246
249
249
251
251
264
266
266
267
267
267
267
267
268
268
269
269
269
269
269
269
270
270
270
270
270
270
270
270
271
271
271
271
271
271
272
272
272
272
272
272
272
272
272
273
273
273
274
275
278
278
279
279
287
292
292
297
297
298
311
316
316
317
317
319
319
324
325
327
327
331
333
336
336
347
348
348
352
355
357
358
360
360
363
378
380
381
382
383
383
391
397
402
402
407
412
412
420
420
421
421
421
422
425
425
439
442
442
444
445
446
449
450
462
462
464
469
469
482
487
487
503
508
524
526
544
549
549
568
573
573
590
590
593
610
612
615
617
635
640
640
654
659
659
673
677
679
682
683
683
683
701
706
706
721
726
1244
1245
1246
5
6
6
8
13
13
14
14
14
15
15
15
15
22
22
24
24
29
29
30
31
32
32
32
34
35
36
36
41
41
41
50
50
53
56
59
60
60
61
62
62
64
65
65
67
67
68
68
69
69
71
71
72
72
76
77
77
77
80
80
87
87
88
90
91
92
92
100
102
103
103
104
104
104
105
105
106
106
106
106
106
107
107
107
107
108
108
108
108
109
109
109
109
109
109
109
110
110
110
110
111
112
112
112
112
113
113
123
127
127
140
144
144
146
165
167
167
169
169
189
193
193
209
213
213
223
227
229
229
231
231
243
247
252
252
263
263
265
265
265
267
267
268
268
268
268
268
269
270
270
270
270
270
270
270
270
270
271
271
271
271
271
271
271
271
271
271
271
272
272
273
273
273
273
273
275
275
288
289
293
293
297
297
299
305
305
312
317
317
318
324
328
328
332
334
337
346
346
348
356
356
358
359
361
361
364
364
364
364
371
379
380
381
382
383
384
398
403
403
408
413
421
422
422
423
426
426
433
440
440
445
445
445
447
449
449
450
451
462
465
469
470
470
483
488
488
504
507
507
509
518
525
527
545
550
550
569
574
591
591
594
613
616
618
636
641
641
655
660
660
678
680
683
683
684
684
702
707
707
722
725
725
727
1245
1246
1247
5
5
5
9
11
11
14
14
15
16
16
24
24
24
25
30
31
31
32
32
33
34
34
34
35
35
35
35
35
36
37
37
39
39
41
52
52
53
57
59
59
59
61
61
61
61
61
65
65
68
68
68
69
70
70
71
71
73
73
75
75
77
77
77
77
77
81
81
82
83
85
85
88
90
92
92
93
93
101
102
102
103
103
103
104
105
105
105
106
106
106
107
107
107
107
107
107
108
108
108
108
108
108
108
109
109
109
109
110
110
110
110
110
110
110
110
111
111
112
112
112
112
124
128
128
145
145
147
166
168
168
170
190
194
194
210
214
214
228
232
232
248
253
253
264
264
264
264
265
265
265
266
266
266
267
267
267
267
268
268
268
268
269
269
269
269
269
269
270
270
270
271
271
272
272
272
272
272
272
273
273
273
273
273
275
289
289
294
294
297
297
298
298
306
306
307
307
307
313
317
318
318
319
325
327
329
329
329
335
336
336
338
347
352
357
357
359
359
362
362
365
365
372
372
372
380
380
381
383
383
383
384
385
391
391
399
399
404
404
408
408
412
412
412
414
422
423
423
427
427
433
446
448
450
450
451
452
462
466
470
470
470
471
471
484
489
489
505
508
510
519
523
526
528
546
551
551
570
575
592
592
595
614
617
619
637
642
642
656
661
661
679
681
684
684
684
703
708
708
723
726
728
1246
1247
1248
5
5
6
6
6
6
10
15
15
17
17
22
22
24
24
24
24
27
27
31
32
32
34
35
35
36
36
36
36
37
38
41
41
41
50
50
53
58
59
60
61
61
61
62
62
62
65
69
69
69
70
70
72
72
72
72
74
74
77
77
77
77
78
78
78
82
82
82
82
82
83
83
83
83
84
87
87
88
92
94
94
100
102
103
103
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
108
108
108
108
108
108
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
111
112
113
113
125
129
129
144
146
146
146
148
167
169
169
171
191
193
193
195
195
211
215
215
229
233
233
249
254
254
261
262
263
265
265
265
265
265
266
266
266
267
267
267
267
267
268
268
268
268
270
270
270
270
270
271
271
272
272
273
273
273
273
273
275
279
290
295
295
299
299
308
308
308
308
314
317
317
318
319
319
327
328
334
336
337
337
339
346
346
348
356
358
358
363
363
365
373
373
384
384
384
385
386
389
392
392
400
400
405
405
412
413
413
415
421
423
428
428
442
447
449
449
451
451
452
467
471
471
472
472
485
490
490
506
509
511
524
527
529
547
552
552
571
573
573
576
593
593
596
615
618
620
638
643
643
657
662
662
680
682
685
704
709
709
724
727
729
1247
1248
1249
5
5
5
5
7
7
11
11
14
14
16
16
17
24
24
24
24
25
25
27
28
28
32
32
33
34
34
35
35
36
37
37
37
37
38
39
39
39
41
41
41
41
52
52
53
59
61
61
61
61
62
63
63
63
65
66
70
70
70
71
73
73
75
75
75
79
79
79
82
82
83
83
83
83
83
83
83
84
84
84
85
85
85
88
92
92
94
103
103
103
103
104
105
105
105
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
107
107
108
108
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
110
110
110
111
113
126
130
130
145
147
147
149
168
170
172
192
194
194
196
212
216
216
230
234
234
250
255
255
262
263
263
263
264
266
266
266
266
266
266
266
266
266
266
267
267
267
267
267
268
268
268
268
268
268
268
268
268
268
268
268
269
269
269
269
270
270
272
272
273
273
273
275
279
285
291
291
296
296
300
300
309
309
315
316
317
318
319
320
320
328
328
329
329
335
335
337
340
346
346
347
347
357
357
359
359
359
364
364
365
372
373
373
373
373
374
385
385
385
387
390
390
401
401
401
406
406
408
413
414
414
420
424
429
429
433
433
442
449
450
453
468
470
471
471
471
471
472
473
473
486
491
491
507
510
512
525
528
530
548
553
553
572
574
577
594
594
597
616
619
619
621
621
639
644
644
658
663
663
681
683
686
705
710
710
725
728
730
1248
1249
1250
8
8
8
11
12
15
15
17
17
17
22
26
26
29
29
32
32
32
33
33
34
35
36
36
37
38
38
39
40
41
41
41
41
42
42
50
50
52
53
60
62
62
63
63
64
65
65
67
70
70
71
72
74
74
74
74
76
76
79
80
80
83
83
84
84
84
84
84
85
85
85
86
87
87
88
94
94
94
104
104
105
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
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
112
127
131
131
146
148
148
150
169
171
173
193
195
195
197
213
217
217
231
235
235
251
256
256
263
264
264
264
265
265
265
266
266
267
267
267
267
267
267
268
268
268
268
268
268
268
268
268
268
269
269
269
269
269
269
269
269
269
270
270
270
270
270
270
272
273
274
286
287
287
292
292
297
297
301
309
316
317
319
320
321
330
330
332
336
338
341
348
348
357
359
360
360
360
365
365
374
374
375
383
386
388
402
402
402
402
402
407
407
414
420
421
421
421
425
430
430
431
434
434
445
449
450
451
454
461
469
472
472
473
474
474
487
492
492
508
511
513
526
529
531
549
554
554
573
575
578
595
595
598
617
622
622
640
645
645
659
664
664
682
684
684
687
687
706
711
711
726
729
731
1249
1250
1251
5
9
9
11
11
13
16
16
17
18
18
26
27
33
34
34
34
34
35
35
37
37
37
38
38
39
39
39
40
41
43
43
52
52
52
53
53
53
53
61
61
61
63
63
63
65
68
70
70
71
71
71
72
72
72
72
73
75
75
75
75
76
76
77
77
80
81
83
84
85
85
85
85
85
85
86
86
86
87
88
92
92
94
94
94
94
102
102
102
103
103
103
103
103
104
105
105
106
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
109
109
110
110
110
110
110
110
110
110
110
110
111
112
112
112
113
128
132
132
149
149
151
172
174
194
196
198
214
218
218
232
236
236
252
257
257
263
264
264
265
265
265
265
265
265
266
266
266
266
266
266
267
267
268
268
268
268
268
269
269
269
269
269
269
269
270
270
270
270
270
270
270
270
270
273
274
275
279
279
283
287
288
288
292
292
293
298
298
300
300
302
309
317
317
318
320
322
328
329
329
329
331
331
337
337
339
342
344
349
349
357
359
360
361
361
361
366
366
373
373
375
375
380
380
387
389
392
400
402
402
403
403
403
408
408
412
415
420
422
422
426
431
431
432
432
445
450
451
452
455
462
462
462
462
470
471
471
473
473
475
475
488
493
493
509
512
514
527
530
530
532
532
550
555
555
574
576
579
596
596
599
618
623
623
641
646
646
660
665
665
683
688
688
707
712
712
727
730
732
1250
1251
1252
1
5
9
10
14
17
17
17
18
19
19
19
19
19
22
22
25
27
30
32
32
34
34
35
35
38
39
40
40
41
42
43
44
50
50
53
54
54
61
62
63
63
64
64
65
66
70
70
70
72
72
72
74
75
77
77
78
78
80
80
81
82
86
86
86
86
87
87
87
88
88
88
88
94
94
94
94
95
95
103
103
104
105
106
106
106
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
108
108
109
109
110
110
110
110
110
111
112
112
112
129
131
131
133
133
150
150
152
167
171
173
173
175
175
195
197
199
215
219
219
233
235
235
237
237
253
258
258
261
261
262
262
264
264
265
265
266
266
266
266
267
267
267
267
268
268
268
269
269
269
269
270
270
270
270
270
270
270
270
270
271
271
271
271
271
273
273
275
276
280
280
284
288
289
289
294
299
299
301
301
303
317
318
318
320
320
320
320
321
323
328
328
328
329
330
330
330
337
338
340
343
345
350
357
357
360
361
362
364
367
367
374
380
381
381
383
383
385
388
390
392
403
404
404
404
408
409
409
412
413
421
421
423
423
423
427
432
432
447
449
451
451
452
453
456
463
463
471
472
476
476
489
494
494
510
513
515
528
533
533
551
556
556
575
577
580
597
600
619
624
624
642
647
647
661
666
684
689
689
708
713
713
728
731
733
1251
1252
1253
1
1
1
5
5
9
11
11
15
17
17
17
18
19
19
20
22
27
27
28
31
34
34
34
34
35
35
35
35
35
36
39
39
39
39
39
40
40
41
41
41
42
43
43
44
55
55
61
63
63
63
63
64
65
65
65
67
69
69
70
73
73
74
74
75
75
78
78
79
79
79
79
79
81
82
82
83
85
85
87
87
88
89
89
92
96
96
103
103
103
104
104
104
104
104
105
105
105
105
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
108
108
108
108
108
108
109
109
109
109
109
109
109
109
110
110
110
111
130
132
132
134
151
153
168
172
174
174
176
176
198
200
216
218
218
220
220
234
236
236
238
254
259
259
262
262
262
263
263
263
263
263
263
264
264
265
265
266
266
266
266
266
267
267
267
268
268
268
268
268
269
269
269
269
269
270
270
270
270
271
271
271
271
271
274
274
276
277
289
289
289
290
290
295
300
300
300
302
302
319
321
321
321
322
324
330
331
331
331
339
341
344
345
345
349
349
351
358
358
359
359
359
361
363
365
365
365
365
368
368
373
375
380
384
384
386
389
391
402
402
404
405
408
410
410
413
414
421
422
428
433
433
434
440
445
450
452
452
452
454
457
463
471
472
473
477
477
490
495
495
511
514
516
529
534
534
552
557
557
576
578
581
596
598
599
601
620
625
625
643
648
648
662
667
685
690
690
709
714
714
729
732
734
1252
1253
1254
5
5
8
8
8
8
10
12
12
17
19
21
22
26
26
26
28
29
29
32
32
32
35
35
35
36
36
36
37
39
40
40
41
41
42
42
42
42
43
44
44
44
44
45
50
55
63
63
65
65
65
65
65
66
68
70
71
72
72
74
75
75
75
76
79
80
80
80
82
82
82
82
82
84
86
86
88
88
90
90
96
97
102
102
103
103
103
103
103
103
104
104
105
105
105
105
105
105
105
106
106
106
106
106
106
107
107
107
107
108
108
108
108
108
108
108
108
108
108
108
108
109
109
109
109
110
110
110
110
110
112
131
133
133
135
148
150
152
152
154
154
169
173
175
175
177
177
193
197
199
199
201
201
217
219
219
221
235
237
237
239
255
259
259
260
260
262
262
263
263
263
263
263
263
263
264
264
264
264
264
264
264
264
264
265
265
265
265
266
266
266
266
266
266
267
267
267
267
267
268
268
268
269
269
269
270
270
270
270
271
271
273
277
278
290
290
290
290
290
291
291
296
300
301
301
320
322
322
322
325
329
331
332
332
340
342
345
350
350
352
360
360
360
360
364
366
366
369
369
373
373
374
381
383
385
385
385
387
390
392
392
392
403
406
411
411
412
414
415
422
422
423
423
429
434
434
434
441
449
451
453
455
458
463
471
471
472
473
478
478
491
496
496
515
517
530
535
535
553
558
558
577
579
582
599
600
602
621
626
626
644
649
649
663
665
665
668
686
691
691
710
715
715
733
735
1253
1254
1255
1
4
4
5
5
6
6
9
11
11
11
11
12
13
17
18
18
19
19
20
20
22
22
26
27
29
29
29
29
29
36
37
37
37
38
39
41
42
43
43
43
43
43
43
43
44
45
45
45
46
46
50
55
55
55
55
61
63
63
65
65
66
67
67
69
69
70
72
72
73
73
76
76
76
77
79
79
81
81
82
83
85
85
87
87
89
90
92
92
97
102
102
103
103
103
103
103
104
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
108
108
108
108
108
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
111
113
132
134
136
149
151
153
153
155
155
174
178
178
194
198
200
200
202
202
218
220
220
222
236
238
240
256
259
260
260
260
261
261
261
261
261
261
263
263
263
264
264
264
264
264
264
264
264
265
265
265
265
265
265
265
265
265
265
266
266
266
266
267
267
267
268
268
268
268
271
271
271
271
271
271
273
274
278
278
279
279
280
284
290
290
291
291
292
292
292
297
300
301
302
302
320
321
323
326
330
330
341
343
343
346
346
349
351
351
361
361
365
366
370
372
373
374
375
383
384
388
390
391
393
393
393
402
402
404
407
412
412
413
415
424
424
430
435
442
442
450
450
452
452
454
456
459
470
471
472
473
474
479
479
492
497
497
516
518
531
536
536
554
559
559
578
580
583
600
601
603
622
627
627
645
650
650
664
666
669
687
692
692
711
716
716
734
736
1254
1254
1256
4
5
5
5
5
5
6
6
7
7
8
8
12
13
14
17
19
19
19
20
20
21
21
23
23
26
26
29
30
32
34
35
37
37
37
39
39
40
42
43
43
44
44
44
45
46
46
46
46
46
46
46
50
50
50
55
55
56
62
66
66
67
68
68
68
70
70
72
73
74
74
77
78
78
78
78
78
80
81
82
82
83
84
85
86
88
88
90
90
90
92
97
97
98
103
104
104
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
110
110
110
110
111
112
112
112
114
114
131
133
135
135
137
150
152
154
154
156
156
175
179
179
195
199
201
201
203
203
219
221
223
237
239
241
257
260
261
261
261
261
261
262
262
262
262
262
263
263
263
264
264
264
264
265
265
265
265
265
265
266
266
266
266
266
266
266
266
266
266
266
266
266
267
267
267
267
267
268
268
268
269
269
271
271
271
273
273
275
280
280
280
290
291
292
292
292
298
301
302
303
303
308
317
322
324
327
335
342
347
347
349
361
366
366
369
369
371
373
375
376
384
384
385
385
389
391
391
392
392
394
394
402
402
403
403
408
413
413
413
413
415
415
415
416
422
423
423
423
425
425
431
434
434
436
443
443
443
443
450
452
453
453
455
457
460
471
473
474
475
480
480
493
498
498
517
519
532
537
537
555
560
560
581
584
601
602
604
623
628
628
646
651
651
665
667
670
683
688
693
693
712
717
717
735
737
1254
1255
1255
1257
4
5
5
5
6
6
7
7
8
8
13
14
15
19
20
21
21
22
22
24
24
30
31
32
37
37
38
39
40
40
41
43
43
43
45
46
46
47
47
47
56
57
57
63
65
67
67
68
69
69
71
71
72
72
74
74
79
79
79
80
81
81
82
82
83
83
84
85
85
85
87
89
90
91
91
96
96
98
99
99
102
103
103
103
103
105
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
110
110
110
110
110
110
111
112
113
113
115
115
132
136
136
138
153
157
157
176
180
180
200
204
204
220
222
224
240
242
258
259
261
261
262
262
262
262
263
263
263
263
263
263
264
264
264
264
264
264
265
265
265
265
266
266
266
266
266
266
266
267
267
267
267
267
267
267
267
267
268
268
268
269
269
276
281
281
290
290
292
292
299
300
302
303
304
304
309
309
309
317
318
320
320
323
325
328
332
336
343
345
348
348
349
350
361
367
370
372
373
374
376
386
386
390
395
395
404
404
409
414
414
416
416
417
422
422
422
423
424
424
424
432
432
434
434
435
435
437
441
443
443
444
444
450
452
453
454
454
456
458
458
461
461
471
472
474
476
481
481
494
499
499
511
518
520
533
538
538
556
561
561
578
582
582
585
602
603
605
624
629
629
647
652
652
666
668
671
684
689
694
694
713
718
718
729
736
738
1256
1256
1258
4
4
5
5
6
7
7
8
8
9
9
12
14
15
19
19
21
21
25
25
29
31
32
32
32
37
38
40
41
41
42
44
46
47
47
48
48
48
55
57
63
65
65
68
72
72
74
74
74
75
79
80
80
80
80
80
80
81
81
82
82
82
83
83
83
84
84
88
90
90
90
91
92
92
92
92
92
92
96
99
99
99
99
99
102
102
102
103
103
103
104
104
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
110
110
110
110
110
110
112
114
114
116
116
133
137
137
139
154
158
158
177
181
181
201
205
205
223
225
241
241
243
243
259
260
262
262
262
263
263
263
263
263
263
263
263
264
264
264
264
264
264
264
264
264
264
264
265
265
265
265
265
266
266
266
267
267
267
267
268
268
268
268
268
268
268
268
269
269
269
277
280
280
282
282
291
292
292
300
301
303
303
305
305
310
310
317
321
321
324
326
329
332
337
337
344
345
349
349
350
351
368
371
373
373
374
376
376
377
384
385
385
385
387
387
391
393
396
396
400
405
405
410
413
415
415
415
417
417
424
425
425
425
433
433
433
435
438
444
445
445
450
450
453
454
457
462
462
471
472
474
474
475
477
482
482
495
500
500
512
516
519
521
534
539
539
557
562
562
583
583
586
603
604
606
625
630
630
648
653
653
667
669
672
684
684
690
695
695
714
719
730
734
737
739
1257
1257
1259
4
4
4
5
5
5
5
5
6
7
8
8
8
10
10
11
11
21
21
21
22
26
26
26
29
29
32
37
37
37
38
39
39
39
39
41
42
43
43
44
44
45
46
47
48
48
49
49
49
55
55
55
57
57
57
67
67
68
69
72
72
73
73
74
77
77
80
81
81
81
82
83
84
84
84
84
84
85
85
85
85
90
90
90
91
92
92
93
96
96
96
97
99
100
102
103
103
103
103
104
104
104
104
105
105
105
106
106
106
106
106
107
107
107
107
107
107
107
107
108
108
108
108
108
108
109
109
109
109
109
110
113
117
117
138
138
140
155
159
159
178
182
182
202
206
206
218
222
224
224
226
226
235
239
242
242
244
244
259
260
260
260
261
263
264
264
264
264
264
264
264
265
265
265
265
266
266
266
266
266
266
267
267
267
268
268
268
268
268
268
269
269
269
269
269
269
269
269
269
274
278
281
281
283
283
290
290
292
300
301
302
306
306
309
310
310
310
310
311
318
320
322
322
322
325
327
330
338
338
338
338
345
349
350
350
351
352
369
372
374
377
377
378
384
384
384
385
386
386
386
392
393
397
397
401
406
411
416
416
416
423
425
426
426
434
436
439
443
443
445
451
451
452
452
452
454
458
462
463
463
475
475
476
478
483
483
496
501
501
517
520
522
535
540
540
558
563
563
584
584
587
604
605
607
626
631
631
649
654
654
668
670
673
684
685
685
691
696
696
715
718
718
720
735
738
740
1258
1258
1260
4
4
5
5
5
6
6
7
8
9
9
11
11
14
14
15
19
19
21
23
27
27
31
31
32
32
37
37
37
38
39
39
43
43
44
45
46
46
46
48
49
50
50
55
56
57
57
57
58
65
65
68
70
74
74
74
74
74
76
76
78
80
81
81
81
81
82
82
82
82
83
84
85
85
85
86
86
86
90
90
92
92
94
94
98
100
101
102
102
103
103
104
104
104
104
105
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
109
109
109
109
110
110
110
110
114
118
118
137
139
139
139
141
156
160
160
179
183
183
203
207
207
219
223
225
225
227
227
236
240
243
243
245
245
260
261
261
261
261
261
261
261
262
262
262
262
264
264
264
264
264
264
265
265
265
265
265
266
266
266
266
266
266
266
266
267
267
267
267
268
269
269
269
269
269
270
270
273
273
273
273
275
275
279
284
284
290
290
291
291
301
301
302
303
303
307
307
311
311
312
320
321
328
331
332
332
336
338
338
339
339
345
346
350
351
351
352
352
360
370
373
375
378
378
386
387
387
387
393
398
398
401
401
405
405
405
407
412
413
417
417
417
424
424
435
435
437
440
444
453
453
453
453
459
463
463
463
464
464
476
476
479
484
484
497
502
518
521
523
536
541
541
559
564
564
585
585
588
605
606
608
627
632
632
650
655
655
669
671
674
685
685
686
692
697
697
716
719
721
736
739
741
1259
1259
1261
4
5
6
7
8
8
8
8
8
9
10
10
11
11
12
12
15
21
21
21
24
28
28
29
29
32
37
39
44
45
45
46
46
47
48
48
48
49
49
49
50
51
51
57
58
59
67
67
68
71
72
72
74
75
75
79
79
80
81
81
82
82
82
82
83
83
84
84
84
85
85
85
87
87
87
90
91
91
92
92
93
93
95
95
98
99
99
101
102
102
102
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
105
105
105
105
106
106
106
106
106
106
106
106
106
106
107
107
107
107
108
108
108
108
108
108
108
109
109
109
110
110
115
119
119
138
140
140
142
157
161
161
180
184
184
204
208
208
220
224
226
226
228
228
237
241
246
246
259
259
260
260
260
260
260
261
261
261
262
262
262
262
262
262
262
262
262
262
263
263
264
264
265
265
265
265
265
266
266
266
266
266
266
266
266
267
267
267
269
269
270
271
271
274
274
280
282
285
285
292
292
301
303
303
304
304
308
308
310
310
312
312
321
321
322
322
329
330
332
333
333
339
340
340
347
349
351
352
352
361
361
361
361
365
371
374
376
376
385
387
388
388
394
399
399
405
406
406
408
413
413
414
415
418
418
435
436
438
441
443
443
445
454
454
460
464
464
465
465
474
480
485
485
498
501
501
503
519
522
524
537
542
542
560
565
565
586
586
589
607
609
628
633
633
651
656
656
670
672
675
685
685
686
687
693
698
698
717
720
722
737
740
742
1260
1260
1262
7
7
8
9
9
9
9
11
11
13
13
14
14
15
19
19
21
25
29
29
31
31
32
37
38
39
39
41
41
45
46
46
48
49
49
50
50
51
52
52
59
59
65
65
68
72
74
74
74
76
76
81
82
82
82
82
83
83
83
83
84
84
85
86
86
86
86
88
88
88
90
92
92
92
93
93
94
94
96
96
99
99
99
100
100
103
103
103
103
103
103
103
103
103
103
103
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
108
108
108
108
108
108
108
108
108
109
109
110
110
110
110
110
116
120
120
139
141
141
143
158
162
162
181
185
185
205
209
209
225
229
229
242
247
247
255
256
257
258
259
259
259
260
260
261
261
261
261
261
261
261
261
262
262
262
263
263
263
263
263
263
263
263
263
263
264
264
266
266
266
266
266
267
268
269
269
269
271
272
272
273
273
273
273
275
275
278
281
281
282
283
284
286
286
293
293
301
303
304
304
305
305
309
309
311
323
323
330
331
331
333
338
338
340
348
350
350
352
352
353
353
362
362
366
366
366
372
373
375
377
386
386
395
400
400
401
406
407
407
414
414
415
415
416
419
419
426
437
439
442
443
443
444
444
454
461
463
464
464
464
464
465
466
466
471
481
486
486
499
502
504
520
523
523
525
525
538
543
543
561
566
587
587
590
608
610
629
634
634
652
657
657
673
676
686
687
694
699
699
718
721
723
738
741
741
743
743
1261
1261
1263
5
7
9
10
10
10
10
10
10
11
11
12
12
13
13
14
14
15
21
21
21
26
29
29
30
30
32
37
39
39
40
40
41
42
42
46
46
47
48
48
49
49
50
51
51
52
53
53
57
57
59
67
67
68
72
72
73
74
74
74
74
75
77
77
80
82
82
83
84
84
84
84
85
85
87
87
89
89
92
93
94
94
96
97
97
101
102
102
102
103
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
117
121
121
142
142
144
159
163
163
182
186
186
206
210
210
226
230
230
243
248
248
256
257
257
258
259
259
259
259
259
260
260
260
261
261
261
261
261
262
262
262
262
262
262
262
262
262
263
263
264
264
264
264
264
264
264
264
264
264
264
264
265
265
266
267
267
267
267
268
269
269
269
272
273
273
273
273
273
273
274
274
274
279
281
282
283
284
285
287
287
294
304
305
305
310
310
310
312
321
322
322
322
324
324
325
329
331
334
339
349
350
352
353
353
354
354
362
367
367
373
373
374
376
376
376
378
391
396
401
401
407
415
416
416
417
420
420
426
438
440
443
445
445
454
462
465
465
466
467
467
471
472
474
474
482
487
487
500
503
505
521
526
526
539
544
544
562
567
588
588
591
609
611
630
635
635
653
658
658
674
677
685
685
687
695
700
700
719
722
724
739
744
744
1262
1262
1264
1
1
5
6
7
7
8
11
11
13
13
14
14
14
14
15
15
15
19
19
21
21
21
21
27
31
31
31
31
32
39
41
41
43
43
46
46
46
47
47
48
49
50
50
51
52
53
54
54
57
59
59
60
65
65
67
68
74
74
74
74
74
75
75
78
78
81
82
82
84
84
84
85
86
88
88
88
88
90
90
92
92
94
94
98
98
99
99
99
99
101
102
103
103
103
103
103
103
103
103
104
104
104
104
104
105
105
105
105
106
106
107
107
107
107
108
108
108
108
108
108
109
110
110
110
110
110
110
118
122
122
143
143
145
160
164
164
183
185
185
187
187
207
211
211
227
231
231
244
249
249
257
258
258
259
259
259
259
259
259
259
260
260
260
260
260
261
261
261
262
262
262
262
262
262
262
262
262
263
263
263
263
263
263
263
263
263
263
264
264
264
264
265
265
265
265
265
265
265
265
265
265
266
269
270
273
274
275
275
275
280
283
284
285
285
285
288
288
293
293
295
305
306
310
310
311
311
311
321
321
321
322
323
323
323
330
332
333
335
338
338
340
350
350
352
353
354
354
355
355
362
366
367
367
367
367
368
373
377
377
377
379
388
392
397
402
402
405
408
416
416
417
417
421
421
439
441
441
444
446
446
463
464
464
466
466
468
468
471
475
475
483
488
488
501
504
506
522
527
527
540
545
545
563
565
565
568
589
589
592
605
610
612
631
636
636
654
659
675
678
686
696
701
701
720
723
725
740
745
745
1263
1263
1265
1
1
5
6
7
7
8
8
9
9
11
11
11
11
12
12
14
14
15
15
15
16
16
21
21
21
21
22
22
28
29
29
31
32
32
32
39
39
41
47
48
48
48
48
49
49
51
51
51
52
52
53
53
53
54
55
55
57
59
59
59
60
61
61
67
67
67
68
68
68
68
72
75
76
76
79
79
82
84
84
84
85
85
85
85
85
85
87
89
89
90
90
91
91
94
94
94
95
99
99
101
102
102
102
103
104
104
104
105
105
105
105
106
106
106
106
106
107
107
107
107
107
107
107
107
108
108
108
110
119
123
123
144
146
161
165
165
184
186
186
188
208
212
212
228
232
232
245
250
250
255
257
258
258
259
259
259
260
260
260
260
260
260
260
260
261
261
261
261
261
261
262
262
262
262
262
263
263
263
263
263
264
264
264
264
264
265
265
266
266
266
266
266
266
266
266
267
267
269
270
271
274
275
276
276
281
284
285
286
289
289
294
294
296
307
309
310
311
312
312
312
323
324
324
324
331
333
333
336
338
338
339
339
350
350
351
353
354
356
356
368
368
369
374
376
378
378
378
378
380
388
393
393
398
401
403
403
405
406
416
417
417
417
417
418
422
422
426
426
433
442
442
445
447
464
465
469
469
472
474
476
476
476
484
489
489
502
505
507
523
528
528
541
546
546
564
566
569
590
593
606
608
611
613
632
637
637
655
660
670
674
676
679
685
687
697
702
702
721
724
726
741
746
746
1264
1264
1266
7
7
7
7
8
8
8
9
9
11
12
12
12
13
13
13
14
14
14
15
15
15
15
15
15
15
15
17
17
19
23
23
29
31
31
31
32
32
32
32
33
33
39
41
41
41
44
46
46
48
48
49
49
52
52
53
54
54
54
55
56
59
59
61
61
61
61
61
65
65
68
69
69
76
76
77
80
80
82
82
85
86
86
86
88
91
91
92
92
92
92
94
94
94
94
96
99
99
99
99
100
100
101
102
102
103
103
103
103
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
106
107
107
108
108
109
109
109
110
120
124
124
141
143
145
145
147
147
162
164
164
166
166
185
187
187
189
209
211
211
213
213
229
233
233
246
251
251
255
256
257
258
259
259
260
261
261
261
261
261
261
262
262
262
262
262
262
264
264
264
264
264
264
264
265
265
265
266
266
266
267
267
267
267
267
267
267
267
267
267
267
270
270
271
271
272
272
282
285
286
287
290
290
293
295
295
301
301
308
310
312
313
313
322
324
325
325
332
334
337
340
340
351
351
352
352
352
352
354
357
357
367
367
369
369
376
377
379
381
394
394
394
394
399
401
404
404
406
407
418
418
418
419
423
423
424
427
427
434
442
442
443
446
446
446
448
453
464
465
466
470
470
474
475
485
490
490
503
506
508
524
529
529
542
547
547
565
567
570
589
591
592
594
609
612
614
633
638
638
656
658
658
661
675
677
680
685
686
698
703
703
722
725
727
742
747
747
1265
1267
7
7
8
9
11
11
12
12
13
13
13
14
14
14
15
16
16
16
16
16
16
16
16
18
18
23
24
29
29
30
32
32
32
33
33
34
34
39
39
41
45
48
48
48
48
49
49
49
49
50
53
53
53
54
54
55
55
55
56
57
59
59
61
62
70
70
72
72
77
77
79
79
81
81
83
83
87
87
87
87
88
88
89
92
92
93
93
94
94
94
94
95
95
97
100
101
101
101
102
102
102
102
102
102
103
103
103
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
107
107
107
107
108
108
108
109
109
109
110
110
121
125
125
142
144
146
146
148
148
163
165
165
167
186
188
190
210
212
212
214
230
232
232
234
234
247
252
252
255
256
257
257
257
258
259
259
259
259
259
260
260
260
260
260
260
262
262
262
262
262
262
262
262
262
263
264
264
264
264
264
265
265
265
265
265
267
267
267
267
267
268
269
269
269
273
273
275
283
286
287
291
291
293
302
302
303
303
303
309
310
311
313
314
323
323
333
333
333
335
336
338
341
341
353
353
353
353
353
358
358
361
368
373
377
377
378
378
380
382
388
388
392
394
394
395
395
400
405
405
405
407
408
419
419
419
424
424
425
425
435
435
444
447
447
447
449
454
454
454
454
464
464
465
466
471
471
475
475
476
476
486
491
491
504
507
509
525
530
530
543
548
548
566
568
571
592
593
595
610
613
615
634
639
639
657
659
662
676
678
681
687
699
704
704
726
728
743
748
748
1266
1268
5
9
9
10
13
13
14
15
15
15
17
17
17
17
17
17
19
19
19
19
24
31
33
33
34
34
35
41
41
41
46
46
46
49
49
49
50
50
51
54
54
55
55
56
56
56
57
58
62
63
65
70
72
77
77
78
78
80
80
82
82
87
88
89
89
89
90
92
94
94
96
96
98
99
99
99
100
101
101
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
106
106
107
107
107
107
108
110
110
110
122
124
124
126
126
143
145
147
147
149
149
164
166
166
168
187
189
191
211
213
213
215
231
233
233
235
248
253
253
256
257
257
258
258
258
258
258
258
258
258
258
259
259
259
260
260
260
260
260
260
260
260
261
261
261
261
261
261
262
263
263
263
264
264
264
264
267
267
269
274
274
276
276
283
285
287
292
292
293
294
304
304
304
304
310
310
311
312
312
313
313
314
315
331
334
334
334
336
336
337
339
339
342
354
354
354
359
359
362
362
362
362
367
369
374
378
379
379
381
383
386
389
389
395
396
396
401
406
406
406
408
417
420
425
425
436
436
436
436
439
443
445
446
448
448
448
455
455
463
464
465
466
467
472
472
477
477
487
492
492
505
508
510
526
531
531
544
549
549
567
569
572
593
594
596
611
614
616
635
640
640
658
660
663
677
679
682
688
700
705
705
727
729
744
749
749
1267
1269
1
8
10
10
11
11
14
14
16
17
18
18
18
18
18
18
19
20
20
24
24
25
29
32
34
34
34
36
39
39
41
41
41
41
50
51
51
52
55
56
57
57
57
58
59
61
63
64
65
70
70
72
76
76
76
78
79
79
79
79
79
79
79
81
81
82
83
87
87
90
90
90
91
95
95
96
97
99
99
99
99
101
101
101
102
102
102
103
103
103
103
103
103
103
103
103
103
103
103
103
103
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
107
107
107
107
107
108
109
110
123
125
125
127
146
150
150
165
167
169
190
192
212
214
216
232
234
234
236
249
253
253
254
254
255
256
257
257
257
258
258
259
259
259
259
259
259
259
260
260
260
260
260
260
261
261
261
261
261
262
262
262
262
262
262
262
262
262
262
263
264
264
267
267
267
269
270
275
275
276
281
281
285
288
293
293
294
295
305
305
311
313
314
314
315
316
325
332
332
335
337
337
340
340
341
341
343
354
355
360
360
363
363
367
367
368
377
378
378
378
379
380
380
382
384
387
387
394
394
396
402
406
406
407
407
408
408
408
409
416
421
426
426
427
434
436
436
437
437
444
446
446
449
455
464
466
467
468
473
473
475
476
476
476
478
478
488
493
493
509
511
527
532
532
545
550
550
568
570
573
594
595
597
612
615
615
617
617
636
641
641
659
661
664
678
680
683
685
701
706
706
728
730
745
750
750
1263
1268
1270
7
9
9
11
11
15
15
15
17
17
17
19
19
19
19
19
20
20
21
21
23
23
23
25
26
26
29
33
34
34
35
37
41
41
41
41
42
42
46
48
49
51
51
51
53
53
54
57
58
58
58
59
59
60
61
61
65
65
70
71
76
76
76
77
79
79
79
79
79
79
79
79
79
80
80
80
82
82
82
82
84
87
87
88
91
92
92
92
92
92
92
92
96
96
97
99
99
100
101
101
101
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
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
106
106
107
107
107
107
107
109
109
109
109
109
109
124
126
126
128
147
151
151
166
168
170
185
189
191
191
193
193
213
215
217
233
235
237
250
254
254
255
255
256
256
256
257
257
257
258
258
258
258
259
259
259
259
260
260
260
260
260
260
260
261
261
261
261
262
262
262
262
262
262
262
262
262
262
263
263
263
263
263
265
265
267
267
271
276
276
282
282
282
282
289
293
294
294
295
296
305
312
314
315
315
317
325
336
341
341
342
342
344
354
356
361
361
363
366
367
368
369
377
377
377
378
379
379
379
380
383
385
395
403
408
408
409
409
410
416
417
417
417
422
427
427
427
437
438
438
442
445
446
447
447
450
455
464
465
467
469
474
474
475
475
475
476
477
477
477
489
494
494
510
512
528
533
533
546
551
551
569
571
574
595
596
598
613
618
618
637
642
642
660
662
665
679
681
681
684
684
684
685
686
702
707
707
722
729
731
746
751
751
1264
1266
1269
1271
10
10
11
11
11
16
16
17
18
18
20
20
21
21
22
22
23
24
26
26
26
26
26
29
29
34
34
35
36
38
39
43
43
46
51
51
51
51
52
53
53
54
54
55
57
59
59
59
60
61
61
63
63
64
70
70
71
72
72
72
72
76
76
76
76
79
80
80
80
81
81
81
83
85
87
87
88
88
89
89
89
89
92
93
93
93
97
97
97
97
97
97
98
99
99
99
99
99
100
100
101
102
102
102
102
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
106
106
106
106
107
107
107
108
108
108
108
108
110
110
110
110
110
110
125
127
129
148
152
152
169
171
186
190
192
192
194
194
216
218
234
236
238
251
253
253
253
254
255
255
255
256
257
257
257
257
257
257
257
258
258
258
259
259
260
260
260
260
260
260
261
261
261
261
261
261
261
261
261
261
262
262
262
262
262
262
263
263
263
263
266
266
266
266
272
276
276
276
277
277
282
282
283
283
285
287
290
294
295
295
296
296
305
313
313
315
318
334
337
341
342
342
343
343
357
362
362
363
367
369
370
379
380
380
380
381
384
386
389
394
394
396
404
406
408
409
409
410
410
416
418
418
423
428
428
436
436
438
442
446
447
448
448
451
464
465
467
467
468
470
475
475
477
478
478
478
490
495
495
511
513
529
534
534
547
552
552
570
572
575
596
597
599
614
619
619
638
643
643
661
663
666
680
685
685
685
685
687
703
708
708
723
727
730
732
747
752
752
1267
1270
1272
9
9
11
13
13
17
17
17
17
17
18
18
18
19
19
19
19
19
21
21
22
22
23
23
23
23
26
27
34
34
35
36
36
36
36
37
39
43
44
46
46
46
51
51
52
54
54
55
55
56
58
60
60
60
61
61
61
62
62
64
65
70
70
70
72
72
80
81
81
81
82
82
82
84
86
87
87
87
89
89
89
94
94
94
94
94
96
96
97
97
98
98
98
98
99
99
99
99
100
101
101
102
102
102
102
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
108
108
108
108
124
126
128
128
130
149
153
153
164
168
170
170
172
172
187
191
193
193
195
195
211
215
217
217
219
219
237
239
252
253
254
254
254
255
255
255
255
255
256
256
257
257
257
258
258
258
258
258
258
258
258
258
258
258
259
259
259
259
260
260
260
260
260
260
260
261
261
261
261
262
262
262
262
263
263
264
264
267
267
270
273
277
277
278
278
283
284
284
287
291
293
295
296
296
310
314
316
319
325
325
334
338
341
343
343
358
363
363
367
368
370
378
380
381
381
382
385
385
387
387
389
394
394
395
395
405
409
410
410
417
417
419
419
419
424
427
427
429
429
437
446
447
448
449
449
452
468
468
469
471
476
476
476
478
479
479
491
496
496
505
512
514
530
535
535
548
553
553
573
576
597
598
600
615
620
620
639
644
644
662
664
667
681
686
686
686
686
688
688
704
709
709
728
731
733
748
753
753
1268
1271
1273
10
10
11
11
17
17
17
18
18
19
19
19
19
19
20
22
22
24
24
27
28
29
32
34
34
34
36
36
36
38
38
39
39
40
40
44
46
51
52
53
53
55
55
56
57
57
58
58
59
61
61
61
62
63
63
63
63
64
70
79
79
81
82
82
82
83
85
85
87
87
87
91
91
92
95
96
98
98
98
99
99
99
99
99
99
99
99
99
99
99
100
100
101
101
101
102
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
105
106
106
107
107
108
108
109
109
109
110
125
129
129
131
150
154
154
165
169
171
171
173
173
192
196
196
212
216
218
218
220
220
238
238
240
240
251
253
254
255
255
255
255
255
256
256
256
256
256
257
257
258
258
258
259
259
259
259
259
259
259
259
259
260
260
260
260
260
260
261
261
262
262
262
262
262
262
263
263
263
263
263
265
265
265
266
266
266
266
268
268
271
271
274
277
279
279
282
282
284
292
294
294
296
296
297
297
310
311
313
313
315
317
320
323
326
326
337
339
341
342
344
344
353
359
364
364
367
368
370
370
371
379
379
383
388
388
396
396
406
406
410
411
411
417
418
425
425
428
428
430
430
436
436
438
442
447
448
449
449
450
450
453
453
469
469
472
477
477
477
477
492
497
497
506
510
513
515
531
536
536
549
554
554
570
574
574
577
598
599
601
616
621
621
640
645
645
663
665
668
682
685
687
687
688
688
689
689
705
710
710
729
732
734
749
754
754
1269
1272
1274
2
9
9
11
17
19
20
20
20
21
23
23
25
25
26
28
29
33
34
37
39
39
39
41
41
44
44
45
51
52
53
57
58
59
60
61
61
62
63
64
64
64
70
71
72
72
76
79
79
79
79
79
80
84
86
86
87
88
88
88
89
89
90
90
92
95
95
96
96
96
96
97
99
99
99
99
99
100
100
100
101
101
101
102
102
102
102
102
102
103
103
103
103
103
103
103
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
106
106
107
107
107
108
108
108
109
109
109
110
110
126
130
130
132
151
155
155
166
170
172
172
174
174
193
197
197
213
217
219
219
221
221
232
236
239
239
241
241
252
253
254
255
255
255
255
256
256
256
256
256
256
256
257
257
257
257
257
257
257
257
258
258
258
258
258
258
259
259
259
260
260
260
260
260
260
260
260
260
260
261
261
261
261
261
262
262
262
262
262
262
262
263
263
263
263
263
263
264
264
265
266
266
266
266
267
267
267
275
275
277
278
280
280
283
293
294
296
297
297
298
298
310
314
314
316
318
321
324
324
337
340
342
343
345
345
354
354
354
354
360
365
365
371
371
372
384
389
389
389
389
392
397
397
406
407
407
408
412
412
418
418
419
419
426
426
426
431
431
436
436
437
437
446
448
449
454
454
467
473
478
478
493
498
498
511
514
516
532
537
537
550
555
555
575
575
578
600
602
617
622
622
641
646
646
666
669
683
688
688
689
690
690
706
711
730
733
735
750
755
755
1270
1273
1275
2
3
10
10
11
11
17
17
18
19
19
20
21
22
22
22
22
22
23
24
24
26
26
26
26
34
34
35
36
36
38
39
40
40
42
42
43
43
43
45
46
46
51
51
51
53
53
53
53
58
59
59
60
60
61
62
63
63
63
63
64
64
65
65
70
72
72
73
73
76
79
79
79
80
80
81
81
81
82
85
87
87
87
89
89
89
89
90
90
93
93
96
96
96
97
99
99
99
99
100
101
101
101
101
102
102
103
103
103
103
103
103
103
103
103
103
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
107
107
107
109
110
110
110
131
131
133
152
156
156
171
175
175
194
198
198
218
222
222
233
237
240
240
242
242
253
254
255
255
255
255
256
256
256
256
256
256
256
256
256
257
257
257
257
258
258
258
258
258
258
258
258
259
259
259
259
259
260
260
260
260
261
261
261
261
261
261
262
262
262
262
262
262
262
263
263
264
265
265
267
267
268
268
268
276
276
277
278
279
281
281
282
282
284
294
294
296
297
298
298
299
299
311
313
315
315
315
317
319
322
341
341
343
344
346
346
355
355
361
366
372
372
381
385
387
390
390
390
390
393
398
407
408
408
408
409
413
413
420
420
427
432
438
438
447
447
449
449
450
454
455
455
464
474
479
479
479
494
499
512
515
517
533
538
538
551
556
556
576
576
579
601
603
618
623
623
642
647
647
667
670
684
689
689
690
707
710
710
712
731
734
734
736
736
751
756
756
1271
1274
1276
1
1
3
4
9
9
10
11
17
18
19
19
20
20
21
23
23
23
25
25
27
27
28
28
29
34
36
36
37
37
39
43
43
43
44
46
46
46
46
46
51
52
53
53
53
54
55
55
59
61
61
62
63
63
64
64
64
65
66
66
72
74
74
76
79
79
80
81
82
86
89
90
90
91
91
97
97
97
97
98
99
100
100
100
100
101
101
101
101
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
104
104
105
105
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
107
107
108
108
110
110
130
132
132
132
134
153
157
157
172
176
176
195
199
199
219
223
223
234
238
243
243
253
254
254
255
255
255
256
256
256
256
256
257
257
257
257
257
257
257
257
258
258
258
258
258
258
258
258
259
259
259
259
260
260
260
260
260
261
261
261
262
262
262
263
263
263
263
265
265
266
266
268
269
269
269
269
277
277
277
279
280
282
282
282
282
283
283
295
297
298
300
300
304
313
314
320
323
326
332
337
342
342
344
344
347
347
355
362
362
365
365
367
370
381
386
388
388
391
391
393
393
397
397
397
399
409
409
409
410
414
414
418
419
419
419
421
421
428
428
433
434
439
439
447
449
450
450
451
455
455
455
456
456
464
465
467
467
475
479
480
480
495
498
498
500
513
516
518
534
539
539
552
557
557
577
577
580
602
604
619
624
624
643
648
648
668
671
685
690
690
708
711
713
732
737
737
752
757
757
1272
1275
1277
1
1
1
3
4
4
5
10
10
10
11
11
11
11
19
19
21
21
22
24
24
24
24
24
26
26
26
26
27
27
28
28
29
36
38
38
40
43
43
44
44
46
47
53
54
55
55
56
56
60
60
61
63
63
63
63
64
64
64
64
64
65
65
66
67
67
72
72
74
81
81
81
82
82
87
89
89
89
91
91
91
94
98
99
99
99
99
99
99
99
99
99
100
100
101
101
101
101
101
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
106
106
106
107
109
109
109
109
109
111
111
131
133
133
135
154
158
158
173
177
177
196
200
200
220
224
224
239
244
244
252
254
254
254
256
256
256
256
257
257
257
257
257
258
258
258
258
258
258
258
258
258
258
258
259
259
259
259
259
260
260
260
260
261
261
261
261
261
261
262
263
263
263
263
263
263
265
266
278
278
280
281
283
283
284
284
296
298
301
301
305
305
305
314
314
315
315
321
324
326
333
341
343
343
348
348
355
363
363
363
363
366
367
368
387
392
392
397
398
398
400
409
410
410
410
415
415
418
418
418
419
420
420
420
428
429
431
431
434
435
440
447
449
450
451
451
452
456
456
457
457
464
468
468
476
481
481
496
499
501
514
517
517
519
519
535
540
540
553
558
558
578
578
581
598
603
605
620
625
625
644
649
649
663
667
669
672
685
685
686
688
691
691
709
712
714
733
738
738
753
758
758
1273
1276
1277
1278
5
5
6
9
9
11
12
12
19
19
21
21
21
23
25
25
25
27
27
28
28
28
28
29
29
29
36
36
38
41
45
45
47
48
55
55
57
57
60
61
61
61
61
62
64
64
64
65
65
65
66
67
68
68
74
74
74
79
79
82
82
88
91
91
91
92
92
95
96
98
99
99
99
99
100
100
100
100
100
101
101
101
101
102
102
102
102
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
105
105
105
105
105
105
105
105
106
106
106
107
107
107
108
110
110
110
110
110
112
112
132
134
134
136
155
157
157
159
159
174
178
178
197
201
201
221
225
225
240
245
245
251
251
252
253
253
254
254
255
255
255
255
255
257
257
258
258
258
258
258
258
259
259
259
259
259
259
259
259
260
260
260
260
260
260
260
260
261
261
262
263
263
263
263
267
276
277
277
279
279
281
282
284
284
285
285
297
302
302
306
306
316
316
322
325
334
334
342
342
344
344
344
349
349
364
364
364
367
367
368
369
370
370
381
381
388
390
393
393
393
398
399
399
409
410
410
410
411
411
416
416
420
421
421
421
430
432
435
435
435
439
439
441
447
447
450
451
453
455
456
456
456
456
457
458
458
465
467
469
469
469
477
479
479
482
482
497
500
502
515
520
520
536
541
541
554
559
559
579
579
582
599
601
604
606
621
626
626
645
650
650
668
670
673
686
687
688
689
692
692
710
713
715
734
739
739
754
759
759
1274
1276
1278
1279
6
7
13
13
20
20
21
21
21
22
24
25
25
26
26
26
26
26
28
29
29
29
30
30
38
38
38
42
46
46
46
48
49
53
53
55
61
62
62
63
65
65
65
66
66
66
66
67
68
69
69
72
72
74
81
81
82
89
89
89
91
91
91
91
93
93
96
99
99
99
99
99
99
99
99
99
99
100
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
103
103
103
103
103
104
104
104
104
104
104
104
104
105
105
105
105
105
105
106
106
106
106
106
106
107
107
107
107
107
109
113
113
135
135
137
156
158
158
160
175
179
179
198
202
202
222
226
226
241
246
246
252
252
253
253
253
253
253
253
253
254
254
255
255
256
256
256
256
256
256
256
258
258
258
258
258
259
259
260
260
260
260
260
261
261
263
263
264
269
271
277
278
278
280
280
282
285
285
286
294
294
298
303
303
305
306
306
306
306
307
314
315
315
315
317
317
317
321
323
326
326
326
335
335
335
335
342
344
345
345
345
350
350
363
364
364
364
364
365
365
367
368
370
371
371
379
382
382
389
390
394
394
399
411
411
412
412
417
417
419
421
422
422
431
433
436
440
440
442
448
448
449
449
449
451
454
457
457
458
459
459
467
468
477
478
480
480
483
483
498
501
503
516
521
521
537
542
542
555
560
560
580
580
583
602
605
607
622
627
627
646
651
651
669
671
674
688
689
690
693
693
711
714
716
735
740
740
755
760
760
1275
1279
1280
5
5
7
8
9
13
19
19
21
23
23
25
26
26
26
27
27
27
28
28
29
29
29
29
31
31
36
36
38
43
43
46
46
47
47
53
53
55
55
56
58
61
62
63
66
66
66
67
68
69
70
70
74
74
74
79
79
81
82
90
91
91
91
91
92
92
94
94
96
96
99
99
99
99
99
99
99
100
101
101
101
101
101
101
102
102
102
102
102
102
102
102
103
103
103
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
107
107
107
109
110
114
114
136
136
138
157
159
159
161
176
180
180
199
203
203
223
225
225
227
227
242
247
247
251
251
251
251
253
253
253
253
253
253
254
254
254
254
254
254
254
255
255
256
256
257
257
257
257
257
258
258
258
258
260
260
260
260
260
261
261
261
262
262
262
263
264
265
269
272
272
277
277
280
281
285
285
286
286
287
295
295
296
296
296
299
304
304
307
307
308
314
314
314
315
316
316
316
322
324
324
327
327
327
333
335
335
336
336
342
344
345
346
346
346
351
351
354
365
365
366
366
368
369
370
371
372
372
372
380
380
390
395
395
397
400
412
412
413
418
418
420
420
432
434
437
439
441
441
450
450
450
450
455
456
456
458
458
460
460
468
468
469
469
478
478
479
484
484
499
502
504
517
522
522
538
543
543
556
561
561
581
581
584
603
606
608
623
628
628
647
652
670
672
675
689
690
694
694
712
715
717
736
741
741
756
761
761
1276
1280
1281
4
4
5
5
8
8
9
9
13
13
21
21
21
26
26
26
27
27
27
28
28
28
29
30
30
30
30
30
32
32
38
38
38
44
48
48
48
48
49
53
55
55
55
56
57
57
59
61
62
64
66
66
67
67
67
68
68
69
70
71
71
72
72
74
76
77
81
81
81
82
82
82
82
89
91
93
93
95
95
97
97
99
99
99
99
99
99
99
99
99
100
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
106
106
107
107
107
109
109
110
111
115
115
137
139
158
160
162
177
181
181
200
204
204
224
226
226
228
243
247
248
248
251
251
252
252
252
252
253
253
254
254
254
254
254
254
254
255
255
255
255
255
255
255
255
255
255
256
256
256
256
256
256
256
256
256
257
257
258
258
258
258
258
259
259
260
260
260
260
260
261
261
261
261
263
265
265
266
266
282
282
286
286
287
287
288
297
297
297
297
300
305
305
306
306
308
308
316
317
317
317
323
325
325
325
328
336
337
337
342
342
345
346
347
352
352
355
355
355
355
364
364
366
366
367
370
370
371
372
391
393
396
396
397
398
410
414
419
419
426
433
435
438
439
451
451
456
457
461
461
470
470
480
485
485
500
503
505
518
523
523
539
544
544
557
562
562
582
585
604
607
609
624
629
629
648
653
671
673
676
685
690
690
695
695
713
716
718
737
742
742
757
762
762
1277
1281
1282
5
9
9
9
9
10
10
13
14
19
19
19
21
24
27
28
28
28
28
29
29
29
29
29
29
31
31
31
33
33
36
36
38
38
38
38
45
46
46
49
49
49
55
55
57
57
57
57
57
60
61
61
63
63
65
66
67
68
68
69
69
70
70
71
72
72
74
74
74
75
76
76
77
77
78
79
79
82
83
83
92
93
94
96
96
98
99
99
100
100
100
100
100
100
100
100
101
101
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
107
107
108
108
110
110
112
116
116
134
136
138
138
140
140
159
161
163
178
182
182
201
203
203
205
205
225
227
227
229
244
247
248
249
249
249
252
252
252
252
252
253
253
253
253
253
253
253
254
254
254
254
254
254
255
255
255
255
255
256
256
256
256
256
256
256
256
256
257
257
257
257
257
257
257
257
258
259
260
260
260
260
262
262
267
267
269
269
278
282
283
285
287
287
288
288
298
298
301
306
306
307
315
317
318
318
324
326
329
335
335
337
343
343
344
344
344
346
348
353
353
356
356
365
368
371
371
371
372
372
373
382
392
393
397
397
398
399
409
415
420
420
422
427
434
435
436
439
439
440
451
456
457
458
462
462
468
469
469
469
471
471
480
481
486
486
501
504
506
519
524
524
540
545
545
558
563
581
583
584
586
605
608
608
610
610
625
630
630
649
651
651
654
672
674
674
677
677
686
688
691
696
696
714
717
719
738
743
743
758
763
763
1278
1282
1283
4
6
10
10
11
11
13
13
14
15
15
15
15
21
21
21
25
26
26
28
29
30
30
30
30
32
32
32
32
32
34
34
38
38
38
38
39
39
46
48
48
49
50
50
55
55
57
58
64
66
66
66
67
68
68
68
68
69
70
71
71
71
71
72
72
72
73
73
74
74
74
74
75
75
76
76
77
77
78
78
79
84
84
89
89
93
94
95
95
97
97
97
98
99
99
99
99
99
100
100
100
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
105
105
105
105
105
105
106
106
107
107
107
107
107
109
109
113
117
117
135
137
139
139
141
141
162
164
179
183
183
202
204
204
206
226
228
230
245
248
249
249
249
250
250
250
251
251
251
253
253
253
253
253
254
254
254
254
254
254
254
254
254
254
255
255
255
255
255
256
256
256
256
256
256
256
256
256
256
257
257
257
257
258
258
258
258
258
258
258
258
261
261
263
263
268
268
270
270
273
278
284
285
289
289
298
302
306
307
307
308
316
316
325
327
327
330
336
345
345
345
345
349
354
354
356
364
366
369
372
373
373
374
382
388
393
397
398
398
399
400
409
410
410
410
416
421
421
422
428
428
435
435
437
440
440
441
451
456
456
457
458
463
463
468
468
468
469
470
470
470
480
482
487
487
502
505
507
520
525
525
541
546
546
559
564
584
585
587
606
611
611
626
631
631
650
652
655
673
678
678
688
689
692
697
697
718
720
739
744
744
759
764
764
1279
1283
1284
5
7
7
9
12
12
13
13
13
15
15
19
19
21
21
21
21
25
26
29
29
29
31
31
31
31
31
33
33
33
33
34
34
35
35
36
40
40
46
46
47
49
51
51
58
59
61
62
63
65
65
66
66
66
67
67
68
68
68
70
71
72
72
72
72
73
74
74
74
74
74
75
75
75
75
76
77
78
78
79
79
79
79
80
84
89
94
94
94
95
96
96
96
97
98
99
99
99
99
99
99
99
99
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
103
103
103
103
103
103
103
103
104
104
104
104
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
107
109
110
110
114
118
118
136
138
140
140
142
142
157
161
163
163
165
165
180
182
182
184
184
203
205
205
207
227
229
231
246
249
250
250
250
250
250
250
251
251
251
251
252
252
252
252
252
254
254
254
254
254
254
254
255
255
255
255
256
256
256
256
256
256
256
256
256
256
256
257
257
257
257
257
257
258
258
258
259
259
259
259
259
259
259
259
259
264
264
264
269
269
272
273
274
277
285
285
286
290
290
298
303
306
306
307
308
308
326
327
328
328
331
331
335
335
337
346
346
350
355
355
356
364
364
365
371
372
372
372
373
374
374
375
389
394
398
399
399
400
409
411
411
417
422
422
429
429
429
429
436
438
439
441
441
442
455
456
457
458
459
464
464
470
471
471
471
483
488
488
506
508
521
526
526
542
547
547
560
562
562
565
585
586
588
607
612
612
627
632
632
651
653
656
674
679
679
689
690
693
698
698
719
721
740
745
745
760
765
765
1280
1284
1285
4
5
5
8
13
13
13
21
21
21
21
22
22
26
26
30
30
31
32
32
32
34
34
35
35
36
36
40
41
48
48
48
49
50
50
52
52
57
59
60
66
66
67
68
68
69
71
72
73
73
73
74
75
75
76
76
78
79
79
79
79
80
80
80
84
84
93
93
95
95
96
96
97
97
97
99
99
100
100
100
100
100
101
101
101
101
101
101
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
105
105
105
105
105
105
105
105
105
105
105
105
106
107
107
107
107
107
110
111
111
115
119
119
139
143
143
158
162
164
164
166
166
181
183
183
185
204
206
208
230
232
247
249
250
250
251
251
251
251
251
251
252
252
252
252
252
253
253
253
253
253
253
253
253
253
253
253
255
255
255
255
255
255
256
256
256
256
256
256
256
257
257
257
257
257
257
257
257
258
258
258
258
258
261
265
270
270
273
274
275
277
286
286
287
291
291
304
305
306
307
308
309
309
318
327
332
332
335
335
336
336
346
351
356
356
363
364
365
366
371
371
371
372
373
373
373
374
376
382
382
390
390
395
398
398
400
400
400
400
400
401
410
410
412
412
412
418
422
422
423
423
427
429
429
430
430
435
439
440
442
442
442
456
458
459
460
465
465
469
471
472
472
480
480
484
489
489
507
509
522
527
527
543
548
548
561
563
566
586
587
589
608
613
613
628
633
633
652
654
657
675
680
680
689
690
691
694
699
699
720
722
741
746
746
761
766
766
1281
1285
1286
1
5
5
7
9
13
14
14
14
15
15
19
23
23
26
27
27
27
31
31
31
31
31
32
32
33
33
33
35
35
36
36
36
36
37
37
41
46
46
48
49
49
51
51
53
55
57
57
66
67
68
68
68
69
69
70
72
74
74
75
76
76
77
79
79
79
80
80
84
85
89
93
96
96
96
96
96
96
98
99
99
99
99
99
99
99
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
103
103
103
103
103
104
104
104
105
105
105
105
105
106
106
106
106
107
108
108
108
108
108
111
111
112
112
116
120
120
140
144
144
159
163
165
165
167
167
182
184
184
186
205
207
209
231
231
233
233
248
250
251
251
251
251
251
251
251
252
252
252
252
252
252
253
253
253
253
254
254
254
254
254
254
254
254
254
254
254
254
256
256
256
256
257
258
258
259
259
259
259
260
260
260
260
261
266
270
271
271
274
275
276
285
287
287
288
292
292
305
306
308
309
310
318
328
333
333
337
337
346
352
357
357
364
366
367
373
374
374
374
375
377
380
383
383
391
391
391
391
396
401
401
401
401
402
410
411
419
420
423
423
424
424
430
431
431
439
440
441
443
450
456
457
459
461
466
466
470
470
478
481
481
485
490
490
508
510
523
528
528
544
549
549
562
564
567
587
588
590
609
614
614
629
634
634
653
655
658
676
681
681
689
690
691
692
695
700
700
714
721
723
742
747
747
762
767
767
1282
1286
1287
1
1
5
5
5
7
10
13
15
15
15
15
16
16
23
24
26
26
31
32
32
32
33
33
33
34
36
36
36
38
38
41
41
42
48
48
48
49
49
49
49
50
52
52
54
59
59
60
60
65
66
68
68
69
69
69
70
71
71
72
72
72
72
73
75
75
76
77
77
80
84
84
85
86
86
86
86
93
93
93
94
95
95
96
96
96
96
97
97
99
99
99
99
99
99
99
99
99
99
99
99
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
103
103
103
104
104
104
104
104
104
104
105
105
105
105
105
107
107
109
112
112
113
113
117
121
121
141
145
145
164
168
168
183
185
187
208
210
225
229
232
232
234
234
246
249
249
249
249
249
251
251
251
251
251
252
252
252
252
252
252
252
253
253
253
253
253
254
254
254
254
254
255
255
255
255
255
255
255
255
256
256
258
259
259
259
259
259
261
261
267
270
272
272
272
275
276
277
277
286
288
288
288
293
293
306
306
307
309
311
329
333
334
334
338
338
353
358
358
364
365
367
369
372
374
375
375
376
378
381
381
389
391
391
392
392
397
398
400
402
402
402
402
411
411
412
412
420
421
421
425
429
429
431
440
440
441
442
442
444
451
451
451
451
456
457
459
459
460
462
467
467
479
479
486
491
491
502
509
511
524
529
529
545
550
550
563
565
568
588
589
591
610
615
615
630
635
635
654
656
659
677
682
682
689
690
690
691
692
696
701
701
715
719
722
724
743
748
748
763
768
768
1283
1287
1288
5
5
5
6
7
11
15
16
16
17
17
19
19
24
31
31
32
33
33
33
33
33
34
34
34
35
36
37
37
39
39
40
40
40
42
43
43
46
46
49
50
50
51
53
55
57
57
60
66
68
70
70
71
72
72
73
76
76
77
77
77
78
78
79
84
84
84
86
86
96
97
98
98
99
99
99
99
99
99
99
100
100
100
100
100
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
104
104
104
104
104
104
104
105
105
105
105
106
107
109
109
110
113
113
113
113
114
114
118
120
120
122
122
142
146
146
165
169
169
184
186
188
203
207
209
209
211
211
226
230
233
233
235
235
245
247
249
249
250
250
250
250
250
250
250
251
251
252
252
252
252
252
252
252
253
253
253
253
253
253
253
253
254
254
254
254
254
254
254
254
254
255
255
255
256
256
256
256
256
256
256
257
258
259
259
259
260
260
260
260
260
262
262
268
273
273
273
276
277
278
285
287
289
294
294
306
307
307
309
309
309
309
310
312
318
318
325
330
334
335
335
339
354
359
364
365
367
367
368
370
373
373
374
377
379
392
393
393
398
401
403
403
413
413
421
426
430
436
440
440
442
442
443
443
445
452
452
460
460
461
463
468
468
472
487
492
503
507
510
512
525
530
530
546
551
551
564
566
569
589
590
592
611
616
616
631
636
636
655
657
660
678
683
683
689
690
691
691
692
697
702
702
720
723
725
744
749
749
764
769
769
1284
1288
1289
5
5
6
7
7
12
15
15
17
17
17
19
24
24
25
26
26
31
31
31
31
33
33
34
35
36
36
36
36
36
38
38
40
40
40
41
43
43
43
43
43
51
51
52
54
56
59
59
60
67
68
68
70
71
72
72
73
73
74
74
75
76
76
76
76
77
77
77
77
78
78
79
79
79
79
84
95
96
96
98
98
99
99
99
99
99
99
99
99
99
99
100
100
100
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
104
105
105
105
105
105
105
105
105
106
106
106
107
107
107
107
110
110
110
111
114
114
114
114
115
115
119
121
121
123
143
147
147
166
170
170
187
189
204
208
210
210
212
212
227
231
236
236
246
247
247
248
250
250
251
251
251
251
251
251
251
251
251
252
252
252
252
253
253
253
253
254
254
254
254
254
254
254
254
254
254
254
255
255
255
255
255
256
256
256
256
259
259
259
259
260
260
260
260
261
261
261
262
262
269
270
270
274
274
277
278
278
278
286
286
288
288
290
295
295
297
308
310
310
310
311
313
316
319
319
326
331
334
334
336
336
338
338
340
345
355
355
358
358
360
368
368
369
375
378
380
383
391
391
393
398
399
402
404
404
411
412
412
412
414
414
422
423
424
424
427
429
429
431
440
441
442
443
443
444
444
446
452
461
461
464
469
469
472
481
488
491
491
493
508
511
513
526
531
531
547
552
552
565
567
570
590
591
593
612
617
617
632
637
637
656
658
661
679
684
684
689
691
692
692
698
703
703
721
724
726
745
750
750
765
770
770
1285
1289
1290
4
5
5
5
5
5
6
7
7
7
8
13
17
17
17
18
18
19
23
23
23
25
26
26
31
32
35
37
37
37
39
39
40
40
41
41
43
44
46
51
55
57
57
57
60
69
69
70
70
70
72
73
76
76
77
77
78
78
78
78
79
79
79
79
79
79
80
80
84
85
86
86
96
96
96
96
99
99
99
99
99
99
99
100
101
101
101
101
101
101
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
104
104
104
104
105
105
105
105
105
107
111
111
111
112
115
115
116
116
120
122
122
124
144
148
148
167
171
171
182
186
188
188
190
190
205
209
211
211
213
213
232
237
237
245
247
247
248
248
249
249
249
249
250
251
251
252
252
252
252
252
252
252
252
252
252
252
252
252
252
252
253
253
253
253
254
254
254
254
254
254
254
254
255
255
256
256
256
256
256
256
256
256
257
259
259
259
259
261
262
262
262
264
270
271
271
275
275
277
279
279
279
279
286
288
289
289
291
296
296
298
298
298
309
311
311
311
314
317
317
327
327
332
337
337
339
339
341
346
346
346
346
356
356
356
356
359
361
369
369
375
376
379
381
383
392
398
399
400
400
405
405
411
411
411
412
413
413
413
423
423
425
428
429
429
430
430
440
440
442
443
444
444
447
452
459
465
470
470
481
489
492
494
509
512
514
527
532
532
548
553
553
566
568
571
592
594
613
618
618
633
638
638
659
662
680
685
685
690
692
693
699
704
704
722
725
727
746
751
751
766
771
771
1286
1290
1291
5
5
5
7
7
8
8
9
14
15
15
17
19
19
23
24
26
26
26
26
26
31
32
33
33
33
36
38
38
38
38
38
40
40
41
41
42
42
44
45
46
50
51
51
51
51
54
56
56
58
58
59
59
60
68
68
69
70
70
70
73
74
74
75
76
76
77
78
79
79
79
79
79
80
80
81
81
84
86
86
87
87
93
97
98
99
99
99
99
99
99
100
100
100
100
100
100
100
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
105
105
105
105
105
107
107
108
112
112
113
116
116
117
117
121
123
125
145
149
149
168
172
172
183
187
189
189
191
191
210
214
214
233
238
238
246
248
248
248
249
249
250
250
250
250
250
250
250
250
251
251
251
252
252
252
252
252
252
252
253
253
253
253
253
253
253
253
253
253
254
254
254
254
254
255
255
255
256
256
256
256
256
256
257
257
257
257
257
258
262
263
263
265
265
271
273
276
276
278
279
279
280
280
286
288
289
290
290
292
297
297
299
299
309
310
312
315
328
328
328
328
333
338
338
338
340
340
347
347
357
357
357
360
362
367
375
377
380
382
391
391
393
399
400
400
401
401
406
406
413
414
414
414
424
426
429
431
431
441
441
442
442
442
443
444
445
448
456
466
471
471
472
472
490
493
495
510
513
515
528
533
533
549
554
554
567
569
572
593
595
614
619
619
634
639
639
660
663
681
686
686
691
693
700
705
705
723
726
726
728
728
747
752
752
767
772
772
1287
1291
1292
5
5
5
5
6
7
7
7
8
9
9
10
15
17
17
17
20
20
23
23
26
27
31
33
33
34
34
35
35
37
39
41
41
42
42
43
43
43
45
46
46
46
46
51
51
51
52
55
57
57
57
57
59
59
59
60
70
70
70
71
71
74
75
75
76
76
77
78
78
79
80
80
81
81
82
82
86
88
88
95
96
96
98
98
99
100
100
100
100
100
100
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
104
104
104
104
104
105
105
105
105
105
106
106
106
107
109
111
111
113
113
114
116
116
117
117
118
118
120
122
124
124
126
146
150
150
169
173
173
184
188
190
190
192
192
211
215
215
234
239
239
247
247
248
249
249
249
250
250
251
251
251
251
251
251
251
251
252
252
252
252
252
252
253
253
253
254
254
254
254
254
254
254
254
255
255
255
255
256
256
256
257
257
257
258
258
258
259
272
277
277
278
280
281
281
289
290
293
298
298
298
299
299
299
299
300
306
311
313
316
319
326
328
328
329
329
334
338
339
339
347
356
357
357
357
357
358
358
361
363
364
378
381
381
383
383
391
391
392
392
401
401
402
402
407
407
412
414
415
415
423
423
425
427
427
430
432
432
443
443
443
443
444
446
449
456
457
459
459
467
470
472
472
473
473
491
494
496
511
514
514
516
516
529
534
534
550
555
555
570
573
594
596
615
620
620
635
640
640
661
664
682
687
687
691
701
706
706
724
729
729
748
753
753
768
773
773
1288
1292
1293
4
5
5
6
7
8
8
8
9
10
11
15
15
16
17
19
19
21
21
27
28
33
34
34
35
35
36
38
39
39
40
40
42
42
43
43
43
43
44
44
52
52
53
53
56
58
58
59
59
59
60
60
60
60
60
60
68
68
70
75
75
76
76
76
76
77
77
77
78
79
79
79
79
80
80
81
81
82
82
83
83
86
86
88
95
96
98
98
99
99
99
99
99
99
99
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
103
103
103
103
103
103
103
103
104
104
104
104
104
104
105
105
106
106
107
107
110
114
115
117
117
119
119
121
125
125
127
147
151
151
170
174
174
189
193
193
212
216
216
235
240
240
248
248
248
248
249
249
249
249
249
250
250
250
250
252
252
252
252
252
252
252
252
252
253
253
253
253
253
253
254
254
254
254
254
254
254
255
255
255
255
257
257
258
259
260
270
271
273
278
278
279
279
281
290
294
299
299
300
300
301
306
307
309
309
312
314
317
319
329
330
330
334
335
338
339
340
340
347
358
358
359
359
362
364
364
365
367
367
375
375
379
384
384
393
393
401
402
402
403
408
408
413
413
421
424
424
426
428
428
431
433
444
444
445
447
447
450
450
456
460
460
468
471
471
473
473
492
495
497
512
517
517
530
535
535
551
556
567
571
571
574
590
595
597
616
621
621
636
641
641
656
660
662
665
683
688
688
693
702
707
707
725
730
730
749
754
754
769
774
1289
1293
1294
5
7
9
9
9
9
10
10
11
12
17
17
17
17
20
20
22
26
28
29
33
33
35
37
37
39
40
40
40
41
43
43
43
43
45
45
45
45
46
51
53
57
57
57
60
61
61
61
61
67
70
70
70
72
75
75
76
76
76
77
77
78
78
79
79
79
79
80
80
81
82
83
84
84
88
88
88
96
96
96
96
96
96
96
96
96
97
98
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
103
103
103
103
103
104
104
105
105
107
108
108
115
116
118
118
120
120
122
126
126
128
148
150
150
152
152
171
175
175
190
194
194
213
217
217
236
241
241
245
247
247
247
249
249
249
249
249
249
249
249
249
249
250
250
250
250
250
250
250
251
251
252
252
252
252
253
253
253
253
253
253
253
253
253
253
254
254
254
254
254
254
254
255
255
255
257
257
259
260
261
263
268
269
271
271
274
279
279
280
295
299
299
300
300
301
301
306
310
310
313
315
318
328
328
330
334
336
339
340
341
341
357
357
359
359
360
363
364
365
368
368
373
376
376
380
381
385
385
389
394
394
401
402
402
402
403
404
409
409
422
422
427
428
428
429
432
432
432
434
444
446
451
451
457
459
461
461
461
469
474
474
479
493
496
498
513
518
518
531
536
536
552
557
572
572
575
591
593
596
598
617
622
622
637
642
642
661
663
666
684
689
689
693
703
708
726
731
731
750
755
755
770
775
1290
1294
1295
1
1
5
5
5
5
9
10
11
12
13
15
15
17
17
17
17
18
21
21
23
23
26
26
35
35
35
40
41
41
41
42
43
43
44
44
44
44
44
44
46
46
46
51
51
51
53
53
53
58
62
62
62
62
68
68
70
70
70
70
73
75
76
76
77
78
78
79
79
79
80
80
81
81
81
81
81
82
82
82
83
84
85
85
86
86
88
88
88
88
96
97
97
98
98
98
98
98
99
99
99
99
99
99
100
100
100
100
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
104
104
105
105
105
109
109
110
115
116
116
116
117
118
118
121
121
127
127
129
149
151
151
153
172
176
176
191
195
195
214
218
218
237
242
242
245
245
246
247
247
248
248
248
248
249
249
249
249
249
249
250
250
250
250
250
250
250
250
250
250
250
250
251
251
251
251
251
251
251
251
252
252
252
252
252
253
253
253
253
253
254
255
255
255
257
257
257
261
262
263
269
270
272
275
279
279
280
280
281
286
286
296
300
301
301
307
309
311
311
311
314
316
319
319
319
329
337
338
340
341
342
342
358
361
364
365
366
367
369
369
369
374
374
381
382
386
386
390
395
403
403
404
405
410
410
415
428
430
433
433
433
435
444
447
451
452
452
459
460
470
473
475
475
480
494
497
499
514
519
519
532
537
537
553
555
555
558
573
573
576
594
597
599
618
623
623
638
643
643
662
664
667
685
690
690
704
707
707
709
727
732
732
751
756
756
771
773
773
776
1291
1295
1296
1
4
4
5
5
5
6
6
6
9
9
11
11
12
12
13
14
17
17
17
17
18
18
19
22
24
28
28
29
33
33
33
35
38
41
42
43
43
43
45
45
45
45
45
45
46
47
47
51
52
53
53
53
54
57
59
62
63
63
70
70
70
70
71
71
74
75
76
77
77
77
78
79
79
79
79
80
80
82
82
82
83
83
84
84
85
86
86
88
88
88
88
89
89
95
95
96
96
96
96
96
96
97
98
98
98
98
99
99
99
99
99
99
99
99
99
99
99
100
101
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
103
103
103
105
105
105
105
106
106
110
110
116
118
119
119
122
122
126
128
128
128
130
150
152
152
154
173
175
175
177
177
192
196
196
215
217
217
219
219
238
243
243
244
245
245
245
245
246
246
247
248
248
249
249
249
249
249
249
250
250
250
250
250
250
250
251
251
251
251
251
251
251
251
251
251
252
252
252
252
252
252
252
254
254
254
254
254
254
254
255
255
255
255
255
257
258
262
262
263
263
270
271
273
276
279
279
280
280
281
281
287
287
288
288
288
297
299
301
302
302
309
310
317
317
320
320
320
328
328
330
334
338
339
341
341
343
343
346
357
359
362
365
367
367
368
382
383
383
387
387
390
390
394
394
394
396
404
404
406
411
411
415
424
429
431
432
434
434
434
448
452
452
452
453
453
460
460
461
461
471
473
476
476
481
481
495
498
500
515
520
520
533
538
538
554
556
559
574
574
577
595
598
600
619
624
624
639
644
644
663
665
668
686
691
691
705
708
710
728
733
733
752
757
757
772
774
777
1292
1296
1297
1
1
5
5
5
7
7
7
7
9
10
12
13
13
14
14
15
15
19
19
20
23
25
26
26
29
35
35
35
39
42
42
43
43
44
44
44
46
46
46
46
46
46
48
48
53
54
55
57
60
62
62
64
64
68
72
72
75
78
78
79
80
80
81
81
82
83
84
85
85
86
86
87
87
90
90
95
96
96
96
96
97
97
97
98
98
98
99
99
99
99
99
99
99
99
99
99
99
100
100
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
104
105
107
111
111
117
119
120
120
120
120
122
122
123
123
127
129
129
131
151
153
155
174
176
176
178
193
197
197
216
218
218
220
239
243
243
243
243
244
244
245
246
246
246
246
246
246
247
247
247
248
248
248
249
249
250
250
250
250
250
250
250
250
250
250
250
250
251
251
251
251
251
251
252
252
252
252
252
252
252
252
252
252
253
253
253
254
255
255
255
255
255
255
255
259
263
263
264
264
271
272
274
277
281
281
282
282
289
289
289
289
298
299
299
300
303
310
310
311
311
318
318
318
321
328
328
329
329
338
339
340
344
344
347
347
347
347
357
357
358
366
368
368
368
369
369
376
383
384
384
384
384
388
388
394
395
395
397
402
407
412
412
424
432
432
435
449
453
453
454
454
462
462
472
477
477
482
482
482
482
499
501
516
521
521
534
539
539
555
557
560
575
575
578
596
599
601
620
625
625
640
645
645
664
666
669
687
692
692
706
709
711
729
734
734
753
758
758
773
775
778
1293
1297
1298
4
6
8
8
8
8
9
9
10
11
11
11
11
14
15
15
16
19
20
24
26
28
28
29
33
33
35
35
35
35
40
43
43
43
45
45
45
45
45
46
47
47
47
48
48
49
49
55
55
57
57
61
62
63
65
65
72
73
76
77
79
79
79
79
79
80
81
81
82
82
84
85
86
86
87
88
88
90
91
98
99
99
99
99
99
99
99
99
99
99
99
99
100
100
100
100
100
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
104
104
105
108
112
112
115
117
120
123
123
124
124
128
130
130
132
152
154
156
175
177
177
179
194
198
198
217
219
219
221
240
244
244
244
244
245
245
246
247
247
247
247
247
247
248
248
248
248
248
248
248
248
248
249
250
250
250
250
250
250
250
251
251
251
251
251
251
251
251
252
252
252
252
252
252
252
253
254
257
260
264
264
265
265
265
272
273
273
275
278
282
282
283
283
290
290
298
299
299
300
301
304
312
312
319
322
330
330
339
339
340
341
341
345
345
348
348
356
357
358
359
367
369
370
370
376
382
384
384
384
385
385
389
389
390
395
396
396
401
408
413
413
415
415
428
432
433
433
436
443
450
452
453
453
453
453
454
455
455
460
461
461
461
463
463
473
473
473
478
478
480
482
482
483
483
500
502
517
522
522
535
540
540
556
558
561
576
576
579
597
600
600
602
602
621
626
626
641
646
646
665
667
667
670
670
688
693
693
707
710
712
730
735
735
754
759
759
774
776
779
1294
1298
1299
5
5
5
7
7
9
9
9
9
9
11
11
11
12
15
15
15
16
16
17
18
20
23
25
25
26
26
27
27
29
35
35
35
35
36
36
43
43
44
44
45
46
46
46
48
49
49
50
50
53
53
55
62
62
62
63
64
64
64
64
66
66
68
68
73
80
80
81
81
81
82
82
82
83
85
86
86
87
87
87
88
89
89
91
96
96
99
99
99
99
99
99
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
103
103
103
104
105
105
109
113
113
118
118
118
120
120
121
124
124
125
125
131
131
133
155
157
176
178
180
195
199
199
218
220
222
241
245
245
245
245
246
247
247
248
248
248
248
248
248
249
249
249
249
249
250
250
250
250
250
251
251
251
252
252
252
252
252
252
252
252
253
253
258
258
261
266
266
266
273
274
274
279
283
284
284
290
299
300
301
302
302
302
305
310
311
311
311
313
313
314
318
320
320
323
326
331
331
339
341
341
342
342
346
346
348
357
359
360
368
368
369
369
369
370
371
371
385
385
386
386
390
390
396
401
402
402
402
409
413
414
414
416
416
428
433
434
434
437
444
444
444
444
451
454
454
455
456
456
460
460
460
461
462
462
462
471
474
474
474
479
479
483
484
484
501
503
518
523
523
536
541
541
557
559
562
577
577
580
598
603
603
622
627
627
642
647
647
666
671
671
689
693
694
694
708
711
713
731
736
736
755
760
760
775
777
780
1295
1299
1300
4
4
5
5
9
10
10
12
13
15
17
18
19
20
20
21
24
26
26
28
28
28
28
29
33
37
37
41
41
45
45
45
45
45
45
46
46
46
46
46
46
47
47
49
50
50
51
51
53
55
55
56
57
62
62
62
63
64
64
67
67
68
73
73
74
79
79
81
82
82
83
83
84
86
86
88
88
88
89
90
91
91
92
95
95
96
96
96
96
96
96
98
98
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
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
103
103
104
105
110
114
114
119
119
121
121
121
122
124
124
126
126
132
132
134
150
154
156
156
158
158
177
179
181
196
200
200
219
221
223
242
244
244
245
246
246
246
246
246
247
247
247
248
248
249
249
250
250
250
250
250
250
251
251
251
251
252
252
252
252
252
252
252
252
253
253
253
253
253
255
262
267
267
271
271
273
274
274
280
282
282
284
285
285
290
299
300
301
302
303
306
310
310
310
311
312
312
312
319
320
321
324
327
332
339
341
342
342
343
343
347
347
348
357
358
360
362
368
368
368
369
369
370
370
370
371
376
376
384
384
386
386
391
391
394
397
401
403
403
410
414
414
415
415
429
432
433
434
435
435
438
445
445
452
453
453
455
455
457
457
462
463
463
463
472
472
475
480
480
482
482
484
495
502
504
519
524
524
537
542
542
558
560
563
578
578
581
599
604
604
623
628
628
643
648
667
672
672
690
691
693
694
695
695
709
712
714
732
737
737
756
761
761
776
778
781
1296
1300
1301
5
5
5
7
9
10
11
11
11
11
13
14
15
18
19
19
19
19
20
21
22
22
25
26
26
27
27
28
29
29
29
37
38
43
43
46
46
47
47
47
47
47
48
48
50
52
52
53
55
55
55
56
57
57
62
64
68
68
68
72
72
72
74
74
75
75
79
81
81
81
82
82
82
82
83
84
85
85
86
86
87
89
89
89
90
90
90
91
92
93
93
96
96
96
96
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
101
102
102
102
102
102
102
102
102
102
102
102
102
103
103
105
111
113
113
115
115
122
122
122
123
125
125
125
125
127
127
133
135
151
155
157
157
159
159
180
182
197
201
201
222
224
243
243
243
244
245
245
245
245
245
246
246
246
247
247
247
247
247
248
248
248
248
248
248
248
249
249
249
251
251
251
251
251
251
251
252
252
252
252
252
252
252
253
253
253
253
255
257
257
257
257
263
264
268
268
272
272
272
272
274
281
283
283
285
286
286
299
300
302
302
302
303
304
307
312
313
313
313
320
322
325
327
327
331
331
333
339
339
342
343
343
348
348
357
358
360
360
361
363
367
370
370
371
371
371
372
374
377
377
385
387
390
392
392
394
395
402
402
404
404
404
411
416
416
422
428
433
434
435
435
436
439
445
453
454
458
458
461
463
464
464
476
481
481
483
496
500
503
505
520
525
525
538
543
543
559
561
564
579
582
600
605
605
624
629
629
644
649
668
673
673
691
692
694
696
696
710
713
715
733
738
738
757
762
762
777
779
782
1297
1301
1302
5
5
6
7
9
11
11
12
12
12
12
15
15
16
16
19
19
20
20
22
22
22
22
22
26
28
28
28
29
29
29
29
30
30
33
33
38
43
47
48
48
48
48
48
49
49
49
51
51
53
53
55
55
57
57
57
57
57
62
63
64
64
65
69
69
72
73
75
75
75
75
75
76
77
79
79
80
82
83
83
85
86
86
87
88
90
90
90
91
92
93
93
93
93
93
95
95
96
96
97
97
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
100
100
100
100
100
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
103
103
112
114
114
116
117
119
123
124
126
126
128
128
130
132
134
134
136
136
152
156
158
158
160
160
175
179
181
181
183
183
198
200
200
202
202
223
223
225
225
244
244
244
244
245
245
245
245
246
246
246
246
246
246
246
247
247
247
248
248
248
248
248
248
248
249
249
249
249
249
249
249
249
250
250
251
251
252
252
252
252
253
253
253
258
258
264
264
266
269
269
272
272
273
273
275
282
282
284
284
287
287
303
303
303
304
305
308
311
313
314
314
321
323
326
332
332
334
340
340
341
341
341
343
344
349
349
361
361
362
368
369
371
371
372
372
373
375
375
384
384
386
388
390
393
393
395
396
402
403
412
416
417
417
423
432
434
435
437
440
445
453
454
455
459
459
462
462
474
477
482
482
482
482
484
501
504
506
521
526
526
539
544
544
560
562
565
578
580
581
583
601
606
606
625
630
630
645
647
647
650
669
674
674
692
692
697
697
711
714
716
734
739
739
758
763
763
778
780
783
1298
1302
1303
5
5
7
8
11
13
13
13
13
16
17
19
19
20
21
22
23
26
26
27
29
30
30
31
31
33
38
38
39
40
43
44
45
48
48
49
50
50
50
50
50
50
50
52
52
54
54
55
55
57
58
62
64
64
65
65
66
68
68
70
70
72
72
75
75
76
76
76
77
77
78
81
84
84
86
87
87
88
88
89
90
90
90
90
91
91
91
91
92
93
93
94
95
95
95
96
96
96
96
96
96
96
96
96
96
96
97
97
97
98
98
98
98
98
98
98
98
99
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
102
102
102
102
102
102
102
102
102
102
102
102
103
103
113
115
115
117
120
123
125
127
127
127
127
129
129
131
133
135
135
137
137
157
161
161
176
180
182
182
184
184
199
201
201
203
217
221
224
224
226
226
242
243
243
243
243
243
243
243
245
245
245
245
245
245
245
245
245
246
246
246
246
246
246
247
247
247
247
247
247
247
247
248
248
248
248
248
248
248
248
249
249
249
249
249
250
250
250
250
250
250
250
251
251
252
252
252
253
253
253
253
253
257
257
257
257
259
259
265
266
270
270
273
274
274
282
283
288
288
304
304
304
306
309
312
312
322
324
327
331
333
333
342
342
342
342
345
350
350
362
362
369
370
370
372
374
384
384
385
385
389
394
394
394
396
397
403
403
404
404
413
416
418
424
424
433
433
435
435
436
438
441
453
453
454
455
460
460
474
478
482
482
483
483
483
483
502
505
507
522
527
527
540
545
545
563
566
581
582
584
602
607
607
626
631
631
646
648
651
670
675
675
693
694
698
698
715
717
735
740
740
759
764
764
781
784
1299
1303
1304
5
5
7
9
11
11
13
14
14
17
17
18
18
20
21
21
22
23
24
28
31
31
32
32
33
37
37
37
39
40
40
43
45
46
48
48
48
48
49
51
51
51
51
51
53
53
55
55
58
59
64
66
66
67
69
69
71
75
75
76
76
77
77
78
78
79
79
79
83
83
84
87
91
92
92
92
93
94
94
95
96
96
96
96
96
96
97
97
97
97
97
97
97
98
98
98
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
103
104
114
116
118
121
124
124
126
128
128
129
129
130
130
132
134
136
136
138
138
158
162
162
177
181
183
183
185
185
200
202
202
204
218
222
225
225
227
227
241
241
241
243
243
243
244
244
244
244
244
244
244
244
244
245
245
245
245
245
246
246
246
246
246
246
246
246
246
246
247
247
247
247
247
247
247
248
248
248
248
248
248
248
248
248
248
249
249
249
249
250
250
250
250
250
251
251
251
251
251
252
253
253
253
253
253
257
257
257
257
258
258
258
264
264
264
266
266
267
271
271
272
272
274
274
282
283
284
289
289
302
305
307
310
318
323
325
325
328
328
331
343
343
346
351
360
370
373
375
377
386
386
390
395
395
395
397
405
405
414
419
425
425
425
425
433
435
436
436
437
439
442
452
453
454
455
456
461
461
464
479
484
484
484
503
506
508
523
528
528
541
546
546
560
564
564
567
582
583
585
603
608
608
627
632
632
647
649
652
671
676
676
694
694
699
699
716
718
736
741
741
760
765
765
782
785
1300
1304
1305
5
5
7
10
13
13
13
15
15
21
22
22
22
23
24
25
26
29
31
33
33
37
38
40
40
40
40
40
43
43
43
47
48
48
49
50
52
52
52
52
52
54
54
55
55
56
56
57
59
60
64
64
66
68
70
70
72
75
75
76
77
77
78
78
79
79
79
79
80
80
83
84
84
84
84
87
88
88
89
91
92
93
93
93
93
94
95
95
95
95
96
96
96
97
97
97
99
99
99
99
99
99
99
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
103
103
105
113
115
117
117
119
125
127
130
130
131
131
135
139
139
159
163
163
182
186
186
201
203
205
219
223
228
228
242
242
242
243
244
244
244
245
245
245
245
245
245
245
245
245
245
245
246
246
246
246
246
246
246
246
246
246
247
247
247
247
247
247
247
248
248
248
248
248
248
249
249
249
249
249
249
249
249
250
250
250
251
252
254
254
258
258
259
259
259
265
265
265
267
267
268
272
272
273
274
283
284
285
289
290
290
299
306
308
311
314
319
324
327
329
329
331
332
343
347
347
350
350
352
357
371
372
374
374
376
376
377
382
387
387
391
395
395
396
396
397
397
397
398
403
404
404
404
406
406
415
416
416
417
417
420
423
425
425
426
426
433
435
436
437
437
438
440
440
443
443
453
455
456
457
462
462
464
480
480
483
483
485
485
485
504
507
507
509
509
524
529
529
542
547
547
565
565
568
583
584
586
604
609
609
628
633
633
648
650
653
672
677
677
695
700
700
717
719
737
742
742
761
766
766
783
786
1301
1305
1306
1
5
5
5
7
11
11
11
13
13
14
16
16
18
19
19
22
22
22
23
23
24
26
30
31
31
34
34
37
37
40
41
49
49
49
50
50
51
53
55
55
55
56
56
57
57
57
57
66
66
66
69
71
72
73
75
75
75
76
77
78
79
79
79
80
80
84
85
85
85
88
88
89
89
90
92
92
93
93
93
93
94
94
94
95
95
96
96
96
97
98
98
99
99
99
99
99
99
99
99
99
99
99
99
99
100
100
100
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
103
103
114
118
118
120
122
122
126
126
127
127
128
131
131
132
132
136
140
140
160
164
164
183
187
187
202
204
206
224
229
229
243
243
243
244
245
245
245
245
245
245
246
246
246
246
246
246
246
246
246
246
246
246
247
247
247
247
247
247
247
247
248
248
248
248
248
248
248
248
248
248
249
249
249
250
250
250
250
250
250
251
251
252
253
253
259
259
259
260
260
266
268
268
269
272
272
273
273
274
282
284
285
286
290
290
290
291
291
299
300
302
302
307
309
312
314
320
320
325
327
330
330
332
333
343
348
348
348
348
351
353
357
358
360
360
372
372
377
377
383
388
392
397
397
398
398
399
403
403
403
404
405
405
405
414
416
417
417
418
421
426
427
427
433
433
436
437
439
444
444
453
454
456
458
463
463
481
481
484
486
486
505
510
510
525
530
530
543
548
548
566
566
569
584
585
587
605
610
610
629
634
634
649
651
654
673
678
678
696
701
711
718
720
738
743
743
762
767
778
782
784
787
1302
1306
1307
1
1
5
5
5
6
7
7
7
12
13
13
13
17
17
19
20
22
23
24
24
24
25
25
26
26
31
31
32
35
35
41
42
48
48
48
50
50
52
53
53
54
56
56
57
57
58
58
59
59
60
64
64
66
70
72
74
75
77
77
78
78
79
80
84
84
85
86
86
86
86
89
89
90
90
90
91
93
93
93
94
94
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
98
98
98
99
99
99
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
102
102
102
102
115
119
119
121
127
128
128
128
129
133
133
137
141
141
161
165
165
184
188
188
205
207
225
230
230
242
243
243
244
244
244
244
244
244
245
246
246
246
246
246
246
246
246
246
247
247
247
247
248
248
248
248
248
248
248
248
248
248
249
249
249
249
250
250
250
250
251
251
251
251
251
251
251
253
254
254
254
267
269
269
270
272
272
273
273
274
274
274
283
285
285
287
291
291
292
292
299
303
303
310
313
321
321
321
321
326
331
331
331
333
334
349
349
349
352
354
357
361
361
373
378
378
383
383
387
387
387
389
393
395
397
398
398
399
399
405
406
406
406
415
415
417
419
422
425
425
427
434
434
435
435
435
437
440
444
445
445
453
454
456
456
457
459
464
464
464
464
472
481
481
482
485
485
485
487
487
506
511
511
526
531
531
544
549
549
567
567
570
585
586
588
606
611
611
630
635
635
650
652
655
674
679
679
697
700
700
702
712
716
719
721
739
744
744
763
768
783
785
788
1303
1307
1308
5
5
7
8
8
11
11
13
13
16
16
18
18
20
21
22
22
23
23
24
24
25
25
26
31
31
32
32
33
33
33
33
36
36
40
42
43
48
48
48
50
50
50
51
51
53
54
54
54
55
57
57
57
57
57
57
59
59
60
66
66
66
73
75
75
75
78
79
79
80
81
84
84
84
86
86
86
90
91
93
93
94
94
95
95
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
100
100
100
100
101
101
101
101
101
101
101
102
102
102
102
102
102
103
120
120
122
129
129
129
130
134
134
138
142
142
162
166
166
185
189
189
200
204
206
206
208
208
226
231
231
241
242
243
244
244
246
246
246
246
246
246
247
247
247
247
247
248
248
248
248
249
249
249
249
249
249
249
250
250
250
250
250
251
251
251
251
251
251
254
255
265
268
270
270
271
274
274
275
275
282
284
288
290
291
291
291
291
292
293
293
300
302
304
304
304
311
314
314
314
319
321
321
322
322
327
327
332
332
332
334
334
348
349
349
349
349
350
350
353
355
358
360
362
362
362
372
372
374
379
379
387
388
388
390
394
398
399
399
404
406
407
407
418
420
423
426
436
436
436
436
441
445
445
445
446
446
457
457
458
460
462
465
465
465
465
473
483
486
486
486
488
488
507
512
512
527
532
532
545
550
568
568
571
586
587
589
607
612
612
631
636
636
651
653
656
675
680
680
698
701
703
717
720
722
740
745
745
764
766
766
769
784
786
789
1304
1308
1309
9
9
13
13
13
14
17
17
19
24
24
24
25
25
26
26
27
31
31
31
33
33
33
37
37
37
40
40
48
49
50
50
50
51
54
55
55
55
56
58
58
58
58
58
58
59
59
60
60
60
64
64
66
68
72
74
74
76
76
77
77
78
80
84
87
90
92
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
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
99
99
99
99
99
99
99
99
99
99
99
99
99
99
100
100
100
100
100
100
100
101
102
102
102
102
102
102
102
102
102
119
121
121
121
121
123
126
130
131
131
131
131
131
135
135
139
143
143
163
167
167
186
190
190
201
205
207
207
209
209
227
232
232
241
241
242
242
243
243
244
244
244
244
245
245
246
246
247
247
247
247
247
248
248
248
248
248
248
248
248
248
250
251
251
251
251
251
252
252
255
255
256
256
260
265
266
269
271
271
275
275
276
276
283
283
285
285
289
292
292
293
294
294
302
303
312
312
315
315
315
322
323
323
328
331
333
333
333
342
350
350
351
351
354
356
360
361
370
373
373
375
375
380
380
383
388
389
389
395
395
399
400
400
405
405
417
419
421
424
425
425
427
437
437
442
446
446
447
447
458
458
461
463
463
466
466
474
474
484
485
487
487
487
489
508
513
513
528
533
533
546
551
569
569
572
587
588
590
608
613
613
632
637
637
652
654
657
676
681
681
694
699
702
704
718
721
723
741
746
746
765
767
770
785
787
790
1305
1309
1310
5
9
11
11
13
13
13
13
15
18
18
20
22
22
25
25
25
26
26
27
28
31
34
38
38
42
42
43
47
50
51
52
52
55
56
57
57
57
59
59
59
59
60
61
61
66
66
66
69
73
75
75
75
75
77
77
78
84
85
86
86
88
91
91
92
92
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
96
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
99
99
99
99
99
99
99
99
99
99
99
99
99
99
100
100
100
101
101
101
101
101
102
102
102
102
102
102
102
102
120
122
122
124
127
132
132
132
136
136
140
144
144
164
168
168
187
191
191
202
206
208
208
210
210
228
233
233
238
240
241
241
241
241
241
241
241
241
241
241
242
242
242
243
243
243
243
243
243
243
243
243
244
244
244
244
244
245
245
245
245
245
246
246
246
246
246
248
248
248
248
248
248
248
249
249
251
251
251
251
252
252
253
253
257
257
260
267
269
272
276
277
277
283
285
286
286
290
291
291
293
293
295
295
303
303
304
304
307
311
313
313
313
316
321
321
323
329
332
332
334
334
334
334
343
343
343
343
349
349
351
351
352
355
357
361
361
362
362
371
371
376
376
381
381
389
395
396
396
397
401
401
417
420
422
425
425
425
426
426
437
443
445
446
446
446
446
447
448
448
456
462
467
467
475
475
475
475
485
485
488
490
509
514
514
529
534
534
547
549
549
552
570
570
573
589
591
609
614
614
633
638
638
655
658
677
682
682
692
694
695
700
703
705
719
722
724
742
747
747
766
768
771
786
788
791
1306
1310
1311
5
9
9
13
13
13
13
14
14
16
19
21
24
24
25
26
27
27
28
28
29
31
32
33
33
35
37
37
39
39
40
40
43
52
52
53
56
56
58
59
59
60
60
60
60
60
60
60
62
62
64
64
66
66
66
66
70
74
76
76
77
77
78
78
78
84
86
86
87
87
92
94
95
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
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
121
123
123
125
128
133
133
133
133
133
136
136
137
137
141
145
145
165
169
169
188
192
192
207
211
211
229
234
234
237
237
239
239
239
241
241
241
242
242
242
242
242
242
242
242
242
242
242
242
242
242
243
243
243
243
243
243
243
244
244
244
244
244
244
244
244
244
244
245
245
245
245
245
245
246
246
246
246
246
246
246
248
248
249
249
249
249
251
251
251
253
253
254
254
258
258
267
267
271
273
275
275
277
278
278
283
285
286
287
287
291
292
296
296
305
305
312
314
317
322
330
332
334
335
335
335
335
344
344
350
353
356
358
363
363
377
377
377
382
382
387
390
396
397
397
397
398
402
402
407
421
423
426
427
427
437
444
447
447
448
449
449
453
463
465
468
468
473
475
475
476
476
481
485
486
486
489
491
510
515
515
530
535
535
548
550
553
571
571
574
590
592
610
615
615
634
639
639
656
659
678
683
683
693
695
701
704
706
720
723
723
725
725
743
748
748
767
769
772
787
789
789
792
792
1307
1311
1312
5
5
9
10
11
15
15
17
20
22
22
22
24
25
28
29
29
30
31
33
33
34
34
36
38
38
40
42
42
43
50
50
52
54
57
57
57
57
57
59
59
60
61
61
61
61
62
62
63
63
66
66
66
66
67
67
75
75
75
76
77
77
78
79
79
86
88
88
90
91
92
92
93
93
93
93
95
95
95
95
95
95
96
96
96
96
96
96
96
96
97
97
97
97
97
97
98
98
98
98
99
99
99
99
99
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
102
124
124
126
130
130
134
137
137
138
138
142
146
146
166
168
168
170
170
189
193
193
208
212
212
230
235
235
238
238
240
240
240
241
241
242
242
242
243
243
243
243
243
243
243
243
243
243
243
243
243
243
244
244
244
244
244
244
244
244
244
244
245
245
245
245
245
245
245
245
245
246
246
246
246
246
246
246
246
247
247
247
247
247
247
247
247
248
248
254
254
255
255
259
259
260
260
271
274
276
276
278
279
279
286
287
291
292
293
297
303
304
304
304
306
306
313
315
315
318
321
321
323
331
332
334
335
336
336
336
336
344
349
351
354
357
359
361
362
362
362
364
364
373
378
378
378
378
378
383
383
383
387
388
398
398
398
399
403
403
407
422
423
424
427
428
428
445
446
446
448
448
450
450
453
454
456
456
464
465
469
469
476
477
477
481
486
487
487
490
492
511
516
516
531
536
536
549
551
554
572
575
591
593
611
616
616
635
640
640
657
660
679
684
684
693
702
705
707
721
726
726
744
749
749
768
770
773
788
793
793
1308
1312
1313
9
9
10
11
11
11
11
15
16
20
21
21
23
24
24
24
25
25
25
25
25
26
29
30
30
31
33
35
35
37
39
39
40
40
41
43
50
52
52
53
58
58
59
59
59
60
60
60
60
60
62
62
63
63
64
64
64
68
68
75
76
76
76
77
77
77
77
77
78
78
78
78
78
80
80
86
86
88
92
92
93
93
94
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
99
99
100
100
101
101
101
102
102
102
102
102
102
103
103
125
125
127
129
129
131
134
134
135
138
138
139
139
143
147
147
167
169
169
171
190
194
194
209
213
213
231
235
235
236
236
237
237
237
239
239
239
241
241
241
241
242
242
243
243
243
243
244
244
244
244
244
244
244
244
244
244
244
244
244
244
244
244
245
245
245
245
245
245
245
245
245
246
246
246
246
246
246
246
246
246
246
247
247
247
247
247
247
248
248
248
248
254
255
255
259
260
260
261
261
275
275
277
277
280
280
287
291
291
292
293
298
303
303
303
304
305
305
305
314
315
316
319
321
321
322
322
332
332
332
335
336
337
337
344
349
349
350
358
360
361
361
361
362
363
363
363
373
376
378
378
379
379
379
383
384
384
388
389
398
399
399
399
404
404
424
425
428
429
446
447
451
451
453
457
457
465
470
470
475
475
477
485
487
488
491
493
512
517
517
532
537
537
550
552
555
571
573
574
576
587
592
594
612
617
617
636
641
652
656
658
661
680
685
685
695
703
706
708
722
727
727
745
750
750
769
771
774
789
794
794
1309
1313
1314
1
4
5
9
9
9
11
11
11
11
15
16
20
22
22
22
22
24
24
25
26
26
26
27
31
32
33
33
35
38
40
42
42
42
43
50
52
52
52
53
54
54
55
55
57
57
59
59
59
60
60
60
61
61
61
61
61
63
63
64
64
65
65
68
69
75
75
75
75
76
77
77
78
78
78
79
79
79
81
81
88
88
88
95
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
100
100
100
100
101
101
101
101
102
102
102
102
103
104
104
126
128
132
132
135
135
135
136
138
138
140
140
144
146
146
148
148
168
170
170
172
191
193
193
195
195
210
214
214
232
236
236
237
237
238
238
238
239
239
240
240
240
240
240
241
241
241
241
241
241
242
242
242
242
243
243
244
244
244
244
244
245
245
245
245
246
246
246
246
246
246
246
246
246
247
247
247
248
248
249
249
249
249
249
249
249
249
250
250
250
250
255
255
256
256
260
261
261
275
276
281
281
290
291
292
293
294
296
296
299
305
306
306
306
315
317
320
323
323
333
333
333
334
334
334
336
338
338
348
349
350
351
359
361
363
364
364
364
379
380
380
380
385
385
387
389
390
398
399
399
399
400
400
405
405
407
407
415
424
424
426
428
428
429
430
436
446
447
448
452
452
454
456
458
458
458
465
465
466
471
471
476
481
486
488
488
492
494
513
518
518
533
538
538
551
553
556
574
575
577
588
590
593
595
613
618
618
637
642
657
659
662
681
686
686
695
704
707
709
723
728
728
746
751
751
770
772
775
790
795
795
1310
1314
1315
5
5
9
11
16
16
16
17
21
23
23
25
25
27
27
27
28
32
33
35
35
35
39
40
40
41
42
43
43
52
52
54
54
54
54
54
60
60
61
61
61
62
62
62
62
62
64
64
64
66
66
69
75
76
77
78
78
79
79
80
80
80
82
82
86
86
88
88
88
88
88
92
93
95
95
95
95
95
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
100
100
100
100
100
101
101
101
101
102
102
102
103
104
105
105
123
125
127
127
129
129
136
136
136
137
139
139
139
139
141
141
145
147
147
149
169
171
173
192
194
194
196
211
215
215
233
237
237
238
239
239
239
239
239
240
240
241
242
242
242
242
242
242
244
244
244
244
244
245
246
246
246
247
247
247
247
247
247
247
247
248
248
249
249
249
249
249
249
251
251
257
259
262
262
265
265
267
275
276
277
282
282
283
283
291
293
294
295
297
300
304
306
307
307
315
315
316
318
318
319
321
321
324
324
334
335
335
335
335
339
339
349
351
352
360
362
362
364
365
365
373
373
378
378
380
381
386
386
388
390
400
400
401
401
405
406
406
408
408
416
427
429
429
430
431
437
437
437
437
446
446
447
448
453
453
456
457
463
466
466
467
472
472
475
475
477
485
487
493
495
514
519
519
534
539
539
552
554
557
575
576
578
591
594
596
614
619
619
638
640
640
643
658
660
663
682
687
687
708
710
724
729
729
747
752
752
771
773
776
791
796
796
1311
1315
1316
5
5
6
9
10
11
11
11
15
15
15
17
17
18
18
22
22
24
24
26
26
27
29
29
30
30
33
33
33
34
35
42
42
42
42
43
43
43
43
44
52
52
54
55
57
61
62
62
62
62
63
63
63
64
65
67
67
69
69
70
75
75
76
77
77
78
79
79
80
80
80
83
83
88
88
88
88
89
89
92
93
94
95
95
95
95
95
95
96
96
96
96
96
96
96
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
99
99
99
99
99
99
99
100
100
101
101
102
102
102
102
102
104
105
106
106
124
126
128
128
128
130
130
133
137
138
140
140
142
142
146
148
148
150
170
172
174
193
195
195
197
212
214
214
216
216
234
238
239
240
240
240
240
240
240
240
240
240
241
241
241
241
242
242
242
242
242
242
242
243
243
243
243
243
243
244
244
245
245
245
246
246
246
246
246
247
249
249
249
250
250
250
250
251
251
251
252
252
258
260
261
261
261
263
263
266
266
266
266
267
276
277
278
283
283
284
284
285
285
285
291
292
294
296
298
301
305
305
313
316
316
317
320
322
322
325
335
336
336
340
340
343
349
350
352
354
361
363
363
363
371
374
374
379
382
387
387
388
388
390
390
390
391
401
401
402
406
406
407
407
417
417
422
426
428
428
430
430
431
438
438
445
446
447
448
449
454
454
457
457
458
458
464
464
468
473
473
475
475
476
476
486
486
487
488
488
494
496
515
520
520
535
540
540
553
555
558
576
577
579
592
595
597
615
620
620
639
641
644
659
661
664
683
688
688
709
711
725
730
730
748
753
753
774
777
792
797
797
1312
1316
1317
4
4
4
5
6
7
9
11
11
12
12
15
16
18
18
18
18
18
22
23
27
27
27
27
30
31
34
35
35
35
35
37
40
40
41
43
43
43
44
44
45
45
54
55
56
57
59
62
62
62
63
64
64
64
64
64
64
64
66
68
68
68
68
68
70
71
71
75
75
76
77
78
79
80
80
80
80
84
84
86
90
90
93
93
93
95
95
95
95
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
99
99
99
99
99
99
99
99
100
101
101
102
102
103
104
105
105
105
105
106
107
107
125
127
129
129
131
131
134
137
139
141
141
141
141
143
143
147
149
151
173
175
194
196
198
213
215
215
217
235
239
239
239
239
240
240
240
241
241
241
241
241
241
241
241
241
242
242
242
242
242
242
242
242
243
243
243
243
243
244
244
244
244
244
244
244
244
245
246
246
246
246
246
249
249
249
249
250
250
250
250
251
251
251
259
260
261
261
262
262
264
264
266
266
267
267
275
277
278
279
284
284
286
286
286
286
291
292
294
294
295
297
299
302
314
314
318
320
320
323
323
324
324
326
336
336
341
341
344
344
344
344
349
350
352
352
353
355
359
362
364
372
372
378
378
380
383
388
388
391
391
392
399
403
408
408
418
418
418
418
427
428
429
432
438
446
448
449
450
455
455
459
459
469
474
474
477
477
486
488
488
489
489
492
495
497
516
521
521
536
541
541
554
556
559
577
578
580
593
596
598
616
621
621
640
642
645
660
662
665
684
689
689
710
712
726
731
731
749
754
754
775
778
793
798
798
1313
1317
1318
1
1
4
4
5
5
7
8
11
13
13
15
15
18
19
22
22
24
27
28
28
28
31
31
32
32
33
33
34
35
35
35
35
35
35
36
38
42
44
44
45
45
46
46
54
56
57
57
57
60
62
63
63
65
65
65
65
67
68
69
69
69
71
71
71
71
71
75
75
79
80
80
81
81
85
85
90
91
92
92
92
93
93
93
94
95
95
95
96
96
96
96
97
97
97
97
97
97
97
97
97
97
98
98
98
98
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
101
101
101
101
101
101
101
104
105
106
106
106
106
107
108
128
132
132
135
138
138
140
142
142
143
143
144
144
148
150
152
168
172
174
174
176
176
195
197
199
214
216
216
218
236
237
239
239
239
239
240
240
240
240
241
241
241
241
241
242
242
242
242
242
242
242
242
242
242
242
243
243
243
243
243
243
243
243
244
244
244
244
244
244
244
244
245
247
247
249
249
249
251
251
252
252
252
260
262
263
263
265
265
267
267
268
268
276
278
278
280
285
285
287
287
295
295
296
298
300
303
307
319
324
324
325
325
327
336
337
342
342
345
345
353
353
354
360
363
365
365
378
378
379
379
384
388
389
389
390
392
392
398
404
408
409
409
416
418
418
419
419
424
428
428
429
430
433
438
446
447
449
451
456
456
457
458
458
458
460
460
466
470
473
475
475
478
478
486
488
489
490
490
493
496
498
517
522
522
537
542
542
557
560
578
579
581
594
597
597
599
599
617
622
622
641
643
646
661
663
663
666
666
685
690
690
704
711
713
727
732
732
750
755
755
776
779
794
799
799
1314
1318
1319
1
1
1
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
35
36
36
36
36
37
39
40
43
45
45
45
47
47
52
54
54
61
62
62
63
64
64
64
64
66
66
66
66
66
66
68
68
68
69
69
70
70
71
72
80
80
80
81
82
82
82
82
82
84
84
86
86
86
86
91
92
92
92
92
92
92
93
93
93
93
93
94
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
98
98
98
98
99
99
99
99
100
100
100
100
100
101
102
102
102
102
102
102
102
103
105
106
106
107
107
107
107
107
108
109
129
133
133
139
141
144
144
145
145
151
153
169
173
175
175
177
177
198
200
215
217
219
235
235
235
236
236
237
237
237
237
237
238
238
240
240
240
240
241
241
241
241
242
242
242
242
242
242
243
243
243
243
243
243
243
243
243
244
244
244
244
244
244
244
244
244
244
244
245
245
245
245
245
245
246
252
253
253
261
261
261
263
264
264
266
266
266
266
268
275
277
281
286
286
287
296
296
299
301
304
307
316
320
324
325
325
326
326
338
343
343
345
354
354
361
364
365
366
374
380
380
385
390
390
391
398
399
399
399
405
408
410
410
419
420
420
424
429
429
430
431
434
446
447
449
449
450
452
457
457
457
457
457
458
459
459
459
466
471
474
476
476
479
486
486
489
490
494
497
499
518
523
523
538
543
543
554
558
558
561
579
580
582
595
600
600
618
623
623
642
644
647
662
667
667
686
691
691
705
709
712
714
728
733
733
751
756
756
771
775
777
780
795
800
800
1315
1319
1319
1320
4
4
4
5
5
7
9
10
13
13
13
18
20
21
22
26
27
27
27
27
28
29
29
30
30
32
33
33
36
37
37
37
37
38
40
44
45
45
45
45
48
48
56
56
57
57
61
62
62
62
63
63
64
64
65
67
67
67
69
69
70
70
71
71
72
73
75
80
80
80
82
82
83
85
85
86
87
91
91
92
92
92
92
92
93
93
94
94
94
95
95
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
99
99
99
100
100
102
102
102
102
102
103
103
104
106
107
107
108
108
108
108
109
110
130
134
134
136
136
140
140
141
141
142
145
145
146
146
146
150
152
152
154
154
170
174
176
176
178
178
193
197
199
199
201
201
216
218
220
235
235
235
236
236
236
237
237
237
237
238
238
238
238
238
238
238
238
238
239
239
239
239
240
240
241
241
241
241
242
242
242
242
242
243
243
243
243
243
243
243
244
244
244
244
244
244
244
244
244
245
245
245
245
245
245
247
247
255
262
262
262
264
265
265
267
267
267
276
276
278
278
282
287
287
287
294
300
302
305
316
321
324
326
326
339
344
344
345
352
362
365
367
374
376
381
381
386
388
391
391
392
398
400
400
406
411
411
418
418
420
428
430
430
431
432
435
450
450
451
453
458
458
459
460
460
460
472
474
474
477
477
478
478
480
487
487
488
488
488
490
495
498
500
519
524
524
539
544
544
559
559
562
580
581
583
596
601
601
619
624
624
643
645
648
663
668
668
687
692
692
710
713
715
729
734
734
752
757
757
776
778
781
796
801
801
1316
1319
1320
1321
5
5
5
6
8
10
11
11
11
13
15
18
18
27
27
31
31
33
34
36
37
37
38
38
39
40
40
40
45
45
45
46
49
49
54
54
57
62
62
62
62
64
66
67
67
68
68
68
70
70
71
71
71
72
72
73
74
80
84
86
86
88
90
90
92
92
92
93
93
94
94
95
96
96
96
96
96
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
100
100
100
100
100
100
100
100
101
101
102
102
102
102
103
104
104
105
105
107
108
109
109
109
109
110
111
131
135
135
141
142
142
142
143
147
147
147
151
153
153
155
155
175
179
179
194
198
200
200
202
202
219
221
236
236
236
237
237
237
237
237
237
238
238
238
238
239
239
239
239
239
239
239
239
239
239
239
240
240
240
240
240
240
240
241
241
242
242
242
242
242
242
242
242
242
242
242
242
243
244
244
244
244
244
244
244
244
245
245
245
246
246
247
256
256
263
266
266
266
266
266
268
268
268
276
278
279
279
283
288
288
291
301
303
306
307
307
320
322
324
325
327
327
335
340
345
345
349
363
365
365
366
366
368
368
377
382
387
388
389
390
392
392
399
399
401
401
401
407
408
408
412
412
419
424
429
431
431
431
433
433
436
436
451
451
454
458
459
459
460
461
461
473
478
478
479
479
481
489
489
489
489
496
499
499
501
501
520
525
525
540
545
545
560
560
563
582
584
597
602
602
620
625
625
644
646
649
664
669
669
688
693
693
693
711
714
716
730
735
735
753
758
758
777
779
782
797
802
802
1317
1321
1322
4
5
6
7
9
11
12
13
13
13
20
20
21
27
28
28
29
29
32
32
33
33
34
35
37
37
38
38
38
39
40
46
46
47
47
50
50
56
56
57
62
63
63
64
64
65
65
67
68
68
68
68
69
69
69
71
71
71
71
71
71
73
73
80
81
82
82
85
86
87
89
90
92
92
93
93
93
93
93
94
95
95
95
95
95
96
96
96
96
96
96
96
96
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
100
101
101
102
102
102
102
104
104
105
106
109
110
110
110
110
111
112
132
136
136
143
143
143
144
145
145
145
145
148
148
148
152
154
154
156
156
176
180
180
195
199
201
201
203
203
220
220
222
222
235
235
237
237
237
237
238
238
238
238
238
238
238
238
239
239
239
239
239
240
240
240
240
240
240
240
240
240
240
240
241
241
241
241
241
242
242
242
242
243
243
243
243
243
243
244
244
245
245
245
245
245
246
247
247
247
253
264
264
266
266
266
267
267
269
269
276
278
279
280
280
284
289
289
291
292
294
294
304
305
307
308
308
320
323
325
326
328
328
336
336
336
336
341
346
346
349
350
352
352
363
364
366
366
369
369
377
377
381
381
381
383
388
389
390
390
391
393
393
399
400
406
408
409
409
413
413
418
418
420
428
430
432
437
437
449
455
459
459
460
460
474
478
479
479
480
480
490
490
497
502
502
521
526
526
541
546
546
561
561
564
583
585
598
603
603
621
626
626
645
647
650
665
670
670
689
694
694
712
715
717
731
736
736
754
759
778
780
783
798
803
803
1318
1322
1323
7
7
8
10
11
11
12
13
13
18
18
21
27
29
29
29
30
30
33
33
33
38
38
38
39
39
40
41
45
47
47
51
51
54
54
57
62
64
64
65
65
68
69
69
69
70
72
72
72
72
72
72
72
72
73
73
74
74
74
74
74
80
82
82
83
83
86
88
90
90
90
90
91
92
93
93
93
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
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
101
102
102
102
102
104
105
105
105
106
107
109
110
110
111
111
111
111
112
113
133
135
137
137
140
144
145
146
146
149
149
153
157
157
177
181
181
200
204
204
214
218
221
221
223
223
235
235
236
236
237
237
238
238
238
238
238
238
238
238
238
239
239
239
239
239
239
240
240
240
240
240
240
241
241
241
241
241
241
241
242
242
242
242
242
243
243
243
243
244
244
244
244
244
244
244
244
244
245
245
245
246
247
248
248
253
262
265
268
268
270
270
279
280
285
290
290
291
295
295
305
306
306
308
324
324
326
327
329
329
337
337
342
347
347
349
353
353
364
364
365
370
370
381
382
382
384
389
391
391
392
394
394
400
400
401
401
407
407
409
414
418
418
419
419
429
429
431
431
433
437
438
438
446
456
461
461
464
475
478
480
480
490
498
503
503
522
527
527
542
547
562
562
565
584
586
599
604
604
622
627
627
648
651
666
671
671
690
693
693
694
695
713
716
716
718
718
732
737
737
755
760
779
781
784
799
804
804
1319
1323
1324
9
11
13
13
13
13
14
20
20
21
29
30
31
31
33
34
34
37
37
37
39
39
39
40
40
40
40
41
42
45
45
45
47
47
47
48
52
52
56
56
57
61
64
66
66
66
69
70
71
71
71
72
72
72
73
73
73
73
74
74
74
74
74
74
75
75
75
75
82
84
84
89
91
92
94
94
94
95
95
95
95
95
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
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
102
106
107
110
111
112
112
112
113
114
134
138
138
141
146
147
147
150
150
150
150
154
158
158
178
182
182
201
205
205
215
219
222
222
224
224
233
235
236
236
237
237
237
237
238
238
238
238
238
238
239
239
239
239
239
239
239
240
240
240
240
240
240
240
240
240
240
241
241
241
241
241
241
242
242
242
242
242
242
243
243
244
244
244
244
245
245
245
245
245
245
246
247
248
249
260
262
266
269
269
271
271
280
286
291
291
292
294
296
296
296
306
309
314
320
325
325
327
327
330
330
337
343
348
350
352
354
354
354
366
371
371
372
377
382
383
383
390
391
392
392
395
395
402
402
410
415
420
420
429
431
432
432
434
438
438
438
439
439
446
447
449
449
457
461
462
462
465
474
476
478
479
481
490
499
504
504
523
528
528
543
548
563
563
566
580
585
587
600
605
605
623
628
628
649
652
667
672
672
691
694
696
714
719
719
733
738
738
756
758
758
761
780
782
782
785
785
800
805
805
1320
1324
1325
5
5
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
40
41
41
42
42
43
45
46
47
47
47
48
49
53
53
54
54
56
57
64
64
66
67
70
70
72
72
73
73
74
74
74
74
74
74
74
74
74
74
74
75
75
75
76
76
76
76
82
82
84
84
88
90
90
92
92
92
92
92
92
92
92
93
93
94
94
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
98
98
98
98
99
99
99
99
99
99
99
99
99
99
99
101
107
108
111
111
112
113
113
113
113
114
115
135
139
139
142
144
144
147
147
147
151
151
151
151
155
159
159
179
183
183
202
206
206
216
220
225
225
234
236
237
237
237
237
237
238
238
238
238
238
238
239
239
239
239
239
239
239
240
240
240
240
240
240
240
240
240
240
240
240
240
241
241
241
241
241
241
241
241
242
242
242
242
242
242
242
243
243
243
243
243
245
245
247
247
248
248
249
251
251
253
253
261
267
270
272
272
286
287
292
292
294
295
301
305
307
308
310
315
324
326
326
331
331
337
344
344
347
347
349
352
353
366
367
372
372
373
383
391
391
392
392
392
393
396
396
400
401
401
401
403
403
409
411
413
413
416
416
421
421
429
431
432
433
433
435
439
439
440
440
446
450
450
458
461
463
463
466
466
474
477
479
480
480
480
482
500
505
505
524
529
529
544
546
546
549
564
564
567
581
583
586
588
601
606
606
624
629
629
650
653
668
673
673
692
695
695
695
697
715
720
720
734
739
739
757
759
762
781
786
786
801
806
806
1321
1325
1326
4
5
6
6
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
42
43
43
44
47
48
49
50
54
54
56
56
56
57
57
57
57
66
66
66
68
71
71
71
71
71
73
74
74
75
75
75
75
75
76
76
76
76
76
77
77
77
77
84
84
84
85
89
91
91
92
92
92
92
92
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
96
97
97
97
98
98
98
98
99
99
99
99
100
100
102
102
107
108
109
109
110
111
112
112
114
114
114
115
116
136
140
140
145
148
152
152
152
152
156
160
160
180
184
184
203
207
207
221
226
226
233
234
235
235
235
235
235
237
238
238
238
238
238
239
239
240
240
240
240
240
240
240
240
240
240
241
241
241
241
241
241
241
241
241
241
242
242
242
242
242
242
242
242
242
243
243
243
243
244
245
245
245
245
247
249
249
252
254
254
261
261
268
269
269
271
273
273
276
276
287
287
287
288
293
293
295
295
296
296
306
308
308
311
316
316
325
325
327
327
327
332
332
345
345
345
345
348
350
353
353
354
354
366
368
373
373
374
374
381
384
392
393
393
394
397
397
400
400
400
401
402
402
402
409
412
414
417
417
422
429
429
432
433
436
438
439
439
439
439
440
441
441
447
449
451
451
451
459
464
464
467
467
467
467
478
478
480
481
481
483
501
506
506
525
530
530
545
547
550
565
565
568
584
587
589
602
607
607
625
630
630
645
649
651
654
669
674
674
693
696
696
696
696
696
698
716
721
721
735
740
740
758
760
763
782
787
787
802
807
807
1322
1326
1327
5
5
6
6
7
7
7
7
7
7
8
8
11
13
14
14
15
15
17
17
18
18
20
21
29
29
31
33
34
35
35
35
37
39
40
41
42
43
44
44
45
49
49
51
54
54
55
55
57
58
58
64
64
66
72
72
73
73
74
74
74
76
76
76
77
77
77
77
77
78
78
82
82
84
84
84
84
86
89
90
90
92
92
92
92
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
97
97
97
97
97
98
98
98
98
98
98
98
98
99
99
99
100
100
108
110
112
113
113
115
115
115
116
117
137
139
139
141
141
146
149
149
153
153
153
153
157
161
161
181
185
185
204
208
208
222
227
227
233
233
234
235
235
235
235
235
236
236
236
236
236
236
236
236
238
239
239
239
240
240
240
240
240
241
241
241
241
241
241
241
242
242
242
242
242
242
242
242
242
242
243
243
243
243
244
244
244
245
245
245
245
245
248
248
250
250
253
256
269
270
270
272
274
274
277
277
278
278
278
288
288
289
294
297
297
307
309
312
317
317
317
317
325
327
328
328
328
333
333
346
346
346
349
351
355
355
369
374
374
375
375
375
375
377
381
382
393
394
394
398
398
402
403
403
403
413
415
417
417
418
421
421
423
430
430
431
431
431
433
437
440
440
441
442
442
449
450
460
461
461
465
465
465
467
467
468
468
474
479
479
481
481
482
484
489
502
507
507
526
531
531
546
548
551
566
569
585
588
590
603
608
608
626
631
631
650
652
655
670
675
675
694
696
696
696
696
697
697
697
699
717
722
722
736
741
741
759
761
764
783
788
788
803
808
808
1323
1327
1328
7
7
8
8
13
14
15
15
15
16
18
18
20
20
20
21
21
21
21
31
31
31
34
36
36
38
40
40
41
42
43
45
46
47
47
49
52
56
56
59
59
66
66
66
69
69
71
71
73
73
73
73
73
74
74
74
75
77
77
77
78
78
79
79
84
84
84
84
85
85
88
88
89
91
92
92
92
92
92
92
92
92
93
93
93
93
93
93
94
94
94
94
94
94
95
95
95
95
95
95
96
96
96
96
96
96
97
98
98
98
98
98
98
99
99
99
99
99
99
99
100
100
109
111
113
113
114
114
115
116
116
116
116
117
118
138
140
140
142
143
143
146
148
148
150
150
152
152
153
153
154
154
158
162
162
182
186
186
205
207
207
209
209
223
228
228
231
233
233
234
234
234
234
235
235
235
236
236
236
236
236
237
237
237
237
237
237
237
237
238
238
238
240
240
240
240
240
240
240
242
242
242
242
242
243
243
243
243
246
251
251
254
256
256
257
269
270
271
271
275
275
279
279
279
279
287
288
288
288
288
289
290
295
295
296
296
296
298
298
308
308
308
310
313
315
317
317
318
318
325
327
328
329
329
329
334
334
336
345
346
346
346
346
347
347
350
352
353
354
354
354
356
356
366
366
370
373
375
375
375
375
376
376
377
382
383
392
394
399
399
401
403
404
404
414
416
419
422
422
424
432
432
432
432
438
439
439
441
441
443
443
450
450
451
451
459
461
462
462
466
466
468
469
469
478
480
480
483
485
490
490
490
490
503
508
508
527
532
532
547
549
552
565
567
568
570
586
589
591
604
609
609
627
632
632
651
653
656
671
676
676
695
697
697
698
698
698
700
718
723
723
737
742
742
760
762
765
784
789
789
804
809
809
1324
1328
1329
1
5
7
7
8
8
8
8
9
9
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
41
42
46
47
47
49
49
50
53
54
55
55
57
57
59
64
64
66
73
73
73
74
74
74
74
74
74
74
75
75
75
76
78
78
80
80
82
86
86
89
89
92
92
92
92
92
92
92
92
92
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
96
96
96
96
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
100
107
109
112
116
117
117
117
117
118
119
139
141
141
143
149
149
151
151
154
154
155
155
159
163
163
183
187
187
206
208
208
210
224
229
229
229
230
232
233
233
233
233
233
234
234
235
235
235
235
235
235
235
236
236
236
237
237
237
237
237
237
238
238
238
238
238
238
238
238
238
240
241
242
243
243
243
243
244
247
252
252
254
255
257
257
258
269
271
276
276
280
280
289
289
290
291
293
293
295
295
295
296
296
297
297
297
306
309
309
309
311
314
318
319
319
325
325
328
329
330
335
335
337
337
337
337
347
347
348
348
351
353
353
353
353
354
355
355
355
364
367
367
371
376
376
376
377
377
381
383
384
391
395
400
400
402
402
415
417
420
421
423
423
433
433
439
440
444
444
452
452
460
460
462
467
467
467
467
469
479
479
481
481
481
484
486
491
491
504
509
509
528
533
533
548
550
553
568
569
571
587
590
590
592
592
605
610
610
628
633
652
654
657
672
677
677
696
698
698
699
701
719
724
724
738
743
743
761
763
766
785
790
790
805
810
810
1325
1329
1330
1
1
4
4
5
6
8
8
8
9
9
10
10
11
16
16
16
17
20
20
23
23
31
31
31
31
32
32
36
38
40
42
42
43
43
43
44
44
47
47
48
49
49
49
50
51
51
54
54
56
56
58
59
59
66
66
66
71
71
74
75
75
75
76
76
76
77
77
77
79
79
81
81
86
87
92
92
92
92
92
93
93
93
93
93
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
96
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
99
99
110
111
112
113
113
114
117
118
118
118
119
120
140
142
144
150
150
152
152
155
155
156
156
160
164
164
184
186
186
188
188
207
209
209
211
225
230
230
230
231
233
233
233
233
233
234
234
234
234
234
234
235
235
235
235
235
235
236
236
236
236
236
236
236
236
236
236
236
236
237
237
238
238
238
238
238
238
238
238
238
238
238
238
238
239
239
239
239
240
242
242
242
242
242
242
242
243
243
243
248
253
253
254
256
258
259
261
262
262
269
270
272
277
277
280
288
288
290
290
292
294
297
297
298
298
298
307
307
310
312
312
315
315
317
317
319
326
326
327
327
327
329
331
336
336
338
338
346
346
348
348
349
352
354
355
356
356
356
365
365
372
375
375
377
377
377
382
384
391
392
392
392
396
401
401
407
416
418
421
421
433
439
440
441
445
445
450
451
451
451
453
453
463
468
468
468
479
481
482
482
482
485
487
491
505
510
510
529
534
534
549
551
554
569
570
572
588
593
593
606
611
611
629
634
653
655
658
673
678
678
697
700
702
720
725
725
739
744
744
762
764
767
786
791
791
806
811
811
1326
1330
1331
1
5
5
6
7
7
10
10
11
11
11
15
15
15
17
17
18
18
18
21
21
23
29
33
33
39
40
40
41
43
44
45
48
49
49
49
51
51
51
51
51
54
54
55
57
57
59
59
60
64
64
66
66
66
66
68
73
76
76
76
77
78
78
78
78
78
78
78
80
82
82
82
82
87
92
92
93
93
93
94
94
94
94
94
95
95
95
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
99
99
99
99
99
99
99
99
100
100
111
111
113
114
114
115
115
117
117
118
119
119
119
120
121
121
141
142
143
145
147
151
151
151
151
151
152
153
156
156
157
157
161
165
165
185
187
187
189
208
210
212
226
231
231
231
231
232
234
234
234
234
234
234
234
235
235
235
235
235
235
236
236
236
236
236
236
236
236
236
236
236
237
237
237
237
237
237
237
237
238
238
238
238
238
238
238
238
238
238
239
239
239
239
239
239
239
239
239
240
240
242
242
243
243
243
249
254
254
257
259
260
261
263
263
263
263
270
271
273
278
278
280
289
293
295
296
298
298
299
299
311
316
316
318
328
328
328
328
332
337
337
338
347
350
353
354
355
356
357
357
373
376
378
378
382
382
384
384
384
385
391
393
393
397
402
402
404
408
417
417
419
421
422
422
433
439
439
440
441
446
446
450
450
450
451
452
452
452
462
464
467
467
469
469
469
479
481
482
483
483
483
486
488
491
506
511
511
530
535
535
550
552
555
570
571
573
589
594
594
607
612
612
630
632
632
635
654
656
656
659
659
674
679
679
696
701
703
721
726
726
740
745
745
763
765
768
787
792
792
807
812
812
1327
1331
1332
1
8
8
8
8
8
8
8
10
12
12
15
16
18
18
18
18
18
18
18
22
22
23
23
33
34
34
38
40
40
42
42
42
42
43
45
45
46
46
48
49
49
49
49
50
51
52
56
58
59
59
60
60
61
61
61
61
66
66
66
66
67
67
71
74
76
77
79
79
79
79
79
81
82
83
83
87
87
88
93
93
93
93
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
97
97
97
97
97
98
98
98
98
99
99
99
99
99
99
99
99
99
114
115
115
116
116
118
118
118
119
119
120
120
120
121
122
122
144
146
148
153
154
157
157
158
158
162
164
164
166
166
186
188
188
190
209
211
213
227
232
232
232
232
232
233
233
233
235
235
235
235
235
235
235
235
236
236
236
236
236
236
236
236
236
237
237
237
237
237
237
238
238
238
238
238
238
238
238
238
238
239
239
239
239
239
239
239
239
239
240
240
240
240
240
240
240
240
242
242
242
242
244
244
250
254
254
255
255
257
257
260
261
263
263
264
264
269
271
272
274
279
279
288
290
294
296
297
297
299
309
312
317
317
317
317
319
329
329
333
338
338
338
346
348
351
354
355
355
356
367
374
375
375
377
379
379
385
385
386
392
392
394
394
394
398
403
403
404
409
409
417
418
420
422
423
423
438
439
440
441
442
447
447
452
453
453
453
462
465
467
467
468
468
470
470
479
479
482
483
484
487
489
507
512
512
531
536
536
551
553
556
571
572
574
590
595
595
608
613
613
631
633
636
655
660
660
675
680
680
696
696
697
702
704
722
727
727
741
746
746
766
769
788
793
793
808
813
813
1331
1332
1333
9
9
9
10
10
10
13
13
15
15
18
18
18
19
19
23
23
23
24
29
29
34
35
39
40
40
41
41
43
43
43
49
50
50
51
52
53
54
57
59
59
59
59
61
61
61
64
68
68
69
71
71
75
76
76
78
80
80
80
80
80
80
82
83
83
84
84
86
86
88
88
88
88
89
89
92
92
92
92
93
93
93
93
93
93
93
93
93
93
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
96
96
96
96
96
97
97
98
98
98
98
98
99
100
100
109
111
115
116
117
119
119
120
121
121
121
122
123
123
139
143
145
145
147
147
149
152
152
153
153
154
155
158
158
158
158
159
159
159
159
163
165
165
167
187
189
191
212
214
228
232
232
232
233
233
233
233
233
233
233
233
233
233
233
233
234
235
235
236
236
236
236
236
236
236
236
237
237
237
237
238
238
238
238
238
238
238
238
238
238
238
239
239
239
239
239
239
240
240
240
240
240
240
240
240
241
241
241
241
241
241
241
241
242
242
242
242
243
243
243
248
251
255
255
256
256
261
261
264
265
265
270
272
272
275
280
280
288
288
289
295
297
300
309
313
317
317
318
318
318
318
329
334
339
339
346
346
347
355
357
367
375
375
375
376
376
380
380
382
384
386
386
392
393
399
404
404
410
410
410
410
421
421
423
424
424
439
441
442
443
448
448
451
453
454
454
466
469
469
471
471
480
480
481
481
481
483
488
490
508
513
513
532
537
537
554
557
572
573
575
591
596
596
609
614
614
632
634
637
656
661
661
676
681
681
696
697
698
703
705
723
728
728
742
747
747
767
770
789
794
794
809
814
814
1327
1332
1333
1334
5
8
8
10
10
10
10
10
10
13
13
14
14
19
20
20
23
23
24
24
24
25
25
25
25
29
34
34
35
36
40
41
42
42
42
42
42
43
44
44
46
47
50
51
51
51
52
53
54
59
60
62
68
69
69
71
71
71
72
72
76
77
77
77
79
81
81
82
83
84
84
85
85
86
89
89
89
89
89
89
92
92
92
92
92
92
93
93
93
93
94
94
94
94
94
94
94
94
94
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
98
98
98
98
99
99
101
101
112
115
117
120
120
120
121
121
122
123
124
124
140
144
146
146
148
148
150
150
150
150
153
153
154
154
155
156
160
160
160
160
164
166
166
168
188
190
192
213
213
215
215
229
229
231
231
232
233
233
233
233
233
234
234
234
234
234
234
234
234
234
234
234
234
234
234
234
235
235
235
235
235
235
236
236
236
237
237
237
237
237
237
238
238
238
238
238
238
238
239
239
239
239
240
241
241
241
241
241
241
241
241
243
244
244
244
249
249
252
257
257
261
263
263
265
269
271
276
281
281
287
288
289
290
296
298
299
301
314
319
319
319
319
329
335
340
340
345
346
347
348
356
357
358
376
377
377
381
381
385
393
393
394
394
400
404
404
405
405
408
410
410
411
411
417
422
422
424
424
425
432
439
440
442
444
449
449
452
452
462
462
465
467
470
470
472
472
482
482
482
482
489
490
491
509
514
514
533
538
538
551
555
555
558
573
574
576
592
597
597
610
615
615
633
635
638
657
662
662
677
682
682
697
698
699
704
706
724
729
729
743
748
748
768
771
790
795
795
810
815
815
1333
1334
1335
5
6
10
10
10
11
14
14
15
15
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
47
48
49
50
51
51
51
52
53
55
59
59
60
61
61
61
61
63
63
64
64
69
69
71
72
72
73
76
76
76
76
77
78
78
78
78
78
81
81
82
82
84
85
85
86
86
86
86
86
87
88
88
89
89
90
92
92
92
92
92
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
96
96
96
96
96
97
97
98
98
98
98
98
98
98
99
99
99
102
102
113
116
116
118
121
121
122
122
123
123
124
125
125
141
145
147
147
149
149
151
151
151
151
156
156
156
156
156
156
156
156
156
156
156
157
161
161
161
161
165
167
169
191
193
207
211
214
214
216
216
230
230
231
232
232
233
233
233
234
234
234
234
234
235
235
235
235
235
235
235
235
235
235
235
235
236
236
236
236
236
236
236
236
237
237
238
238
238
238
238
238
239
239
240
241
241
241
242
244
245
245
253
258
258
261
264
270
270
272
272
277
282
282
288
290
291
297
299
299
302
315
315
320
320
320
320
336
341
346
348
349
357
357
359
373
377
378
378
382
382
382
386
395
395
401
402
405
405
406
406
411
412
412
421
423
423
426
433
433
433
433
439
440
442
442
443
445
450
450
460
463
463
466
468
471
473
473
483
483
490
491
491
491
491
492
510
515
515
534
539
539
556
556
559
574
575
577
593
598
598
611
616
616
634
636
639
658
663
663
678
683
683
694
698
699
702
705
707
725
730
730
744
749
749
763
767
769
772
791
796
796
811
816
816
1334
1335
1336
2
5
6
7
8
8
10
11
11
12
15
15
15
16
16
18
18
22
23
26
26
33
34
36
36
36
36
36
42
42
42
42
43
43
43
43
46
46
48
49
51
51
52
52
53
53
53
54
54
56
59
60
61
61
62
62
62
62
64
64
64
69
69
69
70
71
71
72
72
73
74
76
76
76
77
78
78
79
79
81
82
82
82
83
83
83
85
85
85
85
87
87
88
89
89
90
90
91
91
92
92
92
92
92
92
92
92
93
93
93
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
97
98
98
98
98
98
98
98
99
99
99
99
103
103
117
119
122
123
124
124
125
126
126
146
150
150
151
151
151
151
151
152
156
156
157
157
157
157
157
157
157
157
158
158
162
162
162
162
166
168
170
186
190
192
192
194
194
208
212
215
215
217
217
227
231
231
231
231
231
231
232
233
233
234
234
234
235
235
235
235
235
236
236
236
236
236
236
236
236
236
236
236
236
236
236
236
237
237
237
237
237
237
237
237
238
238
238
239
239
239
240
240
241
241
241
241
241
244
244
254
255
259
259
263
263
265
270
272
273
273
278
279
283
283
288
289
291
298
300
303
316
316
321
321
321
337
340
340
342
346
347
349
351
358
360
374
378
379
382
383
383
383
384
393
394
394
394
396
396
402
403
403
407
410
410
412
418
422
422
422
424
424
424
427
434
434
443
443
444
446
451
451
454
461
461
466
466
469
470
470
472
474
483
484
491
492
492
493
511
516
516
535
540
557
557
560
576
578
594
599
599
612
617
617
635
637
640
659
664
664
679
684
684
695
699
700
703
706
708
726
731
731
745
750
750
768
770
773
792
797
797
812
817
817
1335
1336
1337
2
3
8
8
10
10
10
12
12
12
13
15
15
17
17
20
20
21
23
23
24
25
25
27
27
33
33
36
37
40
40
43
43
44
44
47
47
51
51
52
53
54
54
55
57
61
61
63
63
63
63
64
65
65
68
68
68
69
70
71
71
71
72
72
73
74
76
78
82
83
83
83
84
84
84
86
86
86
86
86
86
88
88
88
88
88
90
91
91
92
92
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
94
94
94
94
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
97
97
97
98
98
98
98
98
98
98
98
100
102
102
104
104
115
116
118
118
120
120
121
123
124
125
125
126
127
127
147
149
151
151
152
152
152
153
153
153
153
153
156
156
156
156
156
156
156
156
158
158
158
158
158
158
159
159
163
163
163
163
169
171
187
191
193
193
195
195
209
213
218
218
228
230
230
231
231
231
231
231
232
232
232
232
232
232
232
233
233
233
233
233
234
234
234
234
235
235
235
235
236
236
236
236
236
236
236
236
237
237
237
237
238
238
238
238
238
238
238
238
240
241
241
241
241
241
255
255
260
260
263
263
264
264
270
272
273
274
274
279
280
280
280
284
284
288
289
291
291
292
299
299
301
304
307
316
316
317
320
320
322
322
322
328
337
338
341
343
346
347
349
349
350
352
356
357
357
359
361
365
374
374
378
378
378
379
380
383
384
384
384
384
385
393
393
393
394
395
395
395
403
408
411
422
423
424
425
425
425
428
434
444
444
447
452
452
454
470
471
471
473
473
473
475
483
485
489
492
492
494
512
517
517
536
541
558
558
561
577
579
595
600
600
613
618
618
636
638
641
660
665
665
680
685
685
695
699
701
704
707
709
727
732
732
746
751
751
769
771
774
793
798
798
813
818
818
1336
1337
1338
3
4
8
8
10
10
10
10
13
13
13
14
16
16
16
16
18
18
18
18
21
23
24
25
25
26
26
28
28
37
38
44
45
45
48
48
53
53
53
53
54
54
54
55
56
61
61
62
63
66
66
68
69
69
71
71
71
71
71
71
72
72
73
74
75
76
77
78
78
79
80
83
84
85
85
85
87
87
87
87
89
89
89
89
89
89
89
91
91
92
92
92
92
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
98
99
99
99
99
99
101
103
103
105
119
120
121
121
122
124
126
127
128
128
148
150
150
150
150
152
152
153
153
154
154
154
154
155
155
155
155
155
156
156
156
156
156
156
156
156
157
157
157
157
157
157
159
159
160
160
164
164
164
164
164
168
170
170
172
172
188
192
194
194
196
196
214
219
219
227
228
229
229
231
231
232
232
232
232
232
233
233
233
233
233
233
233
233
233
234
234
234
234
234
234
234
236
236
236
236
237
237
237
237
238
238
238
239
239
241
241
241
241
242
242
245
249
256
261
261
265
265
273
274
280
281
281
285
285
292
292
293
297
300
300
302
305
308
318
321
321
323
323
323
329
329
329
329
338
338
338
339
342
344
350
350
351
355
357
358
358
360
362
366
378
379
379
380
381
385
385
385
385
386
395
396
396
396
404
405
406
406
409
410
410
412
422
424
424
425
426
426
426
429
434
442
448
453
453
463
470
471
472
472
474
476
490
492
493
495
513
518
518
537
539
539
542
559
559
562
578
580
596
601
601
614
619
619
637
639
642
661
666
666
681
686
686
695
699
700
702
705
708
710
728
733
733
747
752
752
770
772
775
794
799
799
814
819
819
1337
1338
1339
4
4
5
5
5
9
10
10
10
10
11
11
14
15
17
17
19
19
20
20
21
25
25
27
27
27
27
29
29
36
38
39
40
45
45
49
49
51
51
54
54
55
55
56
56
57
63
63
63
63
67
67
68
68
71
72
72
72
72
73
74
76
78
78
79
79
81
84
84
86
86
88
88
88
88
88
88
89
89
89
90
90
91
91
91
92
92
92
92
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
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
97
97
97
97
97
99
102
104
104
106
121
122
122
123
125
127
128
129
129
149
150
150
151
151
151
151
153
153
155
156
156
156
157
157
158
158
158
158
158
158
160
160
161
161
165
165
165
165
165
169
171
171
173
173
193
197
197
215
220
220
228
229
229
229
230
230
230
232
232
232
232
232
232
232
233
233
233
233
233
234
234
234
234
234
234
234
234
234
234
234
234
234
234
234
234
234
234
234
234
235
235
235
235
235
236
236
237
238
238
238
238
238
238
239
241
241
242
245
250
251
251
257
257
262
262
266
266
274
280
281
281
281
281
281
282
286
286
293
293
298
298
303
306
309
309
319
320
322
322
324
324
330
330
339
339
340
343
345
351
351
356
356
358
361
363
367
367
374
379
380
380
381
385
386
386
386
386
394
396
397
397
405
405
407
410
410
410
411
411
422
422
425
425
426
427
430
439
449
454
454
454
454
463
470
472
475
477
491
494
496
514
519
519
538
540
543
560
560
563
574
579
581
597
602
602
615
620
620
640
643
662
667
667
682
687
687
699
700
701
706
709
709
711
711
729
734
734
748
753
753
771
773
776
795
800
800
815
820
820
1338
1339
1340
5
5
6
6
8
10
12
12
14
16
18
18
18
18
18
18
20
20
21
25
25
26
27
28
28
30
33
36
36
40
45
45
45
45
46
50
50
53
53
54
56
57
57
58
61
61
63
64
68
68
71
71
72
73
73
74
78
80
80
82
85
85
85
87
88
89
89
89
89
89
89
90
90
91
91
91
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
93
93
93
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
97
97
97
98
98
103
105
107
113
118
122
123
124
124
125
125
126
128
129
130
130
150
151
151
151
152
152
154
154
155
155
155
155
157
157
157
158
158
159
159
159
159
161
161
162
162
166
166
166
166
166
170
172
172
174
174
194
198
198
216
221
221
229
230
230
230
230
231
231
231
231
231
232
232
233
233
233
233
233
233
233
234
234
234
234
234
234
234
234
234
234
234
234
235
235
235
235
235
235
235
235
235
235
235
235
235
236
236
236
236
236
236
236
236
236
236
238
238
239
239
239
240
243
251
252
252
258
258
263
263
267
282
282
282
283
287
291
298
302
304
307
310
310
310
310
320
320
325
325
330
338
339
339
339
339
340
341
344
346
349
359
362
364
368
368
368
368
380
382
385
386
386
386
387
387
387
395
395
406
408
411
412
412
423
423
424
424
424
426
426
428
431
439
440
442
442
450
452
455
455
455
455
466
470
471
473
476
478
482
492
495
497
515
520
520
539
541
544
561
561
564
575
577
580
582
598
603
603
616
621
621
641
644
663
668
668
683
688
688
695
700
701
707
712
712
730
735
735
749
754
754
772
774
774
777
777
796
801
801
816
821
821
1339
1340
1341
1
1
7
7
11
12
13
15
15
17
19
19
20
20
20
20
21
21
21
27
27
27
27
29
29
31
38
38
39
40
40
40
45
45
46
47
48
49
51
51
51
51
53
53
54
54
57
58
58
59
63
63
63
65
69
69
71
73
74
74
78
78
80
86
86
88
88
88
89
89
89
90
90
90
91
91
91
91
92
92
92
92
92
92
94
94
94
94
94
94
94
94
94
94
94
94
94
95
96
96
96
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
98
98
98
98
99
99
102
104
106
106
108
119
124
125
126
127
129
130
131
131
149
151
152
152
152
152
152
152
152
153
153
153
153
153
153
155
155
155
155
155
155
156
156
156
158
162
162
163
163
167
167
167
167
171
175
175
195
199
199
217
222
222
229
229
230
230
231
231
231
231
231
231
231
231
231
232
232
232
232
232
232
232
232
233
233
234
234
234
234
234
235
235
235
235
235
235
235
236
236
236
236
236
236
236
236
236
236
236
236
236
236
236
236
236
237
237
239
240
241
245
245
249
252
253
253
258
258
259
264
264
266
266
268
270
270
281
281
283
283
283
288
288
300
303
305
308
308
310
310
311
311
316
320
321
321
326
326
330
340
340
341
342
345
346
347
358
360
363
363
365
365
366
368
368
369
369
378
381
383
387
387
388
388
388
405
405
407
408
409
412
413
413
425
425
425
425
427
429
429
432
432
439
443
443
451
453
453
456
456
466
471
472
474
477
479
483
483
483
483
493
496
496
498
498
516
521
521
540
542
545
562
562
565
578
581
583
599
604
604
617
622
622
642
645
664
669
669
684
689
689
701
708
713
713
731
736
736
750
755
755
773
778
778
797
802
802
817
822
822
1340
1341
1342
1
1
1
4
4
8
8
8
8
13
16
18
18
18
20
21
21
21
22
22
25
25
27
28
30
32
36
36
39
46
47
47
48
52
52
53
53
53
54
54
54
54
54
55
59
60
61
61
63
66
68
70
70
71
71
80
80
80
83
83
87
87
87
88
88
88
88
89
89
89
89
89
89
90
91
91
91
92
92
92
92
92
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
96
96
96
96
96
96
97
97
98
98
98
98
103
107
107
109
120
125
126
126
127
127
128
129
130
130
131
132
132
150
150
150
150
152
153
153
154
154
154
154
156
156
156
157
157
157
159
163
163
164
164
168
168
168
168
172
176
176
196
200
200
218
223
223
227
229
229
229
230
230
231
231
231
231
232
232
232
232
232
232
232
233
233
233
233
233
233
234
234
234
235
235
235
235
235
235
236
236
236
236
236
236
236
236
236
236
236
237
237
237
237
237
237
237
238
238
238
239
239
241
242
246
246
250
253
254
254
260
265
265
267
267
269
271
271
272
272
272
282
284
286
286
288
289
289
291
291
300
304
306
309
311
312
312
316
321
322
322
327
327
339
339
341
341
343
346
346
347
348
349
349
358
361
366
366
369
370
370
374
378
379
384
388
388
389
389
397
403
406
406
408
409
410
413
414
426
426
428
433
433
440
442
444
444
444
452
457
457
470
472
473
475
478
480
484
484
494
499
499
517
522
522
541
543
546
563
566
579
582
584
600
605
605
618
623
623
637
641
643
646
665
670
670
685
690
699
702
709
714
714
732
737
737
751
756
774
779
779
798
803
803
818
823
1341
1341
1342
1343
5
5
5
5
8
9
9
9
13
13
13
13
14
17
17
18
18
19
20
20
20
21
21
21
21
22
22
23
23
27
27
27
29
31
33
38
38
39
45
47
49
51
51
53
53
54
55
55
55
56
60
61
63
63
63
67
71
71
73
73
74
78
78
80
80
80
80
88
88
89
89
89
89
89
90
90
90
90
91
91
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
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
96
96
96
96
104
108
108
110
122
122
126
129
130
131
131
131
131
132
133
133
150
151
151
151
151
153
157
157
157
158
158
159
159
159
159
159
159
160
164
164
165
165
169
169
169
169
173
177
177
197
201
201
219
224
224
227
227
227
228
228
229
229
229
229
230
230
230
230
231
231
232
232
232
232
232
232
232
233
233
233
233
233
233
233
234
234
234
234
234
234
234
234
235
235
235
235
235
235
235
236
236
237
237
237
237
237
237
237
239
240
240
242
243
254
255
255
255
255
261
266
266
266
268
268
273
273
273
273
281
283
285
287
288
290
292
292
305
307
310
310
310
312
320
322
323
323
328
328
340
344
346
347
349
350
350
362
367
367
368
368
370
374
379
380
385
386
390
390
397
404
404
409
409
409
411
413
413
414
415
426
429
433
434
434
442
443
453
455
458
458
461
466
471
473
473
476
479
481
484
491
495
500
500
518
523
523
542
544
547
562
564
565
567
580
583
585
601
606
606
619
624
624
642
644
647
666
671
671
686
689
689
691
695
700
710
715
715
733
738
738
752
757
775
780
780
799
804
804
819
822
822
824
1342
1342
1343
1344
8
10
10
10
10
12
12
12
14
15
15
18
18
18
19
19
19
20
21
22
22
24
24
25
25
27
27
27
27
32
34
36
36
39
45
45
45
47
47
47
50
52
52
54
54
56
56
57
57
58
58
61
61
61
62
63
63
63
63
68
71
71
72
72
74
80
80
80
80
81
81
88
88
89
89
89
89
89
90
90
90
90
91
91
91
91
91
91
91
92
92
92
92
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
95
95
95
95
95
95
95
95
96
96
96
96
96
98
98
109
109
111
122
123
123
127
127
128
130
131
132
132
132
132
133
134
151
151
151
152
152
152
152
154
158
158
159
159
160
160
160
160
161
165
165
166
166
170
170
170
170
174
178
178
198
200
200
202
202
220
225
225
228
228
228
228
228
229
229
229
229
230
230
230
230
230
230
230
231
231
231
231
231
231
231
231
231
231
231
231
232
232
232
232
232
232
232
233
233
233
233
233
233
233
234
234
234
234
234
234
235
235
235
236
237
237
237
237
238
239
239
243
244
254
256
256
256
256
256
256
262
266
267
267
274
274
281
281
282
286
288
289
291
291
293
293
293
300
300
306
308
311
311
316
321
323
323
324
329
329
329
339
341
347
348
349
350
351
351
351
358
358
363
368
368
369
378
380
381
385
386
391
391
410
412
414
414
415
416
426
430
434
434
434
435
435
443
443
444
444
454
455
459
459
462
470
472
477
480
482
484
492
492
492
496
501
501
519
524
524
543
545
548
565
566
568
581
584
584
586
586
602
607
607
620
625
625
643
645
648
667
672
672
687
690
692
701
711
716
716
734
739
739
753
755
755
758
776
781
781
800
805
805
820
823
825
1343
1344
1345
4
5
11
11
11
11
12
13
15
15
15
15
15
20
20
20
21
23
23
25
25
27
27
27
27
27
28
28
31
33
33
35
35
38
38
39
45
46
47
47
47
48
51
51
53
53
55
56
58
59
62
63
63
63
63
63
64
64
69
71
71
73
73
73
73
74
78
82
82
82
87
88
88
89
89
89
89
89
89
89
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
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
96
96
96
96
96
96
96
96
96
96
96
96
96
99
99
108
110
110
110
112
124
124
127
128
128
129
131
131
132
133
133
133
134
135
149
152
152
152
153
153
153
153
153
153
153
153
153
153
155
157
157
159
159
162
166
166
167
167
171
171
171
171
175
179
179
199
201
201
203
221
225
225
225
225
226
226
226
227
229
229
229
229
229
230
230
230
230
230
231
231
231
231
231
231
231
232
232
232
232
232
232
232
232
232
232
232
232
232
233
233
234
234
234
234
234
234
235
237
237
237
237
237
237
237
239
240
244
244
245
245
246
250
256
256
256
256
257
257
258
263
266
267
268
268
274
280
281
282
283
287
289
291
292
292
298
301
301
307
309
309
310
310
312
312
312
320
322
325
330
330
330
330
330
330
339
339
340
349
349
350
351
356
359
359
364
368
368
369
369
370
379
381
385
386
386
386
387
392
392
397
397
406
411
413
413
415
415
416
431
435
435
436
436
445
445
455
460
460
463
463
471
471
473
473
481
483
493
493
497
502
502
520
525
525
544
546
549
566
567
569
582
587
587
603
608
608
621
626
626
644
646
649
668
673
673
688
691
693
702
712
717
717
735
740
740
754
756
759
777
782
782
801
806
806
821
824
826
1344
1345
1346
5
6
8
11
12
12
12
12
15
16
17
18
21
22
22
22
22
22
23
25
26
26
28
29
29
32
34
34
36
36
36
36
38
39
47
48
49
51
52
54
54
56
56
56
59
59
60
60
61
62
63
63
64
65
65
68
68
69
69
70
71
71
72
72
74
74
82
83
88
88
88
88
89
90
91
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
93
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
97
97
97
98
109
111
111
113
128
129
129
130
132
132
132
133
133
134
134
135
136
150
150
150
150
153
153
154
154
154
154
156
158
158
158
158
158
160
163
167
167
168
168
172
172
172
172
176
180
180
200
202
202
204
222
226
226
226
226
227
227
227
227
227
227
227
228
230
230
230
230
230
230
230
230
230
230
231
231
231
232
232
232
232
232
232
232
232
232
232
232
232
232
232
232
233
233
233
233
233
233
233
233
233
233
234
234
234
234
235
235
235
237
237
237
241
246
246
246
257
258
258
258
264
267
268
269
269
274
281
283
284
288
290
292
292
293
293
293
299
299
308
310
310
311
311
313
313
321
321
323
323
326
331
331
331
331
338
339
340
341
350
350
350
351
351
352
357
357
365
368
368
369
369
370
370
379
379
381
381
381
382
385
387
387
388
393
393
395
398
398
406
413
414
417
432
434
435
435
435
435
436
437
437
443
444
444
444
446
446
455
455
456
461
461
464
464
464
464
471
473
474
474
482
484
492
493
493
493
493
494
498
503
503
521
526
526
547
550
567
568
570
583
588
588
604
609
609
622
627
627
645
647
650
669
674
674
689
692
694
699
702
713
718
718
736
741
741
755
757
760
778
783
783
802
807
807
822
825
827
1345
1346
1347
4
5
5
9
13
13
16
17
18
18
23
23
23
23
23
27
27
29
29
30
33
35
35
37
37
38
38
38
39
39
39
39
49
49
51
51
53
55
56
57
57
63
64
64
65
65
66
68
68
68
69
69
69
69
69
70
70
71
73
73
73
73
74
75
78
78
83
88
88
89
89
89
91
91
91
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
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
96
96
96
96
96
96
96
97
97
98
98
98
98
110
112
112
114
120
125
129
130
133
133
134
135
135
136
137
151
151
151
151
151
157
158
159
159
159
159
160
160
160
160
160
160
161
164
168
168
169
169
173
173
173
173
177
181
181
201
203
205
223
225
227
227
227
227
227
228
228
228
228
228
228
229
229
230
230
231
231
231
231
232
232
232
232
232
232
232
233
233
233
233
233
233
233
233
234
234
234
234
234
234
234
234
234
234
234
235
235
242
247
247
256
256
258
265
266
268
269
270
270
281
282
284
289
291
294
294
294
309
312
312
314
314
321
323
324
324
327
331
332
332
339
341
342
344
351
352
352
353
366
370
370
371
371
382
382
383
386
386
388
388
388
389
394
394
396
396
409
413
414
415
418
425
433
436
436
437
438
438
443
443
443
444
445
445
445
453
456
456
457
462
462
462
464
464
465
465
471
473
474
475
475
483
483
485
494
494
495
499
504
504
522
527
527
544
548
548
551
568
569
571
584
589
589
605
610
610
623
628
628
646
648
648
651
651
670
675
675
690
693
695
695
700
714
719
719
737
742
742
756
758
761
779
784
784
803
808
808
823
826
828
1346
1347
1348
5
6
6
10
14
14
15
17
18
18
18
19
23
24
24
24
24
24
24
25
25
27
27
28
28
30
34
36
36
38
38
39
40
40
47
47
49
54
55
56
56
56
56
57
58
58
58
58
58
60
61
61
61
64
65
65
66
66
68
69
69
69
69
70
70
70
71
71
71
71
72
73
74
74
76
78
83
83
84
88
88
88
88
88
88
89
89
89
90
90
90
90
90
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
94
94
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
96
96
96
96
96
96
96
96
96
97
97
98
98
99
99
99
113
113
115
126
129
131
134
134
135
135
136
136
137
138
151
152
152
152
152
153
153
158
160
160
160
161
161
161
161
162
165
169
169
170
170
174
174
174
174
178
182
182
202
204
206
224
226
228
228
228
228
228
228
229
229
229
229
229
229
229
229
229
229
229
229
230
230
230
230
230
230
230
230
230
231
231
232
232
232
233
233
233
233
233
234
234
234
234
234
234
234
234
234
234
234
235
235
235
243
246
246
246
248
248
257
258
266
267
269
269
271
271
281
282
284
284
285
290
292
292
293
293
293
295
295
295
301
308
310
313
313
315
315
321
323
324
325
325
328
331
333
333
339
340
342
345
349
350
351
351
351
352
353
353
354
359
366
367
371
371
372
372
379
381
383
383
386
387
390
395
395
409
414
415
416
419
426
426
426
426
434
435
435
437
437
439
439
445
446
446
446
454
454
458
463
463
465
466
466
471
471
474
475
477
484
484
484
484
484
486
493
493
495
495
500
505
505
523
528
528
549
549
552
569
570
572
585
590
590
606
611
611
624
629
629
647
652
652
671
676
676
691
694
696
699
701
715
720
720
738
743
743
757
759
762
780
785
785
804
809
809
824
827
829
1347
1348
1349
5
5
5
11
12
15
15
15
15
21
21
23
23
24
25
25
25
25
25
25
28
28
29
29
30
30
31
35
39
39
41
41
47
49
49
50
51
56
56
56
57
58
58
59
61
61
62
64
65
66
66
66
67
67
69
70
71
71
71
72
72
72
73
73
73
73
74
74
74
74
75
77
82
82
84
85
85
88
88
89
89
89
89
89
89
89
89
90
90
90
90
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
93
93
93
93
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
98
99
99
99
99
100
100
114
114
116
127
130
130
131
132
135
135
136
136
137
137
137
137
138
139
139
149
152
153
153
153
153
154
154
154
154
159
161
163
166
170
170
171
171
175
175
175
175
179
183
183
205
207
225
225
225
226
226
226
226
226
227
227
227
227
228
229
229
230
230
230
230
230
230
230
230
230
230
231
231
231
231
231
231
231
232
232
232
233
233
233
233
234
234
234
234
234
234
234
234
234
234
235
235
235
235
235
235
235
235
240
244
247
247
247
247
247
249
249
256
256
258
266
267
268
272
272
285
285
286
291
292
292
292
293
293
294
294
294
296
301
309
311
314
316
316
321
321
324
325
329
334
334
339
340
342
342
343
350
350
350
350
351
352
352
352
353
355
359
367
368
372
373
373
382
387
387
388
388
391
396
396
398
411
413
415
415
416
417
420
427
427
435
436
440
440
444
446
447
447
459
464
464
464
464
466
472
472
473
473
473
475
478
482
485
485
485
487
494
501
506
506
524
529
529
550
550
553
570
571
573
586
591
591
607
612
612
625
630
648
653
653
672
677
677
692
695
697
700
700
702
702
716
721
721
739
744
744
758
760
763
781
786
786
805
810
810
825
828
830
1348
1349
1350
5
6
6
12
16
16
17
17
18
18
20
20
22
23
23
23
25
25
25
25
25
26
29
29
29
29
29
30
30
31
32
32
36
36
40
40
41
47
49
49
49
50
51
51
52
56
56
58
58
60
60
61
62
63
65
65
65
65
65
66
66
67
67
68
68
68
71
71
71
71
71
72
72
72
74
75
75
76
78
78
82
85
85
85
85
85
88
88
89
89
89
90
90
90
90
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
95
95
95
95
95
95
96
96
96
96
96
96
97
97
97
99
100
100
100
100
101
101
115
117
131
132
133
136
137
138
138
138
138
139
140
140
150
150
154
154
159
159
159
162
164
167
171
171
172
172
176
176
176
176
180
182
182
184
184
206
206
208
208
225
226
226
226
227
227
227
227
227
227
227
227
227
227
227
228
228
228
228
228
228
229
230
230
230
230
230
230
230
230
231
231
231
231
231
231
231
232
232
232
232
232
232
232
232
233
233
233
233
234
234
234
235
235
235
235
235
235
236
236
236
239
239
239
239
241
241
245
248
248
248
250
250
256
256
257
257
267
267
268
269
269
273
273
286
286
294
294
295
295
295
297
309
309
312
313
313
315
317
317
322
322
323
323
323
325
330
335
343
343
344
351
352
353
353
353
354
356
367
367
369
371
371
371
373
374
374
379
383
389
389
392
397
397
398
404
409
414
416
416
416
418
421
427
435
436
437
441
441
445
445
456
460
465
465
465
474
474
474
474
483
485
486
488
493
495
502
507
507
525
530
530
551
551
554
571
572
574
587
592
592
608
613
613
626
631
649
654
654
673
678
678
693
696
698
700
700
702
702
703
703
717
722
722
740
745
745
759
761
764
782
787
787
806
811
811
826
829
831
1349
1350
1351
1
5
5
5
13
15
15
17
17
18
23
23
23
26
26
26
27
29
29
29
30
31
31
32
32
32
32
32
36
37
41
41
41
41
41
41
49
49
51
51
51
51
51
53
56
57
57
58
58
59
59
61
61
65
66
66
67
68
68
68
68
68
68
69
71
72
75
76
76
77
77
79
79
82
82
82
83
85
86
88
88
89
89
89
89
89
90
90
90
90
90
90
91
91
91
91
91
92
92
92
92
92
92
92
92
92
93
93
94
94
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
96
96
96
96
97
97
97
98
98
100
101
101
102
102
112
114
116
116
118
118
129
130
132
132
133
134
134
135
137
138
139
139
139
139
140
141
141
147
147
152
157
159
160
160
161
161
161
163
163
165
165
168
172
172
173
173
177
177
177
177
181
183
183
185
200
204
207
207
209
209
225
225
226
226
226
227
227
227
227
227
228
228
228
228
228
228
228
228
228
228
228
228
228
229
229
229
229
230
230
230
230
231
231
231
231
231
231
232
232
232
232
232
232
232
233
233
233
233
233
233
233
234
234
235
235
236
237
237
238
238
240
240
246
249
249
249
251
251
258
258
267
269
269
270
270
273
274
274
284
293
295
295
296
296
298
313
314
314
316
318
318
324
324
324
324
331
334
334
336
344
344
351
352
353
354
354
355
357
370
371
372
372
374
375
375
379
380
381
387
388
388
388
390
390
393
398
398
405
413
415
417
419
422
427
435
435
436
437
442
442
456
461
464
464
466
466
466
475
475
484
485
487
489
493
493
494
503
508
508
526
531
531
552
552
555
573
575
588
593
593
609
614
614
627
629
629
632
650
655
655
674
679
679
697
699
703
703
704
704
718
723
723
741
746
746
760
762
765
783
788
788
807
812
812
830
832
1350
1351
1352
1
1
5
6
6
14
17
17
18
18
18
23
24
25
25
27
27
27
28
29
29
30
30
30
30
32
32
32
33
36
36
36
38
41
41
42
42
42
49
49
51
52
54
56
58
58
58
59
59
60
60
62
62
65
65
67
67
68
68
68
69
69
70
71
72
76
76
78
78
80
80
86
87
88
89
89
89
89
89
89
89
89
89
89
89
89
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
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
96
96
96
96
96
96
96
97
98
98
99
99
99
101
102
102
103
103
113
115
117
117
119
119
133
134
135
135
136
138
140
141
142
142
148
148
150
150
150
150
152
153
153
158
161
161
161
161
161
161
162
164
164
166
166
169
173
173
174
174
178
178
182
184
184
186
201
205
208
208
210
210
223
223
224
225
225
225
225
225
226
226
227
227
227
227
227
227
227
227
228
228
228
228
228
228
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
230
230
230
230
230
231
232
232
232
232
232
232
233
235
235
235
235
237
238
238
239
239
239
239
241
241
247
247
250
250
250
250
252
252
259
259
267
269
270
270
271
271
274
274
274
275
275
281
294
294
296
299
313
314
315
315
319
319
325
325
332
335
337
342
352
352
353
356
356
358
358
367
371
372
373
373
376
376
380
381
381
382
387
387
387
388
389
389
389
394
398
398
399
406
406
414
414
416
416
418
420
423
434
435
436
437
438
443
443
447
462
464
464
465
465
467
475
485
488
490
492
493
494
495
504
509
509
527
532
553
553
556
574
576
589
594
594
610
615
615
628
630
633
651
656
656
675
680
680
698
700
704
704
719
724
724
742
747
747
763
766
784
789
789
808
813
813
831
833
1351
1352
1353
5
5
5
15
15
15
18
19
19
19
23
24
25
25
26
26
28
29
31
31
33
33
33
34
39
42
43
43
43
43
52
53
58
59
60
60
63
63
68
69
69
69
70
70
70
71
71
73
76
76
77
79
79
81
81
87
88
88
88
89
89
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
93
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
96
97
97
99
99
100
100
100
102
102
102
103
103
104
104
114
116
118
118
120
120
135
136
136
137
138
138
139
139
139
141
142
143
143
151
151
151
151
153
154
154
159
162
162
162
162
162
162
162
162
163
165
165
167
167
170
174
174
175
175
179
179
183
185
187
202
206
211
211
223
224
224
225
225
225
225
225
226
226
226
226
226
227
227
227
227
227
227
227
228
228
228
228
228
228
228
228
228
228
229
229
229
230
230
230
230
230
230
230
230
230
230
230
230
230
230
231
232
233
233
233
233
233
234
235
235
235
238
239
239
239
239
239
239
240
240
240
247
248
251
251
251
251
253
253
260
270
271
271
275
275
276
276
281
282
284
284
291
295
297
299
300
313
315
320
320
325
330
333
336
338
339
354
357
359
359
372
373
377
377
382
382
383
389
390
390
390
395
396
399
399
400
407
407
407
407
414
416
417
417
419
421
424
435
437
438
439
444
444
447
463
466
466
466
466
468
475
486
489
489
491
491
493
495
496
505
510
510
528
533
554
554
557
575
577
590
595
595
611
616
616
629
631
634
652
657
657
676
681
681
699
700
700
701
720
725
725
743
748
748
764
767
785
790
790
809
814
814
832
834
1352
1353
1354
5
5
6
6
6
6
16
17
17
18
20
20
25
25
27
27
28
30
32
32
32
32
32
34
34
34
35
40
41
43
44
44
51
53
54
58
58
60
60
64
64
68
70
70
71
71
71
71
71
72
76
77
78
82
82
85
85
85
89
89
89
90
90
90
91
91
91
91
92
92
92
92
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
95
96
96
96
96
96
96
96
96
96
97
100
101
101
101
103
103
103
105
105
117
121
121
127
132
136
137
139
140
140
142
143
144
144
146
148
148
155
155
160
162
162
162
162
163
163
163
163
164
168
168
171
175
175
176
176
177
177
177
177
180
180
184
186
188
207
212
212
224
225
225
225
225
226
226
226
226
226
227
227
227
227
227
228
228
228
228
228
228
228
228
228
228
228
228
229
229
229
229
229
229
229
229
230
230
230
230
231
231
231
231
231
231
231
231
231
231
231
232
232
234
235
239
240
241
241
241
249
251
251
251
252
252
254
254
259
259
261
271
272
274
275
275
275
275
276
277
277
281
285
285
296
296
298
300
301
309
313
314
316
321
321
325
331
331
331
334
337
339
339
340
342
342
354
355
358
360
360
371
373
374
378
378
382
383
383
388
390
391
391
396
397
397
398
398
401
405
407
407
408
408
414
416
417
418
418
420
422
422
425
425
435
436
438
440
445
445
462
464
467
467
467
469
487
492
492
493
494
496
506
511
511
529
531
531
534
555
555
558
571
576
578
591
596
596
612
617
617
630
632
635
653
658
658
677
682
682
693
700
701
701
702
702
702
702
721
726
726
744
749
765
768
786
791
791
810
815
815
826
833
835
1353
1354
1355
5
5
5
5
7
7
15
15
17
17
18
19
19
21
21
25
25
26
27
29
29
29
31
32
32
33
33
34
34
35
35
41
41
41
41
43
43
43
45
45
49
51
51
60
60
60
61
62
63
65
65
65
67
68
68
68
71
72
72
73
76
76
77
78
78
78
78
79
82
83
83
87
88
88
88
88
89
89
89
89
89
89
90
90
90
90
91
91
91
91
91
91
92
92
92
92
93
93
93
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
96
96
101
102
102
102
104
104
104
106
106
118
122
122
133
138
140
141
141
143
143
144
144
145
145
147
149
149
151
151
160
160
160
162
162
163
163
164
164
164
164
165
169
169
172
176
176
177
178
178
181
181
187
189
208
213
213
225
225
225
226
226
226
226
226
226
227
227
227
227
227
227
228
228
228
228
228
228
228
229
229
229
229
229
229
229
230
230
230
230
230
230
230
230
230
231
231
231
232
232
232
232
232
232
232
232
233
233
235
235
236
240
241
242
242
250
252
252
255
255
260
260
262
273
276
276
277
278
278
282
284
286
286
286
296
297
299
301
301
302
309
314
315
317
322
322
332
332
335
338
339
340
343
343
354
356
359
359
361
361
367
371
372
374
379
379
382
383
383
383
384
389
389
397
399
402
408
409
409
414
414
417
418
421
426
426
435
436
438
438
439
441
446
446
447
447
454
463
465
468
468
470
488
493
493
493
494
496
496
497
507
512
512
530
532
535
556
559
572
574
577
579
592
597
597
613
618
618
631
633
636
654
659
659
678
683
694
698
701
703
703
703
703
722
727
727
745
750
760
764
766
769
787
792
792
811
816
827
831
834
836
1354
1355
1356
8
8
8
17
17
17
18
18
18
18
18
20
20
22
27
27
27
30
32
34
34
35
35
35
36
36
41
42
42
43
43
43
44
46
46
53
53
54
58
58
60
62
66
66
68
69
70
70
71
71
73
74
76
76
76
78
78
80
84
84
85
85
85
85
87
88
88
88
88
88
88
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
93
93
93
94
94
94
95
95
95
95
95
96
96
101
101
102
102
102
103
103
103
103
104
104
105
107
107
119
123
123
134
136
136
139
140
141
142
144
144
145
145
146
146
150
150
151
151
153
161
161
161
161
162
162
162
162
162
162
163
163
164
164
166
170
170
173
177
177
178
179
179
182
182
182
186
188
188
190
190
209
214
214
221
223
223
224
225
225
225
225
226
226
226
227
227
228
228
228
228
228
228
228
228
230
230
230
230
230
230
230
230
230
230
230
231
231
232
232
232
233
233
233
233
233
233
233
233
233
233
233
233
236
236
236
237
251
256
256
259
261
261
267
267
274
275
275
277
277
279
284
285
298
300
302
302
302
302
303
313
315
316
318
323
323
331
332
332
332
332
333
336
339
340
341
342
344
344
344
357
360
360
360
360
362
362
367
372
373
375
380
380
384
384
385
398
399
400
403
407
407
409
415
415
416
416
416
418
422
426
427
427
439
439
440
442
445
447
447
448
448
455
463
463
466
467
467
469
469
471
474
484
489
494
494
497
497
498
508
513
513
531
533
536
555
557
558
560
575
578
580
593
598
598
614
619
619
632
634
637
655
660
660
679
682
682
684
699
702
703
704
704
704
723
728
728
746
748
748
751
765
767
770
788
793
793
812
815
815
817
832
835
837
1355
1356
1357
5
9
9
15
15
18
19
19
19
21
21
23
25
25
27
27
27
31
31
32
32
32
32
33
35
36
36
37
37
43
43
44
45
45
45
47
47
51
51
54
60
60
60
63
67
67
68
68
68
69
69
70
71
74
75
76
81
85
85
87
88
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
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
94
94
94
95
95
95
96
96
96
102
102
104
104
104
105
105
106
108
108
120
124
124
137
140
143
145
145
146
146
147
147
147
154
155
155
161
161
162
162
163
163
164
164
167
171
171
174
176
176
178
178
179
180
180
183
183
183
187
189
189
191
191
210
215
215
221
222
223
223
223
223
224
224
225
225
225
225
225
226
226
226
226
226
226
226
226
226
226
227
227
228
228
228
228
228
228
228
228
229
230
230
230
230
230
230
230
231
231
231
231
232
233
233
233
233
233
233
233
233
235
235
235
237
237
238
238
241
252
257
257
259
268
268
269
269
269
275
276
280
285
285
286
286
296
296
299
300
301
302
302
303
303
304
309
314
316
316
319
324
324
324
333
333
334
337
340
342
342
343
354
354
358
358
360
360
361
361
363
363
371
373
374
376
381
381
385
385
391
399
399
401
404
408
417
417
417
417
423
427
427
427
428
428
440
440
443
446
446
448
448
456
456
467
468
468
470
470
472
475
475
475
475
485
485
485
490
495
495
498
498
509
514
514
532
534
537
558
559
561
576
579
581
594
599
599
615
620
620
633
635
638
656
661
661
680
683
685
700
703
704
704
705
724
729
729
747
749
752
766
768
771
789
794
794
813
816
818
833
836
838
1356
1357
1358
5
9
10
20
20
20
22
24
27
27
27
32
33
33
33
34
34
34
35
38
38
44
45
45
46
46
48
53
53
54
58
58
60
64
68
68
68
68
68
69
69
69
69
70
70
70
71
71
71
72
72
75
76
76
77
78
78
82
85
85
85
85
86
86
87
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
93
93
93
93
93
94
94
96
96
96
103
103
105
105
105
106
106
106
106
107
108
108
109
109
121
125
125
138
141
141
143
143
144
146
146
147
147
148
148
150
155
155
161
162
162
162
163
163
164
164
165
165
168
172
172
175
177
179
179
180
181
181
184
184
184
188
190
190
192
192
211
216
216
222
223
223
224
224
224
224
224
224
224
224
224
224
224
224
225
225
225
225
225
225
226
226
226
226
226
226
226
227
227
227
227
227
227
227
227
227
227
228
228
228
228
229
229
229
229
229
230
230
230
230
230
230
233
233
234
239
239
242
242
242
251
253
258
258
259
260
270
270
270
270
275
276
277
278
278
281
287
287
294
297
297
300
302
302
303
304
304
305
305
313
315
320
325
325
325
325
325
325
332
332
334
334
338
341
343
343
343
344
344
352
355
355
359
361
362
362
364
364
372
374
377
382
382
383
391
400
402
405
407
407
409
418
418
424
428
428
429
429
438
444
449
449
457
457
457
457
467
468
469
469
471
473
476
476
486
486
491
496
496
496
510
515
515
533
535
538
559
560
562
577
580
582
595
600
600
616
621
621
634
636
639
657
662
662
681
684
686
701
704
706
725
730
730
748
750
753
767
769
772
790
795
795
814
817
819
834
837
839
1357
1358
1359
5
5
9
11
15
20
21
23
25
25
25
27
27
27
27
32
32
34
34
34
35
35
39
39
43
43
45
45
47
47
49
51
51
54
60
60
60
65
68
68
68
68
69
69
69
69
69
69
69
70
70
70
71
71
72
72
73
76
76
77
78
78
79
79
83
86
86
87
87
87
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
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
92
92
92
92
92
92
92
93
93
93
93
93
93
93
94
94
94
95
95
95
96
96
101
103
106
106
106
108
109
109
110
110
122
126
126
136
137
138
141
142
142
142
144
144
144
144
145
145
146
146
147
147
147
147
148
148
148
149
149
150
156
156
161
161
161
162
162
162
163
163
163
166
166
169
173
173
176
178
181
182
182
185
185
189
193
193
212
217
217
219
220
221
221
221
222
223
223
223
224
224
225
225
225
225
225
225
225
225
225
225
225
225
226
226
226
226
226
226
226
226
226
226
227
227
227
227
227
227
227
228
228
228
228
228
228
228
228
228
228
228
230
230
230
230
233
233
233
235
235
240
240
242
243
243
244
247
247
251
254
259
259
260
261
271
271
275
275
276
277
279
282
285
286
286
286
288
288
295
295
301
302
302
304
306
306
314
314
316
316
321
326
326
326
326
333
342
344
345
345
353
353
360
360
360
362
365
365
372
372
374
374
374
375
378
382
383
383
401
403
406
407
407
408
408
418
425
427
428
428
428
428
429
430
430
435
445
448
450
450
455
457
457
458
458
467
469
472
474
476
485
486
486
486
486
487
492
493
497
497
511
516
516
534
536
539
560
561
563
578
581
581
583
583
596
601
601
617
622
622
637
640
658
663
663
682
685
687
702
705
705
707
707
726
731
731
749
751
754
768
770
773
791
796
796
815
818
820
835
838
838
840
840
1358
1359
1360
8
8
8
8
10
12
12
15
20
20
24
26
26
27
27
27
27
28
28
31
34
34
35
35
36
36
36
36
36
40
40
43
45
45
46
46
48
50
53
53
54
58
58
60
60
60
60
66
68
68
69
69
70
70
70
70
70
70
71
71
71
71
71
71
72
73
73
74
74
76
77
77
78
78
80
80
84
85
85
87
87
88
88
88
88
88
89
89
89
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
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
95
95
95
95
95
95
95
104
104
104
106
106
107
107
107
109
110
110
111
111
123
127
127
142
143
143
143
146
147
148
148
148
148
149
149
149
150
150
154
156
156
156
156
162
163
164
164
165
165
165
165
167
167
170
174
174
177
179
182
183
183
186
186
190
194
194
213
218
218
220
221
222
222
222
223
223
223
223
223
223
223
223
223
224
224
224
224
225
225
225
225
226
226
226
226
226
226
226
226
226
226
226
226
226
226
227
227
227
227
227
227
228
228
228
228
228
228
228
228
228
228
228
228
229
229
229
229
229
229
231
231
231
231
233
233
236
241
241
244
244
245
248
248
248
248
255
259
260
260
261
262
271
274
275
276
277
278
280
283
285
285
285
286
287
287
287
302
303
307
307
314
316
317
317
322
326
327
327
332
334
343
343
344
344
344
345
346
346
361
361
366
366
375
375
376
379
382
383
383
383
384
384
391
391
402
404
407
409
409
418
426
429
429
430
431
431
435
436
438
438
446
448
451
451
458
459
459
463
467
468
470
473
475
476
487
487
488
493
493
494
496
496
498
498
512
517
517
535
537
540
561
562
564
579
584
584
597
602
602
618
623
638
641
659
664
664
683
686
688
703
708
708
727
732
732
750
752
755
769
771
771
774
774
792
797
797
816
819
821
836
841
841
1359
1360
1361
1
5
9
11
11
11
11
12
15
15
19
20
21
23
25
25
25
27
27
29
29
32
32
32
34
35
37
37
37
41
41
43
45
45
45
46
47
47
47
49
51
51
51
53
54
60
60
60
60
61
61
67
68
68
69
69
70
71
71
71
71
72
72
72
77
78
78
78
78
79
80
85
85
85
85
85
85
85
85
85
85
85
87
87
88
88
88
88
88
88
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
92
92
93
93
94
94
94
94
94
94
94
96
96
96
96
96
96
96
105
105
107
107
107
108
108
110
110
110
112
112
124
128
128
142
143
144
144
144
147
148
149
149
149
149
150
151
151
154
161
163
164
165
165
166
166
166
166
168
168
171
175
175
178
180
183
184
184
187
187
191
195
195
214
218
218
219
219
219
221
222
223
223
223
223
223
223
223
223
223
224
224
224
224
224
224
224
224
224
225
225
226
226
226
226
226
226
226
227
227
227
227
227
227
227
227
227
227
227
227
227
227
227
228
228
228
228
228
228
228
228
228
228
229
229
229
229
229
229
237
242
242
242
242
242
245
245
246
248
248
249
249
251
256
260
261
261
262
262
271
275
277
278
279
281
284
287
288
288
288
297
302
302
303
304
308
308
314
316
317
318
318
323
326
328
328
332
332
333
343
343
343
344
344
345
345
345
346
355
360
360
362
362
367
367
372
374
376
376
380
382
384
384
385
385
389
392
392
397
403
405
405
408
410
410
427
428
428
430
430
432
432
435
439
439
447
452
452
457
457
459
463
468
469
474
476
486
486
488
488
493
494
497
497
499
499
513
518
518
536
538
541
562
563
565
580
585
585
598
603
603
619
624
639
642
660
665
665
684
687
689
704
709
709
728
733
733
751
753
756
770
775
775
793
798
798
817
820
822
837
842
842
1360
1361
1362
1
1
4
4
5
5
8
8
12
13
20
20
20
21
22
22
22
22
24
26
26
28
28
29
30
33
34
34
34
35
35
35
35
38
38
38
38
38
41
41
42
42
45
45
47
47
47
47
47
50
52
53
53
53
54
54
54
54
58
62
62
68
69
70
70
70
70
70
70
71
71
71
71
72
72
72
74
75
78
79
79
80
80
80
80
86
87
88
88
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
94
94
94
94
105
107
108
108
108
109
109
109
111
111
111
111
111
111
113
113
125
129
129
134
139
143
143
143
144
144
144
145
145
145
146
147
148
149
150
150
150
150
151
152
155
161
162
165
167
167
167
167
172
176
176
179
179
181
183
183
184
185
185
188
188
192
196
196
215
219
219
219
219
219
220
220
220
222
222
223
223
223
223
223
223
224
224
224
224
224
224
224
224
224
224
224
224
224
225
225
225
225
225
225
225
225
225
225
226
226
226
226
226
226
226
227
227
227
227
227
228
228
228
228
228
228
229
229
229
229
230
230
230
230
232
232
232
232
236
238
243
243
243
243
246
246
247
249
250
250
257
259
261
262
262
275
276
278
280
282
285
286
288
289
289
297
302
302
303
303
304
309
309
314
314
317
318
324
329
329
331
332
333
334
338
345
345
346
346
346
347
355
360
360
361
361
363
368
368
375
381
383
383
385
385
385
386
386
390
390
398
406
406
409
411
428
429
433
433
436
438
440
440
440
448
448
448
453
453
458
467
469
470
475
477
487
494
495
496
498
498
498
500
500
514
519
519
539
542
563
564
566
581
586
586
599
604
604
620
622
622
625
634
638
640
643
661
666
666
685
688
690
705
710
710
729
734
734
752
754
757
771
776
776
794
799
799
818
821
823
838
843
843
1361
1362
1363
5
5
5
5
5
5
5
6
6
13
14
15
20
20
20
21
22
22
25
25
25
27
27
29
29
30
32
32
35
35
35
36
36
39
42
42
43
43
45
45
45
47
48
49
51
51
51
51
53
53
54
55
55
62
63
68
68
69
71
71
72
72
73
75
76
78
78
78
79
80
80
80
80
80
81
85
86
86
87
88
88
88
88
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
93
94
94
94
95
95
95
96
103
105
106
108
109
110
110
110
112
112
112
112
114
114
126
128
128
130
130
140
145
146
147
148
148
148
149
150
151
151
151
151
152
153
155
155
163
164
164
165
165
165
165
166
173
175
175
177
177
182
184
184
185
186
186
189
189
193
197
197
216
217
220
220
220
220
220
221
221
221
223
223
224
224
224
224
225
225
225
225
225
225
225
226
226
226
226
226
226
226
226
226
227
228
228
228
228
228
228
228
228
229
229
229
229
229
229
229
229
230
230
231
231
231
231
231
231
233
233
237
237
239
244
244
247
247
248
248
248
250
258
260
260
262
262
263
263
275
276
278
278
279
281
283
286
287
287
304
304
305
310
310
315
315
316
316
316
318
325
330
330
332
334
335
339
343
344
346
346
347
347
348
362
362
364
369
369
372
376
382
383
384
387
387
399
399
406
406
407
410
410
410
412
417
428
429
430
434
434
438
439
446
449
449
449
454
454
457
457
459
463
468
470
470
475
476
478
486
488
496
496
497
501
501
515
520
520
536
540
540
543
564
565
567
582
587
587
600
605
605
621
623
626
639
641
644
662
667
667
686
689
691
706
711
711
730
735
735
753
755
758
772
777
777
795
800
800
819
822
824
839
844
844
1362
1363
1364
6
6
6
7
7
7
12
14
15
20
25
26
30
30
30
30
31
34
34
36
37
37
39
39
40
43
43
44
44
46
48
49
50
52
52
54
54
56
56
58
58
63
70
72
73
73
74
76
77
79
79
80
80
80
80
80
80
81
81
81
82
85
85
86
87
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
90
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
91
92
92
92
93
93
93
94
94
94
95
95
95
96
96
106
107
109
109
111
111
111
113
113
113
113
113
113
115
115
127
129
129
131
141
143
143
145
146
146
146
147
147
149
149
150
151
151
152
152
152
152
152
153
153
154
156
156
156
156
164
165
165
165
165
166
166
166
166
167
174
176
176
178
183
185
185
186
187
187
187
187
190
190
190
190
194
196
196
198
198
217
218
221
221
221
221
221
221
221
221
222
222
222
222
223
223
224
224
224
224
224
224
224
224
225
225
225
225
226
226
226
226
226
226
226
226
226
226
226
226
227
227
228
228
228
228
228
228
228
229
229
229
229
229
229
229
229
229
230
230
231
231
231
231
232
232
232
232
234
234
240
245
245
247
248
249
249
259
260
262
263
263
264
264
279
279
280
282
284
287
297
297
300
305
305
306
311
311
317
317
317
317
325
326
331
331
332
333
335
344
345
345
347
349
355
355
358
363
363
365
370
370
372
373
374
383
384
384
385
385
388
388
392
400
400
400
400
408
411
411
411
413
418
418
418
418
428
428
429
430
435
435
439
439
440
440
447
447
450
455
455
457
457
458
458
467
469
470
476
476
476
476
477
479
486
486
487
497
497
497
498
498
502
502
516
521
521
541
541
544
566
568
583
588
588
601
606
606
622
624
627
640
642
645
663
668
668
690
692
703
707
712
712
731
736
736
756
759
773
778
778
796
801
801
823
825
840
845
845
1363
1364
1365
4
4
5
5
5
5
6
7
7
7
7
8
8
8
8
11
11
20
21
22
22
25
27
29
29
29
31
31
31
32
32
32
37
37
37
40
40
40
41
43
43
45
45
47
47
49
50
51
51
53
53
55
55
56
58
63
63
64
68
73
73
75
78
80
81
82
82
82
83
85
85
85
85
86
87
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
93
93
93
96
96
96
107
110
110
110
112
114
114
114
114
115
115
116
116
128
130
130
132
142
142
143
144
144
144
144
144
145
145
145
145
146
147
147
147
148
148
151
153
153
153
154
154
155
156
156
165
165
165
165
166
166
166
166
167
167
167
167
175
177
177
178
179
182
184
186
186
187
191
191
191
191
195
197
197
199
218
219
221
221
221
222
222
222
222
222
222
222
222
222
222
222
222
222
222
222
222
223
223
223
223
224
224
224
225
225
225
225
225
225
225
225
226
226
226
226
226
226
226
227
227
227
227
228
228
228
228
229
230
231
231
231
232
232
232
232
233
233
233
233
241
243
246
246
248
248
248
249
250
260
260
262
263
264
264
265
265
280
280
283
285
288
289
295
298
298
301
306
307
312
312
318
318
326
326
326
326
327
332
332
333
335
335
336
345
348
350
353
356
356
359
364
366
371
371
373
374
374
375
384
386
386
389
389
392
398
400
400
401
401
403
407
409
410
412
412
412
419
419
427
428
429
430
431
436
436
441
441
451
456
456
459
459
468
468
470
470
471
475
477
477
478
480
485
486
487
488
498
499
499
503
503
517
522
522
542
542
545
567
569
584
589
589
602
607
607
623
625
628
641
643
646
664
669
669
691
693
704
704
704
708
713
713
732
737
737
757
760
774
779
779
797
802
802
824
826
841
846
846
1364
1365
1366
4
5
6
7
8
8
9
9
9
14
14
15
20
22
22
23
23
28
29
30
32
32
32
32
32
32
32
32
37
37
37
37
41
41
41
42
44
44
44
44
45
46
46
47
47
51
52
56
56
56
56
58
62
62
62
64
65
65
68
68
72
73
73
74
74
76
76
81
81
82
82
82
83
83
84
85
85
87
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
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
92
92
92
92
93
93
94
111
111
113
115
115
116
116
117
117
129
131
133
143
143
144
144
145
145
146
146
146
146
147
148
149
149
149
149
149
149
150
150
150
150
150
154
154
154
155
155
156
164
164
166
166
166
166
167
167
168
168
168
168
168
168
176
178
180
183
185
187
187
188
192
192
192
192
196
198
198
200
219
219
220
220
221
221
222
222
222
223
223
223
223
223
223
223
223
223
223
223
223
224
224
224
224
224
224
224
224
224
225
225
225
226
226
226
226
226
226
226
226
226
227
227
228
228
229
231
231
231
231
232
232
233
234
234
234
235
235
242
243
247
247
248
248
249
249
261
263
264
266
266
270
278
286
289
289
296
296
301
301
305
305
307
308
313
313
318
327
327
328
331
331
333
336
336
337
346
347
349
351
354
354
359
359
363
363
363
365
367
372
372
375
375
376
384
385
385
385
385
387
387
390
390
401
402
402
408
410
410
413
419
428
430
431
432
437
437
439
440
440
440
442
442
449
452
455
457
457
460
460
468
470
471
471
476
477
479
481
486
488
489
497
498
498
498
499
500
500
504
504
518
523
523
543
543
546
568
570
585
590
590
603
608
608
624
626
629
642
644
647
665
670
670
692
694
704
705
705
709
714
714
733
738
738
758
761
775
780
780
798
803
803
825
827
842
847
847
1365
1366
1367
4
5
5
5
5
8
9
9
10
10
10
11
11
15
22
24
24
29
29
29
32
32
32
32
33
33
33
33
37
37
38
38
42
43
45
45
47
47
49
49
50
51
51
53
56
57
57
57
62
63
65
65
65
65
65
68
68
68
69
69
73
73
74
75
75
77
77
78
78
82
83
83
83
84
84
85
85
85
85
85
85
85
87
87
87
87
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
93
93
93
95
95
95
95
95
95
108
108
112
112
112
113
113
114
116
116
117
117
118
118
130
132
134
142
143
144
144
144
144
144
145
145
145
145
145
145
146
146
148
149
149
149
149
150
150
150
150
150
150
151
151
151
153
155
155
155
155
155
155
156
156
157
157
164
165
165
166
166
168
168
168
168
168
168
169
169
169
169
177
179
181
184
186
186
188
188
189
189
193
193
193
193
197
199
201
217
218
220
220
220
220
222
222
223
223
223
223
223
224
224
224
224
224
224
224
224
224
224
224
224
224
224
225
225
225
225
225
225
225
226
226
226
226
227
227
227
227
227
227
227
228
229
229
229
231
231
232
234
235
235
243
248
248
250
250
262
264
267
267
271
271
271
275
287
290
306
306
308
309
314
314
318
327
329
332
334
337
337
347
347
350
350
352
352
363
364
364
366
368
373
373
375
376
376
384
384
384
385
386
386
386
386
391
391
392
392
400
400
402
406
409
410
411
411
414
419
428
429
431
433
438
438
439
439
439
440
441
441
441
449
453
456
458
458
461
468
470
471
472
472
477
477
480
482
486
487
489
497
497
497
498
499
499
499
500
505
505
519
524
524
544
544
547
564
569
571
586
591
591
604
609
609
625
627
630
643
645
645
648
648
666
671
671
686
693
695
705
705
710
715
715
734
739
739
753
757
759
762
776
781
781
799
804
804
819
826
828
843
848
848
1366
1367
1368
4
5
5
6
6
6
6
8
9
10
11
11
11
14
14
15
22
22
24
30
33
34
34
34
38
39
39
39
42
44
46
46
46
46
47
47
48
48
50
54
56
56
57
58
58
58
58
58
58
62
62
65
66
68
68
68
69
69
69
69
70
70
73
73
74
74
75
75
75
75
76
76
78
78
78
83
83
84
84
85
85
85
85
85
85
86
86
86
86
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
93
93
94
94
94
94
94
96
96
96
96
96
96
113
113
114
114
114
115
117
117
119
119
133
135
141
143
143
144
144
144
144
144
145
145
145
145
146
146
146
146
146
146
146
146
146
147
147
149
149
149
149
150
150
150
150
150
151
151
151
151
151
152
152
152
154
155
156
156
156
156
157
157
158
158
164
164
165
166
166
166
166
168
168
169
169
170
170
170
170
180
182
185
189
189
190
190
194
194
194
194
198
200
202
217
217
217
217
218
218
219
219
219
219
220
220
221
221
221
221
221
221
221
223
223
224
224
224
224
224
224
225
225
225
225
225
225
225
225
225
225
225
225
225
226
226
226
226
226
226
226
226
226
226
226
227
227
229
229
229
233
238
242
243
243
244
249
249
251
251
263
268
268
272
272
275
276
278
278
288
289
289
291
298
305
307
307
310
315
315
327
330
333
335
335
348
353
353
356
359
364
365
365
369
374
374
375
376
376
376
377
386
387
387
387
387
390
392
392
393
393
401
406
410
411
412
412
415
428
429
431
431
432
434
439
439
441
442
442
442
454
456
456
459
459
460
460
462
468
468
471
472
478
481
483
486
487
489
489
490
499
500
500
500
501
506
506
520
525
525
545
545
548
565
567
570
572
587
592
592
605
610
610
626
628
631
644
649
649
667
672
672
687
691
694
696
711
716
716
735
740
740
758
760
763
777
782
782
800
805
805
820
824
827
829
844
849
849
1367
1368
1369
4
5
5
5
5
6
7
7
9
9
10
10
11
11
11
12
12
12
15
24
24
24
31
32
34
35
35
35
37
39
40
43
43
45
47
47
48
48
49
49
49
49
50
51
55
56
56
56
58
58
59
59
66
67
68
68
68
69
69
69
69
69
70
70
70
71
72
73
73
73
75
75
75
76
77
79
79
81
82
82
82
84
85
85
85
85
85
85
85
86
86
86
86
87
87
87
87
87
87
87
87
88
88
88
88
88
89
89
89
89
89
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
94
94
95
95
97
114
115
115
115
116
118
118
120
120
128
132
134
134
136
136
142
142
142
143
143
143
144
145
145
146
146
146
147
147
147
147
147
147
147
147
147
147
147
147
148
148
149
149
149
149
150
150
150
150
150
150
150
151
151
151
151
152
152
152
153
155
157
157
157
157
158
158
159
159
165
165
166
167
167
167
169
169
170
170
175
179
181
181
183
183
186
190
190
191
191
195
195
195
195
201
203
218
218
218
218
219
219
219
219
219
219
219
220
220
220
220
221
221
221
221
222
222
222
222
222
222
222
222
222
224
224
224
224
224
225
225
226
226
226
226
226
226
226
226
226
226
227
227
227
227
227
237
239
240
240
243
244
244
245
250
250
252
260
260
264
269
269
271
272
272
272
272
273
275
279
279
283
287
287
289
290
290
292
298
305
311
316
316
331
332
334
336
347
347
349
354
354
356
365
370
375
375
377
377
378
385
387
388
388
388
391
391
393
393
400
400
402
410
411
412
413
413
416
432
432
433
435
440
440
440
442
443
443
455
460
460
461
461
463
469
469
470
470
470
472
479
482
482
484
484
490
490
491
498
500
501
501
502
507
507
521
526
526
546
546
549
568
571
573
588
593
593
606
611
611
627
629
632
645
650
650
668
673
673
692
695
697
712
717
717
736
741
741
759
761
764
778
783
783
801
806
806
825
828
830
845
850
850
1368
1369
1370
5
5
6
6
7
8
10
11
12
13
13
13
14
14
15
22
22
24
29
32
32
32
36
36
37
37
37
39
39
39
44
46
47
47
49
49
50
50
50
56
56
60
60
65
67
68
69
69
70
70
71
71
71
71
71
72
73
76
78
80
80
82
82
83
85
85
85
85
85
85
85
85
85
85
85
85
85
87
87
87
87
87
87
88
88
88
89
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
92
92
92
92
92
92
93
93
94
95
95
96
96
98
107
112
115
116
117
117
117
117
117
119
119
121
121
129
133
135
135
137
137
142
142
143
144
144
144
144
144
144
144
144
145
145
145
146
146
147
147
147
148
148
148
150
151
151
151
151
152
152
152
153
153
153
154
156
158
158
159
159
160
160
165
167
167
167
168
168
170
170
176
180
182
182
184
184
187
191
191
192
192
196
196
196
196
202
202
204
204
217
219
219
219
219
219
219
219
219
219
219
219
220
220
220
220
220
220
220
220
221
221
221
221
222
222
222
222
223
223
223
223
223
223
223
224
224
224
224
224
224
225
226
226
226
226
226
226
226
227
227
227
227
227
227
228
228
228
228
229
235
238
238
240
241
241
243
243
246
251
251
251
251
253
261
261
262
262
262
265
270
270
273
273
274
276
278
280
280
280
288
288
288
290
293
301
305
306
312
317
317
317
332
332
333
335
335
335
337
345
348
348
350
355
355
363
366
371
376
376
378
378
386
386
389
394
394
400
400
401
401
406
411
412
413
413
414
414
417
417
433
433
436
441
441
441
441
456
460
461
461
462
462
471
471
471
471
480
485
485
491
491
499
499
503
508
508
522
527
527
547
547
550
569
572
574
589
594
594
607
612
612
630
633
646
651
651
669
674
674
693
696
698
713
718
718
737
742
760
762
765
779
784
784
802
807
807
826
829
831
846
851
851
1369
1370
1371
1
5
5
5
5
8
9
11
11
11
11
12
12
13
14
14
14
14
15
24
24
24
33
34
34
35
37
37
37
38
39
39
39
40
41
41
45
45
46
46
47
49
49
50
50
50
51
51
56
57
57
58
58
61
61
62
65
65
71
71
72
72
72
73
74
75
75
77
81
81
82
82
82
83
83
84
85
85
85
85
85
85
85
85
85
86
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
92
94
95
95
95
96
96
97
97
97
99
113
116
118
118
118
120
120
122
122
130
134
136
136
138
138
143
143
144
144
144
144
144
144
144
144
145
145
145
145
145
145
145
145
147
147
147
147
148
148
149
149
149
151
152
152
152
153
153
154
154
154
155
157
159
159
160
160
161
161
165
167
168
169
169
177
181
183
183
185
185
188
192
192
193
193
196
197
197
197
197
200
203
203
205
205
217
217
217
218
218
218
219
219
220
220
220
220
220
220
220
220
220
220
220
220
221
221
221
221
221
221
221
221
221
222
222
222
222
222
222
222
222
222
222
222
223
223
223
223
224
224
224
224
224
224
224
225
225
225
225
225
226
226
226
226
226
227
227
227
227
227
228
229
229
235
241
242
242
247
252
252
252
252
254
263
263
263
263
266
271
271
272
272
274
274
278
279
289
291
294
301
306
307
313
318
318
318
318
318
318
332
333
336
336
336
338
346
346
351
356
356
359
363
364
372
376
377
377
390
393
395
395
402
402
410
412
413
418
418
431
437
442
442
447
457
460
462
462
472
472
481
486
486
489
504
509
509
523
528
528
548
551
570
573
575
590
595
595
608
613
613
631
634
647
652
652
670
675
694
697
699
714
719
719
738
743
761
763
766
780
785
785
803
808
827
830
832
847
852
852
1370
1371
1372
1
1
5
5
6
6
6
7
9
10
12
13
13
14
14
14
14
14
15
15
15
15
15
15
15
22
22
24
24
24
24
32
32
34
35
38
38
39
40
41
46
47
47
47
47
47
48
49
50
52
52
56
58
58
58
59
59
62
62
67
67
68
72
72
73
75
75
76
76
78
82
82
85
85
85
85
85
85
86
86
86
86
86
86
86
87
87
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
93
93
93
96
96
96
98
98
100
114
117
119
119
119
119
119
121
121
122
122
123
123
135
139
139
141
142
144
145
145
145
145
145
145
146
146
146
146
146
146
146
146
146
146
146
146
146
147
147
147
147
147
147
148
148
148
150
155
155
155
156
158
160
160
161
161
162
162
166
166
166
166
168
169
182
186
186
189
193
193
194
194
197
198
198
198
198
201
204
204
206
206
213
215
216
217
218
218
218
218
219
219
219
219
219
219
220
220
220
220
220
220
220
220
220
220
221
221
221
221
221
221
221
221
221
221
222
222
222
222
222
222
222
223
223
223
223
223
223
223
223
224
224
224
225
225
225
225
226
226
226
226
226
226
226
227
228
229
230
242
243
243
244
248
251
253
253
253
253
264
264
267
272
272
273
279
279
280
280
290
290
292
295
305
307
308
314
319
319
319
319
333
334
335
337
337
337
337
339
352
357
357
359
364
365
373
375
378
378
388
391
393
396
398
403
403
411
411
413
413
414
418
419
419
428
438
443
443
443
448
456
458
460
461
463
472
476
482
486
487
487
501
505
510
510
524
529
547
549
550
552
571
574
574
576
576
591
596
596
609
614
614
632
635
648
653
653
671
674
674
676
695
698
698
700
700
715
720
720
739
741
741
744
762
764
764
767
767
781
786
786
804
807
807
809
828
831
831
833
833
848
853
853
1371
1372
1373
5
5
5
8
10
11
11
11
14
15
15
15
16
16
16
16
16
24
24
24
24
25
25
34
34
35
35
37
37
39
39
41
41
48
48
48
49
49
49
49
50
50
50
50
53
53
58
59
60
60
61
61
63
63
65
65
68
75
77
77
79
83
83
85
85
85
85
86
86
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
93
93
93
93
97
99
99
101
116
116
118
120
122
122
123
123
124
124
136
140
140
142
142
143
143
143
144
145
146
146
146
146
146
146
146
146
147
147
147
148
148
148
149
149
149
151
156
156
156
157
159
161
161
162
162
163
163
167
167
167
167
168
168
168
168
168
168
169
183
187
187
190
194
194
195
195
198
199
199
199
199
202
207
207
214
215
215
216
217
217
217
217
218
219
219
219
219
219
219
219
219
220
220
220
220
220
220
220
220
221
221
221
221
221
221
221
222
222
222
222
222
222
222
222
222
222
222
222
222
222
222
222
222
222
223
223
223
223
224
224
224
224
224
224
224
224
225
225
226
227
227
227
227
227
230
230
231
231
235
235
243
244
244
244
249
251
254
254
264
268
272
273
273
274
281
281
290
291
293
296
296
301
306
308
308
315
319
320
320
326
335
335
336
338
340
348
353
354
358
358
363
365
366
374
375
376
376
376
379
379
388
392
397
399
404
411
413
414
414
415
419
419
419
420
420
428
429
431
431
439
443
444
444
449
449
456
459
461
462
462
462
464
472
477
477
477
483
486
487
488
488
489
489
501
506
511
511
525
530
550
551
553
572
577
577
592
597
597
610
615
615
627
631
633
636
649
654
654
672
675
677
696
701
701
716
721
721
740
742
745
763
768
768
782
787
787
805
808
810
829
834
834
849
854
854
1372
1373
1374
5
5
5
6
6
6
6
7
9
9
11
11
12
12
15
16
16
17
17
17
17
17
22
26
26
32
32
35
36
38
38
39
39
40
40
41
45
47
47
49
50
50
50
50
50
50
51
51
54
54
58
58
60
60
62
62
64
67
67
68
75
75
77
80
84
84
85
85
85
85
85
85
85
85
85
85
86
86
86
86
87
87
87
87
87
87
87
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
93
95
100
100
102
115
115
117
119
120
120
121
121
121
123
123
124
124
125
125
137
141
141
142
143
143
144
144
144
144
145
145
146
146
147
149
150
150
152
152
152
152
153
153
153
157
157
157
158
160
162
162
163
163
164
164
169
169
169
169
169
169
169
169
184
188
188
191
195
195
196
196
200
200
200
200
203
208
208
215
216
216
217
218
218
218
218
218
218
219
220
220
220
220
220
220
220
220
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
223
223
223
223
223
223
223
224
224
224
225
225
225
225
225
225
225
225
225
225
227
227
229
232
232
236
236
243
243
245
245
250
251
252
255
255
264
269
272
272
273
274
274
279
280
280
280
282
282
292
294
294
297
297
297
305
307
316
319
321
321
327
327
327
336
336
337
337
339
341
348
354
355
359
359
364
366
375
375
377
377
380
380
393
395
395
398
399
399
403
403
405
411
413
414
415
415
416
420
420
421
421
428
432
432
440
445
445
450
450
450
450
460
460
462
463
463
465
478
478
484
486
489
489
490
490
507
512
512
526
528
528
531
551
552
554
573
578
578
593
598
598
611
616
616
632
634
637
650
655
655
673
676
678
697
702
702
704
717
722
722
741
743
746
764
769
769
783
788
788
806
809
811
830
835
835
850
855
855
1373
1374
1375
5
5
5
5
7
7
10
11
11
12
12
13
13
16
16
17
17
18
18
18
26
27
34
34
35
37
39
39
39
41
41
41
42
46
51
51
51
52
52
55
55
60
60
60
61
63
63
65
65
65
68
77
77
77
81
82
85
85
85
85
85
86
86
86
87
87
87
87
87
87
88
88
88
88
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
92
92
92
92
92
93
93
93
93
93
96
101
101
103
118
118
120
121
121
121
122
122
122
124
124
124
126
126
138
142
142
143
143
143
144
144
145
145
145
145
146
146
146
152
153
153
153
153
154
154
158
158
158
159
161
163
163
164
164
165
165
165
165
170
170
170
170
185
189
189
192
196
196
197
197
201
201
201
201
204
209
209
215
216
216
217
217
217
218
218
219
219
219
219
219
219
219
219
220
221
221
221
221
221
221
222
222
222
222
222
222
222
222
223
223
223
223
223
223
223
223
223
223
223
223
224
224
224
224
224
224
224
224
227
227
227
228
230
230
233
233
243
245
245
251
252
253
256
256
270
271
272
273
274
275
275
279
279
279
280
281
281
281
290
290
293
298
298
298
298
306
306
308
308
317
322
322
328
328
338
338
340
342
355
356
356
360
360
364
364
366
366
366
367
376
376
376
378
378
378
381
381
388
388
394
396
399
404
404
406
411
411
414
415
417
419
420
420
420
420
421
422
422
429
431
433
433
433
441
443
443
446
446
448
450
450
451
451
456
461
461
463
463
464
466
477
478
478
478
478
479
485
487
489
490
490
491
491
491
501
501
508
513
513
527
529
532
552
553
555
574
579
579
594
599
599
612
617
633
635
638
651
656
656
674
677
679
698
703
703
705
705
705
718
723
723
742
744
747
765
770
770
784
789
789
807
810
812
831
836
836
851
856
856
1374
1375
1376
8
8
8
11
12
13
13
14
14
17
17
17
17
18
19
19
22
22
27
32
32
34
35
38
39
40
41
41
41
42
42
43
43
47
47
52
52
52
52
52
52
55
55
56
56
58
58
60
62
64
66
67
67
68
75
75
77
77
77
77
82
83
84
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
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
90
90
90
90
91
91
91
91
91
91
91
91
92
92
92
92
93
93
93
93
94
102
104
121
122
122
122
123
123
123
125
125
125
125
125
127
127
139
141
143
143
144
145
145
145
145
145
145
146
146
146
146
146
146
146
146
146
147
147
147
147
154
159
159
159
160
162
164
164
165
165
166
166
166
166
167
167
167
170
170
186
190
190
193
197
197
198
198
202
202
202
202
205
210
210
215
216
217
217
217
217
218
218
218
219
219
219
220
220
220
220
220
220
220
221
221
222
222
222
222
222
222
222
222
222
222
223
223
223
224
224
224
225
225
225
225
227
227
229
234
234
251
252
253
254
257
257
271
272
274
275
276
281
282
282
282
288
291
291
294
299
299
299
299
299
299
306
308
309
309
318
323
323
327
328
328
328
328
329
336
337
337
337
339
339
341
343
348
348
356
357
357
357
357
361
361
367
367
368
376
377
377
382
382
386
389
389
391
395
397
400
403
405
405
412
412
413
413
413
415
418
421
421
422
423
423
431
432
441
442
444
444
447
447
451
452
452
460
462
462
465
467
471
479
479
480
486
489
490
491
491
499
502
502
509
514
514
528
530
533
553
554
556
575
580
580
595
600
600
613
618
634
636
639
652
657
657
675
678
680
699
704
704
705
706
706
719
724
724
743
745
748
766
771
771
785
790
790
808
811
813
832
837
837
852
857
857
1375
1376
1377
5
5
9
9
9
11
11
13
14
15
15
15
16
16
17
18
18
18
19
20
20
22
27
27
28
34
34
34
35
35
35
35
39
41
41
41
43
43
43
43
43
43
47
49
49
52
52
53
56
56
57
57
60
60
60
63
65
65
65
67
67
68
68
69
77
77
77
77
78
78
81
81
82
82
82
82
82
82
83
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
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
89
89
90
90
90
90
90
90
90
90
91
91
91
91
91
92
92
92
92
92
93
93
93
93
93
93
94
94
94
95
99
101
103
103
105
105
114
119
122
123
124
124
126
126
126
128
128
140
141
141
142
142
143
143
143
144
144
144
145
146
147
147
147
148
148
150
150
150
155
160
160
160
161
163
165
165
166
166
167
167
168
168
168
168
170
170
170
170
170
170
187
189
189
191
191
194
198
198
199
199
203
203
203
203
206
211
211
212
215
215
215
215
215
215
215
216
217
217
217
217
217
217
217
217
217
217
218
218
218
218
219
219
219
220
220
220
220
220
221
221
221
221
222
222
222
224
224
224
225
225
225
225
225
225
225
230
235
235
236
238
243
252
253
254
254
258
258
272
272
273
275
277
280
282
283
283
289
289
295
297
299
299
300
300
300
300
306
308
309
310
310
318
319
324
324
329
329
330
335
336
336
336
337
338
338
338
342
344
346
349
349
355
357
357
357
358
358
362
362
364
366
368
368
377
377
378
378
378
383
383
387
387
392
396
398
401
403
414
414
414
414
419
420
420
422
422
424
424
432
432
433
433
442
442
443
448
448
450
450
452
461
461
463
463
463
466
468
472
472
472
472
478
478
480
480
487
490
490
491
491
492
492
500
500
510
515
515
529
531
534
554
555
557
576
581
581
596
601
601
614
616
616
619
635
637
640
653
658
658
676
679
681
700
705
705
706
706
720
725
725
744
746
749
767
772
772
786
791
791
809
812
814
833
838
838
853
858
858
1376
1377
1378
5
9
10
10
15
16
16
17
17
17
18
19
19
19
19
19
20
21
21
22
26
26
26
28
29
29
32
32
35
36
36
41
41
42
43
44
44
47
47
48
48
50
52
53
53
53
54
57
57
58
58
58
58
60
66
67
67
67
68
68
68
68
68
68
68
68
69
69
69
69
70
75
79
79
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
86
86
86
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
88
88
88
88
88
88
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
93
93
94
95
95
96
100
102
104
104
106
106
120
123
123
125
125
127
127
127
127
127
129
129
141
142
142
143
143
143
144
144
144
144
144
144
145
145
145
145
145
150
151
151
153
153
153
154
154
154
156
161
161
161
162
164
166
166
167
167
168
168
169
169
171
171
171
171
188
190
190
192
195
199
199
200
200
204
204
207
211
211
211
212
212
213
215
215
215
216
216
216
216
216
216
216
216
216
216
216
217
217
217
218
218
218
218
218
218
218
218
218
218
218
218
219
219
219
219
219
220
220
220
220
220
220
220
220
220
220
220
220
221
221
221
221
222
222
222
223
224
224
224
225
225
225
225
225
225
225
225
225
226
231
236
236
236
239
251
253
254
259
259
272
273
273
275
275
275
275
276
278
281
281
296
300
301
301
301
301
306
306
309
310
319
319
319
319
320
325
328
328
330
330
336
338
339
339
339
340
343
345
347
347
358
358
359
359
363
363
367
379
379
379
384
384
393
393
397
399
399
402
403
404
415
415
420
421
425
425
434
434
444
449
449
451
461
463
464
464
464
467
469
473
473
479
488
492
492
493
493
511
516
516
530
532
535
555
556
558
577
582
582
597
602
602
615
617
620
636
638
638
641
641
654
659
659
677
680
682
701
706
706
721
726
726
745
747
750
768
773
773
787
792
792
810
813
815
834
839
839
854
859
859
1377
1378
1379
5
5
9
11
11
11
16
17
17
17
17
17
17
18
18
19
19
20
20
21
21
22
22
26
27
29
29
29
29
29
37
37
37
41
43
43
44
45
45
45
51
51
52
52
53
54
54
54
54
54
54
54
55
57
57
59
59
60
60
60
61
65
65
65
67
67
68
68
68
69
69
69
69
69
69
69
69
69
70
70
70
71
79
80
85
85
85
85
85
85
85
85
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
89
89
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
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
95
96
96
97
101
103
105
105
107
107
121
124
124
126
126
128
128
128
129
129
130
130
142
142
142
143
144
144
144
144
144
144
145
145
146
146
146
147
153
154
154
154
155
155
157
162
162
162
163
165
167
167
167
167
168
168
169
169
169
169
169
171
171
171
171
171
171
171
171
172
172
189
191
191
193
196
200
200
201
201
203
203
203
203
205
205
208
212
212
212
213
213
214
214
216
216
216
216
216
217
217
217
217
217
217
217
217
217
217
217
217
217
218
218
218
218
218
218
218
218
218
218
219
219
219
219
219
219
219
219
219
220
220
220
220
221
221
221
221
221
221
221
221
221
221
222
222
222
222
222
224
224
225
225
226
226
228
228
232
233
237
237
244
244
252
252
254
254
255
260
260
263
274
276
276
276
277
279
291
297
299
299
301
302
302
307
307
308
308
308
310
320
320
321
324
324
326
329
337
339
340
340
341
344
346
357
357
359
359
364
364
364
368
377
378
378
378
380
380
380
385
385
389
394
394
394
394
398
399
400
403
404
405
415
420
421
422
426
426
432
433
433
433
435
435
444
445
450
450
450
450
452
461
463
464
465
465
465
468
470
473
478
480
489
490
491
491
491
493
493
494
494
502
512
517
517
531
533
536
556
557
559
578
583
583
598
603
603
616
618
621
637
642
642
655
660
660
678
681
683
702
707
707
722
727
727
746
748
751
769
774
774
788
793
793
811
814
816
835
840
840
855
860
860
1378
1379
1380
4
8
8
8
8
10
12
12
13
13
17
17
21
21
22
22
23
23
26
26
29
30
32
37
38
42
43
44
44
45
46
46
46
47
52
52
52
54
54
55
55
55
56
58
58
58
58
58
58
60
60
60
60
60
60
62
66
68
68
69
69
70
70
70
70
70
70
70
71
71
71
72
75
75
80
85
85
85
85
85
85
85
86
86
86
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
89
89
89
89
89
89
89
89
89
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
93
93
95
96
96
97
97
98
104
108
108
121
125
125
127
127
127
129
129
130
130
131
131
140
141
142
143
144
144
144
145
145
146
147
147
147
147
147
148
148
158
163
163
163
164
166
168
168
168
168
169
169
169
169
169
170
170
170
172
172
172
172
173
173
190
192
194
197
201
201
202
202
204
204
206
206
209
213
213
213
213
214
214
215
215
215
215
215
217
217
217
217
217
218
218
218
218
218
218
218
218
218
218
218
218
218
218
218
218
219
219
219
219
219
219
219
219
220
220
220
220
220
220
220
220
220
220
220
220
220
220
220
220
220
220
220
220
221
221
222
222
222
222
222
222
222
222
222
222
222
225
225
225
225
225
225
227
227
233
234
235
235
236
236
238
238
245
245
245
245
252
254
255
255
256
261
261
264
264
264
275
277
277
277
280
283
291
298
300
303
303
309
309
309
309
320
322
325
327
328
330
338
338
342
345
347
349
358
360
364
365
365
365
366
377
377
377
378
379
379
379
381
386
386
389
392
394
394
395
395
399
401
403
404
405
406
415
420
420
421
422
427
427
432
432
432
433
434
434
434
444
446
450
450
451
451
451
451
461
461
464
465
466
469
471
473
478
478
479
490
490
490
490
491
492
492
492
495
495
502
513
518
518
532
534
537
558
560
579
584
584
599
604
604
617
619
622
638
643
643
656
661
661
682
684
703
708
708
723
728
728
749
752
770
775
775
789
794
794
815
817
836
841
841
856
861
861
1379
1380
1381
5
5
5
9
11
11
11
11
12
13
14
14
15
17
18
18
18
19
19
19
20
22
22
22
23
23
24
24
24
30
31
32
37
37
37
37
39
41
43
43
43
45
45
47
47
47
52
52
56
57
59
59
60
60
60
60
61
61
61
61
63
65
67
69
69
69
70
70
71
71
71
71
72
72
72
75
80
80
81
85
85
85
85
85
85
85
85
86
86
86
86
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
90
90
90
91
91
91
91
91
91
91
91
93
93
96
97
98
99
105
109
109
122
122
122
126
126
126
127
127
128
128
128
130
130
131
131
132
132
141
142
142
142
143
143
144
144
144
146
146
147
148
148
148
151
151
151
159
164
164
164
165
167
169
169
169
169
170
170
170
170
171
171
171
171
171
171
171
173
173
173
173
191
193
195
198
202
202
203
205
205
207
207
210
214
214
214
214
214
214
214
214
214
215
215
215
216
216
216
216
216
216
217
217
218
218
218
218
218
218
218
218
219
219
219
219
219
219
219
219
220
220
220
220
220
220
220
220
220
220
221
221
221
221
221
221
221
221
221
222
222
223
223
223
223
223
223
223
223
223
223
225
225
225
225
226
226
226
230
234
235
236
236
237
237
239
239
239
245
245
246
246
252
254
255
256
256
257
262
262
265
265
275
276
278
281
283
299
299
299
301
304
304
310
310
320
323
326
328
328
328
329
343
346
348
349
357
357
359
361
365
366
366
366
366
367
379
380
380
380
382
387
387
395
396
396
399
400
402
404
405
406
406
419
420
421
422
423
428
428
434
435
435
435
447
452
452
452
452
462
462
463
463
463
465
470
472
477
478
479
480
491
492
493
493
493
496
496
514
519
519
533
535
538
559
561
580
585
585
600
605
605
618
620
623
639
644
644
657
662
662
683
685
704
709
709
724
729
729
750
753
771
776
776
790
795
795
816
818
837
842
842
857
862
862
1380
1381
1382
1
4
5
5
6
8
8
12
13
15
15
16
17
18
19
19
19
19
20
20
20
21
22
23
23
23
24
25
25
25
29
31
32
32
32
32
37
37
38
44
45
45
46
48
48
52
53
53
54
54
56
58
58
60
60
60
60
62
62
62
62
65
68
70
70
72
72
72
72
79
79
81
81
81
81
82
82
85
85
85
86
86
86
86
86
86
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
90
90
90
90
91
91
91
91
91
91
91
91
92
92
93
97
98
99
100
106
110
110
123
127
127
128
128
128
129
129
129
131
131
133
133
140
141
141
143
144
145
147
147
149
151
152
152
154
155
160
165
165
165
166
168
168
170
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
172
172
172
172
172
194
196
199
202
202
203
203
204
206
206
208
208
211
211
213
214
215
215
215
215
215
215
216
216
216
217
217
217
217
217
217
217
217
217
217
218
218
219
219
219
219
220
220
220
220
220
220
221
221
221
221
221
221
221
221
221
221
221
221
222
222
222
222
222
222
222
222
222
223
224
224
226
227
227
227
231
231
235
236
237
237
240
240
246
247
247
255
256
258
263
263
264
265
265
265
265
266
272
277
279
282
299
299
300
300
300
305
305
310
324
327
327
328
329
329
330
340
344
347
347
349
349
357
357
358
358
362
367
367
367
367
368
378
380
381
381
383
388
388
389
389
394
394
396
403
403
405
406
420
422
423
424
429
429
433
435
436
436
444
444
448
448
453
453
453
453
464
464
464
464
471
473
478
480
481
491
492
493
494
494
497
497
502
502
515
520
520
536
539
560
562
581
586
586
601
606
606
619
621
624
640
645
645
658
663
663
684
686
705
710
710
725
730
730
751
754
772
777
777
791
796
796
817
819
838
843
843
858
863
863
1381
1382
1383
1
1
1
4
4
5
5
6
7
13
14
17
19
19
20
20
21
21
21
22
23
23
24
24
24
24
25
26
26
26
26
29
29
38
39
39
43
43
45
46
49
49
52
54
54
54
55
55
57
57
59
61
61
62
62
62
63
63
63
65
65
69
70
71
73
73
75
79
81
82
82
82
82
82
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
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
90
90
90
90
91
91
91
91
91
91
91
91
92
93
95
96
97
98
100
101
107
111
111
128
129
129
129
130
131
131
131
131
132
132
134
134
141
141
141
141
141
142
143
143
143
144
144
144
145
145
146
148
148
150
154
154
154
155
155
155
161
166
166
166
167
169
169
171
171
171
171
171
171
171
171
172
172
173
173
173
173
173
195
195
197
197
200
203
204
204
205
207
207
209
209
212
212
213
214
214
215
215
215
215
215
216
216
216
216
216
216
216
217
217
217
218
218
218
218
218
218
218
218
218
219
219
220
220
220
220
221
221
221
222
223
223
223
223
223
223
223
223
224
227
228
228
236
237
238
238
241
241
245
245
247
256
259
264
264
266
266
267
272
273
275
275
278
280
283
283
283
301
301
301
306
306
310
325
328
328
330
330
331
340
345
350
350
359
359
363
367
368
368
368
368
379
379
384
387
389
390
390
395
404
404
404
406
406
407
414
420
421
423
425
430
430
434
434
442
445
445
449
449
454
454
454
465
465
472
472
474
478
479
481
492
492
493
498
498
500
503
503
516
521
521
533
537
537
540
556
561
563
582
587
587
602
607
607
620
622
625
641
646
646
659
664
664
678
685
687
706
711
711
726
731
731
746
750
752
755
773
778
778
792
797
797
811
818
820
839
844
844
859
864
864
1382
1383
1384
4
5
5
6
7
8
11
12
14
15
16
19
19
20
21
21
23
24
25
26
27
27
27
31
31
32
37
39
45
45
46
46
50
50
54
56
56
58
58
58
60
63
63
63
64
64
70
70
70
71
72
72
72
72
74
74
79
79
79
80
82
82
82
82
82
82
83
85
85
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
87
87
87
87
88
88
88
88
89
89
89
90
90
90
90
90
91
91
92
92
92
92
93
94
98
99
101
102
108
112
112
121
126
129
130
131
132
132
133
133
135
135
136
136
142
142
142
142
143
144
144
145
145
145
147
147
148
149
151
155
155
155
155
156
156
156
156
162
167
167
167
168
170
170
170
171
171
171
171
172
172
172
172
172
172
172
172
173
174
174
174
189
193
196
196
198
198
201
204
206
208
208
210
210
213
213
213
214
215
215
215
215
215
215
215
215
215
215
215
215
216
216
216
216
216
217
217
217
217
218
218
218
218
218
218
218
219
219
219
219
219
219
219
219
219
220
220
220
220
220
222
222
223
223
223
223
223
223
225
237
237
238
239
239
242
242
246
260
265
265
265
265
267
267
272
276
276
279
281
281
284
284
284
289
297
302
302
302
307
307
326
328
329
329
331
331
346
351
351
355
360
360
364
367
368
368
368
369
369
369
385
388
388
390
394
394
396
404
405
406
407
407
408
415
415
415
415
420
421
423
423
424
426
431
431
443
443
449
449
450
453
453
455
455
455
465
466
473
473
473
473
473
475
478
479
481
481
482
494
499
499
501
501
517
522
538
538
541
557
559
562
564
583
588
588
603
608
608
621
623
626
642
647
647
660
665
665
679
683
686
688
707
712
712
727
732
732
751
753
756
774
779
779
793
798
798
812
816
819
821
840
845
845
860
865
865
1383
1384
1385
1
4
4
5
7
8
8
9
11
11
17
20
21
21
21
22
24
25
25
26
26
27
28
28
28
29
29
32
37
37
37
39
39
39
43
43
46
47
51
51
54
54
55
55
56
58
59
59
60
60
61
63
63
64
64
64
65
65
65
70
70
70
71
72
72
75
75
82
82
82
83
83
84
84
84
84
85
85
85
85
85
85
85
86
86
86
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
91
93
93
95
99
99
100
100
101
102
102
103
109
113
113
127
130
132
133
133
134
134
136
136
136
136
137
137
137
137
138
141
142
148
148
149
150
152
152
155
155
156
156
156
156
157
157
163
167
168
168
168
169
169
169
170
170
170
171
171
171
171
171
171
171
172
172
173
173
173
173
173
174
174
174
174
174
175
175
175
175
190
194
197
197
199
199
202
205
207
209
209
211
211
211
213
213
213
213
214
214
214
214
214
214
215
215
215
216
216
216
216
216
216
216
216
216
216
216
216
216
217
217
217
217
217
217
218
218
218
218
218
218
218
218
218
219
219
219
219
219
219
220
220
220
220
223
223
223
223
223
223
237
238
240
240
243
243
245
245
247
252
252
261
266
266
266
273
275
277
277
277
280
282
282
282
285
290
298
303
303
308
308
327
328
329
330
331
331
332
332
340
340
347
347
352
352
356
361
365
369
369
370
370
370
381
386
388
388
391
394
394
395
395
400
404
404
406
406
407
408
408
409
416
416
424
424
425
427
432
432
436
451
454
454
456
456
465
467
471
474
474
474
476
482
482
483
494
495
500
500
518
523
539
539
542
560
563
565
584
589
589
604
609
609
624
627
643
648
648
661
666
666
684
687
689
708
713
713
728
733
733
752
754
757
775
780
780
794
799
799
817
820
822
841
846
846
861
866
866
1384
1384
1386
4
5
5
5
5
8
9
10
14
14
15
18
19
19
21
21
21
23
25
26
27
27
28
28
29
29
29
31
31
32
37
38
39
39
39
40
45
45
46
48
52
52
56
56
56
58
60
61
61
61
62
62
62
62
64
65
65
66
66
66
67
70
72
76
76
81
81
82
82
82
82
82
82
83
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
86
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
90
91
91
91
91
91
91
91
91
91
91
92
94
94
94
96
102
103
103
104
110
114
114
128
130
130
131
133
133
133
135
135
137
137
137
137
139
140
140
141
141
144
145
151
152
152
152
153
155
156
156
157
157
157
158
158
164
168
169
169
170
170
170
171
172
172
172
172
174
174
174
174
174
175
175
175
175
175
176
176
176
176
191
195
200
200
203
206
208
210
210
210
211
211
211
211
211
211
212
212
212
212
214
214
214
214
215
215
215
215
215
215
215
215
216
216
216
216
217
217
217
217
217
217
217
217
217
217
217
217
218
218
218
218
218
218
218
218
218
219
220
220
220
220
220
220
220
220
220
221
223
223
228
238
239
244
244
245
245
246
246
253
253
254
254
254
262
265
267
267
267
275
276
283
286
291
291
298
298
302
302
304
304
309
309
309
319
328
331
332
332
333
333
338
341
341
348
348
353
353
356
356
360
360
360
362
366
370
370
371
371
381
387
389
390
392
396
396
404
404
405
407
407
408
410
416
425
425
428
433
433
436
445
452
453
455
455
455
455
457
472
474
475
477
483
483
494
496
501
501
503
519
521
521
524
540
540
543
561
564
566
585
590
590
605
610
610
625
628
644
649
649
662
667
667
685
688
690
705
709
714
714
729
734
734
753
755
758
776
781
781
795
800
800
818
821
823
842
847
847
862
867
867
1384
1385
1385
1387
4
4
5
6
9
10
11
11
11
15
21
21
21
22
24
26
28
29
29
29
29
30
30
30
32
39
40
41
43
43
45
46
49
53
53
54
54
56
62
62
62
62
63
63
65
65
65
65
65
66
67
67
67
67
68
70
71
72
72
73
77
77
81
81
82
82
82
83
83
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
91
91
91
91
91
91
92
93
95
95
97
97
98
99
100
103
104
104
105
111
115
115
131
132
134
135
136
136
138
138
138
138
141
141
142
142
144
145
145
146
150
152
152
153
153
153
153
154
154
155
155
155
156
156
156
156
157
157
158
165
169
170
170
170
170
171
171
171
172
173
173
173
175
175
175
176
176
176
176
176
177
177
196
201
201
204
204
207
209
209
209
209
211
211
211
212
212
212
212
212
212
212
212
213
213
213
213
213
214
214
214
215
215
215
215
216
216
216
216
216
216
216
216
216
216
216
216
216
217
217
218
218
218
218
218
218
218
218
218
218
218
218
219
220
220
220
220
221
221
221
221
223
223
228
240
240
245
245
247
247
255
255
255
255
263
265
265
266
268
268
276
276
277
277
284
284
287
292
292
292
292
303
303
305
305
310
310
310
310
310
310
320
320
320
332
333
333
334
339
339
349
349
349
354
354
360
361
361
363
367
368
372
372
388
390
390
392
393
397
397
405
405
406
406
406
406
408
408
411
416
423
429
434
434
445
453
453
456
458
473
474
476
478
481
497
502
502
503
520
522
525
541
541
544
562
565
567
586
591
591
606
611
611
626
629
645
650
650
663
668
668
686
689
691
706
710
715
715
730
735
735
754
756
759
777
782
782
796
801
801
819
822
824
843
848
848
863
868
868
1386
1386
1388
4
5
6
7
10
11
12
14
14
15
19
19
20
21
21
21
21
21
23
23
25
25
26
27
29
30
30
31
31
31
31
31
32
41
41
45
45
45
46
46
46
46
50
54
54
54
56
56
56
59
62
62
63
64
64
64
64
64
65
66
66
67
67
68
68
68
69
70
72
72
73
73
74
78
78
79
81
84
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
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
90
90
90
91
91
91
91
91
94
96
96
98
100
101
103
104
105
106
112
116
116
132
133
135
135
136
136
137
137
139
139
139
139
139
146
147
148
149
151
153
153
153
153
154
154
155
155
156
157
157
158
166
168
168
170
171
171
171
171
171
172
172
173
173
173
174
174
174
176
177
178
178
197
202
202
205
205
208
209
209
210
210
210
210
212
212
212
213
213
213
213
213
213
213
213
214
214
214
214
214
214
214
214
214
214
214
214
214
214
215
215
215
216
216
216
216
216
216
216
216
216
216
216
216
216
216
216
216
217
217
217
217
217
217
217
217
217
217
217
217
218
218
218
218
219
220
220
220
221
222
239
240
241
246
246
248
248
256
256
264
264
265
266
267
269
278
278
284
285
288
290
292
292
293
293
302
304
304
306
311
311
311
311
321
321
331
333
335
350
350
350
350
350
355
355
356
361
362
362
367
368
373
373
381
381
389
391
393
394
398
407
407
407
407
407
409
412
420
430
435
435
436
436
449
453
454
454
457
459
464
474
477
478
479
494
494
498
503
503
521
523
526
542
542
545
563
566
566
568
568
587
592
592
607
612
612
621
625
627
630
646
651
651
664
669
669
687
690
690
692
692
706
706
711
716
716
731
736
736
755
757
757
760
760
778
783
783
797
802
802
820
823
823
825
825
844
849
849
864
869
869
1387
1387
1389
7
7
9
10
11
11
12
13
15
21
21
21
21
22
22
24
25
26
26
27
28
29
29
31
31
32
32
32
32
39
39
41
43
43
46
47
47
51
53
53
54
54
55
55
56
60
65
65
65
66
66
67
67
67
68
69
69
69
70
72
74
74
75
79
79
82
82
84
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
89
89
89
89
90
90
90
90
91
91
91
91
91
91
97
97
99
101
102
104
104
105
105
106
107
113
115
115
117
117
129
129
132
134
134
134
136
136
136
137
138
138
138
138
138
138
139
139
139
139
140
140
142
142
142
148
148
149
152
153
154
154
154
155
155
155
156
156
156
157
158
158
159
167
169
171
171
172
172
172
172
173
173
174
174
174
174
174
175
175
175
177
178
179
179
198
203
203
209
210
210
211
211
211
211
211
212
213
213
213
213
213
213
214
214
214
214
214
214
214
214
215
215
215
215
215
215
215
215
215
215
215
215
215
215
215
216
216
216
216
216
216
216
216
217
217
217
217
217
217
217
217
217
218
218
218
218
218
218
218
218
218
218
218
222
223
228
228
231
240
242
247
247
249
256
265
265
267
268
270
276
277
277
277
279
279
280
284
286
289
293
294
294
302
307
311
312
312
320
321
321
321
321
322
328
334
336
341
348
350
350
351
351
351
356
356
362
367
368
368
368
369
374
374
379
382
382
390
392
393
393
395
397
397
399
408
408
408
410
413
420
421
423
423
431
434
436
436
437
437
449
454
455
455
458
460
465
465
465
465
475
478
478
478
479
480
480
481
481
492
495
495
499
504
504
522
524
527
543
543
546
564
569
569
588
593
593
608
613
613
626
628
631
647
652
652
665
670
670
688
693
693
706
707
707
712
717
717
732
737
737
756
761
761
779
784
784
798
803
803
821
826
826
845
850
850
865
870
870
1388
1388
1390
7
10
11
13
14
14
14
15
19
23
23
26
27
27
28
29
31
31
31
32
32
32
32
32
33
33
33
39
41
41
42
48
48
52
54
54
56
56
56
56
61
65
66
66
66
66
66
66
67
67
67
68
68
69
69
69
70
70
70
72
72
74
76
80
80
80
82
82
82
82
82
83
84
84
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
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
90
90
90
90
90
91
91
91
98
98
100
105
106
107
108
114
116
116
118
135
135
135
136
136
137
137
137
137
138
138
139
139
139
139
140
140
140
140
140
141
141
141
141
142
142
142
142
149
150
153
153
153
153
154
155
155
156
156
157
157
157
159
160
168
170
171
171
172
172
173
174
174
174
174
174
174
175
175
175
175
175
176
176
178
179
180
180
199
203
204
204
209
210
211
211
211
212
212
212
212
212
212
212
212
213
213
213
215
215
216
216
216
216
216
216
216
216
216
216
216
216
216
216
216
217
217
217
217
217
217
217
217
218
218
218
218
218
218
218
218
218
218
218
218
218
218
219
219
219
219
221
222
223
224
229
229
232
240
240
243
248
248
248
248
250
256
265
266
266
268
268
268
271
276
276
276
277
278
278
278
284
284
285
287
290
292
292
294
298
302
303
308
311
313
313
322
322
323
328
328
329
331
331
335
337
341
351
352
352
352
357
357
360
363
367
369
369
370
375
375
380
380
391
393
396
398
398
400
408
409
411
411
414
414
420
424
424
432
435
435
437
437
453
455
456
456
459
461
466
466
476
478
481
481
482
482
493
493
500
505
505
523
525
528
544
544
547
565
570
570
589
594
594
609
614
627
629
632
648
653
653
666
671
671
689
694
694
707
707
708
713
718
718
733
738
757
762
762
780
785
785
799
804
804
822
827
827
846
851
851
866
871
1389
1389
1391
7
7
8
11
11
12
14
14
15
15
18
23
23
24
27
28
29
29
29
29
30
30
30
32
33
33
33
34
34
34
39
41
41
41
42
43
43
43
48
53
54
54
55
55
56
56
56
56
57
62
63
63
65
65
66
67
67
67
68
69
70
70
70
71
71
74
74
74
77
79
79
80
81
81
81
81
82
82
82
82
82
83
84
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
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
89
89
89
91
91
99
101
106
106
107
107
108
109
115
117
117
119
136
136
136
137
137
137
137
138
138
140
140
141
141
141
142
142
142
142
143
146
149
149
150
150
154
154
155
157
158
158
158
158
158
159
159
160
161
169
170
171
174
174
174
175
175
175
175
175
175
175
175
176
176
176
176
176
177
177
179
180
181
181
200
204
205
205
208
209
209
210
211
211
211
211
212
212
212
213
213
213
213
213
213
213
213
213
213
213
213
213
213
214
214
214
214
214
215
217
217
217
217
217
217
217
217
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
219
221
223
223
224
225
230
237
237
244
249
249
249
249
251
265
266
267
268
268
269
269
272
278
279
279
279
282
285
285
286
288
291
293
298
303
304
309
314
314
321
321
323
323
328
329
332
332
333
336
338
350
350
352
353
356
358
358
360
361
368
368
370
370
370
371
376
376
388
392
394
397
397
399
399
408
410
415
415
421
423
425
425
425
433
438
438
443
449
454
456
456
457
460
462
466
477
479
481
482
482
483
483
483
501
501
506
506
524
526
529
545
548
566
571
571
590
595
595
610
615
628
630
633
649
654
654
667
672
690
695
695
707
707
708
709
714
719
719
734
739
758
763
763
781
786
786
800
805
823
828
828
847
852
852
867
872
1390
1390
1392
7
8
8
9
9
13
14
14
14
15
15
15
15
16
19
19
24
24
29
30
31
31
34
34
34
35
35
35
41
41
43
43
43
43
43
43
48
48
54
56
56
56
56
56
57
57
58
62
62
64
67
67
67
67
67
68
68
68
68
69
70
71
71
72
72
72
72
74
74
74
74
78
80
80
81
81
81
82
82
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
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
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
96
98
100
100
102
102
107
108
108
109
109
110
116
118
120
128
133
134
137
137
137
137
137
137
137
138
138
139
139
139
141
141
141
142
142
143
143
146
153
155
155
156
158
159
159
159
159
159
160
160
161
162
170
170
171
172
173
175
176
176
176
176
176
176
177
177
177
177
177
178
178
180
181
182
182
201
206
206
209
209
210
210
210
211
211
211
211
211
211
211
212
212
212
212
212
212
212
212
212
213
213
213
213
213
213
213
214
214
214
214
214
214
214
214
214
214
214
214
214
214
214
214
214
214
214
215
215
215
215
215
215
215
217
217
217
217
217
217
217
218
218
218
218
218
218
218
219
219
219
219
219
221
225
226
226
230
231
238
238
238
238
245
248
250
250
250
250
268
269
269
270
270
273
277
279
280
280
283
283
287
289
292
292
292
294
302
304
305
310
315
315
322
329
331
333
333
333
334
337
339
341
341
351
354
356
359
359
361
362
368
369
372
377
377
382
389
393
395
397
398
411
415
416
416
423
424
434
437
439
439
444
453
455
458
461
463
466
473
478
481
482
483
483
495
502
502
507
507
525
527
530
544
546
547
549
567
572
572
591
596
596
611
613
613
616
629
631
634
650
655
655
668
671
671
673
691
696
696
708
709
715
720
720
735
737
737
740
759
764
764
782
787
787
801
804
804
806
824
829
829
848
853
853
868
870
870
873
1391
1391
1393
7
7
7
7
8
9
9
11
11
13
14
14
15
16
16
17
17
19
24
24
25
25
29
30
31
31
32
32
32
34
34
34
34
35
35
36
36
36
41
41
43
43
43
44
48
49
54
55
57
58
58
59
65
65
65
65
68
68
68
68
68
68
69
69
70
71
71
73
73
74
74
74
74
75
75
79
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
83
83
83
83
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
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
89
89
89
89
89
97
99
101
101
103
103
109
110
110
111
117
119
121
134
135
135
135
138
138
138
138
138
139
139
139
139
139
139
139
140
140
140
141
142
143
143
144
144
147
153
154
156
157
160
160
160
160
161
161
170
171
172
173
173
173
173
173
174
175
175
176
176
176
176
176
176
176
176
177
178
178
178
178
178
179
179
181
181
181
182
183
183
202
207
207
208
209
209
209
209
209
209
210
210
210
211
211
211
211
211
212
212
212
212
212
212
212
212
212
212
213
213
213
213
213
213
213
214
214
214
214
214
214
214
214
214
214
214
214
214
215
215
215
215
215
215
215
215
215
215
215
215
215
215
216
216
216
216
218
218
219
219
219
219
219
219
219
219
219
219
219
219
219
221
222
226
226
227
227
227
229
231
232
232
238
238
239
239
246
248
251
251
269
270
270
271
274
278
278
288
290
292
292
293
293
293
298
303
305
305
310
311
316
316
321
323
331
332
335
338
339
340
342
342
350
350
352
355
360
360
360
362
363
369
369
370
370
373
378
378
382
390
390
393
396
397
398
399
412
416
416
416
417
417
424
424
425
425
435
437
440
440
445
445
454
454
456
456
459
462
464
474
474
474
479
482
482
483
483
484
484
495
503
503
503
508
508
526
528
531
547
548
550
568
573
573
592
597
597
612
614
617
630
632
632
635
635
651
656
656
669
672
674
692
697
697
707
707
709
716
721
721
736
738
741
760
765
765
783
788
788
802
805
807
825
830
830
849
854
854
869
871
874
1392
1392
1394
1
1
7
7
8
9
13
14
15
15
17
17
18
18
19
23
23
23
25
26
26
27
27
29
31
33
34
34
34
34
35
35
35
36
36
37
37
44
45
48
48
49
50
50
50
50
58
58
59
60
67
67
68
69
69
69
70
70
72
72
72
72
72
74
74
76
76
80
82
82
82
82
82
82
82
82
82
83
83
83
83
83
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
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
89
89
89
89
90
90
98
100
101
102
102
102
104
104
106
107
110
111
111
112
120
122
135
136
136
136
136
138
138
139
139
139
139
139
139
140
140
140
140
140
140
141
141
141
141
142
143
144
144
144
144
145
145
145
145
147
147
155
156
156
157
158
158
158
159
159
161
161
173
174
174
174
174
174
175
175
175
175
175
175
175
175
176
176
177
177
177
177
177
177
177
177
178
179
180
180
182
182
182
183
184
203
207
207
207
207
207
208
208
209
209
210
210
210
210
210
210
210
210
211
211
211
212
212
212
212
212
212
213
213
213
213
213
213
213
213
214
214
214
214
214
214
214
214
214
214
214
214
214
215
215
215
215
215
215
215
215
216
216
216
216
216
216
216
216
216
216
216
216
216
216
216
217
217
217
218
219
219
219
219
219
219
219
219
219
220
220
220
220
223
228
228
228
229
232
233
239
240
240
240
247
248
249
252
252
268
270
272
275
285
289
291
291
294
294
294
294
302
304
311
311
311
311
312
317
321
321
322
332
332
333
333
336
339
340
340
341
350
350
351
351
356
361
361
361
363
371
371
374
379
379
391
391
391
391
393
397
398
399
400
407
413
417
417
418
418
426
426
436
441
441
446
446
446
446
454
456
457
457
463
465
475
475
480
484
484
485
485
504
504
504
504
504
509
509
529
532
548
549
551
569
574
574
593
598
598
613
615
618
631
636
636
652
657
657
670
673
675
693
698
698
708
717
722
722
737
739
742
761
766
766
784
789
789
803
806
808
826
831
831
850
855
855
870
872
875
1393
1393
1395
1
1
9
10
11
14
15
16
16
17
19
19
23
24
26
26
26
26
26
27
28
28
29
29
29
32
32
33
34
34
34
35
36
36
36
37
37
38
38
43
43
45
46
48
48
48
50
50
53
54
54
57
59
59
59
61
61
61
65
65
66
68
70
71
73
73
75
75
76
77
79
81
82
82
82
82
83
83
83
84
85
85
85
85
85
85
85
85
85
85
85
85
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
90
91
101
105
105
107
108
112
113
115
119
121
121
123
123
136
136
136
136
136
137
137
137
137
137
139
139
140
140
140
141
142
142
142
143
144
146
146
146
146
149
149
150
150
156
157
157
158
158
159
159
159
159
160
160
162
162
175
175
175
175
176
176
177
177
178
178
178
178
178
178
178
178
179
180
180
181
181
181
183
183
183
183
184
184
185
204
207
208
208
208
208
208
209
209
209
210
210
211
211
211
211
211
211
211
211
212
212
212
212
212
212
212
212
213
213
213
214
214
214
214
214
214
214
214
214
214
214
215
215
215
215
215
215
215
215
215
215
216
216
216
216
216
216
216
216
216
216
217
217
217
220
220
221
221
221
221
224
229
229
229
233
234
238
238
240
240
248
249
250
253
253
255
265
271
273
276
280
285
290
290
295
295
295
295
303
303
305
305
312
312
313
316
316
318
320
321
322
323
334
334
337
340
340
342
342
352
352
357
361
361
362
362
363
363
363
364
369
370
370
370
372
372
375
380
380
382
382
389
391
391
392
392
397
398
399
400
401
408
408
408
408
414
416
417
417
417
417
418
419
419
424
425
425
425
427
427
437
437
437
442
442
444
446
446
447
447
454
456
457
458
458
464
465
466
474
475
475
475
475
476
481
482
483
483
483
485
485
486
486
495
495
502
504
504
505
505
505
510
510
526
530
530
533
549
550
552
570
575
575
594
599
599
614
616
619
632
637
637
653
658
658
671
674
676
694
699
699
707
709
718
723
723
738
740
743
762
767
767
785
790
790
804
807
809
827
832
832
851
856
856
871
873
876
1394
1394
1396
8
10
11
11
16
17
17
20
20
23
23
26
27
29
29
32
33
33
34
35
35
36
36
36
37
37
38
39
39
41
43
43
48
54
54
58
59
59
60
60
60
62
62
67
67
67
68
70
72
72
72
74
74
74
74
76
76
77
80
82
82
82
82
82
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
102
106
106
108
109
113
114
116
120
122
122
124
124
137
137
137
137
137
137
137
138
138
138
138
138
138
139
139
141
142
142
142
142
142
142
142
142
142
142
142
143
143
145
147
147
147
147
149
150
158
158
158
158
159
159
159
159
160
160
160
161
161
163
163
170
174
174
175
175
175
176
176
176
177
177
178
178
179
179
179
179
179
179
180
182
184
184
184
185
185
186
205
208
209
209
209
209
209
210
210
211
211
211
211
211
211
211
212
212
212
212
212
212
212
212
213
213
213
213
213
213
214
214
214
214
214
214
214
215
215
216
216
216
216
216
216
216
217
217
217
217
217
217
218
218
222
222
222
222
225
229
229
230
230
230
234
235
239
248
249
250
251
254
254
256
256
256
265
266
268
268
272
274
277
280
291
291
296
296
296
303
305
306
306
312
314
317
319
321
323
324
332
333
333
333
335
335
338
342
343
343
348
353
353
358
363
363
364
364
365
369
369
369
370
371
371
371
376
380
381
381
383
383
392
393
393
393
393
397
398
399
400
400
402
409
409
415
418
418
419
420
420
424
424
424
425
426
426
426
435
438
438
438
443
443
447
448
448
454
454
457
458
465
466
466
466
466
467
476
476
477
482
482
482
482
483
484
484
484
487
487
493
496
496
505
506
506
506
511
511
531
531
534
550
551
553
571
576
576
595
600
600
615
617
620
633
638
638
654
659
659
672
675
677
695
700
700
707
708
719
724
724
739
741
744
763
768
768
786
791
791
805
808
810
828
833
833
852
857
857
872
874
877
1395
1397
7
9
9
11
11
17
17
18
21
21
27
28
33
34
34
34
35
36
36
37
37
38
38
38
39
40
40
45
45
46
48
49
50
50
54
55
58
58
58
59
60
61
61
61
61
63
63
65
65
67
68
68
71
71
72
73
75
75
76
76
77
77
77
77
78
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
83
83
84
84
85
85
85
85
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
88
88
88
88
88
103
107
107
110
110
111
111
114
115
117
121
123
123
125
125
135
136
137
137
137
137
137
137
138
138
138
138
139
139
139
139
139
139
139
139
139
140
140
142
142
143
143
143
143
143
143
143
143
144
144
144
146
148
148
148
148
156
156
159
159
160
160
160
160
161
161
161
161
162
162
162
164
164
174
174
174
175
175
176
176
176
177
177
177
177
177
180
180
181
183
185
185
185
186
186
187
206
208
208
208
208
209
210
210
210
210
210
210
210
211
211
212
212
212
212
212
212
212
212
212
212
212
212
213
213
214
214
214
214
214
214
215
215
215
216
216
216
216
216
216
216
216
217
217
217
217
217
217
218
218
219
219
223
223
223
223
223
226
230
230
231
231
231
235
238
238
240
240
249
250
251
251
255
255
257
257
265
269
269
273
275
278
291
291
292
295
295
297
297
297
303
305
306
307
307
312
315
318
320
321
322
324
332
332
332
333
334
334
334
339
342
344
344
349
354
359
361
363
364
364
365
365
371
372
372
372
377
381
381
382
382
391
391
393
397
398
399
400
403
409
416
417
417
419
419
421
421
426
427
427
427
436
436
439
444
444
446
446
448
455
455
456
456
456
458
459
466
467
467
468
475
475
477
477
483
484
485
485
485
488
488
494
494
504
504
506
507
512
512
532
532
535
551
552
554
572
577
577
596
601
601
616
618
621
634
639
639
655
660
660
673
676
678
696
701
701
709
720
725
725
740
742
745
764
769
769
787
792
792
806
809
811
829
834
834
853
858
858
873
875
878
1396
1398
10
10
11
17
17
18
18
19
19
19
19
22
22
25
26
28
29
30
34
34
34
34
35
36
36
36
38
39
39
40
41
41
43
43
46
48
50
50
51
51
58
59
60
61
61
61
61
61
64
64
67
67
67
68
68
68
68
72
74
76
76
77
77
78
78
78
79
79
81
81
81
82
82
83
83
83
83
83
84
84
85
85
85
85
85
85
85
85
85
85
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
88
88
88
88
88
88
88
88
88
89
89
89
104
108
108
111
112
115
116
122
126
126
134
135
136
136
136
136
137
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
139
140
140
140
140
140
140
142
142
142
142
142
142
142
142
143
144
144
144
144
144
144
145
145
145
145
147
147
147
147
149
149
149
149
156
157
157
159
160
161
161
161
161
162
162
162
162
162
163
163
165
165
176
176
177
177
177
178
178
181
181
181
182
186
186
186
187
187
188
207
207
207
208
208
208
209
209
209
209
209
210
210
210
210
211
212
212
212
212
212
212
212
212
212
212
213
213
213
213
213
213
213
213
213
213
213
215
215
215
215
215
215
215
215
215
216
216
216
216
216
216
216
217
217
217
217
219
219
220
220
221
221
221
221
224
224
224
224
224
224
227
231
232
232
238
238
239
239
248
250
251
256
256
256
257
257
257
257
258
266
268
270
270
270
276
279
280
280
293
296
296
298
298
298
303
303
306
307
316
319
321
321
322
324
324
325
334
335
335
335
340
345
345
349
349
353
353
353
355
360
364
365
365
370
372
373
373
378
383
392
398
398
399
400
400
401
404
409
417
418
422
422
425
427
428
428
440
445
445
447
457
457
457
457
460
464
467
467
469
476
483
484
485
486
486
489
489
505
508
513
513
533
533
536
552
553
555
573
578
578
597
602
602
617
619
622
635
640
640
656
661
661
674
677
679
697
702
702
710
721
726
726
741
743
746
765
770
770
788
793
793
807
810
812
830
835
835
854
859
859
874
876
879
1397
1399
1
9
9
11
11
17
17
17
19
19
19
23
23
23
26
26
31
34
34
34
35
36
36
36
36
37
38
39
39
40
40
40
40
41
42
42
42
45
45
46
50
52
52
58
58
61
61
62
65
65
65
65
65
65
65
65
68
69
69
69
69
72
73
73
74
74
75
76
78
78
79
79
79
79
79
79
79
82
82
82
83
83
83
83
83
83
83
83
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
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
89
105
109
109
112
112
113
113
115
116
116
117
123
127
127
135
135
136
136
136
136
136
136
137
137
137
137
137
138
138
139
139
139
139
139
139
140
140
140
140
140
140
140
140
141
141
141
141
141
142
142
142
142
142
142
142
142
143
143
143
143
143
143
144
145
145
146
146
146
146
147
148
148
150
150
150
150
156
156
157
158
158
159
160
161
162
162
162
163
163
163
164
164
164
164
166
166
175
177
177
178
178
179
179
179
179
179
179
182
182
182
183
187
187
187
187
188
188
189
189
207
207
208
208
208
209
209
209
209
209
209
209
210
210
210
210
210
210
211
211
212
212
212
212
213
213
213
213
213
213
213
213
213
213
214
214
214
214
214
214
214
214
214
214
214
215
216
216
217
217
217
218
218
220
220
221
221
222
222
225
225
225
225
228
233
233
240
240
249
249
251
251
252
257
257
258
258
259
268
269
277
278
280
281
281
283
294
295
297
297
299
299
304
304
305
305
305
307
317
320
322
325
325
326
333
335
336
336
341
346
346
353
354
354
356
361
361
365
366
366
371
371
379
383
384
391
391
393
398
400
400
401
401
402
405
417
418
419
423
423
426
426
438
441
446
446
446
446
448
458
458
465
467
468
470
475
477
484
484
485
490
490
496
504
504
506
509
514
514
534
534
537
553
554
556
574
579
579
598
603
603
618
620
623
636
641
641
657
662
662
675
678
680
698
703
703
707
722
727
727
742
744
747
766
771
771
789
794
794
808
811
813
831
836
836
855
860
860
875
877
880
1393
1398
1400
5
5
10
10
11
17
20
24
24
28
28
29
32
35
35
35
36
37
37
38
39
40
41
41
41
41
42
42
43
43
43
43
43
46
50
50
52
62
62
62
62
63
65
65
65
65
66
66
66
66
70
70
74
75
75
75
76
76
76
76
77
79
79
79
80
80
80
81
81
81
81
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
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
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
90
106
110
110
116
117
117
118
124
128
128
134
136
136
136
137
137
137
137
137
137
137
137
138
138
139
140
140
140
141
141
141
141
142
142
142
143
143
144
144
144
144
144
144
145
146
146
147
147
147
147
149
149
151
151
151
151
157
157
158
159
159
159
162
163
163
163
164
165
165
167
176
176
177
177
178
179
179
180
180
180
180
181
183
183
183
184
185
188
188
188
188
189
189
190
190
206
207
207
207
207
207
207
207
207
207
207
207
207
207
208
208
209
209
209
209
209
209
209
209
209
209
209
209
210
210
210
210
210
210
210
210
211
211
211
211
211
211
211
211
211
212
212
212
212
212
212
213
214
214
214
214
214
214
214
214
214
214
215
215
215
215
215
215
216
217
217
217
217
217
218
219
219
221
221
221
221
221
221
222
222
223
223
226
226
226
226
229
230
232
234
234
241
241
249
251
252
252
253
257
257
258
258
259
259
269
269
270
270
278
279
279
281
284
295
295
300
300
306
306
306
306
318
321
323
326
326
334
334
342
347
347
349
354
355
355
361
362
362
363
367
367
380
382
382
383
385
391
391
392
392
398
400
401
401
402
402
403
406
417
417
418
419
424
424
438
442
446
446
447
447
447
447
458
466
469
471
475
475
476
486
491
491
496
504
504
505
505
510
515
535
535
538
555
557
575
580
580
599
604
604
621
624
637
642
642
658
663
663
679
681
699
704
704
706
707
708
723
728
728
745
748
767
772
772
790
795
795
812
814
832
837
837
856
861
861
878
881
1394
1396
1399
1401
2
4
5
6
6
9
9
11
17
18
19
19
21
25
25
26
26
29
36
36
38
38
38
40
42
42
42
43
43
44
44
44
45
45
46
52
52
52
61
62
62
63
63
64
65
66
66
67
67
67
67
70
76
76
76
77
79
79
80
81
81
81
82
82
82
82
82
82
82
83
83
83
83
83
83
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
85
85
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
89
89
91
107
108
109
111
111
113
114
117
118
118
119
125
129
129
135
135
136
136
137
137
137
137
137
137
138
138
138
138
138
138
138
139
139
139
139
139
139
139
140
140
141
141
141
141
141
143
143
143
144
144
145
145
145
145
146
147
147
148
148
150
150
152
152
152
152
157
159
159
159
160
160
163
164
164
166
166
168
178
178
178
178
179
182
184
184
184
185
186
189
189
189
189
190
190
191
191
203
205
205
205
206
207
207
207
208
208
208
208
208
208
208
208
208
208
208
208
208
208
208
209
209
209
209
209
209
209
209
209
209
210
210
210
210
210
210
210
210
210
210
210
210
210
210
211
211
211
211
211
211
211
211
211
211
211
212
212
212
212
212
212
213
213
214
214
215
215
215
215
215
215
215
215
215
217
217
217
218
219
220
220
221
221
221
221
222
222
222
222
222
223
223
227
227
227
227
230
230
233
235
235
235
242
249
251
252
253
253
254
258
259
259
271
271
273
277
279
282
285
285
291
295
296
296
301
301
307
307
319
322
324
324
340
343
348
348
355
362
363
363
363
364
368
368
373
381
383
386
393
393
398
398
401
402
402
404
404
407
407
416
417
418
419
420
425
425
428
443
448
448
448
458
467
470
472
474
475
476
477
486
487
492
492
506
506
511
516
536
536
539
556
558
576
581
581
600
605
605
622
625
638
643
643
659
664
664
680
682
700
705
705
707
707
709
724
729
729
746
749
768
773
773
791
796
796
813
815
833
838
838
857
862
862
879
882
1397
1400
1402
2
3
5
5
6
6
7
7
10
10
11
17
19
19
20
20
22
26
26
28
28
29
34
35
36
36
37
37
38
39
39
40
41
43
43
43
44
44
45
45
45
45
46
50
50
52
58
61
61
64
65
67
67
68
68
68
68
68
70
70
73
77
78
78
78
78
78
80
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
83
83
85
85
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
90
90
92
108
112
112
114
115
117
118
119
120
126
130
130
135
135
136
136
136
136
136
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
140
140
140
140
141
141
141
141
141
142
142
142
142
144
147
148
148
149
149
151
151
153
153
153
153
157
159
160
161
161
165
167
169
178
178
178
180
183
185
185
185
186
187
190
190
191
191
192
192
204
206
206
206
207
208
208
208
208
208
209
209
209
209
209
209
209
209
209
209
209
209
209
209
209
210
210
210
210
210
210
210
210
210
210
210
210
210
210
210
211
211
211
211
211
211
211
211
211
211
212
212
212
212
212
212
212
213
213
213
213
213
213
214
214
215
216
219
220
221
221
222
223
223
223
223
223
224
224
228
228
228
228
231
233
233
235
236
236
241
241
243
252
253
255
257
259
260
260
269
270
270
270
272
272
278
280
281
283
286
286
286
286
291
296
297
297
302
302
307
311
320
321
323
325
336
341
344
349
349
353
356
364
364
364
365
369
369
373
382
384
387
389
394
394
399
399
400
400
400
402
403
408
408
417
419
420
421
426
426
428
444
444
447
447
449
449
449
468
471
471
473
473
475
477
478
486
488
493
493
502
507
507
512
514
514
517
537
537
540
557
559
577
582
582
601
606
606
623
626
639
644
644
660
665
681
683
701
706
706
708
708
710
710
725
730
730
747
750
769
774
774
792
797
797
814
816
834
839
839
858
863
863
880
883
1398
1401
1403
3
4
7
7
8
8
9
9
10
11
19
21
21
23
26
26
27
27
29
36
38
38
38
39
39
40
40
41
42
45
45
45
45
46
46
46
46
46
46
46
52
52
52
63
63
64
65
65
65
68
68
69
69
70
71
74
79
79
79
79
79
79
80
81
81
81
82
83
83
83
83
83
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
91
91
93
109
113
113
115
116
118
118
119
119
120
121
127
131
131
134
136
136
136
136
137
137
137
137
137
138
138
139
139
139
139
139
140
140
140
140
140
140
140
142
143
143
143
145
148
149
149
150
150
152
152
154
154
154
154
159
159
160
160
160
161
166
168
170
176
178
179
179
180
180
180
180
180
180
181
186
186
186
187
188
191
191
192
192
193
193
205
207
207
207
208
209
209
209
209
209
209
210
210
210
210
210
210
210
210
210
210
210
210
210
210
210
210
211
211
211
211
211
211
211
211
211
211
211
212
212
212
212
212
212
212
212
212
212
212
212
212
213
213
213
213
213
214
214
214
214
214
216
217
217
220
221
223
224
224
224
224
225
225
225
229
229
229
229
232
237
237
242
242
244
253
256
257
257
258
261
261
269
269
269
270
271
271
271
279
281
281
284
284
286
286
287
287
295
297
298
298
303
303
307
312
312
312
321
322
324
324
324
326
336
342
342
345
349
350
350
353
354
364
365
365
365
370
370
383
385
388
390
395
401
401
401
401
404
408
409
409
417
418
420
422
427
427
445
445
448
450
450
469
474
474
475
476
478
489
494
494
503
508
513
515
518
538
541
553
558
560
578
583
583
602
607
618
622
624
627
640
645
645
661
664
664
666
675
682
684
702
707
707
707
710
710
711
711
726
731
742
746
748
751
770
775
775
793
798
808
815
817
835
840
840
859
864
875
879
881
884
1399
1402
1404
4
5
5
8
8
9
9
10
10
10
11
11
11
11
19
19
21
24
28
28
28
28
29
36
38
38
38
39
40
40
40
41
41
42
43
43
43
46
46
47
47
47
47
47
50
50
52
61
61
64
65
65
65
66
70
70
70
70
71
72
72
72
72
75
76
80
80
80
80
80
81
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
85
85
85
85
85
85
85
85
85
85
86
86
86
86
86
87
87
87
87
87
87
88
88
88
92
94
110
112
112
114
114
119
120
121
122
128
132
132
135
135
136
137
137
137
137
137
137
138
138
138
139
139
139
140
140
140
143
144
144
145
145
145
145
145
145
146
149
150
150
151
151
153
153
155
155
155
155
160
160
161
161
161
161
161
161
162
162
162
169
171
177
177
178
178
180
180
181
181
181
181
182
187
187
187
188
189
192
192
193
193
194
194
203
205
206
206
207
207
208
208
208
208
208
208
209
210
210
210
210
210
210
210
210
211
211
212
212
212
212
212
212
212
212
212
212
212
212
212
212
212
213
213
213
214
214
215
215
215
215
215
215
215
215
215
215
217
218
218
218
221
222
223
225
225
225
226
226
226
230
230
230
230
233
238
238
241
243
243
256
257
257
258
259
262
271
272
272
272
280
282
285
287
288
288
291
296
298
298
299
304
304
313
313
321
325
325
325
327
343
343
343
343
346
349
351
351
354
355
364
365
365
365
366
366
371
371
373
373
381
384
386
389
390
390
394
394
396
402
402
405
409
409
409
410
410
417
418
420
420
421
423
428
428
428
428
436
445
445
446
449
449
449
451
451
457
466
470
475
475
475
476
478
478
479
486
486
490
494
495
495
503
503
507
507
509
514
516
519
537
539
540
542
554
556
559
561
579
584
584
603
608
623
625
628
641
646
646
662
665
667
676
680
683
685
703
708
708
711
712
712
727
732
747
749
752
771
776
776
794
797
797
799
809
813
816
818
836
841
841
860
865
880
882
885
1400
1403
1405
4
4
4
5
5
5
6
6
9
9
10
10
11
12
12
21
21
21
25
26
26
27
27
28
29
29
29
32
37
38
38
40
40
40
40
40
41
42
43
43
44
44
44
47
48
48
48
48
48
52
52
52
62
63
63
64
65
65
65
65
66
66
67
70
70
70
71
71
72
72
77
77
78
78
79
79
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
86
86
87
87
87
88
88
88
89
91
93
93
95
95
111
113
113
115
120
120
121
121
122
123
129
133
133
135
135
135
136
136
137
137
137
138
138
138
138
138
139
139
139
139
139
139
140
145
145
146
146
146
146
147
150
151
151
152
152
154
154
156
156
156
156
162
162
162
162
163
163
163
163
164
168
170
170
172
172
179
179
179
179
183
188
188
188
189
190
193
193
194
194
195
195
203
204
205
205
205
205
206
207
207
208
208
210
210
210
210
210
211
211
211
212
212
212
212
213
213
213
213
213
213
214
214
214
215
215
215
215
215
215
215
215
215
215
218
219
222
224
224
226
226
226
227
227
227
231
231
231
231
234
239
239
241
249
249
257
258
259
260
263
270
272
273
273
281
281
281
283
286
286
286
288
295
297
300
305
305
312
313
313
313
313
314
322
324
326
326
326
326
328
336
336
341
343
343
344
344
347
352
352
353
355
356
366
366
367
367
371
372
372
374
374
382
385
387
390
395
395
397
402
406
410
410
411
411
421
421
422
424
426
429
429
429
429
437
447
450
450
450
452
452
458
458
458
458
467
467
467
471
476
476
479
479
480
484
487
487
491
495
496
496
508
508
510
515
517
520
540
541
543
557
560
562
580
585
585
604
606
606
609
624
626
629
642
647
647
663
666
668
681
684
686
704
709
709
712
728
730
730
733
748
750
753
772
777
777
795
798
800
814
817
819
837
842
842
861
863
863
866
881
883
886
1401
1404
1406
1
1
5
5
5
6
6
7
7
11
11
13
13
19
19
21
26
28
28
28
28
28
29
29
29
29
30
38
38
38
40
41
43
43
44
45
45
48
48
49
49
49
50
50
52
52
52
52
61
61
62
64
66
67
68
70
72
72
76
76
78
79
81
81
81
81
81
81
81
81
81
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
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
86
86
86
86
86
88
88
88
88
90
92
94
94
96
96
112
114
114
116
121
122
122
123
123
124
130
134
134
135
136
136
137
137
137
138
138
138
139
139
139
139
139
139
139
139
139
139
139
140
140
140
148
151
152
152
153
153
155
155
157
157
157
157
157
157
163
163
164
164
165
169
171
171
173
173
179
179
179
184
189
189
189
190
191
194
194
195
195
196
196
204
205
205
206
206
206
206
206
206
206
207
207
207
207
207
208
208
208
208
208
208
208
208
208
209
209
209
210
210
210
211
211
211
212
212
212
212
212
212
212
214
215
215
215
215
215
215
217
217
217
219
219
220
220
223
224
225
225
227
227
227
228
228
228
232
232
232
232
233
235
240
240
241
242
250
250
251
251
251
257
258
259
260
261
261
264
271
271
279
282
282
282
284
284
287
287
287
296
296
298
298
301
306
306
306
314
314
315
320
324
325
327
329
334
337
337
344
345
345
348
353
353
354
356
367
367
368
372
372
373
373
383
383
386
388
391
394
396
396
402
407
409
410
410
410
410
411
412
412
422
422
425
427
427
430
430
438
438
448
449
451
451
451
453
459
459
468
468
472
477
477
480
480
485
485
492
496
496
497
497
507
509
509
516
518
521
541
542
544
558
561
563
581
586
586
605
607
610
625
627
630
643
648
648
664
667
669
682
685
687
705
710
710
729
731
734
749
751
754
773
778
778
796
799
801
815
818
820
838
843
843
862
864
867
882
884
887
1402
1405
1407
1
1
1
7
8
8
8
8
8
8
9
12
12
13
21
21
21
26
26
27
29
29
29
30
30
31
39
41
42
43
44
45
45
46
46
46
48
48
48
49
49
50
50
50
52
52
52
52
53
53
63
63
64
67
68
69
70
71
71
71
72
72
73
73
79
79
79
79
79
79
79
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
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
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
86
86
87
87
87
87
87
88
91
93
95
95
97
97
113
115
117
123
124
124
125
131
133
133
133
133
135
135
136
136
136
136
137
137
137
139
139
139
139
140
140
140
140
140
140
144
144
144
149
152
153
153
154
154
156
156
158
158
158
158
158
158
159
159
159
163
164
166
170
172
172
174
174
177
179
180
180
181
181
185
190
190
190
191
192
195
195
196
196
197
197
204
204
205
205
205
205
205
205
205
205
205
206
206
206
206
206
207
207
207
207
207
207
207
207
207
207
207
207
207
208
208
208
208
208
208
208
208
208
208
208
208
209
209
209
209
209
209
209
209
209
210
210
210
210
210
211
212
212
212
212
212
212
212
215
215
215
215
216
221
221
224
224
226
228
228
228
229
229
229
230
230
233
233
233
233
233
236
241
241
242
243
252
252
252
252
257
258
260
260
260
261
262
265
280
280
283
286
286
288
288
288
296
298
299
299
302
307
307
307
307
307
307
313
313
315
315
321
325
325
325
326
326
328
330
335
335
343
343
345
349
354
354
354
354
356
356
356
357
365
369
374
374
384
384
384
384
387
389
392
394
408
411
411
412
413
413
420
426
431
431
439
439
439
439
449
449
452
454
459
467
468
468
468
468
469
473
478
478
478
493
497
497
497
497
498
498
507
517
519
522
542
543
545
559
562
564
582
587
587
606
608
611
626
628
631
644
649
649
665
668
670
683
686
688
706
707
707
710
711
711
730
732
735
750
752
755
774
779
779
797
800
802
816
819
821
839
844
844
863
865
868
883
885
888
1403
1406
1407
1408
5
5
8
9
9
9
9
9
13
13
13
13
19
19
21
21
21
21
28
30
31
31
32
40
41
41
42
43
43
43
45
47
48
49
49
50
50
50
51
51
51
54
54
61
61
63
64
68
70
70
72
72
72
72
73
73
74
78
78
79
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
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
85
85
85
85
85
85
86
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
94
98
98
114
115
116
116
118
120
121
124
125
125
126
132
134
134
134
134
134
135
136
136
136
136
136
136
137
137
137
137
137
137
137
138
144
145
145
146
146
146
146
146
146
150
153
154
154
155
155
157
157
159
159
159
159
160
160
160
160
163
163
163
164
164
164
171
175
175
178
178
181
181
181
181
181
181
186
191
191
191
192
193
196
196
197
197
198
198
201
203
203
203
205
205
205
205
205
205
206
206
206
206
206
206
206
206
206
206
206
206
206
206
207
207
207
207
207
208
208
208
208
208
208
208
208
208
208
208
208
208
208
208
209
209
209
209
209
209
209
209
209
209
210
210
210
210
210
210
210
210
210
210
210
210
211
213
213
215
215
215
217
217
222
222
225
227
229
229
229
230
230
230
231
231
231
231
234
234
237
241
242
242
243
244
253
253
261
261
261
262
263
266
273
284
286
286
287
287
289
289
296
298
299
300
300
303
308
308
308
308
314
326
327
327
329
331
344
350
355
355
357
357
358
364
370
374
375
375
382
384
384
385
385
390
390
393
394
395
409
410
410
412
412
414
414
417
427
429
432
432
437
439
439
440
440
445
449
450
450
453
455
459
469
469
470
474
475
479
479
487
494
495
497
497
498
498
499
499
503
507
508
518
520
523
543
544
546
560
563
563
565
565
583
588
588
607
609
612
627
629
629
632
632
645
650
650
666
669
671
684
687
687
689
689
707
708
710
711
712
712
731
733
736
751
753
753
756
756
775
780
780
798
801
803
817
820
820
822
822
840
845
845
864
866
869
884
886
886
889
889
1404
1406
1408
1409
4
4
5
5
5
9
9
9
9
10
10
10
10
10
10
13
13
13
14
14
14
21
21
21
21
22
22
26
29
31
31
33
38
40
40
41
42
42
46
46
47
48
48
48
49
50
50
50
50
50
50
50
51
51
52
52
52
54
55
63
63
63
64
64
64
64
71
72
73
73
74
74
75
75
78
78
78
78
79
79
79
79
80
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
84
84
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
86
87
87
87
88
88
88
88
88
88
88
88
88
89
89
95
99
99
117
119
121
122
126
127
133
135
135
135
136
136
137
137
137
137
137
137
137
137
137
137
138
138
138
138
138
138
139
139
139
146
146
147
147
147
147
151
154
155
155
156
156
158
158
160
160
160
160
161
161
164
164
165
165
172
176
176
179
179
182
182
182
182
182
182
182
182
187
192
192
192
193
194
197
198
199
199
201
202
203
203
204
204
204
205
205
205
205
206
206
206
206
206
206
207
207
207
207
207
207
207
207
207
207
207
207
208
208
208
208
208
208
208
208
209
209
209
209
209
209
209
209
209
209
209
209
209
209
210
210
210
210
210
210
210
210
210
210
210
210
210
210
211
211
211
211
211
211
211
211
211
211
218
223
223
224
224
225
226
228
230
230
230
231
231
231
231
232
232
233
235
235
238
242
243
243
244
244
253
262
262
262
264
267
273
282
285
288
288
290
290
296
296
299
300
304
308
309
309
313
315
325
326
326
326
327
328
328
330
332
337
343
343
345
351
354
356
356
356
358
358
364
365
365
365
371
374
376
376
385
386
386
390
391
394
395
396
401
410
411
415
415
417
418
420
420
428
429
433
433
440
441
441
445
450
451
451
454
456
468
468
470
470
475
475
476
478
478
480
480
487
495
498
499
499
500
500
503
508
509
519
521
524
544
545
547
561
566
566
584
589
589
608
610
613
628
633
633
646
651
651
667
670
672
685
690
690
708
711
712
713
713
732
734
737
752
757
757
776
781
781
799
802
804
818
823
823
841
846
846
865
867
870
885
890
890
1405
1409
1410
5
5
6
10
10
11
11
11
13
13
14
14
14
15
15
15
15
15
15
19
23
23
26
31
31
31
31
32
34
42
42
43
43
43
43
46
47
47
48
48
48
48
49
50
50
50
50
50
51
51
51
52
53
53
55
61
61
64
65
65
72
72
72
74
74
76
78
78
78
78
78
78
78
79
79
81
81
81
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
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
88
88
88
88
88
88
88
88
89
89
90
90
96
100
100
112
116
118
118
120
120
122
123
124
124
125
125
127
128
132
134
134
134
135
135
136
136
137
137
137
138
138
138
139
139
139
139
140
140
140
140
152
155
156
156
157
157
157
157
159
159
161
161
161
161
161
162
163
164
164
164
164
165
165
165
165
165
166
173
177
177
180
180
180
182
182
182
182
183
183
183
183
188
193
193
193
194
195
196
196
197
197
198
199
199
199
200
200
201
201
201
201
201
201
202
203
204
204
205
205
205
206
206
206
206
206
207
207
207
207
207
207
207
207
208
208
208
208
208
208
208
208
208
208
208
208
208
209
209
209
209
209
209
209
209
209
210
210
210
210
210
210
210
210
210
210
210
210
210
211
211
211
211
211
211
212
212
218
219
224
224
225
225
227
228
231
231
232
232
232
233
233
233
233
233
233
236
236
239
241
243
244
244
253
260
263
265
268
282
284
286
289
289
291
291
297
297
298
298
298
300
305
308
310
310
313
313
314
325
325
325
326
327
327
327
328
331
333
337
343
343
344
344
352
357
357
357
364
366
366
372
377
377
384
384
386
392
394
395
396
397
402
402
402
402
410
411
412
416
416
417
421
421
429
434
434
439
439
441
449
451
452
455
457
469
475
476
479
479
481
481
496
497
497
499
501
501
507
509
510
522
525
545
546
548
562
567
567
585
590
590
609
611
614
629
634
634
647
652
652
668
671
673
686
691
691
709
712
714
714
733
735
738
753
758
758
777
782
782
800
803
805
819
824
824
842
847
847
866
868
871
886
891
891
1406
1410
1411
4
5
6
6
7
9
11
11
11
11
12
12
12
13
13
13
15
15
15
15
16
16
23
24
26
26
26
27
31
31
31
32
33
33
35
35
40
40
43
47
48
48
48
49
50
50
51
51
52
52
52
52
53
54
54
55
55
56
62
63
66
66
71
73
74
74
74
75
75
77
78
78
78
81
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
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
88
88
88
88
88
89
89
91
91
97
101
101
113
117
119
119
121
121
125
126
128
129
132
133
134
135
135
135
136
136
137
137
137
137
138
139
140
140
145
145
145
153
156
157
157
158
158
158
158
160
161
161
161
162
162
162
162
163
164
165
165
166
166
166
167
174
178
178
180
180
180
182
182
183
183
184
184
184
184
189
194
194
194
195
196
197
198
199
200
200
200
200
201
201
202
202
202
202
202
202
203
204
204
205
205
205
205
205
205
205
205
205
205
206
206
206
206
206
206
206
207
207
207
207
207
208
208
208
208
208
208
208
208
208
209
209
209
209
210
210
210
210
210
210
211
211
211
211
211
211
211
213
213
213
214
214
214
214
219
219
220
225
225
228
230
231
231
232
232
233
233
234
234
237
237
240
242
242
244
244
245
245
257
264
266
269
273
273
285
287
290
292
292
299
299
299
299
306
311
311
312
313
314
315
327
328
328
328
329
332
332
334
334
345
345
353
354
358
358
358
365
365
367
367
367
373
374
374
378
378
385
387
390
391
393
395
396
397
397
403
403
410
410
411
412
417
417
418
420
422
422
422
429
429
430
435
435
440
445
450
452
452
456
458
458
468
470
476
477
478
480
480
480
482
482
487
487
497
498
502
502
503
508
510
510
519
523
523
526
546
547
549
563
568
568
586
591
591
610
612
615
630
635
635
648
653
653
672
674
687
692
692
707
710
712
715
715
734
736
739
754
759
759
778
783
783
801
804
806
820
825
825
843
848
848
867
869
872
887
892
892
1407
1411
1412
5
7
8
8
8
12
12
12
13
13
13
13
15
15
17
17
19
19
24
28
32
32
33
33
34
34
36
36
39
42
42
43
44
48
48
49
49
50
50
50
51
52
53
53
54
54
54
54
55
55
56
57
57
61
61
62
62
63
63
64
66
72
72
72
74
74
74
74
76
76
78
80
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
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
85
85
85
85
85
85
85
87
87
87
87
88
88
88
88
88
90
90
92
92
98
102
102
114
118
120
120
122
122
126
127
129
129
130
130
133
133
133
134
135
135
136
136
137
137
137
138
138
138
140
145
146
146
147
147
154
157
158
158
159
159
159
159
161
162
162
163
163
163
163
164
164
164
165
165
165
166
166
167
167
175
178
179
179
181
181
181
181
182
182
182
182
182
182
183
183
184
184
190
195
195
196
197
198
199
200
201
201
201
201
202
203
203
203
203
203
203
203
203
204
204
204
204
206
206
206
206
206
206
206
206
206
206
207
208
208
208
208
208
208
208
208
209
209
209
209
209
210
210
210
211
211
211
211
211
211
211
211
211
211
211
212
212
212
212
213
215
215
221
226
226
229
230
232
233
233
234
235
235
238
238
241
242
244
245
245
246
246
257
258
260
260
265
267
270
271
274
274
285
285
288
289
289
291
293
293
300
300
307
312
312
313
315
316
326
328
329
329
330
335
335
337
337
341
346
346
354
354
355
356
359
359
365
366
372
374
375
375
379
379
384
384
386
392
394
394
396
397
403
409
410
411
412
413
418
418
420
421
427
430
430
431
436
436
439
439
441
449
451
457
459
459
459
459
459
468
468
469
478
478
479
483
483
485
488
488
497
497
498
499
503
503
507
509
524
524
527
548
550
564
569
569
587
592
592
611
613
616
631
636
636
649
654
654
673
675
688
693
693
708
710
711
716
716
735
737
740
755
760
760
779
784
784
805
807
821
826
826
844
849
849
868
870
873
888
893
893
1408
1412
1413
4
5
5
9
13
13
13
13
14
14
14
14
15
15
16
16
16
16
18
18
19
24
24
25
29
31
33
33
35
35
37
37
40
40
43
45
48
48
50
50
50
51
51
52
53
53
54
54
54
54
55
55
56
56
57
57
57
57
57
61
61
61
62
62
63
63
64
64
65
66
66
73
74
74
74
74
75
75
77
77
79
79
79
79
79
80
80
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
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
85
85
85
85
85
85
85
85
85
85
85
87
88
88
88
88
88
88
88
88
89
90
90
93
93
99
103
103
119
123
123
126
127
130
130
131
131
133
133
133
134
134
135
136
136
136
136
137
138
139
139
139
139
141
141
147
147
147
147
147
147
155
158
159
159
160
160
160
160
162
162
162
162
162
163
163
163
164
164
164
164
164
165
165
165
166
166
176
178
178
179
180
180
180
180
181
181
182
182
183
183
184
184
191
194
194
196
196
197
198
199
200
201
202
202
202
203
203
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
205
205
206
206
206
206
206
206
206
207
207
207
207
207
207
207
207
208
208
208
208
209
209
209
209
209
209
210
210
210
210
210
210
211
211
211
212
213
213
213
213
214
214
214
214
216
216
221
222
225
227
227
230
231
231
232
232
233
234
234
235
236
236
239
239
242
242
244
245
246
246
247
247
257
261
261
266
268
271
272
272
289
290
290
292
294
294
300
307
308
313
313
313
314
316
327
327
331
335
336
336
338
338
342
347
355
355
356
356
357
360
360
366
366
367
367
373
373
375
380
384
384
385
385
393
395
395
395
397
397
398
403
410
412
413
414
419
419
421
421
422
422
428
428
432
437
437
439
439
440
440
450
450
451
452
452
458
460
460
460
467
468
469
470
479
479
479
480
480
484
484
486
486
497
497
498
498
499
504
504
508
508
510
510
525
525
528
549
551
565
570
570
588
593
593
614
617
632
637
637
650
655
655
674
676
689
694
694
710
711
712
717
717
738
741
756
761
761
780
785
785
806
808
822
827
827
845
850
850
871
874
889
894
894
1409
1413
1414
5
5
5
7
9
10
13
14
15
15
15
15
15
16
16
17
17
19
19
19
23
23
23
25
26
26
31
31
31
33
33
33
34
38
38
42
42
43
46
49
49
50
51
52
52
54
54
54
55
55
55
56
56
57
57
57
58
61
61
61
61
62
63
64
64
65
65
65
66
66
67
72
76
76
78
78
78
78
79
79
79
80
80
81
81
81
81
81
81
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
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
84
84
84
84
84
84
84
85
85
85
85
85
88
90
91
91
94
94
100
104
104
120
124
124
129
129
131
131
132
132
134
134
134
135
135
135
136
137
137
137
137
138
139
140
140
140
140
142
142
148
148
148
148
148
148
148
148
156
159
160
160
161
161
161
161
163
163
163
164
164
164
165
165
165
165
166
166
167
167
177
179
179
180
180
181
181
182
182
182
183
183
184
184
185
185
192
195
197
197
198
199
200
201
201
201
202
203
203
203
203
203
204
204
204
204
204
205
205
205
205
205
205
205
205
205
205
205
205
205
206
206
206
206
206
206
206
206
207
207
207
207
207
207
207
208
208
208
208
208
208
208
208
208
208
208
209
210
210
210
210
210
211
211
211
213
213
213
214
214
214
214
214
214
215
215
215
215
220
221
222
223
225
228
228
231
231
231
232
232
233
235
235
236
237
237
240
240
243
245
246
248
248
258
260
262
262
262
269
272
280
289
290
291
291
295
295
300
308
308
308
308
309
313
314
314
316
316
317
332
336
336
337
337
342
342
346
346
346
348
356
357
357
358
361
361
368
368
376
381
386
386
394
395
396
397
398
398
399
410
411
413
415
420
420
423
423
433
438
438
441
441
450
452
452
453
453
456
459
460
461
468
470
471
480
481
481
485
485
499
499
500
505
505
508
510
511
511
526
526
529
550
552
566
571
571
589
594
594
615
618
633
638
638
651
656
656
668
675
677
690
695
695
711
712
713
718
718
739
742
757
762
762
781
786
786
807
809
823
828
828
846
851
851
872
875
890
895
895
1410
1414
1415
5
5
7
10
11
14
15
16
16
16
17
17
18
18
18
18
20
20
23
24
26
26
26
26
26
31
32
33
33
33
34
35
39
39
40
40
42
43
50
50
50
50
52
52
54
56
56
56
57
57
58
58
58
58
59
61
64
65
65
65
66
66
66
66
66
67
68
68
68
68
76
77
77
78
78
78
78
78
79
79
79
79
79
79
79
79
80
80
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
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
87
87
87
89
91
92
92
92
92
94
94
95
95
101
105
105
121
125
125
129
130
130
130
130
130
132
132
132
133
133
133
133
134
134
134
134
135
135
135
135
136
136
136
139
141
141
141
141
143
143
146
148
148
148
148
149
149
149
149
157
161
161
162
162
162
162
162
162
163
163
163
163
164
164
164
164
164
165
165
165
165
166
166
166
166
167
168
178
180
180
181
181
181
181
181
182
182
182
182
183
183
183
186
186
193
196
198
200
201
202
202
202
203
203
203
203
203
203
204
204
204
205
205
205
205
205
206
206
206
206
206
206
206
206
206
206
206
206
206
206
206
206
207
207
207
207
207
207
207
207
208
208
208
208
208
208
208
208
209
209
211
211
211
213
213
214
215
216
216
216
217
217
221
222
223
224
229
229
232
233
233
234
237
238
238
241
241
244
246
249
249
252
260
261
270
273
274
281
289
291
296
296
309
309
310
313
313
315
317
317
318
329
333
338
338
346
347
347
349
357
357
358
358
362
362
366
367
367
367
369
369
375
377
379
379
382
382
387
387
395
395
397
397
398
399
399
400
410
411
413
413
414
416
421
421
421
422
422
422
424
424
430
434
437
439
439
442
442
450
452
453
454
454
457
460
460
462
468
469
471
479
480
480
480
481
482
482
486
486
488
495
500
500
501
506
506
508
510
511
512
512
527
527
530
546
551
553
567
572
572
590
595
595
616
619
634
639
639
652
657
657
669
673
676
678
691
696
696
711
712
713
714
719
719
740
743
758
763
763
782
787
787
801
808
810
824
829
829
847
852
852
873
876
891
896
896
1411
1415
1416
1
5
5
7
11
12
15
15
15
15
17
17
17
17
19
19
20
20
21
21
23
23
26
27
33
34
35
36
40
40
42
42
42
43
43
43
43
48
49
51
51
51
52
52
52
53
53
54
55
57
57
57
57
58
58
59
59
59
59
60
61
65
66
66
66
66
66
68
68
72
72
77
78
78
78
78
78
78
78
78
79
79
79
79
79
79
79
80
80
80
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
83
83
83
83
83
83
84
85
85
85
86
86
86
87
88
88
88
89
92
95
95
96
96
102
106
106
122
122
123
126
126
127
128
130
130
131
131
131
132
132
133
133
133
134
134
134
135
135
135
135
137
137
140
144
144
146
146
146
148
148
149
149
150
150
150
150
157
158
161
161
161
162
162
162
163
163
163
163
163
164
164
164
165
165
165
165
166
166
167
167
167
167
167
168
168
168
169
179
179
181
181
181
181
181
182
183
183
184
184
185
185
185
185
187
187
194
197
199
199
199
199
200
200
201
201
201
201
201
202
202
202
203
203
203
204
204
204
204
204
204
205
205
205
206
206
206
206
206
206
206
207
207
207
207
207
207
207
207
207
207
207
207
207
207
208
208
208
208
208
208
208
208
208
208
209
209
209
209
209
209
209
209
210
211
211
215
216
217
217
222
223
224
225
225
225
225
230
230
233
234
234
235
238
239
239
242
242
245
250
250
253
253
253
261
261
262
262
271
274
274
282
282
285
289
290
292
297
297
309
311
314
316
318
318
329
334
338
339
339
342
347
348
348
357
358
358
358
358
359
363
363
366
366
366
367
368
368
368
375
378
380
383
383
388
395
395
396
398
398
398
399
401
401
414
414
415
417
421
421
421
422
422
422
423
423
423
430
435
438
440
440
443
450
450
453
454
458
461
463
468
469
471
471
472
479
479
479
480
481
481
481
482
487
487
488
496
501
502
507
507
508
508
511
512
528
528
531
547
549
552
554
568
573
573
591
596
596
611
615
617
620
635
640
640
653
658
658
674
677
679
692
697
697
711
712
713
714
715
720
720
735
739
741
744
759
764
764
783
788
788
802
806
809
811
825
830
830
848
853
853
868
872
874
877
892
897
897
1412
1416
1417
1
1
5
5
7
13
16
17
17
17
18
18
18
21
21
22
22
27
28
35
35
37
40
40
41
41
43
44
44
50
50
52
52
52
53
54
54
54
55
56
57
57
58
58
59
60
60
60
66
66
72
77
77
78
78
78
78
78
78
79
79
79
79
79
79
79
79
80
80
80
81
81
81
81
81
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
84
85
85
85
85
85
85
86
86
88
88
90
90
90
92
92
93
96
96
97
97
103
105
105
107
107
123
127
127
128
128
129
132
132
133
134
134
135
136
136
137
137
139
141
145
145
147
147
147
147
148
148
148
148
148
148
149
149
150
150
158
159
162
162
162
163
163
164
164
164
164
164
165
165
166
166
167
168
168
168
168
168
169
169
169
170
179
180
181
182
183
184
184
185
185
186
186
186
186
188
188
195
198
199
199
200
200
200
200
201
201
201
201
201
201
201
201
201
201
202
202
202
202
202
202
202
202
203
203
203
204
204
204
204
204
205
205
205
205
205
205
206
206
206
207
207
207
207
207
207
207
208
208
208
208
208
208
208
208
208
208
208
208
208
208
208
208
209
209
209
209
209
209
211
211
211
211
219
223
224
225
226
226
226
226
231
231
234
235
236
239
240
240
242
242
243
243
246
251
251
254
254
263
263
266
270
272
275
283
283
283
283
285
290
291
293
298
298
299
309
312
315
316
317
335
338
340
340
348
359
359
359
360
364
364
368
369
369
369
379
381
383
383
384
387
387
389
396
396
397
397
397
397
399
402
402
415
415
418
423
423
423
424
424
424
436
438
438
441
441
442
442
444
451
451
452
452
452
454
459
462
464
472
472
473
481
482
482
482
483
488
488
496
496
500
500
502
503
508
508
509
509
510
510
510
512
529
529
532
550
553
555
569
574
574
592
597
597
616
618
621
636
641
641
654
659
675
678
680
693
698
698
711
712
712
713
714
716
721
721
740
742
745
760
765
765
784
789
789
807
810
812
826
831
831
849
854
854
873
875
878
893
898
898
1413
1417
1418
5
5
7
13
13
14
15
15
17
17
17
18
18
19
19
19
22
22
23
23
26
28
29
33
33
35
38
42
42
45
45
52
52
52
54
55
55
56
57
59
59
60
60
61
61
61
66
67
68
68
76
76
78
78
78
78
78
79
79
80
80
80
80
80
81
82
82
82
82
82
82
83
83
83
83
83
83
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
86
86
86
86
86
87
88
88
91
91
93
93
93
94
96
96
98
98
104
106
106
108
124
127
128
128
129
129
129
130
132
133
133
133
133
134
135
135
136
140
141
141
142
146
146
147
147
148
148
149
149
150
150
159
160
162
162
162
162
163
163
163
164
164
165
165
165
165
166
166
167
167
169
169
169
169
170
170
180
181
182
183
185
185
187
187
187
187
197
198
199
199
200
200
201
201
201
201
201
201
201
201
202
202
202
202
202
202
202
202
202
202
203
203
203
203
203
203
203
203
204
204
204
204
204
205
205
206
206
206
206
206
206
206
206
206
206
206
207
207
207
208
208
208
208
208
208
208
208
209
209
209
210
210
210
211
220
220
224
225
226
226
226
227
232
232
234
234
235
235
236
237
239
239
240
241
241
243
243
244
244
244
244
244
247
252
252
253
254
254
254
254
255
261
262
262
262
264
264
271
273
274
274
276
281
283
283
284
284
289
291
292
294
299
299
300
300
300
300
313
313
316
318
329
329
336
341
341
346
349
360
360
360
365
365
367
369
370
370
380
382
385
388
388
390
398
398
398
398
398
402
403
403
413
419
422
424
424
424
425
425
437
442
442
443
443
445
453
453
453
453
460
463
463
465
465
473
473
480
482
483
483
484
489
489
501
501
503
504
509
509
511
511
511
511
530
530
533
551
554
556
570
575
575
593
598
598
617
619
622
637
642
642
655
658
658
660
676
679
681
694
699
699
711
712
713
713
714
717
722
722
741
743
746
761
766
766
785
790
790
808
811
813
827
832
832
850
855
855
874
876
879
894
899
899
1414
1418
1419
5
5
5
7
15
17
17
17
18
19
19
19
20
20
20
23
24
24
26
26
33
35
35
36
39
40
43
43
45
46
50
50
51
52
55
56
57
57
57
57
58
58
58
60
61
62
62
62
66
68
68
69
69
72
76
78
78
78
78
78
78
79
79
79
79
79
79
80
80
80
80
80
81
81
81
81
82
82
82
82
82
82
82
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
86
86
87
87
88
88
94
94
94
95
97
97
97
97
99
99
105
107
107
109
125
128
128
129
129
129
129
130
130
131
131
133
134
134
134
135
136
136
136
137
141
141
143
147
147
147
148
148
148
149
149
150
150
151
151
161
162
163
163
164
164
164
165
165
165
165
165
166
166
167
167
168
168
170
170
180
180
183
184
184
184
184
185
185
185
185
186
186
186
198
199
199
199
199
199
199
200
200
201
201
201
202
202
202
202
202
202
202
202
202
203
203
203
203
203
203
203
203
203
203
203
204
204
204
204
204
204
204
204
205
205
205
205
206
206
206
206
206
207
207
207
207
207
208
208
208
208
209
209
209
209
209
209
209
211
217
225
226
228
233
233
235
235
237
238
240
240
241
242
242
245
245
245
245
245
245
248
253
253
255
255
256
261
261
261
262
263
263
263
272
272
274
275
275
277
284
285
285
285
290
292
292
295
300
300
301
301
313
314
314
316
316
317
319
327
330
330
337
342
342
342
346
347
358
361
366
366
368
368
381
383
386
387
389
389
399
399
399
403
403
403
404
404
410
420
423
423
425
425
438
442
443
443
444
444
454
454
461
466
466
471
481
481
485
490
490
500
502
502
505
510
510
512
512
531
534
552
555
557
571
576
576
594
599
618
620
623
638
643
643
656
659
661
677
680
680
682
682
695
700
700
711
713
714
714
718
723
742
744
747
762
767
767
786
791
809
812
814
828
833
833
851
856
875
877
880
895
900
900
1415
1419
1420
5
5
5
6
7
7
7
15
15
16
17
17
17
17
20
20
20
21
21
21
25
25
28
28
29
33
35
35
35
36
37
37
40
40
44
44
45
45
52
52
52
52
57
58
59
59
59
59
60
62
63
63
63
68
70
70
76
76
76
77
78
78
78
78
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
80
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
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
86
88
88
88
89
91
95
96
98
98
100
100
106
108
110
126
129
129
130
130
130
130
130
130
131
132
132
133
133
133
134
134
135
135
135
136
136
136
137
137
138
142
142
144
147
147
147
148
148
148
148
148
149
149
149
152
152
162
164
164
165
165
165
165
166
166
166
167
167
167
168
168
168
169
169
171
171
178
181
181
181
181
182
184
185
185
185
185
185
185
186
186
186
186
187
187
187
196
198
199
199
200
200
200
200
200
200
201
201
201
201
201
201
201
201
201
202
202
202
202
202
202
202
202
203
203
203
203
203
203
203
203
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
205
205
205
205
206
206
206
206
206
207
207
207
207
208
208
208
208
208
208
208
209
209
209
209
209
209
210
210
217
225
226
229
234
234
234
236
236
239
241
241
242
243
243
243
243
246
246
246
246
246
246
249
254
254
254
254
256
256
263
264
264
264
273
273
273
275
278
283
283
285
289
291
296
301
301
301
313
315
317
317
318
320
328
328
338
342
343
343
347
348
357
362
367
367
373
382
384
387
387
399
400
404
404
405
405
410
411
413
413
421
426
426
428
439
442
444
444
454
459
462
467
467
468
486
486
491
491
500
506
511
512
530
532
533
535
553
556
556
558
558
572
577
577
595
600
619
621
624
639
644
644
657
660
662
678
683
683
696
701
701
712
714
715
719
724
743
745
748
763
768
768
787
790
790
792
810
813
813
815
815
829
834
834
852
857
876
878
881
896
901
901
1416
1420
1421
5
5
7
8
8
11
17
17
17
17
17
17
18
18
20
20
21
22
22
22
22
22
22
22
26
26
26
26
29
35
35
37
37
37
37
37
40
40
41
43
43
45
45
45
46
50
50
52
52
52
52
53
57
57
58
59
59
60
60
60
60
62
63
63
64
64
64
68
68
70
78
78
78
78
78
79
80
80
80
80
80
80
80
80
80
81
81
81
81
81
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
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
87
87
92
95
97
99
99
99
99
101
101
107
109
111
127
129
130
130
130
130
130
131
131
131
131
131
131
131
132
132
132
133
133
133
134
134
134
135
135
135
136
137
137
138
138
138
138
139
139
140
142
142
142
142
145
148
149
149
149
150
150
151
151
151
151
153
153
163
164
165
165
165
166
166
167
167
167
167
167
168
168
168
168
168
169
169
169
170
170
172
172
179
181
181
183
185
185
185
185
186
186
186
186
186
186
187
187
187
187
188
188
195
197
197
198
198
199
199
200
200
200
200
200
201
201
201
201
201
201
202
202
202
202
202
202
202
202
202
202
202
202
202
202
202
202
202
203
203
203
203
203
203
203
203
204
204
204
204
204
204
204
204
204
204
204
204
204
204
205
205
205
205
205
205
205
205
205
205
205
206
206
206
207
208
208
208
209
209
209
209
209
210
210
210
211
226
226
230
234
234
235
235
238
240
242
242
243
246
247
247
247
247
250
255
255
255
262
264
265
265
274
276
279
284
290
290
292
292
297
301
302
302
314
316
316
318
318
318
319
321
336
339
344
344
346
348
349
357
358
358
358
363
368
368
370
374
383
383
385
387
388
388
399
401
403
404
404
404
404
405
406
406
410
414
414
422
425
427
427
429
438
440
442
443
445
454
460
460
460
463
468
468
468
469
471
471
483
487
487
492
492
496
500
501
507
512
512
533
534
536
554
559
559
573
578
578
596
598
598
601
620
622
622
625
625
640
645
645
658
661
663
679
684
684
697
702
702
713
715
720
722
722
725
744
746
746
749
749
764
769
769
788
791
793
811
816
816
830
835
835
853
855
855
858
877
879
879
882
882
897
902
902
1417
1421
1422
9
9
15
18
18
19
19
21
21
23
23
23
23
27
27
28
28
29
35
35
37
38
42
44
44
45
45
46
46
47
47
47
47
52
52
52
52
53
53
55
55
59
59
59
60
61
62
63
63
64
64
65
65
65
70
70
70
78
78
78
78
79
79
79
79
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
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
84
84
84
84
84
85
85
85
85
85
85
85
86
86
87
88
88
93
96
96
98
100
100
101
101
102
102
110
112
128
128
129
130
130
130
130
130
131
131
132
132
132
132
132
132
132
133
133
133
134
139
139
140
140
140
146
147
149
150
150
150
151
151
152
152
152
152
154
154
162
164
166
167
167
168
168
168
168
168
169
169
169
169
169
169
169
170
170
170
170
171
171
173
173
180
184
184
184
186
186
186
186
187
187
188
188
188
188
188
188
189
189
196
198
198
199
199
200
200
200
201
201
201
201
201
201
201
201
202
202
202
202
202
202
202
202
202
202
202
203
203
203
203
203
203
203
203
203
203
203
203
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
205
205
205
205
205
205
205
205
205
205
205
205
206
206
206
206
206
206
206
206
206
206
207
207
207
209
210
210
211
211
211
211
212
212
217
217
226
226
231
234
235
236
236
239
241
243
243
244
246
248
248
248
248
251
254
256
256
256
263
263
275
275
277
277
280
280
283
283
285
290
292
293
293
298
303
303
308
316
317
317
320
322
330
337
340
345
345
347
349
357
359
359
364
369
369
370
375
375
383
384
386
388
389
389
402
405
405
406
407
407
411
413
415
415
415
423
425
428
428
430
430
438
441
443
444
444
444
446
461
461
464
468
469
469
472
472
483
488
488
488
493
493
496
501
502
508
510
510
513
534
535
537
555
560
560
574
579
579
597
599
602
621
626
626
641
646
646
659
662
664
680
685
685
698
703
703
713
721
723
726
745
750
750
765
770
770
789
792
794
812
817
817
831
836
836
854
856
859
878
883
883
898
903
903
1418
1422
1423
5
9
19
19
19
20
22
22
24
24
24
24
24
24
26
26
27
27
28
28
29
38
39
40
43
45
45
45
45
45
47
47
47
50
54
54
55
56
56
57
57
59
60
60
60
61
61
62
62
62
63
63
64
64
65
65
66
66
66
68
68
70
70
70
70
74
74
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
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
84
84
84
84
84
84
84
85
85
85
86
87
87
88
89
89
97
99
102
102
103
103
105
109
111
111
113
113
128
129
129
129
129
130
130
130
131
131
131
131
132
132
132
133
133
133
134
135
135
135
135
135
136
136
136
136
136
140
140
141
141
141
147
147
148
151
151
151
153
153
153
153
162
163
165
165
165
167
168
169
169
169
169
169
170
170
170
170
170
170
171
171
171
171
172
172
174
174
180
180
184
185
185
185
186
186
188
188
188
188
188
188
189
189
189
189
190
190
199
199
199
199
199
199
199
199
199
199
200
200
201
201
201
201
201
202
202
202
202
202
202
202
202
203
203
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
204
205
205
205
205
205
205
205
205
205
205
205
205
206
206
206
206
206
206
206
206
206
206
206
207
207
207
207
207
207
207
207
207
208
209
209
211
211
211
212
212
213
213
218
218
218
226
232
235
236
237
237
240
242
242
244
244
245
245
249
249
249
249
252
254
254
255
257
257
275
276
281
281
283
283
284
284
290
292
293
294
294
299
304
304
309
309
309
317
317
318
318
321
323
330
338
338
341
346
346
347
347
349
349
349
350
358
358
360
360
360
365
370
370
376
376
376
376
387
387
389
390
390
403
404
404
406
406
408
408
413
414
424
429
429
431
431
431
431
442
442
444
445
445
447
460
461
461
461
461
462
465
469
470
470
471
473
473
473
489
489
489
489
489
494
494
500
502
503
509
511
514
535
536
538
556
561
561
575
580
580
598
600
603
622
627
627
642
647
647
660
663
665
681
686
686
699
704
704
715
722
724
727
746
751
751
766
771
771
790
793
795
813
818
818
832
837
837
855
857
860
879
884
884
899
904
904
1419
1423
1424
5
9
9
15
15
20
20
21
21
23
25
25
28
28
28
28
29
29
29
37
39
40
44
45
46
48
54
55
57
57
59
59
59
60
60
60
60
60
61
61
61
61
62
62
63
63
64
64
64
65
65
65
66
67
67
67
70
70
70
70
71
71
76
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
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
84
84
84
84
84
84
84
85
85
85
85
85
86
86
90
90
94
94
98
98
99
99
100
103
103
104
104
106
110
112
112
114
114
127
129
129
129
129
130
130
130
130
130
130
131
131
131
131
132
132
132
132
132
132
132
133
133
133
133
134
134
134
134
135
136
136
136
136
137
137
137
141
141
141
141
142
142
148
149
150
150
151
151
151
151
152
152
152
162
163
165
165
165
166
168
168
169
169
169
169
169
170
170
170
170
170
171
171
171
171
171
172
172
172
172
173
173
175
175
180
184
184
185
186
186
186
186
186
188
188
189
189
190
190
190
190
191
191
195
197
197
199
199
200
200
200
200
200
200
200
200
200
200
200
201
201
201
201
201
202
202
202
202
203
203
203
203
203
203
203
204
204
204
204
204
204
205
205
205
205
205
205
205
206
206
206
206
206
206
206
207
207
207
207
207
207
207
207
207
207
207
208
209
209
209
212
212
212
212
213
213
214
214
216
217
219
233
234
236
237
238
238
241
245
245
246
246
250
250
250
250
253
253
254
255
256
258
265
277
282
282
285
285
290
290
293
294
300
300
305
305
310
310
319
319
322
324
339
339
339
339
342
347
347
350
350
351
358
359
366
370
370
371
371
374
376
376
377
377
383
388
388
390
390
391
398
404
405
409
409
414
414
415
415
425
425
425
429
430
430
431
431
432
432
438
443
443
445
445
446
448
453
462
462
463
466
471
471
471
472
483
483
487
489
489
490
490
490
495
495
496
501
503
503
510
511
512
515
536
537
539
557
562
562
576
581
581
599
601
604
623
628
628
643
648
648
661
664
666
682
687
687
700
705
705
715
723
725
728
747
752
752
767
772
772
791
794
796
814
819
819
833
838
838
856
858
861
880
885
885
900
905
905
1420
1424
1425
5
5
9
10
15
20
20
20
20
21
21
22
24
25
25
26
26
26
26
28
29
29
29
30
30
35
37
37
45
45
46
47
47
47
49
50
50
55
57
57
60
61
61
61
61
62
62
62
63
63
64
64
65
65
65
65
65
66
66
66
66
67
68
68
68
68
72
72
74
74
74
74
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
80
80
80
80
80
80
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
84
84
84
84
84
84
85
85
85
85
86
87
91
91
99
100
100
100
101
105
105
107
111
113
113
115
115
128
128
129
129
129
130
130
130
130
130
131
131
131
131
131
131
131
131
132
132
132
132
133
133
133
133
133
133
134
134
135
135
135
135
135
135
135
136
136
136
136
137
137
137
138
138
138
142
142
142
142
142
142
143
143
149
150
151
151
151
151
151
151
152
152
152
152
153
153
153
165
166
166
166
166
167
167
168
168
168
169
169
169
169
169
170
170
170
170
170
171
171
171
171
171
172
172
172
173
173
173
173
174
176
176
176
176
185
185
186
186
186
186
186
187
187
187
187
189
189
190
190
192
192
196
197
198
198
198
198
198
198
199
199
199
199
200
200
201
201
201
201
201
201
201
201
201
201
201
202
202
202
202
202
202
202
203
203
203
204
204
204
204
204
204
204
204
204
206
206
207
207
207
207
207
208
208
208
209
210
213
213
214
214
215
215
217
218
220
220
226
234
235
237
237
239
239
242
246
246
247
247
251
251
251
251
254
254
256
257
259
265
278
281
283
283
286
286
291
291
292
292
292
294
301
301
301
301
301
306
306
309
310
310
310
310
311
317
318
318
318
320
320
323
325
330
330
337
339
339
340
340
343
347
348
348
349
351
351
359
359
360
360
367
368
371
371
372
372
377
378
378
387
389
389
392
399
399
399
399
404
405
406
410
410
416
416
423
426
426
426
431
431
432
433
433
442
444
444
447
449
454
454
454
454
461
461
463
463
467
472
472
472
472
473
473
481
484
484
490
491
491
491
496
496
500
502
511
512
512
512
512
513
516
537
538
540
558
563
563
577
582
582
600
602
605
624
629
629
644
649
649
662
665
667
683
688
688
701
706
706
724
726
729
748
753
753
768
773
773
792
795
797
815
820
820
834
839
839
857
859
862
881
886
886
901
906
906
1421
1425
1426
1
9
9
10
11
11
11
11
15
19
19
19
21
22
22
23
23
25
26
26
26
27
27
28
28
28
29
29
29
29
29
29
31
31
39
39
40
45
47
47
48
48
48
50
50
53
55
55
56
58
61
62
62
62
62
63
63
64
65
65
66
66
66
67
68
69
69
69
72
73
75
75
75
75
75
75
78
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
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
83
83
84
84
84
84
84
84
84
85
85
85
85
85
85
85
86
86
88
92
92
101
101
101
102
106
106
112
116
116
129
130
130
130
130
130
130
130
131
131
131
131
131
131
131
132
132
132
132
132
132
133
133
133
134
134
134
135
135
135
135
136
136
136
136
136
136
136
136
137
137
137
138
139
142
142
143
143
144
144
150
151
151
151
151
152
152
152
152
152
152
153
153
153
153
154
164
167
167
167
168
168
168
170
170
171
171
171
171
171
172
172
172
172
172
173
173
173
175
177
177
177
177
185
187
187
187
187
187
187
187
188
188
188
188
188
188
188
188
188
190
190
193
193
193
193
193
194
194
197
197
197
197
197
197
198
199
199
199
199
199
199
199
200
200
200
200
201
201
201
202
202
202
202
202
202
202
202
202
202
202
202
203
203
203
203
203
203
204
204
204
205
206
207
207
207
207
207
207
208
209
209
209
210
211
214
214
215
215
216
216
218
218
219
221
221
234
235
236
240
240
243
247
247
248
248
252
252
252
252
254
255
255
257
257
257
260
279
282
284
284
287
293
293
293
293
302
302
302
307
311
311
312
317
317
317
317
318
319
319
319
324
326
328
331
331
340
341
341
344
349
349
350
361
361
368
369
369
373
376
376
378
384
388
388
388
390
390
390
393
400
400
404
404
405
406
411
411
414
415
415
415
417
417
424
424
427
431
431
432
432
433
443
443
445
445
445
448
450
455
455
462
468
473
473
474
474
482
482
489
489
491
492
497
497
501
501
503
503
512
513
513
514
517
538
539
541
559
564
564
578
583
583
601
603
606
625
630
630
645
650
650
666
668
684
689
689
702
707
707
725
727
730
749
754
754
769
774
774
793
796
798
816
821
821
835
840
840
858
860
863
882
887
887
902
907
907
1422
1426
1427
1
1
5
9
9
9
11
11
19
19
20
22
22
22
22
22
24
26
26
26
26
27
27
27
28
28
28
29
30
30
30
30
30
30
32
32
37
37
40
43
47
47
49
49
49
49
50
51
51
54
54
54
56
57
57
57
59
61
62
62
64
64
65
66
66
67
67
68
68
68
68
68
68
69
70
70
70
73
78
78
78
78
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
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
83
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
85
85
89
93
93
93
98
102
103
103
103
103
103
107
107
113
117
117
128
129
129
129
130
130
130
130
131
131
131
132
132
132
132
132
132
133
135
136
137
137
137
137
137
138
138
138
139
140
144
144
145
145
150
150
151
152
152
152
152
153
153
153
153
154
154
154
154
154
154
155
166
167
167
167
169
169
169
169
170
171
171
172
172
172
172
173
173
173
173
174
174
176
178
178
178
178
185
187
188
189
189
189
189
189
189
189
189
189
189
189
194
194
194
194
194
195
195
197
197
197
197
197
197
197
197
198
198
198
198
198
198
198
199
199
199
199
199
199
199
200
200
200
200
200
200
200
200
200
200
200
201
201
201
201
202
202
202
202
202
202
202
202
202
202
202
202
203
203
203
204
204
204
204
204
204
205
206
206
206
206
206
207
207
207
207
207
210
210
210
210
210
211
212
215
215
216
216
217
217
218
219
220
222
226
226
235
235
236
237
237
241
241
244
245
248
248
249
249
253
253
253
253
254
255
256
257
257
258
258
261
265
265
273
280
282
282
285
285
286
286
288
294
294
302
303
306
306
308
310
310
312
312
318
319
320
320
320
322
325
327
329
329
339
339
341
345
347
350
350
351
359
360
360
360
362
362
369
374
377
388
389
390
391
391
391
394
400
403
404
405
406
407
412
412
414
414
414
415
416
416
416
428
432
433
433
443
445
446
446
446
449
451
455
461
463
469
472
473
473
473
474
474
475
475
490
493
498
498
501
503
504
504
513
513
515
518
539
540
542
560
565
565
579
584
584
602
604
607
626
631
631
646
651
651
667
669
685
690
690
703
708
708
726
728
731
750
755
755
770
775
775
794
797
799
817
822
822
836
841
841
859
861
864
883
888
888
903
908
908
1423
1427
1428
1
1
5
5
5
9
19
19
19
20
22
23
24
25
27
27
28
29
29
29
31
31
31
31
33
33
39
39
40
44
47
47
48
49
50
50
52
52
54
55
57
57
57
57
57
57
60
62
62
63
63
65
65
66
67
68
68
69
69
69
69
70
70
71
71
73
73
74
78
78
78
78
78
78
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
86
90
94
94
99
104
104
104
108
108
114
118
118
127
128
129
129
129
129
130
130
130
130
130
130
130
131
131
131
131
131
131
131
131
132
132
132
132
132
132
132
133
133
134
134
136
136
137
138
138
138
138
138
139
139
140
141
141
141
145
145
146
146
150
151
151
152
152
152
154
154
154
154
154
154
154
155
155
155
155
156
166
166
166
167
168
168
168
170
170
170
171
171
172
172
173
174
174
175
175
175
177
179
179
179
179
185
185
188
189
190
190
190
190
190
195
195
195
195
195
195
196
196
196
197
198
198
198
198
198
198
198
198
198
199
199
199
199
199
200
200
200
200
200
200
200
200
200
200
200
201
201
201
201
201
201
201
202
202
202
202
202
202
202
202
202
203
203
203
203
203
203
203
203
203
204
204
204
204
205
205
206
206
207
207
207
207
207
211
211
211
212
213
216
216
217
217
218
218
220
221
223
227
227
227
227
235
237
237
238
238
242
242
245
246
246
246
249
249
250
250
254
254
254
254
257
258
258
259
259
262
263
266
266
274
281
286
286
287
287
289
294
302
304
307
309
311
318
320
321
321
323
326
328
340
346
347
348
349
351
351
359
359
359
360
361
361
361
370
371
372
372
375
376
376
378
388
390
390
391
392
392
392
395
400
404
406
407
408
413
413
416
417
417
417
426
429
431
431
433
434
434
443
445
446
447
447
447
450
452
455
461
461
462
470
472
472
472
473
474
474
474
475
475
484
489
489
491
494
499
499
501
503
504
505
505
513
514
516
519
541
543
561
566
566
580
585
585
603
605
608
627
632
632
647
652
652
668
670
686
691
691
704
709
709
727
729
732
751
756
756
771
776
776
798
800
818
823
823
837
842
842
860
862
865
884
889
889
904
909
909
1424
1428
1429
4
4
5
5
6
6
6
9
10
11
11
21
23
24
25
26
26
28
28
28
30
30
30
31
32
32
32
32
34
34
37
37
40
45
49
49
49
49
51
51
53
53
54
54
57
57
57
58
62
63
64
66
66
68
70
70
70
71
71
72
72
72
72
74
75
75
78
78
78
78
78
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
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
83
83
83
83
83
83
84
84
85
85
85
85
85
91
95
95
100
105
105
105
105
105
108
108
109
109
115
119
119
128
128
129
129
129
130
130
130
130
130
130
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
132
132
132
132
132
132
132
132
132
132
132
132
133
133
133
133
133
134
134
135
137
137
139
139
141
141
142
146
146
147
147
150
150
151
152
152
152
152
153
154
154
155
155
155
156
156
156
156
157
168
169
169
169
171
175
175
176
176
176
178
180
180
180
180
186
186
187
187
187
189
190
190
191
196
196
196
196
196
196
196
196
196
197
197
197
197
197
197
198
198
198
198
199
199
199
199
199
199
199
199
199
199
199
199
200
200
200
200
200
200
200
200
200
200
200
200
200
200
201
201
201
201
201
201
201
201
201
202
202
202
202
202
202
203
203
203
203
204
204
204
204
204
204
204
204
204
204
205
206
206
206
206
206
206
207
207
208
208
212
212
212
213
214
217
217
218
218
218
218
219
219
221
221
222
227
227
228
228
235
237
238
238
239
239
243
243
246
247
247
250
250
251
251
255
255
255
255
258
259
259
260
263
264
264
275
275
282
286
287
287
288
288
294
305
308
310
310
312
319
319
324
327
329
331
339
339
341
347
348
349
349
350
352
352
361
362
362
362
371
371
373
376
376
376
377
377
388
388
391
391
392
393
396
404
405
407
409
414
414
415
417
418
418
426
430
431
431
432
432
435
435
443
443
446
447
448
451
453
460
461
462
463
471
474
475
475
475
476
476
484
489
489
490
490
495
500
500
501
501
504
505
515
517
520
542
544
562
567
567
581
586
586
606
609
628
633
633
648
653
653
662
669
671
687
692
692
705
710
710
715
730
733
752
757
757
772
777
777
799
801
819
824
824
838
843
843
863
866
885
890
890
905
910
910
1425
1429
1430
5
7
7
7
7
9
11
11
12
12
22
24
25
26
26
27
29
29
31
31
31
31
31
31
31
33
33
34
34
35
35
39
39
40
47
47
49
50
54
54
58
59
62
62
62
63
63
64
64
64
64
65
65
67
67
68
68
69
71
71
72
72
72
73
73
74
75
75
75
75
75
78
78
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
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
83
83
83
84
84
84
84
85
92
96
96
102
102
106
109
109
110
110
116
120
120
128
129
129
129
130
130
130
131
131
131
131
131
132
132
132
132
132
132
132
132
133
133
133
133
133
133
133
134
134
136
138
138
140
140
142
143
147
147
148
148
151
151
152
153
153
153
155
155
156
156
156
158
167
169
170
170
172
172
172
172
173
173
173
176
176
177
177
177
177
179
179
181
181
181
181
188
188
188
188
189
189
190
190
192
196
196
197
197
197
197
197
197
197
197
198
198
198
198
198
199
199
199
199
199
200
200
200
200
200
200
200
200
200
200
200
200
200
200
200
200
201
201
201
201
202
202
202
202
202
202
202
202
202
202
202
202
203
203
203
203
204
204
204
204
204
205
205
205
205
205
205
205
205
206
206
206
206
206
207
207
207
207
207
208
212
213
213
213
214
215
218
218
219
219
219
219
220
220
221
228
229
229
238
239
239
244
244
246
247
247
247
247
247
248
251
251
252
252
256
256
256
256
257
259
261
264
276
276
276
276
283
286
288
288
306
309
310
310
311
311
325
328
330
331
339
339
340
340
348
350
350
351
353
353
360
362
363
363
372
374
377
378
378
389
389
390
390
390
392
392
394
397
404
405
407
407
408
410
415
415
416
416
431
433
433
436
436
444
444
445
445
445
447
452
454
461
463
464
472
473
475
476
476
477
477
491
491
496
501
501
502
502
503
503
503
505
518
521
543
545
563
568
568
582
587
587
607
610
629
634
634
649
654
654
663
667
670
672
688
693
693
706
711
711
713
715
716
731
734
753
758
758
773
778
778
800
802
820
825
825
839
844
844
864
867
886
891
891
906
911
911
1426
1430
1431
4
6
8
8
8
8
11
13
13
19
22
22
26
26
26
28
30
31
31
32
32
32
32
35
35
36
36
37
37
39
40
49
49
49
51
55
55
57
57
59
60
62
62
62
64
64
66
67
68
68
68
69
70
72
72
72
72
72
73
73
74
74
74
75
75
75
75
76
76
77
78
78
78
78
79
79
79
79
80
80
80
80
80
80
80
80
80
80
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
83
83
83
83
83
84
84
84
85
85
85
93
97
97
101
101
103
106
106
107
110
110
111
111
117
121
121
128
129
129
130
130
130
130
130
130
130
130
130
130
131
131
131
131
132
132
132
132
133
133
137
138
138
138
139
139
139
141
141
143
144
148
148
149
149
151
151
153
153
153
154
154
155
156
156
157
157
159
159
168
168
170
171
171
172
173
173
173
173
174
174
175
177
177
178
178
178
178
180
180
182
182
182
182
189
189
190
190
190
190
190
190
190
190
193
195
195
196
197
197
197
197
198
198
198
198
198
198
198
198
198
199
199
199
199
199
199
199
199
200
200
200
200
200
200
201
201
201
201
201
201
201
201
201
202
202
202
202
202
202
202
202
202
202
202
203
203
203
203
203
203
204
205
205
205
205
207
207
208
208
208
209
213
213
214
214
214
215
216
219
219
220
220
221
221
222
227
227
229
239
240
245
245
248
248
248
249
252
252
253
253
254
257
257
257
257
260
262
265
266
274
276
276
277
277
282
284
286
287
289
289
307
309
310
310
311
312
312
321
326
329
329
331
331
341
341
349
350
351
351
354
354
361
361
371
371
373
374
375
378
379
379
391
391
391
391
393
395
395
398
398
408
408
409
411
416
416
426
426
429
432
434
434
437
437
446
446
446
446
453
454
455
461
462
464
473
474
474
478
478
484
484
487
492
492
497
502
502
504
504
504
504
515
519
519
522
539
544
546
564
569
569
583
588
588
608
611
630
635
635
650
655
655
668
671
673
689
694
694
707
712
712
714
716
732
735
754
759
759
774
779
779
794
801
803
821
826
826
840
845
845
865
868
887
892
892
907
912
912
1427
1431
1432
5
7
9
9
11
11
13
24
24
25
27
27
29
31
31
32
32
32
33
33
33
33
33
36
36
37
37
39
39
39
40
40
40
40
47
47
49
52
54
56
56
57
57
62
62
63
68
69
69
69
70
73
73
74
74
74
74
74
75
75
75
75
75
75
75
76
76
77
78
78
78
78
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
82
82
82
82
82
82
82
83
83
83
84
84
84
84
84
85
85
94
98
98
104
104
107
107
107
108
110
110
112
112
118
122
122
127
129
129
129
129
129
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
133
133
134
134
138
138
139
139
139
140
140
142
142
144
145
149
149
150
150
151
152
153
154
155
155
156
158
158
160
160
171
171
172
172
172
174
176
178
178
179
179
179
179
181
181
183
183
183
183
189
191
191
191
191
194
195
195
195
196
196
197
197
197
197
197
197
197
198
198
198
198
199
199
199
199
199
199
200
200
200
200
200
200
200
200
201
201
201
201
201
201
201
202
202
202
202
202
202
202
202
202
202
202
202
202
202
203
203
203
203
204
205
205
208
208
209
209
210
215
215
215
216
217
220
220
221
221
222
222
223
228
241
246
246
247
247
249
249
249
253
253
254
254
254
255
257
257
258
258
258
258
261
263
266
266
277
278
278
282
285
287
288
290
290
293
308
310
311
312
313
313
321
327
332
332
337
342
342
350
350
351
351
351
352
355
355
369
372
372
374
375
376
379
380
392
392
394
399
399
409
409
412
417
417
418
424
427
427
430
433
435
438
447
447
454
455
455
455
455
456
461
462
464
464
465
474
479
479
482
485
485
488
493
498
503
503
505
505
520
520
523
540
542
545
547
565
570
570
584
589
589
603
607
609
612
631
636
636
651
656
669
672
674
690
695
695
708
713
713
714
727
731
733
736
755
760
760
775
780
780
795
799
802
804
822
827
827
841
846
846
860
864
866
869
888
893
893
908
913
1428
1432
1433
4
4
5
5
5
10
10
13
13
13
22
22
25
30
31
32
33
33
33
33
34
34
34
37
37
38
38
40
41
41
49
49
49
53
57
57
59
59
60
60
61
62
62
62
63
63
63
64
64
64
65
69
70
70
71
71
72
72
74
74
74
74
75
75
75
76
76
76
76
77
77
77
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
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
83
83
83
84
84
84
84
85
85
95
97
97
99
99
108
108
108
109
111
111
111
111
113
113
119
123
123
128
128
128
129
130
130
130
130
130
131
131
131
131
131
131
131
131
132
132
132
132
132
132
132
132
132
132
132
132
132
132
133
133
133
133
133
133
133
134
134
139
143
143
145
146
150
150
151
151
152
152
152
152
153
154
155
157
159
159
161
161
170
170
170
173
175
177
179
179
180
180
182
182
184
184
184
184
188
189
191
191
193
193
193
195
195
195
195
195
195
196
196
196
197
197
198
198
198
198
198
198
198
199
199
199
200
200
200
200
200
200
200
200
200
200
200
201
201
201
201
201
201
201
201
201
201
201
201
201
202
202
203
203
203
203
203
203
205
205
205
205
205
211
214
216
216
216
217
218
219
221
221
222
222
223
223
227
227
229
235
235
242
247
247
248
250
254
254
254
255
255
258
258
259
259
259
259
262
264
267
276
276
278
286
286
288
289
291
291
294
294
294
294
301
309
310
311
312
313
314
328
333
333
338
343
351
352
352
353
356
356
363
370
370
375
375
375
377
379
379
380
381
392
395
399
400
400
407
413
418
418
418
425
425
430
430
434
434
434
436
437
437
439
447
448
455
456
456
457
465
465
466
475
476
480
480
483
483
488
488
492
492
494
499
504
505
512
521
521
524
543
546
548
566
571
571
585
590
590
608
610
613
632
637
637
652
655
655
657
670
673
675
691
696
696
709
714
714
716
732
734
737
756
761
761
776
781
781
800
803
805
823
828
828
842
847
847
865
867
870
889
894
894
909
912
912
914
1429
1433
1434
5
5
5
5
6
7
11
11
11
11
13
24
24
25
31
31
31
31
33
33
33
34
34
34
35
35
35
39
39
42
42
47
47
49
49
49
49
54
57
57
58
58
60
61
61
62
62
63
64
64
64
64
65
65
65
65
66
71
72
73
74
74
74
74
75
75
75
75
75
76
76
76
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
81
81
81
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
96
98
98
100
100
105
109
110
112
112
114
114
120
124
124
129
129
129
130
130
130
131
131
131
131
132
132
132
132
132
132
132
132
132
132
132
132
133
133
133
134
134
140
144
144
146
147
151
151
152
152
153
153
153
153
154
154
154
154
154
154
155
158
162
162
168
170
171
171
173
173
173
174
174
174
176
178
180
180
181
181
183
183
185
185
185
185
189
189
189
189
190
190
191
191
194
194
194
194
194
194
194
195
195
195
196
196
196
196
196
196
197
197
197
197
197
197
197
197
197
197
197
198
198
198
198
199
199
199
199
199
199
199
199
200
200
200
200
200
200
200
201
201
201
202
202
202
202
202
202
203
203
203
203
203
203
205
205
205
212
212
214
215
217
217
217
218
219
219
222
222
223
223
224
224
227
227
228
228
236
236
237
237
237
243
247
248
248
249
251
255
255
255
256
256
257
259
259
259
260
260
260
260
265
266
266
268
277
282
287
287
289
289
292
292
295
295
302
302
302
310
310
311
313
313
313
314
315
321
321
329
329
334
334
338
338
342
342
342
344
352
353
353
357
357
363
376
378
380
380
381
382
392
396
400
400
400
401
401
404
414
419
419
435
435
435
437
438
440
447
449
453
456
456
458
466
466
476
476
481
481
493
493
495
500
505
505
513
513
513
522
522
525
544
547
549
567
572
572
586
591
591
609
611
614
633
638
638
653
656
658
671
674
674
676
676
692
697
697
710
715
715
716
733
735
738
757
762
762
777
782
782
801
804
806
824
829
829
843
848
848
866
868
871
890
895
895
910
913
915
1430
1434
1435
5
5
6
6
7
7
12
12
13
13
13
22
22
25
26
31
31
32
32
33
33
33
34
35
36
36
36
36
36
36
36
37
40
40
42
49
49
49
49
50
50
55
59
59
59
59
60
61
62
63
64
64
65
65
65
66
66
66
66
67
72
72
73
73
74
74
74
75
75
75
75
75
75
76
76
76
76
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
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
83
83
83
84
85
85
85
85
85
85
97
99
99
101
106
109
111
113
113
113
113
115
115
121
123
123
125
125
128
129
129
129
130
130
130
130
130
130
131
131
131
132
132
132
132
133
139
139
139
140
140
140
141
145
145
147
148
152
152
153
153
155
155
155
155
155
155
155
155
159
163
163
169
169
171
172
173
174
174
174
175
175
177
179
181
181
182
182
184
184
186
186
186
186
190
190
191
191
191
191
191
191
191
191
191
191
191
192
192
193
195
195
195
195
195
195
195
195
196
196
196
197
197
197
197
197
197
197
197
198
198
198
198
198
198
198
198
198
198
198
198
200
200
200
200
200
200
200
201
201
202
202
203
203
203
203
203
203
205
209
213
213
215
216
218
218
218
219
220
223
223
224
224
225
225
229
229
238
238
238
238
244
247
247
248
249
249
252
256
256
257
257
257
258
261
261
261
261
264
266
267
267
269
276
276
278
286
288
288
293
293
295
303
303
314
314
314
315
316
319
322
322
330
330
335
335
342
343
343
345
351
353
358
358
372
377
379
379
381
381
382
397
401
401
402
402
404
405
407
407
415
418
418
420
420
427
434
436
436
436
439
441
454
456
457
459
464
477
482
482
485
492
494
494
501
503
503
506
514
514
523
523
526
545
548
550
568
573
573
587
592
592
610
612
615
634
639
639
654
657
659
672
677
677
693
698
698
711
716
716
734
736
739
758
763
763
778
783
783
802
805
807
825
830
830
844
849
849
867
869
872
891
896
896
911
914
916
1431
1435
1436
1
4
5
5
5
5
5
6
7
7
7
8
8
11
11
13
13
13
13
13
13
24
24
25
32
33
33
34
35
37
37
37
37
37
37
41
41
42
42
47
51
51
56
57
57
60
60
60
61
62
63
64
64
64
65
66
66
66
69
69
73
74
75
75
75
75
75
75
77
77
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
80
80
80
80
80
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
83
83
83
85
98
100
102
107
110
110
112
114
114
115
115
116
116
122
124
124
126
127
129
129
130
130
130
131
131
131
131
131
132
132
132
132
132
132
133
133
139
140
140
140
141
141
142
146
146
148
149
151
151
153
153
154
154
156
156
156
156
160
164
164
172
172
173
173
178
180
182
182
183
183
185
185
187
187
187
187
190
192
192
192
192
192
192
192
193
193
193
193
193
193
193
193
194
196
196
196
196
196
196
196
196
196
196
196
196
196
196
196
196
196
197
197
197
197
197
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
199
199
199
199
199
199
199
199
200
200
202
202
203
203
203
205
209
214
214
216
217
219
219
219
220
221
221
224
224
225
225
226
226
230
230
239
239
245
246
247
248
249
250
250
253
257
257
258
258
258
258
259
259
262
262
262
262
265
265
267
270
276
276
277
277
287
287
289
289
289
294
294
295
302
303
303
303
303
304
315
315
315
317
320
320
331
331
331
336
336
338
343
344
344
350
354
359
359
363
363
372
379
380
383
398
400
401
401
401
401
402
403
403
404
408
408
416
416
419
419
421
421
427
434
437
440
442
455
458
460
461
476
476
478
483
483
485
492
502
504
507
513
514
514
514
514
515
524
524
527
546
549
549
551
551
569
574
574
588
593
593
611
613
616
635
640
640
655
658
660
673
678
678
694
699
699
712
717
717
735
737
740
759
764
764
779
784
784
803
806
806
808
808
826
831
831
845
850
850
868
870
873
892
897
897
912
915
917
1432
1436
1437
1
1
5
5
7
7
8
8
9
9
13
13
13
13
14
14
14
14
22
22
24
25
33
34
35
35
36
36
37
37
38
38
38
38
38
38
38
41
41
42
42
42
43
51
52
57
59
59
60
61
61
61
64
65
66
66
66
66
69
70
70
74
74
75
76
77
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
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
82
82
82
82
82
82
82
82
82
83
83
84
84
84
99
101
103
111
113
116
116
117
117
123
125
125
127
128
128
131
131
131
131
131
132
132
132
132
132
133
133
133
133
134
134
134
143
147
147
149
150
152
152
153
153
153
154
154
155
155
156
156
161
165
165
171
171
171
179
181
183
183
184
184
186
186
188
188
188
188
189
190
192
192
193
193
193
194
194
194
194
194
194
194
194
195
195
195
196
196
197
197
197
197
197
197
197
197
197
197
197
198
198
198
198
198
198
198
198
198
198
198
198
198
198
198
199
199
199
199
199
199
199
199
199
199
200
200
200
200
200
200
200
200
200
200
200
202
203
204
215
215
217
218
220
220
220
221
222
222
225
225
226
226
227
227
231
239
246
247
249
250
251
254
258
258
259
259
260
260
262
263
263
263
263
266
268
271
278
278
287
289
290
290
290
295
295
304
304
305
313
316
318
332
332
332
332
332
337
337
344
350
351
351
351
355
360
360
361
364
364
375
379
380
381
384
391
399
402
402
403
404
404
405
407
409
409
409
417
417
417
422
422
430
434
435
438
441
443
446
456
459
461
461
462
464
464
474
477
477
479
484
484
488
492
493
503
504
505
508
515
515
516
525
525
528
547
552
552
570
575
575
589
594
594
612
614
614
617
617
636
641
641
656
659
661
674
679
679
695
700
700
713
718
718
736
738
738
741
741
760
765
765
780
785
785
804
809
809
827
832
832
846
851
851
869
871
871
874
874
893
898
898
913
916
918
1433
1437
1438
5
5
5
7
8
9
9
10
10
11
15
15
15
15
24
24
24
25
25
25
25
33
33
35
35
35
35
37
37
39
39
42
42
42
42
43
43
43
44
44
44
44
47
47
52
57
57
58
59
60
62
62
64
64
65
66
66
66
66
66
71
71
74
74
74
74
74
74
74
75
75
75
75
75
75
75
76
76
76
76
76
77
77
78
78
78
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
81
81
81
81
82
82
82
82
82
82
82
82
82
82
83
83
84
84
84
85
85
85
102
104
108
108
112
112
113
113
114
117
117
118
118
124
126
126
127
127
127
127
127
128
129
129
129
129
131
131
133
134
144
148
148
150
151
154
154
154
154
155
155
156
156
156
156
156
156
156
156
162
166
166
169
171
172
172
174
175
180
182
184
184
185
185
187
187
189
189
189
189
190
190
190
190
192
192
192
192
192
192
193
194
194
194
194
194
194
195
195
195
195
195
195
195
195
195
195
195
195
195
195
196
196
196
196
196
196
196
196
197
197
198
198
198
198
198
198
198
198
198
199
199
199
199
199
199
199
199
199
199
199
199
200
200
200
200
200
200
200
200
200
200
200
200
200
200
203
204
205
209
209
213
216
216
218
219
221
221
221
222
222
222
223
226
226
227
227
228
228
230
230
232
239
247
247
248
250
252
255
258
259
259
259
259
259
260
260
261
261
264
264
264
264
267
267
269
272
274
279
279
287
289
290
291
291
291
296
296
303
303
305
305
310
310
317
319
322
330
332
332
333
333
333
338
338
342
345
350
352
352
356
361
361
362
362
375
380
381
382
385
392
392
392
392
400
401
401
403
403
405
405
407
408
418
423
423
430
435
436
439
442
444
447
447
447
447
457
460
460
461
462
462
465
465
475
475
480
485
485
488
493
494
504
505
505
505
505
506
509
514
514
516
516
526
526
529
548
553
553
571
576
576
590
595
595
613
618
618
637
642
642
657
660
662
675
680
680
696
701
701
714
719
719
737
742
742
761
766
766
781
786
786
805
810
810
828
833
833
847
852
852
870
875
875
894
899
899
914
917
919
1434
1438
1439
4
5
5
5
6
7
8
9
10
11
11
15
16
16
16
22
22
25
26
26
33
34
34
35
35
36
36
36
37
38
38
39
39
40
40
42
42
42
43
43
44
44
44
44
47
52
52
53
59
59
59
59
60
60
60
60
61
61
63
63
66
66
66
66
66
67
67
74
74
75
75
75
76
76
76
76
77
77
77
77
78
78
78
78
78
78
78
78
78
78
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
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
83
84
84
84
97
101
103
103
105
105
113
114
114
114
115
119
119
125
126
127
127
127
128
128
128
128
128
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
131
131
140
141
145
149
149
151
152
155
155
156
156
157
157
157
157
157
157
163
165
165
167
167
170
170
174
174
174
175
175
175
181
183
185
185
186
186
188
188
190
190
191
191
191
191
192
192
192
193
193
193
193
193
193
193
194
194
195
195
195
195
196
196
196
196
196
196
196
196
196
196
197
197
197
197
197
197
198
198
198
198
199
199
199
199
199
199
199
200
200
200
200
200
200
200
200
200
200
200
200
200
200
200
200
200
201
201
201
201
201
201
203
203
205
206
210
210
214
217
217
219
222
222
222
223
224
227
228
229
229
231
231
233
247
248
248
250
250
250
250
251
253
256
258
258
258
259
260
260
260
260
260
261
261
265
265
267
268
270
273
275
280
287
287
290
291
292
294
297
297
304
310
311
311
313
313
315
318
320
322
333
334
334
334
338
339
339
342
343
351
351
353
353
353
357
362
362
377
379
381
381
382
383
386
393
393
401
402
406
406
408
408
409
409
419
419
424
424
434
436
437
440
443
445
448
448
458
462
463
463
464
466
466
466
481
486
486
492
494
495
505
506
506
507
510
515
527
530
549
554
554
572
577
577
591
596
614
619
619
638
643
643
658
661
663
676
681
681
697
702
702
715
716
720
738
743
743
762
767
767
782
787
806
811
811
829
834
834
848
853
871
876
876
895
900
900
915
918
920
1435
1439
1440
5
5
5
5
6
7
7
7
7
9
9
10
10
11
11
11
12
12
16
17
17
27
27
33
35
35
35
36
37
37
37
37
37
39
40
40
40
41
41
42
43
43
45
45
47
51
51
51
53
54
54
57
57
60
60
61
61
62
62
64
64
67
68
68
72
74
74
75
75
75
76
76
76
76
76
76
76
76
76
76
76
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
79
79
79
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
83
83
98
102
104
104
106
106
115
115
115
116
117
117
117
117
120
120
127
128
128
128
128
128
128
129
129
130
130
130
130
130
130
130
130
130
131
131
131
131
131
140
140
140
141
141
141
146
148
148
150
150
152
153
155
155
155
157
157
157
157
157
157
157
157
157
158
158
158
164
166
166
168
172
173
175
175
175
175
176
176
176
176
182
184
186
186
187
187
189
189
189
189
189
189
191
191
191
191
191
191
192
192
192
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
194
194
194
194
194
194
194
195
195
196
196
196
196
196
196
196
196
196
197
197
197
197
197
197
198
198
198
198
198
198
198
199
199
199
199
199
199
200
200
200
200
201
201
201
201
201
201
201
201
201
201
204
204
206
207
217
218
219
219
223
223
223
224
225
228
229
230
230
230
232
232
249
251
251
251
252
254
257
260
261
261
261
261
261
262
262
264
264
264
264
266
266
269
271
274
275
275
279
279
281
288
288
289
289
289
291
293
295
295
295
295
298
298
303
305
310
314
314
316
319
321
332
332
334
335
338
340
340
343
344
351
352
358
363
363
364
370
375
380
382
382
382
384
387
393
401
402
403
407
407
410
410
419
420
425
425
425
430
435
437
437
441
444
446
448
455
459
464
464
464
465
477
482
483
487
487
488
493
495
495
506
506
508
511
514
516
526
528
529
531
550
555
555
573
578
578
592
597
615
620
620
639
644
644
659
662
664
677
682
682
698
703
703
714
716
716
717
721
739
744
744
763
768
768
783
786
786
788
807
812
812
830
835
835
849
854
872
877
877
896
901
901
916
919
921
1436
1440
1441
5
5
7
8
8
10
11
11
12
13
13
16
16
16
16
17
18
18
22
27
35
35
37
37
37
37
37
38
40
41
41
41
42
42
42
43
44
44
44
44
44
44
46
46
51
52
54
54
54
54
54
61
62
62
63
63
65
68
69
73
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
77
77
77
77
77
77
77
77
77
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
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
82
82
82
82
82
82
82
82
83
83
84
84
84
99
103
105
105
107
107
107
112
116
117
118
118
121
121
123
124
126
126
127
127
128
128
128
129
129
130
130
130
130
130
130
131
131
131
131
133
134
141
141
141
141
142
142
142
142
147
149
149
151
153
154
155
155
155
156
156
158
158
158
158
158
159
159
159
165
167
167
169
172
173
174
175
175
176
176
176
176
177
177
183
185
187
187
188
188
189
189
190
190
190
190
191
191
191
192
192
192
192
192
192
192
192
192
193
193
193
193
193
193
193
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
195
195
195
195
195
195
195
195
195
195
195
196
196
196
196
196
196
196
196
197
197
197
197
197
197
197
197
198
198
198
198
198
199
199
199
199
199
199
199
200
200
200
200
201
201
201
203
207
208
219
219
220
220
220
220
224
224
224
225
226
226
226
227
227
229
230
230
231
231
250
252
252
252
255
258
259
261
262
262
262
262
263
263
265
265
267
267
270
272
275
280
280
282
290
290
290
290
294
296
296
299
299
303
303
304
311
313
315
315
315
317
320
322
322
322
333
336
341
341
342
344
345
352
352
353
353
359
364
364
364
371
379
381
383
385
388
393
401
401
402
403
408
408
408
409
409
409
411
411
421
426
426
426
434
436
445
447
448
456
456
456
460
465
465
465
465
466
466
477
483
484
488
488
492
494
506
507
509
512
514
514
515
529
530
532
551
556
556
574
579
579
593
595
595
598
616
621
621
640
645
645
663
665
678
683
683
699
704
704
715
717
717
719
719
722
740
745
745
764
769
769
784
787
789
808
813
813
831
836
836
850
852
852
855
873
878
878
897
902
902
920
922
1437
1441
1442
9
9
11
11
11
12
12
13
14
14
15
15
15
17
17
17
18
18
19
22
27
27
27
27
33
35
35
37
38
38
41
42
42
43
43
44
44
45
45
45
45
47
47
51
51
54
55
57
62
62
62
63
64
64
64
66
69
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
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
79
79
79
79
79
79
79
80
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
82
82
82
82
82
82
82
82
83
83
83
84
85
85
85
104
108
108
113
118
119
119
122
122
122
122
124
125
127
127
127
127
127
128
128
128
128
129
129
129
130
130
130
130
130
130
130
131
132
132
134
135
141
141
142
142
142
142
143
143
148
150
150
152
154
155
156
156
156
156
157
157
157
157
157
157
157
157
159
159
159
159
159
160
166
168
170
172
172
172
175
176
176
177
177
177
178
178
184
186
188
188
189
189
189
189
190
190
190
190
191
191
191
191
191
191
191
191
191
192
192
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
194
194
194
194
194
194
194
194
195
195
195
195
195
195
195
195
195
195
195
195
195
195
195
195
195
195
196
196
196
196
196
196
196
196
196
196
197
197
197
198
198
198
198
198
198
201
201
201
201
201
201
201
201
201
203
204
208
208
209
209
210
214
219
220
220
220
221
221
222
225
225
226
227
227
228
230
230
231
231
232
232
250
251
253
256
259
260
260
263
263
264
266
266
268
268
271
273
273
276
276
279
281
281
291
291
295
296
300
302
303
304
305
313
314
318
320
321
323
323
323
332
332
334
337
342
342
343
345
354
354
360
365
372
372
380
380
382
382
384
386
389
400
401
402
403
404
408
408
408
409
409
409
410
410
410
419
419
422
427
427
427
427
435
435
437
437
446
448
457
457
461
466
466
467
467
484
485
485
489
489
493
493
495
495
508
510
513
513
514
515
516
530
531
533
552
557
557
575
580
580
594
596
599
617
622
622
641
646
646
664
666
679
684
684
700
705
705
715
718
720
723
741
746
746
765
770
770
785
788
790
809
814
814
832
837
837
851
853
856
874
879
879
898
903
903
921
923
1438
1442
1443
5
9
12
13
13
14
14
15
15
15
16
18
18
18
18
18
18
18
20
22
22
22
27
27
28
36
38
39
39
40
42
42
42
44
44
44
44
46
46
46
46
46
46
48
48
55
56
57
61
61
62
62
62
62
63
63
63
64
64
65
65
67
69
69
70
75
76
76
76
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
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
81
81
81
81
81
81
81
81
82
82
82
82
82
82
83
83
84
84
84
84
85
86
86
86
105
109
109
114
116
116
119
119
119
123
123
123
123
125
127
127
128
128
129
129
129
130
130
131
131
131
131
133
133
141
142
142
143
143
143
144
144
149
151
153
154
155
156
156
156
156
156
156
156
156
156
157
157
157
157
158
158
158
158
158
160
161
167
169
170
171
173
173
173
173
175
175
175
176
176
176
176
177
177
178
185
187
188
188
189
189
190
190
190
190
190
191
191
191
191
191
191
191
191
191
191
192
192
192
192
192
192
192
192
192
192
192
192
192
192
192
192
193
193
193
193
193
193
193
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
195
195
195
195
195
195
196
196
196
196
196
196
196
196
196
196
196
196
196
196
196
196
196
197
197
197
197
197
197
197
198
198
198
199
199
201
201
201
201
201
203
203
205
210
210
210
221
221
222
222
222
226
226
227
228
228
229
231
231
232
232
233
233
238
247
252
254
257
260
263
263
264
264
265
265
267
267
269
269
272
277
277
279
291
296
296
299
299
301
303
305
306
314
314
315
315
319
321
321
322
322
324
324
332
332
333
333
338
343
343
343
343
345
345
345
346
352
353
353
353
355
355
361
364
364
366
373
373
373
373
380
382
383
383
385
387
390
401
403
404
405
410
410
410
411
411
411
417
420
420
423
428
428
428
428
428
428
435
437
438
438
447
449
456
457
457
457
457
458
462
465
466
466
466
467
467
468
468
477
477
485
486
486
486
486
490
490
493
495
496
496
511
514
514
516
517
531
532
534
553
558
558
576
581
581
595
597
600
618
623
623
642
647
647
665
667
680
685
685
701
706
706
717
719
721
724
742
747
747
766
771
771
786
789
791
810
815
815
833
838
838
852
854
857
875
880
880
899
904
904
922
924
1439
1443
1444
5
9
9
14
15
15
15
15
16
16
18
19
19
21
28
29
29
37
37
39
40
40
41
43
43
43
43
44
44
45
45
45
46
47
47
48
48
49
49
54
56
57
57
57
61
61
62
62
62
63
63
64
64
65
66
66
68
68
68
70
71
71
74
74
74
75
75
75
77
77
77
78
78
78
78
78
78
78
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
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
83
83
84
84
86
87
87
87
106
110
110
117
120
124
124
124
124
125
127
127
127
127
127
127
127
127
129
129
130
130
131
134
134
141
141
141
142
142
142
142
143
143
144
150
152
154
155
156
157
157
157
157
157
157
157
158
158
159
159
159
159
159
161
162
170
171
172
173
173
173
174
174
174
176
177
177
178
186
188
189
189
190
190
191
191
191
191
191
191
192
192
192
192
192
192
192
192
192
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
194
194
194
194
194
194
194
194
195
195
195
195
195
195
195
195
195
195
195
195
195
196
196
196
196
196
196
196
197
197
197
197
197
197
197
197
197
198
198
198
198
198
198
199
199
206
211
211
220
220
222
222
224
224
227
227
228
229
229
230
230
232
232
233
233
234
234
239
239
239
247
248
250
250
253
255
258
261
262
264
265
265
266
266
268
268
270
270
273
275
278
278
279
280
291
297
300
302
303
304
306
316
316
320
325
325
334
334
339
344
344
346
346
347
352
352
352
353
354
354
354
362
362
364
364
365
365
367
371
373
373
374
374
380
382
383
384
384
386
388
388
391
391
401
402
404
406
409
411
411
411
412
412
418
418
424
426
428
428
429
429
429
429
435
437
438
439
439
441
447
448
450
458
458
459
463
465
465
465
466
467
467
467
468
468
475
478
478
484
486
486
486
487
487
491
491
493
495
496
497
497
508
512
512
514
515
515
517
532
533
535
554
559
559
577
582
582
596
598
601
619
624
624
643
648
648
659
666
668
681
686
686
702
707
707
717
720
722
725
743
748
748
767
772
772
787
790
792
811
816
816
834
839
839
853
855
858
876
881
881
900
905
905
916
923
925
1440
1444
1445
5
5
5
7
9
10
11
12
15
16
16
17
17
19
20
20
22
27
29
35
37
37
38
42
44
44
44
46
46
46
46
46
46
49
49
50
50
51
54
54
61
62
62
62
63
63
63
64
64
64
64
64
64
65
65
66
67
67
68
69
71
71
71
71
71
74
74
74
74
74
74
75
75
75
76
76
76
77
77
78
78
78
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
82
82
82
82
82
82
82
82
82
82
84
84
85
87
88
88
88
107
111
111
118
121
121
122
122
122
122
122
123
125
125
125
125
128
128
128
128
128
128
128
128
128
129
129
131
134
135
135
135
142
143
143
144
153
155
156
156
156
157
157
157
157
157
158
158
158
158
158
158
158
159
160
160
160
162
163
171
171
173
173
173
173
174
174
175
175
175
176
177
178
178
179
187
189
190
190
192
192
192
192
192
192
192
192
192
192
192
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
195
195
195
195
195
195
196
196
196
196
196
196
196
196
196
197
197
197
197
198
198
198
198
198
198
198
198
198
198
198
199
199
199
207
207
210
210
212
212
221
222
223
225
228
228
229
230
230
231
231
233
233
233
234
235
235
240
240
247
251
251
254
256
259
262
262
265
267
267
267
269
269
271
271
274
275
279
279
280
281
298
301
303
303
304
306
306
307
314
315
315
315
317
317
321
323
326
326
330
335
335
340
343
345
345
345
347
347
354
355
355
355
363
363
363
365
368
374
375
375
380
380
383
384
387
392
392
401
402
404
404
405
407
410
410
412
412
425
429
430
430
430
430
435
435
438
439
442
446
448
448
448
448
449
451
457
457
459
459
464
467
468
468
468
469
469
476
476
487
487
488
488
492
492
493
493
496
497
513
513
514
515
516
517
517
518
533
534
536
555
560
560
578
583
583
597
599
602
620
625
625
644
649
660
664
667
669
682
687
687
703
708
708
721
723
726
744
749
749
768
773
773
788
791
793
812
817
817
835
840
840
854
856
859
877
882
882
901
906
917
921
924
926
1441
1445
1446
9
9
10
11
11
11
11
12
13
17
18
18
20
21
21
23
27
27
27
29
29
29
39
39
40
41
41
43
44
44
45
45
46
46
46
47
47
47
50
50
51
51
56
56
57
57
61
62
62
62
62
63
63
64
64
64
65
66
66
68
68
68
68
68
69
70
71
72
74
74
74
74
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
77
77
77
77
77
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
82
82
83
85
85
85
86
86
87
88
88
89
89
89
108
112
112
115
115
118
120
120
122
122
122
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
125
125
126
126
126
127
127
128
128
132
134
135
136
136
141
142
143
144
144
145
148
152
154
154
155
155
156
156
156
157
157
157
157
158
158
158
159
159
159
160
160
160
160
160
161
161
161
163
164
165
169
172
172
173
173
173
174
174
174
174
175
175
175
176
176
177
179
180
188
189
190
190
190
190
190
190
191
191
191
191
191
191
192
193
193
193
193
193
193
194
194
194
194
194
194
194
194
194
194
194
194
194
194
195
195
195
195
195
195
195
195
195
195
196
196
196
196
196
196
196
196
196
196
196
196
197
197
197
197
197
197
197
198
198
198
198
198
198
198
198
199
199
199
199
199
199
199
199
199
199
204
208
208
209
209
211
211
213
213
220
220
222
224
226
229
230
231
231
232
232
234
235
236
236
239
240
240
240
240
241
248
250
252
252
252
255
257
260
263
266
268
268
268
268
268
270
270
272
272
275
279
280
280
281
282
299
302
304
307
307
308
314
314
314
315
316
316
316
322
323
327
327
331
336
341
346
346
346
353
355
356
356
364
366
369
373
373
375
381
381
382
382
382
384
388
392
393
393
405
405
406
408
413
413
420
426
428
428
430
431
431
436
436
437
437
437
439
447
449
449
450
452
458
465
466
468
469
469
470
470
486
486
488
488
493
493
494
494
495
495
495
497
505
514
514
517
518
518
519
534
535
537
556
561
561
579
584
584
598
600
603
621
626
626
645
648
648
650
665
668
670
683
688
688
704
709
709
722
724
727
745
750
750
769
774
774
789
792
794
813
818
818
836
841
841
855
857
860
878
883
883
902
905
905
907
922
925
927
1442
1446
1447
1
4
5
9
9
9
11
11
13
14
15
15
18
18
18
19
20
22
22
24
24
27
28
29
29
29
30
37
37
40
44
46
46
46
46
47
47
47
48
48
48
52
52
54
54
57
61
62
62
63
64
65
66
67
69
69
69
71
72
73
74
74
74
74
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
78
78
78
79
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
82
82
82
82
82
82
84
86
88
89
89
90
90
90
109
113
113
121
121
123
123
123
123
124
124
126
126
126
126
126
126
126
127
127
127
127
127
128
128
128
129
133
135
136
137
137
141
142
142
143
145
146
149
153
155
155
156
156
157
157
158
158
160
160
161
161
161
161
161
162
162
162
164
165
166
170
171
173
173
174
174
174
175
175
175
175
175
177
178
178
178
179
179
180
181
189
189
189
190
191
191
191
191
191
191
191
191
191
191
192
192
192
192
192
192
192
192
192
192
192
194
194
194
194
194
194
194
194
194
194
194
194
194
194
194
195
195
195
195
195
195
196
196
196
196
196
196
196
196
196
196
196
196
196
196
196
197
197
197
197
197
197
197
197
198
198
198
198
198
199
199
199
199
199
199
200
200
203
203
203
203
205
205
209
209
210
210
214
214
220
220
221
221
225
227
230
231
231
232
232
233
233
233
235
236
237
237
241
241
242
250
251
258
261
262
262
264
266
267
268
268
269
269
269
271
271
273
273
275
276
280
281
281
282
282
290
300
303
305
308
308
316
317
317
317
323
328
328
331
331
335
335
335
337
342
343
347
347
347
354
354
365
365
367
370
374
383
383
383
383
389
393
393
393
394
394
406
406
409
412
414
414
420
427
429
432
438
438
438
438
448
449
451
453
457
459
466
467
467
471
471
478
487
489
494
494
496
496
496
496
506
506
506
515
515
518
519
519
535
536
538
557
562
562
580
585
585
599
601
604
622
627
627
646
649
651
666
669
671
684
689
689
705
710
710
723
725
728
746
751
751
770
775
775
790
793
795
814
819
819
837
842
842
856
858
861
879
884
884
903
906
908
923
926
928
1443
1447
1448
1
1
5
5
9
15
15
16
16
16
19
20
20
20
21
21
23
23
25
25
29
30
31
39
39
40
44
44
45
46
48
48
48
49
49
49
53
53
56
56
57
62
63
64
64
65
66
68
70
70
71
71
72
73
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
77
77
77
77
77
77
77
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
82
82
82
83
84
85
85
86
87
89
90
90
91
91
91
110
114
114
120
121
121
122
122
124
124
127
127
127
127
127
127
127
128
128
128
128
129
134
135
135
136
136
138
138
143
144
144
144
145
145
146
147
150
154
156
156
156
156
157
157
158
158
159
162
162
162
162
162
163
165
166
167
171
171
173
175
176
176
176
178
179
179
179
180
180
181
182
189
189
189
190
190
190
190
190
190
190
190
190
190
190
190
191
191
191
191
191
192
192
192
192
192
192
192
192
192
192
192
192
192
192
192
193
193
193
193
193
193
193
193
193
194
194
194
194
195
195
195
195
195
195
195
195
195
195
195
195
196
196
196
196
196
196
196
196
196
197
197
197
197
197
197
197
198
198
198
198
199
199
199
199
200
201
201
204
204
210
210
211
211
215
215
222
222
226
228
231
231
233
233
233
234
234
234
236
237
238
238
240
240
242
242
251
251
252
252
259
260
262
263
263
265
265
268
269
270
270
270
272
272
274
274
277
279
281
282
282
291
291
291
291
295
301
304
306
306
315
317
318
318
324
329
329
335
336
336
338
343
343
344
345
348
348
365
366
368
371
373
373
375
384
384
390
394
394
395
395
404
410
412
415
415
428
428
428
430
431
431
433
439
439
449
449
452
454
457
457
458
467
472
472
478
486
486
488
490
495
495
497
497
507
507
516
516
517
519
537
539
558
563
563
581
586
586
600
602
605
623
628
628
647
650
652
667
670
672
685
690
690
706
711
711
724
726
729
747
752
752
771
776
776
794
796
815
820
820
838
843
843
857
859
862
880
885
885
904
907
909
924
927
929
1444
1448
1449
1
1
1
5
5
6
9
10
11
11
16
17
17
18
18
20
21
21
22
24
24
26
26
31
31
37
37
40
40
45
46
46
46
46
49
50
50
50
50
50
50
50
54
54
54
54
57
62
64
64
65
65
66
69
71
71
71
71
71
72
72
73
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
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
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
80
81
81
81
82
82
82
82
82
83
83
85
86
86
87
88
89
90
91
92
92
92
111
114
115
115
119
121
121
122
122
122
122
123
123
123
123
123
124
124
125
125
128
128
129
129
135
139
139
144
145
145
145
146
146
147
148
155
156
157
157
157
158
159
159
159
159
160
163
164
166
167
172
172
173
174
177
177
177
180
180
181
181
185
186
187
187
187
188
188
189
189
189
189
190
190
190
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
192
192
192
192
192
192
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
194
194
194
194
194
194
194
194
195
195
195
195
196
196
196
196
196
196
196
196
196
196
196
197
198
198
198
199
199
199
200
200
201
202
202
203
203
203
203
205
205
211
211
211
212
212
214
216
216
223
223
228
229
229
231
232
232
233
233
234
234
234
235
235
235
237
238
239
239
241
253
253
260
261
261
263
266
266
268
268
269
270
270
270
271
273
273
275
275
278
280
280
282
282
283
283
292
292
296
296
296
302
303
305
307
316
316
325
330
330
331
336
337
337
344
344
345
345
346
349
349
356
367
369
372
373
373
374
374
384
391
393
394
394
394
394
395
396
396
401
411
416
416
428
428
429
429
429
432
434
439
450
453
453
455
455
456
457
458
459
468
469
473
473
486
486
487
487
491
496
497
506
507
507
507
507
508
514
517
517
520
538
540
559
564
564
582
587
587
603
606
624
629
629
648
651
653
668
671
671
673
673
686
691
691
707
712
712
727
730
748
753
753
772
777
777
795
797
816
821
821
839
844
844
860
863
881
886
886
905
908
910
925
928
928
930
930
1445
1449
1449
1450
4
4
4
5
6
7
9
11
11
12
12
17
17
18
18
20
20
20
21
21
21
22
23
27
27
29
29
31
39
39
40
44
44
46
46
46
46
46
47
51
51
51
51
51
55
55
56
56
57
64
66
66
68
72
72
73
74
74
74
74
74
74
75
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
79
79
79
79
79
79
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
86
87
87
88
89
90
90
91
91
92
93
93
93
112
116
116
120
124
124
124
124
125
125
125
125
125
125
126
126
127
128
128
128
128
128
129
129
130
130
136
140
140
146
146
147
147
156
157
157
158
158
158
159
159
160
160
160
160
160
160
161
162
163
164
165
167
168
172
172
173
175
176
176
178
178
178
178
178
179
179
186
187
187
188
188
188
189
189
189
189
189
189
189
189
189
189
190
190
190
190
191
191
191
191
191
191
191
192
192
192
192
192
192
192
192
192
192
192
192
192
192
192
192
192
192
193
193
193
193
193
193
194
194
194
194
194
194
194
194
194
194
194
194
194
194
195
195
195
195
195
195
196
196
196
196
196
196
196
197
197
197
197
197
197
197
197
197
197
198
199
199
199
199
199
199
199
201
201
201
201
202
203
203
203
203
203
203
204
204
204
211
212
212
213
213
215
217
217
224
230
233
233
234
234
235
235
235
236
238
239
240
240
240
242
251
252
252
252
254
254
255
259
261
264
269
270
271
271
272
274
274
274
274
276
276
276
276
279
280
282
283
283
284
284
292
297
297
303
303
304
306
306
306
308
321
326
331
331
337
345
346
346
347
350
350
356
368
370
373
375
375
384
392
395
395
396
397
397
401
402
404
404
412
412
412
417
417
430
430
430
433
435
439
451
456
456
457
459
460
469
469
474
474
488
488
492
497
497
508
508
509
514
515
517
517
518
518
521
539
541
560
565
565
583
588
588
604
607
625
630
630
649
652
654
669
674
674
687
692
692
708
713
728
731
749
754
754
773
778
778
796
798
817
822
822
840
845
845
861
864
882
887
887
906
909
911
926
931
931
1446
1449
1450
1451
4
4
5
5
7
8
11
13
13
18
18
21
21
22
22
23
24
28
28
29
31
31
32
37
37
39
40
46
46
46
46
47
47
47
48
52
52
52
52
52
52
52
54
54
55
55
56
56
56
57
64
64
66
71
71
71
71
71
71
73
73
73
74
74
74
75
75
75
75
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
78
78
78
79
79
79
79
79
79
80
80
80
80
80
80
80
81
81
82
82
82
82
82
82
83
87
88
90
91
92
93
94
94
94
113
115
115
117
117
121
122
122
122
122
122
123
124
124
125
125
125
125
125
125
126
126
126
126
126
127
127
128
128
128
128
128
128
129
130
130
130
130
131
131
131
131
137
141
141
144
144
145
145
157
157
157
158
158
160
160
160
160
160
160
161
161
161
161
161
161
163
164
165
166
168
169
174
174
174
175
175
176
177
177
178
179
179
179
179
179
179
180
180
187
188
188
189
189
189
189
189
189
189
189
189
189
189
189
190
190
190
190
190
190
190
190
190
190
191
191
191
191
192
192
192
192
192
192
192
192
192
192
192
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
193
194
194
194
194
194
194
194
194
195
195
195
195
195
195
195
195
195
195
196
196
196
196
196
196
196
196
197
197
197
197
197
197
198
199
200
202
202
202
202
203
204
205
205
205
213
214
214
214
215
215
218
218
223
223
225
231
234
234
235
235
236
236
236
237
237
239
239
240
240
240
240
241
241
241
251
251
251
252
253
253
253
260
262
263
264
265
268
268
270
271
272
272
273
277
277
277
277
280
280
282
283
284
284
285
285
292
296
297
297
297
297
298
303
307
307
307
309
318
322
327
332
332
335
338
346
346
347
347
351
351
369
371
371
374
376
376
393
394
394
396
396
398
398
401
405
405
410
413
413
413
418
418
418
426
431
431
431
434
436
452
457
457
457
458
460
470
475
475
484
489
489
493
495
495
498
507
507
509
509
514
518
518
519
519
522
535
540
542
561
566
566
584
589
605
608
626
631
631
650
653
655
670
675
675
688
693
693
709
714
715
729
732
750
755
755
774
779
779
790
797
799
818
823
823
841
846
862
865
883
888
888
907
910
912
927
932
932
1447
1451
1452
4
5
5
6
8
9
11
11
13
13
14
18
19
20
20
21
22
23
23
24
25
29
29
29
31
31
31
32
33
33
39
39
39
40
40
40
40
44
48
48
49
49
49
53
53
53
56
56
56
56
56
57
57
57
57
57
57
66
66
66
73
74
74
74
74
74
75
75
75
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
80
80
80
82
84
87
89
91
92
92
93
93
94
95
95
95
114
116
116
118
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
125
125
125
125
126
126
127
128
128
129
132
132
132
132
135
135
136
136
138
142
142
144
145
145
145
146
146
156
158
160
160
161
161
161
161
161
161
161
161
162
162
162
162
162
162
164
165
166
166
167
167
169
169
170
170
174
175
175
178
178
178
178
179
179
179
180
180
180
180
180
181
181
185
185
187
188
188
189
189
189
190
190
190
190
190
190
190
190
190
190
190
190
190
190
190
191
191
191
191
191
191
191
191
191
191
191
191
192
192
192
192
192
192
192
192
193
193
193
193
193
193
194
194
194
194
194
194
194
194
194
194
195
195
196
196
196
196
196
196
196
196
196
196
197
197
197
197
197
197
197
197
197
197
197
198
198
198
198
198
198
199
199
200
201
203
203
203
203
204
205
206
206
212
214
214
219
219
224
224
226
226
230
232
235
235
236
237
239
240
240
240
241
241
241
242
242
242
253
254
254
254
261
263
263
265
266
268
268
269
269
269
272
273
273
274
278
278
278
278
280
280
281
283
284
286
286
298
298
299
304
306
308
308
308
308
310
318
323
323
328
331
333
333
335
336
346
347
347
347
347
348
352
352
356
356
363
372
372
375
377
394
395
399
399
402
404
406
406
406
411
411
414
419
419
419
427
432
432
435
437
453
457
458
458
458
460
460
461
469
469
471
476
476
476
485
490
494
496
499
508
515
517
519
519
519
520
523
536
538
541
543
562
567
567
585
590
600
604
606
609
627
632
632
651
654
656
671
676
676
689
694
694
710
712
712
715
716
724
728
730
733
751
756
756
775
780
791
795
798
800
819
824
824
842
847
857
861
863
866
884
889
889
908
911
913
928
933
933
1448
1452
1453
4
4
4
5
5
7
9
10
13
13
13
18
18
19
20
20
21
22
23
24
25
26
30
30
31
31
33
33
33
33
33
37
37
40
41
41
48
48
48
49
50
50
53
53
54
54
54
54
54
57
57
57
58
58
58
58
58
58
60
60
64
64
66
66
66
66
71
71
71
71
71
73
73
74
74
74
74
74
74
75
75
75
75
75
75
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
78
78
78
79
79
79
79
79
79
80
80
80
80
81
81
81
82
85
88
88
90
92
93
94
94
94
94
95
95
96
96
96
115
117
117
119
123
123
123
123
123
123
123
123
124
124
124
124
124
124
125
125
125
125
125
126
126
127
127
128
128
128
128
128
128
128
128
128
128
128
129
133
133
133
133
135
136
139
141
141
143
143
144
144
145
145
145
146
146
146
147
147
156
157
159
159
162
162
162
162
162
162
163
163
163
163
163
163
165
166
170
170
171
171
176
176
176
179
179
180
180
180
181
181
181
181
181
181
182
182
182
185
186
186
187
188
189
189
189
189
190
191
191
191
191
191
191
191
191
192
192
192
192
192
192
192
192
192
192
192
192
192
193
194
194
194
194
194
194
194
194
194
194
195
195
195
195
195
195
196
196
196
197
197
197
197
197
197
197
197
197
197
197
197
197
197
198
198
198
198
198
198
198
198
199
199
199
199
199
199
200
200
200
200
201
201
202
202
204
204
204
204
215
220
220
223
225
225
231
231
231
233
236
236
237
238
240
241
241
242
242
242
243
243
252
254
255
255
262
264
267
270
270
270
273
273
274
274
275
275
279
279
279
279
281
281
282
282
282
282
284
287
287
297
297
299
299
306
307
309
311
324
324
324
324
329
331
334
334
336
337
348
348
348
349
353
353
354
357
357
364
372
372
373
376
376
376
378
383
394
395
396
400
400
404
405
415
420
420
420
420
427
427
431
431
433
433
436
438
438
448
454
459
459
461
461
462
467
470
470
472
477
477
477
485
485
489
489
491
495
496
497
500
507
509
517
518
519
521
522
524
539
542
544
563
568
568
586
588
588
591
605
607
610
628
633
633
652
655
657
672
677
677
690
695
695
711
713
716
716
729
731
734
752
757
757
776
779
779
781
796
799
801
820
825
825
843
845
845
848
862
864
867
885
890
890
909
912
914
929
934
934
1449
1453
1454
5
5
5
6
8
10
11
11
11
13
20
20
20
20
21
21
21
21
21
23
23
24
24
25
26
27
31
31
31
31
33
34
42
42
44
44
49
51
51
51
54
54
54
55
55
55
57
57
58
58
58
59
59
59
59
60
60
60
60
60
61
61
66
66
66
66
67
67
72
72
73
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
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
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
80
80
80
80
80
81
81
81
82
82
89
91
93
95
95
95
96
96
97
97
116
118
120
120
121
121
122
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
128
128
129
129
129
129
129
129
129
129
130
130
134
134
134
134
140
142
142
144
145
145
146
146
146
147
147
147
147
148
148
148
156
157
159
159
159
160
160
161
161
162
162
162
162
162
162
162
162
164
164
164
164
164
164
166
167
171
171
172
172
172
172
176
177
177
177
179
180
181
181
181
182
182
182
182
182
182
182
183
183
185
186
187
187
187
187
187
188
189
189
189
189
189
190
190
190
190
190
190
190
190
190
190
190
190
192
192
192
192
192
192
192
192
192
192
192
192
192
192
193
193
193
194
194
194
194
194
194
194
194
195
195
195
195
195
195
195
195
195
196
196
197
197
197
197
197
197
197
197
197
197
198
198
198
198
198
198
198
199
199
199
200
200
200
200
200
200
201
201
203
203
205
205
205
205
205
216
221
221
223
232
232
232
233
233
233
234
234
237
237
237
238
239
240
241
242
242
243
243
243
244
253
253
263
263
263
265
266
268
271
271
271
275
275
276
276
280
280
280
280
283
283
283
283
283
288
288
291
298
303
307
307
308
308
310
312
318
318
322
324
324
325
325
330
335
335
335
337
338
349
349
349
354
354
355
355
365
365
374
377
377
377
379
384
384
384
384
394
394
395
396
401
401
405
405
406
406
413
416
421
421
421
421
421
421
432
432
434
434
437
439
439
439
439
439
449
449
449
455
460
460
462
462
468
468
473
478
478
478
478
490
490
492
496
497
497
497
497
498
501
507
507
508
518
518
519
519
522
523
525
540
543
545
564
569
569
587
589
592
606
608
611
629
634
634
656
658
673
678
678
691
696
696
712
714
717
730
732
735
753
758
758
777
780
782
797
800
802
821
826
826
844
846
849
863
865
868
886
891
891
913
915
930
935
935
1450
1454
1455
4
5
6
7
9
11
12
13
13
13
18
18
21
22
22
24
25
26
27
28
32
32
34
35
37
42
44
49
49
50
52
54
54
54
55
55
55
56
56
56
58
58
58
58
58
59
60
60
60
60
60
60
61
61
61
62
62
64
68
68
71
71
71
72
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
75
75
75
75
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
78
78
78
78
78
79
79
79
79
79
79
79
79
80
82
82
82
87
88
90
90
92
92
93
94
96
96
96
97
97
98
98
117
119
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
123
123
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
128
128
128
128
128
128
128
128
130
130
130
130
130
130
131
131
135
135
135
135
141
143
143
145
145
146
147
147
147
148
148
148
148
148
149
149
159
160
160
160
160
161
161
161
161
161
161
161
161
161
162
162
163
163
163
163
163
163
163
163
165
167
168
172
172
172
173
173
176
176
177
178
178
178
179
180
181
182
182
183
183
183
183
183
184
184
186
187
187
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
189
189
189
190
190
190
190
190
190
190
190
191
191
191
191
191
191
191
191
191
191
191
191
192
192
192
193
193
193
193
194
194
194
194
194
194
195
196
196
196
196
197
197
197
197
197
197
197
197
197
197
197
198
198
199
199
199
199
199
199
199
201
201
202
202
204
204
206
206
206
206
206
206
215
217
222
222
223
224
233
234
234
234
234
238
238
238
239
240
240
241
242
242
243
243
243
243
244
244
244
245
261
264
264
264
266
266
267
269
269
272
272
276
276
277
277
281
281
281
281
284
284
284
289
289
292
292
292
292
297
299
304
308
309
309
311
313
316
319
319
325
326
326
331
336
336
336
338
347
350
355
355
366
366
366
366
369
373
375
376
378
378
378
385
385
393
394
395
396
397
402
402
407
407
413
417
419
421
421
422
422
422
422
431
433
433
435
438
440
440
440
450
450
456
460
461
461
474
479
479
479
479
479
479
489
491
491
497
498
498
499
502
506
507
508
509
520
520
523
524
526
541
544
546
565
570
570
588
590
593
607
609
612
630
635
635
657
659
674
679
679
692
697
697
713
715
717
717
718
731
733
736
754
759
759
778
781
783
798
801
803
822
827
827
845
847
850
864
866
869
887
892
892
914
916
931
936
936
1451
1455
1456
7
7
8
10
11
11
12
13
13
13
13
13
23
23
25
25
26
26
27
28
29
33
33
33
35
36
37
42
42
44
47
48
48
48
50
51
51
52
53
54
55
55
56
57
57
59
59
59
59
60
61
61
61
62
62
62
63
63
68
69
71
71
71
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
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
77
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
79
80
80
80
81
82
91
92
93
93
94
95
97
98
99
99
120
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
127
127
127
127
127
128
128
128
128
128
128
128
128
129
129
129
129
129
129
131
131
132
132
136
136
136
136
142
144
145
146
146
147
148
148
149
149
149
150
150
161
161
161
162
162
162
163
163
164
164
164
164
164
164
164
164
166
168
169
173
173
174
174
177
177
178
179
179
179
179
179
179
180
180
182
183
183
183
183
184
184
184
185
185
186
186
187
187
187
188
188
189
189
189
189
189
189
189
189
189
189
189
189
189
189
190
190
190
190
190
190
190
190
190
190
191
191
191
191
191
192
192
192
192
192
192
192
192
192
192
192
192
192
192
192
192
193
194
194
197
197
197
197
197
197
198
198
198
199
199
199
200
200
200
200
200
200
200
201
202
202
203
203
205
205
206
207
207
207
207
211
211
215
218
223
223
224
225
234
235
235
239
239
239
240
241
243
244
244
244
244
245
245
245
246
255
262
262
265
267
267
270
270
271
271
273
273
277
277
278
278
282
282
282
282
284
285
290
290
293
293
297
297
298
307
308
308
308
309
310
310
312
314
317
317
324
324
326
332
336
336
337
337
338
338
338
339
346
351
356
356
357
364
366
366
367
367
374
376
376
379
385
394
396
397
398
403
403
405
406
406
406
408
408
418
422
423
423
423
423
431
439
440
441
449
450
450
450
450
451
457
457
462
462
470
475
477
479
479
480
480
480
480
489
498
498
500
503
507
509
510
518
519
519
519
521
521
524
525
527
542
545
545
547
547
566
571
571
589
591
594
608
610
613
631
636
636
658
660
675
680
680
693
698
698
714
716
718
718
718
718
719
732
734
737
755
760
760
779
782
784
799
802
802
804
804
823
828
828
846
848
851
865
867
870
888
893
893
915
917
932
937
937
1452
1456
1457
9
11
13
13
13
13
13
14
14
14
18
23
26
27
27
28
28
29
30
31
32
32
33
33
34
34
37
37
42
43
48
49
51
51
51
51
51
53
54
54
54
56
56
56
58
58
59
60
60
60
60
60
60
62
62
62
63
63
63
64
64
69
71
71
71
71
71
73
73
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
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
79
79
79
79
79
79
79
79
81
81
81
81
81
81
81
81
93
94
94
95
96
98
99
100
100
115
119
121
121
122
122
122
123
123
123
123
123
123
123
123
123
123
124
124
124
124
125
125
125
126
126
126
126
126
127
127
127
128
128
128
129
129
130
130
130
130
130
130
132
132
133
133
137
137
137
137
143
145
147
148
149
149
150
160
161
161
161
162
162
163
163
163
164
164
165
165
165
165
165
167
169
170
174
174
175
175
177
179
179
179
180
180
180
180
180
181
181
181
181
181
182
182
182
183
183
184
184
184
185
185
186
186
186
186
187
187
187
187
187
187
188
188
188
188
189
189
189
189
190
190
190
190
190
190
190
190
190
190
190
190
190
190
190
191
191
191
191
191
191
191
191
192
192
192
192
192
192
192
192
192
192
193
193
193
193
193
193
193
193
193
195
195
196
197
197
197
197
197
198
198
199
199
199
200
200
201
201
201
201
201
202
203
203
204
204
204
206
206
208
208
208
208
212
212
212
212
219
223
224
224
225
226
235
235
240
240
240
241
242
244
245
245
245
245
246
246
247
255
266
271
271
272
272
274
274
278
278
279
279
283
283
283
283
284
286
291
291
293
296
297
298
299
307
307
307
308
309
309
309
310
313
315
325
333
338
338
339
339
340
346
347
347
347
352
357
357
357
367
368
368
372
375
376
377
377
380
385
394
395
397
399
404
404
405
405
405
406
407
407
407
413
413
419
421
421
423
424
424
427
431
432
440
440
442
451
451
452
457
458
458
460
460
463
463
470
476
480
481
481
481
481
485
489
490
498
499
501
504
507
508
510
518
518
518
519
520
520
520
525
526
528
543
548
548
567
572
572
590
592
595
609
611
611
614
614
632
637
637
652
659
661
676
681
681
694
699
699
715
717
718
718
718
718
719
719
720
733
735
735
738
738
756
761
761
780
783
785
800
805
805
824
829
829
847
849
852
866
868
868
871
871
889
894
894
909
916
918
933
938
938
1453
1457
1458
7
7
11
12
14
15
15
15
18
23
23
23
23
28
29
29
30
31
33
33
35
35
35
36
42
42
43
44
44
44
44
48
48
51
52
54
55
57
57
57
59
59
59
59
59
60
61
61
61
61
61
61
62
62
63
63
63
64
69
69
70
71
71
71
71
71
71
71
71
71
71
71
72
72
74
74
74
74
74
74
75
75
75
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
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
79
79
79
80
80
80
80
80
80
80
82
82
82
82
82
82
82
82
85
90
94
95
96
96
97
97
99
100
101
101
116
120
120
121
121
122
122
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
127
127
127
127
127
129
129
129
130
130
131
131
131
131
133
133
134
134
138
138
138
138
146
148
149
150
160
160
160
161
162
162
162
163
163
163
163
164
166
168
170
171
175
175
176
176
177
179
180
181
181
181
182
182
182
182
183
183
183
183
183
183
183
183
183
184
184
185
185
185
185
186
187
187
187
187
187
187
187
187
187
187
187
187
188
188
188
188
188
188
189
189
190
190
190
190
190
190
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
191
192
192
192
192
192
192
192
192
192
192
193
193
193
193
196
196
196
196
196
196
196
197
198
198
198
199
199
199
199
200
202
203
204
204
204
205
205
205
206
206
206
207
207
209
209
209
209
212
212
213
213
215
220
224
225
225
226
226
235
236
241
241
241
242
243
243
245
246
246
247
247
248
264
267
271
272
272
273
273
275
279
279
280
280
284
284
284
284
287
292
292
293
297
299
300
309
310
310
310
311
314
316
319
324
324
326
334
336
338
339
339
340
340
346
348
348
353
358
358
366
366
368
372
376
377
378
378
381
394
395
397
397
398
400
405
405
407
408
408
408
411
414
414
420
422
425
425
427
432
433
441
443
450
450
452
452
457
459
461
461
464
464
477
479
479
481
482
482
485
490
491
500
502
505
507
508
510
510
511
520
521
521
521
526
527
529
544
549
549
568
573
573
591
593
596
610
615
615
633
638
638
653
657
660
662
677
682
682
695
700
700
716
718
719
719
720
720
721
734
739
739
757
762
762
781
784
786
801
806
806
825
830
830
848
850
853
867
872
872
890
895
895
910
914
917
919
934
939
939
1454
1458
1459
1
7
7
8
8
8
8
13
15
16
16
18
18
18
20
21
23
23
24
25
26
29
30
30
31
32
33
33
34
34
36
36
37
42
42
42
44
44
52
53
54
54
56
58
58
58
59
59
59
60
60
60
61
61
63
63
64
64
68
68
70
71
71
71
71
71
72
73
73
73
73
74
74
74
74
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
80
80
80
80
83
83
91
94
96
97
98
98
100
100
101
102
102
102
117
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
124
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
126
126
126
126
126
126
126
126
126
127
127
127
127
127
128
128
128
128
130
134
134
135
135
139
139
139
139
141
145
147
147
149
149
162
163
163
163
167
169
171
172
176
176
177
177
177
177
180
181
182
183
183
183
183
184
184
184
184
184
184
184
185
185
185
185
185
185
185
186
186
186
187
187
187
187
187
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
189
189
189
189
189
189
189
189
190
190
190
190
190
190
190
191
191
191
191
192
192
192
192
192
192
193
193
193
193
193
193
194
194
197
197
198
199
199
199
200
201
203
204
205
205
205
206
206
206
207
207
208
208
210
210
210
210
213
214
214
221
223
225
226
226
237
240
242
242
242
243
244
246
247
247
248
248
249
255
255
264
268
271
273
273
276
280
280
281
281
285
285
285
285
288
293
293
297
298
300
308
310
311
311
312
315
315
317
317
319
324
324
325
325
335
339
340
340
347
347
349
349
349
354
357
357
359
359
367
376
377
378
379
379
382
398
398
399
401
406
406
406
408
409
409
412
412
421
421
421
423
426
426
431
433
434
435
442
444
451
458
460
460
462
462
462
465
465
470
470
478
480
483
483
489
491
492
503
506
511
511
512
519
521
522
522
527
528
530
545
550
550
569
574
574
592
594
597
611
616
616
634
639
639
658
661
663
678
683
683
696
701
701
717
719
720
720
722
735
740
740
758
763
763
782
785
787
802
807
807
826
831
831
849
851
854
868
873
873
891
896
896
915
918
920
935
940
940
1455
1459
1460
1
1
7
7
7
7
8
8
11
11
13
14
14
16
17
17
24
25
25
26
27
31
32
33
35
35
35
36
37
42
51
53
54
55
55
55
59
59
59
59
59
60
60
61
61
64
64
64
65
65
68
71
71
71
71
71
71
71
71
71
71
71
72
72
73
73
74
74
75
75
75
75
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
77
77
77
77
78
78
79
80
80
80
81
81
81
82
84
84
92
95
97
98
98
99
99
99
101
101
101
102
102
103
103
103
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
128
129
129
129
131
135
135
136
136
140
140
140
140
142
145
145
146
146
146
148
148
150
150
161
163
164
164
165
165
165
165
165
165
168
168
170
170
172
173
177
177
178
178
178
178
179
179
179
181
181
183
183
184
184
184
185
185
185
185
185
185
185
185
185
186
186
186
186
186
186
186
186
187
187
187
188
188
188
188
188
189
189
189
189
189
189
189
189
189
189
189
189
189
190
190
190
190
190
190
190
190
191
191
192
192
192
192
192
192
192
192
193
193
193
193
193
193
193
193
193
195
195
195
196
196
196
196
197
198
198
199
200
200
201
201
201
201
201
201
201
201
202
204
205
206
206
206
207
207
207
209
209
211
211
211
211
212
212
214
222
224
224
226
226
227
227
238
240
241
243
243
243
243
243
244
245
247
248
248
249
249
250
253
256
256
267
269
271
272
274
274
277
281
281
282
282
283
286
286
286
286
289
294
294
297
298
300
300
301
309
309
313
318
318
326
326
336
336
340
341
341
347
348
355
355
358
358
360
360
366
366
368
372
377
378
379
379
380
380
383
383
399
399
402
407
407
407
407
421
421
422
422
422
427
427
427
432
434
434
436
439
440
443
445
450
452
460
461
461
466
466
468
471
471
479
479
479
481
484
484
485
490
492
492
500
504
504
507
512
512
520
520
528
529
531
546
551
551
570
575
575
593
595
598
612
617
617
635
640
640
659
662
664
679
684
684
697
702
702
720
723
736
741
741
759
764
764
783
786
788
803
808
808
827
832
832
850
852
855
869
874
874
892
897
897
916
919
921
936
941
941
1456
1460
1461
1
11
13
14
15
15
16
16
17
18
18
23
25
27
28
32
33
33
33
34
36
36
38
42
43
44
44
48
51
51
56
59
60
60
60
60
61
61
61
61
61
62
62
66
66
68
68
68
69
71
71
71
72
73
74
74
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
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
79
79
79
80
80
81
81
81
81
82
82
85
85
94
94
96
98
100
102
102
102
103
103
104
104
104
122
123
123
123
123
123
123
123
123
124
124
124
124
125
125
125
125
125
126
126
126
126
126
127
127
129
130
130
131
131
131
131
131
131
132
136
136
137
137
141
141
141
141
143
146
146
147
147
147
147
147
147
148
148
148
149
149
151
151
162
162
162
163
163
165
165
166
166
166
166
166
169
169
171
171
173
174
178
178
179
179
180
180
180
180
182
182
183
183
183
183
184
184
185
185
185
185
185
186
186
186
186
186
186
186
186
186
186
186
186
187
187
187
187
187
187
187
187
187
188
188
188
188
188
188
188
188
188
188
188
189
189
189
189
189
190
190
190
190
190
190
190
190
190
190
190
190
190
190
190
191
191
191
191
191
191
192
192
192
192
192
192
192
193
193
193
193
193
193
193
193
193
193
194
194
195
196
196
196
196
197
197
197
198
198
199
199
201
201
202
202
202
202
203
205
206
207
207
207
208
208
208
210
210
212
212
212
212
213
223
224
226
227
227
228
228
239
240
244
244
244
244
244
245
246
248
249
249
250
250
251
254
254
267
270
272
273
275
275
278
282
282
283
283
284
284
284
284
287
287
287
287
290
295
295
301
301
302
314
319
319
319
319
322
327
327
336
337
337
338
342
342
348
348
349
349
356
356
356
361
361
366
366
367
367
376
378
379
384
384
397
403
408
408
414
423
423
423
428
428
431
433
440
440
440
440
441
444
446
450
450
451
461
461
462
462
462
467
467
469
469
479
479
480
480
480
485
485
489
491
505
505
508
510
530
532
547
552
552
571
576
576
596
599
613
618
618
636
641
660
663
665
680
685
685
698
703
703
718
721
724
737
742
742
760
765
765
787
789
804
809
809
828
833
833
853
856
870
875
875
893
898
917
920
922
937
942
942
1457
1461
1462
1
7
7
8
8
11
14
15
15
15
15
16
16
17
18
18
19
19
23
23
23
25
25
25
29
29
30
30
33
34
35
35
36
37
39
42
44
44
45
45
53
53
54
59
61
61
61
61
62
62
62
62
62
63
63
67
67
71
71
71
71
72
73
73
74
74
74
74
74
74
74
74
75
75
75
75
75
75
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
77
77
77
77
77
77
77
77
78
78
78
79
79
82
82
82
82
86
86
94
95
95
99
99
100
101
103
104
104
105
105
105
120
121
121
123
123
123
123
124
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
128
128
131
131
132
132
132
132
133
137
137
138
138
142
142
142
142
148
148
148
148
148
149
149
149
149
152
152
163
164
164
164
164
167
170
170
172
172
174
175
179
179
180
180
181
181
183
183
183
183
183
183
184
184
184
184
184
184
185
185
185
185
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
187
187
187
187
187
187
188
188
188
188
188
188
188
188
188
189
189
189
189
189
189
189
189
189
190
190
190
190
190
190
190
191
191
191
191
191
191
191
192
192
192
192
192
192
192
193
193
194
195
195
197
197
198
198
198
200
200
200
200
204
206
206
207
208
208
208
209
209
209
211
211
212
212
213
213
213
213
214
224
224
226
227
228
228
229
229
240
241
243
245
245
245
245
245
245
246
247
249
250
250
251
251
252
271
271
273
274
276
276
279
283
283
284
284
285
285
288
288
288
288
291
296
302
302
311
315
317
320
320
320
320
323
328
337
338
338
338
339
343
343
350
350
357
362
368
368
377
377
379
379
380
384
385
385
394
404
409
409
409
414
419
424
424
424
429
432
432
434
434
441
441
442
445
447
449
450
451
452
463
463
463
468
468
481
481
481
486
486
490
490
492
492
497
506
506
507
509
522
531
533
548
553
553
572
577
577
597
600
614
619
619
637
640
640
642
661
664
664
666
666
681
686
686
699
704
704
718
718
719
722
725
738
743
743
761
766
766
788
790
805
810
810
829
834
834
854
857
871
876
876
894
897
897
899
918
921
921
923
923
938
943
943
1461
1462
1463
8
8
8
9
9
15
16
16
18
18
18
18
18
20
20
23
24
25
25
25
26
30
31
32
33
33
34
35
35
36
36
38
38
40
40
44
46
46
51
51
54
54
55
57
59
60
61
62
62
62
63
63
63
64
64
64
64
64
64
68
68
70
71
71
71
71
73
73
73
73
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
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
77
77
77
77
77
77
78
78
78
79
79
83
87
87
96
96
99
100
100
101
102
103
104
105
106
106
106
121
121
121
122
122
122
122
122
122
122
122
122
122
122
123
124
124
124
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
129
129
134
138
138
139
139
143
143
143
143
149
149
149
150
150
153
153
164
164
164
164
168
173
173
175
176
180
180
181
181
181
183
184
184
184
184
184
185
185
185
185
185
185
185
185
186
186
186
186
186
187
187
187
187
187
187
187
187
187
187
187
187
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
189
189
189
189
190
190
190
190
190
190
190
190
190
191
191
191
192
192
192
193
193
193
193
195
195
196
196
198
199
199
199
199
200
200
200
205
207
207
209
209
209
210
210
212
212
212
212
213
213
214
214
214
214
225
227
228
230
230
234
241
243
244
246
246
246
247
250
251
251
252
252
253
256
262
267
272
272
274
274
277
277
280
284
284
285
285
285
289
289
289
289
292
292
295
295
297
300
311
316
318
318
321
321
323
323
327
327
327
329
339
339
339
340
344
344
348
349
349
349
351
351
358
358
363
364
369
369
377
379
380
380
381
385
385
385
386
386
394
395
397
397
405
409
410
410
420
425
425
428
428
430
432
434
435
435
441
443
446
448
450
452
453
461
462
462
462
464
464
464
469
469
471
477
482
482
482
487
487
490
492
493
493
498
498
498
507
507
507
508
510
510
510
522
532
534
549
554
554
573
578
578
598
601
615
620
620
638
641
643
662
667
667
682
687
687
700
705
705
717
718
719
720
721
723
726
739
744
744
762
767
767
789
791
806
811
811
830
835
835
855
858
872
877
877
895
898
900
919
924
924
939
944
944
1457
1462
1463
1464
7
10
10
15
15
17
18
19
21
21
25
26
27
31
31
32
32
33
34
35
35
35
35
35
36
36
36
36
36
37
39
39
41
41
44
44
46
53
53
54
55
57
58
58
60
61
61
61
63
63
63
65
65
65
65
69
69
71
71
71
71
71
71
71
71
71
71
71
72
72
73
73
73
73
73
74
74
74
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
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
81
81
81
84
88
88
100
101
101
102
103
104
104
105
105
106
107
107
107
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
125
125
125
125
125
125
126
126
126
126
126
126
126
130
130
130
130
130
135
139
139
140
140
144
144
144
144
149
150
150
154
154
162
164
165
165
166
166
166
166
166
166
169
174
174
176
177
180
181
181
181
182
182
182
182
184
184
184
184
185
185
186
186
186
186
186
186
186
186
187
187
187
187
187
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
188
189
189
189
189
189
189
189
189
189
190
190
190
190
190
191
191
191
191
191
191
191
191
191
191
192
193
193
193
193
193
193
195
196
198
200
201
201
202
202
202
202
202
202
206
208
209
210
210
211
211
213
213
214
214
215
215
215
215
226
228
231
231
235
235
235
242
244
244
245
245
247
247
247
248
251
252
252
253
253
254
256
263
271
273
273
278
278
281
285
285
285
286
286
290
290
290
290
293
293
293
293
296
297
298
317
322
322
327
328
328
330
339
340
340
340
345
345
348
348
348
349
350
350
350
358
359
361
361
364
365
370
377
379
380
381
381
382
386
386
387
387
394
398
398
406
411
411
420
420
424
424
426
426
429
431
432
434
435
436
436
441
444
447
447
449
449
450
451
453
461
461
461
462
463
463
463
465
470
470
471
478
483
483
488
488
490
492
493
494
494
499
499
507
508
508
511
511
511
528
533
535
550
555
555
574
579
579
593
597
599
602
616
621
621
639
642
644
663
668
668
683
688
688
701
706
706
720
721
722
724
727
740
745
745
763
768
768
783
790
792
807
812
812
831
836
836
850
854
856
859
873
878
878
896
899
901
920
925
925
940
945
945
1463
1464
1465
8
8
10
18
19
20
22
22
27
27
33
33
34
35
36
36
36
37
37
37
38
40
40
42
42
46
46
46
51
51
54
55
57
58
58
59
61
62
63
63
63
64
64
66
66
66
66
66
66
68
69
69
70
70
70
71
71
71
71
71
71
72
72
72
72
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
75
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
77
77
77
77
77
77
77
77
77
77
77
78
78
78
79
79
79
82
82
82
85
87
87
89
89
92
97
101
102
104
105
106
107
108
108
108
120
121
122
123
123
123
123
123
123
123
123
123
124
124
124
124
125
125
126
126
127
130
131
131
131
131
132
132
132
132
132
132
136
140
140
141
141
145
145
145
145
149
149
149
150
150
150
151
155
155
163
163
164
164
166
166
167
167
167
167
170
175
175
177
178
181
181
181
181
181
181
181
182
182
182
183
183
183
183
183
183
183
184
184
184
184
184
184
185
185
185
185
185
185
186
187
187
187
187
188
188
188
188
188
188
189
189
189
189
189
189
189
189
189
189
189
189
189
189
189
189
190
190
190
190
190
190
190
190
190
190
190
190
190
190
191
191
192
193
193
193
193
197
199
199
200
200
202
202
203
203
203
203
206
207
207
207
209
209
211
211
212
212
214
214
215
215
216
216
216
216
227
232
232
236
236
243
246
246
248
248
248
249
252
253
253
254
254
255
264
264
272
272
274
274
274
279
279
282
286
286
287
287
291
291
291
291
294
294
294
297
297
298
299
300
300
311
311
318
320
323
323
323
328
329
329
339
340
340
340
341
341
346
346
350
351
351
351
360
362
365
365
365
369
369
371
377
377
380
381
383
385
386
386
386
386
387
388
388
395
397
399
399
399
407
409
409
412
412
425
425
427
427
430
432
432
432
435
436
445
450
450
450
451
453
453
454
463
464
464
464
466
471
471
478
478
482
482
484
484
489
489
490
490
493
494
498
499
499
499
499
500
508
509
509
510
512
512
512
512
522
522
529
531
534
536
551
556
556
575
580
580
598
600
603
617
622
622
640
643
645
664
669
669
684
689
689
702
707
716
721
723
725
728
741
746
746
764
769
769
784
788
791
793
808
813
813
832
837
837
855
857
860
874
879
879
897
900
902
921
926
926
941
946
946
1464
1465
1466
10
10
10
18
19
20
21
23
23
25
25
27
27
28
32
33
36
37
37
38
38
38
39
43
43
44
44
46
53
53
54
55
57
58
58
59
60
61
61
63
63
63
63
63
63
65
65
67
67
70
70
71
71
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
74
74
74
74
74
74
74
74
74
74
74
74
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
79
86
88
88
90
98
101
103
105
106
106
107
107
108
109
109
109
120
121
121
121
122
122
123
123
123
123
123
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
125
125
126
128
132
132
132
132
133
133
133
133
137
141
141
142
142
146
146
146
146
150
150
151
151
152
156
156
165
165
165
165
171
176
176
178
179
181
182
182
182
182
182
183
183
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
184
185
185
185
185
185
185
185
185
186
186
186
186
186
186
186
188
188
188
188
188
188
188
188
189
189
190
190
190
190
190
190
190
191
191
191
191
191
191
193
193
194
199
201
201
201
201
201
207
208
208
208
210
212
212
213
213
215
215
216
217
217
217
217
224
224
228
233
233
235
236
236
236
236
237
244
244
245
245
245
247
247
247
249
249
249
250
251
253
254
254
255
255
256
256
256
265
265
265
265
272
274
275
275
275
280
280
283
287
287
288
288
292
292
292
292
293
294
294
294
294
295
295
297
298
300
301
301
309
312
312
319
320
324
324
329
341
341
342
342
347
347
349
351
352
352
361
363
366
370
370
372
378
378
379
379
379
381
384
387
387
388
389
389
397
398
407
408
410
410
412
413
413
424
426
426
428
431
433
433
433
434
434
434
436
446
451
451
454
454
455
462
464
465
465
467
472
472
483
483
485
485
490
490
491
491
492
492
492
494
500
500
501
510
510
510
511
513
520
523
523
532
535
537
552
557
557
576
581
581
599
601
604
618
623
623
641
644
646
665
670
670
685
690
690
703
708
717
721
722
724
726
729
742
747
747
765
770
770
789
792
794
809
814
814
833
838
838
856
858
861
875
880
880
898
901
903
922
927
927
942
947
947
1465
1466
1467
8
8
10
15
18
18
20
24
24
25
27
27
28
33
33
34
36
37
38
38
39
40
44
44
46
46
46
51
51
53
54
55
57
58
58
59
60
62
62
63
63
63
63
64
64
64
66
66
67
67
68
68
68
68
68
68
70
71
71
71
71
71
71
71
71
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
74
74
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
78
78
79
79
79
81
87
89
89
91
99
102
102
104
106
107
108
108
109
109
110
110
110
121
121
121
121
122
122
122
122
122
122
122
123
124
124
125
125
125
125
125
126
126
126
126
126
126
126
126
126
129
133
133
138
142
142
143
143
147
147
147
147
148
149
150
150
150
150
151
151
151
151
151
152
153
155
155
157
157
165
165
165
172
177
177
179
180
181
181
181
181
181
181
181
182
182
182
182
183
183
183
183
183
183
183
183
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
184
185
185
185
185
185
185
185
186
186
186
186
186
186
186
187
187
187
187
187
188
188
188
188
188
190
190
190
190
190
190
191
191
191
191
191
191
191
192
192
192
193
194
195
199
201
201
201
202
202
207
207
209
211
213
213
214
214
215
215
216
216
217
218
218
218
218
225
225
226
226
226
229
234
234
237
237
238
244
244
244
245
245
246
246
246
250
250
250
251
252
254
254
255
255
256
256
257
257
257
263
265
265
266
266
272
274
275
276
276
276
281
281
284
284
288
288
289
289
293
293
293
293
295
295
296
296
298
299
300
301
302
302
302
310
310
320
325
325
327
330
342
342
343
348
348
350
350
362
364
367
369
371
371
380
380
380
380
385
386
386
388
388
390
390
398
398
399
399
408
408
409
413
414
414
424
429
432
434
435
435
435
435
447
452
452
455
455
463
463
468
473
473
482
484
484
486
491
491
493
493
493
493
499
499
501
501
511
511
511
511
512
512
514
521
521
533
536
538
553
558
558
577
582
600
602
605
619
624
624
642
645
647
666
671
671
686
691
691
704
706
706
709
717
721
723
725
727
730
743
748
748
766
771
771
790
793
795
810
815
815
834
839
857
859
862
876
881
881
899
902
904
923
928
928
943
948
948
1466
1467
1468
10
10
10
20
20
21
21
25
25
25
27
27
27
28
29
29
33
34
35
37
37
38
38
38
38
39
40
41
44
44
45
45
46
53
53
53
54
54
54
54
55
57
58
58
59
60
61
65
65
65
65
67
68
68
68
69
69
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
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
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
79
81
81
82
88
90
92
103
105
107
109
110
110
111
111
111
119
119
120
120
122
122
123
123
123
124
126
126
130
131
131
131
134
134
139
143
143
144
144
148
148
148
148
149
150
151
151
152
152
152
153
154
156
156
158
163
165
166
166
167
167
173
177
177
178
178
180
181
181
181
181
181
181
182
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
184
184
184
185
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
187
187
187
187
188
188
188
188
188
188
189
189
190
190
190
190
190
191
191
191
191
191
191
191
191
193
195
195
196
196
198
199
201
202
202
203
203
210
212
214
214
215
215
216
216
217
217
218
219
219
219
219
227
227
227
227
230
235
235
236
236
238
238
246
246
247
247
247
251
251
251
252
253
255
255
255
256
256
257
257
258
266
267
267
272
272
275
276
277
282
282
285
285
285
285
285
289
289
290
290
294
294
294
294
294
294
296
296
297
300
300
301
302
321
323
326
326
327
328
340
344
349
349
356
363
365
368
369
381
381
386
387
391
391
400
400
410
414
414
415
415
420
424
425
430
433
435
436
436
448
453
453
453
469
469
474
474
482
487
492
492
494
494
500
512
513
513
515
534
537
539
554
559
559
578
583
601
603
606
620
625
625
643
646
648
667
672
672
687
692
692
705
707
710
717
721
722
724
726
728
728
731
731
744
749
749
767
772
791
794
796
811
816
816
835
840
858
860
863
877
882
882
900
903
905
924
929
929
944
949
949
1467
1468
1469
2
8
8
10
10
10
10
18
18
21
22
26
26
27
27
29
29
29
29
29
33
33
38
38
39
39
40
41
42
46
46
46
46
46
51
51
54
55
55
58
58
58
59
60
64
65
66
66
68
68
69
69
69
70
70
70
71
71
71
71
71
71
72
72
72
72
72
72
73
73
73
73
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
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
77
78
78
78
78
78
78
79
79
82
82
89
91
93
101
102
104
104
106
106
107
108
110
111
111
112
112
112
119
119
120
120
120
121
121
121
122
122
122
122
122
122
122
122
122
123
123
123
124
124
124
124
131
131
132
132
133
133
133
133
135
135
140
144
144
145
145
149
149
149
149
150
150
150
151
151
151
152
152
153
153
155
157
157
159
164
164
167
167
167
167
167
167
174
177
178
178
179
179
179
181
182
182
182
182
182
182
182
182
182
182
182
182
183
183
183
183
183
183
183
183
183
183
184
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
185
185
185
186
186
186
186
186
186
186
186
186
186
186
186
186
186
187
187
187
187
187
187
187
187
187
187
187
187
187
188
188
189
190
190
190
190
192
192
197
197
199
199
199
199
199
200
200
203
203
203
203
203
203
208
211
213
215
215
215
216
216
217
217
218
218
220
220
228
228
231
236
236
237
245
247
247
248
248
252
252
252
253
254
256
257
257
258
258
259
265
265
267
273
273
274
274
274
276
278
283
283
286
286
286
290
290
291
291
295
295
295
298
301
301
301
302
302
303
312
322
323
327
327
328
329
339
345
350
350
352
357
364
365
366
369
369
370
381
386
387
388
392
392
398
399
399
399
401
401
410
411
415
415
415
415
416
416
420
425
426
431
434
436
436
440
449
450
454
454
465
470
470
475
475
478
482
483
488
493
494
499
501
511
511
512
512
512
513
514
514
514
516
523
535
538
538
540
540
555
560
560
579
581
581
584
602
604
604
607
607
621
626
626
644
647
649
668
673
673
688
693
693
706
708
711
721
722
723
727
732
732
745
750
750
768
771
771
773
792
795
795
797
797
812
817
817
836
838
838
841
859
861
861
864
864
878
883
883
901
904
906
925
930
930
945
950
950
1468
1469
1470
2
3
10
10
10
10
11
11
20
20
21
23
25
25
27
27
27
27
29
30
38
38
39
39
39
40
40
40
40
40
40
41
42
43
44
44
46
46
46
46
47
47
56
56
57
57
59
60
61
61
61
65
66
66
67
69
69
70
70
71
71
71
71
71
71
71
71
71
72
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
75
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
79
79
79
79
79
92
94
105
106
107
107
108
109
112
113
113
113
120
120
121
122
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
124
124
125
125
125
125
132
133
133
133
133
133
133
134
134
136
141
145
145
146
146
149
149
150
150
150
150
150
151
151
151
152
152
156
158
160
165
165
168
168
168
168
168
168
168
168
175
178
179
179
179
179
180
180
180
181
181
181
182
183
183
183
183
183
183
183
183
183
183
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
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
187
187
187
187
187
187
187
187
188
188
188
188
188
188
188
188
188
188
188
188
188
191
191
193
193
198
198
200
200
200
200
200
201
201
204
204
204
204
204
204
204
204
208
212
214
215
216
216
217
217
219
219
221
221
228
232
236
237
237
238
246
246
248
253
253
253
254
255
257
257
258
259
260
266
275
275
275
275
279
284
284
286
287
291
291
292
292
294
296
296
296
299
302
303
303
304
312
318
323
327
328
328
329
330
339
340
340
340
346
351
351
352
358
358
365
365
367
370
370
371
381
386
386
387
388
393
393
398
398
398
399
400
400
400
410
412
413
415
415
416
416
417
417
424
426
427
432
435
436
437
441
441
441
450
450
451
453
453
455
455
465
471
471
471
476
476
478
483
484
489
494
494
499
499
500
511
511
511
512
513
513
513
514
515
517
523
536
541
541
556
561
561
580
582
585
603
608
608
622
627
627
648
650
669
674
674
689
694
694
707
709
712
717
722
723
728
733
733
746
751
751
769
772
774
793
798
798
813
818
818
837
839
842
860
865
865
879
884
884
905
907
926
931
931
946
951
951
1469
1470
1471
1
1
3
4
5
5
8
12
12
18
18
21
24
26
26
28
30
31
33
38
38
38
40
40
40
41
41
42
42
43
44
46
46
46
46
47
47
48
48
51
56
60
61
66
66
66
67
67
68
69
69
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
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
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
78
79
81
87
91
93
93
95
95
107
108
108
109
110
110
110
111
111
112
112
113
114
114
114
118
119
120
120
120
120
121
121
121
121
121
122
123
123
123
123
123
124
125
126
126
133
134
134
134
134
134
134
134
134
135
135
137
142
146
146
147
147
150
150
151
151
151
151
152
152
153
153
157
159
161
166
166
166
168
168
168
168
169
169
169
169
176
179
180
180
180
180
180
180
180
180
181
181
181
181
182
182
182
182
182
183
183
184
184
184
184
184
184
184
184
184
184
184
184
184
185
185
185
185
185
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
186
187
187
187
187
187
187
187
187
187
187
187
187
187
187
187
187
187
188
188
188
188
188
189
189
189
189
189
189
189
189
189
189
189
189
189
189
194
194
194
199
199
201
201
201
202
202
202
204
204
204
204
205
205
205
205
207
213
215
215
216
217
217
218
218
219
219
219
219
220
220
222
222
228
233
236
236
237
238
238
249
254
254
254
255
256
257
257
257
258
258
258
258
259
260
261
261
265
265
267
276
276
280
285
285
286
288
292
292
293
293
294
294
294
294
294
294
295
297
297
301
302
302
302
303
304
304
305
319
324
328
329
329
330
339
341
341
347
352
352
359
359
359
359
366
368
369
371
371
372
385
386
387
388
389
394
394
400
401
401
401
413
416
417
417
418
418
420
425
427
427
436
438
442
442
450
451
454
454
456
456
472
472
472
472
472
477
477
482
484
485
490
492
492
495
498
499
500
501
513
514
514
514
515
516
518
537
542
542
557
562
562
581
583
586
604
609
609
623
628
628
649
651
670
675
675
690
695
695
708
710
713
723
729
734
734
747
752
752
770
773
775
794
799
799
814
819
819
838
840
843
861
866
866
880
885
885
906
908
927
932
932
947
952
952
1470
1471
1472
1
1
1
4
4
4
5
5
5
6
6
12
13
20
20
21
25
27
27
29
29
31
32
38
42
43
43
44
44
45
48
48
49
49
51
56
56
65
65
67
67
67
68
68
68
69
71
71
71
71
72
72
72
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
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
79
79
82
88
92
94
94
96
96
99
104
108
109
111
111
112
113
113
114
115
115
115
116
118
118
119
120
120
120
120
121
121
121
121
121
121
122
122
123
123
123
123
123
124
127
127
132
134
134
134
134
134
135
135
135
135
136
138
143
147
147
148
148
149
149
149
149
150
150
151
151
151
151
152
152
152
152
153
154
160
162
166
166
166
168
168
169
169
170
170
170
170
177
177
179
180
180
181
181
181
181
181
181
182
182
182
182
182
183
183
183
183
183
183
183
183
183
183
183
183
183
183
185
185
185
185
185
185
185
186
186
186
186
186
186
186
186
186
186
187
187
187
187
187
187
187
187
187
187
187
187
187
187
187
187
187
187
187
188
188
188
188
188
188
188
188
188
188
188
188
188
189
189
190
191
195
200
200
202
202
202
202
202
202
204
204
205
205
206
206
206
206
207
214
216
216
217
218
218
219
220
220
221
221
223
223
234
235
236
237
238
239
239
248
250
255
255
255
256
257
258
259
260
261
262
262
265
265
266
266
276
281
286
286
289
293
293
293
294
294
295
295
295
296
298
298
301
301
301
302
303
303
303
304
306
312
312
320
320
325
328
328
330
330
330
330
330
331
340
340
342
342
342
348
352
352
353
353
357
359
359
360
360
365
369
370
372
372
372
386
388
389
390
395
395
399
401
402
402
410
410
414
415
415
417
419
419
424
426
437
439
441
442
442
442
442
443
451
452
453
455
455
455
457
457
465
465
470
472
472
473
473
473
478
478
478
483
485
485
491
493
496
499
501
502
512
514
515
515
516
517
519
523
523
538
543
543
558
563
563
582
584
587
605
610
610
624
629
629
650
652
671
676
676
691
696
696
709
711
714
721
724
730
735
735
748
753
753
771
774
776
795
800
800
815
820
820
839
841
844
862
867
867
881
886
886
907
909
928
933
933
948
953
953
1471
1471
1472
1473
5
5
5
5
6
6
6
6
7
7
8
8
13
18
18
20
21
26
27
28
29
29
30
34
35
38
39
39
40
40
40
43
44
44
45
46
48
49
50
50
51
51
56
57
61
65
68
68
68
68
68
70
71
71
71
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
73
73
73
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
76
76
76
76
76
77
77
77
77
77
77
77
78
78
78
78
78
78
79
89
93
95
95
97
97
105
110
112
112
113
114
114
115
115
116
116
116
116
116
117
117
119
119
120
121
121
121
122
122
122
122
123
123
123
123
123
123
123
124
132
132
132
134
134
135
135
135
136
136
136
136
137
139
144
148
148
149
150
150
150
151
151
152
152
153
153
153
153
153
154
154
154
155
161
161
163
163
164
167
167
167
167
168
168
168
168
168
168
169
169
170
170
178
178
179
180
181
181
181
181
181
181
181
181
181
182
182
182
182
182
182
183
183
183
183
184
184
184
184
184
184
184
184
184
184
184
184
184
184
186
186
186
186
186
186
186
186
186
186
187
187
187
187
188
188
188
188
188
189
189
189
189
189
189
189
189
189
189
189
190
190
190
190
190
191
191
196
200
200
201
201
203
203
203
203
203
203
203
204
204
204
204
204
204
205
205
206
206
215
215
217
217
218
219
219
220
221
221
222
222
224
224
235
236
238
239
240
248
251
256
256
257
258
259
260
261
262
263
263
267
267
276
282
287
287
290
294
294
294
295
296
296
296
297
299
299
303
304
304
304
305
307
310
313
313
321
321
321
321
326
331
331
331
331
332
340
341
349
350
353
353
354
354
360
361
361
369
370
371
373
380
386
387
389
391
396
396
400
400
408
411
411
415
416
420
420
425
425
427
427
435
438
440
443
443
444
453
453
454
458
458
463
466
466
473
474
474
474
479
479
482
484
492
493
494
497
499
500
502
513
513
517
518
520
521
524
524
539
544
544
559
564
564
583
585
588
606
611
611
625
630
630
644
651
653
672
677
677
692
697
697
710
712
715
717
722
731
736
736
749
754
754
772
775
777
796
801
801
816
821
821
840
842
845
863
868
868
882
887
887
901
908
910
929
934
934
949
954
954
1472
1472
1473
1474
7
7
7
7
8
8
8
13
13
14
20
20
20
21
21
21
21
27
29
31
31
31
32
38
40
40
40
41
41
41
44
44
45
46
47
49
51
51
56
56
57
58
58
58
58
65
65
65
66
67
67
67
67
68
68
68
68
68
68
68
68
69
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
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
76
77
77
77
77
79
79
79
79
94
98
98
106
108
108
111
112
113
113
115
116
116
117
117
117
119
119
120
121
122
122
123
123
125
133
133
133
133
134
134
134
134
134
134
135
135
136
136
138
140
145
149
149
150
151
151
153
154
154
154
154
154
155
155
155
155
156
159
162
162
164
164
165
166
166
167
167
168
168
169
169
170
170
176
176
179
179
179
179
179
179
179
179
179
180
181
181
181
181
181
181
181
181
181
181
181
182
182
182
182
182
182
182
182
182
182
183
183
183
183
183
184
184
184
184
184
184
184
184
184
185
185
185
185
185
185
185
185
185
185
185
186
186
186
186
186
186
186
187
187
187
188
188
188
189
189
189
189
189
189
189
189
189
189
190
191
191
191
192
197
200
201
202
202
202
202
202
203
203
203
204
204
204
204
205
205
206
206
207
216
216
218
218
218
218
218
220
220
221
222
222
223
223
225
225
236
236
237
239
241
252
255
255
257
257
258
259
260
261
262
263
263
264
264
268
268
283
288
288
291
293
293
294
295
295
295
296
297
297
297
299
300
300
302
304
305
305
306
308
311
311
319
321
321
322
322
327
328
330
332
332
332
332
341
341
342
342
350
351
351
355
359
359
361
370
370
371
372
372
374
381
381
381
381
386
387
389
389
390
392
397
397
409
409
415
415
416
417
421
421
425
427
428
428
432
436
436
436
436
439
441
442
442
444
444
454
454
454
455
455
459
459
464
464
472
472
474
475
480
480
483
483
485
485
493
494
494
494
494
495
498
499
500
502
502
503
518
519
521
522
522
540
545
545
560
565
565
584
586
589
607
612
612
626
631
631
645
649
652
654
673
678
678
693
698
698
711
713
716
723
732
737
737
750
755
755
773
776
778
797
802
802
817
822
822
841
843
846
864
869
869
883
888
888
902
906
909
911
930
935
935
950
955
955
1473
1474
1475
4
4
5
8
8
8
8
8
9
9
12
12
12
14
15
15
18
18
21
22
22
29
29
30
32
32
40
41
42
42
42
44
46
47
48
49
49
50
50
50
51
52
52
56
56
56
58
58
68
68
69
70
70
70
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
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
74
74
74
74
74
75
75
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
79
80
80
95
99
99
109
112
114
115
115
116
117
117
118
118
118
118
118
119
120
120
121
121
121
122
122
126
127
127
133
133
133
134
134
135
135
136
136
137
139
139
141
141
146
148
148
150
150
151
152
152
155
155
155
155
156
156
156
160
163
163
165
165
166
166
167
168
168
168
169
169
170
170
171
171
175
175
177
177
179
179
179
179
180
180
180
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
182
182
182
183
183
183
183
183
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
184
184
184
184
184
185
185
185
185
185
186
186
186
186
186
186
186
186
186
186
187
187
187
188
188
188
189
189
189
189
189
189
189
189
189
190
190
190
190
190
190
191
192
192
192
193
198
202
202
203
203
203
203
204
204
204
204
204
205
205
206
206
207
207
215
217
217
219
219
221
221
222
223
223
224
224
226
226
236
237
237
239
239
239
239
240
242
248
248
253
255
256
258
258
259
260
261
262
263
264
264
265
265
269
284
289
292
294
294
295
296
296
297
297
297
298
298
298
300
301
301
303
303
304
307
309
322
323
323
328
331
333
333
343
343
351
356
360
366
370
370
372
372
373
373
375
382
382
390
390
391
393
398
398
402
415
415
416
416
417
422
425
427
428
429
429
433
437
437
437
440
442
443
455
456
456
460
460
473
476
481
481
483
485
486
486
494
495
495
496
499
503
503
504
515
519
520
522
541
546
546
561
566
566
585
587
590
608
613
613
627
632
632
650
653
655
674
679
679
694
699
699
714
717
724
733
738
738
751
756
756
774
777
779
798
803
803
818
823
823
842
844
847
865
870
870
884
889
889
907
910
912
931
936
936
951
956
956
1474
1475
1476
4
4
5
5
5
5
5
6
9
9
9
10
10
12
13
15
15
15
15
15
23
23
25
29
31
31
31
31
32
33
33
40
40
42
43
43
44
44
44
47
48
48
48
48
49
50
51
51
51
51
53
54
54
55
55
56
68
68
68
68
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
72
72
72
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
75
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
79
79
80
80
81
81
96
100
100
110
113
113
115
115
115
116
116
116
116
116
117
118
118
119
119
119
119
119
119
119
119
119
120
120
120
120
120
120
121
121
121
122
122
122
122
122
127
127
133
134
134
134
134
135
135
136
136
137
137
138
140
140
142
142
147
149
150
151
151
151
152
153
153
156
156
157
161
166
166
167
167
167
167
167
168
168
168
169
169
169
172
172
176
176
177
177
177
177
178
178
180
180
180
180
181
181
181
181
181
181
181
181
181
181
181
181
181
181
182
182
182
182
182
182
182
182
182
182
183
183
183
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
184
184
184
184
184
184
184
184
184
184
185
185
185
185
185
185
185
185
186
186
186
186
186
186
186
186
187
187
187
187
188
188
188
189
189
189
189
189
189
190
190
190
190
190
191
191
191
191
192
192
192
193
194
199
200
200
203
203
203
203
203
204
204
204
204
204
205
205
205
208
208
208
208
216
216
218
218
218
220
220
223
224
224
225
225
227
227
227
238
240
240
240
241
243
246
249
249
254
256
257
259
261
262
263
264
264
264
265
266
266
268
268
270
275
285
285
288
288
290
293
295
298
298
298
299
299
299
302
302
305
308
310
313
321
321
323
328
329
332
334
334
341
342
342
342
344
344
352
353
354
354
357
359
359
361
370
371
372
373
373
374
374
376
382
391
391
394
399
399
402
411
417
417
418
421
421
423
425
425
428
429
437
438
441
442
443
444
454
455
455
455
456
457
457
461
461
466
472
472
474
477
482
482
483
485
486
487
487
495
495
497
500
504
504
515
520
521
523
524
542
547
547
562
567
567
586
588
591
609
614
614
628
633
633
651
654
656
675
680
680
695
700
700
715
718
721
724
734
739
739
752
757
757
775
778
780
799
804
804
819
824
824
843
845
848
866
871
871
885
890
890
908
911
913
932
937
937
952
957
957
1475
1476
1477
5
5
6
7
10
10
10
10
11
11
12
12
15
16
18
23
26
29
29
30
32
32
32
34
34
42
42
42
44
45
48
48
49
49
50
51
51
51
51
51
52
52
54
54
54
54
55
55
55
55
55
56
56
56
57
58
58
67
68
68
68
70
71
71
71
71
71
71
71
71
71
71
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
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
75
76
76
77
77
77
77
77
77
77
77
77
77
77
78
78
78
79
81
81
82
82
97
101
101
108
109
110
112
113
114
114
114
116
116
116
116
116
116
116
117
117
117
117
118
118
118
118
118
118
119
119
119
119
119
120
120
120
120
120
120
120
121
121
121
121
121
121
121
122
122
128
128
133
133
133
134
134
134
135
135
135
135
138
138
139
141
141
143
143
148
150
150
151
151
152
153
153
154
154
154
157
157
162
165
167
167
167
167
167
167
168
169
170
170
171
171
171
171
173
173
175
175
177
177
177
178
178
178
178
179
179
179
179
179
179
180
180
181
181
181
181
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
183
183
183
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
184
184
184
184
184
184
184
184
184
185
185
185
185
186
186
186
186
186
186
186
186
186
186
186
187
187
187
188
188
189
189
189
189
189
189
189
189
190
190
190
190
191
191
192
192
192
192
192
193
193
194
194
194
195
195
200
201
201
201
203
203
203
203
204
205
205
205
206
206
207
207
207
207
209
209
209
209
209
209
216
218
219
219
219
221
221
224
225
225
226
226
228
228
228
228
228
239
241
241
241
244
247
247
255
257
257
258
260
262
263
264
265
266
267
267
269
269
271
276
276
276
276
286
286
286
286
289
291
294
296
296
296
299
299
299
300
300
300
300
303
303
305
306
309
311
313
322
328
329
330
330
335
335
341
341
341
342
343
343
343
353
353
355
358
359
359
360
360
370
370
372
373
374
374
377
382
389
395
400
400
411
413
418
418
419
422
424
426
426
427
427
427
429
437
439
442
442
442
443
444
454
454
454
455
456
456
456
457
462
462
466
472
472
473
473
478
483
483
483
483
486
487
495
496
498
501
502
522
524
524
543
548
548
563
568
568
589
592
610
615
615
629
634
634
652
655
657
676
681
681
696
701
701
716
717
719
722
735
740
740
753
758
758
779
781
800
805
805
820
825
825
846
849
867
872
872
886
891
891
909
912
914
933
938
938
953
958
958
1476
1477
1478
4
5
8
8
8
8
8
11
11
11
11
12
12
16
17
18
23
23
23
23
27
31
31
31
32
33
33
35
35
40
40
42
45
45
46
46
48
48
48
49
49
50
51
51
52
53
54
55
55
55
55
55
56
56
56
56
57
57
58
58
59
59
65
67
70
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
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
77
77
77
77
77
77
77
78
78
79
79
79
79
79
82
82
83
83
98
102
102
113
114
114
115
115
115
115
116
117
117
118
118
118
119
119
119
119
119
120
120
120
120
120
121
121
121
121
121
121
121
121
122
126
128
128
128
128
134
135
136
136
137
137
137
137
139
139
140
144
144
149
150
151
151
151
152
153
153
153
154
154
154
154
154
155
155
155
158
158
163
165
167
168
168
169
170
171
171
172
172
172
172
174
174
176
176
178
178
178
178
178
179
179
179
179
180
180
180
180
180
180
180
180
180
181
181
181
181
182
182
182
182
182
182
182
182
182
182
182
182
182
182
183
183
183
183
183
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
184
184
184
184
185
185
185
185
185
186
186
186
186
186
186
186
186
187
187
187
187
187
187
187
188
189
190
190
190
190
191
191
191
191
192
192
193
193
194
195
195
195
195
196
196
201
201
203
203
205
206
206
206
207
207
207
207
208
208
208
208
209
209
210
210
210
210
216
218
219
220
220
220
222
222
225
226
226
227
227
229
229
229
229
239
240
242
245
256
258
258
258
258
259
261
263
264
265
266
267
268
268
268
270
270
277
277
287
287
287
290
292
295
297
297
300
301
301
301
301
304
304
305
307
310
312
321
321
323
329
330
330
331
331
336
336
343
344
344
344
354
356
359
361
361
371
371
372
372
372
373
374
375
378
386
396
401
401
402
402
414
419
420
423
425
428
428
428
428
440
441
442
443
443
444
445
456
457
457
457
458
463
463
474
474
479
484
484
484
484
485
485
485
487
497
499
499
502
515
515
523
525
544
549
549
564
569
569
590
593
611
616
616
630
635
635
653
656
656
658
658
677
682
682
697
702
702
711
715
717
720
721
723
736
741
741
754
759
759
780
782
801
806
806
821
826
826
847
850
868
873
873
887
892
892
910
913
913
915
915
934
939
939
954
959
959
1477
1478
1479
5
6
8
9
9
9
12
12
13
13
15
17
18
18
18
18
23
23
24
29
29
31
32
32
36
36
42
42
42
49
50
50
50
51
52
52
53
54
54
55
56
56
57
57
57
58
58
58
58
60
60
67
67
68
68
70
71
71
71
71
71
72
72
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
75
75
75
75
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
78
79
79
79
79
80
80
80
82
82
84
84
99
103
103
113
114
114
115
115
115
116
116
116
116
116
117
117
118
118
118
118
119
119
119
119
119
120
120
120
121
121
121
121
122
122
122
126
133
135
136
137
137
138
138
138
138
140
140
141
145
145
150
152
153
154
154
154
154
154
155
155
155
155
155
155
155
156
156
156
156
159
159
164
166
167
168
169
169
171
173
173
173
173
177
177
177
178
179
179
179
180
180
180
180
181
181
181
181
181
181
181
181
181
182
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
184
185
185
185
185
185
185
185
185
185
185
186
186
186
186
186
187
187
187
187
188
188
188
189
191
191
191
192
192
192
195
195
196
196
196
197
197
202
202
203
203
203
204
207
207
207
207
207
208
208
209
209
209
209
210
211
211
219
220
221
221
223
223
225
225
226
227
227
228
228
228
229
229
229
229
230
230
230
236
241
243
246
249
256
258
258
258
259
259
259
260
262
264
265
266
267
268
268
269
269
277
286
287
287
287
287
288
288
291
293
294
298
301
302
302
302
302
305
305
308
311
311
313
313
321
321
322
322
331
331
332
332
337
337
342
344
345
345
353
353
355
357
357
360
362
362
373
373
373
373
374
376
379
386
387
389
389
397
400
402
402
403
403
414
414
418
418
420
421
424
426
429
429
441
442
444
444
444
445
446
446
455
457
458
458
459
464
464
466
466
470
475
475
480
485
485
486
486
486
486
499
500
500
502
502
503
513
516
516
524
526
545
550
550
565
570
570
591
594
612
617
617
631
636
636
654
659
659
678
683
683
698
703
703
716
718
721
722
722
724
724
737
742
742
755
760
760
781
783
802
807
807
822
827
827
848
851
869
874
874
888
893
893
911
916
916
935
940
940
955
960
960
1478
1479
1480
4
5
5
5
9
10
10
10
10
10
12
13
13
13
13
14
14
15
15
24
25
25
31
31
31
32
32
32
32
33
37
37
40
40
41
42
42
46
47
50
51
51
51
51
52
53
54
55
55
57
57
57
57
58
58
58
58
58
60
67
67
68
68
69
70
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
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
76
76
76
76
76
76
77
77
77
77
77
78
78
80
80
80
81
81
81
83
83
83
83
85
85
100
104
104
106
111
114
114
115
115
115
116
116
116
117
117
117
118
119
119
119
120
120
120
120
120
121
122
122
123
123
123
127
133
134
137
139
139
139
139
142
146
146
151
151
153
155
155
155
155
155
156
156
156
156
156
156
157
157
157
157
160
160
165
166
166
169
170
170
170
170
171
171
171
171
172
177
178
178
178
178
178
178
179
179
179
179
179
180
180
180
180
182
182
182
182
182
182
182
182
182
182
183
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
186
186
187
187
187
187
187
187
187
188
188
189
190
192
193
196
196
197
197
197
198
198
201
202
202
203
203
203
205
206
206
207
207
208
208
208
208
208
209
209
209
209
211
220
224
224
226
226
227
228
228
229
229
230
230
231
231
231
236
237
239
239
242
244
247
249
259
259
260
260
260
261
263
263
264
264
265
266
267
268
268
269
269
270
270
277
288
288
289
289
292
294
294
295
295
297
297
299
299
302
303
303
303
303
305
305
306
306
309
314
314
323
323
331
332
332
333
338
338
343
343
351
354
354
356
358
358
361
363
374
374
375
377
377
380
380
386
390
390
398
401
401
403
403
419
419
421
422
425
427
429
436
442
442
443
445
447
447
456
456
460
464
465
465
467
467
471
476
481
486
487
487
497
499
501
501
503
503
504
514
514
520
525
527
546
551
551
566
571
571
586
590
592
595
613
618
618
632
637
637
655
660
660
679
684
684
699
704
717
719
722
722
722
724
724
725
725
738
743
743
756
761
761
775
782
784
803
808
808
823
828
828
843
847
849
852
870
875
875
889
894
894
912
917
917
936
941
941
956
961
1479
1480
1481
1
5
5
6
6
6
10
11
14
14
14
14
15
15
17
17
18
23
25
29
29
32
33
33
34
38
38
42
42
42
47
48
48
50
51
51
51
52
52
53
56
56
58
58
60
60
60
67
67
68
68
68
68
68
68
68
68
68
68
69
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
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
73
73
73
73
73
73
74
74
74
74
74
75
75
75
75
75
75
76
77
77
77
78
79
80
80
81
82
82
82
84
84
86
86
101
105
105
112
115
115
116
116
117
117
117
118
118
118
118
118
118
118
118
119
119
119
119
120
120
120
120
120
121
121
121
122
122
123
123
124
124
124
127
127
135
136
136
137
137
137
137
138
143
147
147
154
154
155
155
155
155
156
156
156
156
156
157
157
157
158
158
158
158
161
161
166
167
167
167
167
170
171
171
171
171
171
171
172
172
172
172
173
175
175
177
177
177
177
178
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
180
180
180
180
180
180
180
181
181
182
182
182
182
183
183
183
183
183
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
184
184
185
185
185
185
185
185
186
187
187
187
187
187
187
187
188
188
188
189
189
189
190
190
191
193
193
194
197
197
198
198
198
199
199
201
204
206
206
207
207
207
207
207
207
209
209
209
209
209
210
210
210
225
225
227
227
228
229
229
229
229
229
229
230
230
231
231
232
232
232
232
236
240
240
243
245
248
258
258
260
262
264
264
264
265
266
267
267
268
268
269
269
269
270
270
270
271
271
287
287
289
289
290
293
294
295
298
298
300
300
303
303
304
304
304
304
306
306
307
307
310
311
315
315
319
324
324
331
332
332
332
333
334
339
339
352
352
357
358
358
359
362
362
362
364
374
376
381
381
387
389
391
391
391
399
404
404
409
418
420
420
423
426
428
429
437
437
437
437
442
443
443
445
445
446
448
448
461
465
465
466
466
471
471
475
475
477
482
487
487
500
502
502
502
504
504
504
505
521
522
523
526
528
547
552
552
567
572
572
591
593
596
614
619
619
633
638
656
661
661
680
685
685
700
705
718
720
723
725
725
726
726
739
744
744
757
762
762
776
780
783
785
804
809
809
824
829
829
848
850
853
871
876
876
890
895
913
918
918
937
942
942
957
962
1480
1481
1482
1
1
5
5
5
5
6
7
11
11
11
12
15
15
15
15
15
15
16
16
18
23
23
23
25
25
25
34
34
35
39
39
40
40
42
42
42
42
48
49
51
51
52
52
53
53
53
54
54
57
57
58
58
59
60
60
60
60
67
68
68
69
69
69
69
70
70
70
70
70
70
70
70
70
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
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
76
76
76
76
77
77
78
79
81
81
81
83
83
85
85
85
85
87
87
102
106
106
113
115
115
115
115
116
116
116
116
116
116
117
117
117
117
117
117
117
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
120
120
120
120
121
121
121
121
122
123
123
124
124
124
124
125
125
125
125
128
128
128
128
136
137
137
137
137
138
138
138
138
139
144
148
148
154
154
154
155
155
155
155
155
156
156
156
156
157
157
157
157
157
158
159
159
159
159
162
162
162
162
167
167
167
171
171
171
171
172
172
172
172
172
172
173
173
173
173
175
175
176
176
177
177
177
177
177
177
178
178
178
178
178
179
179
179
179
179
179
179
179
179
180
180
180
180
180
180
180
180
180
180
180
180
180
180
180
180
180
180
180
181
181
181
181
181
181
181
181
182
182
182
182
182
182
183
183
183
183
183
183
183
183
184
185
185
185
185
186
187
187
187
187
187
187
187
188
189
189
189
189
189
190
190
190
190
191
191
192
193
194
195
198
198
199
199
199
200
200
202
203
203
205
206
207
208
208
208
208
208
208
209
209
210
210
210
210
211
216
216
220
224
226
226
228
228
229
230
231
231
233
233
233
233
237
239
241
241
241
244
246
249
249
249
256
259
263
265
265
266
267
268
270
270
270
271
271
271
272
272
288
291
294
295
296
297
299
299
299
301
301
304
304
304
305
305
308
308
311
312
316
316
320
325
333
333
334
335
340
340
345
358
360
363
363
363
365
374
377
381
382
382
389
390
400
403
405
405
410
418
424
427
429
438
438
444
446
446
447
449
449
458
462
467
467
476
476
478
483
485
485
487
488
494
502
503
503
503
506
516
523
524
527
529
548
553
553
568
573
573
592
594
597
615
620
620
634
637
637
639
657
662
662
681
686
686
701
703
703
706
719
721
724
726
726
740
745
745
758
763
763
781
784
786
805
810
810
825
830
830
849
851
854
872
877
877
891
894
894
896
914
919
919
938
943
943
958
960
960
963
1481
1482
1483
5
6
6
8
8
12
12
12
12
13
15
15
16
16
17
17
17
17
18
23
24
25
25
25
26
29
34
36
40
40
42
42
42
42
43
43
51
51
52
53
54
54
55
56
58
58
58
60
60
60
60
60
61
61
67
67
67
67
68
68
68
68
68
68
68
68
68
68
69
69
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
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
77
77
77
77
77
77
78
79
80
82
82
82
82
84
84
86
86
87
87
88
88
103
105
105
107
107
114
114
115
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
117
117
117
118
118
118
118
118
119
119
119
119
119
119
120
120
122
125
125
126
126
126
126
128
128
137
137
137
137
138
138
138
138
139
139
139
139
145
147
147
149
149
150
154
156
156
157
157
157
157
158
158
158
158
158
159
163
163
163
163
168
170
170
172
172
172
172
173
173
173
173
174
174
174
174
174
174
174
174
175
175
175
175
175
175
175
175
176
176
177
177
178
178
178
178
178
178
179
179
179
179
179
179
179
180
180
180
180
180
180
180
180
180
180
180
180
181
181
181
181
181
181
181
181
181
181
181
181
181
181
181
181
182
182
182
182
182
182
182
182
184
184
184
184
184
184
184
184
185
185
185
185
185
185
185
187
188
189
190
190
190
190
190
191
191
191
191
191
191
192
192
192
192
193
193
195
196
199
199
200
200
200
201
201
202
206
206
207
208
208
208
208
208
209
209
209
209
210
210
210
210
210
210
211
211
211
211
217
217
218
218
218
225
227
227
229
229
229
230
231
232
232
234
234
234
234
239
240
247
247
250
250
250
257
258
258
260
261
264
264
266
266
267
268
269
271
271
271
271
272
272
273
273
276
287
289
292
295
297
297
298
302
302
304
304
305
306
306
307
307
309
309
312
313
313
317
317
320
320
324
324
324
326
334
334
336
341
341
345
354
359
361
362
364
364
364
378
382
382
382
383
383
390
390
391
391
401
403
406
406
411
411
414
418
419
425
428
430
438
445
447
447
450
450
458
463
467
468
468
475
477
477
484
486
489
495
495
495
503
503
504
504
504
504
507
516
524
524
525
528
530
549
554
554
569
574
574
593
595
598
616
621
621
635
638
640
658
663
663
682
687
687
702
704
707
720
722
722
722
722
725
725
741
746
746
759
764
764
782
785
787
806
811
811
826
831
831
850
852
855
873
878
878
892
895
897
915
920
920
939
944
944
959
961
964
1482
1483
1484
5
5
5
13
13
13
13
14
15
15
16
16
16
16
17
17
18
18
18
25
26
27
29
34
34
37
40
41
41
44
44
53
53
53
53
54
54
54
55
56
57
58
59
59
61
62
62
67
67
68
68
68
68
68
68
69
69
69
69
70
70
70
70
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
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
76
77
77
77
81
83
83
85
85
88
88
89
89
104
106
106
108
114
115
115
115
115
116
116
116
117
117
117
118
118
118
118
118
118
119
119
119
119
120
120
121
121
121
121
121
121
122
122
122
122
122
123
126
126
127
127
127
127
136
136
138
138
138
138
139
139
140
140
140
140
140
140
146
148
148
150
155
155
156
157
157
158
158
158
159
159
159
159
160
164
164
164
164
166
166
169
170
171
171
172
172
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
176
176
176
176
176
177
177
177
178
178
178
178
178
178
179
179
179
179
179
179
180
180
180
180
180
180
180
180
180
180
180
180
180
180
181
181
181
181
181
181
181
181
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
182
183
183
183
184
184
185
185
185
185
185
185
185
185
185
185
187
189
191
191
191
192
192
192
192
192
193
193
193
193
194
194
196
197
199
200
201
201
201
202
202
206
206
207
208
209
210
210
211
211
211
211
211
211
212
212
212
212
219
219
219
219
226
228
228
228
229
229
230
230
230
231
231
233
235
235
235
235
240
240
241
241
248
248
248
251
258
258
259
259
262
265
265
267
267
267
268
268
269
270
272
272
273
273
274
274
277
277
277
277
287
287
288
296
298
298
298
299
299
303
303
306
306
307
307
308
308
310
310
313
314
314
314
314
318
318
324
325
325
327
332
337
342
342
354
362
362
365
379
383
383
384
384
392
392
402
407
407
412
412
412
412
414
419
420
428
429
431
438
445
446
451
451
464
467
469
469
475
485
487
490
496
496
505
505
505
505
508
525
525
525
525
526
529
531
550
555
555
570
575
575
594
596
599
617
622
622
636
639
641
659
664
664
683
688
688
703
705
708
721
723
723
724
724
724
726
726
742
747
747
760
765
765
783
786
788
807
812
812
827
832
832
851
853
856
874
879
879
893
896
898
916
921
921
940
945
945
960
962
965
1483
1484
1485
5
5
5
6
6
6
6
9
14
14
15
17
17
17
17
18
18
18
19
19
27
27
29
29
34
35
38
42
42
44
45
51
51
54
54
55
55
56
56
57
58
60
60
62
62
63
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
73
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
76
76
76
77
77
77
80
80
82
84
84
84
85
85
86
86
89
89
90
90
105
107
107
109
113
114
115
115
115
115
115
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
120
121
121
121
122
122
122
122
122
122
123
123
123
124
127
127
127
127
128
128
128
128
136
137
137
138
138
140
140
140
140
140
140
141
141
141
141
147
149
149
151
156
156
156
157
157
158
158
160
160
161
161
165
165
165
165
166
170
170
170
171
172
172
172
172
174
174
174
174
174
174
174
174
175
175
175
175
176
176
176
176
176
176
177
177
177
177
177
177
177
177
177
177
177
177
178
178
178
178
178
178
178
178
178
178
179
179
180
180
180
180
180
180
180
180
180
180
180
180
180
180
180
180
181
181
181
181
181
181
181
181
182
182
182
182
182
182
182
182
182
182
183
184
184
185
187
187
187
187
188
190
190
191
191
191
191
192
192
192
193
193
194
194
194
194
195
195
195
197
198
200
201
202
202
202
203
203
203
207
207
208
208
208
208
208
209
210
210
212
212
212
212
212
212
213
213
220
220
227
228
229
229
230
231
231
231
232
232
234
236
236
236
236
242
242
249
252
260
260
263
268
268
268
269
269
269
270
271
271
273
273
274
274
275
275
278
278
286
287
288
289
297
299
300
300
304
306
307
308
308
309
309
311
311
312
314
314
314
315
315
319
319
320
325
326
326
331
338
343
343
345
345
358
362
363
363
366
373
380
382
383
383
383
383
384
385
385
390
391
391
391
393
393
403
403
403
408
408
410
412
412
413
413
418
420
421
429
429
429
429
430
432
442
447
452
452
458
458
465
470
470
471
475
476
486
486
488
491
495
496
496
496
496
497
503
504
504
504
506
506
506
506
509
516
516
523
525
525
526
526
527
530
530
532
532
551
556
556
571
576
576
595
597
597
600
600
618
623
623
637
640
642
660
665
665
684
689
689
704
706
709
722
725
725
725
727
727
743
748
748
761
766
766
784
787
787
789
789
808
813
813
828
833
833
852
854
854
857
857
875
880
880
894
897
899
917
922
922
941
946
946
961
963
966
1484
1485
1486
5
5
5
5
7
7
10
14
15
15
15
16
17
17
17
18
18
18
18
18
19
19
20
20
25
25
27
34
34
35
36
36
36
36
39
40
40
43
43
45
53
53
54
56
57
57
58
58
58
61
61
63
63
68
68
68
71
71
71
71
71
71
71
71
71
72
72
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
74
74
74
74
75
75
75
75
75
76
77
77
77
77
85
85
86
86
86
87
87
91
91
106
108
110
113
114
114
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
120
120
120
120
121
121
121
121
122
122
122
122
123
123
123
123
123
124
124
124
125
127
128
128
129
129
129
129
136
136
137
138
138
138
138
140
140
141
141
142
142
142
142
148
150
152
157
161
161
162
162
166
166
166
166
171
171
171
172
172
172
172
172
173
173
173
175
175
175
175
175
175
175
175
176
176
176
177
177
177
177
178
178
178
178
178
178
178
178
178
178
178
178
179
179
179
179
179
179
180
180
180
180
180
180
180
180
181
181
181
181
181
181
182
182
182
182
182
182
182
182
182
182
183
183
187
188
188
188
188
188
188
189
189
190
190
190
191
191
191
191
191
192
192
192
192
193
193
193
196
196
196
198
199
203
203
204
204
204
207
207
208
209
209
209
209
209
210
210
210
210
210
210
210
211
211
213
214
214
220
228
229
230
231
232
232
232
232
232
233
233
235
237
237
237
237
240
241
241
241
243
243
244
248
250
250
253
256
261
261
264
269
269
269
269
270
271
271
272
272
274
274
275
275
276
276
278
287
289
290
298
298
299
299
299
300
301
301
303
305
306
308
309
309
310
310
312
312
315
315
316
316
320
320
326
331
332
332
332
339
343
344
344
346
346
358
363
364
364
367
374
374
374
374
381
384
384
385
386
386
390
390
390
391
392
392
392
401
404
404
404
409
409
413
414
414
414
419
421
421
430
430
431
433
442
443
445
445
448
453
453
456
459
459
466
471
471
471
476
477
487
487
487
487
487
489
492
497
497
498
503
503
503
504
505
505
505
507
507
510
514
517
517
526
527
527
528
533
533
552
557
557
572
577
577
596
601
601
619
624
624
638
641
643
661
666
666
685
690
690
705
707
710
723
725
726
726
728
728
744
749
749
762
767
767
785
790
790
809
814
814
829
834
834
853
858
858
876
881
881
895
898
900
918
923
923
942
947
947
962
964
967
1485
1486
1487
8
8
8
11
15
15
16
17
17
17
17
18
18
18
18
18
18
19
19
20
20
20
21
21
25
27
27
28
29
34
34
34
36
36
40
40
44
44
45
45
46
48
49
51
51
53
53
54
54
54
55
57
58
58
58
59
62
62
63
63
64
64
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
69
70
70
70
71
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
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
75
75
76
77
77
80
84
86
86
87
87
87
88
88
88
92
92
107
109
111
114
114
114
115
115
115
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
119
119
119
120
120
121
121
121
121
122
122
122
122
122
122
122
123
123
123
124
124
124
125
126
129
129
130
130
130
130
137
137
138
139
139
139
141
141
142
142
149
151
153
158
158
158
158
159
159
159
162
162
163
163
167
167
167
167
171
172
173
173
173
173
173
173
173
174
174
174
174
174
174
174
174
174
174
174
175
175
176
176
176
176
176
176
176
176
176
176
176
177
177
177
178
178
178
178
179
179
179
179
180
180
180
180
180
180
180
180
181
181
181
181
181
181
182
182
182
182
182
182
182
182
182
182
182
182
182
182
183
183
183
183
183
185
189
189
189
190
190
192
192
193
193
193
193
194
194
194
197
197
199
200
201
201
204
204
204
204
205
205
208
208
209
210
210
210
211
211
211
211
211
212
212
212
212
214
215
215
220
229
229
230
231
232
233
233
233
234
234
236
238
238
238
238
240
240
240
241
242
242
242
249
250
251
254
257
262
265
269
270
270
270
271
271
272
272
273
273
275
275
276
276
277
277
278
287
288
290
292
298
298
298
299
299
300
300
300
301
306
306
306
307
309
310
310
311
311
313
313
314
314
316
316
321
321
324
327
331
333
333
340
344
344
345
345
359
362
363
364
365
365
368
375
375
382
383
383
385
385
387
387
392
393
393
393
402
402
405
410
410
412
412
414
418
420
425
430
432
434
442
446
446
449
454
454
457
457
467
472
472
475
477
478
488
488
488
490
493
496
496
498
498
505
506
506
506
508
508
511
515
515
525
525
527
529
534
534
553
558
558
573
578
597
602
602
620
625
625
639
642
644
662
667
667
686
691
691
706
708
711
724
726
726
729
729
745
750
750
763
768
768
786
791
791
810
815
815
830
835
854
859
859
877
882
882
896
899
901
919
924
924
943
948
948
963
965
968
1486
1487
1488
5
9
9
15
15
16
17
18
18
19
19
19
19
21
21
21
22
22
25
27
27
27
28
29
29
34
40
41
43
43
44
44
44
45
45
46
47
47
53
53
53
54
54
54
54
54
54
54
54
55
55
55
55
55
56
59
60
62
62
63
64
65
65
65
67
67
67
68
68
68
68
69
69
69
70
70
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
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
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
77
79
81
84
85
87
87
88
89
89
89
89
89
89
89
93
93
110
111
111
112
114
114
114
115
115
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
117
118
118
118
118
118
119
119
119
120
120
120
122
123
123
123
123
124
124
124
125
125
125
126
127
130
130
131
131
131
131
137
139
139
139
140
140
142
142
152
154
156
157
158
159
159
159
159
160
160
163
163
164
164
168
168
168
168
171
173
173
173
173
173
174
174
174
175
175
175
175
175
175
175
175
175
175
175
175
175
175
175
175
176
176
176
176
177
177
177
177
177
177
177
177
177
178
178
178
178
178
178
178
178
178
179
179
179
179
179
179
181
181
181
181
181
181
181
181
182
182
182
182
182
182
182
182
182
182
183
183
183
183
183
183
183
185
187
187
187
187
188
189
189
189
190
191
191
191
192
193
193
194
194
194
194
195
195
198
198
200
201
202
202
202
202
205
205
206
206
207
207
209
209
209
210
210
211
211
211
211
211
212
212
212
212
213
213
215
216
216
229
230
230
232
232
232
233
234
234
234
235
235
237
239
239
239
239
242
243
243
243
250
252
255
257
257
261
261
263
266
269
269
271
271
271
272
272
273
273
276
276
277
277
278
278
287
288
290
290
291
293
297
300
300
301
301
301
302
304
307
307
307
308
310
312
312
314
314
315
317
320
322
322
324
325
332
332
334
334
334
341
346
346
352
358
363
364
365
365
366
369
375
383
384
388
388
391
393
394
394
406
411
411
413
419
419
421
421
426
430
430
433
435
443
445
447
447
447
450
455
455
465
468
471
473
473
476
478
478
488
489
491
494
497
504
506
507
507
509
512
526
530
535
535
554
559
559
574
579
598
603
603
621
626
626
640
643
645
663
668
668
687
692
692
707
709
712
725
730
730
746
751
751
764
769
787
792
792
811
816
816
831
836
855
860
860
878
883
883
897
900
902
920
925
925
944
949
949
964
966
969
1487
1488
1489
5
9
10
13
13
17
17
18
18
18
19
20
20
20
22
22
22
23
23
27
27
29
29
29
29
29
34
35
36
36
42
44
44
44
45
46
47
47
47
47
47
51
51
54
54
54
55
55
55
55
55
55
55
55
56
56
56
56
57
58
58
60
60
61
62
62
64
64
65
65
65
65
65
66
66
67
67
67
67
68
68
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
72
72
72
72
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
74
75
75
82
85
86
88
88
90
90
90
90
90
94
94
105
109
111
111
112
112
112
112
113
113
113
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
117
117
117
117
117
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
120
120
121
121
121
123
124
124
124
125
125
126
126
126
127
128
130
130
131
131
132
132
132
132
137
139
140
141
141
153
153
155
155
157
157
158
158
160
164
164
165
165
169
169
169
169
171
171
174
174
174
174
174
174
175
175
175
175
175
175
175
175
175
176
176
176
176
176
176
176
176
176
176
176
176
177
177
177
177
178
178
178
178
178
178
178
178
178
178
178
178
178
179
179
179
179
179
179
179
179
179
179
179
180
180
180
180
181
181
181
181
182
182
182
182
183
183
183
183
188
188
188
188
188
189
190
190
190
191
192
192
192
192
193
193
194
194
196
199
199
201
202
202
202
203
203
206
206
207
207
208
209
209
209
210
211
211
211
211
212
212
212
212
212
212
212
212
213
213
214
214
217
217
231
233
233
233
234
235
235
235
236
236
238
240
240
240
240
241
243
244
244
251
253
256
262
262
264
267
270
270
271
271
271
272
272
272
273
273
274
277
277
278
278
279
279
291
291
292
298
299
301
301
302
302
303
305
305
308
309
311
313
313
314
314
315
315
316
318
320
323
323
325
326
332
333
342
346
347
347
353
362
364
365
367
370
375
383
384
385
389
389
392
392
404
407
412
412
412
412
414
419
421
422
422
431
434
436
437
445
446
451
456
456
459
466
469
474
474
475
477
488
490
492
495
496
498
505
505
508
510
511
513
517
525
525
527
531
536
536
555
560
560
575
577
577
580
599
604
604
622
627
627
641
644
646
664
669
669
688
693
693
708
710
713
726
731
731
747
752
752
765
768
768
770
788
793
793
812
817
817
832
834
834
837
856
861
861
879
884
884
898
901
903
921
926
926
945
950
950
965
967
970
1488
1489
1490
5
5
9
11
15
18
19
19
19
19
20
20
21
23
24
24
27
27
29
30
34
36
36
37
37
43
44
44
45
45
47
47
48
55
55
56
56
56
56
57
57
57
57
57
57
57
58
58
58
61
61
62
62
62
62
63
63
65
65
65
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
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
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
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
75
75
75
86
87
91
91
91
91
91
91
91
94
94
95
95
106
110
112
112
113
114
114
114
114
114
115
115
115
115
116
116
116
116
116
116
116
117
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
119
119
119
119
119
119
119
119
119
119
119
119
120
120
120
120
120
120
120
122
127
127
127
128
129
131
131
132
132
133
133
133
138
138
138
138
140
141
147
151
154
154
156
156
161
165
165
166
166
170
170
170
170
172
172
172
172
173
173
173
173
173
173
173
173
173
173
173
173
173
173
173
173
175
175
175
175
175
175
175
175
175
175
175
175
176
176
176
176
176
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
177
177
178
178
178
178
178
178
178
178
178
178
178
178
179
179
179
179
179
179
179
179
179
180
180
180
180
180
180
180
180
180
181
181
181
181
182
182
182
183
183
183
183
183
183
183
187
187
187
187
189
189
190
191
191
191
192
193
193
195
200
200
202
203
203
204
204
207
207
207
208
208
210
210
211
212
212
212
213
213
213
213
213
214
214
218
218
232
234
234
234
236
236
236
237
237
239
241
241
241
241
242
242
252
254
257
261
263
263
268
272
272
272
272
273
273
273
274
275
278
278
279
279
280
280
292
292
299
300
300
302
304
309
310
312
314
314
314
314
315
315
316
316
319
324
324
324
326
327
333
333
334
334
343
346
348
354
354
363
363
365
365
366
368
371
383
383
384
385
390
390
404
408
412
412
413
413
413
413
419
421
422
423
423
432
435
437
438
438
438
446
446
447
447
452
457
457
459
467
467
470
475
475
476
476
478
478
493
496
496
496
497
511
512
514
517
525
525
526
526
532
537
537
556
561
561
576
578
581
600
605
605
623
628
628
645
647
665
670
670
689
694
694
711
714
727
732
732
748
753
753
766
769
771
789
794
794
813
818
818
833
835
838
857
862
862
880
885
885
902
904
922
927
927
946
951
951
968
971
1489
1490
1491
1
8
8
8
8
10
12
12
15
20
20
20
20
20
20
20
21
22
24
25
25
30
31
36
38
38
44
46
48
48
49
51
56
57
57
58
58
58
58
59
62
62
63
64
66
66
66
67
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
71
71
71
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
74
74
74
74
74
75
75
76
88
88
88
92
92
92
95
95
96
96
107
110
111
113
113
114
114
115
115
115
115
115
116
116
116
116
116
116
116
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
118
118
118
119
119
119
120
120
120
121
121
121
123
128
128
128
129
130
132
132
133
133
134
134
134
139
139
139
139
140
140
140
140
140
140
141
148
152
155
155
157
157
159
159
159
160
160
160
162
166
166
167
167
171
171
171
171
171
171
171
171
171
173
173
173
173
174
174
174
174
174
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
175
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
177
177
177
177
178
178
178
178
178
178
178
178
178
178
179
179
179
179
180
180
180
180
180
180
180
180
180
181
181
181
181
181
181
181
182
183
183
183
183
183
183
183
187
187
187
187
188
188
188
189
191
192
192
193
194
194
194
194
194
194
194
195
195
195
196
201
201
202
202
203
204
204
204
208
208
208
209
209
209
210
211
211
212
213
214
214
214
214
214
219
219
232
233
235
237
237
237
238
238
240
242
242
242
242
248
253
255
255
258
258
261
269
273
273
274
274
274
275
276
279
279
280
280
281
290
300
303
305
307
310
310
311
313
315
315
316
316
317
317
320
325
325
325
327
335
335
344
349
355
355
355
355
363
365
366
366
367
369
372
382
383
384
385
386
391
391
394
409
414
414
414
419
419
422
423
429
433
436
438
439
439
448
448
453
458
458
468
468
468
468
471
476
476
476
478
479
479
490
494
494
495
496
497
497
498
507
512
513
515
527
527
533
538
538
557
562
562
577
579
582
601
606
606
624
629
629
646
648
666
671
671
690
695
695
712
715
728
733
733
749
754
754
767
770
772
790
795
795
814
819
819
834
836
839
858
863
863
881
886
886
903
905
923
928
928
947
952
952
969
972
1490
1491
1492
1
1
5
9
11
11
11
11
11
12
15
15
15
17
17
20
20
21
21
21
22
22
22
22
22
23
23
25
25
26
26
29
31
32
36
36
38
43
45
47
47
47
49
49
50
51
56
56
58
58
59
59
60
60
62
63
63
64
65
67
67
67
68
68
68
68
68
69
69
69
69
69
71
71
71
71
71
71
71
71
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
77
87
87
89
89
92
92
93
93
93
96
96
97
97
111
111
112
114
114
115
115
115
116
116
116
116
116
116
116
116
117
117
117
118
118
118
118
119
121
122
122
124
124
124
124
125
125
125
129
129
129
130
131
133
134
134
135
135
135
141
141
141
141
141
141
141
141
149
153
157
158
158
158
159
160
160
160
161
161
163
167
167
168
168
172
172
172
172
172
172
172
172
172
173
174
174
174
174
175
175
175
175
175
175
175
175
175
175
175
175
175
175
175
175
175
175
175
175
175
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
178
178
178
178
178
178
178
178
178
178
179
179
179
179
179
179
179
179
180
180
180
180
181
182
184
184
188
188
189
189
189
190
190
192
193
194
194
195
195
195
195
195
195
195
196
196
197
202
202
203
204
204
205
209
209
210
210
210
210
211
211
211
211
211
212
213
214
215
219
220
220
229
234
236
238
238
238
239
239
241
243
243
243
243
244
249
254
257
259
259
261
262
270
273
275
275
275
276
277
277
280
280
280
280
281
281
282
287
301
302
304
304
306
306
307
311
311
312
312
313
313
314
316
316
317
317
318
318
321
325
325
326
326
327
327
327
328
333
334
334
334
336
336
345
346
346
347
347
350
353
355
355
356
356
363
365
366
367
367
368
370
370
373
373
383
385
386
387
392
392
394
410
410
413
413
415
415
415
420
420
421
421
421
423
430
430
430
430
434
437
437
438
439
439
439
439
439
439
440
446
447
447
447
449
449
454
459
459
459
459
466
468
468
469
469
472
476
477
477
478
479
480
480
495
495
496
498
498
499
507
513
514
516
523
528
528
534
539
539
558
563
563
578
580
583
602
607
607
625
630
630
647
649
667
672
672
691
696
696
713
716
729
734
734
750
755
755
768
771
773
791
796
796
815
820
820
835
837
840
859
864
864
882
887
887
904
906
924
929
929
948
953
953
970
973
1491
1492
1493
8
8
12
13
18
18
21
22
22
22
23
23
23
24
24
26
26
27
27
27
29
29
38
38
38
44
44
47
47
48
48
50
51
51
56
57
63
64
64
65
65
65
65
66
67
67
68
68
69
70
70
70
70
70
71
71
71
71
71
71
71
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
73
73
74
74
74
74
74
74
75
75
75
75
90
90
90
93
93
93
94
94
94
96
96
98
98
113
113
113
113
114
114
115
115
115
115
115
115
115
116
116
116
116
116
117
117
117
117
117
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
119
119
119
124
125
125
125
125
126
126
130
130
130
131
132
134
135
135
136
136
136
137
137
142
142
142
142
154
158
158
159
159
159
159
164
168
168
169
169
173
173
173
173
173
173
173
173
173
174
175
175
175
175
175
175
175
175
175
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
177
177
177
177
177
177
177
178
178
178
178
178
178
178
178
178
178
178
178
179
179
179
180
180
180
180
180
180
180
181
181
182
183
183
189
189
189
190
190
193
193
194
194
195
196
196
198
202
202
203
203
204
205
206
210
210
211
211
211
211
211
212
212
212
212
212
212
212
213
214
215
216
220
220
220
221
221
229
230
232
232
235
237
239
239
239
240
240
242
244
244
244
244
244
250
250
255
257
260
260
262
263
271
273
276
276
276
277
278
278
278
278
281
281
281
282
282
283
287
288
290
290
302
302
307
307
313
313
314
314
315
317
317
317
317
318
319
319
319
319
322
327
327
328
328
329
333
333
333
334
335
335
335
344
346
347
347
348
351
356
357
357
363
363
366
367
369
374
374
383
384
386
388
393
393
411
411
414
416
416
422
422
422
422
431
431
435
440
440
440
440
441
446
446
446
447
448
448
448
455
457
460
460
460
460
469
470
470
473
476
476
478
478
479
480
496
496
496
497
499
499
514
515
517
524
529
535
540
540
559
564
564
579
581
584
603
608
608
626
631
641
648
650
668
673
673
692
697
708
712
714
717
730
735
735
751
756
756
769
772
774
792
797
797
816
821
821
836
838
841
860
865
865
883
888
898
905
907
925
930
930
949
954
965
969
971
974
1492
1493
1494
13
14
19
19
20
22
23
24
24
24
24
24
25
25
27
27
27
27
28
28
31
31
32
36
36
38
45
49
49
49
49
50
51
55
56
56
56
57
58
58
58
58
60
61
62
64
64
65
65
65
66
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
70
70
70
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
91
94
94
94
95
95
95
97
97
97
97
99
99
111
111
113
114
114
114
114
114
115
115
115
116
116
116
116
116
116
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
118
119
119
119
119
119
119
119
119
120
120
120
126
131
131
131
132
135
136
136
137
137
137
138
138
139
139
139
142
142
155
160
160
165
169
169
170
170
172
172
173
173
174
174
174
174
174
174
174
174
174
174
174
174
174
174
174
175
175
176
176
176
176
176
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
178
178
178
178
178
178
178
178
178
178
178
178
178
178
179
179
179
179
180
180
180
180
180
181
181
181
181
181
181
181
181
183
184
184
184
192
192
192
195
197
197
199
202
202
203
203
204
204
204
206
207
211
211
211
211
212
212
212
212
212
212
212
212
212
212
213
213
213
213
213
215
215
217
221
221
222
222
229
233
233
236
240
240
240
241
241
243
245
245
245
245
251
251
251
251
256
261
261
261
263
264
272
277
277
277
278
279
279
279
282
282
282
283
283
284
287
291
291
303
308
308
309
313
313
314
315
315
316
317
317
317
319
320
320
320
320
323
325
327
328
328
329
329
335
336
336
336
345
345
347
349
352
355
355
357
364
364
365
365
365
367
370
374
375
375
383
384
386
386
387
389
394
394
394
394
402
411
411
412
415
415
415
417
417
423
423
431
436
439
439
441
441
441
441
448
449
449
449
456
458
458
461
461
468
468
470
474
477
477
478
478
478
479
479
480
487
496
497
497
497
499
499
500
500
507
507
515
515
516
518
524
524
528
528
530
536
541
541
560
565
565
580
582
585
604
609
609
627
630
630
632
642
646
649
651
669
674
674
693
698
713
715
718
725
731
736
736
752
757
757
770
773
775
793
798
798
817
822
822
837
839
842
861
866
866
884
887
887
889
899
903
906
908
926
931
931
950
955
970
972
975
1493
1494
1495
4
4
5
12
14
15
20
20
20
21
21
22
22
22
24
25
28
28
28
28
29
29
29
29
32
38
38
38
47
47
50
50
50
51
52
56
56
56
58
58
61
62
65
65
65
65
66
66
66
67
67
67
67
67
67
68
68
68
68
68
69
69
69
69
69
70
70
70
70
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
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
75
75
86
91
92
95
96
96
96
98
98
100
100
112
112
112
112
112
113
113
113
114
114
115
115
115
115
116
116
116
117
117
117
117
118
118
118
118
118
119
119
119
119
119
120
120
122
122
122
127
130
132
132
132
133
134
136
136
137
137
138
138
138
138
140
140
140
140
142
142
142
142
142
142
156
160
161
161
161
166
170
170
171
171
171
171
172
172
173
173
174
174
175
175
175
175
175
175
175
175
176
176
176
176
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
177
177
178
178
178
178
178
179
179
179
179
179
179
179
180
180
180
180
180
180
181
181
181
181
181
181
181
181
184
185
190
192
193
193
195
195
195
195
196
196
196
197
197
200
204
204
205
205
207
208
210
212
212
212
212
212
213
213
213
213
213
213
213
213
213
213
214
214
214
214
214
218
220
221
221
221
221
222
223
223
230
232
234
234
234
237
241
241
241
242
242
244
244
244
246
246
246
246
249
251
251
252
252
257
257
262
262
262
264
264
273
278
278
278
278
279
279
279
279
279
280
280
283
283
283
284
284
285
288
290
292
292
292
302
302
304
309
309
310
312
315
316
316
317
317
318
318
320
321
321
321
321
324
328
329
329
334
336
337
337
348
350
353
356
366
366
366
366
371
375
375
375
376
376
387
387
388
390
392
395
395
395
395
403
413
416
416
416
418
418
423
431
437
440
442
442
447
449
450
450
457
462
462
469
475
479
479
479
479
480
488
488
488
498
498
500
500
501
501
505
508
508
516
516
517
519
529
529
531
537
542
542
561
566
566
581
583
586
605
610
610
628
631
633
647
650
652
670
675
675
694
696
696
699
714
716
719
726
726
726
732
737
737
753
758
758
771
774
776
794
799
799
818
823
823
838
840
843
862
867
867
885
888
890
904
907
909
927
932
932
951
953
953
956
971
973
976
1494
1495
1496
5
5
5
5
5
5
6
8
11
11
20
20
20
21
22
22
22
22
23
25
25
25
26
29
29
29
29
30
30
31
31
32
36
36
38
49
49
49
50
51
51
51
53
56
62
63
66
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
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
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
92
93
95
97
97
97
99
99
99
99
101
101
112
113
113
114
114
114
114
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
118
118
120
120
122
123
123
125
125
125
126
126
126
128
131
133
133
133
134
135
137
137
138
138
139
139
139
139
141
141
143
143
143
143
157
160
160
160
161
161
161
162
162
167
171
171
171
171
171
172
172
172
172
172
172
173
173
173
173
173
173
174
174
174
174
174
174
174
175
175
176
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
177
177
177
177
177
177
177
177
178
178
178
178
178
178
178
178
178
178
178
178
178
180
181
181
181
181
181
181
182
182
185
185
186
186
190
191
191
193
194
195
195
196
196
196
196
197
197
201
205
205
206
206
208
209
210
211
211
213
213
213
214
214
214
214
214
214
214
215
215
215
215
215
215
219
222
222
223
224
224
232
233
238
242
242
242
242
243
243
245
245
245
247
247
247
247
252
253
253
258
261
263
263
263
272
274
279
279
279
280
280
280
281
281
284
284
284
285
285
286
290
291
300
303
303
305
305
310
310
313
313
316
316
317
317
318
318
318
319
319
322
322
322
322
325
325
329
330
330
335
335
347
349
351
354
355
355
357
367
367
372
376
376
377
377
388
388
391
393
393
396
396
404
404
414
415
417
417
417
419
423
438
439
441
443
443
448
448
458
460
463
463
468
468
470
476
480
480
481
489
489
499
499
501
501
502
506
506
517
517
517
518
520
528
530
530
538
543
543
562
567
567
582
584
587
606
611
611
629
632
634
648
651
653
671
676
676
695
697
700
715
717
720
726
727
727
733
738
738
754
759
759
772
775
777
795
800
800
819
824
824
839
841
844
863
868
868
886
889
891
905
908
910
928
933
933
952
954
957
972
974
977
1495
1496
1497
6
6
7
7
14
14
15
22
23
23
23
24
26
26
26
26
27
29
29
29
29
30
30
31
31
32
38
38
38
47
47
50
50
52
52
54
54
55
56
57
58
58
64
64
65
65
65
65
65
65
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
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
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
93
94
96
96
98
98
98
100
100
101
101
102
102
110
113
113
113
113
114
114
114
114
114
114
114
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
117
118
118
118
118
119
119
121
121
125
126
126
126
127
127
129
132
134
134
134
135
136
138
138
139
139
140
140
140
140
141
141
141
143
143
143
143
143
143
143
143
144
144
158
158
159
161
161
161
161
162
162
162
162
163
163
168
168
170
170
171
171
171
171
171
171
171
171
171
171
171
171
171
171
171
172
172
172
172
172
172
172
173
173
173
173
173
173
173
173
173
173
173
173
173
173
174
174
174
174
174
174
174
174
174
174
174
175
175
175
175
175
175
175
175
175
175
175
175
175
176
176
176
176
176
176
176
176
177
177
178
178
178
178
178
178
178
178
178
178
178
178
178
178
179
179
179
179
181
181
181
181
182
182
183
183
187
187
190
194
194
195
195
197
202
206
207
207
209
210
210
211
211
211
211
212
213
213
213
214
214
214
214
214
214
214
215
215
216
216
216
216
216
216
220
221
221
223
223
225
225
233
233
234
234
237
239
241
243
243
243
243
243
244
244
246
248
248
248
248
251
251
253
259
262
262
264
264
264
264
273
273
273
273
275
279
279
280
280
280
281
281
281
282
285
285
285
286
286
287
291
291
292
292
301
301
306
306
311
311
314
318
318
319
319
319
323
323
323
323
325
326
326
327
331
331
347
350
352
355
355
355
356
356
367
373
375
376
376
376
376
377
378
378
386
392
397
397
405
405
405
405
415
415
418
420
439
439
439
440
444
444
459
460
464
464
468
468
469
469
477
479
479
480
482
488
489
489
489
489
490
499
500
500
503
518
518
518
518
519
521
528
539
544
544
563
568
568
585
588
607
612
612
630
633
635
649
652
654
672
677
677
696
698
701
716
718
721
727
727
734
739
739
755
760
760
776
778
796
801
801
820
825
825
842
845
864
869
869
887
890
892
906
909
911
929
934
934
953
955
958
973
975
978
1496
1497
1498
4
5
7
7
8
8
11
11
15
24
24
27
27
27
27
28
30
30
30
30
31
31
31
31
32
32
32
36
36
38
38
38
38
49
49
50
51
53
53
54
54
54
55
55
55
55
55
56
56
58
58
59
59
62
63
67
67
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
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
71
71
71
71
71
71
71
71
71
71
71
71
71
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
75
75
95
97
99
99
99
102
102
103
103
111
111
111
111
112
113
113
114
114
114
114
114
114
115
115
115
115
116
116
116
117
117
117
117
118
118
119
119
119
119
120
120
120
122
122
130
135
135
135
136
137
140
140
141
141
141
141
141
141
141
142
142
144
144
144
144
145
145
159
159
160
161
161
162
162
162
162
163
163
164
164
167
167
169
169
169
169
169
169
171
171
171
171
172
172
172
172
172
172
172
172
172
172
172
172
172
172
172
172
172
172
172
172
172
173
173
173
173
173
173
173
173
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
175
175
175
175
175
176
176
176
176
176
176
176
176
176
176
176
176
178
178
178
178
178
178
179
179
179
179
179
179
181
181
181
183
183
184
184
188
188
193
193
193
197
197
203
205
205
207
208
208
210
211
211
212
212
212
212
212
212
213
213
213
213
213
213
213
213
213
213
213
214
214
215
215
215
215
215
215
215
215
216
216
217
217
221
222
226
226
235
235
240
242
244
244
244
245
245
247
249
249
249
249
252
260
262
264
265
265
265
265
274
274
276
280
281
281
281
282
283
286
286
286
287
287
288
293
293
307
307
307
312
312
315
317
319
319
320
320
320
324
324
324
324
326
327
327
327
328
332
332
337
351
353
356
357
357
367
374
377
377
378
379
379
383
393
395
398
398
403
405
405
406
406
411
415
416
416
419
421
438
439
440
440
441
445
445
450
460
465
465
470
470
478
480
480
483
490
490
491
496
501
501
504
508
516
518
518
519
519
520
522
524
528
529
540
545
545
564
569
569
586
589
608
613
613
631
634
636
650
653
653
655
655
673
678
678
697
699
702
717
719
719
722
722
735
740
740
756
761
761
777
779
797
802
802
821
826
826
843
846
865
870
870
888
891
893
907
910
910
912
912
930
935
935
954
956
959
974
976
976
979
979
1497
1498
1499
4
5
6
9
9
14
14
15
19
22
22
24
24
28
28
29
29
29
31
31
31
32
32
32
33
33
38
38
38
38
39
39
47
47
49
50
54
54
54
54
55
55
55
55
55
56
56
56
56
57
58
60
60
64
64
64
64
65
65
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
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
74
76
76
94
94
96
98
98
98
98
99
99
100
100
100
103
103
104
104
112
112
112
112
113
113
113
113
114
114
114
114
115
115
115
115
116
116
116
117
117
119
119
120
123
123
123
123
123
131
136
136
136
137
138
141
141
142
142
142
142
142
142
143
143
143
143
143
143
145
145
145
145
160
161
162
162
163
163
163
164
164
165
165
168
168
170
170
170
170
170
170
171
171
171
171
172
172
172
172
173
173
173
173
173
173
173
173
173
173
173
173
173
173
173
173
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
175
175
175
175
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
177
177
177
177
178
178
178
178
178
178
178
178
179
179
184
184
185
185
185
189
189
190
190
191
193
194
194
196
197
204
206
206
208
209
209
211
212
213
213
213
213
214
214
214
215
215
216
216
216
216
216
216
216
216
217
217
221
222
223
227
233
234
234
234
236
236
241
243
245
245
245
245
246
246
248
250
250
250
250
251
251
253
261
262
264
265
266
266
266
266
274
277
279
281
282
282
282
283
284
287
287
287
288
288
289
291
292
292
292
294
294
303
308
308
308
308
308
313
313
313
316
317
318
320
320
321
321
325
325
325
325
328
328
328
329
333
333
337
352
353
354
357
358
358
375
376
376
378
378
380
380
383
384
386
386
394
395
399
399
406
407
407
411
416
417
417
420
422
422
439
441
441
442
446
446
450
461
466
466
466
471
471
479
481
484
489
489
491
491
496
497
499
499
502
505
508
519
520
520
521
523
524
529
530
541
546
546
565
570
570
587
590
609
614
614
632
635
637
651
656
656
674
679
679
698
700
703
718
723
723
736
741
741
757
762
778
780
798
803
803
822
827
827
844
847
866
871
871
889
892
894
908
913
913
931
936
936
955
957
960
975
980
980
1498
1499
1500
4
5
5
5
10
10
11
11
15
22
24
24
25
25
28
29
30
31
31
31
32
32
32
32
32
32
32
32
33
33
34
34
36
40
40
49
49
49
50
50
50
50
55
55
55
55
56
56
56
57
57
57
57
58
58
58
60
64
64
64
64
65
65
67
67
67
67
68
68
68
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
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
73
73
73
73
73
73
73
74
74
74
74
74
77
77
97
99
99
99
100
100
100
101
101
105
105
112
112
113
113
113
113
114
114
114
115
115
115
115
115
115
116
116
116
116
116
116
116
117
117
120
123
124
124
124
124
126
127
132
137
137
137
138
139
140
142
142
142
142
142
142
142
142
142
142
143
143
143
143
143
143
143
144
144
144
144
161
161
161
161
162
162
162
162
163
163
164
165
165
166
166
167
167
167
167
167
169
169
169
171
171
171
171
171
171
171
172
172
172
172
173
173
173
173
173
173
174
174
174
174
174
174
174
174
174
174
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
175
175
175
175
175
175
176
176
176
176
176
176
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
177
177
178
178
178
178
178
178
179
179
179
179
180
180
184
185
185
186
187
187
189
190
190
191
191
192
192
196
196
196
197
197
197
205
205
207
207
210
210
212
212
213
213
213
213
214
214
214
215
215
215
216
216
217
217
217
217
217
217
218
221
221
222
223
228
233
233
233
234
235
235
235
242
244
245
246
246
246
247
247
249
251
251
251
251
252
252
262
262
262
265
266
267
267
274
278
279
279
280
283
283
283
284
288
288
289
290
291
291
291
292
293
293
293
303
306
308
308
309
309
309
313
314
314
317
318
319
321
321
322
322
326
326
326
326
328
329
329
329
334
334
354
355
358
359
376
377
381
381
383
387
387
395
400
400
405
405
407
415
417
418
421
423
423
423
423
423
430
439
440
442
442
447
447
462
467
467
467
472
480
482
485
490
496
500
500
501
503
504
506
517
518
518
520
522
524
528
530
531
542
547
547
566
571
582
586
588
591
610
615
615
633
636
638
652
657
657
675
680
680
699
701
704
719
724
724
737
742
742
758
761
761
763
772
779
781
799
804
804
823
828
839
843
845
848
867
872
872
890
893
895
909
914
914
932
937
937
956
958
961
976
981
981
1499
1500
1501
5
6
6
6
11
11
14
14
15
22
24
24
24
25
26
26
26
29
29
29
29
30
31
32
33
33
33
33
34
34
34
34
35
35
40
41
47
47
50
51
51
55
56
56
57
57
58
58
58
58
60
60
60
67
67
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
73
73
73
73
73
73
74
74
74
74
76
76
78
78
98
100
100
101
101
101
102
102
103
103
103
103
106
106
110
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
114
114
115
115
115
116
116
116
116
116
116
116
117
117
117
117
117
121
123
123
125
125
126
126
126
127
127
127
133
138
138
138
139
140
141
143
143
143
143
143
143
143
144
144
144
144
145
145
145
145
159
160
162
162
163
163
164
166
166
167
167
168
168
168
168
168
169
169
170
170
170
170
170
171
171
171
171
171
171
171
171
172
172
172
172
172
172
172
172
172
173
173
173
173
174
174
174
174
174
175
175
175
175
175
175
175
176
176
176
176
176
176
176
176
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
178
178
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
179
180
180
180
180
180
180
181
181
185
185
186
186
187
188
188
190
191
191
194
195
197
197
197
197
198
198
198
198
205
206
211
211
212
212
212
213
213
214
214
214
214
215
215
215
215
215
216
218
219
220
221
222
223
224
226
226
229
235
236
236
236
243
245
247
247
247
248
248
250
250
250
250
250
252
252
253
253
263
263
263
264
264
264
266
268
268
278
279
279
280
281
284
284
284
285
289
289
290
291
293
294
294
294
309
310
310
310
315
315
317
318
319
320
322
322
323
323
327
327
327
327
328
329
329
329
330
330
335
335
337
337
345
354
354
356
358
358
359
360
366
376
377
378
382
382
384
386
388
388
388
395
395
396
401
401
406
411
416
418
418
422
424
424
424
431
431
431
439
440
442
442
443
443
448
448
450
450
458
463
467
467
468
468
471
471
473
479
481
483
486
489
491
497
499
501
501
501
504
505
507
508
508
518
519
520
523
524
525
529
531
531
543
548
548
567
572
587
589
592
611
616
616
634
637
639
653
658
658
676
681
681
700
702
705
720
725
725
738
743
743
759
762
764
773
777
780
782
800
805
805
824
829
844
846
849
868
873
873
891
894
896
910
915
915
933
938
938
957
959
962
977
982
982
1500
1501
1502
1
5
5
5
7
11
11
12
12
14
15
24
24
26
26
26
26
26
30
31
32
34
34
35
35
35
35
36
36
36
36
41
52
52
53
55
57
57
58
58
58
58
59
59
60
60
60
60
64
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
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
72
72
72
73
73
73
73
74
74
74
74
75
77
77
79
93
98
99
101
102
103
103
104
104
107
107
108
108
108
109
111
111
111
111
111
112
114
114
114
114
114
114
114
114
115
115
115
115
115
115
116
116
116
116
117
117
117
119
120
122
124
124
126
127
127
127
127
128
128
128
128
134
139
139
139
140
141
142
142
142
143
143
143
143
144
144
144
144
144
144
144
145
145
145
146
146
159
160
161
162
163
163
164
164
165
167
167
168
169
169
169
169
169
169
169
169
170
170
171
172
172
172
172
172
172
172
172
173
174
174
174
174
174
174
174
174
175
175
176
176
176
176
176
177
177
177
177
177
177
177
177
177
177
177
177
177
178
178
178
178
178
179
179
179
179
179
179
179
179
180
180
180
180
180
180
181
181
181
181
182
182
187
188
189
189
192
192
194
195
195
195
196
197
197
197
198
198
198
198
199
199
205
206
207
212
212
213
213
214
214
215
215
215
215
216
217
219
220
221
223
224
225
227
230
234
236
237
237
244
245
245
246
248
248
248
248
249
249
249
251
251
251
251
253
253
254
254
264
265
265
265
265
269
269
279
280
281
282
285
285
285
286
287
287
288
288
290
290
291
292
292
294
295
295
303
303
308
308
310
311
316
316
318
319
320
323
323
324
324
328
328
328
328
330
330
331
331
335
336
336
338
338
346
357
359
359
360
361
367
367
367
367
376
376
377
378
383
383
386
387
393
396
396
397
402
402
405
405
407
415
417
423
424
425
432
432
443
443
444
444
448
449
449
451
451
459
464
469
469
472
472
474
480
480
480
480
482
484
487
489
489
490
499
500
505
506
506
508
509
509
518
518
520
521
524
526
528
530
544
549
549
568
570
570
573
588
590
593
612
617
617
638
640
654
659
659
677
682
682
701
703
706
721
726
726
739
744
744
760
763
765
778
781
783
801
806
806
825
827
827
830
845
847
850
869
874
874
895
897
911
916
916
934
939
939
958
960
963
978
983
983
1501
1502
1503
1
1
1
5
6
6
8
13
13
14
14
14
15
15
15
15
24
24
26
27
27
27
29
31
31
32
32
32
33
34
36
36
36
36
36
37
37
41
41
42
47
52
54
56
58
58
60
60
60
60
60
60
61
61
64
65
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
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
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
73
73
74
74
74
74
74
74
75
76
78
78
80
99
100
102
104
104
105
105
108
108
108
108
109
109
109
109
109
109
110
110
110
112
112
112
112
112
112
113
113
113
113
113
113
114
114
114
115
116
116
116
117
120
121
123
124
125
125
127
127
127
128
128
128
128
129
129
135
140
140
140
141
141
141
142
142
142
142
143
143
143
143
143
143
144
144
144
144
145
145
145
146
146
146
146
146
146
146
147
147
160
161
161
162
162
163
164
165
166
168
169
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
171
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
176
176
176
176
176
176
177
177
177
178
178
179
179
179
179
179
179
179
179
179
179
179
180
180
180
180
181
181
181
181
181
181
181
181
181
182
182
183
183
188
189
190
190
191
193
193
194
194
194
196
196
196
196
197
197
198
198
199
199
199
200
200
206
207
208
213
213
213
214
214
215
215
215
215
216
216
217
217
217
217
217
217
217
218
220
221
221
222
224
226
228
231
235
235
243
245
246
246
247
249
249
250
250
252
252
252
252
254
254
255
265
266
266
270
270
273
279
280
281
282
284
286
286
287
288
289
291
291
292
293
293
293
301
304
304
309
312
317
317
318
318
320
320
320
320
321
324
324
325
325
329
329
329
329
331
331
332
336
336
337
337
347
347
352
356
358
358
360
360
361
368
368
375
376
377
378
379
384
384
387
387
388
388
394
394
398
403
403
405
405
406
406
416
416
417
418
418
424
424
426
431
432
432
432
432
433
444
444
445
449
449
450
450
460
460
465
470
470
471
473
473
481
481
483
485
488
488
489
490
491
500
500
501
501
506
507
507
507
509
518
518
519
519
522
525
527
529
529
531
531
545
550
550
569
571
574
589
591
594
613
618
618
639
641
655
660
660
678
683
683
704
707
722
727
727
740
745
745
761
764
766
779
782
784
802
807
807
826
828
831
846
848
851
870
875
875
896
898
912
917
917
935
940
940
961
964
979
984
984
1502
1503
1504
5
5
5
9
11
11
14
14
15
16
16
27
28
29
32
33
33
33
33
34
34
34
35
35
36
37
37
38
38
40
40
40
42
43
43
47
52
52
55
57
58
59
59
61
61
62
62
65
65
65
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
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
70
70
71
71
71
71
71
71
71
71
71
71
71
71
74
75
75
76
77
79
81
100
102
102
103
105
105
105
105
109
109
109
109
111
112
112
112
113
113
113
113
113
113
114
114
114
114
115
115
116
116
117
117
124
124
124
124
126
127
128
128
128
129
129
129
130
130
136
141
141
142
142
142
143
143
144
144
144
145
145
146
146
146
147
147
147
147
147
147
148
148
160
160
161
161
163
164
164
164
165
165
165
166
167
169
169
169
169
169
169
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
171
171
172
172
172
172
172
172
172
172
172
172
172
172
172
172
173
173
173
173
173
173
173
173
173
174
174
174
174
174
174
174
174
174
174
174
174
175
175
176
176
176
176
176
176
176
178
178
178
178
178
178
178
178
178
179
179
179
179
179
179
179
180
180
180
180
180
180
180
180
180
181
181
181
182
182
184
184
189
190
190
191
191
191
192
194
194
195
195
195
195
196
196
197
197
197
197
197
198
198
198
198
199
199
200
205
207
208
209
214
214
214
214
215
215
216
216
216
216
217
217
218
218
218
218
218
219
221
221
222
222
224
224
225
227
229
232
244
244
246
248
249
249
250
250
250
250
251
253
253
253
253
254
254
255
255
256
266
266
271
271
274
274
274
274
279
280
282
282
282
283
285
287
287
288
289
289
290
292
292
293
294
302
302
308
308
310
313
318
318
321
321
321
322
325
325
326
326
329
330
330
330
330
333
338
338
348
348
348
348
357
358
359
362
368
376
378
379
380
385
385
389
389
399
404
404
407
407
416
418
418
419
419
422
425
427
433
433
434
442
446
451
451
461
461
461
461
466
471
471
471
481
484
486
489
489
491
492
502
502
507
508
510
520
520
523
526
528
529
531
532
532
546
551
551
570
572
575
590
592
595
614
619
619
640
642
656
661
661
679
684
684
705
708
723
728
728
741
746
746
762
765
767
780
783
785
803
808
808
827
829
832
847
849
852
871
876
876
897
899
913
918
918
936
941
941
962
965
980
985
985
1503
1504
1505
1
5
5
6
6
6
6
10
15
15
17
17
26
28
29
29
29
34
34
34
34
34
35
35
36
36
38
39
39
40
41
43
43
43
43
43
47
47
52
53
58
62
62
62
63
64
64
64
64
64
64
65
65
65
65
66
67
67
67
67
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
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
71
71
72
73
73
73
73
73
73
73
75
76
76
77
78
80
82
98
102
103
104
104
106
106
106
107
110
110
110
110
110
112
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
114
115
116
117
117
125
125
125
125
125
127
127
127
127
128
128
128
128
129
129
129
130
137
142
142
142
142
143
143
143
144
144
145
145
146
146
147
148
148
148
148
148
148
164
165
165
165
166
166
166
167
167
167
168
169
169
169
169
169
169
170
170
170
170
170
170
171
171
171
171
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
173
173
173
173
173
173
174
174
174
174
174
174
174
174
174
174
174
174
175
176
176
177
177
177
179
179
179
179
179
179
179
179
179
179
180
181
181
181
181
181
181
181
182
182
182
183
183
185
185
190
192
192
193
195
195
195
195
195
196
196
196
197
197
198
198
198
199
199
200
206
208
208
210
215
215
216
216
216
216
217
217
219
220
222
223
225
225
226
228
230
233
237
247
249
250
251
251
252
254
254
254
254
255
255
256
256
257
266
267
272
272
275
275
283
283
283
284
285
285
288
288
289
290
290
291
293
293
294
295
295
308
308
309
309
314
318
319
319
320
322
322
322
326
326
327
327
328
331
331
331
331
334
338
339
339
346
348
348
349
349
354
358
358
359
360
363
368
376
377
379
381
386
386
387
388
388
388
390
390
396
400
403
405
405
408
408
416
418
419
420
420
423
426
428
432
432
434
434
439
447
451
452
452
459
461
461
462
462
467
467
471
472
472
472
481
487
489
490
490
492
500
501
501
501
503
503
508
509
509
511
516
521
521
524
527
527
529
529
529
531
532
533
533
547
552
552
571
573
576
591
593
593
596
596
615
620
620
634
641
643
657
662
662
680
685
685
706
709
724
729
729
742
747
747
763
766
768
781
784
784
786
786
804
809
809
828
830
833
848
850
850
853
853
872
877
877
891
898
900
914
919
919
937
942
942
963
966
981
986
986
1504
1504
1506
5
5
5
5
7
7
11
11
14
14
16
16
17
24
26
26
26
31
34
34
35
35
35
36
36
36
36
36
36
36
36
36
37
37
39
40
40
40
40
43
44
52
52
52
53
53
54
54
54
54
58
58
59
63
63
63
64
64
64
64
64
64
64
64
65
65
65
65
65
65
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
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
70
70
70
71
71
71
71
71
71
72
72
72
72
72
72
72
73
73
73
74
74
74
74
74
75
76
77
78
81
83
99
103
104
105
105
107
107
107
107
108
108
108
108
111
111
111
111
111
111
111
111
111
111
112
114
114
114
114
114
114
114
115
115
115
115
115
118
120
121
125
125
126
126
128
128
129
129
130
130
138
140
140
142
143
143
143
143
143
144
144
145
145
145
145
146
146
147
148
149
149
165
165
165
165
165
166
166
166
166
166
167
167
167
167
167
167
167
168
168
168
168
170
170
170
170
170
170
171
171
171
171
171
171
172
172
172
172
172
172
172
172
173
173
173
173
173
173
173
173
173
173
173
173
173
174
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
175
176
177
177
178
178
178
179
179
179
179
180
180
180
180
180
180
180
181
181
182
182
182
182
183
183
184
184
186
186
190
191
191
191
195
195
196
196
196
196
196
196
197
197
197
198
198
199
200
200
201
205
207
211
214
215
216
216
216
216
216
217
218
219
220
221
223
224
226
226
229
231
234
237
246
248
250
251
253
254
255
255
255
255
256
256
257
257
268
273
273
275
284
284
284
286
289
289
290
291
291
292
294
294
295
295
296
304
310
310
315
320
320
321
323
327
327
328
328
328
329
329
329
332
332
332
332
335
338
340
340
349
350
350
354
359
359
360
361
364
376
377
379
379
380
382
387
387
387
387
387
388
389
389
389
396
401
404
406
406
409
416
416
419
420
423
424
427
429
433
439
440
442
442
448
451
453
453
462
463
463
467
468
472
473
473
473
484
488
488
489
490
491
492
492
493
500
500
500
501
502
502
502
509
509
510
512
517
522
525
529
529
530
530
532
533
548
553
553
572
574
577
592
597
597
616
621
621
635
639
642
644
658
663
663
681
686
686
701
705
707
710
725
726
730
730
743
748
748
764
767
769
782
787
787
805
810
810
829
831
834
849
854
854
873
878
878
892
896
899
901
915
920
920
938
943
943
958
962
964
967
982
987
987
1504
1505
1505
1507
8
8
8
11
12
15
15
17
17
17
17
17
28
28
29
29
32
34
34
34
36
36
36
37
37
37
38
40
41
41
44
45
47
52
52
52
52
53
53
54
54
54
58
60
63
63
64
64
64
64
64
64
64
64
64
64
65
65
65
65
66
66
66
66
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
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
72
72
73
74
74
74
74
74
76
76
76
77
77
78
79
80
82
82
84
84
100
101
101
104
104
106
106
106
106
108
108
108
108
108
109
109
109
109
109
110
110
110
110
111
111
111
111
112
112
112
112
112
112
112
112
113
113
113
113
113
114
114
114
114
114
114
114
120
121
123
125
126
127
127
127
127
128
129
129
129
130
130
131
131
131
139
141
143
143
144
144
144
144
145
145
146
146
146
146
146
146
147
147
148
149
150
150
164
164
165
165
165
165
165
165
166
166
166
166
166
167
167
167
167
167
167
167
168
168
168
168
168
168
168
168
168
168
169
169
169
169
169
169
170
170
171
171
171
171
171
171
172
172
172
172
172
172
172
173
173
173
173
173
173
173
173
173
173
173
174
174
174
174
174
174
174
174
174
174
174
174
175
175
175
175
175
175
175
175
175
175
177
177
177
177
178
179
179
179
179
180
180
181
181
181
182
182
182
182
182
182
183
183
183
185
185
185
185
185
187
187
187
187
192
192
192
192
195
195
195
196
196
197
197
197
197
197
197
198
198
199
201
202
206
206
208
208
212
214
216
217
217
217
217
217
218
218
218
218
218
218
219
220
221
222
224
224
225
230
232
235
246
249
251
252
254
254
256
256
256
256
258
258
269
274
274
275
282
285
287
290
292
292
293
295
295
296
297
304
306
311
311
316
318
321
321
322
324
328
328
328
329
329
330
330
333
333
333
333
336
341
341
348
348
350
358
360
360
361
362
365
380
380
381
383
388
388
389
390
390
390
402
404
404
407
407
408
408
410
417
417
418
418
418
420
424
424
424
424
425
428
430
432
434
439
443
443
449
454
454
461
461
463
469
471
473
474
474
474
489
489
492
493
493
494
502
503
503
503
510
511
513
517
517
521
521
523
526
530
530
531
531
531
531
531
533
549
554
554
573
575
578
593
598
598
617
622
622
640
643
645
659
664
664
682
687
687
706
708
711
726
727
731
731
744
749
749
765
768
770
783
788
788
806
811
811
830
832
835
850
855
855
874
879
879
897
900
902
916
921
921
939
944
944
963
965
968
983
988
988
1506
1506
1508
5
5
9
9
11
11
11
13
16
16
17
17
18
18
26
26
29
33
34
35
37
38
38
38
38
38
39
39
41
41
41
42
42
43
45
46
52
52
53
53
54
55
61
62
62
64
64
64
64
64
65
65
65
65
66
66
66
66
67
68
68
68
68
68
68
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
73
73
74
74
74
74
77
77
78
79
80
81
83
83
85
85
105
107
107
108
108
108
109
109
109
109
109
109
109
110
110
111
111
112
112
112
112
112
112
112
112
113
113
113
113
113
113
114
114
114
114
114
114
114
115
115
115
121
122
124
125
125
125
126
127
127
128
128
128
129
130
130
131
132
132
132
140
142
143
143
144
144
145
146
146
146
146
146
146
147
147
147
147
147
148
149
150
151
151
160
160
161
161
164
165
165
165
166
166
166
166
166
166
167
167
167
167
167
167
167
167
167
167
168
168
168
168
168
168
168
169
169
169
169
169
169
169
169
169
169
169
169
169
169
170
170
170
170
170
170
170
170
170
170
171
171
172
172
172
172
172
172
172
172
172
172
172
172
172
172
173
174
174
174
174
174
174
174
174
174
174
174
175
175
175
175
175
175
176
176
177
178
178
180
180
182
182
182
183
183
183
183
183
183
184
184
184
186
186
188
188
188
188
192
193
193
196
196
196
196
196
197
197
197
198
198
198
199
200
200
200
201
201
202
203
206
208
209
209
213
215
215
216
216
218
218
218
218
219
219
219
219
220
221
221
222
222
223
223
225
225
226
226
231
233
236
237
237
250
250
252
253
254
255
255
257
257
257
257
259
259
265
270
275
275
279
286
288
289
290
291
293
293
293
294
294
295
295
296
296
296
297
298
298
307
312
317
318
319
320
322
322
325
329
329
329
329
330
330
331
331
331
334
334
334
334
337
338
338
342
342
349
354
359
361
361
361
363
363
366
366
381
381
384
388
389
389
390
391
391
403
408
408
409
409
411
419
419
419
419
425
425
426
429
429
431
431
432
432
433
440
442
444
444
444
450
451
451
455
455
462
467
470
472
474
474
475
475
490
490
493
494
494
501
503
504
504
512
514
522
522
524
527
532
532
532
532
532
532
550
555
555
574
576
579
594
599
599
618
623
623
641
644
646
660
665
665
683
688
688
707
709
712
727
727
727
732
732
745
750
750
769
771
784
789
789
807
812
812
831
833
836
851
856
856
875
880
880
898
901
903
917
922
922
940
945
945
964
966
969
984
989
989
1507
1507
1509
5
5
6
9
10
14
17
18
19
19
19
28
28
29
34
35
35
35
36
36
36
39
40
40
40
42
42
42
43
43
43
43
52
52
53
53
53
54
54
54
55
56
58
62
62
64
64
64
64
65
65
65
65
65
66
66
66
66
67
67
67
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
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
73
73
74
74
74
74
78
78
78
79
79
80
81
82
84
84
86
86
106
107
108
108
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
111
111
113
113
113
113
113
113
114
114
114
114
114
114
114
114
114
115
115
118
121
121
122
122
125
126
127
129
129
130
130
130
131
131
131
131
132
133
133
133
141
142
143
146
146
146
147
147
147
147
147
147
147
147
148
148
148
148
148
149
150
150
151
152
152
152
160
161
164
164
165
165
165
165
165
165
165
166
166
166
167
167
167
167
167
167
167
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
170
170
170
170
170
170
171
171
171
171
171
171
172
172
172
172
173
173
173
173
173
173
174
174
175
175
175
175
175
175
175
175
175
176
176
177
177
177
178
178
179
179
180
181
183
183
184
184
184
184
184
184
185
189
189
189
189
193
194
195
196
196
197
197
197
198
199
199
200
200
201
201
201
201
202
202
203
204
206
208
209
210
210
214
217
217
217
217
219
219
221
221
222
222
224
224
226
226
227
227
234
235
237
238
238
250
251
251
253
254
255
256
256
258
258
258
258
260
260
266
266
266
266
271
276
276
279
280
282
282
287
289
292
293
294
294
294
295
295
296
296
297
298
299
299
307
307
311
311
311
313
318
319
320
320
321
323
323
326
329
330
330
330
331
331
335
335
335
335
336
338
339
339
343
343
348
348
350
358
360
362
367
367
379
385
389
389
390
390
404
408
409
409
410
410
420
420
425
427
431
432
432
432
433
434
442
443
449
451
452
452
456
456
461
461
463
471
471
473
476
476
491
491
492
494
502
502
513
515
521
523
523
528
533
533
533
533
551
556
556
575
577
580
595
600
600
619
624
642
645
647
661
666
666
684
689
708
710
713
727
728
728
728
733
733
746
751
751
770
772
785
790
790
808
813
813
832
834
837
852
857
857
876
881
899
902
904
918
923
923
941
946
965
967
970
985
990
990
1508
1508
1510
5
5
6
7
9
11
15
17
18
19
20
26
26
29
34
34
34
36
36
36
37
37
37
39
39
40
41
41
43
43
43
44
44
45
45
46
52
52
53
53
54
54
54
55
55
55
56
62
62
62
62
63
63
64
64
65
65
65
65
65
65
65
65
65
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
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
71
71
71
71
71
71
71
71
71
74
74
74
74
79
80
80
81
81
82
83
87
87
100
105
106
107
108
108
109
109
109
109
109
109
110
110
110
110
111
111
111
111
111
111
111
111
111
112
112
113
114
114
114
115
115
115
115
115
118
125
127
128
130
130
131
131
131
132
132
133
134
134
134
142
142
143
144
144
145
147
148
148
148
148
148
148
148
149
149
149
149
149
150
151
151
152
153
153
153
165
165
165
165
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
168
168
168
168
169
169
169
169
169
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
173
173
173
173
174
174
174
174
174
174
174
174
174
175
175
175
175
175
176
177
178
178
178
179
179
179
180
181
181
181
182
183
184
184
185
185
186
186
190
190
190
190
192
194
195
195
196
196
197
198
198
199
200
200
200
201
201
202
202
202
203
203
209
210
215
217
217
217
220
220
221
222
223
225
225
227
227
228
228
235
236
236
238
252
252
254
254
255
256
256
256
257
257
259
259
259
259
261
261
267
267
272
277
277
279
283
283
290
293
294
294
295
295
295
296
296
298
299
300
300
311
312
312
314
319
321
321
322
324
324
327
330
330
331
331
331
331
332
332
336
336
336
336
337
337
339
344
348
348
349
349
359
359
361
361
363
367
368
368
376
386
391
391
394
405
408
410
410
420
425
428
432
433
433
434
435
443
443
444
444
450
450
452
457
457
461
461
462
462
472
472
472
474
474
477
480
489
492
492
495
507
514
516
521
529
533
534
534
552
557
557
578
581
596
601
601
620
623
623
625
643
646
646
648
648
662
667
667
685
690
709
711
714
728
728
729
729
734
734
747
752
752
771
773
786
791
791
809
814
814
835
838
853
858
858
877
880
880
882
900
903
903
905
905
919
924
924
942
947
966
968
971
986
991
991
1509
1509
1511
4
5
5
5
6
7
7
8
8
8
8
8
10
12
12
17
17
17
19
19
19
19
21
28
28
29
36
37
37
38
38
40
40
40
41
42
42
43
43
43
43
44
45
45
46
52
53
53
54
54
55
56
56
56
62
64
64
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
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
69
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
81
82
82
83
84
88
88
106
107
107
107
108
108
108
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
112
112
112
112
112
112
113
114
114
115
115
116
116
119
125
126
129
131
132
132
133
133
135
135
142
143
144
145
145
145
145
145
145
146
147
147
148
148
148
148
148
148
148
148
149
149
150
150
150
150
150
151
152
152
153
154
154
154
163
165
165
165
166
166
166
167
167
167
167
167
167
167
167
167
167
168
168
168
168
168
168
168
168
168
168
168
168
168
168
168
168
169
169
169
169
169
169
169
169
169
169
169
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
171
172
172
172
172
172
172
172
172
172
173
173
174
174
174
174
175
175
175
175
175
175
176
177
178
179
179
179
180
180
181
182
182
182
182
182
182
183
186
186
187
187
190
191
191
191
191
192
194
194
196
196
197
197
198
198
199
199
200
200
201
201
201
201
202
202
203
210
215
216
217
218
218
219
219
221
221
222
223
224
224
226
226
226
228
228
229
229
236
239
244
250
255
255
256
257
257
257
257
258
260
260
260
260
260
260
262
262
262
262
267
273
278
280
282
284
284
284
287
291
291
294
296
296
296
297
297
299
300
301
301
302
307
312
313
313
320
321
322
322
325
325
328
332
332
332
332
333
333
337
337
337
337
340
345
350
350
359
361
362
362
364
368
368
368
369
369
376
377
379
379
387
391
392
392
395
404
406
408
409
411
420
429
432
433
434
434
435
445
445
453
458
458
463
463
472
473
474
475
475
478
481
481
481
489
490
492
492
493
493
496
504
508
510
515
517
517
521
522
530
533
535
535
553
558
558
579
582
597
602
602
621
624
626
644
649
649
663
668
668
686
688
688
691
710
712
712
715
715
728
728
729
730
730
735
735
748
753
753
765
772
774
787
792
792
810
815
815
836
839
854
859
859
878
881
883
901
906
906
920
925
925
943
945
945
948
967
969
969
972
972
987
992
992
1510
1510
1512
4
5
7
8
8
9
9
11
11
11
11
12
13
17
18
18
19
19
19
20
20
20
22
22
26
26
28
29
36
36
38
41
41
41
41
42
43
43
43
44
44
44
44
45
45
45
46
46
46
53
54
54
54
54
55
56
56
64
64
64
64
64
64
64
64
64
65
65
65
65
65
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
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
73
73
74
78
79
82
83
83
84
85
89
89
107
108
108
108
108
108
108
108
109
109
109
109
109
110
110
110
111
111
111
111
111
111
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
113
113
113
113
113
114
114
114
116
116
116
116
117
117
117
117
119
119
127
128
128
130
130
130
131
131
132
136
136
145
146
146
146
146
146
146
147
147
147
147
147
147
147
147
148
148
149
149
149
149
149
149
149
149
150
150
151
152
154
155
155
155
164
165
166
166
166
167
167
167
167
167
167
167
168
168
168
168
168
168
168
168
168
168
168
168
168
169
169
169
169
169
169
169
169
169
169
169
169
169
169
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
171
171
171
172
172
172
172
172
172
172
172
172
172
172
173
173
173
173
173
175
175
177
177
178
178
178
179
179
179
180
180
181
181
182
182
182
182
182
182
182
183
183
183
183
183
183
183
183
187
187
188
188
191
192
192
192
192
197
198
198
199
199
200
200
200
201
201
201
202
202
202
203
203
204
216
216
216
217
219
219
219
219
219
219
222
222
224
224
225
225
229
229
230
230
231
235
237
238
240
245
250
254
256
256
257
258
258
259
261
261
263
263
263
263
267
274
274
277
277
279
282
283
292
292
295
296
297
297
297
298
298
300
301
302
302
303
313
321
321
322
322
322
323
326
326
329
330
331
331
331
333
333
333
333
334
334
338
338
339
341
343
343
346
346
351
351
359
361
362
363
363
365
369
369
370
370
376
380
380
388
391
393
393
396
396
404
407
409
410
410
410
412
430
432
433
435
435
435
435
436
443
444
444
444
446
446
452
454
459
459
459
464
464
472
474
474
475
476
476
476
476
479
482
482
489
493
493
494
494
497
504
509
509
511
513
516
517
518
522
523
531
536
536
554
559
559
580
583
598
603
603
622
625
627
645
650
650
664
669
669
687
689
692
711
716
716
729
730
731
736
736
749
754
754
766
770
773
775
788
793
793
811
816
816
837
840
855
860
860
879
882
884
902
907
907
921
926
926
944
946
949
968
973
973
988
993
993
1511
1511
1513
4
5
5
5
5
8
8
8
9
9
10
12
13
14
19
19
20
21
21
21
23
23
28
28
28
29
29
29
29
33
38
38
38
38
42
42
43
43
43
44
44
45
45
46
46
47
47
54
54
55
56
56
56
56
64
64
64
64
64
64
64
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
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
70
70
70
70
70
70
70
71
71
71
71
72
72
74
79
80
84
85
86
90
90
108
108
108
108
108
109
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
113
113
114
114
114
114
114
115
118
118
118
118
121
121
122
122
128
129
129
130
131
131
131
131
132
132
133
137
137
147
147
147
147
148
148
149
149
150
150
150
150
150
150
150
150
151
151
152
152
153
153
155
155
156
156
156
156
163
163
164
165
165
165
165
165
165
165
166
166
167
167
168
168
168
168
168
168
168
169
169
169
169
169
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
171
171
171
171
172
172
172
172
172
172
172
172
172
172
172
172
172
172
173
173
173
173
173
173
173
173
174
175
175
175
175
177
178
179
179
179
182
182
183
183
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
188
188
189
189
191
191
193
193
193
193
194
196
197
198
198
199
199
199
200
200
201
201
201
202
202
203
203
203
204
206
206
217
217
217
217
217
218
220
220
220
220
220
220
220
220
223
223
225
225
225
226
226
226
230
230
231
231
236
238
238
241
246
246
251
255
255
255
257
257
257
258
259
259
260
262
262
264
264
264
264
275
275
275
275
278
280
283
283
284
284
293
293
296
296
298
298
299
301
302
303
303
304
304
311
314
322
323
323
324
327
327
330
330
330
330
331
332
332
332
334
334
335
335
339
339
339
342
344
347
347
352
359
359
362
363
366
368
369
369
369
369
370
371
371
377
379
381
381
381
389
394
394
397
397
397
397
408
408
410
411
411
413
431
436
436
436
436
437
443
443
443
444
445
445
445
452
455
460
460
460
465
472
472
475
475
476
477
480
481
482
482
482
482
483
490
492
494
494
494
495
495
498
510
510
510
510
514
517
519
521
523
524
532
537
537
555
560
560
575
579
581
584
599
604
604
623
626
628
646
651
651
665
670
670
688
690
693
712
717
717
728
728
730
732
737
737
750
755
755
771
774
776
789
794
794
812
817
817
832
836
838
841
856
861
861
880
883
885
903
908
908
922
927
927
945
947
950
969
974
974
989
994
994
1512
1512
1514
1
1
4
4
5
5
5
5
6
6
6
8
9
10
11
13
14
15
20
21
21
22
22
24
24
26
26
29
30
30
36
36
38
39
42
43
44
45
45
45
45
46
46
46
46
46
47
48
48
54
54
56
56
56
56
56
62
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
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
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
72
72
80
81
85
86
87
91
91
107
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
111
111
111
111
111
111
112
112
112
113
113
114
114
114
114
114
114
114
114
114
114
114
115
115
115
119
119
119
119
121
122
130
130
130
130
131
131
131
132
132
132
133
133
134
138
138
142
146
146
147
147
147
148
148
148
149
149
150
150
151
151
151
151
151
151
152
152
156
156
157
157
157
157
163
163
164
164
165
165
165
165
165
165
165
165
165
166
166
166
166
166
166
166
166
166
166
167
167
167
167
167
168
168
168
168
168
169
169
169
169
169
170
170
170
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
171
172
172
172
172
172
172
172
172
172
172
172
172
173
173
173
173
173
173
173
173
174
174
174
175
175
175
175
175
178
178
178
179
180
180
180
181
184
184
184
184
184
184
184
185
185
185
185
185
185
189
189
190
190
194
194
194
194
194
198
199
199
200
200
200
201
201
202
202
202
202
203
203
203
204
204
204
204
204
205
207
207
208
208
208
218
218
218
218
218
219
220
220
220
220
221
221
221
221
224
226
227
227
227
231
231
232
232
237
239
242
247
247
247
247
255
256
257
258
258
258
259
259
260
260
261
261
263
263
265
265
265
265
276
276
276
279
281
285
285
294
294
297
297
298
299
299
300
300
301
302
303
304
304
305
305
305
305
307
311
312
323
324
324
328
328
331
332
333
333
333
335
335
336
336
337
337
337
337
340
340
343
345
347
347
348
351
351
353
360
360
361
361
361
363
367
370
370
371
372
372
379
380
390
391
391
395
395
395
397
397
398
398
404
409
409
411
411
412
414
419
432
437
437
437
437
445
446
446
446
456
460
460
461
461
464
464
466
473
473
474
474
474
476
476
478
481
483
483
484
492
493
496
499
504
504
508
510
510
511
511
515
517
518
520
522
524
524
532
533
538
538
556
561
561
580
582
585
600
605
605
624
627
629
647
652
652
666
671
671
689
691
694
713
718
718
729
733
738
738
751
756
772
775
777
790
795
795
813
818
818
837
839
842
857
862
862
881
884
886
904
909
909
923
928
928
946
948
951
970
975
975
990
995
995
1513
1513
1515
1
1
4
4
4
5
5
6
6
7
7
7
9
9
10
10
11
12
12
14
15
19
19
21
21
25
25
31
31
38
38
38
40
43
43
43
43
45
45
46
46
46
47
47
48
48
48
49
49
56
56
56
56
57
57
60
60
60
60
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
69
69
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
72
72
72
82
82
83
83
86
87
88
92
92
107
107
107
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
111
111
111
111
111
112
112
112
112
112
112
112
113
113
114
114
115
115
115
115
115
115
115
115
116
116
116
116
120
120
120
120
128
128
131
131
132
132
132
133
133
133
133
134
134
134
135
137
137
139
139
146
146
146
147
147
148
148
148
149
149
149
149
149
152
152
153
153
157
157
158
158
158
158
161
163
163
163
164
164
164
164
164
164
165
165
165
165
165
165
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
169
169
169
169
170
170
170
170
170
170
170
170
170
170
172
172
172
172
172
172
173
173
173
173
173
173
176
178
179
181
181
181
181
181
181
182
183
183
184
184
184
184
184
184
185
186
186
186
186
186
186
186
190
190
191
191
195
195
195
195
198
198
199
200
200
201
201
201
203
204
204
204
205
205
205
205
205
206
209
209
209
209
217
218
218
218
218
218
218
218
219
220
220
220
221
221
222
222
222
222
225
225
226
226
226
227
228
228
228
232
232
233
233
238
238
238
240
243
245
247
247
248
248
255
257
257
258
259
259
259
261
261
262
262
264
264
266
266
266
266
266
275
276
276
276
276
277
277
280
282
283
284
284
284
286
286
295
295
296
296
298
300
300
301
301
302
303
303
304
305
305
305
305
306
306
307
312
313
322
324
329
329
331
332
333
334
334
336
336
337
338
338
341
341
344
346
349
352
352
354
362
362
362
362
368
369
369
371
371
373
373
380
380
381
381
389
391
392
392
396
396
398
399
399
408
410
410
413
415
420
420
420
420
424
433
435
438
438
444
446
447
447
457
462
462
465
465
467
475
475
475
475
477
479
482
482
482
484
484
493
493
494
494
495
497
498
500
502
505
505
511
512
512
516
519
521
521
523
533
533
533
533
534
539
539
557
562
562
581
583
586
601
606
606
625
628
630
648
653
653
667
672
672
690
692
695
714
719
719
728
730
734
739
739
752
755
755
757
773
776
778
791
796
796
814
819
819
838
840
843
858
863
863
882
885
887
905
910
910
924
929
929
947
949
952
971
976
976
991
996
996
1514
1514
1516
4
5
5
5
5
5
7
7
8
8
8
10
11
11
11
12
13
19
21
21
22
22
26
26
26
31
36
36
38
44
45
45
45
46
46
46
46
46
47
47
49
49
49
50
50
54
58
58
61
61
61
61
64
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
66
66
66
66
66
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
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
73
83
84
87
88
89
93
93
106
107
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
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
112
112
112
113
113
114
114
114
114
114
114
114
114
116
116
116
116
116
116
117
117
117
117
119
119
121
121
121
121
128
129
129
131
132
133
133
133
134
134
134
134
134
135
135
136
138
138
140
148
148
149
149
149
150
150
153
153
153
154
154
158
158
159
159
159
159
159
159
160
160
162
163
163
163
163
163
163
163
163
164
164
164
165
165
165
165
165
165
165
165
165
166
166
166
166
166
166
167
167
167
167
167
167
167
167
167
167
168
168
168
168
168
168
168
168
168
169
169
170
170
170
170
171
172
173
173
173
173
173
173
173
173
174
177
181
182
182
182
182
182
182
182
183
183
183
183
183
183
183
183
184
184
184
185
185
185
185
185
185
186
187
187
187
191
191
192
192
194
196
196
196
196
199
199
199
201
201
201
201
202
202
203
204
205
205
206
206
206
206
210
210
216
219
219
219
219
219
219
220
220
220
220
220
220
220
221
221
221
222
222
223
223
225
225
225
226
226
227
227
227
228
229
233
233
234
234
236
239
239
239
241
244
248
249
249
255
255
258
258
259
260
262
262
263
263
265
265
267
267
267
267
267
267
267
267
277
277
278
278
281
283
283
283
283
284
285
285
285
294
296
297
297
299
301
301
302
302
303
304
305
306
306
306
307
307
311
313
314
321
325
330
330
332
332
333
337
337
338
339
339
342
342
345
347
350
351
353
353
363
363
369
370
374
374
382
382
390
390
392
397
397
397
397
399
409
409
411
411
411
414
416
421
421
425
425
425
432
434
439
439
445
445
458
463
463
464
466
466
476
476
478
480
483
483
495
495
498
499
501
503
503
510
510
512
517
520
520
522
522
522
522
524
524
534
534
535
540
540
558
563
582
584
587
602
607
607
626
629
631
649
654
654
668
673
673
691
693
696
715
720
720
728
729
735
740
740
753
756
758
774
777
777
779
779
792
797
797
815
820
839
841
844
859
864
864
883
886
888
906
911
911
925
930
930
948
950
953
972
977
977
992
997
997
1515
1517
4
4
5
5
6
8
8
9
9
11
11
12
12
13
14
14
14
15
19
21
21
21
22
23
23
23
26
27
27
31
31
38
38
38
41
41
43
43
45
45
46
46
46
47
47
47
48
50
50
50
51
51
58
59
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
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
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
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
72
74
84
84
85
85
87
88
88
89
90
94
94
107
107
108
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
111
111
112
112
112
112
112
112
112
113
113
113
113
113
114
114
114
114
114
114
114
114
114
115
115
115
115
115
115
116
116
117
117
118
118
118
118
119
122
122
122
122
128
128
129
130
130
131
132
133
134
134
135
135
135
136
136
137
139
139
141
147
149
149
150
150
151
151
151
151
151
151
154
154
154
155
155
159
159
160
160
160
160
160
160
161
161
163
163
163
163
163
163
163
164
164
164
164
164
164
164
164
164
165
165
165
165
165
165
165
165
165
165
165
166
166
166
166
166
166
166
166
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
168
168
168
168
169
169
169
169
169
170
170
170
172
172
172
172
172
172
172
173
173
173
173
173
178
183
183
183
183
183
183
184
184
184
185
185
186
186
186
186
186
186
187
188
191
192
192
192
192
193
193
197
197
197
197
199
199
199
200
200
201
201
202
202
202
203
203
203
203
204
204
204
204
205
207
207
210
217
218
218
218
218
219
219
220
220
220
220
221
221
222
222
222
224
227
227
228
228
228
229
230
234
234
235
235
237
237
240
242
242
245
245
247
247
249
256
256
257
257
257
259
259
261
263
263
264
264
266
266
268
268
268
268
268
268
276
276
278
278
279
282
284
285
286
286
286
295
295
295
297
298
300
302
302
303
303
304
305
305
305
306
307
307
307
312
314
321
322
322
322
326
331
331
334
336
336
337
338
338
339
340
340
343
343
346
348
351
351
363
369
370
371
375
375
380
381
381
381
383
383
393
398
398
398
409
411
412
412
412
415
417
421
426
426
432
433
435
435
435
440
440
450
459
464
464
464
476
479
481
482
484
484
493
494
494
494
496
496
499
500
502
511
518
522
523
523
524
525
525
534
536
541
541
559
564
583
585
588
603
608
608
627
630
632
650
655
655
669
674
674
692
694
697
716
721
721
730
736
741
741
754
757
759
775
780
780
793
798
798
816
821
840
842
845
860
865
865
884
887
889
907
912
912
926
931
931
949
951
954
973
978
978
993
998
998
1516
1518
4
5
5
6
6
7
7
9
9
10
10
11
11
12
13
13
14
14
15
15
21
21
23
23
23
23
23
24
26
26
28
28
31
32
36
36
38
38
38
38
45
46
47
47
47
47
48
48
48
49
49
51
51
52
52
54
54
59
64
64
64
64
65
65
65
65
66
66
66
66
66
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
73
75
88
89
89
90
91
95
95
104
104
106
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
112
112
112
112
112
113
113
113
114
114
114
115
115
115
116
116
116
116
116
116
117
117
118
118
119
119
119
123
123
123
123
129
129
130
131
131
131
134
135
135
136
138
140
142
148
148
149
149
150
151
151
152
152
152
152
155
155
155
156
156
160
160
161
161
161
161
161
161
161
162
162
164
164
164
164
164
164
164
164
164
165
165
165
165
165
165
165
165
165
166
166
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
167
167
167
167
168
168
168
168
168
168
168
168
168
168
168
168
168
168
168
168
168
169
169
169
169
169
169
169
169
169
169
169
169
169
169
169
170
170
170
172
172
173
173
173
179
182
183
183
183
183
184
184
184
184
185
185
186
186
187
187
187
187
189
191
193
193
193
193
193
193
194
194
198
198
198
198
200
201
201
201
202
202
202
203
203
204
204
205
205
205
206
208
208
210
218
218
219
219
220
220
220
221
221
222
222
223
223
223
225
226
228
228
229
229
230
231
235
235
236
236
241
246
246
248
258
258
258
258
260
262
264
264
265
265
267
267
268
269
269
269
269
277
280
283
284
285
286
287
287
298
299
301
303
303
304
304
305
306
306
307
308
308
312
312
314
314
314
315
321
323
323
327
332
332
334
335
337
338
339
339
340
341
341
344
344
347
347
349
351
352
352
363
369
369
370
371
376
376
380
380
380
381
382
382
382
392
394
397
397
399
399
399
409
411
412
413
413
413
416
418
421
425
426
426
426
426
427
432
436
436
436
441
441
447
451
460
460
464
465
465
465
476
480
482
482
482
483
485
493
493
493
494
495
495
495
500
501
503
505
510
510
512
519
522
524
524
524
525
526
526
534
537
542
542
560
562
562
565
584
586
586
589
589
604
609
609
631
633
651
656
656
670
675
675
693
695
698
717
722
722
731
737
742
742
755
758
760
776
781
781
794
799
799
817
819
819
822
841
843
843
846
846
861
866
866
888
890
908
913
913
927
932
932
950
952
955
974
979
979
994
999
999
1517
1519
1
7
7
8
8
9
10
11
11
14
14
14
15
15
15
16
21
21
23
24
25
29
29
31
31
32
33
33
33
33
38
38
38
38
39
39
43
46
48
48
48
48
48
49
50
50
51
51
51
51
52
52
53
53
54
59
59
60
65
65
65
65
65
65
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
68
69
69
69
69
69
69
69
69
69
69
70
70
70
70
71
71
71
71
71
71
71
74
76
80
81
85
86
89
90
90
91
92
94
94
96
96
104
105
105
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
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
112
112
112
113
113
113
113
113
115
115
115
116
116
116
117
117
117
117
118
118
119
119
120
120
120
124
124
124
124
129
131
131
131
132
132
135
136
139
141
143
150
150
150
150
151
156
156
156
157
157
161
161
162
162
162
162
162
162
162
162
162
163
163
163
163
163
165
165
165
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
167
167
167
167
167
167
167
167
168
168
168
168
168
168
168
168
168
168
168
168
168
169
169
169
169
169
169
169
169
169
169
169
169
169
169
169
169
169
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
170
172
172
172
172
174
174
180
182
182
182
183
184
184
184
184
184
185
185
185
185
185
185
187
190
193
193
194
194
194
194
195
195
199
199
199
199
199
199
199
201
201
202
202
203
203
203
203
204
204
204
205
205
205
206
206
209
209
218
219
219
219
219
219
220
220
220
220
221
221
221
224
224
224
226
227
227
229
231
232
236
236
237
237
239
242
247
247
247
247
249
259
259
261
263
265
265
266
266
268
268
268
270
270
270
270
276
278
281
284
285
285
286
297
299
300
302
304
305
305
305
306
307
307
308
309
309
315
315
316
322
322
324
324
324
328
333
333
334
336
338
339
339
341
342
342
345
345
347
348
350
352
353
353
368
369
370
371
372
377
377
382
383
383
383
392
395
397
397
398
398
400
400
409
409
412
413
414
417
419
427
427
428
433
435
437
437
437
437
442
442
447
452
452
460
461
465
466
466
466
481
481
482
483
483
484
486
495
496
496
496
501
502
504
505
510
510
511
511
520
522
522
525
525
525
526
538
543
543
561
563
566
585
590
590
605
610
610
632
634
652
657
657
671
676
676
696
699
718
723
723
728
738
743
743
756
759
761
777
782
782
795
800
800
818
820
823
842
847
847
862
867
867
889
891
909
914
914
928
933
933
953
956
975
980
980
995
1000
1000
1513
1518
1520
5
7
7
9
9
9
10
11
11
11
11
12
12
12
15
15
16
16
17
24
25
26
26
30
30
31
31
31
33
33
36
40
40
40
43
45
47
48
48
48
48
49
49
50
50
50
50
50
51
51
51
51
51
51
52
52
53
53
54
54
58
58
60
60
60
60
60
61
61
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
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
69
69
69
69
69
70
70
70
70
70
70
70
71
73
75
75
77
77
86
87
89
90
91
92
93
95
95
97
105
105
106
106
107
107
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
113
113
113
113
113
114
114
114
114
116
117
119
120
120
121
121
121
125
125
125
125
129
131
132
133
133
142
144
150
150
150
152
157
157
157
158
158
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
163
163
163
163
163
163
164
165
165
166
166
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
168
168
169
169
169
169
169
169
169
169
169
169
170
170
170
170
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
171
171
171
171
172
172
172
172
173
173
173
178
181
184
185
185
185
185
185
186
186
191
191
194
195
195
195
195
196
196
200
200
200
200
200
200
201
201
201
202
202
202
204
204
205
205
205
205
205
205
206
206
206
206
207
210
210
217
218
218
219
219
219
219
219
220
221
222
222
223
223
223
223
225
225
225
227
230
232
233
237
237
238
238
239
243
247
247
248
248
248
248
259
262
264
266
266
267
267
269
269
271
271
271
271
276
276
277
285
287
297
300
301
303
305
305
305
306
306
306
307
308
309
310
310
312
314
316
316
322
323
329
334
334
337
339
340
340
340
340
342
343
343
346
346
351
351
353
354
354
369
371
372
373
378
378
381
383
384
384
396
399
399
401
401
410
410
411
411
411
413
418
420
426
426
428
428
435
436
438
443
443
453
453
453
453
462
464
466
467
467
467
482
484
484
485
487
494
496
497
497
502
503
505
512
512
521
523
523
524
524
524
526
526
526
539
544
544
562
564
567
586
591
591
606
611
611
633
635
653
658
658
672
677
677
697
700
719
724
724
727
728
729
739
744
744
757
760
762
778
783
783
796
801
801
819
821
824
843
848
848
863
868
868
890
892
910
915
915
929
934
934
954
957
976
981
981
996
1001
1001
1514
1516
1519
1521
7
7
8
10
11
11
12
12
13
13
13
14
14
15
17
18
23
25
26
27
31
31
31
40
41
43
43
46
48
48
48
49
50
51
51
51
52
52
53
53
54
54
54
55
55
58
61
61
61
61
61
61
61
61
61
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
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
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
70
70
70
70
70
71
71
71
71
74
76
76
78
78
87
88
90
90
91
91
92
93
94
96
96
98
103
106
107
107
108
108
108
108
109
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
111
111
111
111
111
111
111
112
112
112
112
112
112
112
114
115
115
115
117
118
120
121
121
122
122
122
126
126
126
126
131
131
132
132
132
133
143
143
145
145
148
150
151
151
152
152
152
152
152
152
153
158
158
158
159
159
159
159
161
161
162
163
163
163
163
163
163
163
163
163
164
164
164
164
164
164
164
164
164
164
164
164
164
164
164
164
164
164
164
165
165
165
165
165
165
166
166
166
167
167
167
167
167
167
168
168
168
168
168
168
168
168
168
168
168
169
169
169
169
169
169
169
169
170
170
171
171
171
171
171
171
171
171
171
171
171
171
171
173
174
174
174
179
179
182
183
185
186
186
187
187
187
187
187
187
187
187
187
192
193
193
195
196
196
197
197
199
199
201
201
201
201
201
202
202
203
205
206
206
206
206
207
207
207
208
211
211
217
217
218
219
219
220
221
222
223
223
224
224
224
224
226
226
226
228
229
231
233
234
238
238
239
239
244
249
249
249
249
259
263
265
267
267
268
268
270
270
272
272
272
272
275
276
277
278
286
287
288
301
302
304
306
307
307
307
308
309
310
311
311
315
323
323
324
324
330
334
334
335
335
338
338
340
340
340
341
341
343
344
344
347
347
347
352
352
354
354
355
362
369
370
372
374
379
379
382
382
392
392
395
397
400
400
402
402
412
412
412
412
419
420
421
427
436
436
437
437
439
444
444
447
447
451
453
453
454
454
460
463
465
467
467
468
468
475
481
482
483
485
485
485
488
495
495
503
504
505
505
506
508
513
513
522
525
525
525
525
527
527
533
540
545
545
563
565
568
587
592
592
607
612
612
627
634
636
654
659
659
673
678
678
698
701
720
725
725
728
728
730
740
745
745
758
761
763
779
784
784
797
802
802
820
822
825
844
849
849
864
869
869
884
891
893
911
916
916
930
935
935
955
958
977
982
982
997
1002
1002
1517
1520
1522
7
8
8
9
9
11
11
12
12
13
13
14
14
14
15
18
19
21
23
23
28
31
32
32
32
33
33
36
36
41
47
48
48
49
50
50
50
50
51
52
52
52
52
52
53
53
54
54
55
55
55
55
56
56
58
58
58
59
60
60
61
61
61
62
62
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
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
68
68
68
68
68
68
68
68
69
69
70
70
70
70
70
70
71
71
71
71
75
77
77
79
79
91
92
93
94
95
97
99
102
104
104
107
107
107
108
108
108
108
109
109
109
109
109
109
109
110
110
110
110
110
111
111
111
111
111
112
112
112
112
112
115
116
116
117
117
117
117
117
117
118
121
122
122
123
123
123
127
127
127
127
132
132
133
133
133
133
133
133
134
134
134
137
141
144
144
146
146
149
149
150
150
152
152
153
153
153
153
154
159
159
159
160
160
160
160
161
161
162
162
163
163
163
163
163
164
164
164
164
164
164
164
164
164
165
165
165
165
165
165
165
165
165
165
165
165
165
165
165
165
166
166
166
166
166
166
166
166
167
167
168
168
168
168
168
168
168
168
168
169
169
169
170
170
170
171
171
171
171
171
171
172
174
175
175
183
184
184
185
185
187
187
187
188
188
188
188
188
188
193
194
197
197
198
198
200
200
200
201
202
202
202
202
202
202
202
203
203
207
207
207
208
208
212
212
218
218
219
220
220
221
223
225
225
225
225
227
229
229
232
234
235
239
239
240
240
245
245
250
250
250
250
264
266
268
268
269
269
271
273
273
273
273
276
278
279
287
287
289
303
303
303
304
305
307
308
308
308
309
310
311
312
312
312
316
325
325
331
332
335
335
336
336
339
339
341
341
342
342
343
343
344
345
345
348
348
351
353
353
356
363
363
363
363
369
370
372
372
373
375
380
380
390
393
393
396
398
401
403
403
413
413
420
421
421
421
421
422
426
428
438
438
440
445
445
445
448
448
454
455
455
464
464
466
469
469
476
476
476
476
482
483
485
485
486
486
486
489
503
504
505
506
506
507
509
514
523
526
526
528
528
534
534
534
534
541
546
546
564
566
569
588
593
593
608
613
613
628
632
635
637
655
660
660
674
679
679
693
697
699
702
721
726
726
729
729
731
731
741
746
746
759
762
764
780
785
785
798
803
803
821
823
826
845
850
850
865
870
870
885
889
892
894
912
917
917
931
936
936
950
954
956
959
978
983
983
998
1003
1003
1518
1521
1523
5
7
7
7
7
8
9
9
9
11
13
13
13
14
14
14
14
15
15
15
15
15
15
15
15
16
16
19
20
25
25
26
29
31
33
33
33
33
34
34
36
41
41
42
43
48
48
48
49
49
50
50
52
53
54
54
56
56
56
56
57
57
60
60
61
61
61
61
62
62
62
62
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
66
66
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
68
68
68
68
68
69
70
70
70
70
70
70
70
70
71
71
71
71
76
80
80
92
92
93
93
94
95
96
98
100
103
103
107
107
107
107
108
108
108
109
109
109
109
109
109
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
111
111
111
112
112
116
117
117
118
118
118
118
119
120
122
122
123
123
124
124
124
124
128
128
128
128
134
134
134
134
135
135
135
135
138
142
145
145
147
147
151
151
151
151
155
157
157
160
160
160
161
161
161
161
161
161
161
161
161
161
161
162
162
163
163
164
164
164
164
164
165
165
165
165
165
165
165
165
165
166
166
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
167
168
168
168
169
169
169
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
171
171
171
174
174
177
184
185
186
186
186
186
189
189
193
193
194
195
198
198
199
199
200
202
202
202
203
203
203
203
203
203
203
203
203
204
204
205
208
209
213
213
218
218
218
219
221
221
222
222
223
223
223
223
224
228
230
233
235
236
240
240
241
241
246
246
251
251
251
265
267
269
269
270
270
270
270
272
274
274
274
274
276
277
279
281
288
290
304
304
304
305
306
306
307
308
309
309
310
311
312
312
313
313
313
314
323
324
324
324
326
326
332
333
333
337
340
340
342
342
344
344
345
346
346
348
349
349
352
352
352
354
354
354
357
364
364
373
373
374
376
381
381
384
391
391
396
396
399
400
400
402
404
413
414
421
422
422
423
426
426
427
436
437
437
437
439
439
441
446
446
446
446
453
453
455
465
465
465
467
467
470
477
477
486
486
487
487
487
490
497
504
504
506
508
509
509
513
513
515
524
526
529
529
535
535
542
547
547
565
567
570
589
594
594
609
614
614
633
636
638
656
661
661
675
680
680
698
700
703
722
727
727
728
731
731
732
732
742
747
747
763
765
781
786
786
799
804
804
822
824
827
846
851
851
866
871
871
890
893
895
913
918
918
932
937
937
955
957
960
979
984
984
999
1004
1004
1519
1522
1524
7
7
8
9
10
11
11
12
12
14
14
15
15
16
16
16
16
16
17
20
21
23
23
26
30
32
32
33
34
34
35
35
36
40
40
40
42
43
43
48
48
48
50
51
51
51
53
53
53
54
57
57
57
57
57
57
58
58
60
60
60
60
62
62
63
63
63
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
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
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
77
81
81
93
94
94
95
95
96
99
101
104
104
106
107
107
107
108
108
108
108
108
108
108
109
109
109
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
117
120
121
123
123
124
124
125
125
125
125
129
129
129
129
129
129
135
135
136
136
139
143
148
148
151
151
151
156
158
158
160
160
160
160
161
161
161
161
161
161
161
161
161
161
162
162
162
162
162
162
162
162
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
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
167
167
167
167
167
167
167
168
168
168
168
168
168
168
168
170
171
171
171
171
171
171
171
171
171
172
172
175
177
178
185
185
186
186
186
190
190
193
193
194
194
195
199
199
200
200
200
202
203
203
204
204
204
204
204
204
204
204
204
205
205
205
205
206
206
209
210
210
210
214
214
218
219
219
219
219
219
221
221
222
222
223
223
223
223
224
224
224
224
225
229
229
231
234
236
237
237
241
241
242
242
246
246
247
250
250
252
252
252
258
266
267
268
270
270
271
271
271
273
275
275
275
275
276
277
279
279
280
282
286
287
287
289
291
295
304
304
305
307
307
308
308
308
308
309
310
310
310
311
311
312
312
313
313
313
314
314
314
314
315
323
323
323
324
325
325
325
333
338
341
343
345
345
346
347
347
347
347
350
350
350
350
352
353
354
355
355
355
358
364
374
374
377
382
382
384
400
401
401
403
403
403
405
413
415
419
422
422
424
425
426
427
428
436
436
436
437
438
438
438
442
447
447
454
465
466
467
468
468
471
477
487
487
488
488
491
497
507
509
514
514
516
525
526
530
530
535
543
548
548
566
568
571
590
595
595
610
615
615
634
637
639
657
662
662
676
681
681
699
701
704
723
728
728
732
733
733
743
748
748
764
766
782
787
787
800
805
805
823
825
828
847
852
852
867
872
872
891
894
896
914
919
919
933
938
938
956
958
961
980
985
985
1000
1005
1005
1520
1523
1525
9
10
11
13
13
15
15
16
17
17
17
17
17
17
18
18
20
21
21
22
25
25
26
31
33
33
33
33
35
35
40
41
43
43
43
43
43
48
48
49
50
50
51
51
51
51
51
52
52
54
54
54
54
55
58
58
58
58
58
58
59
59
61
61
61
61
61
61
61
63
63
63
63
64
64
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
70
71
71
71
71
71
71
71
71
71
71
78
82
82
94
95
96
96
97
98
100
100
102
102
104
105
105
105
105
105
105
105
106
106
106
106
107
108
108
108
108
108
108
109
109
109
109
109
109
109
109
110
111
111
111
111
111
112
112
112
112
112
112
116
116
116
118
121
122
124
124
125
125
126
126
126
126
130
130
130
130
130
130
131
131
131
135
136
144
149
149
149
151
152
152
153
153
157
157
157
158
158
159
159
159
161
161
161
161
162
162
162
162
162
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
163
163
163
164
164
164
164
164
164
164
164
164
164
164
164
164
164
166
166
166
166
166
166
167
167
167
167
167
167
167
167
168
168
168
168
168
169
169
171
171
171
171
171
172
172
172
175
176
178
179
184
186
186
187
187
188
188
188
188
188
188
191
191
195
195
196
200
200
201
201
203
204
204
205
205
205
205
205
205
205
205
205
205
205
206
206
206
206
206
207
210
211
211
215
215
219
219
222
222
223
223
223
223
223
224
224
224
224
225
225
225
225
227
230
230
232
235
237
238
238
242
242
243
243
248
251
251
253
253
253
259
259
259
259
267
268
268
268
269
271
271
272
272
272
274
276
276
276
276
280
280
281
285
287
288
288
290
292
296
301
306
308
308
308
309
309
309
310
311
313
313
314
314
315
315
315
315
316
325
326
326
326
334
335
336
336
338
339
340
340
342
342
344
346
346
347
351
351
351
351
352
354
354
355
356
356
356
359
364
372
378
383
383
393
400
401
402
402
404
406
420
422
423
425
426
428
429
438
439
439
439
443
448
448
448
453
453
455
465
467
467
468
469
469
469
469
472
477
485
489
489
492
506
508
510
513
515
515
526
531
531
535
544
549
549
567
569
572
591
596
596
611
616
616
635
638
640
658
663
663
677
682
682
700
702
705
724
729
729
733
744
749
749
765
767
783
788
788
801
806
806
824
826
829
848
853
853
868
873
873
892
895
897
915
920
920
934
939
939
957
959
962
981
986
986
1001
1006
1006
1521
1524
1526
1
1
8
10
11
11
13
13
14
17
17
18
18
21
22
22
23
23
23
26
32
34
34
35
35
35
36
40
40
43
44
48
48
50
50
51
51
52
53
55
55
55
55
56
58
59
59
59
59
60
60
61
61
61
63
63
63
63
63
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
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
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
71
79
83
83
87
88
92
93
95
96
97
97
98
99
101
101
103
103
105
105
106
106
106
106
106
106
107
107
107
107
107
107
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
109
110
110
110
116
117
117
118
118
118
118
118
118
122
123
126
126
127
127
127
127
131
131
131
131
132
132
132
132
135
135
135
136
136
136
145
150
150
150
150
153
153
153
153
153
153
158
158
158
159
159
159
159
159
159
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
164
164
164
164
164
164
164
164
164
164
164
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
166
166
167
168
168
168
168
168
168
168
168
168
168
169
169
169
171
171
171
171
171
172
172
172
172
175
177
179
180
185
185
186
186
187
187
188
188
189
189
189
189
192
192
196
196
197
201
201
202
202
202
204
205
206
206
206
206
206
206
206
207
207
207
207
207
207
208
208
210
211
211
211
211
211
212
216
216
222
222
223
223
224
224
224
224
225
225
226
226
226
226
226
226
228
228
233
236
238
239
239
239
243
243
244
244
249
250
252
252
254
254
260
260
268
269
269
270
272
272
273
273
273
275
277
277
277
277
281
281
286
286
288
291
293
297
297
302
304
304
307
309
309
309
310
310
310
311
314
314
315
315
315
316
316
316
316
324
326
327
327
335
335
337
340
340
340
341
341
343
345
347
347
348
352
352
352
352
352
352
355
355
356
357
360
369
379
384
384
384
384
393
400
402
405
407
421
424
426
426
427
429
437
439
440
440
444
448
449
449
453
453
454
454
465
465
468
468
469
470
473
482
490
490
493
497
497
504
506
509
511
513
527
532
532
545
550
550
570
573
592
597
597
612
617
617
636
639
639
641
641
659
664
664
678
683
683
701
703
706
725
730
730
745
750
750
759
766
768
784
789
789
802
807
807
827
830
849
854
854
869
874
874
893
896
896
898
898
916
921
921
935
940
940
958
960
963
982
987
987
1002
1007
1007
1522
1525
1527
1
1
1
7
9
9
11
13
14
14
15
17
17
17
17
18
18
19
19
19
22
23
23
24
25
25
26
33
33
33
35
35
37
44
45
47
50
52
52
52
53
54
56
56
56
57
60
60
60
60
60
60
61
61
61
61
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
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
68
68
68
69
69
69
69
69
70
70
70
70
80
84
84
93
94
96
98
99
100
102
102
103
104
104
104
105
107
107
107
107
107
108
108
108
108
108
109
109
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
118
118
119
119
119
119
123
124
127
127
128
128
128
128
132
132
132
132
133
133
136
136
137
137
146
151
151
151
151
154
154
154
154
154
154
154
154
159
159
159
160
160
160
160
160
160
160
161
161
161
161
161
162
162
163
163
163
163
163
163
163
163
163
163
163
163
164
164
164
164
164
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
165
165
165
165
165
165
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
168
168
169
169
169
169
169
169
170
170
172
172
173
173
173
178
180
181
187
187
187
187
188
188
193
193
197
198
202
202
202
203
203
203
203
207
207
207
207
207
208
208
208
208
208
209
209
212
212
212
213
217
218
218
221
222
223
223
224
224
226
226
226
226
226
226
227
227
227
227
228
232
234
237
239
240
240
240
240
240
244
245
250
250
255
255
260
268
269
269
269
269
269
270
271
273
273
274
274
274
276
278
278
278
278
279
289
292
294
298
298
298
298
305
308
308
310
310
310
310
311
312
315
315
315
316
316
316
316
316
317
317
317
325
325
336
338
341
342
342
344
346
346
348
348
349
349
353
353
353
353
353
353
354
354
354
356
356
358
361
369
370
372
372
380
382
385
385
385
385
396
400
401
403
406
408
412
422
425
426
427
427
429
429
430
438
438
445
450
450
455
455
466
466
467
467
467
469
469
471
474
482
483
485
485
491
491
494
495
498
498
505
507
509
510
512
513
514
525
528
533
533
546
551
551
571
574
593
598
598
613
618
618
637
642
642
660
665
665
679
684
684
702
704
704
707
707
726
728
728
731
731
731
746
751
751
760
764
767
769
785
790
790
803
808
808
828
831
850
855
855
870
875
875
894
899
899
917
922
922
936
941
941
959
961
961
964
964
983
988
988
1003
1008
1008
1523
1526
1527
1528
10
10
11
11
11
11
15
15
16
17
17
18
18
19
19
20
20
20
22
23
23
23
24
25
25
26
32
34
35
35
35
36
36
38
43
45
46
50
50
52
53
54
55
55
57
57
57
58
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
64
64
64
64
64
64
66
66
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
68
68
68
68
68
68
68
68
69
69
69
69
69
70
70
70
70
71
71
71
71
81
85
85
94
95
96
96
97
97
99
100
101
102
104
104
104
104
104
105
105
105
105
105
106
106
106
106
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
109
109
109
109
110
110
110
111
111
111
111
112
112
112
112
112
112
124
125
128
128
129
129
129
129
133
133
133
133
133
134
135
136
136
136
136
137
137
137
137
137
138
147
152
152
152
152
152
154
154
154
154
155
155
155
155
159
159
160
160
160
160
160
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
162
162
162
162
162
162
162
162
163
163
164
164
164
164
164
164
164
164
165
165
165
165
165
165
165
165
165
165
165
165
165
165
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
166
167
167
167
167
168
168
169
169
169
170
170
170
171
171
171
172
172
172
172
173
173
173
173
173
174
175
175
179
179
181
182
187
187
187
188
188
189
194
194
196
196
198
199
200
200
202
203
203
203
203
203
203
204
204
204
205
205
205
205
206
207
207
207
207
208
208
208
208
208
209
209
210
210
211
211
213
213
213
218
218
218
222
222
223
224
224
224
224
226
226
227
227
228
228
228
228
230
233
235
238
238
240
240
240
241
241
241
243
243
244
244
245
246
246
250
251
251
256
256
260
270
270
270
271
272
274
274
275
275
275
276
277
279
279
279
279
288
290
293
293
295
295
296
298
298
299
299
306
308
311
311
311
311
312
313
316
316
317
317
317
317
318
318
318
335
335
337
338
339
342
343
343
345
349
349
350
350
354
354
354
354
355
355
355
355
357
359
359
362
362
369
373
373
381
383
383
386
386
396
401
402
404
407
409
413
413
413
413
423
426
426
428
428
430
430
431
446
448
448
451
451
451
456
456
468
468
468
468
470
472
475
482
486
486
492
492
495
496
496
508
509
511
513
514
515
526
526
526
526
529
534
534
547
552
552
572
575
594
599
599
614
619
619
638
643
643
661
666
666
680
685
685
703
708
708
727
729
731
732
732
732
747
752
752
765
768
770
786
791
791
804
809
809
829
832
851
856
856
871
876
876
895
900
900
918
923
923
937
942
942
960
965
965
984
989
989
1004
1009
1009
1524
1526
1528
1529
9
9
11
17
18
19
19
19
20
20
21
21
21
23
23
24
24
25
25
25
25
26
26
26
26
26
33
33
33
35
37
37
39
40
43
43
52
52
52
54
58
58
59
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
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
66
66
66
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
69
69
70
70
70
70
82
86
86
97
98
100
101
102
103
103
104
104
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
107
107
107
108
108
108
108
108
109
109
109
109
109
109
110
110
112
112
117
117
117
125
126
129
129
130
130
130
130
133
133
133
134
134
134
134
135
136
137
137
138
138
138
139
148
152
152
152
153
153
154
154
155
155
156
156
156
156
157
159
159
159
159
159
159
160
160
161
161
161
161
161
161
161
162
162
162
162
162
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
166
166
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
167
167
168
168
168
169
169
169
170
171
171
171
172
172
172
173
173
174
174
174
175
176
176
180
180
182
185
187
188
188
189
189
190
195
195
197
197
199
200
201
201
202
202
202
203
204
204
204
204
204
204
205
205
205
206
206
206
206
206
207
207
207
207
208
208
208
208
209
209
209
209
209
212
214
216
216
218
219
219
221
221
223
223
224
224
224
224
224
225
225
225
227
227
228
228
230
234
236
239
241
241
242
242
242
244
245
246
246
247
251
252
252
257
257
269
269
271
271
271
273
275
275
276
276
276
276
277
278
279
279
280
280
280
280
288
291
296
296
299
300
300
304
307
308
309
312
312
312
313
314
317
317
318
318
318
318
319
319
327
333
336
336
338
339
340
343
344
346
350
350
351
351
355
355
355
355
356
356
358
363
363
370
372
374
374
374
382
387
387
400
402
403
405
408
410
414
414
424
429
429
431
431
440
446
447
449
449
452
452
452
457
469
469
471
473
476
483
485
487
487
487
493
496
509
512
513
514
515
516
527
527
530
535
535
548
553
553
567
571
573
576
595
600
600
615
620
639
644
644
662
667
667
681
686
704
709
709
728
732
733
733
733
748
753
766
769
771
787
792
792
805
810
810
824
828
830
833
852
857
857
872
877
896
901
901
919
924
924
938
943
961
966
966
985
990
990
1005
1010
1525
1529
1530
10
10
11
11
16
17
18
19
20
21
22
22
23
23
24
25
26
26
27
27
27
34
35
35
35
38
38
40
45
45
46
50
50
52
52
52
52
59
59
60
61
61
61
61
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
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
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
83
87
87
98
99
101
101
102
102
103
105
105
105
105
105
106
106
106
106
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
109
109
109
109
110
110
110
110
117
118
118
119
119
126
127
130
130
131
131
131
131
134
134
135
135
135
135
136
136
136
137
137
137
138
138
139
139
149
150
153
153
153
153
154
154
154
154
154
154
154
154
155
155
156
156
157
157
157
157
158
158
159
159
159
159
159
159
159
160
160
160
160
160
160
160
161
161
162
162
162
162
162
162
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
164
164
164
164
164
164
164
164
164
165
165
165
165
165
165
165
165
165
166
166
167
167
167
167
167
167
167
167
167
167
167
167
167
168
169
169
170
170
170
171
172
172
172
172
172
173
173
173
173
173
174
174
175
175
180
185
185
186
186
189
189
189
189
189
189
191
196
196
196
198
198
201
203
203
203
203
205
205
205
205
205
206
206
206
207
207
208
209
209
209
209
210
210
210
210
210
211
213
215
217
218
220
222
222
223
225
225
225
225
225
225
225
226
226
226
226
226
226
226
226
228
228
235
237
240
240
240
242
242
243
245
246
247
248
250
252
253
253
258
258
270
272
274
276
276
276
277
277
277
279
280
280
281
281
292
297
297
298
298
300
304
308
309
310
313
313
313
314
315
316
318
318
319
319
320
320
327
334
334
339
339
339
341
343
343
344
345
347
351
351
352
352
356
356
356
356
356
359
363
364
364
372
373
383
385
388
388
391
396
401
403
403
406
409
411
414
421
425
429
430
430
440
447
447
448
452
452
453
453
456
456
458
469
472
474
476
477
485
486
492
494
495
497
498
504
509
510
513
514
515
516
516
527
531
534
536
536
549
554
554
572
574
577
596
601
601
616
619
619
621
640
645
645
663
668
668
682
687
705
710
710
729
733
734
734
749
752
752
754
767
770
772
788
793
793
806
811
811
829
831
834
853
858
858
873
876
876
878
897
902
902
920
925
925
939
944
962
967
967
986
991
991
1006
1009
1009
1011
1526
1530
1531
2
9
9
11
17
17
17
17
19
19
19
19
20
22
23
23
25
25
26
26
27
28
28
28
33
33
35
35
35
35
39
39
41
43
43
46
48
49
52
52
52
52
53
53
54
59
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
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
66
66
66
66
66
66
66
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
68
68
68
68
68
70
70
70
70
84
88
88
98
99
102
102
103
103
103
104
104
105
105
105
105
106
106
106
107
107
107
108
108
108
108
108
108
109
109
109
109
110
111
111
111
119
119
119
119
119
119
127
128
130
130
131
131
132
132
132
132
132
134
134
134
134
135
135
135
136
136
136
136
136
137
137
137
138
138
150
151
152
152
153
153
154
154
155
155
155
155
156
156
158
158
158
158
158
158
158
158
159
159
159
159
160
160
160
160
160
160
160
160
160
160
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
162
162
162
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
165
165
165
165
166
166
166
167
167
167
167
167
167
168
168
168
169
169
169
169
171
171
171
172
172
172
172
173
173
173
173
173
174
174
174
174
182
186
186
186
186
187
187
190
190
190
190
190
190
190
190
192
196
197
197
202
204
204
204
204
204
205
205
205
206
206
207
207
207
207
208
208
208
209
210
210
210
211
211
211
211
211
211
212
216
218
219
221
221
223
223
223
223
225
226
227
227
227
227
227
227
227
227
227
227
230
230
236
238
241
241
243
244
246
246
247
248
249
251
253
253
254
259
259
259
269
271
273
277
277
277
278
278
278
279
280
281
281
281
282
282
288
288
293
298
298
299
308
309
310
311
314
314
314
315
315
316
319
319
320
320
321
321
340
342
344
344
345
346
348
352
352
353
353
356
357
357
357
357
360
364
364
364
365
365
373
373
374
374
384
385
389
389
392
400
402
407
410
412
414
422
422
422
426
426
431
431
449
454
454
457
457
459
469
473
475
477
477
477
478
486
486
487
487
495
496
498
498
505
511
513
514
514
515
516
516
527
532
535
535
535
537
537
550
555
555
573
575
578
597
602
602
617
620
622
641
646
646
664
669
669
683
685
685
688
706
711
711
728
730
733
735
735
750
753
755
768
771
771
773
773
789
794
794
807
812
812
830
832
835
854
859
859
874
877
879
898
903
903
921
926
926
940
942
942
945
963
968
968
987
992
992
1007
1010
1012
1527
1531
1532
2
3
10
10
11
17
18
18
19
19
19
20
20
21
21
23
23
24
24
26
27
27
28
28
28
29
35
35
35
35
36
36
38
40
40
40
42
45
45
46
47
48
48
49
49
50
50
54
54
60
60
60
60
60
61
61
61
61
61
61
61
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
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
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
71
71
71
71
85
87
87
89
89
101
101
102
103
103
104
104
104
104
104
104
105
105
105
105
105
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
107
108
108
108
109
109
109
109
109
109
111
112
112
120
120
120
120
120
120
120
120
128
129
131
131
132
132
133
133
133
133
135
135
136
136
136
137
137
137
137
138
138
139
139
151
152
152
153
154
154
154
155
155
155
155
155
155
155
155
156
156
156
156
156
156
157
157
157
159
159
159
159
159
159
159
159
160
160
160
160
160
161
161
161
161
161
161
161
161
161
161
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
163
163
164
164
164
164
164
164
164
164
164
165
167
167
167
167
167
167
167
167
167
167
167
169
169
169
170
170
172
172
172
173
173
173
174
174
174
174
174
175
175
175
175
175
176
180
182
186
186
187
187
188
188
188
188
190
190
190
190
191
191
191
191
193
196
197
198
198
203
204
204
204
204
205
205
206
206
206
207
207
208
208
208
209
209
209
209
210
211
212
212
212
213
217
219
221
222
222
223
223
226
227
228
228
228
228
228
231
231
237
239
239
240
240
242
242
242
244
245
247
248
249
250
250
252
255
260
260
260
260
260
260
269
269
270
274
278
278
279
279
279
279
280
280
280
280
280
281
283
283
286
289
289
294
298
298
299
299
300
309
310
311
315
315
315
315
316
316
316
316
317
320
320
321
321
322
322
327
327
336
341
343
343
345
345
346
349
353
353
354
354
358
358
358
358
361
365
365
366
366
375
375
385
390
390
393
393
401
401
403
403
411
413
423
423
426
427
427
429
429
432
432
440
440
449
450
455
455
456
458
458
474
476
478
478
479
488
488
496
497
499
506
506
512
514
514
516
516
517
517
533
536
536
538
538
551
556
556
574
576
579
598
603
603
618
621
623
642
647
647
665
670
670
684
686
689
707
712
712
729
731
731
736
736
751
754
756
769
774
774
790
795
795
808
813
813
831
833
836
855
860
860
875
878
880
899
904
904
922
927
927
941
943
946
964
969
969
988
993
993
1008
1011
1013
1528
1532
1533
3
4
9
9
10
11
19
20
21
21
22
23
24
25
25
28
28
28
29
29
30
33
37
37
39
41
41
43
43
43
46
47
47
48
48
49
49
50
50
51
54
55
60
60
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
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
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
68
68
68
68
68
68
68
68
68
68
68
68
68
69
70
86
88
88
90
101
101
102
102
102
102
102
102
103
103
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
107
107
108
108
108
108
108
108
108
108
109
109
109
109
110
110
113
113
118
120
120
120
120
121
121
121
121
129
130
132
132
133
133
134
134
134
134
134
134
135
135
135
135
136
136
136
136
137
137
137
137
138
138
138
138
139
140
152
153
153
153
153
153
154
154
154
155
155
155
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
157
157
157
158
158
158
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
161
161
161
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
163
163
163
163
164
164
164
164
165
165
165
165
167
167
167
167
168
170
171
172
172
173
173
173
173
173
173
174
174
174
175
175
176
176
176
176
176
187
188
188
188
188
188
188
190
190
191
191
192
192
192
192
194
197
198
199
199
204
204
206
206
207
207
207
209
210
210
211
213
213
213
214
218
220
222
222
223
223
223
224
224
225
225
225
227
228
228
229
229
238
240
240
241
241
243
243
248
249
250
251
251
251
253
253
256
261
261
261
261
268
269
270
271
275
279
279
280
280
280
280
281
281
281
281
282
284
284
287
287
295
298
298
299
299
300
300
309
309
311
311
311
311
312
315
316
316
316
317
317
317
318
321
321
322
322
323
323
325
328
328
336
343
344
347
350
354
354
355
355
359
359
359
359
362
364
365
365
365
365
366
367
367
373
374
374
374
376
376
385
385
386
391
391
394
394
394
394
401
403
404
404
412
414
422
423
423
423
423
424
426
428
430
430
433
433
438
441
441
449
451
456
456
456
477
477
478
478
478
478
479
480
486
487
487
487
489
489
497
498
498
498
500
507
507
507
507
513
514
516
517
517
518
518
534
535
536
536
536
536
537
539
539
552
557
557
575
577
580
599
604
604
619
622
624
643
648
648
666
671
671
685
687
690
708
713
713
731
732
732
737
737
752
755
757
770
775
775
791
796
796
809
814
814
832
834
837
856
861
861
876
879
881
900
905
905
923
928
928
942
944
947
965
970
970
989
994
994
1009
1012
1014
1529
1533
1534
3
4
4
5
10
10
10
11
11
11
11
20
21
21
21
22
23
23
23
23
25
25
26
26
26
28
29
29
30
30
31
37
38
40
42
42
44
45
45
46
47
47
48
49
50
50
50
50
51
51
51
52
55
59
60
60
61
61
61
61
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
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
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
68
68
70
70
70
87
89
89
91
94
95
99
100
102
102
102
102
103
103
103
103
103
104
104
105
105
105
105
105
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
108
108
109
109
109
109
111
111
118
118
118
120
120
121
121
122
122
122
122
130
131
133
133
133
134
134
134
135
135
135
135
136
136
136
137
137
138
138
139
139
139
139
139
140
140
140
141
151
153
153
153
153
153
154
155
155
156
156
157
157
157
157
157
157
157
157
157
157
157
158
158
158
158
158
158
158
158
158
158
158
159
159
159
159
160
160
161
161
161
161
161
161
161
162
162
162
162
162
162
162
162
162
163
163
163
163
163
163
163
163
164
164
164
164
164
164
164
164
164
164
164
164
164
164
164
164
165
165
166
169
171
172
172
172
173
173
173
174
174
174
174
175
175
175
175
176
176
176
176
177
177
177
177
186
186
186
188
189
189
189
189
190
190
190
190
190
190
191
191
192
192
195
196
198
199
200
200
205
205
207
207
208
208
210
210
210
210
211
211
211
211
211
211
212
214
214
214
219
221
224
224
224
226
226
226
226
227
227
228
228
239
242
242
244
244
249
250
251
251
252
253
254
254
257
261
262
262
269
271
272
274
276
280
280
281
281
282
282
282
282
283
285
285
296
300
300
301
301
312
312
312
313
316
316
317
317
317
318
318
318
318
319
322
322
323
323
324
324
326
326
339
343
344
345
348
351
355
355
355
356
356
360
360
360
360
363
366
366
367
368
368
373
373
373
374
375
375
375
383
386
386
387
392
392
392
394
394
395
395
401
403
404
405
405
413
413
415
424
424
425
427
429
429
431
431
431
434
434
439
439
452
452
456
457
457
457
468
474
478
478
479
479
480
481
486
486
486
487
488
488
488
496
498
499
499
499
501
505
507
507
508
508
514
514
516
517
518
518
519
519
526
535
537
537
538
540
540
553
558
558
576
578
578
581
581
600
605
605
620
623
625
644
649
649
667
672
672
686
688
691
709
714
714
732
733
733
738
738
753
756
758
771
776
776
792
797
797
810
815
815
833
835
835
838
838
857
862
862
877
880
882
901
906
906
924
929
929
943
945
948
966
971
971
990
995
995
1010
1013
1015
1530
1534
1535
5
5
6
9
9
11
12
12
19
19
21
23
24
25
25
25
26
26
27
27
27
28
28
29
30
30
30
30
31
32
33
33
38
43
43
43
43
45
45
46
47
50
50
51
51
51
52
52
52
55
55
56
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
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
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
71
71
88
90
92
100
100
101
103
104
104
104
105
105
105
106
106
106
106
107
107
107
108
108
108
109
109
111
112
112
119
119
119
119
120
120
120
120
120
120
121
121
122
122
131
132
134
134
134
135
135
136
136
136
136
137
137
139
140
140
140
140
140
141
141
141
142
151
153
154
155
156
156
157
157
158
158
158
158
158
158
158
158
158
158
158
158
158
158
159
159
159
159
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
160
160
160
160
160
160
161
161
162
162
162
162
162
163
163
163
163
163
163
163
164
164
164
164
164
164
164
164
164
164
164
164
164
164
164
165
165
165
167
170
172
173
173
174
175
175
175
176
176
176
176
176
176
177
177
177
177
178
178
178
178
187
187
188
188
188
189
189
190
190
191
191
192
192
196
197
199
199
201
201
206
206
206
208
208
209
210
211
211
211
211
211
212
212
212
212
212
214
214
215
215
215
220
222
222
223
223
223
225
225
225
227
227
228
228
228
228
228
228
228
228
231
238
240
243
243
245
245
250
251
251
252
253
253
254
255
255
258
261
263
263
269
270
272
275
277
279
279
279
280
281
281
281
281
281
282
282
283
283
283
283
284
286
286
289
296
297
301
301
302
302
309
311
313
313
313
316
317
318
318
318
319
320
323
323
324
324
325
325
339
344
345
346
349
352
356
356
356
356
356
356
357
357
361
361
361
361
364
365
365
367
367
369
369
375
376
376
376
384
384
388
393
393
395
396
396
401
401
404
405
407
414
414
414
414
414
416
423
423
425
425
429
430
430
435
435
452
453
457
458
458
458
469
469
469
469
478
478
479
479
480
480
482
488
489
489
489
497
497
499
500
502
508
509
509
514
514
515
517
518
520
520
527
527
527
527
536
536
536
538
538
541
541
554
559
559
577
582
582
601
606
606
621
624
626
645
650
650
668
673
673
687
689
692
710
715
715
732
733
734
734
739
739
754
757
759
772
777
777
793
798
798
811
816
816
834
839
839
858
863
863
878
881
883
902
907
907
925
930
930
944
946
949
967
972
972
991
996
996
1011
1014
1016
1531
1535
1536
1
6
7
13
13
19
21
21
22
23
24
26
26
26
27
27
28
28
28
28
28
30
30
32
33
33
38
38
39
44
44
45
45
45
46
46
46
46
46
51
52
52
54
54
56
57
57
60
60
60
60
61
61
61
61
61
61
61
61
61
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
65
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
69
69
70
70
89
91
93
99
101
101
101
102
102
104
104
104
104
104
105
105
105
105
105
105
105
106
106
106
106
107
107
107
107
107
107
107
108
108
108
108
109
112
113
113
113
113
119
119
120
120
121
121
122
122
132
134
134
134
134
135
135
135
136
136
137
137
137
138
138
141
141
141
141
142
142
152
153
154
155
155
155
156
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
158
159
159
159
159
159
159
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
161
161
161
161
161
161
161
161
161
161
161
162
162
162
162
163
163
163
163
163
164
164
164
164
164
164
164
164
164
164
164
164
164
164
164
165
165
165
165
165
165
165
165
169
170
170
171
173
174
174
175
176
176
177
177
177
177
177
178
178
178
179
179
179
186
186
188
188
188
189
190
190
190
191
191
192
192
193
193
196
197
198
202
202
207
207
209
209
209
210
210
211
211
212
213
213
215
215
216
216
216
221
222
222
222
223
223
224
224
224
226
227
229
229
229
229
231
239
241
244
244
245
246
246
251
251
251
252
253
254
254
255
259
264
264
269
270
272
272
273
278
280
280
280
280
280
281
282
282
282
282
282
283
283
284
284
285
287
287
289
297
298
302
303
303
312
314
317
317
318
318
319
319
319
320
321
324
324
325
325
326
326
328
341
343
345
345
346
347
350
353
357
357
357
357
358
358
362
362
362
362
365
366
370
370
374
376
377
377
389
394
394
394
394
396
402
402
403
403
403
405
408
412
415
415
415
417
424
430
430
431
431
431
436
436
441
454
456
458
459
459
459
470
470
479
480
480
483
487
489
490
490
500
501
503
507
507
509
515
515
516
516
516
516
518
521
521
528
528
537
537
542
542
555
560
578
583
583
602
607
607
622
625
627
646
651
651
669
674
674
688
690
693
711
716
716
732
733
734
735
735
740
740
755
758
760
773
778
778
794
799
799
812
817
835
840
840
859
864
864
879
882
884
903
908
908
926
931
931
945
947
950
968
973
973
992
997
997
1012
1015
1017
1532
1536
1537
1
1
5
5
7
8
9
13
18
19
21
21
21
22
23
23
23
25
27
27
27
28
28
29
29
29
30
30
33
33
34
37
37
37
39
40
40
43
43
45
46
47
47
47
50
52
54
57
57
57
57
57
60
60
60
60
61
61
61
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
64
64
64
64
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
68
68
68
68
68
68
69
69
69
69
70
70
71
71
92
94
100
100
101
101
102
102
103
103
103
103
104
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
107
107
108
108
108
108
108
108
108
109
109
109
110
112
112
113
113
114
114
119
120
120
120
121
121
122
122
123
123
133
134
135
135
136
136
136
136
137
137
137
137
137
138
138
138
138
139
139
142
142
152
152
155
155
155
156
156
156
156
156
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
158
158
159
160
160
160
160
160
160
160
160
160
160
160
160
161
161
161
161
161
161
161
161
161
161
162
162
162
162
162
162
162
162
162
162
162
162
163
163
163
163
164
164
164
165
165
165
165
165
165
165
165
166
166
166
169
169
169
169
170
171
171
171
172
172
173
174
174
175
175
175
176
177
177
178
179
180
180
180
186
186
187
187
189
189
189
189
189
190
190
190
191
191
191
194
194
197
197
198
199
199
203
203
208
208
208
210
212
212
213
214
214
216
216
217
217
224
224
225
225
225
226
227
227
229
229
239
239
242
243
243
245
245
246
247
247
249
250
252
252
252
253
253
253
253
254
255
255
260
265
273
273
274
279
281
281
282
283
283
283
284
284
285
285
286
288
288
297
297
299
301
301
301
303
304
304
309
313
315
319
319
320
320
320
321
322
325
325
326
326
327
327
328
334
339
344
346
346
346
348
351
354
357
358
358
359
359
363
363
363
363
365
366
367
371
371
375
375
386
390
395
395
395
404
404
404
404
413
415
416
418
423
425
432
432
432
437
437
441
447
452
455
457
459
459
460
460
470
478
480
481
481
484
488
488
499
501
502
504
508
517
517
517
517
517
522
522
528
536
538
538
543
543
556
561
579
584
584
603
608
608
623
626
628
647
652
652
670
675
675
689
691
694
712
717
717
732
733
733
734
735
736
741
741
756
759
761
774
779
779
795
800
800
813
818
836
841
841
860
865
865
880
883
885
904
909
909
927
932
932
946
948
951
969
974
974
993
998
998
1013
1016
1018
1533
1537
1538
4
4
5
5
8
8
9
9
13
13
13
13
21
21
23
23
23
23
23
24
26
28
28
29
29
30
30
30
30
31
34
35
37
38
40
40
40
40
40
42
44
46
46
48
48
48
48
54
54
54
55
57
58
60
60
60
60
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
63
63
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
66
66
66
66
66
66
67
67
67
67
67
68
68
68
68
69
69
70
70
71
71
72
72
87
91
93
93
95
95
101
101
102
102
102
102
102
102
103
103
104
104
104
104
104
104
105
105
105
105
105
105
106
106
106
106
106
107
107
107
107
107
107
107
107
108
108
108
108
109
109
110
111
113
113
114
114
115
119
119
119
120
120
120
121
121
121
124
124
130
134
134
136
136
137
137
137
137
137
138
138
138
139
139
139
139
139
140
140
140
143
143
153
153
153
153
155
155
155
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
159
159
159
159
159
159
159
159
160
160
160
160
160
160
161
161
161
161
161
161
161
161
161
162
162
162
162
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
163
163
164
164
165
165
166
167
167
168
168
170
170
172
173
173
173
174
175
175
175
176
176
176
176
177
178
178
178
179
179
180
180
181
181
181
181
187
188
188
189
189
189
189
190
191
192
192
193
193
193
193
195
195
197
199
199
200
200
203
204
204
206
208
209
209
211
211
211
211
212
212
212
213
213
214
214
215
215
215
215
218
218
218
218
223
225
225
226
226
227
227
227
227
228
229
229
229
229
229
229
243
244
244
246
248
248
250
251
253
253
254
254
254
254
254
254
255
255
256
256
261
264
264
266
274
274
280
281
282
282
282
282
283
284
284
285
285
286
286
286
286
287
289
289
300
301
302
302
304
305
305
309
310
311
316
317
318
318
318
320
320
321
321
321
322
323
326
326
327
327
328
328
335
343
345
347
349
352
355
357
359
359
360
360
364
364
364
364
365
365
366
367
372
372
386
391
394
394
396
396
396
405
405
414
415
417
419
423
423
424
430
431
431
431
433
433
433
438
438
448
456
456
458
461
461
470
478
478
479
482
482
485
499
503
505
507
507
509
518
518
518
523
523
528
536
536
537
539
544
544
557
559
559
562
580
585
585
604
609
609
627
629
648
653
653
671
676
676
690
692
695
713
718
718
732
733
734
734
735
737
742
742
760
762
775
780
780
796
801
801
814
816
816
819
837
842
842
861
866
866
884
886
905
910
910
928
933
933
947
949
952
970
975
975
994
999
999
1017
1019
1534
1538
1539
5
9
9
9
9
9
10
10
13
13
14
21
21
23
24
25
25
27
28
29
29
30
30
30
31
31
31
31
31
32
32
34
35
35
36
37
37
40
41
43
43
45
47
47
48
49
49
58
59
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
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
64
64
64
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
69
71
71
71
71
72
72
73
73
88
92
94
94
96
96
101
101
102
102
102
102
102
102
103
103
103
103
103
103
103
103
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
107
107
108
108
109
109
110
110
110
110
111
111
112
112
114
114
114
114
114
114
116
120
121
122
122
123
123
123
123
125
125
131
135
135
136
137
137
137
138
138
138
139
139
139
139
139
140
140
140
140
140
140
140
141
141
141
144
144
153
153
153
153
153
153
154
154
155
155
155
155
155
155
155
156
156
156
157
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
158
158
159
159
159
159
159
159
159
159
159
159
159
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
162
162
162
162
163
165
165
165
165
165
167
167
168
168
169
169
169
169
171
171
172
173
173
174
174
175
175
175
176
176
176
176
176
176
177
177
177
177
177
178
180
181
181
182
182
182
182
187
189
189
189
191
192
193
193
193
193
194
194
194
194
196
196
197
199
200
200
201
201
204
204
204
205
205
206
207
207
209
210
210
211
211
212
212
212
212
213
213
214
214
215
219
219
219
219
224
224
226
228
228
229
230
230
230
230
243
244
245
245
249
249
251
252
255
255
256
256
257
257
262
265
267
272
281
282
282
283
283
286
286
286
287
287
287
287
288
288
290
290
297
301
302
303
303
306
306
310
311
311
312
317
317
317
317
318
319
319
319
322
322
322
323
324
327
327
328
328
328
328
329
336
336
344
344
346
346
348
350
353
356
360
360
361
361
364
365
365
365
366
367
368
373
373
377
392
394
394
395
395
397
405
415
418
420
422
423
424
425
430
430
430
431
432
432
432
434
439
439
441
441
449
449
457
457
457
459
459
462
477
478
479
480
483
483
486
490
504
506
507
507
508
508
518
519
524
524
535
536
537
538
540
545
545
558
560
563
581
586
586
605
610
610
628
630
649
654
654
672
677
677
693
696
714
719
719
732
734
735
735
738
743
743
761
763
776
781
781
797
802
802
815
817
820
838
843
843
862
867
867
885
887
906
911
911
929
934
934
950
953
971
976
976
995
1000
1000
1018
1020
1535
1539
1540
4
6
10
10
11
11
14
15
15
24
25
26
27
27
30
30
30
31
32
32
32
35
36
36
37
41
42
43
44
46
48
48
48
48
50
50
59
60
60
60
60
60
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
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
66
66
66
66
67
67
67
67
67
67
67
67
68
68
69
70
72
72
73
73
73
73
74
74
89
93
95
95
97
97
100
101
102
102
102
102
102
102
103
103
103
103
103
103
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
106
106
106
107
107
107
108
111
111
112
112
112
113
115
117
119
121
122
123
123
124
124
124
124
126
126
132
134
136
136
138
139
140
140
140
140
140
141
141
141
141
141
141
141
141
141
142
142
142
142
145
145
153
154
154
154
154
155
155
155
155
155
155
155
155
155
155
156
156
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
157
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
159
159
159
159
159
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
161
162
163
163
163
163
163
163
163
164
165
165
165
165
168
168
169
169
169
169
169
169
170
170
170
172
175
175
176
176
176
176
176
177
177
177
177
177
177
177
177
177
177
178
178
178
178
181
182
182
183
183
183
183
188
189
189
189
190
190
193
193
193
194
194
195
195
195
195
200
201
201
205
205
206
206
210
210
211
211
211
211
212
213
214
214
215
215
216
220
220
220
220
221
225
227
228
228
228
229
230
230
230
230
230
230
230
230
230
231
231
243
245
250
250
252
253
255
257
257
258
258
260
263
266
268
269
284
284
287
287
288
288
288
288
289
289
291
291
302
303
307
307
312
312
313
318
319
320
320
320
323
323
323
324
325
326
328
328
329
329
329
329
330
337
337
337
337
344
346
347
347
349
351
354
357
361
361
362
362
364
364
364
364
365
366
366
367
368
369
374
374
377
393
396
396
396
396
398
405
416
419
419
421
421
423
425
426
432
433
433
433
435
439
440
440
442
442
450
450
450
450
457
458
459
460
460
463
478
480
481
484
484
487
490
505
507
509
509
518
520
525
525
536
538
539
541
546
546
559
561
564
582
587
587
606
611
611
629
631
650
655
655
673
678
678
694
697
715
720
720
733
735
736
739
744
744
762
764
777
782
782
798
803
803
816
818
821
839
844
844
863
868
868
886
888
907
912
912
930
935
935
951
954
972
977
977
996
1001
1001
1019
1021
1536
1540
1541
5
7
7
12
12
13
15
23
25
26
27
27
28
28
30
30
31
31
32
32
32
33
33
36
37
37
38
40
42
43
43
43
47
48
49
51
51
57
57
57
61
61
61
61
61
62
62
62
62
63
63
63
63
63
63
63
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
67
68
68
68
68
68
68
68
68
68
68
69
70
71
74
74
74
74
75
75
94
98
98
100
101
101
101
101
102
102
102
103
103
103
103
103
104
104
104
105
105
105
105
106
106
106
107
107
107
107
107
108
108
108
108
108
108
109
112
112
113
113
113
114
116
118
119
120
123
125
125
125
125
134
135
137
137
137
137
139
141
141
141
141
141
142
142
142
142
142
142
142
142
143
143
143
143
146
146
152
152
154
155
155
155
155
155
155
156
156
156
156
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
159
159
159
159
159
159
159
159
159
159
159
159
159
159
160
160
160
160
160
160
160
160
160
160
161
161
161
161
161
161
161
161
161
161
161
161
161
161
161
162
162
162
164
165
169
170
171
171
171
173
176
176
177
177
177
178
178
178
178
178
178
178
178
178
179
179
179
179
181
181
183
183
184
184
184
184
188
188
189
189
189
189
191
191
192
192
193
193
194
194
194
195
195
201
202
204
205
205
205
205
206
207
207
209
209
209
211
212
214
214
215
215
216
216
217
217
221
221
221
221
226
226
228
228
228
228
229
229
230
231
231
231
231
231
232
232
239
243
244
246
251
251
253
254
255
258
258
259
259
261
261
261
264
267
269
269
270
272
272
281
284
285
285
285
288
288
289
289
289
289
290
290
292
292
301
303
304
308
308
312
313
313
318
319
320
321
321
324
324
324
325
326
327
327
328
328
329
329
330
330
331
335
337
337
338
338
344
346
347
348
348
350
352
352
355
355
358
362
362
363
363
365
365
365
366
367
367
368
370
375
375
392
394
397
397
397
399
417
422
422
423
424
426
431
433
434
434
436
440
440
441
441
448
450
450
451
451
457
459
459
460
461
461
461
461
464
478
479
481
485
485
488
501
505
506
508
510
510
521
526
526
536
537
539
542
547
547
560
562
565
583
588
588
607
612
612
623
630
632
651
656
656
674
679
695
698
716
721
721
734
736
740
745
745
756
763
765
778
783
783
799
804
804
817
819
822
840
845
845
864
869
869
880
887
889
908
913
913
931
936
952
955
973
978
978
997
1002
1002
1013
1020
1022
1537
1541
1542
4
5
5
8
13
13
13
13
13
15
15
15
21
23
23
29
29
32
32
32
32
32
32
33
33
34
34
36
37
37
38
39
40
40
48
48
48
48
49
49
50
50
50
50
52
52
54
59
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
64
64
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
66
66
66
66
68
68
68
70
70
71
71
71
72
75
75
75
75
76
76
95
99
99
99
101
101
101
101
101
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
105
106
106
106
106
107
108
108
108
108
109
109
109
113
113
113
113
114
114
117
119
121
122
122
123
123
123
123
124
134
135
137
137
137
138
138
140
140
141
141
141
141
142
142
142
142
142
143
143
143
143
143
144
144
144
144
147
147
152
155
155
155
156
156
156
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
158
158
158
158
158
158
158
158
159
159
159
159
159
159
159
159
159
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
161
161
161
161
161
162
162
162
162
162
162
162
162
162
162
162
162
162
163
163
165
165
166
170
171
172
172
174
176
177
177
177
177
178
178
178
178
179
179
179
179
179
180
180
180
180
184
184
185
185
185
185
190
190
192
192
192
193
193
193
193
193
193
195
195
195
196
196
203
206
206
207
207
208
208
209
210
210
212
212
213
213
214
216
216
216
217
217
218
218
222
222
222
222
226
227
229
229
229
230
230
230
230
230
230
231
231
232
232
232
232
232
239
244
245
247
252
252
254
255
259
259
260
260
262
262
265
268
269
270
273
273
284
286
286
286
289
289
289
290
290
290
290
291
291
293
293
297
301
302
304
309
309
312
313
313
313
314
319
319
320
325
325
325
326
327
329
330
330
331
331
332
338
339
339
344
344
347
348
351
356
356
359
363
363
364
365
366
366
366
368
368
368
368
369
371
376
376
377
377
384
393
395
398
398
400
418
423
423
423
424
426
426
427
432
432
437
442
442
451
452
452
457
457
460
460
461
462
465
478
479
481
481
482
486
489
490
490
497
502
504
506
507
509
511
522
527
527
536
537
539
539
540
543
548
548
561
563
566
584
589
589
608
613
624
628
631
633
652
657
657
675
680
690
694
696
699
717
722
722
734
741
746
757
761
764
766
779
784
784
800
805
805
818
820
823
841
846
846
865
870
881
885
888
890
909
914
914
932
937
947
951
953
956
974
979
979
998
1003
1014
1018
1021
1023
1538
1542
1543
5
5
7
9
13
14
14
14
15
15
15
16
25
25
26
30
30
31
32
33
33
33
33
34
34
35
35
37
37
38
38
39
40
42
42
43
43
47
48
48
48
48
48
49
49
49
50
50
50
53
53
57
57
57
57
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
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
66
67
67
67
67
67
67
67
68
71
72
72
72
72
73
76
76
77
77
96
100
100
100
100
101
101
101
101
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
105
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
107
107
107
107
107
107
108
108
108
108
109
109
109
110
110
110
112
114
114
114
114
114
114
115
115
116
118
118
120
120
122
123
123
123
123
124
124
124
124
125
137
138
138
138
138
139
139
139
140
140
140
141
141
141
141
141
142
142
142
142
143
143
143
143
143
144
144
144
145
145
145
145
148
148
148
148
151
153
153
154
154
155
155
155
155
155
155
156
156
156
157
157
157
157
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
159
159
159
160
160
160
160
160
160
160
160
160
160
160
160
160
160
161
161
161
161
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
163
163
163
163
163
166
166
166
167
170
175
176
176
176
177
177
177
177
178
178
178
178
179
179
179
180
180
180
181
181
185
185
186
186
186
186
188
189
189
189
191
191
192
193
194
194
194
194
194
194
196
196
197
197
204
205
205
207
207
208
208
209
212
212
212
213
213
213
214
214
215
218
218
219
219
223
223
223
223
227
228
229
229
229
229
229
229
229
229
230
230
230
230
231
231
231
231
232
232
232
232
233
243
245
246
248
253
253
255
256
260
260
261
261
261
262
262
262
262
263
266
269
270
271
272
274
274
274
287
287
287
290
290
290
290
290
291
291
292
292
294
294
297
302
303
305
310
310
314
314
315
321
326
326
326
327
328
329
330
331
332
333
337
337
339
345
345
346
346
346
348
352
356
357
357
360
363
363
364
364
365
367
367
369
369
369
369
370
372
375
377
377
378
378
385
393
393
396
397
397
399
399
401
404
414
419
424
424
427
427
428
438
442
443
443
450
450
452
458
458
459
459
459
461
461
463
466
469
482
482
483
485
487
488
488
490
491
491
498
505
506
506
508
510
510
510
512
517
523
527
528
528
540
540
541
544
549
549
562
564
567
585
590
590
609
612
612
614
629
632
634
653
658
658
676
678
678
681
695
697
700
718
723
723
736
742
745
745
747
762
765
767
780
785
785
801
806
806
819
821
824
842
847
847
866
869
869
871
886
889
891
910
915
915
933
935
935
938
952
954
957
975
980
980
999
1002
1002
1004
1019
1022
1024
1539
1543
1544
5
5
7
10
15
15
15
16
17
23
23
25
26
30
32
32
32
32
34
34
34
35
36
38
39
40
40
40
41
43
47
47
48
48
49
50
50
50
51
51
54
54
59
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
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
65
65
65
65
65
66
66
66
66
66
67
67
67
68
68
68
68
73
73
73
73
74
77
77
78
78
97
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
105
105
105
105
105
105
105
106
106
106
106
106
107
107
107
107
108
108
108
108
108
108
108
109
109
109
110
111
113
114
114
115
115
116
116
117
119
119
121
121
123
123
123
123
124
124
124
124
125
125
125
125
136
139
139
139
140
140
140
140
142
142
143
143
143
143
144
144
144
144
144
145
145
145
149
149
149
149
151
152
153
153
153
153
153
153
154
154
155
155
155
155
155
155
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
157
157
157
158
158
158
158
158
158
158
158
158
158
158
158
159
159
159
159
159
159
159
159
159
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
160
161
161
161
161
162
162
162
163
163
163
163
163
163
163
163
163
163
163
165
165
165
167
167
168
168
168
169
171
171
176
178
179
179
179
179
180
180
180
181
181
181
182
182
186
186
187
187
187
187
188
189
192
193
194
194
194
194
194
195
195
196
196
196
196
197
197
198
198
199
199
199
205
206
210
210
211
213
213
213
213
214
214
214
214
215
215
215
216
216
219
219
220
220
224
224
224
224
226
226
228
229
230
230
230
230
230
230
230
231
231
232
232
232
232
232
232
233
233
234
239
244
246
246
249
254
254
254
256
257
261
261
262
262
263
263
264
267
270
272
272
273
284
284
288
288
288
288
290
290
290
290
291
291
291
292
292
293
293
293
293
295
295
301
303
304
306
311
311
315
315
321
322
327
327
327
328
329
329
331
332
333
334
338
347
347
347
347
353
357
357
357
358
358
361
364
365
365
366
368
368
370
370
370
370
373
376
376
378
378
386
386
397
398
398
400
400
402
405
405
405
405
415
415
415
420
425
425
428
428
434
439
442
444
444
451
460
460
460
460
462
464
467
470
470
470
483
483
488
489
489
489
491
499
499
506
509
511
511
511
513
518
518
518
518
524
528
528
528
529
529
541
541
545
550
550
563
565
568
586
591
591
610
613
615
630
633
635
654
659
659
677
679
682
696
698
701
719
724
724
736
743
746
748
763
766
768
781
786
786
802
807
807
820
822
825
843
848
848
867
870
872
887
890
892
911
916
916
934
936
939
953
955
958
976
981
981
1000
1003
1005
1020
1023
1025
1540
1544
1545
5
5
7
11
16
16
17
17
25
25
26
30
30
31
32
33
34
35
35
36
37
39
39
40
40
41
42
42
42
43
47
48
48
49
49
50
50
50
51
51
51
51
52
52
55
55
57
57
57
57
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
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
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
66
66
66
68
68
68
70
74
74
75
75
75
75
75
78
78
79
79
97
97
98
99
100
101
101
101
101
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
105
105
105
108
109
109
109
109
110
110
110
111
112
114
116
116
117
117
118
120
120
122
122
122
122
124
124
124
124
125
125
126
126
126
126
126
126
138
139
139
139
141
141
141
141
141
142
143
143
144
144
144
145
145
145
145
146
146
146
150
150
150
150
152
153
153
154
154
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
156
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
157
158
158
158
158
158
158
159
159
159
159
159
159
159
159
159
160
160
160
160
160
160
160
160
160
160
161
161
161
161
161
161
161
161
161
161
163
163
164
169
169
169
170
172
172
172
177
177
178
179
180
180
180
181
181
181
182
182
182
183
183
187
187
188
188
188
188
189
190
192
192
194
195
196
196
197
197
197
197
198
198
200
200
200
200
205
206
207
208
208
210
211
211
212
213
213
214
214
214
214
215
215
216
217
217
220
220
221
221
224
225
225
225
225
227
227
229
229
229
230
230
230
230
230
231
231
231
231
231
231
232
232
233
233
233
234
234
235
235
243
245
250
255
255
255
255
255
255
257
258
262
262
262
262
263
263
264
264
268
271
273
273
273
274
274
282
285
285
289
289
289
291
292
292
292
293
293
294
294
294
294
296
296
302
304
307
312
312
313
321
323
328
328
328
329
330
330
330
331
331
332
333
334
335
337
337
339
348
348
354
358
358
359
359
362
365
367
368
369
369
371
371
374
379
379
387
387
387
387
397
398
399
399
401
403
406
406
416
416
421
426
426
426
434
440
445
445
450
450
452
461
461
463
465
468
471
471
481
489
490
492
500
500
500
500
507
510
510
512
512
512
519
519
525
529
529
530
530
539
546
551
551
564
566
569
587
592
592
611
614
616
631
634
636
655
660
660
678
680
683
697
699
702
720
725
725
744
747
749
764
767
769
782
787
787
803
808
808
821
823
826
844
849
849
868
871
873
888
891
893
912
917
917
935
937
940
954
956
959
977
982
982
1001
1004
1006
1021
1024
1026
1541
1545
1546
1
5
5
5
5
7
12
15
15
17
17
17
23
23
26
32
32
32
32
35
35
36
36
37
38
40
40
40
41
41
42
42
43
43
47
48
48
49
50
50
50
51
51
51
52
52
52
56
56
58
58
59
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
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
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
66
66
66
67
67
67
67
68
68
71
75
76
76
76
79
79
80
80
98
98
98
98
99
99
100
100
101
101
101
101
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
106
106
109
110
110
110
111
111
112
113
113
113
117
117
118
118
119
122
123
123
123
123
124
124
126
126
126
126
126
126
127
127
127
127
138
138
138
139
140
140
140
142
142
142
142
143
143
144
144
146
146
147
147
147
147
149
150
151
151
151
151
151
151
151
151
151
152
152
153
153
153
154
154
155
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
156
156
156
156
157
157
157
157
157
157
157
157
157
157
157
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
158
160
160
160
160
160
160
160
161
162
162
162
162
163
163
163
165
165
170
170
170
171
172
173
177
177
178
178
178
179
179
181
183
183
183
184
184
188
188
188
189
189
189
189
190
191
193
193
194
194
194
194
195
196
196
198
198
198
198
201
201
205
205
206
207
209
210
210
210
212
213
214
214
215
215
215
215
216
216
216
216
216
217
218
218
221
221
222
222
225
225
226
226
226
226
228
228
229
230
230
230
230
231
231
231
232
232
232
232
233
233
233
233
234
234
234
236
236
244
244
246
246
251
256
256
256
256
258
259
263
263
263
264
264
272
274
275
275
283
283
290
290
290
290
292
293
294
294
295
295
295
295
297
297
302
302
304
304
304
305
308
312
313
313
324
329
329
330
331
331
332
333
334
335
336
337
337
338
338
348
355
357
358
358
358
358
359
360
360
363
365
366
368
370
370
372
372
375
378
380
380
385
387
387
388
388
397
399
402
404
406
415
416
416
416
416
417
422
423
427
427
441
446
446
450
450
451
451
461
464
466
469
470
471
471
471
471
472
478
490
491
491
493
498
500
500
501
501
508
510
511
511
513
513
519
526
528
529
529
529
529
530
531
531
536
547
552
552
567
570
588
593
593
612
615
617
632
635
635
637
637
656
661
661
679
681
684
698
700
703
721
726
726
745
748
750
765
768
768
770
770
783
788
788
804
809
809
824
827
845
850
850
869
872
874
889
892
892
894
894
913
918
918
936
938
941
955
957
960
978
983
983
1002
1005
1007
1022
1025
1025
1027
1027
1542
1546
1547
1
1
4
5
5
5
6
6
7
13
15
17
17
18
18
18
25
25
26
30
30
32
32
32
32
36
37
37
38
39
42
42
42
43
43
43
44
47
50
50
51
52
52
52
53
57
57
57
57
59
59
60
60
60
60
60
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
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
65
65
65
65
65
65
65
65
65
65
65
65
65
66
67
67
67
67
67
67
67
72
76
77
77
77
77
77
80
80
80
80
81
81
100
100
100
101
101
101
101
101
101
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
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
113
113
114
118
118
119
119
120
122
122
123
124
124
124
124
124
124
126
126
127
127
128
128
128
128
140
141
141
141
143
143
147
147
148
148
148
148
150
151
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
154
155
155
155
155
156
156
156
156
156
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
157
157
158
158
158
158
158
158
158
158
158
158
158
158
158
158
159
159
159
159
159
159
159
159
159
159
159
159
159
161
161
161
161
161
161
161
162
162
163
163
166
171
171
171
172
174
178
178
178
178
179
184
184
184
185
185
189
189
189
190
190
190
190
191
192
193
193
194
195
195
195
195
196
196
196
196
196
196
196
197
197
201
204
205
206
207
208
208
210
211
211
211
211
213
213
213
213
214
214
214
214
215
215
215
215
215
216
216
217
217
217
218
222
222
223
223
227
227
227
227
229
229
231
231
232
233
233
233
234
234
234
234
235
235
237
237
244
246
247
247
252
256
257
257
259
260
262
264
264
264
265
265
273
273
274
274
274
275
276
276
289
291
291
291
292
294
295
295
296
296
296
296
298
298
305
305
306
309
312
313
313
313
314
314
321
321
325
330
330
331
332
332
333
334
335
336
337
339
339
348
356
359
359
360
361
361
364
365
366
367
368
368
369
371
371
373
373
376
378
381
381
388
389
389
393
397
398
400
403
405
406
417
417
418
423
423
424
426
426
428
428
434
434
442
447
447
452
452
461
465
467
470
472
472
473
478
479
481
481
491
491
492
494
501
502
502
506
509
510
511
514
514
519
527
530
530
531
532
532
536
537
539
539
548
553
568
571
589
594
594
613
616
618
633
638
638
657
662
662
680
682
685
699
701
701
704
704
722
727
727
746
749
751
766
771
771
784
789
789
805
810
825
828
846
851
851
870
873
875
890
895
895
914
919
919
937
939
942
956
958
958
961
961
979
984
984
1003
1006
1008
1023
1028
1028
1543
1547
1548
5
5
5
5
5
6
6
7
7
7
14
15
17
17
17
18
19
19
19
19
23
23
25
26
32
32
32
32
33
33
34
35
37
37
38
39
39
40
40
40
40
42
43
43
44
44
45
50
50
51
52
52
54
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
59
59
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
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
64
64
65
65
66
66
66
66
66
66
66
66
68
68
68
68
68
68
68
74
74
77
78
79
79
81
81
81
81
82
82
96
100
100
101
101
101
101
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
105
105
105
105
105
105
105
105
105
106
106
114
115
119
119
120
120
121
123
123
124
125
125
125
125
125
127
127
128
128
139
141
142
142
144
144
144
144
144
145
145
145
148
148
148
148
149
149
149
149
149
149
151
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
155
156
156
156
156
156
156
156
157
157
157
157
157
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
158
158
158
158
158
158
159
159
159
159
159
159
160
160
160
160
161
161
162
162
167
172
172
172
172
172
172
173
175
178
178
179
179
180
180
180
180
181
181
181
181
185
185
185
186
186
190
190
190
191
191
191
191
192
192
194
194
195
196
196
197
197
197
197
197
198
198
201
205
207
208
209
209
211
211
211
211
212
212
212
214
214
215
215
216
217
218
218
218
219
223
223
224
224
227
228
228
228
228
229
229
230
230
232
232
232
233
234
235
235
235
235
238
238
244
246
247
248
248
253
256
258
258
260
261
262
262
263
265
265
266
266
273
273
273
274
274
275
275
275
276
285
290
290
292
292
292
293
295
296
296
297
297
297
297
299
299
302
304
306
306
310
312
314
314
315
315
319
322
322
326
327
328
328
331
331
332
333
333
334
335
335
336
337
338
340
340
357
358
358
360
360
362
362
365
365
365
368
369
369
370
372
372
374
374
377
382
382
387
387
389
393
398
399
404
406
416
416
418
418
423
424
427
427
429
429
432
435
435
440
443
448
448
448
453
453
466
468
471
471
471
473
473
478
482
482
492
493
495
500
500
502
506
510
511
512
515
515
528
529
529
531
531
533
533
536
540
540
549
554
569
572
590
595
595
614
617
619
634
639
639
658
663
663
681
683
686
700
705
705
723
728
728
747
750
752
767
772
772
785
790
790
806
811
826
829
847
852
852
871
874
876
891
896
896
915
920
920
938
940
943
957
962
962
980
985
985
1004
1007
1009
1024
1029
1029
1544
1548
1549
5
5
5
6
7
7
7
7
7
8
8
15
17
17
19
19
19
19
19
20
20
25
25
25
26
26
26
26
30
34
34
35
37
38
39
39
39
40
40
41
41
41
42
42
42
43
43
43
43
45
46
52
52
52
52
55
59
59
59
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
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
73
73
75
78
78
78
79
80
80
82
82
82
83
83
97
97
97
97
97
98
100
101
101
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
104
104
104
104
104
105
105
106
106
110
110
110
111
111
111
115
116
120
120
121
121
122
123
125
125
125
126
126
126
126
128
128
140
140
142
143
144
145
145
145
145
145
146
146
149
149
149
149
149
149
149
149
149
150
150
150
150
150
150
152
152
153
153
153
153
153
153
153
153
154
154
154
154
154
154
154
154
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
155
155
155
155
156
156
156
156
156
156
156
156
157
157
157
157
157
158
158
158
158
158
158
158
159
159
159
159
159
159
160
160
160
160
161
161
162
162
162
162
162
162
162
162
162
162
162
162
166
168
173
173
173
173
173
174
178
179
179
180
180
180
181
181
181
181
182
182
186
186
186
187
187
189
191
191
191
192
192
192
192
193
193
195
195
195
196
196
197
197
197
197
198
198
198
198
205
206
208
210
211
211
212
212
212
213
213
213
214
215
215
216
216
216
217
218
219
219
220
224
224
225
225
227
229
229
229
229
229
230
230
230
231
232
232
232
232
233
233
233
234
239
239
244
244
247
248
254
259
259
261
261
262
262
263
264
266
266
267
267
268
275
275
276
276
276
277
285
290
290
291
291
293
293
294
296
298
298
298
298
300
300
305
311
313
313
315
315
315
316
316
320
320
327
328
329
332
332
333
334
335
336
336
337
338
339
341
358
359
363
363
366
366
366
368
369
370
370
370
370
370
371
373
373
375
375
378
378
378
383
383
388
397
399
400
405
407
417
424
425
426
428
428
428
430
430
433
433
441
444
449
449
449
454
469
472
472
479
481
483
483
483
491
491
493
494
496
501
510
511
512
513
516
516
529
530
534
534
537
539
541
541
541
550
552
552
555
564
568
570
573
591
596
596
615
618
620
635
640
640
659
664
664
682
684
687
701
706
706
724
729
729
736
748
751
753
768
773
773
786
791
791
807
809
809
812
821
825
827
830
848
853
853
872
875
877
892
897
897
916
921
921
939
941
944
958
963
963
981
986
986
1005
1008
1010
1025
1030
1030
1545
1549
1550
5
5
5
7
8
8
8
8
9
9
16
17
17
19
19
19
20
21
21
23
23
26
27
27
34
35
36
38
40
40
40
40
40
41
41
42
42
42
43
44
44
46
47
50
50
52
52
52
52
56
57
58
58
58
58
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
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
64
64
64
64
64
64
65
65
66
66
66
66
67
67
67
68
76
76
79
79
79
79
80
81
81
82
82
83
84
84
98
98
98
98
98
98
99
99
99
99
99
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
105
105
105
105
105
105
106
106
107
107
110
111
111
111
112
112
116
117
121
121
122
122
123
123
125
126
127
127
127
127
143
143
144
144
146
146
147
150
150
150
150
150
150
150
150
150
151
151
151
151
151
151
153
153
153
153
154
154
154
154
154
154
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
156
156
156
157
158
158
158
158
158
158
158
158
158
158
159
159
159
159
159
159
159
159
159
159
159
160
160
161
161
161
161
161
161
161
161
163
163
163
163
163
163
167
167
169
173
174
174
178
178
179
179
180
180
180
182
187
187
187
188
188
190
190
192
192
192
192
193
193
193
193
194
195
195
195
196
197
197
197
197
198
198
198
198
198
198
199
199
205
206
208
208
209
211
211
211
211
212
212
213
213
213
213
214
214
215
216
217
217
217
218
221
225
225
226
226
230
230
230
230
230
230
231
231
232
233
233
233
233
234
234
234
235
240
240
245
245
246
246
246
248
255
260
260
262
262
263
264
265
267
267
268
268
269
273
274
276
276
277
277
278
292
292
294
294
295
297
299
299
299
299
301
301
302
306
312
313
314
317
317
328
329
329
330
333
335
336
336
336
337
338
339
340
340
340
342
347
358
359
360
364
364
368
369
370
371
371
372
374
374
374
374
376
376
376
376
376
379
379
379
384
384
387
387
389
393
398
400
400
405
406
408
416
418
426
426
427
431
431
442
442
445
449
449
450
450
453
453
455
460
466
470
470
471
473
473
481
482
489
492
492
494
495
497
500
500
502
506
511
512
513
513
517
517
518
529
530
531
535
535
539
540
551
553
556
569
571
574
592
597
597
616
619
621
636
641
641
660
665
665
683
685
688
702
707
707
725
730
730
734
736
737
749
752
754
769
774
774
787
792
792
808
810
813
826
828
831
849
854
854
873
876
878
893
898
898
917
922
922
940
942
945
959
964
964
982
987
987
1006
1009
1011
1026
1031
1031
1546
1550
1551
4
4
5
6
9
9
10
10
17
20
20
20
21
22
28
28
30
30
32
35
37
37
39
41
41
41
42
43
43
43
43
44
44
45
45
47
48
52
52
52
52
53
53
57
57
57
58
59
59
59
60
60
60
60
60
60
60
60
60
60
60
61
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
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
65
65
65
66
66
66
66
67
67
67
68
68
80
80
80
80
81
82
83
83
83
83
84
85
85
97
97
100
100
100
100
100
101
101
101
101
101
101
102
102
102
102
102
102
102
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
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
108
117
118
122
122
123
123
124
124
124
124
124
126
126
126
127
128
128
142
142
142
147
147
148
151
151
151
151
151
151
151
151
151
151
151
151
151
152
152
152
152
152
152
152
152
153
153
154
154
154
154
154
154
154
154
154
154
154
154
154
154
155
155
155
155
155
155
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
157
157
157
158
158
158
158
158
158
158
158
159
159
159
159
159
159
159
159
159
159
159
159
160
160
160
161
161
161
161
161
161
162
162
162
162
163
163
164
164
170
174
175
175
179
183
188
188
188
189
189
190
192
193
193
193
193
193
194
194
194
194
196
196
197
198
198
199
199
199
199
200
200
209
209
209
210
212
212
212
212
213
213
213
214
215
216
216
216
217
217
217
218
219
222
226
226
227
227
227
227
230
230
230
231
231
231
231
231
231
233
233
233
233
233
233
234
234
234
234
235
235
236
241
241
247
247
247
247
255
256
261
261
262
263
263
264
265
268
268
269
269
274
275
275
277
279
285
285
288
293
293
295
295
296
298
300
300
300
300
302
302
302
303
304
313
314
314
315
315
318
318
322
329
330
330
330
330
331
334
336
337
338
339
340
341
341
341
343
348
348
348
348
358
358
359
360
364
365
365
369
369
370
370
371
372
372
373
377
377
377
377
377
377
380
385
385
387
387
388
388
397
399
400
406
406
406
406
407
409
416
416
417
427
427
427
428
428
432
432
435
443
443
443
443
446
451
451
454
454
456
461
461
461
461
471
471
471
471
472
474
482
482
483
483
490
490
496
498
500
500
501
501
510
512
513
518
518
519
519
519
519
529
529
530
531
536
536
540
540
541
541
552
554
557
570
572
575
593
598
598
620
622
637
642
642
661
666
666
686
689
703
708
708
726
731
731
735
737
753
755
770
775
775
788
793
793
809
811
814
827
829
832
850
855
855
877
879
894
899
899
918
923
923
943
946
960
965
965
983
988
988
1010
1012
1027
1032
1032
1547
1551
1552
1
1
5
5
5
5
5
5
6
7
9
11
11
18
19
21
21
21
22
23
23
28
30
35
35
36
38
40
40
43
44
44
44
45
45
48
48
49
49
50
54
54
57
57
57
57
58
58
59
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
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
64
64
64
64
64
64
64
64
65
65
68
68
68
72
77
81
81
82
83
84
84
85
86
86
95
96
98
98
98
98
101
101
101
102
102
102
102
102
102
102
103
103
103
103
103
103
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
106
106
107
107
109
118
119
123
123
124
124
125
125
125
125
125
126
126
126
126
126
126
127
127
127
129
140
142
143
143
145
145
145
146
146
146
148
148
149
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
152
153
153
153
153
153
153
154
154
154
155
155
155
155
155
155
155
155
155
155
155
155
155
155
156
156
156
156
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
158
158
158
158
159
160
161
161
161
161
161
161
161
162
162
162
162
162
162
163
163
163
163
163
163
171
173
175
176
176
178
178
180
181
181
181
182
182
182
184
189
189
189
190
190
190
192
193
194
194
194
194
194
195
195
195
195
195
196
197
197
200
200
200
200
209
210
210
211
213
213
214
215
216
217
217
217
218
218
218
219
219
220
223
225
227
227
228
228
228
228
229
231
232
232
232
232
233
233
234
234
234
234
234
234
234
234
235
235
235
235
236
237
242
242
248
248
256
256
256
256
257
262
262
263
264
265
265
265
266
269
269
270
270
275
278
280
283
286
286
289
294
296
296
296
297
299
301
301
301
301
303
303
303
304
304
305
314
316
316
319
319
322
328
330
330
330
331
331
332
333
335
337
337
338
339
340
340
341
342
342
342
349
349
357
358
359
360
361
365
366
366
369
371
371
372
373
373
374
378
378
378
378
381
386
386
389
389
398
398
400
400
401
405
407
407
408
410
415
416
417
418
428
429
429
433
433
435
441
443
443
444
444
447
452
452
453
455
455
462
462
470
471
472
472
472
473
475
484
484
497
499
502
502
511
511
513
513
514
519
519
520
520
528
529
530
531
532
537
537
542
542
553
555
558
571
573
576
594
599
599
621
623
638
643
643
662
667
667
687
690
704
709
709
727
732
732
735
754
756
771
776
776
789
794
794
810
812
815
828
830
833
851
856
856
878
880
895
900
900
919
924
924
944
947
961
966
966
984
989
989
1011
1013
1028
1033
1033
1548
1552
1553
4
4
5
5
5
6
6
6
8
8
8
8
8
9
9
9
9
12
12
17
19
19
19
22
23
24
28
28
30
34
34
34
36
37
37
39
40
41
44
45
45
45
45
45
45
46
46
47
48
48
48
49
49
49
49
50
50
54
55
57
57
57
59
59
60
60
60
60
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
63
63
63
63
63
63
63
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
64
64
64
64
65
65
65
65
78
81
83
84
85
85
85
85
86
87
87
96
96
97
97
98
99
99
100
100
101
101
101
102
102
102
102
102
102
102
103
103
103
104
104
104
104
105
106
108
110
111
111
111
112
112
112
119
120
124
124
125
125
126
127
127
127
127
127
127
127
127
128
128
130
141
141
143
144
145
146
146
146
147
147
149
149
149
150
150
151
151
152
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
154
155
155
155
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
157
157
158
158
158
158
158
158
159
161
161
161
161
162
162
162
162
163
163
163
163
163
163
163
163
163
164
164
164
165
165
166
172
173
177
177
178
178
179
179
179
180
181
182
182
182
183
183
185
190
190
190
191
191
193
194
195
195
196
196
196
196
196
196
197
197
197
197
197
198
200
208
210
211
212
215
216
218
218
219
219
219
219
224
226
226
228
228
229
229
229
230
231
231
232
233
233
233
233
235
235
235
235
235
235
235
235
236
236
236
236
237
238
243
243
248
257
257
258
261
261
263
265
266
266
266
267
270
270
271
271
276
277
279
281
284
284
289
289
293
293
293
295
297
297
297
298
299
299
300
302
302
302
302
304
304
305
305
306
314
315
315
315
315
317
317
320
320
331
332
332
332
333
333
336
336
337
338
338
339
340
340
341
342
343
349
358
360
361
362
367
367
369
370
370
370
370
372
372
373
373
374
374
375
375
379
379
379
379
379
382
385
387
387
390
390
398
400
401
401
406
407
409
411
416
418
419
427
428
428
428
429
430
430
434
434
444
445
445
448
453
453
453
462
471
473
473
473
474
476
482
483
483
483
485
485
492
498
498
500
503
503
511
513
514
514
515
520
520
520
529
531
532
533
538
538
540
541
541
541
543
543
554
556
559
572
574
577
595
600
600
622
624
639
644
644
663
668
668
688
691
705
710
710
728
733
733
737
755
757
772
777
777
790
795
795
811
813
816
829
831
834
852
857
857
879
881
896
901
901
920
925
925
945
948
962
967
967
985
990
990
1012
1014
1029
1034
1034
1549
1553
1554
5
5
5
5
7
7
7
7
9
9
9
9
9
10
13
13
18
20
21
21
22
23
23
23
23
25
28
29
34
35
37
37
37
37
37
40
40
41
41
42
45
45
46
46
46
47
47
48
49
49
50
50
50
50
50
50
51
51
51
55
57
57
57
57
57
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
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
63
63
63
63
63
64
64
64
64
64
65
65
65
65
67
67
67
67
67
79
79
82
82
83
84
85
85
86
86
87
87
87
87
88
88
96
99
99
99
99
99
99
100
100
100
100
100
100
100
100
101
101
101
102
102
102
102
102
103
103
103
103
103
103
103
103
104
104
104
104
104
104
104
105
105
105
107
109
111
111
112
112
112
113
113
120
121
123
123
125
125
126
126
127
128
128
128
128
129
131
144
144
145
145
147
147
148
148
150
150
150
150
150
152
152
153
153
153
153
153
154
154
154
154
154
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
155
156
156
156
156
157
157
157
157
157
157
157
157
157
157
157
158
159
159
159
159
159
159
159
161
161
162
162
164
164
164
164
164
164
165
165
166
167
173
178
178
180
180
180
180
181
181
186
191
191
191
192
192
194
196
196
197
197
197
197
197
197
197
198
198
198
198
198
198
199
201
201
201
205
210
210
213
214
214
216
216
216
217
217
217
220
225
229
229
229
230
230
230
232
232
232
233
234
234
234
234
234
234
235
235
235
235
235
235
236
236
237
237
237
237
238
239
244
244
248
257
259
262
264
266
267
267
267
271
271
272
272
277
277
280
280
282
282
293
294
294
296
298
299
300
300
301
303
303
303
303
303
303
305
305
305
305
305
306
306
314
314
314
315
316
316
316
316
321
321
322
322
330
330
332
334
336
337
337
338
339
339
340
340
341
341
342
343
344
349
358
359
361
363
368
368
369
369
369
370
371
371
371
371
375
375
376
376
379
380
380
380
380
383
386
388
388
391
398
400
401
402
402
407
407
410
412
416
417
419
427
427
427
428
429
429
429
430
435
435
435
435
443
443
445
449
449
453
454
454
454
462
471
472
474
474
474
477
482
482
482
483
484
484
484
492
494
499
499
501
504
511
513
514
515
515
516
520
521
521
529
530
532
534
539
539
540
540
540
541
542
542
542
555
557
560
573
575
575
578
578
596
601
601
616
623
625
640
645
645
664
669
669
683
687
689
692
706
711
711
729
734
734
737
749
756
758
773
778
778
791
796
796
812
814
817
830
832
832
835
835
853
858
858
873
880
882
897
902
902
921
926
926
940
944
946
949
963
968
968
986
991
991
1006
1013
1015
1030
1035
1035
1550
1554
1555
4
5
6
8
8
8
8
10
10
10
10
10
10
11
11
13
13
14
14
19
19
19
22
24
24
26
28
28
29
30
30
30
30
34
34
37
38
41
42
42
43
45
45
46
46
46
47
47
47
47
47
47
47
47
48
49
50
50
50
50
51
51
51
51
51
51
52
52
52
55
55
56
57
57
57
57
57
57
57
58
58
58
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
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
64
64
64
64
64
64
64
65
65
65
66
66
66
66
68
68
68
68
68
80
83
84
85
86
86
88
88
88
88
89
89
97
97
97
97
97
97
97
98
100
100
100
100
100
100
101
101
101
101
101
101
103
103
103
103
103
103
103
103
104
104
104
104
104
104
105
105
105
105
105
106
106
106
106
110
112
121
122
124
124
125
125
125
126
126
127
127
128
128
128
130
132
143
143
143
147
147
147
147
147
147
148
148
148
149
149
149
149
149
149
149
150
150
150
150
151
151
151
151
151
151
151
151
151
151
153
153
154
154
154
154
154
154
155
155
155
155
155
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
156
156
156
156
156
156
156
156
157
157
159
159
159
160
160
160
160
161
162
163
164
164
165
167
168
172
173
173
174
179
179
181
181
187
192
192
192
193
193
197
197
197
197
198
198
198
198
198
198
198
198
198
198
198
198
199
199
199
199
202
202
205
206
208
208
212
212
213
213
214
215
215
216
217
217
217
217
218
218
218
219
219
221
226
228
230
230
231
231
232
233
233
233
233
234
234
234
234
234
234
234
234
235
235
235
235
235
235
235
236
236
236
236
236
236
237
237
240
245
245
257
260
263
265
265
267
268
272
272
273
273
278
283
283
286
289
294
295
295
295
299
300
301
301
302
304
304
305
306
306
306
306
306
306
306
307
316
317
317
317
317
320
322
322
323
323
331
335
336
338
338
339
340
340
340
341
341
341
342
342
343
343
344
344
345
358
359
361
361
362
364
369
369
371
372
372
372
372
376
376
377
377
381
381
381
381
384
386
386
389
389
390
390
392
398
398
401
402
408
411
413
416
417
419
419
420
429
430
430
430
431
433
436
436
436
436
444
449
450
454
455
455
455
471
472
474
474
475
475
475
478
484
485
485
485
495
497
499
499
500
502
503
503
505
511
511
514
515
517
522
522
529
530
532
532
533
535
540
540
542
543
543
543
556
558
561
574
579
579
597
602
602
617
621
624
626
641
646
646
665
670
670
688
690
693
707
712
712
730
735
735
750
754
757
759
774
779
779
792
797
797
813
815
818
831
836
836
854
859
859
874
878
881
883
898
903
903
922
927
927
945
947
950
964
969
969
987
992
992
1007
1011
1014
1016
1031
1036
1036
1551
1555
1556
1
5
5
6
7
9
9
9
11
11
14
14
15
15
20
21
21
22
23
25
25
27
28
28
28
30
30
38
39
40
43
43
44
45
45
45
46
47
47
47
47
47
48
48
48
48
49
50
51
51
51
52
52
52
52
52
53
54
54
56
57
57
57
57
57
57
57
57
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
61
61
61
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
65
65
65
65
65
65
65
65
65
66
66
66
66
80
80
81
84
84
85
85
85
86
87
87
89
89
89
89
90
90
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
100
100
100
101
101
101
101
103
103
105
105
106
109
111
111
113
113
122
123
126
126
126
126
127
127
128
128
128
128
128
128
128
128
131
133
141
143
144
144
146
147
148
148
148
148
148
148
149
149
149
149
149
149
149
149
149
149
150
150
150
150
150
150
150
151
151
151
151
151
151
152
152
152
152
152
152
152
152
152
152
152
152
154
154
154
154
154
155
155
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
157
157
161
161
161
161
162
162
162
162
164
164
164
164
164
164
166
167
168
169
173
174
174
175
180
180
182
182
183
188
190
190
193
193
193
194
194
196
198
198
198
198
199
199
199
199
199
199
199
199
199
199
199
199
200
200
200
200
201
202
202
202
202
203
205
209
209
212
213
213
216
216
216
216
217
217
217
217
217
218
218
218
219
219
219
220
220
222
227
228
231
231
232
232
234
234
234
235
235
235
236
236
236
236
236
236
237
237
237
237
237
237
241
246
246
261
262
264
266
268
269
273
273
274
274
277
277
279
284
284
286
295
296
298
300
301
302
302
303
305
305
307
307
307
307
307
307
308
315
317
318
318
318
321
321
323
323
330
330
330
332
334
336
339
339
340
340
341
342
343
343
344
344
345
345
346
362
362
363
365
370
370
370
372
373
373
373
377
377
378
378
382
382
382
382
385
390
390
391
391
393
399
399
400
400
400
402
409
412
412
414
414
420
420
421
428
430
431
431
432
434
434
437
437
443
443
445
451
453
455
456
456
456
475
475
476
476
476
479
483
485
486
486
498
501
503
504
504
506
512
512
513
513
513
515
518
523
523
533
533
534
536
541
541
541
543
544
544
557
559
562
575
580
580
598
603
603
622
625
627
642
647
647
666
671
671
689
691
694
708
713
713
731
736
736
755
758
760
775
780
780
793
798
798
814
816
819
832
837
837
855
860
860
879
882
884
899
904
904
923
928
928
946
948
951
965
970
970
988
993
993
1012
1015
1017
1032
1037
1037
1552
1556
1557
1
1
4
4
5
5
5
6
7
9
9
9
10
10
11
11
11
11
11
12
15
15
16
16
19
19
22
26
26
28
28
37
39
40
45
45
47
47
48
48
49
49
49
50
50
51
52
52
53
53
54
54
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
60
60
60
61
61
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
64
64
64
64
64
65
65
65
65
66
67
67
67
67
85
86
86
86
86
87
90
90
91
91
98
98
98
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
102
102
102
102
102
102
102
102
102
102
102
102
103
103
106
110
112
112
112
113
114
114
123
124
127
127
128
128
129
129
129
129
129
129
132
132
134
134
142
142
146
146
146
147
147
147
147
147
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
150
150
150
151
151
151
151
151
151
151
152
152
152
152
152
152
153
153
153
153
153
153
153
153
153
153
154
154
154
154
154
154
155
156
156
156
156
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
157
157
157
158
158
158
158
158
158
159
162
162
163
163
165
165
165
165
165
167
168
168
169
170
173
173
176
181
181
181
181
182
182
182
183
183
183
183
189
191
191
192
192
192
194
194
194
195
195
196
197
197
199
200
200
200
200
200
200
200
200
200
201
201
201
201
203
203
204
206
208
210
210
210
214
214
217
217
218
218
218
218
218
218
219
219
219
219
220
220
220
220
223
228
231
232
232
233
233
233
234
234
234
235
235
235
236
236
236
237
237
237
237
238
238
238
238
242
247
247
247
262
262
263
265
265
265
267
269
270
274
275
275
278
278
280
285
285
293
296
299
301
302
302
303
303
304
304
306
306
308
308
308
308
308
308
316
316
319
324
324
330
330
331
331
335
336
337
340
340
341
341
342
343
343
344
344
345
345
346
346
347
347
363
363
366
371
371
371
371
374
378
378
379
379
383
383
383
383
386
390
391
391
392
392
401
401
401
401
410
415
415
421
421
429
429
433
438
438
443
443
444
444
449
452
454
456
456
457
457
476
476
477
477
480
484
484
499
502
503
504
505
505
514
514
514
514
519
524
524
534
534
537
542
542
542
542
560
563
576
581
581
599
604
604
623
626
628
643
648
648
667
672
690
692
695
709
714
714
732
737
737
756
759
761
776
781
781
794
799
799
817
820
833
838
838
856
861
861
880
883
885
900
905
905
924
929
947
949
952
966
971
971
989
994
994
1013
1016
1018
1033
1038
1038
1553
1557
1558
5
5
5
7
8
8
9
10
11
11
11
11
11
12
12
12
12
13
15
15
17
17
21
21
22
25
27
27
27
28
29
29
30
30
34
37
37
39
44
45
46
46
47
47
48
48
49
50
50
51
52
53
54
54
54
54
54
55
55
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
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
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
66
66
66
67
67
68
68
68
68
87
87
87
87
88
89
89
89
89
91
91
92
92
95
96
96
99
99
99
99
99
99
99
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
103
103
103
103
103
103
103
107
111
112
112
112
113
113
113
113
113
115
115
124
125
126
127
127
127
129
129
129
129
129
129
129
129
129
130
130
130
130
133
133
135
135
144
145
147
147
147
147
147
147
147
147
147
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
150
150
150
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
153
153
153
153
153
153
154
154
154
154
154
154
154
154
154
154
155
155
155
155
155
156
156
156
156
156
157
157
157
157
157
157
157
157
157
158
158
158
159
159
159
159
161
161
161
161
163
163
163
163
163
165
165
165
165
165
165
165
165
165
166
166
168
170
171
177
180
181
182
182
182
182
183
183
183
183
184
184
184
184
184
190
193
193
193
193
195
195
195
196
196
196
197
197
197
197
198
199
199
200
200
200
200
200
200
200
201
201
201
202
202
202
202
202
202
204
204
208
209
210
210
214
215
215
217
218
219
219
219
219
220
220
220
220
220
221
221
221
224
229
231
233
233
233
233
233
234
234
234
235
235
235
236
236
236
236
236
236
236
236
236
237
238
238
243
248
248
248
248
248
248
262
263
266
266
266
268
270
271
275
276
276
276
281
286
286
289
293
294
300
302
304
304
305
305
306
307
307
309
309
309
309
320
323
325
325
332
332
336
338
338
340
341
341
341
342
342
343
346
346
347
347
348
348
361
367
372
372
375
377
379
379
380
380
384
384
384
384
387
390
392
392
402
402
411
416
416
419
434
436
439
439
445
445
453
453
455
458
458
474
478
481
490
500
503
503
505
515
515
520
525
525
532
538
543
543
561
564
577
582
582
600
605
624
627
629
644
649
649
668
673
691
693
696
710
715
715
733
738
757
760
762
777
782
782
795
800
800
818
821
834
839
839
857
862
881
884
886
901
906
906
925
930
948
950
953
967
972
972
990
995
1014
1017
1019
1034
1039
1039
1554
1558
1559
5
5
6
7
11
12
12
12
13
13
13
13
14
16
16
16
16
18
18
19
19
21
22
26
28
28
28
30
30
30
31
31
39
39
40
45
45
47
47
47
48
48
48
49
49
49
50
51
51
52
53
54
54
55
55
56
57
57
57
57
57
57
58
58
58
58
58
59
59
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
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
63
63
63
63
64
64
64
64
65
65
65
65
68
68
69
69
79
84
88
88
89
90
90
92
92
93
93
96
96
96
97
97
97
97
97
97
97
97
97
97
97
98
98
98
99
100
100
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
103
103
105
106
112
113
113
113
113
114
114
114
114
116
116
125
126
127
127
127
127
128
128
130
130
130
130
130
131
131
131
131
134
134
136
136
143
144
145
145
146
146
147
147
147
147
148
148
148
148
148
148
148
148
148
148
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
151
151
151
151
151
151
151
151
151
151
151
151
151
151
151
152
152
152
152
152
152
152
152
152
153
153
153
153
153
153
153
153
153
153
153
153
154
154
154
155
155
155
155
155
156
156
156
156
156
156
156
157
158
159
159
159
160
160
160
162
162
163
163
163
164
164
164
164
166
166
166
166
167
167
169
171
174
178
181
181
182
183
183
183
183
183
183
184
184
184
184
185
185
191
194
194
196
196
196
197
197
197
198
198
198
198
198
198
199
199
199
199
199
199
199
199
199
199
200
200
201
201
201
201
201
201
201
202
202
202
203
209
209
210
210
210
214
214
215
216
216
217
218
219
220
220
220
220
221
221
221
222
222
222
225
230
234
234
235
235
235
235
236
236
236
237
237
237
238
239
239
244
249
249
249
249
263
264
265
267
267
267
267
269
271
272
273
273
274
274
276
277
282
287
287
289
294
295
301
303
305
305
305
306
306
308
308
310
310
310
310
318
321
323
326
328
333
333
337
341
341
342
342
342
343
343
343
344
347
347
348
348
348
349
349
358
368
373
373
373
376
378
380
380
381
381
385
385
385
385
386
388
390
391
393
402
406
412
416
417
417
431
435
436
440
440
441
446
446
454
454
454
456
456
459
461
471
477
479
480
482
486
491
499
501
503
504
504
504
506
506
515
519
521
526
526
529
539
544
544
544
562
565
578
583
583
601
604
604
606
625
628
628
630
630
645
650
650
669
671
671
674
692
694
694
697
697
711
716
716
734
737
737
737
739
758
761
761
763
763
778
783
783
796
801
801
819
822
835
840
840
858
861
861
863
882
885
885
887
887
902
907
907
926
928
928
931
949
951
951
954
954
968
973
973
991
994
994
996
1015
1018
1018
1020
1020
1035
1040
1040
1555
1559
1560
5
5
5
7
8
9
13
13
13
13
14
15
17
17
19
19
21
21
21
22
22
22
22
27
29
29
30
31
32
32
37
37
40
46
47
48
49
49
50
51
52
52
54
55
56
57
57
57
57
57
57
57
58
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
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
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
66
70
70
85
89
90
91
91
93
93
94
94
94
94
97
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
101
101
101
102
102
102
102
102
102
103
103
106
107
113
113
113
114
114
114
114
115
115
117
117
126
127
128
128
128
128
128
129
129
129
129
129
129
129
129
131
131
131
131
131
132
132
137
137
144
144
144
144
145
145
146
147
147
147
147
147
148
148
148
148
149
149
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
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
152
152
153
153
153
153
153
154
154
154
154
154
154
154
154
154
154
154
154
155
155
156
156
157
157
157
157
157
160
160
160
160
161
161
161
163
163
164
164
165
165
165
165
165
165
165
165
165
165
167
167
167
167
169
174
179
181
183
184
184
184
184
185
185
185
186
186
192
194
197
197
198
198
199
199
199
199
200
200
200
201
201
202
202
202
202
202
202
202
202
203
203
203
204
211
211
215
215
216
217
217
217
217
217
218
218
220
220
221
221
221
222
223
226
226
231
231
234
235
235
236
236
236
237
237
238
238
238
238
238
238
238
238
238
238
240
240
245
249
250
250
256
265
265
266
268
270
272
273
274
275
277
278
278
283
284
288
288
293
295
296
302
304
305
306
306
306
306
306
307
307
309
309
311
311
311
311
318
322
327
329
334
338
341
343
343
343
343
344
344
344
345
348
348
349
349
349
349
349
350
350
358
359
361
361
369
373
374
374
377
379
379
381
381
382
382
386
386
386
386
386
389
391
392
392
392
394
402
407
407
407
413
416
417
418
418
419
419
431
436
441
441
442
447
454
455
456
457
457
460
462
462
462
471
472
474
474
480
481
483
486
492
492
499
502
504
505
507
507
515
520
520
520
522
527
527
529
530
532
532
540
544
545
545
557
561
563
566
579
584
584
602
605
607
626
631
631
646
651
651
670
672
675
693
698
698
712
717
717
735
735
737
738
738
740
759
764
764
779
784
784
797
802
802
814
818
820
823
836
841
841
859
862
864
883
888
888
903
908
908
927
929
932
950
955
955
969
974
974
992
995
997
1016
1021
1021
1036
1041
1041
1556
1560
1561
5
5
7
9
10
11
11
13
14
14
14
16
18
18
18
18
19
19
20
20
22
23
23
30
30
30
30
32
32
39
39
40
47
47
49
49
51
51
51
52
53
53
55
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
59
59
59
59
59
59
59
60
60
60
60
60
61
61
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
63
63
63
63
64
65
67
67
71
71
86
88
88
90
91
91
91
94
94
95
95
95
95
98
98
98
99
99
99
99
99
99
100
100
100
100
101
101
101
101
102
102
102
103
103
103
113
114
114
114
115
115
115
116
116
118
118
126
127
128
128
128
128
128
128
128
128
128
129
129
129
129
130
130
130
130
130
132
133
133
138
138
142
145
145
145
145
145
146
146
147
147
147
147
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
150
150
150
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
153
153
153
153
153
153
153
153
153
153
153
153
153
154
154
154
154
155
155
155
155
155
155
155
155
155
155
155
155
155
155
157
157
157
159
160
160
161
161
162
162
162
162
164
164
164
164
164
164
164
164
164
164
165
165
165
166
166
166
166
166
166
166
166
171
173
180
181
182
183
183
183
184
184
184
184
185
185
185
185
186
193
194
198
198
198
199
199
199
199
199
200
200
200
201
201
201
202
202
202
202
203
203
203
203
203
203
204
204
204
209
210
210
210
212
212
215
217
217
217
218
218
218
218
219
219
219
219
219
220
220
220
221
222
222
224
224
227
227
227
232
235
235
235
235
235
236
236
236
236
237
237
238
238
239
239
239
239
239
239
241
241
246
249
251
251
257
257
257
266
266
267
267
269
271
273
274
275
276
278
278
279
284
285
289
289
294
296
303
305
305
307
307
307
307
308
308
310
310
312
312
312
312
323
325
325
328
329
329
333
333
335
339
341
343
344
344
344
344
345
345
345
346
349
349
350
350
350
350
351
351
358
362
362
370
375
375
378
380
380
380
380
382
382
383
383
387
387
387
387
390
390
392
393
393
395
408
408
414
416
419
419
420
420
437
442
442
442
442
446
446
448
454
456
456
457
458
458
458
458
461
463
463
471
475
475
481
482
484
493
493
493
493
503
503
505
506
508
508
521
521
523
528
528
529
533
533
541
546
546
562
564
567
580
585
585
603
606
608
627
632
632
647
652
652
671
673
676
694
699
699
713
718
718
736
736
738
739
741
760
765
765
780
785
785
798
803
803
819
821
824
837
842
842
860
863
865
884
889
889
904
909
909
928
930
933
951
956
956
970
975
975
993
996
998
1017
1022
1022
1037
1042
1042
1557
1561
1562
5
5
7
10
11
11
13
13
14
15
15
15
15
17
19
19
20
20
21
21
24
24
31
31
32
32
32
33
37
37
40
46
48
49
49
49
49
50
51
52
52
52
53
53
54
54
54
55
56
57
57
57
58
58
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
61
61
61
61
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
65
65
65
65
68
68
72
72
89
91
92
95
95
95
96
96
96
96
96
96
97
98
99
99
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
101
101
101
102
103
113
113
113
114
114
114
114
115
115
115
116
119
119
127
128
129
129
129
129
129
129
129
130
130
131
131
131
131
131
133
134
134
139
139
143
145
145
145
145
146
146
146
146
146
147
147
147
148
148
148
149
149
149
149
149
149
149
149
149
149
150
150
150
151
151
151
151
151
151
151
151
152
152
152
152
152
152
152
152
152
153
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
157
157
157
158
158
160
160
161
162
162
163
163
163
163
165
165
165
165
165
165
165
165
166
167
167
167
167
167
167
171
173
181
181
182
182
183
184
185
185
186
186
186
194
196
196
198
198
198
199
199
199
200
200
200
200
200
201
201
201
201
201
201
202
202
203
204
204
205
205
205
209
209
209
210
211
211
211
215
217
218
219
219
220
220
220
220
220
220
221
221
221
221
223
228
228
228
228
233
236
236
236
237
237
237
237
237
237
238
238
238
240
240
242
242
247
252
252
258
258
268
268
270
272
274
275
276
277
279
280
285
286
286
290
290
294
294
296
296
296
297
304
306
306
306
308
308
308
308
308
309
309
311
311
313
313
313
313
318
318
324
326
329
334
334
336
340
341
341
344
345
345
345
345
346
347
349
350
350
350
350
350
350
351
351
351
352
352
359
361
363
363
363
371
373
373
376
376
378
379
380
380
381
381
383
383
384
384
386
388
388
388
388
391
391
393
393
394
396
407
408
408
408
408
409
415
417
419
420
420
421
421
421
431
431
438
443
443
447
447
449
454
454
457
457
458
459
462
462
463
463
463
463
464
472
474
476
476
476
482
483
485
486
486
491
493
493
494
494
499
504
504
506
506
509
509
520
521
521
521
521
522
524
529
529
530
532
534
534
534
542
544
544
547
563
565
568
581
586
586
604
607
609
628
633
633
648
653
653
672
674
677
695
700
700
714
719
719
736
737
740
742
761
766
766
781
786
786
799
804
820
822
825
838
843
843
861
864
866
885
890
890
905
910
910
929
931
934
952
957
957
971
976
976
994
997
999
1018
1023
1023
1038
1043
1043
1558
1562
1563
5
5
5
7
11
11
13
13
13
14
15
15
16
16
16
18
19
21
21
22
22
24
30
30
32
32
34
39
39
40
47
47
47
48
48
49
49
49
49
49
49
50
51
52
53
53
54
55
56
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
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
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
63
63
63
63
63
63
64
64
64
64
65
69
73
73
90
92
93
93
94
94
94
94
94
95
96
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
98
98
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
106
107
114
115
115
116
116
120
120
128
128
128
129
129
129
129
129
130
130
130
130
130
130
130
131
132
132
132
134
135
135
140
140
145
145
145
145
146
146
146
147
147
147
147
147
147
147
148
148
148
148
149
149
149
149
150
150
150
150
150
150
150
150
150
151
151
151
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
153
153
153
154
154
154
155
155
155
155
155
155
155
155
157
157
159
159
162
164
164
164
164
164
164
165
165
165
165
166
166
166
166
166
166
166
166
168
168
168
168
181
181
182
182
183
183
184
184
185
186
186
187
187
187
195
197
200
200
200
201
201
201
201
201
202
202
203
204
205
205
206
206
211
212
212
212
215
215
218
218
219
221
221
221
221
222
222
224
229
229
229
229
229
229
234
236
237
237
237
237
238
239
239
239
241
241
243
243
248
253
253
257
258
258
258
258
259
266
267
267
267
269
269
271
273
275
276
277
278
278
278
280
281
286
287
287
287
287
291
291
297
297
298
305
306
307
307
309
309
310
310
312
312
314
314
314
314
316
319
319
321
325
327
330
333
335
335
341
342
342
343
343
343
345
346
346
346
347
348
351
351
351
351
352
352
352
353
353
361
362
371
372
374
374
377
377
380
381
382
382
384
384
385
385
389
389
389
389
390
392
392
395
397
401
409
409
410
416
419
420
421
421
429
432
432
434
439
444
444
446
448
448
455
455
456
456
456
458
458
460
463
464
464
465
474
475
483
484
484
486
487
487
494
495
495
503
505
505
510
510
514
522
522
523
525
530
530
532
533
542
543
545
545
548
564
566
569
582
587
587
605
608
610
629
634
634
649
654
654
673
675
678
696
701
701
715
720
720
738
738
741
743
762
767
767
782
787
787
800
805
821
823
826
839
844
844
862
865
867
886
891
891
906
911
911
930
932
935
953
958
958
972
977
977
995
998
1000
1019
1024
1024
1039
1044
1044
1559
1563
1564
5
5
5
6
7
7
7
12
13
13
13
13
15
15
15
15
15
17
17
17
17
18
18
19
19
22
22
23
23
24
24
29
31
32
32
32
33
33
35
35
37
37
39
40
47
47
48
49
49
49
49
49
50
50
50
50
51
52
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
55
56
57
57
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
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
60
60
60
60
61
61
61
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
64
64
64
64
64
64
65
65
65
65
70
74
74
87
87
90
92
92
93
94
94
94
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
97
97
97
97
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
100
100
100
100
100
100
106
107
113
114
115
116
116
117
117
119
119
121
121
127
127
128
129
129
129
129
130
130
130
131
131
131
132
132
132
132
132
133
133
133
135
136
136
141
141
142
142
145
145
145
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
148
148
148
148
148
148
149
149
149
149
150
150
150
150
150
150
151
151
151
151
151
152
152
152
152
152
152
154
154
154
155
155
155
155
155
155
155
155
155
155
155
160
160
163
163
163
164
165
165
165
165
165
165
165
166
166
166
167
167
167
167
168
168
168
168
168
169
169
169
169
173
182
182
183
183
183
184
184
184
184
185
187
188
188
188
196
198
199
201
201
202
202
202
202
203
203
203
203
203
203
203
203
204
205
206
207
207
210
212
213
213
216
216
217
217
217
219
219
219
221
222
225
227
229
229
230
230
230
230
235
235
236
237
238
238
238
238
239
239
239
239
239
239
239
240
240
240
242
242
244
244
248
249
254
254
259
259
260
265
266
266
266
267
268
268
268
272
274
276
278
279
279
279
281
282
285
287
287
287
288
288
292
292
294
296
298
298
306
307
307
308
308
308
310
310
311
311
313
313
315
315
315
315
317
317
322
326
328
331
333
342
344
344
344
344
347
347
347
348
349
350
350
352
352
352
352
353
353
354
354
362
362
363
363
372
372
373
378
378
380
380
381
382
385
385
386
386
390
390
390
390
391
391
393
393
393
396
398
402
402
402
402
408
408
410
410
417
420
420
421
421
422
422
430
430
435
440
445
445
446
457
457
457
457
459
461
463
463
464
465
465
475
475
476
476
484
485
485
485
487
493
493
495
504
504
506
506
506
511
511
515
515
515
515
521
521
523
523
526
531
531
533
533
534
534
543
543
544
546
546
549
565
567
570
583
588
588
606
609
611
630
635
635
650
655
655
674
676
679
697
702
702
716
721
721
738
739
742
744
763
768
768
783
788
788
801
803
803
806
822
824
827
840
845
845
863
866
868
887
892
892
907
912
912
931
933
936
954
959
959
973
978
978
996
999
1001
1020
1025
1025
1040
1045
1045
1560
1564
1565
5
5
7
8
8
13
13
13
15
16
16
16
18
18
18
19
19
19
19
19
20
24
24
24
25
30
30
30
32
32
34
34
36
36
39
39
39
40
40
40
40
47
47
48
49
50
51
51
51
51
51
52
53
53
55
56
57
57
57
57
57
57
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
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
60
60
60
60
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
63
63
63
63
63
63
63
64
65
65
71
75
75
93
93
94
95
95
95
95
96
96
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
101
101
101
101
101
107
108
113
114
114
115
117
118
118
120
120
122
128
128
130
130
132
132
133
133
133
133
133
134
134
134
136
137
137
141
141
141
141
141
142
142
143
143
143
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
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
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
151
151
151
151
151
151
152
152
152
152
152
153
153
154
154
154
155
155
155
155
155
155
155
155
155
155
155
155
155
156
159
161
161
164
164
164
166
166
166
166
166
166
168
168
168
168
169
169
169
169
169
170
170
170
170
181
182
182
183
183
183
184
185
186
186
186
187
187
188
189
189
189
197
199
200
200
201
201
202
202
203
203
203
203
204
204
204
204
204
205
205
205
205
205
206
207
208
208
211
211
218
218
218
218
220
221
221
222
226
230
231
231
231
231
236
236
236
236
236
237
237
239
239
239
239
240
240
240
240
240
241
243
243
245
245
249
249
249
249
250
255
258
258
260
260
266
268
269
269
269
270
273
275
275
276
277
277
279
279
280
280
282
283
288
288
289
289
293
293
297
307
309
309
309
311
311
312
312
314
314
316
316
316
316
323
323
327
329
329
332
333
334
343
345
345
348
348
348
349
350
351
353
353
354
354
355
355
364
364
374
379
379
381
382
386
386
387
387
391
391
391
391
391
393
394
394
394
397
399
403
403
409
418
422
422
423
423
436
436
441
442
446
446
446
447
458
458
460
462
464
465
477
477
485
486
488
494
504
506
507
507
507
512
512
516
516
522
527
532
532
535
535
545
547
550
566
568
568
571
571
584
589
589
607
610
612
631
636
636
651
656
656
675
677
680
698
703
703
717
722
722
740
743
745
764
769
769
784
789
789
802
804
807
823
825
825
828
828
841
846
846
864
867
869
888
893
893
908
913
913
932
934
937
955
960
960
974
979
979
997
1000
1002
1021
1026
1026
1041
1046
1046
1561
1565
1566
9
9
14
16
17
17
17
19
20
20
20
21
24
24
25
25
25
26
26
26
26
31
32
32
32
33
35
35
37
37
37
37
40
41
41
47
48
49
49
50
51
51
52
52
52
54
55
56
56
57
57
57
57
57
57
57
57
57
57
57
58
58
58
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
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
63
63
63
64
64
64
64
65
65
72
76
76
92
93
93
94
94
95
95
96
96
96
96
97
97
98
99
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
100
100
101
101
101
107
107
108
108
115
116
116
116
117
117
118
119
119
121
121
123
128
128
129
129
131
134
134
134
134
134
135
137
138
138
142
142
142
142
142
143
143
143
144
144
144
145
146
146
146
146
146
146
146
147
147
147
147
147
147
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
148
148
149
149
149
149
149
149
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
151
151
151
152
152
152
152
152
152
152
152
153
154
154
154
155
155
156
156
158
158
160
161
161
162
162
162
164
164
165
165
165
167
167
167
167
169
169
170
170
170
170
171
171
174
174
182
182
184
184
185
186
186
187
187
187
187
188
188
189
190
190
190
193
198
200
202
202
202
202
203
204
205
206
206
206
206
207
208
209
209
219
219
221
221
221
221
221
222
222
222
222
227
229
229
231
232
232
237
237
237
237
238
238
238
238
238
238
238
240
240
242
244
244
246
246
250
250
251
254
254
256
259
267
269
270
270
271
274
276
280
280
281
281
283
284
287
287
289
289
294
294
294
298
307
308
308
308
308
310
310
310
312
312
313
313
315
315
317
317
317
317
319
324
324
324
324
328
329
330
333
334
335
344
345
349
349
349
350
350
351
352
354
354
355
355
356
356
362
363
363
363
365
365
374
375
380
380
380
380
382
383
387
387
388
388
391
392
392
392
392
393
394
395
395
395
398
400
403
408
410
419
420
421
421
421
423
423
424
424
432
437
437
437
437
442
442
447
447
447
448
458
461
463
463
465
466
475
476
476
476
478
478
486
487
487
489
493
493
495
504
506
507
508
508
508
513
513
516
521
523
528
533
533
533
534
534
534
536
536
545
546
548
551
567
572
572
585
590
590
608
611
613
632
637
637
652
657
657
676
678
681
699
704
704
718
723
723
741
744
746
765
770
770
785
790
790
803
805
808
824
829
829
842
847
847
865
868
870
889
894
894
909
914
914
933
935
938
956
961
961
975
980
980
998
1001
1003
1022
1027
1027
1042
1047
1047
1562
1566
1567
5
9
11
15
15
17
17
18
18
18
19
20
21
22
22
22
22
22
24
24
24
26
26
26
26
30
30
32
32
32
32
34
38
38
42
42
47
47
47
48
49
50
51
51
52
52
55
55
55
57
57
57
57
57
57
57
57
57
57
57
57
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
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
65
65
73
77
77
86
91
93
93
94
94
94
94
95
95
95
95
95
96
96
96
96
96
97
97
97
97
97
97
97
97
97
97
98
98
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
116
117
117
117
118
118
119
120
120
122
124
128
129
129
129
130
131
131
132
135
136
138
139
139
143
143
143
143
143
143
144
144
144
145
145
145
145
145
145
145
145
146
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
149
149
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
150
150
150
150
150
150
150
151
151
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
153
153
155
155
155
155
155
155
157
157
161
162
162
163
163
163
164
165
165
165
166
166
166
166
167
167
167
167
168
168
168
168
170
170
172
172
175
175
175
175
182
182
183
184
185
185
186
186
187
187
188
188
188
189
189
191
191
194
194
194
200
201
201
202
202
202
204
204
205
205
206
207
207
207
207
209
210
210
213
219
221
222
222
223
223
228
230
233
233
238
238
238
238
238
239
239
239
239
241
242
242
243
245
245
247
247
250
252
255
257
258
260
268
268
272
275
277
279
281
281
282
282
284
285
288
290
294
295
295
295
296
307
307
307
308
309
309
309
309
311
313
313
314
314
316
316
318
318
318
318
319
322
324
324
325
325
329
331
333
334
335
336
345
345
350
350
350
350
350
351
351
352
355
355
356
356
357
357
362
362
362
363
364
364
364
374
376
380
380
381
381
381
381
384
388
388
389
389
391
391
393
393
393
393
394
395
396
399
401
403
408
408
409
420
420
420
420
421
422
422
422
425
425
432
435
437
437
438
438
443
446
448
448
448
449
458
462
463
463
464
464
467
475
475
475
476
477
477
477
487
488
490
493
493
494
494
504
504
507
508
509
514
514
516
521
521
522
529
533
533
533
534
534
534
535
535
535
545
547
549
552
568
573
573
586
591
591
612
614
633
638
638
653
658
658
679
682
700
705
705
719
724
724
745
747
766
771
771
786
791
791
804
806
809
825
830
830
843
848
848
869
871
890
895
895
910
915
915
936
939
957
962
962
976
981
981
1002
1004
1023
1028
1028
1043
1048
1048
1563
1567
1568
1
1
5
9
9
9
9
13
15
15
16
18
19
21
23
23
23
24
27
27
32
32
32
32
33
33
35
37
39
39
42
47
51
52
52
52
52
53
56
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
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
61
61
61
61
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
64
65
65
65
74
76
76
78
78
92
94
94
96
96
96
96
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
99
99
99
100
100
100
100
100
101
101
101
102
102
118
118
119
119
121
123
125
129
129
130
130
130
131
131
132
132
132
132
133
134
135
136
137
139
140
140
144
144
144
144
144
144
144
144
144
144
144
144
144
144
144
145
145
145
146
146
146
146
146
146
147
147
147
148
148
148
148
148
148
148
148
148
148
148
148
148
148
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
151
151
151
151
151
151
151
151
151
151
151
151
151
151
151
152
152
153
153
153
153
153
153
153
153
153
153
153
153
153
153
155
155
155
155
156
156
156
160
162
163
163
164
165
165
166
166
167
167
167
167
168
168
168
168
168
168
169
169
169
169
169
171
171
171
171
173
173
173
173
175
175
176
176
182
182
183
184
185
186
186
186
187
187
187
188
188
189
192
192
195
195
200
202
202
203
203
204
204
204
204
204
204
205
205
205
206
206
207
208
208
210
211
211
213
218
219
222
223
229
229
229
231
234
234
236
238
239
239
240
240
240
240
242
243
243
244
246
246
246
246
248
248
248
248
250
253
256
258
258
258
259
273
276
278
279
282
282
283
283
285
286
287
287
289
291
295
296
296
296
296
297
309
310
310
310
310
312
314
314
315
315
317
317
319
319
319
319
325
326
326
329
330
332
334
335
336
336
346
349
350
351
351
351
351
352
352
353
356
356
357
357
358
358
364
365
365
365
377
382
382
382
382
385
389
389
390
390
392
392
393
393
393
394
394
394
394
395
400
402
407
408
409
410
421
422
423
423
423
426
426
438
439
439
442
444
447
449
449
449
449
462
463
463
464
465
465
468
477
478
478
478
489
491
495
495
505
505
506
506
506
508
510
515
515
520
521
522
523
530
535
535
535
536
536
536
548
550
553
569
574
574
587
592
592
613
615
634
639
639
654
659
659
680
683
701
706
706
720
725
725
746
748
767
772
772
787
792
792
805
807
810
826
831
831
844
849
849
870
872
891
896
896
911
916
916
937
940
958
963
963
977
982
982
1003
1005
1024
1029
1029
1044
1049
1049
1564
1568
1569
1
1
1
5
5
5
9
9
10
15
17
17
17
18
19
20
20
22
24
24
24
24
24
24
25
26
26
27
27
28
28
30
34
34
36
37
40
40
42
42
51
51
52
53
53
53
53
53
53
53
53
53
54
54
55
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
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
65
65
66
75
77
77
79
93
94
94
94
94
94
95
95
95
95
95
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
99
99
99
99
99
100
100
100
100
100
100
100
101
102
102
102
102
102
103
103
103
103
116
116
117
117
124
126
129
129
130
130
132
132
132
132
132
132
133
133
133
133
135
136
137
138
140
141
141
141
141
143
144
145
145
145
145
145
145
146
146
146
146
146
147
147
147
147
147
147
147
147
147
147
147
147
148
148
148
149
149
149
149
149
149
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
151
151
151
151
151
151
151
151
152
152
152
152
152
152
152
152
152
152
152
152
152
152
152
153
154
154
156
157
157
157
161
161
161
163
164
164
165
165
165
166
166
168
168
168
168
168
168
168
169
169
169
169
169
169
170
170
170
174
174
174
174
176
177
177
185
186
186
186
187
187
188
188
189
189
190
193
193
194
195
195
195
195
196
201
201
202
202
202
203
204
204
205
205
205
205
206
206
207
207
208
208
209
209
209
211
211
212
212
212
219
219
219
219
222
222
222
223
223
223
229
229
230
230
230
235
235
236
237
237
240
240
240
240
240
240
240
243
244
244
245
249
249
249
249
254
257
257
258
259
259
260
270
274
277
277
279
279
283
283
284
284
286
287
287
287
288
288
292
297
297
297
297
298
308
310
311
311
311
313
315
315
316
316
318
318
319
319
320
320
320
320
324
324
326
333
333
335
336
347
350
352
352
352
352
353
353
354
357
357
358
358
359
359
363
365
366
366
374
374
378
378
383
383
383
383
386
390
390
391
391
394
394
394
394
395
395
401
403
408
410
411
421
422
423
424
424
427
427
432
432
437
437
439
445
446
448
450
450
463
465
466
466
469
476
478
479
479
487
487
490
491
492
496
496
507
507
507
507
511
516
516
521
523
524
531
534
536
536
536
537
537
545
545
549
551
554
570
575
575
588
593
593
614
616
635
640
640
655
660
660
681
684
702
707
707
721
726
726
747
749
768
773
773
788
793
793
806
808
811
827
832
832
845
850
850
871
873
892
897
897
912
917
917
938
941
959
964
964
978
983
983
1004
1006
1025
1030
1030
1045
1050
1050
1565
1569
1569
1570
10
11
11
15
15
16
18
21
21
21
21
23
24
25
26
26
27
27
28
28
29
29
34
35
37
37
37
41
41
42
43
47
51
53
53
54
54
54
54
54
56
57
57
57
57
57
57
57
57
57
57
57
57
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
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
62
62
62
62
62
62
63
63
63
63
63
63
63
63
64
64
64
65
65
66
67
76
78
78
80
94
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
100
100
100
100
100
100
100
101
101
103
104
104
104
104
107
107
108
108
116
117
117
117
118
118
125
125
127
127
128
132
132
133
133
133
133
133
133
133
133
134
134
134
134
136
137
138
138
139
139
141
141
142
142
142
142
142
143
143
144
144
145
145
145
145
145
145
145
146
146
146
146
146
146
146
146
147
147
147
147
148
148
148
148
148
148
148
148
148
149
149
150
150
150
150
150
150
150
150
150
150
150
151
151
151
151
151
151
152
152
152
152
153
153
153
153
153
153
153
153
153
153
153
153
153
153
154
157
158
158
162
164
164
165
165
166
166
168
168
169
169
169
169
169
169
169
169
169
170
170
170
170
170
170
171
171
171
175
175
175
175
175
175
177
182
183
186
187
187
188
188
189
189
190
194
194
196
196
197
198
202
202
203
203
203
203
203
204
205
205
207
207
208
208
210
212
212
213
213
213
213
213
220
220
223
223
224
224
231
231
231
236
236
237
238
238
240
241
241
241
241
241
241
241
241
241
244
245
245
246
250
250
250
250
255
258
258
260
260
261
270
275
280
280
284
285
287
288
289
289
293
297
298
298
298
298
309
309
312
314
316
316
317
317
317
319
320
320
321
321
321
321
325
334
334
334
336
336
337
344
348
350
351
353
353
353
353
354
355
358
359
360
360
364
364
372
375
375
379
379
384
384
384
387
391
391
392
392
395
395
396
396
402
402
404
408
409
411
422
422
423
428
428
430
433
433
438
446
447
447
449
449
451
451
457
463
463
464
466
467
467
470
477
477
485
486
488
488
491
492
493
497
508
508
512
515
517
517
521
522
524
532
535
535
537
537
543
546
546
550
552
555
571
576
576
589
594
594
608
615
617
636
641
641
656
661
661
676
680
682
685
703
708
708
722
727
727
741
748
750
769
774
774
789
794
794
807
809
812
828
833
833
846
851
851
865
872
874
893
898
898
913
918
918
933
937
939
942
960
965
965
979
984
984
998
1005
1007
1026
1031
1031
1046
1051
1051
1566
1569
1570
1571
1
4
9
11
17
17
17
18
20
20
22
22
22
24
25
25
26
26
28
28
29
29
30
30
30
30
35
38
42
42
42
42
43
44
44
44
44
51
51
51
52
54
54
54
54
54
54
54
54
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
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
59
59
59
59
59
60
60
60
60
60
61
61
61
62
62
62
62
62
62
63
63
63
63
64
64
65
65
66
66
67
67
68
77
79
81
93
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
97
98
98
98
98
99
99
99
99
100
100
100
100
100
100
100
100
100
100
100
101
101
101
102
104
105
105
105
105
107
108
116
116
117
117
117
118
118
118
119
119
119
123
126
126
128
128
128
129
131
134
134
134
134
134
134
135
135
135
135
137
138
142
142
143
143
143
143
143
143
143
144
144
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
145
146
146
146
146
146
146
146
147
147
147
147
148
148
148
148
148
148
148
148
148
149
149
149
149
149
149
149
149
149
149
150
150
150
150
150
150
150
151
151
152
152
152
152
152
153
153
153
153
153
153
153
153
153
153
153
153
153
153
154
154
154
155
164
165
166
166
166
167
167
167
167
170
170
170
170
170
170
170
170
171
171
171
171
171
171
172
172
172
172
176
176
176
176
176
187
187
188
188
188
189
189
189
190
190
190
190
191
195
195
195
195
197
197
202
203
203
203
203
205
206
206
208
208
209
209
211
211
213
213
214
214
214
214
214
219
220
221
222
223
223
223
223
224
224
224
224
224
225
227
232
232
232
237
237
239
239
239
241
241
241
241
242
242
242
242
242
245
245
246
246
247
247
251
251
251
251
256
258
259
259
261
261
276
281
281
283
284
285
285
286
286
287
288
289
290
290
294
297
298
298
298
299
299
299
313
315
317
317
318
318
318
318
320
322
322
322
322
324
324
326
334
335
336
337
337
338
345
345
345
345
349
350
351
353
353
354
354
354
354
355
356
357
357
358
358
359
360
361
361
373
373
379
379
380
383
383
385
385
385
388
392
392
393
393
394
394
394
394
395
396
397
397
403
403
403
403
403
405
408
409
411
411
412
424
429
429
431
431
437
437
439
447
447
449
450
450
452
458
458
458
458
463
464
466
466
467
468
468
471
486
486
487
489
492
492
492
494
496
496
498
508
513
516
516
516
516
518
518
521
522
524
524
525
533
538
538
544
544
551
553
556
572
577
577
590
595
595
609
613
616
618
637
642
642
657
662
662
681
683
686
704
709
709
723
728
728
736
742
746
749
751
770
775
775
790
795
795
808
810
813
829
834
834
847
852
852
866
870
873
875
894
899
899
914
919
919
938
940
943
961
966
966
980
985
985
999
1003
1006
1008
1027
1032
1032
1047
1052
1052
1567
1571
1572
5
5
9
9
9
11
11
11
15
15
18
23
23
23
23
25
26
26
26
26
26
27
28
29
29
30
31
31
35
35
36
37
39
42
42
42
43
43
44
44
54
54
54
54
54
55
55
55
56
56
56
56
56
56
57
57
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
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
63
63
64
64
67
68
68
69
78
80
82
92
93
93
93
94
94
94
94
95
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
97
97
98
98
98
98
98
98
98
98
99
99
99
99
100
100
101
101
101
101
101
101
101
101
101
102
102
103
103
105
105
106
106
106
106
117
117
118
118
118
119
119
119
119
120
120
120
120
124
127
127
128
129
129
129
131
131
131
132
133
133
134
134
134
134
134
134
136
136
136
136
138
139
141
143
143
143
143
143
143
143
143
144
144
144
144
144
144
144
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
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
149
149
149
149
149
149
149
149
149
150
150
150
150
151
152
153
153
153
153
153
153
153
153
153
153
153
153
153
154
154
154
154
154
155
155
164
164
165
166
167
167
167
167
168
168
168
169
169
170
170
170
170
170
170
172
172
172
172
172
172
173
173
173
173
175
175
177
177
177
177
177
182
182
189
190
190
190
191
191
191
191
192
196
196
196
201
203
203
204
204
204
205
205
205
206
206
207
207
207
209
209
209
210
210
212
212
212
214
214
215
215
215
220
220
220
220
222
223
224
224
225
225
225
226
228
233
233
238
238
239
239
239
241
241
242
242
243
243
243
243
243
247
247
248
248
252
252
252
252
257
258
259
260
261
261
262
262
270
270
277
277
282
282
286
286
287
287
288
289
290
291
295
299
299
300
300
300
311
314
316
318
318
318
318
319
319
321
323
323
323
323
324
324
325
325
330
334
334
336
336
337
338
338
339
346
346
350
354
354
355
355
355
355
356
357
358
359
360
361
362
362
366
381
384
384
386
386
389
393
393
394
395
395
395
397
398
398
401
404
404
404
406
412
412
413
424
425
430
430
437
437
438
438
447
448
449
450
451
451
453
459
459
467
467
468
469
469
472
479
490
493
495
497
497
499
508
514
517
517
519
519
525
525
526
534
537
539
539
554
557
573
578
578
591
596
596
614
617
619
638
643
643
658
663
663
682
684
687
705
710
710
724
729
729
737
747
750
752
771
776
776
791
796
796
811
814
830
835
835
848
853
853
871
874
876
895
900
900
915
920
920
939
941
944
962
967
967
981
986
986
1004
1007
1009
1028
1033
1033
1048
1053
1053
1568
1572
1573
5
5
6
9
10
11
11
11
12
17
17
18
22
24
24
24
26
27
27
27
28
28
28
28
30
30
30
30
30
32
32
34
34
34
36
37
37
40
42
44
44
44
44
46
46
53
53
53
53
54
54
54
54
54
54
54
54
54
54
55
55
56
56
56
56
56
56
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
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
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
65
65
65
68
69
69
70
81
83
93
93
93
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
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
97
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
100
100
100
100
100
100
100
100
102
102
102
102
102
102
102
103
103
104
104
106
106
107
107
107
107
117
118
119
119
119
120
120
120
120
120
121
121
121
125
130
130
131
132
132
132
132
133
133
133
133
133
133
133
133
134
134
135
135
135
135
135
135
139
140
140
140
141
141
141
141
141
141
141
141
141
141
142
142
144
144
144
144
144
144
144
144
144
145
145
145
145
145
145
145
145
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
147
147
147
147
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
149
149
150
150
150
150
150
150
150
150
150
150
150
151
151
152
153
153
153
154
154
155
155
155
156
156
158
167
168
168
168
168
169
169
169
169
169
169
169
169
169
169
170
170
171
171
171
171
171
171
173
173
174
174
174
174
175
175
176
176
178
178
178
178
183
183
184
184
184
187
187
188
188
189
190
191
191
192
192
192
195
197
197
197
202
202
205
205
205
205
205
205
205
205
206
210
210
210
211
213
215
215
216
216
216
221
221
221
221
223
223
223
224
224
224
225
225
226
226
228
228
232
232
234
234
237
239
239
239
240
240
240
240
241
241
241
241
241
241
242
242
243
243
244
248
248
249
249
249
253
253
253
253
258
261
262
262
263
263
268
271
271
278
278
283
283
286
286
287
288
288
289
290
290
290
290
291
292
296
300
300
301
301
311
315
317
319
319
319
320
320
320
322
324
324
326
326
334
334
335
337
337
338
340
346
351
355
355
356
356
357
358
359
360
361
362
363
363
366
375
382
383
385
385
385
385
387
390
394
394
395
396
396
399
399
402
404
405
407
413
413
424
426
431
431
433
439
439
447
447
449
450
451
451
451
454
459
468
468
470
470
473
479
488
491
494
496
496
498
498
515
517
520
520
526
526
535
537
540
540
546
555
558
574
579
579
592
597
597
615
618
620
639
644
644
659
664
664
683
685
688
706
711
711
725
730
730
737
748
751
753
772
777
777
792
797
797
812
815
831
836
836
849
854
854
872
875
877
896
901
901
916
921
921
940
942
945
963
968
968
982
987
987
1005
1008
1010
1029
1034
1034
1049
1054
1054
1569
1573
1574
4
4
4
5
6
7
11
12
13
15
15
17
18
19
23
24
25
25
26
26
27
28
28
29
31
31
33
33
34
35
37
37
37
37
37
41
42
43
44
44
44
44
44
45
45
46
46
46
46
46
47
47
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
57
57
58
58
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
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
62
63
63
63
63
63
63
63
63
63
63
63
64
64
65
65
66
66
66
70
71
76
80
82
82
84
84
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
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
101
101
101
101
101
101
103
103
103
104
104
105
105
107
107
108
108
108
108
117
118
119
120
120
121
121
121
122
122
126
131
131
133
133
133
134
134
135
135
136
136
136
136
136
136
139
139
139
139
139
140
141
141
141
142
142
142
142
142
142
142
142
142
142
142
142
142
142
143
143
143
144
144
144
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
146
146
147
147
147
147
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
149
149
149
150
150
150
150
150
151
151
151
151
151
151
151
151
151
152
152
153
153
154
155
155
156
158
169
169
169
170
170
170
170
171
171
172
172
172
172
172
172
174
174
175
175
175
175
177
177
179
179
179
179
185
185
185
185
188
189
189
189
189
190
190
190
190
191
193
195
195
196
198
198
203
203
206
206
206
206
206
206
206
206
206
206
206
207
207
211
211
211
212
214
214
216
216
217
217
217
219
221
221
221
221
222
222
222
222
222
222
222
223
223
223
224
224
224
225
225
233
233
235
235
238
239
239
240
240
240
240
240
240
240
240
241
241
242
242
243
243
245
249
249
250
250
250
250
250
254
254
254
254
262
263
263
264
269
269
279
279
279
284
284
288
289
289
290
290
291
291
291
292
293
297
298
302
302
316
318
320
320
320
320
321
321
322
323
325
325
327
327
335
335
336
336
336
336
338
338
341
346
352
353
355
355
357
357
358
359
360
361
362
363
364
364
375
383
383
386
388
391
393
393
395
395
396
397
397
400
400
403
404
406
408
411
427
432
432
433
435
440
440
448
448
449
449
449
450
451
452
455
459
466
471
471
474
488
492
495
496
497
516
517
521
521
524
536
541
541
546
556
559
575
580
580
593
598
598
616
619
621
640
645
645
660
665
665
684
686
689
707
712
712
726
731
731
749
752
754
773
778
778
793
798
798
813
816
832
837
837
850
855
855
873
876
878
897
902
902
917
922
922
941
943
946
964
969
969
983
988
988
1006
1009
1011
1030
1035
1035
1050
1055
1055
1570
1574
1575
4
4
5
5
7
8
13
13
17
17
17
18
18
18
18
24
25
26
26
28
28
28
28
28
30
32
32
32
32
34
34
34
34
37
38
42
42
44
44
44
45
45
46
46
46
46
46
46
47
47
47
48
48
51
53
53
56
57
57
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
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
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
65
66
66
67
67
67
71
72
77
81
83
83
85
85
90
90
93
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
97
97
97
97
98
98
98
98
98
99
99
99
100
100
100
101
101
102
102
102
102
102
102
104
104
104
105
105
108
108
109
109
109
109
120
121
121
122
127
132
132
132
133
133
133
134
134
135
135
136
136
137
137
137
137
140
140
140
140
140
141
142
142
142
143
143
143
143
143
143
143
143
143
143
143
143
143
143
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
146
146
146
146
146
146
146
146
146
146
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
149
149
150
150
150
151
151
151
151
152
152
152
152
152
153
153
153
153
153
154
154
154
155
156
168
169
169
169
169
170
170
171
171
171
171
172
172
173
173
173
173
175
175
176
176
176
176
178
178
180
180
180
180
186
186
187
188
190
190
191
191
191
192
194
194
195
196
197
199
204
204
204
206
206
206
206
207
207
207
207
207
208
208
212
212
212
213
214
215
217
217
218
218
218
220
220
222
222
222
222
223
223
223
223
223
224
224
225
225
226
226
232
234
234
236
239
239
240
241
241
241
241
241
241
241
242
242
243
243
244
244
246
250
250
251
251
251
251
255
255
255
255
261
263
265
280
280
280
280
280
285
285
286
289
290
290
291
291
292
292
292
293
297
298
303
303
311
311
317
319
321
321
321
322
322
323
323
323
323
323
324
326
326
328
337
337
337
337
337
339
342
350
353
356
358
358
359
360
361
362
363
364
365
365
366
366
379
383
384
384
387
389
392
394
394
396
396
397
398
398
401
401
404
407
408
409
424
424
428
433
433
436
441
450
450
450
450
451
453
456
463
472
472
475
479
479
492
493
496
496
496
497
498
498
507
517
521
522
522
537
537
537
542
542
551
555
557
560
576
581
581
594
599
599
617
620
620
622
622
641
646
646
661
666
666
685
687
687
690
690
708
713
713
727
732
732
738
738
750
753
753
755
755
774
779
779
794
799
799
808
812
814
817
833
838
838
851
856
856
874
877
877
879
879
898
903
903
918
923
923
942
944
944
947
947
965
970
970
984
989
989
1007
1010
1010
1012
1012
1031
1036
1036
1051
1056
1056
1571
1575
1576
4
5
5
6
8
9
11
11
13
15
15
18
19
19
26
26
26
27
27
28
29
29
29
31
33
33
34
34
35
35
38
39
43
44
45
45
46
46
46
47
47
47
48
48
48
49
49
54
54
56
57
57
57
57
57
57
57
57
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
60
60
60
60
60
60
60
60
61
61
61
61
61
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
64
66
67
68
68
68
68
69
69
72
73
78
82
84
84
86
86
90
90
91
91
91
91
91
91
92
93
93
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
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
98
98
98
98
98
99
99
99
99
99
101
101
101
102
102
103
103
103
103
105
105
105
106
106
109
109
110
110
110
110
121
122
128
132
132
132
133
133
133
134
134
134
135
135
135
135
141
141
141
141
141
141
142
142
143
143
143
143
143
144
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
146
146
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
147
147
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
148
149
151
152
152
152
153
153
153
154
154
154
154
155
155
155
155
158
158
161
168
168
168
169
170
170
170
170
171
171
171
171
172
172
176
176
177
177
177
177
179
181
181
181
181
186
188
189
189
190
190
191
191
191
192
192
195
195
197
198
200
204
204
204
206
206
206
207
207
207
207
207
208
208
208
208
208
209
209
210
213
213
213
214
214
216
218
218
219
219
219
221
221
221
223
223
223
223
223
224
224
224
224
224
224
225
225
226
227
232
237
240
240
240
240
240
241
241
241
241
242
242
242
242
242
245
245
247
250
251
251
251
251
251
251
252
252
252
256
256
256
256
258
264
266
271
278
280
280
281
281
281
286
286
291
292
292
293
294
297
298
298
298
299
304
304
309
312
312
318
320
322
322
322
323
323
323
324
324
325
327
327
327
327
329
338
338
338
340
343
350
351
353
353
354
357
359
361
362
363
364
364
365
366
366
367
367
379
384
385
385
388
390
393
395
395
395
395
395
398
399
399
402
402
405
408
408
408
409
410
410
411
411
422
425
425
429
434
434
436
436
440
440
442
451
451
452
454
457
463
464
466
466
473
473
476
477
480
480
492
494
497
498
499
499
508
508
508
508
518
521
522
523
523
524
524
535
538
538
538
543
543
556
558
561
577
582
582
595
600
600
618
623
623
642
647
647
662
667
667
686
691
691
709
714
714
728
733
733
739
739
739
739
751
756
756
775
780
780
795
800
800
813
815
818
834
839
839
852
857
857
875
880
880
899
904
904
919
924
924
943
948
948
966
971
971
985
990
990
1008
1013
1013
1032
1037
1037
1052
1057
1057
1572
1576
1577
4
4
4
5
5
7
9
10
11
13
13
14
20
20
28
28
28
28
28
30
30
32
35
35
36
36
37
39
40
44
44
44
46
46
46
46
48
48
49
49
49
53
54
54
54
54
54
54
54
55
55
56
56
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
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
61
61
61
62
62
62
62
62
63
63
63
63
63
63
65
68
69
69
69
70
73
74
83
87
87
91
91
91
91
92
92
92
92
93
93
93
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
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
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
100
100
100
100
102
106
106
106
107
107
110
110
111
111
111
111
129
134
134
134
135
135
135
139
141
141
142
142
142
142
142
142
142
142
142
142
142
143
143
143
143
144
145
145
145
145
146
146
146
146
146
146
146
146
146
146
146
146
146
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
148
148
148
148
148
148
148
148
148
149
149
149
149
149
149
149
149
151
152
152
153
153
153
154
155
155
156
156
156
159
159
162
170
170
170
171
171
171
173
173
177
177
178
178
178
178
178
178
180
182
182
182
182
186
190
190
191
191
191
191
191
192
192
192
192
193
195
196
196
198
198
198
201
202
205
205
205
205
206
206
206
206
206
206
206
206
206
207
207
207
208
208
208
208
208
209
214
214
214
214
214
215
215
217
219
219
220
220
220
220
220
221
222
222
222
222
223
224
224
224
225
225
226
226
226
227
227
227
228
228
232
233
238
238
240
240
240
240
241
241
242
243
243
243
243
244
244
244
244
246
246
248
252
252
252
252
253
253
253
257
257
257
257
258
258
259
261
261
265
267
271
281
282
282
282
287
287
290
292
293
293
294
295
297
299
299
300
305
305
310
310
319
321
323
323
323
324
325
325
326
328
328
328
328
330
338
339
341
341
344
344
350
354
354
355
358
360
362
363
364
365
365
365
366
367
367
383
385
386
386
389
391
394
396
396
396
399
400
400
403
403
406
408
411
411
412
412
423
423
430
435
435
441
441
443
451
453
455
458
463
467
467
474
474
477
478
478
495
496
498
499
500
500
509
509
519
521
524
524
525
525
536
536
539
544
557
559
562
578
583
583
596
601
601
619
624
624
643
648
648
663
668
687
692
692
710
715
715
729
734
734
739
739
739
739
740
740
752
757
757
776
781
781
796
801
814
816
819
835
840
840
853
858
858
876
881
881
900
905
905
920
925
944
949
949
967
972
972
986
991
991
1009
1014
1014
1033
1038
1038
1053
1058
1573
1577
1578
5
5
5
6
8
10
11
11
13
13
13
14
15
15
15
20
26
26
27
27
28
28
28
28
29
31
31
31
32
32
33
34
36
36
37
37
37
37
45
45
46
46
46
47
47
49
49
53
53
53
53
53
54
54
54
54
54
55
55
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
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
59
59
60
60
60
60
60
60
60
61
61
61
63
63
64
66
69
70
70
70
70
71
71
73
74
74
75
84
88
88
89
93
93
94
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
97
97
97
97
97
97
97
98
98
98
98
98
98
98
100
101
101
101
103
107
107
107
108
108
111
111
112
112
112
112
117
117
118
118
130
133
135
135
135
136
136
137
137
137
137
137
137
139
139
139
140
141
141
141
141
142
142
143
143
143
143
143
143
143
143
143
143
143
143
143
143
143
143
143
143
143
144
144
144
144
144
144
145
145
145
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
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
149
150
150
150
150
151
151
151
151
153
153
153
154
154
155
155
156
156
157
167
167
169
171
172
172
173
173
173
173
173
173
174
174
178
178
179
179
179
179
179
179
181
183
183
183
183
191
192
192
192
193
193
193
194
195
196
197
198
198
199
199
202
203
204
204
205
205
206
206
207
207
208
208
208
209
209
209
210
212
215
215
215
215
215
216
216
218
220
220
221
221
221
221
221
223
223
223
226
227
227
227
228
228
228
228
229
233
234
238
239
240
242
243
244
244
244
244
245
245
245
245
247
247
249
251
251
253
253
253
253
254
254
258
258
258
258
258
259
262
262
263
266
268
280
280
282
283
286
288
288
290
291
293
294
295
296
298
298
300
300
300
301
306
306
318
320
322
322
322
324
324
324
325
326
326
327
327
329
329
329
329
338
340
345
345
351
353
355
355
355
356
359
361
363
364
365
366
367
368
368
373
379
384
386
386
387
390
392
395
396
397
400
401
401
404
404
407
409
411
412
412
413
413
413
431
431
436
436
440
442
442
451
454
456
459
464
466
468
468
468
475
478
486
492
496
497
499
499
501
501
509
520
522
524
525
525
526
526
526
540
544
545
558
560
563
579
584
584
597
602
620
625
625
644
649
649
664
669
688
693
693
711
716
716
730
735
740
740
741
741
753
758
758
777
782
782
797
802
815
817
820
836
841
841
854
859
877
882
882
901
906
906
921
926
945
950
950
968
973
973
987
992
1010
1015
1015
1034
1039
1039
1054
1059
1574
1578
1579
1
4
5
5
6
7
9
11
12
13
13
15
15
15
15
15
15
20
20
26
28
28
28
28
28
29
29
30
30
32
32
32
33
33
33
34
38
38
39
39
40
44
44
46
46
46
46
46
46
48
50
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
56
56
56
57
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
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
66
66
67
69
69
70
71
71
74
75
75
76
85
88
89
89
90
90
90
90
93
94
94
94
94
95
95
95
95
95
95
95
96
96
96
96
97
97
97
97
97
97
98
98
98
98
98
101
102
102
103
103
103
103
103
103
104
108
108
108
109
109
112
112
113
113
113
113
118
118
119
119
119
119
119
120
120
120
131
134
134
135
135
136
136
137
137
138
138
138
138
139
140
140
140
140
141
141
141
141
141
141
141
141
141
141
141
142
142
142
142
142
142
142
142
143
143
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
144
144
144
144
144
144
145
145
145
145
145
145
145
145
145
146
147
147
147
147
147
147
147
147
147
147
147
148
148
148
149
149
149
149
149
149
149
150
150
151
151
151
152
152
152
152
154
155
155
155
155
156
156
157
158
168
168
168
168
170
170
171
171
173
173
174
174
174
174
175
175
178
179
179
180
180
180
180
180
180
184
184
184
184
193
193
194
194
198
199
199
200
200
203
204
204
205
206
206
206
207
207
207
208
208
209
209
209
210
210
211
213
213
216
216
216
217
217
219
221
221
221
221
222
222
222
222
222
222
222
224
224
228
228
229
229
232
234
235
239
240
240
241
244
245
245
246
246
246
246
250
252
254
254
255
255
259
259
259
259
259
261
263
263
263
264
267
269
271
271
281
284
286
289
289
289
290
291
292
294
295
296
297
298
299
302
307
307
312
319
321
323
323
325
325
325
326
327
327
327
328
330
330
341
345
346
346
353
354
358
359
360
362
364
365
366
367
367
368
369
369
374
383
385
388
391
393
396
396
396
398
400
400
401
402
402
403
405
405
408
411
412
413
413
425
432
432
437
437
440
455
457
458
460
466
467
474
476
477
479
480
487
496
497
498
502
502
509
516
521
524
525
526
526
538
541
543
543
545
546
559
561
564
580
585
585
598
601
601
603
621
626
626
645
650
650
665
667
667
670
689
694
694
712
717
717
731
734
734
736
741
741
754
759
759
778
783
783
798
800
800
803
816
818
821
837
842
842
855
858
858
860
878
883
883
902
907
907
922
924
924
927
946
951
951
969
974
974
988
991
991
993
1011
1016
1016
1035
1040
1040
1055
1057
1057
1060
1575
1579
1580
1
1
5
6
7
7
8
10
12
13
13
13
15
15
15
16
20
21
26
27
29
30
30
31
31
33
33
34
34
34
35
37
37
39
39
40
46
46
46
46
47
47
47
49
51
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
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
58
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
61
61
61
61
61
61
61
66
67
67
68
70
70
71
71
72
72
75
76
76
77
86
89
89
90
90
91
91
91
91
92
93
93
94
94
94
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
97
97
97
98
98
103
103
104
104
104
104
105
109
109
109
110
110
111
111
113
113
114
114
114
114
120
120
120
120
121
121
121
121
132
136
136
136
136
137
137
138
138
139
139
139
139
139
139
139
139
139
139
140
140
141
141
141
141
141
141
142
142
142
142
142
142
142
142
142
142
142
142
142
142
143
143
143
143
143
143
143
143
144
144
144
144
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
145
145
145
145
146
146
146
146
146
147
148
148
149
149
149
149
149
149
149
149
149
149
149
149
149
151
151
151
152
152
152
153
153
155
155
155
155
156
156
156
156
156
156
156
157
157
158
159
159
162
168
168
169
169
172
172
172
172
176
176
178
180
180
181
181
181
181
185
185
185
185
190
191
199
200
200
201
204
205
205
205
205
205
206
206
206
207
207
207
208
208
210
210
212
217
217
217
218
218
220
221
222
222
222
222
222
223
223
223
223
223
223
223
224
224
224
225
228
233
235
235
239
239
240
241
242
243
243
244
244
244
244
245
246
246
251
251
253
255
255
256
256
260
260
260
260
261
262
265
268
269
270
272
272
280
280
282
285
290
290
290
290
291
292
292
293
293
295
296
297
298
299
299
300
300
303
308
308
312
320
320
322
323
324
326
327
327
328
328
328
329
331
331
342
346
346
346
347
347
354
354
355
355
359
360
361
363
363
364
365
366
367
367
368
369
370
370
375
375
384
384
386
386
389
392
394
399
401
401
402
403
403
404
404
404
406
406
409
412
412
413
413
414
414
425
433
433
433
436
438
438
440
441
456
458
459
459
459
461
467
467
468
468
477
478
480
480
488
488
497
497
498
499
499
503
503
517
517
517
522
525
525
526
526
527
527
538
542
544
546
546
547
560
562
562
565
565
581
586
586
599
602
604
622
627
627
646
651
651
666
668
671
690
695
695
713
718
718
732
735
737
755
760
760
779
784
784
799
801
804
817
819
819
822
822
838
843
843
856
859
861
879
884
884
903
908
908
923
925
928
947
952
952
970
975
975
989
992
994
1012
1017
1017
1036
1041
1041
1056
1058
1061
1576
1580
1581
1
6
7
7
9
11
13
14
16
17
20
20
21
22
22
22
22
26
28
30
30
31
31
32
32
34
34
35
36
36
36
36
36
39
39
40
40
40
44
48
48
50
52
54
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
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
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
61
61
61
61
61
61
62
62
68
68
69
71
71
71
72
72
73
73
75
76
77
78
87
90
90
91
91
92
92
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
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
98
106
110
110
110
111
111
112
112
114
115
115
115
115
121
121
122
122
133
136
136
136
137
137
137
137
137
137
137
138
138
139
139
139
140
140
140
140
140
140
140
140
140
140
140
140
140
140
141
141
142
142
142
142
142
142
142
142
143
143
143
143
143
143
143
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
145
145
145
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
146
147
147
147
147
148
148
149
149
149
149
149
149
149
149
149
149
149
149
149
152
152
153
153
153
153
156
156
157
157
157
158
158
159
159
160
169
170
170
170
172
172
172
177
177
178
179
181
181
182
182
182
182
186
186
186
186
190
191
191
191
192
192
198
200
202
203
205
205
205
205
205
206
207
208
208
209
209
209
209
211
211
213
215
218
218
218
219
219
221
221
223
223
223
224
224
224
224
224
224
224
224
224
225
225
225
226
226
227
232
234
240
240
240
240
241
241
241
241
242
243
244
244
244
244
245
245
245
245
246
247
251
251
252
252
256
256
257
257
261
261
261
261
262
262
263
263
266
269
270
270
271
280
280
281
281
286
291
291
291
293
293
294
296
296
297
297
298
298
299
299
301
301
304
309
309
321
321
321
321
323
323
325
327
328
328
329
329
329
330
332
332
337
343
347
347
348
348
356
356
362
364
364
365
366
367
367
368
368
369
369
370
370
371
371
376
376
376
376
384
386
387
387
393
395
400
402
402
403
404
404
404
404
405
405
407
407
407
407
410
414
414
415
415
434
434
434
434
434
436
439
439
441
442
450
459
460
460
462
469
469
478
479
481
489
489
489
489
497
499
499
500
500
504
504
518
518
523
527
527
528
528
543
545
547
547
547
547
548
561
566
566
582
587
587
600
603
605
623
628
628
647
652
652
667
669
672
691
696
696
714
719
719
733
736
738
739
756
761
761
780
785
785
800
802
805
818
823
823
839
844
844
857
860
862
880
885
885
904
909
909
924
926
929
948
953
953
971
976
976
990
993
995
1013
1018
1018
1037
1042
1042
1057
1059
1062
1577
1581
1582
1
4
5
5
5
6
7
7
7
7
7
7
8
12
13
14
15
15
15
17
18
20
20
20
22
22
26
26
31
31
32
35
35
37
37
37
37
37
40
41
41
45
48
49
49
51
51
53
53
54
54
54
54
55
55
56
57
57
57
57
57
57
57
57
57
57
57
57
57
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
61
61
61
61
61
62
63
70
72
72
73
73
74
74
76
76
77
77
78
79
88
89
90
90
91
91
91
91
91
91
92
92
92
92
92
92
93
93
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
97
97
97
97
97
97
97
97
98
98
98
98
98
98
102
102
102
107
111
111
111
112
112
113
113
115
116
116
116
116
121
122
134
134
136
137
137
137
138
138
138
138
138
138
138
138
138
138
138
138
138
139
139
139
140
140
140
141
141
141
141
141
141
141
141
141
141
141
141
141
141
142
142
142
142
142
142
142
143
143
143
144
144
144
144
144
144
144
144
144
144
144
144
144
144
144
144
144
145
145
145
145
145
145
145
145
145
145
146
146
146
146
146
146
146
146
146
146
146
147
148
149
150
150
152
153
153
153
154
154
154
156
157
157
159
159
160
161
168
168
170
170
170
172
173
173
174
174
174
174
174
174
178
178
179
180
182
182
183
183
183
183
185
187
187
187
187
190
191
191
191
191
191
192
192
192
192
192
193
195
201
203
203
205
206
207
208
209
209
210
210
210
210
210
212
212
214
215
219
219
219
220
220
220
223
224
224
224
224
225
225
225
225
225
225
225
226
226
226
226
226
227
227
227
227
228
233
233
235
235
240
240
242
242
243
244
244
244
244
245
245
245
245
246
246
246
246
246
246
248
250
251
252
253
253
257
257
258
258
262
262
262
262
264
264
267
270
270
272
272
282
282
287
291
291
292
292
293
293
293
294
294
295
299
299
299
300
300
300
300
300
302
302
305
310
310
312
312
319
321
321
322
322
324
326
327
328
329
329
330
330
330
331
333
333
338
338
338
338
344
346
347
347
347
347
348
349
349
354
355
355
355
356
357
357
363
365
365
366
367
367
367
370
370
371
371
372
372
374
376
376
377
377
384
386
387
388
388
394
395
395
396
399
401
403
403
404
404
405
405
405
405
406
408
408
408
408
411
412
413
413
413
415
415
416
416
425
425
432
434
434
435
435
435
440
440
440
442
443
451
451
451
451
456
459
460
460
460
460
460
460
461
463
467
468
468
468
470
470
479
480
480
480
482
487
489
489
490
490
497
499
500
500
501
501
505
505
508
517
518
518
518
518
519
524
525
526
526
526
528
528
529
529
538
538
544
545
546
547
547
548
548
549
562
567
567
583
588
588
601
604
606
624
629
629
648
653
653
668
670
673
692
697
697
715
720
720
734
737
739
739
739
740
757
762
762
781
786
786
801
803
806
819
824
824
840
845
845
858
861
863
881
886
886
905
910
910
925
927
930
949
954
954
972
977
977
991
994
996
1014
1019
1019
1038
1043
1043
1058
1060
1063
1581
1582
1583
7
7
8
8
8
8
9
13
13
13
14
15
15
16
20
26
31
31
32
32
33
36
36
38
38
38
38
38
39
39
40
41
41
41
42
42
43
44
44
46
49
50
52
52
52
54
54
54
54
54
54
54
54
54
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
64
69
71
73
73
74
75
77
78
79
80
89
90
90
91
91
91
91
92
92
92
92
92
93
93
93
93
93
93
93
93
94
94
94
95
95
95
95
95
95
95
95
95
96
96
96
96
97
97
98
98
102
103
103
104
104
104
104
104
104
108
112
112
112
113
113
114
116
117
117
117
117
121
121
121
122
122
122
135
135
135
136
136
138
138
138
139
139
139
139
139
139
139
139
139
139
139
140
140
141
141
141
141
141
141
141
141
141
142
142
142
142
142
142
142
142
142
142
142
142
142
142
143
143
143
143
143
144
144
144
144
144
144
144
144
145
145
146
146
146
146
146
146
146
146
146
147
147
147
147
149
150
153
153
153
153
154
154
155
155
155
155
156
156
157
159
159
160
160
161
169
171
171
172
172
174
174
175
175
175
175
178
179
179
180
181
183
183
184
184
184
184
186
186
186
188
188
188
188
191
192
192
192
192
192
193
193
193
193
193
193
194
194
195
196
198
198
202
204
204
205
206
207
209
210
211
211
211
211
215
220
220
220
221
221
221
221
225
225
226
226
226
226
226
226
227
227
227
227
227
228
228
228
228
228
228
229
229
233
235
236
236
242
243
243
244
245
245
245
245
246
246
247
247
247
247
247
247
247
249
251
253
254
254
258
258
259
259
262
263
263
263
263
263
263
263
265
265
268
272
273
273
278
283
283
288
293
293
294
294
295
295
296
299
299
299
300
300
300
301
301
301
301
301
306
310
311
311
313
313
322
323
323
323
323
325
325
327
327
328
329
329
329
330
330
330
331
331
332
334
334
339
339
345
348
348
349
350
350
354
354
354
355
356
356
356
357
361
364
365
366
366
367
368
368
368
371
371
372
372
373
373
377
378
378
384
384
387
388
395
396
396
396
396
397
400
402
404
404
405
406
406
407
409
409
409
409
412
412
412
412
413
414
414
414
417
417
423
426
426
435
436
436
436
436
441
441
441
443
443
452
452
461
461
461
461
462
464
467
467
467
468
469
469
469
478
480
481
481
481
483
490
491
491
497
497
500
501
501
506
506
509
509
509
509
519
519
520
525
525
525
525
526
527
527
527
530
530
536
539
539
545
547
548
549
549
550
563
568
568
584
589
589
602
605
607
625
630
630
649
654
654
669
671
674
693
698
698
716
721
721
735
738
739
740
740
741
758
763
763
782
787
787
802
804
807
820
825
825
841
846
846
859
862
864
882
887
887
906
911
911
926
928
931
950
955
955
973
978
978
992
995
997
1015
1020
1020
1039
1044
1044
1059
1061
1064
1577
1582
1583
1584
5
7
8
8
9
9
10
14
14
15
17
17
17
18
20
21
22
22
26
30
30
30
32
33
33
33
35
35
37
37
37
37
39
39
40
41
42
42
43
43
43
44
44
44
47
49
49
50
51
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
55
55
55
55
55
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
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
70
73
74
75
76
78
78
79
79
80
81
89
90
90
91
92
93
93
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
97
97
97
97
97
97
97
97
97
97
97
98
104
104
105
105
105
105
109
113
113
113
114
114
115
117
118
118
118
118
122
122
123
123
136
137
137
137
137
138
138
138
138
138
138
139
140
140
140
140
140
140
140
140
140
140
140
141
141
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
143
143
143
143
144
144
144
144
144
144
145
145
145
146
146
146
146
146
146
146
146
146
146
146
147
147
147
147
147
147
150
151
153
154
154
155
156
156
156
156
156
156
157
157
157
157
160
160
161
161
161
168
168
170
170
173
173
173
173
179
180
180
181
181
184
184
185
185
185
185
187
187
189
189
189
189
193
193
193
194
194
194
194
194
195
195
195
199
199
203
204
204
205
207
208
208
208
209
209
209
209
210
216
221
221
221
221
221
221
222
222
222
224
225
225
226
226
227
227
227
227
227
228
228
228
229
229
229
229
229
230
230
233
235
236
237
237
239
239
242
243
244
244
245
245
245
247
247
247
247
247
247
248
248
248
248
248
250
251
252
254
255
259
259
260
260
262
262
262
263
264
264
264
264
264
264
264
269
272
274
274
279
284
289
291
293
294
294
295
295
296
297
301
301
301
302
302
302
302
302
307
311
311
312
312
321
321
323
327
328
328
329
330
330
330
331
332
332
333
335
335
339
346
347
347
349
349
351
351
356
357
357
357
362
365
365
366
366
367
367
367
368
369
372
372
373
373
374
374
376
376
378
385
385
386
386
386
388
389
396
397
397
398
401
403
403
405
405
405
405
406
406
407
407
410
410
410
410
413
414
415
415
415
418
418
424
424
434
434
436
437
440
442
442
442
452
460
460
462
462
462
462
465
469
470
470
470
479
479
481
482
484
489
489
491
498
498
499
499
499
501
502
507
507
510
510
518
518
520
520
526
527
528
528
528
531
531
537
537
546
547
547
548
549
551
564
569
569
585
590
590
603
606
608
626
631
631
650
655
655
670
672
675
694
699
699
717
722
722
736
739
741
741
742
759
764
764
783
788
788
803
805
808
821
826
826
842
847
847
860
863
865
883
888
888
907
912
912
927
929
932
951
956
956
974
979
979
993
996
998
1016
1021
1021
1040
1045
1045
1060
1062
1065
1583
1584
1585
4
6
7
8
8
8
8
8
9
10
11
15
15
15
16
18
18
20
22
22
23
23
30
31
33
33
33
33
33
34
34
34
36
38
38
39
39
39
39
39
40
40
40
40
40
41
43
43
43
43
43
44
44
44
44
45
48
48
50
51
51
52
52
53
53
53
53
53
53
54
54
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
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
59
59
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
69
71
73
74
74
75
75
76
77
77
79
80
80
81
81
82
88
90
90
90
90
90
90
91
91
91
91
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
95
95
95
96
96
96
96
97
97
97
97
97
98
98
98
98
98
98
98
98
98
110
114
114
115
115
116
118
119
119
119
119
120
121
122
122
122
122
123
123
123
123
123
124
137
137
137
137
137
137
137
138
138
138
138
138
139
139
139
139
139
139
139
140
140
140
140
141
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
143
143
143
143
143
145
145
145
145
145
145
145
145
146
146
146
146
146
146
146
146
146
147
147
147
147
151
151
151
151
151
152
154
154
154
154
154
155
155
156
157
157
157
157
158
158
161
162
162
168
168
169
169
173
173
173
178
180
181
181
185
185
186
186
186
186
186
187
187
187
187
188
190
190
190
190
192
193
193
193
193
194
194
194
195
195
196
196
196
198
200
200
200
205
205
205
205
206
208
209
209
209
209
209
210
210
210
210
210
210
211
217
221
222
222
222
222
223
223
224
224
224
225
226
226
227
227
227
228
228
228
228
228
228
228
228
228
229
229
229
230
230
231
231
233
233
236
237
239
243
243
244
245
245
245
245
246
247
247
248
248
249
249
249
249
249
251
251
252
254
254
255
256
260
260
261
261
264
265
265
265
265
265
265
265
270
275
275
279
279
283
283
283
285
290
294
295
295
297
298
300
302
302
302
303
303
303
303
308
313
322
328
328
329
329
330
330
331
331
331
332
333
333
333
333
334
336
336
336
336
339
347
348
352
352
355
357
358
358
363
368
368
368
369
370
373
373
374
374
375
375
377
387
387
387
387
390
394
397
397
399
402
406
406
406
407
407
411
411
411
411
413
414
415
416
416
419
419
435
438
441
441
443
443
443
443
452
461
463
463
466
468
470
471
471
482
483
485
490
500
500
500
500
503
508
508
510
519
526
527
528
529
529
532
532
547
548
549
552
565
570
570
586
591
591
604
607
609
627
632
632
651
656
656
671
673
676
695
700
700
718
723
723
737
737
740
742
742
760
765
765
784
789
789
804
806
809
822
827
827
843
848
848
861
864
866
884
889
889
908
913
913
928
930
933
952
957
957
975
980
980
994
997
999
1017
1022
1022
1041
1046
1046
1061
1063
1066
1584
1585
1586
5
7
7
7
7
8
8
9
9
9
10
10
11
12
14
16
17
17
17
17
18
19
22
24
24
30
30
33
34
35
37
37
37
37
39
39
40
40
40
40
41
41
41
41
43
44
44
44
44
44
44
44
45
45
45
46
48
51
51
51
51
51
53
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
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
57
58
58
58
58
58
58
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
70
74
75
76
76
77
78
78
81
82
82
83
89
89
90
90
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
92
92
93
93
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
96
96
96
98
98
103
103
103
111
115
115
116
116
117
117
119
119
120
120
120
120
121
122
123
123
124
124
124
125
135
137
137
137
137
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
141
141
142
142
142
142
142
142
143
143
143
143
143
143
143
143
143
143
143
143
143
143
143
144
144
144
144
144
144
144
144
144
144
144
144
144
144
144
145
146
147
147
147
148
148
152
152
152
153
153
154
155
156
157
157
158
158
158
163
163
170
170
171
173
174
174
175
175
179
179
181
181
182
182
186
186
187
187
187
187
188
188
189
191
191
191
191
192
192
192
193
193
193
193
194
194
194
194
195
195
195
198
199
205
205
207
208
209
209
209
209
210
210
210
210
210
211
211
211
211
211
211
213
218
223
223
223
224
224
224
225
225
225
225
225
226
226
227
227
227
227
227
228
228
228
228
228
228
229
229
229
229
229
229
229
229
230
230
230
234
234
235
235
235
237
244
244
245
245
245
245
245
246
246
246
247
248
248
249
249
250
252
255
255
256
257
261
261
262
262
263
265
266
266
266
266
266
266
271
276
276
283
284
284
286
291
291
295
296
296
298
299
301
301
303
303
304
304
309
313
314
321
321
323
324
328
328
330
330
330
331
331
332
332
332
333
335
337
337
337
337
347
348
349
353
353
356
356
364
368
369
369
369
370
371
374
374
375
375
376
376
376
376
378
388
388
395
397
398
400
403
405
407
407
407
408
408
412
412
412
412
414
414
415
420
420
426
434
434
436
439
441
443
444
444
444
444
460
462
464
464
467
469
469
481
483
484
486
489
489
491
501
501
504
509
509
510
518
520
527
527
528
533
533
539
547
547
548
549
550
553
566
571
571
587
592
592
605
608
610
628
633
633
652
657
657
672
674
677
696
701
701
719
724
724
738
738
741
742
743
743
761
766
766
785
790
790
805
807
810
823
828
828
844
849
849
862
865
867
885
890
890
909
914
914
929
931
934
953
958
958
976
981
981
995
998
1000
1018
1023
1023
1042
1047
1047
1062
1064
1067
1585
1586
1587
8
9
10
10
11
12
13
15
15
15
18
18
18
20
22
22
24
34
35
36
40
40
41
41
41
41
42
42
42
43
44
44
45
45
45
46
46
46
48
48
48
49
51
51
51
52
52
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
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
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
57
57
57
57
57
57
57
58
58
58
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
71
73
74
75
76
76
77
77
78
78
79
79
79
82
83
83
84
91
91
91
91
91
91
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
95
95
95
95
95
96
96
96
96
97
103
104
104
105
105
111
112
115
116
116
117
117
118
118
120
120
121
121
121
121
122
122
122
123
123
123
124
124
125
125
136
136
136
136
137
137
137
137
137
137
137
137
137
137
137
137
137
137
137
137
137
137
137
137
138
138
138
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
141
141
141
141
141
141
141
141
141
141
141
141
141
142
142
142
142
142
142
142
142
143
144
144
144
144
144
144
144
144
144
144
144
144
144
144
145
145
145
145
145
145
145
145
145
145
146
147
147
147
147
148
149
149
151
151
151
151
153
153
153
154
154
154
154
154
156
157
157
157
157
158
158
158
158
159
159
160
162
164
164
171
171
172
172
175
175
175
175
175
175
179
181
182
182
183
183
187
187
187
187
188
188
188
188
189
189
192
192
194
195
195
195
195
196
196
196
199
199
200
200
208
208
208
209
209
210
210
210
210
211
211
211
212
212
212
212
212
212
214
219
224
224
224
225
225
225
226
226
226
227
227
229
229
229
230
230
230
230
230
230
230
230
231
231
231
236
236
236
236
244
246
246
246
246
246
246
246
247
247
247
247
247
247
247
247
248
249
249
251
253
256
256
258
262
262
263
263
264
264
267
267
272
277
277
279
284
285
285
291
292
292
293
297
297
299
300
304
304
305
305
310
312
312
313
315
321
321
322
322
328
329
330
331
331
331
332
332
333
333
333
334
336
338
338
338
338
347
347
348
349
354
354
365
368
370
370
370
371
372
375
375
376
376
376
376
377
377
377
377
388
396
399
401
404
405
405
406
408
408
409
409
413
413
413
413
416
421
421
426
434
434
435
435
440
441
443
444
445
445
445
460
460
461
465
465
468
481
485
487
489
489
490
490
501
505
510
510
518
518
519
529
534
534
539
547
547
548
548
551
554
567
572
572
588
593
593
609
611
629
634
634
653
658
658
675
678
697
702
702
720
725
725
738
742
742
744
744
762
767
767
786
791
791
808
811
824
829
829
845
850
850
866
868
886
891
891
910
915
915
932
935
954
959
959
977
982
982
999
1001
1019
1024
1024
1043
1048
1048
1065
1068
1586
1587
1588
10
10
11
11
12
12
13
14
16
17
17
18
19
19
21
24
24
24
33
33
35
36
37
37
38
41
41
41
42
42
42
43
43
44
44
45
46
46
46
47
47
52
53
54
54
54
54
54
54
54
54
54
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
57
57
57
57
57
57
57
57
57
57
57
57
57
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
76
77
78
79
79
80
80
80
84
85
89
89
90
91
91
92
92
92
93
93
93
93
93
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
97
97
97
97
98
105
105
105
105
105
105
112
113
116
117
117
118
118
119
119
121
121
121
121
122
122
122
122
122
123
123
123
124
124
133
135
135
135
135
135
136
137
137
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
138
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
140
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
141
142
142
142
142
142
142
143
143
144
144
145
145
145
145
145
145
145
145
145
145
145
145
145
147
147
147
149
149
150
150
151
151
151
151
152
152
152
154
155
155
155
157
158
158
158
159
159
159
160
160
160
163
165
165
172
173
173
176
176
176
176
176
176
176
176
179
181
182
183
183
184
184
188
188
188
189
189
189
189
193
193
193
194
195
196
196
196
197
197
201
201
203
204
204
207
208
209
209
209
210
210
212
212
212
212
212
212
212
213
213
213
213
215
215
220
221
225
225
225
225
225
226
226
226
226
226
226
228
228
228
229
230
230
231
231
231
231
231
231
232
232
237
237
244
246
247
248
248
248
248
248
248
248
248
248
248
249
252
254
254
259
263
263
264
264
268
268
270
273
278
278
285
292
293
293
293
294
298
298
300
301
303
305
305
306
306
311
313
316
323
323
328
328
330
331
332
332
332
332
334
334
334
334
335
335
337
337
339
339
339
339
346
347
348
349
350
355
355
358
366
371
371
371
372
373
376
376
377
377
378
378
378
388
397
400
402
404
405
405
406
407
409
409
410
410
414
414
414
414
416
417
422
422
436
436
441
441
441
444
445
446
459
460
461
462
466
466
469
471
486
488
491
491
501
506
511
511
517
518
519
520
529
530
535
535
549
549
552
555
568
573
573
589
594
594
610
612
630
635
635
654
659
659
676
679
698
703
703
721
726
726
738
742
743
743
745
745
763
768
768
787
792
792
809
812
825
830
830
846
851
851
867
869
887
892
892
911
916
916
933
936
955
960
960
978
983
983
1000
1002
1020
1025
1025
1044
1049
1049
1066
1069
1587
1588
1589
8
8
10
12
13
13
14
14
15
15
15
17
18
20
20
22
22
22
24
30
33
33
37
38
39
41
41
42
42
42
42
43
43
44
44
44
44
45
46
46
46
47
47
48
48
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
56
57
57
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
77
79
80
80
81
81
81
82
82
83
83
85
86
88
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
95
95
95
95
95
95
96
97
97
98
98
99
106
106
106
106
106
106
106
106
113
114
117
118
118
119
119
122
122
122
122
123
123
123
123
124
124
125
125
134
136
136
136
136
136
137
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
139
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
140
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
142
142
142
142
142
142
142
142
142
142
143
143
143
143
143
143
144
144
145
146
150
150
151
151
151
151
152
153
153
153
155
155
156
156
157
158
158
158
158
158
159
159
159
159
159
159
160
160
161
161
163
163
166
166
171
171
173
174
174
174
176
176
176
176
177
177
177
177
182
183
185
185
187
189
189
189
190
190
190
190
191
191
191
191
194
194
194
194
195
195
199
200
200
200
202
202
204
208
208
208
209
210
210
210
210
210
211
212
212
213
213
213
214
214
214
214
216
216
216
216
221
221
225
225
225
226
226
226
226
226
227
227
227
227
227
227
229
229
229
229
230
230
230
230
231
232
232
232
237
241
244
244
247
248
249
249
249
249
250
251
253
255
260
264
264
265
265
266
266
266
266
266
269
269
271
274
279
279
283
286
294
294
294
295
299
299
301
302
303
306
306
307
307
312
314
317
319
324
324
329
329
330
330
330
331
332
333
335
335
336
336
338
338
340
340
340
340
347
349
350
351
356
356
358
367
372
372
372
373
374
374
377
377
377
377
378
378
379
379
379
398
401
401
403
403
405
406
407
408
410
410
411
411
415
415
415
415
416
418
423
423
432
437
437
442
442
442
443
443
443
444
444
445
447
460
462
463
467
467
470
471
487
487
489
492
492
507
512
512
518
520
521
529
531
536
536
545
550
550
553
556
569
574
574
590
595
611
613
631
636
636
655
660
660
677
680
699
704
704
722
727
727
742
743
744
744
746
764
769
769
788
793
793
810
813
826
831
831
847
852
868
870
888
893
893
912
917
917
934
937
956
961
961
979
984
984
1001
1003
1021
1026
1026
1045
1050
1050
1067
1070
1588
1589
1590
8
10
10
11
14
15
15
16
17
17
17
18
18
18
18
21
21
23
24
24
24
35
35
36
37
37
39
40
42
43
43
43
43
43
44
45
45
46
47
47
49
49
51
51
51
53
53
53
53
53
54
55
55
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
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
61
61
71
76
78
80
81
82
82
83
84
86
87
87
88
89
89
90
90
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
92
92
92
92
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
96
96
98
99
99
100
104
106
106
106
106
107
107
107
107
115
118
119
119
120
120
121
121
121
121
122
122
123
123
123
123
123
123
124
124
124
124
125
126
135
137
137
137
137
137
138
138
138
138
139
139
139
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
140
140
140
140
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
143
143
143
143
143
144
144
144
144
144
146
147
147
151
151
152
152
153
154
154
155
155
155
157
158
159
159
159
160
160
160
160
161
161
162
162
167
167
172
172
174
174
174
174
176
176
177
177
178
178
178
178
183
186
186
187
187
188
190
190
191
191
191
192
192
195
195
199
199
199
200
201
201
201
209
209
209
210
210
210
210
210
211
211
211
211
211
213
213
214
214
214
214
216
216
217
217
222
225
227
227
227
227
227
228
228
228
228
228
228
230
231
232
233
233
233
237
242
242
242
245
245
246
246
246
248
249
249
251
252
254
254
254
256
261
265
265
266
266
267
267
270
270
272
272
275
279
280
280
283
284
294
295
295
295
300
300
302
303
307
307
308
308
313
315
318
320
325
331
331
331
331
332
334
336
336
337
337
338
339
339
341
341
341
341
347
348
350
352
357
357
368
373
373
373
374
375
375
378
378
378
379
379
380
380
399
404
404
405
406
407
408
411
411
412
412
416
416
416
416
419
424
424
433
438
443
444
444
444
444
445
448
451
460
461
463
468
471
483
488
488
490
493
508
513
513
518
519
521
532
537
546
548
551
552
554
557
570
575
575
591
594
594
596
605
612
614
632
637
637
656
661
672
676
678
681
700
705
705
723
728
738
738
743
744
745
747
765
770
770
789
794
805
809
811
814
827
832
832
848
851
851
853
862
869
871
889
894
894
913
918
929
933
935
938
957
962
962
980
985
995
1002
1004
1022
1027
1027
1046
1051
1062
1066
1068
1071
1589
1590
1591
1
1
5
7
8
10
10
10
11
11
12
12
12
15
15
15
16
16
17
18
19
19
22
22
22
24
24
33
33
36
40
42
42
42
42
43
44
44
44
44
44
44
45
46
46
48
48
48
50
50
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
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
60
60
60
62
62
77
79
82
83
83
84
85
87
87
88
88
88
88
89
89
91
91
91
91
91
91
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
93
94
94
94
94
95
95
95
95
95
95
95
96
99
101
104
104
104
106
106
107
107
108
108
108
108
116
119
120
120
121
122
122
122
123
123
124
124
124
124
125
125
125
125
125
126
126
126
127
133
135
136
136
136
137
137
138
138
138
138
138
138
138
138
138
138
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
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
142
143
143
143
144
144
145
145
145
145
145
145
145
145
145
145
145
145
147
148
148
148
152
152
153
153
156
156
158
158
158
159
159
159
160
160
160
161
161
161
162
163
163
168
168
171
172
173
173
175
175
175
175
176
176
176
176
176
176
177
177
178
178
186
187
187
187
188
189
191
191
192
192
193
193
196
196
196
196
196
197
197
197
201
202
202
202
209
210
211
211
211
211
211
211
211
212
212
212
212
212
212
212
212
212
214
214
215
217
218
218
221
223
226
226
228
228
228
228
228
229
229
229
229
231
231
231
231
232
232
232
232
233
234
234
234
243
243
247
247
247
247
248
248
249
249
251
255
255
255
257
262
266
266
267
268
268
271
271
273
273
273
273
276
279
281
281
284
285
294
295
295
295
296
296
301
301
303
303
303
304
308
308
309
309
311
314
316
319
320
320
324
324
326
332
332
333
335
337
337
338
338
339
339
339
340
340
342
342
342
342
347
348
350
350
351
353
358
358
358
358
366
369
374
374
374
375
375
375
376
379
379
379
379
379
380
380
381
381
387
396
400
405
405
405
406
408
408
408
409
412
412
413
413
416
416
417
417
417
417
420
424
425
425
433
433
437
437
439
444
445
445
446
449
452
452
452
460
461
463
463
464
467
469
470
471
471
472
479
484
486
488
488
489
491
492
492
494
500
509
509
514
514
518
519
521
521
522
529
529
533
537
538
546
546
550
550
552
553
555
558
571
576
576
592
595
597
606
610
613
615
633
638
638
657
662
677
679
682
701
706
706
724
727
727
729
739
743
744
746
748
766
771
771
790
795
810
812
815
828
833
833
849
852
854
863
867
870
872
890
895
895
914
919
934
936
939
958
963
963
981
984
984
986
996
1000
1003
1005
1023
1028
1028
1047
1052
1067
1069
1072
1590
1591
1592
1
1
1
10
10
12
12
12
12
12
12
13
17
18
19
20
20
21
23
23
24
24
24
25
25
35
35
36
37
40
41
42
42
42
43
43
44
44
45
45
46
46
46
47
48
48
50
50
51
51
51
51
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
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
58
58
58
58
58
58
59
59
59
59
60
60
60
63
63
78
80
80
80
83
84
84
84
85
88
88
89
89
89
89
90
91
91
91
91
92
92
92
93
93
93
93
93
94
94
94
95
95
97
98
100
100
102
102
105
105
105
105
106
106
106
106
106
106
107
107
108
108
117
120
121
121
122
123
123
125
125
125
126
126
126
126
126
127
127
127
128
133
134
135
135
135
135
135
136
137
137
137
138
138
138
138
139
139
140
140
140
140
140
140
140
140
140
141
141
141
141
141
141
142
142
142
142
142
142
142
142
143
143
143
143
143
143
144
144
144
145
145
145
145
145
145
145
145
145
145
145
145
145
145
148
149
153
154
154
154
154
156
156
156
156
157
157
157
158
158
158
159
159
159
160
160
161
162
163
164
164
169
169
171
173
174
174
175
175
176
176
177
177
178
178
179
179
187
188
188
189
190
190
190
192
192
193
193
194
194
194
195
196
197
197
197
197
197
198
198
200
202
203
203
209
211
211
211
211
212
213
213
213
213
213
213
213
213
213
213
213
216
216
216
218
224
225
227
227
227
227
227
229
229
229
230
230
230
231
232
232
232
232
233
233
233
234
235
235
235
242
243
243
243
243
244
248
248
249
249
249
249
249
249
249
249
252
254
256
256
256
256
258
263
265
265
266
266
267
267
268
269
269
271
272
272
273
273
274
274
277
282
282
283
285
286
296
296
297
297
301
302
302
304
304
304
305
309
309
310
310
312
315
317
320
325
325
327
332
334
336
338
338
339
339
340
340
341
341
343
343
343
343
351
351
352
354
356
359
359
359
359
367
370
375
375
375
376
377
380
380
380
380
380
381
381
382
382
388
388
388
388
397
397
397
401
406
406
409
409
409
410
413
413
414
414
414
417
417
418
418
418
418
421
425
426
426
438
438
440
445
445
447
450
453
453
464
464
465
469
470
471
472
472
473
480
487
490
492
493
493
495
501
501
501
501
510
510
510
510
515
515
522
522
523
527
530
530
534
536
536
538
539
551
551
553
554
556
559
572
577
577
593
596
598
611
614
616
634
639
639
658
660
660
663
678
680
683
702
707
707
725
728
730
742
744
745
747
749
767
772
772
791
793
793
796
811
813
816
829
834
834
850
853
855
868
871
873
891
896
896
915
917
917
920
935
937
940
959
964
964
982
985
987
1001
1004
1006
1024
1029
1029
1048
1050
1050
1053
1068
1070
1073
1591
1591
1592
1593
2
10
10
12
13
13
14
15
18
19
20
20
22
22
22
24
24
24
24
24
24
26
26
33
33
36
42
42
44
44
46
46
48
49
49
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
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
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
58
58
58
60
60
60
60
60
64
64
81
81
84
85
85
87
87
88
89
89
90
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
95
98
99
99
99
101
101
103
103
105
105
106
106
107
107
108
108
118
120
120
121
122
122
123
124
124
126
126
127
127
127
127
128
128
134
135
135
136
136
136
136
136
136
136
136
136
136
137
137
137
137
137
137
137
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
139
139
139
139
140
140
140
140
140
140
140
140
141
141
141
141
141
141
142
142
142
142
142
142
142
142
142
142
142
142
143
143
144
145
145
145
145
145
145
145
145
147
147
147
149
149
150
150
154
154
155
155
155
155
155
156
157
157
158
158
158
159
159
160
160
161
161
162
163
163
164
165
165
170
170
171
172
174
174
175
176
176
176
177
177
178
178
179
179
180
180
181
181
181
187
188
189
189
190
191
191
191
193
193
194
194
195
195
195
195
196
196
198
198
201
201
209
209
209
212
212
212
212
213
214
214
214
214
214
214
217
217
217
225
226
226
228
228
228
230
230
230
230
231
231
231
231
233
234
235
236
236
236
236
244
244
245
248
250
250
250
250
250
254
255
257
259
264
264
266
267
267
268
268
269
270
270
273
273
274
275
275
278
283
283
284
286
297
297
298
302
302
303
303
305
306
310
310
311
311
313
313
316
318
321
324
326
326
332
335
337
339
339
339
340
340
340
340
340
340
341
342
342
344
344
344
344
352
352
355
357
357
360
360
368
368
371
376
376
376
377
378
379
381
381
381
381
381
382
382
383
389
389
398
398
402
407
407
410
410
410
414
414
415
415
415
415
419
419
419
419
422
426
426
427
427
437
439
439
445
446
448
451
452
453
453
453
453
454
465
465
470
470
471
472
474
481
481
488
491
492
493
494
494
502
502
511
511
511
516
516
523
523
528
528
535
537
539
539
540
550
552
552
555
557
560
573
578
578
594
597
599
612
615
617
635
640
640
659
661
664
679
681
684
703
708
708
726
729
731
738
743
745
748
750
768
773
773
792
794
797
812
814
817
830
835
835
851
854
856
869
872
874
892
897
897
916
918
921
936
938
941
960
965
965
983
986
988
1002
1005
1007
1025
1030
1030
1049
1051
1054
1069
1071
1074
1592
1592
1593
1594
2
3
13
14
15
15
15
16
16
19
20
20
20
21
23
24
24
24
24
25
25
25
25
27
27
35
35
36
42
43
43
44
44
45
47
47
49
50
50
50
50
51
51
51
51
51
52
52
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
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
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
57
57
59
59
59
60
61
63
63
65
65
82
82
85
85
86
86
87
87
87
88
88
88
88
88
89
89
90
90
90
90
91
91
91
91
91
91
91
91
91
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
93
93
93
93
93
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
96
99
99
100
102
102
104
104
105
106
106
106
107
107
108
108
109
109
119
121
122
122
123
123
123
124
125
125
127
127
128
128
134
134
134
135
135
135
135
135
135
135
135
135
135
135
135
135
136
136
136
136
136
136
136
137
137
137
137
137
137
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
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
142
142
142
142
142
142
142
142
142
144
144
145
145
145
145
146
151
151
154
154
156
156
156
156
156
156
157
158
158
158
158
159
159
159
159
160
160
160
160
160
161
161
162
163
163
164
165
166
166
171
171
172
173
175
175
175
175
175
176
176
176
177
177
177
180
180
182
182
182
182
187
188
190
190
190
190
191
192
192
195
195
196
196
199
199
210
210
210
210
211
211
211
213
213
214
214
216
216
218
218
218
226
226
228
229
229
229
229
229
229
231
232
234
235
236
237
237
237
237
237
237
237
243
243
245
245
247
248
250
250
251
255
255
255
256
256
258
260
265
265
265
267
270
271
271
273
273
274
274
275
279
284
284
284
284
286
286
286
287
295
299
304
304
306
307
311
311
312
312
314
314
314
314
317
319
322
324
336
338
340
340
341
341
341
341
342
343
343
345
345
345
345
350
356
361
361
369
369
369
369
372
377
377
377
378
379
379
382
382
382
383
383
384
389
397
398
398
398
398
399
403
408
408
408
411
415
415
416
416
420
420
420
420
423
427
427
427
427
428
428
437
447
449
452
454
454
455
463
472
473
475
482
482
482
482
489
492
492
494
502
510
511
511
511
511
512
512
517
517
521
536
538
540
540
540
540
541
550
556
558
561
574
579
579
595
598
600
613
616
618
636
641
641
660
662
665
680
682
685
704
709
709
727
730
732
744
746
749
751
769
774
774
793
795
798
813
815
818
831
836
836
852
855
857
870
873
875
893
898
898
917
919
922
937
939
942
961
966
966
984
987
989
1003
1006
1008
1026
1031
1031
1050
1052
1055
1070
1072
1075
1593
1594
1595
3
4
12
14
15
15
15
16
17
20
20
21
21
22
24
26
26
28
28
33
33
35
36
42
44
44
44
45
45
45
46
47
48
50
50
50
50
50
51
53
53
53
53
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
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
57
57
57
57
57
57
57
57
57
58
59
59
59
59
59
59
59
59
59
59
59
59
60
62
64
64
66
80
81
82
83
85
86
86
86
87
87
88
88
88
88
88
88
89
89
89
89
90
90
90
90
91
91
91
91
91
91
91
91
91
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
94
94
100
100
101
105
105
105
105
105
106
106
106
107
107
107
110
110
120
122
122
123
123
123
124
125
125
126
126
126
128
128
129
129
131
133
133
133
133
133
135
135
135
135
135
135
135
135
135
136
136
136
136
136
136
136
136
136
136
136
136
136
136
136
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
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
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
140
141
141
142
142
143
143
143
143
143
143
145
145
145
145
145
147
147
152
152
155
155
156
156
156
157
157
158
159
159
160
160
161
161
161
161
161
161
161
161
162
162
162
162
163
164
164
165
165
166
166
167
167
167
171
172
172
173
173
174
175
175
175
175
176
177
178
178
179
179
179
179
181
181
183
183
191
191
191
191
192
193
193
196
196
197
197
197
197
197
198
198
198
200
200
203
212
212
212
212
213
213
214
214
214
216
216
217
217
219
219
226
227
227
228
229
229
230
230
230
230
230
232
232
232
232
233
233
233
233
235
236
237
238
238
238
238
238
244
248
248
248
248
249
249
250
250
256
257
257
259
261
266
268
268
268
271
272
272
272
272
274
275
275
280
285
285
287
287
288
294
300
304
305
305
307
308
312
312
312
313
313
314
314
315
315
320
320
323
324
325
337
339
340
340
341
341
342
342
342
342
344
344
346
346
346
346
347
357
359
362
362
367
369
369
370
370
373
375
378
378
378
379
379
380
380
383
383
383
384
384
385
389
399
399
400
404
405
409
409
412
416
416
417
417
417
421
421
421
421
424
425
427
427
428
428
429
429
433
437
438
448
450
453
453
453
455
455
460
472
473
474
476
480
482
482
483
483
488
490
492
493
493
493
495
495
502
512
512
513
513
518
518
518
530
537
538
539
540
540
541
541
542
546
550
551
557
559
559
562
562
575
580
580
596
599
601
614
617
617
619
619
637
642
642
661
663
666
681
683
683
686
686
705
710
710
728
731
733
745
747
750
750
752
752
770
775
775
794
796
799
814
816
816
819
819
832
837
837
853
856
858
871
874
874
876
876
894
899
899
918
920
923
938
940
940
943
943
962
967
967
985
988
990
1004
1007
1007
1009
1009
1027
1032
1032
1051
1053
1056
1071
1073
1073
1076
1076
1594
1595
1596
4
4
5
5
10
12
12
17
17
18
18
20
20
20
21
21
21
22
22
22
22
22
25
26
27
29
29
35
35
35
36
36
36
36
40
40
41
41
44
46
46
47
48
48
48
49
50
50
50
50
50
50
50
50
51
51
51
51
51
52
52
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
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
60
60
60
60
60
60
60
63
65
65
67
84
86
86
87
87
87
87
88
88
88
89
89
89
90
90
90
90
91
91
91
91
91
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
94
98
100
100
100
100
102
106
106
106
107
108
108
109
109
109
109
111
111
121
122
123
123
123
124
124
125
125
125
126
126
126
126
126
127
127
127
129
129
130
130
131
131
132
133
133
134
134
134
134
134
135
135
135
135
135
135
136
136
136
136
136
136
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
138
138
138
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
140
140
140
140
140
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
142
143
143
144
144
144
144
146
146
148
153
153
154
154
155
156
156
158
158
161
161
161
162
162
162
162
162
162
163
163
163
163
163
164
167
167
168
168
168
172
173
173
173
174
174
175
177
178
179
179
179
179
180
180
180
180
182
182
183
192
192
192
192
194
194
195
196
197
197
197
198
198
198
198
198
199
199
201
201
203
212
213
213
214
214
214
214
214
214
214
214
215
218
218
220
220
226
226
228
228
228
229
230
230
231
231
232
233
233
233
233
234
234
234
236
237
238
238
239
239
239
243
245
249
249
250
250
250
250
250
250
250
250
255
256
256
256
257
258
258
260
262
267
267
269
272
273
273
273
273
273
273
275
276
276
281
284
286
286
286
288
288
294
295
295
295
301
304
306
306
308
309
313
313
314
314
315
316
316
320
321
324
325
326
331
338
340
341
342
342
343
343
345
345
347
347
347
347
347
348
350
350
358
359
363
363
370
371
371
374
375
379
379
379
380
380
381
381
384
384
384
385
385
386
398
398
400
400
405
405
406
408
408
410
410
413
417
417
417
418
418
422
422
422
422
425
428
429
429
430
430
433
438
439
444
449
451
454
454
460
461
463
463
472
474
475
477
483
484
484
488
491
493
494
496
496
511
511
513
513
514
518
519
519
519
521
521
530
538
540
541
542
542
543
546
551
552
558
563
563
576
581
581
597
600
602
615
620
620
638
643
643
662
664
667
682
687
687
706
711
711
729
732
734
742
745
748
753
753
771
776
776
795
797
800
815
820
820
833
838
838
854
857
859
872
877
877
895
900
900
919
921
924
939
944
944
963
968
968
986
989
991
1005
1010
1010
1028
1033
1033
1052
1054
1057
1072
1077
1077
1595
1596
1597
5
5
6
6
14
14
15
15
20
20
20
21
22
22
22
22
22
22
23
26
27
30
30
33
33
36
37
37
40
40
40
41
41
41
41
41
42
42
42
44
44
46
46
48
48
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
52
52
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
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
60
60
60
60
60
60
64
66
68
85
85
86
87
87
87
87
87
88
88
88
88
88
88
89
89
89
89
90
90
90
90
90
90
90
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
98
103
105
107
107
107
108
109
109
110
110
110
110
112
112
122
124
125
125
126
126
126
126
126
127
127
127
127
127
127
127
128
128
128
128
129
129
130
130
131
131
131
131
131
131
131
131
131
131
131
132
132
133
134
134
135
135
135
135
135
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
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
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
142
142
143
145
145
145
145
148
149
154
154
155
155
156
156
157
157
159
162
163
163
163
163
163
164
164
164
168
168
169
169
169
171
173
174
174
174
175
175
175
176
179
179
179
180
180
181
181
181
181
183
190
193
193
193
195
195
196
196
197
197
197
197
198
198
199
199
202
202
212
213
214
215
215
215
215
216
219
219
221
221
227
227
228
228
228
230
230
231
231
231
232
232
232
234
235
237
238
238
239
240
240
240
243
243
244
249
251
251
251
251
255
255
255
256
257
257
257
258
261
263
267
270
273
273
273
274
274
274
274
274
274
277
277
282
287
287
287
294
296
296
302
307
307
309
310
314
314
314
314
315
315
316
322
324
325
326
327
332
332
332
332
339
340
341
342
343
343
344
344
346
346
347
348
348
348
348
351
351
359
364
364
369
369
371
375
379
380
380
380
381
381
382
385
385
385
386
386
387
399
405
406
409
409
411
411
414
418
418
419
419
423
423
423
423
426
427
427
429
431
431
437
439
440
445
445
445
445
452
453
455
455
460
464
464
475
476
478
482
482
484
492
492
494
495
497
497
512
515
518
520
520
522
522
539
540
540
541
542
544
550
552
553
559
564
564
577
582
582
598
601
603
616
621
621
639
644
644
663
665
668
683
688
688
707
712
712
730
733
735
738
743
749
754
754
772
777
777
796
798
801
816
821
821
834
839
839
855
858
860
873
878
878
896
901
901
920
922
925
940
945
945
964
969
969
987
990
992
1006
1011
1011
1029
1034
1034
1053
1055
1058
1073
1078
1078
1596
1597
1598
7
7
12
12
13
14
15
18
19
20
22
22
23
23
24
27
27
27
28
31
31
38
38
40
41
41
41
41
42
42
42
43
43
43
46
46
46
47
49
49
50
50
50
51
51
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
55
55
55
55
55
55
55
55
55
55
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
59
59
59
60
60
60
60
60
65
67
69
78
83
86
86
86
87
87
87
88
88
88
88
88
89
89
89
89
89
90
90
91
91
92
92
92
92
92
92
92
92
92
93
94
94
94
94
95
95
95
99
104
105
106
108
108
109
111
111
111
111
123
123
125
126
127
127
127
127
127
128
128
128
128
128
128
129
129
129
129
130
130
130
131
131
132
132
132
132
132
132
132
132
132
132
132
133
133
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
137
137
137
137
137
137
137
138
138
138
138
138
138
138
138
138
138
138
138
138
139
139
139
139
139
139
140
140
140
140
140
140
140
141
141
141
141
141
141
141
141
141
141
142
142
143
143
143
143
143
143
143
144
144
144
144
144
146
149
149
150
155
155
156
157
158
158
159
159
159
160
161
161
163
164
165
169
169
170
170
170
172
172
174
174
174
174
175
175
175
175
177
178
178
179
179
180
180
180
181
181
187
194
196
196
198
198
199
199
200
200
203
203
203
203
212
213
215
215
215
217
220
222
222
229
229
229
229
230
230
230
231
232
233
235
235
236
236
238
239
240
241
241
241
242
243
244
245
248
249
251
251
257
258
258
258
259
262
262
264
264
267
271
271
274
275
275
275
275
275
275
278
278
283
284
288
288
288
295
295
297
297
297
303
304
304
308
308
310
311
315
315
315
316
316
317
320
321
323
325
326
327
327
333
333
340
340
340
341
342
344
344
345
345
347
347
348
349
349
349
349
350
352
352
352
359
359
360
365
365
370
375
376
380
381
381
381
382
382
382
386
386
386
387
387
388
388
398
400
406
407
408
410
410
410
412
412
415
417
417
419
419
420
420
424
424
424
424
427
428
432
432
433
438
440
440
446
446
449
453
453
453
453
454
456
461
463
465
465
465
472
472
476
477
479
483
488
493
493
495
495
498
498
501
511
513
516
519
521
521
521
523
523
523
530
530
540
541
542
545
546
551
553
553
560
565
565
578
583
583
602
604
617
622
622
640
645
645
664
666
669
684
689
689
708
713
713
731
734
736
742
744
750
755
755
773
778
778
797
799
802
817
822
822
835
840
840
859
861
874
879
879
897
902
902
921
923
926
941
946
946
965
970
970
988
991
993
1007
1012
1012
1030
1035
1035
1054
1056
1059
1074
1079
1079
1597
1598
1599
4
8
8
14
14
15
19
20
20
21
22
22
22
22
23
24
25
26
26
26
28
28
29
29
32
32
33
38
41
42
43
43
43
44
44
44
44
44
44
46
46
46
46
47
48
49
50
50
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
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
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
58
58
59
59
59
60
60
60
60
68
70
84
87
87
87
87
87
88
88
88
88
88
88
88
88
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
92
92
92
92
92
92
93
93
93
94
94
95
95
96
99
99
105
107
108
108
109
109
109
109
109
109
110
126
126
127
127
127
127
127
128
128
128
128
128
129
129
129
130
130
130
130
131
131
131
132
133
133
133
133
133
133
133
133
133
133
133
133
133
134
134
134
134
134
134
136
136
136
136
136
136
136
136
136
136
136
136
136
136
137
138
138
138
138
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
140
140
140
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
142
142
142
142
142
143
143
143
143
143
144
144
144
144
145
145
145
147
147
147
151
156
156
158
159
159
159
160
160
160
161
161
162
162
165
166
170
170
171
171
171
172
174
175
175
176
176
178
178
179
179
179
179
179
179
181
181
181
182
182
187
188
190
190
195
197
197
198
199
199
199
200
200
201
201
201
201
201
204
204
204
204
204
204
213
213
213
213
215
215
215
215
215
215
215
215
218
219
219
221
223
223
228
230
230
230
231
231
233
234
234
236
236
237
237
239
239
240
240
241
241
242
242
242
242
243
245
246
249
249
249
249
251
251
251
251
251
251
256
258
259
259
260
265
265
267
267
271
272
272
275
276
276
276
276
276
276
279
279
284
284
285
286
289
289
295
296
302
304
305
305
309
309
311
312
314
314
316
316
316
317
317
322
324
324
326
327
333
339
340
341
341
342
343
345
345
346
346
348
348
350
350
350
350
350
351
357
360
360
361
366
366
369
369
371
377
379
381
382
382
382
383
387
387
387
388
388
389
389
389
389
389
398
398
399
408
408
409
413
413
415
416
418
418
420
420
421
421
425
425
425
425
427
427
428
429
433
433
437
439
446
452
453
454
454
454
455
457
463
464
470
473
473
478
480
482
482
484
492
494
494
499
499
502
502
502
502
511
511
512
517
521
522
522
522
528
531
531
540
540
541
542
543
546
550
552
561
566
566
579
584
584
603
605
618
623
623
641
646
646
665
667
670
685
690
690
709
714
714
735
737
743
743
745
745
751
756
756
774
779
779
798
800
803
818
823
823
836
841
841
860
862
875
880
880
898
903
903
922
924
927
942
947
947
966
971
971
992
994
1008
1013
1013
1031
1036
1036
1055
1057
1060
1075
1080
1080
1598
1599
1600
5
5
9
9
12
12
15
20
20
21
22
22
23
23
23
23
24
24
25
26
26
27
29
29
29
29
29
29
33
33
33
38
38
43
43
43
44
44
44
46
46
46
46
47
47
49
50
51
51
51
51
52
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
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
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
59
59
60
60
60
60
60
63
67
69
69
71
71
85
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
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
91
91
91
91
91
92
92
92
92
92
92
92
93
93
93
94
95
95
96
96
96
96
97
97
100
100
100
100
106
108
108
108
109
109
109
109
110
110
110
110
110
110
111
126
126
126
127
127
127
127
127
128
128
128
128
128
129
129
129
129
129
130
131
131
131
131
132
132
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
134
134
134
135
135
136
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
139
139
139
139
139
139
139
140
140
140
140
140
140
141
141
141
141
141
142
143
143
143
143
143
143
143
143
144
144
144
144
144
144
144
144
145
145
145
145
146
146
148
148
148
152
155
157
157
158
159
159
160
161
161
161
161
161
161
161
162
162
162
162
163
163
166
167
171
171
172
172
172
172
174
174
175
175
175
176
176
177
177
178
179
180
180
180
180
180
180
182
182
187
191
191
192
196
196
198
198
198
198
198
199
199
199
200
200
201
201
202
202
205
205
205
205
214
214
216
216
216
216
219
220
220
222
224
224
228
229
229
230
233
233
233
234
234
234
235
237
237
237
238
238
242
242
243
243
243
243
243
244
246
250
250
252
252
252
252
257
257
261
265
266
266
268
268
272
273
273
276
277
277
277
280
280
285
285
286
286
287
290
290
296
296
297
297
303
303
305
310
312
313
314
314
315
315
317
318
323
325
325
325
327
327
328
333
340
342
342
343
344
346
346
347
347
349
349
351
351
351
351
352
352
358
358
362
367
367
369
369
370
370
378
380
380
381
382
382
383
383
383
384
388
388
389
390
390
390
397
398
399
400
409
409
409
410
410
414
414
416
416
417
421
421
422
422
426
426
427
427
428
428
429
434
434
438
438
440
440
446
453
455
455
455
456
458
464
464
465
465
471
471
479
481
482
482
483
483
493
493
495
495
495
500
500
503
503
510
511
512
513
518
522
522
523
523
523
523
529
529
540
540
541
541
544
547
551
551
553
553
562
567
567
580
585
585
604
606
619
624
624
642
647
647
668
671
686
691
691
710
715
715
736
738
743
743
745
745
746
746
752
757
757
775
780
780
801
804
819
824
824
837
842
842
861
863
876
881
881
899
904
904
925
928
943
948
948
967
972
972
993
995
1009
1014
1014
1032
1037
1037
1058
1061
1076
1081
1081
1599
1600
1601
1
4
8
10
10
14
14
15
22
24
24
24
25
26
26
26
27
29
30
30
33
33
34
34
38
39
44
44
48
48
50
50
50
51
51
51
52
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
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
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
56
56
56
56
56
57
57
57
57
57
57
57
58
58
59
59
60
60
64
68
70
70
72
72
86
86
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
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
93
97
97
98
98
100
100
107
109
109
109
109
109
109
110
110
110
110
111
111
111
111
111
122
126
128
128
129
129
129
129
129
130
130
130
130
130
131
131
131
131
133
133
133
133
133
134
134
134
134
134
134
134
135
135
135
135
135
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
137
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
138
138
139
140
140
140
140
140
141
141
141
142
142
143
143
143
144
144
144
144
144
144
144
144
144
144
145
145
145
145
145
145
146
146
146
146
146
146
149
149
149
153
155
156
158
158
161
161
161
162
162
162
162
162
162
162
163
163
163
163
163
163
164
164
167
168
172
172
173
173
173
174
175
176
178
178
178
179
180
180
180
180
180
181
181
182
182
182
182
183
183
188
190
192
192
192
196
197
197
199
199
199
199
199
199
200
200
200
200
201
201
202
202
206
206
206
206
210
214
214
214
216
216
216
216
216
216
216
216
217
217
219
220
221
221
225
225
229
230
231
232
233
234
234
234
234
235
235
235
235
236
238
238
238
238
238
238
239
239
243
243
243
244
244
244
244
246
246
247
250
250
250
252
252
252
252
252
252
252
252
253
253
262
266
266
267
267
272
272
274
274
276
276
276
276
276
277
278
278
278
279
279
281
281
286
287
287
288
291
291
298
298
306
311
313
314
316
316
318
319
324
325
326
327
328
328
329
340
341
343
343
345
347
347
348
348
350
350
350
350
350
350
352
352
353
353
363
368
368
371
371
379
380
382
382
383
383
384
384
384
385
386
389
389
390
390
391
398
400
401
410
411
411
415
415
418
422
422
423
423
425
425
425
425
427
427
429
429
430
435
435
438
440
441
441
453
454
456
456
456
459
466
466
480
482
484
484
493
495
496
496
496
501
501
503
511
513
514
519
524
524
524
524
542
542
545
548
551
553
554
554
563
568
568
581
586
586
598
605
607
620
625
625
643
648
648
669
672
687
692
692
711
716
716
737
739
746
746
747
747
753
758
758
776
781
781
802
805
820
825
825
838
843
843
855
862
864
877
882
882
900
905
905
926
929
944
949
949
968
973
973
994
996
1010
1015
1015
1033
1038
1038
1059
1062
1077
1082
1082
1600
1601
1602
1
1
4
5
5
5
9
9
11
11
12
12
14
15
22
22
24
25
25
26
26
27
28
30
31
31
35
35
38
38
39
40
40
40
40
48
49
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
52
52
53
53
53
53
53
53
53
53
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
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
59
59
59
60
60
61
61
65
69
71
71
73
73
85
86
87
87
87
87
87
87
88
88
88
88
88
89
89
89
89
89
89
89
90
90
90
90
90
90
91
91
91
91
91
91
91
91
92
92
92
93
93
93
93
93
93
94
94
94
94
94
94
98
98
99
99
108
108
108
110
110
110
110
110
110
111
111
112
112
112
112
112
112
112
127
127
128
129
129
130
130
130
130
131
131
131
131
132
132
132
132
133
133
133
133
133
133
134
134
134
135
135
135
135
135
135
135
136
136
136
136
136
136
136
136
136
136
136
136
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
138
138
138
138
138
138
138
138
139
139
141
141
141
142
143
143
143
143
144
144
144
145
146
146
146
146
146
146
146
146
146
147
147
147
147
147
147
150
150
150
154
156
157
159
159
159
163
163
163
163
163
164
164
164
164
164
165
165
168
169
173
173
174
174
174
176
178
178
179
179
180
181
182
182
182
183
183
183
183
184
184
190
191
197
198
198
199
199
200
200
200
200
200
200
200
201
201
202
202
203
203
203
204
207
207
207
207
211
214
214
214
215
215
217
217
217
217
218
218
219
221
226
226
231
232
233
234
234
234
235
235
235
235
236
236
237
237
239
239
239
239
239
240
240
243
243
244
244
245
245
245
247
247
248
250
250
250
251
251
253
253
253
253
254
254
259
263
268
268
275
275
276
277
277
278
279
279
279
280
280
282
282
287
287
288
288
292
292
296
297
297
297
299
299
305
307
309
309
312
312
314
315
316
316
317
317
317
317
319
320
325
325
327
327
328
329
329
330
340
341
343
343
344
344
346
348
348
349
349
351
351
351
351
351
352
352
352
353
353
354
354
360
364
367
369
369
372
372
380
380
382
383
384
384
385
385
385
386
387
387
387
388
388
390
390
390
391
392
398
399
401
409
410
410
410
411
412
412
416
416
418
419
423
423
424
424
425
426
426
428
428
430
430
431
436
436
438
440
441
442
442
453
454
456
456
457
457
457
460
464
465
465
465
467
467
473
476
480
481
483
485
485
493
495
496
497
497
497
502
502
503
511
512
514
520
522
523
523
523
525
525
525
525
531
538
543
543
546
549
551
553
554
555
555
564
569
569
582
587
587
599
603
606
608
621
626
626
644
649
649
670
673
688
693
693
712
717
717
731
738
740
747
747
754
759
759
777
782
782
803
806
821
826
826
839
844
844
856
860
863
865
878
883
883
901
906
906
927
930
945
950
950
969
974
974
988
995
997
1011
1016
1016
1034
1039
1039
1060
1063
1078
1083
1083
1601
1602
1603
4
6
6
10
10
10
12
14
14
14
15
15
15
15
24
24
24
26
27
27
28
28
29
29
31
32
32
33
36
36
38
38
38
40
40
44
44
49
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
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
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
56
56
56
56
56
57
57
57
57
57
58
58
58
58
60
60
60
61
61
62
62
70
74
74
85
86
86
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
93
93
93
93
93
94
94
94
94
94
94
95
95
95
95
95
99
99
99
99
100
100
108
109
109
109
110
110
111
112
112
112
112
112
112
113
113
113
113
113
128
128
128
129
129
129
129
129
129
129
130
130
130
130
130
131
131
131
131
131
132
132
132
132
132
133
133
133
133
133
134
134
134
134
134
134
135
135
135
136
136
136
136
136
136
136
136
136
137
137
137
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
138
138
138
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
139
139
140
141
141
142
142
143
144
144
144
144
145
146
146
146
147
147
147
147
148
148
148
148
151
151
151
155
155
155
155
156
157
159
159
159
160
160
160
162
163
163
163
163
164
164
164
164
164
165
165
166
166
169
170
174
174
174
175
175
175
179
179
180
180
180
180
180
180
181
182
182
183
183
183
184
184
184
184
191
191
192
192
199
199
200
200
201
201
201
201
202
202
203
203
204
204
204
204
208
208
208
208
212
212
215
215
215
216
216
216
216
216
216
218
218
218
218
219
220
222
227
227
231
231
231
234
235
235
235
236
236
236
237
237
239
240
240
240
241
241
244
245
245
246
246
246
248
248
251
251
252
252
252
252
252
252
254
254
254
254
259
264
268
269
269
272
276
277
278
278
279
280
280
281
281
283
283
287
288
288
288
288
289
293
293
296
296
296
297
298
298
298
305
308
310
313
313
315
316
317
318
318
320
321
325
325
326
328
328
328
329
331
331
344
344
345
345
347
349
349
350
351
351
351
352
352
352
352
352
353
353
353
354
354
360
365
368
370
370
373
380
380
381
383
384
386
386
387
388
388
389
391
391
392
393
398
399
401
401
402
409
409
409
410
411
411
411
412
417
417
418
420
424
424
425
426
427
427
429
429
431
432
437
437
438
438
441
442
457
457
458
458
458
461
464
464
464
465
466
466
466
473
477
479
481
482
484
486
493
493
496
497
498
503
503
511
512
514
514
515
521
522
522
522
523
524
524
524
526
526
531
539
541
544
545
547
550
551
551
554
555
565
570
570
583
588
588
604
607
609
622
627
627
645
650
650
665
669
671
674
689
694
694
713
718
718
732
736
739
741
743
743
755
760
760
778
783
783
798
802
804
807
822
827
827
840
845
845
861
864
866
879
884
884
902
907
907
922
926
928
931
946
951
951
970
975
975
989
993
996
998
1012
1017
1017
1035
1040
1040
1055
1059
1061
1064
1079
1084
1084
1602
1603
1604
5
5
5
11
11
11
12
12
13
15
16
16
22
22
24
26
28
29
29
29
29
30
33
35
35
37
37
38
44
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
58
58
58
58
58
59
60
60
63
63
71
75
75
85
86
86
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
90
90
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
93
93
93
93
94
94
94
94
94
94
95
95
95
95
95
96
96
96
96
96
99
100
100
101
101
108
108
109
110
110
110
110
110
112
112
112
113
113
114
114
114
114
114
129
129
129
130
130
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
132
132
132
132
132
132
132
132
132
133
133
133
133
133
134
134
134
134
134
134
134
135
135
135
135
135
135
136
136
136
137
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
138
138
138
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
139
141
141
141
141
143
143
144
144
144
144
144
145
145
145
147
147
148
148
149
151
152
152
156
156
156
156
159
160
160
160
160
161
161
161
161
162
162
162
163
163
163
163
164
164
164
164
165
165
165
165
170
171
172
172
175
175
176
176
176
179
179
180
181
181
181
181
181
181
182
182
182
182
182
182
182
183
183
184
184
193
193
196
199
199
199
200
200
200
200
200
200
201
201
202
202
204
204
205
205
205
209
209
209
209
213
213
213
213
213
215
215
215
215
215
215
215
215
215
216
216
216
217
217
217
217
220
221
223
228
228
229
229
232
232
232
232
234
234
234
235
235
235
235
236
236
236
237
239
241
241
241
242
242
245
246
246
246
247
247
247
249
251
251
251
251
251
251
251
251
252
252
252
253
253
253
253
265
268
270
270
275
277
278
278
280
281
281
282
282
284
284
289
289
289
290
294
294
298
299
299
299
309
311
313
313
314
316
317
317
317
318
319
319
321
322
326
326
327
327
327
327
329
332
332
345
345
346
348
349
349
350
350
351
353
353
353
353
353
354
354
354
355
355
366
368
368
371
371
372
372
374
381
381
382
382
382
382
384
387
387
388
389
389
390
392
392
393
394
402
402
403
411
412
412
412
413
418
418
421
424
424
425
425
426
426
426
428
428
430
430
430
430
432
433
438
438
439
439
440
440
440
442
458
458
459
459
462
466
467
467
467
480
481
481
483
485
485
485
487
494
494
495
495
495
497
499
504
504
515
515
516
522
524
525
525
525
527
527
539
539
543
543
545
546
548
551
552
552
553
553
553
555
566
571
571
584
589
605
608
610
623
628
628
646
651
651
670
672
675
690
695
695
714
719
719
737
740
742
744
744
745
745
745
756
761
761
779
784
784
803
805
808
823
828
828
841
846
862
865
867
880
885
885
903
908
908
927
929
932
947
952
952
971
976
976
994
997
999
1013
1018
1018
1036
1041
1041
1060
1062
1065
1080
1085
1085
1603
1604
1605
5
5
6
12
12
14
17
17
20
21
24
24
24
25
26
29
30
30
31
31
31
32
34
36
36
38
38
39
40
40
48
48
50
50
50
50
50
50
50
51
51
52
52
52
52
52
52
52
52
53
53
54
54
54
54
54
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
59
59
59
59
60
60
60
64
64
72
76
76
86
86
86
86
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
92
92
93
93
93
93
93
94
94
94
94
94
94
94
95
95
95
95
95
96
96
96
97
97
97
101
101
102
102
109
109
110
111
111
111
113
113
113
114
114
115
129
129
130
130
130
130
130
130
131
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
133
133
133
133
133
133
133
133
133
134
134
134
134
134
134
134
134
135
135
135
136
136
136
136
136
136
136
136
136
136
136
137
137
138
138
138
138
138
138
138
138
138
138
138
139
139
139
139
139
139
139
139
139
140
140
140
141
143
145
145
145
145
145
145
145
146
146
146
146
146
146
146
146
148
148
150
150
152
152
156
156
157
161
161
161
162
162
162
162
164
164
164
165
165
165
165
166
166
166
166
171
172
173
173
174
174
174
176
176
177
177
177
180
180
181
182
182
182
182
183
183
183
183
183
183
184
184
184
184
184
184
185
191
192
192
192
194
194
197
198
200
201
201
201
201
202
203
204
204
205
205
206
206
206
210
210
210
210
211
213
213
214
214
214
216
216
216
216
216
216
217
218
218
218
218
219
221
222
224
229
229
230
230
230
230
230
232
232
232
233
233
233
235
236
236
237
237
242
242
242
243
243
243
246
247
247
248
248
248
250
252
252
252
252
252
252
253
254
254
254
254
259
259
266
271
271
276
278
279
279
281
282
282
283
283
285
285
290
290
290
295
295
297
299
300
300
310
312
315
317
318
318
318
319
320
320
322
323
328
328
328
328
328
332
333
333
343
347
349
350
351
351
352
352
354
354
354
354
354
355
355
356
356
367
372
372
373
373
375
383
383
383
383
383
385
385
388
388
389
390
390
391
393
393
393
394
395
395
403
403
410
412
413
413
414
419
419
422
425
426
426
427
429
429
431
431
431
431
433
434
439
439
441
441
441
441
445
456
460
460
463
465
467
468
468
481
484
486
486
486
488
496
496
496
496
500
505
505
516
516
523
523
525
526
526
528
528
544
544
546
547
549
552
554
554
554
554
567
572
572
585
588
588
590
606
609
611
624
629
629
647
652
652
671
673
676
691
696
696
715
720
720
738
741
743
746
746
746
757
762
762
780
785
785
804
806
809
824
829
829
842
845
845
847
863
866
868
881
886
886
904
909
909
928
930
933
948
953
953
972
977
977
995
998
1000
1014
1019
1019
1037
1042
1042
1061
1063
1066
1081
1086
1086
1604
1605
1606
5
5
5
7
12
13
13
15
17
22
22
24
26
27
29
29
31
32
32
35
37
37
38
39
40
40
41
41
44
48
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
52
52
53
53
53
53
53
53
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
56
56
56
56
57
57
57
57
57
57
57
57
57
58
58
59
59
59
59
60
60
60
61
61
61
61
61
65
65
73
77
77
83
83
83
83
83
83
83
83
84
84
86
86
86
87
87
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
90
90
90
90
90
90
90
91
91
91
92
92
92
94
94
95
95
95
95
96
96
96
97
97
97
98
98
98
102
102
103
103
109
111
111
111
112
112
114
114
114
114
116
116
128
129
129
129
129
129
129
129
129
129
130
130
130
131
131
131
131
131
131
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
134
134
134
134
134
134
134
134
134
135
135
135
135
135
135
136
136
136
136
136
136
136
137
137
137
137
138
138
138
139
139
139
139
139
139
139
139
139
139
139
140
140
140
140
141
143
145
146
147
147
147
147
147
147
147
147
147
147
147
158
160
161
161
161
163
163
163
163
163
164
165
165
165
166
166
166
167
167
167
172
173
175
175
175
175
177
177
178
178
178
179
179
181
181
181
182
182
183
183
183
183
183
183
184
184
184
184
185
185
186
191
191
191
192
193
193
193
197
198
199
200
201
202
202
202
202
202
203
204
205
205
206
206
207
207
207
211
211
211
211
214
215
215
215
215
215
215
216
216
216
216
217
217
217
217
217
217
219
219
220
222
222
225
230
230
231
231
232
232
233
233
234
234
234
235
236
237
237
238
238
243
243
243
243
244
244
244
246
246
247
248
248
249
249
249
251
251
251
252
252
252
252
253
253
253
253
253
253
255
255
257
260
260
267
272
272
272
276
277
279
280
282
284
284
286
286
288
291
296
296
298
298
311
313
316
317
318
319
319
319
320
321
323
324
329
329
329
333
333
333
334
334
340
348
350
351
353
353
353
355
355
355
355
357
357
368
372
373
373
374
374
384
384
384
386
389
389
390
391
391
392
394
395
396
396
401
411
411
415
420
420
423
426
428
430
430
430
432
432
432
432
435
440
440
442
442
446
446
446
453
461
464
466
466
482
485
485
487
487
487
497
497
501
506
506
514
524
524
524
529
543
545
545
548
550
553
555
555
568
573
573
586
589
591
607
610
610
612
612
625
630
630
648
653
672
674
677
692
697
697
716
721
739
742
744
746
747
747
758
763
763
781
786
805
807
810
825
830
830
843
846
848
864
867
867
869
869
882
887
887
905
910
929
931
934
949
954
954
973
978
996
999
1001
1015
1020
1020
1038
1043
1062
1064
1067
1082
1087
1087
1605
1606
1607
6
6
6
6
6
8
8
12
14
16
17
17
24
24
24
27
28
31
31
32
32
33
36
38
40
40
40
41
42
42
48
48
48
49
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
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
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
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
60
60
60
60
60
62
62
62
66
66
74
78
78
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
85
85
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
91
92
92
93
93
93
95
95
96
96
96
97
97
98
98
98
99
99
99
103
103
104
104
108
109
111
112
112
113
113
115
115
117
117
126
128
129
129
129
129
130
130
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
132
132
132
132
132
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
135
135
135
136
136
136
136
136
136
137
137
137
137
138
138
138
138
138
139
139
139
139
139
139
140
140
141
141
141
141
143
143
146
147
147
148
148
148
148
156
159
160
160
160
161
162
162
162
164
164
164
164
164
165
165
166
166
173
174
176
176
178
178
179
179
179
180
181
181
181
182
183
183
183
183
184
184
184
184
184
184
184
184
184
184
185
185
186
186
193
194
194
194
198
199
199
200
200
201
203
203
203
203
203
204
205
207
207
208
208
208
212
212
212
212
213
213
214
214
215
215
216
216
216
216
217
217
218
218
219
219
219
219
219
220
220
221
226
231
231
231
232
232
232
233
233
234
234
234
235
235
236
238
239
239
243
244
244
244
245
245
247
247
248
249
249
250
250
250
250
250
251
252
252
252
252
253
253
254
254
255
255
255
255
256
256
258
258
268
272
273
273
277
278
280
281
283
285
285
287
287
287
292
297
297
303
312
314
317
317
321
322
324
325
329
330
334
334
335
335
340
341
343
343
349
351
352
354
356
356
356
356
358
358
358
369
372
374
374
384
385
387
389
390
392
392
393
395
396
397
397
398
416
416
421
421
424
427
429
430
431
431
433
433
436
441
442
447
447
453
454
456
456
460
462
463
465
471
483
485
486
486
488
488
497
502
502
507
507
511
525
529
530
543
549
551
554
555
569
574
574
587
590
592
608
613
613
626
631
631
649
654
673
675
678
693
698
698
717
720
720
722
740
743
743
745
745
747
747
759
764
764
782
787
806
808
811
826
831
831
844
847
849
865
870
870
883
888
888
906
911
930
932
935
950
955
955
974
977
977
979
997
1000
1000
1002
1002
1016
1021
1021
1039
1044
1063
1065
1068
1083
1088
1088
1606
1607
1608
5
5
7
7
7
7
8
11
12
12
13
15
15
17
17
17
18
22
22
24
24
24
24
29
29
29
29
30
30
32
33
34
37
39
40
40
40
40
40
41
41
41
41
41
42
42
50
50
50
50
50
50
51
51
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
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
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
58
58
61
61
63
63
63
63
63
66
66
67
67
75
79
79
85
86
86
86
87
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
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
92
92
92
92
92
92
92
94
96
99
99
99
100
100
100
104
104
105
105
109
110
110
110
110
112
113
113
116
116
118
118
127
127
128
128
129
129
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
132
132
132
132
132
132
132
132
132
133
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
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
136
136
136
137
137
137
138
138
138
138
138
139
139
139
140
141
142
142
142
142
142
144
144
145
145
145
147
148
148
156
160
162
163
163
163
164
165
165
174
175
176
179
179
179
180
180
180
182
182
183
184
184
185
185
185
185
185
185
185
186
186
192
194
195
195
198
198
199
199
201
202
202
202
203
203
204
204
204
205
206
208
208
209
209
209
213
213
213
213
214
215
215
217
217
219
219
220
220
220
220
220
220
221
221
222
222
227
230
231
232
232
233
233
233
234
234
234
236
237
237
237
238
238
239
240
240
244
245
245
245
246
246
246
248
248
248
249
250
250
251
251
251
251
251
253
253
255
255
256
256
256
256
257
257
266
269
274
274
276
278
279
281
282
284
286
286
287
288
288
288
288
288
293
298
298
300
304
313
313
315
317
318
318
322
323
325
326
329
331
333
334
334
334
334
335
336
336
340
344
344
350
352
353
355
355
357
357
357
357
359
359
359
368
370
372
373
375
384
386
388
390
390
390
391
393
393
394
396
397
398
398
398
399
401
401
413
417
417
422
422
425
426
428
430
430
431
432
432
434
434
437
442
442
446
447
447
447
447
448
453
457
457
463
464
466
468
472
481
484
485
486
489
489
497
503
503
503
503
508
508
511
512
514
514
526
526
528
528
530
531
539
543
544
550
552
552
555
555
555
570
575
575
588
591
593
609
614
614
627
632
632
650
652
652
655
674
676
676
679
679
694
699
699
718
721
723
741
746
746
760
765
765
783
785
785
788
807
809
809
812
812
827
832
832
845
848
850
866
871
871
884
889
889
907
909
909
912
931
933
933
936
936
951
956
956
975
978
980
998
1003
1003
1017
1022
1022
1040
1042
1042
1045
1064
1066
1066
1069
1069
1084
1089
1089
1607
1608
1609
6
6
8
9
12
14
16
16
17
17
18
18
18
19
19
19
19
24
24
24
24
25
25
30
31
31
31
32
34
35
40
40
40
41
41
41
41
41
42
42
42
42
42
42
42
43
44
50
50
50
50
50
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
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
55
55
55
55
55
55
55
55
56
56
56
56
57
57
57
57
57
57
57
58
59
60
60
60
60
62
62
64
67
67
68
68
76
80
80
81
82
82
82
86
86
87
87
87
88
88
88
88
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
91
91
91
92
92
92
93
93
93
95
97
100
100
100
101
101
101
105
105
106
106
110
111
111
111
111
112
112
112
112
112
112
113
114
119
119
128
128
129
129
130
130
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
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
134
134
134
134
134
134
134
134
134
134
135
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
136
137
137
137
138
138
139
139
139
141
141
142
142
143
143
143
143
143
143
144
146
146
146
146
147
147
147
147
148
148
156
161
161
163
164
164
164
165
166
166
166
166
166
167
167
167
175
176
176
180
180
180
181
181
181
181
182
183
183
184
186
186
186
186
186
186
186
193
193
202
203
203
203
204
204
205
205
205
205
206
207
207
209
209
210
210
210
210
213
213
214
214
214
214
215
215
215
216
216
218
220
221
221
221
221
222
223
223
228
230
232
233
233
234
235
237
238
238
238
238
239
239
240
241
241
246
246
246
246
247
247
247
250
251
251
251
251
252
252
252
252
252
254
257
257
257
257
260
267
270
275
275
277
279
282
282
283
285
287
287
287
289
289
289
289
294
299
299
300
305
305
313
314
316
318
319
319
323
324
326
327
332
335
335
336
337
337
341
343
345
345
345
351
351
353
354
355
356
358
358
358
358
360
360
360
360
368
371
373
374
374
374
376
387
389
391
391
392
394
394
395
397
398
398
399
399
402
402
413
418
418
418
423
423
426
426
426
429
431
431
432
433
433
435
435
438
440
440
443
448
448
449
454
456
458
458
458
464
465
467
468
473
473
481
485
486
487
490
490
504
504
504
509
509
511
515
515
526
527
529
531
531
532
539
544
545
551
556
556
571
576
576
589
592
594
610
615
615
628
633
633
651
653
656
675
680
680
695
700
700
719
722
724
742
747
747
761
766
766
784
786
789
808
813
813
828
833
833
846
849
851
867
872
872
885
890
890
908
910
913
932
937
937
952
957
957
976
979
981
999
1004
1004
1018
1023
1023
1041
1043
1046
1065
1070
1070
1085
1090
1090
1608
1609
1610
9
10
12
13
15
17
17
17
17
17
19
19
19
19
22
26
26
29
29
31
31
31
32
32
32
34
35
35
35
36
39
40
40
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
44
46
46
46
46
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
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
55
55
55
55
56
56
56
56
56
56
56
56
56
57
57
58
59
59
59
60
61
61
61
63
64
64
65
68
68
69
69
77
81
81
82
82
83
83
83
83
83
83
85
86
86
86
87
87
87
88
88
88
88
88
88
89
89
89
90
90
90
90
91
93
94
94
96
96
96
96
97
97
97
98
101
101
101
102
102
102
106
106
107
107
113
113
113
113
113
113
113
113
115
120
120
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
131
131
131
131
131
132
132
132
132
132
132
132
132
132
132
132
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
134
135
135
135
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
137
137
137
137
137
137
137
137
137
137
137
137
138
139
139
139
139
140
140
141
143
143
144
144
144
144
144
144
145
147
147
148
148
148
148
148
148
148
148
148
148
156
162
162
162
164
165
165
166
166
167
167
167
167
167
168
168
176
177
181
181
182
182
182
182
182
183
183
183
183
183
184
184
184
185
187
187
204
204
205
205
205
206
206
210
210
211
211
211
211
213
213
214
214
215
215
215
215
215
216
216
216
217
218
218
219
220
222
223
224
224
229
231
232
233
234
234
236
239
239
239
239
239
240
240
242
247
247
247
247
247
248
248
248
251
251
252
252
252
252
252
253
253
253
253
254
254
255
260
268
268
271
276
276
277
277
279
279
279
280
283
283
284
285
285
286
288
288
288
288
290
290
290
290
290
295
300
300
306
306
306
306
317
317
318
319
319
320
320
322
323
324
325
327
328
333
334
334
336
336
338
338
343
344
352
352
354
355
356
356
357
359
359
359
359
361
361
361
361
361
361
372
372
374
375
375
377
389
390
390
390
391
391
391
391
392
393
393
394
395
395
396
398
399
399
400
400
401
403
403
403
419
419
419
419
419
424
424
427
427
430
430
431
431
432
432
433
434
434
436
436
439
441
444
447
447
449
449
456
457
465
466
468
474
474
474
474
485
486
487
488
491
491
503
504
504
504
504
505
505
510
510
512
514
516
516
516
528
530
532
532
532
532
533
543
545
546
552
557
557
572
577
577
590
593
595
611
616
616
629
634
634
652
654
657
676
681
681
696
701
701
720
723
725
743
748
748
762
767
767
785
787
790
809
814
814
829
834
834
847
850
852
868
873
873
886
891
891
909
911
914
933
938
938
953
958
958
977
980
982
1000
1005
1005
1019
1024
1024
1042
1044
1047
1066
1071
1071
1086
1091
1091
1609
1610
1611
1
8
10
11
16
17
20
20
26
27
31
31
31
32
32
32
32
35
36
36
36
37
40
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
48
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
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
54
54
54
54
54
54
55
55
55
55
55
55
55
56
56
56
56
56
56
56
57
57
57
57
57
57
57
58
60
62
62
62
62
64
65
65
65
66
68
68
70
70
78
82
82
85
85
85
85
85
85
85
86
86
86
86
86
86
86
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
89
89
89
89
89
90
90
90
90
90
90
90
90
90
91
91
91
96
97
97
97
97
98
98
99
101
101
102
102
102
103
103
103
107
107
108
108
109
109
114
114
114
114
116
121
121
125
125
127
127
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
132
132
132
133
133
133
133
133
133
133
134
134
134
134
134
134
134
134
134
134
135
135
135
135
135
135
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
139
139
139
140
140
141
141
142
142
144
144
145
145
145
145
145
145
146
147
149
149
149
149
163
164
165
165
166
166
166
167
168
168
177
178
182
182
183
183
183
183
183
183
183
184
184
184
184
184
184
184
185
185
186
188
195
202
202
203
203
207
207
211
211
212
212
212
212
215
215
216
216
216
216
216
216
217
217
218
219
219
219
219
220
220
220
223
224
230
230
231
231
234
235
235
235
235
237
237
237
238
238
240
240
243
248
248
248
249
249
249
252
252
252
253
253
253
253
254
254
254
254
255
255
255
255
256
269
269
269
269
272
277
277
280
280
281
285
286
286
287
288
289
289
289
289
289
291
291
291
291
296
300
300
301
301
304
306
306
307
307
313
318
318
320
320
321
323
324
325
326
328
328
329
334
335
339
339
344
344
345
345
355
355
355
356
357
357
358
359
360
360
360
360
360
360
361
361
362
362
362
362
362
362
368
373
373
375
375
376
378
383
391
392
392
393
394
394
395
396
396
397
399
400
401
401
401
402
413
413
417
419
419
420
420
420
425
425
426
431
431
432
432
433
433
433
435
435
435
435
437
437
437
437
440
441
442
445
448
457
457
458
458
466
467
468
468
469
472
474
474
475
475
481
486
487
488
488
492
492
496
505
505
506
506
511
511
514
515
526
526
529
530
531
532
532
533
533
534
539
544
546
546
553
554
558
558
573
578
578
591
594
596
612
617
617
630
635
635
653
655
658
677
682
682
697
702
702
721
724
726
744
749
749
763
768
768
786
788
791
810
815
815
830
835
835
848
851
853
869
874
874
887
892
892
910
912
915
934
939
939
954
959
959
978
981
983
1001
1006
1006
1020
1025
1025
1043
1045
1048
1067
1072
1072
1087
1092
1092
1610
1611
1612
1
1
6
7
7
17
17
18
19
19
21
21
22
22
27
27
28
29
29
32
32
33
33
33
36
36
37
37
37
37
38
40
41
43
43
44
44
44
44
45
45
46
46
46
46
46
46
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
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
56
56
56
56
56
56
57
57
57
57
58
61
63
65
66
66
66
67
69
69
69
69
71
71
79
81
81
83
83
83
83
83
83
83
83
83
83
84
84
85
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
88
88
88
88
88
88
89
89
89
89
89
89
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
91
91
91
91
91
91
91
91
92
92
92
98
100
102
102
103
103
103
104
104
108
108
109
109
110
110
111
111
111
114
114
117
122
122
126
126
127
127
128
128
128
128
128
128
128
128
129
129
129
129
129
129
130
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
132
132
132
132
132
132
132
133
133
134
134
134
134
134
134
134
134
134
134
134
134
136
136
137
137
137
137
137
137
137
137
140
141
141
142
142
145
145
146
146
146
146
146
146
146
147
147
149
149
150
156
164
164
164
164
165
167
167
169
169
178
179
183
183
183
183
184
184
184
184
184
184
184
184
184
184
184
184
185
185
185
185
186
187
189
195
198
198
199
199
202
203
203
203
204
204
208
208
211
212
212
213
213
213
213
216
216
216
216
217
217
217
217
217
217
219
219
219
219
219
219
220
220
220
220
221
221
222
222
222
224
231
231
231
231
231
233
233
234
234
235
236
236
236
236
237
238
238
238
238
239
239
239
240
240
240
240
241
244
247
248
248
248
249
249
249
250
250
250
252
252
253
253
253
254
254
255
255
255
255
255
255
255
255
255
256
256
256
256
260
260
267
269
269
270
270
273
277
278
278
279
281
281
281
286
287
287
288
289
289
290
290
292
292
292
292
297
298
301
301
302
302
307
308
308
317
319
319
322
324
325
326
326
327
327
329
329
329
329
329
329
330
330
334
335
336
340
340
346
346
350
353
356
356
356
357
358
358
359
361
361
362
363
363
363
363
363
363
372
374
374
377
379
384
384
384
384
391
391
392
393
393
395
395
396
397
397
397
398
398
400
400
401
401
402
402
402
402
403
403
411
414
414
420
421
421
421
425
426
426
430
432
432
433
433
434
438
438
438
438
441
442
442
442
442
443
446
447
449
459
459
466
467
468
469
469
470
475
476
476
485
487
488
493
493
497
497
497
497
504
504
506
506
507
512
512
515
515
516
516
524
527
527
530
532
533
534
534
535
543
545
554
555
555
555
555
559
559
574
579
579
592
595
597
613
618
618
631
636
636
654
656
659
678
683
683
698
703
703
722
725
727
745
750
750
764
769
769
787
789
792
811
816
816
831
836
836
849
852
854
870
875
875
888
893
893
911
913
916
935
940
940
955
960
960
979
982
984
1002
1007
1007
1021
1026
1026
1044
1046
1049
1068
1073
1073
1088
1093
1093
1611
1612
1613
10
10
11
17
18
19
19
20
20
22
22
22
27
27
28
33
34
34
34
37
37
38
38
38
39
42
44
45
46
46
47
47
47
47
47
47
47
47
47
47
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
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
54
54
54
54
54
54
55
55
55
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
58
58
58
62
63
64
66
67
68
70
70
72
72
80
82
82
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
86
86
86
86
86
86
87
87
87
88
88
88
89
89
89
89
90
90
90
90
90
91
91
91
92
92
94
94
94
99
101
103
103
104
104
104
105
105
109
109
110
110
112
112
112
112
114
114
114
114
114
114
118
123
123
123
123
123
123
123
124
124
124
127
127
127
127
127
127
127
127
127
127
128
128
129
129
129
129
129
129
129
129
129
130
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
133
133
133
133
133
133
133
134
134
135
136
137
137
137
137
137
137
137
137
137
137
138
138
141
142
142
143
143
146
146
147
147
147
147
147
147
147
147
147
147
148
148
148
148
149
149
151
162
164
164
165
165
165
166
167
167
167
168
168
168
170
170
179
180
182
184
184
184
184
184
185
185
185
185
185
185
185
185
185
185
185
185
186
186
186
186
187
187
187
190
198
199
202
202
203
203
203
204
204
204
205
205
209
209
212
213
213
214
214
214
214
215
217
218
218
218
218
219
219
220
220
220
220
220
220
220
220
221
221
221
221
223
223
223
223
232
232
232
233
234
237
237
237
237
237
238
238
238
239
239
239
240
240
241
241
242
245
247
247
247
247
248
249
249
249
250
250
250
251
251
254
255
255
255
255
256
256
256
256
256
256
256
256
256
256
256
257
257
257
257
258
261
261
270
271
271
274
279
279
280
282
284
287
288
288
289
291
291
293
293
293
293
298
299
299
303
306
306
308
314
318
318
318
320
320
320
323
325
326
330
330
330
330
331
331
334
334
335
336
341
341
344
345
345
345
347
347
351
354
354
355
357
358
359
359
360
361
361
362
362
363
364
364
364
364
373
373
375
375
375
378
380
385
385
387
391
392
393
396
396
397
398
401
401
402
402
403
403
404
404
412
412
419
419
421
422
426
427
427
430
431
431
433
433
433
434
434
435
439
439
439
439
442
443
443
444
447
447
447
448
457
458
458
458
460
460
467
467
468
469
471
474
474
476
486
486
488
488
489
494
494
498
498
505
508
513
513
517
517
525
525
531
532
532
533
534
536
544
544
546
546
555
556
556
560
560
575
580
580
596
598
614
619
619
632
637
637
655
657
660
679
684
684
699
704
704
723
726
728
746
751
751
765
770
770
788
790
793
812
817
817
832
837
837
853
855
871
876
876
889
894
894
912
914
917
936
941
941
956
961
961
980
983
985
1003
1008
1008
1022
1027
1027
1045
1047
1050
1069
1074
1074
1089
1094
1094
1612
1613
1614
7
7
11
19
19
21
21
22
23
23
26
26
26
28
29
29
29
34
34
35
38
39
39
40
40
40
43
45
47
47
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
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
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
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
64
65
67
67
69
71
71
71
71
73
73
81
83
83
84
84
84
85
85
85
85
85
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
90
90
94
95
95
97
97
97
98
98
98
100
102
104
105
105
105
106
106
110
110
111
111
113
113
115
115
115
115
119
124
124
124
124
124
124
124
125
125
125
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
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
132
132
132
132
132
132
132
133
133
133
133
133
133
134
134
134
134
134
134
136
136
136
136
136
137
137
137
137
137
137
137
139
140
140
142
143
143
144
144
147
147
147
148
148
148
148
148
148
149
149
149
149
149
149
149
149
149
156
156
163
163
165
165
165
166
166
167
167
167
168
168
168
169
169
171
171
175
180
181
182
183
183
184
185
185
186
186
186
186
186
186
186
186
187
187
187
187
187
187
188
188
191
195
195
203
203
203
204
204
204
205
205
205
205
206
206
206
210
210
212
212
214
214
215
215
215
215
215
216
216
216
218
218
219
219
219
219
221
221
221
221
221
221
222
222
222
222
224
224
232
233
235
235
236
236
238
238
238
239
239
239
240
240
240
240
240
240
241
241
241
242
242
246
248
249
250
250
250
251
251
251
251
252
252
252
254
255
256
256
257
257
257
257
257
257
257
257
257
258
258
258
258
259
259
269
269
271
275
277
280
280
281
285
288
288
289
289
289
290
290
290
290
290
292
292
294
294
294
294
299
304
307
318
319
320
321
321
321
324
326
327
330
331
331
332
332
333
334
335
336
337
342
342
344
344
344
345
346
346
346
356
358
359
359
360
360
361
361
362
363
363
365
365
365
365
373
375
376
376
376
379
381
385
391
392
393
394
397
397
398
399
402
402
402
403
403
403
403
403
404
404
405
405
420
423
428
428
431
431
433
434
434
434
434
435
435
436
436
440
440
440
440
443
443
445
446
447
448
448
449
457
457
457
458
459
459
459
469
470
472
475
486
488
489
489
490
495
495
498
504
506
509
514
514
515
516
516
516
518
518
532
533
534
537
544
546
547
547
556
556
561
561
576
581
581
597
599
615
620
620
633
638
638
656
658
661
680
685
685
700
705
705
724
727
729
746
747
752
752
766
771
771
789
791
794
813
818
818
833
838
838
854
856
872
877
877
890
895
895
913
915
918
937
942
942
957
962
962
981
984
986
1004
1009
1009
1023
1028
1028
1046
1048
1051
1070
1075
1075
1090
1095
1095
1613
1614
1615
10
10
11
19
19
20
21
24
24
26
27
29
29
29
29
29
29
34
34
39
40
40
40
41
44
45
45
46
48
48
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
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
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
60
64
65
66
66
68
68
68
68
70
72
72
73
73
74
74
81
82
82
82
82
84
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
86
86
86
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
90
90
90
90
91
91
97
98
98
98
99
99
101
103
105
106
106
106
107
107
111
111
112
112
113
113
113
115
115
115
115
115
115
115
115
116
116
120
125
125
125
125
125
125
125
125
126
126
126
126
127
128
128
128
128
128
128
128
128
128
128
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
131
131
131
131
131
131
131
131
131
131
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
134
134
134
134
134
134
134
134
135
135
136
137
137
137
137
137
140
143
144
144
145
145
147
147
147
147
148
148
148
148
149
149
149
150
150
150
150
157
157
157
157
165
166
166
167
167
167
167
168
168
172
172
176
176
176
181
182
182
183
183
183
183
184
185
185
186
186
186
186
186
186
186
187
187
188
188
188
188
188
188
189
189
192
193
196
196
203
204
204
205
205
205
206
206
206
206
206
207
207
211
211
215
215
215
216
216
216
216
216
217
217
218
218
218
219
219
220
220
220
220
220
220
221
221
221
221
221
221
223
223
223
223
224
231
231
232
234
235
236
236
237
238
239
239
240
240
240
241
241
241
241
241
241
242
242
247
248
250
251
251
251
252
252
252
252
253
253
254
254
254
255
256
256
256
257
257
257
257
257
257
257
257
258
258
258
259
259
259
259
270
276
277
278
279
281
281
286
289
289
289
290
290
290
291
291
291
291
291
295
295
295
295
300
301
302
302
305
306
306
308
318
320
320
321
322
322
322
325
327
328
330
332
332
333
333
334
336
337
338
343
343
346
347
347
347
356
357
359
361
361
361
361
362
362
363
364
364
366
366
366
366
373
375
376
377
377
377
380
382
385
391
391
392
393
395
395
398
398
398
399
400
402
402
402
403
403
403
404
404
404
404
404
405
405
414
419
419
421
424
429
429
431
432
433
434
435
435
436
436
437
437
441
441
441
441
443
444
446
447
449
449
450
459
460
460
460
469
471
473
474
474
476
486
488
489
490
490
491
496
496
498
504
504
505
510
515
515
515
515
515
516
517
517
517
527
532
532
533
534
535
538
544
546
547
548
548
556
557
562
562
577
582
582
598
600
616
621
621
634
639
639
657
659
662
681
686
686
701
706
706
728
730
747
747
747
748
753
753
767
772
772
790
792
795
814
819
819
834
839
839
855
857
873
878
878
891
896
896
914
916
919
938
943
943
958
963
963
985
987
1005
1010
1010
1024
1029
1029
1047
1049
1052
1071
1076
1076
1091
1096
1096
1614
1615
1616
7
7
11
21
21
21
21
25
25
26
26
29
29
29
30
34
34
35
35
39
40
40
41
41
42
44
44
45
46
47
47
49
49
50
50
50
50
50
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
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
55
55
55
55
55
55
55
55
55
55
56
56
57
57
57
57
57
61
65
67
67
69
69
69
71
74
74
75
75
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
85
85
85
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
88
89
89
89
89
90
91
91
91
91
92
92
92
102
106
107
107
107
108
108
112
112
113
113
113
113
113
114
114
116
116
116
116
117
117
121
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
132
132
132
132
132
132
132
132
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
135
135
135
136
136
136
136
136
136
137
138
138
141
144
145
145
146
146
147
148
148
148
148
148
149
149
150
150
150
150
151
157
157
158
158
165
165
165
165
167
168
168
169
169
173
173
177
177
182
183
183
184
184
184
184
184
184
185
185
185
185
185
185
185
185
185
185
186
186
187
187
187
187
187
187
187
188
188
189
189
190
193
194
194
203
204
205
205
205
206
206
207
207
207
208
208
212
212
216
216
216
217
217
217
217
218
218
218
219
219
219
219
220
220
220
220
220
220
220
220
221
221
221
221
221
221
222
222
222
222
222
222
224
231
235
235
235
236
237
237
238
238
239
240
240
240
241
241
242
242
242
242
243
243
248
249
249
253
253
253
254
254
254
255
255
255
255
256
256
256
256
256
256
256
256
257
257
257
258
258
258
258
258
258
258
258
259
259
259
261
269
269
271
277
278
279
279
280
282
282
287
291
291
291
292
292
292
292
292
296
296
296
296
301
301
303
306
306
306
307
307
318
318
321
321
322
323
326
328
329
333
333
334
334
334
335
337
339
344
344
345
347
348
348
356
358
360
361
361
362
362
362
362
363
363
365
365
367
367
367
367
373
373
376
377
378
381
383
390
391
392
393
394
399
399
399
400
401
404
404
404
405
405
405
405
405
406
406
414
419
419
420
420
425
430
430
431
431
433
434
435
437
437
438
438
442
442
442
442
445
447
447
448
450
450
458
460
461
461
469
472
474
474
474
475
475
486
486
489
490
492
497
497
503
504
505
506
511
516
516
517
518
518
518
527
532
532
533
533
536
539
544
544
547
548
558
563
563
578
583
583
592
599
601
617
622
622
635
640
640
660
663
682
687
687
702
707
707
729
731
747
748
748
749
754
754
768
773
773
793
796
815
820
820
835
840
840
849
856
858
874
879
879
892
897
897
917
920
939
944
944
959
964
964
986
988
1006
1011
1011
1025
1030
1030
1050
1053
1072
1077
1077
1092
1097
1097
1615
1616
1617
5
5
10
10
11
19
19
21
22
26
26
30
31
34
34
35
36
36
36
36
40
40
40
41
41
42
43
44
46
46
46
47
47
47
47
47
50
50
50
50
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
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
56
56
56
56
56
56
56
57
62
66
66
66
68
68
70
70
70
70
71
71
72
75
75
76
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
85
85
85
85
86
86
86
86
86
86
86
86
86
87
87
87
87
88
88
88
88
89
89
91
92
95
95
95
103
107
107
108
108
108
109
109
109
113
113
114
114
114
114
115
115
115
115
115
115
117
117
117
117
122
126
126
127
127
127
127
127
127
127
127
128
128
128
128
128
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
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
134
134
134
134
134
134
134
134
134
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
136
136
136
136
136
136
136
137
137
137
137
137
142
142
145
146
146
147
148
148
148
148
149
149
149
149
150
150
150
150
150
150
150
150
151
151
158
159
159
163
165
166
166
168
168
169
169
169
174
174
176
177
177
177
177
178
183
184
185
185
185
185
186
186
186
187
187
187
188
188
188
188
188
188
188
189
189
191
194
203
203
204
204
206
206
206
206
206
207
207
208
213
213
216
217
217
218
218
218
218
220
220
220
221
221
222
222
222
222
222
222
223
223
223
223
223
223
236
236
236
237
238
238
238
238
238
239
239
239
240
240
241
241
241
242
242
243
249
254
254
254
255
255
256
256
256
257
257
258
258
258
259
259
259
259
259
259
259
259
260
260
260
261
269
269
270
270
278
280
280
281
283
283
288
290
292
292
292
293
293
293
293
297
297
297
297
302
304
307
308
308
319
319
320
320
320
322
322
324
327
329
330
334
334
334
335
335
335
337
337
338
340
345
345
346
346
359
361
363
363
363
363
364
364
366
366
368
368
368
368
374
374
375
375
375
377
382
384
391
393
394
395
400
400
400
401
402
403
405
405
405
406
406
406
406
407
407
421
421
426
431
431
432
432
433
433
433
434
435
438
438
439
439
443
443
443
443
447
448
448
450
450
451
451
459
459
473
475
476
476
487
487
488
488
488
490
493
498
498
504
506
507
512
516
517
517
518
519
519
534
534
537
540
545
545
546
546
546
548
559
564
564
579
584
584
593
597
600
602
618
623
623
636
641
641
661
664
683
688
688
703
708
708
730
732
748
748
750
755
755
769
774
774
794
797
816
821
821
836
841
841
850
854
857
859
875
880
880
893
898
898
918
921
940
945
945
960
965
965
987
989
1007
1012
1012
1026
1031
1031
1051
1054
1073
1078
1078
1093
1098
1098
1616
1617
1618
4
5
6
6
7
7
10
11
21
21
21
23
27
27
29
29
31
32
34
34
34
36
36
40
40
40
41
41
41
41
41
42
42
43
44
44
44
44
45
46
46
47
47
47
47
47
47
47
48
48
48
49
49
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
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
56
56
56
56
56
56
57
57
57
57
57
67
71
71
71
72
72
72
73
77
77
81
84
84
84
84
84
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
89
89
89
89
95
96
96
98
99
101
104
105
108
108
109
109
109
110
110
110
112
114
114
114
114
114
114
114
114
114
114
115
115
115
115
115
116
116
116
116
123
125
125
126
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
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
133
133
133
133
133
133
133
133
133
133
133
133
133
134
134
134
134
134
135
135
135
135
135
135
135
135
136
137
137
138
138
138
138
143
143
143
146
146
146
147
147
148
149
149
150
150
151
151
151
151
151
151
152
152
157
157
159
164
164
168
168
168
169
169
169
169
170
175
175
178
178
179
184
184
184
185
185
185
185
186
186
186
187
187
187
188
188
189
189
189
189
189
190
190
192
195
196
204
204
204
205
205
205
205
205
206
206
206
206
206
207
207
207
208
212
214
214
216
217
218
218
219
219
219
219
219
220
220
220
221
221
222
222
223
223
223
223
224
224
224
224
236
237
238
238
238
239
239
239
239
239
240
240
240
240
240
240
240
241
241
241
241
242
242
242
243
250
251
255
255
255
255
256
256
256
256
256
257
257
258
258
259
259
259
259
260
260
260
260
260
261
261
261
271
271
279
280
281
281
284
284
289
291
291
293
293
294
294
298
298
298
298
301
301
303
304
305
308
309
309
321
321
321
321
323
325
325
328
328
330
331
335
335
336
336
338
338
339
341
346
346
356
356
359
360
362
364
364
364
364
365
365
367
367
369
369
369
369
376
376
376
376
383
384
385
391
392
394
396
401
401
401
402
403
404
404
406
406
407
407
408
408
414
414
417
422
422
427
432
432
434
434
434
434
435
439
439
440
440
444
444
444
444
445
449
449
451
451
452
452
469
469
469
472
474
476
477
477
489
489
489
489
494
497
499
499
504
505
507
513
517
517
518
518
527
527
530
535
535
538
541
547
547
547
547
560
565
565
580
585
585
598
601
603
619
624
624
637
642
642
662
665
684
689
689
704
709
709
724
731
733
751
756
756
770
775
775
795
798
817
822
822
837
842
842
855
858
860
876
881
881
894
899
899
919
922
941
946
946
961
966
966
981
988
990
1008
1013
1013
1027
1032
1032
1052
1055
1074
1079
1079
1094
1099
1099
1617
1618
1619
4
5
5
5
6
6
7
7
10
10
10
11
11
11
11
19
19
21
24
26
28
28
29
29
34
39
40
40
40
41
41
41
41
41
41
42
42
42
42
43
44
44
45
46
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
49
50
50
50
50
50
50
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
52
52
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
56
57
57
68
72
72
73
73
73
74
75
75
75
75
78
78
81
82
82
82
82
84
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
86
86
86
86
86
86
86
87
87
87
87
87
88
88
88
88
88
88
88
88
88
89
89
89
89
89
90
90
98
98
98
99
99
99
102
105
106
109
109
110
110
110
111
111
111
113
115
115
115
115
115
115
115
116
116
117
117
117
117
124
125
125
125
125
125
125
126
126
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
129
129
129
129
129
129
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
132
132
132
133
133
133
133
133
134
134
135
135
135
135
135
136
138
138
139
139
139
140
140
144
147
147
148
148
149
149
149
149
151
151
151
151
151
151
151
151
151
151
152
152
152
152
153
153
158
166
167
169
169
169
169
170
170
170
170
171
176
176
177
177
179
179
184
184
184
184
185
185
185
186
186
186
186
187
187
187
187
187
187
187
188
190
191
191
193
196
196
206
206
206
206
207
207
207
207
207
208
208
212
215
215
217
218
219
219
219
219
219
220
220
220
220
220
221
221
221
222
222
222
222
222
222
222
222
223
224
224
236
238
238
239
240
240
240
241
241
241
241
241
242
242
242
242
242
243
243
251
251
255
255
255
256
256
256
256
257
257
257
257
257
258
258
258
258
261
262
262
262
267
272
272
280
280
281
281
281
282
285
285
290
294
294
295
295
299
299
299
299
299
302
302
304
305
306
309
310
322
322
324
329
329
331
332
336
336
337
337
339
339
342
347
347
348
354
357
357
360
361
363
365
365
365
366
366
368
370
370
370
370
377
377
384
385
385
385
385
386
391
392
394
394
395
397
402
402
402
403
404
407
407
408
408
409
409
412
415
415
418
423
428
433
433
435
435
436
440
440
441
441
445
445
445
445
450
450
452
452
453
461
467
470
470
470
472
473
475
477
478
490
490
495
498
498
498
498
500
500
504
505
507
507
508
514
519
519
525
528
528
531
533
536
537
539
542
548
548
561
566
566
581
586
599
602
604
620
625
625
638
643
643
657
661
663
666
685
690
690
705
710
710
725
729
732
734
752
757
757
771
776
776
790
794
796
799
818
823
823
838
843
856
859
861
877
882
882
895
900
900
914
918
920
923
942
947
947
962
967
967
982
986
989
991
1009
1014
1014
1028
1033
1033
1047
1051
1053
1056
1075
1080
1080
1095
1100
1618
1619
1620
5
5
5
6
7
7
7
7
8
8
11
12
12
21
21
21
25
27
27
29
29
31
31
32
34
35
36
36
41
41
42
42
42
43
43
43
43
43
43
44
45
46
46
46
46
47
47
48
48
48
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
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
53
53
54
54
54
54
55
55
55
56
56
56
56
57
57
65
69
70
73
73
74
75
76
76
79
79
80
80
80
81
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
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
87
87
88
88
88
88
89
89
89
89
89
91
91
91
92
99
99
99
99
100
100
100
100
103
106
107
111
111
111
112
112
112
114
114
114
115
115
115
115
116
116
116
116
116
116
116
117
118
118
123
123
123
123
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
127
127
128
128
128
128
128
128
128
128
128
129
129
129
129
129
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
132
133
133
133
133
133
133
133
133
134
135
135
135
135
135
135
135
135
135
136
136
137
140
141
141
145
148
148
149
149
149
149
150
150
150
152
152
152
152
152
152
153
153
153
153
154
154
157
157
159
165
165
166
167
168
169
169
170
170
170
170
171
171
172
177
177
178
184
186
186
187
187
187
187
188
188
188
189
191
192
192
194
197
206
206
207
207
208
208
208
216
216
216
218
219
220
220
221
221
221
221
221
222
222
222
223
223
224
224
224
224
225
225
231
236
236
239
239
240
240
241
242
242
242
243
243
243
244
252
257
257
257
257
258
258
258
258
258
259
259
260
260
262
263
263
263
268
273
281
282
282
283
286
286
291
293
295
295
296
296
300
300
300
300
300
300
305
305
305
307
309
309
310
311
322
325
329
330
330
332
333
337
337
337
338
338
343
348
348
348
355
355
360
360
362
364
364
364
366
366
366
367
367
367
367
369
371
371
371
371
377
378
385
386
386
387
395
395
396
398
403
403
403
404
405
406
408
408
409
409
410
410
413
413
418
418
422
422
424
429
434
435
437
441
441
442
442
442
446
446
446
446
450
451
451
454
461
468
468
473
473
473
476
477
477
478
479
490
496
499
499
501
501
508
508
509
515
519
520
520
526
526
531
531
535
535
537
538
540
543
548
555
562
567
567
582
585
585
587
600
603
605
621
626
626
639
644
644
662
664
667
686
691
691
706
711
711
730
733
735
753
758
758
772
777
777
795
797
800
819
824
824
839
842
842
844
857
860
862
878
883
883
896
901
901
919
921
924
943
948
948
963
968
968
987
990
992
1010
1015
1015
1029
1034
1034
1052
1054
1057
1076
1081
1081
1096
1099
1099
1101
1619
1620
1621
1
4
4
5
6
7
8
8
9
9
13
13
19
19
21
21
21
21
26
28
28
29
29
30
32
34
36
36
37
37
43
43
43
43
44
44
44
44
44
45
46
46
46
46
46
46
46
46
47
47
47
47
48
48
48
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
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
54
54
54
54
54
54
54
54
54
54
55
55
56
56
56
56
56
56
56
56
56
56
56
56
70
71
74
74
76
77
77
80
80
80
80
81
81
81
81
81
81
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
85
85
85
85
85
85
85
86
86
86
86
86
86
86
87
88
88
88
88
89
92
92
92
93
96
99
99
100
100
100
100
101
101
107
108
112
112
112
113
113
113
113
113
114
114
114
115
115
115
115
115
115
116
116
117
117
117
118
118
118
118
118
119
119
124
124
124
124
124
124
124
124
124
124
125
125
125
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
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
132
132
132
132
132
132
132
133
133
133
133
133
133
133
133
133
134
134
135
135
135
135
135
135
137
138
141
142
142
146
149
149
149
150
150
151
151
151
151
151
151
151
153
153
153
153
153
153
154
154
155
155
157
157
158
158
166
166
166
166
166
167
167
167
169
170
170
171
171
171
172
172
173
177
178
178
179
185
185
187
187
188
188
189
189
189
189
189
189
189
189
189
189
190
192
193
195
196
196
198
207
207
208
212
217
217
217
219
219
220
221
221
222
222
222
222
223
223
224
224
224
224
224
224
224
224
225
225
226
226
232
232
232
237
237
238
238
238
240
240
240
241
242
243
243
243
243
244
245
251
251
253
256
258
258
258
259
259
259
259
259
260
260
260
260
260
260
260
261
263
264
264
264
268
268
272
272
272
274
282
283
283
287
287
292
293
296
296
297
297
301
301
301
301
306
308
310
310
311
312
322
326
330
330
330
331
331
333
334
334
338
338
339
339
344
349
349
363
365
365
365
367
367
367
368
368
368
370
372
372
372
372
377
379
383
386
386
388
396
396
399
404
404
404
405
406
406
409
409
410
410
411
411
423
423
425
430
435
435
438
442
442
443
443
443
443
443
447
447
447
447
447
452
452
455
474
477
478
478
479
480
490
497
499
502
502
509
509
516
519
521
521
536
536
538
539
541
544
548
556
556
556
563
568
568
583
586
588
601
604
604
606
606
622
627
627
640
645
645
663
665
668
687
692
692
707
712
712
731
734
736
754
759
759
773
778
778
796
798
801
820
825
825
840
843
845
858
861
861
863
863
879
884
884
897
902
902
920
922
925
944
949
949
964
969
969
988
991
993
1011
1016
1016
1030
1035
1035
1053
1055
1058
1077
1082
1082
1097
1100
1102
1620
1621
1622
1
1
4
4
4
5
5
5
5
5
5
6
7
7
8
10
10
13
21
21
21
21
22
22
27
29
29
31
31
31
32
36
38
38
44
44
44
46
47
47
47
47
47
47
47
47
47
47
47
47
48
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
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
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
56
57
57
57
57
57
57
57
57
57
57
71
72
74
74
75
75
77
77
77
81
81
81
81
83
84
84
84
84
84
84
85
85
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
87
87
87
87
87
87
88
88
89
89
89
93
93
96
96
96
99
100
100
101
101
101
102
102
108
109
113
113
114
114
114
114
114
115
116
116
116
118
118
118
119
119
119
119
119
120
120
121
121
121
121
121
122
122
122
123
125
125
125
125
125
125
125
125
125
125
125
126
126
126
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
130
130
130
130
130
130
130
130
130
131
131
132
132
132
132
133
133
133
133
133
133
133
133
133
135
135
136
136
136
137
137
138
139
139
142
143
143
147
148
150
150
150
150
150
150
150
150
150
150
151
151
151
152
152
152
152
152
154
154
155
155
156
156
159
159
164
167
167
167
167
168
168
168
168
169
169
169
170
170
170
170
171
171
172
174
177
177
178
179
179
186
186
187
187
187
188
189
189
190
190
190
190
190
191
193
194
194
196
197
197
199
206
206
206
207
207
208
208
216
218
218
218
221
221
221
221
222
222
222
222
223
223
223
224
224
225
225
225
225
225
225
225
227
227
233
233
239
239
239
239
241
242
242
243
244
244
244
245
246
249
252
252
254
257
257
258
258
259
259
260
260
260
260
260
261
261
261
261
261
262
264
265
265
265
272
273
273
275
281
283
288
288
293
297
297
298
298
302
302
302
302
302
307
309
309
311
311
312
327
331
331
332
332
334
334
335
335
337
337
339
339
340
340
345
348
348
350
350
357
364
364
366
366
366
368
368
369
369
369
371
373
373
373
373
384
386
387
389
394
400
405
405
405
406
407
410
410
411
411
412
412
415
422
424
424
431
433
433
436
439
443
443
444
444
444
444
447
448
448
448
448
448
450
450
453
453
456
461
461
470
475
477
478
479
479
480
498
499
503
503
507
517
522
522
528
535
537
537
540
542
545
557
557
564
569
569
584
587
589
602
607
607
623
628
628
641
646
646
664
666
669
688
693
693
708
713
713
732
735
737
755
760
760
774
779
779
797
799
802
821
826
826
841
844
846
859
864
864
880
885
885
898
903
903
921
923
926
945
950
950
965
970
970
989
992
994
1012
1017
1017
1031
1036
1036
1054
1056
1059
1078
1083
1083
1098
1101
1103
1621
1622
1623
4
5
5
6
6
6
6
6
7
7
7
9
11
11
13
13
19
23
23
28
29
29
30
32
32
36
36
38
41
42
43
44
46
46
47
47
47
47
47
47
47
47
48
48
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
51
51
51
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
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
55
55
55
55
55
56
57
72
75
76
76
78
79
81
82
82
82
82
82
82
82
84
84
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
86
86
86
86
86
87
87
87
88
89
89
90
94
94
97
97
97
97
99
99
99
100
100
100
100
101
101
102
109
110
114
114
114
114
115
115
115
115
115
116
117
117
119
120
120
120
120
120
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
123
124
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
130
130
132
132
133
133
133
135
136
137
137
137
138
138
139
139
140
143
144
144
148
148
149
151
151
151
151
151
151
151
151
151
152
153
153
153
153
153
155
155
156
156
157
157
160
160
165
167
167
167
168
168
168
169
169
170
171
171
172
175
176
177
178
179
180
180
188
188
188
188
188
188
189
189
191
192
194
195
195
195
197
200
206
206
207
207
207
207
207
207
208
208
208
208
217
217
219
219
219
219
222
223
223
223
223
223
223
224
224
224
225
226
226
228
228
232
233
233
233
233
234
240
240
242
242
242
242
243
243
243
243
245
245
245
247
250
250
255
257
257
259
259
259
259
260
260
261
261
261
261
262
263
265
266
266
266
268
273
274
274
280
284
289
289
293
293
294
298
298
299
299
302
303
303
303
303
309
310
313
328
330
331
331
331
331
332
333
333
334
335
336
338
338
340
340
341
341
346
346
349
349
351
351
357
364
365
367
369
369
370
370
370
372
374
374
374
374
385
388
390
391
401
406
406
406
406
406
407
408
411
411
412
412
413
413
415
422
432
434
437
440
443
444
444
444
444
444
444
445
445
445
447
449
449
449
449
451
451
454
454
457
459
462
462
470
476
477
479
479
481
481
499
504
504
504
518
519
519
523
523
528
535
541
543
546
556
557
557
557
557
558
565
570
570
585
588
590
603
608
608
624
629
629
642
647
647
665
667
670
689
694
694
709
714
714
733
736
736
738
738
756
761
761
775
780
780
798
800
803
822
827
827
842
845
847
860
865
865
881
886
886
899
904
904
922
924
927
946
951
951
966
971
971
990
993
993
995
995
1013
1018
1018
1032
1037
1037
1055
1057
1060
1079
1084
1084
1099
1102
1104
1622
1623
1624
5
5
5
7
7
7
7
8
8
8
8
8
8
10
12
12
13
14
23
24
29
31
31
31
32
33
38
38
38
44
45
47
48
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
51
51
51
51
51
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
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
56
56
56
56
56
57
73
76
77
77
79
79
80
80
80
80
82
82
83
83
83
83
83
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
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
90
91
92
93
95
95
97
97
98
98
100
101
101
102
110
111
112
112
114
115
115
115
115
115
116
116
116
116
117
117
117
118
118
120
121
123
123
123
123
123
124
124
124
124
124
124
124
124
124
124
124
124
124
125
125
125
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
132
133
134
138
138
139
139
143
145
145
149
149
150
150
150
151
151
151
151
152
152
152
152
152
152
152
152
152
153
153
154
154
154
156
156
157
157
158
158
161
167
167
168
168
169
169
169
169
170
171
172
172
173
176
177
179
180
181
186
187
188
188
188
190
190
190
191
192
192
193
195
196
196
198
201
208
208
208
208
209
209
217
219
220
220
220
220
223
223
223
223
225
225
225
227
227
229
229
234
234
235
240
243
243
243
244
244
246
248
256
258
259
259
259
261
261
262
262
262
262
262
262
263
264
266
267
267
267
274
280
281
281
281
285
290
290
291
294
294
295
299
299
300
300
304
304
304
304
305
309
310
311
314
321
329
332
332
333
334
334
335
336
337
337
339
339
339
341
341
342
342
347
347
347
352
352
360
364
365
366
368
370
370
371
371
371
373
375
375
375
375
376
386
389
391
391
392
394
394
402
404
407
407
407
407
407
408
409
412
412
413
413
414
414
418
422
423
433
434
435
438
441
445
445
445
445
446
446
446
448
450
450
450
450
450
452
452
452
455
455
458
460
460
473
477
477
478
482
482
489
500
504
505
505
505
507
507
517
519
520
520
524
524
531
535
536
542
544
544
547
547
547
558
558
559
566
571
571
586
589
591
604
609
609
625
630
630
643
648
648
666
668
668
671
671
690
695
695
710
715
715
734
739
739
747
757
762
762
776
781
781
799
801
801
804
804
823
828
828
843
846
848
861
866
866
882
887
887
900
905
905
923
925
925
928
928
947
952
952
967
972
972
991
996
996
1014
1019
1019
1033
1038
1038
1056
1058
1058
1061
1061
1080
1085
1085
1100
1103
1105
1623
1624
1625
5
5
6
8
9
9
9
9
11
13
13
13
13
14
15
15
15
15
19
19
24
29
29
31
32
32
34
36
36
38
38
38
38
45
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
50
50
50
50
50
50
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
53
54
54
54
54
54
54
54
54
54
54
54
55
55
55
56
56
56
56
57
57
57
57
57
58
73
73
74
76
78
78
78
78
80
80
80
81
81
81
81
81
82
82
82
82
83
83
83
83
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
86
86
86
86
86
86
86
86
86
92
92
93
96
96
97
98
99
99
99
100
101
102
102
103
111
112
113
115
115
116
116
116
116
117
117
117
117
118
118
118
118
118
119
119
121
122
123
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
125
125
126
126
126
126
126
126
126
126
126
126
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
133
134
135
136
136
137
137
139
139
143
145
145
149
149
150
151
151
151
151
152
152
152
152
153
153
153
153
154
154
154
154
154
154
155
155
155
157
157
157
157
158
158
159
159
159
159
160
160
162
167
167
167
168
168
169
169
169
169
170
170
171
173
174
177
177
178
180
182
186
188
188
189
189
189
189
189
190
190
190
190
190
190
191
191
191
192
193
194
196
197
197
197
199
202
204
208
209
209
209
217
219
220
221
221
221
221
221
223
224
224
224
225
225
225
225
225
225
226
226
226
228
228
230
230
233
233
235
235
239
240
240
240
243
244
247
249
252
257
257
259
259
260
260
260
261
261
261
261
261
261
262
262
262
263
263
263
264
265
267
268
268
268
272
275
280
282
282
286
291
291
292
292
296
300
300
301
301
305
305
305
305
305
310
311
312
315
322
322
322
322
330
331
331
333
333
335
335
337
337
338
338
342
342
343
343
348
353
353
360
365
366
367
369
371
371
372
372
372
374
376
376
376
376
377
377
377
377
387
390
390
391
392
392
395
395
403
405
405
408
408
408
409
410
413
413
414
414
415
415
418
423
424
434
435
435
435
435
436
439
442
444
444
446
446
446
446
447
447
450
451
451
451
451
451
456
456
459
473
478
478
479
483
483
490
490
490
490
501
504
506
506
508
508
518
518
520
525
525
531
536
537
543
548
548
548
548
548
548
557
557
559
559
567
572
572
587
590
592
605
610
610
626
631
631
644
649
649
667
672
672
691
696
696
711
716
716
735
740
740
748
748
748
758
763
763
777
782
782
800
805
805
824
829
829
844
847
849
862
867
867
883
888
888
901
906
906
924
929
929
948
953
953
968
973
973
992
997
997
1015
1020
1020
1034
1039
1039
1057
1062
1062
1081
1086
1086
1101
1104
1106
1624
1625
1626
5
5
5
5
7
7
9
10
10
10
10
10
10
12
13
13
13
13
13
14
14
15
15
19
24
24
25
27
31
31
31
31
32
32
32
32
33
33
35
35
38
38
38
38
39
39
46
46
46
46
47
47
48
48
48
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
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
53
53
53
53
54
54
54
54
54
54
54
54
55
55
56
56
56
57
59
75
79
79
79
79
80
80
80
81
81
81
81
81
81
82
82
82
83
83
83
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
86
86
86
87
87
87
87
87
93
93
94
95
95
97
97
97
97
97
98
99
99
100
100
101
103
104
112
113
114
115
115
116
116
117
118
118
118
118
118
118
118
118
119
119
119
119
119
120
121
121
122
122
122
122
122
123
123
123
123
123
123
123
124
124
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
128
128
128
128
128
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
132
132
133
133
133
133
135
136
136
137
137
137
138
138
140
140
144
147
150
150
152
152
154
154
154
154
155
155
155
155
155
155
156
156
156
159
159
160
160
160
160
161
161
163
165
168
168
168
169
169
169
171
172
172
172
173
173
174
175
177
178
178
180
180
180
180
181
183
187
187
188
188
188
188
188
189
190
190
190
190
190
191
191
191
191
192
193
194
194
195
195
197
197
197
198
198
198
200
203
205
208
208
208
209
209
209
210
217
217
220
221
222
222
222
222
223
223
224
225
225
225
226
226
226
226
227
227
227
229
229
231
231
234
240
240
240
240
240
241
241
242
243
243
243
243
244
245
248
250
252
258
258
258
259
259
260
261
261
261
262
262
262
262
262
263
263
264
264
264
265
265
266
266
268
268
269
269
269
272
273
281
281
283
283
283
287
292
292
297
301
301
302
302
306
306
306
306
307
309
311
311
312
313
316
323
323
331
332
336
336
338
338
338
339
339
339
343
343
344
344
349
349
354
354
364
366
367
368
370
372
372
373
373
373
375
377
377
377
377
378
378
388
392
393
393
394
396
396
396
404
409
409
409
410
411
414
414
415
415
416
416
422
424
425
435
436
436
437
440
443
445
447
447
448
448
451
451
452
452
452
452
452
452
457
460
462
477
479
479
480
484
484
491
491
502
505
507
507
507
509
509
509
521
526
535
537
538
544
549
549
549
549
558
568
573
573
588
591
593
606
611
611
627
632
632
645
650
668
673
673
692
697
697
712
717
736
741
741
748
749
749
759
764
764
778
783
801
806
806
825
830
830
845
848
850
863
868
868
884
889
889
902
907
925
930
930
949
954
954
969
974
993
998
998
1016
1021
1021
1035
1040
1058
1063
1063
1082
1087
1087
1102
1105
1107
1625
1626
1627
5
6
6
6
6
6
6
8
8
11
11
13
13
14
14
15
15
19
23
23
23
25
26
26
28
29
29
32
32
33
33
34
34
36
36
36
40
40
40
41
46
46
46
46
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
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
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
58
60
76
78
78
79
80
80
80
80
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
83
83
83
83
84
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
86
86
87
87
87
90
93
93
94
94
94
96
96
98
98
99
101
102
102
102
103
103
104
105
113
114
114
115
118
118
118
119
119
119
119
119
119
119
119
119
119
120
120
120
120
120
121
121
121
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
125
125
126
126
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
129
129
129
129
129
129
129
130
130
130
130
131
131
131
131
131
131
131
131
131
131
131
131
131
131
131
132
133
134
134
136
136
136
137
137
137
137
138
138
138
139
139
148
149
149
150
150
151
151
152
153
155
155
156
156
156
156
156
156
157
160
160
160
161
161
161
161
162
162
165
167
169
170
172
172
173
173
173
173
174
174
175
176
179
181
181
181
182
184
189
189
189
189
190
191
191
191
193
194
198
198
199
199
199
201
204
205
205
209
209
209
209
210
210
211
218
218
219
219
219
221
223
223
223
224
224
224
224
225
225
225
225
226
228
228
228
230
230
232
232
233
235
240
241
241
243
243
243
243
244
244
244
244
244
244
246
249
251
259
260
260
260
260
261
262
262
264
264
265
266
266
267
267
268
269
270
270
270
273
274
281
282
288
293
293
294
298
300
302
302
303
303
305
307
307
307
307
310
312
312
312
314
317
323
331
332
333
337
337
339
340
340
340
344
345
349
350
355
355
355
360
365
367
367
369
371
373
373
374
374
374
376
378
378
378
378
378
385
389
394
394
394
395
405
407
410
410
410
411
412
413
415
415
416
416
417
417
418
423
425
425
436
436
438
441
444
444
446
448
448
449
449
453
453
453
453
453
453
456
458
459
461
462
468
473
478
480
480
480
485
485
491
498
503
507
508
508
508
520
522
526
527
531
536
538
538
545
549
550
550
557
559
569
574
574
589
592
594
607
612
612
628
633
633
646
651
669
674
674
693
698
698
713
716
716
718
737
742
742
749
749
760
765
765
779
784
802
807
807
826
831
831
846
849
851
864
869
869
885
890
890
903
908
926
931
931
950
955
955
970
973
973
975
994
999
999
1017
1022
1022
1036
1041
1059
1064
1064
1083
1088
1088
1103
1106
1108
1626
1627
1628
5
5
5
6
7
7
7
7
7
7
8
10
11
11
12
12
12
13
14
14
14
15
15
15
15
16
16
23
24
26
26
26
26
26
29
33
34
34
35
35
37
37
40
40
40
40
41
41
41
41
41
42
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
49
49
49
49
49
49
49
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
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
55
57
59
59
61
61
72
77
77
78
79
79
80
80
81
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
84
84
84
85
85
86
86
86
86
87
87
87
87
87
87
87
87
87
87
90
95
97
97
97
99
99
100
102
103
103
103
104
104
105
106
114
114
115
115
116
117
119
119
119
120
120
120
120
120
120
120
120
121
121
121
121
121
122
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
124
124
124
124
124
124
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
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
131
131
131
131
133
137
137
137
138
138
138
138
139
139
139
139
140
140
140
150
150
150
150
150
151
151
151
152
153
153
153
154
156
156
156
157
157
158
158
160
161
161
162
162
162
162
166
167
168
168
169
171
172
173
173
174
174
174
175
175
180
182
182
182
185
189
189
189
189
191
192
192
194
195
199
199
200
200
200
202
205
207
208
209
209
209
209
210
210
210
210
210
210
210
211
212
220
220
220
220
224
224
224
224
224
224
226
226
227
228
228
229
229
229
231
231
233
233
233
233
234
241
241
243
244
244
245
245
245
245
245
247
250
252
252
252
260
260
260
262
263
265
266
267
267
268
268
270
271
271
271
272
274
275
282
282
283
283
289
294
294
294
299
301
303
303
304
304
308
308
308
308
309
311
313
315
318
323
331
331
332
333
338
338
338
339
339
339
340
341
341
341
343
343
344
344
345
346
351
356
356
356
364
366
370
374
374
375
375
375
377
378
379
379
379
379
386
386
386
390
395
395
395
395
396
396
406
407
411
411
411
412
413
414
416
416
417
417
418
418
422
424
436
437
439
442
444
444
445
445
449
449
450
450
451
452
452
452
454
454
454
454
454
454
459
460
462
469
477
479
481
486
486
491
499
499
499
504
508
508
509
509
509
509
520
523
525
525
527
528
535
537
546
549
551
551
557
557
558
570
575
575
593
595
608
613
613
629
634
634
647
649
649
652
670
675
675
694
699
699
714
717
719
738
743
743
761
766
766
780
782
782
785
803
808
808
827
832
832
850
852
865
870
870
886
891
891
904
906
906
909
927
932
932
951
956
956
971
974
976
995
1000
1000
1018
1023
1023
1037
1039
1039
1042
1060
1065
1065
1084
1089
1089
1107
1109
1627
1628
1629
6
6
8
8
8
8
9
11
12
12
12
13
13
13
13
15
15
15
15
15
15
16
16
17
17
23
23
26
27
29
34
34
36
36
38
38
40
40
41
41
41
41
41
41
42
42
42
43
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
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
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
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
58
60
60
62
62
78
78
79
79
79
80
80
80
80
80
80
80
80
82
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
83
84
84
84
84
84
84
84
85
85
86
86
87
87
88
88
91
96
97
98
98
100
101
104
104
105
105
114
115
116
116
117
117
117
117
117
118
119
119
119
119
119
119
119
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
123
123
123
123
123
123
123
123
123
123
123
123
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
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
128
128
128
128
128
128
128
128
131
131
131
131
131
131
131
131
131
131
131
131
133
133
134
137
138
138
138
139
139
139
139
139
140
140
140
140
140
140
141
141
144
150
150
151
151
151
151
152
152
152
153
154
154
154
154
154
155
157
158
158
159
159
160
161
162
162
163
163
163
163
166
166
168
169
169
170
170
172
172
173
173
174
174
175
180
181
183
186
187
189
190
190
190
190
191
191
195
196
200
200
201
201
201
203
203
206
206
208
209
209
210
210
211
211
211
211
211
212
221
221
222
224
225
225
225
226
226
226
228
229
229
230
230
232
232
232
232
232
233
234
234
234
234
234
235
240
241
243
244
244
245
248
250
251
253
253
253
258
259
260
261
261
262
262
262
262
263
263
264
266
267
268
268
269
269
271
272
272
272
273
275
284
284
290
295
300
302
302
304
304
305
305
309
309
309
309
310
310
312
312
314
316
319
330
331
332
333
334
338
338
338
339
339
339
340
340
340
341
342
344
345
346
347
349
349
352
357
357
357
357
365
365
367
367
371
375
375
376
376
376
378
380
380
380
380
387
387
391
396
396
397
397
407
412
412
412
413
414
415
415
417
417
418
418
419
419
423
423
425
425
438
440
443
443
444
445
446
446
450
450
451
451
451
451
451
452
453
453
453
455
455
455
455
460
461
462
462
463
470
470
478
478
480
480
482
487
487
500
500
505
510
510
510
510
524
526
528
528
529
536
536
538
538
547
552
552
556
557
558
559
571
576
576
594
596
609
614
614
630
635
635
648
650
653
671
676
676
695
700
700
715
718
720
739
744
744
762
767
767
781
783
786
804
809
809
828
833
833
851
853
866
871
871
887
892
892
905
907
910
928
933
933
952
957
957
972
975
977
996
1001
1001
1019
1024
1024
1038
1040
1043
1061
1066
1066
1085
1090
1090
1108
1110
1628
1629
1630
9
9
10
12
13
13
13
14
14
14
15
16
16
16
16
16
16
17
17
18
18
27
28
29
34
34
35
36
39
39
41
41
41
41
42
42
42
42
43
43
43
44
45
46
47
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
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
52
52
52
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
55
55
55
55
55
55
56
56
59
61
61
63
63
79
79
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
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
84
84
84
84
84
85
85
85
85
85
85
86
86
86
88
88
88
88
89
89
89
89
91
91
97
99
99
100
100
101
102
102
102
103
103
117
117
118
118
118
118
118
119
119
119
119
119
119
119
119
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
121
122
122
122
122
122
122
122
122
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
128
128
128
129
129
131
131
131
131
131
131
131
133
133
134
135
135
135
137
138
139
140
140
140
140
140
141
141
141
142
142
151
151
151
152
152
152
152
152
154
154
154
154
154
154
155
155
155
155
155
158
159
159
160
160
161
162
163
163
164
164
164
164
168
170
170
171
171
172
172
173
173
173
174
175
175
176
177
182
184
187
188
188
191
191
191
191
191
191
195
196
197
201
201
202
202
202
207
207
209
209
209
209
210
210
210
211
211
212
212
221
222
223
223
226
226
226
226
226
226
226
226
229
229
229
230
230
231
231
233
235
235
235
235
235
236
241
241
241
241
244
244
244
244
244
245
245
245
245
245
249
251
251
252
252
254
254
259
259
262
262
262
262
262
262
262
262
263
263
264
264
267
268
269
269
270
270
272
273
273
273
273
273
275
275
275
276
282
283
283
283
285
285
291
294
294
296
301
303
303
303
303
305
305
306
306
310
310
310
312
313
313
315
317
320
331
333
334
335
340
340
340
341
341
341
342
343
345
346
347
347
348
350
350
353
358
358
358
358
358
358
365
367
368
368
372
376
376
377
377
377
379
381
381
386
387
387
387
387
388
392
395
396
396
396
397
397
398
398
407
407
408
413
413
413
414
415
416
416
416
416
418
418
419
419
420
420
423
425
426
426
441
444
444
446
447
447
451
451
452
452
453
454
454
454
456
456
460
461
462
463
463
464
471
471
471
471
478
480
481
481
483
488
488
499
500
500
500
500
501
506
508
509
509
509
511
511
511
511
520
520
525
527
529
529
529
529
530
536
538
539
539
548
553
553
557
559
560
572
577
577
595
597
610
615
615
631
636
636
649
651
654
672
677
677
696
701
701
716
719
721
740
745
745
763
768
768
782
784
787
805
810
810
829
834
834
852
854
867
872
872
888
893
893
906
908
911
929
934
934
953
958
958
973
976
978
997
1002
1002
1020
1025
1025
1039
1041
1044
1062
1067
1067
1086
1091
1091
1109
1111
1629
1630
1631
5
8
9
10
11
13
14
15
15
15
17
17
17
17
17
19
19
26
28
29
29
29
34
35
36
40
40
40
40
41
42
42
43
43
43
43
44
44
44
46
46
46
47
47
47
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
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
54
54
54
54
54
54
54
54
54
54
54
54
54
54
56
56
57
60
64
64
80
80
80
80
80
80
81
81
81
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
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
85
85
86
86
86
86
86
87
90
90
90
90
93
93
94
94
100
100
101
101
102
102
103
103
103
103
104
104
118
119
119
119
119
119
120
120
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
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
129
129
135
136
136
136
137
137
138
138
140
141
141
141
141
142
150
150
150
152
154
154
155
155
155
155
155
155
155
155
156
156
156
156
156
159
160
160
160
161
161
162
163
164
164
165
165
165
165
166
168
169
169
169
169
170
171
172
172
173
173
174
174
175
176
177
178
180
180
183
185
188
189
189
192
192
192
192
192
192
192
192
192
196
197
198
202
202
203
203
203
205
208
208
208
208
209
209
209
209
210
210
210
210
211
211
221
223
224
224
227
227
227
227
227
227
227
227
227
227
230
230
231
231
232
232
233
234
236
236
236
236
236
242
242
245
245
246
246
246
246
250
255
255
260
260
263
263
263
263
263
263
263
263
264
264
265
265
268
269
270
271
273
274
274
274
276
276
277
282
282
282
283
284
284
284
292
292
294
294
295
295
297
301
302
303
303
304
304
306
306
307
307
310
311
311
312
313
314
314
316
318
318
321
321
331
332
334
336
339
341
341
341
342
342
343
344
346
347
348
348
348
349
354
356
358
358
359
359
359
359
365
367
368
369
369
371
373
377
377
377
378
378
378
380
382
382
388
388
389
393
395
395
395
396
397
397
397
398
398
405
408
408
409
414
414
414
414
415
416
416
416
417
417
419
420
421
421
423
425
426
427
427
438
442
442
444
445
445
447
448
452
452
452
453
453
454
455
455
457
457
461
461
462
463
465
469
471
471
472
472
478
480
481
482
482
484
489
489
490
501
501
502
507
508
508
508
509
510
510
510
512
512
518
521
521
526
527
528
529
529
530
530
531
536
538
539
540
540
549
554
554
557
558
560
573
578
578
589
596
598
611
616
616
632
637
637
650
652
655
673
678
678
697
702
702
717
720
722
741
746
746
764
769
769
783
785
788
806
811
811
830
835
835
846
853
855
868
873
873
889
894
894
907
909
912
930
935
935
954
959
959
974
977
979
998
1003
1003
1021
1026
1026
1040
1042
1045
1063
1068
1068
1087
1092
1092
1103
1110
1112
1630
1631
1632
1
4
5
6
7
7
10
14
14
16
17
17
17
18
18
18
18
18
18
20
20
23
26
26
34
34
35
36
36
36
36
36
37
40
41
41
43
43
43
43
43
44
44
46
46
46
46
46
46
46
46
46
47
47
47
48
48
48
48
49
49
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
53
54
54
54
54
54
54
54
54
54
54
57
58
61
65
65
79
79
79
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
83
83
83
83
83
83
83
84
84
84
84
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
87
91
91
91
91
93
94
101
101
102
102
102
102
103
103
103
103
103
104
104
104
105
105
114
118
118
119
119
119
119
120
120
120
120
121
121
122
122
122
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
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
126
126
126
126
126
126
126
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
136
137
137
137
138
138
139
139
139
139
139
140
140
140
140
140
141
142
142
142
150
151
151
152
153
156
156
156
156
156
156
157
157
157
157
157
160
161
161
161
162
162
163
163
165
165
166
166
166
166
166
170
170
170
171
172
173
173
174
174
174
175
175
175
176
176
176
177
177
181
181
184
186
189
190
190
190
192
192
192
192
192
193
193
193
193
197
197
198
199
203
203
204
204
204
205
209
209
209
209
210
210
210
211
211
211
212
212
225
225
225
227
227
227
227
228
228
228
228
228
228
231
231
231
232
232
233
233
233
233
234
236
236
237
237
237
237
237
242
243
244
244
245
245
245
245
245
245
245
246
246
246
246
246
247
247
247
251
253
256
256
260
261
261
261
263
263
263
263
264
264
264
264
265
265
266
266
269
269
270
270
271
272
272
273
273
274
275
275
275
275
277
277
284
285
285
285
293
293
293
295
298
303
304
305
305
307
307
308
308
309
309
309
309
310
310
312
312
313
314
317
322
322
331
332
334
334
335
337
340
340
342
342
344
345
347
348
349
350
355
359
360
360
360
360
365
365
368
369
372
374
376
378
378
378
378
378
378
379
379
379
380
380
380
380
381
383
383
387
387
389
389
394
397
398
398
398
399
399
406
406
410
415
415
415
416
417
417
418
418
418
418
419
419
420
421
422
422
423
423
426
427
443
443
444
445
446
447
447
448
449
453
453
453
453
454
454
455
455
455
455
458
458
463
464
466
472
473
473
478
478
481
482
485
490
490
491
491
491
491
500
500
502
502
508
510
511
511
511
513
513
519
519
527
529
530
531
531
532
536
536
539
540
550
555
555
557
558
560
560
561
574
579
590
594
597
599
612
617
617
633
638
638
651
653
656
674
679
679
698
703
703
718
721
723
742
747
747
765
770
770
784
786
789
807
812
812
831
836
847
851
854
856
869
874
874
890
895
895
908
910
913
931
936
936
955
960
960
975
978
980
999
1004
1004
1022
1027
1027
1041
1043
1046
1064
1069
1069
1088
1093
1104
1108
1111
1113
1631
1632
1633
1
1
1
4
4
5
6
10
10
11
11
15
15
15
15
15
17
17
19
19
19
19
20
20
21
21
28
28
29
29
34
34
34
36
36
38
40
40
40
41
42
42
43
44
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
48
48
48
48
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
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
53
53
54
54
54
55
55
58
59
62
66
66
76
77
78
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
82
82
82
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
85
85
85
86
86
86
86
87
87
87
87
87
87
87
87
88
88
92
92
92
92
95
99
100
100
102
102
103
103
104
104
104
104
104
105
105
105
105
106
106
106
118
118
118
119
119
119
120
120
120
120
120
120
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
123
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
127
127
127
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
134
137
138
138
138
140
140
140
140
141
141
141
141
141
141
143
143
150
150
150
151
152
153
153
153
154
155
155
156
156
156
156
156
156
158
158
158
158
158
160
161
162
162
162
163
163
166
166
167
167
167
167
169
170
170
170
170
170
170
171
172
173
175
176
176
176
177
177
177
178
178
180
182
182
182
185
187
190
190
190
190
192
192
193
193
194
194
194
194
198
198
198
198
199
200
204
204
205
205
205
209
209
209
210
210
210
210
210
210
211
211
211
212
212
213
225
225
225
227
227
228
228
229
229
229
229
229
229
232
233
233
234
234
234
237
237
238
238
238
238
238
242
242
242
244
244
244
244
245
245
246
246
246
246
246
247
247
247
248
252
253
257
257
261
261
261
261
263
263
264
264
265
265
265
265
266
267
267
270
271
272
273
273
274
275
276
276
276
276
283
285
286
286
294
296
299
303
303
304
305
308
308
309
310
310
311
311
312
312
312
313
313
314
318
322
323
323
335
335
336
338
343
343
348
349
350
350
351
356
358
358
360
361
361
366
366
367
367
367
369
375
377
379
379
379
379
380
380
381
381
382
384
384
388
395
396
398
399
399
400
400
411
416
416
416
416
416
417
418
418
419
420
421
422
423
423
424
424
425
425
425
427
435
444
444
447
448
448
449
450
454
454
455
456
456
459
459
463
464
465
467
471
471
473
479
479
480
480
480
482
486
491
491
492
492
501
509
509
511
512
512
514
514
528
529
529
530
531
533
537
537
538
538
538
540
548
551
556
556
561
561
562
575
578
578
580
595
598
600
613
618
618
634
639
639
652
654
657
675
680
680
699
704
704
719
722
724
743
748
748
766
771
771
785
787
790
808
813
813
832
835
835
837
852
855
857
870
875
875
891
896
896
909
911
914
932
937
937
956
961
961
976
979
981
1000
1005
1005
1023
1028
1028
1042
1044
1047
1065
1070
1070
1089
1092
1092
1094
1109
1112
1114
1632
1633
1634
5
5
6
7
7
7
11
16
16
17
17
17
18
20
20
21
21
22
22
26
26
29
34
39
43
43
44
45
46
46
46
46
46
46
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
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
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
55
56
59
60
63
67
67
77
77
78
78
78
79
79
80
80
80
80
80
80
80
80
80
80
80
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
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
85
85
85
85
86
86
86
86
86
86
86
86
87
87
88
88
88
88
88
88
89
89
91
91
93
93
93
93
96
100
100
101
101
103
103
103
104
105
105
105
105
105
106
106
106
106
106
107
107
119
119
119
119
120
120
120
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
122
122
122
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
128
129
129
129
129
129
129
129
130
130
130
130
131
131
133
133
133
133
135
135
138
139
139
139
141
141
142
142
144
144
150
150
151
151
153
154
154
154
154
155
155
155
155
155
155
155
155
156
156
157
157
157
157
157
157
159
161
161
162
163
163
163
163
164
164
166
167
167
168
168
168
168
171
171
171
171
172
173
173
173
174
174
175
176
177
177
178
178
180
181
188
188
191
191
191
191
191
192
192
192
192
192
192
192
192
193
193
194
194
196
198
198
199
199
200
201
205
205
205
206
206
206
209
210
210
210
211
211
211
211
212
212
212
212
212
213
213
213
214
220
223
226
226
226
226
227
227
227
227
227
227
228
228
229
229
230
230
233
234
234
235
235
235
238
238
239
239
239
239
243
243
245
245
245
246
246
246
246
247
247
247
247
247
248
248
253
258
258
259
261
261
262
262
262
262
263
263
263
263
263
263
264
264
265
265
265
265
265
267
268
271
272
273
273
274
274
275
276
277
277
277
277
284
284
295
295
297
300
304
305
309
309
310
311
311
313
313
313
313
314
314
319
323
323
323
324
324
336
336
339
342
344
344
349
350
350
351
352
357
359
362
368
368
368
368
376
378
379
380
380
381
381
382
382
383
385
385
387
389
396
397
397
401
401
408
412
417
417
417
418
419
420
421
422
423
424
424
426
426
426
426
436
436
436
445
445
448
449
449
451
455
455
455
456
457
457
460
460
463
465
466
468
472
481
481
481
481
487
492
492
492
500
502
510
510
510
515
515
521
529
530
531
534
539
539
539
539
549
549
549
552
557
557
562
562
576
579
581
596
599
601
614
619
619
635
640
640
653
655
658
676
681
681
700
705
705
720
723
725
744
749
749
767
772
772
786
788
791
809
814
814
833
836
838
853
856
858
871
876
876
892
897
897
910
912
915
933
938
938
957
962
962
977
980
982
1001
1006
1006
1024
1029
1029
1043
1045
1048
1066
1071
1071
1090
1093
1095
1110
1113
1115
1633
1634
1635
1
5
5
6
6
7
8
10
10
11
13
13
15
15
17
17
17
17
18
18
19
21
21
22
22
23
23
28
28
29
34
35
36
36
40
43
43
44
44
45
46
46
46
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
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
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
54
54
56
56
57
57
59
60
60
61
64
68
68
79
79
80
80
80
80
80
80
80
80
80
80
80
80
81
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
84
84
84
84
84
84
84
84
85
85
85
85
85
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
88
88
89
89
90
90
91
94
94
94
94
97
100
100
101
101
102
102
103
104
105
106
106
106
106
107
107
107
108
108
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
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
125
125
125
125
125
125
125
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
129
129
130
131
131
131
131
132
132
134
134
140
140
140
141
142
145
145
152
152
155
155
155
156
156
157
157
158
158
158
158
158
158
160
161
163
163
164
164
164
164
165
165
168
168
169
169
169
169
170
170
171
171
172
172
172
173
173
174
174
175
175
175
175
176
176
176
176
177
181
181
182
182
189
189
190
190
190
191
191
192
192
192
193
193
193
193
194
194
199
200
200
201
202
206
206
207
207
207
209
211
212
212
212
213
213
213
214
214
214
215
221
221
221
221
224
225
225
225
226
226
227
227
228
228
229
229
231
231
234
235
235
236
236
236
236
240
240
240
240
241
243
243
243
243
244
244
244
245
245
245
245
246
246
246
247
247
247
248
248
254
259
259
260
261
261
262
262
263
263
264
264
265
265
265
266
266
267
268
269
270
272
273
273
274
274
275
275
275
276
277
278
278
278
295
296
298
301
303
303
305
306
308
308
310
310
311
312
312
314
314
315
315
320
324
324
325
325
334
340
342
345
345
350
351
352
353
358
358
358
360
361
361
363
369
369
377
379
379
379
379
381
381
382
382
383
383
384
386
386
387
387
388
397
402
402
408
413
416
416
416
416
418
418
418
419
420
421
422
423
424
425
425
427
427
437
437
446
446
447
449
452
454
454
455
456
456
457
458
458
461
461
467
469
471
471
473
482
482
488
492
493
493
500
500
501
511
516
516
521
529
529
530
531
532
535
540
540
550
550
553
558
558
560
577
580
582
597
600
602
615
620
620
636
641
641
654
656
659
677
682
682
701
706
706
724
726
745
750
750
768
773
773
787
789
792
810
815
815
834
837
839
854
857
859
872
877
877
893
898
898
911
913
916
934
939
939
958
963
963
981
983
1002
1007
1007
1025
1030
1030
1044
1046
1049
1067
1072
1072
1091
1094
1096
1111
1114
1116
1634
1634
1636
5
6
6
7
7
7
7
7
9
11
17
17
17
18
18
19
19
19
20
22
22
24
24
26
26
29
34
36
36
37
37
38
39
41
43
43
43
44
44
45
45
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
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
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
54
54
54
54
54
60
61
61
62
65
69
69
76
76
76
76
76
76
78
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
82
83
83
83
83
83
83
84
84
84
84
84
85
85
85
85
86
86
86
87
87
88
88
88
88
88
88
89
89
90
90
91
91
95
95
95
95
101
101
102
102
103
103
103
106
107
107
107
107
108
115
116
117
117
117
117
117
118
118
118
119
119
119
119
119
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
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
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
124
124
124
124
124
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
128
128
129
129
129
131
132
132
132
132
133
133
133
133
133
133
135
135
138
140
141
141
141
141
142
144
146
146
153
153
154
155
155
155
156
156
157
157
158
158
159
159
159
159
161
161
163
164
164
165
165
165
165
166
166
169
169
170
170
170
170
171
173
173
174
174
174
175
176
176
177
177
177
178
183
183
190
190
190
191
191
191
192
192
192
193
193
193
194
194
195
195
198
198
200
202
203
207
207
208
208
208
210
210
212
212
213
213
214
214
215
215
222
222
225
225
226
226
226
226
227
227
227
228
228
229
229
230
230
232
232
233
235
236
236
237
237
237
241
241
241
241
242
244
244
245
245
245
246
246
246
246
247
247
248
248
255
260
260
261
261
261
262
263
263
263
264
264
265
265
266
266
266
267
267
270
271
273
274
274
275
275
275
276
276
276
277
278
279
279
279
286
297
299
302
303
303
304
304
307
309
311
311
312
313
313
314
316
316
321
323
324
324
324
324
325
326
326
331
341
344
345
346
346
351
352
353
354
358
358
359
359
359
362
364
369
378
380
380
382
382
383
383
383
384
384
385
385
386
387
387
387
388
389
398
399
403
403
414
416
416
417
417
417
419
419
420
421
422
423
424
425
426
427
436
437
437
437
437
438
444
447
447
450
453
455
457
457
458
459
459
462
462
468
470
471
471
472
472
482
489
494
494
499
500
501
502
512
512
517
517
529
529
530
530
533
536
540
549
550
550
550
550
551
554
557
559
559
578
581
583
598
601
601
603
603
616
621
621
637
642
642
657
660
678
683
683
702
707
707
725
727
746
748
751
751
769
774
774
790
793
811
816
816
835
838
840
855
858
858
860
860
873
878
878
894
899
899
914
917
935
940
940
959
964
964
982
984
1003
1008
1008
1026
1031
1031
1047
1050
1068
1073
1073
1092
1095
1097
1112
1115
1115
1117
1117
1634
1635
1635
1637
4
4
4
4
6
6
7
7
8
8
10
10
10
10
11
15
15
17
17
17
17
19
20
20
20
21
23
23
25
25
28
28
29
36
38
38
38
39
39
40
40
42
45
46
46
46
46
46
46
46
46
46
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
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
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
57
58
61
62
62
63
66
70
70
76
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
79
79
79
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
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
83
83
83
83
83
84
84
84
85
85
85
85
85
86
87
87
87
88
88
89
89
89
89
90
90
91
91
92
92
96
96
96
96
101
103
103
103
103
104
104
107
108
108
108
116
117
117
118
118
118
118
118
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
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
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
124
124
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
126
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
129
129
129
129
132
133
133
133
133
133
133
133
133
134
134
134
134
134
140
141
141
141
141
141
142
142
142
142
142
145
147
147
154
154
154
154
155
156
156
156
157
157
157
157
162
164
165
165
166
166
167
167
170
170
170
171
171
171
171
171
171
172
173
174
175
175
175
175
176
176
177
177
177
178
178
181
182
182
182
184
184
185
189
191
191
191
191
191
191
192
192
192
193
193
193
194
196
196
199
203
204
208
208
209
209
209
209
210
210
212
213
213
214
214
222
226
226
226
226
226
227
227
227
227
227
228
228
228
231
231
233
233
233
234
236
236
236
237
237
238
238
238
242
242
242
242
243
243
243
245
245
245
245
246
246
246
246
247
247
248
249
251
256
261
261
262
262
262
262
262
263
263
263
264
264
264
267
267
267
271
272
274
275
276
276
277
277
278
279
280
280
280
286
298
300
303
305
305
308
310
313
314
314
314
317
317
322
325
325
326
327
327
331
332
334
334
342
342
342
345
346
347
347
349
350
352
353
354
355
360
360
360
363
365
369
379
381
381
384
385
385
386
386
387
388
388
389
390
399
399
404
404
415
418
418
418
420
422
423
424
425
426
427
427
438
438
439
444
445
447
447
448
448
451
454
455
455
456
459
460
460
463
463
469
471
473
473
482
490
495
495
500
502
503
512
513
518
518
531
531
534
537
540
551
551
552
555
557
558
560
560
560
560
579
582
584
599
604
604
617
622
622
638
643
658
661
679
684
684
703
708
708
726
728
747
749
752
752
770
775
775
791
794
812
817
817
836
839
841
856
861
861
874
879
879
895
900
915
918
936
941
941
960
965
965
983
985
1004
1009
1009
1027
1032
1032
1048
1051
1069
1074
1074
1093
1096
1098
1113
1118
1118
1636
1636
1638
4
5
6
6
7
7
7
7
9
9
10
11
11
11
11
17
17
17
17
17
18
18
20
21
22
22
22
22
22
24
24
26
26
26
26
28
29
36
36
38
38
39
39
40
41
43
43
43
43
43
43
43
43
43
45
45
45
46
46
46
46
46
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
49
49
49
49
49
49
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
53
54
54
54
54
54
54
58
59
61
62
63
64
67
71
71
77
77
77
77
78
78
78
78
78
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
85
85
85
85
85
86
86
86
86
87
88
91
91
92
92
93
93
97
97
97
97
101
103
104
104
105
105
109
109
117
118
118
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
121
121
121
121
121
122
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
123
123
123
123
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
125
126
129
129
129
129
130
130
133
134
134
134
135
135
135
135
135
140
142
142
143
143
143
145
145
148
148
153
153
155
156
157
157
157
163
165
166
167
167
168
168
170
170
171
171
171
172
172
172
172
172
173
173
173
174
176
176
177
177
177
177
177
178
178
178
178
179
181
181
181
182
183
183
183
189
190
191
191
191
191
192
192
193
193
194
194
195
195
195
195
195
197
197
198
198
200
204
205
209
209
209
210
210
210
210
210
210
211
212
212
213
213
214
214
215
215
222
224
226
226
226
226
226
227
227
227
227
227
228
228
229
229
230
230
230
230
232
232
233
234
237
237
237
238
238
239
239
239
242
242
243
243
243
243
243
244
244
245
246
246
247
247
248
248
248
248
249
249
249
250
252
257
260
262
262
262
262
262
262
263
264
265
265
265
266
266
266
266
268
268
268
272
273
275
276
276
277
277
278
279
280
281
281
281
299
301
301
304
306
306
309
311
314
315
315
318
318
323
324
324
326
326
328
328
331
335
335
340
343
343
343
348
348
348
350
351
353
353
354
354
355
355
356
356
356
361
361
361
364
366
380
382
382
385
386
386
387
387
387
388
389
389
390
400
405
405
414
416
419
419
419
421
423
424
425
425
425
426
427
428
437
437
439
439
444
448
448
449
449
452
453
455
456
456
457
460
461
461
461
464
464
465
469
470
472
474
474
491
496
496
500
501
503
514
519
527
532
532
535
538
550
550
552
552
556
557
561
561
561
561
580
583
585
600
605
605
618
623
623
639
644
659
662
680
685
685
704
709
709
720
727
729
748
749
749
753
753
771
776
792
795
813
818
818
837
840
842
857
862
862
875
880
880
896
901
916
919
937
942
942
961
966
966
977
984
986
1005
1010
1010
1028
1033
1049
1052
1070
1075
1075
1094
1097
1099
1114
1119
1119
1637
1637
1639
7
7
8
8
10
10
10
10
10
11
11
11
11
12
12
15
18
19
19
21
23
23
23
25
25
27
27
28
28
28
29
29
29
29
38
38
38
38
39
39
40
41
42
44
45
46
46
46
46
46
46
46
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
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
54
59
60
62
62
63
63
64
65
68
72
72
75
75
75
76
77
78
79
79
79
79
79
80
80
80
80
80
80
81
81
81
81
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
84
84
84
84
84
86
87
87
87
88
89
92
92
93
93
94
94
98
98
98
98
103
103
104
104
104
105
105
110
110
115
115
115
117
118
118
119
119
119
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
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
123
123
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
125
125
125
126
126
126
126
126
126
126
126
127
127
129
130
130
130
130
131
131
134
135
135
135
136
136
136
136
142
143
144
149
149
154
154
155
156
157
158
158
159
159
159
159
159
159
164
167
168
168
169
169
169
170
171
171
172
172
172
173
173
173
173
174
174
175
177
178
178
178
179
179
179
180
183
184
184
184
189
191
191
193
193
193
194
195
195
196
196
196
196
196
198
198
198
198
199
199
205
206
209
210
210
210
210
210
210
211
211
211
211
212
212
212
213
213
213
213
213
214
214
216
216
224
226
228
228
228
229
229
230
230
231
231
231
231
233
233
234
235
236
238
238
238
238
239
239
240
240
240
243
243
244
244
244
244
245
245
248
248
249
249
249
250
250
250
251
253
253
258
260
261
262
263
263
264
265
265
266
266
266
267
267
267
267
269
269
273
274
276
276
277
277
277
277
278
279
280
281
282
282
282
286
286
293
302
302
305
307
310
312
315
316
316
319
319
324
325
329
329
332
334
336
336
336
341
341
344
349
349
349
351
352
356
356
357
357
357
362
362
365
367
381
383
383
386
387
387
387
388
388
388
390
390
390
390
391
399
399
401
406
406
406
415
417
420
420
422
424
425
426
426
427
428
429
438
445
447
449
449
449
450
453
454
454
456
458
461
462
462
462
465
465
466
468
470
471
473
475
492
497
497
500
501
503
503
504
512
512
515
519
520
528
530
533
534
536
539
551
557
558
560
562
562
562
562
562
581
584
586
601
606
606
619
624
624
640
642
642
645
654
658
660
663
681
686
686
705
710
721
725
728
730
749
749
750
750
754
754
772
777
787
791
793
796
814
819
819
838
841
843
858
863
863
876
881
881
897
899
899
902
911
915
917
920
938
943
943
962
967
978
982
985
987
1006
1011
1011
1029
1034
1044
1048
1050
1053
1071
1076
1076
1095
1098
1100
1115
1120
1120
1638
1638
1640
6
7
7
8
9
9
11
12
12
13
13
19
19
20
22
24
24
24
24
24
24
24
26
26
26
26
27
27
28
28
29
30
30
36
36
38
38
38
38
38
39
39
40
41
42
43
43
43
43
44
45
45
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
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
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
52
52
53
53
53
54
63
64
65
66
69
71
71
73
73
74
74
76
76
76
76
76
76
77
77
78
78
79
79
79
79
79
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
82
82
82
82
82
83
83
83
83
83
84
84
84
84
84
87
88
88
89
89
89
89
89
89
89
90
93
93
94
94
95
95
99
99
99
99
104
104
105
105
105
105
105
105
106
106
106
106
111
111
115
116
116
116
117
118
119
119
119
119
119
119
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
124
124
124
124
124
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
125
125
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
130
130
131
131
131
131
131
132
132
132
136
136
137
137
141
142
142
143
145
150
150
153
155
155
156
156
157
157
159
159
160
160
160
160
161
161
165
168
169
169
170
170
170
172
172
173
173
173
174
174
174
174
174
175
175
179
179
180
180
182
184
185
185
190
191
192
192
194
195
197
197
197
197
197
200
200
206
207
211
211
211
211
212
212
212
212
212
212
212
213
213
213
213
213
214
214
214
214
214
214
214
215
215
217
217
225
226
227
227
227
229
229
230
232
232
232
232
236
236
237
239
240
240
241
241
241
243
243
244
244
245
245
245
245
246
250
250
251
251
254
254
254
254
259
261
261
262
263
264
264
266
266
267
268
268
268
268
275
275
276
277
278
278
278
279
280
281
282
283
283
283
284
287
287
294
302
302
303
306
306
306
308
311
311
313
313
315
315
316
317
317
320
320
324
325
326
330
330
334
335
345
350
350
350
350
352
353
357
357
357
357
358
358
361
361
363
363
366
368
368
378
382
382
384
384
386
386
387
388
388
389
389
391
391
391
391
392
397
400
400
402
407
407
407
415
415
419
419
419
420
421
421
423
425
426
426
427
427
428
429
430
437
439
447
448
449
451
452
454
457
457
459
461
461
462
463
463
463
463
466
466
469
470
470
472
474
474
474
476
481
491
493
498
498
504
504
505
510
513
513
516
518
518
520
521
528
528
532
532
534
535
537
539
540
550
552
558
560
561
563
563
582
585
587
602
607
607
620
625
625
641
643
646
659
661
664
682
687
687
706
709
709
711
726
729
731
750
750
750
751
755
755
773
775
775
778
792
794
797
815
820
820
839
842
844
859
864
864
877
882
882
898
900
903
916
918
921
939
944
944
963
966
966
968
983
986
988
1007
1012
1012
1030
1032
1032
1035
1049
1051
1054
1072
1077
1077
1096
1099
1101
1116
1121
1121
1639
1639
1641
4
7
7
10
13
13
14
14
15
15
20
21
21
23
25
25
25
27
28
28
29
29
31
31
38
38
38
38
38
39
39
39
39
40
41
42
44
44
45
46
46
46
46
46
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
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
51
51
51
51
52
52
52
52
52
52
52
53
53
53
54
54
64
64
65
65
66
67
70
72
72
74
75
75
75
75
79
79
79
79
80
80
80
80
80
81
81
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
84
84
89
89
90
90
90
90
90
91
92
92
94
94
95
95
96
96
100
100
100
100
106
106
106
106
107
107
107
107
107
112
112
115
116
117
117
117
117
117
117
117
118
119
119
119
119
119
120
120
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
122
122
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
124
124
124
125
125
125
125
125
125
125
127
127
127
127
127
127
127
127
127
127
127
127
128
129
129
129
130
132
132
132
133
133
133
135
137
137
138
138
142
142
142
142
143
143
143
143
146
151
151
153
158
158
158
158
162
162
163
163
163
166
169
170
170
170
171
171
171
173
174
174
174
175
175
175
175
175
175
175
176
176
177
183
183
190
190
193
193
193
193
194
194
195
195
195
195
195
196
196
198
201
201
207
208
212
212
213
213
213
213
213
213
213
214
214
214
215
215
215
215
215
216
216
218
218
221
225
225
228
228
229
229
230
230
230
230
231
233
237
237
237
238
238
240
241
241
242
242
242
243
244
245
245
246
246
246
246
246
246
246
247
248
248
252
254
254
255
255
260
261
261
264
265
265
265
265
265
266
266
266
266
267
267
268
276
276
277
278
278
279
279
279
279
281
282
283
284
284
284
285
285
295
295
304
307
307
307
309
314
314
314
314
314
316
316
317
318
318
321
321
324
324
325
326
331
331
335
335
336
336
343
346
351
351
351
351
351
351
353
354
358
358
359
359
362
362
364
364
367
369
369
369
369
369
379
379
379
385
385
387
387
388
389
389
390
390
392
392
392
392
398
398
403
408
408
408
408
420
420
420
421
422
422
424
424
425
426
427
427
427
427
427
428
428
429
430
431
437
437
438
448
448
449
449
452
453
455
456
460
462
462
463
464
464
464
464
464
464
467
467
470
473
475
475
475
477
482
482
482
482
492
492
492
494
499
499
505
505
511
511
517
519
521
521
522
533
533
535
536
538
540
540
540
540
541
550
550
551
559
561
561
562
562
564
564
586
588
603
608
608
621
626
626
642
644
647
660
662
665
683
688
688
707
710
712
727
730
732
750
750
751
751
752
756
756
774
776
779
793
795
798
816
821
821
843
845
860
865
865
878
883
883
899
901
904
917
919
922
940
945
945
964
967
969
984
987
989
1008
1013
1013
1031
1033
1036
1050
1052
1055
1073
1078
1078
1100
1102
1117
1122
1122
1640
1640
1642
7
8
8
9
11
13
15
15
15
20
20
20
20
21
22
24
25
25
26
26
26
26
28
29
29
29
29
30
30
31
36
39
40
40
40
40
41
42
43
43
43
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
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
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
52
52
54
54
54
65
66
66
67
67
68
71
73
73
75
76
76
76
76
76
76
78
78
78
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
81
81
81
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
84
84
84
84
84
91
92
93
93
95
96
96
97
97
101
101
101
101
101
101
107
107
108
108
108
113
113
116
117
117
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
118
118
119
119
119
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
122
122
122
122
122
123
123
123
123
123
123
123
123
124
124
124
124
124
124
124
124
126
127
127
128
129
130
131
133
133
133
134
134
134
136
136
138
138
139
139
143
143
144
144
145
147
152
152
153
154
158
158
158
164
164
164
164
167
170
170
171
171
171
172
172
172
172
173
173
174
175
175
176
176
176
176
176
176
176
177
177
177
177
178
178
191
191
191
191
191
194
194
194
194
195
195
195
195
196
196
196
196
196
196
197
197
199
199
202
208
209
213
213
213
214
214
214
214
214
214
214
214
214
215
215
215
216
216
217
217
219
219
222
222
222
222
226
226
226
226
227
229
229
230
230
230
230
231
231
231
231
232
234
238
238
239
239
241
242
242
243
243
243
245
246
246
246
246
247
247
247
247
247
247
247
248
248
249
249
249
255
256
256
261
262
262
262
262
265
266
266
266
266
266
266
266
267
267
267
267
268
268
277
277
279
279
280
280
282
282
283
283
284
284
285
285
285
285
296
296
296
296
299
303
305
306
308
308
308
315
315
315
317
317
318
319
319
319
319
322
322
322
322
323
324
325
326
327
332
332
337
337
343
347
349
351
351
352
352
352
352
354
355
359
359
360
360
361
363
363
365
368
370
370
370
380
380
386
386
388
388
389
390
390
390
390
390
391
391
393
393
393
393
404
409
409
409
409
409
409
419
421
421
423
425
425
426
427
428
428
428
428
429
429
429
430
430
431
431
432
436
437
438
439
450
450
453
454
456
456
461
462
463
463
464
464
464
465
465
465
465
465
465
468
468
468
468
471
474
474
476
476
476
483
483
493
493
495
500
500
503
518
520
522
522
522
522
523
532
534
534
537
539
541
541
542
549
550
551
552
560
563
563
565
565
587
589
604
609
609
622
627
627
643
645
648
661
663
666
684
689
689
708
711
713
728
731
733
751
752
752
757
757
775
777
780
794
796
799
817
822
822
844
846
861
866
866
879
884
884
900
902
905
918
920
923
941
946
946
965
968
970
985
988
990
1009
1014
1014
1032
1034
1037
1051
1053
1056
1074
1079
1079
1101
1103
1118
1123
1123
1641
1641
1643
7
7
7
9
12
13
13
15
16
16
19
19
19
21
22
22
23
23
25
26
26
26
26
27
27
29
30
30
30
30
31
31
31
31
40
40
40
41
41
42
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
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
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
51
51
51
51
51
51
51
52
52
53
54
67
68
68
69
72
74
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
78
78
78
78
79
79
79
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
82
82
83
83
83
83
83
83
84
84
84
84
84
84
88
88
88
92
93
94
94
96
97
97
98
98
102
102
102
102
102
102
103
103
103
107
108
109
113
113
114
114
115
115
115
116
116
116
117
117
117
118
118
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
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
123
123
124
124
124
124
125
125
127
127
127
127
129
129
130
131
132
134
134
134
135
135
135
136
139
139
140
140
141
141
143
144
145
148
153
153
154
155
156
158
159
159
160
160
160
160
160
160
165
165
168
171
172
172
173
173
173
174
174
175
176
176
177
177
177
177
177
177
177
177
177
177
177
178
178
178
178
178
179
185
191
191
192
192
195
195
195
195
195
196
196
196
196
197
197
197
197
197
197
200
200
201
201
203
209
210
213
213
213
214
214
214
214
214
214
214
215
215
215
215
215
215
215
216
216
216
220
220
223
223
226
226
227
227
228
230
230
230
230
231
231
231
231
232
232
232
232
237
238
238
238
239
239
240
240
242
243
243
244
244
244
245
246
246
247
247
247
248
248
248
248
248
248
248
248
248
249
249
249
249
250
254
254
256
262
262
262
266
266
266
266
266
266
267
267
267
267
267
267
268
268
268
268
268
268
268
269
273
276
278
280
280
281
281
285
285
286
286
286
286
287
294
296
296
297
297
304
306
306
309
310
314
315
316
318
318
319
323
323
323
323
324
326
327
328
333
333
335
336
336
336
338
338
348
352
353
353
353
353
355
356
360
360
361
361
361
369
370
371
379
380
380
380
380
381
381
385
387
387
387
389
389
390
392
392
394
394
394
394
400
405
407
409
409
410
410
410
410
417
419
424
426
426
427
428
428
430
431
431
432
432
433
437
439
440
448
449
449
449
451
451
454
455
456
457
460
462
464
464
465
465
466
466
469
469
469
469
472
474
475
475
477
477
483
492
493
493
493
493
494
496
500
501
501
513
519
520
521
522
522
523
523
524
532
538
540
541
543
550
552
553
561
561
562
562
562
564
564
566
566
588
590
605
610
610
623
628
628
644
646
649
662
664
667
685
690
690
709
712
714
729
732
732
734
734
750
750
752
753
758
758
776
778
781
795
797
800
818
823
823
845
847
862
867
867
880
885
885
901
903
906
919
921
924
942
947
947
966
969
971
986
989
989
991
991
1010
1015
1015
1033
1035
1038
1052
1054
1057
1075
1080
1080
1102
1104
1119
1124
1124
1642
1642
1644
1
1
7
7
8
8
9
13
13
14
17
17
19
20
22
22
22
22
22
26
26
26
27
27
27
28
28
30
31
31
31
32
32
32
36
36
41
42
43
43
43
43
43
43
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
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
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
53
53
53
53
53
53
53
53
59
60
64
65
68
69
69
70
73
75
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
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
81
82
82
82
88
89
89
90
90
90
90
90
90
93
94
95
97
98
98
99
99
103
103
103
103
104
104
104
104
107
107
107
108
108
108
110
113
113
114
114
115
115
116
116
116
116
116
117
117
117
117
117
117
117
117
117
118
118
118
118
119
119
119
119
120
120
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
121
121
122
122
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
123
125
125
125
125
125
125
125
125
127
127
128
130
131
132
133
135
135
135
136
136
136
140
140
141
141
142
142
142
142
143
143
143
144
144
144
149
153
154
154
155
156
157
157
158
158
160
160
161
161
161
161
165
169
172
173
173
174
174
174
174
175
175
177
177
178
178
178
178
178
178
178
179
179
179
179
179
179
180
180
185
194
194
196
196
196
196
196
197
197
198
198
198
198
198
198
201
201
202
202
204
210
211
214
215
215
215
216
216
216
216
216
216
216
217
217
217
221
221
223
226
227
228
229
229
229
231
231
231
231
232
232
233
233
233
233
233
233
237
237
237
238
239
239
239
240
240
243
243
244
244
245
245
245
248
249
249
249
249
249
249
249
249
249
250
250
250
250
250
250
251
251
255
263
265
265
267
267
267
267
268
268
268
268
269
269
269
269
269
269
269
269
270
274
276
276
277
277
277
279
281
281
282
282
286
286
287
287
287
287
287
297
298
298
302
305
306
307
307
310
315
315
317
319
319
320
324
324
324
324
324
325
327
329
334
334
335
335
335
336
337
337
337
343
343
349
351
351
353
354
354
356
357
357
361
361
361
362
362
362
370
370
372
381
381
382
386
387
388
388
388
390
390
390
390
391
393
393
395
395
395
395
400
406
410
411
411
411
411
415
418
419
420
422
425
427
427
428
428
429
431
432
432
433
433
434
437
438
440
448
448
448
449
450
450
450
455
456
456
456
458
461
463
464
464
465
465
466
466
470
470
470
470
470
473
474
475
478
478
483
494
494
495
497
500
501
502
502
503
503
513
520
522
523
524
524
525
528
532
533
539
541
541
541
544
544
550
551
553
561
561
561
562
562
563
563
563
567
567
582
589
591
606
611
611
624
629
629
645
647
650
663
665
665
668
668
686
691
691
710
713
715
730
735
735
751
754
759
759
777
779
782
796
798
798
801
801
819
824
824
839
846
848
863
868
868
881
886
886
902
904
907
920
922
922
925
925
943
948
948
967
970
972
987
992
992
1011
1016
1016
1034
1036
1039
1053
1055
1055
1058
1058
1076
1081
1081
1096
1103
1105
1120
1125
1125
1643
1643
1645
1
1
1
1
5
5
5
7
7
9
13
13
14
14
15
15
15
15
18
18
19
19
19
22
23
24
28
28
29
29
31
31
31
32
32
32
33
33
33
33
33
33
36
41
41
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
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
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
50
50
50
50
50
50
50
51
51
51
52
52
52
52
52
52
52
52
52
52
52
54
54
54
54
54
54
54
54
65
66
70
71
75
75
75
76
76
76
77
77
78
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
81
81
81
81
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
90
90
91
91
91
91
94
95
96
98
99
99
100
100
104
104
104
104
105
105
108
108
109
109
111
113
113
113
113
113
113
113
114
114
114
115
115
115
115
115
116
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
119
119
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
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
123
126
126
126
126
126
126
126
126
126
126
126
126
129
131
132
133
134
136
136
136
136
136
136
137
137
137
141
142
142
142
143
143
144
144
145
145
145
150
154
155
155
156
156
159
159
159
159
165
170
173
173
174
174
174
175
175
175
175
175
178
179
179
179
179
179
180
180
180
180
180
181
181
190
190
194
194
195
195
196
196
197
198
198
198
198
198
198
199
199
199
199
201
202
202
203
203
211
212
214
215
216
216
217
217
217
217
217
218
218
222
222
223
225
225
227
229
229
230
230
230
231
231
233
233
233
233
233
233
234
234
234
234
239
240
240
240
241
241
243
244
244
245
245
246
246
246
246
249
250
250
250
250
250
250
250
251
251
251
251
251
252
252
254
254
256
261
261
264
265
266
266
266
267
267
268
269
269
269
269
269
269
269
269
270
270
270
270
270
270
276
277
278
278
280
280
282
282
282
283
283
287
287
288
288
288
288
296
296
298
302
306
307
308
308
311
316
318
318
320
320
321
321
324
325
325
325
325
325
327
327
328
330
335
335
337
338
338
338
341
344
344
350
352
355
355
357
357
358
362
362
362
363
363
363
371
373
380
380
382
382
387
387
389
389
389
391
391
391
391
392
392
394
394
396
396
396
396
407
409
409
411
412
412
415
420
421
423
426
426
428
428
428
429
430
432
433
433
434
434
435
437
438
440
440
441
450
451
451
451
454
456
457
457
457
459
462
464
464
465
466
466
467
467
470
471
471
471
471
474
475
476
479
479
493
493
495
495
498
500
503
503
504
504
521
522
522
523
524
526
528
533
534
540
545
545
550
551
553
553
554
563
563
564
564
564
568
568
583
587
590
592
607
612
612
625
630
630
646
648
651
664
669
669
687
692
692
711
714
716
731
736
736
750
752
755
760
760
778
780
783
797
802
802
820
825
825
840
844
847
849
864
869
869
882
887
887
903
905
908
921
926
926
944
949
949
968
971
973
988
993
993
1012
1017
1017
1035
1037
1040
1054
1059
1059
1077
1082
1082
1097
1101
1104
1106
1121
1126
1126
1644
1644
1646
4
4
5
5
6
6
6
7
8
8
9
13
13
13
15
15
15
19
19
23
24
24
25
26
27
27
28
29
29
30
30
30
31
31
31
32
32
32
32
33
33
33
33
34
34
40
40
42
43
43
43
43
43
43
44
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
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
53
53
55
55
66
67
68
68
69
69
71
71
72
74
74
75
76
76
76
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
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
82
82
82
83
83
83
83
84
84
84
84
84
84
96
97
99
100
100
101
101
105
105
105
105
105
106
107
108
108
108
108
109
109
109
109
109
110
112
113
113
113
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
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
119
119
119
120
120
120
120
120
120
120
121
121
121
121
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
124
124
124
124
124
126
126
126
126
127
127
127
127
127
127
130
130
132
133
134
135
137
137
137
137
137
138
138
138
140
140
141
141
142
142
143
143
143
144
144
144
144
144
144
145
145
145
145
145
146
151
153
155
156
156
159
159
159
170
171
174
174
175
175
175
175
175
175
176
176
176
176
177
177
177
177
178
179
179
179
179
179
180
180
180
180
180
181
181
182
182
185
185
190
194
194
194
195
196
196
196
196
198
198
198
199
199
200
200
200
200
201
203
203
212
213
215
215
215
215
216
216
216
216
217
218
218
223
223
225
227
228
229
229
230
230
231
231
231
231
233
233
234
234
235
235
235
235
238
240
241
241
242
242
243
244
245
245
246
246
246
246
246
247
247
247
247
247
249
249
250
250
250
250
251
251
251
251
251
251
251
252
252
253
253
254
254
255
255
261
265
265
265
266
267
267
267
267
269
269
269
270
270
270
270
271
271
271
271
277
277
278
279
279
279
283
283
283
284
284
287
287
288
288
289
289
289
289
297
306
307
308
309
309
312
317
321
321
322
322
326
326
326
326
328
328
329
331
336
336
336
338
339
339
342
342
351
351
351
353
356
356
358
359
361
363
363
363
364
364
364
365
372
374
381
388
388
390
390
392
392
392
392
392
393
393
395
395
397
397
397
397
400
400
408
410
413
413
419
421
422
424
429
429
429
430
433
434
434
435
435
436
441
441
442
449
451
452
452
455
455
457
458
460
463
464
464
466
467
467
468
468
472
472
472
472
474
475
476
477
480
480
494
499
501
503
504
504
505
505
505
513
513
522
523
524
527
532
534
535
541
546
546
554
554
555
562
564
564
565
565
569
569
588
591
593
608
613
613
626
631
631
647
649
652
665
670
670
688
693
693
712
715
717
732
737
737
750
751
756
761
761
779
781
784
798
803
803
821
826
826
845
848
850
865
870
870
883
888
888
904
906
909
922
927
927
945
950
950
969
972
974
989
994
994
1013
1018
1018
1036
1038
1041
1055
1060
1060
1078
1083
1083
1102
1105
1107
1122
1127
1127
1645
1647
5
7
7
7
7
7
7
8
9
13
16
20
20
22
24
25
25
26
29
30
31
31
31
31
33
33
33
33
35
35
36
40
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
45
45
45
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
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
51
52
52
52
53
53
53
54
56
56
69
70
72
72
73
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
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
80
80
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
82
82
84
84
89
89
89
97
98
98
100
100
101
101
102
102
105
105
105
106
106
106
106
107
108
109
109
110
110
110
111
111
113
114
114
114
115
115
115
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
118
118
118
118
118
118
118
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
122
122
122
122
122
122
122
122
122
122
123
123
123
123
123
123
123
123
123
123
123
123
123
124
124
124
125
125
125
126
126
126
126
126
126
127
127
128
128
128
128
128
128
131
131
131
133
134
135
138
138
138
139
139
139
141
142
142
142
143
143
144
144
144
145
145
146
146
146
147
152
154
154
156
156
157
157
157
159
160
160
161
161
170
171
172
173
173
175
175
176
176
176
176
176
176
177
177
177
177
178
178
178
178
178
179
179
179
179
180
180
180
180
180
181
181
181
181
181
183
186
186
195
195
196
196
196
196
196
197
197
197
197
199
199
199
200
200
201
202
204
204
213
213
214
216
217
218
219
219
224
224
227
228
230
230
230
230
231
231
231
231
231
231
232
232
232
234
234
235
235
239
239
243
243
246
247
247
247
247
247
247
248
248
248
248
248
248
249
249
249
250
250
250
250
251
251
251
251
252
252
252
252
252
252
252
256
256
266
266
266
266
267
267
267
267
267
268
268
268
270
270
270
271
271
271
271
277
278
279
284
284
284
285
285
285
288
288
289
289
290
290
290
290
296
296
298
302
307
308
309
309
310
310
313
313
318
322
322
323
323
327
327
327
327
329
329
332
337
337
337
337
351
351
352
352
352
357
357
357
359
360
362
364
364
364
364
365
365
366
369
370
373
375
380
382
389
390
391
391
393
393
394
394
396
396
398
398
398
398
398
401
401
409
409
409
411
414
414
415
420
422
422
425
430
430
430
430
431
434
434
435
435
436
436
437
442
442
450
450
458
459
461
464
464
464
465
465
468
468
469
469
470
473
473
473
473
475
476
477
477
481
481
482
493
495
500
503
504
505
505
511
514
514
522
522
523
524
525
528
528
533
535
535
542
547
547
555
555
563
563
565
570
570
589
592
594
609
614
614
627
632
632
650
653
666
671
671
689
694
694
713
716
718
733
738
738
752
757
762
762
780
782
785
799
804
804
822
827
827
846
849
851
866
871
871
884
889
889
907
910
923
928
928
946
951
951
970
973
975
990
995
995
1014
1019
1019
1037
1039
1042
1056
1061
1061
1079
1084
1084
1103
1106
1108
1123
1128
1128
1646
1648
4
6
8
8
8
8
8
8
8
9
9
9
9
13
14
15
15
17
19
21
21
22
22
26
30
31
31
32
32
32
32
33
33
34
34
34
34
36
36
40
40
40
41
43
43
43
44
45
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
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
49
49
49
49
49
49
49
49
49
49
50
51
51
51
52
52
53
53
53
53
54
54
57
57
70
71
73
73
73
74
74
77
77
77
77
77
77
77
77
77
77
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
80
80
80
80
80
80
81
81
81
81
81
81
82
82
82
82
89
90
90
91
91
92
96
98
99
99
101
101
102
102
103
103
106
106
107
107
107
107
108
108
108
109
109
109
110
110
111
111
112
113
113
113
114
115
115
115
115
115
115
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
118
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
120
120
120
120
120
120
120
120
120
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
124
124
125
125
125
125
125
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
128
128
131
134
135
139
139
140
140
140
142
143
143
144
144
144
144
145
145
145
145
146
146
147
147
153
154
156
157
157
158
158
158
158
161
161
161
161
161
161
170
173
174
174
176
177
177
177
177
177
178
178
178
178
179
179
180
181
181
181
181
181
182
182
182
182
182
184
184
195
197
197
197
197
197
197
197
197
198
198
198
198
198
198
198
198
200
200
200
202
203
205
205
214
214
214
214
214
215
217
217
217
217
218
218
218
218
219
220
220
225
225
230
231
231
232
232
232
232
232
232
232
232
233
233
233
233
233
233
233
233
235
235
244
244
248
248
248
248
248
249
249
249
249
249
249
249
249
251
252
252
252
252
252
253
253
253
253
253
257
257
266
266
267
267
268
268
268
268
268
268
268
268
269
269
269
269
269
269
269
269
271
271
272
272
278
278
279
279
280
285
285
285
286
286
286
286
290
290
291
291
291
291
296
296
297
297
306
308
309
314
314
319
323
323
324
324
327
328
328
328
328
333
338
338
344
353
353
353
358
358
360
361
361
363
365
365
366
366
370
370
370
370
371
374
376
380
380
381
390
391
391
392
392
392
394
394
395
395
397
397
399
399
399
399
399
399
409
409
410
410
410
415
415
419
421
426
431
431
431
432
435
435
436
436
437
437
438
440
457
460
462
465
466
466
469
469
470
470
474
474
474
474
474
476
477
482
482
483
483
483
483
493
493
494
501
504
504
505
505
506
506
512
512
522
522
523
523
526
529
532
534
543
548
548
553
566
571
590
593
595
610
615
615
628
633
633
651
654
667
672
672
690
695
695
717
719
734
739
739
753
758
763
763
783
786
800
805
805
823
828
847
850
852
867
872
872
885
890
890
908
911
924
929
929
947
952
952
974
976
991
996
996
1015
1020
1020
1040
1043
1057
1062
1062
1080
1085
1104
1107
1109
1124
1129
1129
1647
1649
1
5
7
7
7
9
9
9
10
10
13
15
15
16
16
18
20
20
22
22
24
24
25
26
31
31
31
32
32
32
33
33
33
34
34
34
34
35
35
37
37
37
37
37
37
43
43
43
43
43
43
44
45
45
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
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
49
49
49
49
49
49
49
49
50
50
50
51
51
54
54
54
54
58
58
70
71
74
74
75
75
75
75
75
76
76
77
77
77
77
77
77
78
78
78
78
78
78
79
79
79
79
79
79
79
80
80
80
80
81
81
81
81
82
82
82
83
83
83
91
91
91
91
91
91
93
97
99
100
100
102
102
103
103
104
104
104
106
106
106
106
107
107
107
108
108
108
108
108
109
109
109
110
110
113
113
113
114
114
114
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
117
117
117
117
117
117
117
117
118
118
118
118
118
118
118
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
121
121
121
121
121
121
121
121
122
122
122
122
122
122
122
123
123
123
124
124
124
125
125
125
125
126
126
127
127
127
127
128
128
128
128
128
135
136
137
138
138
140
140
141
141
141
142
142
143
143
143
144
144
144
144
144
145
145
145
145
146
146
146
154
154
156
157
158
158
159
159
159
159
162
162
162
162
162
162
162
162
171
173
174
175
175
175
176
176
176
177
177
177
177
178
178
179
179
179
179
179
180
180
180
181
182
182
182
182
183
183
183
183
195
197
198
199
199
199
199
199
199
199
199
199
199
201
201
203
204
206
206
215
215
215
215
216
216
217
218
218
218
218
219
219
219
220
221
221
226
230
232
232
232
233
234
234
234
234
234
234
234
234
234
234
241
245
245
247
247
248
248
248
249
249
250
250
250
250
250
250
250
250
250
251
252
253
253
253
253
254
254
254
254
258
266
267
268
268
268
268
269
269
270
270
270
270
270
270
270
270
270
270
273
273
280
280
281
286
286
286
287
287
291
291
292
292
292
298
298
307
307
309
309
310
314
315
315
320
324
324
324
325
325
329
329
329
329
334
339
339
339
344
349
354
354
354
359
361
362
362
362
364
364
366
366
367
367
371
371
372
375
377
379
380
381
382
391
393
393
393
395
395
396
396
398
398
400
400
400
400
411
411
411
416
416
420
420
422
422
427
427
432
432
432
433
436
436
437
437
437
438
438
439
452
457
461
462
463
466
467
467
470
470
471
471
475
475
475
475
475
475
477
477
478
483
483
484
484
492
493
494
495
502
506
506
507
507
524
524
527
530
533
533
535
535
540
544
549
549
550
565
567
570
570
572
591
594
594
596
596
611
616
616
629
634
634
652
655
668
673
673
691
696
696
718
720
735
740
740
750
759
764
764
784
787
801
806
806
824
827
827
829
848
851
851
853
853
868
873
873
886
891
891
909
912
925
930
930
948
953
953
975
977
992
997
997
1016
1021
1021
1041
1044
1058
1063
1063
1081
1084
1084
1086
1105
1108
1108
1110
1110
1125
1130
1130
1643
1648
1650
4
4
5
5
10
10
11
11
15
17
17
19
21
21
22
22
23
25
32
32
33
34
34
34
35
35
35
35
36
36
37
37
37
37
38
38
38
38
43
43
43
43
43
43
43
45
45
45
45
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
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
49
49
49
49
49
49
50
50
50
51
51
55
59
59
73
73
74
74
75
75
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
79
79
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
81
81
81
81
83
83
83
84
84
92
92
92
92
92
92
92
92
94
98
100
103
103
104
104
105
105
105
107
107
108
108
108
109
109
109
109
110
110
111
111
113
114
114
114
114
115
115
115
115
115
115
115
115
115
116
116
116
116
116
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
118
118
118
118
118
118
118
118
118
118
118
119
119
119
119
120
120
120
120
120
120
120
120
120
120
120
120
120
121
121
121
122
122
122
123
123
123
123
124
124
125
125
125
126
126
126
126
126
127
127
128
128
128
129
129
129
129
129
129
136
137
137
139
141
141
142
142
142
142
142
143
143
144
144
144
145
145
145
146
146
146
147
147
147
155
157
158
160
160
160
160
160
162
162
162
162
163
163
163
163
164
173
174
175
176
176
176
177
177
178
178
178
179
179
180
180
180
180
181
181
181
181
183
184
184
186
192
195
195
197
198
199
200
200
200
200
202
202
204
204
207
207
215
216
216
216
217
217
217
219
220
221
222
222
222
225
225
227
230
230
230
233
234
235
235
235
235
241
246
246
247
247
247
248
248
248
249
249
249
250
250
251
251
251
251
251
251
252
252
252
252
252
252
253
253
255
255
257
257
257
259
266
266
269
269
269
269
270
270
271
271
271
271
274
274
278
279
279
279
281
281
282
287
287
287
288
288
288
292
292
293
293
293
294
299
299
307
309
310
310
311
315
315
315
316
316
321
324
325
325
325
326
326
327
327
330
330
330
330
335
339
340
340
350
355
355
358
358
360
362
362
363
364
365
365
367
367
368
368
371
373
376
378
380
382
383
391
392
392
392
392
394
394
394
396
396
397
397
399
399
401
401
401
401
401
407
412
412
412
417
417
420
422
423
423
428
428
428
428
433
433
433
434
437
437
437
438
438
438
439
439
440
440
440
452
462
463
464
467
468
471
471
472
472
475
476
476
476
476
477
478
478
479
484
484
484
493
495
496
503
504
505
505
505
507
507
508
508
514
520
525
525
528
531
533
535
536
536
541
541
541
545
550
550
550
551
553
553
565
568
571
573
592
597
597
612
617
617
630
635
635
647
651
653
656
669
674
674
692
697
697
719
721
736
741
741
749
750
751
760
765
765
785
788
802
807
807
825
828
830
849
854
854
869
874
874
887
892
892
904
908
910
913
926
931
931
949
954
954
976
978
993
998
998
1017
1022
1022
1042
1045
1059
1064
1064
1082
1085
1087
1106
1111
1111
1126
1131
1131
1644
1646
1649
1651
5
5
5
7
7
11
11
11
15
15
17
20
22
22
24
24
24
25
33
33
33
33
34
34
35
35
36
36
36
36
37
37
38
38
38
38
39
39
39
39
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
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
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
49
49
49
50
50
50
53
53
53
56
60
60
73
73
74
74
74
74
74
74
75
75
75
75
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
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
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
81
84
84
85
85
90
92
92
92
92
93
93
93
93
99
101
104
104
105
105
106
106
106
106
106
107
107
107
107
108
108
108
108
109
109
109
109
110
110
110
110
111
112
112
112
112
114
114
114
115
115
116
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
119
119
119
119
119
119
119
119
119
119
119
119
119
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
121
121
121
121
122
123
123
123
123
123
123
125
125
125
125
125
125
126
126
126
126
127
127
127
130
130
135
137
138
140
142
143
143
144
144
144
144
145
145
145
145
145
146
146
146
147
147
148
148
156
158
160
160
160
161
161
162
162
163
163
164
164
164
164
165
165
165
174
174
175
175
176
178
178
179
179
179
181
181
182
182
184
185
185
186
193
196
196
197
197
197
199
200
200
201
203
203
208
208
215
220
221
222
223
223
223
223
223
226
227
228
231
231
232
232
232
234
235
235
247
247
249
250
250
250
251
251
252
252
252
253
253
256
256
257
258
258
260
267
267
268
268
268
269
270
270
270
270
271
271
275
275
278
278
278
279
280
280
280
283
288
288
288
288
289
289
291
291
293
293
294
294
294
295
300
307
309
310
311
311
312
316
316
317
317
322
324
326
326
327
327
328
328
331
331
331
331
336
341
341
350
350
354
354
356
356
359
361
362
363
364
364
365
366
366
368
368
369
369
371
374
377
377
379
379
380
381
383
391
391
391
392
393
393
393
393
395
397
397
398
398
400
400
401
402
402
402
402
408
413
413
418
418
420
422
423
424
424
429
429
429
434
434
434
435
437
438
438
439
439
440
440
441
441
441
458
463
463
463
465
467
467
468
469
472
472
473
473
475
477
477
477
477
477
478
479
479
480
484
485
485
493
494
496
504
504
504
504
505
506
506
506
509
509
514
521
523
526
527
529
532
533
535
536
537
537
542
542
546
550
551
551
554
554
569
572
574
593
598
598
613
618
618
631
636
636
652
654
657
670
675
675
693
698
698
713
720
722
737
742
742
750
750
752
761
766
766
780
784
786
789
803
808
808
826
829
831
850
855
855
870
875
875
888
893
893
909
911
914
927
932
932
950
955
955
970
977
979
994
999
999
1018
1023
1023
1037
1041
1043
1046
1060
1065
1065
1083
1086
1088
1107
1112
1112
1127
1132
1132
1647
1650
1652
5
5
6
7
7
11
11
12
12
17
17
17
21
22
22
23
25
25
31
33
34
35
35
35
36
38
38
39
39
39
39
40
40
40
40
40
43
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
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
49
49
49
50
50
50
51
51
51
54
54
54
57
61
61
66
67
71
72
74
74
74
74
75
75
75
75
75
76
76
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
79
79
79
79
79
79
79
79
79
79
79
80
80
81
81
81
81
81
85
85
90
90
90
92
92
93
93
94
94
94
94
100
102
105
105
105
105
106
106
106
107
107
107
108
108
108
109
109
110
110
111
111
111
111
111
111
111
111
111
112
112
112
112
113
113
113
113
113
113
113
114
114
114
114
114
114
115
115
115
115
115
116
116
117
117
117
117
117
117
118
118
118
118
118
118
119
119
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
120
120
120
120
120
121
121
122
123
123
123
123
123
125
125
125
125
126
127
127
128
128
129
129
129
129
131
131
135
136
137
137
138
139
141
143
144
144
144
145
145
145
145
146
146
146
147
147
147
147
148
148
148
148
149
149
157
158
161
161
161
161
162
162
162
162
162
162
162
162
163
163
164
164
166
166
176
176
177
177
179
179
180
180
182
182
182
182
182
183
183
183
183
183
185
186
186
194
194
198
198
198
198
199
199
200
200
202
202
204
204
204
209
209
218
218
218
219
219
219
221
222
223
224
224
224
224
227
227
228
229
230
230
233
233
233
233
234
234
235
235
241
241
248
248
248
250
250
251
251
252
252
253
253
253
253
253
253
253
254
254
254
254
254
257
257
258
259
259
269
269
269
269
269
270
270
270
270
270
271
271
271
271
276
276
280
281
281
281
284
289
289
289
290
290
292
294
294
295
295
295
295
295
299
299
301
307
307
310
311
313
315
316
316
316
316
317
318
318
323
325
327
327
327
328
328
329
329
329
332
332
332
332
337
339
339
342
342
355
355
357
357
360
362
362
362
364
365
365
366
369
369
370
370
375
380
380
380
381
383
383
384
393
394
394
394
394
396
398
398
399
399
401
401
403
403
403
403
408
408
412
412
414
414
419
419
420
420
423
424
428
429
429
429
429
430
430
435
435
435
436
438
439
439
440
440
440
441
441
442
442
442
442
452
452
459
461
464
466
468
468
469
470
473
473
474
474
475
475
478
478
478
478
478
479
481
486
486
493
494
496
496
497
505
506
507
507
507
510
510
521
521
525
525
527
528
530
533
533
533
536
537
541
542
542
542
542
543
547
551
552
552
553
555
555
555
565
565
570
573
575
594
599
599
614
619
619
632
637
653
655
658
671
676
676
694
699
699
714
718
721
723
738
743
743
751
751
753
753
762
767
767
785
787
790
804
809
809
827
830
832
851
856
856
871
876
876
889
894
910
912
915
928
933
933
951
956
956
971
975
978
980
995
1000
1000
1019
1024
1024
1042
1044
1047
1061
1066
1066
1084
1087
1089
1108
1113
1113
1128
1133
1133
1648
1651
1653
5
5
7
7
7
8
11
12
13
13
15
15
17
22
24
24
24
25
26
33
33
34
34
34
35
35
35
35
35
36
36
37
39
39
40
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
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
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
50
50
50
50
50
50
51
51
51
51
51
58
62
62
72
72
73
75
75
75
76
76
76
76
77
77
77
77
77
78
78
78
78
78
78
79
79
79
79
79
79
79
80
80
81
81
82
83
86
86
91
91
91
91
92
92
92
92
92
92
93
93
94
94
101
103
106
106
106
106
107
107
108
108
108
109
109
111
111
111
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
115
115
115
115
115
115
116
116
116
116
116
116
116
118
118
118
118
118
118
118
118
118
118
118
119
119
120
120
120
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
123
123
123
124
125
125
127
128
129
129
129
130
130
130
130
131
132
132
137
138
138
139
140
142
144
145
145
146
147
147
148
148
148
148
149
149
149
149
150
150
154
154
158
159
160
160
161
161
162
162
163
163
163
163
164
164
165
166
166
166
166
167
174
175
175
175
177
177
177
178
178
178
180
180
181
181
182
183
183
183
183
183
184
184
184
184
186
186
186
187
187
195
195
195
195
199
199
200
200
200
200
200
200
200
200
202
204
205
205
205
210
210
216
217
218
219
219
219
220
220
222
223
223
224
224
224
224
224
225
225
225
227
228
230
231
231
234
234
235
235
235
235
235
235
235
235
239
242
242
249
249
249
249
250
251
251
251
252
253
253
253
254
254
254
254
254
254
255
255
255
255
258
258
259
270
270
271
271
271
271
271
271
271
271
271
271
272
272
277
277
279
281
282
282
285
290
290
290
291
291
293
295
295
296
296
296
300
300
302
308
308
309
309
309
311
314
317
317
318
319
319
324
327
328
328
328
329
329
333
333
333
333
337
338
340
340
342
343
343
354
356
356
358
361
363
363
363
364
364
364
365
366
366
370
370
371
371
376
381
381
384
384
385
392
394
395
395
395
397
399
399
400
400
402
402
404
404
404
404
413
413
415
415
420
420
421
421
422
422
422
424
430
430
431
431
436
436
436
437
440
440
440
441
441
441
442
442
443
450
453
453
455
462
465
467
467
469
469
470
474
474
475
475
476
476
477
477
477
479
479
479
479
479
482
487
487
497
497
498
505
506
507
508
508
511
511
526
526
528
529
531
534
534
534
535
535
535
537
543
543
544
548
553
553
553
554
563
566
566
571
574
576
595
600
600
615
620
620
633
638
654
656
659
672
677
677
695
700
700
719
722
724
739
744
744
750
753
753
754
754
763
768
768
786
788
791
805
810
810
828
831
833
852
857
857
872
877
877
890
895
911
913
916
929
934
934
952
957
957
976
979
981
996
1001
1001
1020
1025
1025
1043
1045
1048
1062
1067
1067
1085
1088
1090
1109
1114
1114
1129
1134
1134
1649
1652
1654
5
5
5
7
9
11
11
12
13
13
13
13
14
14
17
17
17
22
22
24
25
25
27
35
35
35
35
35
35
36
36
36
37
37
37
37
37
37
38
40
40
40
40
40
40
40
40
40
40
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
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
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
51
51
51
53
59
63
63
71
73
73
73
74
74
74
76
76
76
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
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
83
84
85
85
85
85
87
87
91
91
92
92
93
93
94
94
102
104
106
106
106
106
107
107
107
107
108
108
109
109
110
110
111
111
111
111
111
111
111
111
111
111
112
112
113
113
113
113
113
113
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
114
114
114
115
115
115
115
115
115
116
116
116
116
116
116
116
116
117
117
117
117
117
118
118
118
118
118
118
120
120
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
121
122
122
122
123
123
124
124
125
125
125
126
126
129
129
131
131
131
131
132
132
137
137
141
141
142
143
145
145
145
146
146
147
148
149
149
149
150
150
150
151
155
155
156
156
156
159
160
160
161
162
162
162
163
163
164
164
164
164
165
165
167
167
168
174
174
174
175
176
176
176
179
179
181
181
181
182
182
182
183
183
184
184
184
185
185
187
187
187
188
188
193
195
195
196
196
199
201
201
201
201
202
204
205
206
206
206
211
211
214
216
217
217
217
218
218
223
224
225
225
225
226
226
226
228
229
230
231
232
232
232
234
236
236
236
236
240
240
250
250
252
252
252
253
253
254
254
255
255
255
256
256
257
259
259
260
270
272
272
272
272
272
272
273
278
278
280
280
286
291
291
291
292
292
294
296
296
297
297
297
299
301
301
310
310
310
310
315
316
316
318
318
320
320
325
328
328
329
329
329
329
330
330
334
334
334
334
338
338
339
343
344
344
354
359
362
364
365
365
365
365
366
367
371
371
372
372
377
382
382
385
385
393
393
396
398
400
400
401
401
403
403
405
405
405
405
412
414
414
416
421
421
423
423
423
423
429
429
431
431
432
437
437
437
438
441
441
441
441
442
442
442
442
443
443
444
451
451
456
463
466
467
468
471
475
475
476
476
478
478
478
478
480
480
480
480
483
488
488
498
498
506
506
507
512
525
527
527
530
532
535
536
536
536
536
542
542
544
544
549
554
554
554
554
555
555
564
564
572
575
577
596
601
601
616
621
621
634
636
636
639
655
657
660
673
678
678
696
701
701
720
723
725
740
745
745
754
755
755
764
769
787
789
792
806
811
811
829
832
834
853
858
858
873
878
878
891
893
893
896
912
914
917
930
935
935
953
958
958
977
980
982
997
1002
1002
1021
1026
1044
1046
1049
1063
1068
1068
1086
1089
1091
1110
1115
1115
1130
1135
1135
1650
1653
1655
5
5
5
6
7
7
10
11
11
11
13
13
15
15
15
15
17
20
24
24
24
24
25
25
25
25
26
26
28
28
33
34
37
37
37
37
37
37
38
38
38
38
38
39
41
41
41
41
41
41
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
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
48
48
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
51
53
53
54
60
64
64
72
72
73
73
74
74
75
75
75
75
75
75
76
76
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
79
79
79
80
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
84
85
85
86
86
88
91
92
92
92
93
93
94
94
95
95
103
105
106
107
107
107
107
107
108
108
108
108
109
109
109
109
109
110
110
111
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
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
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
117
117
117
117
117
117
118
118
118
118
118
118
118
119
119
120
120
120
120
120
121
121
121
121
121
121
121
121
121
121
121
121
123
124
124
124
125
125
126
126
126
127
127
128
128
129
129
129
129
130
142
142
143
144
144
145
146
146
146
146
147
147
147
148
149
150
151
152
157
157
157
157
160
161
161
161
161
161
162
162
162
163
163
163
165
165
166
166
166
166
168
168
176
177
177
177
180
180
180
182
183
184
184
185
185
185
185
186
186
188
189
189
196
197
197
198
199
201
201
202
202
205
206
207
212
212
215
215
215
215
217
218
221
222
224
224
224
225
226
226
226
227
227
230
230
231
232
233
234
236
236
251
251
251
251
251
253
253
256
256
256
257
257
257
258
260
260
269
270
270
272
272
274
279
279
286
287
292
292
292
293
293
295
297
297
298
298
298
299
311
311
316
317
321
321
326
330
330
330
330
331
331
335
335
335
335
340
344
344
345
345
350
354
355
360
363
365
366
366
367
368
372
372
373
373
378
383
383
383
397
399
399
401
401
402
402
404
404
406
406
406
406
412
417
422
422
424
424
430
433
438
438
438
439
442
443
443
443
443
444
444
445
457
457
463
464
467
467
468
469
472
476
476
477
477
479
479
481
481
481
481
484
489
489
496
508
512
513
525
531
533
536
537
537
543
550
555
555
556
556
573
576
578
597
602
602
617
622
622
635
637
640
656
658
658
661
661
674
679
679
697
702
721
724
726
741
746
746
755
765
770
788
790
793
807
812
812
830
833
835
854
859
859
874
879
879
892
894
897
913
915
915
918
918
931
936
936
954
959
978
981
983
998
1003
1003
1022
1027
1045
1047
1050
1064
1069
1069
1087
1090
1092
1111
1116
1116
1131
1136
1136
1651
1654
1656
1
1
5
5
5
6
7
7
11
11
16
16
17
17
17
21
22
22
25
25
26
26
27
27
29
29
33
34
35
37
38
38
38
39
39
40
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
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
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
51
51
54
54
61
63
63
65
65
73
73
73
74
74
74
74
74
74
74
74
74
75
75
76
76
76
76
76
76
76
76
77
77
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
80
80
80
81
81
82
85
86
86
87
87
89
91
91
91
92
92
92
93
93
93
96
96
104
106
107
108
108
108
108
108
109
109
109
109
109
109
110
110
110
111
111
111
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
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
115
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
117
117
118
118
118
119
120
120
120
120
122
122
125
125
125
125
125
127
127
127
128
128
129
129
129
129
129
129
130
130
130
130
131
138
143
144
145
145
145
145
146
147
147
147
147
147
148
148
148
148
150
150
151
151
152
152
153
153
158
158
159
161
161
161
161
161
162
163
164
164
165
165
165
165
166
166
167
167
167
175
177
178
178
178
180
181
181
183
183
183
183
184
184
184
184
185
185
186
186
187
187
187
187
189
190
190
190
190
195
195
197
199
199
199
199
201
201
201
201
201
201
203
203
204
204
204
206
208
213
213
216
216
219
220
222
223
225
225
225
226
226
227
227
228
228
228
231
231
231
232
232
233
234
234
234
234
235
235
236
236
242
249
251
252
252
252
252
253
254
254
254
254
254
254
255
255
255
257
257
257
258
258
258
258
258
259
261
261
269
270
270
270
270
272
272
272
272
272
272
275
280
280
282
287
288
293
293
293
294
294
295
296
298
298
299
299
299
299
300
311
316
317
318
322
322
327
328
329
329
329
331
331
331
331
332
332
336
336
336
336
340
341
345
345
345
345
346
346
350
355
356
361
364
366
366
368
369
370
373
373
374
374
379
380
384
384
395
398
400
400
402
402
403
403
405
405
407
407
407
407
408
412
413
418
423
424
429
431
434
439
439
439
440
441
441
442
442
442
443
444
444
444
444
444
445
445
446
453
458
458
458
458
463
465
468
468
468
469
470
470
473
477
477
478
478
479
482
482
482
482
483
485
490
490
493
508
509
511
511
513
514
521
525
526
532
534
534
537
537
537
542
544
551
554
555
555
555
556
556
557
557
566
574
577
579
598
603
603
618
623
623
636
638
641
657
662
662
675
680
680
698
701
701
703
722
725
725
727
727
742
747
747
766
768
768
771
789
791
791
794
794
808
813
813
831
834
836
855
860
860
875
880
880
893
895
898
914
919
919
932
937
937
955
958
958
960
979
982
982
984
984
999
1004
1004
1023
1025
1025
1028
1046
1048
1048
1051
1051
1065
1070
1070
1088
1091
1093
1112
1117
1117
1132
1137
1137
1652
1655
1657
1
1
1
4
5
5
5
5
5
5
6
6
7
7
7
7
7
8
11
12
12
13
13
15
15
17
17
17
17
17
17
22
26
27
27
28
28
30
30
33
33
36
38
39
39
39
40
41
43
43
43
43
43
43
43
43
43
43
43
43
43
44
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
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
51
51
51
51
51
62
64
64
66
73
73
74
74
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
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
79
79
79
79
79
79
79
79
80
80
81
81
82
82
82
82
83
83
84
86
86
86
86
86
88
90
92
93
94
94
95
95
95
95
97
97
105
107
108
108
109
109
109
109
109
109
109
109
110
110
110
110
111
111
111
111
111
111
111
111
112
112
112
112
112
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
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
116
116
116
116
116
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
118
121
121
123
123
125
125
126
128
128
128
129
129
129
129
129
130
130
130
130
130
130
131
131
131
131
138
139
144
144
145
145
145
146
146
147
147
147
148
148
148
148
148
148
149
149
149
149
153
153
154
154
158
159
161
162
163
164
165
165
165
165
166
166
166
166
166
167
167
168
168
168
176
176
178
179
179
181
182
182
183
184
184
184
184
185
185
185
186
186
187
187
187
190
191
191
191
191
196
200
200
202
202
202
202
205
205
205
205
209
214
214
216
219
219
219
220
220
220
223
224
224
226
228
228
229
229
229
232
233
233
234
235
235
236
236
236
236
236
236
236
236
242
248
250
250
252
253
253
253
254
255
255
255
255
256
256
257
258
258
258
259
259
259
259
259
260
262
262
269
270
270
270
271
271
273
273
273
273
276
281
281
282
288
288
289
294
294
294
295
295
295
297
299
299
300
300
300
300
301
311
316
316
317
318
323
323
328
328
328
328
329
330
330
330
332
332
333
333
337
337
340
342
343
345
345
346
346
347
347
354
356
357
362
365
366
367
369
370
371
371
371
374
375
380
380
381
383
383
385
385
395
399
401
401
401
403
403
404
404
406
406
408
408
408
408
408
413
414
419
424
424
429
429
430
435
440
440
440
441
441
441
441
442
443
443
443
444
445
445
445
446
446
447
453
456
458
458
459
459
466
467
469
470
471
471
474
478
478
479
479
479
483
483
484
484
484
486
491
491
493
494
496
496
508
510
512
514
514
515
521
526
527
533
537
538
538
542
542
543
552
554
554
554
555
556
556
556
557
557
566
578
580
599
604
604
619
624
624
637
639
642
658
663
663
676
681
681
699
702
704
723
728
728
743
748
748
750
750
753
767
769
772
790
795
795
809
814
814
835
837
856
861
861
876
881
881
894
896
899
915
920
920
933
938
938
956
959
961
980
985
985
1000
1005
1005
1024
1026
1029
1047
1052
1052
1066
1071
1071
1092
1094
1113
1118
1118
1133
1138
1138
1653
1656
1657
1658
5
5
7
7
8
8
8
8
9
11
13
13
13
14
14
16
16
17
17
17
17
18
18
18
18
22
27
27
31
31
33
37
38
38
39
40
40
40
40
42
42
42
43
43
43
43
43
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
46
46
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
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
51
53
63
65
65
67
72
73
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
76
76
76
76
76
76
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
79
79
79
79
79
79
80
80
83
83
84
84
84
87
89
91
91
93
94
95
95
96
96
96
96
98
98
106
106
108
109
110
110
110
110
110
110
110
110
110
110
110
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
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
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
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
117
118
118
118
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
119
124
124
124
127
128
128
129
129
129
130
130
130
130
130
131
131
132
132
132
132
132
132
137
140
144
145
145
146
147
147
148
148
148
148
148
149
149
149
149
149
149
149
149
150
150
150
150
150
154
154
155
155
158
160
161
161
161
162
163
165
165
165
166
166
166
166
167
167
167
167
167
168
168
182
182
183
183
183
185
186
187
187
187
188
188
188
191
191
192
192
192
192
195
195
197
200
200
200
202
202
202
202
202
202
202
202
203
203
206
206
210
215
215
216
217
218
220
220
220
220
221
221
221
221
224
224
224
225
225
229
229
230
230
231
232
232
232
233
234
234
235
235
237
237
237
237
249
253
253
254
254
254
256
258
259
259
259
260
260
260
260
260
263
263
269
271
271
271
271
271
273
273
273
273
273
273
273
273
274
274
277
282
282
289
289
289
289
290
295
295
295
296
296
298
299
300
300
301
301
301
301
302
315
316
317
318
319
324
324
329
330
331
331
331
333
333
334
334
336
336
336
336
338
338
343
346
347
347
348
348
350
355
357
357
366
368
370
371
372
372
375
376
380
381
384
384
386
386
400
402
402
402
402
402
404
404
405
405
407
407
409
409
409
409
412
414
415
420
422
422
425
428
429
430
431
436
441
441
441
442
443
444
444
444
445
446
446
446
447
447
448
459
460
460
463
467
468
470
470
472
472
475
479
479
480
480
482
482
482
482
484
484
485
485
487
492
492
493
497
497
511
513
515
515
515
515
516
525
527
528
534
539
539
541
542
543
544
553
556
557
557
557
558
558
579
581
600
605
605
620
625
625
638
640
643
659
664
664
677
682
682
700
703
705
724
729
729
744
749
749
751
753
754
768
770
773
791
796
796
810
815
815
836
838
857
862
862
877
882
882
895
897
900
916
921
921
934
939
939
957
960
962
981
986
986
1001
1006
1006
1025
1027
1030
1048
1053
1053
1067
1072
1072
1093
1095
1114
1119
1119
1134
1139
1139
1654
1656
1658
1659
5
8
9
9
9
9
10
13
14
15
15
15
17
17
19
19
19
22
27
27
28
32
32
37
37
39
39
39
39
39
40
40
41
41
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
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
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
51
51
54
64
66
68
72
73
73
73
73
73
74
74
74
74
75
75
75
75
75
75
75
75
75
76
76
76
77
77
77
77
77
77
78
78
78
78
78
79
79
79
79
79
80
80
80
80
80
80
80
81
81
84
84
85
85
85
90
91
92
92
95
97
97
97
97
106
107
107
107
107
109
109
109
109
110
110
111
111
111
111
111
111
111
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
115
115
115
115
115
115
115
115
115
115
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
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
121
124
124
125
128
128
129
129
130
130
130
130
130
132
132
132
132
132
132
133
133
133
133
137
145
146
146
147
148
148
149
149
149
150
150
150
150
150
150
150
150
151
151
151
151
151
155
155
156
156
160
160
161
161
163
164
164
164
165
165
165
166
166
166
166
167
167
167
168
169
169
178
181
181
181
184
186
186
187
188
188
189
189
192
192
193
193
193
193
195
195
196
196
200
200
200
201
201
203
203
203
203
204
204
206
211
216
216
218
219
220
220
221
221
221
221
222
222
223
224
225
225
226
226
230
230
231
231
231
231
231
232
233
233
233
234
234
235
236
237
237
242
242
250
250
252
252
252
253
255
257
257
258
258
260
260
260
260
260
260
261
261
261
261
261
264
264
270
270
271
271
271
272
272
272
272
272
274
274
274
274
275
275
278
282
282
283
283
287
289
289
290
290
291
295
296
296
296
297
299
300
301
301
302
302
302
302
302
316
318
319
320
325
325
329
330
331
332
332
334
334
335
335
337
337
339
339
340
340
344
345
345
347
349
349
354
356
367
369
371
371
372
372
372
372
372
373
373
373
374
374
376
377
381
382
383
385
385
385
387
387
395
395
400
401
402
402
403
403
403
405
405
406
406
408
408
408
410
410
410
410
413
415
415
421
423
426
429
431
432
437
442
442
442
442
443
444
445
445
446
447
447
447
448
448
449
453
453
458
458
460
467
468
469
473
473
476
480
480
481
481
483
483
484
485
485
485
485
485
485
486
488
493
493
494
496
498
498
498
508
508
512
513
514
515
515
516
516
517
521
526
528
528
535
540
540
542
544
545
554
555
557
558
558
559
559
566
566
580
582
601
606
606
621
626
626
639
641
644
660
665
665
678
683
683
701
704
706
725
730
730
745
750
750
754
755
769
771
774
792
797
797
811
816
816
837
839
858
863
863
878
883
883
896
898
901
917
922
922
935
940
940
958
961
963
982
987
987
1002
1007
1007
1026
1028
1031
1049
1054
1054
1068
1073
1073
1094
1096
1115
1120
1120
1135
1140
1140
1655
1659
1660
4
5
5
6
8
9
9
10
11
13
13
15
15
18
18
19
20
20
22
22
27
28
29
33
33
33
37
38
38
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
43
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
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
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
49
49
49
50
50
50
50
51
65
67
69
71
73
73
73
73
73
73
74
74
74
74
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
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
79
80
80
80
80
81
81
81
85
85
85
85
86
86
91
91
93
93
93
94
94
95
95
95
95
96
106
107
108
108
108
109
109
109
109
109
110
110
111
111
111
111
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
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
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
116
116
117
118
118
119
119
119
119
119
119
119
119
119
119
119
119
119
119
120
120
120
120
121
124
126
128
128
128
129
130
130
130
130
130
131
131
132
132
133
133
134
134
134
134
145
146
147
147
148
148
149
149
149
149
150
150
150
151
151
151
151
151
152
152
152
152
152
156
156
157
157
164
164
165
165
165
165
165
165
165
166
167
167
167
168
168
168
169
170
178
179
181
182
182
184
185
185
188
189
189
190
190
193
193
194
194
194
194
197
197
201
201
202
202
202
202
202
202
204
204
204
204
206
212
217
217
220
221
221
222
222
222
223
223
224
226
226
227
227
231
231
232
232
233
234
234
234
235
235
235
235
235
237
237
237
237
237
237
237
240
243
243
250
251
251
251
251
252
253
253
255
256
256
258
258
261
261
261
261
261
262
262
262
262
262
265
265
270
271
272
272
273
273
273
273
273
273
275
275
275
275
279
280
283
283
284
284
290
291
291
292
297
297
297
298
299
300
301
302
302
303
303
303
310
316
317
319
321
326
326
330
330
331
335
335
336
338
338
338
340
340
341
341
345
346
350
350
355
355
357
357
365
368
370
372
373
373
373
374
374
375
377
378
383
383
384
388
388
393
396
396
402
403
404
404
404
406
406
407
407
409
409
411
411
411
411
412
414
422
423
424
427
429
430
432
438
443
443
443
443
443
444
447
448
448
448
449
449
450
451
454
454
459
468
468
469
470
470
474
474
477
478
481
481
482
484
484
486
486
486
486
487
489
494
494
496
497
506
509
509
513
515
516
517
517
518
525
527
536
536
541
541
542
543
545
555
556
556
560
560
564
567
567
574
581
583
602
607
607
622
627
627
640
642
645
661
666
666
679
684
684
702
705
707
726
731
731
746
751
751
755
770
772
775
793
798
798
812
817
817
831
838
840
859
864
864
879
884
884
897
899
902
918
923
923
936
941
941
959
962
964
983
988
988
1003
1008
1008
1027
1029
1032
1050
1055
1055
1069
1074
1074
1088
1095
1097
1116
1121
1121
1136
1141
1141
1656
1660
1661
4
5
5
6
7
9
9
9
9
10
10
11
12
15
15
15
15
15
16
19
20
21
27
27
28
29
29
29
29
30
34
34
34
35
37
37
37
38
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
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
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
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
51
51
68
70
72
72
73
73
73
73
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
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
79
79
79
79
79
79
80
80
80
80
81
81
81
82
82
82
85
86
86
86
86
86
86
87
87
89
92
92
94
94
94
95
95
95
95
96
96
96
96
97
106
106
106
109
109
109
109
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
111
111
111
111
111
111
111
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
113
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
117
117
117
117
118
119
119
119
119
119
119
119
119
119
119
119
119
119
120
120
120
120
121
121
127
129
129
130
130
130
130
130
130
130
131
131
131
132
132
132
133
133
134
134
137
146
147
148
148
148
148
148
148
149
149
149
149
150
150
150
150
151
151
151
152
152
152
153
153
153
157
157
158
158
160
161
161
164
165
166
166
166
166
166
166
166
166
167
168
168
169
171
180
180
184
184
184
185
185
185
186
189
190
190
191
191
193
194
194
195
195
195
195
198
198
199
201
201
201
201
201
201
201
201
202
202
202
203
203
203
203
213
218
218
220
220
220
221
221
221
221
222
222
223
224
225
227
227
228
229
232
232
232
233
233
234
235
235
236
236
236
238
238
238
238
238
241
241
249
251
251
251
251
252
252
255
255
255
256
256
256
257
258
259
259
260
262
262
262
262
262
263
263
266
266
270
271
271
272
272
272
272
272
272
272
272
272
272
273
273
273
274
274
274
274
280
281
281
285
289
289
291
293
298
298
298
299
300
300
301
302
302
303
304
304
311
311
311
311
316
317
319
319
320
322
327
327
332
335
335
336
336
337
339
339
339
339
341
341
345
345
346
347
351
351
355
357
358
358
362
366
366
366
366
369
371
372
372
373
374
374
374
375
376
378
379
384
384
384
385
385
389
389
394
394
402
402
403
404
405
407
407
408
408
410
410
412
412
413
413
415
415
423
424
424
424
424
425
428
429
430
432
432
433
439
444
444
444
445
448
449
449
450
451
452
452
458
458
460
468
470
470
471
471
475
475
478
479
479
479
479
481
481
482
482
483
485
485
485
485
487
487
487
487
490
495
495
497
497
498
498
507
507
514
515
515
516
517
519
526
526
528
528
537
537
537
537
537
542
542
542
543
545
545
546
556
561
561
565
565
575
579
582
584
603
608
608
623
628
628
641
643
646
662
667
667
680
685
685
703
706
708
727
732
732
747
750
752
752
755
771
773
776
794
799
799
813
818
818
832
836
839
841
860
865
865
880
885
885
898
900
903
919
924
924
937
942
942
960
963
965
984
989
989
1004
1009
1009
1028
1030
1033
1051
1056
1056
1070
1075
1075
1089
1093
1096
1098
1117
1122
1122
1137
1142
1142
1657
1661
1662
5
5
5
7
9
10
10
11
12
13
13
13
15
15
17
20
20
20
21
22
22
27
27
27
29
29
31
33
34
34
35
35
35
35
36
40
40
40
41
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
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
46
46
46
46
46
46
46
46
46
46
46
46
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
50
50
51
63
67
69
69
71
71
73
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
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
79
79
79
79
80
80
80
80
80
80
80
81
81
81
82
83
86
86
86
87
87
88
88
90
93
93
95
95
95
95
95
95
96
96
96
96
97
97
97
97
105
105
105
107
107
107
108
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
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
112
112
112
112
112
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
115
115
115
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
117
117
118
119
119
119
119
119
119
119
119
119
119
119
120
120
120
120
120
121
121
121
121
122
122
128
129
130
131
131
131
131
131
131
131
132
132
132
132
132
132
132
132
133
133
133
134
134
145
147
148
149
150
151
151
151
151
152
152
152
153
153
153
154
154
154
158
158
159
159
160
164
165
166
166
166
166
166
166
167
167
167
167
168
168
168
168
169
169
169
169
169
169
170
172
178
178
182
183
185
185
185
185
185
186
186
186
186
187
190
191
191
192
192
194
195
195
196
196
196
196
199
200
202
202
202
202
202
202
203
204
204
204
204
214
218
219
219
221
222
222
223
224
225
227
227
228
228
229
230
233
233
233
233
234
234
234
236
236
236
237
238
238
238
238
238
238
238
238
239
239
239
252
253
253
253
254
256
256
256
256
257
257
257
257
258
260
260
261
262
262
263
263
263
264
264
265
265
267
267
271
273
273
273
273
273
273
273
273
274
275
275
275
275
281
286
290
294
296
299
299
299
300
300
300
302
302
303
303
304
305
305
312
312
320
320
321
323
328
328
332
333
336
337
337
338
340
340
342
342
345
345
346
346
347
352
355
357
358
359
359
363
367
367
367
370
372
373
374
375
376
377
379
380
385
386
386
390
390
403
404
406
408
408
409
409
411
411
411
411
411
411
413
413
413
415
416
416
424
425
425
426
429
433
433
434
440
445
445
445
445
446
449
450
450
451
452
458
458
459
459
468
470
471
471
472
472
476
476
479
480
480
482
483
483
484
486
486
486
488
488
491
496
496
499
499
515
516
517
520
526
528
529
529
538
538
538
543
543
546
546
547
557
558
562
562
580
583
585
604
609
609
624
629
629
644
647
663
668
668
681
686
686
704
707
709
728
733
733
748
751
753
753
753
772
774
777
795
800
800
814
819
819
837
840
842
861
866
866
881
886
886
901
904
920
925
925
938
943
943
961
964
966
985
990
990
1005
1010
1010
1029
1031
1034
1052
1057
1057
1071
1076
1076
1094
1097
1099
1118
1123
1123
1138
1143
1143
1658
1662
1663
5
8
9
9
10
11
11
11
11
11
11
12
12
13
14
15
15
15
15
19
19
19
21
21
22
22
23
27
32
33
33
34
34
35
35
36
36
36
36
37
37
40
40
40
40
40
40
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
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
47
47
47
47
47
47
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
51
51
51
51
64
68
69
69
69
69
69
70
70
70
71
71
72
72
72
73
73
73
73
73
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
77
77
77
77
77
80
81
81
81
81
82
82
82
83
84
87
88
88
89
89
91
94
94
96
96
96
96
96
96
97
97
98
98
98
98
98
98
106
106
106
107
107
107
107
107
107
108
108
108
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
113
113
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
114
114
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
115
115
116
116
116
116
116
116
116
117
117
117
117
118
119
119
119
119
120
120
120
120
121
121
121
121
122
122
122
122
122
122
129
129
130
130
131
132
133
133
133
133
133
133
133
133
133
133
134
134
138
138
146
146
148
148
149
149
150
150
151
152
152
152
153
153
154
154
154
155
155
155
157
159
159
160
160
164
164
166
167
168
168
168
169
169
169
169
170
170
170
170
170
171
173
176
179
179
182
183
184
185
185
186
186
186
186
186
187
187
188
191
192
192
193
193
194
194
196
196
197
197
197
197
198
198
200
201
201
201
202
202
202
202
203
203
203
203
203
203
205
205
205
215
215
218
218
218
219
220
220
221
222
223
223
224
228
228
229
229
230
234
234
235
235
235
236
236
236
237
237
238
239
239
239
239
240
240
240
243
251
251
253
253
254
255
256
256
257
257
257
257
258
258
258
259
261
261
262
264
264
264
265
265
266
266
268
268
271
272
272
272
272
272
272
273
273
273
273
274
274
274
274
274
274
274
274
276
276
282
283
284
284
287
289
289
291
295
300
300
300
300
301
301
302
302
302
303
303
303
303
304
304
305
306
306
312
321
321
324
329
329
332
334
337
339
341
341
341
343
343
347
347
348
351
351
353
355
355
358
359
367
368
371
372
373
374
375
376
377
378
380
381
384
385
385
385
386
387
387
391
391
396
402
402
404
405
407
409
409
410
410
412
412
412
412
413
414
414
415
416
417
417
425
425
427
430
434
434
441
445
446
446
446
447
448
448
449
449
450
451
451
452
453
454
460
460
468
468
471
472
472
477
477
480
480
483
485
485
487
487
487
489
489
492
497
497
497
498
498
498
500
500
509
515
515
516
517
518
521
526
528
529
530
530
538
539
544
544
547
547
558
558
563
563
567
581
584
586
605
610
610
625
630
630
645
648
664
669
669
682
687
687
705
708
710
729
734
734
749
753
754
754
754
773
775
778
796
801
801
815
820
820
838
841
843
862
867
867
882
887
887
902
905
921
926
926
939
944
944
962
965
967
986
991
991
1006
1011
1011
1030
1032
1035
1053
1058
1058
1072
1077
1077
1095
1098
1100
1119
1124
1124
1139
1144
1144
1659
1663
1664
1
4
5
5
6
7
9
9
9
9
11
11
12
13
13
13
13
14
14
15
15
15
19
20
20
22
22
22
22
22
22
22
24
24
27
28
29
29
33
33
33
34
35
36
36
37
37
37
37
37
38
39
39
40
40
40
42
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
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
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
50
50
51
52
52
65
69
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
72
72
72
73
73
73
73
73
73
73
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
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
78
78
78
81
82
82
82
83
83
84
85
85
85
89
89
90
90
92
94
95
95
96
96
97
97
98
98
98
98
98
98
99
99
99
99
105
105
105
107
107
107
107
108
108
108
108
108
108
109
109
109
109
109
109
109
109
110
110
110
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
112
112
112
112
112
112
112
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
114
114
114
114
115
115
115
115
116
116
116
116
116
116
116
116
116
116
116
116
116
116
117
118
118
119
119
119
119
119
119
120
121
121
122
122
122
122
123
123
123
123
124
129
129
130
131
131
132
133
134
134
134
134
135
135
139
139
139
139
146
148
149
149
150
150
150
151
151
151
155
155
155
156
156
156
158
158
158
160
160
160
161
161
165
165
166
166
166
166
167
168
168
169
170
170
170
170
171
171
171
174
177
177
182
182
182
185
186
186
187
187
187
187
187
188
188
189
192
193
193
194
194
197
197
198
198
198
198
199
199
200
200
201
201
202
202
202
202
203
203
204
204
205
205
205
205
206
206
206
206
206
206
216
216
216
216
219
219
220
220
221
221
221
222
224
225
229
229
230
231
235
235
235
236
236
236
237
237
238
238
238
238
238
238
239
240
240
240
240
241
243
252
253
253
253
256
257
257
258
258
258
258
259
259
259
260
260
262
265
265
265
266
266
267
267
269
269
271
271
271
271
271
272
272
273
273
273
273
273
273
273
274
274
275
275
276
276
276
276
277
277
283
283
285
288
289
289
290
290
296
300
300
301
301
302
302
303
303
304
304
304
306
307
307
312
319
325
330
330
335
338
340
341
342
342
343
344
344
348
348
349
352
354
356
356
357
357
357
359
367
369
372
372
372
373
374
378
379
381
382
384
384
384
385
386
386
386
387
392
392
396
402
402
403
403
406
408
410
410
411
413
413
413
413
413
413
415
415
416
417
425
426
428
431
432
442
447
447
448
449
450
452
452
453
454
454
456
461
461
469
469
470
470
470
472
473
478
478
480
481
484
485
485
486
486
488
488
490
490
493
497
497
497
498
498
498
499
499
499
509
515
515
516
516
519
522
526
526
529
530
538
540
545
545
545
559
564
564
567
582
585
587
606
611
611
626
631
631
646
649
665
670
670
683
688
688
709
711
730
735
735
750
754
755
755
755
776
779
797
802
802
816
821
821
839
842
844
863
868
868
883
888
888
903
906
922
927
927
940
945
945
966
968
987
992
992
1007
1012
1012
1033
1036
1054
1059
1059
1073
1078
1078
1096
1099
1101
1120
1125
1125
1140
1145
1145
1660
1664
1665
5
5
8
9
10
14
15
15
15
15
15
16
16
19
19
21
22
23
23
23
25
25
27
29
29
30
30
33
34
36
37
37
37
37
38
38
38
38
38
39
39
42
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
47
47
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
49
51
51
51
51
52
52
53
53
70
72
72
73
73
73
73
73
73
73
73
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
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
78
78
78
78
78
78
85
85
86
90
90
91
91
93
94
94
95
96
96
96
96
98
98
98
98
99
99
100
100
100
100
106
106
106
108
108
108
108
108
108
108
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
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
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
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
116
116
116
116
116
116
117
117
117
117
117
117
117
117
117
118
119
119
120
120
121
122
122
123
123
123
124
124
124
124
125
125
130
130
131
131
131
131
133
133
134
134
136
136
139
139
140
140
146
148
149
150
150
151
152
156
156
156
157
157
157
159
159
161
161
162
162
165
165
166
167
167
167
167
168
168
168
168
168
168
168
169
169
169
170
172
175
180
183
183
183
183
185
185
185
186
186
186
186
187
187
188
188
188
188
188
190
193
194
194
195
195
198
198
198
199
199
199
199
200
200
201
201
203
203
205
205
206
206
206
206
207
207
207
207
217
217
217
219
219
220
220
220
222
222
223
223
223
224
224
225
226
227
231
232
235
235
236
236
237
237
237
237
237
237
237
237
237
237
237
238
238
238
239
239
239
239
240
242
251
251
251
253
254
254
254
254
256
256
256
257
257
257
257
258
258
259
259
260
260
261
261
261
263
264
266
266
266
267
267
268
268
270
270
272
272
273
274
274
274
274
274
276
276
277
277
277
277
278
278
284
286
289
291
291
297
301
301
302
302
302
302
302
303
303
304
304
305
305
307
308
308
316
326
331
331
332
332
336
339
341
343
343
344
345
345
349
350
353
355
358
358
358
358
370
371
372
373
373
374
375
379
380
382
383
386
387
387
387
388
393
393
404
404
407
409
410
410
411
411
412
414
414
414
414
414
414
415
415
415
416
416
417
427
429
429
432
443
445
445
448
448
449
450
451
453
453
454
455
457
462
471
471
471
471
474
479
479
482
484
485
485
486
487
487
489
489
491
491
494
499
499
499
500
500
500
517
517
520
523
527
527
528
528
528
530
541
542
546
546
558
558
560
565
565
583
586
586
588
588
607
612
612
627
632
632
641
645
647
650
666
671
671
684
689
689
710
712
731
736
736
751
754
755
756
756
756
777
780
798
803
803
817
822
822
840
843
843
845
845
864
869
869
884
889
889
898
902
904
907
923
928
928
941
946
946
967
969
988
993
993
1008
1013
1013
1034
1037
1055
1060
1060
1074
1079
1079
1097
1100
1100
1102
1102
1121
1126
1126
1141
1146
1146
1661
1665
1666
1
5
5
5
6
7
9
9
9
10
11
11
11
11
12
13
13
15
15
15
15
15
16
16
17
17
22
23
24
24
24
26
26
29
31
31
35
37
38
38
39
39
39
39
39
40
40
42
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
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
51
52
52
53
53
54
54
68
68
71
72
72
72
73
73
73
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
77
77
77
77
77
77
77
78
78
86
87
91
91
92
92
94
95
95
96
97
97
97
99
99
99
99
100
100
107
107
107
107
108
109
109
109
110
110
110
110
110
110
111
111
111
111
111
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
113
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
116
116
116
116
116
116
116
116
116
116
116
117
117
117
117
117
117
118
118
118
119
120
120
121
121
122
123
124
125
125
125
125
132
132
132
132
132
133
133
134
134
137
137
140
141
141
149
150
152
152
152
152
153
153
153
153
157
157
157
158
158
158
158
159
159
159
159
160
162
162
163
163
166
166
166
167
168
168
169
169
169
169
169
170
170
171
173
176
179
181
183
183
183
184
184
184
186
186
187
187
188
188
188
189
189
191
194
195
195
196
196
198
199
199
200
200
200
200
201
201
202
202
204
207
207
207
207
207
216
217
217
217
217
218
218
221
223
223
224
224
224
224
225
225
226
227
232
233
236
237
237
238
238
238
238
238
238
238
238
238
239
240
240
240
240
241
241
243
243
251
251
252
252
252
254
254
254
255
255
255
257
258
258
259
261
261
262
262
264
265
267
267
267
268
268
269
269
271
271
272
272
272
273
273
274
275
275
275
278
278
278
278
283
283
285
287
287
290
292
292
298
300
300
303
303
303
303
303
303
304
304
305
306
306
308
309
309
316
317
319
319
327
330
332
332
333
333
337
337
340
342
344
344
344
344
346
346
348
348
350
351
354
356
359
359
371
372
374
374
374
375
376
376
380
381
383
384
385
387
388
388
389
394
394
396
396
400
405
405
408
410
411
412
412
413
415
415
415
415
416
416
416
416
417
417
429
430
430
432
432
433
443
444
446
446
446
446
449
449
450
451
452
454
454
455
456
457
457
461
461
463
472
472
475
480
480
483
483
485
486
487
488
488
490
490
492
492
495
498
500
500
500
501
501
509
509
513
518
518
521
524
529
529
529
529
542
542
543
545
545
547
547
556
559
559
561
566
566
584
589
589
608
613
613
628
633
633
646
648
651
667
672
672
685
690
690
711
713
732
737
737
752
754
755
756
757
757
757
778
781
799
804
804
818
823
823
841
846
846
865
870
870
885
890
890
903
905
908
924
929
929
942
947
947
968
970
989
994
994
1009
1014
1014
1035
1038
1056
1061
1061
1075
1080
1080
1098
1103
1103
1122
1127
1127
1142
1147
1147
1662
1666
1667
1
1
4
4
4
5
6
7
9
10
11
11
11
12
12
12
12
13
15
15
15
15
16
16
17
18
22
23
24
25
27
27
29
29
31
36
38
38
38
39
39
39
40
40
40
40
40
41
41
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
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
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
51
53
53
54
54
55
55
69
69
69
69
69
69
69
69
69
69
70
70
72
72
73
73
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
77
77
82
82
82
83
83
83
87
88
92
92
93
93
95
95
97
97
97
98
98
100
100
100
100
107
107
108
108
108
108
108
108
108
108
109
109
109
109
109
110
110
110
110
112
112
112
112
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
114
114
114
114
114
114
114
114
114
114
114
114
114
114
115
115
115
115
115
116
117
117
117
117
117
117
117
117
117
117
118
118
118
119
120
121
121
122
122
123
124
125
126
126
126
126
131
133
133
133
134
134
134
134
134
134
134
134
138
138
139
139
141
150
150
151
152
153
153
153
153
154
154
154
158
158
158
159
159
159
160
160
161
163
163
164
164
165
165
166
167
167
167
167
168
168
169
169
169
169
169
169
170
170
170
170
172
174
177
179
183
183
184
184
185
185
185
186
187
188
188
189
189
190
190
192
194
195
196
196
197
197
198
199
200
200
201
201
201
201
201
202
202
202
203
204
204
205
207
218
218
219
219
222
224
224
225
225
225
226
226
227
227
233
234
235
235
237
237
237
238
238
238
238
238
238
239
239
239
239
239
239
239
239
239
241
241
244
244
253
253
254
254
255
255
256
256
256
257
258
259
259
260
261
262
262
263
265
266
268
268
268
270
270
272
272
272
273
273
273
273
273
274
275
275
276
281
284
284
286
288
288
291
293
299
301
304
304
304
304
305
305
306
307
307
307
309
310
310
310
316
320
320
328
331
331
333
333
338
338
341
342
342
343
345
345
347
347
349
349
351
352
355
357
359
366
372
372
373
375
375
376
377
377
379
380
381
382
384
385
386
386
390
394
395
395
397
397
401
406
409
411
412
414
416
416
416
417
417
418
418
427
429
431
431
433
433
434
444
444
445
447
450
450
450
451
452
453
455
455
456
457
462
462
464
472
476
479
481
481
484
484
485
486
487
488
488
488
489
491
491
493
493
496
499
499
501
501
507
510
510
514
516
519
520
522
525
530
530
542
543
546
546
548
548
557
557
562
567
567
585
590
590
609
614
614
629
634
647
649
652
668
673
673
686
691
691
705
712
714
733
738
738
753
754
755
755
756
757
758
758
773
777
779
782
800
805
805
819
824
824
842
847
847
866
871
871
886
891
904
906
909
925
930
930
943
948
948
962
969
971
990
995
995
1010
1015
1015
1030
1034
1036
1039
1057
1062
1062
1076
1081
1081
1099
1104
1104
1123
1128
1128
1143
1148
1663
1667
1668
4
4
5
5
7
8
11
12
13
13
13
13
13
14
17
17
18
19
19
22
22
24
28
28
31
31
31
37
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
41
41
41
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
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
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
47
48
48
48
49
49
50
51
51
51
51
52
54
54
54
54
56
56
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
72
72
72
72
73
73
73
73
73
73
73
73
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
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
78
78
82
83
83
83
84
84
88
89
93
93
94
94
95
96
97
98
99
99
101
101
105
105
105
107
107
107
107
107
108
108
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
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
114
114
114
114
114
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
115
115
116
116
117
117
117
117
117
117
118
119
120
121
122
122
123
123
123
124
125
126
127
127
127
127
131
133
134
135
135
135
135
139
139
140
151
151
152
152
154
155
159
159
159
159
159
160
160
160
161
161
164
164
165
165
166
166
167
167
167
168
169
169
169
169
170
170
170
170
170
170
170
170
171
171
173
175
178
183
183
183
184
184
185
185
185
186
186
187
188
188
189
190
190
193
194
196
197
197
198
198
199
200
201
201
202
202
202
202
202
202
203
203
204
205
205
205
205
206
217
217
219
219
220
223
223
223
224
224
224
225
228
228
233
234
235
236
236
236
236
237
238
238
238
238
239
239
239
239
240
240
240
240
240
241
241
241
241
241
242
242
245
245
249
254
254
254
254
254
255
255
256
256
256
257
257
258
260
261
261
262
262
262
263
264
266
267
269
269
269
271
271
273
273
273
273
274
274
275
276
276
276
276
277
282
282
287
288
288
289
292
292
292
294
300
302
304
305
306
307
308
310
311
311
311
317
319
321
321
321
329
334
334
339
342
343
343
344
346
346
346
346
348
348
348
348
348
350
350
353
356
358
359
367
367
367
367
372
373
373
375
375
376
378
378
380
381
382
383
385
386
391
395
395
396
396
401
401
405
405
407
410
412
413
415
417
417
417
417
419
419
430
432
432
432
434
434
434
435
446
448
451
451
452
453
453
454
456
456
457
458
461
463
463
472
477
480
480
480
480
482
482
485
486
488
488
488
489
489
489
490
492
492
492
492
494
494
494
494
497
502
502
508
508
514
514
518
518
520
521
523
526
530
543
544
545
547
547
547
549
549
563
565
568
586
591
591
610
615
615
630
635
648
650
653
669
674
674
687
692
692
706
710
713
715
734
739
739
754
754
755
756
756
757
759
759
778
780
783
801
806
806
820
825
843
848
848
867
872
872
887
892
905
907
910
926
931
931
944
949
949
963
967
970
972
991
996
996
1011
1016
1016
1035
1037
1040
1058
1063
1063
1077
1082
1100
1105
1105
1124
1129
1129
1144
1149
1664
1668
1669
4
5
5
5
6
8
9
9
11
11
13
13
14
15
15
16
16
17
18
19
20
24
24
25
25
29
29
29
29
31
31
31
31
38
39
39
40
40
40
40
40
41
41
41
41
41
41
41
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
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
47
47
47
47
47
48
48
48
48
48
48
49
49
51
52
52
52
53
55
55
55
55
55
55
57
57
69
69
69
69
69
70
72
72
72
72
72
72
72
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
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
77
77
77
77
77
77
77
77
77
77
78
78
78
78
78
78
89
90
94
94
95
95
96
96
96
96
97
98
99
102
102
105
105
106
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
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
110
111
111
111
111
111
111
111
111
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
113
114
114
114
114
115
115
115
115
115
117
117
117
117
117
117
117
119
121
122
123
123
123
124
124
125
126
128
128
128
128
132
133
135
135
135
139
139
140
140
141
146
146
155
156
160
160
160
160
161
161
161
165
165
165
166
166
167
168
168
169
169
170
170
171
171
171
171
171
171
171
172
172
174
176
179
179
179
181
184
184
184
185
185
185
187
188
188
188
189
189
189
190
191
194
197
198
198
198
199
199
200
201
202
202
202
202
203
203
203
203
203
203
205
205
205
205
205
205
206
206
206
206
218
219
219
220
220
221
223
224
224
224
224
225
225
225
226
227
229
229
229
234
234
235
236
237
237
239
239
240
240
241
241
241
241
241
242
242
242
242
242
243
243
246
246
250
252
255
255
255
255
256
256
256
258
259
259
259
260
260
261
262
263
263
264
265
267
268
270
270
270
272
272
273
273
274
274
274
274
275
276
276
276
276
276
276
277
277
277
277
288
290
293
293
293
295
301
303
304
306
307
308
309
311
311
312
312
312
319
320
330
333
335
335
336
340
343
344
344
345
348
349
349
349
349
354
357
359
368
368
374
376
376
377
379
379
381
382
383
383
384
384
386
386
387
387
388
392
397
397
406
406
408
411
413
414
415
415
416
417
418
418
418
420
420
424
432
433
433
433
436
446
447
449
452
453
454
454
455
457
457
458
459
461
478
481
481
482
483
483
489
489
489
490
490
490
491
495
495
495
495
498
501
503
503
519
519
521
522
524
527
530
537
545
545
546
550
550
559
564
566
567
567
569
587
592
592
611
616
616
631
633
633
636
649
651
654
670
675
675
688
693
693
711
714
716
735
740
740
754
755
756
757
757
760
760
779
781
784
802
807
807
821
824
824
826
844
849
849
868
873
873
888
890
890
893
906
908
911
927
932
932
945
950
950
968
971
973
992
997
997
1012
1017
1017
1036
1038
1041
1059
1064
1064
1078
1081
1081
1083
1101
1106
1106
1125
1130
1130
1145
1147
1147
1150
1665
1669
1670
4
4
4
5
5
7
9
10
10
13
13
13
13
13
15
16
17
18
20
21
22
22
25
26
30
30
31
31
31
31
32
32
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
42
42
42
42
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
44
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
47
47
47
47
47
47
47
47
47
49
49
49
49
49
49
49
49
49
50
52
53
54
56
56
56
56
58
58
67
67
68
68
70
70
70
70
70
70
70
70
70
70
71
71
71
71
72
72
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
77
77
77
77
77
78
78
79
79
90
91
95
95
96
96
97
97
97
97
98
98
98
98
98
98
98
99
103
103
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
106
106
107
107
107
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
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
114
114
114
114
114
114
114
114
115
115
115
115
115
115
115
115
115
115
115
117
117
117
117
118
118
118
118
120
122
122
123
123
124
124
125
125
125
129
129
129
129
133
133
133
133
134
134
135
135
136
139
139
140
140
141
141
147
147
148
148
148
153
153
153
154
154
154
156
157
159
161
161
161
161
162
162
162
166
166
166
167
167
167
168
169
169
169
170
172
172
172
172
177
177
180
180
180
181
183
185
186
188
188
188
189
189
189
190
190
190
191
192
194
195
198
199
199
199
200
200
201
201
201
203
203
204
204
204
204
205
205
206
206
206
206
206
206
206
206
206
207
207
207
207
217
219
219
220
222
223
223
224
224
224
225
225
225
225
226
226
227
227
228
236
237
237
237
238
238
240
241
241
242
242
242
243
243
243
243
243
243
247
247
250
250
252
254
254
254
254
256
256
257
259
260
260
260
261
261
262
263
264
264
266
268
268
269
271
271
271
272
273
273
275
275
275
276
276
277
277
277
277
277
277
277
277
278
278
278
278
284
289
291
292
294
294
294
302
304
307
308
309
310
312
312
312
312
313
313
313
320
320
321
321
331
333
336
336
337
341
341
341
344
344
345
345
346
348
349
350
350
350
350
355
358
360
368
375
377
377
380
380
382
383
387
387
388
388
388
393
397
398
398
405
407
407
412
412
414
415
416
417
419
419
419
421
421
425
425
425
433
433
434
434
434
434
437
446
448
450
453
454
454
455
455
456
457
458
458
459
460
461
462
479
481
483
484
484
487
490
490
490
491
491
492
496
496
496
496
499
501
504
504
510
518
520
520
523
525
528
538
538
538
546
546
546
547
547
551
551
559
565
567
567
568
570
588
593
593
612
617
617
632
634
637
650
652
652
655
655
671
676
676
689
694
694
712
715
717
736
741
741
755
756
757
758
761
761
780
782
785
803
808
808
822
825
827
845
850
850
869
874
874
889
891
894
907
909
909
912
912
928
933
933
946
951
951
969
972
974
993
998
998
1013
1018
1018
1037
1039
1042
1060
1065
1065
1079
1082
1084
1102
1107
1107
1126
1131
1131
1146
1148
1151
1666
1670
1671
5
5
5
6
8
10
11
11
11
11
13
13
16
17
17
18
18
18
18
19
20
21
21
22
24
24
25
27
29
31
31
33
33
39
39
39
40
40
40
40
40
40
40
40
40
41
41
41
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
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
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
49
49
49
49
49
50
53
53
55
57
57
57
57
57
57
59
59
68
68
68
68
69
69
69
69
70
70
71
71
71
71
72
72
72
72
72
73
73
73
73
73
74
74
74
74
74
74
74
74
75
75
75
76
76
76
76
76
77
78
78
80
83
83
83
84
84
84
91
92
96
96
97
97
99
99
99
99
99
99
99
99
99
103
103
103
103
103
103
103
103
104
104
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
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
110
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
112
112
113
113
113
113
113
114
115
115
115
115
115
115
115
115
115
115
115
115
116
117
118
118
118
119
119
119
121
123
123
124
124
125
125
126
126
126
130
130
130
130
134
134
135
135
135
135
135
135
135
135
137
141
141
142
142
149
149
149
149
151
152
153
154
154
154
155
155
157
158
159
159
160
162
162
162
163
163
167
167
168
168
168
168
169
169
169
169
169
170
170
170
171
171
178
178
178
181
182
183
184
187
188
188
189
189
190
190
191
191
196
198
199
200
200
200
201
201
201
202
204
204
204
205
205
205
205
207
207
207
207
207
207
207
207
207
207
208
208
208
208
217
217
218
224
224
225
225
225
226
226
226
226
226
227
227
227
228
228
228
229
229
236
237
237
238
238
238
238
239
240
240
241
242
242
243
243
243
244
244
244
244
248
248
253
254
254
255
255
255
257
258
261
261
262
262
262
267
269
269
270
271
271
272
272
272
272
273
274
274
275
276
276
278
278
278
278
278
278
279
279
279
279
284
292
292
295
304
305
305
308
308
309
309
310
311
313
313
313
314
314
314
322
322
332
337
337
342
342
342
342
342
344
345
345
346
346
347
347
349
350
351
351
351
351
358
359
361
368
375
376
381
381
383
384
388
388
389
389
394
397
399
399
405
413
413
415
416
417
417
417
418
420
420
420
422
422
426
426
435
435
435
435
438
450
451
451
454
454
455
455
455
455
455
456
456
457
457
459
459
460
461
462
463
471
480
481
485
485
488
488
491
491
492
492
493
493
497
497
497
497
500
505
505
510
518
524
526
529
539
539
547
548
548
552
552
566
568
568
568
568
569
571
589
594
594
613
618
618
633
635
638
651
656
656
672
677
677
690
695
695
713
716
718
737
742
742
756
757
758
762
762
781
783
786
804
809
809
823
826
828
846
851
851
870
875
875
890
892
895
908
913
913
929
934
934
947
952
952
970
973
975
994
999
999
1014
1019
1019
1038
1040
1043
1061
1066
1066
1080
1083
1085
1103
1108
1108
1127
1132
1132
1147
1149
1152
1667
1671
1672
4
5
6
7
9
11
12
13
13
13
13
13
13
17
17
17
17
19
20
20
21
22
22
22
22
23
25
28
32
32
33
34
34
35
42
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
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
48
48
48
48
49
49
49
49
49
51
54
54
54
56
58
58
58
58
59
59
60
60
68
68
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
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
77
77
77
77
79
79
81
83
84
84
84
85
85
92
93
95
95
97
97
98
98
100
100
100
100
100
104
104
104
104
104
104
104
104
105
105
106
106
106
107
107
107
107
107
107
107
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
108
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
111
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
112
112
113
114
116
116
117
117
117
120
122
124
124
125
125
125
126
126
126
127
127
131
131
131
131
133
134
136
136
136
136
138
142
142
143
143
150
150
152
152
153
153
158
158
159
159
160
161
163
163
163
164
164
168
168
169
169
169
169
169
170
170
170
170
170
170
171
172
172
179
182
182
182
185
186
186
188
188
188
189
189
190
190
197
199
199
200
201
201
201
201
201
202
202
202
204
204
204
205
205
205
206
206
206
206
206
206
207
207
207
207
207
207
208
208
209
209
209
209
216
217
218
219
224
225
226
226
226
227
227
227
227
227
227
228
228
229
230
230
236
238
238
238
239
239
239
240
241
241
241
241
242
242
243
243
244
244
244
244
244
245
245
249
249
250
253
253
255
256
256
256
257
257
259
259
259
260
260
261
268
271
272
272
272
273
273
273
273
275
275
275
275
275
275
275
275
275
276
277
277
277
277
277
277
278
278
278
278
278
278
280
280
280
280
288
292
293
293
296
303
306
309
309
310
310
311
312
312
313
313
313
313
314
314
315
315
315
320
321
321
321
323
323
333
333
333
338
338
340
342
342
343
343
343
347
347
348
348
348
350
351
352
352
352
352
359
359
359
359
360
362
372
377
382
382
384
385
388
388
389
389
390
390
395
400
400
401
405
406
416
416
417
418
418
418
419
421
421
421
421
421
423
423
423
423
425
426
426
426
426
427
433
434
434
434
436
436
436
436
439
446
446
452
453
455
455
455
455
456
456
456
457
457
458
460
460
460
461
461
462
462
463
464
472
472
472
472
481
485
486
486
489
493
493
494
494
498
498
498
498
501
501
501
506
506
514
518
519
525
527
527
529
530
530
538
539
539
539
539
540
546
547
547
547
548
549
549
553
553
559
559
566
567
568
568
569
569
570
572
590
595
595
614
619
619
634
636
639
652
657
657
673
678
678
691
696
696
714
717
717
719
719
738
743
743
756
758
763
763
782
784
784
787
787
805
810
810
824
827
829
847
852
852
871
876
876
891
893
896
909
914
914
930
935
935
948
953
953
971
974
974
976
976
995
1000
1000
1015
1020
1020
1039
1041
1041
1044
1044
1062
1067
1067
1081
1084
1086
1104
1109
1109
1128
1133
1133
1148
1150
1153
1668
1672
1673
7
7
8
10
11
11
12
13
13
13
14
14
17
18
18
18
19
20
20
20
20
20
22
22
23
23
23
24
24
24
25
29
29
29
33
33
33
34
34
34
35
35
36
38
40
40
40
40
42
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
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
47
47
47
47
47
48
49
49
49
49
49
49
55
55
57
59
59
60
60
61
61
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
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
77
77
77
77
77
78
78
78
78
78
80
82
93
94
96
96
97
97
97
98
98
99
99
100
100
101
105
105
105
105
105
105
105
105
106
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
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
113
113
115
115
115
118
118
118
121
123
126
126
126
127
127
128
128
132
132
132
132
133
134
134
136
136
139
143
144
144
150
159
159
160
161
162
162
162
164
164
164
165
165
169
169
169
169
170
170
170
170
170
170
170
170
170
170
170
171
171
171
171
171
171
171
173
173
174
178
180
180
183
184
184
185
185
186
186
187
187
188
189
189
189
189
190
190
191
191
198
199
201
201
202
202
202
202
203
203
204
205
205
205
205
206
206
206
206
206
206
206
206
206
206
207
207
207
207
207
207
208
208
208
208
208
208
208
217
219
220
224
225
226
227
227
228
228
228
228
228
229
229
229
229
229
230
231
231
238
238
239
239
239
240
241
241
241
241
241
241
242
242
242
242
244
244
245
245
245
245
246
246
250
250
255
255
256
256
256
257
258
258
259
260
260
260
260
261
261
261
262
262
262
267
269
272
273
273
273
274
274
274
275
276
276
276
276
276
276
277
277
277
277
277
277
277
277
278
278
278
278
278
278
279
279
279
279
279
279
288
293
294
294
297
304
304
304
304
307
310
310
311
311
312
312
313
313
314
314
315
315
315
316
316
316
316
320
320
320
321
322
322
322
331
334
334
334
339
339
343
344
344
344
344
348
348
349
349
349
351
351
353
353
353
353
360
360
361
363
372
373
375
375
378
383
383
385
386
386
389
389
390
390
391
391
396
401
401
401
406
407
411
417
417
417
417
417
418
419
419
419
420
422
424
424
424
424
427
427
428
433
433
433
434
435
435
435
437
437
440
444
447
447
453
456
456
456
457
457
457
457
458
458
458
459
459
461
461
462
462
462
463
463
464
464
473
473
482
485
486
487
487
488
488
490
494
494
495
495
499
499
499
499
499
502
502
502
507
507
514
519
520
526
530
530
530
530
531
531
540
540
541
546
546
546
547
548
548
548
549
554
554
557
560
560
568
569
570
570
571
573
591
596
596
615
620
620
635
637
640
653
658
658
674
679
679
692
697
697
715
720
720
739
744
744
758
759
764
764
783
788
788
806
811
811
825
828
830
848
853
853
872
877
877
892
894
897
910
915
915
931
936
936
949
954
954
972
977
977
996
1001
1001
1016
1021
1021
1040
1045
1045
1063
1068
1068
1082
1085
1087
1105
1110
1110
1129
1134
1134
1149
1151
1154
1669
1673
1674
9
11
13
13
13
13
14
15
15
17
17
18
19
19
20
20
21
22
22
23
23
24
24
24
24
25
25
29
30
33
33
34
34
34
34
34
35
35
36
36
37
37
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
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
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
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
49
49
49
52
52
56
56
56
57
57
58
60
60
61
61
62
62
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
71
72
72
72
72
72
72
72
73
73
73
73
75
75
77
78
79
81
83
94
95
98
98
98
98
99
99
100
100
100
100
100
100
100
100
102
104
104
104
104
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
108
108
108
108
108
108
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
110
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
115
115
116
116
116
117
118
119
119
122
124
127
127
128
128
129
129
131
131
133
133
133
133
134
134
134
134
134
134
136
136
136
136
136
136
140
142
142
144
145
145
150
154
155
159
160
160
161
162
163
165
165
165
166
166
168
170
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
171
172
172
172
172
172
172
172
179
180
181
184
184
185
187
188
188
188
188
189
189
189
190
190
190
191
191
192
199
199
201
202
202
203
203
203
203
204
204
206
206
206
207
207
207
207
208
208
208
208
208
208
208
209
209
209
209
209
209
217
218
220
222
224
224
225
225
227
228
228
228
228
228
229
229
229
230
230
230
231
236
236
237
240
241
241
241
242
242
242
242
242
242
242
242
243
243
243
243
244
244
245
245
246
246
246
246
251
251
254
255
256
257
259
259
259
259
260
260
260
261
261
261
261
262
262
263
263
268
270
270
273
274
274
274
274
275
275
275
277
277
277
278
278
279
279
279
279
279
279
280
280
280
280
280
280
289
292
293
294
295
295
298
302
305
305
306
308
311
311
312
312
313
313
315
315
316
316
317
317
317
317
322
323
323
323
332
332
335
340
340
342
342
344
345
348
349
349
350
350
350
354
354
354
354
355
360
362
364
372
376
376
379
384
384
386
387
387
387
391
391
392
392
397
402
402
405
407
408
412
416
418
418
418
419
420
420
420
421
423
425
425
425
425
426
426
428
428
435
436
436
436
438
438
441
445
445
448
452
454
455
455
457
457
457
458
459
461
462
462
463
463
463
464
464
473
483
485
488
488
489
489
491
495
495
496
496
500
500
500
500
500
500
503
508
518
520
521
527
531
531
532
532
539
539
541
541
548
549
549
549
550
555
555
558
558
568
568
569
570
572
574
592
597
597
616
621
621
636
638
641
654
659
659
675
680
680
693
698
698
716
721
721
740
745
745
758
760
765
784
789
789
807
812
812
826
829
831
849
854
854
873
878
878
893
895
898
911
916
916
932
937
937
950
955
955
973
978
978
997
1002
1002
1017
1022
1041
1046
1046
1064
1069
1069
1083
1086
1088
1106
1111
1111
1130
1135
1135
1150
1152
1155
1670
1674
1675
7
7
11
11
12
13
13
13
13
14
15
19
20
20
21
21
22
24
24
24
24
25
25
25
25
25
25
26
31
33
33
33
34
35
35
35
35
36
36
36
37
37
37
38
38
39
39
39
39
39
39
40
40
40
40
40
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
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
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
48
48
49
57
57
58
58
58
59
61
61
63
63
70
70
70
70
70
71
71
71
71
71
71
71
71
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
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
82
84
84
85
95
96
99
99
100
100
101
101
101
101
101
101
103
103
103
103
103
104
104
104
105
105
105
105
105
105
105
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
109
111
111
111
111
111
111
111
111
111
112
112
112
112
112
112
112
112
112
112
112
112
112
113
113
113
113
113
113
113
113
113
113
114
114
115
117
117
117
117
117
118
118
118
118
119
119
119
120
123
124
125
128
128
129
129
130
130
132
132
132
132
134
134
135
135
137
137
137
137
141
143
143
145
146
146
154
154
154
155
155
155
159
160
161
162
162
162
163
164
166
166
166
167
167
168
169
169
171
172
172
172
172
172
172
172
172
173
173
173
173
173
173
173
180
182
185
186
186
187
187
189
189
190
190
190
191
191
191
191
191
191
192
192
192
193
199
199
200
202
203
203
204
204
205
205
205
206
206
206
207
207
208
208
208
208
209
209
209
209
210
210
210
210
217
218
220
220
221
223
225
225
226
226
226
226
226
227
227
227
227
228
229
230
230
231
231
231
232
234
237
237
237
238
240
241
242
243
243
243
243
243
243
244
244
244
244
245
246
247
247
250
252
252
254
255
257
257
260
260
261
261
261
262
262
262
262
262
262
263
263
263
264
264
264
271
271
274
274
275
275
276
276
276
276
276
277
277
277
278
278
279
279
280
280
280
280
280
280
281
281
281
281
282
288
293
294
295
295
296
299
305
307
309
312
312
313
313
314
317
317
318
318
318
318
321
323
324
324
336
341
341
343
346
349
349
350
350
351
351
351
351
355
355
355
355
356
360
360
363
365
373
375
377
377
377
380
385
385
387
388
392
392
393
393
395
398
401
403
403
406
408
408
417
418
419
420
420
421
421
421
422
422
424
426
426
426
426
427
434
436
437
437
439
442
453
455
456
458
458
459
460
462
462
463
463
464
464
464
464
465
465
473
484
486
488
489
489
490
490
490
492
496
496
497
497
501
501
501
501
504
508
509
514
519
521
521
528
531
533
533
540
547
549
550
550
551
556
556
569
570
573
575
593
598
598
617
622
622
637
639
642
655
660
660
676
681
681
694
699
717
722
722
741
746
746
761
766
785
790
790
808
813
813
827
830
832
850
855
855
874
879
879
894
896
899
912
917
917
933
938
938
951
956
974
979
979
998
1003
1003
1018
1023
1042
1047
1047
1065
1070
1070
1084
1087
1089
1107
1112
1112
1131
1136
1136
1151
1153
1156
1671
1675
1676
1
7
7
8
8
8
8
11
13
13
13
13
13
14
14
16
16
20
20
20
21
22
22
22
23
25
25
26
26
26
26
27
29
32
33
33
34
34
34
35
36
36
36
36
36
36
36
36
37
38
38
39
39
39
39
39
39
40
40
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
43
43
43
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
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
49
49
58
59
59
59
60
60
60
61
61
61
61
62
62
64
64
67
67
68
68
68
68
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
72
72
72
72
72
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
75
83
83
84
84
84
85
85
85
85
85
96
97
99
99
99
101
101
101
101
101
101
101
101
101
102
102
102
104
104
104
104
104
104
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
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
109
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
111
111
111
111
111
111
112
112
112
112
113
113
113
113
113
116
117
118
118
118
119
119
119
119
119
120
120
120
120
121
124
124
126
126
129
129
130
130
131
131
132
132
133
133
133
133
133
133
135
135
135
135
135
137
137
137
137
137
137
137
137
138
138
142
142
144
144
147
147
152
153
155
155
155
155
156
156
156
156
162
163
163
163
164
165
167
167
167
168
168
168
169
169
169
169
170
171
171
171
172
172
172
172
172
172
172
173
173
174
174
174
174
174
174
181
182
182
183
186
186
187
187
189
190
191
191
191
192
192
192
192
192
192
192
193
193
194
200
200
201
201
201
201
203
204
205
205
205
205
205
206
206
206
207
207
207
208
208
208
208
208
208
208
208
209
209
210
210
221
221
222
227
227
227
227
228
228
228
228
228
229
231
231
232
232
233
235
235
237
238
240
240
240
241
242
242
242
243
243
243
243
243
243
243
244
244
245
245
245
245
246
247
248
248
250
253
253
253
253
255
256
257
258
258
260
261
262
262
262
262
263
263
263
263
263
263
264
264
272
272
276
276
276
276
276
276
277
277
277
277
277
278
278
278
279
279
279
279
281
281
281
281
283
292
294
295
297
300
305
308
310
310
313
313
313
313
314
314
315
318
318
319
319
319
319
322
322
334
337
342
342
342
342
344
347
349
351
351
351
352
352
352
352
356
356
356
356
361
364
366
367
375
376
381
386
386
388
389
389
393
393
394
394
396
399
404
404
405
407
418
418
420
422
422
422
423
423
425
426
427
427
427
427
428
435
435
438
440
441
443
447
454
455
455
456
456
457
459
459
459
460
461
462
464
464
464
465
465
465
465
466
466
480
485
488
489
490
490
493
497
497
498
498
502
502
502
502
502
505
507
507
509
510
518
520
529
531
534
534
539
541
548
548
552
557
557
560
568
568
570
571
574
576
594
599
599
618
623
623
638
640
643
656
661
661
677
682
682
695
698
698
700
718
723
723
742
747
747
762
764
764
767
786
791
791
809
814
814
828
831
833
851
856
856
875
880
880
895
897
900
913
918
918
934
939
939
952
955
955
957
975
980
980
999
1004
1004
1019
1021
1021
1024
1043
1048
1048
1066
1071
1071
1085
1088
1090
1108
1113
1113
1132
1137
1137
1152
1154
1157
1672
1676
1677
1
1
7
7
7
7
8
8
11
13
14
14
15
15
17
17
17
17
20
20
20
21
21
21
22
25
26
26
27
27
27
27
28
33
33
33
33
33
34
35
35
36
36
37
37
37
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
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
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
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
50
50
51
56
59
60
61
61
61
62
62
63
65
65
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
70
70
70
70
70
71
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
73
73
73
74
74
74
74
74
74
75
75
77
77
78
81
84
84
85
85
85
85
86
86
86
86
86
86
97
98
99
99
99
100
100
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
103
103
103
105
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
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
109
109
109
109
110
110
110
110
110
110
110
110
110
110
110
111
111
111
111
111
111
112
112
112
113
113
113
113
113
113
113
113
113
116
117
117
117
117
117
118
119
119
119
119
119
120
120
120
120
120
121
121
122
125
127
130
130
131
131
132
132
133
134
134
134
134
135
135
135
136
136
136
136
138
138
138
138
139
139
142
143
148
148
153
154
155
155
156
156
156
156
157
157
163
164
164
164
166
168
168
168
169
169
169
170
170
170
170
170
170
171
171
171
171
171
171
171
171
171
171
172
172
172
172
173
173
173
173
173
173
173
174
182
182
184
186
186
187
187
188
188
189
190
191
191
192
192
193
193
193
193
193
194
194
202
202
202
202
202
205
206
206
207
207
207
208
208
208
209
209
210
210
211
211
222
222
228
228
229
229
229
230
230
232
234
240
241
241
241
241
242
242
242
242
242
242
242
242
243
243
243
244
244
244
244
244
244
244
244
244
245
245
245
245
246
246
248
249
249
253
254
254
254
256
257
257
257
258
259
259
260
261
262
263
263
263
263
264
264
264
264
264
265
265
273
273
276
277
277
278
278
278
278
279
279
279
282
282
282
282
284
284
293
293
295
295
296
298
301
309
313
313
314
314
314
314
315
315
319
319
320
320
320
320
334
338
342
342
343
343
343
343
348
349
351
352
352
352
353
353
353
353
357
357
357
357
362
365
367
368
368
368
376
376
377
377
382
387
387
389
389
390
394
394
395
395
397
397
400
405
405
406
406
408
408
419
423
423
423
424
424
426
426
426
427
428
428
428
428
441
442
444
447
455
455
455
456
456
460
460
460
461
462
462
464
465
465
465
466
466
466
466
467
467
481
481
481
486
489
489
490
490
491
491
494
498
498
499
499
502
503
503
503
503
506
508
510
510
511
519
519
521
521
530
535
535
539
539
540
553
558
558
560
568
568
569
569
575
577
595
600
600
619
624
624
641
644
657
662
662
678
683
683
696
699
701
719
724
724
743
748
748
763
765
768
787
792
792
810
815
815
832
834
852
857
857
876
881
881
898
901
914
919
919
935
940
940
953
956
958
976
981
981
1000
1005
1005
1020
1022
1025
1044
1049
1049
1067
1072
1072
1089
1091
1109
1114
1114
1133
1138
1138
1155
1158
1673
1677
1678
13
14
15
15
15
16
18
18
18
22
22
22
22
23
23
26
27
27
28
29
34
36
36
37
37
38
38
38
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
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
44
44
44
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
47
47
47
47
48
51
51
57
60
62
62
62
63
63
64
66
66
66
66
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
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
73
73
73
74
74
74
74
74
74
75
75
78
78
79
82
85
85
85
85
86
86
86
86
87
87
87
87
98
99
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
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
104
104
105
105
105
105
105
105
105
105
105
105
105
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
107
107
107
107
107
107
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
112
113
113
113
113
113
113
113
113
113
116
116
116
117
117
117
117
118
118
118
119
120
120
120
121
121
121
121
122
122
123
124
124
126
128
131
131
132
132
132
132
133
134
134
135
135
136
136
137
137
137
137
137
137
137
137
139
139
139
139
142
143
144
149
149
155
156
156
157
157
157
158
158
162
164
165
167
169
169
170
170
171
171
171
171
172
172
172
173
173
174
174
174
174
174
174
174
175
178
183
185
185
187
187
188
188
188
189
189
189
189
189
190
190
191
192
193
193
194
203
203
203
206
206
207
207
208
208
209
209
210
210
210
210
210
210
210
210
211
212
212
220
228
229
230
233
235
237
242
242
242
243
243
244
244
244
245
245
245
245
245
245
245
246
246
246
247
249
250
250
255
255
255
257
258
258
259
260
260
260
260
260
261
261
263
264
264
265
265
265
274
274
277
278
278
279
279
279
279
280
280
281
281
281
281
281
281
283
283
283
283
285
285
285
285
293
295
296
296
297
299
302
310
312
313
314
315
315
315
315
316
316
320
320
321
321
321
321
324
339
344
344
344
349
349
349
352
353
353
353
354
354
358
358
358
358
359
363
366
368
369
369
378
378
383
388
388
390
391
395
395
396
396
398
398
398
398
401
406
406
406
408
409
409
420
420
424
424
424
424
425
425
425
426
427
427
428
429
429
429
429
437
442
443
445
456
457
457
461
461
461
462
462
462
463
465
466
466
466
467
467
468
468
472
482
482
487
491
491
492
492
495
499
499
500
500
504
504
504
504
507
509
511
511
511
511
512
519
521
522
522
531
536
536
538
539
540
541
550
554
559
559
570
570
576
578
596
601
601
620
625
625
642
645
658
663
663
679
684
684
697
700
702
720
725
725
744
749
749
764
766
769
788
793
793
811
816
816
833
835
853
858
858
877
882
882
899
902
915
920
920
936
941
941
954
957
959
977
982
982
1001
1006
1006
1021
1023
1026
1045
1050
1050
1068
1073
1073
1090
1092
1110
1115
1115
1134
1139
1139
1156
1159
1674
1678
1679
7
7
8
8
11
11
14
15
16
16
16
19
19
20
20
22
23
23
24
27
27
27
28
29
30
35
37
38
38
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
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
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
49
52
52
58
60
60
61
63
63
63
63
65
67
67
67
67
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
74
74
74
75
75
75
79
83
85
86
86
87
87
87
88
88
88
88
98
99
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
103
104
104
104
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
105
105
105
105
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
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
109
110
110
110
110
110
111
112
114
114
114
117
117
117
117
118
118
119
119
119
119
119
119
120
120
120
120
121
121
121
122
122
125
125
127
129
132
132
132
132
133
133
133
134
134
134
136
136
136
136
136
136
136
136
136
136
137
137
137
138
138
138
138
138
138
143
144
145
149
150
150
155
155
155
156
156
156
156
157
157
158
159
165
166
168
170
170
170
171
171
171
171
171
172
172
172
173
173
173
174
174
174
175
175
175
175
175
176
179
184
187
187
189
189
189
189
189
190
190
190
190
191
191
191
191
191
191
192
192
192
192
193
194
203
204
207
207
207
207
207
207
208
208
208
208
209
210
210
210
210
211
211
211
211
211
211
212
213
213
217
227
228
228
229
231
232
234
234
236
236
237
241
242
242
242
242
243
243
244
244
245
245
245
246
246
246
246
246
247
247
247
248
250
251
251
255
255
256
256
257
257
257
258
258
260
260
260
261
261
261
261
262
262
262
262
262
263
263
263
263
264
264
264
264
265
266
266
275
275
276
276
277
277
278
278
279
279
279
279
280
280
280
281
281
282
282
282
282
283
284
284
284
284
285
285
286
286
293
295
296
297
297
298
300
300
303
303
311
313
315
316
316
316
316
317
317
321
321
322
322
322
322
324
340
340
343
343
345
345
345
350
350
350
351
351
351
353
354
354
355
355
359
359
359
359
360
360
360
360
364
367
367
368
369
369
369
369
369
369
370
376
377
377
377
379
379
384
389
389
389
389
391
392
396
396
396
397
397
398
398
399
399
402
406
407
407
408
409
410
410
421
425
425
425
425
426
426
426
428
428
429
430
430
430
430
437
443
444
446
453
457
458
458
462
462
462
463
463
463
464
464
464
464
466
467
467
468
468
469
469
473
473
473
473
481
482
482
482
482
483
488
489
490
490
490
492
492
493
493
496
500
500
501
501
502
502
505
505
505
505
508
509
510
511
511
512
512
513
519
521
522
523
523
532
537
537
539
541
542
550
555
560
560
566
571
571
577
579
597
602
602
621
626
626
643
646
659
664
664
680
685
685
698
701
703
721
726
726
745
750
750
758
765
767
770
789
794
794
812
817
817
834
836
854
859
859
878
883
883
900
903
916
921
921
937
942
942
955
958
960
978
983
983
1002
1007
1007
1022
1024
1027
1046
1051
1051
1069
1074
1074
1091
1093
1111
1116
1116
1135
1140
1140
1157
1160
1675
1679
1680
8
8
8
9
9
11
16
16
16
17
18
20
20
22
22
22
22
23
23
24
25
25
26
27
27
28
28
30
31
36
36
36
36
38
39
39
39
40
40
40
40
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
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
47
47
47
47
47
47
49
53
53
61
62
64
64
66
67
67
68
68
68
68
68
68
68
68
69
70
70
71
71
71
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
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
74
75
84
85
85
85
86
86
86
86
87
87
88
89
89
99
100
101
101
101
101
101
101
101
102
102
103
103
103
103
103
103
103
103
103
103
103
103
104
105
105
105
105
105
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
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
108
108
108
108
109
109
109
110
110
110
110
110
110
110
110
111
111
112
113
113
115
117
117
117
118
118
118
119
119
119
120
120
120
121
121
121
122
128
130
132
132
133
133
133
134
134
134
135
135
137
137
137
137
137
137
137
137
138
139
139
139
139
139
139
142
144
145
146
150
150
150
151
151
153
154
156
157
157
158
159
160
162
162
166
167
168
168
169
170
170
170
171
171
171
172
172
172
172
172
173
173
173
173
173
174
174
176
177
180
180
185
187
187
189
190
190
190
191
191
192
192
192
192
192
193
193
193
193
193
203
205
208
208
208
208
208
209
209
209
209
209
209
210
211
212
212
213
214
214
217
218
220
220
228
228
228
228
229
229
229
229
232
232
237
237
241
241
241
242
243
243
243
243
244
244
244
244
246
247
248
248
249
251
252
252
257
257
258
258
258
259
260
261
262
262
263
263
263
263
263
263
263
264
264
264
264
264
265
265
265
274
276
276
277
277
278
280
280
280
280
280
280
281
281
281
285
285
285
285
286
287
287
293
293
296
297
299
304
304
312
313
314
316
317
317
317
318
318
322
322
323
323
323
323
341
341
344
346
346
351
352
352
352
352
355
355
356
356
360
360
360
360
361
361
365
370
370
370
370
371
376
376
376
377
378
378
378
385
387
390
390
390
390
392
393
397
397
398
398
399
400
400
403
406
406
408
408
409
410
422
426
426
426
426
426
427
427
427
429
429
431
431
431
431
444
445
447
454
458
459
463
463
463
464
465
465
465
465
465
468
468
469
469
470
470
474
474
483
483
484
489
489
489
489
490
491
491
491
494
494
497
500
501
501
502
502
503
503
506
506
506
506
509
511
512
513
513
514
519
519
522
523
533
538
538
539
540
542
556
561
567
571
572
578
580
598
603
603
622
627
638
642
644
647
660
665
665
681
686
686
699
702
704
722
727
727
746
751
751
756
758
759
766
768
771
790
795
795
813
818
828
835
837
855
860
860
879
884
895
899
901
904
917
922
922
938
943
943
956
959
961
979
984
984
1003
1008
1008
1023
1025
1028
1047
1052
1052
1070
1075
1085
1092
1094
1112
1117
1117
1136
1141
1152
1156
1158
1161
1676
1680
1681
7
10
10
11
15
15
15
17
17
18
18
20
20
21
21
23
24
26
27
27
28
28
29
29
29
29
29
31
32
33
38
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
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
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
50
54
54
62
65
65
65
66
66
66
66
66
67
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
70
70
70
70
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
73
73
73
73
73
73
73
73
73
73
73
73
73
73
78
79
85
86
87
87
88
90
90
100
100
100
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
103
103
103
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
104
105
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
108
108
108
108
108
108
108
108
108
108
108
108
108
109
109
109
109
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
113
114
114
114
117
117
118
118
119
119
119
120
121
122
122
122
123
129
131
132
132
133
133
134
134
134
134
136
136
136
136
137
137
137
137
138
138
138
138
138
138
138
138
140
140
140
140
143
145
145
147
151
151
152
152
153
154
155
156
157
158
158
159
159
163
163
167
169
170
172
172
172
173
173
173
173
173
174
175
177
178
181
181
181
181
186
187
187
190
191
191
191
191
193
193
193
194
194
194
206
209
209
209
209
209
209
209
211
212
213
213
214
215
215
217
221
221
229
229
230
230
233
238
238
243
243
243
244
244
244
247
247
247
247
248
249
249
250
252
253
253
255
257
258
258
258
258
259
259
261
262
264
264
265
265
265
266
266
266
275
275
277
277
279
280
280
280
281
281
282
282
282
285
285
286
286
286
286
287
294
294
295
295
295
297
300
304
305
305
313
313
314
316
316
317
318
318
318
319
319
323
323
324
324
324
324
324
324
332
341
341
342
345
345
345
347
347
352
353
353
356
356
357
357
361
361
361
361
361
366
369
369
371
371
371
371
378
379
379
379
386
388
388
391
391
393
394
398
398
398
398
399
399
400
404
407
407
408
408
408
409
409
410
417
423
426
427
427
427
427
427
428
428
429
429
430
430
432
432
432
432
437
437
445
445
446
448
454
454
458
458
459
460
464
464
464
465
466
466
466
469
469
470
470
471
471
474
482
482
484
484
490
491
492
492
492
495
495
498
501
501
502
502
503
503
507
507
507
507
510
511
511
512
513
515
520
520
521
521
521
523
530
534
539
539
539
540
542
542
543
550
550
557
558
560
560
562
567
567
571
571
572
573
576
579
581
599
604
604
623
628
643
645
648
661
666
666
682
687
687
700
703
705
723
728
728
747
752
752
757
759
767
769
772
791
796
796
814
817
817
819
829
833
836
838
856
861
861
880
885
900
902
905
918
923
923
939
944
944
957
960
962
980
985
985
1004
1009
1009
1024
1026
1029
1048
1053
1053
1071
1074
1074
1076
1086
1090
1093
1095
1113
1118
1118
1137
1142
1157
1159
1162
1677
1681
1682
8
8
10
15
16
18
18
18
18
18
18
22
22
22
22
22
23
25
27
27
27
27
29
29
29
29
30
30
31
32
32
33
34
34
35
36
36
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
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
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
47
47
47
51
55
55
59
59
60
62
64
64
64
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
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
71
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
78
79
85
86
86
87
88
88
89
91
91
99
99
100
101
101
101
101
101
101
101
102
102
102
102
102
102
103
103
103
103
103
103
104
104
104
104
104
104
104
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
109
109
109
109
109
109
109
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
111
111
114
115
117
117
117
118
118
119
119
119
120
120
121
123
123
124
125
130
132
134
134
135
135
135
135
135
136
137
137
137
137
137
138
138
139
139
139
139
140
140
140
140
141
141
141
141
142
144
148
150
151
151
151
151
152
153
153
154
155
155
156
156
157
159
160
160
162
164
164
164
168
170
171
171
173
173
174
174
174
174
174
175
175
175
175
175
175
175
176
178
179
179
181
181
182
182
187
187
188
188
189
189
189
191
192
192
192
193
194
194
194
207
207
208
209
209
209
209
209
210
210
210
210
210
211
211
211
211
211
211
212
213
214
214
215
216
216
218
220
222
222
222
229
230
232
232
234
239
239
242
244
245
245
246
246
246
246
246
246
247
248
248
250
250
251
253
254
254
258
259
259
259
259
260
260
260
262
264
264
265
266
267
267
278
278
278
280
280
281
281
282
282
282
282
282
282
282
282
283
283
283
286
287
287
287
287
296
296
296
296
301
305
305
305
306
306
314
317
317
318
319
319
319
320
320
322
324
324
325
325
325
325
325
325
333
343
346
346
346
348
348
353
353
357
357
358
358
361
362
362
362
362
367
370
372
372
377
379
380
380
387
392
392
394
395
399
399
399
400
400
405
409
409
409
409
410
418
418
418
424
428
428
428
428
429
429
430
430
431
431
433
433
433
433
435
438
438
446
446
447
449
459
459
460
461
465
465
465
466
466
467
470
470
471
471
472
472
474
483
490
491
492
493
493
496
496
499
503
503
504
504
508
508
508
508
511
512
513
516
522
522
522
522
531
531
531
535
540
540
543
543
544
548
551
551
558
559
561
563
572
572
574
577
580
582
600
605
605
624
626
626
629
644
646
649
662
667
667
683
688
688
701
704
706
724
729
729
748
753
753
757
768
770
773
792
797
797
815
818
820
834
837
839
857
862
862
881
883
883
886
901
903
906
919
924
924
940
945
945
958
961
963
981
986
986
1005
1010
1010
1025
1027
1030
1049
1054
1054
1072
1075
1077
1091
1094
1096
1114
1119
1119
1138
1140
1140
1143
1158
1160
1163
1678
1682
1683
10
10
10
15
15
18
19
19
20
20
22
23
23
23
23
25
27
28
32
33
33
33
34
34
34
35
35
35
36
38
39
39
39
39
39
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
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
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
52
56
56
61
65
65
65
67
67
67
67
67
67
68
68
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
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
79
80
85
86
86
87
87
89
90
92
92
100
100
101
101
101
101
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
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
107
107
107
107
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
109
110
111
111
111
111
111
111
111
112
112
114
115
115
115
116
116
118
118
118
119
119
119
120
121
122
122
122
123
123
124
125
125
126
131
133
135
135
136
136
136
136
136
138
138
138
140
140
140
140
141
141
141
141
142
142
142
142
143
143
145
145
149
152
152
153
154
154
154
154
155
155
157
158
158
158
159
159
160
161
162
163
169
171
172
172
172
172
173
173
174
175
175
175
175
175
176
176
176
176
176
177
179
180
182
183
183
188
190
190
190
190
191
192
193
193
193
193
193
194
202
208
208
208
209
209
210
210
211
211
211
211
211
212
212
212
212
213
214
215
215
216
217
217
220
221
228
229
229
230
230
233
233
235
235
240
240
243
243
243
244
244
246
246
247
247
247
247
247
248
248
249
249
251
251
252
252
254
255
255
255
259
260
260
261
261
261
261
263
264
264
265
265
265
277
279
279
279
279
280
280
281
282
282
283
283
283
283
283
283
284
284
284
285
285
287
288
288
288
288
297
297
302
306
306
307
307
315
318
318
320
320
320
321
321
323
323
325
325
326
326
326
326
334
334
344
345
347
347
347
349
353
354
358
358
359
359
363
363
363
363
368
369
371
373
373
378
378
388
390
393
393
395
396
398
398
400
400
400
401
401
406
410
410
411
419
419
425
429
429
429
429
430
430
431
431
432
434
434
434
434
436
436
447
447
447
448
450
458
460
460
461
466
466
466
466
467
468
471
471
472
472
473
473
482
484
491
491
492
497
497
500
503
504
504
505
505
509
509
509
509
511
511
512
513
514
517
523
523
532
532
536
541
541
544
544
549
549
559
560
560
562
564
571
573
573
578
581
583
601
606
606
625
627
630
645
647
650
663
668
668
684
689
689
702
705
707
725
730
730
749
754
754
759
769
771
774
793
798
798
816
819
821
835
838
840
858
863
863
882
884
887
902
904
907
920
925
925
941
946
946
959
962
964
982
987
987
1006
1011
1011
1026
1028
1031
1050
1055
1055
1073
1076
1078
1092
1095
1097
1115
1120
1120
1139
1141
1144
1159
1161
1164
1679
1683
1684
8
8
10
19
20
20
22
22
22
23
23
23
23
24
24
26
27
27
28
28
29
29
29
29
30
33
33
33
34
34
34
35
35
36
36
36
36
36
36
36
37
37
37
37
37
37
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
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
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
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
47
47
53
57
57
62
64
65
65
66
66
66
67
67
68
68
68
68
68
68
68
68
70
70
70
70
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
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
79
79
80
80
87
88
88
88
88
89
89
90
91
93
93
98
100
100
100
100
100
101
101
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
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
105
105
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
106
106
107
108
108
108
108
108
108
108
108
108
108
108
108
108
109
109
109
109
109
109
109
110
111
111
111
111
112
112
112
113
113
114
115
115
117
117
117
119
120
120
122
123
123
123
124
124
125
126
127
132
134
134
136
136
136
137
137
137
137
137
139
139
141
141
142
142
142
142
143
143
143
145
146
146
150
151
151
153
153
155
155
158
158
159
159
159
159
160
160
161
162
163
163
164
164
167
170
171
172
173
173
173
174
174
174
174
175
176
177
178
180
181
181
181
183
189
191
191
192
192
193
193
193
193
194
194
194
194
194
194
194
194
203
203
203
203
209
209
209
209
210
210
210
210
211
211
212
212
214
215
216
216
217
218
218
221
221
222
222
229
229
229
229
230
230
230
230
231
231
236
236
241
241
245
245
245
245
249
252
252
253
253
255
255
256
256
256
257
261
261
262
262
264
264
264
264
265
265
265
265
277
280
280
281
281
281
281
282
284
284
285
285
285
285
285
286
286
289
289
289
289
297
303
305
306
306
306
306
307
308
308
316
316
321
321
321
322
322
326
326
327
327
327
327
335
335
335
335
345
345
348
350
355
359
359
360
360
364
364
364
364
369
369
369
370
374
374
389
390
394
394
396
397
398
398
399
399
401
401
402
402
407
409
409
410
412
418
419
419
419
419
420
426
429
430
430
430
430
431
431
433
435
435
435
435
448
448
448
448
449
451
458
462
467
467
467
468
469
472
472
473
473
474
474
482
482
483
493
498
498
501
503
505
505
506
506
510
510
510
510
511
511
512
512
515
518
523
531
532
532
532
532
533
537
542
542
542
560
561
561
561
561
563
565
571
579
582
584
602
607
607
626
628
631
646
648
651
664
669
669
685
690
690
706
708
726
731
731
750
755
755
759
772
775
794
799
799
817
820
822
836
839
841
859
864
864
883
885
888
903
905
908
921
926
926
942
947
947
963
965
983
988
988
1007
1012
1012
1029
1032
1051
1056
1056
1074
1077
1079
1093
1096
1098
1116
1121
1121
1140
1142
1145
1160
1162
1165
1680
1684
1685
10
10
10
18
20
20
20
21
21
23
24
24
25
25
27
27
27
29
29
29
30
30
30
30
31
33
33
34
34
35
35
36
36
37
37
37
38
38
38
39
39
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
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
46
46
46
46
46
46
54
56
56
58
58
58
63
65
65
66
66
66
66
67
67
67
67
67
67
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
71
71
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
88
89
89
89
89
90
90
91
92
94
94
97
97
99
99
99
99
99
99
99
100
101
101
101
101
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
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
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
106
106
107
108
108
108
109
109
109
109
109
109
109
109
110
111
111
111
111
113
113
113
114
114
115
116
116
117
118
118
118
121
124
124
125
125
127
127
133
135
135
135
135
136
137
137
137
137
138
138
138
138
139
139
139
139
140
140
142
142
143
144
144
145
146
147
147
151
152
154
155
156
156
158
159
159
160
160
160
161
161
165
165
172
172
173
173
174
174
174
174
176
176
177
177
178
179
181
182
182
190
191
192
194
194
194
195
195
195
195
195
195
204
204
210
210
210
210
210
210
213
213
214
214
215
216
217
217
218
219
219
223
223
230
230
231
231
237
237
237
242
242
245
245
245
247
250
253
253
254
254
256
256
257
257
257
257
258
262
262
262
265
265
266
266
267
281
281
281
281
281
283
285
285
286
286
286
287
287
290
290
290
290
297
304
307
307
308
309
309
313
317
322
322
322
323
323
325
327
327
328
328
328
328
333
335
335
336
336
341
345
346
346
349
351
356
360
360
361
361
365
365
365
365
368
369
370
370
371
375
375
380
390
395
395
397
398
400
400
402
402
403
403
408
410
410
413
420
420
421
426
427
431
431
431
431
432
432
434
436
436
436
436
438
446
448
448
449
449
450
452
454
458
459
463
468
468
468
469
470
473
473
474
474
475
475
481
482
483
484
493
494
499
499
502
506
506
507
507
511
511
511
511
513
513
516
519
523
533
533
534
538
539
543
543
551
559
561
561
561
562
562
564
566
567
571
572
580
583
583
585
585
603
608
608
627
629
632
647
649
649
652
652
665
670
670
686
691
691
707
709
727
732
732
751
756
756
773
776
795
800
800
818
821
823
837
840
840
842
842
860
865
865
884
886
889
904
906
906
909
909
922
927
927
943
948
948
964
966
984
989
989
1008
1013
1013
1030
1033
1052
1057
1057
1075
1078
1080
1094
1097
1097
1099
1099
1117
1122
1122
1141
1143
1146
1161
1163
1163
1166
1166
1681
1685
1686
1
2
8
8
10
15
18
18
22
25
25
26
26
29
30
31
31
31
31
32
33
34
34
34
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
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
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
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
55
57
57
59
64
66
66
66
66
68
68
68
68
68
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
72
72
72
72
72
72
72
73
73
74
74
90
90
90
91
91
95
95
98
98
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
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
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
105
105
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
107
107
107
107
108
108
108
109
111
112
114
114
114
115
115
116
116
116
117
119
119
119
120
120
120
120
122
122
122
123
123
134
136
136
137
137
138
138
138
139
139
139
139
140
140
140
140
140
140
141
141
143
143
143
143
145
145
145
145
146
147
151
152
153
154
155
157
158
159
159
160
160
161
163
164
164
164
166
166
172
173
174
174
175
175
175
175
176
176
176
176
176
176
177
177
178
178
179
180
181
181
182
183
183
190
191
191
192
194
194
195
195
196
196
196
196
204
208
209
210
211
211
211
212
212
214
214
215
215
216
217
218
218
218
218
219
220
220
220
220
221
222
222
222
224
224
230
231
233
238
238
238
238
238
243
243
243
243
245
246
246
247
247
247
247
247
247
247
248
254
254
255
255
257
258
258
258
258
259
261
262
263
263
265
266
267
279
281
282
282
282
282
283
283
283
284
286
286
287
287
287
288
288
291
291
291
291
305
306
306
308
308
310
310
313
314
316
316
318
323
323
323
324
324
325
328
328
329
329
329
329
336
337
337
341
346
347
347
350
352
352
357
361
361
362
362
366
366
366
366
369
371
371
372
376
376
380
391
396
396
396
398
399
401
401
403
403
404
404
409
411
414
419
419
421
421
426
427
428
429
429
432
432
432
433
433
435
437
437
437
437
438
449
450
450
451
453
454
459
460
464
465
469
469
469
470
471
474
474
475
475
476
476
482
484
485
493
495
500
500
503
507
507
508
508
509
512
512
512
512
514
514
517
520
532
532
534
534
539
539
540
542
542
544
544
551
562
562
563
563
565
567
567
572
573
581
586
586
604
609
609
628
630
633
648
653
653
666
671
671
687
692
708
710
728
733
733
752
757
757
774
777
796
801
801
819
822
824
838
843
843
861
866
866
885
887
890
905
910
910
923
928
928
944
949
965
967
985
990
990
1009
1014
1014
1031
1034
1053
1058
1058
1076
1079
1081
1095
1100
1100
1118
1123
1123
1142
1144
1147
1162
1167
1167
1682
1686
1687
1
1
2
3
10
10
10
20
20
20
21
23
25
25
27
27
27
29
29
31
31
32
33
35
36
36
36
36
36
36
36
36
36
36
37
37
38
38
38
38
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
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
43
43
43
43
43
43
43
43
43
43
45
45
45
45
45
45
46
46
46
46
46
47
47
56
58
58
60
65
66
66
66
66
66
67
67
67
67
67
67
67
67
67
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
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
73
73
73
74
74
74
74
75
75
75
75
88
88
89
89
91
95
95
96
96
97
97
97
97
97
97
97
99
99
99
101
101
101
101
101
101
101
101
101
101
102
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
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
105
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
108
108
108
108
108
109
110
112
113
114
115
115
115
117
118
118
118
119
119
119
120
120
120
121
121
121
121
122
123
123
123
123
124
124
133
135
135
137
137
137
137
138
138
140
140
140
140
140
140
140
140
140
141
141
141
141
141
141
142
146
146
146
146
147
151
151
152
153
158
158
158
159
159
160
161
161
162
163
163
163
164
165
165
165
173
173
174
174
174
175
175
176
176
176
177
177
177
177
178
178
179
179
180
180
181
181
181
181
182
182
183
183
184
184
191
191
191
191
192
192
192
194
194
194
195
195
195
195
196
197
197
204
208
209
209
209
209
210
212
212
212
212
212
212
215
216
216
217
218
220
221
221
221
221
221
221
221
222
223
223
223
230
230
230
231
231
231
233
236
238
238
239
239
239
243
244
244
244
244
245
245
247
247
248
248
248
248
248
249
255
255
256
256
258
258
259
259
259
259
262
262
262
262
264
264
265
265
265
266
266
266
280
280
283
283
283
283
283
283
283
284
285
287
287
288
288
288
289
292
292
292
292
306
307
311
311
313
317
317
319
324
324
324
325
325
329
329
330
330
330
330
335
335
337
345
347
348
351
353
353
353
353
353
358
360
362
362
363
363
367
367
369
370
372
372
377
377
392
397
397
397
399
400
402
404
404
405
405
410
412
415
420
426
429
430
430
431
433
433
433
434
434
434
436
438
438
438
438
447
448
448
450
452
454
458
460
461
465
466
466
466
466
470
470
470
471
472
473
475
475
476
476
477
477
482
483
485
496
501
504
508
508
509
509
510
512
513
513
515
516
518
521
533
539
540
543
543
545
545
561
561
563
563
566
568
571
573
574
582
587
587
605
610
610
629
631
634
649
654
654
667
672
672
688
691
691
693
702
709
711
729
734
734
753
758
769
773
775
778
797
802
802
820
823
825
839
844
844
862
867
867
886
888
891
906
911
911
924
929
929
945
948
948
950
959
966
968
986
991
991
1010
1015
1026
1030
1032
1035
1054
1059
1059
1077
1080
1082
1096
1101
1101
1119
1124
1124
1143
1145
1148
1163
1168
1168
1683
1687
1688
3
4
8
8
10
10
10
10
18
18
20
21
24
25
25
28
28
28
31
31
31
31
33
36
36
37
37
37
38
38
38
39
39
39
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
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
46
46
46
48
48
57
59
61
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
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
70
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
73
74
74
76
76
76
76
79
79
80
80
88
89
89
89
90
90
92
96
96
97
97
98
98
98
98
98
98
98
99
99
100
100
100
100
100
100
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
104
104
104
104
104
104
104
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
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
108
108
108
109
109
109
109
109
109
109
109
109
109
109
110
110
110
110
110
110
111
111
113
113
114
114
115
115
116
116
116
118
118
119
119
120
121
121
122
122
122
122
123
123
123
124
124
124
125
125
134
135
136
136
138
140
140
141
141
141
141
141
141
141
141
141
141
141
142
142
142
142
142
142
143
147
147
147
147
150
151
152
153
154
154
155
156
156
159
159
159
160
160
161
162
165
166
166
166
170
174
175
175
175
175
175
176
177
179
179
180
180
183
183
184
184
185
185
192
192
193
193
193
194
194
194
195
195
196
196
196
198
198
208
209
209
210
210
210
211
213
213
213
213
213
213
213
213
213
216
217
217
218
219
221
222
222
222
222
223
224
224
224
231
231
232
232
239
240
240
240
245
245
246
246
246
246
247
249
250
256
257
258
259
259
259
259
260
260
260
263
263
265
265
266
266
267
267
267
267
275
281
281
284
284
284
284
284
284
284
284
284
284
284
286
288
288
288
288
289
289
289
290
293
293
293
293
296
306
307
308
312
312
314
316
318
318
318
320
325
325
325
325
325
326
326
330
331
331
331
336
341
346
348
348
352
354
354
354
359
361
361
361
363
363
364
364
368
368
369
370
372
372
373
373
378
378
380
380
388
393
397
397
398
398
400
401
401
401
403
405
406
409
411
413
416
419
421
427
429
430
431
431
431
434
434
434
435
435
435
437
438
438
439
439
439
439
448
449
450
453
454
455
459
461
461
466
467
467
471
471
471
472
473
474
474
474
476
477
478
478
482
483
485
485
486
493
493
497
501
502
505
509
509
510
510
510
510
514
514
514
514
516
517
519
522
522
532
534
540
541
542
544
544
544
546
546
551
551
562
564
567
567
569
572
574
574
583
588
588
606
611
611
630
632
635
650
655
655
668
673
673
689
692
694
703
707
710
712
730
735
735
754
759
774
776
779
798
803
803
821
824
826
840
845
845
863
868
868
887
889
892
907
912
912
925
930
930
946
949
951
960
964
967
969
987
992
992
1011
1016
1031
1033
1036
1055
1060
1060
1078
1081
1083
1097
1102
1102
1120
1125
1125
1144
1146
1149
1164
1169
1169
1684
1688
1689
4
4
5
5
10
10
10
10
11
11
20
20
20
20
21
25
25
26
27
27
29
29
29
29
29
31
31
31
31
32
32
34
36
37
38
38
38
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
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
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
46
46
46
49
49
58
60
62
65
65
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
75
75
77
77
77
77
79
80
88
88
89
89
89
90
90
90
91
91
93
97
97
98
99
99
99
99
99
99
99
99
99
99
99
100
100
100
101
101
102
102
102
102
102
102
102
102
102
102
103
104
104
104
104
104
104
104
104
104
104
104
105
105
105
106
106
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
107
107
107
107
107
108
108
109
109
109
109
109
109
109
109
109
109
109
110
111
111
114
114
115
115
117
117
119
120
120
122
122
123
123
124
124
124
125
125
125
125
125
125
126
126
126
127
135
136
136
137
137
139
139
142
142
142
142
142
142
142
142
142
142
143
143
143
143
143
143
143
143
144
144
148
148
148
148
151
153
154
155
157
159
159
160
160
160
160
161
161
161
162
162
162
163
164
166
167
167
175
175
175
175
175
175
176
177
178
178
179
180
180
181
181
181
184
184
185
185
186
186
192
193
194
194
195
195
195
195
195
195
195
195
196
196
196
196
196
197
199
199
209
211
211
211
211
212
213
213
213
213
214
214
214
214
214
217
217
218
218
219
219
220
222
222
223
223
223
223
224
225
225
229
230
231
231
231
231
232
232
232
232
232
233
233
233
238
238
240
241
246
246
246
246
246
248
250
255
256
257
258
258
259
260
260
260
261
261
261
263
264
265
265
266
266
266
266
266
266
267
267
267
267
267
268
268
268
276
282
282
282
284
284
284
284
285
285
285
285
285
287
289
289
289
289
290
290
290
291
294
294
294
294
297
297
297
297
306
306
307
308
313
313
316
317
321
323
326
326
326
326
326
327
327
329
329
330
330
331
332
332
332
335
335
337
345
347
353
354
355
360
362
362
364
364
365
365
366
366
366
366
369
369
373
373
374
374
378
379
379
381
381
389
394
399
399
401
402
402
402
404
404
404
405
405
406
407
410
410
410
410
412
414
417
419
419
420
429
430
431
435
435
435
436
436
436
436
438
439
439
440
440
440
440
448
448
450
451
454
456
458
460
467
467
472
472
472
473
474
475
475
475
475
476
476
477
478
479
479
486
486
487
491
494
494
498
500
500
502
503
506
510
510
511
511
512
512
512
512
515
515
515
515
517
518
520
523
523
523
523
523
532
532
533
542
542
543
547
547
549
552
552
561
561
563
568
570
571
573
584
589
589
607
612
612
631
633
636
651
656
656
669
674
674
690
693
695
708
711
713
731
736
736
755
757
757
759
760
775
777
780
799
804
804
825
827
841
846
846
864
869
869
888
890
893
908
913
913
926
931
931
947
950
952
965
968
970
988
993
993
1012
1014
1014
1017
1032
1034
1037
1056
1061
1061
1082
1084
1098
1103
1103
1121
1126
1126
1145
1147
1150
1165
1170
1170
1685
1689
1690
5
5
6
6
8
12
12
18
18
21
25
25
26
26
27
27
27
27
28
28
30
31
31
31
31
32
32
33
35
36
36
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
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
43
43
43
43
43
43
43
43
43
43
43
43
43
43
45
46
46
46
46
46
50
50
61
63
64
65
65
65
65
66
66
66
66
66
66
66
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
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
72
72
72
73
73
73
73
73
73
73
73
74
74
74
74
76
76
78
78
78
78
89
89
90
90
90
91
91
91
91
92
92
92
94
98
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
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
104
104
104
104
104
105
105
105
105
105
105
105
106
106
106
106
106
106
106
106
106
106
106
106
106
107
107
107
108
108
108
108
109
109
109
109
109
110
110
110
110
110
111
111
111
111
112
112
115
115
116
116
116
116
117
118
120
121
121
121
123
123
123
124
125
125
125
126
126
126
126
126
126
126
126
126
127
127
127
136
136
137
137
138
139
139
139
140
140
141
141
142
142
142
142
142
142
143
143
144
144
144
144
144
144
144
144
145
145
145
145
145
149
149
149
149
151
152
154
156
158
161
161
162
162
162
163
163
163
164
165
165
173
173
175
176
176
176
176
176
177
177
177
178
178
180
181
181
181
182
182
182
185
186
186
187
187
192
192
192
194
195
195
196
196
196
196
197
197
197
198
200
200
203
209
210
211
211
211
212
213
213
214
214
214
215
215
215
215
215
219
219
220
220
221
223
223
223
224
224
224
224
230
231
231
232
232
233
233
233
234
234
234
239
242
244
246
247
247
247
247
248
248
248
248
250
250
250
251
258
259
259
260
261
261
261
262
262
263
263
263
265
266
266
266
267
267
267
267
268
268
268
269
277
277
282
282
282
282
284
284
285
285
286
286
286
286
286
286
288
288
290
290
290
290
291
291
291
295
295
295
295
298
298
305
306
307
308
309
314
314
317
317
318
318
322
324
324
327
327
327
328
328
330
331
332
333
333
333
335
335
336
336
346
346
347
348
348
354
354
356
361
361
362
362
362
362
363
365
365
366
367
367
370
370
374
374
375
379
379
380
380
390
390
395
400
400
401
402
403
403
403
405
406
407
408
411
411
413
415
418
418
419
420
421
430
430
431
431
432
436
436
436
437
437
437
437
437
439
441
441
441
441
448
448
449
449
452
455
457
459
459
461
461
467
468
473
473
473
474
474
475
475
475
475
475
476
476
477
478
479
480
480
487
487
492
492
499
501
503
503
504
507
511
511
512
513
513
514
516
516
516
516
519
521
524
524
524
531
532
533
534
543
543
543
544
544
548
548
550
550
561
561
562
562
569
571
572
572
574
574
585
590
590
608
613
613
634
637
652
657
657
670
675
675
691
694
696
709
712
714
732
737
737
756
757
758
759
760
761
776
778
781
800
805
805
826
828
842
847
847
865
870
870
891
894
909
914
914
927
932
932
948
951
953
966
969
971
989
994
994
1013
1015
1018
1033
1035
1038
1057
1062
1062
1083
1085
1099
1104
1104
1122
1127
1127
1148
1151
1166
1171
1171
1686
1690
1691
7
7
12
13
20
20
20
21
25
25
25
27
27
27
29
29
29
31
31
32
33
33
34
34
36
36
36
37
37
37
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
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
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
47
51
51
56
60
62
62
64
64
65
65
65
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
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
71
71
71
71
71
71
72
72
72
72
72
72
72
72
73
74
74
74
74
74
74
75
75
75
75
77
79
79
79
79
89
90
91
91
91
92
92
92
92
92
93
93
95
99
99
99
99
99
99
99
99
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
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
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
107
107
107
107
107
107
109
109
109
109
110
110
110
110
111
111
111
111
112
116
116
116
117
117
119
119
120
120
120
121
121
122
122
123
124
124
124
125
126
126
126
126
127
127
127
127
127
128
128
135
137
138
139
139
140
140
140
140
141
141
141
141
141
141
141
141
141
142
142
143
143
143
143
143
143
144
144
145
145
146
146
146
146
146
146
150
150
150
150
151
152
154
154
155
157
159
159
159
160
160
161
162
162
163
163
164
164
174
174
174
174
177
177
177
177
177
177
177
178
180
180
182
182
182
183
183
183
184
184
186
187
187
188
188
193
193
195
195
195
196
196
196
196
196
197
197
198
198
201
201
204
204
204
204
209
209
210
212
212
212
212
212
212
213
213
213
213
213
213
213
214
214
215
215
215
216
219
220
220
221
221
222
224
225
225
225
225
231
231
231
232
232
232
232
232
233
233
234
234
238
238
240
243
245
245
248
248
248
248
248
248
248
248
251
251
252
259
259
260
260
261
262
263
263
264
264
266
266
266
267
267
267
268
268
268
268
269
269
278
278
278
278
280
283
283
283
283
284
284
284
284
284
284
285
285
286
286
287
287
288
289
291
291
292
292
292
296
296
298
306
308
309
310
315
315
319
319
323
328
328
329
329
331
332
333
334
334
334
337
337
346
348
348
349
349
352
355
357
362
363
363
364
366
366
367
368
368
371
371
372
376
381
381
391
391
391
391
396
401
401
401
403
404
406
407
408
409
411
414
416
419
419
421
422
432
432
433
437
437
437
438
438
438
440
442
442
450
450
453
456
458
459
461
462
462
469
474
474
475
476
476
476
477
477
478
479
480
481
481
485
500
502
504
504
504
504
505
508
512
512
513
514
514
514
517
517
520
522
524
525
532
534
535
544
545
545
549
549
563
563
570
572
572
574
575
575
586
591
591
609
614
614
635
638
653
658
658
671
676
676
692
695
697
710
713
715
733
738
738
757
758
759
760
762
777
779
782
801
806
806
827
829
843
848
848
866
871
871
892
895
910
915
915
928
933
933
949
952
954
967
970
972
990
995
995
1014
1016
1019
1034
1036
1039
1058
1063
1063
1084
1086
1100
1105
1105
1123
1128
1128
1149
1152
1167
1172
1172
1687
1691
1692
4
4
5
5
8
8
8
8
13
18
18
20
21
25
28
30
32
33
34
34
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
38
38
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
41
41
41
41
41
41
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
45
45
45
45
45
45
45
45
46
48
52
52
57
61
63
63
65
65
66
66
66
66
66
66
66
66
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
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
73
73
73
73
73
73
74
75
75
76
76
76
76
78
80
80
80
80
89
90
91
92
92
93
93
93
94
94
96
97
97
97
99
99
99
99
99
99
99
99
100
100
100
100
100
100
100
100
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
102
102
102
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
104
104
104
104
105
105
105
105
106
106
107
107
107
107
108
108
108
108
108
108
109
109
109
111
111
112
112
112
112
113
117
117
118
118
119
120
121
121
122
123
123
123
123
123
124
124
125
125
126
127
127
127
127
128
128
128
136
138
138
140
141
141
141
142
142
142
143
143
144
144
144
144
144
144
145
145
146
146
147
147
147
147
151
151
151
151
155
155
156
158
160
160
161
161
161
161
162
162
162
162
163
163
167
175
175
178
178
178
178
178
178
178
178
178
179
183
183
183
184
184
184
185
185
187
188
188
189
189
191
193
193
193
193
194
194
194
195
195
195
196
196
196
196
197
197
197
202
202
205
205
210
211
211
212
212
213
213
213
213
214
214
214
215
215
217
220
221
221
222
222
223
225
225
226
226
226
226
230
230
231
231
231
232
232
232
233
233
238
238
239
239
244
246
246
248
249
249
249
249
249
249
249
249
249
249
250
252
252
258
260
261
261
262
262
263
264
264
264
264
264
264
265
265
265
266
266
266
267
267
267
268
268
268
269
269
276
278
278
279
279
281
282
282
283
283
284
284
284
285
285
286
286
288
288
288
289
290
292
292
293
293
293
297
297
298
306
307
309
311
316
316
317
318
318
318
320
320
324
326
327
327
329
329
330
330
332
333
333
334
335
335
335
338
338
346
348
349
350
350
353
356
358
362
362
363
364
364
365
365
367
367
368
369
369
369
372
372
377
381
382
382
389
391
391
392
392
397
397
401
402
402
402
404
405
407
408
409
410
411
417
419
420
420
422
430
431
431
431
433
433
434
438
438
438
439
439
439
439
441
443
443
446
451
451
454
457
457
459
459
459
461
462
463
463
470
473
473
475
475
475
475
476
477
477
477
478
479
480
481
482
482
482
494
501
502
503
504
504
505
505
506
509
510
511
511
513
513
514
514
515
515
515
518
518
521
523
523
524
526
526
532
533
535
543
544
544
544
545
546
546
550
550
552
559
564
564
564
571
572
573
574
575
576
576
587
592
592
610
615
615
636
639
654
659
659
672
677
677
693
696
698
711
714
714
716
716
734
739
739
758
758
760
763
778
780
780
783
783
802
807
807
821
828
830
844
849
849
867
872
872
893
896
911
916
916
929
934
934
950
953
955
968
971
971
973
973
991
996
996
1015
1017
1020
1035
1037
1037
1040
1040
1059
1064
1064
1078
1085
1087
1101
1106
1106
1124
1129
1129
1150
1153
1168
1173
1173
1688
1692
1693
4
5
5
5
5
5
6
6
8
9
9
9
13
13
14
20
20
20
21
21
21
21
25
26
27
27
29
29
29
31
33
33
34
34
34
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
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
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
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
46
46
46
46
46
46
46
49
53
53
58
62
62
62
62
62
64
64
65
65
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
68
68
68
69
69
69
69
69
70
70
70
70
70
71
71
71
72
72
72
73
73
74
74
74
74
74
74
75
76
76
77
77
77
79
81
81
81
81
92
93
93
94
95
95
95
95
95
95
95
96
96
96
96
97
97
97
97
97
98
98
98
98
98
98
100
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
103
103
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
105
105
105
105
106
106
106
107
107
108
108
109
109
109
109
112
113
113
113
114
118
118
119
119
121
121
121
121
123
123
123
124
124
124
124
125
125
125
125
125
126
126
126
126
126
126
126
127
128
128
135
137
140
141
141
141
141
142
142
143
143
143
144
144
145
145
145
145
146
146
147
147
147
148
148
152
152
152
152
156
156
159
159
160
161
162
162
163
163
163
164
164
167
176
176
176
176
178
178
178
178
179
179
179
179
179
180
184
184
184
184
185
185
185
186
186
189
189
190
190
192
194
194
195
195
195
196
196
197
197
198
198
198
203
203
205
211
211
212
213
213
213
214
214
214
214
215
215
216
216
218
221
222
222
223
223
224
225
226
227
227
227
227
231
231
232
232
233
233
234
234
234
240
240
245
247
247
247
249
249
249
249
250
250
250
250
250
250
251
258
259
259
259
261
262
262
263
263
264
265
265
265
265
266
266
266
267
267
268
268
268
269
269
270
270
279
280
280
282
282
283
284
284
284
284
285
285
286
286
287
287
289
289
289
290
291
293
293
294
294
294
295
295
295
295
298
298
306
307
309
309
310
312
317
317
317
317
317
318
319
319
319
325
326
328
330
330
331
331
333
334
334
335
336
336
336
339
346
346
349
350
353
354
357
359
363
364
366
368
368
369
369
370
370
370
372
372
373
373
378
381
383
383
392
393
393
397
398
402
403
403
403
405
406
408
409
410
411
414
418
418
419
420
421
422
422
423
430
430
430
431
432
432
432
435
439
439
439
439
440
440
440
441
441
441
441
442
444
444
447
452
455
459
459
460
460
462
463
466
471
474
476
476
476
477
478
479
480
481
482
482
483
483
483
485
485
494
502
504
505
506
506
507
510
510
512
514
514
515
515
516
516
516
519
519
522
527
527
532
533
535
535
536
543
543
543
544
545
545
545
546
551
551
552
560
565
565
569
572
572
572
574
575
576
588
593
593
611
616
616
631
635
637
640
655
660
660
673
678
678
694
697
699
712
717
717
735
740
740
759
760
761
764
779
784
784
803
808
808
822
826
829
831
845
850
850
868
873
873
888
892
894
897
912
917
917
930
935
935
951
954
956
969
974
974
992
997
997
1016
1018
1021
1036
1041
1041
1060
1065
1065
1079
1083
1086
1088
1102
1107
1107
1125
1130
1130
1145
1149
1151
1154
1169
1174
1174
1689
1693
1694
5
5
6
6
7
7
8
10
10
10
10
12
12
12
14
15
15
18
18
21
22
22
25
27
27
28
28
29
29
32
33
33
34
34
34
34
34
35
35
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
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
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
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
45
46
46
46
46
46
50
52
52
54
54
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
64
65
65
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
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
71
71
71
71
71
73
73
73
74
74
75
75
75
75
76
77
77
78
78
78
80
82
82
82
82
93
94
95
95
95
95
95
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
100
100
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
103
103
103
103
103
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
105
106
106
106
107
107
107
107
107
107
114
115
115
119
119
120
120
121
122
122
122
123
124
125
125
126
126
126
126
127
127
127
127
127
127
127
136
136
138
138
140
140
140
141
142
142
142
142
143
143
143
143
144
147
147
147
148
148
149
149
153
153
153
153
154
160
160
161
161
162
162
162
163
163
163
164
164
165
176
176
176
176
178
178
179
179
180
180
180
180
180
181
184
185
185
185
186
186
186
190
190
191
191
193
193
193
195
195
195
195
196
196
196
196
197
197
198
199
199
204
204
205
212
212
212
212
212
212
213
213
213
214
214
214
217
217
219
222
223
223
224
224
225
227
228
228
228
228
231
231
232
232
232
232
233
233
234
234
235
236
241
241
246
247
247
247
248
249
249
250
250
251
251
251
251
251
251
252
258
260
260
263
264
264
264
264
265
266
266
266
266
266
266
267
267
267
267
268
268
269
270
271
271
278
278
280
283
283
283
283
283
284
284
284
285
285
285
288
288
288
290
290
290
291
292
294
294
295
295
296
296
299
299
310
310
311
313
318
318
319
320
320
320
326
329
331
332
334
334
334
335
336
337
337
337
338
338
340
347
347
348
348
348
350
354
354
354
354
355
358
360
362
364
365
367
369
370
371
371
373
373
374
374
379
384
384
391
391
393
399
401
403
404
404
404
409
410
411
412
419
419
422
423
423
424
432
433
433
433
436
440
440
440
441
441
442
442
443
445
445
447
447
451
451
453
456
460
460
461
461
461
461
461
463
467
467
467
467
472
475
475
477
477
479
480
481
482
482
483
484
484
486
486
503
504
504
505
506
508
511
513
514
516
516
517
517
517
520
520
523
528
528
536
536
537
545
546
546
546
547
552
552
560
560
564
564
566
570
573
573
573
574
574
574
575
576
589
594
594
612
617
617
636
638
641
656
661
661
674
679
679
695
698
700
713
718
718
736
741
741
760
760
762
765
780
785
785
804
809
809
827
830
832
846
851
851
869
874
874
893
895
898
913
918
918
931
936
936
952
955
957
970
975
975
993
998
998
1017
1019
1022
1037
1042
1042
1061
1066
1066
1084
1087
1089
1103
1108
1108
1126
1131
1131
1150
1152
1155
1170
1175
1175
1690
1694
1695
4
5
7
7
8
8
11
11
11
11
12
13
15
15
15
15
15
23
23
27
27
29
29
31
33
33
33
33
33
34
35
35
35
35
35
36
36
36
36
36
36
36
36
36
37
37
38
38
38
38
38
38
38
39
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
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
46
46
46
46
46
46
51
53
53
55
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
65
65
65
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
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
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
72
72
72
72
74
78
78
79
79
79
81
83
83
83
83
96
96
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
99
99
99
99
99
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
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
103
104
104
104
104
104
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
106
106
106
107
107
107
107
107
115
116
116
116
120
120
121
121
121
121
123
124
125
126
126
127
127
128
128
128
128
128
136
138
139
139
142
143
143
143
143
145
148
148
149
149
150
150
151
154
154
154
154
161
162
162
163
163
163
163
163
163
164
164
164
164
165
166
167
167
174
177
177
177
177
178
178
178
178
178
178
179
179
180
180
180
181
182
184
185
186
186
186
187
187
187
191
191
192
192
192
192
193
194
194
195
195
196
196
197
197
198
198
198
199
199
199
200
200
205
205
209
210
212
212
212
212
213
214
215
215
216
216
216
216
218
218
220
223
224
224
225
225
225
225
226
226
228
228
229
229
229
229
231
232
232
233
233
234
234
234
235
235
235
236
237
242
245
247
248
248
248
248
248
249
249
249
249
249
249
249
250
250
250
251
251
252
252
259
259
261
261
261
263
263
264
264
265
265
265
266
266
267
267
267
267
268
268
268
268
269
269
269
270
270
270
271
272
272
279
281
283
283
283
283
284
284
285
286
286
287
287
287
287
289
289
289
291
291
291
291
293
293
295
295
296
296
296
297
297
300
300
311
311
314
318
319
319
320
321
321
327
330
332
333
335
336
337
338
338
338
339
339
341
349
349
349
349
355
355
356
359
359
361
361
362
362
363
366
368
370
371
372
372
372
374
374
374
375
375
380
381
381
385
385
392
397
400
402
404
404
405
405
410
411
412
413
420
420
423
424
424
431
433
434
434
437
441
441
442
442
443
443
444
446
446
452
452
454
457
462
462
462
462
462
462
468
468
473
475
475
476
476
478
480
481
482
483
483
484
485
485
485
487
487
487
494
494
504
505
506
509
510
512
514
515
517
517
517
518
518
521
521
524
529
529
537
537
544
546
547
547
548
553
553
565
565
567
571
574
575
575
575
575
576
590
595
595
613
618
618
637
639
642
657
662
662
675
680
680
699
701
714
719
719
737
742
742
761
763
766
781
786
786
805
810
810
828
831
833
847
852
852
870
875
875
894
896
899
914
919
919
932
937
937
956
958
971
976
976
994
999
999
1018
1020
1023
1038
1043
1043
1062
1067
1067
1085
1088
1090
1104
1109
1109
1127
1132
1132
1151
1153
1156
1171
1176
1176
1691
1695
1696
5
5
6
8
8
8
9
9
12
12
12
12
15
16
18
23
27
27
28
29
29
32
33
33
34
34
34
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
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
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
43
43
43
43
43
43
43
43
43
43
43
44
45
45
45
46
46
46
46
46
46
46
47
52
54
54
56
61
61
65
65
65
65
65
66
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
72
73
73
73
75
79
79
80
80
80
80
82
82
84
84
84
84
89
89
90
90
95
95
95
95
95
95
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
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
101
101
101
101
101
101
101
102
102
102
102
103
103
103
103
103
103
104
104
105
105
105
105
105
105
105
105
105
105
105
105
105
105
106
107
107
107
107
108
108
108
109
109
109
109
109
109
109
109
113
116
117
121
121
122
122
122
122
123
123
123
124
125
126
126
127
127
127
128
129
129
136
138
139
140
140
141
143
144
144
144
145
145
145
145
145
145
146
149
149
150
150
151
151
151
152
154
154
155
155
155
155
163
164
164
164
164
165
165
165
165
166
167
168
168
175
176
176
177
177
178
178
179
179
180
180
180
182
183
185
186
187
187
187
188
188
188
192
192
193
193
193
193
195
195
196
196
196
196
198
199
199
199
200
200
200
201
201
206
206
209
210
210
212
212
212
214
215
216
216
217
217
217
217
219
219
221
223
224
225
225
226
226
226
226
229
229
230
230
230
230
234
235
235
235
236
236
236
237
237
237
241
241
241
243
246
247
247
248
248
248
249
249
249
250
250
250
250
251
251
251
253
253
259
260
264
264
265
266
266
266
266
267
268
268
269
269
269
270
270
270
271
271
271
272
273
273
278
278
280
281
283
285
286
287
287
288
288
288
288
288
290
290
290
292
292
294
294
296
296
297
297
297
298
298
301
301
309
315
319
319
320
320
328
331
333
334
336
337
338
338
339
339
339
340
340
350
350
355
357
361
362
362
362
363
364
367
369
372
372
373
373
373
376
376
379
381
382
382
386
386
391
391
393
401
401
403
406
406
411
412
413
414
421
421
422
424
432
432
438
440
440
442
442
443
443
444
444
445
447
447
451
453
453
458
463
463
463
463
468
474
474
475
476
477
477
479
481
482
483
484
485
485
486
486
486
492
495
495
504
504
505
506
507
510
513
514
515
516
518
519
519
522
522
525
530
530
535
545
545
549
554
564
566
566
572
575
576
576
577
591
596
596
614
619
638
640
643
658
663
663
676
681
681
700
702
715
720
720
738
743
743
762
764
767
782
787
787
806
811
829
832
834
848
853
853
871
876
895
897
900
915
920
920
933
938
938
957
959
972
977
977
995
1000
1000
1019
1021
1024
1039
1044
1044
1063
1068
1086
1089
1091
1105
1110
1110
1128
1133
1152
1154
1157
1172
1177
1177
1692
1696
1697
4
4
4
5
5
5
6
9
10
10
13
13
16
17
18
23
23
29
29
29
29
33
33
33
33
33
34
34
35
35
35
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
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
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
42
43
43
43
43
43
43
43
43
43
43
43
43
46
46
46
46
46
47
47
48
53
55
57
60
60
62
62
62
62
62
62
62
62
65
65
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
68
68
68
68
69
69
69
69
69
69
69
70
70
70
70
70
70
70
73
74
74
74
75
75
75
75
75
75
76
78
80
80
81
81
81
81
83
83
85
85
85
85
90
90
91
91
91
91
91
92
92
92
95
95
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
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
100
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
102
102
103
103
103
103
104
104
104
104
104
104
104
104
104
105
105
105
105
105
105
105
106
106
106
107
107
107
108
108
109
109
109
110
110
110
110
110
110
113
117
118
122
122
122
123
123
124
124
124
124
125
126
127
127
128
128
128
130
130
139
140
142
142
143
143
145
145
145
146
146
146
146
147
150
150
151
151
151
152
152
155
155
156
156
156
156
165
165
165
166
166
166
166
168
176
176
177
178
178
178
179
179
180
180
181
181
183
184
184
186
187
188
188
188
189
189
189
193
193
193
193
194
194
194
194
196
197
197
200
200
201
201
202
207
207
209
211
212
213
213
213
216
218
218
218
218
222
224
224
225
226
226
227
227
230
230
231
231
231
231
236
236
237
237
241
242
242
244
247
247
248
249
249
249
249
250
250
251
251
251
251
252
252
252
254
254
260
260
261
261
261
262
264
264
265
265
266
267
267
267
267
268
269
269
271
271
272
272
274
278
278
279
279
282
283
284
287
289
289
289
289
289
289
291
291
293
293
295
297
297
297
298
298
298
299
299
302
302
306
316
321
321
324
330
331
332
334
335
337
338
338
339
340
340
340
350
355
358
362
363
363
364
365
368
368
370
372
372
373
373
373
374
374
374
374
377
377
380
380
382
387
387
391
391
392
392
402
402
402
404
404
405
406
407
410
412
413
414
415
419
422
422
425
437
439
441
443
443
444
444
445
445
446
448
448
451
459
463
464
464
468
475
476
477
477
478
478
480
482
483
484
485
486
486
486
487
487
487
487
493
493
504
504
505
505
508
511
514
514
515
515
516
517
517
518
518
519
520
520
523
523
523
526
531
531
532
550
550
553
553
555
564
573
576
576
576
578
578
592
597
597
615
620
639
641
644
659
664
664
677
682
682
701
703
716
721
721
739
744
744
765
768
783
788
788
807
810
810
812
830
833
833
835
835
849
854
854
872
877
896
898
901
916
921
921
934
939
939
958
960
973
978
978
996
1001
1001
1022
1025
1040
1045
1045
1064
1067
1067
1069
1087
1090
1090
1092
1092
1106
1111
1111
1129
1134
1153
1155
1158
1173
1178
1178
1693
1697
1698
1
1
5
5
5
6
6
6
7
10
11
11
14
14
15
17
18
18
18
23
24
27
27
29
29
29
29
34
36
37
37
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
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
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
43
43
43
43
43
43
43
43
44
47
48
48
49
54
56
58
61
61
61
61
63
63
63
63
63
63
63
63
64
65
65
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
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
70
71
71
75
75
75
76
76
76
76
77
79
81
81
82
82
82
82
84
84
86
86
86
86
92
92
92
92
93
93
93
93
93
95
95
95
96
96
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
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
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
102
102
103
103
104
104
104
104
105
105
105
105
105
105
106
107
108
108
108
108
108
109
110
111
111
118
119
120
122
123
123
124
124
125
125
126
127
127
127
127
128
128
128
128
129
129
131
131
140
144
144
144
144
146
148
151
151
152
152
152
153
153
154
156
156
156
157
157
157
157
162
163
166
169
174
177
177
177
177
177
178
178
178
179
179
179
180
182
182
184
185
185
187
187
189
189
189
190
190
190
193
194
194
194
195
195
195
195
196
196
196
197
197
203
208
210
211
211
212
214
214
214
214
215
215
216
216
216
216
217
223
226
227
227
228
228
231
231
231
232
232
232
232
232
232
237
242
243
243
248
248
248
248
248
249
249
249
250
250
250
250
251
252
252
253
253
255
255
262
262
262
263
264
264
265
265
266
266
267
267
267
267
268
268
269
270
270
275
280
280
282
282
285
286
286
287
287
287
287
288
289
291
292
292
294
294
296
298
298
298
299
299
299
300
300
303
303
306
307
309
309
317
321
322
322
325
331
332
333
334
335
335
336
336
338
338
339
339
340
341
341
350
359
362
363
364
364
365
371
373
373
374
375
375
375
375
378
378
383
388
388
393
393
402
403
404
405
405
406
407
408
410
411
411
411
411
413
414
415
416
419
420
422
422
423
423
426
434
438
440
440
442
445
445
446
446
447
447
449
449
451
452
460
463
465
465
475
476
477
478
478
479
481
481
482
483
484
485
486
487
488
488
488
488
506
506
509
512
515
517
517
518
518
519
519
520
521
521
524
524
524
524
524
527
532
532
532
533
535
535
547
551
551
554
556
560
564
565
574
576
579
579
593
598
598
616
618
618
621
640
642
642
645
645
660
665
665
678
683
683
695
702
704
717
722
722
740
745
745
766
769
784
789
789
808
811
813
831
836
836
850
855
855
873
875
875
878
897
899
899
902
902
917
922
922
935
940
940
952
959
961
974
979
979
997
1002
1002
1023
1026
1041
1046
1046
1065
1068
1070
1088
1093
1093
1107
1112
1112
1130
1132
1132
1135
1154
1156
1156
1159
1159
1174
1179
1179
1694
1698
1699
1
1
1
5
5
5
8
8
8
8
8
11
12
12
12
15
15
15
15
23
23
24
25
25
25
25
29
29
29
29
30
30
35
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
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
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
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
45
45
47
48
49
50
57
59
62
62
62
62
64
64
64
64
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
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
72
72
76
78
80
82
82
83
83
85
85
87
87
87
87
93
93
94
94
94
96
96
96
97
97
97
97
97
97
97
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
99
99
99
100
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
101
101
102
102
102
102
102
102
102
102
102
102
102
102
102
102
102
103
103
103
103
103
105
105
107
107
108
108
108
108
108
109
111
111
111
112
112
113
113
119
120
121
124
124
125
125
125
127
128
128
129
129
130
132
132
144
144
144
146
147
149
152
152
153
153
154
154
154
155
158
158
158
158
161
162
163
163
163
164
164
165
167
168
170
175
175
177
177
177
177
178
179
180
180
181
181
181
181
183
183
184
185
186
186
190
190
190
191
191
191
195
195
195
196
196
196
196
196
197
197
197
197
198
198
199
204
204
207
207
209
212
212
212
212
212
213
215
216
216
216
216
217
217
217
217
218
224
226
227
228
228
229
229
231
232
232
232
232
233
233
233
233
233
233
234
235
243
246
248
248
248
248
249
250
251
251
251
251
252
252
252
252
252
252
252
253
254
254
256
256
260
261
261
261
263
263
265
266
266
267
267
267
268
268
268
268
268
269
269
269
269
269
270
270
270
271
271
271
273
273
276
276
281
281
283
283
283
283
286
287
287
287
287
288
288
288
288
289
289
291
292
293
293
295
295
297
299
299
300
300
300
301
301
304
304
306
310
310
318
321
323
323
326
326
334
334
336
336
337
337
339
339
339
340
340
340
340
340
341
341
342
342
342
360
362
363
365
365
365
365
366
372
373
374
374
374
374
374
375
376
376
376
376
376
376
379
379
379
379
382
384
389
389
389
394
394
402
404
404
405
406
406
406
406
409
411
412
412
412
414
414
415
415
416
416
417
417
419
423
423
424
424
427
434
439
439
441
441
443
443
446
446
447
447
447
448
450
450
452
453
461
466
466
475
476
478
478
479
480
482
482
483
484
485
485
486
486
486
487
487
487
487
487
488
488
489
489
489
489
495
502
507
507
510
513
515
517
518
518
519
519
520
520
521
522
522
522
522
525
525
525
525
525
525
528
532
533
533
536
536
547
552
552
552
555
557
560
565
566
575
580
580
594
599
599
617
619
622
641
646
646
661
666
666
679
684
684
696
700
703
705
718
723
723
741
746
746
767
770
785
790
790
809
812
814
832
837
837
851
856
856
874
876
879
898
903
903
918
923
923
936
941
941
953
957
960
962
975
980
980
998
1003
1003
1024
1027
1042
1047
1047
1066
1069
1071
1089
1094
1094
1108
1113
1113
1131
1133
1136
1155
1160
1160
1175
1180
1180
1695
1699
1699
1700
5
6
6
9
9
9
12
13
13
16
16
17
17
18
18
23
23
23
25
25
27
31
31
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
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
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
42
42
42
42
42
43
43
43
43
44
44
44
45
45
46
46
48
48
49
49
50
51
52
56
58
58
60
60
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
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
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
71
71
73
74
74
74
79
81
83
83
84
84
86
86
88
88
88
88
93
93
93
93
94
94
95
95
95
95
95
97
97
97
98
98
98
98
98
98
98
99
99
99
99
100
100
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
101
101
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
104
105
105
105
105
106
107
108
109
109
109
109
110
110
110
110
110
110
112
113
113
114
114
120
121
121
121
124
125
125
125
126
126
128
128
129
129
129
131
133
133
136
136
142
144
145
145
146
146
146
146
146
146
147
147
147
148
150
153
153
154
154
155
155
155
155
156
156
159
159
159
159
162
163
163
163
163
163
164
164
164
164
164
165
166
168
168
171
175
176
176
177
179
180
181
181
182
182
182
182
184
184
185
185
186
187
187
187
191
191
191
192
192
192
195
196
196
196
196
197
197
197
198
198
198
198
198
199
199
199
199
200
205
205
205
205
208
210
212
212
213
213
214
214
216
216
216
216
217
217
217
217
218
218
218
218
225
226
228
229
229
230
230
231
232
232
233
233
233
234
234
234
234
234
234
234
234
234
235
235
235
235
236
241
244
246
248
250
251
252
252
252
253
253
253
253
253
253
254
255
255
257
257
260
260
260
261
262
262
262
266
266
267
267
267
268
269
269
269
269
269
269
270
270
270
270
271
271
271
272
272
272
274
277
277
282
283
283
287
287
287
287
288
288
288
288
289
289
289
289
289
289
292
293
296
296
298
298
299
299
299
299
300
301
301
301
302
302
305
305
307
309
311
311
311
319
324
324
327
327
327
327
328
335
337
337
338
338
338
340
341
341
342
342
343
343
343
361
366
366
366
366
367
367
371
373
373
373
373
374
375
375
375
375
375
376
380
380
380
380
382
385
390
390
390
395
402
402
405
405
406
407
410
411
412
412
412
412
412
413
413
417
417
418
418
420
422
424
424
424
425
425
428
440
440
440
440
442
444
444
447
447
448
448
449
451
451
451
453
454
462
467
467
474
479
479
480
481
483
483
484
485
486
486
486
487
488
488
488
488
488
489
489
490
490
495
503
505
508
509
511
513
514
515
515
517
518
519
519
521
521
522
524
525
525
525
525
526
526
526
526
526
529
533
534
534
535
537
537
537
553
553
553
553
553
556
558
564
566
567
576
581
581
595
600
600
618
620
623
642
647
647
662
667
667
680
685
685
701
704
706
719
724
724
742
747
747
762
766
768
771
786
791
791
810
813
815
833
838
838
852
857
857
875
877
880
899
904
904
919
924
924
937
942
942
958
961
963
976
981
981
999
1004
1004
1019
1023
1025
1028
1043
1048
1048
1067
1070
1072
1090
1095
1095
1109
1114
1114
1132
1134
1137
1156
1161
1161
1176
1181
1181
1696
1699
1700
1701
5
5
5
5
10
10
10
10
10
13
13
13
14
14
15
15
17
17
18
23
31
32
33
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
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
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
43
43
43
43
43
44
44
45
46
49
50
51
52
53
57
59
59
61
61
62
62
62
62
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
66
66
66
66
66
67
67
67
67
67
67
67
67
67
68
68
68
68
69
69
70
70
70
72
72
74
74
75
75
76
76
76
76
76
76
80
82
84
84
85
85
87
87
89
89
89
89
93
93
93
93
93
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
98
98
98
99
99
99
99
99
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
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
104
104
104
105
105
105
105
105
107
107
108
108
108
108
110
110
110
110
111
111
111
111
114
114
114
121
122
125
125
125
125
126
126
127
127
127
128
128
129
129
130
130
132
134
134
137
137
138
138
138
143
143
144
144
146
146
147
147
147
147
148
148
149
151
154
155
155
156
156
157
157
160
160
160
160
163
164
164
164
164
164
165
165
165
165
165
165
166
166
167
169
172
176
177
177
177
177
177
178
181
183
183
183
183
185
187
187
188
188
188
192
192
192
193
193
193
193
197
197
198
198
198
199
199
199
199
199
200
200
200
200
200
200
201
201
206
206
206
209
211
215
215
215
215
217
217
217
217
218
218
219
219
219
219
219
219
226
229
230
230
231
231
234
234
234
235
235
235
235
235
235
235
235
235
235
235
235
235
236
236
236
236
236
236
237
237
237
241
242
247
248
249
252
253
254
254
254
254
254
254
258
258
262
263
263
263
264
267
268
269
270
270
270
270
270
271
271
271
271
271
271
272
272
272
272
273
273
273
275
277
277
278
281
281
283
286
286
288
288
288
288
289
289
290
290
290
290
290
290
290
290
291
291
291
293
297
297
297
299
300
300
301
301
301
302
302
302
303
303
306
306
309
310
320
321
321
325
325
325
327
327
328
328
329
333
334
336
338
338
339
339
339
341
341
342
343
343
344
344
344
349
362
367
367
367
367
372
374
375
376
376
376
376
376
377
381
381
381
381
386
390
390
391
391
394
394
396
403
403
404
404
404
406
406
408
411
413
413
413
414
414
418
418
419
419
422
423
426
429
434
434
438
440
440
441
441
443
443
445
445
447
447
447
448
448
449
449
450
452
452
452
454
454
462
463
468
468
475
479
480
480
482
484
484
485
486
488
489
489
489
489
489
490
490
491
491
503
503
507
507
509
510
512
515
516
516
517
517
517
518
519
520
522
522
523
526
526
527
527
527
527
527
530
535
535
535
536
547
547
551
553
553
554
554
554
557
559
560
565
567
567
575
577
582
582
596
601
601
619
621
624
643
648
648
663
668
668
681
686
702
705
707
720
725
725
743
748
748
758
767
769
772
787
792
792
811
814
816
834
839
839
853
858
858
876
878
881
900
905
905
920
925
925
938
943
959
962
964
977
982
982
1000
1005
1005
1024
1026
1029
1044
1049
1049
1068
1071
1073
1091
1096
1096
1110
1115
1115
1133
1135
1138
1157
1162
1162
1177
1182
1182
1697
1701
1702
5
5
6
6
6
11
14
14
14
15
15
17
17
18
18
18
23
24
25
25
27
27
32
32
32
32
32
32
32
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
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
45
47
50
50
51
51
52
53
54
58
60
60
61
61
62
62
62
62
63
63
64
65
65
65
65
65
65
65
66
66
66
66
66
66
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
70
71
73
75
76
76
77
77
77
77
81
83
85
85
86
86
88
88
90
90
90
90
91
93
93
93
93
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
98
98
98
98
98
100
100
100
100
100
100
100
100
100
100
100
100
100
102
102
102
102
102
102
102
103
103
103
103
103
103
103
103
106
109
109
109
109
111
111
112
114
116
122
123
126
126
127
128
128
128
128
128
129
129
129
129
129
130
131
131
135
135
139
139
139
139
145
145
145
145
147
148
148
148
148
149
150
152
155
155
156
156
156
156
156
157
157
158
158
161
161
161
161
165
165
165
166
166
166
166
166
167
167
168
168
168
170
173
175
176
176
177
177
178
178
179
180
180
181
181
181
181
182
185
187
188
188
189
189
189
193
193
193
193
194
194
194
194
196
196
198
198
199
199
200
200
200
201
201
201
201
201
202
202
205
206
206
206
206
207
207
210
211
211
212
213
214
214
214
215
216
216
216
216
217
217
219
219
219
219
219
219
220
220
220
220
226
226
227
230
231
231
232
232
233
235
235
235
235
236
236
236
236
236
236
236
236
236
237
237
237
237
237
237
238
238
242
243
247
247
250
251
251
252
252
252
252
252
253
254
259
259
261
263
264
264
264
265
267
268
269
271
271
271
272
272
272
272
272
273
273
273
273
274
274
274
276
279
282
282
282
282
284
286
287
287
288
288
290
290
290
290
290
290
291
291
291
291
292
292
292
292
298
299
299
300
301
301
302
302
303
303
303
304
304
307
307
310
310
311
311
319
321
322
322
326
326
328
329
329
334
337
337
338
339
339
339
340
340
340
343
344
344
345
345
345
350
350
350
350
354
363
365
368
368
373
374
375
375
376
377
377
377
377
378
378
382
382
382
382
387
392
392
395
395
397
405
405
405
405
407
409
412
412
412
414
414
414
415
419
419
420
420
423
423
424
424
425
427
428
430
432
435
435
441
442
442
446
446
448
448
449
449
450
450
451
451
453
453
453
463
463
463
463
464
467
469
469
478
480
483
483
485
485
485
486
487
487
489
490
490
490
490
491
491
492
492
508
508
510
511
513
516
518
518
518
518
519
521
521
523
523
524
524
525
525
527
527
528
528
528
528
531
536
536
536
536
537
537
545
548
548
554
555
555
555
558
560
564
566
576
576
576
576
578
583
583
597
602
602
620
622
625
644
649
649
664
669
669
682
685
685
687
703
706
708
721
726
726
744
749
749
759
768
770
773
788
793
793
812
815
817
835
840
840
854
859
859
877
879
882
901
906
906
921
926
926
939
942
942
944
960
963
965
978
983
983
1001
1006
1006
1025
1027
1030
1045
1050
1050
1069
1072
1074
1092
1097
1097
1111
1116
1116
1134
1136
1139
1158
1163
1163
1178
1183
1183
1698
1702
1703
5
5
5
5
6
7
11
11
12
15
15
15
15
15
15
15
16
16
18
19
19
23
25
25
26
26
27
30
30
32
32
32
32
33
33
33
33
33
33
33
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
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
39
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
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
46
46
48
51
52
52
53
53
54
59
60
60
62
62
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
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
66
66
67
68
68
68
68
68
68
69
69
69
69
69
70
70
70
70
70
70
70
70
70
72
74
76
82
84
86
86
87
87
89
89
89
89
89
90
90
90
91
91
91
91
92
92
93
93
93
93
93
93
93
93
93
93
93
93
94
94
94
94
94
94
94
94
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
97
97
97
97
97
97
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
100
100
100
101
102
103
103
103
103
103
103
103
103
103
103
103
103
104
107
109
109
109
112
112
114
117
123
124
126
126
126
127
127
128
129
129
129
129
130
130
131
136
136
140
140
145
145
145
149
149
150
151
153
153
153
155
155
155
156
156
157
157
157
157
157
158
158
162
162
162
162
164
165
165
165
165
166
166
166
166
167
167
168
168
169
169
169
171
174
177
177
177
177
178
179
179
180
181
181
181
181
182
182
182
182
183
185
185
188
189
189
190
193
194
194
194
194
195
195
195
196
196
196
197
197
197
197
197
199
199
199
200
200
200
200
200
200
201
201
201
202
202
203
203
207
207
208
208
211
211
213
213
213
213
214
215
215
215
215
215
216
217
217
217
217
219
219
220
220
221
221
221
221
224
227
227
228
231
232
232
233
233
235
236
236
236
236
236
236
236
237
237
237
237
237
237
237
237
237
238
238
239
239
241
243
244
248
248
248
248
251
251
252
252
252
252
253
253
253
253
254
255
260
260
262
262
264
265
267
267
267
268
269
270
270
271
271
271
271
272
272
272
273
273
274
274
274
274
275
275
275
277
280
281
282
283
283
286
286
287
288
288
288
288
290
290
291
291
292
292
292
292
293
293
299
300
301
303
303
304
304
304
305
305
305
305
308
308
308
308
312
312
320
320
322
327
327
327
327
329
335
339
339
340
340
340
341
341
341
341
344
345
345
346
346
346
351
351
355
355
355
362
364
369
369
374
375
375
378
378
379
379
383
383
383
383
388
393
393
394
396
396
406
406
408
410
413
413
415
416
420
420
421
421
425
425
428
429
431
433
433
440
440
442
447
447
449
449
450
450
450
451
451
451
451
452
452
452
452
454
454
454
454
454
454
464
464
465
468
468
468
470
470
475
481
486
486
486
487
488
488
488
491
491
492
492
493
507
509
509
512
514
517
519
519
520
524
524
525
525
526
529
529
529
529
532
537
537
538
538
546
546
553
553
555
556
559
561
565
565
567
567
577
577
579
584
584
598
603
603
621
623
626
645
650
650
665
670
670
683
686
688
704
707
707
709
709
722
727
727
745
750
759
769
771
774
789
794
794
813
816
818
836
841
841
855
860
860
878
880
883
902
907
907
922
927
927
940
943
945
961
964
964
966
966
979
984
984
1002
1007
1026
1028
1031
1046
1051
1051
1070
1073
1075
1093
1098
1098
1112
1117
1117
1135
1137
1140
1159
1164
1164
1179
1184
1184
1699
1703
1704
5
5
6
6
6
6
8
8
12
12
12
13
16
16
16
16
16
17
17
17
17
18
20
20
25
27
27
30
30
30
31
31
32
32
32
32
32
33
33
33
34
34
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
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
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
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
43
43
43
44
44
47
49
53
54
54
55
60
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
64
64
64
64
65
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
68
70
70
75
75
75
75
77
83
85
87
87
88
88
90
90
90
90
90
91
91
91
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
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
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
98
98
98
98
99
99
99
99
100
100
100
102
102
102
102
102
102
102
103
103
103
103
103
103
103
107
108
109
110
110
111
111
113
113
114
121
122
122
124
125
125
126
127
128
129
129
129
130
130
130
132
137
137
140
143
145
146
146
147
147
148
148
150
150
152
154
154
157
157
158
158
158
158
158
159
159
163
163
163
163
164
164
164
165
165
165
165
166
166
166
166
167
167
167
167
167
170
172
172
175
175
177
177
177
177
179
181
181
181
181
182
182
182
182
183
183
183
183
186
186
187
187
187
189
190
191
195
195
195
196
196
196
196
197
197
197
197
198
198
198
198
199
199
199
200
200
200
200
200
200
201
201
201
201
201
201
202
202
202
206
206
208
208
209
212
214
215
216
216
216
216
216
217
217
217
217
217
218
218
218
220
220
221
221
225
225
229
232
233
233
234
234
235
235
235
235
235
236
236
236
236
237
237
237
237
237
237
237
238
238
238
238
238
238
238
242
244
248
248
251
252
252
252
252
252
252
252
253
253
253
253
254
254
254
254
256
261
261
267
267
268
268
268
268
269
269
270
270
270
270
271
271
271
271
271
272
272
272
272
273
273
273
275
275
276
276
276
278
281
281
287
287
288
288
288
288
288
289
289
289
291
291
292
292
293
296
299
300
300
301
302
304
304
305
305
305
309
309
309
309
310
311
311
311
313
313
323
328
328
328
336
339
341
341
341
341
342
342
342
342
345
346
346
347
347
347
351
356
356
362
363
365
365
365
370
370
375
379
379
380
380
380
384
384
384
384
389
394
394
394
406
409
411
412
414
414
416
417
421
421
422
422
423
424
424
424
426
426
429
430
432
441
442
446
448
448
450
450
451
452
453
453
454
455
455
455
455
455
455
464
466
469
469
471
471
475
476
478
478
482
487
487
487
488
489
492
492
493
493
493
494
507
513
515
518
519
521
525
525
525
526
526
527
530
530
530
530
533
536
537
537
537
538
538
539
539
554
557
560
562
565
567
568
568
577
580
585
585
599
604
604
622
624
627
646
651
651
666
671
671
684
687
689
705
710
710
723
728
728
746
751
770
772
775
790
795
795
814
817
819
837
842
842
856
861
861
879
881
884
903
908
908
923
928
928
941
944
946
962
967
967
980
985
985
1003
1008
1027
1029
1032
1047
1052
1052
1071
1074
1076
1094
1099
1099
1113
1118
1118
1136
1138
1141
1160
1165
1165
1180
1185
1185
1700
1704
1705
5
5
5
5
7
7
13
13
13
14
15
15
17
17
17
17
18
18
18
19
19
21
21
25
25
27
27
30
31
32
32
32
32
33
33
33
34
34
34
34
34
34
34
36
36
36
36
36
36
36
36
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
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
43
43
43
43
43
43
43
43
43
43
44
44
45
45
45
46
48
48
50
50
51
54
55
55
56
61
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
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
68
68
68
68
75
76
76
76
76
77
77
78
78
84
86
88
88
89
89
91
91
91
91
91
91
92
92
92
93
93
93
93
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
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
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
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
99
99
99
99
99
100
100
102
102
103
103
103
108
108
109
111
111
111
111
111
111
114
114
121
123
123
123
123
125
126
126
126
126
126
128
129
129
129
129
130
130
130
130
130
131
131
133
138
138
140
144
144
147
147
147
147
147
147
149
153
155
155
156
158
158
159
159
159
159
160
160
164
164
166
167
167
167
167
168
168
168
171
176
176
178
180
180
182
182
182
182
183
183
184
184
184
184
184
184
188
188
188
188
191
192
196
196
196
197
197
197
198
198
198
198
199
199
201
201
201
202
202
202
202
202
202
203
203
203
207
210
213
214
215
216
216
217
217
218
218
218
218
218
218
218
219
219
219
219
219
219
219
219
221
221
230
233
234
234
235
235
236
237
238
238
238
238
238
238
239
239
239
239
239
242
242
244
244
244
245
251
251
251
253
253
253
253
253
253
254
254
255
255
255
255
255
255
257
262
262
264
268
269
269
269
270
270
271
272
272
273
273
273
273
274
274
274
276
276
277
277
277
277
279
281
282
282
287
289
289
289
289
289
289
289
290
290
290
290
290
290
290
290
292
292
293
299
299
300
301
301
303
305
305
306
306
306
310
310
310
310
310
310
310
311
312
312
312
322
324
327
327
329
329
329
337
339
341
342
342
342
342
343
343
343
343
346
347
347
348
348
348
351
355
356
356
356
356
357
362
366
366
366
371
371
376
377
380
380
381
381
381
385
385
385
385
390
390
394
395
395
395
406
410
412
412
412
413
415
417
418
422
422
423
423
423
423
423
424
425
425
425
430
431
433
435
440
440
442
447
449
449
451
451
452
452
454
454
454
455
456
456
456
456
456
456
464
467
468
469
469
469
469
470
472
472
475
479
479
483
488
488
488
489
490
490
492
492
493
493
494
494
494
495
503
507
508
514
516
516
519
519
519
522
525
525
526
526
526
527
527
531
531
531
531
534
536
536
536
537
538
538
538
539
539
548
553
553
555
561
563
565
567
568
569
569
577
581
586
586
600
605
605
623
625
628
647
652
652
667
672
672
685
688
690
706
711
711
724
729
729
747
749
749
752
760
760
771
773
773
776
776
791
796
796
818
820
838
843
843
857
862
862
880
882
885
904
909
909
924
929
929
942
945
947
963
968
968
981
986
986
1004
1006
1006
1009
1028
1030
1030
1033
1033
1048
1053
1053
1075
1077
1095
1100
1100
1114
1119
1119
1137
1139
1142
1161
1166
1166
1181
1186
1186
1701
1705
1706
5
8
8
8
9
14
14
15
17
17
17
18
18
18
18
18
18
18
19
19
20
20
22
27
27
27
31
31
31
32
32
33
34
34
34
34
35
35
35
36
36
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
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
41
41
42
42
42
42
42
43
43
43
43
43
43
43
43
46
46
49
50
51
51
52
56
57
61
61
61
61
62
62
62
63
63
63
63
64
64
64
64
65
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
68
68
69
69
69
69
70
74
77
77
77
77
77
77
77
77
79
79
85
87
89
89
90
90
92
92
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
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
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
98
98
98
98
98
98
98
99
99
99
99
99
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
100
100
101
102
102
102
102
104
104
109
109
110
112
112
112
112
112
112
112
112
114
114
115
115
117
123
123
124
124
126
127
127
127
129
129
130
130
130
131
131
131
131
132
132
134
139
139
145
145
148
148
148
148
148
148
148
148
148
150
154
156
156
157
157
159
160
160
161
161
165
165
165
166
167
168
168
168
169
169
169
172
176
176
177
177
177
177
179
180
181
181
182
182
184
184
184
184
184
184
185
185
185
185
189
189
192
193
197
197
197
197
198
198
198
198
198
198
198
200
200
200
201
202
202
203
203
203
203
204
204
206
208
211
214
215
215
216
216
218
219
220
220
220
220
220
220
220
220
220
220
227
231
234
235
235
235
235
236
236
236
237
237
238
239
239
239
239
239
240
240
240
240
245
245
246
247
247
251
252
252
252
252
253
253
254
254
254
255
255
255
255
255
255
256
256
256
256
258
263
263
264
268
269
269
269
269
269
271
271
271
272
272
273
273
274
274
274
275
275
277
277
277
278
278
278
280
282
283
283
287
289
290
291
291
291
291
291
291
291
291
291
291
298
299
300
301
302
302
304
304
306
306
307
307
307
307
311
311
311
311
312
313
313
313
322
325
327
327
328
328
330
330
338
339
339
342
343
343
343
343
344
344
347
348
348
349
349
349
357
357
358
363
365
367
367
367
367
372
372
377
377
381
381
382
382
382
382
386
386
386
386
390
391
395
396
396
396
411
411
412
413
413
414
416
418
419
423
423
424
424
425
426
426
426
431
432
434
435
440
440
441
441
448
450
450
450
452
452
452
452
453
453
455
455
455
456
457
457
457
457
468
470
470
471
473
473
476
478
480
480
480
484
489
489
489
490
490
491
493
494
494
495
495
495
495
496
503
508
509
515
520
520
523
524
525
526
527
527
527
528
528
532
532
532
532
535
538
539
539
539
540
540
548
553
553
554
554
562
564
565
565
568
569
582
587
587
601
606
606
626
629
648
653
653
668
673
673
686
689
691
707
712
712
725
730
730
748
750
753
761
761
761
761
772
777
777
792
797
797
819
821
839
844
844
858
863
863
883
886
905
910
910
925
930
930
943
946
948
964
969
969
982
987
987
1005
1007
1010
1029
1034
1034
1049
1054
1054
1076
1078
1096
1101
1101
1115
1120
1120
1140
1143
1162
1167
1167
1182
1187
1187
1702
1706
1707
5
9
9
10
13
13
15
15
15
15
16
18
18
18
19
19
19
19
19
20
20
21
21
23
25
25
27
27
27
27
32
32
32
32
32
32
32
34
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
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
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
45
45
47
47
51
52
52
53
54
54
55
55
57
58
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
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
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
68
69
70
70
71
75
78
78
78
78
78
78
78
78
78
78
80
80
86
88
90
90
91
91
92
92
92
93
93
93
93
93
93
93
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
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
98
98
99
99
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
100
100
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
102
102
102
102
102
103
103
103
104
108
110
110
110
111
112
112
112
112
113
113
113
113
115
115
116
116
121
124
125
125
127
127
128
128
129
130
130
130
130
130
130
131
131
131
131
131
131
132
132
132
132
133
135
140
140
146
146
146
148
148
148
148
148
148
149
149
149
149
149
155
157
157
160
161
161
162
162
163
163
163
163
166
166
166
166
167
167
169
173
176
177
177
178
178
178
178
180
180
181
182
182
182
182
184
184
185
185
186
186
186
186
189
193
194
197
197
197
198
198
198
198
199
199
199
199
199
199
201
201
201
201
202
202
202
202
203
204
206
206
207
215
216
216
217
219
220
221
221
221
221
227
232
235
235
235
236
236
236
236
237
237
237
237
238
238
238
238
238
238
240
240
241
241
242
244
246
246
247
251
251
252
252
253
253
253
253
253
255
255
256
256
257
257
257
257
259
264
264
268
268
268
269
270
270
270
270
270
270
270
272
272
273
273
273
274
278
278
279
279
281
281
283
284
284
287
287
290
291
292
292
292
292
299
301
302
303
303
307
307
308
308
308
308
311
312
312
312
312
313
314
314
326
329
329
331
331
339
340
340
341
341
341
343
344
344
344
345
348
349
349
350
350
350
356
356
358
358
365
366
368
373
373
378
382
382
383
383
383
383
383
383
387
387
387
387
392
394
396
397
397
397
412
414
414
415
417
419
420
424
424
424
425
425
426
427
427
432
433
435
442
442
449
451
453
453
453
453
454
454
454
454
454
456
456
456
458
458
458
458
469
469
469
471
471
474
474
478
479
485
490
490
490
491
492
494
495
495
496
496
496
496
496
496
497
507
509
510
516
521
521
524
525
527
528
528
528
529
529
533
533
533
533
536
537
539
540
540
541
541
555
555
563
565
566
566
567
567
567
569
583
588
588
602
607
607
627
630
649
654
654
669
674
674
687
690
692
708
713
713
726
731
731
749
751
754
761
761
761
761
762
762
773
778
778
793
798
798
820
822
840
845
845
859
864
864
884
887
906
911
911
926
931
931
944
947
949
965
970
970
983
988
988
1006
1008
1011
1030
1035
1035
1050
1055
1055
1077
1079
1097
1102
1102
1116
1121
1121
1141
1144
1163
1168
1168
1183
1188
1188
1703
1707
1708
5
9
10
11
16
17
19
19
20
20
20
21
21
22
24
27
27
27
27
28
28
31
33
33
33
35
35
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
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
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
44
46
46
48
48
52
53
55
56
58
59
59
60
61
61
61
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
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
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
67
67
67
67
67
68
68
68
71
71
72
76
76
78
78
78
78
79
79
79
79
81
81
87
89
89
89
89
91
91
91
91
92
92
92
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
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
97
97
97
97
97
97
97
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
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
101
103
103
104
104
104
104
105
109
109
110
110
110
112
112
112
113
113
114
114
114
114
117
117
123
123
125
127
127
127
129
129
130
131
131
131
131
132
132
132
132
133
133
134
136
141
141
146
146
146
147
148
148
148
149
149
149
150
150
150
150
150
156
158
158
159
161
162
162
163
164
164
167
167
174
179
179
179
179
181
181
182
182
182
182
182
183
183
183
185
185
186
186
189
194
195
199
199
199
199
200
200
200
200
200
200
202
203
204
205
205
206
207
208
216
217
217
217
218
218
218
218
220
221
221
233
236
237
237
237
237
238
239
239
241
241
242
242
245
252
252
253
253
253
253
253
253
253
254
254
254
254
254
256
256
257
257
260
264
264
265
265
268
270
270
270
271
271
271
271
271
274
275
277
279
279
280
280
282
282
284
284
285
288
288
289
289
289
291
292
292
292
299
300
302
304
304
308
308
309
309
309
309
312
312
313
313
313
313
322
322
325
327
330
330
332
332
340
342
342
342
342
345
345
345
346
349
350
350
350
351
351
351
357
366
366
367
367
369
374
374
377
377
379
381
383
383
383
383
384
384
384
384
388
388
388
388
390
393
395
397
397
398
398
405
411
412
413
415
415
415
418
420
421
425
425
425
425
426
426
433
434
435
435
436
438
443
443
450
452
454
454
455
455
455
455
455
455
457
457
459
459
459
459
463
470
470
475
475
479
479
480
480
486
490
490
491
491
491
492
493
494
495
496
496
496
496
497
497
497
497
498
503
508
510
510
517
518
522
522
525
525
526
528
529
529
530
530
534
534
534
534
537
538
538
542
542
548
548
551
556
556
557
564
566
568
568
568
568
576
584
589
589
603
608
608
628
631
650
655
655
670
675
675
688
691
693
709
714
714
727
732
732
750
752
755
762
762
763
763
774
779
779
794
799
799
814
821
823
841
846
846
860
865
865
885
888
907
912
912
927
932
932
945
948
950
966
971
971
984
989
989
1007
1009
1012
1031
1036
1036
1051
1056
1056
1071
1078
1080
1098
1103
1103
1117
1122
1122
1142
1145
1164
1169
1169
1184
1189
1189
1704
1708
1709
1
5
5
9
11
15
17
18
20
20
20
21
22
22
23
25
25
29
29
32
32
32
32
33
33
33
34
34
34
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
37
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
40
40
40
40
40
40
40
40
40
40
40
41
41
42
42
42
42
42
43
43
43
45
47
47
49
49
54
56
57
59
59
60
60
60
60
61
61
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
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
68
69
76
76
76
77
78
78
79
79
80
80
80
80
82
82
88
90
90
90
90
91
91
91
92
92
92
92
93
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
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
98
98
98
98
98
98
98
99
99
99
100
101
101
101
101
101
101
101
102
104
104
105
105
105
106
108
111
111
111
111
112
112
112
112
112
112
113
113
113
114
114
118
118
124
128
128
130
130
130
130
130
131
131
131
132
132
132
132
132
133
133
133
134
135
137
142
142
144
147
147
147
147
148
148
148
148
148
148
148
149
149
150
150
150
151
157
159
159
159
162
163
163
164
165
165
168
168
168
168
168
169
169
169
175
175
180
180
180
180
181
183
183
183
183
183
183
183
184
184
184
184
184
184
184
184
186
186
195
196
198
200
200
200
201
201
201
201
203
203
203
203
204
204
204
204
205
206
206
208
209
217
217
219
219
219
219
219
220
220
221
221
233
234
237
238
238
238
238
239
239
239
239
240
240
240
240
240
242
242
242
243
243
246
252
254
254
254
254
254
254
254
255
255
255
255
255
255
255
255
255
255
257
257
261
262
265
265
266
266
269
271
271
272
272
272
272
274
274
274
275
275
275
275
276
280
280
281
281
281
283
283
286
290
290
290
290
291
291
292
292
293
293
293
293
299
300
302
302
303
305
305
309
309
310
310
310
310
314
314
314
314
320
323
323
326
328
331
333
333
341
343
343
346
346
346
347
350
351
351
351
351
351
351
352
352
352
356
358
368
368
370
375
375
375
378
378
380
384
384
384
385
385
385
385
389
389
389
389
394
394
396
399
399
406
406
406
406
412
413
415
415
416
416
416
419
421
422
426
426
427
427
433
434
435
436
436
437
439
444
451
453
455
455
456
456
456
456
458
458
460
460
460
460
464
464
464
464
469
471
471
476
476
481
481
487
488
491
491
492
492
492
493
494
496
497
497
497
498
498
498
498
499
507
509
518
519
519
519
519
523
523
525
526
526
528
528
529
530
530
531
531
535
535
535
535
538
543
543
546
549
549
552
557
558
562
565
567
569
569
577
577
577
577
585
590
590
604
609
609
623
627
629
632
651
656
656
671
676
676
689
692
694
710
715
715
728
733
733
751
753
756
763
763
775
780
780
795
800
800
815
819
822
824
842
847
847
861
866
866
880
884
886
889
908
913
913
928
933
933
946
949
951
967
972
972
985
990
990
1008
1010
1013
1032
1037
1037
1052
1057
1057
1072
1076
1079
1081
1099
1104
1104
1118
1123
1123
1137
1141
1143
1146
1165
1170
1170
1185
1190
1190
1705
1709
1710
1
1
8
8
8
8
10
11
12
12
15
17
18
18
18
19
20
20
20
20
23
23
24
26
29
30
31
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
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
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
46
48
50
50
52
52
55
56
57
60
60
61
61
61
61
61
61
62
62
63
63
63
63
63
63
64
64
64
64
64
65
65
65
65
65
65
65
65
65
66
66
66
67
67
68
68
69
70
77
77
77
77
78
78
78
78
78
78
78
79
79
80
80
83
83
87
87
87
89
91
91
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
93
93
93
93
94
94
94
94
94
94
94
94
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
97
97
97
97
97
97
97
97
97
97
97
98
98
98
98
98
98
98
98
99
99
99
99
99
99
100
100
100
101
101
101
101
101
101
101
101
101
101
101
101
101
104
104
105
106
107
109
110
110
111
111
112
112
113
113
114
114
114
115
119
119
123
123
125
126
128
128
128
128
129
129
129
130
130
130
130
131
131
131
132
132
132
133
133
133
134
135
136
138
139
143
143
145
146
146
147
147
148
148
148
149
149
149
150
150
151
158
160
160
162
162
163
164
164
165
166
166
166
167
168
169
169
169
169
169
170
170
176
176
181
181
181
181
183
184
185
185
185
185
185
185
185
185
185
185
196
197
199
199
199
199
200
200
201
201
201
202
202
202
203
204
204
204
204
205
205
205
206
206
207
207
209
211
218
220
220
220
221
221
221
221
221
221
221
221
234
235
237
237
237
238
238
239
239
239
239
240
240
240
240
241
241
241
241
242
243
243
243
244
244
244
252
253
254
254
254
254
255
256
256
256
256
256
256
256
256
256
256
256
256
262
263
263
267
270
270
270
270
272
272
273
274
275
275
275
276
276
276
277
278
281
281
282
282
282
282
282
284
284
284
287
291
291
292
292
292
292
292
292
292
292
294
294
303
303
304
306
306
310
310
311
311
311
311
314
315
315
315
315
321
321
326
326
329
330
330
332
334
342
343
344
347
347
347
348
351
352
352
352
352
353
353
353
356
356
357
366
367
367
367
369
369
371
376
376
376
376
381
383
383
385
385
385
386
386
390
390
390
390
395
395
395
397
397
400
407
407
416
416
417
417
417
420
422
423
427
427
427
428
428
434
434
436
438
439
439
443
443
445
452
454
456
456
456
457
457
459
459
461
461
461
461
465
465
469
469
470
472
477
477
479
480
480
480
482
482
488
489
489
493
493
493
494
495
496
496
497
498
498
498
499
499
500
508
508
510
510
519
520
520
524
524
527
529
529
530
531
531
532
532
536
536
536
536
539
540
544
544
547
547
552
552
556
556
558
563
566
568
569
578
578
586
591
591
605
610
610
628
630
633
652
657
657
672
677
677
693
695
711
716
716
729
734
734
752
754
757
776
781
781
796
801
801
820
823
825
843
848
848
862
867
867
885
887
890
909
914
914
929
934
934
950
952
968
973
973
986
991
991
1009
1011
1014
1033
1038
1038
1053
1058
1058
1077
1080
1082
1100
1105
1105
1119
1124
1124
1142
1144
1147
1166
1171
1171
1186
1191
1191
1706
1710
1711
1
5
9
11
11
11
11
12
15
15
18
19
20
20
21
21
21
23
24
24
25
25
25
25
27
27
30
32
32
32
32
32
32
34
34
34
34
34
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
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
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
40
40
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
47
49
51
53
56
59
59
60
60
61
61
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
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
65
65
65
65
65
66
66
66
66
66
66
66
66
66
66
67
69
70
71
71
71
77
77
78
78
79
79
79
80
80
84
84
88
88
88
90
90
90
90
90
90
90
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
93
93
93
93
93
93
93
93
93
93
93
93
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
96
96
96
96
96
96
96
96
97
97
97
97
97
97
98
98
98
98
98
98
98
98
99
99
99
99
100
100
100
101
101
101
101
101
101
101
101
101
106
107
108
110
110
111
112
112
112
113
113
114
114
115
115
115
115
120
120
123
123
124
124
127
127
128
129
129
130
130
130
130
131
131
132
132
132
133
133
133
134
134
134
135
136
137
139
140
140
140
144
144
146
146
147
148
148
148
148
149
149
149
150
150
151
151
151
151
152
159
159
161
161
163
164
165
165
166
167
167
167
167
167
168
168
170
170
176
176
177
180
180
181
181
182
182
182
184
185
186
186
186
186
188
197
197
198
200
201
202
202
202
202
203
203
203
203
205
206
206
207
207
208
209
209
210
212
216
217
217
219
220
221
222
222
222
222
225
234
234
236
238
238
238
238
238
238
239
239
239
240
240
240
241
242
242
243
244
244
244
244
245
245
245
252
252
253
253
253
254
255
255
255
255
256
257
257
257
257
263
268
271
273
273
274
274
277
278
282
282
282
283
283
283
284
285
285
285
288
291
293
293
293
293
294
304
304
307
307
311
311
312
312
312
312
314
316
316
316
316
330
331
331
333
333
333
335
343
343
345
348
348
348
349
349
352
352
353
353
354
354
354
355
356
357
358
366
366
366
367
368
368
368
372
377
377
382
384
386
386
387
387
391
391
391
391
395
396
397
398
398
401
407
417
417
418
418
421
423
424
427
428
428
429
429
437
439
444
444
446
453
455
456
457
457
458
458
460
460
462
462
462
462
465
468
469
470
471
473
478
478
479
479
479
480
481
481
481
489
494
494
494
495
496
497
498
499
499
500
500
501
508
510
511
511
520
520
525
525
528
530
530
532
532
533
533
537
537
537
537
540
540
545
545
557
557
559
564
567
569
569
578
587
592
592
606
611
611
629
631
634
653
658
658
673
678
678
694
696
712
717
717
730
735
735
753
755
758
761
777
782
782
797
802
802
821
824
826
844
849
849
863
868
868
886
888
891
910
915
915
930
935
935
951
953
969
974
974
987
992
992
1010
1012
1015
1034
1039
1039
1054
1059
1059
1078
1081
1083
1101
1106
1106
1120
1125
1125
1143
1145
1148
1167
1172
1172
1187
1192
1192
1707
1711
1712
1
4
4
5
8
8
12
13
19
20
20
20
21
21
22
22
22
22
22
22
22
22
24
24
24
25
25
25
26
26
28
28
30
30
31
33
33
33
33
33
33
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
37
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
40
40
40
40
40
40
40
40
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
50
52
54
57
57
59
59
59
60
60
60
60
60
61
61
61
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
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
65
65
65
65
65
65
65
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
68
70
71
71
72
77
78
78
78
79
79
80
80
80
81
81
85
85
87
87
87
88
88
88
89
89
89
89
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
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
95
95
95
96
96
96
96
96
96
96
96
96
97
97
97
97
97
97
97
97
97
97
98
98
98
99
99
100
100
101
101
101
101
102
102
105
106
108
109
111
111
111
111
111
112
112
112
113
113
113
116
116
116
121
121
125
125
128
128
128
128
129
130
130
130
130
131
131
131
131
132
132
132
133
133
133
134
134
135
136
137
138
140
141
141
145
145
147
147
147
147
147
148
148
148
149
149
149
152
152
152
152
153
157
160
160
162
162
164
165
167
168
168
168
171
171
178
181
181
182
182
183
183
183
183
183
183
185
186
186
189
189
189
189
198
198
198
198
199
201
201
201
201
202
203
204
206
207
208
209
210
210
211
215
217
218
218
219
220
220
222
222
222
226
237
238
239
239
239
240
241
242
243
243
245
245
245
245
246
246
246
253
253
254
254
254
255
256
256
256
256
257
257
264
265
266
266
269
270
270
272
272
272
272
278
279
282
283
283
284
284
284
284
285
286
286
286
289
290
291
293
293
294
302
308
308
312
312
313
313
313
313
317
317
317
317
323
330
331
332
332
334
336
344
349
349
349
350
350
352
353
354
354
355
355
355
356
358
359
368
369
369
369
373
378
378
378
383
383
383
385
387
387
388
388
392
392
392
392
395
397
397
398
399
399
399
399
402
407
415
419
419
422
424
425
429
429
430
430
436
438
440
443
445
445
454
456
458
458
459
459
461
461
463
463
463
463
465
469
471
472
474
479
479
481
482
482
482
490
491
495
495
495
496
496
496
497
498
499
500
500
501
501
502
508
510
511
512
512
520
521
526
526
528
529
533
533
534
534
538
538
538
538
541
546
546
549
556
558
558
565
568
570
578
588
593
593
607
612
612
630
632
635
654
659
659
674
679
679
695
697
713
718
718
731
736
736
754
756
759
761
761
762
778
783
783
798
803
803
822
825
827
845
850
850
864
869
869
887
889
892
911
916
916
931
936
936
952
954
970
975
975
988
993
993
1011
1013
1016
1035
1040
1040
1055
1060
1060
1079
1082
1084
1102
1107
1107
1121
1126
1126
1144
1146
1149
1168
1173
1173
1188
1193
1193
1711
1712
1713
5
5
5
5
5
5
6
13
14
15
17
19
20
20
20
21
22
22
22
25
25
25
26
26
27
27
27
29
29
29
29
29
31
32
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
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
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
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
43
45
49
51
51
52
53
53
53
54
57
58
58
58
60
60
60
60
60
60
61
61
61
61
62
62
62
62
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
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
66
66
71
72
72
73
77
77
77
78
78
78
79
79
79
81
82
82
86
86
88
88
88
89
89
89
89
89
89
89
89
89
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
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
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
96
96
96
97
97
97
98
98
98
98
98
98
98
98
98
98
98
98
98
99
101
101
101
101
102
105
109
109
111
111
111
111
112
113
114
114
115
115
115
115
117
117
117
117
122
122
126
126
127
127
128
129
129
130
131
131
132
132
133
133
133
133
134
134
134
134
134
135
136
136
137
137
138
138
139
139
140
141
141
141
141
141
142
145
146
146
147
147
147
147
148
149
150
150
151
151
151
151
153
153
153
153
158
158
163
163
165
166
168
169
169
169
169
169
169
169
170
170
170
172
172
179
180
182
182
184
184
184
184
184
184
185
185
186
186
190
190
199
199
199
199
200
201
202
202
202
203
204
204
204
204
205
205
205
205
207
208
209
210
211
211
216
216
218
220
220
220
220
221
221
221
222
222
223
227
227
234
238
239
240
240
240
240
240
240
240
240
241
241
241
241
243
244
244
244
244
245
246
246
246
246
247
247
254
255
255
255
255
256
256
256
257
257
257
257
265
265
267
270
270
270
270
271
271
272
273
273
275
275
275
276
276
276
279
280
282
282
284
284
285
285
285
285
286
287
290
291
291
291
291
292
292
293
293
299
309
309
313
313
314
314
314
314
314
314
318
318
318
318
323
330
332
335
337
345
350
350
350
351
351
354
355
355
356
356
356
356
357
359
367
369
370
370
374
378
379
379
383
383
384
384
384
388
388
389
389
393
393
393
393
395
395
398
398
399
400
403
412
420
420
423
425
426
427
427
430
430
431
431
434
436
439
441
443
455
457
459
459
460
460
462
462
464
464
464
464
469
470
472
475
480
480
480
482
483
483
491
491
496
496
496
496
496
497
497
497
500
501
501
502
502
503
508
508
511
512
522
525
527
527
530
534
534
535
535
539
539
539
539
540
540
542
547
547
549
556
566
569
569
571
571
589
594
594
608
613
613
631
633
636
655
660
660
675
680
680
689
696
698
714
719
719
732
737
737
757
760
761
762
763
779
784
784
799
804
804
823
826
826
828
828
846
851
851
865
870
870
888
890
893
912
917
917
932
937
937
946
953
955
971
976
976
989
994
994
1014
1017
1036
1041
1041
1056
1061
1061
1080
1083
1083
1085
1085
1103
1108
1108
1122
1127
1127
1145
1147
1150
1169
1174
1174
1189
1194
1194
1707
1712
1713
1714
6
6
7
7
12
14
15
20
20
20
20
22
22
23
25
26
26
26
27
27
27
29
29
30
30
30
30
32
32
32
32
32
32
32
32
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
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
40
41
41
41
41
41
41
41
42
42
42
42
42
42
46
50
52
52
54
54
58
58
59
59
59
59
60
61
61
61
61
61
62
62
62
62
62
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
66
70
72
72
72
72
72
72
74
74
78
79
80
80
81
81
81
81
82
83
83
87
87
89
89
89
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
92
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
95
95
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
98
98
98
98
98
98
98
99
99
99
99
99
99
99
99
99
99
100
102
102
103
109
109
111
113
114
115
115
116
116
116
116
118
118
118
118
123
123
127
128
128
130
130
133
134
134
134
134
135
135
135
135
136
139
139
140
140
142
142
142
143
145
147
147
149
150
151
151
151
151
151
152
152
152
152
154
154
158
162
164
164
166
167
167
168
169
169
170
170
170
170
170
170
170
170
170
171
171
173
173
180
180
185
185
185
185
186
186
186
186
186
186
186
186
190
198
199
199
199
199
200
200
200
200
201
202
203
203
204
204
205
205
205
205
206
206
206
208
209
209
210
211
219
221
221
222
222
222
222
222
222
222
222
222
224
228
228
228
228
238
239
239
240
240
241
241
241
241
242
242
242
244
245
245
245
245
245
246
246
246
247
247
247
248
248
255
255
256
256
257
257
257
257
257
257
257
257
266
268
271
271
271
272
272
273
274
275
276
276
276
277
277
280
281
283
283
284
284
284
285
285
286
286
286
286
288
291
292
292
293
293
293
293
293
293
293
293
299
300
302
302
310
310
312
314
314
315
315
315
315
315
315
319
319
319
319
326
330
331
333
336
338
342
346
351
351
351
352
352
355
356
356
356
357
357
357
357
359
359
360
368
368
375
380
380
385
385
385
389
389
390
390
394
394
394
394
396
396
397
397
397
399
399
401
404
412
413
415
415
421
421
424
425
426
427
428
428
431
431
432
432
435
437
439
440
442
443
444
455
456
458
460
460
461
461
463
463
465
465
465
465
469
470
472
472
473
476
481
481
481
481
492
497
497
497
498
498
498
501
502
502
503
503
504
509
509
510
510
510
512
523
525
526
528
528
528
528
531
535
535
536
536
538
540
540
540
540
541
541
543
548
548
552
556
557
567
568
572
572
590
595
595
609
614
614
632
634
634
637
637
656
661
661
676
681
681
690
694
697
699
715
720
720
733
738
738
758
761
763
764
780
785
785
800
805
805
824
829
829
847
852
852
866
871
871
889
891
891
894
894
913
918
918
933
938
938
947
951
954
956
972
977
977
990
995
995
1015
1018
1037
1042
1042
1057
1062
1062
1081
1086
1086
1104
1109
1109
1123
1128
1128
1146
1148
1148
1151
1151
1170
1175
1175
1190
1195
1195
1713
1714
1715
4
5
7
7
8
8
8
11
11
20
21
21
21
22
22
23
23
23
24
26
26
27
27
28
28
29
29
29
29
30
30
30
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
36
36
36
36
36
36
36
36
37
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
40
40
41
41
41
41
41
41
41
41
41
42
42
43
43
43
43
43
43
47
51
53
53
55
55
57
58
59
59
59
60
60
60
60
60
60
60
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
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
70
70
73
73
75
75
77
79
80
81
81
82
82
82
82
83
84
84
88
88
89
89
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
92
92
92
92
92
93
93
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
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
96
96
96
96
96
97
97
97
97
97
97
97
98
98
98
98
98
99
99
99
99
99
99
99
99
100
100
100
100
100
101
103
103
105
105
109
109
110
111
112
115
117
117
117
117
118
118
119
124
124
126
126
128
128
128
129
129
130
130
131
135
135
135
136
136
136
140
140
141
141
141
141
143
143
143
146
147
147
147
148
148
148
151
151
151
152
152
153
153
153
153
160
163
165
165
165
167
168
168
168
168
169
169
169
169
170
170
170
171
171
171
171
174
174
176
180
181
181
185
186
186
187
187
187
187
190
200
200
201
202
202
203
203
203
204
204
204
205
206
206
207
209
210
211
212
218
220
221
223
223
223
223
223
223
225
225
226
228
228
229
229
238
239
239
240
240
241
242
243
245
246
246
246
246
247
247
248
248
248
249
249
256
258
258
258
258
265
265
267
268
269
272
273
273
274
274
275
275
281
282
285
285
285
285
286
286
287
287
287
289
289
292
292
292
294
294
294
294
299
303
303
311
311
313
313
315
315
316
316
316
316
320
320
320
320
326
331
332
334
337
339
343
343
343
343
347
352
352
352
353
353
356
356
357
357
358
358
358
358
360
360
361
376
378
378
381
381
381
386
386
386
390
390
391
391
395
395
395
395
398
398
398
398
400
402
405
412
416
416
422
422
425
426
426
427
428
432
432
433
433
438
439
441
443
444
445
456
456
456
456
457
459
461
461
462
462
464
464
466
466
466
466
473
473
474
477
482
482
491
491
493
494
498
498
498
499
499
499
502
503
503
504
504
505
511
511
511
511
524
525
529
529
529
529
532
536
536
537
537
539
539
541
541
541
541
544
549
549
552
557
558
568
569
569
569
569
573
573
591
596
596
610
615
615
633
638
638
657
662
662
677
682
682
695
698
700
716
721
721
734
739
739
759
759
762
764
781
786
786
801
806
806
825
830
830
848
853
853
867
872
872
890
895
895
914
919
919
934
939
939
952
955
957
973
978
978
991
996
996
1016
1019
1038
1043
1043
1058
1063
1063
1082
1087
1087
1105
1110
1110
1124
1129
1129
1147
1152
1152
1171
1176
1176
1191
1196
1196
1714
1715
1716
4
5
6
9
9
14
14
15
20
22
22
23
23
24
24
24
25
27
27
27
27
27
28
29
29
29
30
30
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
36
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
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
42
42
50
52
55
56
56
58
58
59
59
59
60
60
60
61
61
61
61
61
61
61
62
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
65
66
66
66
66
66
66
67
67
67
67
67
67
71
71
74
74
76
76
77
78
81
83
83
83
83
84
87
88
88
89
89
89
89
89
89
89
89
89
89
89
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
93
93
93
93
93
93
94
94
94
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
96
96
96
96
97
97
97
97
97
97
97
97
97
97
97
97
98
98
98
99
99
99
99
99
99
99
100
100
100
100
100
100
101
101
101
101
101
102
104
104
106
106
110
110
110
113
114
114
115
115
115
115
116
120
125
125
127
127
128
129
129
130
130
131
131
131
131
131
132
132
132
132
136
137
141
141
142
142
142
144
146
146
146
146
147
147
148
149
149
149
150
150
151
151
151
151
152
152
152
153
153
160
164
166
168
169
170
170
171
171
172
172
172
172
175
175
176
181
182
182
184
185
187
187
187
187
199
199
201
201
202
202
202
203
203
204
205
206
206
207
207
207
208
208
209
209
210
211
212
213
218
220
221
221
223
223
226
226
229
230
230
234
238
239
239
243
243
244
246
247
247
247
247
248
248
249
249
250
250
255
256
257
258
258
263
266
266
268
269
270
273
273
273
273
274
282
283
286
286
287
287
288
288
288
291
292
293
293
294
294
300
302
304
304
304
312
312
316
316
317
317
317
317
321
321
321
321
330
332
333
335
338
340
344
344
348
353
353
353
354
354
358
358
359
359
359
359
361
361
370
376
377
379
379
382
382
382
387
387
391
391
392
392
396
396
396
396
399
399
401
403
406
413
415
417
417
417
423
426
428
429
433
433
434
434
439
442
443
444
445
446
457
457
458
460
462
462
463
463
465
465
467
467
467
467
474
474
478
483
483
483
489
492
492
494
495
497
499
499
499
500
500
501
503
504
504
505
505
506
512
512
525
526
528
530
530
530
530
530
533
537
537
538
538
542
542
542
542
545
550
556
558
559
569
570
570
574
574
592
597
597
611
616
634
639
639
658
663
663
678
683
696
699
701
717
722
722
735
740
740
754
758
760
760
763
764
765
782
787
787
802
807
826
831
831
849
854
854
868
873
891
896
896
915
920
920
935
940
953
956
958
974
979
979
992
997
997
1011
1015
1017
1020
1039
1044
1044
1059
1064
1083
1088
1088
1106
1111
1111
1125
1130
1148
1153
1153
1172
1177
1177
1192
1197
1715
1716
1717
4
5
5
5
10
10
11
11
15
19
21
22
24
24
25
26
27
28
28
29
29
30
30
30
30
31
32
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
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
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
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
53
56
57
57
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
64
64
64
64
64
64
64
64
65
65
65
66
66
67
67
68
68
71
71
72
77
77
79
80
80
81
81
81
81
82
85
87
87
87
87
87
88
88
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
91
91
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
94
94
94
94
94
94
94
94
94
94
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
97
98
98
99
99
99
99
99
99
99
100
100
100
100
100
100
100
101
101
101
102
102
102
102
102
103
105
105
111
111
111
111
114
115
115
115
115
115
115
116
116
116
116
117
121
126
126
126
128
128
130
131
131
131
132
132
132
133
133
133
133
133
133
134
137
138
141
142
142
143
143
143
145
147
148
150
150
150
151
151
151
151
151
151
152
152
153
153
153
154
154
165
167
169
170
170
170
170
171
171
171
172
172
173
173
173
173
176
176
176
176
180
182
183
183
185
185
185
185
187
187
187
187
187
187
188
188
200
200
202
203
203
204
205
206
206
206
207
208
208
209
209
210
210
211
211
212
212
213
213
214
214
221
221
221
221
222
223
223
223
223
223
223
227
227
228
228
230
234
239
240
241
242
244
244
245
246
247
248
248
248
248
250
250
251
251
256
256
256
256
257
258
258
258
258
258
258
264
264
269
269
269
271
271
273
273
273
274
274
274
275
276
277
283
284
286
288
288
289
289
289
292
292
292
292
293
294
294
294
294
294
294
294
294
302
303
313
313
315
317
317
318
318
318
318
321
322
322
322
322
326
331
333
333
336
339
341
344
349
351
354
354
354
355
355
359
359
359
360
360
360
360
370
377
377
378
382
382
383
383
386
386
388
388
392
392
393
393
397
397
397
397
399
402
404
406
407
415
416
422
424
425
427
428
429
430
434
434
434
435
435
439
440
443
444
445
446
446
457
459
461
463
463
464
464
464
466
466
468
468
468
468
472
479
483
484
484
490
490
495
495
495
499
499
500
500
500
501
501
502
504
505
505
506
506
507
512
519
526
528
529
531
531
534
538
538
539
539
541
543
543
543
543
546
547
549
549
551
552
557
559
559
570
570
575
575
577
593
598
598
612
617
635
640
640
659
664
664
679
682
682
684
697
700
702
718
723
723
736
741
741
759
760
761
764
764
766
783
788
788
803
806
806
808
827
832
832
850
855
855
869
874
892
897
897
916
921
921
936
939
939
941
954
957
959
975
980
980
993
998
998
1016
1018
1021
1040
1045
1045
1060
1063
1063
1065
1084
1089
1089
1107
1112
1112
1126
1131
1149
1154
1154
1173
1178
1178
1193
1196
1196
1198
1716
1717
1718
5
6
6
6
11
11
14
14
15
22
22
22
24
25
27
27
29
29
29
29
29
30
30
30
31
31
31
32
32
32
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
35
35
35
35
36
36
36
36
36
36
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
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
40
40
40
40
40
42
42
42
42
42
42
54
57
58
58
59
59
59
59
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
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
63
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
67
67
68
68
68
68
69
69
72
72
72
72
73
78
78
80
81
81
81
81
82
82
82
82
83
86
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
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
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
93
94
94
94
94
94
94
94
94
94
94
94
94
95
95
95
95
95
96
97
97
97
97
97
97
97
97
98
98
98
98
98
99
99
99
99
99
99
99
99
99
100
100
100
100
101
101
101
101
101
102
103
103
103
103
103
104
106
106
106
106
111
111
115
115
115
115
116
116
116
116
116
116
116
116
117
117
117
117
122
126
127
127
130
131
131
132
133
133
133
133
133
134
134
134
134
134
134
135
138
139
141
141
142
143
143
144
144
146
146
147
147
148
149
150
151
151
151
152
152
152
152
152
152
153
153
153
154
154
160
160
164
166
168
168
170
170
170
170
171
171
171
171
171
172
172
173
176
177
177
177
177
181
183
183
184
186
186
188
188
188
188
189
189
189
199
200
201
201
201
205
205
205
206
206
206
207
207
208
209
209
209
210
210
211
211
211
214
214
215
215
218
218
222
222
223
224
224
224
224
228
228
229
238
240
241
241
241
241
242
242
242
245
245
245
246
248
249
249
251
251
252
252
257
257
259
259
259
259
270
272
272
272
274
274
275
276
276
276
276
277
277
277
284
285
286
289
290
290
293
293
294
294
294
295
295
295
295
295
295
303
303
304
304
314
314
315
318
318
319
319
319
319
322
323
323
330
332
337
340
342
344
350
352
352
352
355
355
355
356
356
356
360
361
361
361
379
384
384
387
387
389
389
393
393
394
394
398
398
399
403
405
407
407
407
408
416
416
417
417
425
426
428
428
430
431
435
435
436
441
443
444
444
445
446
446
457
460
462
464
464
465
465
465
465
465
467
467
469
469
469
480
485
485
496
500
500
501
501
501
502
502
503
505
506
507
508
512
520
520
520
527
529
529
530
530
532
532
535
539
539
540
540
541
544
544
547
548
550
552
556
558
570
571
576
576
578
578
578
594
599
599
613
615
615
618
636
641
641
660
665
665
680
683
685
698
701
701
703
703
719
724
724
737
742
742
760
760
762
764
765
765
767
784
789
789
804
807
809
828
833
833
851
856
856
870
872
872
875
893
898
898
917
922
922
937
940
942
955
958
958
960
960
976
981
981
994
999
999
1017
1019
1022
1041
1046
1046
1061
1064
1066
1085
1090
1090
1108
1113
1113
1127
1129
1129
1132
1150
1155
1155
1174
1179
1179
1194
1197
1199
1717
1718
1719
5
5
5
7
11
11
12
12
15
23
24
24
24
26
26
28
29
30
30
30
30
30
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
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
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
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
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
43
43
43
43
43
43
55
58
58
59
59
59
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
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
69
69
70
70
72
72
74
79
79
81
81
81
81
82
82
82
82
83
83
83
83
85
85
85
85
85
85
86
86
86
87
87
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
91
91
91
91
91
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
92
92
92
92
92
92
93
93
94
94
94
94
94
94
94
94
94
94
94
95
97
97
97
97
97
97
97
97
97
97
97
97
97
98
99
99
99
99
100
100
100
101
101
101
101
102
102
102
102
102
103
104
104
105
105
106
107
107
107
107
110
114
114
116
116
116
116
116
116
117
117
117
117
118
118
118
118
118
118
118
123
126
127
128
128
128
133
134
134
134
134
134
134
135
135
135
135
135
135
136
136
139
140
140
141
142
143
144
144
145
145
146
147
149
150
151
151
152
152
152
152
152
152
152
153
153
154
154
154
154
155
155
158
161
161
167
168
169
169
169
169
170
170
171
171
171
171
171
172
172
172
172
172
172
172
173
173
174
178
178
178
178
180
182
185
186
186
186
188
188
188
188
188
188
188
188
189
189
190
190
190
190
190
190
199
199
200
201
203
204
205
206
206
206
206
207
207
207
207
208
209
209
210
210
210
211
211
215
215
216
216
216
219
219
222
222
222
224
224
224
224
224
224
224
224
224
225
225
228
228
229
229
230
239
239
240
241
242
242
242
242
243
243
243
243
245
246
246
246
246
246
247
248
248
249
250
250
251
251
252
252
253
253
257
257
257
257
257
259
259
259
259
259
259
259
259
260
260
266
271
273
273
274
275
275
275
276
277
277
277
277
278
278
278
278
285
286
290
291
291
293
293
293
295
295
295
295
295
295
295
295
295
295
296
296
296
296
305
305
315
315
319
319
320
320
320
320
322
322
322
322
323
323
324
324
331
331
333
333
341
343
351
353
353
356
356
356
356
357
357
357
359
359
361
362
362
362
370
370
379
380
385
385
386
388
388
390
394
394
395
395
397
397
397
397
399
399
404
406
408
408
409
418
418
426
427
429
431
432
436
436
436
437
442
444
444
446
446
447
447
461
463
465
465
466
466
466
466
468
468
468
468
468
468
469
470
470
470
472
472
481
483
483
486
486
492
497
499
501
501
502
502
502
503
504
506
507
508
509
521
521
528
531
531
533
533
536
540
540
541
541
543
543
543
543
545
545
548
549
549
551
553
557
557
559
559
572
577
577
579
579
595
600
600
614
616
619
637
642
642
661
666
666
681
684
686
699
704
704
720
725
725
738
743
743
761
763
764
765
766
766
785
790
790
805
808
810
829
834
834
852
857
857
871
873
876
894
899
899
918
923
923
938
941
943
956
961
961
977
982
982
995
1000
1000
1018
1020
1023
1042
1047
1047
1062
1065
1067
1086
1091
1091
1109
1114
1114
1128
1130
1133
1151
1156
1156
1175
1180
1180
1195
1198
1200
1718
1719
1720
5
6
6
8
13
13
14
14
15
22
22
24
24
24
24
27
29
29
29
31
32
32
32
32
32
32
32
32
32
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
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
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
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
56
57
57
58
59
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
61
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
64
64
65
65
65
65
65
65
66
66
66
66
66
70
70
71
71
75
80
80
80
80
82
82
82
82
83
83
84
84
84
84
84
84
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
87
87
87
87
87
88
88
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
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
92
92
92
92
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
94
94
94
94
95
95
95
97
97
97
97
97
99
99
100
100
100
100
101
101
101
102
102
102
103
103
103
103
104
106
106
106
108
108
108
108
110
110
114
115
115
116
116
117
118
118
118
118
118
118
118
118
118
119
119
119
119
124
127
128
128
129
129
129
131
134
135
135
135
136
136
136
136
136
137
137
140
141
141
143
144
145
145
146
146
148
150
150
150
152
152
152
153
153
153
153
154
154
155
155
155
155
156
156
159
159
168
169
170
170
170
170
171
171
171
171
172
172
172
172
172
172
173
173
173
173
174
174
175
175
179
179
179
179
181
181
183
183
186
186
186
186
187
187
189
189
189
189
190
190
191
191
191
191
198
199
200
201
203
204
205
206
206
206
207
207
207
207
208
208
209
209
210
210
210
211
211
211
211
211
212
212
216
216
217
217
217
217
222
222
222
223
223
225
225
225
225
225
226
226
228
228
229
229
230
230
239
239
240
241
241
241
241
242
242
242
243
243
243
243
244
244
245
247
247
247
247
248
250
251
251
252
252
253
253
254
254
255
257
257
257
258
258
258
258
260
260
260
260
261
261
266
273
274
274
275
276
277
277
277
278
278
278
278
279
279
286
287
288
288
289
289
291
292
292
293
293
293
294
294
294
295
295
295
295
296
296
296
296
296
297
297
297
297
303
304
304
304
306
306
315
315
316
316
320
320
321
321
321
321
323
323
324
324
324
324
325
325
331
333
334
334
342
344
352
352
353
353
353
353
354
356
357
357
357
358
358
359
359
360
360
360
360
362
363
363
363
368
371
371
379
381
386
386
386
391
395
395
396
396
398
398
400
400
407
407
408
408
408
408
409
410
416
417
417
417
419
419
427
428
428
428
430
432
433
434
434
435
435
437
437
437
437
437
438
443
444
446
447
447
448
448
462
464
465
466
466
466
466
466
466
467
467
467
469
469
469
469
469
471
471
473
473
481
482
484
484
487
487
492
498
499
503
503
503
504
505
505
505
506
506
507
508
509
510
520
521
521
521
521
522
529
529
530
530
530
532
532
534
534
537
541
541
541
541
542
542
544
544
546
546
549
550
550
550
550
552
554
557
559
560
560
573
578
578
578
579
579
579
579
580
596
601
601
615
617
620
638
643
643
662
667
667
682
685
687
700
705
705
721
726
726
739
744
744
760
762
764
765
766
767
786
791
791
806
809
811
830
835
835
853
858
858
872
874
877
895
900
900
919
924
924
939
942
944
957
962
962
978
983
983
996
1001
1001
1019
1021
1024
1043
1048
1048
1063
1066
1068
1087
1092
1092
1110
1115
1115
1129
1131
1134
1152
1157
1157
1176
1181
1181
1196
1199
1201
1719
1720
1721
1
1
5
5
5
9
11
11
14
14
14
15
24
24
24
24
24
24
25
25
28
28
29
29
30
32
32
32
32
33
33
33
33
33
34
34
34
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
37
37
37
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
40
40
40
40
40
40
40
40
40
40
40
41
42
42
42
57
57
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
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
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
65
65
65
66
66
66
66
66
66
67
67
67
71
71
71
71
72
72
76
80
81
81
81
81
82
82
84
84
84
84
84
84
85
85
85
85
85
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
90
90
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
92
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
95
95
100
100
100
101
101
101
101
101
102
102
102
104
104
105
105
107
107
109
109
109
109
110
114
114
115
116
116
116
116
116
116
118
118
118
119
119
120
120
120
120
125
126
128
128
129
129
130
130
131
131
131
132
134
135
135
135
135
136
136
136
137
137
138
138
141
141
142
142
144
146
146
146
147
147
149
151
151
151
152
152
152
152
153
154
154
154
154
154
156
156
156
156
169
171
171
172
172
172
172
173
173
173
174
174
174
174
175
175
176
176
180
180
180
180
181
183
184
184
187
187
187
188
188
188
188
188
188
190
190
190
190
191
192
192
199
201
202
203
203
203
204
206
207
207
207
208
208
208
209
209
211
212
212
212
212
212
213
213
217
217
218
218
223
223
224
224
224
224
224
224
226
226
226
226
226
230
230
231
231
242
242
242
243
243
243
244
244
244
245
245
246
246
248
248
248
248
249
251
252
252
253
253
254
254
255
255
256
256
258
258
259
259
259
259
259
259
261
261
261
261
269
273
274
274
274
274
275
277
278
278
278
279
279
279
280
280
285
287
288
289
290
292
293
293
294
294
295
295
295
295
295
295
296
296
297
297
297
297
297
298
298
303
303
303
304
305
305
305
313
316
316
317
317
321
321
322
322
322
322
324
324
324
324
325
325
326
326
331
333
334
335
335
343
343
345
353
354
354
355
357
358
358
359
359
359
360
361
361
361
361
363
364
364
364
369
369
382
382
386
387
387
387
392
396
396
397
398
399
399
401
401
404
408
408
409
409
410
411
416
416
416
417
418
418
418
426
428
429
429
429
431
433
434
435
435
436
437
437
438
438
438
439
444
444
446
447
448
448
449
449
456
463
465
467
467
467
467
468
468
470
470
470
470
470
472
472
472
474
474
474
482
482
483
488
488
495
499
499
500
504
504
505
506
506
507
508
508
509
510
511
511
511
522
522
523
529
529
529
530
530
531
531
531
535
535
538
539
542
542
542
542
543
545
545
547
547
548
550
550
550
551
551
553
555
557
559
560
561
561
569
574
579
579
580
580
581
597
602
602
616
618
621
639
644
644
663
668
668
683
686
688
701
706
706
722
727
727
740
745
745
763
765
765
766
768
768
787
792
792
807
810
812
831
836
836
854
859
859
873
875
878
896
901
901
920
925
925
940
943
945
958
963
963
979
984
984
997
1002
1002
1020
1022
1022
1025
1025
1044
1049
1049
1064
1067
1069
1088
1093
1093
1111
1116
1116
1130
1132
1135
1153
1158
1158
1177
1182
1182
1197
1200
1202
1720
1721
1722
1
1
1
5
6
6
10
14
14
14
15
15
15
15
15
15
22
26
26
29
30
30
30
31
32
32
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
34
34
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
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
40
40
40
40
40
40
40
40
40
40
43
43
43
57
58
58
58
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
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
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
67
67
67
67
67
68
68
68
71
72
72
73
73
77
80
80
81
82
82
82
82
82
82
84
84
85
85
86
86
86
86
86
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
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
90
90
90
90
90
91
91
92
92
92
92
92
92
92
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
95
95
95
95
101
102
102
102
103
105
105
106
106
106
106
108
108
110
110
110
110
115
115
116
116
116
116
116
117
117
117
117
118
119
119
120
120
126
127
129
129
131
131
131
132
132
132
132
133
133
134
134
134
135
135
135
135
136
136
136
136
137
137
137
141
142
142
143
144
144
145
147
147
148
148
150
151
151
152
152
152
153
153
153
153
153
153
153
154
154
154
154
154
154
154
155
155
155
155
155
161
168
170
171
171
171
172
172
172
172
172
173
173
173
173
174
175
175
176
176
177
177
181
181
181
181
181
183
184
185
185
185
187
187
187
187
187
187
187
187
188
188
188
188
189
189
189
189
191
193
193
199
200
201
202
204
204
204
204
205
206
206
206
207
207
207
207
208
208
208
209
209
210
211
211
211
212
213
213
213
213
213
214
214
218
218
219
219
219
221
223
223
223
223
223
223
223
223
224
224
224
225
225
225
225
226
227
231
231
232
232
239
241
242
242
242
243
243
243
243
243
243
244
244
245
246
247
247
249
250
250
252
253
253
254
254
255
255
256
256
256
258
258
258
258
258
258
258
258
259
259
259
260
260
260
260
269
272
274
275
275
275
275
275
276
277
277
277
278
278
278
278
279
279
279
280
286
286
286
286
288
289
290
291
292
293
294
294
294
294
294
294
294
294
294
294
295
295
295
295
295
296
296
296
296
297
297
299
299
305
306
306
306
314
314
318
318
321
321
322
322
323
323
323
325
325
325
326
326
327
327
331
331
334
335
337
344
344
344
344
344
346
353
353
354
355
355
359
359
359
360
360
360
361
362
364
365
365
365
382
383
387
388
388
388
393
396
396
397
397
398
399
399
399
399
400
400
402
402
408
408
409
409
410
410
412
418
419
419
419
427
427
429
430
432
434
435
436
437
438
439
439
439
440
444
444
445
447
448
450
450
457
457
457
457
464
466
466
466
467
467
468
468
468
468
469
471
471
471
471
472
473
473
473
484
489
489
495
500
500
501
505
505
506
507
507
508
510
511
512
512
512
512
512
512
521
521
523
523
531
531
532
532
532
536
536
539
540
540
542
542
543
543
544
546
546
548
548
551
551
552
552
554
556
557
557
560
561
570
570
570
570
575
579
579
580
580
581
581
598
603
603
617
619
622
640
645
645
664
669
669
684
687
689
702
707
707
723
728
728
741
746
746
764
764
767
769
769
788
793
793
808
811
813
832
837
837
855
860
860
874
876
879
897
902
902
921
926
926
941
944
946
959
964
964
980
985
985
998
1003
1003
1021
1026
1026
1045
1050
1050
1065
1068
1070
1089
1094
1094
1112
1117
1117
1131
1133
1136
1154
1159
1159
1178
1183
1183
1198
1201
1203
1721
1721
1722
1723
5
5
5
11
11
11
15
16
16
16
16
26
27
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
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
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
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
58
58
58
58
58
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
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
63
64
64
65
65
65
65
66
66
66
66
66
66
66
67
67
67
68
68
68
69
73
73
74
74
78
81
81
82
83
83
83
83
83
85
85
85
85
86
86
86
86
86
86
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
88
89
90
90
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
91
91
91
91
92
92
92
92
92
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
95
95
95
95
95
95
95
95
95
96
100
102
102
102
102
103
103
103
103
103
103
104
106
106
107
107
107
107
109
109
111
111
111
111
115
116
116
117
117
117
117
117
117
117
118
118
118
118
118
118
118
118
118
120
120
126
127
128
132
132
133
133
133
134
134
136
137
137
137
137
138
138
138
143
144
145
145
146
148
148
149
149
151
152
152
152
152
152
153
153
153
154
154
154
154
154
155
155
155
155
155
156
156
156
161
169
169
170
171
172
173
173
173
174
174
176
176
177
177
178
178
181
181
182
182
182
182
184
185
186
188
188
188
188
188
188
189
189
190
190
190
190
194
194
199
200
202
202
202
203
204
204
204
205
205
205
207
208
208
209
209
210
210
210
210
211
212
212
212
213
214
214
214
215
215
219
219
219
220
220
222
224
224
224
224
224
224
225
226
226
226
226
227
228
232
233
233
240
241
242
243
244
244
245
247
247
248
248
250
251
251
253
254
254
255
255
256
256
257
257
257
258
259
259
259
259
259
259
260
261
261
261
261
271
273
273
275
275
275
275
275
276
276
276
276
277
278
279
279
280
280
287
287
289
290
291
292
293
294
295
295
295
295
295
295
295
295
296
296
297
297
297
297
300
300
304
306
307
307
319
319
322
323
323
324
324
324
324
324
326
326
326
328
328
332
332
333
333
333
335
338
342
345
345
345
347
354
355
357
357
360
360
360
360
361
361
361
361
362
363
365
366
366
366
371
384
386
388
389
389
389
394
397
398
398
399
400
400
401
401
403
403
409
410
410
413
417
419
420
420
430
431
433
435
436
437
437
437
438
439
440
441
445
445
446
446
446
446
448
451
451
458
458
465
467
467
468
469
469
470
472
472
472
472
473
473
474
474
474
474
484
485
490
499
501
501
502
503
503
506
506
507
508
508
509
511
512
513
513
513
513
522
530
532
532
533
533
537
537
540
543
544
544
545
547
547
549
549
550
550
552
552
555
557
558
558
559
559
559
561
571
571
576
580
581
581
599
604
604
618
620
623
641
646
646
665
670
670
685
688
690
703
708
708
724
729
729
742
747
760
765
765
770
770
789
794
794
809
812
814
833
838
838
856
861
861
875
877
880
898
903
903
922
927
927
942
945
947
960
965
965
981
986
986
999
1004
1022
1027
1027
1046
1051
1051
1066
1069
1071
1090
1095
1095
1113
1118
1118
1132
1134
1137
1155
1160
1160
1179
1184
1184
1199
1202
1204
1722
1722
1723
1724
5
5
6
6
6
6
12
17
17
17
17
22
22
23
27
28
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
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
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
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
58
58
58
59
59
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
61
61
61
61
62
62
62
62
62
62
62
62
62
62
63
63
63
64
64
64
64
66
67
67
67
67
68
68
68
69
69
69
70
74
74
75
75
79
81
83
83
83
84
84
84
84
85
85
85
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
88
88
88
88
88
88
88
88
89
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
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
92
93
93
93
93
94
94
94
95
95
95
95
95
95
95
95
95
95
96
96
96
96
97
99
99
99
99
100
101
101
101
102
103
103
103
103
103
104
104
104
104
105
107
107
108
108
110
110
112
112
112
112
115
116
116
117
117
117
118
119
119
119
119
119
119
119
119
119
119
127
127
128
129
129
132
133
133
133
133
133
135
135
135
136
137
138
138
138
139
139
144
145
146
146
149
149
150
150
151
151
153
153
153
154
154
154
154
155
155
155
155
155
155
155
156
156
156
156
157
169
169
169
170
171
172
172
173
173
173
174
174
174
175
175
177
177
178
178
179
179
182
182
183
183
183
183
183
183
183
185
187
187
187
188
188
188
188
189
189
189
189
189
189
190
191
191
195
203
203
204
204
204
205
205
206
206
206
207
208
209
209
210
210
211
212
213
213
213
214
215
215
215
216
216
220
220
221
221
223
223
223
224
224
224
224
225
225
225
225
225
225
227
227
227
227
229
231
231
231
233
234
234
239
240
241
242
243
243
244
245
245
246
249
249
251
252
252
254
256
256
257
257
258
258
258
258
258
258
259
259
259
259
260
260
260
260
260
260
262
262
264
269
274
275
275
276
276
276
276
276
277
277
277
278
278
279
280
280
281
281
287
290
291
292
293
294
294
294
295
295
295
295
295
295
296
296
296
296
296
296
296
296
297
298
298
301
301
305
305
316
320
320
323
325
325
325
325
327
327
329
329
334
334
334
334
343
345
346
348
353
355
356
358
361
361
362
362
362
362
363
364
366
367
367
367
371
377
382
385
387
389
389
390
390
395
398
400
400
402
402
404
404
408
410
411
411
414
418
418
429
431
432
434
436
437
438
438
439
441
442
447
447
447
447
447
452
452
458
466
466
468
468
469
471
473
473
473
473
475
475
475
475
484
486
490
491
495
500
502
502
502
504
507
507
508
509
509
510
512
513
513
514
514
521
523
531
531
533
538
538
541
542
544
546
548
548
550
550
551
553
556
558
560
560
560
560
571
577
579
581
582
582
600
605
605
619
621
624
642
647
647
666
671
671
686
689
691
704
709
709
725
730
730
743
748
766
766
771
771
790
795
795
810
813
815
834
839
839
857
862
862
876
878
881
899
904
904
923
928
928
943
946
948
961
966
966
982
987
987
1000
1005
1023
1028
1028
1047
1052
1052
1067
1070
1072
1091
1096
1096
1114
1119
1119
1133
1135
1138
1156
1161
1161
1180
1185
1185
1200
1203
1205
1723
1724
1725
5
5
5
5
5
7
7
11
13
16
16
17
18
18
22
27
27
28
29
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
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
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
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
39
39
39
39
39
40
40
41
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
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
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
63
63
63
63
63
63
63
63
63
64
64
65
65
65
65
67
68
68
68
69
69
70
70
70
71
75
75
76
76
80
81
83
84
84
84
85
85
85
85
85
85
85
85
86
86
86
86
86
86
86
86
86
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
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
91
91
91
91
91
91
91
91
91
91
91
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
93
94
94
95
95
96
97
97
97
98
98
98
100
100
101
101
102
102
104
104
104
106
108
108
109
109
111
111
113
113
113
113
115
115
118
118
118
119
120
120
120
120
127
129
129
130
130
132
132
132
133
133
134
134
134
134
134
136
136
137
137
144
145
146
150
150
151
151
152
153
153
153
153
154
155
155
155
155
155
155
156
156
156
156
156
156
156
156
157
157
158
170
171
171
172
172
173
173
174
174
175
175
176
176
178
178
179
179
180
180
184
184
184
184
184
184
184
184
186
186
187
188
188
188
188
189
189
190
190
191
191
191
191
191
192
192
194
194
196
204
204
204
204
204
205
205
206
206
206
207
207
208
210
211
211
211
212
213
214
214
215
216
216
216
217
217
221
221
222
222
222
222
223
224
224
224
224
225
225
226
226
227
227
227
227
228
228
230
231
232
232
234
235
235
239
240
241
241
242
242
243
243
244
246
247
247
248
248
248
250
250
252
253
253
255
257
257
257
257
258
258
258
259
259
259
259
259
259
260
260
261
261
262
262
262
262
263
263
265
273
275
275
275
275
276
276
277
277
277
277
278
278
279
279
281
282
282
287
293
293
293
294
294
295
295
295
295
295
295
296
296
296
296
297
297
297
297
298
298
298
298
299
299
302
302
316
321
321
324
324
324
326
326
326
326
328
328
330
330
335
335
344
345
347
349
353
353
354
357
359
360
361
361
361
362
363
363
363
364
365
367
368
368
368
378
386
386
388
391
391
396
399
400
401
403
403
405
405
408
408
409
412
412
415
429
433
435
437
437
439
439
440
442
443
448
448
448
453
453
458
466
466
467
467
469
470
472
473
474
474
474
474
474
474
474
476
476
476
476
487
489
489
491
492
499
501
503
505
508
510
510
511
513
513
514
515
515
521
521
522
534
539
539
542
542
545
547
549
549
550
550
551
551
552
557
559
561
561
571
578
579
579
580
583
583
601
606
606
620
622
625
643
648
648
667
672
672
690
692
705
710
710
726
731
731
744
746
746
749
767
767
772
772
791
796
796
814
816
835
840
840
858
863
863
877
879
882
900
905
905
924
929
929
947
949
962
967
967
983
988
988
1001
1003
1003
1006
1024
1029
1029
1048
1053
1053
1071
1073
1092
1097
1097
1115
1120
1120
1134
1136
1139
1157
1162
1162
1181
1186
1186
1204
1206
1724
1725
1726
5
6
8
8
8
11
14
17
17
17
17
19
26
26
26
26
27
27
28
29
29
30
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
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
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
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
40
40
40
40
40
40
40
40
40
42
57
58
58
58
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
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
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
66
66
71
71
71
72
76
76
77
77
81
82
82
82
82
83
83
83
83
83
83
84
84
84
84
85
85
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
87
87
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
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
91
92
92
92
92
92
92
92
92
92
95
95
95
95
95
95
97
98
98
98
99
99
99
99
99
101
101
105
107
107
109
109
110
110
110
112
112
114
114
114
114
116
116
117
117
117
119
119
119
120
120
127
129
130
130
131
131
134
134
134
134
135
135
135
135
135
141
146
147
151
151
151
152
152
154
154
154
154
155
156
156
156
157
157
157
157
158
158
159
170
170
171
171
173
173
174
174
174
174
175
175
175
175
176
176
177
179
179
180
180
181
181
185
185
185
185
185
185
187
187
189
189
191
191
192
192
192
192
192
193
193
195
197
202
202
205
205
205
206
206
206
208
209
209
209
210
210
211
212
212
212
212
213
216
216
217
217
217
218
218
218
222
222
223
223
223
223
225
225
227
227
227
228
228
228
228
229
229
231
232
233
233
236
236
240
241
241
241
241
242
242
242
244
245
245
245
246
246
247
247
247
247
248
248
249
249
249
253
254
254
256
258
258
258
258
258
258
259
260
260
260
260
262
262
263
263
263
263
264
264
266
266
273
274
274
276
276
276
276
276
277
277
277
278
279
280
280
280
280
281
281
282
283
283
294
294
294
294
295
295
296
296
296
297
297
298
298
298
298
299
299
299
299
300
300
303
303
307
322
322
324
324
325
325
325
327
327
329
329
331
331
335
345
348
350
352
353
354
355
358
360
360
360
360
361
362
362
362
363
364
365
366
368
369
369
369
371
371
379
379
387
387
387
389
389
392
397
400
402
404
404
406
406
407
408
409
410
413
413
416
420
434
436
437
437
438
438
440
441
443
444
448
449
454
454
465
466
467
468
468
470
471
473
473
473
473
474
475
475
475
475
475
475
475
477
477
484
484
488
490
492
492
493
500
500
502
502
504
506
509
511
511
512
514
515
516
516
520
521
522
523
533
535
540
540
543
546
548
550
550
550
550
551
551
552
552
558
560
561
578
579
579
580
581
584
584
602
607
607
623
626
644
649
649
668
673
673
691
693
706
711
711
727
732
732
745
747
750
764
767
768
773
773
792
797
797
815
817
836
841
841
859
864
864
880
883
901
906
906
925
930
930
948
950
963
968
968
984
989
989
1002
1004
1007
1025
1030
1030
1049
1054
1054
1072
1074
1093
1098
1098
1116
1121
1121
1137
1140
1158
1163
1163
1182
1187
1187
1205
1207
1725
1726
1727
5
6
7
9
9
11
11
15
17
18
18
18
20
22
26
26
26
26
27
27
27
27
27
28
28
29
29
29
29
29
32
32
32
32
32
32
32
32
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
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
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
39
39
39
39
39
39
39
39
39
39
39
39
40
40
41
43
53
53
54
54
54
54
54
58
58
59
59
59
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
63
63
63
64
64
64
65
65
65
65
65
67
67
67
72
72
72
73
77
77
78
78
82
83
83
83
83
83
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
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
88
88
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
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
90
91
92
93
93
93
93
93
93
93
93
95
95
95
95
95
95
98
99
99
99
99
99
99
99
100
100
100
100
103
103
103
104
104
104
106
107
108
110
110
111
111
111
113
113
115
115
115
115
118
118
118
118
119
119
120
120
120
130
131
131
133
135
135
135
136
136
136
136
138
138
138
139
139
139
141
142
144
144
147
148
151
152
152
152
153
153
153
154
155
155
155
157
158
158
158
158
159
160
173
174
175
175
175
175
176
176
177
177
178
180
180
181
181
182
182
185
186
186
186
186
187
187
188
188
190
190
193
193
193
193
193
196
198
199
202
204
206
207
209
210
210
210
211
211
212
213
213
214
217
218
218
218
219
219
219
223
223
223
223
224
224
224
224
226
229
229
229
229
232
233
237
237
242
242
243
245
246
246
246
247
247
248
249
249
250
250
250
254
254
255
255
256
257
258
258
259
259
259
259
259
259
260
261
261
261
264
264
264
264
267
267
267
267
273
274
275
276
277
277
277
278
279
280
281
281
281
281
282
282
283
284
284
294
294
295
295
295
295
296
297
297
298
298
299
299
300
300
300
300
304
304
307
323
323
323
326
326
326
326
326
328
328
330
330
332
332
335
346
349
349
351
351
353
355
356
359
361
362
363
363
363
364
365
366
367
369
369
370
370
370
372
372
380
380
380
380
387
388
389
390
390
393
398
398
401
403
405
405
407
407
408
410
411
414
414
417
420
435
437
439
439
441
442
444
445
448
450
455
455
466
468
469
469
469
471
472
474
475
476
476
476
476
476
476
476
478
478
482
485
485
489
491
493
493
493
493
494
500
502
503
503
505
507
510
512
512
513
515
516
517
517
521
523
524
533
536
541
541
544
544
547
549
551
551
552
552
553
553
559
561
561
579
580
581
582
585
585
603
608
608
624
627
645
650
650
669
674
674
692
694
707
712
712
728
733
733
746
748
751
760
765
769
774
774
793
798
798
816
818
837
842
842
860
865
865
881
884
902
907
907
926
931
931
949
951
964
969
969
985
990
990
1003
1005
1008
1026
1031
1031
1050
1055
1055
1073
1075
1094
1099
1099
1117
1122
1122
1138
1141
1159
1164
1164
1183
1188
1188
1206
1208
1726
1727
1728
4
5
5
5
5
6
7
7
8
9
10
16
17
17
18
19
19
19
19
19
21
26
26
26
26
27
27
27
27
27
28
28
28
29
29
29
30
31
31
32
33
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
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
38
38
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
42
44
54
54
54
54
55
55
55
55
55
55
55
55
55
55
57
57
58
58
58
58
59
59
59
59
60
60
60
60
60
60
61
61
61
62
62
62
62
63
63
65
66
66
66
66
68
68
68
68
68
68
69
69
69
73
73
73
74
78
78
79
79
83
84
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
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
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
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
94
95
96
99
100
100
100
101
101
101
101
101
101
102
103
104
104
104
105
105
107
109
111
111
111
111
112
112
114
114
116
116
116
116
119
119
119
119
120
120
120
120
120
120
120
120
121
131
132
134
134
134
135
135
135
135
136
136
137
137
137
138
139
139
139
140
140
141
145
145
148
149
153
153
154
154
154
154
155
155
155
155
155
156
156
156
158
160
161
169
173
174
176
176
176
177
177
178
181
181
182
182
183
183
185
187
187
187
187
187
188
188
188
189
190
190
191
191
191
191
194
197
199
199
200
202
202
203
204
205
208
211
211
212
212
214
214
215
218
219
219
219
220
220
220
223
224
224
224
224
224
225
225
225
226
226
227
231
233
234
238
238
242
243
243
247
247
248
248
248
250
251
251
255
255
256
256
257
257
257
257
258
258
258
258
259
259
259
260
260
260
261
261
261
262
262
262
265
267
267
268
268
274
274
275
276
276
277
278
278
279
280
282
282
282
282
283
283
285
285
290
291
294
294
295
295
295
295
295
296
296
296
297
297
297
298
298
299
300
300
305
305
322
324
324
324
327
327
327
327
328
328
329
329
331
331
333
333
347
352
352
353
354
356
361
361
362
362
363
364
364
365
365
366
366
367
368
370
370
370
371
371
371
378
380
380
381
381
387
389
389
390
391
391
391
391
394
399
399
402
403
403
404
406
406
408
408
408
409
411
415
415
418
431
435
436
436
437
438
440
440
440
441
442
443
445
446
451
456
456
466
467
469
470
470
472
473
474
474
474
475
476
477
477
477
477
477
477
479
479
483
483
490
491
492
493
493
494
494
495
500
502
503
504
504
507
508
508
511
511
512
513
513
514
516
517
518
518
521
522
524
537
542
542
545
545
548
548
549
549
550
552
552
553
553
553
554
554
560
562
579
580
581
582
586
586
604
609
625
628
646
651
651
670
675
675
686
693
695
708
713
713
729
734
734
747
749
752
764
766
770
775
775
794
799
799
810
817
819
838
843
843
861
866
882
885
903
908
908
927
932
932
943
950
952
965
970
970
986
991
991
1004
1006
1009
1027
1032
1032
1051
1056
1056
1067
1074
1076
1095
1100
1100
1118
1123
1139
1142
1160
1165
1165
1184
1189
1189
1200
1207
1209
1727
1728
1729
5
5
7
8
8
9
9
11
11
17
17
17
17
19
19
20
22
27
28
29
29
29
30
30
30
30
31
32
32
32
32
32
32
32
32
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
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
38
38
38
38
38
38
38
38
38
38
38
39
39
40
40
40
40
40
41
42
42
43
43
45
45
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
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
62
62
62
62
62
62
62
62
62
63
63
63
64
67
67
68
69
69
69
69
69
69
70
70
74
74
74
75
79
79
80
80
81
81
84
85
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
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
92
92
92
92
92
92
92
92
92
92
93
93
95
95
95
96
97
100
101
102
102
102
102
102
102
103
103
108
110
112
112
113
113
115
115
117
117
117
117
119
120
120
121
121
121
121
122
133
136
136
137
137
137
138
138
138
138
142
144
146
146
146
149
150
154
154
155
155
155
155
155
156
156
156
156
156
156
156
157
157
159
161
161
162
169
174
174
174
175
175
175
177
179
182
182
183
183
184
184
188
188
188
188
188
188
189
189
190
191
191
191
191
192
192
192
195
198
199
200
203
203
203
203
206
207
207
209
209
209
210
210
214
215
216
219
219
220
220
220
221
221
221
224
224
225
225
225
225
226
226
226
227
227
227
227
227
228
231
232
234
239
239
242
243
243
243
244
245
245
246
246
249
249
257
257
258
258
259
259
259
259
260
260
261
261
261
261
261
262
262
262
262
262
263
263
263
263
263
268
269
269
274
274
274
274
277
277
278
278
278
280
280
280
281
281
281
286
286
295
295
295
295
296
296
296
296
297
297
298
298
298
298
298
298
298
299
299
300
301
301
306
306
307
307
314
323
325
328
328
328
329
329
330
330
332
332
332
332
334
334
334
334
348
353
353
353
354
356
356
357
362
362
363
366
366
367
367
368
369
371
372
372
372
381
382
382
387
387
390
390
391
392
395
403
404
404
405
407
407
407
407
408
409
409
409
409
409
411
411
412
416
419
420
420
427
432
434
436
437
439
441
441
442
443
444
446
447
452
457
457
466
467
469
469
470
473
474
475
475
475
475
476
478
478
478
478
478
478
480
480
480
480
491
493
494
495
495
496
500
500
503
504
509
512
512
513
514
514
515
517
518
519
519
521
522
524
524
525
533
533
538
540
543
549
549
550
550
551
553
553
553
553
554
554
555
555
555
555
558
561
563
579
580
582
582
582
583
587
587
605
610
620
624
626
629
647
652
652
671
676
687
691
694
696
709
714
714
730
735
735
748
750
753
765
765
767
767
771
776
776
795
800
811
815
818
820
839
844
844
862
867
877
881
883
886
904
909
909
928
933
944
948
951
953
966
971
971
987
992
992
1005
1007
1010
1028
1033
1033
1052
1057
1068
1072
1075
1077
1096
1101
1101
1119
1124
1134
1138
1140
1143
1161
1166
1166
1185
1190
1201
1205
1208
1210
1728
1729
1730
4
5
8
8
8
8
8
8
9
9
9
10
10
12
12
17
21
23
29
29
29
29
29
30
30
30
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
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
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
41
41
41
41
42
43
43
44
44
46
46
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
57
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
61
61
61
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
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
64
64
64
65
70
70
70
75
75
75
76
80
80
81
81
81
82
82
83
83
83
83
84
84
84
85
85
85
85
85
85
85
85
85
86
86
86
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
90
91
91
92
92
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
93
96
96
96
96
97
98
103
103
109
111
113
113
114
114
116
116
118
118
118
118
118
119
119
121
121
121
121
127
127
134
135
135
136
136
136
137
137
139
144
145
150
151
155
155
155
155
156
156
156
156
156
156
156
156
156
156
157
157
157
157
158
160
162
162
162
162
163
170
170
171
171
173
174
175
175
175
175
176
176
176
178
180
183
183
184
184
185
185
188
188
189
189
189
189
189
189
191
191
191
191
191
191
191
192
192
192
192
192
192
192
192
193
196
199
200
201
202
204
204
204
205
205
206
206
207
208
208
209
210
210
210
210
211
211
216
217
220
220
220
220
221
221
221
222
222
222
224
224
225
225
226
226
227
227
227
227
227
227
227
227
227
228
228
228
228
232
233
235
240
240
241
241
242
242
244
244
245
245
246
246
246
247
247
253
258
258
259
259
259
259
259
260
260
260
260
262
262
262
262
262
262
263
263
263
263
263
264
264
264
264
267
267
269
275
275
276
276
276
276
276
277
277
278
278
279
279
280
281
281
281
281
282
282
282
286
287
287
295
295
296
296
296
297
298
298
298
298
298
298
298
298
299
299
299
299
299
299
299
299
300
301
301
302
302
302
305
307
307
308
308
315
322
323
323
326
327
327
329
329
329
330
330
331
331
334
335
335
335
335
344
349
354
354
357
357
358
364
367
367
368
368
369
369
370
370
372
372
372
373
373
373
373
380
380
382
388
388
389
389
389
391
391
393
396
397
399
404
405
405
406
410
410
410
410
412
412
413
415
417
418
418
420
421
421
428
435
436
436
438
440
440
440
442
442
443
444
444
445
445
447
447
447
448
448
453
457
458
458
468
470
470
471
474
475
476
476
477
479
479
481
481
481
481
485
492
493
493
494
495
497
501
501
502
502
502
504
510
512
513
513
514
515
515
515
516
516
518
518
519
519
520
520
525
525
526
531
534
534
539
541
542
542
543
544
549
549
550
551
551
552
553
553
555
556
556
556
556
559
560
562
564
570
583
583
583
584
588
588
606
608
608
611
625
627
630
648
653
653
672
675
675
677
692
695
697
710
715
715
731
736
736
749
751
754
765
765
767
767
768
768
772
777
777
796
799
799
801
816
819
821
840
845
845
863
865
865
868
882
884
887
905
910
910
929
932
932
934
949
952
954
967
972
972
988
993
993
1006
1008
1011
1029
1034
1034
1053
1056
1056
1058
1073
1076
1078
1097
1102
1102
1120
1122
1122
1125
1139
1141
1144
1162
1167
1167
1186
1189
1189
1191
1206
1209
1211
1729
1730
1731
1
4
5
5
5
6
9
9
9
10
10
10
11
11
11
11
11
12
15
17
18
19
19
20
22
22
24
24
29
29
29
30
30
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
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
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
40
40
40
40
40
40
42
42
43
44
44
45
45
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
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
59
59
59
60
60
60
61
61
61
61
62
62
62
62
62
63
63
63
64
64
66
66
66
66
71
71
71
76
76
76
77
81
81
81
82
82
82
83
83
83
83
83
83
83
83
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
86
86
86
86
86
86
86
86
86
86
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
90
90
91
91
91
91
91
91
91
93
93
93
93
93
93
93
93
93
93
93
93
93
95
95
95
97
97
98
99
101
104
104
104
105
110
112
114
114
115
115
117
117
119
119
119
119
119
119
119
119
119
120
120
121
121
128
128
129
129
129
134
135
136
136
137
137
139
139
139
140
140
140
140
145
145
146
146
151
152
154
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
157
158
158
158
158
159
160
161
162
162
163
163
164
169
170
171
174
174
174
175
175
175
176
176
176
176
176
177
177
179
181
184
184
184
185
185
186
186
187
190
190
190
190
191
191
192
192
192
192
192
192
192
192
193
193
193
193
193
193
194
197
200
202
202
203
205
206
209
209
209
209
210
210
210
211
211
211
212
212
214
214
217
218
218
220
220
221
221
222
222
222
223
223
223
223
227
227
227
227
228
228
228
228
228
228
228
228
228
228
229
229
229
229
231
233
234
236
241
241
241
242
245
245
245
245
246
246
246
247
247
247
248
248
251
254
256
258
259
259
259
260
260
261
261
262
262
263
263
263
263
263
263
263
263
264
264
264
264
264
265
265
265
265
268
276
277
277
277
277
277
280
280
280
280
281
281
281
282
282
282
283
283
283
287
287
287
288
288
294
297
298
298
298
299
299
299
299
299
299
299
299
300
300
300
300
300
300
302
302
303
303
303
306
306
308
308
316
316
323
327
327
328
328
330
330
330
331
331
332
332
335
335
335
335
336
336
336
336
345
345
345
350
355
355
358
358
359
363
364
365
368
368
369
369
372
373
373
374
374
374
374
381
390
390
390
390
392
394
397
398
400
400
400
402
405
406
406
407
411
411
411
411
413
413
418
419
419
419
421
429
429
436
439
441
441
441
443
443
444
448
448
448
448
448
448
449
449
454
458
458
458
459
459
469
471
471
473
475
476
477
477
477
478
480
480
482
482
482
482
485
493
494
495
498
503
503
503
503
505
509
511
513
513
513
514
514
515
516
519
519
520
520
521
521
526
526
532
532
540
542
542
543
544
545
548
551
552
552
553
554
554
556
557
557
557
557
560
561
561
561
561
563
565
571
571
571
584
584
584
589
589
607
609
612
626
628
631
649
654
654
673
676
678
693
696
698
711
716
716
732
737
737
750
752
755
768
768
769
769
773
778
778
797
800
802
817
820
822
841
846
846
864
866
869
883
885
888
906
911
911
930
933
935
950
953
955
968
973
973
989
994
994
1007
1009
1012
1030
1035
1035
1054
1057
1059
1074
1077
1079
1098
1103
1103
1121
1123
1126
1140
1142
1145
1163
1168
1168
1187
1190
1192
1207
1210
1212
1730
1731
1732
1
1
4
5
5
5
6
7
8
8
10
11
11
12
12
13
16
17
19
19
20
20
21
23
23
25
25
26
29
29
31
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
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
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
39
39
39
39
41
43
43
43
43
44
45
45
48
48
56
56
56
56
56
57
57
57
57
57
57
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
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
62
62
66
67
67
67
69
69
69
70
70
70
72
72
72
77
77
77
78
82
82
82
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
85
85
85
85
85
85
85
85
85
85
85
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
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
90
90
90
91
91
92
93
93
98
98
99
100
102
102
104
104
104
105
105
105
105
105
111
111
113
115
115
116
116
118
118
119
120
120
120
120
120
121
121
121
121
121
121
121
121
130
130
130
130
135
135
135
136
137
137
138
138
138
139
140
140
140
141
141
141
147
147
152
153
154
154
155
155
157
157
157
158
158
158
158
158
158
158
159
159
159
159
160
162
162
163
164
164
165
165
173
175
175
175
176
176
176
177
177
177
177
178
178
178
180
182
185
185
185
185
185
185
186
186
187
187
187
188
190
191
191
191
191
192
192
193
193
193
193
193
193
194
194
194
194
194
194
198
201
203
203
203
204
204
207
207
210
210
211
211
211
212
212
212
212
212
213
213
213
215
215
218
219
221
222
222
223
223
223
223
224
224
224
224
226
228
228
229
229
229
229
229
229
229
229
230
230
230
230
232
234
237
242
242
243
246
246
247
247
247
248
248
248
248
249
249
249
251
257
258
259
260
260
260
261
261
261
262
262
262
264
264
264
264
264
264
265
265
265
265
265
266
266
266
266
267
267
269
278
278
278
278
281
281
282
282
282
283
283
283
283
284
284
284
284
288
288
289
289
294
295
297
298
298
299
300
300
300
300
300
300
301
301
301
301
303
303
304
304
304
309
309
317
317
317
317
327
328
328
329
329
331
331
331
332
332
333
333
333
336
336
337
337
337
337
346
346
351
356
356
356
364
364
366
369
369
370
370
374
374
375
375
375
375
380
380
382
391
391
393
395
398
401
401
403
406
406
407
407
408
408
411
412
412
412
412
419
420
422
430
430
430
430
437
440
440
442
442
442
444
445
449
449
449
449
450
450
455
459
459
460
460
469
474
476
477
477
477
478
478
479
479
481
481
483
483
483
483
493
493
494
495
496
499
504
504
510
512
514
514
515
515
516
517
520
520
521
521
522
522
524
541
543
543
543
543
544
546
549
552
552
553
553
553
554
554
555
555
558
558
558
558
561
562
562
564
566
572
572
582
585
590
590
608
610
613
627
629
632
650
655
655
674
677
679
694
697
699
712
717
717
733
738
738
751
753
756
769
769
774
779
779
798
801
803
818
821
823
842
847
847
865
867
870
884
886
889
907
912
912
931
934
936
951
954
956
969
974
974
990
995
995
1008
1010
1013
1031
1036
1036
1055
1058
1060
1075
1078
1080
1099
1104
1104
1122
1124
1127
1141
1143
1146
1164
1169
1169
1188
1191
1193
1208
1211
1213
1731
1732
1733
4
4
5
5
6
7
11
12
12
13
13
14
17
19
21
21
22
24
24
26
26
29
29
30
30
31
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
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
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
37
37
37
38
38
39
39
39
39
39
40
40
40
40
42
44
44
45
45
45
46
46
49
49
53
53
54
54
54
54
54
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
58
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
60
60
60
60
61
61
61
61
61
61
62
62
62
62
63
63
68
69
70
70
70
71
71
73
73
73
78
78
78
79
79
80
81
81
81
81
81
81
81
82
82
82
83
83
83
83
83
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
85
85
85
85
85
85
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
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
88
90
90
90
90
90
90
90
90
91
92
93
93
93
93
95
95
95
95
95
99
99
100
101
102
102
103
105
105
105
105
106
106
106
106
106
106
107
107
111
112
114
116
116
117
117
119
119
119
119
119
119
120
120
121
121
121
122
122
122
122
131
131
135
135
136
137
138
138
139
139
139
142
145
146
146
146
148
148
153
154
154
155
155
155
155
155
155
156
157
157
158
158
158
158
158
158
158
159
160
160
160
160
161
162
162
164
166
166
174
174
175
176
176
176
177
177
177
178
178
178
178
178
179
179
181
183
186
186
186
186
187
187
187
188
188
188
190
190
190
191
192
192
192
192
192
192
193
193
193
193
193
193
193
195
195
195
195
202
203
203
204
205
205
207
208
208
210
211
212
212
212
213
213
213
213
213
213
213
214
214
219
220
220
220
222
223
224
224
224
224
225
225
225
226
226
226
227
228
228
229
229
229
229
229
229
229
229
230
230
231
231
231
231
232
232
234
234
234
235
238
242
243
243
246
247
248
248
248
249
249
249
249
249
250
250
258
258
259
261
261
261
261
262
262
262
263
263
263
263
263
264
264
264
264
264
264
266
266
266
266
266
267
267
267
267
267
267
268
268
274
274
278
278
279
279
281
282
283
283
283
284
284
284
284
284
285
285
285
287
288
288
288
288
289
290
290
294
295
295
297
297
297
298
299
299
299
300
300
300
300
300
300
300
302
302
302
302
304
304
305
305
305
308
310
310
315
317
317
318
318
327
329
329
332
333
333
334
334
334
336
338
338
338
338
345
346
346
346
346
347
352
353
357
357
365
367
367
370
370
370
371
371
375
375
376
376
376
376
380
380
381
381
391
394
396
399
400
401
401
401
401
402
404
408
408
408
409
409
413
413
413
413
420
421
421
423
428
430
430
431
431
438
440
441
441
443
443
445
446
449
450
450
451
451
456
458
459
459
459
459
460
461
461
466
475
477
479
479
480
480
482
482
484
484
484
484
493
493
494
494
497
500
504
511
513
513
513
514
514
514
514
515
516
516
516
517
518
521
521
521
522
522
523
523
534
541
542
543
543
544
544
545
547
550
553
554
554
555
555
559
559
559
559
562
562
565
565
567
567
571
572
572
572
572
573
579
586
591
591
609
611
614
628
630
633
651
656
656
675
678
680
695
698
698
700
700
713
718
718
734
739
739
754
757
765
765
775
780
780
799
802
804
819
822
822
824
824
843
848
848
866
868
871
885
887
890
908
913
913
932
935
937
952
955
955
957
957
970
975
975
991
996
996
1011
1014
1032
1037
1037
1056
1059
1061
1076
1079
1079
1081
1081
1100
1105
1105
1123
1125
1128
1142
1144
1147
1165
1170
1170
1189
1192
1194
1209
1212
1212
1214
1214
1732
1733
1734
4
5
5
5
6
7
7
8
11
12
12
12
13
13
14
14
15
19
19
21
23
27
27
31
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
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
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
39
39
39
39
39
39
41
43
46
46
46
47
47
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
56
57
57
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
59
59
59
59
59
59
59
59
59
59
60
60
60
61
61
61
61
62
63
63
63
63
64
64
64
69
74
74
74
79
79
79
80
80
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
84
84
84
84
84
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
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
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
91
91
91
91
91
91
91
91
93
93
93
94
96
96
99
100
101
102
103
104
105
105
106
106
106
106
107
107
107
107
108
108
108
108
113
115
117
117
118
118
119
119
120
120
120
120
120
121
122
122
122
122
122
131
134
135
136
137
137
137
137
138
140
143
145
145
145
146
147
147
147
154
155
155
156
156
156
156
156
156
157
157
157
157
157
157
157
157
157
157
158
158
159
159
159
159
159
159
159
160
162
163
167
167
174
175
176
176
177
177
177
178
178
179
179
179
180
180
182
184
186
187
187
188
188
189
189
190
191
191
191
191
192
192
192
192
192
192
192
192
192
193
193
193
193
193
193
194
194
194
194
194
194
194
203
203
203
204
204
204
205
206
206
207
207
208
209
209
210
211
212
213
213
214
214
214
215
215
220
221
221
225
225
225
226
226
226
226
227
227
227
227
228
228
228
228
228
228
228
228
229
229
230
230
230
230
230
230
230
230
231
231
235
235
236
239
242
243
243
243
244
244
246
247
248
249
249
250
250
250
251
251
251
251
259
261
262
262
262
262
262
263
263
263
263
263
263
263
263
263
263
264
264
264
264
264
265
265
265
265
265
265
267
268
268
268
268
269
269
274
278
278
278
279
280
280
281
282
283
284
284
285
285
285
286
286
286
289
289
290
291
291
295
296
297
298
298
298
298
298
298
299
299
299
299
299
299
299
299
300
300
300
301
301
301
301
301
301
301
305
305
306
306
306
308
311
311
318
319
319
323
327
328
330
330
333
334
334
335
335
335
336
339
339
339
339
347
347
348
353
353
354
356
356
358
358
364
364
366
371
371
371
372
372
376
376
377
377
377
377
382
382
391
395
397
400
402
402
403
405
408
409
409
409
410
410
411
411
414
414
414
414
421
421
422
424
431
432
432
436
439
440
441
444
444
446
447
449
451
451
452
452
457
460
460
461
462
462
466
467
469
469
476
477
477
478
480
480
481
481
483
485
485
485
485
495
495
498
501
504
512
515
515
516
517
517
517
518
519
521
522
522
522
523
523
524
524
524
524
534
543
544
545
545
546
548
549
551
553
554
555
555
556
556
560
560
560
560
562
563
568
568
573
573
574
579
580
582
582
587
592
592
610
612
615
629
631
631
634
634
652
657
657
676
679
681
696
701
701
714
719
719
735
740
755
758
766
766
767
767
767
776
781
781
800
803
805
820
825
825
844
849
849
867
869
872
886
888
888
891
891
909
914
914
933
936
938
953
958
958
971
976
976
992
997
1012
1015
1033
1038
1038
1057
1060
1062
1077
1082
1082
1101
1106
1106
1124
1126
1129
1143
1145
1145
1148
1148
1166
1171
1171
1190
1193
1195
1210
1215
1215
1733
1734
1735
4
4
5
7
8
8
9
11
11
12
13
14
15
21
21
21
24
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
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
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
36
36
36
37
38
38
38
38
38
38
38
38
38
38
38
39
40
40
40
40
40
40
42
42
43
43
44
47
47
47
48
48
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
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
60
60
60
61
61
63
64
67
67
67
70
75
75
75
79
79
79
80
80
80
81
81
82
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
84
84
84
84
85
85
85
85
85
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
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
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
94
95
95
95
95
95
97
97
100
101
102
102
102
103
105
106
106
107
107
107
108
108
108
108
108
108
109
109
111
114
116
118
118
119
120
120
120
120
120
121
121
121
121
122
122
122
122
122
122
122
122
123
123
131
135
135
137
137
138
138
138
139
140
141
141
144
147
148
148
148
155
156
157
157
157
157
157
158
158
158
159
159
160
160
160
160
160
160
160
161
162
162
163
164
168
168
174
175
175
176
176
176
177
178
178
178
179
179
180
183
185
186
188
188
189
189
190
190
192
192
192
192
192
193
193
193
194
194
194
194
194
194
195
195
195
195
195
195
203
203
203
204
204
205
205
205
206
208
208
209
210
210
210
210
210
211
211
213
214
214
215
215
220
220
221
222
222
226
226
226
227
227
227
228
228
228
229
229
230
230
231
231
231
231
231
231
231
231
232
232
232
234
236
236
240
242
244
244
245
245
246
246
247
247
249
249
250
250
251
252
252
257
260
263
263
263
263
264
264
264
264
265
265
265
265
265
265
266
266
266
266
266
266
268
269
269
269
269
270
270
279
279
280
281
281
281
281
281
282
282
284
285
285
286
287
288
288
290
290
292
292
295
299
299
299
299
299
300
300
301
301
301
302
302
302
302
302
302
302
306
306
307
307
307
312
312
317
317
319
323
328
329
331
334
335
335
336
336
336
340
340
340
340
346
346
348
348
353
354
357
357
359
359
362
365
365
367
370
372
372
372
373
373
377
377
378
378
378
378
378
383
383
396
398
401
401
401
403
403
406
408
410
410
411
411
412
412
415
415
415
415
422
423
425
430
430
432
436
440
441
442
445
445
447
448
452
452
453
453
458
459
459
461
461
463
463
466
470
470
475
477
478
478
479
481
481
482
482
483
484
486
486
486
486
491
496
496
499
502
513
514
514
516
516
518
518
518
519
520
521
523
523
524
524
525
525
525
525
543
543
544
545
547
549
549
552
554
555
556
556
557
557
561
561
561
561
564
569
569
572
572
574
574
579
583
583
588
593
593
611
613
616
630
635
635
653
658
658
677
680
682
697
702
702
715
720
720
736
741
756
759
768
768
768
777
782
782
801
804
806
821
826
826
845
850
850
868
870
873
887
892
892
910
915
915
934
937
939
954
959
959
972
977
977
993
998
1013
1016
1034
1039
1039
1058
1061
1063
1078
1083
1083
1102
1107
1107
1125
1127
1130
1144
1149
1149
1167
1172
1172
1191
1194
1196
1211
1216
1216
1734
1735
1736
4
5
5
5
5
8
9
10
13
14
14
14
15
15
16
19
19
21
21
21
21
25
29
29
31
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
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
37
37
37
37
37
37
37
38
38
38
38
43
44
44
44
45
48
49
49
52
52
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
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
61
61
67
68
68
70
71
71
76
76
76
79
79
79
79
79
79
79
80
80
80
81
81
81
82
82
82
82
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
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
85
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
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
90
90
90
90
91
95
95
95
95
95
96
96
96
96
96
103
103
104
105
105
105
106
106
106
106
107
107
108
109
109
109
110
110
115
117
118
118
119
119
119
120
121
121
121
122
122
122
122
123
123
123
123
124
124
135
136
136
136
138
140
140
140
140
141
141
141
142
145
146
148
149
149
156
156
157
157
157
157
157
158
158
158
159
159
159
160
160
161
161
161
161
161
162
162
162
163
163
164
169
169
174
174
176
176
177
177
177
177
177
177
178
178
178
178
179
180
184
186
189
189
190
190
191
191
191
191
192
192
192
192
193
193
193
194
194
194
195
195
195
195
196
196
196
196
198
205
205
206
206
206
207
208
210
210
210
211
211
211
211
212
212
212
212
212
213
213
213
214
215
215
220
220
221
221
222
223
227
227
227
227
228
228
228
228
228
228
229
229
230
230
231
231
232
232
232
232
232
233
235
241
243
243
245
245
245
246
246
247
247
248
248
248
248
248
249
249
249
250
250
250
251
258
261
262
263
263
263
264
264
265
265
265
265
266
266
266
266
266
266
267
267
267
267
269
270
270
270
270
271
279
281
281
281
282
282
282
282
283
283
283
283
283
284
284
284
285
286
288
289
293
293
296
298
298
299
299
299
300
300
300
300
300
301
301
302
302
302
303
303
303
303
303
307
307
308
308
308
308
308
313
313
318
327
329
330
332
335
336
336
337
337
337
341
341
341
341
347
354
355
356
358
358
358
360
360
363
363
368
371
373
373
373
374
374
378
378
379
379
379
379
379
384
399
402
402
407
409
411
411
411
412
412
413
413
413
416
416
416
416
421
421
423
424
426
431
440
441
442
443
446
446
448
449
453
453
454
454
459
460
464
464
467
469
471
471
471
476
476
478
480
482
482
482
482
483
483
484
485
487
487
487
487
492
494
497
498
500
503
514
515
519
519
519
520
521
522
524
524
524
525
525
526
526
526
526
526
534
534
544
545
548
550
553
553
555
556
557
557
558
558
562
562
562
562
565
570
570
573
580
582
584
584
584
589
594
594
612
614
617
631
636
636
654
659
659
678
681
683
698
703
703
716
721
721
737
739
739
742
751
755
757
760
768
769
769
778
783
783
802
805
807
822
827
827
846
851
851
869
871
874
888
893
893
911
916
916
935
938
940
955
960
960
973
978
978
994
996
996
999
1008
1012
1014
1017
1035
1040
1040
1059
1062
1064
1079
1084
1084
1103
1108
1108
1126
1128
1131
1145
1150
1150
1168
1173
1173
1192
1195
1197
1212
1217
1217
1735
1736
1737
4
4
5
6
9
10
11
11
11
11
12
13
14
15
16
17
21
21
21
21
22
22
26
26
27
29
29
29
29
29
30
30
31
31
32
32
32
32
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
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
36
37
37
37
38
38
38
38
38
38
38
39
39
39
45
45
45
46
47
47
47
47
49
50
50
51
51
53
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
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
58
58
58
59
59
59
59
59
59
59
60
60
60
60
60
60
60
61
61
61
61
61
70
70
70
71
71
71
72
77
77
77
77
80
80
80
80
80
80
80
81
81
81
82
82
82
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
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
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
90
90
91
91
91
91
91
91
91
91
91
92
96
96
96
97
97
97
97
97
97
97
103
104
105
106
107
107
108
108
108
110
110
110
116
118
119
120
120
120
120
121
121
121
121
122
122
123
123
123
123
123
123
123
123
123
123
123
123
124
124
125
125
135
136
138
138
138
139
139
141
141
141
141
141
142
142
142
142
143
146
147
147
156
156
156
157
157
158
158
158
158
159
159
159
159
159
160
162
163
164
164
165
170
170
175
175
176
176
176
178
178
178
178
178
179
179
179
179
185
187
190
190
191
191
191
191
191
192
192
192
192
193
193
193
194
194
194
194
194
194
194
194
194
195
196
196
199
203
204
206
206
207
207
208
208
210
211
212
212
213
213
213
213
214
214
214
214
222
222
223
224
227
227
227
228
228
228
228
229
229
229
229
229
229
230
230
230
230
232
233
234
236
242
243
244
247
247
249
249
249
249
250
250
250
250
259
259
262
262
262
262
263
264
264
264
265
265
265
265
266
266
266
266
267
267
267
270
270
270
271
271
271
271
272
277
279
281
282
283
283
284
284
284
284
285
285
285
285
288
289
290
294
294
298
298
298
298
299
299
300
300
300
301
301
301
301
303
304
306
308
308
309
309
309
309
309
314
314
317
317
319
323
328
330
330
333
335
336
337
337
338
338
338
342
342
342
342
346
348
356
356
357
361
361
369
372
372
374
374
374
375
375
379
379
379
379
380
380
380
380
383
383
385
390
396
400
400
401
403
403
408
411
412
412
412
413
413
417
417
417
417
419
422
422
424
425
427
430
430
432
436
441
442
443
443
447
447
448
449
450
454
454
455
455
459
460
461
465
465
469
470
479
481
483
483
483
484
484
485
485
486
488
488
488
488
492
492
496
496
498
499
501
503
504
514
515
516
520
520
520
521
522
524
525
525
525
526
526
527
527
532
535
535
543
543
545
546
549
549
551
554
554
556
556
558
558
559
559
561
563
563
563
563
566
571
571
572
574
582
583
590
595
595
613
615
618
632
637
637
655
660
660
679
682
684
699
704
704
717
722
722
738
740
743
756
758
761
769
769
779
784
784
803
806
808
823
828
828
847
852
852
870
872
875
889
894
894
912
917
917
936
939
941
956
961
961
974
979
979
995
997
1000
1013
1015
1018
1036
1041
1041
1060
1063
1065
1080
1085
1085
1104
1109
1109
1127
1129
1132
1146
1151
1151
1169
1174
1174
1193
1196
1198
1213
1218
1218
1736
1737
1738
4
5
6
7
10
11
12
14
14
14
15
15
17
18
19
23
23
26
26
26
27
27
27
27
27
28
29
29
29
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
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
35
35
35
35
35
36
36
36
36
37
37
37
38
38
38
38
38
38
38
38
38
38
38
40
40
42
46
47
48
48
50
51
51
52
52
52
52
52
53
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
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
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
61
61
61
63
64
71
71
71
71
72
72
72
72
73
77
77
78
78
78
78
81
81
81
81
81
81
81
81
81
81
81
81
81
82
82
82
82
82
82
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
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
86
86
86
86
86
86
86
87
87
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
90
90
90
90
90
91
91
91
91
91
91
91
93
97
98
98
98
98
103
104
105
106
106
107
108
108
109
109
111
111
117
119
120
120
121
121
121
122
122
122
122
123
123
124
124
124
124
124
124
124
124
125
125
126
126
138
139
139
139
140
140
141
141
142
142
142
142
142
143
143
144
147
157
157
158
158
159
159
159
159
160
160
161
163
164
165
165
166
171
171
177
177
177
177
179
179
180
180
185
186
188
191
191
192
192
192
193
193
193
193
194
194
194
195
195
195
197
197
204
205
205
207
208
208
209
211
212
214
214
215
215
215
215
218
223
223
224
225
229
229
229
229
230
230
230
230
230
230
231
231
232
232
232
233
234
234
235
243
244
244
245
245
248
248
250
250
251
251
252
260
260
260
260
263
264
265
265
265
267
267
268
268
268
271
271
271
272
272
272
272
273
278
278
278
278
279
279
282
283
285
285
286
286
288
288
289
290
295
295
299
299
300
300
300
301
301
301
304
305
307
307
309
309
310
310
310
315
315
317
317
318
318
327
329
330
334
336
336
336
336
337
338
338
339
339
339
343
343
343
343
346
346
347
357
357
357
358
358
362
362
365
370
373
373
373
373
375
375
375
376
376
380
380
381
381
381
381
384
384
386
391
391
391
391
401
401
401
401
402
404
409
412
412
413
413
413
413
414
414
418
418
418
418
420
420
426
428
430
430
431
431
440
442
443
448
448
449
449
449
449
450
451
455
455
456
456
459
459
460
461
466
466
470
470
471
471
478
480
482
484
484
484
485
485
486
486
486
486
487
489
489
489
489
497
497
499
500
502
504
504
504
504
505
514
514
515
516
521
521
521
522
523
525
525
526
526
526
526
527
527
528
528
533
533
543
543
544
544
550
552
553
555
555
559
559
560
560
562
562
562
562
564
564
564
564
567
572
572
572
572
573
583
583
584
584
591
596
596
616
619
633
638
638
656
661
661
683
685
700
705
705
718
723
723
739
741
744
757
759
762
780
785
785
807
809
824
829
829
848
853
853
873
876
890
895
895
913
918
918
940
942
957
962
962
975
980
980
996
998
1001
1014
1016
1019
1037
1042
1042
1064
1066
1081
1086
1086
1105
1110
1110
1130
1133
1147
1152
1152
1170
1175
1175
1197
1199
1214
1219
1219
1737
1738
1739
7
7
9
10
11
11
12
13
15
15
15
16
16
17
18
18
19
23
24
26
26
27
27
27
27
27
28
28
28
28
29
29
29
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
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
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
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
39
39
39
43
48
49
49
51
52
52
52
52
53
53
53
53
53
53
53
53
54
54
54
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
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
58
58
58
58
58
58
58
58
58
58
58
59
60
60
60
61
64
65
68
71
71
72
72
72
72
73
73
74
78
78
79
79
79
79
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
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
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
87
87
87
87
87
88
88
88
88
88
88
89
89
89
89
89
90
90
90
90
90
90
91
91
91
91
91
91
92
92
92
92
93
94
99
99
103
104
105
105
106
106
107
107
108
108
109
110
110
112
112
118
120
120
121
122
122
122
123
123
123
123
123
123
123
123
124
124
125
125
125
125
125
125
125
125
127
127
138
138
138
140
140
141
142
142
143
143
143
143
144
144
145
148
149
155
157
158
158
159
160
160
161
161
161
161
161
161
161
161
162
164
165
166
167
172
172
178
178
179
180
186
186
186
186
187
189
192
192
192
193
193
193
194
194
195
195
195
195
196
196
196
196
196
196
196
196
196
198
198
205
208
209
209
210
210
210
210
212
213
214
215
216
216
219
224
225
226
228
230
230
230
231
231
231
231
231
232
232
232
232
232
232
232
233
233
234
234
235
235
236
244
246
246
249
249
250
251
252
258
260
260
261
261
263
263
264
265
266
266
267
267
267
267
267
267
267
268
268
269
269
269
270
272
272
272
273
273
273
273
279
279
280
280
281
281
281
283
285
286
287
288
289
290
291
296
296
299
301
301
301
302
302
303
303
303
303
303
303
305
306
310
310
311
311
311
316
316
319
319
328
328
330
330
331
335
335
337
337
338
339
339
340
340
340
344
344
344
344
345
346
347
348
358
359
359
363
363
365
371
371
373
373
374
374
376
376
376
377
377
381
381
382
382
382
382
383
385
385
392
392
400
401
402
402
402
403
405
410
414
414
414
414
415
415
419
419
419
419
427
429
432
432
441
441
443
443
444
449
449
450
450
451
452
456
456
457
457
458
459
460
461
462
467
467
472
472
478
481
483
484
485
485
485
486
486
486
486
487
487
488
490
490
490
490
496
498
498
501
503
505
505
506
513
514
515
516
517
522
522
522
523
524
527
527
527
527
528
528
529
529
545
545
551
553
554
554
556
556
556
560
560
561
561
563
563
565
565
565
565
568
571
572
573
573
573
574
585
585
592
597
597
617
620
634
639
639
657
662
662
684
686
701
706
706
719
724
724
740
742
745
758
760
763
781
786
786
808
810
825
830
830
849
854
854
874
877
891
896
896
914
919
919
941
943
958
963
963
976
981
981
997
999
1002
1015
1017
1020
1038
1043
1043
1065
1067
1082
1087
1087
1106
1111
1111
1131
1134
1148
1153
1153
1171
1176
1176
1198
1200
1215
1220
1220
1738
1739
1740
7
10
11
13
14
14
14
15
18
19
19
19
19
20
24
27
27
28
28
29
29
29
29
29
29
29
29
29
29
30
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
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
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
44
46
46
49
49
49
52
53
53
53
53
54
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
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
60
60
61
61
68
68
68
71
72
72
73
73
73
74
74
75
79
79
79
80
80
80
80
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
84
84
84
84
84
84
84
84
84
84
84
84
84
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
86
86
86
86
87
87
87
87
87
88
88
88
88
88
89
89
90
90
90
91
91
91
91
91
91
91
91
91
92
92
92
92
92
93
93
95
95
95
100
100
103
104
104
105
105
107
108
108
108
108
108
108
109
109
109
109
110
111
113
113
119
120
121
122
122
122
122
122
122
122
122
122
123
123
123
123
124
124
124
124
124
124
126
126
126
126
128
128
130
136
138
139
139
139
139
141
141
141
142
142
142
142
143
143
144
146
149
149
156
156
158
158
159
159
161
161
161
161
162
162
162
162
162
163
165
165
165
166
167
168
173
173
178
178
179
179
180
187
187
188
190
191
191
193
193
193
193
193
194
194
194
194
195
196
196
196
196
197
197
197
197
197
197
197
199
199
206
207
209
211
211
211
211
211
213
214
214
214
214
215
219
219
223
223
223
225
226
227
229
229
230
230
231
231
232
232
232
232
232
233
233
233
233
233
234
235
235
236
236
237
244
245
245
245
245
247
247
249
250
250
250
250
251
261
262
262
264
264
265
265
265
267
267
268
268
268
268
268
269
269
270
270
270
270
273
274
274
274
274
279
282
282
282
282
284
285
285
286
288
290
291
292
297
297
299
300
300
300
300
300
301
301
302
302
303
303
304
304
304
304
306
307
309
311
311
312
312
312
315
317
317
320
320
328
330
331
331
336
336
337
339
340
340
341
341
341
345
345
345
345
346
348
349
357
358
358
358
359
360
360
364
364
372
374
375
375
377
377
377
378
378
382
382
383
383
383
383
383
392
401
403
403
403
404
406
411
412
413
413
413
415
415
415
415
416
416
420
420
420
420
422
428
428
430
433
433
441
443
444
444
445
450
450
450
452
453
457
457
458
458
459
461
462
463
468
468
470
471
471
471
473
473
482
484
486
486
486
487
487
487
488
488
489
491
491
491
491
496
502
504
505
507
514
516
517
518
523
523
523
524
525
525
526
526
526
528
528
528
528
529
529
530
530
535
541
546
546
552
554
554
556
557
557
557
561
561
562
562
563
566
566
566
566
569
572
574
574
574
575
583
584
584
584
586
586
593
598
598
618
621
635
640
640
658
663
663
685
687
702
707
707
720
725
725
741
743
746
759
761
764
782
787
787
809
811
826
831
831
850
855
855
875
878
892
897
897
915
920
920
942
944
959
964
964
977
982
982
998
1000
1003
1016
1018
1021
1039
1044
1044
1066
1068
1083
1088
1088
1107
1112
1112
1132
1135
1149
1154
1154
1172
1177
1177
1199
1201
1216
1221
1221
1739
1740
1741
1
7
7
8
11
11
12
13
14
14
14
15
15
15
16
19
19
20
20
21
24
24
25
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
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
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
37
37
37
37
37
37
38
39
39
39
39
47
50
51
53
53
53
54
54
54
54
54
54
54
54
54
55
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
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
58
58
59
59
59
59
59
60
61
61
69
69
69
69
71
71
71
72
72
72
72
73
73
74
76
77
77
77
78
78
78
80
80
80
80
81
81
82
82
82
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
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
87
87
87
87
87
87
87
87
87
87
88
89
89
89
89
89
91
91
91
92
92
92
92
92
92
93
94
94
96
98
101
101
108
109
109
109
109
110
110
110
110
111
112
114
114
120
120
121
122
123
123
123
123
123
123
123
124
124
125
125
125
125
125
127
127
127
127
129
129
131
131
131
135
137
139
139
139
140
140
140
142
143
143
144
147
150
160
160
160
160
163
164
166
166
166
167
168
169
174
174
178
179
179
179
179
180
180
180
180
187
189
191
192
194
194
195
195
195
195
195
195
196
197
197
198
198
200
200
207
207
210
210
212
212
212
212
214
214
214
214
215
215
215
215
223
224
224
226
227
228
229
229
231
231
231
231
232
232
233
233
233
234
235
235
236
236
237
238
244
244
244
245
246
246
246
246
250
250
250
250
251
251
251
251
251
251
252
252
260
260
262
266
266
266
266
266
266
269
270
270
270
271
271
271
271
274
275
275
275
275
279
283
283
285
285
285
285
286
286
286
286
288
289
291
293
298
298
299
299
299
300
301
301
301
302
302
302
302
307
308
309
312
312
313
313
313
316
318
318
321
328
330
331
332
332
337
337
337
340
341
341
342
342
342
346
346
346
346
346
347
349
357
357
357
358
359
359
359
360
365
365
365
365
373
373
373
375
378
378
378
379
379
379
383
383
383
384
384
384
384
384
392
401
402
404
404
404
407
412
412
412
412
413
414
414
414
416
416
417
417
421
421
421
421
422
424
429
429
431
434
441
443
444
445
445
446
450
451
451
453
454
458
458
459
459
459
460
462
464
469
469
470
470
470
471
472
472
472
478
478
483
485
486
486
487
487
487
488
488
488
490
492
492
492
492
492
496
497
503
505
505
505
508
508
514
515
517
519
524
524
524
525
525
525
525
526
526
527
527
527
529
529
530
530
531
531
535
542
546
547
553
554
555
556
557
558
558
558
562
562
563
563
563
567
567
567
567
570
572
573
575
575
575
583
583
583
584
585
585
585
594
599
599
613
617
619
622
636
641
641
659
664
664
679
686
688
703
708
708
721
726
726
742
744
747
760
762
762
765
765
783
788
788
803
810
812
827
832
832
851
856
856
870
874
876
879
893
898
898
916
921
921
936
943
945
960
965
965
978
983
983
999
1001
1004
1017
1019
1019
1022
1022
1040
1045
1045
1060
1067
1069
1084
1089
1089
1108
1113
1113
1127
1131
1133
1136
1150
1155
1155
1173
1178
1178
1193
1200
1202
1217
1222
1222
1740
1741
1742
1
1
7
8
8
9
9
13
14
14
14
15
15
15
15
16
16
17
19
20
21
22
23
23
25
26
26
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
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
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
38
38
38
38
38
39
40
40
40
40
48
51
51
52
52
52
52
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
56
56
56
56
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
59
59
59
59
59
59
59
59
59
59
59
62
64
65
69
69
70
70
72
73
73
74
77
77
77
77
77
77
77
77
77
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
81
81
82
82
82
82
83
83
83
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
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
86
86
87
87
87
87
87
87
87
87
88
88
89
89
89
89
90
90
91
91
91
91
92
93
93
94
95
95
97
98
102
102
102
103
103
110
110
110
111
111
111
111
115
115
121
121
122
122
122
123
123
123
123
123
124
124
124
124
124
124
124
125
125
126
126
126
128
128
128
128
130
130
132
132
135
136
138
138
139
139
140
140
141
141
141
142
143
144
144
145
148
149
149
151
158
158
159
160
160
160
162
163
164
165
165
167
167
167
168
170
175
175
180
180
181
181
187
190
192
193
195
195
195
195
195
195
197
199
199
201
201
208
212
213
213
215
215
216
216
216
219
224
225
225
228
229
230
231
231
231
233
233
234
234
234
235
235
236
236
236
236
237
238
239
246
247
247
247
247
250
251
251
252
252
252
252
253
253
261
266
266
266
266
267
270
271
271
271
272
272
272
272
275
276
276
276
276
283
286
286
287
287
288
289
291
291
292
294
299
299
301
302
302
302
302
302
302
308
309
313
313
314
314
314
316
316
319
319
320
320
322
328
328
331
332
338
338
341
342
342
343
343
343
346
347
347
347
347
347
349
349
350
359
360
360
360
361
363
366
366
366
366
374
374
379
379
379
379
380
380
384
384
384
385
385
385
385
385
401
402
404
404
405
405
405
408
413
414
415
415
415
417
417
418
418
422
422
422
422
425
427
429
429
430
432
433
433
435
441
441
444
445
447
452
452
454
455
459
459
459
460
460
460
462
462
463
465
470
470
472
473
473
473
476
479
479
484
486
487
488
488
488
489
489
491
492
493
493
493
493
497
498
504
509
509
514
515
517
517
518
520
525
525
525
526
527
527
528
528
528
530
530
531
531
532
532
542
542
546
546
547
548
551
554
554
554
556
557
558
559
563
563
564
564
568
568
568
568
571
572
573
575
575
576
576
576
585
586
586
586
595
600
600
618
620
623
637
642
642
660
665
665
680
684
687
689
704
709
709
722
727
727
743
745
748
761
766
766
784
789
789
804
808
811
813
828
833
833
852
857
857
875
877
880
894
899
899
917
922
922
937
941
944
946
961
966
966
979
984
984
1000
1002
1005
1018
1023
1023
1041
1046
1046
1061
1065
1068
1070
1085
1090
1090
1109
1114
1114
1132
1134
1137
1151
1156
1156
1174
1179
1179
1194
1198
1201
1203
1218
1223
1223
1741
1742
1743
7
7
7
7
8
9
9
11
11
13
14
14
15
16
16
17
17
17
18
19
20
20
21
21
22
23
23
26
26
26
26
26
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
32
32
32
32
32
32
32
32
32
32
32
32
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
38
38
45
45
48
50
50
52
52
52
53
53
53
53
53
54
54
54
54
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
56
56
56
56
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
59
59
64
65
69
70
71
71
71
72
73
74
74
75
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
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
83
83
83
83
84
84
84
84
84
84
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
87
87
87
87
87
87
87
87
87
88
88
88
88
89
89
90
90
90
90
90
91
91
92
92
93
94
95
96
96
97
98
103
103
103
104
104
108
108
109
109
111
112
116
116
120
120
121
121
122
123
123
123
123
124
124
124
125
125
125
126
126
126
126
126
126
127
127
127
129
129
129
129
129
129
131
131
131
131
131
132
132
132
132
133
135
139
139
139
139
139
140
140
141
141
141
142
142
143
143
145
146
147
147
149
150
150
152
158
158
160
161
161
162
162
162
162
162
162
163
164
165
165
166
168
169
171
176
176
180
181
191
192
193
193
194
195
196
196
196
196
197
197
197
197
197
197
198
200
200
202
202
207
207
209
211
212
214
214
215
216
216
225
229
229
230
231
231
232
232
233
233
233
233
233
233
234
235
235
236
237
237
237
238
239
240
245
247
248
248
248
251
251
251
252
253
253
260
260
262
264
266
267
267
268
268
268
268
268
268
268
270
271
272
272
272
273
273
273
273
276
277
277
277
277
282
283
286
287
292
292
293
295
300
300
300
300
302
302
303
303
303
303
304
304
304
304
304
304
309
310
314
314
315
315
315
320
320
321
321
323
329
329
330
330
330
332
339
339
342
342
343
343
344
344
344
344
348
348
348
348
350
350
351
358
360
361
361
362
364
364
367
367
373
373
375
375
380
380
380
381
381
383
385
385
385
386
386
386
386
386
405
405
406
406
406
409
413
414
415
416
416
418
418
419
419
423
423
423
423
428
431
433
434
434
436
442
442
443
443
443
445
448
453
453
455
456
460
460
461
461
463
463
464
466
471
471
471
473
474
474
477
477
485
486
486
487
488
489
489
489
490
490
492
494
494
494
494
496
498
499
505
510
510
518
518
519
521
526
526
526
526
527
528
528
529
529
531
531
532
532
533
533
547
547
549
552
555
555
555
556
556
556
557
558
560
564
564
565
565
569
569
569
569
572
576
576
577
577
577
584
586
587
587
596
601
601
619
621
624
638
643
643
661
666
666
685
688
690
705
710
710
723
728
728
744
746
749
762
767
767
785
790
790
809
812
814
829
834
834
853
858
858
876
878
881
895
900
900
918
923
923
942
945
947
962
967
967
980
985
985
1001
1003
1006
1019
1024
1024
1042
1047
1047
1066
1069
1071
1086
1091
1091
1110
1115
1115
1133
1135
1138
1152
1157
1157
1175
1180
1180
1199
1202
1204
1219
1224
1224
1742
1743
1744
7
7
8
9
13
14
15
15
17
17
18
18
21
22
23
23
23
23
24
24
26
27
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
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
36
36
36
37
37
37
37
38
39
39
51
51
51
52
52
52
53
53
53
53
53
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
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
59
59
59
59
59
59
59
60
60
65
66
69
69
69
70
71
71
72
72
73
75
76
77
77
77
79
79
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
80
80
80
80
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
84
84
84
84
84
84
84
84
84
84
85
85
85
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
88
88
88
89
89
90
90
90
90
90
90
91
91
91
91
91
91
91
91
91
92
93
93
94
95
95
97
97
98
98
98
98
99
103
103
104
104
104
104
105
105
108
109
109
109
110
110
111
111
112
113
117
117
119
121
121
122
122
122
122
122
124
124
125
126
126
126
127
127
127
127
127
127
128
128
128
130
130
132
132
132
132
133
133
134
136
137
138
140
140
140
140
140
140
141
141
141
143
144
144
144
145
145
146
147
148
148
148
150
153
159
159
160
160
161
162
162
163
163
163
163
164
165
165
166
166
166
167
167
169
169
170
170
172
177
177
177
180
180
180
181
181
181
192
192
193
194
194
194
195
195
195
195
195
197
197
197
197
198
198
198
198
199
201
201
203
203
205
208
208
210
212
212
212
212
214
215
215
215
215
216
223
226
230
230
230
231
231
231
232
233
233
233
234
234
234
234
234
235
236
236
237
237
238
238
238
238
240
241
246
246
249
251
251
251
252
252
252
254
254
260
260
261
261
265
265
266
266
266
268
268
269
269
269
269
269
271
272
273
273
273
273
274
274
274
274
277
277
278
278
278
278
283
283
283
283
285
286
286
287
293
293
296
301
301
301
301
301
301
302
302
304
304
305
305
305
305
310
311
315
315
316
316
316
320
321
321
322
322
331
331
331
331
340
340
344
344
345
345
345
345
349
349
349
349
351
351
359
359
363
368
368
373
373
374
374
376
379
381
381
381
382
382
384
386
386
386
386
387
387
387
387
406
406
407
407
410
414
414
415
419
419
420
420
424
424
424
424
429
432
433
434
435
435
444
444
444
444
449
454
454
456
457
461
461
462
462
464
464
467
472
472
472
472
486
486
486
487
487
490
490
490
491
491
492
493
495
495
495
495
497
499
499
506
511
511
519
519
522
527
527
527
527
527
528
529
532
532
533
533
534
534
546
548
548
553
556
557
557
557
557
558
561
565
565
566
566
570
570
570
570
573
577
577
578
578
585
585
597
602
620
622
625
639
644
644
662
667
667
686
689
691
706
711
711
724
729
729
747
750
763
768
768
768
786
791
791
810
813
815
830
835
835
854
859
877
879
882
896
901
901
919
924
924
943
946
948
963
968
968
981
986
986
1004
1007
1020
1025
1025
1043
1048
1048
1067
1070
1072
1087
1092
1092
1111
1116
1134
1136
1139
1153
1158
1158
1176
1181
1181
1200
1203
1205
1220
1225
1225
1743
1744
1745
9
10
11
14
15
16
16
17
19
19
22
22
23
23
24
25
27
28
29
29
29
29
29
29
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
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
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
38
38
38
38
40
40
51
52
52
52
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
55
55
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
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
61
61
62
65
65
66
66
70
71
73
74
74
74
75
75
76
77
77
77
77
77
77
77
77
78
78
78
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
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
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
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
89
90
90
90
91
91
91
91
91
91
91
91
91
91
91
91
92
92
92
92
92
92
92
92
92
93
95
96
97
97
99
99
100
104
105
105
105
108
108
109
109
109
110
110
110
111
111
112
112
113
114
118
118
120
122
122
123
123
123
123
123
123
124
125
126
127
128
128
128
128
128
128
129
131
131
132
132
133
133
133
133
134
134
137
138
139
139
141
142
144
144
145
145
145
145
146
146
147
148
149
151
154
161
161
161
161
161
165
166
166
167
170
170
171
171
173
178
178
178
178
178
178
181
181
182
182
192
193
195
195
196
196
196
196
196
196
196
198
198
200
202
202
204
204
206
206
211
213
213
215
215
215
215
216
216
216
216
216
216
219
223
224
231
232
232
232
232
232
233
236
236
237
237
238
238
239
239
241
242
250
252
252
253
253
253
255
255
262
262
267
267
267
267
270
270
272
273
274
274
275
275
278
278
279
279
279
279
284
284
286
286
286
286
287
287
287
287
291
297
302
302
303
303
303
303
307
311
312
316
317
317
320
322
322
332
332
341
341
345
345
346
346
346
346
349
350
350
350
350
364
366
369
369
375
375
377
382
382
382
383
383
383
385
387
387
388
388
388
388
404
408
411
416
420
420
420
421
421
425
425
425
425
430
433
433
435
445
445
450
455
455
457
458
462
462
463
468
473
473
479
487
488
488
491
491
491
492
492
494
496
496
496
496
496
498
507
512
512
517
523
528
528
528
529
530
533
533
533
534
534
535
546
554
557
558
558
559
562
566
566
567
567
571
571
571
571
574
575
579
579
598
603
621
623
626
640
645
645
663
668
687
690
692
707
712
712
725
730
730
748
751
764
769
769
769
769
769
787
792
811
814
816
831
836
836
855
860
878
880
883
897
902
902
920
925
944
947
949
964
969
969
982
987
987
1005
1008
1021
1026
1026
1044
1049
1068
1071
1073
1088
1093
1093
1112
1117
1135
1137
1140
1154
1159
1159
1177
1182
1201
1204
1206
1221
1226
1226
1744
1745
1746
8
10
11
11
16
17
17
20
20
23
24
24
25
25
26
28
29
29
29
29
29
29
29
29
29
29
29
29
29
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
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
35
35
35
35
36
36
36
36
36
36
37
37
37
37
39
39
39
44
49
50
52
52
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
57
57
57
57
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
62
62
62
69
71
72
73
74
75
75
75
75
76
76
77
77
77
77
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
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
81
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
83
83
84
85
85
85
85
86
86
86
86
86
86
86
86
86
86
87
87
87
88
88
89
91
92
92
92
92
92
92
92
93
93
93
93
93
93
93
93
93
93
94
96
97
101
104
106
106
109
109
110
110
110
111
111
111
111
111
112
112
112
113
113
114
119
119
122
123
123
123
124
124
124
125
125
125
126
127
128
128
129
129
130
130
132
132
133
134
134
134
134
138
139
139
139
140
140
140
140
141
143
144
145
145
146
146
146
147
147
150
150
152
155
161
161
161
165
166
167
167
168
171
171
172
172
174
179
179
179
179
179
180
181
181
181
181
182
182
182
182
182
183
193
194
195
196
196
196
196
196
197
197
197
197
199
199
200
200
201
203
203
205
205
212
213
216
216
217
217
217
217
219
224
225
232
232
232
233
234
235
237
238
238
239
239
240
240
242
243
248
250
251
251
252
252
252
252
253
253
253
253
253
253
254
256
258
263
263
267
267
267
271
271
271
273
273
274
275
275
276
276
278
279
279
280
280
280
280
284
287
287
288
288
288
298
303
303
303
303
303
303
308
312
313
315
315
316
316
316
317
318
318
320
321
323
332
336
342
342
346
346
346
347
347
347
347
351
351
351
351
361
365
366
370
370
371
376
376
378
383
383
383
384
384
384
384
386
386
388
388
389
389
389
391
401
407
409
410
412
416
417
421
421
421
422
422
426
426
426
426
429
431
433
434
434
434
436
436
445
449
451
456
456
458
459
459
461
461
462
462
463
464
469
474
474
474
479
484
488
489
489
492
492
492
493
493
495
497
497
497
497
497
497
499
499
504
508
513
513
514
524
529
529
529
529
530
531
534
534
534
534
534
535
535
536
542
546
547
555
558
558
558
560
560
562
563
567
567
568
568
572
572
572
572
572
575
580
580
587
599
601
601
604
622
624
624
627
627
641
646
646
664
667
667
669
688
691
691
693
693
708
713
713
726
731
731
749
752
765
769
770
770
770
770
788
791
791
793
812
815
815
817
817
832
837
837
856
858
858
861
879
881
881
884
884
898
903
903
921
924
924
926
945
948
948
950
950
965
970
970
983
988
988
1006
1009
1022
1027
1027
1045
1048
1048
1050
1069
1072
1072
1074
1074
1089
1094
1094
1113
1115
1115
1118
1136
1138
1138
1141
1141
1155
1160
1160
1178
1181
1181
1183
1202
1205
1205
1207
1207
1222
1227
1227
1745
1746
1747
7
9
9
11
11
17
17
18
21
21
25
26
26
26
26
26
26
27
27
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
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
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
35
36
36
36
36
36
36
36
36
36
36
36
38
40
50
51
51
51
52
52
52
52
52
52
52
52
52
52
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
57
57
57
58
58
58
59
59
60
60
63
63
63
69
70
73
74
75
75
76
76
76
77
77
77
77
77
78
78
78
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
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
82
82
82
82
82
83
83
83
83
83
83
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
84
85
86
86
87
87
87
87
87
87
87
87
87
88
89
89
89
89
89
90
91
91
92
92
92
92
92
92
92
92
93
93
94
94
94
94
94
94
94
95
97
98
102
104
107
107
109
110
111
111
111
111
112
112
112
112
112
113
113
115
120
120
123
123
124
124
124
125
126
126
126
126
126
127
128
130
130
131
131
132
133
133
134
135
135
135
135
138
138
140
141
141
141
141
142
142
144
144
145
145
146
146
147
150
151
153
156
156
159
161
161
162
162
163
163
166
167
168
168
168
172
172
173
173
175
179
180
180
180
181
182
182
183
183
183
184
186
194
195
195
196
196
197
197
198
198
198
200
200
201
201
202
204
204
204
204
206
206
206
206
208
212
213
213
214
216
217
218
218
223
225
226
230
231
232
233
233
234
234
234
235
235
235
236
236
236
238
239
239
240
240
241
241
243
244
248
251
252
252
253
253
254
254
254
255
257
259
264
265
267
268
268
269
269
271
272
273
274
274
275
276
276
277
277
279
279
279
280
280
281
281
281
281
283
284
287
288
288
289
291
291
299
301
303
303
304
304
304
304
305
305
309
309
313
314
316
316
317
318
319
319
321
322
322
322
324
332
337
337
337
343
343
346
347
347
347
348
348
348
348
349
349
352
352
352
352
361
366
371
371
372
377
379
384
384
384
384
385
385
386
387
387
389
389
390
390
390
392
392
392
401
402
404
404
410
411
413
416
418
422
422
422
422
423
423
427
427
427
427
429
432
434
435
437
437
445
450
450
450
452
457
457
459
459
460
460
462
462
462
463
464
465
470
474
475
475
485
487
489
490
491
493
493
493
494
494
496
497
498
498
498
498
499
500
500
505
505
505
509
514
514
514
515
517
517
525
529
530
530
530
531
532
535
535
535
535
535
536
536
537
542
547
548
556
558
561
561
563
563
563
564
568
568
569
569
572
573
573
573
573
573
575
575
576
581
581
587
600
602
605
623
628
628
642
647
647
665
668
670
689
694
694
709
714
714
727
732
732
744
748
750
753
766
770
770
771
771
789
792
794
813
818
818
833
838
838
857
859
862
880
885
885
899
904
904
922
925
927
946
951
951
966
971
971
984
989
989
1001
1005
1007
1010
1023
1028
1028
1046
1049
1051
1070
1075
1075
1090
1095
1095
1114
1116
1119
1137
1142
1142
1156
1161
1161
1179
1182
1184
1203
1208
1208
1223
1228
1228
1746
1747
1748
10
10
11
17
17
17
18
18
18
19
19
19
19
22
22
22
23
23
26
26
26
26
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
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
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
36
36
37
37
37
37
38
39
41
51
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
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
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
58
58
58
59
60
60
60
60
61
61
61
61
63
63
64
64
71
72
72
74
74
74
75
75
75
76
76
77
77
77
78
78
78
78
78
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
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
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
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
87
87
88
88
88
89
90
90
90
90
90
91
91
91
91
91
91
91
91
92
92
93
93
93
93
93
93
93
93
94
95
96
98
99
99
103
103
108
108
109
110
111
111
112
112
112
113
113
113
114
114
116
121
121
123
123
124
124
124
126
126
126
126
126
126
127
127
127
127
127
129
131
131
132
132
132
132
133
134
134
136
136
136
136
139
140
140
140
142
142
142
142
143
143
144
144
145
145
145
146
147
147
148
152
154
154
157
157
157
160
160
163
163
163
163
163
163
165
167
168
169
173
173
174
174
176
179
181
181
181
181
181
182
182
182
183
183
184
184
187
187
187
194
195
195
196
196
197
197
198
198
198
198
198
198
199
201
201
202
202
203
207
207
207
207
208
213
213
213
213
214
215
216
216
216
217
217
217
219
219
224
226
231
231
234
234
234
234
234
234
235
235
236
236
237
237
239
240
240
241
241
242
242
244
245
252
252
252
253
253
253
253
254
254
255
255
255
255
258
259
259
263
263
265
266
266
269
269
269
269
269
269
271
273
273
274
275
275
276
277
277
278
278
280
280
281
281
282
282
284
284
284
284
287
287
287
288
288
288
288
292
292
300
302
302
305
305
305
305
305
305
305
305
310
310
310
310
314
315
317
318
319
320
320
320
322
323
323
325
338
338
344
344
346
348
348
349
349
349
349
350
350
353
353
367
372
372
372
372
376
376
378
380
384
385
385
385
386
386
386
387
388
388
388
388
390
390
391
391
391
393
393
401
405
405
411
412
414
419
423
423
423
423
423
423
424
424
428
428
433
433
435
436
438
438
451
451
453
458
458
459
460
461
463
463
463
464
465
466
471
476
476
485
485
489
489
490
491
492
494
494
494
495
495
497
497
499
499
499
500
501
501
506
506
510
514
515
515
518
518
526
531
531
531
532
533
536
536
536
536
536
536
536
537
537
538
546
548
549
557
562
562
564
564
565
569
569
570
570
572
574
574
576
576
577
582
582
601
603
606
624
629
629
643
648
648
666
669
671
690
695
695
710
715
715
728
733
733
749
751
754
767
772
772
790
793
795
814
819
819
834
839
839
858
860
863
881
886
886
900
905
905
923
926
928
947
952
952
967
972
972
985
990
990
1006
1008
1011
1024
1029
1029
1047
1050
1052
1071
1076
1076
1091
1096
1096
1115
1117
1120
1138
1143
1143
1157
1162
1162
1180
1183
1185
1204
1209
1209
1224
1229
1229
1747
1748
1749
9
9
11
11
17
17
17
19
19
19
23
23
23
24
26
26
26
26
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
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
32
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
36
36
37
37
37
37
37
37
37
38
39
40
40
42
42
52
52
52
52
52
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
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
58
58
58
58
58
58
58
59
60
62
62
62
62
65
65
65
65
66
66
72
73
73
74
75
75
75
75
75
75
76
76
76
76
77
77
77
78
78
78
78
79
79
79
79
79
79
80
80
80
80
80
81
81
81
81
81
81
81
81
81
81
81
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
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
84
84
84
85
85
87
87
87
88
89
91
91
91
91
92
92
93
93
94
94
94
94
94
94
94
94
95
96
96
97
97
99
99
99
100
100
103
104
109
109
109
109
110
110
112
112
113
113
113
114
117
122
122
122
126
126
127
127
127
127
127
127
127
127
128
128
128
128
128
130
131
132
132
132
133
133
133
134
135
135
137
137
137
137
138
139
139
139
140
140
141
141
141
141
142
143
144
144
145
145
146
146
147
148
150
150
153
158
158
158
158
161
161
164
164
164
164
164
164
164
164
166
166
168
168
169
170
174
174
175
175
177
180
180
181
181
181
182
182
182
182
182
183
183
188
188
195
196
196
198
198
199
199
199
199
199
199
199
199
199
200
202
202
203
203
204
208
208
208
208
214
214
215
216
216
217
217
218
218
220
220
224
224
226
226
226
227
232
232
235
235
235
235
235
235
235
235
236
236
236
237
237
238
238
238
240
241
241
242
243
245
246
248
248
251
251
252
252
252
253
253
253
254
254
254
256
259
264
264
266
267
267
270
270
270
270
270
270
270
270
271
271
274
274
275
277
278
278
279
279
279
280
280
280
280
281
282
282
283
283
285
285
288
288
289
289
289
291
293
293
293
301
303
303
303
303
306
306
306
306
306
306
306
306
306
306
308
310
310
311
311
315
316
316
318
319
320
321
321
321
323
323
324
326
337
338
338
338
338
339
345
345
347
349
349
349
350
350
350
350
351
351
351
354
354
361
361
368
373
373
377
377
379
381
384
384
386
386
386
387
387
387
388
389
391
392
392
392
393
393
393
393
394
402
404
406
406
406
412
413
415
416
416
420
421
423
423
424
424
424
424
425
425
429
429
429
434
434
436
436
439
439
450
451
451
451
451
452
454
459
459
460
461
462
462
464
464
464
464
465
466
467
472
474
474
477
490
490
491
492
493
495
495
495
496
496
497
497
498
500
500
500
501
505
506
506
506
506
507
511
515
516
516
517
519
519
519
527
529
529
532
532
532
533
534
534
536
536
537
537
537
537
538
539
542
547
549
549
558
563
563
563
564
564
564
564
565
566
570
570
571
571
573
575
575
575
577
577
577
578
583
583
587
587
602
604
607
625
630
630
644
649
649
667
670
672
691
696
696
711
716
716
729
734
750
752
755
768
773
773
791
794
796
815
820
820
835
840
840
859
861
864
882
887
887
901
906
906
924
927
929
948
953
953
968
973
973
986
991
1007
1009
1012
1025
1030
1030
1048
1051
1053
1072
1077
1077
1092
1097
1097
1116
1118
1121
1139
1144
1144
1158
1163
1163
1181
1184
1186
1205
1210
1210
1225
1230
1230
1748
1749
1750
10
10
11
17
20
24
24
24
25
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
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
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
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
37
37
39
41
41
43
43
51
51
51
51
51
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
55
55
55
55
55
55
55
56
56
56
56
56
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
59
61
63
63
63
63
65
66
66
66
74
74
74
74
75
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
78
78
78
78
79
79
79
80
80
80
80
80
80
80
81
81
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
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
86
87
87
87
87
89
89
90
90
90
90
91
91
91
92
92
92
93
93
94
94
94
95
95
95
95
95
95
96
100
100
101
101
105
110
110
110
110
111
111
111
111
111
111
112
112
112
113
113
114
114
118
122
123
123
123
125
128
128
128
128
128
128
129
129
129
129
129
131
132
133
133
134
134
134
135
136
138
138
138
138
138
141
142
142
142
142
143
144
145
145
146
146
146
147
147
147
148
148
148
148
149
151
151
154
159
159
159
159
159
159
162
162
162
164
164
164
164
165
165
165
165
166
168
169
169
170
171
175
175
176
176
178
181
181
182
182
183
183
183
183
184
184
187
188
188
188
188
189
196
197
197
197
197
197
197
199
199
199
199
199
199
200
200
200
200
200
201
203
203
203
204
204
205
205
208
208
209
209
209
209
214
215
216
216
217
217
217
217
217
217
217
217
218
218
218
218
218
219
221
221
227
227
228
233
233
233
235
235
235
235
236
236
236
236
236
237
237
238
238
241
241
242
242
242
243
244
244
245
246
246
247
249
249
251
252
252
253
253
254
254
255
255
255
257
260
263
265
265
268
268
268
270
270
270
270
271
271
271
271
272
272
273
273
273
275
275
278
279
279
280
280
281
281
281
281
281
281
282
283
283
284
284
285
286
287
288
288
288
288
289
289
289
289
289
290
291
292
301
302
304
304
304
304
304
306
306
306
306
307
307
307
307
307
307
311
312
312
316
317
319
320
320
321
322
322
322
325
327
331
339
339
340
346
346
349
350
350
350
351
351
351
351
352
352
352
352
355
355
359
362
362
364
369
374
374
376
378
378
382
385
385
386
386
386
387
387
387
388
388
388
390
390
390
391
391
392
393
393
394
394
395
404
405
413
414
414
416
417
417
421
424
425
425
425
425
426
426
427
427
427
427
430
430
433
435
435
440
440
444
452
452
453
455
460
460
462
462
463
463
465
466
467
468
472
473
475
475
477
478
489
491
491
492
494
496
496
496
497
497
498
498
498
498
498
498
499
499
499
499
501
501
501
507
507
508
512
517
517
517
518
527
528
530
530
533
533
533
534
535
536
536
537
537
537
538
538
538
538
539
540
546
548
557
559
564
564
565
565
566
567
571
571
572
572
573
573
573
573
575
576
576
576
579
584
584
585
588
588
603
605
608
626
631
631
645
650
650
668
671
673
692
697
697
712
717
717
730
735
751
753
756
769
774
774
792
795
797
816
821
821
836
841
841
860
862
865
883
888
888
902
907
907
925
928
930
949
954
954
969
974
974
987
992
1008
1010
1013
1026
1031
1031
1049
1052
1054
1073
1078
1078
1093
1098
1098
1117
1119
1122
1140
1145
1145
1159
1164
1164
1182
1185
1187
1206
1211
1211
1226
1231
1231
1749
1750
1751
2
9
9
11
17
18
19
19
21
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
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
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
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
35
35
35
35
35
35
35
36
36
36
37
37
37
37
37
40
42
42
44
44
48
48
49
49
51
51
51
51
51
52
52
52
52
52
52
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
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
58
58
59
59
59
59
59
59
59
59
60
60
62
64
64
64
64
67
67
72
72
72
72
72
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
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
79
79
79
79
80
80
80
80
80
80
80
81
81
81
82
82
82
82
82
82
82
82
82
83
83
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
86
87
88
88
90
90
90
91
91
91
91
92
92
92
93
93
93
93
93
94
96
96
97
98
99
99
101
101
102
102
103
106
111
111
112
112
112
112
112
113
113
113
113
114
114
119
122
123
124
124
125
125
125
126
127
127
128
128
128
128
128
128
130
130
130
130
130
132
132
133
134
134
135
135
135
137
139
139
139
139
140
142
142
142
143
143
144
145
147
148
148
148
149
149
149
149
149
150
155
157
159
159
160
160
160
160
162
162
162
164
164
165
165
166
166
166
166
166
168
169
170
170
171
172
176
176
177
177
178
179
181
181
182
182
182
182
183
183
184
184
184
185
189
189
190
195
196
196
196
197
197
197
197
198
198
198
199
199
200
200
201
201
201
201
201
202
204
205
205
206
206
206
209
209
210
210
210
210
214
214
214
215
216
217
217
217
217
218
218
218
218
219
219
219
220
222
222
224
226
228
228
233
233
233
235
235
236
236
237
237
237
237
237
237
238
238
238
239
239
242
243
243
244
245
245
246
247
247
247
248
252
252
252
253
253
253
253
254
254
255
256
256
258
261
263
268
268
268
270
270
271
271
272
272
272
272
274
274
274
274
276
279
280
280
280
280
281
282
282
282
282
284
284
285
285
285
285
285
287
288
289
289
290
290
290
291
292
292
293
293
302
302
303
304
304
304
306
306
307
307
308
308
308
308
308
308
310
310
312
320
321
321
321
322
323
323
323
323
326
328
332
332
332
332
338
338
340
340
347
347
350
350
351
351
351
351
352
352
352
353
353
356
356
360
360
365
370
375
375
376
383
387
387
387
387
388
388
388
389
389
391
391
392
393
393
393
394
394
395
395
405
405
406
406
414
415
415
415
417
422
423
423
425
426
426
427
428
428
431
431
434
434
436
436
436
441
441
445
445
445
445
451
451
453
453
456
461
461
463
463
464
464
466
467
468
469
473
473
474
476
476
478
479
489
493
495
497
497
497
498
499
499
500
500
500
500
500
502
502
506
506
508
508
513
518
518
518
518
519
519
528
528
529
534
534
534
535
536
536
536
537
538
538
539
539
540
541
547
547
549
549
558
558
558
558
560
564
564
565
565
566
566
568
572
572
573
574
574
576
576
577
577
577
577
580
585
585
586
586
604
606
609
627
632
632
646
651
651
669
672
674
693
698
698
713
718
718
731
733
733
736
752
754
757
770
775
775
793
796
798
817
822
822
837
842
842
861
863
866
884
889
889
903
908
908
926
929
931
950
955
955
970
975
975
988
990
990
993
1009
1011
1014
1027
1032
1032
1050
1053
1055
1074
1079
1079
1094
1099
1099
1118
1120
1123
1141
1146
1146
1160
1165
1165
1183
1186
1188
1207
1212
1212
1227
1232
1232
1750
1751
1752
1
2
3
10
10
11
17
19
19
20
20
22
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
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
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
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
35
35
35
35
35
35
35
35
35
37
37
41
45
45
49
49
49
49
50
50
50
50
50
51
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
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
56
56
56
56
56
56
56
56
56
57
57
57
58
58
58
58
58
58
58
58
60
60
60
60
60
60
61
61
63
63
63
65
65
65
65
68
68
71
71
71
71
71
71
71
72
73
73
73
73
73
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
76
76
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
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
82
82
82
82
82
83
83
83
84
84
84
85
85
85
85
85
85
85
85
85
85
85
85
85
86
87
88
89
89
92
92
92
92
93
93
93
93
94
94
97
97
97
98
99
100
100
102
102
103
103
107
111
112
112
113
113
113
114
114
120
125
125
125
126
126
126
126
127
127
127
127
127
127
127
127
128
128
129
129
129
129
129
129
131
132
133
133
135
135
135
135
135
135
136
136
136
138
138
140
140
140
140
141
141
143
143
145
145
145
146
146
147
148
149
149
150
150
156
160
160
161
161
161
161
163
163
163
163
164
164
164
164
164
164
165
165
166
166
166
166
169
170
172
173
177
177
178
178
179
179
179
179
180
181
182
182
183
183
184
184
184
185
185
185
185
186
188
188
190
190
195
196
198
198
198
198
198
199
199
199
199
199
199
199
199
199
200
200
200
201
201
202
203
205
206
206
207
207
207
207
211
211
211
211
215
215
217
217
217
218
218
218
218
218
219
219
219
219
220
220
223
223
227
231
234
234
234
234
235
235
235
235
235
235
236
236
237
237
239
239
239
240
243
244
244
245
246
246
247
248
249
252
253
253
253
253
254
254
255
255
255
256
256
256
257
257
259
259
262
263
264
266
269
269
269
269
270
270
270
270
270
270
271
271
272
272
275
275
277
280
281
281
281
282
283
283
285
285
286
286
286
286
288
288
288
289
289
289
290
290
291
291
294
294
302
304
305
305
305
305
306
306
306
306
306
306
307
307
308
308
309
309
311
321
321
322
323
323
324
324
324
324
327
329
333
333
339
348
348
352
352
352
352
353
353
353
354
354
357
357
366
366
371
372
376
376
376
377
384
388
388
389
389
390
390
392
392
393
394
394
395
395
407
407
415
416
418
423
424
427
427
428
429
429
432
432
434
436
437
437
437
442
442
446
446
452
457
462
462
465
465
467
468
469
470
475
477
479
479
480
485
489
490
494
496
498
498
498
498
499
500
500
501
501
501
501
503
503
507
514
519
519
520
520
530
535
535
536
537
537
538
539
540
540
541
542
547
549
550
550
559
559
561
565
566
566
569
573
573
574
575
575
578
578
578
578
581
586
586
605
607
610
628
633
633
647
652
652
670
673
675
694
699
699
714
719
719
732
734
737
753
755
755
758
758
771
776
776
794
797
799
818
823
823
838
843
843
862
864
867
885
890
890
904
909
909
927
930
932
951
956
956
971
976
976
989
991
994
1010
1012
1012
1015
1015
1028
1033
1033
1051
1054
1056
1075
1080
1080
1095
1100
1100
1119
1121
1124
1142
1147
1147
1161
1166
1166
1184
1187
1189
1208
1213
1213
1228
1233
1233
1751
1752
1753
1
1
1
3
4
9
9
10
11
19
21
21
23
26
26
27
27
28
28
28
28
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
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
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
36
36
36
36
36
42
46
46
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
53
53
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
57
57
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
61
61
62
62
63
64
66
66
66
66
69
69
72
72
72
72
72
72
72
72
72
73
74
74
74
74
74
75
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
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
79
79
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
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
84
84
85
85
85
88
88
88
89
90
90
91
93
93
93
93
94
94
94
94
94
94
95
95
95
95
95
95
98
98
98
99
103
103
104
104
104
104
108
112
112
113
113
113
114
114
114
121
123
126
126
127
127
127
128
128
129
129
130
130
130
130
130
130
132
134
136
136
136
136
136
137
137
137
139
141
141
141
141
143
143
144
145
145
146
146
147
147
147
147
148
148
148
148
149
151
157
159
159
161
161
162
162
162
162
163
163
164
164
165
165
166
166
167
167
168
168
168
170
173
174
178
178
179
179
180
180
181
184
184
184
185
185
185
186
186
186
186
187
189
196
197
197
197
198
198
199
199
199
200
200
200
200
201
201
201
203
204
206
207
207
208
208
212
212
212
212
213
215
215
215
215
216
216
216
217
217
217
217
217
218
218
218
219
219
219
219
224
224
224
228
232
233
233
234
234
235
235
236
236
237
237
237
238
238
238
239
240
240
240
241
242
244
245
245
246
247
247
248
249
249
250
254
254
254
254
255
256
256
256
257
257
257
258
258
259
260
263
264
265
267
268
268
269
269
270
270
271
271
272
272
275
278
280
280
280
281
282
282
282
283
284
284
284
286
286
286
286
286
286
287
287
287
287
287
288
288
288
289
289
289
290
290
292
293
293
293
295
295
303
304
304
304
305
305
305
306
306
307
307
308
308
310
310
310
310
312
321
322
323
323
324
324
325
325
325
325
328
330
333
338
340
349
349
350
351
351
351
351
351
353
353
353
353
354
354
354
355
355
358
358
362
367
367
367
367
372
372
377
377
377
378
385
388
388
388
390
390
391
391
393
393
393
394
395
395
396
396
405
406
406
406
408
408
416
417
417
419
423
423
424
425
426
426
428
428
429
430
430
433
433
434
436
437
438
438
438
443
443
446
451
453
458
463
463
463
464
464
464
466
466
468
469
470
471
475
476
478
480
480
480
480
481
485
490
491
495
497
497
497
499
499
500
501
501
501
502
502
504
504
506
508
515
518
519
519
519
520
520
521
521
530
531
534
534
536
536
536
536
537
538
538
539
540
541
541
542
543
547
549
550
551
551
559
562
564
566
567
567
570
572
572
574
574
575
576
576
576
577
577
577
579
579
579
579
582
587
587
588
606
608
611
629
634
634
648
653
653
671
674
676
695
700
700
715
720
720
733
735
738
754
759
759
772
777
777
795
798
800
819
824
824
839
844
844
863
865
868
886
891
891
905
910
910
928
931
933
952
957
957
972
977
977
990
992
995
1011
1016
1016
1029
1034
1034
1052
1055
1057
1076
1081
1081
1096
1101
1101
1120
1122
1125
1143
1148
1148
1162
1167
1167
1185
1188
1190
1209
1214
1214
1229
1234
1234
1752
1753
1754
4
5
10
10
10
11
11
11
11
19
19
21
24
26
26
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
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
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
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
37
37
43
47
47
48
48
48
48
48
48
48
48
48
48
50
52
52
52
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
55
55
55
55
56
56
56
56
56
57
57
57
58
58
58
59
59
60
60
60
60
60
60
62
62
63
63
65
67
67
67
67
69
69
70
70
73
73
73
73
73
73
73
73
73
73
74
75
75
75
75
75
75
75
75
75
75
75
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
79
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
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
81
81
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
82
85
85
85
88
89
90
91
91
92
92
93
93
94
94
94
95
95
95
95
96
96
96
96
99
99
99
100
104
104
105
105
105
105
105
105
109
112
112
113
113
114
114
114
114
115
115
122
124
124
124
126
127
127
127
127
127
128
128
129
129
130
130
131
131
131
131
133
135
137
137
137
137
137
138
138
140
142
142
142
142
143
145
145
146
146
146
147
148
148
149
149
149
150
151
158
160
162
162
163
163
163
164
164
164
165
165
166
166
167
167
169
169
169
169
174
175
179
179
180
180
180
182
185
186
186
187
187
187
188
190
197
197
198
198
198
199
199
199
200
200
201
201
202
202
202
204
205
207
208
208
209
209
209
213
213
213
213
214
216
216
217
217
217
218
218
218
219
219
220
220
220
224
225
225
225
226
233
233
234
235
235
235
236
236
237
237
237
237
237
238
238
238
239
239
239
241
242
243
245
246
246
247
248
248
249
249
250
251
252
254
254
255
255
257
257
258
258
259
261
263
264
265
266
268
268
269
270
270
270
271
271
272
272
273
273
275
279
280
280
281
281
282
283
283
284
285
285
285
287
287
287
287
288
288
288
288
288
289
289
290
290
291
291
292
292
292
293
294
294
294
304
304
304
305
306
306
306
306
307
307
308
308
309
309
310
310
311
311
311
311
316
317
321
321
323
324
324
325
325
326
326
329
331
333
338
338
339
350
350
350
350
350
351
352
352
352
352
354
354
355
355
355
356
356
359
359
362
365
367
367
368
368
373
376
378
378
378
379
386
388
389
391
391
392
392
393
393
394
394
394
395
396
397
397
405
405
405
406
407
407
407
417
418
420
423
423
424
424
425
427
429
429
430
431
431
434
434
434
434
437
438
439
444
444
446
451
451
452
459
462
463
463
463
463
464
464
464
465
465
465
469
470
471
472
475
477
478
479
480
480
481
481
482
489
491
492
496
498
498
500
500
501
501
502
502
503
503
505
505
506
506
507
516
518
518
518
519
520
520
520
521
521
530
532
535
536
536
537
537
537
537
538
540
541
542
542
543
544
547
547
550
551
559
563
564
564
565
568
568
571
573
575
575
576
576
576
576
577
577
577
578
578
578
580
580
583
588
588
588
609
612
630
635
635
649
654
654
675
677
696
701
701
716
721
721
734
736
739
755
760
760
773
778
778
799
801
820
825
825
840
845
845
866
869
887
892
892
906
911
911
932
934
953
958
958
973
978
978
991
993
996
1012
1017
1017
1030
1035
1035
1056
1058
1077
1082
1082
1097
1102
1102
1123
1126
1144
1149
1149
1163
1168
1168
1189
1191
1210
1215
1215
1230
1235
1235
1753
1754
1755
1
4
5
5
6
9
9
11
12
12
21
21
21
24
25
25
27
27
28
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
32
32
32
32
32
32
32
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
36
36
37
37
44
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
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
53
53
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
55
55
55
56
56
56
57
57
57
57
57
59
59
59
60
60
61
61
61
61
63
63
64
64
66
68
68
68
68
70
70
71
71
73
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
75
75
75
75
75
75
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
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
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
81
82
82
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
89
89
90
92
92
94
94
94
94
95
95
95
99
100
100
100
100
101
105
105
105
105
106
106
106
106
110
112
113
113
113
113
114
114
114
114
114
115
115
115
116
116
123
125
125
126
126
126
127
128
128
128
128
128
129
129
129
129
134
135
136
138
138
138
139
139
141
143
143
143
143
143
143
143
145
146
147
147
147
147
148
148
149
149
149
150
150
159
159
159
161
163
163
163
163
163
164
164
164
164
164
165
165
165
168
168
170
170
175
176
180
180
180
181
181
181
182
183
186
188
188
188
189
198
198
198
198
198
199
199
199
200
200
200
203
203
203
205
206
208
209
209
209
210
210
214
214
214
214
215
215
215
217
217
217
217
217
217
218
218
218
218
219
219
219
220
221
221
225
226
226
226
226
227
234
234
234
234
234
235
235
235
236
236
236
239
239
239
240
240
240
242
243
244
246
247
247
249
250
251
252
252
253
255
256
256
259
260
262
264
265
266
266
269
269
269
269
269
270
270
270
271
271
271
274
274
279
280
280
281
282
282
283
285
286
286
286
286
286
288
288
288
288
288
288
289
289
289
289
289
289
290
290
291
292
294
295
295
295
305
305
305
305
305
306
306
306
307
307
307
307
310
310
312
312
312
312
317
318
321
322
322
322
323
323
323
324
325
325
326
327
330
332
337
338
339
340
351
351
352
353
353
353
353
356
356
356
357
357
360
360
368
369
369
372
374
377
379
379
379
379
387
390
392
392
393
393
394
395
395
395
396
397
398
398
407
408
408
408
419
421
425
425
426
428
431
432
432
435
435
435
435
436
436
436
438
440
445
445
450
451
452
453
460
463
464
465
465
465
466
466
466
467
468
470
471
472
473
478
480
481
482
482
483
485
490
492
492
497
499
499
502
503
503
504
504
505
506
506
506
507
508
517
520
521
521
521
522
522
533
536
538
538
538
541
542
543
543
544
545
548
548
549
549
549
551
563
564
564
565
566
569
569
572
574
577
578
578
578
579
579
579
581
581
584
589
589
610
613
631
636
636
650
655
655
676
678
697
702
702
717
722
722
735
737
740
756
761
761
774
779
779
800
802
821
826
826
841
846
846
867
870
888
893
893
907
912
912
933
935
954
959
959
974
979
979
992
994
997
1013
1018
1018
1031
1036
1036
1057
1059
1078
1083
1083
1098
1103
1103
1124
1127
1145
1150
1150
1164
1169
1169
1190
1192
1211
1216
1216
1231
1236
1236
1754
1754
1756
5
6
7
13
13
19
19
21
21
21
21
24
25
25
25
25
25
25
25
25
25
25
26
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
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
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
45
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
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
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
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
58
58
58
58
60
64
64
65
65
67
69
69
69
69
71
71
71
71
71
72
73
73
73
74
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
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
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
83
83
84
84
85
85
90
91
94
94
94
96
96
96
100
101
101
101
102
106
106
106
107
107
107
107
111
114
114
115
115
115
116
116
116
124
124
125
125
125
125
126
128
129
129
129
129
129
132
135
137
139
139
139
140
140
142
144
144
144
144
144
145
145
145
146
148
148
149
149
149
149
149
150
150
150
150
151
159
159
160
160
160
161
163
163
163
163
164
165
165
165
166
166
167
167
167
167
169
169
170
176
177
181
181
181
182
182
182
182
183
184
184
185
187
187
188
189
189
190
196
198
198
198
198
199
200
200
201
201
202
202
202
202
204
204
204
206
207
207
209
209
210
210
211
211
214
214
215
215
215
215
215
216
216
217
217
217
218
218
218
218
219
219
220
220
220
221
221
221
222
222
227
227
227
227
228
232
234
234
234
234
235
236
237
237
238
238
238
238
238
240
240
240
241
241
243
244
245
247
248
248
249
249
250
251
252
252
253
253
253
254
254
254
255
256
256
263
263
265
266
267
269
269
269
269
270
271
272
272
273
273
273
273
275
275
280
281
282
283
283
284
285
285
286
286
287
287
287
287
288
289
289
289
289
290
290
290
290
291
291
291
292
292
292
293
293
295
296
296
303
304
304
305
305
305
305
306
307
308
308
308
308
309
309
309
309
311
311
313
313
313
313
322
323
324
324
324
324
325
325
326
326
327
327
328
328
331
333
338
340
341
351
352
352
353
354
354
354
357
357
357
358
358
361
361
362
362
367
367
369
375
376
378
380
380
388
391
393
393
395
396
396
396
397
398
399
399
406
408
409
409
417
417
420
421
422
426
426
427
429
432
433
433
436
436
437
437
437
437
441
446
446
451
453
454
461
464
466
466
466
467
467
468
469
471
471
472
472
473
473
474
474
475
475
479
480
480
481
482
484
489
491
498
500
500
503
504
504
505
505
506
507
507
508
509
518
519
521
522
522
523
523
530
530
534
534
537
539
539
539
542
543
544
544
545
546
550
550
550
550
564
565
566
567
570
570
573
575
577
578
579
579
579
580
580
582
582
585
588
588
590
590
611
614
632
637
637
651
656
656
677
679
698
703
703
718
723
723
736
738
741
757
762
762
769
775
780
780
801
803
822
827
827
842
847
847
868
871
889
894
894
908
913
913
934
936
955
960
960
975
980
980
993
995
998
1014
1019
1019
1032
1037
1037
1058
1060
1079
1084
1084
1099
1104
1104
1125
1128
1146
1151
1151
1165
1170
1170
1191
1193
1212
1217
1217
1232
1237
1237
1754
1755
1755
1757
7
8
9
13
21
21
21
21
22
22
24
25
25
25
25
25
26
26
27
29
29
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
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
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
37
46
47
47
47
47
47
48
48
48
48
49
49
50
50
50
51
51
51
51
51
51
51
51
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
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
58
59
59
59
61
65
65
66
66
68
70
70
70
70
72
72
72
72
73
73
73
73
74
74
74
75
75
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
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
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
84
86
86
92
92
92
94
95
95
95
96
96
96
96
96
96
97
97
97
102
102
102
103
105
105
107
107
107
108
108
112
114
115
116
117
117
125
126
126
127
127
129
130
130
130
130
131
131
131
131
131
131
132
133
135
135
136
138
140
140
140
141
141
143
143
143
143
145
145
145
145
146
146
147
149
150
150
150
151
151
151
152
161
161
161
161
163
165
166
166
166
167
167
168
168
168
168
170
170
170
177
178
181
182
182
182
182
183
183
183
184
184
184
185
185
185
185
185
186
188
188
190
190
191
196
198
200
200
201
202
202
203
203
203
203
205
205
205
207
210
210
211
211
212
212
215
215
216
216
216
216
217
217
219
219
220
221
221
221
222
222
222
223
223
227
228
228
228
228
232
234
236
237
238
238
239
239
239
239
239
239
241
241
244
245
246
247
248
249
250
250
251
252
252
253
253
253
254
254
255
255
255
255
256
256
256
256
257
264
264
264
266
266
267
267
269
271
272
273
273
274
274
274
274
274
276
276
280
281
282
283
284
285
286
286
287
288
288
288
288
290
290
291
291
291
292
292
292
293
293
293
294
294
294
302
303
305
305
305
307
308
309
309
309
309
310
310
310
310
312
312
314
314
314
323
324
325
325
328
328
329
329
332
332
334
338
339
341
352
352
353
353
355
358
358
358
359
359
360
362
362
363
363
368
376
377
377
379
379
381
381
387
389
392
393
393
394
394
396
397
397
397
398
399
400
400
407
407
415
416
418
418
421
422
423
427
428
430
433
434
434
437
437
438
438
442
445
447
447
451
452
454
462
465
465
467
467
469
470
473
474
474
475
475
476
476
480
481
482
485
490
490
492
492
499
500
501
501
504
505
505
506
506
506
507
508
508
509
519
520
520
524
524
528
531
531
535
535
538
538
540
540
543
544
545
545
546
547
551
551
558
564
565
566
567
571
571
574
576
578
578
579
580
580
583
583
586
586
589
589
591
591
606
610
612
615
633
638
638
652
657
657
671
678
680
699
704
704
719
724
724
737
739
742
758
763
763
770
776
781
781
795
802
804
823
828
828
843
848
848
863
867
869
872
890
895
895
909
914
914
928
935
937
956
961
961
976
981
981
994
996
999
1015
1020
1020
1033
1038
1038
1052
1059
1061
1080
1085
1085
1100
1105
1105
1120
1124
1126
1129
1147
1152
1152
1166
1171
1171
1185
1192
1194
1213
1218
1218
1233
1238
1238
1756
1756
1758
5
5
8
9
9
13
13
19
23
23
24
25
25
26
26
26
26
26
26
26
26
26
26
26
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
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
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
34
34
34
34
34
35
35
36
36
37
37
38
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
52
53
53
53
53
53
53
53
54
54
54
54
54
55
55
55
55
55
56
56
56
56
56
59
60
60
61
61
61
61
61
61
62
66
66
67
67
69
71
71
71
71
73
73
73
73
73
73
73
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
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
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
80
80
83
83
83
83
83
83
83
83
83
83
83
83
83
83
84
84
84
84
85
85
85
85
92
93
93
93
94
94
95
96
96
97
97
97
97
98
98
98
103
103
103
104
106
108
108
109
109
113
113
114
114
115
118
118
125
125
126
127
127
128
128
129
129
131
131
131
131
132
132
132
132
132
136
136
137
139
141
141
141
141
142
142
144
144
144
144
145
146
146
146
146
146
147
147
149
151
151
152
152
157
162
162
162
162
163
164
167
167
167
169
169
169
169
178
179
183
183
184
184
184
185
185
185
185
185
186
186
186
186
186
186
186
187
187
188
189
189
191
191
197
198
199
202
204
204
204
204
206
208
211
211
212
212
213
213
215
215
215
216
216
217
217
217
217
218
220
220
222
222
223
223
224
227
228
228
228
229
229
229
233
234
235
238
240
240
240
240
245
247
247
248
248
248
249
250
252
253
254
254
254
255
255
256
256
256
256
256
256
257
257
257
257
257
257
258
258
264
265
266
267
267
268
268
269
270
273
275
275
275
275
275
275
275
275
280
281
283
283
283
283
284
285
286
286
286
287
287
287
287
288
289
289
289
291
291
292
292
293
293
294
294
303
303
304
305
306
309
309
309
310
311
311
311
311
313
313
315
315
315
324
325
325
326
329
329
330
330
333
333
333
333
333
335
338
339
341
341
342
354
354
354
356
358
358
359
359
359
360
360
361
361
363
363
367
367
369
377
377
379
380
380
382
388
388
388
388
391
392
393
393
394
395
396
396
397
398
398
398
399
400
401
401
416
416
417
419
422
422
422
424
426
426
428
429
429
431
433
433
434
435
435
438
438
438
443
446
446
446
446
448
448
451
452
454
454
455
463
468
468
470
471
474
474
475
475
476
476
480
480
481
482
483
486
490
492
493
493
500
500
501
501
501
501
502
502
504
504
505
506
506
506
507
507
507
509
509
509
509
510
520
525
525
529
529
535
535
537
538
539
539
539
539
541
541
543
544
545
546
546
547
548
551
559
559
559
559
564
565
567
567
567
568
572
572
575
575
577
579
579
580
581
581
584
584
587
587
587
592
592
611
613
616
634
639
639
653
658
658
672
676
679
681
700
705
705
720
725
725
738
740
743
759
764
764
770
770
777
782
782
796
800
803
805
824
829
829
844
849
849
868
870
873
891
896
896
910
915
915
929
933
936
938
957
962
962
977
982
982
995
997
1000
1016
1021
1021
1034
1039
1039
1053
1057
1060
1062
1081
1086
1086
1101
1106
1106
1125
1127
1130
1148
1153
1153
1167
1172
1172
1186
1190
1193
1195
1214
1219
1219
1234
1239
1239
1757
1757
1759
4
4
5
5
9
9
9
9
10
13
14
23
24
24
25
25
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
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
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
36
36
37
37
38
39
47
47
47
47
47
47
48
50
50
51
51
51
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
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
61
61
62
62
62
62
63
67
67
68
68
70
71
72
72
72
72
73
73
73
73
73
73
73
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
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
77
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
80
80
80
80
80
80
81
81
83
83
83
83
83
83
83
83
83
83
83
83
83
83
85
86
86
86
94
95
95
95
95
99
99
99
104
104
104
105
105
105
107
109
109
110
110
112
112
114
114
114
114
114
115
115
115
115
119
119
126
127
130
130
130
130
132
133
135
137
137
137
138
140
142
142
142
142
142
143
143
145
146
146
147
147
147
147
147
147
147
148
148
149
150
158
162
162
163
163
165
166
166
167
167
167
167
168
168
168
179
180
184
184
185
185
186
186
186
187
187
187
187
187
187
188
188
188
189
190
191
191
192
192
197
197
200
200
200
201
201
202
202
202
202
203
207
207
209
212
212
213
213
214
214
215
216
216
217
217
218
218
218
218
218
218
218
219
221
225
229
229
230
230
230
233
233
236
237
237
238
238
238
238
239
241
246
248
248
248
248
249
250
250
251
251
253
254
254
254
255
255
255
256
257
257
257
258
258
258
258
258
259
259
260
264
264
266
266
267
268
268
268
268
269
271
272
272
273
273
273
273
274
276
276
284
284
285
286
286
287
287
288
288
288
288
289
289
289
289
290
290
290
292
292
293
293
296
304
304
307
308
308
309
309
309
309
310
311
314
314
316
316
325
325
326
327
330
330
331
331
331
334
334
334
336
342
342
343
354
355
357
359
359
360
360
360
361
361
364
364
367
367
368
368
377
378
379
380
381
381
383
389
389
392
393
394
396
396
397
397
397
398
399
399
399
400
401
402
402
409
420
423
425
427
427
429
432
434
434
435
436
436
438
439
439
444
447
447
449
449
455
455
456
464
467
469
469
471
472
476
476
477
477
480
480
481
481
484
487
490
492
493
494
494
502
502
503
503
505
505
506
507
507
508
508
510
510
510
510
511
521
522
526
526
538
539
540
540
540
542
542
542
543
544
545
546
547
547
548
549
551
560
560
568
568
568
569
573
573
578
580
580
580
581
582
582
585
585
588
593
593
612
614
617
635
640
640
654
659
659
677
680
682
701
706
706
721
726
726
741
744
760
765
765
770
771
771
778
783
783
801
804
806
825
830
830
845
850
850
869
871
874
892
897
897
911
916
916
934
937
939
958
963
963
978
983
983
998
1001
1017
1022
1022
1035
1040
1040
1058
1061
1063
1082
1087
1087
1102
1107
1107
1126
1128
1131
1149
1154
1154
1168
1173
1173
1191
1194
1196
1215
1220
1220
1235
1240
1240
1758
1758
1760
5
10
10
11
11
13
13
14
15
15
15
15
19
19
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
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
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
37
38
38
39
39
40
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
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
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
64
68
68
69
69
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
73
73
73
73
73
73
74
74
74
74
74
74
74
75
75
75
75
75
75
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
77
77
77
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
80
81
81
81
83
83
86
87
87
94
95
95
95
95
95
95
100
100
100
105
105
105
105
105
106
106
106
110
110
111
111
113
113
114
114
114
115
115
115
116
116
120
120
125
127
128
130
130
130
133
135
136
139
143
143
143
144
144
146
147
148
148
148
148
148
148
148
149
149
149
149
150
150
151
151
158
158
162
162
163
163
163
163
164
164
166
167
167
167
167
168
168
168
168
169
169
169
169
179
180
181
185
185
185
186
186
186
186
186
186
187
187
187
188
188
188
189
189
191
192
192
193
193
198
198
198
198
198
201
201
201
202
202
202
202
203
203
203
203
204
208
208
210
213
213
214
214
215
215
216
216
217
218
218
218
219
219
219
219
219
219
219
220
220
220
220
220
221
222
226
230
230
231
231
234
234
234
234
237
238
238
238
238
239
239
239
239
240
241
247
249
249
250
251
251
252
252
254
254
255
255
256
256
256
256
256
257
257
257
257
257
257
258
258
258
259
259
260
260
264
264
265
267
267
268
269
269
269
269
270
272
273
273
273
273
274
274
274
274
275
276
285
285
287
288
288
289
289
289
289
289
290
290
290
290
291
291
291
291
291
291
292
293
293
294
294
294
294
296
305
305
305
305
305
308
309
309
309
309
310
310
310
310
311
312
313
315
315
315
315
317
326
327
331
331
332
332
332
334
335
337
343
343
354
356
358
360
360
361
361
361
362
362
362
362
363
365
365
365
365
369
369
377
377
379
380
381
381
381
384
389
395
397
397
398
398
398
400
400
400
400
401
401
402
402
403
403
403
409
418
421
424
426
426
428
428
433
435
435
436
437
437
437
437
440
440
440
440
445
447
450
450
456
456
465
467
470
470
472
473
476
477
477
478
478
482
482
485
488
490
490
493
494
502
504
504
506
506
507
508
508
508
508
509
509
511
511
511
511
511
511
522
522
527
527
531
539
541
541
541
543
543
544
545
546
546
547
547
548
548
548
549
549
550
560
569
569
569
574
574
579
580
581
581
582
583
583
583
583
586
586
586
586
589
589
594
594
613
615
618
636
641
641
655
660
660
678
681
683
702
707
707
722
727
727
742
745
761
766
766
771
771
772
779
784
784
802
805
807
826
831
831
846
851
851
870
872
875
893
898
898
912
917
917
935
938
940
959
964
964
979
984
984
999
1002
1018
1023
1023
1036
1041
1041
1059
1062
1064
1083
1088
1088
1103
1108
1108
1127
1129
1132
1150
1155
1155
1169
1174
1174
1192
1195
1197
1216
1221
1221
1236
1241
1241
1759
1759
1761
4
6
9
11
11
12
12
13
13
13
15
15
19
24
24
24
25
25
25
25
25
25
25
25
25
26
26
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
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
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
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
39
40
40
41
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
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
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
55
55
55
55
55
55
55
56
56
56
56
56
56
60
60
60
65
69
69
69
69
69
69
69
69
69
70
70
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
73
73
74
74
74
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
76
76
76
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
80
80
80
80
81
81
81
81
81
82
83
83
89
93
95
95
96
96
96
96
96
97
97
101
101
101
106
106
106
107
107
107
111
111
112
112
115
115
115
115
115
116
116
121
121
125
125
126
128
129
130
131
131
131
131
132
132
132
132
132
132
134
136
136
137
137
140
144
144
144
144
145
145
147
148
149
149
149
149
149
149
149
149
149
149
149
150
150
150
150
150
151
152
152
152
152
163
163
163
163
165
165
167
167
167
167
168
168
168
168
169
169
169
169
170
170
170
170
170
170
180
180
180
181
182
185
185
185
186
186
186
186
186
186
187
187
187
187
187
187
188
188
188
192
193
193
194
198
198
199
199
202
202
202
202
203
203
203
203
204
204
204
204
209
209
209
211
214
214
215
215
216
216
217
218
218
219
220
220
220
220
220
220
220
220
220
220
221
221
221
221
221
221
222
223
227
228
232
232
234
234
238
238
238
238
239
239
239
239
240
240
240
240
245
248
250
250
250
252
252
252
253
253
256
256
256
257
257
257
257
257
257
257
257
258
258
258
258
258
258
259
259
259
265
265
266
266
266
266
268
268
269
269
271
273
273
273
273
274
274
274
274
275
275
275
275
276
282
283
286
288
288
289
289
289
290
290
290
291
291
291
291
291
291
292
292
292
292
293
294
294
295
295
295
295
305
305
305
309
309
309
309
310
310
310
310
311
311
311
311
313
313
316
318
327
328
332
332
333
333
333
334
336
338
341
353
357
357
359
361
361
362
362
362
363
365
366
366
366
366
370
370
378
378
379
379
379
380
381
382
385
389
389
396
396
398
398
399
401
401
403
403
404
404
404
418
422
425
426
427
428
432
434
436
436
437
441
441
441
441
446
447
451
451
454
466
471
471
473
474
476
478
478
478
479
479
483
483
486
489
491
491
492
492
492
494
499
502
503
505
505
507
507
508
509
510
510
512
512
512
512
523
528
528
531
535
539
542
544
544
545
546
549
549
549
550
550
551
560
567
570
574
575
575
578
580
582
582
583
587
587
587
587
589
590
595
595
614
616
619
637
642
642
656
661
661
679
682
684
703
708
708
723
728
728
743
746
762
767
767
771
771
772
773
780
785
785
803
806
808
827
832
832
847
852
852
871
873
876
894
899
899
913
918
918
936
939
941
960
965
965
980
985
985
1000
1003
1019
1024
1024
1037
1042
1042
1060
1063
1065
1084
1089
1089
1104
1109
1109
1128
1130
1133
1151
1156
1156
1170
1175
1175
1193
1196
1198
1217
1222
1222
1237
1242
1242
1760
1760
1762
5
7
8
13
13
13
23
23
25
25
25
25
25
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
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
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
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
37
40
41
41
42
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
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
53
53
53
53
53
53
53
53
53
53
54
54
54
55
60
61
61
62
62
62
62
62
62
66
70
70
70
70
70
70
70
70
70
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
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
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
76
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
78
78
78
78
79
79
79
79
80
80
80
80
80
80
81
81
82
83
90
90
94
94
97
97
97
97
97
97
97
99
100
100
102
102
102
107
107
107
108
108
108
112
112
113
113
115
115
115
116
116
116
116
116
117
122
122
124
125
126
127
129
129
130
130
130
132
132
132
133
133
133
133
135
138
138
141
144
145
145
145
146
146
146
148
149
150
150
150
150
150
150
150
150
151
151
151
151
151
151
152
152
152
152
153
153
162
164
164
166
166
166
168
168
168
168
169
169
170
170
170
170
170
170
171
171
171
171
181
181
182
183
187
187
187
188
188
188
188
188
188
189
189
189
191
193
195
201
201
203
203
203
203
204
204
205
205
205
205
205
205
210
210
210
210
210
212
215
215
215
216
216
216
217
217
220
221
221
221
221
221
221
221
221
221
221
222
222
222
222
222
222
222
222
223
223
227
228
233
233
237
237
239
239
239
239
240
240
241
241
241
241
241
241
241
241
246
248
249
251
251
253
253
253
254
254
258
258
258
258
259
259
259
259
259
259
260
260
260
267
267
267
267
267
269
272
272
272
274
274
274
274
275
275
276
276
276
276
276
276
280
286
287
289
290
291
291
291
292
292
292
292
292
292
293
293
293
293
293
293
294
294
295
295
296
296
296
296
296
296
308
308
309
310
310
310
310
311
311
312
312
312
312
312
312
313
314
314
317
319
324
328
329
333
333
334
334
334
337
338
339
354
354
358
358
360
362
362
363
363
363
366
367
367
367
367
371
380
380
380
380
381
383
386
390
393
394
397
399
399
400
402
402
404
404
405
405
405
409
409
422
423
426
426
426
427
428
428
433
435
437
437
437
438
442
442
442
442
447
451
452
452
467
467
467
472
472
474
475
479
479
479
480
480
481
484
485
487
490
493
493
493
493
504
506
506
506
508
508
509
511
511
513
513
513
513
522
522
524
529
529
535
536
539
540
540
543
545
545
546
547
550
550
550
550
550
551
551
552
552
564
571
576
576
579
580
580
581
583
583
584
588
588
588
588
591
596
596
615
617
617
620
620
638
643
643
657
662
662
680
683
683
685
685
704
709
709
724
729
729
738
742
744
747
763
768
768
772
773
781
786
786
804
807
807
809
809
828
833
833
848
853
853
872
874
874
877
877
895
900
900
914
919
919
937
940
940
942
942
961
966
966
981
986
986
995
999
1001
1004
1020
1025
1025
1038
1043
1043
1061
1064
1064
1066
1066
1085
1090
1090
1105
1110
1110
1129
1131
1131
1134
1134
1152
1157
1157
1171
1176
1176
1194
1197
1197
1199
1199
1218
1223
1223
1238
1243
1243
1761
1761
1763
4
5
5
5
5
9
13
14
14
14
15
15
19
23
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
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
32
32
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
35
35
35
35
37
37
37
38
42
43
47
47
47
47
47
48
48
48
49
49
49
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
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
56
56
62
62
63
63
63
63
67
71
71
71
71
71
71
71
71
71
71
71
72
72
72
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
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
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
79
79
80
80
81
81
81
81
83
84
87
95
95
98
98
98
98
98
98
98
98
98
100
101
101
101
101
103
103
103
108
108
108
109
109
113
114
116
116
116
117
117
118
123
123
125
127
128
131
131
131
131
131
133
136
136
137
137
137
139
139
140
142
144
146
146
146
146
147
147
147
147
149
151
151
151
151
151
152
152
152
152
152
153
153
153
154
154
162
162
162
166
167
167
167
168
168
170
170
170
170
170
170
171
171
171
171
171
172
172
180
181
181
181
181
182
183
184
186
187
188
188
188
189
189
189
189
190
190
194
196
197
197
201
201
202
202
203
203
205
205
205
205
205
205
206
206
206
206
208
210
210
211
211
211
213
215
216
216
216
217
217
218
218
218
222
222
222
222
222
222
222
222
223
223
223
223
223
224
224
227
228
228
228
229
233
233
234
234
237
238
238
239
239
239
241
241
241
241
241
241
242
242
242
242
242
242
249
250
252
252
252
253
253
254
254
254
255
255
257
257
257
258
259
259
259
259
260
260
260
260
260
261
261
268
268
268
268
268
270
272
273
273
273
274
274
276
276
276
276
276
276
277
277
277
277
280
281
283
283
286
287
288
289
290
290
291
292
292
293
293
293
293
293
294
294
294
294
294
294
295
295
296
296
297
297
297
297
297
297
304
304
308
309
309
309
310
310
312
312
312
312
312
312
313
313
313
313
314
315
315
318
320
325
325
325
325
329
330
334
334
335
335
335
338
338
338
339
340
340
341
341
352
355
355
359
359
361
361
363
363
364
364
364
364
366
366
368
368
368
368
370
370
372
381
381
382
384
387
393
394
395
396
396
398
398
400
400
400
401
403
403
405
405
406
406
406
407
410
410
422
424
427
428
429
429
434
436
436
438
438
438
438
438
438
439
439
443
443
443
443
448
451
452
453
453
454
454
465
468
468
468
473
473
475
476
479
479
480
480
481
481
483
483
485
486
488
491
494
494
505
506
507
507
507
507
509
509
509
509
510
510
512
512
514
514
514
514
520
523
523
525
530
530
535
540
541
541
544
544
546
546
546
547
548
551
551
551
551
551
551
552
552
553
553
564
565
567
567
572
577
577
578
580
581
581
582
582
584
584
585
585
589
589
589
589
592
597
597
616
621
621
639
644
644
658
663
663
681
686
686
705
710
710
725
730
730
743
745
748
764
769
769
771
771
773
782
787
787
805
810
810
829
834
834
849
854
854
873
878
878
896
901
901
915
920
920
938
943
943
962
967
967
982
987
987
1000
1002
1005
1021
1026
1026
1039
1044
1044
1062
1067
1067
1086
1091
1091
1106
1111
1111
1130
1135
1135
1153
1158
1158
1172
1177
1177
1195
1200
1200
1219
1224
1224
1239
1244
1244
1762
1762
1764
1
1
5
5
5
5
6
6
7
10
13
15
15
15
15
16
16
23
23
23
24
26
26
26
26
26
26
26
26
26
26
26
26
26
26
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
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
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
38
38
38
39
40
40
41
41
43
44
46
46
46
48
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
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
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
54
54
54
55
55
55
55
55
55
56
56
56
56
56
56
57
57
68
69
69
69
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
73
73
73
73
75
75
75
75
75
75
75
75
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
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
80
80
80
80
80
80
81
81
81
81
81
81
82
84
85
87
95
96
96
96
96
98
98
98
98
99
99
99
99
99
100
100
101
101
102
102
104
104
104
108
108
109
109
109
110
110
112
112
113
113
114
114
115
115
116
116
116
116
116
117
117
117
117
117
118
119
124
124
125
126
128
131
131
131
132
134
136
136
136
137
137
138
138
138
143
144
144
145
146
147
147
147
147
147
147
147
148
148
148
149
149
149
149
150
150
151
151
151
151
152
152
152
152
152
152
152
153
153
154
154
154
158
162
162
163
166
166
167
168
168
168
168
168
170
170
171
171
171
172
172
172
172
173
173
182
182
183
184
185
187
187
187
187
188
188
188
188
188
188
189
189
190
191
191
195
197
197
201
201
201
202
203
203
203
203
205
205
206
206
207
207
207
207
211
212
212
212
214
215
216
217
217
218
218
218
218
218
219
219
219
220
221
222
222
222
222
223
223
223
223
223
223
223
223
224
224
225
225
227
229
229
230
233
235
235
237
237
238
239
239
239
239
240
240
241
241
242
242
243
243
243
243
250
251
253
255
255
255
256
256
258
258
258
258
259
259
260
260
260
261
261
268
268
269
271
271
272
272
273
274
274
274
274
274
274
276
276
277
277
278
278
278
278
280
284
284
286
287
289
289
289
289
290
292
292
293
293
293
293
293
293
294
294
294
294
294
295
295
295
295
296
296
297
297
298
298
298
298
304
308
308
309
310
310
310
310
312
312
313
313
313
314
314
314
314
315
316
316
319
321
326
326
330
331
335
335
336
336
336
338
341
341
342
342
353
353
360
360
364
364
365
365
365
365
369
369
369
369
371
371
373
381
383
385
388
393
396
397
397
401
401
401
402
404
404
406
406
407
407
407
408
408
425
426
428
429
430
430
435
439
439
439
439
440
440
444
444
444
444
449
451
454
454
455
455
466
466
469
474
476
477
481
481
482
482
484
484
486
487
489
492
494
506
506
508
510
510
510
510
511
511
513
513
515
515
515
515
521
521
526
531
531
539
541
542
542
547
547
547
548
549
552
552
552
552
553
553
554
554
564
568
568
573
578
578
579
579
581
585
585
586
586
590
590
590
590
593
598
617
622
622
640
645
645
659
664
664
682
687
687
706
711
711
726
731
744
746
749
765
770
770
772
783
788
788
806
811
811
830
835
835
850
855
874
879
879
897
902
902
916
921
921
939
944
944
963
968
968
983
988
1001
1003
1006
1022
1027
1027
1040
1045
1045
1063
1068
1068
1087
1092
1092
1107
1112
1131
1136
1136
1154
1159
1159
1173
1178
1178
1196
1201
1201
1220
1225
1225
1240
1245
1763
1763
1765
1
1
4
5
5
5
7
7
7
11
15
16
16
17
17
25
25
25
25
25
25
26
26
26
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
29
29
29
29
29
29
29
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
31
31
31
32
32
32
32
32
32
33
34
34
35
35
39
39
41
42
44
45
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
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
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
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
56
56
56
56
58
58
61
61
61
67
69
69
69
69
69
70
70
70
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
73
73
73
73
73
74
74
74
74
74
75
75
75
76
76
76
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
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
81
81
81
81
82
82
82
83
85
86
96
96
96
96
98
98
99
99
100
100
100
100
100
102
103
103
105
105
105
109
109
110
110
110
111
111
113
114
115
115
116
116
117
117
118
118
118
119
120
125
125
125
126
128
128
129
129
131
132
132
133
133
133
135
138
138
139
139
139
142
144
145
145
146
147
148
148
148
148
148
148
148
149
149
149
150
150
150
150
150
151
151
151
151
151
152
152
152
152
153
153
153
153
153
153
158
163
164
167
167
168
168
168
168
168
169
169
169
169
171
171
172
172
174
174
181
181
183
183
185
186
188
188
189
189
190
191
192
192
193
196
198
202
202
203
203
203
203
203
204
204
204
206
206
207
207
210
210
212
213
215
216
218
218
218
219
219
219
219
219
219
220
220
220
220
220
221
221
221
221
222
222
222
222
223
223
223
223
224
224
224
224
224
224
224
228
228
230
230
230
231
236
236
238
238
239
239
239
239
239
240
240
240
242
242
243
243
248
251
252
254
256
256
256
257
257
257
259
259
261
261
262
262
268
270
273
273
274
274
274
274
274
275
275
275
275
275
277
277
278
278
281
283
285
285
285
289
290
290
290
290
290
291
291
292
292
292
293
293
293
293
293
294
294
294
294
294
294
295
295
295
295
295
298
298
299
299
299
299
303
309
309
309
310
310
310
310
310
311
311
311
313
313
314
314
314
316
316
317
320
322
326
331
332
336
336
337
337
337
339
341
342
342
343
343
343
361
361
361
365
365
366
366
366
366
370
370
370
370
370
372
372
381
384
386
389
394
396
397
398
398
398
402
402
402
403
405
407
407
408
408
408
416
422
426
427
429
429
431
431
436
439
440
440
441
441
445
445
445
445
450
452
454
455
455
456
456
456
470
474
475
477
478
482
482
483
483
483
485
485
488
490
493
494
507
507
509
509
511
511
511
511
511
512
512
514
514
516
516
516
516
527
529
532
535
540
542
542
543
548
548
548
549
550
552
553
553
554
554
555
555
565
567
569
569
569
574
579
579
582
586
586
587
587
587
591
591
591
591
594
599
618
623
623
641
646
646
660
665
683
688
688
707
712
712
727
732
745
747
750
766
771
771
771
773
784
789
807
812
812
831
836
836
851
856
875
880
880
898
903
903
917
922
940
945
945
964
969
969
984
989
1002
1004
1007
1023
1028
1028
1041
1046
1064
1069
1069
1088
1093
1093
1108
1113
1132
1137
1137
1155
1160
1160
1174
1179
1197
1202
1202
1221
1226
1226
1241
1246
1764
1764
1766
5
5
5
6
7
8
8
12
15
15
17
17
17
25
25
25
25
25
25
25
25
25
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
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
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
33
33
34
36
40
40
42
43
45
45
46
46
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
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
53
53
53
53
54
54
54
54
54
59
59
61
62
62
63
63
68
69
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
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
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
75
75
75
75
75
76
77
77
77
77
77
77
77
77
77
77
77
77
77
77
77
78
78
78
78
79
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
81
81
81
81
81
82
82
82
82
82
83
83
86
87
87
87
94
97
97
97
97
98
98
98
98
98
98
99
99
100
100
101
101
101
103
106
106
106
108
110
110
111
111
112
114
115
116
116
116
116
117
117
117
117
118
118
119
119
121
126
126
129
129
130
130
130
133
133
133
133
133
133
134
136
137
139
139
140
140
143
143
145
147
149
149
149
149
149
149
150
150
150
151
151
152
152
152
152
153
153
153
153
154
154
154
154
154
154
162
164
165
167
169
169
169
169
169
169
169
170
170
170
170
170
170
170
170
170
172
172
175
175
182
186
187
189
189
189
189
189
190
190
190
190
191
191
192
193
193
193
194
197
199
201
201
202
204
204
204
204
204
204
204
205
205
205
205
205
205
205
205
207
207
211
214
216
216
219
219
220
220
220
220
220
221
221
221
221
221
222
223
224
224
224
224
225
225
225
225
225
228
229
232
237
237
238
240
240
240
240
240
240
240
241
241
241
241
241
241
241
241
242
243
243
249
252
253
255
257
257
257
257
258
258
260
260
260
261
261
261
262
262
263
263
271
273
275
275
275
275
275
275
275
275
276
276
276
276
276
276
276
276
276
276
278
278
283
284
291
291
291
291
292
292
294
294
295
295
295
295
295
295
296
296
296
296
296
297
299
299
300
300
300
300
304
309
311
311
311
311
311
311
311
312
312
312
312
312
312
312
312
313
314
314
315
318
321
323
326
332
333
333
337
337
338
338
338
341
342
343
343
355
362
362
362
366
366
367
367
367
367
370
371
371
371
371
385
387
388
390
396
397
398
403
403
403
404
404
406
407
408
408
409
409
409
410
417
426
427
428
432
432
437
439
441
441
442
442
446
446
446
446
446
451
454
455
456
456
468
471
473
473
475
476
478
479
483
483
483
484
484
489
491
494
501
508
509
510
510
512
512
513
513
515
515
517
517
517
517
523
528
530
531
531
533
539
541
544
549
549
549
550
551
552
554
554
555
555
556
556
559
567
568
575
580
580
581
583
587
587
588
588
588
592
592
592
592
595
597
597
600
619
624
624
642
647
647
661
664
664
666
684
689
689
708
713
713
728
730
730
733
746
748
751
767
771
772
772
772
785
788
788
790
808
813
813
832
837
837
852
854
854
857
876
881
881
899
904
904
918
921
921
923
941
946
946
965
970
970
985
987
987
990
1003
1005
1008
1024
1029
1029
1042
1045
1045
1047
1065
1070
1070
1089
1094
1094
1109
1111
1111
1114
1133
1138
1138
1156
1161
1161
1175
1178
1178
1180
1198
1203
1203
1222
1227
1227
1242
1244
1244
1247
1765
1767
4
4
5
5
5
6
6
7
9
9
13
17
17
17
18
18
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
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
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
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
34
35
37
41
41
42
43
46
46
47
47
47
47
47
47
47
48
48
48
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
53
53
53
53
54
55
55
55
55
60
60
63
63
63
63
63
63
68
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
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
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
75
75
75
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
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
80
80
80
80
80
81
81
81
81
82
82
83
83
83
87
88
88
95
96
96
97
97
98
98
99
99
100
100
102
102
107
107
107
108
110
110
112
112
113
115
115
115
116
116
116
116
117
117
117
117
118
118
118
122
127
127
130
130
131
131
134
134
134
134
134
134
134
134
135
137
138
138
140
146
148
148
148
148
149
149
149
150
150
150
151
151
151
151
152
152
152
152
152
153
153
153
153
154
154
154
155
155
155
155
158
163
165
165
167
169
170
170
171
171
171
171
171
171
171
171
171
171
171
176
176
181
183
187
187
188
188
189
190
190
190
190
191
191
191
191
192
192
193
195
198
199
200
202
202
202
204
205
206
206
206
206
206
206
206
206
206
206
210
210
212
215
217
219
220
220
220
220
220
220
221
221
222
222
222
222
222
222
223
223
224
225
225
225
226
226
226
226
229
229
230
230
233
238
238
238
240
241
242
242
242
242
242
242
242
242
242
242
242
250
250
253
253
256
257
258
258
258
258
258
259
259
259
260
261
261
261
262
262
263
263
264
264
272
273
275
276
276
276
276
277
277
277
277
277
277
277
277
277
277
277
277
284
284
285
285
290
291
291
291
292
293
293
293
294
295
295
296
296
296
296
296
297
297
297
297
297
300
300
301
301
301
301
305
305
309
311
312
313
313
313
313
313
313
313
313
313
313
314
314
316
316
319
322
324
333
334
334
334
334
338
338
339
339
339
342
342
343
343
344
344
355
363
363
363
363
366
367
367
368
368
368
368
370
371
372
372
372
372
386
388
389
389
389
391
397
397
398
398
399
404
404
404
405
407
408
409
409
410
410
410
410
418
418
427
427
428
429
429
433
433
438
442
442
443
443
447
447
447
447
447
447
447
452
455
455
456
456
457
457
468
472
474
476
476
477
479
479
480
483
484
484
484
485
485
490
492
492
495
495
502
502
502
509
510
510
511
511
511
513
513
514
514
516
516
518
518
518
518
523
529
531
531
532
534
540
540
542
542
545
550
550
550
551
552
555
555
556
556
557
557
560
560
560
568
568
569
569
576
581
581
581
584
588
588
589
589
589
589
593
593
593
593
596
598
601
620
625
625
643
648
648
662
665
667
685
690
690
709
714
714
729
731
734
747
749
749
752
752
768
773
773
773
786
789
791
809
814
814
833
838
838
853
855
858
877
882
882
900
905
905
919
922
924
942
947
947
966
971
971
986
988
991
1004
1006
1006
1009
1009
1025
1030
1030
1043
1046
1048
1066
1071
1071
1090
1095
1095
1110
1112
1115
1134
1139
1139
1157
1162
1162
1176
1179
1181
1199
1204
1204
1223
1228
1228
1243
1245
1248
1766
1768
5
5
5
7
7
7
10
10
14
15
15
17
17
17
17
19
19
23
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
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
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
38
42
42
45
45
46
46
46
47
47
48
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
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
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
55
56
56
56
61
61
64
64
64
64
64
64
64
64
67
67
67
67
67
67
67
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
71
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
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
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
77
77
78
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
79
80
80
80
81
81
81
81
82
82
82
82
83
83
83
84
84
96
96
97
98
98
98
99
99
100
100
100
101
101
101
101
103
103
108
108
108
108
109
111
113
113
114
116
116
116
117
117
117
118
118
118
119
119
119
123
128
128
132
132
132
134
134
134
134
135
135
135
135
136
138
141
145
147
148
148
148
149
149
149
150
150
150
151
151
151
151
152
152
152
153
153
153
153
154
154
154
154
156
156
162
164
167
167
170
171
171
171
171
171
172
172
172
172
172
177
181
181
182
188
188
188
189
189
189
191
192
192
192
193
193
193
194
196
199
200
200
201
202
202
205
206
207
207
207
207
210
210
211
211
216
218
219
219
219
220
221
221
221
221
221
221
222
222
223
223
223
223
223
224
224
224
224
224
224
227
227
231
231
234
238
238
239
239
241
242
243
243
243
243
251
251
251
251
253
254
257
258
259
259
259
259
259
259
260
260
260
260
264
264
265
265
267
273
273
273
276
277
277
277
278
278
278
278
278
278
286
286
290
290
290
291
292
292
292
293
294
294
295
295
296
297
297
298
298
301
301
302
302
302
302
306
306
306
306
309
309
312
313
314
314
314
314
314
316
317
317
323
325
334
335
335
335
339
339
340
340
340
344
344
345
345
364
364
364
364
364
364
366
368
368
369
369
369
369
371
372
373
373
373
373
380
389
390
390
392
399
399
400
405
405
405
406
408
409
410
410
411
411
411
419
419
419
419
427
429
429
430
430
434
434
439
443
443
444
444
448
448
448
448
448
448
453
457
457
458
458
473
475
477
477
477
477
478
479
480
481
484
485
485
485
486
486
491
493
496
496
503
503
510
512
512
512
514
514
515
515
517
517
519
519
519
519
530
532
532
532
532
533
535
540
542
543
543
546
551
551
551
552
553
556
556
557
557
558
558
561
561
570
570
577
582
582
585
589
589
590
590
590
590
590
590
594
594
594
594
597
599
602
621
626
626
644
649
649
663
666
668
686
691
691
710
715
715
730
732
735
748
753
753
769
774
774
774
787
790
792
810
815
815
834
839
839
854
856
859
878
883
883
901
906
906
920
923
925
943
948
948
967
972
972
987
989
992
1005
1010
1010
1026
1031
1031
1044
1047
1049
1067
1072
1072
1091
1096
1096
1111
1113
1116
1135
1140
1140
1158
1163
1163
1177
1180
1182
1200
1205
1205
1224
1229
1229
1244
1246
1249
1767
1769
1
5
5
5
5
6
7
8
8
8
8
10
10
11
11
15
17
17
17
17
18
18
20
20
23
23
23
23
26
26
26
26
26
27
27
27
28
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
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
34
39
41
41
43
43
45
45
46
46
46
46
46
46
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
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
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
57
57
57
62
62
62
64
64
64
64
65
65
65
65
68
68
68
68
68
68
68
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
71
71
72
72
72
72
72
72
72
72
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
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
78
78
78
78
78
79
79
79
79
80
80
80
80
80
80
80
81
81
81
81
82
82
82
82
83
84
85
85
90
97
97
97
97
97
98
98
98
99
99
99
100
101
101
102
102
102
102
104
109
109
109
109
110
112
114
115
116
116
117
117
117
117
117
118
118
118
119
119
120
120
124
125
129
132
132
132
134
134
135
135
136
136
136
136
139
140
142
145
148
150
150
150
150
151
151
151
153
154
154
155
155
155
155
157
157
163
163
165
165
168
168
169
169
169
171
172
172
172
172
173
176
176
178
180
181
182
183
192
193
194
194
194
195
197
200
200
202
202
203
203
204
204
204
206
207
207
212
212
217
219
221
221
221
222
222
222
222
222
223
223
223
223
223
224
224
225
225
228
228
229
230
230
230
232
232
235
239
239
240
240
240
240
240
242
242
242
243
243
249
251
251
252
252
255
257
258
259
260
260
260
260
261
261
265
265
266
266
268
268
268
268
274
274
274
275
275
275
276
277
277
277
277
277
278
278
278
279
279
284
285
285
285
287
287
292
293
293
293
294
297
297
297
298
298
299
299
302
302
303
303
303
303
304
306
306
307
307
310
310
311
311
311
313
314
314
314
316
317
318
318
324
325
326
334
335
335
335
335
335
336
336
340
340
341
341
341
342
343
343
343
345
345
346
346
355
355
362
364
364
365
365
365
365
369
369
370
370
370
370
370
372
373
374
374
374
374
381
381
381
381
386
389
390
390
390
390
390
390
391
393
397
398
398
398
400
400
401
406
406
406
407
409
410
410
410
411
411
412
412
412
417
419
419
420
420
427
429
430
430
431
431
435
435
438
440
444
444
445
445
447
448
448
448
448
449
449
449
449
449
454
455
456
456
456
458
458
459
459
468
468
474
475
476
477
477
478
478
479
481
482
483
485
486
486
486
487
487
492
494
494
494
494
497
497
502
503
503
503
503
504
510
511
511
511
511
513
513
513
515
515
516
516
518
518
520
520
520
520
523
523
530
531
532
532
533
533
534
536
540
542
543
544
544
547
551
552
552
552
553
554
557
557
558
558
559
559
560
561
561
561
561
562
568
569
569
569
571
571
578
581
581
583
583
586
588
590
590
590
590
591
591
591
591
595
595
595
595
598
600
603
622
627
627
645
650
650
664
667
669
687
692
692
711
716
716
731
733
736
749
754
754
770
771
775
775
788
791
793
811
816
816
835
840
840
855
857
860
879
884
884
902
907
907
921
924
926
944
949
949
968
973
973
988
990
993
1006
1011
1011
1027
1032
1032
1045
1048
1050
1068
1073
1073
1092
1097
1097
1112
1114
1117
1136
1141
1141
1159
1164
1164
1178
1181
1183
1201
1206
1206
1225
1230
1230
1245
1247
1250
1763
1768
1770
5
5
5
6
7
7
7
7
11
11
12
12
15
16
19
19
20
20
21
21
23
23
23
23
24
24
26
26
26
26
26
26
26
26
26
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
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
33
33
38
39
40
42
42
43
44
44
46
46
46
46
47
47
47
47
47
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
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
52
52
53
53
53
53
58
62
62
62
63
63
64
64
65
65
66
66
66
66
69
69
69
69
69
69
69
69
70
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
73
73
73
74
74
74
74
74
74
74
74
74
74
75
75
75
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
78
78
78
79
79
79
80
80
80
81
81
81
82
82
83
83
83
83
83
84
84
84
85
86
86
88
91
95
97
97
97
97
98
99
100
100
101
101
101
101
103
103
103
103
105
108
110
110
110
110
111
113
115
116
116
116
116
117
117
118
118
118
119
119
119
119
120
120
120
120
121
121
125
125
126
127
127
128
128
130
130
133
133
133
133
134
134
134
134
134
134
135
135
136
136
140
140
143
149
149
151
151
151
151
152
152
154
154
154
154
155
155
155
155
155
156
156
156
158
158
163
165
166
166
170
170
170
170
171
171
172
172
172
174
177
179
181
183
184
190
190
190
191
191
191
192
193
193
193
193
194
195
195
195
196
198
202
203
203
205
205
205
205
206
206
207
207
208
213
213
218
220
220
222
223
223
223
223
224
224
224
224
225
225
225
225
225
226
226
226
226
226
229
229
229
229
229
230
231
231
231
236
240
241
241
241
241
241
241
242
242
243
243
243
243
252
253
253
253
253
256
257
258
259
260
260
261
261
261
261
261
261
262
262
262
262
262
266
266
267
267
269
269
275
276
276
276
276
277
277
278
278
278
278
279
280
280
284
284
284
285
286
286
286
291
293
294
294
295
295
296
296
296
297
297
297
298
298
298
299
299
300
300
303
303
304
304
304
304
307
308
308
312
312
312
312
313
313
314
314
314
314
317
318
325
326
326
326
326
327
336
336
336
337
337
341
341
342
342
342
342
342
342
343
344
344
344
347
347
353
356
356
365
366
366
366
366
366
370
370
371
371
371
371
371
373
373
375
375
375
375
382
382
391
391
391
391
392
394
397
397
397
398
399
399
399
402
407
407
407
408
408
410
411
411
411
412
412
413
413
413
420
421
421
427
427
430
431
431
436
436
439
439
439
439
441
445
445
446
446
449
449
450
450
450
450
450
455
455
455
455
456
457
457
457
460
460
466
469
469
475
477
478
479
479
479
480
482
483
484
486
486
487
487
488
488
493
495
495
498
498
504
504
505
510
510
510
511
512
512
512
512
514
516
516
517
517
519
519
521
521
521
521
521
524
524
532
533
534
534
535
537
540
540
543
544
548
552
552
552
552
553
553
553
554
555
558
558
559
559
560
560
562
562
563
568
568
568
569
570
570
570
579
579
582
582
584
584
587
591
591
591
592
592
592
592
596
596
596
596
599
601
604
623
628
628
646
651
651
665
668
670
688
693
693
712
717
717
732
734
737
750
755
755
770
771
771
772
776
776
789
792
794
812
817
817
836
841
841
856
858
861
880
885
885
903
908
908
922
925
927
945
950
950
969
974
974
989
991
994
1007
1012
1012
1028
1033
1033
1046
1049
1051
1069
1074
1074
1093
1098
1098
1113
1115
1118
1137
1142
1142
1160
1165
1165
1179
1182
1184
1202
1207
1207
1226
1231
1231
1246
1248
1251
1764
1766
1769
1771
5
5
5
5
6
7
8
8
8
8
8
12
12
13
13
17
19
20
20
20
20
20
22
22
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
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
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
41
43
43
44
44
45
45
47
47
47
47
47
48
48
48
48
48
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
52
52
53
53
55
59
63
63
63
63
64
64
64
64
64
64
64
64
65
65
66
66
67
67
68
68
68
68
68
68
68
68
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
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
73
74
74
74
74
74
74
74
75
75
75
75
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
79
79
80
80
80
81
81
82
83
84
84
84
84
84
85
85
85
86
87
87
87
88
95
95
96
96
97
99
100
100
101
101
102
102
102
102
104
104
104
104
106
109
111
111
111
111
111
114
116
117
117
119
119
120
120
120
120
121
121
121
121
122
122
125
126
128
129
129
131
131
132
132
133
133
134
134
135
135
136
136
141
144
150
150
150
151
151
152
152
152
153
154
155
155
155
155
155
155
156
156
156
156
157
157
157
159
159
163
165
166
167
167
171
171
172
172
172
172
172
172
172
172
172
175
178
180
181
182
184
188
189
190
191
191
191
192
192
192
192
192
193
194
194
194
194
195
196
197
199
202
204
204
206
206
207
207
207
207
207
207
207
207
209
214
219
221
221
221
221
223
223
223
223
224
224
224
225
225
225
225
225
226
226
226
226
227
227
227
227
230
230
231
232
232
232
237
241
241
242
242
242
242
243
243
243
243
243
243
243
243
251
251
253
257
257
258
259
259
260
260
261
262
262
262
262
262
262
263
263
263
263
267
267
268
268
269
276
277
277
277
277
278
278
278
278
278
278
278
278
279
279
281
281
286
287
287
287
292
292
294
295
296
296
296
296
297
297
297
298
298
299
300
300
301
301
304
304
305
305
305
305
306
306
308
313
313
314
314
314
314
314
314
314
314
315
315
316
316
316
318
319
326
327
327
328
335
335
337
337
337
338
342
342
343
343
343
344
345
345
345
348
348
354
354
364
364
366
367
367
370
371
371
372
372
372
372
372
376
376
376
376
382
390
390
392
392
392
392
395
399
400
400
400
403
408
408
408
409
409
409
411
412
413
413
414
414
414
419
419
421
428
428
429
429
429
431
432
437
437
440
440
442
446
446
447
447
448
448
450
450
451
451
451
451
456
457
458
458
458
461
461
467
467
476
477
477
478
479
481
483
483
484
485
488
488
489
489
494
495
499
499
503
503
505
505
512
513
513
513
513
515
517
517
518
518
520
520
522
522
522
522
522
522
532
532
533
534
536
538
541
541
542
542
542
544
549
553
553
554
554
554
555
556
559
559
560
560
561
561
561
561
563
563
570
571
571
571
580
580
580
585
585
588
590
590
592
592
592
593
593
597
597
597
597
600
602
605
624
629
629
647
652
652
666
669
671
689
694
694
713
718
718
733
735
738
751
756
756
771
771
772
773
777
777
790
793
795
813
818
818
837
842
842
857
859
862
881
886
886
904
909
909
923
926
928
946
951
951
970
975
975
990
992
995
1008
1013
1013
1029
1034
1034
1047
1050
1052
1070
1075
1075
1094
1099
1099
1114
1116
1119
1138
1143
1143
1161
1166
1166
1180
1183
1185
1203
1208
1208
1227
1232
1232
1247
1249
1252
1767
1770
1772
6
6
8
9
9
9
9
9
12
12
14
14
15
15
18
20
21
21
23
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
29
29
29
29
29
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
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
33
33
33
33
33
33
33
42
43
44
45
45
45
46
46
46
46
46
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
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
51
51
52
52
52
52
52
52
52
52
52
52
56
57
57
60
63
63
64
64
65
65
65
65
65
66
66
67
67
67
67
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
70
70
71
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
73
73
74
74
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
76
76
76
76
77
77
77
77
77
77
78
78
78
78
79
79
80
80
81
81
82
82
83
85
85
85
85
86
86
87
88
88
96
96
97
97
97
97
97
98
101
103
103
103
103
105
107
108
110
112
112
113
114
115
116
117
117
117
117
117
118
120
121
121
121
122
122
122
123
126
127
128
129
130
130
130
132
132
132
133
134
134
134
135
135
136
136
136
137
137
140
140
140
142
145
151
151
153
153
153
153
154
154
155
155
156
156
156
157
157
158
158
158
160
160
163
163
166
167
171
173
173
173
173
176
179
181
181
182
184
184
185
188
189
189
189
190
190
194
195
195
195
195
196
197
198
200
205
205
206
208
208
208
208
209
209
213
213
213
215
220
222
224
224
224
224
225
225
225
225
226
226
227
228
228
230
231
231
232
233
233
238
242
243
244
244
244
244
252
258
258
258
259
260
260
260
260
261
261
261
263
263
263
264
264
268
268
269
269
269
277
277
278
279
279
279
279
282
282
285
287
288
288
295
295
296
296
297
300
301
301
302
302
305
305
306
306
306
306
307
313
315
315
315
315
317
317
317
317
320
324
327
327
329
336
338
339
343
343
343
344
344
344
345
346
346
349
349
365
368
368
371
371
372
372
373
373
373
373
373
373
377
377
377
377
382
391
393
393
396
398
400
401
401
404
409
409
409
410
412
413
414
414
415
415
415
420
430
430
430
430
433
438
438
440
443
447
447
448
448
449
452
452
452
452
456
457
458
459
459
462
462
477
478
479
482
484
484
484
485
486
486
489
489
490
490
495
495
500
500
504
511
513
514
514
514
516
518
518
519
519
521
521
523
523
523
523
533
534
537
539
543
543
543
543
550
553
555
555
555
556
557
560
560
561
561
562
562
562
569
571
572
572
581
586
586
589
591
593
593
594
594
598
598
598
598
601
603
606
625
630
630
648
653
653
667
670
672
690
695
695
714
719
719
734
736
739
752
757
757
772
772
773
774
774
778
778
791
794
796
814
819
819
838
843
843
858
860
863
882
887
887
905
910
910
924
927
929
947
952
952
971
976
976
991
993
996
1009
1014
1014
1030
1035
1035
1048
1051
1053
1071
1076
1076
1095
1100
1100
1115
1117
1120
1139
1144
1144
1162
1167
1167
1181
1184
1186
1204
1209
1209
1228
1233
1233
1248
1250
1253
1768
1771
1773
5
9
9
10
10
10
13
13
13
13
15
15
15
19
20
20
21
22
22
24
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
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
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
32
32
32
32
32
32
32
32
32
32
32
43
44
44
45
45
45
46
46
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
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
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
57
57
61
63
64
64
64
65
65
66
66
66
66
66
67
67
67
67
67
67
68
68
68
68
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
71
71
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
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
76
76
76
76
76
77
77
77
77
77
77
78
78
78
78
78
79
79
80
80
81
81
81
81
81
82
82
83
83
84
86
86
88
88
89
89
91
96
96
96
96
97
97
98
98
99
100
100
101
101
101
101
102
104
104
106
108
109
109
111
111
113
113
114
115
116
116
117
118
118
118
118
119
119
121
122
123
124
128
128
129
130
133
133
133
133
133
133
134
134
134
135
135
135
138
138
138
141
141
141
143
143
146
152
152
152
154
154
155
156
156
157
157
157
158
158
159
159
161
161
164
164
165
165
165
167
170
171
173
173
177
180
182
185
185
186
189
190
193
193
194
195
196
196
196
197
198
199
201
205
206
206
206
208
208
213
214
214
216
221
221
223
223
223
223
225
225
226
226
228
229
229
231
231
232
232
239
241
242
243
244
244
244
251
251
253
258
259
260
260
261
261
262
264
264
264
265
265
269
269
270
270
276
277
277
278
279
279
279
283
283
286
286
294
294
294
298
298
301
302
302
303
303
306
306
306
306
307
307
307
307
308
312
313
315
315
318
318
325
327
328
330
335
337
339
340
344
344
344
344
345
345
345
350
350
356
364
364
366
369
369
371
373
373
373
374
374
374
374
374
374
378
378
378
378
390
392
394
394
397
399
399
405
410
410
410
411
411
413
414
415
415
416
416
416
419
419
421
431
431
434
439
439
440
444
448
448
448
449
449
450
453
453
453
453
457
457
458
463
463
469
477
477
478
479
480
483
484
485
486
486
487
487
490
490
491
491
496
501
501
503
505
512
512
515
517
519
519
520
520
522
522
524
524
524
524
524
532
532
534
535
538
540
544
544
551
553
556
556
556
557
558
561
561
561
562
562
563
563
563
570
570
582
582
587
587
590
590
590
592
594
594
595
595
599
599
599
599
602
604
607
626
631
631
649
654
654
668
671
673
691
696
696
715
720
720
735
737
740
753
758
758
771
774
774
774
775
775
779
779
792
795
797
815
820
820
839
844
844
859
861
864
883
888
888
906
911
911
925
928
930
948
953
953
972
977
977
992
994
997
1010
1015
1015
1031
1036
1036
1049
1052
1054
1072
1077
1077
1096
1101
1101
1116
1118
1121
1140
1145
1145
1163
1168
1168
1182
1185
1187
1205
1210
1210
1229
1234
1234
1249
1251
1254
1769
1772
1774
5
5
5
9
9
10
11
14
14
16
16
19
19
20
21
22
22
22
22
23
23
23
23
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
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
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
31
31
31
31
31
31
31
32
32
32
32
32
45
45
45
45
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
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
53
53
54
58
58
62
63
63
63
64
64
64
65
65
65
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
67
67
67
67
67
67
67
67
68
68
68
68
68
68
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
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
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
76
76
76
76
76
77
77
77
77
77
77
77
77
77
78
78
78
79
79
80
80
81
81
81
82
82
82
82
83
83
83
84
84
84
85
87
87
89
89
90
90
97
97
97
97
98
99
99
100
101
101
101
101
102
102
102
102
103
105
105
107
109
109
111
112
112
114
114
116
117
117
117
117
117
118
119
119
119
119
119
120
120
122
122
123
123
124
124
125
125
129
129
129
130
130
131
131
133
133
133
133
134
134
135
136
136
137
137
137
137
139
139
139
139
142
144
144
147
150
152
153
153
155
155
155
155
155
155
156
156
156
157
157
158
159
159
159
159
160
160
162
162
162
162
166
166
166
166
171
171
171
171
173
173
173
173
173
173
178
181
183
186
186
191
192
194
194
194
195
197
197
198
198
199
199
200
200
202
206
206
206
206
207
207
207
207
208
208
209
214
215
215
221
221
222
222
223
223
224
224
224
226
226
226
226
226
226
227
227
227
227
227
229
230
230
230
230
233
233
240
242
242
242
242
242
242
243
244
244
244
244
244
244
245
251
251
252
252
258
260
260
261
261
262
262
262
263
263
265
265
265
266
266
270
270
271
271
277
277
277
277
277
277
278
278
278
279
279
279
284
284
292
294
295
295
297
297
297
298
298
298
298
299
302
303
303
304
304
306
306
307
307
307
307
308
308
308
308
313
313
313
313
315
315
315
315
315
315
318
326
329
331
335
335
336
340
341
345
345
346
346
346
351
351
356
364
364
365
365
370
370
371
373
374
374
374
375
375
375
375
375
379
379
379
379
390
390
391
395
395
398
406
411
411
411
411
412
415
416
416
417
417
417
419
419
420
420
431
435
440
440
445
448
448
449
449
449
450
450
454
454
454
454
459
464
464
469
477
477
478
478
481
484
484
486
486
487
487
488
488
491
491
492
492
497
502
502
503
503
504
516
518
520
520
521
521
523
523
524
525
525
525
525
532
532
533
533
539
541
544
552
557
557
557
558
559
561
561
562
562
562
563
563
564
564
582
583
588
588
590
590
591
591
591
595
595
596
596
600
600
600
600
605
608
627
632
632
650
655
655
672
674
692
697
697
716
721
721
738
741
754
759
759
775
775
776
776
780
780
796
798
816
821
821
840
845
845
862
865
884
889
889
907
912
912
929
931
949
954
954
973
978
978
995
998
1011
1016
1016
1032
1037
1037
1053
1055
1073
1078
1078
1097
1102
1102
1119
1122
1141
1146
1146
1164
1169
1169
1186
1188
1206
1211
1211
1230
1235
1235
1252
1255
1770
1773
1775
5
5
6
9
10
10
12
15
15
15
15
15
17
17
19
20
21
22
22
22
22
22
23
23
23
24
24
24
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
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
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
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
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
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
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
52
52
53
53
54
54
54
54
55
55
56
58
58
58
58
63
63
64
65
65
65
65
65
65
65
65
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
68
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
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
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
73
73
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
75
76
77
77
77
77
78
78
78
78
79
79
79
80
80
80
81
81
81
82
83
83
83
83
83
83
83
84
84
84
84
84
85
85
85
86
88
88
91
91
97
97
97
97
99
101
101
101
101
102
102
102
102
103
103
103
103
104
106
106
109
110
111
111
112
113
113
115
115
116
117
117
118
118
118
119
119
119
120
120
120
120
120
120
121
121
125
125
126
126
130
131
131
131
132
133
135
135
136
137
137
137
137
138
138
138
138
140
140
143
145
145
145
148
150
151
151
151
153
154
154
155
155
156
156
156
156
156
156
157
157
158
158
159
161
161
163
163
163
163
167
167
172
172
174
174
174
174
179
182
184
184
191
191
191
192
192
192
195
196
200
200
200
201
201
203
207
207
208
208
208
208
208
208
208
208
208
208
215
222
222
222
223
223
223
224
224
225
225
226
227
227
227
227
228
228
228
228
230
231
231
231
231
233
234
234
241
243
243
243
245
245
245
245
246
253
253
258
258
261
261
262
262
262
262
262
263
263
263
264
264
266
266
266
267
267
267
271
271
272
272
276
277
278
278
278
279
279
279
279
279
279
279
279
279
280
285
285
288
293
293
295
296
297
298
298
298
299
299
300
303
304
304
305
305
308
308
308
309
309
314
314
316
316
316
316
318
327
330
332
334
335
336
337
341
342
346
346
347
347
352
352
366
366
371
371
371
371
374
375
375
375
376
376
376
380
380
380
380
389
390
391
392
396
396
399
401
407
412
412
412
413
416
417
417
418
418
418
421
421
431
436
441
441
446
447
448
449
450
450
450
451
451
455
455
459
460
465
465
479
479
482
484
484
485
487
487
488
488
492
493
498
502
503
503
503
504
505
514
517
519
521
521
522
522
524
524
526
526
526
526
534
534
540
542
544
553
558
558
558
559
560
560
561
562
563
563
563
564
564
565
565
572
584
589
589
592
592
592
596
596
597
597
601
601
606
609
628
633
633
651
656
656
673
675
693
698
698
717
722
722
739
742
755
760
760
776
776
781
781
797
799
817
822
822
841
846
846
863
866
885
890
890
908
913
913
930
932
950
955
955
974
979
979
996
999
1012
1017
1017
1033
1038
1038
1054
1056
1074
1079
1079
1098
1103
1103
1120
1123
1142
1147
1147
1165
1170
1170
1187
1189
1207
1212
1212
1231
1236
1236
1253
1256
1771
1774
1776
1
1
7
9
9
10
11
11
11
11
11
11
13
16
16
17
17
18
18
19
19
19
20
20
22
23
24
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
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
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
41
44
45
45
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
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
52
52
52
55
55
56
56
56
63
64
64
65
66
66
66
66
66
66
66
66
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
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
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
72
72
72
72
72
72
72
73
73
73
73
74
74
77
78
78
79
79
79
80
80
80
81
81
82
83
84
84
84
84
84
85
85
85
85
85
85
85
86
86
86
86
87
89
89
92
92
98
100
100
102
102
102
102
103
103
104
104
104
104
104
104
104
111
112
112
113
116
116
116
117
119
119
119
120
120
120
120
120
121
121
121
121
121
121
121
121
122
122
122
126
126
127
127
129
130
130
130
131
132
132
132
133
133
133
133
134
136
137
137
137
138
138
139
139
139
139
141
144
146
146
146
146
146
149
151
154
154
155
155
155
156
157
157
157
159
159
160
162
162
164
164
164
164
167
171
172
172
172
174
174
174
174
174
174
174
174
175
175
180
181
183
185
189
190
192
192
192
192
193
193
193
193
196
196
197
201
201
201
202
202
204
207
209
209
209
209
209
209
213
216
224
224
224
225
225
225
226
226
228
229
229
231
232
232
232
232
233
235
235
242
243
243
243
244
245
245
245
245
245
245
245
245
246
246
247
249
254
254
259
259
260
260
260
260
261
262
262
263
263
263
263
263
264
264
264
264
267
267
267
268
268
268
272
272
273
273
277
278
279
280
280
280
280
280
281
286
286
288
296
296
297
297
301
304
304
305
305
306
306
307
307
308
308
308
308
309
309
309
310
310
314
314
314
316
316
316
316
316
316
316
316
317
317
328
331
331
333
333
335
337
338
342
343
346
347
348
348
353
353
362
367
367
372
372
372
372
373
373
373
374
374
375
376
376
377
377
377
381
381
381
381
390
392
393
397
397
400
401
408
413
413
413
414
417
417
418
418
419
419
419
422
422
437
442
442
447
448
450
451
451
451
452
452
454
454
454
454
456
456
459
461
466
466
475
480
480
483
485
485
486
486
486
486
488
488
489
493
494
499
503
504
504
505
506
514
518
520
522
522
523
523
525
527
527
527
527
530
535
535
541
543
554
559
559
559
560
561
561
563
564
564
564
565
565
566
566
572
585
588
590
590
593
593
593
597
597
598
598
600
600
600
600
602
602
607
610
629
634
634
652
657
657
674
676
694
699
699
718
723
723
740
743
756
761
761
777
782
798
800
818
823
823
842
847
847
864
867
886
891
891
909
914
914
931
933
951
956
956
975
980
980
997
1000
1013
1018
1018
1034
1039
1055
1057
1075
1080
1080
1099
1104
1104
1121
1124
1143
1148
1148
1166
1171
1171
1188
1190
1208
1213
1213
1232
1237
1237
1254
1257
1772
1775
1777
1
1
1
5
9
9
9
11
11
12
14
18
18
19
19
19
23
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
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
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
42
44
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
53
53
53
56
56
57
57
57
63
64
65
65
67
67
67
67
67
67
67
67
68
68
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
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
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
73
73
73
73
73
73
73
74
74
74
74
78
78
79
80
81
81
81
81
81
83
85
85
85
85
85
86
86
86
86
86
86
87
87
87
87
88
89
90
90
93
93
96
96
96
97
97
99
100
101
101
102
102
104
104
104
104
104
104
104
105
105
105
105
105
112
113
117
117
117
117
117
118
120
120
121
121
121
122
122
122
122
122
122
122
122
123
123
123
127
127
128
128
129
129
129
130
131
131
131
132
132
132
133
133
134
135
136
136
137
137
137
138
138
138
139
139
141
144
145
146
146
147
147
147
147
150
150
153
153
153
155
156
157
158
158
158
158
160
160
161
161
163
163
165
165
165
165
167
172
172
172
172
172
172
173
173
175
175
175
175
176
176
181
182
184
184
184
186
190
191
192
192
193
193
193
193
194
194
196
197
198
202
202
202
202
203
203
205
206
207
209
209
209
210
210
213
214
224
224
224
224
225
225
225
225
229
229
230
230
232
233
233
233
233
236
236
243
243
243
243
244
244
245
246
246
246
246
247
247
248
250
255
261
261
261
261
261
262
263
263
263
264
264
264
264
264
265
265
268
268
268
268
269
269
269
273
273
274
274
277
277
278
278
280
280
280
282
287
287
295
295
295
302
305
305
306
306
307
307
308
309
309
310
310
311
311
314
314
314
315
315
317
317
317
317
318
318
329
334
334
335
336
338
343
344
345
345
346
346
348
349
349
354
354
363
368
373
373
374
374
374
374
375
377
377
378
378
378
381
382
382
382
382
390
391
393
398
401
409
413
414
414
414
415
418
418
419
419
420
420
420
423
438
443
443
448
448
449
451
452
452
453
453
455
455
457
457
462
467
476
478
481
482
484
487
487
487
487
487
489
490
491
491
492
492
494
494
495
500
503
504
505
505
506
519
521
523
523
524
524
524
524
526
528
528
528
528
531
535
536
542
544
555
560
560
560
561
561
562
562
564
565
565
566
566
567
567
586
589
591
594
594
598
598
599
599
601
601
602
603
603
606
608
611
630
635
635
653
658
668
675
677
695
700
700
719
724
735
739
741
744
757
762
762
771
771
774
778
781
781
783
792
799
801
819
824
824
843
848
859
863
865
868
887
892
892
910
915
925
932
934
952
957
957
976
981
992
996
998
1001
1014
1019
1019
1035
1038
1038
1040
1049
1056
1058
1076
1081
1081
1100
1105
1116
1120
1122
1125
1144
1149
1149
1167
1172
1182
1189
1191
1209
1214
1214
1233
1238
1249
1253
1255
1258
1773
1776
1777
1778
1
1
5
5
5
9
10
10
13
13
15
15
15
19
19
20
20
20
24
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
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
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
43
43
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
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
50
50
50
50
50
50
50
50
51
52
52
52
52
52
52
53
53
53
57
57
57
57
58
58
65
65
65
65
66
66
66
66
66
67
67
67
67
68
68
68
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
70
70
70
70
70
70
70
70
70
70
70
70
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
72
72
72
72
72
72
73
73
73
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
78
79
79
81
81
81
81
82
82
82
84
84
85
85
85
85
86
86
86
86
86
87
87
87
88
88
88
88
89
89
91
91
94
94
96
96
97
97
98
98
100
100
101
102
102
102
102
104
104
105
105
105
106
106
106
106
106
113
116
117
118
118
118
118
119
120
121
121
121
121
122
122
122
123
123
123
123
123
124
124
124
128
128
129
129
131
132
132
132
135
136
136
137
137
137
137
137
137
138
139
139
139
140
140
146
147
148
148
151
151
151
151
153
154
154
156
156
157
157
158
158
159
161
161
162
162
164
164
166
166
166
166
173
173
173
173
174
174
174
174
174
174
176
176
176
176
181
185
185
185
187
192
193
193
194
194
194
195
195
198
199
203
203
203
203
203
203
204
204
206
207
207
207
207
209
209
209
209
209
209
209
211
211
214
215
222
224
224
225
225
225
225
225
226
226
227
228
230
230
231
231
233
233
233
234
234
234
234
237
237
241
244
244
244
245
245
245
245
245
245
246
247
247
247
247
249
250
250
254
254
256
262
262
263
264
264
264
265
265
265
265
266
266
269
269
269
269
269
269
270
270
270
274
274
275
275
277
278
278
278
278
278
280
280
280
280
280
280
280
280
281
283
288
288
288
288
293
295
296
296
296
298
299
303
305
305
306
307
307
308
309
309
309
310
310
311
311
312
312
315
315
316
316
316
316
316
316
317
318
318
318
318
326
330
335
335
335
336
338
338
339
344
345
346
346
346
347
349
350
350
354
355
355
363
363
367
367
369
374
374
375
375
376
378
378
379
379
379
382
382
382
383
383
383
383
390
391
393
393
394
397
399
400
401
401
402
409
410
414
415
415
415
416
416
418
418
419
420
420
421
421
421
422
422
424
430
439
439
444
444
448
449
449
451
451
452
453
453
454
456
456
458
458
459
459
463
467
468
476
476
480
480
482
483
485
488
488
488
490
491
492
493
495
495
495
495
496
501
503
504
506
506
506
506
507
514
514
520
522
522
524
524
525
525
525
527
529
529
529
529
531
531
535
535
536
537
540
543
543
545
552
556
561
561
561
561
562
562
563
564
564
565
566
566
567
567
568
568
572
572
580
587
589
589
592
593
593
595
595
599
599
600
602
602
604
604
607
609
612
631
636
636
654
657
657
659
669
673
676
678
696
701
701
720
725
740
742
745
758
763
763
772
774
775
779
782
784
793
797
800
802
820
825
825
844
849
864
866
869
888
893
893
911
914
914
916
926
930
933
935
953
958
958
977
982
997
999
1002
1015
1020
1020
1036
1039
1041
1050
1054
1057
1059
1077
1082
1082
1101
1106
1121
1123
1126
1145
1150
1150
1168
1171
1171
1173
1183
1187
1190
1192
1210
1215
1215
1234
1239
1254
1256
1259
1774
1776
1778
1779
4
4
5
5
6
6
6
9
10
11
11
14
15
16
16
16
21
21
21
22
22
22
22
22
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
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
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
31
32
32
32
44
44
45
45
45
45
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
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
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
53
53
53
53
53
54
54
54
58
58
58
58
58
58
59
59
63
63
65
65
65
66
66
66
66
67
67
67
67
67
67
67
68
68
68
68
69
70
70
70
70
70
70
70
70
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
73
73
73
73
73
73
73
73
73
73
74
74
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
79
80
81
82
82
82
82
82
83
83
84
84
84
85
85
85
85
85
86
86
86
86
87
87
87
87
87
88
89
89
89
89
90
92
92
92
92
95
95
99
99
101
101
102
102
102
102
102
103
103
103
104
105
105
106
106
106
107
109
109
114
117
119
119
119
119
120
120
120
120
121
121
121
121
122
122
122
122
123
123
123
124
124
124
125
129
129
130
130
130
132
132
133
133
133
133
136
136
137
138
138
138
138
138
138
139
140
140
141
141
146
146
147
148
152
152
152
152
155
156
156
156
157
157
157
157
158
160
162
162
163
163
165
165
167
167
167
167
171
172
173
173
173
173
173
173
173
173
173
173
173
173
174
174
174
174
175
175
175
175
182
184
186
186
186
186
188
192
192
192
193
193
193
193
194
194
195
196
196
199
200
201
203
203
204
204
204
204
205
205
207
208
208
210
210
210
210
212
212
213
215
216
223
223
226
226
227
227
227
227
227
228
228
228
231
231
231
232
232
234
234
234
235
235
238
238
242
242
244
244
244
244
244
244
244
244
245
245
245
245
246
246
246
246
247
250
255
255
257
262
263
263
263
264
264
264
264
265
265
265
266
266
270
270
270
270
270
271
271
271
275
276
279
279
281
281
281
281
281
281
282
284
286
289
289
289
289
294
294
297
298
298
298
299
299
299
304
307
307
307
308
308
309
310
310
310
311
311
312
312
313
313
313
315
315
315
315
315
315
315
315
316
316
316
317
317
317
317
318
318
318
318
327
327
327
331
336
336
339
339
340
344
345
346
347
347
347
348
350
351
351
355
356
356
368
368
370
375
375
375
377
379
379
380
380
380
383
383
384
384
394
394
395
399
400
401
402
402
403
410
411
416
416
416
417
417
420
421
422
422
423
423
425
431
431
431
431
440
440
440
440
445
445
450
452
452
453
453
453
454
454
455
457
457
457
459
459
460
460
464
466
466
468
469
481
481
483
484
486
488
489
491
492
493
494
496
496
496
497
502
507
507
507
507
508
512
515
515
521
523
523
525
525
526
526
526
528
530
530
536
536
538
541
544
544
544
544
544
546
553
553
553
557
562
562
562
563
564
565
565
566
567
568
569
569
570
573
573
581
588
590
590
593
594
594
596
596
599
599
600
600
601
603
603
605
605
608
610
613
632
637
637
655
658
660
674
677
679
697
702
702
721
723
723
726
741
743
746
759
764
764
775
776
780
783
785
798
801
803
821
826
826
845
847
847
850
865
867
870
889
894
894
912
915
917
931
934
936
954
959
959
978
980
980
983
998
1000
1003
1016
1021
1021
1037
1040
1042
1055
1058
1060
1078
1083
1083
1102
1104
1104
1107
1122
1124
1127
1146
1151
1151
1169
1172
1174
1188
1191
1193
1211
1216
1216
1235
1237
1237
1240
1255
1257
1260
1775
1779
1780
5
7
7
7
7
9
11
11
12
12
16
17
17
17
19
22
22
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
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
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
30
30
31
31
32
32
45
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
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
50
50
50
51
51
51
51
52
52
52
52
52
52
52
53
53
53
54
54
54
55
58
58
59
59
60
60
64
64
65
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
68
68
68
68
68
68
68
68
68
68
69
69
69
69
70
70
70
70
70
70
70
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
73
75
75
75
75
75
75
75
75
75
77
77
77
79
80
80
83
83
83
84
84
84
86
86
87
87
87
87
88
88
88
88
88
89
91
91
93
93
93
93
96
96
96
100
100
101
103
103
103
103
103
103
103
104
104
104
104
104
104
104
104
105
106
106
107
107
110
110
111
111
111
115
117
118
120
120
120
120
122
123
123
123
123
124
124
124
125
125
125
126
130
130
131
131
131
131
132
136
137
137
138
138
138
138
138
139
139
139
140
140
140
140
140
141
141
142
142
147
148
153
153
154
155
156
156
157
157
157
157
158
158
158
158
158
158
159
161
163
163
164
164
166
166
166
168
168
168
168
172
174
174
174
174
174
174
174
174
175
175
176
176
176
176
180
184
185
187
189
190
191
193
194
194
194
195
197
197
200
201
204
205
205
205
205
206
206
208
208
208
208
210
210
210
210
210
210
210
210
211
211
213
213
214
216
225
226
227
227
228
228
228
228
228
229
229
229
229
232
232
232
232
233
233
234
234
235
236
236
237
237
239
239
243
243
243
245
245
245
245
245
245
246
246
247
247
247
247
248
251
254
256
256
261
262
262
264
265
265
266
266
267
269
270
270
270
270
271
271
271
271
272
272
272
276
277
279
279
279
281
281
281
281
281
281
281
281
282
282
282
282
285
287
287
290
290
296
297
298
298
299
299
299
299
300
300
300
300
305
308
308
309
309
309
310
311
311
311
312
312
313
314
314
314
316
316
316
316
316
316
317
318
318
318
318
319
319
328
328
332
337
337
340
340
345
345
346
347
348
349
351
352
352
356
356
357
357
367
369
369
375
376
376
378
380
380
381
381
381
382
383
383
383
383
383
383
383
383
384
385
385
395
395
400
400
401
402
404
411
411
412
417
417
417
418
418
421
422
422
423
423
424
424
432
432
441
441
441
446
446
451
453
453
454
455
455
456
458
458
458
458
460
460
465
467
469
469
470
480
482
482
485
487
488
490
492
493
494
495
495
496
496
496
496
497
497
498
503
508
508
508
508
513
513
522
524
524
524
526
526
527
527
527
529
529
529
529
529
531
531
535
537
537
542
545
545
545
547
554
554
558
563
563
563
564
565
566
566
568
569
570
570
571
571
582
582
589
591
593
594
595
595
597
600
601
601
602
604
604
606
606
609
611
614
633
638
638
656
659
661
675
678
680
698
703
703
722
724
727
742
744
747
760
765
765
776
781
784
786
799
802
804
822
827
827
846
848
851
866
868
871
890
895
895
913
916
918
932
935
937
955
960
960
979
981
984
999
1001
1004
1017
1022
1022
1038
1041
1043
1056
1059
1061
1079
1084
1084
1103
1105
1108
1123
1125
1128
1147
1152
1152
1170
1173
1175
1189
1192
1194
1212
1217
1217
1236
1238
1241
1256
1258
1261
1776
1780
1781
4
6
7
8
8
8
8
11
13
13
13
17
18
19
19
19
19
20
21
22
22
22
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
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
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
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
31
32
32
32
41
41
41
41
41
41
41
41
42
42
43
43
43
44
45
45
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
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
50
52
53
53
53
53
54
54
54
55
55
55
56
60
60
61
61
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
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
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
72
72
72
72
72
72
72
72
72
72
73
73
73
73
74
75
75
75
75
82
82
83
83
83
85
85
85
85
86
87
87
88
88
88
89
89
89
89
90
92
92
94
94
94
94
97
97
101
101
103
104
104
105
105
105
105
105
105
105
105
105
105
106
112
112
112
112
116
117
118
120
120
121
121
121
121
122
123
124
124
124
125
125
126
126
126
127
131
131
132
132
132
136
136
136
138
138
139
140
140
140
140
141
141
141
141
141
142
142
146
146
148
149
154
154
154
155
156
156
157
157
158
158
158
158
158
159
159
159
159
160
162
164
164
165
165
167
167
167
167
167
167
169
169
169
169
173
173
173
173
173
174
174
174
174
175
175
175
175
175
175
175
175
177
177
181
185
185
185
186
186
188
190
190
191
192
193
194
195
195
195
195
196
201
202
203
203
205
206
206
207
207
208
208
208
209
209
209
211
211
211
211
212
212
214
214
214
214
216
216
216
217
225
225
226
227
228
228
229
229
229
229
229
230
230
233
233
234
234
236
237
237
238
238
240
240
244
244
244
244
244
244
244
245
245
245
245
246
246
246
246
246
246
247
248
248
249
252
254
261
262
263
264
265
266
266
267
267
268
271
271
272
272
272
272
273
273
273
274
274
275
275
277
278
279
279
279
280
280
280
282
282
282
282
283
283
286
291
291
296
297
298
299
299
299
299
299
299
300
300
300
300
301
301
306
309
309
309
311
312
313
313
314
315
315
315
315
315
316
316
316
316
317
317
317
317
317
317
319
319
319
327
328
328
328
328
329
333
338
338
338
347
348
349
350
352
353
353
357
357
357
357
358
358
367
377
377
379
381
381
382
382
382
384
384
384
384
385
386
386
393
402
403
405
412
412
412
412
413
418
418
418
419
419
420
420
421
421
422
422
423
424
424
432
440
441
441
441
441
442
442
447
447
451
452
455
457
459
459
461
461
466
468
470
470
470
470
471
480
486
488
491
493
494
495
496
497
497
498
498
499
504
506
509
509
523
525
525
525
525
525
527
527
528
528
528
530
530
530
532
532
535
543
545
546
548
553
554
554
554
554
555
559
564
564
564
564
565
566
566
566
567
567
569
570
571
571
583
583
583
583
590
592
593
595
598
601
603
605
605
607
607
610
612
615
634
639
639
657
660
662
676
679
681
699
704
704
723
725
728
743
745
748
761
766
766
771
776
782
785
787
800
803
805
823
828
828
847
849
852
867
869
872
891
896
896
914
917
919
933
936
938
956
961
961
980
982
985
1000
1002
1005
1018
1023
1023
1039
1042
1044
1057
1060
1062
1080
1085
1085
1104
1106
1109
1124
1126
1129
1148
1153
1153
1171
1174
1176
1190
1193
1195
1213
1218
1218
1237
1239
1242
1257
1259
1262
1777
1781
1782
5
7
9
9
11
11
13
14
19
19
20
20
20
20
21
21
22
22
22
22
22
22
22
22
24
24
24
24
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
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
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
29
29
29
29
29
29
29
29
29
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
33
33
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
44
44
44
44
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
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
50
50
50
50
51
53
54
54
54
55
55
56
56
56
57
57
57
61
61
61
62
62
63
63
63
63
63
63
63
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
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
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
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
73
73
74
74
74
75
75
75
75
77
79
79
82
82
82
82
83
83
84
84
84
86
86
86
87
87
88
88
90
90
91
91
92
92
93
95
95
95
95
98
98
100
100
101
101
102
104
105
105
105
106
106
106
106
107
107
113
113
117
121
121
122
122
122
122
122
123
123
127
127
127
128
132
132
132
133
133
133
137
137
137
138
138
138
138
139
139
140
140
142
142
142
142
142
146
146
147
147
150
154
154
154
155
155
156
157
158
158
158
159
159
159
159
160
160
160
160
161
163
165
165
166
166
168
168
168
168
170
170
170
170
172
172
173
174
174
174
174
174
175
175
176
176
177
177
177
177
178
178
186
187
187
189
191
191
192
192
193
193
194
196
197
202
203
204
207
207
208
208
209
209
210
210
210
210
210
210
210
212
212
212
212
215
215
217
217
218
224
225
225
225
228
229
229
230
230
230
230
231
231
234
234
235
235
237
238
238
239
239
241
241
242
243
243
244
244
244
245
245
245
245
245
245
246
246
247
247
248
248
248
248
249
249
250
250
253
254
255
262
263
263
264
264
265
267
268
268
269
270
270
272
272
273
273
274
274
274
275
276
277
278
279
280
280
281
281
281
281
281
281
283
283
283
283
287
289
292
292
296
296
296
297
299
299
299
300
300
300
300
301
301
301
302
302
305
307
309
310
310
310
312
313
314
314
314
314
315
315
316
316
316
316
316
316
317
317
318
318
319
319
319
319
319
320
320
329
329
330
334
335
339
339
347
350
351
353
354
354
355
357
357
358
358
359
359
363
367
368
378
378
380
382
382
383
383
383
383
385
385
385
385
387
387
390
402
403
404
406
410
412
412
413
413
414
418
419
419
420
420
421
422
422
423
423
423
424
425
425
425
432
442
442
443
443
448
448
448
453
456
458
460
460
460
462
462
467
468
469
470
470
471
471
472
476
480
481
487
489
489
492
492
496
496
496
497
498
498
499
500
503
505
510
510
515
523
524
525
525
526
526
526
528
528
529
529
531
531
531
531
533
533
535
536
544
545
547
547
549
549
555
555
556
560
561
565
565
566
567
567
568
570
571
572
572
573
581
583
583
584
584
589
591
593
593
594
596
599
602
604
606
606
608
608
611
613
613
616
616
635
640
640
658
661
663
677
680
680
682
682
700
705
705
724
726
729
744
746
746
749
749
762
767
767
772
774
783
786
788
801
804
804
806
806
824
829
829
848
850
853
868
870
870
873
873
892
897
897
915
918
920
934
937
937
939
939
957
962
962
981
983
986
1001
1003
1003
1006
1006
1019
1024
1024
1040
1043
1045
1058
1061
1061
1063
1063
1081
1086
1086
1105
1107
1110
1125
1127
1127
1130
1130
1149
1154
1154
1172
1175
1177
1191
1194
1194
1196
1196
1214
1219
1219
1238
1240
1243
1258
1260
1260
1263
1263
1778
1782
1783
4
4
5
5
10
10
13
13
13
15
19
19
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
24
24
24
24
25
25
25
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
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
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
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
34
34
44
44
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
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
48
48
48
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
52
57
57
57
57
58
61
61
61
62
62
62
63
63
63
63
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
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
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
70
70
70
70
70
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
74
75
75
75
76
80
80
84
84
85
85
85
87
91
91
92
92
94
96
96
96
96
99
99
101
101
102
102
103
103
103
103
105
105
106
106
107
108
108
113
118
120
120
122
122
123
123
128
128
128
129
133
133
133
134
134
137
137
138
138
139
139
139
139
140
140
140
140
140
140
140
140
141
141
142
143
148
148
151
152
155
155
155
155
156
156
156
156
157
157
157
158
158
158
158
159
159
159
160
160
162
164
166
166
167
167
168
169
169
171
171
171
171
173
173
173
175
175
175
177
177
178
178
178
178
179
179
185
186
186
186
187
188
188
190
191
191
192
192
192
194
195
195
195
196
196
197
197
198
203
203
203
204
205
207
208
208
209
209
209
209
209
209
209
209
209
209
210
210
210
211
211
211
211
211
214
216
216
216
218
218
223
224
225
225
225
226
226
226
226
228
228
228
229
229
229
229
230
230
231
231
233
234
235
236
236
236
238
239
239
240
240
242
242
244
244
245
246
246
246
246
248
248
249
249
249
249
250
250
250
251
254
255
256
261
262
262
263
263
265
266
266
266
267
267
268
269
269
270
271
274
274
275
275
275
276
277
277
278
278
279
280
280
280
280
280
280
280
280
280
280
280
281
281
281
282
282
282
282
288
289
293
293
294
297
297
297
297
299
299
299
300
300
300
300
300
301
301
301
301
302
305
308
310
311
311
311
313
314
315
315
315
315
316
317
317
317
317
319
319
320
320
320
320
321
321
328
328
330
330
335
335
336
338
338
340
340
347
351
352
354
355
355
358
359
359
360
360
363
368
369
374
379
379
381
382
382
383
383
384
384
384
386
386
388
388
390
391
393
393
402
404
405
407
413
414
414
415
418
420
420
421
421
422
423
423
424
425
426
426
426
441
441
443
443
444
448
449
449
449
451
451
454
457
459
460
461
461
463
463
468
470
471
472
472
473
476
481
482
487
488
493
493
497
497
498
500
501
503
504
506
506
506
511
511
515
525
526
527
527
527
528
528
529
529
530
530
531
532
532
532
534
534
536
537
545
550
550
554
554
556
556
561
561
562
564
564
566
566
567
568
568
569
571
572
573
573
573
584
585
585
589
592
594
594
595
597
600
603
605
607
607
609
609
612
617
617
636
641
641
659
662
664
678
683
683
701
706
706
725
727
730
745
750
750
763
768
768
774
775
784
787
789
802
807
807
825
830
830
849
851
854
869
874
874
893
898
898
916
919
921
935
940
940
958
963
963
982
984
987
1002
1007
1007
1020
1025
1025
1041
1044
1046
1059
1064
1064
1082
1087
1087
1106
1108
1111
1126
1131
1131
1150
1155
1155
1173
1176
1178
1192
1197
1197
1215
1220
1220
1239
1241
1244
1259
1264
1264
1779
1783
1784
5
5
5
7
11
11
11
11
13
13
13
13
17
17
19
19
20
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
24
24
25
25
25
25
25
25
25
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
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
31
31
31
32
32
32
32
35
35
40
40
40
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
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
53
58
58
58
59
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
64
64
64
64
64
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
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
68
68
68
68
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
71
71
71
71
71
71
71
71
71
72
72
72
72
72
73
74
74
74
75
76
76
76
77
83
85
86
86
88
88
88
88
89
89
89
89
89
92
92
93
93
95
97
97
97
97
100
100
100
102
102
104
104
104
104
105
105
105
106
106
107
108
109
109
113
119
120
121
124
124
124
124
124
125
125
125
129
129
129
130
134
134
135
135
138
138
139
139
140
140
141
141
141
141
141
141
142
142
142
144
144
149
149
152
153
155
155
155
156
156
156
157
157
157
157
158
158
158
158
159
159
160
160
163
165
167
167
168
168
168
170
170
172
172
172
172
173
173
173
173
174
174
174
176
179
179
179
179
185
185
185
186
187
187
187
188
191
193
195
196
196
196
197
197
197
198
199
203
203
204
204
204
205
208
209
209
210
210
210
210
210
210
210
210
211
212
212
212
212
212
217
217
217
224
224
226
226
226
226
226
227
227
227
229
230
230
231
232
236
237
237
237
239
240
240
241
241
243
243
244
244
244
244
245
245
246
247
250
250
250
250
252
254
255
256
257
262
262
262
262
266
267
267
267
268
268
269
270
270
270
271
272
272
272
275
275
276
276
276
277
277
278
279
280
281
281
281
281
281
281
281
281
281
282
283
283
283
283
289
294
294
295
297
297
297
298
298
298
299
299
300
301
301
301
302
309
309
309
311
312
312
314
315
315
315
316
316
316
316
317
318
318
318
321
321
321
321
329
335
336
339
339
341
341
352
353
355
356
356
357
357
359
361
361
367
369
370
375
375
375
375
380
382
383
383
384
384
385
385
385
387
387
389
389
390
394
394
405
406
408
412
412
414
416
418
418
421
421
422
422
422
423
424
424
425
426
427
427
427
442
445
448
450
450
452
452
455
455
458
460
462
462
464
464
469
470
470
471
472
474
480
482
483
488
488
488
488
489
494
494
496
498
498
499
501
502
503
507
507
507
512
512
525
525
526
527
528
529
530
530
531
531
533
533
533
535
535
535
537
538
546
551
551
555
561
562
564
564
565
565
567
567
568
569
569
570
572
573
574
574
583
583
585
593
593
595
595
596
598
601
601
604
606
608
608
610
610
613
618
618
637
642
642
660
663
665
679
684
684
702
707
707
726
728
731
746
751
751
764
769
769
775
776
785
788
790
803
808
808
826
831
831
850
852
855
870
875
875
894
899
899
917
920
922
936
941
941
959
964
964
983
985
988
1003
1008
1008
1021
1026
1026
1042
1045
1047
1060
1065
1065
1083
1088
1088
1107
1109
1112
1127
1132
1132
1151
1156
1156
1174
1177
1179
1193
1198
1198
1216
1221
1221
1240
1242
1245
1260
1265
1265
1780
1784
1785
5
5
6
7
12
12
13
13
13
13
14
14
17
17
18
19
22
22
22
22
22
22
22
23
23
23
24
24
24
24
24
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
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
30
31
31
31
31
32
32
32
34
34
36
36
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
44
45
45
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
48
48
48
48
48
48
48
49
49
54
54
54
54
55
55
55
59
59
59
60
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
64
64
64
64
64
64
64
65
65
65
65
65
65
65
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
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
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
72
72
73
73
73
73
74
75
76
77
77
77
78
84
84
86
87
88
89
89
89
89
90
90
90
90
90
90
93
93
94
94
96
98
98
98
98
100
101
101
105
105
106
106
106
106
106
106
106
106
108
109
117
120
122
122
123
124
125
125
125
125
125
126
126
130
130
130
131
133
133
135
135
136
136
137
137
139
139
139
140
140
140
141
141
141
141
142
142
142
142
142
145
145
150
153
155
155
156
156
157
157
157
158
158
158
159
159
159
159
159
160
160
161
164
166
168
168
169
169
171
171
172
173
173
173
173
173
173
174
174
174
174
175
175
176
176
177
187
188
188
188
189
192
192
194
194
197
197
198
198
205
205
205
206
209
209
209
210
210
210
210
210
210
211
211
211
211
211
211
211
211
213
213
213
214
218
218
218
225
225
226
226
227
227
227
227
227
228
228
228
229
230
231
231
232
233
234
234
237
238
238
238
240
242
242
244
244
244
245
245
245
245
246
247
247
247
248
250
251
253
255
256
257
257
263
263
268
268
269
269
270
270
271
271
272
273
276
276
277
277
277
278
278
279
280
280
280
280
281
281
281
281
281
282
282
282
282
282
282
282
282
282
282
284
284
289
289
290
295
295
297
297
298
298
299
299
299
300
300
301
302
302
303
305
310
310
310
312
312
313
314
314
315
315
316
316
316
316
317
317
317
318
318
318
318
319
319
319
328
330
336
337
338
340
340
340
342
342
347
347
347
348
351
352
353
354
356
357
357
358
362
362
363
368
370
370
376
376
379
381
383
383
383
383
384
384
386
386
388
388
390
390
391
393
395
395
395
402
402
406
407
409
413
417
418
419
422
422
423
423
423
424
425
425
425
427
428
428
428
431
441
443
446
449
451
451
451
453
453
453
456
456
459
460
460
460
460
461
463
463
465
465
470
471
472
475
476
481
483
483
489
489
490
493
494
495
495
496
496
497
497
498
499
500
502
503
504
506
508
508
508
508
513
513
515
515
526
527
530
531
532
532
534
534
534
536
536
536
538
538
544
547
552
552
554
556
562
563
564
565
566
566
566
568
568
569
570
570
571
573
573
573
574
575
575
584
589
594
594
596
596
596
599
602
602
605
606
606
607
609
609
611
611
614
619
619
638
643
643
661
664
666
680
685
685
703
708
708
727
729
732
747
752
752
765
770
770
775
776
777
789
791
804
809
809
827
832
832
851
853
856
871
876
876
895
900
900
918
921
923
937
942
942
960
965
965
984
986
989
1004
1009
1009
1022
1027
1027
1046
1048
1061
1066
1066
1084
1089
1089
1108
1110
1113
1128
1133
1133
1152
1157
1157
1175
1178
1180
1194
1199
1199
1217
1222
1222
1241
1243
1246
1261
1266
1266
1781
1785
1786
1
5
5
7
8
11
13
13
15
15
19
19
22
22
22
23
23
23
23
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
26
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
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
31
32
32
32
33
35
35
37
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
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
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
48
48
48
48
48
48
48
48
48
49
49
49
49
50
50
54
55
55
55
55
56
56
59
59
60
60
60
61
61
63
63
63
63
63
63
63
63
63
63
63
63
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
66
66
66
66
66
66
66
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
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
72
72
73
74
74
75
76
77
78
78
79
79
80
84
87
87
88
88
90
90
90
91
91
92
94
94
95
95
97
99
99
99
99
100
101
102
102
105
107
107
107
107
109
117
118
120
120
121
123
123
123
124
124
126
126
131
131
131
131
132
134
134
136
136
137
137
138
139
139
139
140
141
141
141
141
141
142
142
142
142
142
142
143
143
143
143
145
145
146
146
149
149
151
154
155
155
155
156
156
157
157
157
158
158
159
159
159
160
160
161
162
165
167
169
169
170
170
172
172
173
174
174
174
174
174
174
175
175
175
176
176
177
177
177
177
178
186
188
189
189
190
195
195
195
195
196
196
197
197
201
206
206
206
207
208
208
209
210
210
210
210
211
211
211
211
212
212
212
212
213
213
213
213
214
214
214
214
215
216
219
219
225
226
226
226
226
227
227
228
228
228
229
229
230
232
232
233
234
235
235
238
239
239
239
241
243
243
244
244
245
245
245
245
246
246
246
247
248
248
248
248
249
252
254
254
256
257
263
266
266
267
267
269
270
271
272
272
273
274
277
278
278
279
279
279
280
280
280
281
281
281
281
281
282
282
282
283
283
283
284
284
284
284
285
285
287
290
290
291
296
296
297
297
297
298
298
299
299
299
299
299
300
300
301
301
303
304
309
311
314
315
315
316
316
316
317
317
317
318
318
318
318
318
319
319
319
319
319
319
319
319
319
320
320
320
320
320
328
328
329
338
338
339
343
343
345
348
348
352
353
354
355
357
357
357
358
358
359
363
363
367
369
376
382
382
383
384
384
384
385
385
387
387
389
389
391
391
393
394
400
403
403
408
410
412
412
414
418
420
422
423
424
424
425
426
428
429
429
429
432
432
432
432
441
441
442
447
451
452
452
452
458
460
461
461
461
461
462
464
464
464
464
466
466
466
466
470
470
471
472
473
476
480
482
489
491
495
496
496
496
497
498
498
499
500
501
503
504
506
507
509
513
514
514
516
516
525
525
527
528
531
533
533
535
535
535
535
537
537
537
545
545
545
545
548
553
553
554
554
555
564
564
565
566
569
571
571
571
572
574
574
574
575
576
576
583
583
585
593
595
595
597
600
606
607
607
608
610
610
610
610
612
612
612
612
615
620
620
639
644
644
665
667
681
686
686
704
709
709
728
730
733
748
753
753
766
771
771
775
776
777
778
790
792
805
810
810
828
833
833
852
854
857
872
877
877
896
901
901
922
924
938
943
943
961
966
966
985
987
990
1005
1010
1010
1023
1028
1028
1047
1049
1062
1067
1067
1085
1090
1090
1109
1111
1114
1129
1134
1134
1153
1158
1158
1179
1181
1195
1200
1200
1218
1223
1223
1242
1244
1247
1262
1267
1267
1782
1786
1787
1
1
5
5
7
9
14
14
15
16
22
23
23
23
23
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
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
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
30
31
31
32
34
36
36
38
41
41
41
41
41
41
41
41
42
42
44
44
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
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
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
50
50
50
50
56
60
60
61
61
61
62
62
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
65
65
65
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
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
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
73
73
75
75
76
77
78
80
80
80
86
86
86
91
91
92
92
92
95
95
96
96
98
100
100
100
100
101
102
103
103
104
105
107
107
117
121
121
122
124
127
127
132
132
132
132
132
133
137
137
137
138
138
140
140
141
142
142
142
143
143
143
143
144
144
147
147
150
150
152
153
155
156
156
156
157
157
157
159
160
160
160
160
160
160
161
161
162
163
166
167
168
170
170
171
171
173
173
173
174
174
174
175
175
175
175
175
175
176
177
177
177
177
177
177
178
178
178
178
187
187
191
191
191
192
192
195
195
196
196
196
196
196
197
197
198
198
202
207
207
208
209
209
211
211
212
212
213
213
213
213
214
214
214
214
215
215
215
215
216
216
217
220
220
224
226
226
227
227
227
227
227
228
228
228
230
231
231
231
232
232
233
233
233
234
235
239
240
240
242
244
244
244
244
245
245
245
245
246
246
246
246
248
248
248
248
248
248
249
249
249
249
253
255
255
255
257
257
258
262
262
263
263
263
266
267
267
267
268
268
270
272
273
273
274
275
278
279
279
280
280
280
281
281
281
282
282
282
282
283
284
284
284
285
285
285
285
286
286
288
288
292
295
297
297
298
298
298
299
299
299
299
299
300
300
301
302
302
302
303
303
304
305
308
310
310
311
312
312
315
316
316
316
316
317
317
317
318
319
319
319
319
319
319
320
320
320
320
320
320
320
321
321
321
321
327
328
329
330
339
339
339
340
340
344
344
346
346
353
354
355
355
356
356
357
357
358
358
358
358
359
359
359
364
364
368
368
370
370
376
383
383
385
385
385
386
386
388
388
390
390
392
392
394
394
395
395
401
401
409
411
412
412
413
413
419
421
423
423
424
425
425
425
426
427
429
430
430
430
433
433
440
441
442
443
448
452
452
453
453
453
453
454
459
459
461
462
462
463
467
467
467
467
470
470
471
471
474
477
481
481
483
483
489
492
496
497
497
498
499
499
500
501
501
502
502
504
504
505
505
507
507
508
508
510
514
514
515
515
525
525
526
526
529
532
534
534
536
536
536
536
536
538
538
538
538
546
546
549
553
554
554
554
555
556
565
565
565
566
566
567
570
572
572
572
572
573
575
576
577
577
583
583
584
584
594
594
596
596
598
600
601
607
608
608
609
613
613
613
613
616
621
621
640
645
645
666
668
682
687
687
705
710
710
731
734
749
754
754
767
772
772
775
776
776
777
778
791
793
806
811
811
829
834
834
855
858
873
878
878
897
902
902
923
925
939
944
944
962
967
967
988
991
1006
1011
1011
1024
1029
1029
1048
1050
1063
1068
1068
1086
1091
1091
1112
1115
1130
1135
1135
1154
1159
1159
1180
1182
1196
1201
1201
1219
1224
1224
1245
1248
1263
1268
1268
1783
1787
1788
5
5
7
10
11
11
15
15
15
16
20
22
22
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
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
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
29
29
29
29
29
29
29
30
30
31
35
37
39
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
45
45
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
50
50
57
59
61
61
61
61
61
61
62
62
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
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
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
68
69
69
69
69
69
69
69
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
73
73
75
76
76
77
78
81
81
84
86
87
87
89
89
89
90
90
90
90
90
92
92
96
96
97
97
99
100
101
101
101
101
102
103
104
104
105
105
105
105
105
105
106
106
107
107
118
120
122
122
122
123
125
125
125
125
126
126
126
128
128
133
133
133
134
138
138
138
139
139
139
140
140
141
141
143
144
144
144
144
148
148
149
151
151
153
155
156
157
158
160
160
161
161
161
161
161
162
162
163
164
167
168
168
168
168
169
171
171
172
172
173
173
174
174
176
176
176
176
176
176
177
177
177
178
178
178
178
178
178
178
178
179
179
179
179
191
192
192
195
195
196
196
196
196
196
197
197
197
197
197
198
198
202
202
206
206
206
208
208
209
209
209
210
210
212
213
213
214
214
215
215
215
215
216
217
217
218
221
221
224
226
228
228
228
229
231
232
232
232
233
233
234
235
236
240
240
241
241
243
244
245
245
246
246
247
247
248
248
249
249
249
249
249
249
249
249
250
250
250
250
254
255
256
257
258
258
259
262
263
266
266
267
267
267
268
268
268
269
269
270
271
273
274
275
276
279
280
280
280
280
281
281
281
282
283
283
283
284
285
286
286
286
286
293
295
297
298
298
299
300
301
301
302
303
303
303
304
304
305
306
309
310
312
312
313
313
313
315
316
316
317
317
318
319
319
319
320
320
320
320
320
320
320
320
320
321
321
321
321
321
322
322
322
322
328
330
331
340
341
341
345
345
354
355
359
359
359
359
360
360
360
365
365
368
370
371
371
383
384
384
384
386
386
386
387
389
389
391
391
393
393
396
396
410
412
414
414
420
422
423
425
425
426
426
426
427
428
430
431
431
431
433
441
443
444
449
454
454
454
454
455
459
462
463
463
464
468
468
468
468
472
472
475
478
481
483
484
484
493
496
497
498
498
499
500
501
505
505
506
506
509
509
511
516
516
527
527
528
530
530
533
535
535
536
537
537
537
538
539
539
539
539
546
550
554
555
555
556
557
566
567
567
568
571
573
573
574
576
577
578
578
585
585
594
596
597
597
599
601
602
605
608
609
609
610
614
614
614
614
617
622
622
641
646
646
667
669
683
688
688
706
711
711
732
735
750
755
755
768
773
773
775
776
777
777
778
785
792
794
807
812
812
830
835
835
856
859
874
879
879
898
903
903
924
926
940
945
945
963
968
968
989
992
1007
1012
1012
1025
1030
1030
1042
1049
1051
1064
1069
1069
1087
1092
1092
1113
1116
1131
1136
1136
1155
1160
1160
1181
1183
1197
1202
1202
1220
1225
1225
1246
1249
1264
1269
1269
1784
1788
1789
5
5
5
7
11
11
16
16
16
16
17
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
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
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
29
29
29
29
29
29
29
29
29
29
31
31
31
31
36
38
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
48
48
48
48
49
55
55
55
56
56
56
58
60
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
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
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
68
68
68
68
69
69
69
69
69
69
69
71
71
71
71
71
71
71
71
71
73
73
73
73
73
77
77
77
77
78
80
80
82
82
85
85
87
88
89
90
90
90
91
91
91
92
93
97
97
98
98
100
101
102
102
102
102
103
103
105
105
106
106
106
106
107
107
107
107
107
107
107
107
107
107
107
112
120
121
123
124
124
125
126
126
126
126
127
127
129
129
134
134
134
134
135
139
139
140
140
140
140
141
141
141
141
141
141
142
144
149
149
149
154
155
156
157
159
162
162
162
162
163
163
168
169
169
170
172
172
173
173
173
173
173
174
175
176
177
177
177
177
177
177
178
179
179
179
179
179
179
180
180
180
180
189
193
196
196
197
197
197
198
198
198
198
198
198
199
199
199
206
207
207
209
209
209
210
210
210
210
211
212
212
213
214
214
215
215
217
217
218
218
222
222
225
226
226
227
227
227
227
229
229
230
233
233
234
234
235
237
239
239
241
241
242
242
242
243
243
244
244
245
246
246
247
247
247
248
248
250
250
250
250
250
250
251
251
251
251
255
255
257
257
258
259
259
260
267
267
268
268
268
269
269
269
269
270
270
270
270
271
273
273
274
276
276
277
277
280
280
280
281
281
281
281
281
281
281
282
282
282
282
282
283
283
283
284
284
284
285
286
290
294
296
297
297
298
299
299
301
302
302
304
304
305
305
310
312
313
314
314
314
315
316
317
317
317
318
318
318
319
319
320
320
321
321
321
321
321
321
322
322
322
322
322
323
323
323
323
328
329
331
339
340
340
340
341
342
342
346
346
348
355
355
356
360
360
360
360
361
361
361
366
366
368
370
371
372
372
383
384
385
385
386
386
387
387
387
388
389
389
390
390
392
392
394
394
394
395
395
395
397
397
403
406
410
411
413
415
415
422
423
423
423
425
426
426
426
427
427
427
427
428
429
431
432
432
432
433
441
442
444
450
452
453
453
453
455
455
455
455
460
461
463
463
464
464
465
465
468
469
469
469
469
473
473
476
479
481
483
484
485
485
494
496
497
499
499
499
499
500
501
502
506
506
507
507
507
508
508
508
510
510
512
516
517
517
523
528
528
529
531
531
533
534
535
535
536
536
536
538
538
538
538
539
540
540
540
540
546
551
554
555
556
556
557
565
566
566
566
568
568
568
569
569
572
572
573
574
574
574
575
577
578
579
579
581
586
586
594
596
597
598
598
600
603
606
609
609
610
610
611
611
615
615
615
615
618
623
623
642
647
647
661
668
670
684
689
689
707
712
712
733
736
751
756
756
769
774
774
775
777
778
778
786
790
793
795
808
813
813
831
836
836
857
860
875
880
880
899
904
904
918
925
927
941
946
946
964
969
969
990
993
1008
1013
1013
1026
1031
1031
1043
1047
1050
1052
1065
1070
1070
1088
1093
1093
1114
1117
1132
1137
1137
1156
1161
1161
1175
1182
1184
1198
1203
1203
1221
1226
1226
1247
1250
1265
1270
1270
1785
1789
1790
5
5
5
6
7
7
7
12
15
15
17
17
17
18
18
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
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
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
29
29
29
29
29
30
30
30
30
31
31
32
32
32
32
39
40
40
40
41
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
45
45
45
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
48
48
48
48
48
48
48
49
49
49
55
56
56
56
57
57
59
59
59
59
59
59
59
59
60
60
60
60
61
61
61
61
61
62
62
62
62
63
63
63
63
63
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
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
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
71
71
71
72
72
72
72
74
77
78
81
81
83
83
88
88
89
89
90
90
92
94
98
98
99
99
100
101
102
103
103
103
103
106
106
106
108
108
108
108
108
108
108
108
113
113
113
121
121
122
122
124
124
125
125
125
127
130
130
134
135
135
135
136
140
140
141
141
141
141
141
142
142
142
142
142
142
142
142
143
145
145
149
150
150
150
154
154
157
158
158
158
160
160
160
161
161
163
163
169
169
171
173
173
173
174
174
174
174
176
176
176
176
177
178
178
178
178
178
178
178
178
179
179
179
179
179
179
181
181
181
181
189
194
196
197
198
198
198
198
199
199
199
199
199
199
199
200
200
202
207
208
208
210
210
210
211
211
211
212
213
213
213
213
214
215
215
216
216
217
218
218
218
218
219
223
223
225
225
226
226
226
227
228
228
228
228
229
229
231
231
231
232
232
235
238
240
243
243
243
244
244
244
245
245
247
247
247
247
247
247
247
248
248
249
249
249
249
249
249
250
250
250
250
250
250
252
252
252
252
255
255
256
258
258
258
259
261
261
267
268
269
269
269
270
270
270
270
270
271
271
274
274
275
277
278
281
281
281
281
281
281
281
282
282
282
282
282
282
283
283
283
283
283
284
284
284
284
284
285
286
287
290
295
296
296
298
299
300
300
300
300
302
302
302
303
303
303
310
310
313
314
315
315
316
318
318
318
318
319
319
319
320
320
320
320
321
321
321
321
321
321
321
323
323
323
323
323
324
324
324
324
328
329
331
331
332
339
339
339
340
341
341
341
342
347
347
348
356
356
357
361
361
361
362
362
362
367
367
368
368
371
372
387
387
388
388
388
389
390
390
391
391
393
393
393
393
394
394
394
395
395
395
395
395
396
396
396
403
407
409
411
412
414
416
423
423
424
426
427
427
427
428
428
429
430
432
433
433
433
441
442
444
444
445
451
452
452
452
453
454
454
454
456
456
461
461
465
465
466
466
469
470
470
470
470
471
474
475
477
480
481
481
484
485
495
500
500
500
500
501
502
503
507
507
507
507
507
508
508
508
509
509
509
513
516
518
518
524
529
534
535
536
536
536
536
537
537
539
539
539
539
539
539
540
541
541
541
541
552
554
555
557
557
557
557
558
565
565
565
566
567
567
567
570
573
573
574
574
575
575
576
578
579
580
580
582
587
594
594
595
597
598
599
601
604
607
611
611
612
612
616
616
616
616
619
624
624
643
648
648
662
666
669
671
685
690
690
708
713
713
728
732
734
737
752
757
757
770
775
775
776
778
779
791
794
796
809
814
814
832
837
837
852
856
858
861
876
881
881
900
905
905
919
923
926
928
942
947
947
965
970
970
985
989
991
994
1009
1014
1014
1027
1032
1032
1048
1051
1053
1066
1071
1071
1089
1094
1094
1109
1113
1115
1118
1133
1138
1138
1157
1162
1162
1176
1180
1183
1185
1199
1204
1204
1222
1227
1227
1242
1246
1248
1251
1266
1271
1271
1786
1790
1791
5
5
7
8
8
11
13
15
16
16
18
18
18
18
18
18
18
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
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
32
32
32
32
33
33
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
42
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
47
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
49
49
49
49
49
50
50
50
50
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
62
62
62
62
62
62
62
63
63
63
63
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
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
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
73
73
73
73
73
75
75
78
79
84
84
87
87
87
90
90
91
91
95
99
99
100
100
101
101
102
103
103
104
104
104
104
105
106
107
107
108
108
109
109
114
114
123
123
128
131
131
136
136
136
137
141
141
141
141
142
142
142
142
142
142
142
142
142
142
143
143
143
143
143
143
143
143
145
146
150
151
151
151
156
156
157
157
158
159
159
159
159
160
161
161
161
161
162
162
164
164
169
170
172
174
174
175
175
175
176
176
177
177
177
177
177
178
178
178
178
178
178
178
178
179
179
179
179
179
179
180
180
180
180
180
180
195
196
197
198
198
199
199
200
200
200
200
200
201
201
208
210
210
211
211
211
212
213
213
213
213
213
213
214
214
214
214
216
216
217
217
219
219
219
220
224
224
227
227
228
228
228
229
229
229
229
230
230
231
232
232
232
232
233
233
239
239
241
243
243
244
244
245
245
246
247
247
247
248
248
248
248
249
249
249
249
249
249
249
249
249
250
250
250
250
250
250
251
251
251
251
251
251
256
256
257
257
257
257
259
262
262
267
268
269
270
270
271
271
271
272
272
275
275
278
279
281
281
282
282
282
282
283
283
283
283
284
284
284
284
284
284
284
284
284
284
284
285
285
285
285
285
285
287
287
288
288
296
298
298
298
298
299
299
300
301
301
301
301
302
302
302
303
303
303
303
304
304
304
311
311
312
312
312
314
316
318
319
319
319
319
319
320
320
320
320
320
320
320
320
320
320
321
321
321
321
322
322
322
322
322
322
322
324
325
325
325
325
332
332
333
341
342
342
342
343
348
348
356
356
357
358
360
360
362
362
362
363
363
363
368
368
369
369
370
370
370
372
383
388
388
389
389
390
391
391
392
392
396
396
396
396
396
397
397
397
410
411
411
413
415
415
415
417
424
424
425
425
425
425
427
428
428
429
429
430
430
431
431
433
433
434
434
434
434
445
445
446
452
454
455
455
455
457
457
462
466
466
467
467
469
469
471
471
471
471
473
473
475
476
478
481
482
482
483
483
483
485
496
501
501
501
501
503
504
508
508
509
509
509
510
510
510
514
519
524
524
528
528
529
530
535
536
537
537
537
537
538
538
538
538
538
540
540
542
542
542
542
553
558
558
558
558
559
567
568
568
568
571
574
574
575
576
576
576
577
577
579
579
580
580
581
581
582
582
586
586
588
595
595
596
596
596
598
600
602
605
608
612
612
613
613
617
617
617
617
620
625
625
644
649
649
667
670
672
686
691
691
709
714
714
733
735
738
753
758
758
771
776
777
779
792
795
797
810
815
815
833
838
838
857
859
862
877
882
882
901
906
906
924
927
929
943
948
948
966
971
971
990
992
995
1010
1015
1015
1028
1033
1049
1052
1054
1067
1072
1072
1090
1095
1095
1114
1116
1119
1134
1139
1139
1158
1163
1163
1181
1184
1186
1200
1205
1205
1223
1228
1228
1247
1249
1252
1267
1272
1272
1787
1791
1792
9
9
14
15
15
15
16
17
17
18
19
19
20
21
22
22
22
22
22
22
22
22
24
24
24
24
24
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
27
27
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
31
32
32
33
33
34
34
34
38
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
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
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
47
47
49
50
59
59
59
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
62
62
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
66
66
66
66
66
66
66
66
66
67
68
68
68
68
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
70
70
70
70
70
71
71
71
71
72
72
72
72
72
72
72
72
74
74
78
80
85
85
85
87
88
88
90
91
92
92
96
100
100
101
101
101
103
103
104
104
105
105
105
105
106
106
106
106
108
108
108
108
108
108
108
108
109
113
114
114
114
114
115
121
122
122
122
124
124
126
127
129
132
132
134
134
137
137
137
138
140
141
142
142
142
142
143
143
143
143
143
143
143
143
143
143
143
143
144
144
144
144
144
144
147
149
151
152
152
152
156
157
160
160
160
160
160
160
160
160
160
161
161
161
162
162
162
163
163
165
165
171
173
173
175
175
176
176
176
178
178
178
178
179
179
180
180
180
180
180
180
181
181
181
181
181
181
189
189
196
196
196
197
197
199
200
200
201
201
201
206
209
209
212
213
213
213
214
214
214
214
214
214
214
214
215
215
215
215
217
217
218
218
220
220
220
225
225
227
227
228
229
230
230
231
231
231
231
232
232
232
233
233
233
234
234
240
240
242
242
245
245
246
246
247
248
248
249
249
249
250
250
250
251
251
251
251
251
251
252
252
252
252
252
252
258
258
258
258
258
262
263
263
267
267
268
268
270
271
271
272
273
274
278
279
280
280
282
283
283
284
284
284
284
284
284
285
285
285
285
285
285
285
285
285
285
286
286
286
286
288
288
289
289
297
298
299
302
302
302
302
302
302
303
303
303
303
303
304
304
304
305
305
305
313
313
313
313
317
320
320
320
320
321
321
321
321
322
322
322
322
323
323
323
323
323
323
323
323
325
325
326
326
326
326
333
333
340
342
343
343
344
349
349
358
359
361
361
363
363
363
364
364
364
369
369
371
371
371
371
375
384
386
388
390
390
391
392
392
393
393
395
397
397
397
397
397
398
398
411
414
416
416
416
418
420
424
426
426
426
426
426
429
429
430
430
434
434
435
435
435
435
446
446
453
453
455
456
456
458
458
463
467
467
468
468
472
472
472
472
474
474
476
477
479
482
484
484
484
484
488
497
499
502
502
504
505
508
509
509
510
510
510
511
511
515
518
518
520
529
529
530
531
534
536
537
538
538
539
539
539
539
539
539
541
543
543
543
543
554
559
559
559
559
566
566
568
569
569
570
572
575
575
576
577
580
580
581
581
582
582
587
587
589
597
597
597
597
601
603
606
609
613
613
614
614
618
618
618
618
621
626
626
645
650
650
668
671
673
687
692
692
710
715
715
734
736
739
754
759
759
772
775
775
777
777
793
796
798
811
816
816
834
839
839
858
860
863
878
883
883
902
907
907
925
928
930
944
949
949
967
972
972
991
993
996
1011
1016
1016
1029
1032
1032
1034
1050
1053
1055
1068
1073
1073
1091
1096
1096
1115
1117
1120
1135
1140
1140
1159
1164
1164
1182
1185
1187
1201
1206
1206
1224
1229
1229
1248
1250
1253
1268
1273
1273
1788
1792
1793
5
9
15
18
18
19
19
20
20
20
20
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
24
24
24
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
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
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
32
32
35
35
35
39
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
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
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
56
57
59
59
59
59
59
59
59
59
59
59
59
60
60
60
61
61
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
63
63
63
63
64
64
64
64
64
64
64
64
65
65
65
65
65
66
66
66
66
66
66
66
66
66
67
67
67
67
67
68
68
69
69
69
69
69
69
69
69
69
69
69
69
69
69
70
71
71
71
72
72
72
72
73
73
73
73
73
73
73
73
73
73
75
75
81
81
84
86
86
86
86
90
90
90
91
91
91
93
93
97
101
101
101
102
102
103
104
104
105
105
106
106
107
107
109
109
109
109
109
109
109
115
115
116
121
121
121
122
123
123
123
126
126
126
127
127
127
130
132
133
133
135
135
138
138
138
139
140
141
141
143
144
144
144
144
144
144
144
144
145
145
145
145
145
145
145
148
150
152
152
153
153
158
158
161
161
161
161
161
162
162
162
163
163
163
163
164
164
164
166
166
172
173
174
174
176
176
176
176
177
177
177
177
178
178
178
179
179
179
180
180
181
181
181
181
182
182
182
182
187
190
190
197
197
197
198
198
198
198
198
199
199
199
200
201
202
202
202
206
207
209
210
212
213
214
215
215
215
215
215
215
216
216
216
216
218
218
219
221
226
226
228
228
229
229
232
232
233
233
233
234
234
234
234
235
235
235
241
243
243
246
246
246
247
247
247
248
248
248
249
249
249
249
249
250
250
251
251
252
252
252
252
252
252
253
253
253
253
259
259
259
263
263
263
264
264
268
268
269
269
269
269
269
270
270
270
270
271
272
279
280
280
281
281
283
283
283
284
284
285
285
285
286
286
286
286
286
286
287
287
287
287
289
289
290
290
298
300
300
302
303
303
303
303
304
304
304
304
304
305
305
305
305
306
306
306
314
314
318
319
320
320
320
321
321
321
322
322
322
322
323
323
323
323
324
324
324
324
326
326
327
327
327
327
331
341
341
345
350
350
359
360
360
362
362
364
364
365
365
365
370
370
372
372
376
376
376
383
389
391
392
392
393
393
394
394
394
396
396
398
398
398
398
412
415
415
417
417
417
425
427
427
427
430
430
431
431
435
435
436
436
436
436
444
454
454
454
459
464
468
468
469
469
473
473
473
473
473
475
475
478
480
483
485
485
489
489
489
496
498
503
503
505
506
509
509
510
510
511
511
516
519
521
528
530
530
535
537
538
538
539
539
540
540
540
540
540
540
542
542
544
544
544
544
555
557
560
560
567
567
571
573
576
576
577
578
581
581
582
582
583
586
588
588
598
598
602
604
607
610
614
614
615
615
619
619
619
619
622
627
627
646
651
669
672
674
688
693
693
711
716
735
737
740
755
760
760
773
776
778
779
794
797
797
799
799
812
817
817
835
840
859
861
864
879
884
884
903
908
926
929
931
945
950
950
968
973
992
994
997
1012
1017
1017
1030
1033
1035
1051
1054
1054
1056
1056
1069
1074
1074
1092
1097
1116
1118
1121
1136
1141
1141
1160
1165
1183
1186
1188
1202
1207
1207
1225
1230
1249
1251
1254
1269
1274
1274
1789
1793
1794
5
9
9
16
19
19
19
20
20
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
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
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
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
28
28
29
29
29
29
29
29
30
31
31
31
32
33
33
33
33
36
36
36
39
39
39
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
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
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
56
56
56
57
57
57
57
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
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
64
64
64
64
64
64
65
65
65
65
66
66
66
66
66
67
67
67
67
67
68
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
71
71
71
71
72
73
73
73
73
73
73
73
73
73
73
73
73
73
73
73
74
74
74
74
74
74
81
82
85
87
87
88
89
91
91
91
91
92
92
92
92
94
98
102
102
103
103
104
105
105
105
105
105
105
107
107
107
107
107
109
109
109
109
109
109
109
109
110
110
110
110
114
114
116
116
123
124
124
124
124
125
125
127
127
127
127
128
128
128
128
129
131
133
133
134
134
139
139
139
140
140
141
141
141
141
142
143
143
143
143
144
144
144
144
144
144
144
145
145
146
146
146
146
149
149
151
154
154
154
154
158
159
159
161
161
162
162
163
163
163
164
164
164
164
164
165
165
167
167
173
173
175
177
177
177
177
177
177
177
178
178
178
178
179
179
179
180
180
180
180
180
180
180
180
180
182
182
188
188
198
199
199
199
199
200
200
200
200
202
203
203
207
208
209
210
212
212
212
213
214
214
214
215
215
215
215
215
215
215
217
217
217
217
217
219
220
222
225
225
227
227
229
230
230
232
233
233
234
234
234
235
235
235
235
235
236
236
242
244
244
247
247
248
248
248
248
248
249
249
249
250
250
250
251
251
251
251
253
253
253
253
259
260
264
264
265
265
270
270
270
270
270
271
271
271
271
271
273
273
280
280
281
281
282
282
283
283
283
284
285
285
285
285
285
286
286
286
286
286
286
286
286
286
288
288
288
288
288
290
290
291
291
296
296
299
300
301
301
302
303
304
304
304
305
305
305
306
306
306
306
306
307
307
314
319
319
319
319
319
320
321
321
321
322
322
322
322
322
323
323
324
324
327
327
328
328
328
328
328
346
346
351
351
360
360
361
365
365
366
366
366
371
372
377
377
383
384
386
386
390
390
392
393
394
394
395
395
395
399
399
399
399
401
413
415
416
416
418
418
426
427
428
428
431
431
431
432
432
432
436
436
437
437
437
437
441
455
459
460
465
469
469
470
470
473
474
474
474
474
479
481
484
485
490
490
496
497
499
499
499
504
504
506
507
511
511
512
512
514
517
520
522
528
536
538
540
540
540
541
541
543
543
545
545
545
545
545
554
556
561
561
572
572
574
574
577
577
577
578
579
582
582
583
583
584
586
598
603
605
608
611
615
615
616
616
620
620
620
620
623
628
628
647
650
650
652
670
673
673
675
675
689
694
694
712
717
736
738
741
756
761
761
774
777
779
779
795
800
800
813
818
818
836
841
860
862
865
880
885
885
904
907
907
909
927
930
930
932
932
946
951
951
969
974
993
995
998
1013
1018
1018
1031
1034
1036
1052
1057
1057
1070
1075
1075
1093
1098
1117
1119
1122
1137
1142
1142
1161
1164
1164
1166
1184
1187
1187
1189
1189
1203
1208
1208
1226
1231
1250
1252
1255
1270
1275
1275
1790
1794
1795
5
5
9
10
17
18
18
18
19
20
20
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
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
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
31
32
34
34
37
37
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
42
42
42
42
42
42
42
43
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
45
45
45
46
46
46
46
46
46
46
46
47
47
49
50
57
57
57
57
58
58
58
58
58
59
59
59
60
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
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
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
66
67
68
68
68
68
69
69
69
69
69
69
70
70
71
71
71
72
72
72
73
74
74
74
74
74
74
75
75
75
75
75
75
83
85
85
88
88
88
89
90
91
91
92
92
92
92
93
93
93
93
95
99
103
103
104
104
105
106
106
106
107
107
107
108
108
108
108
110
110
110
110
111
111
111
111
115
122
124
125
125
125
126
127
127
128
128
128
128
129
129
130
132
135
135
140
140
140
141
141
142
142
142
142
142
142
143
143
143
143
143
143
143
143
143
143
144
144
144
145
145
145
145
145
145
145
146
150
150
150
152
152
154
155
155
158
158
159
160
160
161
161
162
163
163
164
164
165
165
165
166
166
168
168
174
174
176
176
178
178
178
178
178
179
179
179
179
180
180
180
181
181
181
183
183
196
199
200
200
201
201
204
204
206
208
209
212
213
213
213
213
214
214
214
214
214
214
214
214
215
215
215
216
216
216
216
216
216
216
217
217
217
218
218
218
218
218
220
221
223
225
228
228
229
229
230
230
231
231
232
233
234
234
235
235
236
236
236
237
237
243
243
245
245
247
248
248
249
249
250
250
250
251
251
251
254
254
254
254
259
261
263
264
264
264
264
265
266
266
270
271
271
272
272
274
274
281
282
283
284
284
284
284
285
285
285
285
285
285
285
285
285
286
286
286
286
286
287
287
287
287
287
287
287
287
287
289
291
291
292
292
296
298
300
300
300
301
302
302
302
303
303
304
305
305
306
306
307
307
307
308
308
314
320
320
320
320
321
322
322
322
323
324
324
325
325
328
328
328
329
329
329
329
329
331
331
343
347
347
352
352
356
360
361
361
362
366
366
367
367
367
372
372
376
377
377
377
377
378
383
387
387
391
393
394
395
395
396
396
396
398
400
400
400
400
402
411
414
415
416
419
419
427
427
432
432
432
433
433
433
433
433
437
437
438
438
438
438
441
442
444
444
456
456
458
458
460
461
466
469
470
470
471
471
473
474
475
475
475
475
480
482
482
485
485
485
489
490
490
490
490
491
496
500
500
500
505
505
507
508
511
512
512
513
513
515
518
521
523
524
528
529
537
539
540
541
541
542
542
544
544
546
546
546
546
546
546
546
554
555
557
557
557
562
562
569
573
573
578
578
578
579
580
582
582
582
583
583
584
584
585
586
587
598
604
606
606
609
609
612
616
616
617
617
621
621
621
621
624
629
629
648
651
653
671
676
676
690
695
695
713
715
715
718
737
739
739
742
742
757
762
762
775
778
780
796
801
801
814
819
819
837
839
839
842
861
863
863
866
866
881
886
886
905
908
910
928
933
933
947
952
952
970
972
972
975
994
996
996
999
999
1014
1019
1019
1032
1035
1037
1053
1058
1058
1071
1076
1076
1094
1096
1096
1099
1118
1120
1120
1123
1123
1138
1143
1143
1162
1165
1167
1185
1190
1190
1204
1209
1209
1227
1229
1229
1232
1251
1253
1253
1256
1256
1271
1276
1276
1791
1795
1796
1
9
9
10
11
11
11
11
15
19
20
20
21
21
21
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
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
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
33
35
35
38
38
38
38
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
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
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
46
46
46
46
46
46
47
47
47
47
50
51
57
57
58
58
58
58
59
59
59
59
59
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
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
64
65
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
66
66
66
66
66
66
66
66
66
66
66
67
67
67
67
69
69
69
70
70
70
71
71
72
72
72
72
73
73
73
73
73
73
73
73
73
74
75
75
75
75
75
75
76
76
76
84
88
88
88
89
89
91
92
92
93
93
93
94
94
94
94
96
100
104
104
105
107
107
107
108
108
109
109
109
109
109
109
109
109
111
111
111
111
112
112
114
116
123
123
127
128
128
129
129
129
130
130
131
133
135
136
136
141
141
142
143
143
143
143
143
143
144
144
144
145
145
145
146
146
146
146
146
146
146
147
150
151
152
153
153
156
156
159
159
160
161
161
161
161
161
162
162
164
164
165
165
166
168
169
169
175
176
177
177
178
179
179
180
180
180
181
181
182
182
182
182
182
182
182
182
182
184
184
190
197
200
200
201
205
205
207
209
214
214
214
215
215
216
216
216
217
217
217
217
217
217
217
217
218
219
219
219
221
222
224
229
229
230
230
230
231
232
232
232
232
232
233
233
235
235
235
236
236
237
243
244
246
246
248
249
249
249
250
250
251
251
251
252
252
253
253
253
253
253
253
255
255
255
255
262
265
265
266
267
267
271
271
272
273
275
275
275
282
283
285
285
285
285
286
286
287
287
287
287
287
288
288
288
288
288
288
288
288
288
290
290
292
292
293
293
298
301
301
301
302
303
303
303
303
303
303
304
304
304
304
304
306
306
307
307
308
320
321
321
321
322
323
323
324
324
324
324
324
324
324
325
325
326
326
328
329
329
330
330
330
330
332
332
343
348
348
348
353
353
356
361
362
362
363
367
367
368
368
368
370
370
373
378
378
379
384
386
388
388
388
392
394
395
396
396
397
397
397
398
401
401
401
401
403
403
411
415
416
417
420
420
428
433
433
433
434
434
434
434
438
438
439
439
439
439
441
445
445
456
457
459
461
461
462
467
469
471
471
472
472
474
475
476
476
476
476
481
486
486
491
491
492
497
499
501
501
501
501
506
506
508
509
511
513
513
514
514
516
516
519
522
524
524
529
530
538
540
542
542
543
543
545
545
547
547
547
547
547
547
554
558
558
558
563
563
569
574
574
574
579
579
579
580
581
582
583
584
584
585
585
586
587
588
605
610
610
613
617
617
618
618
622
622
622
622
625
630
630
649
652
654
672
677
677
691
696
696
714
716
719
738
743
743
758
763
763
776
779
781
797
802
802
815
820
820
838
840
843
862
867
867
882
887
887
906
909
911
929
934
934
948
953
953
971
973
976
995
1000
1000
1015
1020
1020
1033
1036
1038
1054
1059
1059
1072
1077
1077
1095
1097
1100
1119
1124
1124
1139
1144
1144
1163
1166
1168
1186
1191
1191
1205
1210
1210
1228
1230
1233
1252
1257
1257
1272
1277
1277
1792
1796
1797
1
1
1
4
5
9
9
9
11
11
15
18
18
18
18
18
18
18
18
19
20
20
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
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
30
31
31
34
35
35
39
39
39
39
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
47
47
47
48
48
55
57
57
57
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
61
61
61
62
62
62
62
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
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
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
69
69
70
70
70
70
71
71
71
71
72
72
72
72
72
72
72
72
72
72
73
73
73
73
74
74
74
74
74
74
76
77
85
86
89
89
89
89
90
90
91
91
91
92
92
92
92
93
93
93
94
95
95
101
101
101
104
104
105
105
106
106
108
108
108
108
108
108
108
108
108
108
108
109
109
109
110
110
110
110
110
110
113
114
114
115
127
127
127
128
128
128
128
129
129
130
132
134
135
137
137
142
142
142
143
143
143
143
143
143
144
144
144
144
144
145
145
145
146
146
147
147
147
147
147
148
150
152
152
153
154
154
157
157
159
161
161
161
162
162
162
162
163
163
163
163
163
164
164
164
165
165
166
169
169
169
170
176
177
177
178
178
179
179
179
179
180
180
180
180
181
181
182
182
183
183
183
183
183
183
183
185
185
190
198
198
199
200
200
201
201
206
206
207
207
209
209
209
210
213
214
214
214
215
215
216
216
217
217
217
218
218
218
218
218
218
218
219
220
220
220
220
222
223
225
230
230
230
232
232
232
233
233
233
233
234
234
234
234
234
235
235
235
236
236
236
236
236
237
247
247
247
249
250
250
250
250
251
251
251
251
252
252
253
253
254
254
254
254
256
256
256
256
263
264
264
266
266
268
268
270
271
271
272
273
274
283
284
284
285
285
285
286
286
287
287
288
288
288
288
288
289
289
289
289
289
289
289
291
291
291
291
293
293
294
294
301
302
302
303
303
303
304
304
304
304
304
305
305
305
305
305
305
305
306
306
306
307
307
308
320
321
321
321
321
321
321
322
322
322
322
324
324
325
325
325
325
325
326
326
327
327
329
330
330
331
331
331
331
331
333
333
333
349
349
349
349
349
354
354
360
362
363
363
364
368
368
369
369
369
371
374
377
377
379
379
386
387
393
395
396
397
397
398
398
398
402
402
402
402
404
404
404
404
415
416
417
418
421
421
429
433
434
434
434
434
434
434
434
435
435
435
439
439
440
440
440
440
442
444
446
446
446
458
460
462
462
462
462
463
468
472
472
473
473
473
475
476
477
477
477
477
482
487
487
490
490
492
492
499
500
502
507
507
509
510
514
514
515
515
517
517
517
517
520
523
525
528
530
531
539
541
543
543
544
544
546
546
546
547
547
547
547
548
548
548
548
548
555
557
559
559
559
559
564
564
575
575
575
575
575
580
580
580
581
582
584
585
585
586
586
586
587
588
589
606
611
611
614
618
618
619
619
623
623
623
623
626
631
631
650
653
655
673
678
678
692
697
697
715
717
720
739
744
744
759
764
764
777
780
782
798
803
803
816
821
821
839
841
844
863
868
868
883
888
888
907
910
912
930
935
935
949
954
954
972
974
977
996
1001
1001
1016
1021
1021
1034
1037
1039
1055
1060
1060
1073
1078
1078
1096
1098
1101
1120
1125
1125
1140
1145
1145
1164
1167
1169
1187
1192
1192
1206
1211
1211
1229
1231
1234
1253
1258
1258
1273
1278
1278
1793
1797
1798
5
5
9
16
20
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
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
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
32
35
39
39
39
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
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
45
45
45
45
45
45
45
46
47
49
49
55
55
55
56
57
57
57
57
57
57
57
58
58
58
58
58
58
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
62
62
62
62
62
62
63
63
63
63
63
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
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
69
69
69
69
69
71
71
71
72
72
72
72
73
73
73
73
73
73
73
73
73
73
74
74
75
75
75
75
75
75
75
77
78
86
87
89
89
89
90
90
90
91
91
92
93
93
93
94
102
102
102
103
103
103
105
106
106
107
107
108
109
109
109
109
109
109
109
109
109
110
111
111
111
111
111
111
113
114
114
115
116
125
125
126
128
129
129
130
133
135
138
138
140
140
142
142
142
143
143
143
144
144
144
144
145
145
145
145
145
145
145
146
148
149
150
150
153
153
154
158
158
159
160
161
162
163
163
164
164
164
164
165
165
165
165
166
169
169
170
170
171
177
179
179
180
181
181
181
181
181
181
182
182
184
184
184
186
186
199
199
199
199
200
200
200
200
201
201
201
201
202
207
207
210
210
211
213
213
213
214
215
215
215
216
216
216
216
218
218
219
219
220
221
223
224
226
230
230
230
231
231
232
233
234
234
234
235
235
235
235
236
236
236
236
236
236
237
237
243
248
248
248
250
250
251
252
252
252
252
252
252
253
253
257
257
257
257
258
264
265
269
269
271
271
271
271
272
272
272
272
274
274
275
275
284
284
284
284
285
285
285
285
286
286
286
287
287
287
287
289
289
289
289
290
290
290
291
291
292
292
294
294
295
295
298
301
303
303
303
304
305
305
305
305
306
306
306
306
306
307
307
307
307
308
313
322
322
323
323
323
323
323
323
326
327
327
328
328
331
331
331
332
332
332
332
332
343
343
347
349
349
350
350
350
355
355
356
361
363
363
364
365
369
369
370
370
370
371
372
375
378
387
387
388
388
394
396
397
398
398
398
398
399
399
399
402
403
403
403
403
404
404
405
405
411
416
417
418
418
422
422
426
430
435
435
435
435
435
436
436
436
440
440
441
441
441
441
444
445
456
456
459
460
461
462
462
463
463
464
469
469
473
473
474
474
474
476
476
478
478
478
478
483
484
488
488
491
500
500
501
501
503
508
508
510
511
511
511
515
515
515
516
516
517
517
518
518
521
524
524
526
529
531
531
539
540
542
544
544
545
545
547
547
548
548
549
549
549
549
549
557
558
560
565
565
569
569
573
575
575
576
576
576
581
581
581
582
582
583
585
586
586
587
587
587
588
589
589
597
607
612
612
615
619
619
620
620
624
624
624
624
627
632
632
651
654
656
674
679
679
693
698
698
716
718
721
740
745
745
760
765
765
778
781
783
799
804
804
817
822
822
840
842
845
864
869
869
884
889
889
908
911
913
931
936
936
950
955
955
973
975
978
997
1002
1002
1017
1022
1022
1035
1038
1040
1056
1061
1061
1074
1079
1079
1097
1099
1102
1121
1126
1126
1141
1146
1146
1165
1168
1170
1188
1193
1193
1207
1212
1212
1230
1232
1235
1254
1259
1259
1274
1279
1279
1794
1798
1799
5
5
6
9
10
11
11
17
18
18
18
18
18
18
18
18
18
18
20
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
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
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
28
29
29
29
29
29
29
29
30
33
36
36
38
38
38
38
38
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
41
41
41
42
42
42
42
42
42
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
45
45
45
45
45
50
50
50
51
56
56
56
57
57
57
57
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
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
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
66
67
67
67
67
67
67
67
67
67
68
72
72
72
73
73
73
73
73
73
73
73
74
74
74
74
74
74
74
74
75
76
76
76
76
76
78
79
85
87
89
89
90
90
91
91
91
92
92
92
93
93
94
94
94
95
103
104
104
104
104
106
108
108
108
108
109
109
109
109
109
109
109
110
110
110
110
110
110
110
110
110
112
112
112
112
112
112
114
115
116
117
125
125
126
127
128
129
130
130
131
134
136
136
139
139
139
141
141
144
144
144
145
145
145
145
146
146
146
147
149
150
151
151
152
152
152
154
154
159
159
159
159
161
161
161
161
162
163
165
165
166
166
167
169
170
170
170
170
170
171
172
177
178
178
178
178
180
180
181
181
181
181
183
183
185
185
185
187
187
190
190
197
199
199
200
200
201
201
202
202
203
207
208
208
209
211
211
215
216
216
216
219
219
219
220
220
220
221
222
224
225
227
228
230
230
231
231
232
232
233
234
236
236
237
237
237
238
238
247
249
249
249
252
252
252
252
253
253
254
254
258
258
258
258
259
259
259
259
264
265
266
270
270
272
272
273
273
276
276
283
285
286
286
286
286
287
287
287
290
290
290
291
291
291
292
293
293
295
295
296
296
301
301
302
304
304
304
305
307
307
307
308
308
309
314
314
314
314
321
321
323
323
323
323
323
324
327
328
328
329
329
332
332
332
332
333
333
333
333
333
333
341
344
344
350
351
351
351
356
356
360
362
365
366
370
370
371
371
371
372
372
372
372
373
376
377
379
389
389
395
396
397
398
399
399
399
399
400
400
400
404
404
404
404
405
406
406
415
417
418
423
423
427
427
427
427
431
434
434
436
436
436
436
436
437
437
441
441
442
442
442
442
445
445
446
446
454
457
457
460
462
463
464
464
465
470
473
474
474
475
475
475
479
479
479
479
484
485
485
485
485
489
489
490
492
502
502
504
509
509
509
511
512
512
512
516
516
517
517
518
519
519
522
525
527
528
530
540
540
540
540
541
543
545
545
546
546
547
547
548
548
549
549
550
550
550
550
558
558
559
559
561
566
566
567
570
570
576
577
577
577
582
582
582
583
584
586
586
587
587
588
588
588
589
598
598
598
598
608
613
613
616
620
620
621
621
625
625
625
625
628
633
633
652
655
657
675
680
680
694
699
699
717
719
722
741
746
746
761
766
766
779
779
782
784
800
805
805
818
823
823
841
843
846
865
870
870
885
890
890
909
912
914
932
937
937
951
956
956
974
976
979
998
1003
1003
1018
1023
1023
1036
1039
1041
1057
1062
1062
1075
1080
1080
1098
1100
1103
1122
1127
1127
1142
1147
1147
1166
1169
1171
1189
1194
1194
1208
1213
1213
1231
1233
1236
1255
1260
1260
1275
1280
1280
1795
1799
1800
4
4
4
5
6
7
9
11
11
12
12
19
19
19
19
19
19
19
19
19
19
19
19
19
19
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
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
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
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
29
29
29
29
29
29
29
29
30
30
31
31
33
36
36
37
37
38
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
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
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
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
46
50
51
51
51
53
53
53
53
53
53
53
54
54
54
54
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
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
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
63
63
64
64
64
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
67
69
69
71
71
72
73
73
73
73
73
74
74
74
74
74
75
75
75
76
76
76
76
76
76
77
77
77
79
80
81
81
85
88
89
89
89
90
90
91
91
91
92
92
93
93
93
94
95
95
96
104
105
105
107
107
107
108
109
109
109
109
109
110
110
110
110
111
111
111
111
111
112
112
112
112
113
113
113
113
113
114
115
116
117
126
127
127
128
128
129
131
132
135
140
140
140
142
142
143
145
145
146
146
147
147
147
147
147
147
147
147
148
150
151
153
153
153
153
155
160
160
160
160
161
161
161
162
162
163
165
166
168
171
171
171
172
173
177
177
177
177
178
179
179
179
179
179
181
182
182
182
183
183
183
183
183
183
184
184
186
186
186
188
188
188
191
191
200
201
201
201
202
204
209
209
210
214
216
217
217
218
218
218
218
218
218
221
221
222
223
225
226
228
229
229
231
231
232
232
232
233
234
236
236
236
237
238
244
248
248
248
250
250
250
250
250
252
253
253
253
254
254
254
254
254
254
254
254
255
255
259
259
259
259
260
260
264
264
265
266
271
271
272
273
274
275
275
275
277
277
284
284
285
286
287
287
288
288
289
289
289
289
289
289
291
291
291
291
291
292
292
292
293
296
296
297
297
302
302
303
303
303
303
303
305
305
305
305
307
308
308
310
315
315
321
322
323
324
324
325
325
325
325
325
325
325
328
329
329
330
330
333
333
334
334
334
334
334
334
342
342
349
349
351
352
357
357
361
361
363
363
366
367
371
371
372
372
372
373
373
374
377
377
377
378
387
388
388
388
390
390
396
397
397
398
399
400
400
401
401
401
404
404
405
405
405
405
406
416
416
418
418
419
424
424
428
428
432
435
437
437
437
438
438
442
442
443
443
443
443
447
447
455
455
461
462
462
463
464
466
471
474
474
475
475
476
476
476
476
480
480
480
480
485
486
486
490
490
490
490
491
500
501
501
501
503
503
505
510
510
510
510
512
513
517
517
517
517
518
518
519
526
528
529
529
531
531
541
541
542
544
546
546
547
547
548
549
549
551
551
551
551
560
560
562
567
567
568
568
575
575
577
578
583
583
583
584
585
587
587
587
588
588
589
589
589
589
590
599
599
609
614
614
617
621
621
622
622
626
626
626
626
629
634
634
653
656
658
676
681
681
695
700
700
718
720
723
742
747
747
762
767
767
777
779
780
783
785
801
806
806
819
824
824
842
844
847
866
871
871
886
891
891
910
913
915
933
938
938
952
957
957
975
977
980
999
1004
1004
1019
1024
1024
1040
1042
1058
1063
1063
1076
1081
1081
1099
1101
1104
1123
1128
1128
1143
1148
1148
1167
1170
1172
1190
1195
1195
1209
1214
1214
1232
1234
1237
1256
1261
1261
1276
1281
1281
1796
1800
1801
4
4
5
5
7
8
11
13
13
18
18
20
20
21
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
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
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
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
37
37
38
38
39
39
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
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
47
51
52
52
52
54
54
54
54
54
54
54
55
55
55
55
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
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
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
64
64
64
65
65
66
67
67
67
67
67
67
67
67
70
72
72
74
74
74
75
75
76
76
77
77
77
77
77
78
78
78
80
81
82
82
82
82
87
89
90
90
90
91
91
91
93
93
94
94
94
94
94
95
95
95
96
96
97
105
105
108
108
108
109
110
110
110
110
110
110
110
111
112
112
112
112
112
113
113
113
113
114
114
114
114
114
114
115
117
117
117
118
125
125
126
126
127
127
129
130
130
130
131
131
132
133
133
136
141
141
141
142
142
143
144
144
145
145
146
146
146
147
147
148
148
148
148
148
148
149
151
152
154
154
156
161
161
162
162
162
162
162
164
165
165
166
169
170
170
172
172
172
174
178
179
180
180
180
180
180
180
181
181
182
183
183
183
184
184
184
184
185
185
187
187
187
189
189
189
189
199
199
200
201
201
201
202
205
207
210
210
211
215
215
216
216
218
218
219
219
219
219
219
219
220
220
220
220
222
222
223
223
224
224
226
227
229
233
233
233
233
234
235
236
236
237
237
248
249
250
251
251
251
251
251
251
252
252
254
254
254
255
255
255
255
255
255
256
256
260
260
260
260
260
263
264
265
266
267
271
272
272
272
272
273
274
274
274
275
276
276
276
286
286
287
287
287
288
289
289
290
290
290
290
292
292
292
292
293
293
293
297
297
298
298
303
304
304
304
304
305
306
306
306
306
307
307
308
309
311
315
321
322
322
323
323
323
325
325
326
326
326
326
326
329
330
330
331
331
332
333
333
333
334
334
335
335
335
335
335
335
350
353
358
358
361
363
364
364
367
368
372
372
373
373
373
373
375
376
377
378
378
379
387
387
387
388
389
389
389
397
399
400
401
401
402
402
402
405
406
406
406
406
416
418
419
419
420
425
425
428
433
434
436
438
438
438
439
439
443
443
444
444
444
444
445
446
446
446
448
448
462
463
464
467
472
474
476
476
476
477
477
477
477
481
481
481
481
486
486
489
490
491
491
491
492
500
500
500
501
502
502
502
506
511
511
513
514
518
518
518
519
519
527
529
529
531
532
532
541
543
545
547
547
547
548
548
549
550
550
552
552
552
552
558
559
559
559
561
561
563
568
568
576
579
584
584
584
585
586
587
588
589
589
589
590
590
590
590
591
599
610
615
615
618
622
622
623
623
627
627
627
627
630
635
635
654
657
659
677
682
682
696
701
701
719
721
724
743
748
748
763
768
768
778
780
784
786
802
807
807
820
825
825
843
845
848
867
872
872
887
892
892
911
914
916
934
939
939
953
958
958
976
978
981
1000
1005
1005
1020
1025
1025
1041
1043
1059
1064
1064
1077
1082
1082
1100
1102
1105
1124
1129
1129
1144
1149
1149
1168
1171
1173
1191
1196
1196
1210
1215
1215
1233
1235
1238
1257
1262
1262
1277
1282
1282
1797
1801
1802
4
5
5
6
8
9
11
11
13
18
18
20
20
20
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
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
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
30
36
37
37
38
38
39
39
39
39
39
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
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
45
45
45
45
45
45
45
48
51
51
52
52
52
52
53
53
55
55
55
55
55
55
55
56
56
56
56
57
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
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
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
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
66
67
67
71
72
72
73
73
75
75
76
76
76
76
76
78
78
78
78
78
79
81
82
82
82
83
83
85
87
89
90
91
92
94
94
95
95
95
95
95
96
96
96
96
97
98
105
106
106
108
108
109
109
109
111
111
111
111
112
113
113
113
114
114
114
114
115
115
115
118
118
118
119
123
126
126
130
130
131
131
131
131
132
132
133
134
134
137
142
142
142
144
146
146
146
146
147
147
147
149
149
150
152
153
154
157
162
162
162
163
163
165
165
165
165
166
166
166
166
170
171
173
175
178
180
181
181
181
181
182
182
182
182
183
184
186
186
188
188
188
190
190
200
201
201
201
201
202
202
202
202
206
207
208
209
211
211
217
217
217
217
219
219
219
220
221
221
221
224
224
225
225
227
228
230
231
232
232
234
234
235
236
236
236
236
236
236
237
237
237
237
238
248
250
250
251
252
252
252
252
253
253
253
253
255
256
256
257
257
260
261
261
261
261
264
266
267
268
272
272
272
272
273
273
273
273
273
273
276
277
277
277
286
288
288
288
288
288
289
291
291
293
293
293
293
294
294
294
298
298
299
299
303
305
305
305
306
307
307
307
307
307
307
307
308
308
308
308
310
312
315
321
321
322
324
324
324
324
327
330
331
331
332
332
332
332
332
333
334
334
334
335
335
336
336
336
336
344
349
349
351
354
359
359
361
363
364
365
365
368
369
373
373
373
374
374
374
376
377
379
379
380
389
390
390
390
398
399
401
402
402
403
403
403
404
404
406
407
407
407
407
416
418
419
420
420
421
426
426
428
434
434
434
435
439
439
439
440
440
444
444
445
445
445
445
445
445
445
446
447
447
447
457
462
462
463
464
465
468
473
474
476
477
477
477
478
478
478
478
482
482
482
482
486
487
490
492
492
492
493
502
503
503
503
507
512
512
512
514
515
517
517
519
519
519
520
520
528
529
530
531
532
533
533
541
544
546
547
547
548
548
548
549
549
551
551
553
553
553
553
558
558
558
559
560
560
560
564
569
569
570
575
575
577
580
585
585
585
586
587
587
589
589
590
590
590
591
591
591
591
592
599
611
616
616
619
623
623
624
624
628
628
628
628
631
636
636
658
660
678
683
683
697
702
702
720
722
725
744
749
749
764
769
769
778
785
787
803
808
808
821
826
826
844
846
849
868
873
873
888
893
893
915
917
935
940
940
954
959
959
977
979
982
1001
1006
1006
1021
1026
1026
1042
1044
1060
1065
1065
1078
1083
1083
1101
1103
1106
1125
1130
1130
1145
1150
1150
1172
1174
1192
1197
1197
1211
1216
1216
1234
1236
1239
1258
1263
1263
1278
1283
1283
1798
1802
1803
4
4
4
5
5
7
9
10
13
13
13
19
20
20
20
20
20
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
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
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
29
29
29
29
29
30
30
34
37
37
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
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
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
49
53
53
54
54
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
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
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
61
61
61
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
64
64
64
64
64
64
64
64
64
64
64
64
64
66
66
66
66
66
67
70
72
72
73
73
73
74
75
75
76
77
77
77
77
79
80
82
83
83
84
84
88
89
90
91
93
93
95
96
96
96
96
97
97
107
107
108
109
109
109
110
110
110
110
111
111
111
111
112
112
112
112
114
114
114
116
116
116
119
119
119
124
124
126
127
130
131
131
132
132
132
133
133
135
135
138
143
143
144
145
145
146
146
146
146
148
148
148
148
149
150
151
153
154
154
158
163
163
163
166
166
167
167
170
171
172
174
176
179
179
182
182
182
182
182
184
185
186
186
187
187
189
189
189
191
191
191
199
199
201
202
202
203
203
207
208
209
209
210
212
212
217
217
217
221
222
222
222
225
225
226
226
228
229
231
231
233
234
236
236
236
237
237
237
237
238
238
248
248
251
251
252
253
253
253
253
253
256
257
257
258
258
262
262
262
262
264
265
267
269
273
273
274
274
274
274
275
277
278
278
286
288
288
288
289
290
291
291
292
292
294
294
294
295
295
295
299
299
300
300
303
303
305
306
307
308
308
308
309
309
311
313
320
321
322
323
324
324
324
328
331
332
332
333
333
334
335
335
335
336
336
337
337
337
337
344
349
349
350
350
355
360
360
361
361
364
365
369
370
374
374
375
375
375
377
377
378
380
380
388
390
391
391
399
399
402
403
403
404
404
404
404
404
405
405
408
408
408
408
416
416
419
420
422
427
427
433
434
435
435
436
440
440
440
441
441
445
445
446
446
446
446
447
448
448
448
457
462
462
463
463
466
469
474
474
474
477
478
478
478
479
479
483
483
483
483
488
490
491
493
493
493
501
503
504
504
508
512
513
513
515
516
517
517
518
518
520
520
521
521
522
529
529
529
531
532
533
545
546
547
547
548
549
549
549
550
550
552
552
554
554
554
554
560
561
561
561
565
570
570
570
575
575
576
576
581
586
586
586
587
587
587
590
590
591
591
591
592
592
593
612
617
617
620
624
624
625
625
629
629
629
629
632
637
637
659
661
679
684
684
698
703
703
723
726
745
750
750
765
770
770
779
780
786
788
804
809
809
822
827
827
847
850
869
874
874
889
894
894
916
918
936
941
941
955
960
960
980
983
1002
1007
1007
1022
1027
1027
1036
1043
1045
1061
1066
1066
1079
1084
1084
1104
1107
1126
1131
1131
1146
1151
1151
1173
1175
1193
1198
1198
1212
1217
1217
1237
1240
1259
1264
1264
1279
1284
1284
1799
1803
1804
5
5
5
6
8
10
11
11
11
13
13
13
13
18
18
18
19
19
19
19
20
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
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
25
25
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
31
31
35
38
38
38
38
38
38
40
40
40
40
40
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
44
44
44
44
44
45
45
46
46
50
51
54
54
55
55
56
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
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
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
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
66
67
67
67
71
71
73
73
73
74
74
74
75
75
76
76
76
76
77
78
78
78
79
80
81
82
82
83
84
84
88
88
91
92
92
92
94
94
94
94
94
95
95
96
96
97
97
109
109
110
110
111
111
111
112
112
112
112
112
112
113
113
115
115
115
115
115
117
117
117
117
117
117
120
126
127
130
131
131
132
132
133
136
136
136
136
139
144
144
144
146
146
146
147
147
148
148
148
148
148
148
149
149
150
151
152
154
155
159
162
163
164
164
166
167
170
170
171
172
175
177
180
182
183
183
184
184
185
186
187
187
188
188
190
190
190
190
190
191
192
192
192
192
199
199
200
200
202
203
208
210
210
211
213
213
215
217
218
218
219
219
219
219
219
219
220
222
223
223
226
226
227
227
229
230
232
233
234
234
237
237
238
238
238
249
249
250
250
250
251
252
252
253
254
254
254
254
255
255
257
258
258
259
259
263
263
263
263
264
265
267
267
268
270
273
274
275
275
276
276
286
288
289
289
290
290
290
290
290
290
290
291
293
293
295
295
295
296
296
296
300
300
301
301
304
304
304
305
305
305
305
307
308
309
312
314
321
322
323
324
324
325
325
326
326
329
332
333
333
333
334
334
335
336
336
337
337
338
338
338
338
351
351
356
361
361
362
362
363
363
363
365
370
371
375
375
376
376
377
378
378
380
380
381
381
389
389
400
403
404
404
405
405
405
406
406
409
409
409
409
417
417
418
418
418
420
423
428
428
434
436
436
437
441
441
441
442
442
446
446
446
447
447
447
447
448
449
449
464
464
467
470
475
475
475
476
476
476
478
479
479
480
480
484
484
484
484
489
490
491
493
493
494
494
494
502
502
509
514
514
516
517
519
519
521
521
522
522
523
527
530
530
530
531
531
531
532
533
546
547
548
549
550
550
550
551
551
553
553
555
555
555
555
559
561
562
562
566
571
571
577
577
582
587
587
587
588
588
588
589
589
589
591
591
592
592
593
593
594
613
618
618
621
625
625
626
626
630
630
630
630
633
638
638
660
662
680
685
685
699
704
704
724
727
746
751
751
766
771
771
780
780
784
787
789
805
810
810
823
828
828
848
851
870
875
875
890
895
895
917
919
937
942
942
956
961
961
981
984
1003
1008
1008
1023
1028
1028
1037
1041
1044
1046
1062
1067
1067
1080
1085
1085
1105
1108
1127
1132
1132
1147
1152
1152
1174
1176
1194
1199
1199
1213
1218
1218
1238
1241
1260
1265
1265
1280
1285
1285
1800
1804
1805
4
5
6
7
9
11
12
13
13
13
13
14
14
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
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
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
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
30
30
32
32
36
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
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
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
45
46
46
46
46
47
47
47
47
51
52
55
55
55
55
55
55
56
56
57
57
57
57
57
57
57
58
58
58
58
58
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
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
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
65
65
65
65
65
65
65
65
65
65
66
66
66
66
67
68
68
68
73
73
74
74
74
76
76
76
76
76
76
77
77
77
77
79
79
79
80
81
82
83
84
85
90
90
91
91
92
93
93
93
94
94
95
95
95
95
96
96
96
97
97
98
98
105
109
109
110
110
110
112
112
112
112
112
112
112
112
113
113
113
113
113
113
114
114
116
118
118
118
118
118
121
126
130
130
131
131
132
133
133
134
134
136
136
137
137
140
142
145
145
145
145
146
146
146
147
147
148
148
149
149
149
149
150
150
151
152
152
153
153
155
155
156
156
160
163
163
163
163
165
165
166
166
166
167
167
167
169
170
171
172
173
176
178
180
181
181
181
184
184
184
184
184
184
186
187
188
188
189
189
189
191
191
193
193
193
193
201
201
202
202
202
203
203
203
209
210
211
211
214
214
216
216
217
217
219
219
220
220
220
220
221
221
227
227
228
228
230
231
231
231
233
234
234
234
234
234
235
237
237
237
238
238
238
238
239
239
251
251
251
251
252
252
253
255
255
255
255
255
255
255
255
255
258
258
259
259
260
260
264
264
264
264
268
268
269
271
273
273
273
274
274
274
276
276
286
286
287
287
288
288
289
290
290
291
291
291
291
291
292
294
294
296
296
296
297
297
297
301
301
302
302
305
305
305
305
306
306
306
306
308
308
308
309
309
309
313
314
315
321
322
323
323
324
326
326
326
326
326
326
330
333
334
334
334
334
335
335
338
338
339
339
344
344
347
352
352
357
362
362
364
364
364
364
371
372
375
376
376
377
377
379
379
381
381
382
382
399
399
399
401
402
404
405
405
406
406
406
407
407
410
410
410
410
419
419
419
419
424
427
429
429
434
435
437
437
442
442
442
443
443
447
447
447
447
448
448
448
448
457
457
460
465
465
468
471
476
477
477
477
477
480
480
481
481
485
485
490
494
494
495
495
495
510
512
512
515
515
515
517
518
520
520
522
522
523
523
528
531
532
532
532
532
533
540
547
547
548
549
550
551
551
552
552
554
554
556
556
556
556
560
560
567
570
570
572
572
573
578
578
583
588
588
588
589
590
590
590
590
592
593
593
594
594
595
614
619
619
622
626
626
627
627
631
631
634
639
639
654
661
663
681
686
686
700
705
705
725
728
747
752
752
767
772
772
785
788
790
806
811
811
824
829
829
849
852
871
876
876
891
896
896
911
918
920
938
943
943
957
962
962
982
985
1004
1009
1009
1024
1029
1029
1042
1045
1047
1063
1068
1068
1081
1086
1086
1106
1109
1128
1133
1133
1148
1153
1153
1168
1175
1177
1195
1200
1200
1214
1219
1219
1239
1242
1261
1266
1266
1281
1286
1286
1801
1805
1806
1
7
7
8
10
11
12
13
15
15
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
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
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
26
26
26
26
26
26
27
27
28
28
29
29
29
29
29
31
31
33
37
37
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
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
42
42
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
45
48
48
48
48
51
51
52
52
52
53
55
55
55
55
55
55
55
55
55
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
60
60
60
60
60
60
60
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
62
62
63
63
63
63
63
63
63
63
63
64
65
65
65
65
65
65
66
66
66
66
66
67
67
67
67
68
69
72
75
76
76
77
77
77
77
77
77
77
77
77
78
78
78
78
80
80
80
81
82
82
82
82
83
83
84
85
85
86
86
90
91
94
94
94
94
94
94
95
95
95
96
96
96
96
97
97
97
98
98
99
99
106
108
110
110
110
111
112
112
113
113
113
113
113
113
113
113
113
114
114
114
114
114
114
114
115
115
117
117
117
119
119
119
119
119
122
126
126
127
131
131
132
132
133
134
137
138
138
141
142
142
146
146
146
147
147
147
147
147
148
148
151
151
152
153
156
156
157
157
161
164
164
166
167
167
168
168
170
172
173
177
179
181
181
182
182
185
185
185
185
185
185
185
185
185
187
188
189
189
190
192
192
194
194
194
194
197
202
202
203
203
204
204
210
210
211
211
211
212
215
215
218
218
218
218
228
229
229
231
232
232
232
234
235
235
235
236
238
238
239
239
239
240
252
252
253
253
254
256
256
256
256
256
256
256
256
256
259
259
260
260
261
261
265
265
265
265
269
269
272
274
274
275
275
277
277
278
284
287
287
289
289
289
289
290
292
293
295
297
297
297
298
298
302
303
306
306
307
307
309
309
310
310
314
315
315
315
315
316
321
322
324
324
324
324
325
327
327
327
327
327
327
327
327
331
334
335
335
336
336
339
339
340
340
342
345
345
348
353
358
363
363
365
365
372
373
377
378
380
380
382
382
383
391
397
400
400
400
402
402
403
405
406
406
407
407
407
408
411
411
411
411
420
420
425
428
428
428
428
430
430
434
435
437
437
438
438
443
443
443
444
444
448
449
449
449
455
458
458
461
463
466
467
469
472
477
478
478
481
481
482
482
486
486
491
495
495
496
496
504
510
511
513
513
516
516
518
519
521
523
524
529
532
533
533
534
541
541
541
541
547
548
548
550
550
550
551
552
552
553
553
555
555
557
557
557
557
568
568
571
571
573
573
574
579
584
587
589
589
589
590
591
591
591
593
594
595
596
615
620
620
623
627
627
628
628
632
632
635
640
640
655
659
662
664
682
687
687
701
706
706
720
724
726
729
748
753
753
768
773
786
789
791
807
812
812
825
830
830
844
848
850
853
872
877
877
892
897
897
912
916
919
921
939
944
944
958
963
963
977
981
983
986
1005
1010
1010
1025
1030
1043
1046
1048
1064
1069
1069
1082
1087
1087
1101
1105
1107
1110
1129
1134
1134
1149
1154
1154
1169
1173
1176
1178
1196
1201
1201
1215
1220
1220
1234
1238
1240
1243
1262
1267
1267
1282
1287
1802
1806
1807
1
1
9
11
13
14
15
16
18
18
18
18
19
19
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
22
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
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
27
28
28
30
32
32
34
37
37
37
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
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
49
49
49
49
51
52
53
53
53
53
53
54
54
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
58
58
58
58
58
58
58
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
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
65
65
65
65
65
65
65
65
65
65
65
65
66
66
67
67
68
68
68
69
69
69
70
72
73
75
76
77
78
78
78
78
78
78
79
79
79
79
81
81
81
82
82
82
83
83
86
86
87
87
92
92
95
95
95
96
96
96
97
97
97
97
97
98
98
98
98
100
100
104
108
109
109
110
111
111
111
112
114
114
114
114
114
114
114
114
114
115
115
115
115
115
115
116
116
118
118
120
120
120
120
120
123
131
131
132
132
132
133
133
133
134
134
134
135
136
136
138
142
146
147
147
147
147
147
147
148
149
149
152
152
153
154
154
154
154
157
157
158
158
161
162
164
165
165
165
166
167
167
167
167
167
168
168
168
168
168
169
170
171
173
178
180
183
183
183
185
185
185
185
186
186
186
186
186
188
189
189
190
190
191
191
193
193
195
195
195
195
198
201
202
203
203
203
203
203
204
204
204
204
204
205
211
212
212
213
216
216
218
218
218
223
227
228
229
230
230
230
230
231
232
233
235
235
235
235
236
237
237
238
238
238
238
239
239
239
239
239
239
239
240
240
241
252
254
254
254
255
256
256
256
256
257
257
257
257
257
259
260
260
261
261
262
262
266
266
266
266
267
272
273
273
274
274
274
274
275
275
275
275
275
276
278
278
278
285
285
289
289
289
290
290
293
294
294
294
296
297
297
298
298
298
299
299
301
301
302
302
303
304
306
307
307
308
308
309
309
309
309
310
310
310
310
310
311
315
316
316
317
325
325
325
325
325
326
327
327
327
327
328
328
328
328
332
335
336
336
336
337
337
338
338
338
338
340
340
341
341
343
343
348
348
352
352
354
359
364
365
372
373
374
376
376
377
377
378
379
380
381
381
384
391
398
398
403
403
403
403
406
407
407
407
407
408
408
408
409
412
412
412
412
420
426
429
429
431
431
438
438
439
439
444
444
444
445
445
447
447
448
448
449
449
450
450
450
456
456
461
461
465
465
467
468
470
473
478
478
482
482
483
483
484
484
484
484
485
487
487
492
493
497
497
504
511
511
512
515
515
516
516
517
519
520
520
520
522
522
522
523
523
524
525
530
533
533
535
542
542
549
551
551
551
552
553
553
554
554
556
556
558
558
558
558
562
569
569
569
574
574
574
574
578
578
580
585
590
590
590
591
591
592
593
593
594
594
594
595
596
597
598
616
621
621
624
628
628
629
629
630
630
630
630
633
633
636
641
641
660
663
665
683
688
688
702
707
707
725
727
730
749
754
754
769
772
772
774
787
790
792
808
813
813
826
831
831
849
851
854
873
878
878
893
898
898
917
920
922
940
945
945
959
964
964
982
984
987
1006
1011
1011
1026
1029
1029
1031
1044
1047
1049
1065
1070
1070
1083
1088
1088
1106
1108
1111
1130
1135
1135
1150
1155
1155
1174
1177
1179
1197
1202
1202
1216
1221
1221
1239
1241
1244
1263
1268
1268
1283
1286
1286
1288
1803
1807
1808
7
7
11
11
12
14
15
16
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
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
26
26
26
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
31
33
35
36
37
37
37
37
37
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
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
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
45
50
50
50
50
54
54
54
54
54
54
54
54
54
54
54
54
54
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
58
58
58
58
58
58
58
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
60
60
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
64
64
64
65
65
65
65
65
65
65
66
68
68
69
69
70
71
72
73
75
75
75
76
77
77
77
78
78
78
78
78
78
80
80
80
80
82
82
82
83
84
84
87
87
88
88
88
88
92
93
93
95
96
96
97
97
97
98
98
98
98
98
98
99
99
101
101
105
105
105
108
109
110
111
111
111
112
112
112
113
113
113
114
114
114
114
114
114
115
116
116
116
116
116
116
117
117
117
119
119
119
121
121
121
121
121
124
126
126
133
134
134
134
135
135
135
136
137
142
143
145
147
147
148
148
148
148
148
149
149
149
149
150
150
153
153
153
154
155
155
158
158
159
159
162
162
162
163
164
164
164
166
166
167
168
168
168
169
169
169
170
170
171
173
173
174
179
181
181
181
183
183
183
185
185
186
186
187
187
187
187
187
189
189
191
191
192
192
194
194
196
196
196
196
198
198
202
202
202
202
203
204
204
204
205
205
205
206
212
213
213
216
217
217
218
219
219
220
220
223
230
231
231
232
233
234
235
235
235
236
237
238
238
239
239
240
240
240
240
240
241
241
242
252
254
254
254
256
256
256
257
257
258
258
258
258
258
260
260
260
261
261
262
262
263
263
264
267
267
267
267
273
274
274
275
275
276
276
276
277
279
279
287
289
290
290
291
291
294
295
295
295
297
298
299
299
299
300
300
302
303
304
305
306
306
306
307
308
309
309
310
310
311
311
311
312
313
316
316
318
325
325
325
326
326
327
327
328
328
329
329
329
329
333
336
336
337
337
338
339
339
341
341
342
342
353
353
355
360
365
365
373
373
373
374
375
377
377
378
379
380
382
382
385
404
404
407
408
408
408
408
409
409
409
410
413
413
413
413
420
427
429
432
432
439
439
440
445
445
445
446
446
448
449
449
450
451
451
451
466
466
468
469
471
474
478
479
483
483
484
485
485
486
486
486
488
488
490
493
498
498
513
516
518
520
521
521
521
523
523
524
525
526
531
533
534
534
536
536
542
550
552
552
552
554
554
555
555
557
557
559
559
559
559
562
570
575
575
579
579
581
586
591
591
591
591
592
593
594
595
595
596
597
598
599
599
599
617
622
622
625
629
629
630
631
631
634
634
637
642
642
661
664
666
684
689
689
703
708
708
726
728
731
750
755
755
770
773
775
788
791
791
793
793
809
814
814
827
832
832
850
852
855
874
879
879
894
899
899
918
921
923
941
946
946
960
965
965
983
985
988
1007
1012
1012
1027
1030
1032
1045
1048
1048
1050
1050
1066
1071
1071
1084
1089
1089
1107
1109
1112
1131
1136
1136
1151
1156
1156
1175
1178
1180
1198
1203
1203
1217
1222
1222
1240
1242
1245
1264
1269
1269
1284
1287
1289
1804
1808
1809
7
7
8
8
8
8
11
13
16
16
16
17
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
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
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
26
26
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
29
32
34
36
36
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
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
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
44
44
44
44
44
44
44
44
46
46
46
46
46
46
46
46
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
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
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
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
62
62
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
65
65
65
67
69
71
75
76
76
76
76
76
77
77
77
77
77
77
77
77
77
77
78
78
78
79
79
79
79
79
79
83
83
83
84
85
85
88
88
88
89
89
92
92
93
94
94
95
96
97
97
98
98
99
99
99
100
100
102
102
106
106
110
111
111
112
112
112
112
113
113
113
113
113
113
113
113
113
113
114
114
115
115
115
115
115
115
117
117
117
118
118
118
122
122
122
122
122
124
125
127
127
131
131
132
132
133
134
135
135
136
136
136
136
138
144
146
146
146
148
149
149
149
149
149
149
149
149
149
154
154
154
155
155
159
159
160
160
163
163
164
165
165
167
167
167
167
168
168
168
169
169
169
170
170
173
174
174
175
179
180
181
182
182
182
184
184
184
184
185
185
185
185
185
185
186
186
187
187
188
190
190
192
192
193
193
195
195
197
197
197
197
202
203
203
203
203
203
204
204
204
205
205
205
206
206
211
213
217
217
218
218
220
220
220
220
220
220
231
232
232
232
233
234
235
236
236
237
238
238
238
239
239
239
239
239
240
240
241
241
241
241
242
252
255
255
255
255
256
256
256
256
256
256
257
257
257
258
258
259
261
261
262
262
263
263
264
264
264
265
267
267
268
268
274
274
274
275
275
275
275
276
276
277
277
278
278
280
280
287
288
288
291
291
291
291
291
291
294
295
296
296
296
299
300
300
301
301
303
304
305
306
307
307
309
309
309
310
310
310
311
311
312
312
314
316
317
319
323
324
326
326
326
326
327
327
327
327
327
327
328
328
329
329
334
337
338
338
339
340
340
342
342
343
343
345
352
354
354
361
363
363
366
374
374
375
376
377
378
378
379
380
380
380
381
383
383
386
391
391
400
405
405
407
408
409
409
409
409
410
410
410
414
414
428
429
433
433
437
441
446
446
447
447
449
450
451
452
452
452
458
465
467
467
470
472
475
480
484
484
485
486
486
487
487
489
489
490
491
493
493
494
499
499
504
504
513
514
517
519
520
521
522
522
522
524
525
526
527
532
537
537
542
550
551
553
555
555
556
556
558
558
560
560
571
571
576
576
578
580
580
587
592
592
593
594
595
596
596
597
598
599
600
600
618
623
623
626
630
630
631
632
632
635
635
638
643
643
662
665
667
685
690
690
704
709
709
727
729
732
751
756
756
771
774
776
780
789
794
794
810
815
815
828
833
833
851
853
856
875
880
880
895
900
900
919
922
924
942
947
947
961
966
966
984
986
989
1008
1013
1013
1028
1031
1033
1046
1051
1051
1067
1072
1072
1085
1090
1090
1108
1110
1113
1132
1137
1137
1152
1157
1157
1176
1179
1181
1199
1204
1204
1218
1223
1223
1241
1243
1246
1265
1270
1270
1285
1288
1290
1805
1809
1810
7
7
7
7
8
8
13
14
14
15
15
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
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
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
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
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
35
37
37
37
38
38
38
38
38
38
38
38
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
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
47
47
47
47
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
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
56
56
56
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
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
61
61
62
62
63
63
64
64
65
65
65
65
66
66
69
71
77
77
77
77
78
78
78
78
79
79
79
80
80
80
80
80
80
84
84
84
85
86
89
89
90
90
93
93
94
94
94
95
95
95
95
95
96
96
98
98
99
99
100
103
103
105
106
106
106
106
107
110
111
113
113
113
113
113
114
114
114
114
115
115
116
116
116
116
116
116
117
118
118
118
118
119
119
119
119
121
123
123
123
123
123
125
125
126
132
133
133
133
133
134
134
134
134
135
136
136
137
137
145
147
147
147
147
149
149
150
150
150
150
150
150
150
150
150
150
150
155
155
155
155
156
160
160
161
161
162
163
163
163
163
163
164
165
165
165
165
165
166
166
166
167
167
167
168
168
168
168
169
169
170
174
175
175
178
180
180
181
182
183
183
183
184
184
185
185
186
186
187
187
189
191
191
191
193
193
194
194
196
196
198
198
198
198
198
202
202
203
203
203
203
204
204
204
204
204
205
205
210
214
218
218
219
219
221
221
221
221
221
221
221
221
223
223
232
232
233
233
234
234
235
236
236
236
236
236
237
237
237
238
238
238
239
239
239
239
240
240
240
243
253
254
254
255
255
256
256
257
257
258
258
258
260
260
261
261
261
261
262
263
263
264
264
264
265
265
268
268
269
269
273
273
274
274
274
275
275
275
276
276
276
276
279
279
281
281
287
289
289
292
292
292
292
292
292
292
292
294
296
297
299
299
300
301
301
302
302
304
305
305
306
307
307
307
307
307
308
308
308
309
309
309
310
310
310
311
311
315
318
320
321
324
325
325
326
326
327
327
328
328
329
329
335
336
336
337
337
338
339
339
340
341
341
343
343
344
344
345
352
362
364
367
373
374
374
374
374
375
376
377
377
379
380
381
381
381
382
384
384
387
389
392
392
400
406
406
407
409
409
410
410
411
411
411
411
415
415
429
434
434
434
442
445
445
447
447
448
448
449
449
450
451
452
453
453
453
458
465
471
473
476
481
483
483
485
485
486
486
487
487
487
487
487
487
488
490
490
490
494
494
495
500
500
502
505
505
513
515
518
520
520
522
523
525
526
527
528
533
538
538
547
552
554
556
556
557
557
559
559
561
561
562
562
571
572
577
577
578
588
591
591
593
593
594
595
596
597
597
598
599
599
600
600
600
600
600
601
619
624
624
627
629
629
631
631
632
633
633
636
636
639
644
644
663
666
666
668
668
686
691
691
705
710
710
728
730
733
752
757
757
772
775
777
778
780
781
790
795
795
811
816
816
829
834
834
852
854
857
876
881
881
896
901
901
920
923
923
925
925
943
948
948
962
967
967
985
987
990
1009
1014
1014
1029
1032
1034
1047
1052
1052
1068
1073
1073
1086
1091
1091
1109
1111
1114
1133
1138
1138
1153
1158
1158
1177
1180
1180
1182
1182
1200
1205
1205
1219
1224
1224
1242
1244
1247
1266
1271
1271
1286
1289
1291
1806
1810
1811
11
13
14
15
15
15
18
18
18
18
18
18
18
20
20
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
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
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
27
27
27
27
28
28
28
28
28
28
28
34
34
34
34
34
34
36
36
37
37
37
37
37
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
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
42
42
42
42
42
42
43
43
43
43
43
45
45
46
46
46
46
46
46
48
48
48
48
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
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
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
60
60
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
64
65
65
66
69
71
72
72
76
77
77
77
77
77
78
78
79
79
80
80
80
81
81
81
81
85
85
85
85
85
86
87
90
90
91
91
93
95
95
95
95
95
96
96
96
96
96
96
96
97
97
97
97
97
98
98
98
99
99
100
104
104
107
107
108
112
113
113
113
114
114
114
114
115
115
115
115
116
116
117
117
117
117
119
119
120
120
120
120
122
124
124
124
124
124
127
131
132
134
134
135
135
135
136
138
138
146
147
148
148
148
149
150
150
150
150
150
150
151
151
151
151
151
151
151
156
156
156
157
161
161
162
162
164
164
164
165
166
166
166
167
167
167
168
168
169
169
169
170
170
171
173
179
182
183
183
184
184
185
185
185
186
186
187
187
188
188
190
192
192
192
192
192
194
194
195
195
197
197
199
199
199
199
203
203
204
204
204
205
205
206
206
210
211
211
211
215
219
219
219
220
220
221
221
221
221
221
222
222
222
222
224
224
233
234
234
235
235
235
236
237
237
237
238
238
238
239
239
239
240
240
240
241
241
241
244
251
254
254
255
256
256
256
257
257
258
258
259
259
259
261
262
262
263
264
264
265
265
265
266
266
267
267
267
267
267
269
269
269
270
270
274
274
275
275
276
276
277
277
277
277
277
282
282
290
290
290
290
292
292
292
292
293
293
293
293
294
295
297
298
300
301
302
302
303
303
305
306
306
306
307
308
308
308
309
309
309
310
310
311
311
312
312
316
319
321
321
322
324
324
325
325
326
327
327
327
328
328
329
329
330
330
334
336
337
337
338
339
340
340
341
342
342
344
344
345
345
348
352
353
363
364
365
368
375
375
376
377
378
378
380
380
381
382
382
382
382
383
385
385
388
390
390
403
407
407
407
408
411
411
412
412
412
412
413
413
413
413
416
416
419
430
434
435
435
435
437
437
443
446
447
448
448
449
449
450
450
451
452
453
454
454
454
461
465
466
472
474
474
477
477
477
482
484
486
486
487
488
488
488
488
489
491
491
491
493
495
495
495
496
501
501
503
503
516
516
519
520
521
521
523
524
526
527
528
529
532
534
539
539
547
548
550
550
553
555
557
557
558
558
559
559
559
559
560
560
560
562
562
563
563
573
574
578
578
578
579
589
590
592
594
594
595
596
597
598
598
598
599
600
601
601
601
601
602
620
625
625
628
630
632
632
633
634
634
637
637
640
645
645
664
669
669
687
692
692
706
711
711
729
731
731
734
734
753
758
758
773
776
778
779
781
791
796
796
812
817
817
830
835
835
853
855
855
858
858
877
882
882
897
902
902
921
926
926
944
949
949
963
968
968
986
988
988
991
991
1010
1015
1015
1030
1033
1035
1048
1053
1053
1069
1074
1074
1087
1092
1092
1110
1112
1112
1115
1115
1134
1139
1139
1154
1159
1159
1178
1183
1183
1201
1206
1206
1220
1225
1225
1243
1245
1245
1248
1248
1267
1272
1272
1287
1290
1292
1807
1811
1812
7
7
8
8
14
15
15
15
15
16
16
16
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
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
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
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
28
28
28
28
29
29
29
29
29
29
29
30
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
37
37
37
37
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
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
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
43
44
44
44
46
46
47
47
47
47
49
49
49
49
52
52
53
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
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
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
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
62
63
63
63
65
66
69
71
76
76
76
77
78
78
78
79
79
79
79
81
86
86
86
86
86
87
88
91
91
92
92
93
95
96
97
97
97
97
97
97
98
98
98
98
99
99
99
99
100
105
105
106
106
108
108
112
112
112
113
114
114
114
115
115
115
115
115
115
116
118
119
119
119
120
120
121
121
121
121
123
125
125
125
125
125
127
128
132
133
133
134
134
134
135
135
135
136
136
139
139
147
147
148
148
148
149
150
150
150
151
151
151
151
152
152
152
152
152
152
152
157
157
157
158
162
162
163
163
163
163
165
165
165
165
165
167
167
167
167
167
168
168
168
168
169
169
170
170
170
171
172
180
182
183
184
184
184
184
184
185
185
185
185
186
186
186
189
189
190
191
192
192
193
193
193
195
195
196
196
198
198
200
200
200
200
202
203
203
204
204
204
204
205
205
205
206
207
210
212
212
216
219
219
219
221
221
221
221
222
222
222
222
223
223
223
223
235
235
236
236
236
236
237
238
238
238
238
238
239
239
239
239
240
240
240
241
241
242
242
245
252
252
252
252
255
255
255
255
255
256
256
256
257
257
257
260
260
260
261
261
262
263
263
265
265
266
266
267
267
268
268
268
271
271
274
274
275
275
275
275
276
276
277
278
278
283
283
290
290
290
290
292
292
293
293
294
294
294
294
295
296
298
299
301
302
303
304
306
307
307
307
307
307
307
307
307
308
309
309
309
309
309
310
310
310
310
311
311
312
313
317
320
320
321
322
322
325
325
326
326
326
326
326
327
327
327
328
328
328
331
331
335
335
337
339
340
342
343
343
345
345
346
346
348
353
354
364
365
365
365
365
366
369
374
374
376
376
380
381
381
382
383
384
386
386
389
403
408
408
408
409
412
412
413
413
413
414
414
417
417
420
420
420
420
431
434
436
436
438
438
444
447
448
448
449
450
452
453
454
455
455
455
461
466
467
473
478
478
478
478
478
478
483
485
487
487
488
489
489
489
489
492
492
493
494
497
502
502
516
517
520
521
522
522
527
528
529
530
533
533
533
533
535
540
540
547
551
551
554
556
558
558
559
560
560
561
561
561
561
563
563
574
574
579
579
579
580
590
591
591
591
591
593
595
597
598
599
600
600
600
601
602
602
602
602
621
626
626
629
631
634
635
635
638
638
641
646
646
665
670
670
688
693
693
707
712
712
730
735
735
754
759
759
774
777
779
779
792
797
797
813
818
818
831
836
836
854
859
859
878
883
883
898
903
903
922
927
927
945
950
950
964
969
969
987
992
992
1011
1016
1016
1031
1034
1036
1049
1054
1054
1070
1075
1075
1088
1093
1093
1111
1116
1116
1135
1140
1140
1155
1160
1160
1179
1184
1184
1202
1207
1207
1221
1226
1226
1244
1249
1249
1268
1273
1273
1288
1291
1293
1808
1812
1813
8
8
8
9
9
16
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
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
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
26
26
26
26
26
26
26
26
26
26
28
28
28
29
29
31
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
37
37
38
38
38
38
38
38
38
38
38
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
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
44
45
47
49
50
50
50
50
50
51
51
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
54
54
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
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
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
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
63
64
78
78
79
79
79
82
85
87
87
87
87
87
88
92
92
93
93
93
93
96
97
98
98
99
99
100
100
101
106
106
107
113
114
115
115
115
117
118
118
118
119
120
120
120
121
121
122
122
124
126
126
126
126
126
127
129
134
134
135
135
135
135
135
135
136
136
136
136
137
140
146
147
147
148
149
149
149
149
150
150
150
150
150
150
150
151
151
151
152
152
153
153
153
154
158
158
158
159
163
163
164
164
164
164
164
165
166
166
167
168
168
168
169
169
170
170
170
170
171
171
171
171
171
172
173
173
173
181
182
182
184
184
184
184
184
185
186
186
187
187
188
188
188
188
190
190
192
193
194
194
194
196
196
197
197
198
199
199
201
201
201
201
202
203
203
204
204
205
205
206
206
206
207
207
207
208
211
211
213
213
213
217
217
220
220
220
220
221
221
221
221
221
221
222
222
222
222
223
223
235
235
236
236
237
237
237
237
238
238
239
239
239
239
240
240
241
241
241
241
241
242
242
242
242
243
243
246
253
253
253
255
255
255
255
256
257
258
258
259
259
259
259
261
261
261
262
263
266
266
267
267
268
268
268
269
269
269
269
272
272
274
275
275
276
276
277
277
277
278
278
278
279
279
279
284
284
288
291
291
291
291
292
292
292
292
292
292
293
293
294
294
294
296
297
299
300
302
303
304
305
306
306
307
307
308
308
308
308
308
309
309
310
310
310
311
311
312
312
312
313
313
313
314
318
322
323
323
324
324
326
326
326
326
326
326
326
327
328
329
329
330
330
330
330
332
332
338
340
341
343
344
344
346
346
347
347
352
354
355
365
366
366
367
370
375
381
381
382
382
382
383
384
385
387
390
392
407
409
409
409
410
413
413
414
414
414
415
415
418
418
421
421
432
435
437
437
437
439
439
439
445
448
450
451
453
454
455
456
456
465
467
468
474
479
479
479
479
484
486
488
489
490
490
493
493
494
494
495
495
498
503
503
505
518
520
521
522
523
523
528
529
530
531
534
534
536
541
541
548
550
552
552
552
555
557
559
559
560
561
561
562
562
564
564
575
578
580
580
581
591
592
592
594
596
598
599
600
601
601
602
603
603
622
627
627
630
632
635
636
636
639
639
642
647
666
671
671
689
694
694
708
713
731
736
736
755
760
760
775
778
780
781
793
798
798
814
819
819
832
837
855
860
860
879
884
884
899
904
923
928
928
946
951
951
965
970
988
993
993
1012
1017
1017
1032
1035
1037
1050
1055
1055
1071
1076
1076
1089
1094
1112
1117
1117
1136
1141
1141
1156
1161
1180
1185
1185
1203
1208
1208
1222
1227
1245
1250
1250
1269
1274
1274
1289
1292
1294
1809
1813
1814
7
10
10
17
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
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
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
28
32
33
33
33
36
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
40
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
44
44
44
46
48
49
49
50
51
51
51
51
51
51
51
51
51
51
52
52
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
55
55
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
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
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
61
61
61
61
61
62
62
64
64
65
65
69
69
77
78
79
80
80
81
81
81
81
81
81
83
85
88
88
88
89
93
93
94
94
94
94
95
95
95
97
98
99
100
102
106
107
107
108
110
113
115
116
116
117
117
117
117
117
117
118
120
121
121
121
122
122
123
123
125
127
127
127
127
127
130
135
135
135
136
136
136
137
137
137
138
139
139
141
147
148
148
148
148
149
149
149
149
149
149
150
150
151
151
151
152
152
154
154
154
155
155
155
155
159
159
159
160
163
164
164
165
165
165
165
165
167
167
169
170
170
171
171
171
172
172
172
172
173
174
174
174
182
182
184
185
185
186
187
187
187
188
188
189
189
189
189
191
191
192
192
193
194
195
197
197
198
198
198
200
200
202
202
202
202
203
204
206
207
207
207
208
208
208
209
211
212
218
218
219
219
220
220
221
221
222
222
223
223
223
223
224
230
235
236
236
237
238
238
238
239
240
240
241
242
242
242
242
242
242
243
243
243
244
244
247
253
253
255
257
258
259
259
260
260
260
260
261
262
262
262
263
264
266
266
267
267
268
268
269
270
270
270
270
273
273
277
278
278
278
279
279
279
279
280
280
285
285
285
289
290
290
290
291
291
292
292
293
293
294
294
295
297
297
300
301
303
304
305
306
307
307
308
308
309
309
309
310
311
312
313
313
313
314
314
314
315
315
319
324
324
324
324
325
326
328
329
330
330
331
331
331
331
333
333
337
339
341
342
343
344
345
345
347
347
348
348
348
353
355
355
366
366
368
371
374
376
383
383
383
384
385
386
386
388
389
391
392
398
403
408
410
410
410
410
412
412
414
414
415
415
415
416
416
419
419
421
428
433
437
438
438
438
446
449
450
451
452
454
455
456
456
457
457
461
466
468
468
475
479
480
480
485
487
487
489
490
491
491
494
494
496
496
499
504
504
505
511
516
519
521
522
523
523
524
529
530
531
532
534
537
541
542
542
550
551
556
558
558
558
560
560
561
562
562
563
563
563
565
565
569
574
576
579
581
581
581
592
592
595
597
599
600
600
601
602
602
603
604
604
623
628
628
631
633
636
637
637
640
640
643
646
646
648
667
672
672
690
695
695
709
714
732
737
737
756
761
761
776
779
781
781
794
799
799
815
820
820
833
838
856
861
861
880
885
885
900
903
903
905
924
929
929
947
952
952
966
971
989
994
994
1013
1018
1018
1033
1036
1038
1051
1056
1056
1072
1077
1077
1090
1095
1113
1118
1118
1137
1142
1142
1157
1160
1160
1162
1181
1186
1186
1204
1209
1209
1223
1228
1246
1251
1251
1270
1275
1275
1290
1293
1295
1810
1814
1815
8
8
10
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
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
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
25
25
25
25
25
25
25
26
26
26
26
26
28
28
32
32
32
34
34
34
34
34
34
34
34
34
34
34
34
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
44
45
45
47
47
47
47
47
47
47
49
50
50
51
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
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
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
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
61
61
61
61
61
61
62
62
63
63
63
63
63
63
64
64
64
66
66
70
70
77
78
78
79
79
81
81
82
82
82
82
84
85
86
89
89
89
90
94
94
95
95
96
96
96
96
98
98
99
99
100
103
106
106
107
108
108
110
111
113
113
114
114
115
115
117
117
118
118
118
118
119
119
121
122
122
123
123
124
124
126
128
128
128
128
128
128
131
131
137
137
138
138
140
140
142
148
148
149
150
150
150
150
150
150
150
150
151
151
152
152
153
153
155
155
155
156
156
160
160
160
161
163
163
164
165
165
165
165
166
166
166
166
168
171
172
172
173
173
173
173
175
175
175
175
182
182
183
183
184
185
188
188
188
190
190
190
190
193
194
196
198
198
199
199
201
201
202
203
203
203
203
204
205
208
208
209
209
212
212
213
213
219
219
219
220
221
221
221
222
222
223
223
224
224
224
224
224
231
233
234
236
236
237
237
238
239
239
239
240
241
241
243
243
243
244
244
245
248
253
254
255
256
259
261
261
261
261
261
261
262
263
265
267
268
268
268
269
269
269
269
269
270
271
271
271
271
274
274
279
279
280
280
281
286
286
286
290
290
291
292
292
292
293
293
294
294
294
295
295
296
302
303
304
305
306
307
307
307
308
308
308
309
310
310
311
312
314
314
315
315
316
316
316
320
325
325
325
325
325
326
326
326
327
330
332
332
332
332
337
340
340
342
343
344
344
344
345
346
346
348
348
349
349
352
354
366
367
369
372
374
374
375
377
378
381
382
382
382
384
384
384
385
386
387
389
390
392
399
407
409
411
411
413
415
415
416
416
416
417
417
420
420
421
429
429
429
434
438
438
439
439
439
439
448
449
450
450
452
453
455
455
455
456
457
457
458
458
465
467
476
479
481
481
486
486
487
487
488
488
490
490
491
492
492
494
495
495
495
495
495
497
497
500
505
505
512
520
522
523
523
524
525
530
531
532
533
534
538
542
542
542
543
543
551
551
552
552
557
559
559
561
561
562
563
563
563
564
564
566
566
570
577
578
579
579
580
582
592
594
595
596
598
600
600
600
601
601
602
603
604
605
605
624
629
629
632
632
634
636
636
637
638
638
641
641
644
647
649
668
673
673
691
696
696
710
712
712
715
733
738
738
757
762
762
780
782
795
800
800
816
821
821
834
836
836
839
857
862
862
881
886
886
901
904
906
925
930
930
948
953
953
967
969
969
972
990
995
995
1014
1019
1019
1037
1039
1052
1057
1057
1073
1078
1078
1091
1093
1093
1096
1114
1119
1119
1138
1143
1143
1158
1161
1163
1182
1187
1187
1205
1210
1210
1224
1226
1226
1229
1247
1252
1252
1271
1276
1276
1294
1296
1811
1815
1816
10
10
10
15
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
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
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
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
28
29
33
33
33
33
33
33
35
35
35
35
35
35
35
35
35
35
35
35
36
37
37
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
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
42
42
43
43
47
47
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
51
51
51
51
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
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
56
56
56
56
56
56
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
58
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
62
64
64
64
64
64
64
65
65
65
65
67
67
77
80
80
80
80
85
86
87
90
90
90
91
95
95
96
96
97
97
99
99
99
99
100
100
100
100
104
105
106
107
108
109
109
110
114
114
116
116
116
116
120
120
120
124
124
125
125
127
129
129
129
129
132
132
134
135
139
141
141
149
149
149
149
149
150
150
150
151
151
151
151
151
151
154
154
156
156
156
156
161
161
161
162
162
163
164
165
165
166
166
166
167
167
167
167
168
168
168
169
173
174
174
176
180
183
183
183
183
184
186
187
187
188
188
188
188
189
189
189
192
192
194
195
197
199
199
200
200
202
202
203
203
204
204
204
204
204
205
214
214
220
220
220
220
220
220
221
221
221
222
222
222
225
225
225
232
232
234
235
236
236
237
237
238
238
239
239
239
239
240
240
240
240
241
242
242
242
244
246
249
254
254
257
258
258
259
259
259
259
260
260
261
262
263
264
266
268
268
268
268
269
269
269
270
270
270
271
272
272
274
275
275
275
279
279
282
287
287
287
287
291
291
291
291
291
292
292
292
293
293
293
295
295
296
296
297
297
303
304
305
306
307
307
307
308
308
308
309
309
310
310
310
310
311
311
312
313
317
317
321
325
325
326
326
327
327
328
329
329
330
330
330
330
331
343
344
345
345
345
345
346
347
347
349
349
350
350
353
353
355
355
368
370
373
373
374
375
376
378
379
381
381
381
382
382
383
383
383
383
385
386
387
388
390
391
392
392
393
400
400
408
408
410
410
412
412
414
417
417
417
418
418
421
421
430
430
435
440
440
440
440
449
450
451
453
453
454
454
456
456
457
458
458
458
459
459
466
466
468
468
477
482
482
486
487
488
489
489
491
491
492
493
493
494
494
494
495
496
496
496
496
496
501
505
505
506
506
513
513
521
521
523
523
524
524
525
526
528
529
531
532
533
534
539
543
543
544
544
553
553
558
560
560
563
564
564
565
565
567
567
571
571
578
579
579
580
581
581
583
595
596
597
599
599
599
600
600
601
601
602
602
603
604
605
606
606
625
630
630
635
637
637
638
639
639
642
642
645
648
650
669
674
674
692
697
697
711
713
716
734
739
739
758
763
763
781
783
796
801
801
817
822
822
835
837
840
858
863
863
882
887
887
902
905
907
926
931
931
949
954
954
968
970
973
991
996
996
1015
1020
1020
1038
1040
1053
1058
1058
1074
1079
1079
1092
1094
1097
1115
1120
1120
1139
1144
1144
1159
1162
1164
1183
1188
1188
1206
1211
1211
1225
1227
1230
1248
1253
1253
1272
1277
1277
1295
1297
1812
1816
1817
5
5
8
8
10
10
10
10
18
18
18
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
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
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
25
25
25
25
25
25
25
25
25
25
26
26
26
34
34
34
34
34
34
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
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
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
42
42
42
42
42
42
42
42
42
42
44
44
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
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
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
58
58
58
58
59
59
59
59
61
61
61
61
61
61
61
61
61
61
62
62
63
65
65
66
66
68
68
80
80
80
85
86
87
88
91
91
91
92
96
96
97
97
97
100
100
101
101
105
106
108
109
110
111
113
115
115
115
116
116
116
121
125
125
125
126
126
128
130
130
130
130
133
133
134
135
135
135
136
136
139
147
149
149
149
149
150
151
151
152
152
152
153
153
153
153
155
155
156
157
157
157
162
162
162
163
163
165
166
167
167
167
168
168
168
168
168
169
169
169
170
170
171
174
174
175
175
175
177
181
181
184
184
184
184
185
187
188
188
188
188
189
189
189
189
190
190
190
192
192
193
193
196
198
200
200
201
201
203
203
203
203
203
204
204
205
205
205
205
205
205
205
205
206
206
207
212
213
213
213
215
215
218
220
220
220
220
221
221
222
223
223
224
224
224
224
224
224
226
226
226
233
233
233
233
237
238
238
239
239
239
240
240
240
240
240
240
241
241
241
241
242
242
242
242
243
243
243
243
245
247
250
255
255
255
255
258
259
259
259
259
260
260
260
260
261
261
263
264
265
267
269
270
270
270
271
271
271
272
273
273
274
275
275
276
276
276
277
277
278
280
280
283
288
288
288
288
288
288
289
291
291
291
291
292
293
294
294
295
295
295
295
295
297
297
297
298
298
306
307
308
308
309
309
309
310
310
310
311
311
311
311
311
312
312
312
312
313
313
313
314
314
316
317
317
317
317
318
322
325
326
326
326
326
326
326
326
327
327
328
328
329
330
330
330
330
331
331
331
331
332
337
337
344
345
346
346
346
346
346
346
347
348
348
348
348
350
350
351
351
351
351
353
355
356
356
371
374
374
376
377
383
383
384
384
384
384
386
386
387
387
388
388
389
389
390
391
392
393
393
394
401
401
401
401
408
410
411
411
413
413
415
418
418
418
419
419
422
422
429
430
430
430
430
431
436
438
439
439
439
441
441
441
441
450
450
452
454
454
455
455
457
457
457
458
458
459
459
459
459
459
459
460
460
460
466
468
469
469
478
483
483
487
489
490
490
492
492
493
494
494
494
494
496
497
497
497
497
497
497
497
502
503
506
506
507
507
514
514
514
514
521
523
524
524
525
527
529
530
532
532
533
533
534
534
535
535
540
542
543
543
543
543
544
545
545
551
552
552
552
554
554
559
561
561
563
563
564
565
565
566
566
568
568
572
572
572
572
579
579
581
581
582
582
584
598
600
600
600
601
602
602
603
603
603
604
604
605
605
606
606
607
607
626
631
631
636
638
638
639
640
640
640
640
643
643
643
643
646
649
651
670
675
675
693
698
698
712
714
717
735
740
740
759
764
764
782
784
797
802
802
818
823
823
836
838
841
859
864
864
883
888
888
903
906
908
927
932
932
950
955
955
969
971
974
992
997
997
1016
1021
1021
1039
1041
1054
1059
1059
1075
1080
1080
1093
1095
1098
1116
1121
1121
1140
1145
1145
1160
1163
1165
1184
1189
1189
1207
1212
1212
1226
1228
1231
1249
1254
1254
1273
1278
1278
1296
1298
1813
1817
1818
1
1
4
5
6
6
10
10
10
10
11
11
18
18
18
18
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
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
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
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
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
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
42
42
42
42
42
42
45
45
45
45
45
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
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
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
60
60
60
60
62
63
63
64
65
66
69
69
70
72
77
78
80
81
81
82
82
82
82
82
82
86
87
88
88
92
92
92
93
96
97
97
97
98
98
100
101
106
106
107
109
111
113
114
114
116
117
117
118
118
118
118
118
118
122
122
126
126
126
127
127
129
131
131
131
131
134
134
134
135
135
135
135
135
135
136
136
136
136
136
137
139
140
147
149
151
151
152
153
153
153
154
154
154
154
156
156
158
158
158
163
163
163
163
164
164
166
167
168
168
168
168
169
169
169
169
170
170
170
170
170
171
171
171
171
172
176
176
176
178
184
184
186
188
188
188
188
189
189
189
189
190
190
190
190
191
191
194
194
197
199
201
201
202
202
203
204
204
204
204
205
206
206
206
206
206
206
206
206
206
207
207
207
207
207
208
212
212
212
213
214
214
214
218
220
222
222
222
223
224
224
224
224
225
225
225
225
225
225
227
227
227
231
233
233
234
234
238
238
239
239
239
240
240
241
241
241
241
241
242
242
242
242
242
243
243
243
243
244
244
244
244
246
248
248
251
251
255
255
259
259
259
259
260
260
260
260
261
261
261
261
261
262
264
266
268
269
270
271
271
271
272
272
273
274
274
274
275
275
276
277
277
277
277
277
278
278
278
278
278
278
279
284
286
288
288
289
289
289
289
289
291
293
294
295
295
295
296
296
296
296
297
298
298
298
299
299
300
301
307
307
308
309
309
309
310
310
310
310
311
312
312
312
312
312
313
313
313
313
314
314
314
315
315
318
318
319
323
325
325
325
326
326
326
327
327
327
328
328
330
330
330
330
331
331
331
331
332
332
332
332
335
338
338
339
343
344
345
346
346
346
347
347
347
347
348
351
351
352
352
352
352
353
355
356
357
357
368
372
372
374
375
375
377
382
384
384
385
385
385
389
389
390
390
391
391
392
393
395
399
401
401
402
402
408
410
411
412
412
414
414
416
419
419
419
420
420
420
423
423
431
431
432
437
438
438
438
439
440
440
440
442
442
446
448
451
451
453
455
455
456
456
457
458
459
459
460
460
460
460
461
461
461
466
468
469
470
470
479
484
484
485
487
488
489
490
491
493
493
494
495
497
498
498
498
498
498
498
503
504
504
508
508
512
514
514
515
515
519
521
523
524
525
525
526
528
530
531
533
535
535
536
536
541
544
544
545
546
546
551
551
551
552
553
553
553
560
561
562
562
564
564
565
566
566
567
567
569
569
570
572
572
573
573
579
580
581
582
582
583
583
585
592
599
600
601
601
601
602
603
603
606
606
607
607
608
608
627
631
632
632
635
637
639
639
640
644
644
644
644
647
650
652
671
676
676
694
699
699
713
715
718
736
741
741
760
765
765
776
783
785
798
803
803
819
824
824
837
839
842
860
865
865
884
889
889
904
907
909
928
933
933
951
956
956
970
972
975
993
998
998
1017
1022
1022
1033
1040
1042
1055
1060
1060
1076
1081
1081
1094
1096
1099
1117
1122
1122
1141
1146
1146
1161
1164
1166
1185
1190
1190
1208
1213
1213
1227
1229
1232
1250
1255
1255
1274
1279
1279
1290
1297
1299
1814
1818
1819
1
1
1
2
5
5
6
6
7
7
8
12
12
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
20
20
20
20
20
20
20
20
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
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
26
26
26
26
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
36
37
37
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
40
40
40
40
41
41
41
42
42
45
46
46
46
46
48
48
48
48
48
48
50
50
51
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
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
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
60
61
61
61
61
63
64
64
65
65
65
65
66
66
66
70
70
70
73
79
79
80
80
82
82
83
83
83
83
85
87
88
93
93
93
94
97
97
97
97
98
98
99
99
99
100
100
101
106
107
107
109
109
109
109
110
112
114
114
115
115
115
115
116
116
118
118
119
119
119
119
122
123
127
127
127
127
128
128
130
132
132
132
132
135
135
135
135
136
136
136
136
136
137
137
137
137
137
137
138
138
140
141
148
149
150
153
154
155
155
155
155
159
159
163
164
164
164
164
165
165
166
166
167
169
169
170
170
170
170
171
171
171
171
171
172
172
172
172
172
172
173
173
174
174
175
175
175
177
177
177
179
183
187
187
187
189
189
189
189
190
190
190
191
191
191
191
191
191
192
192
195
195
198
200
202
202
203
203
203
205
205
205
206
207
207
207
207
207
207
207
207
207
207
207
208
208
208
208
208
208
209
209
214
215
215
215
219
220
221
223
223
223
224
225
226
226
226
226
228
234
235
235
236
239
240
240
240
241
242
242
242
242
242
243
243
243
243
243
243
243
244
244
244
244
244
245
245
247
252
252
258
258
260
260
260
260
261
261
261
262
262
262
262
262
262
262
264
264
265
267
269
269
270
270
271
272
272
273
273
274
275
275
277
278
278
278
278
278
278
278
279
279
279
279
279
279
280
280
285
289
290
290
290
290
290
291
292
295
295
295
297
297
297
297
298
299
301
302
305
306
307
308
308
308
308
308
309
310
310
311
311
312
313
313
313
313
313
314
314
314
314
314
314
315
315
315
315
316
316
317
317
319
319
324
327
328
328
328
329
329
329
329
331
331
331
331
332
332
333
333
333
333
333
333
336
336
344
346
347
347
348
348
348
348
349
352
352
353
353
353
353
353
353
356
357
373
373
374
375
376
377
377
378
383
383
385
386
390
390
391
391
393
394
396
402
403
403
408
408
411
412
415
415
415
417
419
419
420
420
420
421
421
421
421
421
421
424
424
430
430
432
432
438
440
441
441
441
443
443
447
449
449
451
454
456
456
457
457
459
460
461
461
461
461
462
462
462
466
466
469
470
480
485
485
487
488
490
490
490
491
492
494
494
495
496
496
499
499
499
499
504
509
515
516
516
520
521
521
524
524
525
527
529
531
532
534
534
534
534
536
536
537
537
542
543
543
545
545
547
547
553
554
554
554
561
561
562
562
563
563
565
565
566
567
567
568
568
570
570
573
574
574
579
579
581
582
583
583
586
593
597
600
600
601
602
602
603
603
603
604
604
607
607
608
608
609
609
628
633
633
636
638
640
640
641
645
645
645
645
648
651
653
672
677
677
695
700
700
714
716
719
737
742
742
761
766
777
781
784
786
799
804
804
820
825
825
838
840
843
861
866
866
885
890
890
905
908
910
929
934
934
952
957
957
971
973
976
994
999
999
1018
1023
1034
1038
1041
1043
1056
1061
1061
1077
1082
1082
1095
1097
1100
1118
1123
1123
1142
1147
1147
1162
1165
1167
1186
1191
1191
1209
1214
1214
1228
1230
1233
1251
1256
1256
1275
1280
1291
1295
1298
1300
1815
1819
1819
1820
2
3
7
7
8
8
12
13
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
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
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
25
25
25
25
25
25
25
25
25
25
25
25
26
26
27
33
33
33
34
34
34
35
35
35
36
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
39
39
39
39
39
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
42
42
47
47
48
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
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
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
60
60
62
62
62
62
62
62
64
65
65
66
66
66
67
67
71
71
78
78
81
81
81
81
86
86
88
88
89
94
94
94
95
97
98
98
99
100
100
100
100
100
101
101
101
101
108
110
110
110
111
113
116
116
117
117
117
117
124
128
128
128
128
128
128
129
129
131
133
133
133
133
136
136
137
137
137
138
138
138
138
138
139
139
139
141
142
148
148
151
152
152
153
153
153
153
154
155
158
158
160
160
165
165
165
165
166
166
167
167
168
168
170
170
171
171
172
172
172
173
173
173
173
173
174
174
174
174
174
175
175
176
176
176
178
180
183
183
183
187
188
188
188
189
189
191
191
191
191
191
191
191
192
192
192
192
193
193
196
199
201
203
203
204
204
206
206
206
208
208
208
208
208
208
208
209
209
209
209
209
210
210
213
215
216
216
219
219
222
223
223
224
224
224
224
224
225
226
229
233
233
235
236
237
239
240
241
241
241
242
242
242
243
243
243
244
244
244
244
244
244
245
245
245
245
246
246
248
252
253
253
254
254
258
259
259
260
260
262
262
262
262
262
262
263
263
263
263
265
265
266
268
272
273
273
274
274
275
276
276
279
279
279
279
279
280
280
280
280
280
280
281
281
286
288
288
290
290
290
291
291
293
294
294
295
295
295
295
296
296
296
297
297
297
299
306
307
307
308
309
309
309
309
310
310
311
311
311
312
312
314
314
314
315
315
315
315
315
316
316
316
316
317
317
318
325
325
325
326
328
329
329
329
330
330
330
330
331
331
333
333
333
333
333
333
334
334
334
334
345
346
346
347
347
348
348
349
349
350
350
353
353
354
354
354
354
354
354
355
355
355
357
365
374
374
377
378
378
379
386
387
391
391
392
392
393
394
395
397
401
401
403
409
409
410
410
410
412
416
418
420
420
421
421
421
422
422
422
422
425
425
431
439
439
441
442
442
444
444
452
455
455
457
457
457
458
458
459
459
460
461
462
462
463
463
463
467
467
468
468
468
470
478
481
486
486
491
491
491
492
493
493
495
495
496
496
500
500
500
500
505
506
508
508
510
514
514
516
522
522
523
523
523
525
525
528
530
532
533
535
535
537
537
538
538
543
544
548
548
552
554
555
555
564
564
566
566
567
568
568
569
569
571
571
572
572
574
580
580
581
581
581
582
583
584
587
591
598
601
601
603
603
603
604
604
604
605
605
608
608
609
609
610
610
629
634
634
637
639
639
641
641
642
642
646
646
646
646
649
652
654
673
678
678
696
701
701
715
717
720
738
743
743
762
765
765
767
782
785
787
800
805
805
821
826
826
839
841
844
862
867
867
886
891
891
906
909
911
930
935
935
953
958
958
972
974
977
995
1000
1000
1019
1022
1022
1024
1039
1042
1044
1057
1062
1062
1078
1083
1083
1096
1098
1101
1119
1124
1124
1143
1148
1148
1163
1166
1168
1187
1192
1192
1210
1215
1215
1229
1231
1234
1252
1257
1257
1276
1279
1279
1281
1296
1299
1301
1816
1819
1820
1821
3
4
5
8
8
8
8
9
9
13
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
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
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
26
26
26
26
26
26
26
26
28
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
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
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
40
40
40
40
40
40
40
40
40
41
41
41
42
42
42
42
42
42
42
42
42
43
47
48
48
49
49
49
49
49
49
49
50
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
52
52
52
52
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
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
57
57
57
57
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
61
61
63
63
63
63
64
65
66
66
66
66
66
66
66
67
67
67
67
67
67
68
70
70
72
72
79
79
79
79
81
81
81
86
88
89
89
90
95
95
95
96
98
98
98
98
98
98
99
99
100
101
101
101
102
102
109
111
111
111
114
114
115
115
115
117
117
117
117
117
122
122
125
126
128
128
129
129
129
129
130
130
132
134
134
134
134
135
136
137
137
137
137
137
137
138
138
138
139
139
140
140
140
142
142
149
149
149
149
150
152
153
153
153
153
154
154
154
154
155
156
159
161
161
165
166
166
166
166
167
168
168
168
168
168
169
171
171
171
172
172
172
172
172
172
173
173
173
174
174
175
175
176
176
177
177
177
179
181
183
187
187
188
189
189
189
189
189
191
191
191
191
192
192
193
193
193
193
194
194
195
195
195
197
200
202
203
204
204
205
205
207
207
207
207
208
208
208
208
209
209
209
209
209
209
209
210
210
211
211
214
214
220
220
220
220
223
224
224
224
224
225
225
225
225
225
225
226
227
230
234
236
237
239
239
239
240
241
242
242
243
243
243
243
243
243
243
243
244
244
244
245
245
246
246
246
246
247
247
249
253
253
253
254
254
254
258
258
259
260
260
260
260
262
262
263
263
264
264
264
264
266
266
269
272
273
274
274
275
275
276
277
277
277
277
278
279
279
279
279
280
280
280
280
280
280
280
280
281
281
282
282
287
289
291
291
291
291
292
294
295
295
295
295
296
296
296
296
297
298
298
298
298
307
307
308
308
309
310
310
310
311
311
312
312
312
313
313
313
314
314
314
314
315
315
315
316
316
317
317
317
317
317
318
318
319
325
326
327
327
329
329
330
331
331
331
331
331
331
333
333
334
334
335
335
335
335
338
346
347
349
350
350
351
351
354
354
355
355
355
355
356
356
356
356
366
366
366
375
375
378
379
379
385
387
388
392
392
393
393
393
395
396
398
402
411
411
411
411
417
419
421
421
422
422
422
422
423
423
423
423
426
426
426
426
430
432
440
440
440
445
445
451
453
458
458
458
459
459
460
461
463
463
464
464
464
469
469
469
469
479
479
479
482
487
487
492
492
492
496
496
497
497
498
501
501
501
501
506
506
509
511
515
524
524
524
524
526
529
531
533
534
535
538
538
539
539
543
544
545
549
549
553
553
564
565
565
567
567
568
569
569
569
569
570
570
572
572
572
572
573
582
582
582
582
583
585
588
592
592
592
599
604
604
604
605
605
605
606
609
609
610
610
611
611
630
635
635
638
642
642
643
643
647
647
647
647
650
653
655
674
679
679
697
702
702
716
718
721
739
744
744
763
766
768
779
783
786
788
801
806
806
822
827
827
840
842
845
863
868
868
887
892
892
907
910
912
931
936
936
954
959
959
973
975
978
996
1001
1001
1020
1023
1025
1040
1043
1045
1058
1063
1063
1079
1084
1084
1097
1099
1102
1120
1125
1125
1144
1149
1149
1164
1167
1169
1188
1193
1193
1211
1216
1216
1230
1232
1235
1253
1258
1258
1277
1280
1282
1297
1300
1302
1817
1821
1822
4
4
4
4
5
5
5
6
8
10
10
13
13
14
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
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
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
25
26
26
26
27
29
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
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
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
40
42
42
44
46
46
46
48
48
48
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
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
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
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
59
59
59
59
59
59
59
59
59
60
60
60
64
64
64
64
64
64
65
66
66
67
67
68
68
68
68
69
71
71
73
73
73
79
79
79
80
80
81
82
82
83
83
86
88
89
90
90
91
96
96
96
97
97
98
99
99
99
100
101
101
102
102
109
110
112
114
114
114
115
115
115
116
116
116
117
118
118
119
119
120
123
123
126
129
130
130
130
130
131
131
133
135
135
135
135
136
136
136
137
137
137
137
138
138
138
138
138
138
139
139
139
139
141
149
149
151
151
151
151
153
153
153
153
154
154
154
154
155
155
155
155
155
157
160
162
162
166
167
167
167
168
168
169
169
169
169
170
170
171
171
171
172
172
172
172
172
172
173
173
173
173
173
173
174
174
174
175
177
177
178
178
180
182
188
188
189
189
189
189
189
190
190
190
190
192
192
193
193
195
195
195
196
196
198
201
203
203
204
205
205
205
206
206
207
207
207
208
208
208
208
208
208
209
209
209
209
210
210
210
210
210
210
210
220
220
224
224
224
224
225
225
225
225
225
226
226
226
226
226
228
231
233
233
235
239
240
240
240
240
241
241
242
242
242
242
243
243
243
243
243
244
244
244
244
244
244
245
245
245
247
247
248
248
250
254
254
255
255
259
259
260
260
260
260
260
261
261
261
263
263
264
264
264
268
270
272
272
274
275
275
276
276
277
278
278
278
279
279
279
279
280
280
280
280
281
281
281
281
281
281
281
288
288
288
290
291
291
291
291
293
295
295
295
295
296
296
296
296
297
297
297
297
299
299
308
309
309
310
311
311
311
311
312
312
312
313
313
313
313
313
313
314
314
314
314
314
314
315
315
315
315
316
316
316
317
317
318
318
318
319
319
327
330
330
331
331
331
331
331
332
332
332
332
332
334
334
335
335
338
346
346
347
348
350
351
351
352
352
355
355
356
356
356
356
357
357
367
367
376
376
377
379
385
388
389
393
393
394
394
397
399
401
401
403
412
412
414
418
418
420
422
422
422
423
423
423
427
427
427
427
430
430
431
441
446
446
451
454
459
459
459
459
459
460
460
461
462
464
464
465
465
465
470
470
480
480
483
488
488
490
493
497
497
498
498
498
502
502
502
502
507
510
512
514
514
516
525
525
527
530
532
534
535
535
539
539
540
540
543
543
544
545
550
550
560
564
564
566
566
568
568
569
571
571
572
572
573
573
573
573
574
583
583
584
586
589
593
593
600
603
605
605
605
606
607
610
610
611
611
612
612
631
636
636
639
643
643
644
644
648
648
648
648
654
656
675
680
680
698
703
703
717
719
722
740
745
745
764
767
769
780
784
787
789
802
807
807
823
828
828
841
843
846
864
869
869
888
893
893
911
913
932
937
937
955
960
960
974
976
979
997
1002
1002
1021
1024
1026
1041
1044
1046
1059
1064
1064
1080
1085
1085
1098
1100
1103
1121
1126
1126
1145
1150
1150
1168
1170
1189
1194
1194
1212
1217
1217
1231
1233
1236
1254
1259
1259
1278
1281
1283
1298
1301
1303
1818
1822
1823
5
5
5
5
6
6
6
7
11
11
12
12
14
15
15
15
15
17
17
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
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
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
25
25
25
25
25
25
25
26
26
28
30
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
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
39
40
40
40
45
45
46
47
47
47
47
47
47
47
47
47
48
48
48
48
49
49
49
49
49
49
49
49
49
49
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
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
53
53
53
53
54
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
57
58
58
59
59
59
60
60
60
60
60
61
61
61
65
65
65
65
65
65
66
66
66
67
67
67
68
68
69
69
69
74
74
80
80
80
81
81
83
83
83
83
83
83
89
90
92
97
97
97
98
98
98
98
98
98
99
99
99
99
100
100
101
101
101
101
102
102
102
102
103
106
111
113
116
116
116
116
117
117
117
119
119
119
119
119
119
121
121
127
128
128
130
131
131
132
132
134
136
136
138
139
139
139
139
139
139
140
140
140
140
140
142
142
152
152
152
152
154
154
154
154
155
155
156
156
156
156
156
156
156
156
156
158
161
163
163
163
168
168
168
169
170
170
170
171
171
173
173
173
174
174
174
174
174
174
175
175
175
176
176
178
181
181
183
183
188
190
190
190
190
190
190
190
191
191
191
191
191
191
191
191
191
191
193
193
196
196
196
197
197
202
204
204
205
205
206
206
206
207
207
209
209
209
210
210
210
210
211
211
211
211
211
216
223
223
225
225
225
225
226
226
227
227
227
227
227
227
227
229
232
233
233
234
234
241
241
241
242
242
243
244
244
244
245
245
245
245
246
246
246
248
248
249
249
251
253
254
254
254
254
255
256
256
259
261
261
261
261
261
261
261
261
262
262
262
262
262
262
262
262
264
264
271
273
275
276
276
277
277
278
280
281
281
281
281
282
282
282
282
282
282
282
288
288
289
289
289
292
294
294
294
296
296
296
296
297
297
298
298
298
298
298
298
299
309
310
312
312
312
313
313
313
313
314
314
314
315
315
315
315
316
316
316
316
316
317
317
317
317
318
319
319
319
320
320
328
329
330
332
332
332
332
332
332
332
333
333
333
333
333
333
333
333
333
333
335
335
346
346
347
347
348
351
352
352
353
353
356
357
357
357
357
357
366
367
367
367
367
368
374
377
377
380
389
390
394
394
395
395
398
400
401
401
402
402
412
419
419
421
423
423
424
424
424
428
428
428
428
429
430
431
432
442
442
447
447
455
459
459
460
460
460
460
460
461
463
465
465
466
466
466
470
479
480
480
480
480
481
484
487
489
489
494
498
498
499
499
503
503
503
503
508
511
513
514
514
515
515
525
528
531
531
533
533
535
536
540
540
541
541
542
543
544
545
546
551
551
555
565
567
567
569
569
570
572
572
572
572
573
573
574
574
574
574
583
587
590
592
593
593
593
593
594
600
601
606
606
606
607
608
611
611
612
612
613
613
632
637
637
640
644
644
645
645
649
649
649
649
655
657
676
681
681
699
704
704
720
723
741
746
746
765
768
770
780
785
788
788
790
790
803
808
808
824
829
829
844
847
865
870
870
889
894
894
912
914
933
938
938
956
961
961
977
980
998
1003
1003
1022
1025
1027
1042
1045
1045
1047
1047
1060
1065
1065
1081
1086
1086
1101
1104
1122
1127
1127
1146
1151
1151
1169
1171
1190
1195
1195
1213
1218
1218
1234
1237
1255
1260
1260
1279
1282
1284
1299
1302
1302
1304
1304
1819
1823
1824
7
7
8
8
8
8
8
8
12
12
12
15
15
15
15
15
17
17
17
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
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
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
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
29
29
31
31
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
41
41
46
46
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
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
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
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
59
59
61
61
61
61
61
62
62
65
65
66
66
66
66
66
67
67
67
68
68
70
75
75
79
79
81
81
81
84
84
84
84
84
84
84
84
90
93
98
98
98
99
99
99
100
100
101
101
102
102
102
103
103
103
104
106
107
109
109
112
114
115
117
117
117
117
118
118
120
120
120
120
120
120
120
120
128
129
132
132
133
133
135
137
137
137
138
139
140
140
140
140
140
140
141
141
142
143
143
148
148
152
152
153
153
154
154
156
156
156
156
156
156
157
157
157
157
157
157
159
162
163
164
164
164
166
166
169
169
169
169
170
170
170
170
172
172
172
173
174
174
175
175
175
175
176
176
179
181
184
184
188
190
191
192
192
192
192
192
192
192
192
192
192
192
197
197
197
203
205
206
206
207
207
207
208
208
208
209
210
210
210
211
211
211
212
212
212
212
216
219
219
223
224
224
225
225
227
227
227
227
227
227
228
228
228
228
228
230
233
235
235
240
241
241
241
243
243
243
244
244
244
245
245
246
246
246
247
247
249
249
250
250
252
255
255
256
257
257
259
261
261
262
262
263
263
263
263
263
263
263
263
263
263
264
264
272
272
272
274
276
276
277
277
278
278
279
279
279
280
281
282
282
282
283
283
283
283
283
283
290
290
290
290
290
293
294
295
295
295
296
296
298
298
298
298
298
298
299
299
299
299
299
310
311
311
312
312
312
314
314
314
315
315
315
315
316
316
316
316
317
317
317
317
318
318
319
320
320
320
321
321
329
329
330
332
333
334
334
334
334
334
334
334
334
334
334
334
334
348
348
349
352
353
353
354
354
357
357
358
358
358
358
368
368
369
374
375
377
377
378
378
381
385
385
390
391
395
395
396
396
399
401
403
403
412
420
420
422
422
424
424
425
425
425
425
429
429
429
429
430
432
433
442
443
448
448
456
461
461
461
461
461
462
464
466
466
467
467
467
470
481
481
482
485
487
488
490
490
490
490
495
498
498
499
499
500
500
504
504
504
504
509
512
514
516
516
525
529
534
534
536
537
541
541
542
542
543
545
546
547
552
552
555
566
568
568
568
570
570
571
571
573
574
574
575
575
575
575
583
588
591
594
594
595
600
601
602
603
603
607
607
607
608
609
612
612
613
613
614
614
633
638
638
641
645
645
646
646
650
650
650
650
656
658
677
682
682
700
705
705
721
724
742
747
747
766
769
771
786
791
791
804
809
809
825
830
845
848
866
871
871
890
895
895
913
915
934
939
939
957
962
962
978
981
999
1004
1004
1023
1026
1028
1043
1048
1048
1061
1066
1066
1082
1087
1102
1105
1123
1128
1128
1147
1152
1152
1170
1172
1191
1196
1196
1214
1219
1219
1235
1238
1256
1261
1261
1280
1283
1285
1300
1305
1305
1820
1824
1825
4
4
8
8
9
9
9
12
12
12
13
13
13
15
15
15
15
15
15
15
15
15
15
15
16
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
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
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
27
30
30
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
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
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
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
40
40
42
42
47
47
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
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
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
53
53
53
53
53
54
54
54
54
54
54
54
54
55
55
55
55
56
56
57
57
59
62
62
62
62
66
66
67
67
67
67
68
68
69
69
71
71
76
76
80
82
82
82
84
84
84
84
85
85
85
85
94
99
99
99
99
99
99
100
100
101
101
101
102
102
102
102
102
103
103
103
103
103
103
104
104
105
106
110
110
113
115
116
116
118
118
118
118
120
120
120
120
121
121
121
121
123
128
128
129
130
133
133
134
134
135
135
135
135
136
138
138
138
138
139
139
140
141
141
142
143
144
144
148
152
152
152
153
154
154
154
154
156
156
156
157
157
157
157
157
157
158
158
158
158
158
160
163
163
165
165
167
167
169
169
169
170
170
170
170
171
171
171
171
173
173
173
173
174
174
174
174
175
176
178
180
182
185
185
188
188
191
192
193
193
193
193
193
195
198
198
198
204
206
206
207
207
208
208
209
209
209
209
210
210
210
210
210
210
211
211
213
213
219
223
223
224
225
225
225
225
227
227
228
228
229
229
229
229
229
231
231
234
236
236
240
240
240
241
242
242
242
244
244
245
245
245
246
250
250
251
251
253
254
254
256
256
258
258
259
259
261
262
263
264
264
264
264
265
265
270
273
273
273
275
278
278
278
279
279
280
280
280
280
281
281
284
284
284
284
286
290
291
291
291
294
294
294
295
296
296
296
296
296
298
298
299
299
300
300
300
300
311
311
311
311
312
312
313
313
313
315
315
316
316
316
316
316
317
317
317
317
318
320
321
321
322
322
330
330
330
333
334
335
335
335
335
335
335
344
349
349
350
353
354
354
355
355
355
355
358
359
359
359
359
367
367
369
369
374
378
378
379
379
382
383
386
386
391
391
392
395
396
396
397
397
399
400
402
404
404
421
421
425
425
426
426
426
426
430
430
430
430
430
431
433
444
449
457
457
462
462
462
462
462
463
465
467
467
468
468
468
480
480
482
482
486
487
491
491
491
491
496
496
499
499
500
500
501
501
504
505
505
505
505
510
512
513
515
517
517
530
535
535
537
538
542
542
543
543
543
544
546
548
553
553
567
569
570
571
571
572
572
574
575
575
576
576
576
576
589
592
593
593
595
595
600
603
604
604
608
608
608
609
610
613
613
614
614
615
615
634
639
639
642
646
646
647
647
650
651
651
651
651
657
659
678
683
683
701
706
722
725
743
748
748
767
770
772
781
781
787
792
792
805
810
810
826
831
846
849
867
872
872
891
896
896
907
914
916
935
940
940
958
963
979
982
1000
1005
1005
1024
1027
1029
1044
1049
1049
1062
1067
1067
1083
1088
1103
1106
1124
1129
1129
1148
1153
1153
1164
1171
1173
1192
1197
1197
1215
1220
1236
1239
1257
1262
1262
1281
1284
1286
1301
1306
1306
1821
1825
1826
5
5
5
5
5
9
9
9
10
10
10
10
10
13
13
14
14
16
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
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
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
25
28
31
31
31
32
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
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
36
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
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
40
43
43
45
45
45
45
45
47
47
48
48
48
48
48
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
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
52
52
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
55
55
56
56
56
56
57
58
63
63
63
63
65
65
65
65
66
66
67
67
67
67
68
68
68
68
69
70
71
72
77
77
79
79
81
82
82
82
84
84
85
85
86
86
86
86
86
86
95
99
99
99
100
100
100
101
102
103
103
103
104
104
104
104
105
105
106
107
109
111
111
111
114
116
118
118
118
119
120
120
121
121
122
122
122
122
123
128
128
129
129
130
134
134
135
136
136
137
139
139
140
140
142
142
143
144
153
153
154
154
154
154
154
155
155
155
157
157
158
158
158
158
159
161
164
164
166
166
166
168
168
168
171
171
171
171
172
172
172
172
174
175
176
177
178
181
183
183
186
186
189
189
190
190
190
191
192
193
193
194
195
196
199
199
205
206
207
207
207
207
208
209
209
210
211
211
212
212
214
214
216
216
223
224
224
225
225
225
225
225
226
226
226
228
228
229
229
232
232
235
237
242
243
243
243
246
247
251
251
252
252
254
255
259
259
260
260
261
261
261
262
263
264
264
264
266
266
266
271
271
274
276
279
279
279
280
280
281
281
285
285
285
285
287
292
292
295
295
295
296
296
296
296
296
297
297
297
297
299
299
300
300
312
313
313
314
314
314
317
317
317
317
318
318
318
318
320
320
321
322
322
323
323
329
329
331
331
331
332
332
332
334
335
335
336
336
336
345
350
351
354
355
355
356
356
356
359
360
360
360
360
368
375
377
379
379
379
380
383
384
384
392
392
393
396
397
397
398
398
398
400
401
403
405
422
422
426
426
427
427
427
427
430
431
431
431
431
431
433
433
434
442
442
445
449
450
458
458
460
463
463
463
463
464
464
466
468
468
469
469
469
481
487
488
490
492
492
492
492
492
497
497
497
501
501
502
502
505
506
506
506
506
511
513
514
516
518
531
536
536
538
539
543
543
543
544
544
544
546
546
547
549
554
554
555
555
562
568
570
571
572
572
572
572
573
573
575
576
577
577
577
577
584
588
590
593
594
601
603
604
605
605
605
609
609
609
610
611
614
614
615
615
616
616
635
640
643
647
647
648
648
651
652
652
652
652
655
658
660
679
684
684
702
707
717
721
723
726
744
749
749
768
771
773
782
782
782
782
788
793
793
806
811
811
827
829
829
832
841
845
847
850
868
873
873
892
897
908
912
915
917
936
941
941
959
964
974
978
980
983
1001
1006
1006
1025
1028
1030
1045
1050
1050
1063
1068
1068
1084
1086
1086
1089
1098
1102
1104
1107
1125
1130
1130
1149
1154
1165
1169
1172
1174
1193
1198
1198
1216
1221
1231
1235
1237
1240
1258
1263
1263
1282
1285
1287
1302
1307
1307
1822
1826
1827
5
6
10
10
10
10
11
14
14
15
15
15
15
17
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
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
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
25
25
29
32
32
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
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
38
38
38
38
39
39
39
39
39
39
39
40
46
46
46
46
46
46
47
47
47
48
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
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
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
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
59
62
64
64
64
66
66
66
67
67
68
68
69
69
69
69
69
70
70
70
71
73
78
78
79
79
80
80
80
83
83
83
83
84
84
84
84
84
84
85
85
86
86
87
87
88
88
88
96
99
100
100
101
101
101
102
102
102
103
103
103
104
104
104
105
105
105
106
107
109
110
116
117
118
119
119
119
119
120
120
120
120
120
120
120
121
121
122
122
130
130
131
135
135
136
137
137
138
140
140
140
140
140
141
141
141
141
141
142
142
142
143
143
144
153
155
155
155
155
155
155
155
156
156
156
156
156
156
156
156
157
157
158
158
159
159
162
165
166
167
167
167
170
172
172
172
173
173
173
175
175
175
175
176
176
176
176
177
178
182
184
184
184
184
187
187
191
191
191
191
191
192
192
193
193
195
196
197
200
200
206
208
208
208
209
210
210
211
211
211
211
212
212
212
212
212
213
213
214
215
215
217
217
224
224
226
226
226
226
226
226
226
227
227
227
227
227
227
227
227
229
229
232
232
233
236
236
236
238
241
243
243
244
244
246
246
246
247
247
247
247
248
252
252
253
253
254
255
256
260
260
262
262
262
262
263
263
264
264
264
265
275
277
280
280
280
280
281
281
282
282
282
282
282
283
283
283
286
286
286
286
287
287
291
291
293
293
295
296
297
297
297
297
297
297
297
298
298
298
298
298
298
298
298
298
298
300
300
308
312
313
314
314
315
315
317
317
317
318
318
318
318
318
318
319
319
319
321
321
322
323
323
324
324
327
330
330
332
333
333
333
333
334
334
335
335
337
337
337
345
345
349
349
351
352
355
356
356
356
357
357
357
360
361
361
361
361
367
369
377
378
379
381
382
384
393
393
393
394
398
398
399
399
399
400
400
402
404
404
404
406
411
421
423
423
427
427
428
428
428
428
432
432
432
432
434
434
435
440
443
443
446
448
448
450
451
458
458
459
462
462
464
464
464
464
465
465
467
469
469
469
470
470
470
480
482
488
490
491
493
493
498
502
502
503
503
506
506
507
507
507
507
512
513
513
515
517
517
517
519
524
532
534
537
537
539
540
544
544
545
545
547
547
548
550
553
555
555
556
556
563
569
571
571
571
573
573
573
574
574
575
575
576
577
578
578
578
578
582
589
591
593
594
595
603
604
605
610
610
610
611
612
615
615
616
616
617
617
636
639
639
641
644
648
648
649
649
653
653
653
653
656
659
661
680
685
685
703
705
705
708
722
724
727
745
750
750
769
772
774
782
782
782
782
783
783
789
794
794
807
812
812
828
830
833
846
848
851
869
874
874
893
896
896
898
913
916
918
937
942
942
960
962
962
965
979
981
984
1002
1007
1007
1026
1029
1031
1046
1051
1051
1064
1069
1069
1085
1087
1090
1103
1105
1108
1126
1131
1131
1150
1153
1153
1155
1170
1173
1175
1194
1199
1199
1217
1219
1219
1222
1236
1238
1241
1259
1264
1264
1283
1286
1288
1303
1308
1308
1823
1827
1828
4
5
5
6
7
11
11
11
11
11
11
12
15
15
15
15
15
15
16
16
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
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
24
24
24
24
24
24
24
24
25
25
26
30
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
39
39
40
45
47
47
47
47
47
47
47
47
47
48
48
48
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
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
52
52
52
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
55
55
55
55
55
55
55
55
55
55
55
55
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
60
62
65
65
65
67
67
69
70
70
70
70
70
71
71
71
72
74
79
79
81
81
81
82
82
83
83
84
84
85
85
86
86
89
89
89
89
97
98
99
99
100
100
100
100
100
101
101
101
102
102
102
102
102
103
103
103
104
104
105
106
107
108
110
110
111
111
117
118
118
118
118
119
119
120
120
121
121
121
122
122
123
123
126
131
131
132
134
134
136
136
137
138
138
138
139
139
140
141
141
141
141
141
142
142
143
143
143
143
144
144
151
153
155
156
157
157
157
157
157
157
157
157
157
157
158
166
167
167
168
168
168
168
171
171
171
171
173
173
173
174
174
175
176
176
176
176
177
177
177
178
178
178
179
182
183
184
184
185
185
188
188
192
192
193
193
193
193
193
193
193
193
195
196
197
198
201
201
207
209
209
209
209
209
209
210
211
211
211
212
212
212
212
213
213
213
213
214
214
215
215
216
216
224
225
225
226
227
228
228
228
228
228
228
228
228
228
228
234
237
237
237
239
242
242
244
244
244
244
244
245
246
247
247
247
248
248
248
249
253
253
254
254
254
254
255
256
261
261
263
263
264
264
264
264
264
264
264
264
265
265
266
266
273
276
278
280
281
281
281
281
281
281
281
282
282
282
283
283
283
283
283
284
284
287
287
287
287
292
292
294
294
295
297
297
298
299
299
299
299
299
299
299
299
299
299
299
299
299
299
299
309
309
309
313
313
314
315
315
316
317
318
318
318
319
319
319
319
319
320
320
320
322
322
324
324
325
325
328
328
333
334
334
335
335
335
335
335
335
335
335
338
338
338
338
350
350
352
353
356
357
357
357
357
357
357
358
358
358
361
362
362
362
362
367
367
368
378
378
379
379
382
383
385
386
394
394
394
394
394
395
399
399
400
400
400
403
405
405
405
407
412
412
412
412
422
422
422
424
424
428
428
429
429
429
429
433
433
433
433
435
435
441
441
447
449
451
451
452
460
463
463
465
465
465
465
466
466
468
470
470
470
470
470
470
471
471
471
480
480
481
489
491
491
492
492
494
494
499
499
503
503
504
504
507
507
507
507
508
508
508
508
516
518
518
518
520
525
525
525
525
533
535
535
535
538
538
540
541
545
545
546
546
548
548
551
554
554
556
556
564
564
570
572
574
574
574
575
575
576
576
577
578
579
579
579
579
583
583
583
583
590
592
593
593
594
595
604
604
605
605
606
611
611
611
612
613
616
616
617
617
618
618
637
640
642
645
649
649
650
650
654
654
654
654
657
660
662
681
686
686
704
706
709
723
725
728
746
751
751
773
775
783
783
784
784
790
795
795
808
813
813
829
831
834
847
849
852
870
875
875
894
897
899
914
917
919
938
943
943
961
963
966
980
982
985
1003
1008
1008
1030
1032
1047
1052
1052
1065
1070
1070
1086
1088
1091
1104
1106
1109
1127
1132
1132
1151
1154
1156
1171
1174
1176
1195
1200
1200
1218
1220
1223
1237
1239
1242
1260
1265
1265
1287
1289
1304
1309
1309
1824
1828
1829
1
5
6
8
8
8
12
12
12
12
12
12
13
15
15
15
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
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
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
31
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
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
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
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
41
43
43
46
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
48
48
48
48
49
49
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
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
53
54
54
54
54
54
54
54
54
54
54
55
55
55
55
56
57
57
58
61
63
63
66
66
66
68
68
71
71
71
71
72
72
73
75
80
80
82
82
82
82
83
84
84
84
85
85
86
86
87
87
90
90
98
98
99
99
99
100
100
101
101
101
102
102
102
103
103
103
104
104
105
105
106
107
108
109
112
112
118
118
119
119
120
120
120
121
121
121
122
122
122
123
123
124
124
127
132
133
135
137
137
138
139
139
139
139
140
140
140
142
142
144
144
145
145
152
152
152
152
153
153
156
157
157
158
158
158
158
159
167
169
169
169
169
172
174
174
174
174
175
175
175
176
177
178
179
179
179
180
184
185
186
186
189
189
192
194
194
194
194
196
197
198
202
202
207
208
210
210
210
210
211
211
212
212
213
214
214
215
215
217
217
224
224
226
226
226
226
227
228
229
229
229
229
229
233
235
236
238
238
238
245
245
245
245
246
246
249
250
253
254
254
254
255
255
255
256
257
262
262
263
265
265
265
265
267
267
273
277
279
279
281
281
281
281
282
282
282
282
282
282
283
283
284
284
288
288
288
288
291
293
293
295
295
295
298
298
299
300
300
300
300
300
300
300
310
310
315
316
316
316
317
317
320
320
320
320
321
321
321
325
325
326
326
334
334
336
336
336
336
339
339
339
339
339
339
349
351
351
354
357
358
358
358
358
359
359
359
362
363
363
363
363
366
367
368
369
380
380
383
384
386
386
392
394
394
395
395
395
396
400
400
401
401
401
404
404
406
406
406
413
413
423
423
425
425
429
429
430
430
430
430
433
434
434
434
434
448
450
452
452
452
452
453
461
462
464
464
466
466
466
467
467
469
471
471
471
471
472
472
472
479
480
481
482
490
493
493
495
495
499
500
504
504
505
505
505
507
507
508
508
509
509
509
509
517
517
519
519
519
526
526
534
536
536
539
539
541
542
546
546
546
547
547
552
557
557
565
565
565
565
571
573
575
575
575
575
576
576
577
577
578
580
580
580
580
584
584
591
592
593
593
594
595
596
606
606
607
612
612
612
613
614
617
617
618
618
619
619
638
641
643
646
650
650
651
651
655
655
655
655
658
661
663
682
687
687
705
707
710
724
726
729
747
752
752
774
776
784
784
791
796
796
809
814
814
830
832
835
848
850
853
871
876
876
895
898
900
915
918
920
939
944
944
962
964
967
981
983
986
1004
1009
1009
1031
1033
1048
1053
1053
1066
1071
1071
1087
1089
1092
1105
1107
1110
1128
1133
1133
1152
1155
1157
1172
1175
1177
1196
1201
1201
1219
1221
1224
1238
1240
1243
1261
1266
1266
1288
1290
1305
1310
1310
1825
1829
1830
1
1
4
5
5
9
13
13
13
13
13
14
15
15
16
16
16
16
17
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
19
19
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
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
25
26
31
31
31
32
32
32
32
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
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
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
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
43
43
45
45
45
45
46
46
46
46
47
47
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
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
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
56
56
57
57
57
57
58
59
62
62
62
64
65
66
67
67
67
67
69
69
72
72
74
76
81
81
83
83
83
83
83
83
84
84
84
85
85
85
88
88
90
99
99
100
100
100
100
101
101
102
102
102
102
102
103
103
103
103
104
104
104
104
105
105
106
107
108
109
110
110
111
111
111
113
113
114
118
118
118
119
119
119
119
119
120
120
120
120
121
121
121
122
122
123
124
124
127
127
131
131
133
134
136
139
140
140
141
143
143
144
146
146
153
153
154
154
155
155
155
157
157
157
158
158
158
167
168
168
168
168
170
170
170
170
173
173
173
173
175
177
177
178
179
180
181
184
184
185
186
190
190
191
192
194
194
196
196
198
198
198
198
199
203
203
206
209
211
211
214
215
215
216
216
217
218
218
224
225
225
226
226
226
226
226
227
227
228
229
229
234
236
236
239
244
244
244
245
250
251
254
255
255
256
256
256
257
258
262
263
263
263
265
265
265
266
266
266
268
268
278
280
282
283
283
283
283
284
284
285
285
289
289
289
289
291
296
296
297
297
297
299
299
300
300
300
301
309
310
310
310
310
311
315
315
315
316
317
317
321
321
321
322
322
322
326
326
327
327
330
333
334
335
336
336
337
339
339
340
340
340
340
349
355
358
358
359
359
360
360
360
363
364
364
364
364
367
369
370
378
379
379
379
381
381
384
385
387
395
396
396
396
397
401
401
402
402
402
404
405
405
407
407
413
422
423
423
423
423
424
426
426
430
430
430
431
431
431
431
435
435
435
435
443
449
450
451
452
452
453
453
454
462
462
467
467
467
468
468
470
471
472
472
473
473
473
480
482
483
491
491
492
492
492
494
494
496
496
501
505
505
506
506
508
509
509
510
510
510
510
517
518
520
526
535
535
536
536
536
536
537
540
540
542
543
543
547
547
548
548
553
556
558
558
563
565
565
566
566
572
574
575
576
576
576
577
577
579
581
581
581
581
584
592
593
594
595
596
597
604
605
605
605
607
607
608
613
613
613
614
615
618
618
619
619
620
620
639
642
644
647
651
651
652
652
656
656
656
656
659
662
662
664
664
683
688
688
706
708
711
725
727
730
748
753
753
775
777
792
797
797
810
815
815
831
833
836
849
851
854
872
877
877
896
899
901
916
919
919
921
921
940
945
945
963
965
968
982
984
987
1005
1010
1010
1032
1034
1049
1054
1054
1067
1072
1072
1088
1090
1093
1106
1108
1111
1129
1134
1134
1153
1156
1158
1173
1176
1176
1178
1178
1197
1202
1202
1220
1222
1225
1239
1241
1244
1262
1267
1267
1289
1291
1306
1311
1311
1826
1830
1831
1
5
5
6
6
9
10
14
14
14
15
15
15
15
15
15
15
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
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
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
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
25
25
25
32
32
32
32
32
32
33
33
33
33
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
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
37
37
38
38
38
43
43
43
44
44
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
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
50
50
51
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
53
53
53
53
53
53
53
53
53
53
54
54
55
56
57
57
57
57
58
59
60
63
63
63
65
66
66
67
67
68
68
69
70
70
70
73
73
74
74
77
81
82
82
82
82
83
83
83
83
84
84
85
86
86
87
87
87
87
89
89
90
99
99
99
100
100
100
101
101
102
102
102
102
103
103
104
104
105
105
105
105
105
106
106
106
106
107
108
108
109
109
110
110
110
110
110
111
111
111
112
112
112
116
117
119
119
119
119
119
119
119
120
121
121
122
122
123
123
123
123
124
125
125
132
132
134
135
137
140
141
141
141
141
141
142
142
142
142
144
144
144
147
147
153
156
156
156
156
156
157
157
157
158
158
158
159
162
167
167
167
168
169
169
169
169
171
171
171
173
174
174
174
176
176
176
176
177
177
177
179
180
181
182
185
186
191
191
192
192
192
192
193
193
194
194
199
199
199
200
204
204
206
207
207
207
210
212
212
212
212
212
212
212
213
213
213
215
216
216
216
216
217
217
217
219
219
227
227
227
227
227
228
228
228
228
229
229
232
235
236
237
237
240
242
244
245
245
245
247
247
247
248
248
248
251
252
254
255
256
256
257
257
257
259
263
263
263
263
264
264
264
264
265
265
265
265
265
266
267
267
267
273
273
279
281
281
281
283
283
283
283
284
284
284
284
284
285
285
286
286
287
290
290
290
290
291
292
298
298
298
298
299
299
300
300
300
300
302
311
311
312
313
315
316
316
317
317
318
318
318
318
318
319
319
319
320
320
322
322
322
323
323
323
327
327
328
328
330
334
334
334
334
335
335
336
336
336
340
341
341
341
341
345
349
350
356
358
359
360
360
361
361
361
364
365
365
365
365
367
368
370
378
378
378
379
380
380
380
385
386
386
386
388
394
394
396
397
398
400
402
402
403
403
403
404
405
408
408
413
424
424
425
427
427
430
431
431
431
432
432
432
432
433
433
436
436
436
436
443
450
452
453
454
454
455
458
462
463
463
468
468
468
469
469
471
471
471
473
473
474
474
474
474
480
481
483
491
491
491
492
492
493
493
493
497
497
499
499
502
506
506
507
507
507
507
509
511
511
511
511
512
513
517
518
519
521
526
536
537
537
538
541
541
543
543
544
544
546
546
548
548
549
549
554
556
559
559
566
567
567
571
573
575
575
576
577
577
577
578
578
580
582
582
582
582
584
593
593
594
595
595
596
598
598
604
604
604
605
606
606
606
609
614
614
614
615
616
619
619
620
620
621
621
640
643
645
648
652
652
653
653
657
657
657
657
660
665
665
684
689
689
707
709
712
726
728
728
731
731
749
754
754
769
776
778
782
793
798
798
811
816
816
832
834
837
850
852
852
855
855
873
878
878
897
900
902
917
922
922
941
946
946
964
966
969
983
985
985
988
988
1006
1011
1011
1026
1033
1035
1050
1055
1055
1068
1073
1073
1089
1091
1094
1107
1109
1109
1112
1112
1130
1135
1135
1154
1157
1159
1174
1179
1179
1198
1203
1203
1221
1223
1226
1240
1242
1242
1245
1245
1263
1268
1268
1283
1290
1292
1307
1312
1312
1827
1831
1832
1
5
5
5
10
11
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
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
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
21
21
21
22
22
22
22
22
22
22
22
23
24
24
24
24
24
24
24
24
24
24
25
25
26
26
26
30
31
32
33
33
33
33
33
33
33
34
34
34
34
34
34
34
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
38
39
39
41
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
45
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
49
49
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
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
52
52
52
53
53
53
53
53
53
55
55
55
55
57
57
57
58
59
60
61
64
66
66
67
67
68
69
69
69
69
70
70
70
70
71
71
71
71
71
74
74
78
81
83
83
83
83
83
85
85
86
87
87
88
88
88
88
90
90
99
100
100
100
101
102
102
102
102
103
103
105
106
106
106
106
106
107
107
107
107
108
111
111
112
112
112
113
113
113
117
117
117
119
120
121
122
122
123
123
123
123
124
124
124
124
124
125
126
126
131
133
133
136
138
139
140
141
141
142
142
142
142
142
143
143
143
145
145
148
148
153
157
157
157
158
158
158
158
158
158
158
158
159
160
163
167
169
170
170
170
170
172
172
172
172
174
175
175
176
177
177
177
177
178
178
179
180
181
182
183
184
184
186
187
192
192
193
193
194
194
194
194
194
194
194
194
196
198
200
200
200
205
205
206
208
208
210
211
211
212
213
213
213
213
213
214
214
216
217
217
217
217
218
218
220
220
226
226
228
228
228
229
229
229
229
229
229
229
229
232
236
237
238
238
241
243
243
245
246
247
248
248
248
249
249
252
253
254
255
257
257
257
257
258
258
258
260
264
264
265
265
265
265
265
265
265
265
265
265
267
268
268
268
271
274
274
280
281
282
282
282
283
284
284
284
285
285
285
285
286
286
287
287
287
291
291
291
291
292
293
299
299
300
300
300
300
300
300
300
300
301
303
310
310
312
312
314
314
316
317
317
318
318
319
319
319
319
320
320
321
321
323
323
323
324
324
324
328
328
329
329
335
335
336
336
336
336
336
336
336
336
337
339
339
341
342
342
345
350
351
357
360
361
361
362
362
362
365
366
366
366
366
367
368
370
370
371
380
381
381
381
384
386
387
387
387
389
395
398
399
400
403
403
404
404
404
405
406
409
409
423
423
425
425
428
428
430
432
432
433
433
433
433
434
434
437
437
437
437
451
452
452
453
454
456
458
463
464
464
469
469
469
470
470
474
474
475
475
475
475
480
481
483
483
484
493
493
494
494
494
497
498
498
500
500
503
507
507
508
508
508
512
512
512
512
513
513
517
518
519
520
522
536
536
537
538
538
542
542
543
544
545
547
547
549
549
550
550
555
560
560
565
565
567
571
574
576
576
577
578
578
578
579
579
581
583
583
583
583
593
594
594
596
596
597
599
599
606
607
607
607
610
615
615
615
616
617
620
620
621
621
622
622
641
644
646
649
653
653
654
654
658
658
658
658
661
666
666
685
690
690
708
710
713
727
732
732
750
755
755
770
774
777
779
782
782
783
794
799
799
812
817
817
833
835
838
851
856
856
874
879
879
898
901
903
918
923
923
942
947
947
965
967
970
984
989
989
1007
1012
1012
1027
1031
1034
1036
1051
1056
1056
1069
1074
1074
1090
1092
1095
1108
1113
1113
1131
1136
1136
1155
1158
1160
1175
1180
1180
1199
1204
1204
1222
1224
1227
1241
1246
1246
1264
1269
1269
1284
1288
1291
1293
1308
1313
1313
1831
1832
1833
5
5
6
6
6
6
11
12
13
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
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
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
23
23
24
24
29
29
31
31
32
32
32
32
32
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
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
37
37
38
38
38
38
38
38
40
40
41
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
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
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
50
50
50
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
55
55
56
56
59
60
61
65
67
69
70
70
70
70
70
70
71
71
71
71
71
71
72
72
72
72
72
72
72
72
75
75
79
82
82
83
84
84
84
84
84
87
89
89
89
89
100
100
101
101
102
103
103
103
104
104
107
107
107
107
108
108
108
111
112
112
113
113
113
114
114
118
119
119
119
120
121
123
123
123
123
124
124
124
125
125
125
125
126
131
137
137
139
140
140
141
141
141
141
142
143
143
144
146
146
149
149
157
157
158
159
159
159
159
160
168
168
170
171
171
171
173
174
175
175
175
176
176
176
178
179
181
182
183
184
184
184
185
185
188
193
193
193
195
195
195
195
199
201
206
206
207
207
209
209
209
211
211
212
212
214
214
217
217
217
218
218
218
218
219
219
221
221
227
228
230
230
230
230
236
237
238
239
239
242
246
246
247
247
253
254
258
258
258
258
259
259
259
261
264
266
266
266
266
266
266
266
268
269
269
272
272
281
281
281
282
282
283
283
283
283
286
286
287
287
288
288
291
292
292
292
292
293
294
295
299
301
301
301
301
302
304
311
317
317
318
318
318
319
320
320
322
322
322
324
324
324
325
325
325
329
329
330
330
330
330
335
337
337
337
337
338
340
343
343
349
351
352
358
362
362
363
363
363
366
367
367
367
367
371
371
372
379
381
382
382
385
385
387
388
390
394
394
396
399
400
404
404
404
405
405
405
406
407
410
410
424
429
429
431
433
433
433
434
434
434
434
435
435
435
438
438
438
438
443
443
452
453
454
457
462
464
465
465
470
470
470
471
471
475
475
476
476
476
476
484
484
485
492
494
494
495
495
498
498
499
499
504
507
507
508
508
509
509
509
513
513
513
513
517
518
519
520
521
523
537
538
543
543
544
545
546
546
548
548
548
550
550
551
551
556
556
556
561
561
566
575
575
577
577
578
579
579
579
580
580
582
584
584
584
584
595
597
597
598
600
600
605
607
608
608
611
616
616
616
617
618
621
621
622
622
623
623
642
645
647
650
654
654
655
655
659
659
659
659
662
667
667
686
691
691
709
711
714
728
733
733
751
756
756
775
778
780
782
783
784
795
800
800
813
818
818
834
836
839
852
857
857
875
880
880
899
902
904
919
924
924
943
948
948
966
968
971
985
990
990
1008
1013
1013
1032
1035
1037
1052
1057
1057
1070
1075
1075
1091
1093
1096
1109
1114
1114
1132
1137
1137
1156
1159
1161
1176
1181
1181
1200
1205
1205
1223
1225
1228
1242
1247
1247
1265
1270
1270
1289
1292
1294
1309
1314
1314
1827
1832
1833
1834
5
5
5
5
7
7
13
13
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
18
18
18
18
18
18
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
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
23
23
23
24
24
25
30
30
30
30
33
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
38
38
38
38
38
38
39
39
39
39
39
39
41
41
42
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
46
46
46
46
46
46
46
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
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
51
51
51
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
55
55
55
55
55
55
55
56
60
60
61
61
61
63
66
67
67
68
71
71
71
71
71
71
72
72
72
72
72
72
72
73
73
73
73
73
73
76
76
80
82
82
82
85
85
85
86
86
87
87
87
87
88
100
101
102
102
103
103
103
103
104
104
104
105
108
108
109
112
112
113
113
114
114
118
118
119
119
119
121
122
122
122
123
123
124
124
124
124
125
125
127
127
131
132
140
142
142
143
143
144
144
145
147
147
150
150
156
157
157
158
159
159
160
160
161
169
169
169
172
174
174
174
174
175
176
177
179
179
180
182
183
184
185
186
186
189
192
193
194
194
195
195
196
200
202
207
207
207
208
211
215
215
215
215
218
218
218
219
219
219
219
220
220
222
222
226
226
227
228
228
230
230
232
237
238
239
239
240
240
243
243
245
245
245
254
255
259
259
259
259
260
260
262
263
264
266
266
267
267
267
267
281
281
282
282
282
284
287
287
287
288
288
289
289
292
293
293
293
293
294
294
296
298
299
299
300
301
301
303
305
310
312
316
316
316
320
320
321
321
325
325
325
326
326
326
328
330
330
331
331
331
331
334
335
337
337
339
339
339
341
344
344
345
350
352
352
359
360
363
363
364
364
364
364
367
368
368
368
368
372
372
380
380
388
389
391
394
394
395
395
400
400
401
405
405
405
406
406
406
407
407
411
411
412
423
425
430
430
433
434
434
434
435
435
435
435
439
439
439
439
441
444
444
452
452
453
454
455
458
458
463
465
465
466
471
471
471
472
472
476
476
477
477
477
477
485
485
493
493
495
500
500
505
507
507
508
508
509
509
510
510
513
514
514
514
514
518
519
520
520
522
524
525
536
538
539
544
544
546
546
547
547
551
551
552
552
554
557
557
557
562
562
565
565
567
571
576
576
578
578
580
580
580
581
581
583
585
585
585
585
596
598
598
601
601
606
606
612
617
617
617
618
619
622
622
623
623
624
624
643
646
648
651
655
655
656
656
660
660
660
660
663
668
668
687
692
692
710
712
715
729
734
734
752
757
757
776
779
781
784
785
796
801
801
814
819
819
837
840
853
858
858
876
881
881
900
903
905
920
925
925
944
949
949
967
969
972
986
991
991
1009
1014
1014
1033
1036
1038
1053
1058
1058
1071
1076
1076
1094
1097
1110
1115
1115
1133
1138
1138
1157
1160
1162
1177
1182
1182
1201
1206
1206
1224
1226
1229
1243
1248
1248
1266
1271
1271
1290
1293
1295
1310
1315
1315
1833
1834
1835
8
8
8
13
13
13
14
15
15
15
16
16
16
16
16
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
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
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
22
22
22
22
23
23
23
23
24
25
26
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
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
36
36
36
36
36
36
36
36
36
37
37
37
37
38
41
41
42
42
42
42
43
43
43
43
43
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
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
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
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
53
57
61
62
62
63
69
70
71
71
71
71
72
72
72
72
72
72
73
73
73
74
74
74
74
74
74
74
77
77
81
82
83
83
83
83
83
86
86
86
87
87
87
87
88
88
88
88
89
102
102
103
103
103
104
104
104
104
105
105
106
106
109
109
110
114
114
115
115
119
122
122
123
123
123
123
123
123
123
125
125
125
125
125
126
126
127
128
128
132
133
141
142
143
143
143
144
144
144
144
144
145
145
145
145
146
148
148
148
148
151
157
157
157
157
159
159
159
159
159
159
161
161
162
170
172
173
174
175
175
175
177
178
178
179
179
180
180
181
182
183
183
184
184
185
185
186
186
187
187
190
193
193
193
193
195
195
195
195
195
195
195
195
196
197
198
203
208
208
208
208
209
209
213
214
216
216
216
216
216
219
220
220
220
220
221
221
223
223
226
226
227
227
228
228
228
228
230
230
230
230
230
230
236
238
239
243
244
244
245
246
246
248
249
255
256
257
260
260
261
261
263
264
264
264
264
266
266
266
266
266
266
268
268
274
283
283
283
284
285
285
288
288
289
289
290
290
291
293
294
294
294
294
299
299
299
299
300
300
300
300
301
301
301
301
301
301
301
304
306
310
310
311
314
316
317
317
319
320
321
321
321
322
322
322
326
326
326
327
327
327
329
329
331
331
332
332
335
335
335
335
337
337
337
337
337
337
339
339
340
340
340
345
345
349
351
360
364
364
365
365
365
365
368
369
369
369
369
370
387
390
392
396
396
401
402
404
406
406
406
407
407
407
412
412
413
413
413
413
423
423
424
431
431
434
434
435
435
435
435
436
436
436
436
440
440
440
440
442
442
452
452
453
453
456
459
462
464
467
472
472
472
473
473
477
477
478
478
478
478
483
496
500
501
506
509
509
510
510
511
511
515
515
515
515
517
519
520
523
525
526
526
526
526
536
536
537
540
545
545
547
547
547
548
548
548
552
552
553
553
555
555
558
563
563
565
565
566
566
575
577
577
581
581
581
582
582
584
586
586
586
586
596
597
602
602
613
618
618
618
619
620
623
623
624
624
625
625
647
649
652
656
656
657
657
661
661
661
661
664
669
669
688
693
693
713
716
730
735
735
753
758
777
780
780
782
785
797
802
802
815
820
820
838
841
854
859
859
877
882
882
904
906
921
926
926
945
950
950
970
973
987
992
992
1010
1015
1034
1037
1039
1054
1059
1059
1072
1077
1077
1095
1098
1111
1116
1116
1134
1139
1139
1161
1163
1178
1183
1183
1202
1207
1207
1227
1230
1244
1249
1249
1267
1272
1291
1294
1296
1311
1316
1316
1834
1835
1836
5
9
9
13
15
15
15
15
15
15
15
15
15
15
15
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
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
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
22
22
22
22
22
23
23
24
24
24
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
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
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
36
36
36
36
36
36
36
37
37
37
38
38
41
42
42
43
43
43
43
43
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
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
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
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
54
54
58
63
63
70
70
70
70
71
71
71
71
72
72
72
72
72
72
73
73
73
73
73
73
74
74
75
75
75
75
78
78
78
78
82
83
83
83
84
87
87
87
87
87
87
88
88
88
88
89
89
89
89
89
99
102
103
103
104
105
105
105
105
105
105
106
106
106
106
107
107
110
110
111
114
115
115
116
116
118
119
119
122
123
124
124
124
124
124
124
124
126
126
129
129
131
133
134
136
140
142
142
142
142
143
143
143
144
144
145
145
145
147
149
149
149
149
150
150
152
158
158
160
160
160
160
162
162
171
171
172
173
173
174
174
176
176
177
177
177
177
178
178
178
179
180
180
181
181
182
183
186
186
187
187
188
191
194
194
196
196
196
196
196
196
197
198
198
199
204
209
209
210
210
213
213
213
214
214
214
217
217
217
220
221
221
222
224
224
228
228
229
229
231
231
231
231
237
237
239
239
240
244
244
244
245
245
248
248
248
249
249
249
254
256
257
261
262
264
265
265
267
267
267
267
269
269
269
274
279
284
284
284
284
284
284
285
285
285
286
289
290
290
291
291
292
292
294
294
295
295
300
300
301
301
302
302
302
302
302
305
307
309
310
311
312
315
315
319
319
319
320
320
320
322
323
323
323
327
327
327
328
328
328
332
333
336
336
338
338
338
338
341
341
341
346
346
350
350
352
352
357
361
365
365
366
366
366
366
367
369
370
370
382
387
391
392
393
397
397
402
403
405
405
407
407
407
408
408
413
413
414
414
422
423
424
425
432
432
436
436
436
436
437
437
437
437
441
441
454
454
457
460
463
463
465
465
468
470
473
473
473
474
474
478
479
479
479
480
495
497
500
500
500
502
505
507
510
510
511
511
512
512
516
516
518
518
520
520
521
524
524
526
526
527
527
535
536
537
538
541
546
546
548
549
549
549
553
554
559
564
564
567
567
576
576
578
578
578
582
582
582
583
583
583
585
587
587
593
598
603
603
608
614
619
619
619
620
621
624
625
626
626
648
650
653
657
657
658
658
662
662
665
670
670
689
694
694
714
717
731
736
736
754
757
757
759
778
781
781
781
783
783
785
786
798
803
803
816
821
821
839
842
855
860
860
878
883
883
905
907
922
927
927
946
951
951
971
974
988
993
993
1011
1014
1014
1016
1035
1038
1038
1040
1040
1055
1060
1060
1073
1078
1078
1096
1099
1112
1117
1117
1135
1140
1140
1162
1164
1179
1184
1184
1203
1208
1208
1228
1231
1245
1250
1250
1268
1271
1271
1273
1292
1295
1295
1297
1297
1312
1317
1317
1835
1836
1837
5
9
10
13
15
15
15
15
15
15
15
15
15
15
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
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
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
21
21
21
21
21
22
22
22
22
22
22
23
25
25
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
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
36
36
36
36
36
36
36
39
42
43
43
43
44
44
44
44
44
44
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
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
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
53
53
53
53
53
53
53
53
53
54
54
55
55
55
55
55
59
63
63
64
64
65
69
71
72
73
73
73
73
73
74
74
74
74
74
74
79
79
79
79
82
83
84
85
86
86
88
88
88
88
88
88
89
89
90
90
90
90
90
90
90
90
90
99
100
100
102
102
105
106
106
106
106
106
106
107
107
107
107
107
107
108
108
108
111
111
112
114
116
116
117
117
118
119
119
122
122
123
124
124
124
124
124
125
125
125
126
126
126
126
127
127
127
130
130
132
134
134
140
141
141
143
143
143
143
143
144
144
144
144
145
145
145
146
148
150
150
150
150
151
152
153
158
158
158
160
160
160
160
160
160
160
160
160
161
161
171
172
173
175
176
177
177
177
178
178
178
178
178
178
179
179
179
179
180
182
182
183
183
183
187
187
187
187
187
188
188
189
192
194
194
194
196
196
196
196
196
196
196
196
197
197
197
197
199
199
200
205
208
209
209
209
210
210
211
211
211
212
214
214
214
214
215
215
215
215
218
218
218
218
220
220
221
222
222
223
223
223
224
225
225
229
229
229
229
229
231
231
231
231
231
231
231
231
232
232
237
239
240
240
241
245
245
245
246
246
246
247
249
249
249
249
250
250
250
250
254
255
257
257
257
258
262
263
265
265
265
265
267
267
267
267
267
267
267
267
268
268
269
270
270
280
282
283
285
285
285
285
285
285
286
286
286
286
287
288
288
290
291
291
292
292
292
294
294
294
294
294
295
295
296
296
300
300
300
301
302
302
302
302
302
302
302
302
303
303
303
306
308
310
312
313
317
318
320
320
320
320
321
321
321
321
321
322
322
322
323
324
324
324
328
328
328
329
329
329
331
333
334
336
336
336
337
338
338
338
338
338
338
338
338
339
339
342
342
342
347
347
350
352
353
353
358
358
358
362
366
366
367
367
367
367
367
368
369
369
369
369
370
370
370
371
371
382
392
393
394
398
403
404
405
407
408
408
408
409
409
414
414
414
423
425
426
433
433
434
435
435
435
437
437
437
437
438
438
438
438
440
440
440
440
442
442
444
450
455
455
458
461
463
465
466
466
469
471
471
471
474
474
474
475
475
479
480
480
480
480
481
483
483
495
498
501
503
506
508
511
512
512
513
513
515
515
515
515
517
517
518
520
521
521
522
527
527
527
536
538
539
542
547
547
547
548
548
548
549
550
550
550
554
555
557
560
563
565
565
568
568
576
577
578
579
579
579
581
583
583
583
584
584
584
584
584
586
586
586
586
586
588
588
593
594
596
596
599
604
604
608
615
620
620
620
621
622
625
626
627
627
649
651
654
658
658
659
659
661
661
661
661
663
663
666
671
671
690
695
695
715
718
732
737
737
755
758
760
779
781
784
784
785
787
799
804
804
817
822
822
834
838
840
843
856
861
861
879
884
884
906
908
923
928
928
947
952
952
972
975
989
994
994
1012
1015
1017
1036
1041
1041
1056
1061
1061
1074
1079
1079
1091
1095
1097
1100
1113
1118
1118
1136
1141
1141
1163
1165
1180
1185
1185
1204
1209
1209
1229
1232
1246
1251
1251
1269
1272
1274
1293
1298
1298
1313
1318
1318
1836
1837
1838
5
5
9
11
11
13
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
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
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
21
21
21
21
21
21
21
22
22
22
23
23
25
25
26
26
29
29
29
30
31
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
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
40
42
42
42
42
43
44
44
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
48
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
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
53
54
54
54
54
55
55
55
56
56
56
56
56
56
57
60
64
64
65
65
70
71
72
72
72
72
73
74
74
74
74
74
75
75
75
75
75
80
80
80
80
82
82
83
84
85
85
86
87
87
88
88
89
89
90
90
90
90
90
90
91
91
91
91
91
91
99
100
101
103
103
103
107
107
107
107
108
108
108
108
108
109
109
109
112
112
113
117
117
117
118
118
120
120
122
122
123
124
125
126
126
126
127
127
127
127
128
128
131
131
131
133
141
142
142
143
143
144
144
144
144
144
144
145
145
145
146
146
147
147
149
151
151
151
151
152
153
153
153
154
157
158
158
158
159
159
161
161
161
161
162
162
173
175
176
177
178
178
178
178
178
179
179
179
179
180
180
181
181
183
183
183
184
187
188
188
188
188
189
189
190
193
194
194
194
195
195
197
197
197
197
198
198
198
198
199
200
200
206
208
208
208
209
210
210
210
211
211
212
213
214
214
215
215
215
215
216
216
218
219
219
219
221
221
222
223
223
224
224
224
225
226
226
229
229
229
230
230
230
232
232
232
232
233
233
237
239
240
241
241
242
246
246
246
247
247
247
248
249
249
250
250
250
250
251
251
254
258
258
258
259
260
260
261
261
263
264
265
265
265
266
266
266
268
268
268
268
269
269
271
271
280
280
283
284
284
284
285
285
286
286
286
286
286
286
287
287
288
289
291
292
292
292
293
293
294
295
295
295
296
296
297
297
300
300
300
301
301
301
303
303
303
303
304
304
304
307
307
309
309
310
311
313
317
318
319
320
320
321
321
321
321
321
321
321
322
322
322
323
323
323
324
325
329
329
329
330
330
330
331
331
331
332
332
334
335
336
336
336
337
337
338
339
339
339
339
340
340
343
343
348
348
350
352
353
354
354
359
359
363
367
367
367
368
368
368
368
370
370
371
371
371
372
372
388
393
393
393
395
397
397
399
404
405
405
406
406
407
407
407
408
409
409
409
410
410
414
415
415
423
424
426
434
434
434
434
434
435
436
436
436
438
438
439
439
439
439
441
441
443
443
444
451
453
456
457
459
462
463
465
466
467
467
470
472
472
475
475
475
476
476
477
477
478
478
480
480
481
481
481
484
484
499
502
504
506
506
509
510
510
512
513
513
514
514
516
516
518
518
518
520
521
522
522
523
527
528
528
536
537
539
543
547
547
547
548
548
548
549
549
549
550
551
552
552
553
553
555
556
557
561
564
566
566
569
576
578
579
580
580
580
582
584
584
584
585
585
585
585
587
587
587
589
589
593
597
597
600
605
605
616
621
621
621
622
623
623
623
624
624
626
627
628
628
643
650
652
655
659
659
660
660
662
662
664
664
667
672
672
691
696
696
710
714
716
719
733
738
738
756
759
761
780
781
785
785
785
786
788
800
805
805
818
823
823
839
841
844
857
862
862
880
885
885
900
907
909
924
929
929
948
953
953
967
971
973
976
990
995
995
1013
1016
1018
1037
1042
1042
1057
1062
1062
1075
1080
1080
1096
1098
1101
1114
1119
1119
1137
1142
1142
1157
1164
1166
1181
1186
1186
1205
1210
1210
1224
1228
1230
1233
1247
1252
1252
1270
1273
1275
1294
1299
1299
1314
1319
1319
1837
1838
1839
8
8
10
12
12
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
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
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
23
23
24
24
26
26
27
27
27
27
29
29
30
30
30
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
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
36
36
36
36
36
36
41
41
41
41
41
41
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
45
45
46
46
46
46
46
46
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
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
51
51
51
51
51
51
51
52
52
53
53
53
54
54
55
55
55
55
56
56
56
56
56
56
57
57
57
57
58
58
61
66
66
71
72
72
72
72
73
73
73
73
73
73
76
76
76
76
81
81
81
81
82
82
84
85
86
86
87
88
88
88
88
90
90
90
90
90
91
91
91
91
91
91
92
92
92
92
92
100
100
101
102
103
103
103
104
104
104
104
106
107
107
107
107
108
108
108
109
109
110
110
110
113
113
114
114
114
118
118
118
118
118
119
119
123
123
124
124
124
124
124
124
125
126
126
127
128
128
128
128
132
132
132
132
134
134
143
143
144
144
145
145
145
146
146
147
147
148
148
150
152
152
152
152
153
154
154
155
157
158
159
159
160
160
160
160
160
160
160
160
162
162
162
162
171
171
174
175
175
175
178
179
179
179
179
179
180
180
180
180
181
181
183
184
184
184
185
188
189
189
189
189
190
190
194
195
195
196
196
196
196
196
196
198
198
198
198
199
199
199
200
200
200
201
207
210
211
211
211
212
212
214
215
215
216
216
216
217
217
220
220
222
223
224
224
225
225
225
225
225
227
227
229
229
230
230
231
231
231
231
231
231
231
233
233
233
233
237
237
240
241
243
245
246
246
246
246
246
246
246
247
248
248
249
250
250
251
251
251
252
252
255
257
259
259
259
259
260
261
262
264
265
266
266
267
267
267
267
267
267
267
269
269
269
269
269
269
272
272
285
285
285
286
286
287
287
287
287
287
288
288
289
290
292
292
292
293
293
294
295
296
296
296
298
298
301
301
302
302
302
302
302
302
304
304
304
304
305
310
310
310
311
313
313
314
317
317
317
320
321
321
322
322
322
323
323
323
324
324
324
325
326
330
330
331
331
331
332
333
335
336
337
337
338
338
338
338
338
338
338
338
340
340
340
340
342
342
344
344
349
349
350
350
353
354
358
359
359
359
359
360
364
368
368
368
369
369
369
370
371
371
372
372
372
372
373
373
382
382
389
391
394
396
398
398
400
405
405
405
406
407
408
408
409
410
411
411
416
416
423
424
426
426
427
435
435
436
437
437
437
439
439
440
440
440
442
442
444
444
451
451
455
455
457
458
460
463
463
463
466
467
471
471
472
472
472
472
473
476
476
477
477
478
479
481
481
482
482
482
483
485
485
485
495
495
500
503
505
510
511
511
513
514
514
515
517
517
518
518
519
519
521
522
524
529
529
536
537
539
539
540
544
549
549
549
550
550
550
551
552
553
554
556
557
562
564
564
567
568
568
570
576
576
579
580
581
583
584
585
585
585
585
585
585
585
586
586
588
588
588
590
590
594
596
598
598
598
601
606
606
608
608
617
622
622
623
624
624
625
627
628
629
629
644
648
651
653
656
660
660
661
663
663
665
665
668
673
673
692
697
697
715
717
720
734
739
739
757
760
762
781
785
786
786
786
787
801
806
806
819
824
840
842
845
858
863
863
881
886
886
901
905
908
910
925
930
930
949
954
954
972
974
977
991
996
996
1014
1017
1019
1038
1043
1043
1058
1063
1063
1076
1081
1097
1099
1102
1115
1120
1120
1138
1143
1143
1158
1162
1165
1167
1182
1187
1187
1206
1211
1211
1229
1231
1234
1248
1253
1253
1271
1274
1276
1295
1300
1300
1315
1320
1320
1838
1839
1840
8
8
11
11
11
11
12
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
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
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
21
21
21
21
22
22
22
23
23
23
23
23
23
24
24
24
28
28
28
28
30
30
30
30
31
31
31
31
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
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
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
53
53
53
53
54
54
56
56
56
56
57
57
58
58
58
58
62
67
67
72
74
74
77
77
77
77
82
82
82
82
83
83
85
85
86
87
87
88
88
88
88
88
89
89
89
91
91
91
91
92
92
92
92
93
102
103
103
104
104
104
104
105
105
106
106
106
107
107
107
107
108
108
108
108
109
109
109
111
112
114
114
115
115
115
119
119
120
120
123
123
124
125
125
125
125
125
125
125
125
126
126
126
126
126
126
126
127
127
128
132
133
133
134
135
135
143
143
143
144
144
144
144
144
145
145
146
148
148
149
149
151
153
153
153
153
153
154
154
154
154
154
155
156
157
157
159
159
159
159
159
159
159
159
160
160
160
161
161
161
161
161
161
169
172
172
173
175
176
176
176
176
178
178
178
179
179
179
179
180
180
180
180
180
180
181
185
185
185
186
189
190
190
191
191
193
195
195
195
195
195
195
195
195
195
196
196
196
197
197
197
197
200
200
201
201
202
208
209
211
212
212
213
213
214
214
214
215
215
215
215
216
216
217
219
221
221
222
223
224
225
225
226
226
226
228
228
228
230
230
230
230
230
230
230
230
230
230
231
231
231
232
232
232
232
232
238
238
239
239
239
241
244
244
247
247
247
247
247
247
248
249
249
249
249
249
250
250
250
250
251
251
252
257
258
260
261
262
263
264
265
266
266
266
266
266
266
266
266
266
267
267
267
267
268
268
268
268
268
270
270
272
273
273
284
285
285
285
286
286
286
286
286
286
287
287
288
288
290
291
293
293
293
293
293
294
294
294
294
294
295
296
297
297
299
299
299
301
301
301
301
301
301
301
301
302
302
302
303
303
303
303
306
311
311
314
314
315
315
318
318
318
318
320
320
320
321
321
321
321
322
322
322
323
324
325
325
326
327
331
331
332
332
332
333
334
335
336
337
337
337
337
337
337
337
337
337
338
338
338
339
339
339
339
343
343
345
345
350
350
351
351
352
352
352
354
360
360
361
365
368
368
369
369
370
370
370
370
371
372
372
373
374
374
380
383
383
385
392
395
397
397
399
399
406
406
406
407
407
407
407
408
409
409
411
412
412
417
417
427
427
428
435
436
436
437
438
438
439
439
440
440
441
441
441
443
443
445
445
456
456
458
459
461
464
464
464
465
465
465
467
472
473
473
474
477
477
478
478
479
480
482
483
483
483
483
484
493
496
496
498
501
504
506
510
511
512
512
514
514
515
515
516
518
518
519
519
520
520
520
520
520
522
525
530
530
540
540
541
545
548
550
550
550
551
551
552
553
554
555
557
558
563
568
569
569
571
577
577
578
578
578
580
582
584
585
585
586
586
586
586
586
587
587
589
589
589
591
591
596
597
602
606
607
607
609
609
618
623
623
624
625
625
626
628
629
630
630
649
652
654
657
660
660
661
661
662
664
664
666
666
669
674
674
693
698
698
716
718
721
735
740
740
758
761
763
781
782
786
787
787
787
802
807
807
820
825
841
843
846
859
864
864
882
887
887
906
909
911
926
931
931
950
955
955
973
975
978
992
997
997
1015
1018
1020
1039
1044
1044
1059
1064
1064
1077
1082
1098
1100
1103
1116
1121
1121
1139
1144
1144
1163
1166
1168
1183
1188
1188
1207
1212
1212
1230
1232
1235
1249
1254
1254
1272
1275
1277
1296
1301
1301
1316
1321
1321
1839
1840
1841
1
1
5
8
8
9
11
11
11
11
11
11
11
11
11
11
12
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
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
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
22
22
22
22
22
22
22
22
23
23
23
24
24
25
25
29
29
29
29
29
30
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
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
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
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
46
46
46
46
46
46
46
46
46
46
46
47
47
48
48
48
48
48
48
48
48
48
48
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
53
53
53
53
53
54
54
54
55
55
55
55
57
57
57
57
58
58
63
64
66
68
68
73
74
74
74
75
75
75
75
75
78
78
78
78
83
83
83
83
83
85
86
86
87
87
89
89
89
89
89
89
89
90
90
90
90
90
90
90
90
91
91
92
92
92
92
93
93
103
103
104
104
105
105
105
106
106
108
109
109
109
109
110
110
110
112
113
113
115
115
116
120
120
120
121
121
123
124
124
125
125
125
126
126
126
126
127
127
127
127
127
128
128
129
132
134
134
134
135
136
136
141
142
144
144
145
145
145
146
149
149
150
150
152
154
154
154
154
155
155
155
156
157
158
158
160
160
160
160
160
160
160
161
162
162
162
162
162
162
162
170
170
174
176
176
176
176
177
177
177
179
180
180
181
181
181
181
186
186
186
187
187
190
191
191
192
192
194
196
196
196
196
196
196
196
197
198
198
198
198
201
201
202
202
209
210
210
212
213
214
214
215
216
216
217
222
222
223
224
225
226
226
227
227
227
229
229
229
229
231
231
231
231
231
231
231
231
232
233
233
233
233
240
240
240
240
245
245
246
246
247
247
247
248
248
248
248
248
250
250
250
251
251
252
258
258
259
259
261
262
263
264
265
266
267
267
267
267
267
267
267
268
268
268
269
269
269
269
269
273
274
274
283
284
284
286
287
287
288
289
291
292
294
294
295
295
295
295
295
295
296
298
298
300
300
300
302
302
302
302
302
302
303
304
304
304
304
307
312
312
315
315
316
318
318
318
319
319
319
321
322
322
323
323
323
327
328
329
329
332
332
333
333
333
334
335
336
337
338
338
338
338
338
338
338
339
340
340
340
340
342
344
344
346
351
351
353
353
353
353
359
359
361
361
366
369
370
370
371
371
371
371
371
372
372
373
373
374
375
375
381
381
386
393
396
397
398
407
408
408
408
408
408
409
410
412
413
413
418
418
428
428
436
436
437
437
440
441
441
442
442
444
444
446
446
455
457
457
460
462
465
466
466
466
466
472
472
473
474
474
475
475
478
478
479
479
480
481
483
484
484
484
484
484
485
485
494
494
499
502
505
507
510
512
515
516
516
517
519
519
521
521
521
521
521
521
526
531
531
541
541
546
549
549
551
551
553
554
555
556
558
559
564
566
566
568
569
570
570
579
579
579
579
583
585
585
585
586
587
587
587
587
587
588
590
590
590
592
592
597
597
598
598
603
607
607
608
608
619
621
621
624
624
625
626
626
627
629
630
631
631
650
653
655
658
661
662
662
663
665
665
667
667
670
675
675
694
699
717
719
722
736
741
741
759
762
764
783
787
788
788
803
808
808
821
823
823
826
842
844
847
860
865
865
883
888
888
907
910
912
927
932
932
951
956
974
976
979
993
998
998
1016
1019
1021
1040
1045
1045
1060
1065
1065
1078
1080
1080
1083
1099
1101
1104
1117
1122
1122
1140
1145
1145
1164
1167
1169
1184
1189
1189
1208
1213
1231
1233
1236
1250
1255
1255
1273
1276
1278
1297
1302
1302
1317
1322
1322
1840
1841
1842
1
1
1
13
14
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
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
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
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
22
23
23
23
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
28
28
28
28
30
30
30
30
30
30
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
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
37
37
37
37
37
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
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
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
48
48
49
49
49
49
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
54
54
54
55
55
55
55
55
55
56
56
56
58
58
64
64
67
69
69
72
73
74
74
75
75
75
76
76
76
79
79
79
79
83
84
84
84
84
85
86
87
87
87
88
89
90
91
91
91
91
91
91
91
91
91
91
92
93
93
104
105
105
105
105
105
107
107
107
107
108
109
110
110
110
111
111
111
113
116
116
117
120
121
121
122
122
123
123
125
125
125
126
126
126
127
127
127
127
127
127
128
128
128
128
130
132
132
135
135
135
136
141
142
143
144
145
145
145
145
145
146
146
146
147
150
150
151
151
153
154
154
155
155
155
155
156
156
156
158
159
159
159
160
160
160
160
160
161
161
161
161
161
161
161
163
163
176
176
177
177
177
178
178
178
179
180
181
181
182
182
182
182
183
187
187
187
187
188
188
192
192
193
193
195
195
195
196
196
196
196
197
197
197
197
197
197
197
199
199
200
202
202
210
212
213
214
215
215
215
216
216
217
217
218
223
223
224
225
226
228
228
228
229
230
230
230
230
230
231
231
231
231
232
232
232
232
232
232
234
234
241
241
246
247
247
247
248
248
249
249
249
250
251
251
251
252
252
253
260
260
262
263
264
265
266
266
266
267
267
267
267
267
268
268
268
268
268
268
268
270
270
270
274
274
275
275
280
283
284
284
285
285
286
287
288
288
289
290
292
293
295
295
296
296
297
299
299
301
301
301
301
301
302
302
302
302
303
303
303
303
303
303
305
305
308
313
313
313
318
318
319
319
320
320
320
321
322
323
323
324
328
329
329
330
333
333
334
334
334
335
336
337
337
337
338
338
338
338
338
339
339
339
339
339
339
339
341
341
342
347
352
352
354
354
360
367
370
372
372
373
373
374
374
375
376
376
387
387
393
394
397
397
398
399
408
409
409
409
410
411
413
414
414
419
419
426
438
438
441
442
443
443
445
445
447
447
455
461
463
466
467
467
473
474
476
479
479
480
480
481
482
484
485
485
485
486
486
500
500
503
506
506
508
510
511
513
516
518
520
520
522
522
522
522
527
532
532
539
547
552
552
554
555
555
556
557
559
560
565
567
568
570
580
580
584
586
586
587
588
588
589
591
591
591
591
593
593
599
599
604
609
609
620
622
625
625
626
627
627
628
630
631
632
651
654
656
659
662
664
666
666
668
668
671
676
676
695
700
718
720
723
737
742
742
760
763
765
784
785
788
789
789
804
809
809
822
824
827
843
845
845
848
848
861
866
866
884
889
908
911
913
928
933
933
952
957
975
977
980
994
999
999
1017
1020
1022
1041
1046
1046
1061
1066
1066
1079
1081
1084
1100
1102
1102
1105
1105
1118
1123
1123
1141
1146
1165
1168
1170
1185
1190
1190
1209
1214
1232
1234
1237
1251
1256
1256
1274
1277
1279
1298
1303
1303
1318
1323
1323
1841
1841
1842
1843
14
15
15
15
15
15
15
15
15
15
15
15
15
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
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
21
22
22
22
22
22
23
23
25
25
26
26
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
28
28
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
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
35
35
35
35
36
36
38
38
38
38
38
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
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
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
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
50
50
50
50
52
54
54
54
55
55
55
55
55
56
56
56
57
57
57
65
67
67
70
70
73
73
74
74
75
75
75
77
80
80
80
80
85
85
85
85
86
87
87
87
89
90
91
91
92
92
92
92
93
94
94
103
104
104
104
104
104
104
105
106
106
106
106
106
108
108
109
109
112
114
115
117
117
118
122
122
123
123
124
125
125
125
125
125
126
127
127
127
127
127
128
128
128
128
128
128
129
129
131
133
133
134
134
134
136
136
136
142
143
143
144
144
145
146
146
147
147
148
151
151
152
152
154
155
156
156
156
156
157
158
158
159
159
160
160
160
160
161
161
161
161
162
162
162
162
163
163
163
163
164
164
172
176
176
176
177
177
178
178
178
178
179
179
180
182
183
183
183
183
183
188
188
188
188
189
189
193
193
194
194
194
194
195
196
196
196
196
197
197
198
198
198
199
199
199
199
199
200
200
203
203
211
212
213
214
214
215
215
216
216
216
217
218
219
224
224
225
225
226
227
229
229
229
229
229
229
230
230
231
231
231
231
231
231
232
232
233
233
234
234
234
234
235
235
241
246
247
247
247
247
248
248
248
249
249
249
250
250
251
252
252
253
254
258
259
259
259
261
261
265
265
265
266
266
267
267
267
267
268
268
268
269
269
269
270
270
270
270
270
271
271
271
275
275
275
275
276
276
280
284
285
285
285
286
286
286
287
289
290
291
293
294
296
296
296
298
300
300
300
300
300
301
302
302
302
302
302
302
303
303
304
304
305
305
305
305
306
306
309
310
314
314
318
318
318
319
319
320
320
320
321
321
322
324
325
325
329
330
330
331
334
335
335
336
336
336
337
337
338
338
338
338
338
339
339
339
340
340
340
341
341
341
341
342
342
342
343
348
353
354
359
361
368
371
371
371
372
372
372
373
373
374
374
374
375
375
376
377
377
383
388
388
388
388
393
395
398
398
398
399
400
400
409
411
412
413
414
415
415
420
420
423
438
439
439
441
441
442
443
444
444
446
446
448
448
451
455
456
462
464
464
467
467
467
472
474
475
477
480
481
482
483
484
485
485
485
485
486
486
486
487
487
496
501
501
501
501
504
506
507
509
511
512
514
517
519
521
521
522
523
523
526
528
533
533
536
548
551
553
553
556
557
558
560
561
564
566
568
568
569
571
580
585
585
587
587
588
590
592
592
592
592
594
594
597
598
598
598
600
600
605
609
610
610
621
623
626
628
628
629
631
631
631
632
633
652
655
655
657
657
660
663
665
667
667
669
669
672
677
677
696
698
698
701
719
721
721
724
724
738
743
743
761
764
766
781
785
786
790
790
805
810
810
823
825
828
844
849
849
862
867
867
885
888
888
890
909
912
912
914
914
929
934
934
953
955
955
958
976
978
978
981
981
995
1000
1000
1018
1021
1023
1042
1047
1047
1062
1067
1067
1080
1082
1085
1101
1106
1106
1119
1124
1124
1142
1145
1145
1147
1166
1169
1169
1171
1171
1186
1191
1191
1210
1212
1212
1215
1233
1235
1235
1238
1238
1252
1257
1257
1275
1278
1280
1299
1304
1304
1319
1324
1324
1842
1842
1843
1844
11
11
12
15
15
15
15
15
15
15
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
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
23
26
26
27
27
28
28
29
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
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
35
35
35
35
35
35
36
36
36
36
39
39
39
39
39
41
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
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
46
46
46
46
46
46
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
50
51
51
51
51
54
54
54
54
54
55
55
56
56
56
57
58
58
66
71
71
76
76
76
78
81
81
81
81
86
86
86
86
87
88
88
89
89
89
90
91
91
91
92
92
92
95
95
103
103
103
104
105
105
105
106
107
107
107
113
115
115
118
118
119
123
123
123
124
124
126
126
126
127
128
128
129
129
129
129
130
130
132
135
135
135
135
137
137
142
142
143
143
145
146
146
146
146
147
147
148
148
149
152
152
153
153
154
156
157
157
157
157
158
159
159
160
161
161
163
163
163
163
164
164
164
164
165
165
172
174
177
177
177
178
178
178
178
179
180
181
181
181
182
182
183
184
184
184
184
187
189
189
189
189
190
190
194
194
195
195
195
195
197
197
199
199
199
199
200
200
200
200
200
200
200
201
201
204
204
212
212
213
213
214
214
216
217
217
217
217
217
218
218
218
218
219
220
225
225
225
226
227
228
230
230
230
230
230
230
231
232
232
232
232
234
234
235
235
235
235
236
236
241
245
246
246
247
248
248
248
248
249
249
249
251
252
252
252
253
253
253
253
254
255
258
258
258
259
260
260
260
266
266
266
267
268
268
269
270
270
270
270
271
271
271
271
272
272
272
273
275
275
276
276
277
277
284
284
284
285
285
286
287
287
288
288
288
289
289
290
291
292
294
295
296
297
297
299
301
301
301
301
301
301
301
303
303
303
303
305
305
306
306
306
306
307
307
310
310
311
313
313
315
315
316
319
319
319
320
320
320
322
323
323
323
324
324
325
325
326
330
331
331
331
332
335
336
336
337
337
337
338
338
339
339
340
341
341
341
342
342
342
342
343
343
343
344
349
354
354
359
359
360
369
371
371
371
372
372
373
373
373
374
374
375
376
376
377
378
378
383
386
388
388
389
389
396
397
399
400
401
401
409
412
413
414
414
414
415
416
416
421
421
423
424
426
426
438
440
440
442
443
444
444
445
445
447
447
449
449
451
456
457
463
467
468
468
472
472
473
476
478
481
482
483
484
484
484
484
485
486
486
486
486
487
487
487
496
499
501
501
502
502
508
510
510
512
513
515
518
520
522
522
522
524
524
527
527
527
529
534
534
536
537
539
539
549
551
554
554
557
557
558
559
561
562
564
567
569
569
570
572
580
585
585
586
586
588
589
591
593
593
593
593
595
595
597
597
597
598
599
599
599
606
609
611
611
622
624
627
629
629
630
632
632
633
634
653
658
658
661
664
666
668
668
670
670
673
678
678
697
699
702
720
725
725
739
744
744
765
767
786
787
791
791
806
811
811
824
826
829
845
850
850
863
868
868
886
889
891
910
915
915
930
935
935
954
956
959
977
982
982
996
1001
1001
1022
1024
1043
1048
1048
1063
1068
1068
1081
1083
1086
1102
1107
1107
1120
1125
1125
1143
1146
1148
1167
1172
1172
1187
1192
1192
1211
1213
1216
1234
1239
1239
1253
1258
1258
1279
1281
1300
1305
1305
1320
1325
1325
1843
1844
1845
4
4
5
8
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
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
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
23
25
25
25
26
26
26
26
26
26
26
27
27
28
28
29
29
30
30
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
34
34
34
34
34
34
34
34
34
34
37
39
40
40
40
40
40
40
40
40
40
40
41
41
42
43
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
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
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
49
49
49
49
51
52
52
52
55
55
55
55
56
56
56
56
56
56
56
56
56
56
67
72
72
75
75
75
75
76
76
76
77
77
77
82
82
82
82
87
87
87
87
90
90
90
90
90
91
91
91
91
92
92
92
93
96
105
105
106
106
106
107
108
108
110
110
110
111
111
111
114
116
119
119
120
124
124
124
125
125
125
125
125
126
127
127
127
130
130
130
130
133
136
136
138
138
146
146
147
147
147
148
148
149
149
150
153
153
154
154
154
154
155
158
158
158
158
159
159
159
160
160
161
161
162
162
162
162
164
164
165
165
165
165
174
176
178
179
179
180
181
182
182
182
183
183
184
185
185
185
185
188
190
190
190
190
191
195
195
195
195
196
196
196
196
198
199
200
201
201
201
201
201
201
205
205
213
217
218
218
218
218
219
219
219
219
219
219
220
221
226
226
226
227
228
229
229
230
230
231
231
231
231
231
231
232
233
233
233
236
236
236
236
245
245
246
247
247
248
249
249
250
252
253
253
253
254
254
254
254
255
256
260
261
261
261
266
266
267
267
267
268
269
270
271
272
272
272
272
273
276
277
277
278
278
280
285
287
287
288
289
289
289
290
290
291
292
295
295
296
298
298
300
301
301
302
302
302
302
302
302
304
304
304
307
307
307
307
310
311
314
314
316
316
316
318
320
321
323
324
324
324
325
325
326
327
331
332
332
332
332
332
333
336
337
337
337
337
338
338
338
339
340
341
342
342
343
343
343
343
344
345
350
352
352
355
358
359
360
361
370
370
373
373
374
374
374
375
375
376
377
377
378
379
379
389
390
390
393
397
398
400
400
402
402
413
414
415
415
416
417
417
422
422
423
427
427
441
441
441
443
444
445
445
445
445
446
446
448
448
450
450
455
457
458
464
469
469
471
472
473
474
477
479
482
483
484
485
486
487
487
487
487
488
488
488
502
503
503
506
509
511
511
513
513
516
516
519
521
523
523
525
525
528
528
530
535
535
536
540
540
550
555
555
558
558
558
558
559
560
562
563
568
568
570
570
571
573
584
585
586
587
587
587
589
590
592
594
594
594
594
596
596
599
600
600
600
607
612
612
623
625
628
630
630
631
633
633
634
635
654
659
659
662
662
665
667
669
669
671
671
674
679
679
698
700
703
721
726
726
740
745
745
766
768
787
788
792
792
807
812
812
825
827
830
846
851
851
864
869
869
887
890
892
911
916
916
931
936
936
955
957
960
978
983
983
997
1002
1002
1023
1025
1044
1049
1049
1064
1069
1069
1082
1084
1087
1103
1108
1108
1121
1126
1126
1144
1147
1149
1168
1173
1173
1188
1193
1193
1212
1214
1217
1235
1240
1240
1254
1259
1259
1280
1282
1301
1306
1306
1321
1326
1326
1844
1845
1846
5
5
5
5
5
5
6
11
11
11
11
11
11
11
11
12
12
13
13
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
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
23
23
24
24
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
32
32
33
33
33
34
34
34
34
34
34
34
37
37
37
38
39
39
39
39
40
41
41
41
42
42
43
43
44
44
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
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
48
48
49
49
49
49
49
49
51
52
53
57
57
57
57
57
57
57
57
58
68
73
73
73
74
75
75
76
76
76
77
77
78
83
83
83
83
83
83
88
88
88
88
91
91
91
92
92
92
92
92
92
92
92
92
93
94
97
104
106
106
106
107
107
108
109
110
111
111
111
112
112
115
115
115
117
118
120
120
121
125
125
125
125
126
126
126
126
126
126
127
127
127
127
127
128
134
136
139
139
148
148
149
149
150
153
154
154
154
155
155
155
156
159
159
159
159
159
160
160
160
160
161
161
161
161
162
162
162
162
163
163
163
163
172
172
175
176
177
180
180
180
181
183
183
184
184
186
186
186
188
188
190
190
190
191
191
191
191
192
195
196
196
196
196
196
197
197
197
198
198
199
200
200
201
202
202
202
206
206
212
212
214
217
219
219
219
219
219
220
220
220
220
225
227
227
228
229
229
229
230
230
230
231
231
231
232
232
232
232
232
232
233
233
234
234
234
246
246
247
248
248
249
250
251
254
254
255
255
255
255
259
261
262
262
262
263
266
266
267
267
267
267
268
268
269
269
269
270
270
270
271
272
274
275
275
277
279
279
284
286
290
290
291
291
296
296
297
299
299
300
300
301
301
301
302
302
302
302
302
302
302
303
303
303
303
304
304
305
305
305
311
312
313
315
315
315
317
317
317
318
319
322
325
325
325
325
326
326
330
332
332
333
333
333
333
334
334
337
337
337
338
338
338
338
338
338
338
339
339
340
340
340
341
342
343
343
345
345
351
353
356
359
361
362
371
371
372
374
374
375
375
375
375
376
376
377
378
378
379
380
380
383
383
388
388
390
397
398
399
403
403
408
409
412
413
414
414
415
415
415
415
415
416
417
418
418
423
423
424
426
428
428
428
438
438
442
442
442
443
444
445
445
445
446
446
446
446
447
447
449
449
451
451
451
456
458
458
465
470
470
472
474
475
479
480
480
483
483
484
484
485
485
486
487
488
488
488
489
489
489
496
496
501
501
503
510
510
512
512
517
517
520
521
521
522
524
524
526
526
527
528
528
528
528
529
531
536
536
537
539
541
541
541
551
551
551
554
555
556
556
556
558
558
558
559
559
559
560
561
563
564
564
569
569
571
571
571
574
585
587
588
588
588
590
591
592
592
593
595
595
595
595
597
597
598
600
601
601
608
609
609
613
613
625
626
626
629
629
630
631
631
632
634
634
635
636
655
660
660
663
663
666
667
667
668
670
670
672
672
675
680
680
699
701
704
722
727
727
741
746
746
767
769
785
788
788
793
793
808
813
813
826
828
831
847
852
852
865
870
870
888
891
893
912
917
917
932
937
937
956
958
961
979
984
984
998
1003
1003
1024
1026
1045
1050
1050
1065
1070
1070
1083
1085
1088
1104
1109
1109
1122
1127
1127
1145
1148
1150
1169
1174
1174
1189
1194
1194
1213
1215
1218
1236
1241
1241
1255
1260
1260
1281
1283
1302
1307
1307
1322
1327
1327
1845
1846
1847
6
6
7
7
12
12
12
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
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
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
25
25
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
32
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
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
38
38
38
39
39
39
39
40
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
43
43
43
43
44
44
44
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
47
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
51
51
51
51
52
52
53
53
54
54
58
58
58
58
58
59
67
69
74
74
74
74
75
75
75
76
79
84
84
84
84
84
84
85
85
85
89
89
89
89
91
91
92
93
93
93
93
93
94
95
95
98
105
105
109
109
110
110
113
116
116
116
118
118
119
121
121
121
122
126
126
127
127
127
127
127
127
127
128
128
128
128
128
128
129
135
136
140
140
146
146
147
147
151
154
154
155
155
156
156
156
157
160
160
160
160
160
160
161
161
161
162
163
163
163
163
163
163
164
164
164
164
170
173
173
175
175
178
179
179
181
181
181
181
181
181
181
182
182
182
187
187
187
191
191
192
192
192
192
193
196
196
197
197
197
197
198
198
198
199
199
199
199
200
200
201
202
207
207
210
213
213
215
217
217
217
217
218
218
220
220
221
221
229
229
230
230
230
231
231
231
231
232
232
233
233
233
233
233
233
234
234
234
234
235
235
235
235
235
240
246
246
246
247
249
249
250
250
251
252
252
252
253
253
256
256
260
260
267
267
267
268
268
268
268
269
269
270
270
270
270
270
271
271
271
272
273
275
276
280
280
285
285
287
287
288
288
289
289
295
298
300
300
301
301
302
302
302
303
303
303
303
304
304
304
304
304
304
305
305
305
305
306
306
306
306
306
313
313
314
317
317
318
318
320
321
321
323
323
323
323
324
324
326
326
333
334
334
334
335
338
338
338
338
339
339
339
339
339
340
340
341
341
341
341
341
342
342
343
344
344
352
353
354
357
359
360
362
373
373
375
376
376
377
377
378
379
379
379
379
380
381
381
381
381
381
384
384
389
398
398
399
400
400
404
404
408
413
414
415
416
416
416
417
418
419
419
424
424
426
427
436
439
439
443
445
446
446
447
447
447
447
448
448
450
450
450
450
452
452
452
452
455
457
466
466
471
471
472
473
475
481
484
484
485
485
486
486
486
487
489
490
490
490
494
497
497
502
504
511
511
511
513
513
513
521
521
522
522
523
525
525
525
525
527
527
527
527
529
529
530
532
537
537
539
540
549
552
552
552
557
557
559
559
560
560
560
561
562
564
565
568
570
570
572
575
579
585
586
588
591
592
593
593
594
596
596
596
596
596
596
598
598
598
598
599
599
607
609
610
610
614
614
627
630
630
631
632
632
633
635
635
636
637
656
661
661
667
668
668
669
671
671
671
671
673
673
673
673
676
681
681
700
702
705
723
728
728
742
747
747
761
768
770
781
786
789
794
794
809
814
814
827
829
832
848
853
853
866
871
871
889
892
894
913
918
918
933
938
938
957
959
962
980
985
985
999
1004
1004
1018
1025
1027
1046
1051
1051
1066
1071
1071
1084
1086
1089
1105
1110
1110
1123
1128
1128
1146
1149
1151
1170
1175
1175
1190
1195
1195
1214
1216
1219
1237
1242
1242
1256
1261
1261
1275
1282
1284
1303
1308
1308
1323
1328
1328
1846
1847
1848
4
5
7
7
8
8
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
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
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
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
23
23
26
26
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
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
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
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
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
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
43
43
43
43
44
44
44
45
45
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
49
49
49
50
53
53
54
54
54
55
55
58
58
58
64
64
67
70
75
75
76
77
80
85
85
85
85
86
86
86
86
90
90
90
90
90
91
91
92
93
93
94
94
94
95
96
99
108
108
108
114
114
117
120
120
122
122
122
123
123
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
136
141
141
142
142
143
143
146
147
147
147
148
148
152
154
155
155
156
156
157
157
157
159
160
160
161
161
161
161
161
161
162
162
163
163
163
163
163
163
164
164
164
164
164
164
165
165
171
171
177
177
178
178
179
179
180
180
181
181
181
182
182
182
182
182
182
183
183
183
188
188
188
188
190
192
192
193
193
193
194
196
196
197
197
198
198
199
199
199
199
199
199
199
199
200
200
200
200
201
201
202
202
203
208
208
211
211
213
213
214
214
216
217
218
218
218
218
219
219
219
219
221
221
225
230
230
230
231
231
231
231
231
232
232
232
232
232
234
234
234
234
234
234
234
235
235
235
235
236
236
236
236
241
241
241
241
246
247
248
248
249
249
249
249
250
250
251
251
252
252
253
253
253
253
254
254
257
257
267
267
268
268
268
269
269
269
270
270
270
270
270
270
270
270
271
271
271
271
271
271
273
273
274
274
275
275
276
277
281
281
284
284
285
285
285
287
288
288
288
289
289
289
290
290
292
294
296
296
296
296
299
301
301
302
302
302
302
302
302
303
303
303
304
304
305
305
305
305
305
305
306
306
306
306
307
307
307
307
314
314
314
315
315
319
319
319
319
320
320
321
322
322
323
324
324
324
324
324
324
325
325
332
332
334
335
336
338
338
339
339
339
339
340
340
340
341
341
341
341
341
341
341
341
342
342
342
342
342
342
343
343
344
344
345
345
345
345
353
354
354
354
354
355
358
359
360
362
362
363
369
376
377
377
378
378
379
381
382
382
382
382
382
382
388
388
390
398
400
400
401
401
405
405
409
409
409
409
414
415
415
415
416
416
417
417
417
417
419
419
420
420
420
425
425
427
427
428
428
437
437
440
444
445
445
446
447
447
448
448
449
449
453
453
453
453
456
456
458
458
467
467
467
467
467
472
472
472
473
475
475
476
482
485
485
486
486
487
487
488
488
490
490
491
491
491
491
495
495
501
501
503
505
509
511
512
513
514
514
514
515
522
522
522
522
522
523
523
524
528
528
528
528
528
528
530
530
533
538
538
540
540
541
541
550
550
553
558
558
558
558
560
560
561
562
562
563
563
565
565
566
566
569
569
571
571
571
573
576
580
580
580
580
585
586
586
588
588
589
592
593
594
594
595
597
597
599
599
599
599
608
608
610
615
615
628
631
631
632
633
633
633
634
634
636
636
636
637
637
638
657
661
662
662
668
669
669
670
674
674
674
674
677
682
682
701
703
706
724
729
729
743
748
748
762
766
769
771
785
787
790
795
795
810
815
815
828
830
833
849
854
854
867
872
872
890
893
895
914
919
919
934
939
939
958
960
963
981
986
986
1000
1005
1005
1019
1023
1026
1028
1047
1052
1052
1067
1072
1072
1085
1087
1090
1106
1111
1111
1124
1129
1129
1147
1150
1152
1171
1176
1176
1191
1196
1196
1215
1217
1220
1238
1243
1243
1257
1262
1262
1276
1280
1283
1285
1304
1309
1309
1324
1329
1329
1847
1848
1849
4
5
6
9
9
11
11
11
11
11
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
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
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
18
18
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
20
21
21
21
21
21
21
23
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
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
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
32
32
32
32
32
32
33
33
33
33
34
34
34
34
35
35
35
35
37
37
37
37
37
37
37
37
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
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
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
45
45
46
46
47
47
47
47
47
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
51
51
55
55
55
55
56
56
58
58
58
58
58
58
65
65
65
65
71
75
76
76
76
77
77
78
81
86
86
86
86
87
87
91
91
91
91
91
91
91
91
92
92
93
93
95
95
95
96
97
100
106
107
108
109
109
111
111
111
112
112
112
118
121
121
121
121
123
123
123
124
124
126
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
137
142
142
142
143
146
146
147
147
147
148
148
148
149
149
153
154
155
157
157
157
157
158
158
158
159
160
162
162
162
162
163
163
163
163
163
164
164
164
164
164
164
164
164
165
165
165
165
165
177
178
181
181
181
181
182
182
182
182
183
183
183
183
183
184
184
184
189
189
189
191
194
194
194
195
195
199
199
199
199
200
200
200
200
200
200
200
200
200
200
201
201
201
201
203
203
204
209
209
213
214
217
217
217
218
218
218
219
219
219
219
220
220
220
222
226
226
228
230
230
230
231
232
232
232
232
233
233
233
234
234
235
235
235
235
235
235
235
235
235
236
236
236
236
237
237
237
237
242
242
248
249
250
250
251
252
252
252
252
253
253
253
253
254
254
254
255
255
258
258
262
266
269
270
270
270
271
271
271
271
271
271
271
271
272
272
272
272
274
274
275
275
275
275
276
276
277
282
284
285
285
287
288
288
288
289
289
289
289
289
290
290
290
291
291
293
295
297
297
297
299
300
301
302
302
303
303
303
304
305
305
306
306
306
306
306
306
306
306
307
307
307
307
308
308
308
308
315
316
316
319
320
320
320
323
323
323
323
324
324
324
325
325
325
326
326
331
333
335
336
337
337
340
340
341
341
341
341
341
342
342
342
342
342
342
342
342
343
343
343
343
343
345
345
345
346
346
346
346
354
355
355
356
359
363
363
364
370
374
375
377
378
378
379
379
380
382
383
383
383
383
388
388
389
389
398
400
401
401
402
402
406
406
410
410
415
416
416
420
420
421
421
421
426
426
429
429
441
445
445
446
447
448
449
449
450
450
454
454
454
454
456
458
459
459
468
468
468
473
473
476
476
477
477
481
483
486
486
487
487
488
491
491
492
492
492
492
501
501
502
502
510
511
513
513
514
515
515
515
516
520
523
523
523
524
524
525
529
529
529
529
529
534
539
539
542
542
554
559
559
559
561
562
566
566
567
567
569
571
572
572
574
577
581
581
587
589
589
590
591
593
594
595
595
596
598
598
600
600
600
600
601
611
616
616
623
627
629
632
632
633
634
637
637
637
638
638
639
658
662
663
663
666
669
670
670
671
675
675
675
675
678
683
683
702
704
707
725
730
730
744
749
749
767
770
772
786
786
788
788
791
796
796
811
816
816
831
834
850
855
855
868
873
873
891
894
896
915
920
920
935
940
940
959
961
964
982
987
987
1001
1006
1006
1024
1027
1029
1048
1053
1053
1068
1073
1073
1088
1091
1107
1112
1112
1125
1130
1130
1148
1151
1153
1172
1177
1177
1192
1197
1197
1216
1218
1221
1239
1244
1244
1258
1263
1263
1281
1284
1286
1305
1310
1310
1325
1330
1330
1848
1849
1850
4
5
5
5
10
10
11
11
11
11
11
11
11
11
11
11
11
11
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
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
19
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
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
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
34
34
34
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
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
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
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
46
46
48
48
48
49
49
52
56
56
57
57
58
58
59
59
59
59
59
65
65
66
66
67
72
76
76
76
76
77
77
77
77
77
78
78
82
87
87
87
87
87
92
92
92
92
93
93
93
93
93
93
93
93
96
96
96
98
101
107
107
107
109
110
111
112
112
112
113
113
116
119
119
121
121
122
122
124
124
124
124
124
125
126
127
127
128
128
129
130
130
130
130
130
130
130
130
131
131
131
131
135
138
143
143
145
147
147
148
148
148
149
149
149
149
150
150
150
154
158
158
158
158
159
159
159
159
160
161
162
163
163
163
163
164
165
165
165
165
165
165
166
166
166
166
166
173
179
179
181
181
182
182
183
183
183
183
184
184
184
184
185
185
185
185
188
190
190
190
192
195
195
195
195
196
196
198
200
200
201
201
201
201
201
201
201
201
201
202
202
202
202
202
202
202
204
204
205
210
210
213
218
218
218
219
219
219
219
219
220
220
220
220
220
221
221
221
221
223
229
230
230
231
231
232
232
232
233
233
233
233
233
234
234
234
234
236
236
236
236
236
236
236
237
237
237
237
238
238
238
238
242
250
250
251
251
253
253
254
254
254
254
255
255
255
255
256
256
256
259
259
262
266
267
269
270
271
271
272
272
272
272
272
272
273
273
273
273
275
275
276
276
277
277
278
281
281
283
285
285
288
289
289
289
290
290
290
291
291
291
291
292
292
292
297
298
300
301
301
302
302
303
303
303
304
304
304
304
305
305
307
307
307
307
307
307
308
308
308
308
309
309
309
309
314
315
315
315
316
317
317
321
321
321
321
324
324
325
325
325
326
326
326
326
326
327
327
327
332
332
334
336
337
337
338
338
340
341
341
342
342
342
343
343
343
343
343
343
343
344
344
344
344
345
346
346
346
347
347
347
347
355
355
357
360
364
364
375
375
378
378
379
379
380
380
380
381
383
384
384
384
384
384
390
390
398
398
401
402
402
407
407
410
415
416
417
417
421
421
422
422
422
427
427
427
428
428
428
430
430
439
445
445
446
446
447
448
449
449
450
450
451
451
451
455
455
455
455
456
458
459
460
460
468
469
474
474
477
477
482
484
487
487
488
488
488
492
492
493
493
493
493
497
503
503
511
511
511
514
514
515
516
521
523
524
524
525
525
526
526
528
530
530
530
530
530
535
540
540
540
541
541
541
543
543
552
555
558
558
560
560
560
562
563
567
567
568
568
569
571
572
573
573
575
578
581
590
590
592
594
595
595
596
596
597
597
599
599
601
601
601
601
601
610
612
617
617
628
630
633
633
634
635
638
638
638
639
639
640
659
664
664
667
670
670
671
671
672
672
676
676
676
676
679
684
684
703
705
708
726
731
731
745
750
750
768
771
773
786
786
788
788
789
789
792
797
797
812
817
817
832
835
851
856
856
869
874
874
892
895
897
916
921
921
936
941
941
960
962
965
983
988
988
1002
1007
1007
1025
1028
1030
1049
1054
1054
1069
1074
1074
1089
1092
1108
1113
1113
1126
1131
1131
1149
1152
1154
1173
1178
1178
1193
1198
1198
1217
1219
1222
1240
1245
1245
1259
1264
1264
1282
1285
1287
1306
1311
1311
1326
1331
1331
1849
1850
1851
1
5
6
6
6
11
11
11
11
11
11
11
14
14
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
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
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
23
25
25
25
26
26
26
26
26
26
26
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
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
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
37
37
37
37
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
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
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
46
46
46
46
46
46
46
46
46
49
49
49
49
49
52
53
56
57
57
58
58
59
59
59
59
59
59
59
59
59
59
60
60
66
67
67
73
74
75
75
77
77
77
77
77
78
78
78
78
78
78
83
87
88
88
88
88
91
91
91
91
92
93
93
94
94
94
94
94
97
99
102
110
110
111
111
116
120
122
123
123
125
125
125
126
126
127
127
127
127
128
129
129
129
129
130
130
130
130
130
130
130
131
131
132
132
132
132
136
136
136
136
139
144
144
146
146
146
147
148
149
149
149
150
150
150
150
150
151
151
155
159
159
159
159
159
160
160
160
162
162
162
162
163
164
164
164
164
164
164
165
165
165
165
165
165
165
165
167
167
167
167
167
173
175
175
179
180
180
182
182
183
184
184
184
185
185
185
185
185
186
186
186
188
189
190
191
191
191
195
196
196
196
196
197
198
198
198
199
200
200
201
201
201
201
201
201
201
201
201
201
201
202
202
202
203
203
203
203
203
203
203
206
211
211
213
218
219
219
219
219
220
220
220
220
220
221
221
221
221
221
221
222
222
224
230
230
230
230
231
232
233
233
233
233
234
234
234
234
234
235
235
235
235
236
236
236
236
236
236
237
238
238
238
238
239
239
239
239
242
246
246
249
250
251
251
253
254
255
255
255
255
256
256
256
256
256
257
257
260
260
266
267
269
269
269
270
271
271
271
271
272
272
272
272
272
272
272
273
274
274
274
274
276
276
277
277
278
278
279
282
284
286
286
287
287
287
289
289
290
291
291
291
292
292
292
292
292
293
293
297
299
301
301
302
302
302
302
303
304
304
304
304
305
305
305
306
306
306
306
307
307
307
307
307
307
309
309
309
309
310
310
310
310
314
314
314
315
316
316
316
317
317
317
321
322
322
322
322
324
325
326
326
326
326
327
327
327
327
327
328
328
332
332
333
333
337
337
338
338
339
339
340
340
340
341
342
342
342
342
342
343
343
343
343
343
343
343
343
343
343
343
345
345
345
345
346
347
347
347
348
348
355
356
358
361
362
376
380
380
381
381
382
384
384
385
385
385
385
386
391
391
399
399
400
400
400
402
403
408
408
410
415
415
416
417
418
422
422
423
423
423
427
427
427
428
428
428
429
429
429
439
445
445
446
446
447
449
451
451
452
452
452
456
456
456
456
456
456
459
460
468
470
475
475
475
483
485
485
488
488
488
489
489
493
493
494
494
494
494
497
499
504
504
512
512
512
513
513
513
515
515
517
522
523
526
526
527
527
528
528
529
531
531
531
531
536
540
540
540
541
541
541
542
542
542
552
556
558
558
559
559
561
561
563
564
568
568
569
569
569
569
572
573
576
579
581
588
593
595
597
597
598
598
600
600
602
602
602
602
610
613
618
618
629
631
631
634
634
634
635
639
639
639
640
640
641
660
665
665
668
672
672
673
673
677
677
677
677
680
685
685
706
709
727
732
732
746
751
751
769
772
774
789
789
790
790
793
798
798
813
818
818
833
836
852
857
857
870
875
875
896
898
917
922
922
937
942
942
963
966
984
989
989
1003
1008
1008
1026
1029
1031
1050
1055
1055
1070
1075
1075
1090
1093
1109
1114
1114
1127
1132
1132
1153
1155
1174
1179
1179
1194
1199
1199
1220
1223
1241
1246
1246
1260
1265
1265
1283
1286
1288
1307
1312
1312
1327
1332
1332
1850
1851
1852
1
1
5
5
5
7
11
11
11
11
11
12
12
13
13
14
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
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
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
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
28
28
28
28
28
28
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
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
33
33
33
33
33
33
33
33
33
33
34
34
34
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
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
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
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
45
45
45
45
45
45
45
45
45
45
46
47
47
47
47
47
47
47
47
47
48
48
48
48
50
50
50
53
53
54
56
56
56
58
58
59
59
60
60
60
60
61
61
65
65
67
74
75
76
76
76
77
77
78
78
78
78
78
78
79
79
79
79
84
89
89
89
89
91
91
92
92
92
94
94
94
94
98
100
103
107
107
109
109
109
121
121
121
123
126
126
126
127
127
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
130
130
130
130
131
131
131
131
131
131
131
132
137
137
140
145
145
147
147
147
148
149
150
150
151
151
151
152
152
156
157
160
160
161
161
162
163
163
163
163
163
164
164
164
164
164
164
164
164
165
165
165
165
165
165
165
166
166
166
166
166
166
166
166
168
168
175
179
179
180
181
181
181
181
182
183
183
184
185
185
186
186
186
187
187
187
189
190
190
191
192
192
192
197
197
197
198
198
199
199
199
199
200
200
200
200
200
200
200
200
201
201
202
202
202
202
202
202
202
202
203
203
203
204
204
204
207
212
212
218
219
220
220
221
221
221
221
222
222
222
222
223
223
225
231
231
231
232
232
232
233
233
234
234
234
234
234
235
235
235
235
235
235
235
235
235
235
235
236
236
236
236
237
237
237
237
237
237
238
240
240
240
240
246
246
250
250
251
252
252
253
254
255
256
256
256
257
257
257
258
258
261
261
262
262
269
270
270
270
270
271
271
271
271
271
271
271
271
272
272
272
273
273
273
273
273
273
273
274
277
277
278
278
279
280
283
285
288
288
288
288
289
290
291
292
292
293
293
293
294
294
300
301
302
302
303
303
304
304
305
305
305
305
305
306
306
306
306
306
306
306
306
306
306
307
307
307
307
308
308
308
308
308
308
311
311
311
311
316
317
317
317
317
318
321
321
322
323
323
323
323
324
325
326
327
327
328
328
328
329
329
334
334
338
339
340
341
341
341
341
342
342
342
342
342
342
342
342
343
343
343
343
343
344
344
344
344
344
344
344
344
344
344
344
345
345
345
347
348
348
349
349
357
359
359
362
375
375
377
381
381
382
382
383
385
386
386
386
386
387
392
401
401
401
401
404
409
409
414
415
416
417
418
419
423
423
424
424
424
429
429
429
430
430
430
447
447
448
450
452
452
453
453
453
457
457
457
457
457
457
458
458
458
460
471
472
476
476
484
488
488
489
489
489
490
490
494
494
495
495
495
495
500
505
513
514
514
514
514
516
516
518
518
523
527
527
527
528
528
528
529
530
532
532
532
532
537
542
542
542
543
543
543
557
560
560
562
562
564
565
569
569
570
570
570
570
571
571
571
571
573
575
577
580
585
594
596
598
598
599
599
601
601
601
601
603
603
603
603
614
619
619
630
635
635
635
636
640
640
640
641
641
642
661
666
666
669
673
673
674
674
678
678
678
678
681
686
686
707
710
728
733
733
747
752
752
770
773
773
775
775
790
790
794
799
799
814
819
819
828
832
834
837
853
858
858
871
876
876
897
899
918
923
923
938
943
943
964
967
985
990
990
1004
1009
1009
1027
1030
1030
1032
1032
1051
1056
1056
1071
1076
1076
1085
1089
1091
1094
1110
1115
1115
1128
1133
1133
1154
1156
1175
1180
1180
1195
1200
1200
1221
1224
1242
1247
1247
1261
1266
1266
1284
1287
1287
1289
1289
1308
1313
1313
1328
1333
1333
1851
1852
1853
5
5
6
6
6
6
8
11
11
11
11
13
13
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
17
17
17
17
17
18
18
18
18
18
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
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
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
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
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
35
35
35
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
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
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
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
46
46
46
46
46
46
46
46
46
46
47
49
49
51
51
51
55
57
57
59
59
59
59
59
59
60
60
61
61
61
61
66
75
76
77
78
78
78
79
79
79
79
79
80
80
80
80
85
90
90
90
91
92
92
92
92
92
93
93
94
94
94
94
94
94
94
94
95
95
99
101
104
105
107
108
108
109
110
110
112
113
122
122
127
127
127
128
128
129
129
129
129
130
130
130
131
131
132
132
132
132
132
132
132
133
137
141
146
146
146
147
147
147
147
147
147
148
148
148
150
151
151
152
154
157
161
161
162
162
164
164
164
164
165
165
166
166
166
166
166
166
167
167
167
167
167
167
169
169
180
180
181
181
181
182
182
182
182
182
182
182
183
183
185
186
186
187
188
191
191
192
193
193
193
198
198
198
199
200
200
200
201
201
202
202
202
203
203
203
203
203
203
203
203
204
204
204
205
205
208
213
213
213
213
217
218
218
219
219
221
221
222
222
222
222
223
223
226
232
233
233
233
233
234
235
235
235
236
236
236
236
236
237
237
237
237
238
238
238
238
238
238
239
241
241
241
241
246
247
249
249
251
251
252
253
253
253
253
253
254
254
256
257
257
257
258
260
262
262
263
263
271
271
271
272
272
273
273
273
274
274
274
274
274
274
274
274
274
278
278
278
278
279
279
280
281
284
286
289
289
289
289
290
290
292
293
293
294
301
302
303
304
304
304
305
306
306
306
306
306
307
307
307
307
308
308
308
308
309
309
309
309
309
309
312
312
312
312
315
317
318
318
319
322
322
323
324
324
324
324
324
324
324
325
325
326
326
327
328
328
329
330
335
335
339
340
342
342
342
343
343
344
344
344
344
344
345
345
345
345
345
345
345
345
345
346
346
346
346
349
349
350
350
359
360
360
362
362
363
373
376
376
378
382
382
383
383
384
386
387
387
387
387
387
387
391
391
393
402
402
405
410
410
415
417
418
419
420
424
424
425
425
425
428
430
430
430
431
431
439
439
443
448
448
449
451
453
453
454
454
454
458
458
458
458
459
459
459
459
472
472
473
475
475
477
477
485
486
489
489
490
490
490
491
491
495
495
496
496
496
496
500
500
504
504
506
514
515
515
519
519
524
528
528
528
529
529
530
531
533
533
533
533
538
541
543
543
543
544
544
552
552
556
558
561
561
563
563
565
566
570
570
571
571
572
572
572
572
576
578
581
585
586
588
588
595
597
599
599
599
600
600
602
602
602
602
604
604
604
604
615
620
620
631
636
636
636
637
641
641
641
642
642
643
662
667
667
670
674
674
675
675
679
679
679
679
682
687
687
708
711
729
734
734
748
753
753
771
776
776
786
786
795
800
800
815
820
820
833
835
838
854
859
859
872
877
877
898
900
919
924
924
939
944
944
965
968
986
991
991
1005
1010
1010
1028
1033
1033
1052
1057
1057
1072
1077
1077
1090
1092
1095
1111
1116
1116
1129
1134
1134
1155
1157
1176
1181
1181
1196
1201
1201
1222
1225
1243
1248
1248
1262
1267
1267
1285
1290
1290
1309
1314
1314
1329
1334
1334
1852
1853
1854
5
5
5
5
5
7
7
9
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
14
14
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
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
20
21
21
21
21
21
21
21
21
21
21
21
27
27
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
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
34
34
35
35
35
35
35
35
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
40
40
41
41
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
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
46
47
47
47
47
47
47
47
47
47
47
48
48
48
48
50
50
51
52
52
55
56
57
57
57
57
58
58
58
58
58
59
59
59
60
60
60
60
61
61
65
65
67
76
76
77
77
77
78
78
78
78
78
79
79
79
80
80
80
81
81
86
89
89
91
91
91
91
93
93
94
94
95
95
95
95
95
95
96
96
100
102
105
106
106
108
108
112
112
112
113
113
113
121
121
123
123
124
128
128
128
128
128
129
129
129
129
129
130
130
130
131
131
131
132
132
133
133
133
133
133
134
137
142
147
147
148
148
148
148
149
149
149
149
149
149
150
150
150
151
152
154
155
157
157
158
162
162
163
163
163
164
164
164
165
165
165
165
165
166
166
167
167
167
167
168
168
168
168
170
170
180
182
182
182
183
183
183
183
183
183
184
184
184
184
184
185
185
185
186
187
189
191
192
192
194
194
194
199
199
199
199
200
200
200
200
201
201
202
202
203
203
203
203
204
204
204
204
204
205
209
211
214
214
214
218
219
219
220
220
220
220
220
221
221
221
222
222
223
223
224
227
233
234
234
234
235
235
235
235
236
236
237
237
237
237
237
237
238
238
238
238
239
239
239
239
240
240
242
242
242
242
246
250
250
251
253
253
253
254
254
254
254
255
255
255
255
255
256
256
256
257
258
258
261
261
263
263
270
271
271
271
272
272
273
273
274
274
274
275
275
275
275
275
279
279
279
279
280
280
281
282
285
287
289
290
290
291
291
291
291
291
292
292
292
293
294
296
302
302
303
304
305
305
306
306
306
307
307
307
307
308
308
308
308
309
309
309
309
310
310
310
310
313
313
313
313
316
316
320
322
324
324
324
324
325
325
325
325
325
325
326
326
326
326
326
327
327
327
327
327
328
329
331
336
340
341
341
342
342
342
343
343
344
344
345
345
345
345
345
346
346
346
346
346
346
347
347
350
350
351
351
357
359
361
361
363
363
364
374
374
379
380
383
383
384
384
385
387
388
388
388
388
392
392
394
402
406
409
411
411
415
416
418
420
421
425
425
426
426
426
429
429
431
431
437
440
440
444
446
449
450
450
452
454
454
455
455
455
459
459
459
459
460
460
472
473
476
476
478
478
486
487
487
491
491
491
492
492
496
496
497
497
497
497
505
505
507
515
515
520
520
522
525
528
529
529
529
530
530
531
534
534
534
534
539
542
542
544
544
550
553
553
557
559
562
564
566
567
571
571
572
572
573
573
577
579
582
585
589
589
596
598
600
600
600
600
601
601
603
603
605
605
605
605
616
621
621
632
635
637
637
637
638
642
642
642
643
643
644
663
668
668
671
675
675
676
676
680
680
680
680
683
688
688
703
707
709
712
730
735
735
749
754
754
772
777
777
787
787
788
788
788
796
801
801
816
821
834
836
839
855
860
860
873
878
878
892
899
901
920
925
925
940
945
945
960
964
966
969
987
992
992
1006
1011
1011
1029
1034
1034
1053
1058
1058
1073
1078
1091
1093
1096
1112
1117
1117
1130
1135
1135
1149
1156
1158
1177
1182
1182
1197
1202
1202
1217
1221
1223
1226
1244
1249
1249
1263
1268
1268
1286
1291
1291
1310
1315
1315
1330
1335
1853
1854
1855
5
6
8
8
8
10
11
11
11
11
11
11
11
11
11
11
11
12
12
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
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
19
20
25
25
25
26
26
26
26
26
26
26
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
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
30
30
31
31
31
31
31
31
32
32
32
32
32
32
32
32
33
33
33
33
34
34
34
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
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
41
41
41
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
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
52
52
56
57
58
58
59
59
59
59
59
59
61
61
61
61
62
62
65
65
66
66
75
76
77
78
79
79
79
80
80
82
82
87
90
92
92
92
92
93
93
93
94
95
95
95
95
95
95
95
95
95
95
96
96
96
96
96
97
97
103
106
110
111
113
113
113
113
114
114
114
114
114
121
121
122
122
124
124
128
128
128
129
129
129
129
129
130
130
130
130
130
131
131
131
131
131
132
134
135
143
147
147
148
149
149
150
150
150
150
151
151
151
151
154
158
158
159
163
163
163
163
163
163
164
164
164
165
165
165
166
166
166
166
166
166
166
166
166
166
166
168
168
171
171
171
179
180
182
183
184
184
184
184
185
185
185
185
186
186
186
186
190
191
192
192
192
193
195
195
195
199
199
199
200
200
200
200
201
201
201
201
202
202
202
202
205
206
210
212
212
215
218
218
221
221
221
221
222
222
222
222
222
222
224
225
228
234
234
234
234
234
235
236
236
236
236
237
237
237
237
238
238
239
239
241
241
243
243
243
243
247
249
251
251
251
251
253
254
255
255
256
256
256
256
257
257
257
257
259
264
264
269
270
270
270
271
272
272
272
273
273
273
273
275
276
278
280
280
280
280
281
281
283
286
288
289
292
292
292
292
293
293
293
293
297
297
297
297
302
303
303
305
305
305
305
305
305
306
306
307
307
307
308
308
308
308
308
308
309
309
310
310
314
314
314
314
321
322
324
325
325
325
326
326
326
326
327
327
327
327
328
328
328
328
331
331
335
335
337
341
341
341
341
342
342
343
343
343
344
344
344
344
346
346
346
347
347
347
351
351
352
352
360
362
362
362
364
364
364
365
380
381
382
383
384
384
385
385
386
388
389
389
389
389
391
393
393
402
407
410
410
410
410
412
412
415
416
418
418
419
421
422
426
426
427
427
427
432
432
438
438
444
444
448
448
450
451
451
453
455
455
456
456
456
460
460
460
460
460
473
474
475
477
477
477
479
479
487
492
492
492
493
493
495
497
497
498
498
498
504
506
506
515
516
521
521
523
523
523
523
526
528
529
530
530
531
531
531
531
532
535
535
535
535
540
545
545
551
551
557
557
560
561
561
563
565
567
568
572
572
573
573
573
578
580
583
586
588
590
590
590
597
599
601
601
602
602
604
604
606
606
606
606
608
617
622
622
633
636
638
638
638
639
640
643
643
643
644
644
645
664
669
669
672
676
676
677
677
681
681
681
681
684
689
689
708
710
713
731
736
736
750
755
773
778
778
789
789
789
797
802
802
817
822
835
837
840
856
861
861
874
879
879
893
897
900
902
921
926
926
941
946
946
965
967
970
988
993
993
1007
1012
1030
1035
1035
1054
1059
1059
1074
1079
1092
1094
1097
1113
1118
1118
1131
1136
1136
1150
1154
1157
1159
1178
1183
1183
1198
1203
1203
1222
1224
1227
1245
1250
1250
1264
1269
1287
1292
1292
1311
1316
1316
1331
1336
1854
1855
1856
5
6
7
9
9
11
11
11
11
11
11
11
11
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
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
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
20
20
20
20
20
20
20
20
20
21
24
24
24
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
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
30
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
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
33
33
33
34
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
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
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
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
45
45
45
45
45
45
45
45
45
45
45
47
47
47
47
47
47
47
47
48
49
50
50
50
51
51
57
57
57
58
59
59
59
59
59
59
60
60
60
60
62
62
63
63
67
67
75
76
77
78
78
79
80
80
80
81
83
83
86
88
91
93
93
93
93
94
94
94
95
96
96
96
96
96
96
97
97
98
98
104
107
108
110
111
112
113
113
114
114
114
114
115
115
115
123
123
125
128
130
130
130
130
130
131
131
131
131
131
132
133
135
136
144
147
147
148
149
151
151
152
152
155
157
159
159
159
160
164
164
164
164
165
165
165
166
166
166
167
167
167
169
169
172
172
172
180
180
180
183
184
185
186
186
187
187
191
193
193
194
196
196
196
201
201
201
201
202
202
202
202
203
203
204
204
205
206
207
211
213
213
216
222
222
223
223
223
223
225
226
229
234
235
236
237
237
237
237
239
239
240
240
241
242
242
244
244
244
244
249
250
251
251
254
255
257
257
258
258
260
263
265
265
270
272
273
273
273
276
277
278
281
281
282
282
284
287
289
293
293
294
294
298
298
304
306
306
306
307
307
308
308
308
309
309
310
310
311
311
315
315
315
315
318
322
322
322
325
326
327
327
328
328
329
329
336
336
338
342
343
343
344
344
344
345
345
347
347
347
347
348
348
352
352
353
353
354
362
363
363
363
366
376
381
383
384
385
385
386
386
387
389
390
390
390
390
391
408
411
411
413
413
419
419
420
422
423
427
427
428
428
428
431
433
433
449
449
451
452
452
454
456
456
457
457
457
460
461
461
461
461
467
475
475
476
480
480
488
489
493
493
493
494
494
496
497
497
498
498
499
499
499
504
517
522
522
524
524
527
531
531
532
532
532
532
533
536
536
536
536
541
544
546
546
561
562
562
563
563
564
566
568
569
573
573
573
574
574
579
580
581
584
588
589
598
600
602
602
602
603
603
605
605
607
607
607
607
609
618
623
623
634
639
639
639
640
641
644
644
644
645
645
646
665
670
670
673
677
677
678
678
682
682
682
682
685
690
690
709
711
714
732
737
737
751
754
754
756
774
779
779
789
790
790
798
803
803
818
820
820
823
836
838
841
857
862
862
875
880
880
898
901
903
922
927
927
942
947
947
966
968
971
989
994
994
1008
1011
1011
1013
1031
1036
1036
1055
1060
1060
1075
1077
1077
1080
1093
1095
1098
1114
1119
1119
1132
1137
1137
1155
1158
1160
1179
1184
1184
1199
1204
1204
1223
1225
1228
1246
1251
1251
1265
1268
1268
1270
1288
1293
1293
1312
1317
1317
1332
1334
1334
1337
1855
1856
1857
4
5
5
5
5
6
7
7
8
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
12
12
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
21
21
21
21
21
21
21
21
21
21
21
25
25
25
25
25
25
26
26
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
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
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
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
36
36
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
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
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
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
49
50
51
51
56
56
57
58
58
59
59
59
59
59
59
60
60
61
61
62
62
62
62
63
63
64
64
68
68
76
77
77
78
78
79
79
81
82
84
84
87
87
87
89
92
94
94
94
95
95
95
95
95
95
95
95
96
96
97
97
97
97
97
97
99
99
105
108
108
110
110
110
113
114
114
115
115
115
116
116
116
116
119
124
124
124
126
129
129
131
131
131
131
131
132
132
133
133
133
133
133
133
133
134
136
136
137
145
147
148
149
150
151
152
157
158
161
164
165
165
166
166
167
167
168
168
168
168
168
168
168
168
168
170
170
173
173
173
173
180
180
181
181
182
182
182
184
184
184
184
186
186
187
192
194
194
197
197
197
200
202
202
202
203
203
203
204
204
204
204
204
204
204
205
205
207
208
212
214
214
217
222
222
223
224
224
227
230
235
236
237
238
238
238
239
239
239
239
239
239
240
240
241
241
242
242
242
243
243
245
245
245
245
250
250
251
251
252
252
253
253
253
255
257
258
261
263
266
266
271
271
271
273
274
274
274
275
275
275
275
275
275
277
278
278
279
282
282
283
283
285
288
290
293
294
298
305
306
307
307
307
308
309
309
310
310
310
310
310
310
310
310
311
311
312
312
316
316
316
316
318
323
323
323
324
324
324
326
327
328
328
328
329
335
337
337
342
343
344
344
345
345
346
346
346
346
346
346
346
348
348
348
349
349
353
353
354
354
355
355
355
363
363
364
364
364
364
367
376
382
384
384
385
386
386
387
387
387
388
390
391
391
391
391
391
392
409
411
414
414
420
420
423
424
428
428
429
429
429
431
434
434
440
448
450
450
453
453
455
457
457
458
458
458
462
462
462
462
468
468
468
476
476
476
477
477
481
481
489
489
494
494
494
495
495
497
497
498
499
499
500
500
500
500
504
505
518
523
523
524
528
532
532
533
533
533
533
537
537
537
537
542
544
547
547
553
561
562
563
563
564
567
569
570
574
574
575
575
580
581
581
581
582
582
585
585
589
589
590
590
599
601
602
603
603
604
604
606
606
608
608
608
608
610
610
619
624
624
635
640
640
640
641
642
645
645
645
646
646
647
666
671
671
674
678
678
679
679
683
683
683
683
686
691
691
710
712
715
733
738
738
752
755
757
775
780
780
790
790
799
804
804
819
821
824
837
839
839
842
842
858
863
863
876
881
881
899
902
904
923
928
928
943
948
948
967
969
972
990
995
995
1009
1012
1014
1032
1037
1037
1056
1061
1061
1076
1078
1081
1094
1096
1096
1099
1099
1115
1120
1120
1133
1138
1138
1156
1159
1161
1180
1185
1185
1200
1205
1205
1224
1226
1229
1247
1252
1252
1266
1269
1271
1289
1294
1294
1313
1318
1318
1333
1335
1338
1856
1857
1858
5
5
7
8
8
9
9
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
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
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
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
20
20
20
21
21
21
21
21
21
21
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
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
32
33
33
33
33
33
33
33
33
33
33
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
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
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
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
42
42
42
42
42
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
53
57
57
59
59
60
60
60
60
62
62
63
63
63
63
64
64
65
65
69
76
76
76
76
77
77
79
80
80
80
80
81
81
82
83
85
85
88
88
90
92
93
94
94
94
94
94
94
94
94
95
95
95
95
96
96
96
96
97
97
98
98
100
100
100
104
106
108
109
111
111
111
111
113
113
113
114
114
114
114
115
115
116
117
117
117
117
120
125
127
128
130
130
130
131
131
132
132
133
133
134
134
134
134
134
135
137
137
137
137
137
138
146
147
147
148
149
150
151
151
151
152
158
158
159
159
162
165
165
165
165
166
166
166
166
166
167
168
168
169
169
169
169
169
169
169
171
171
174
174
174
174
174
174
183
183
183
183
184
185
185
185
186
186
187
187
192
193
198
198
198
201
201
202
202
203
203
204
204
204
205
205
205
205
205
206
208
209
213
214
215
218
221
222
222
222
222
223
226
228
231
236
236
237
237
237
239
239
239
240
240
240
240
241
241
242
242
243
243
244
244
246
246
246
246
252
252
254
254
254
254
256
257
257
258
262
267
267
272
272
272
272
272
272
273
273
274
275
275
276
276
276
276
278
279
279
280
283
283
284
284
288
289
291
292
293
293
294
298
305
306
307
307
308
308
308
310
310
311
311
311
311
311
311
312
312
313
313
317
317
317
317
324
325
325
325
325
327
327
328
328
329
329
329
335
343
343
344
344
344
345
346
346
347
347
347
347
347
349
349
349
350
350
354
354
355
355
356
356
365
365
365
365
368
383
385
385
385
385
386
387
387
387
388
388
389
391
392
392
392
392
392
393
401
410
411
415
415
418
424
425
429
429
430
430
430
435
435
440
448
454
454
456
458
458
459
459
459
463
463
463
463
469
469
477
478
478
482
482
490
495
495
495
496
496
498
498
498
498
499
500
500
500
501
501
501
505
506
514
519
524
524
524
529
531
533
533
534
534
538
538
538
538
543
548
548
553
561
563
565
568
570
571
575
575
576
576
581
582
582
586
586
591
591
600
602
604
604
605
605
607
607
609
609
609
609
611
611
611
611
620
625
625
636
641
641
641
642
643
646
646
646
647
647
648
667
672
672
675
679
679
680
680
684
684
684
684
687
692
692
711
713
716
734
739
739
753
756
758
776
781
781
800
805
805
820
822
825
838
843
843
859
864
864
877
882
882
900
903
905
924
929
929
944
949
949
968
970
973
991
996
996
1010
1013
1015
1033
1038
1038
1057
1062
1062
1077
1079
1082
1095
1100
1100
1116
1121
1121
1134
1139
1139
1157
1160
1162
1181
1186
1186
1201
1206
1206
1225
1227
1230
1248
1253
1253
1267
1270
1272
1290
1295
1295
1314
1319
1319
1334
1336
1339
1857
1858
1859
5
8
8
8
9
9
10
10
12
12
12
12
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
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
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
22
25
25
25
26
26
26
26
26
26
26
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
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
31
34
34
34
34
34
34
34
34
34
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
37
37
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
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
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
47
47
47
47
54
54
57
57
58
58
60
60
60
61
64
64
64
64
66
66
68
68
70
77
77
78
78
78
80
81
81
81
81
82
82
83
84
86
86
87
88
88
88
88
89
92
92
93
94
95
95
95
95
95
95
95
96
96
96
96
96
97
97
97
97
98
98
99
99
101
101
105
107
108
108
109
110
111
111
111
112
112
112
114
115
115
115
116
117
117
118
118
120
120
124
124
126
128
129
129
131
131
132
132
132
132
133
133
135
136
138
138
138
139
146
147
147
148
149
150
151
151
151
151
152
152
152
152
152
160
160
163
166
166
167
167
167
167
167
167
168
170
170
170
172
172
172
174
174
175
175
175
175
180
184
184
185
186
186
186
186
186
186
187
187
187
187
191
194
199
199
199
201
201
203
203
203
203
204
204
205
205
205
206
207
209
210
214
216
218
219
222
222
222
222
222
223
223
223
223
223
227
229
232
233
238
238
238
238
238
240
242
242
242
243
243
243
243
243
243
244
245
245
247
247
247
247
250
251
251
251
253
253
255
255
257
257
257
257
258
258
258
258
263
263
263
268
268
270
272
272
273
273
274
274
274
274
278
279
280
280
281
284
284
285
285
289
289
289
289
290
292
293
293
293
293
294
294
294
294
302
307
309
309
309
309
309
312
312
313
313
314
314
318
318
318
318
318
318
325
326
326
328
328
328
328
329
329
329
329
330
330
331
335
336
345
345
345
345
345
346
346
348
350
350
350
351
351
355
355
355
356
356
356
356
356
356
357
363
364
364
364
366
366
366
366
369
376
376
383
384
385
385
386
386
387
388
388
389
389
390
390
391
392
392
393
393
393
393
393
394
402
402
402
402
411
415
416
416
425
426
430
430
431
431
431
431
431
436
436
444
448
449
455
455
457
457
459
459
459
460
460
460
460
464
464
464
464
468
469
469
469
469
470
476
477
477
477
478
479
479
483
483
489
489
491
496
496
496
496
497
497
498
498
499
499
500
501
501
502
502
502
504
506
507
515
515
515
515
520
525
525
528
530
534
534
535
535
539
539
539
539
544
544
544
549
549
557
561
562
564
566
569
571
572
572
576
576
577
577
581
582
582
582
582
582
583
587
587
589
590
590
590
592
592
601
602
602
603
605
605
606
606
608
608
609
610
610
610
610
611
611
612
612
621
626
626
637
642
642
642
643
644
647
647
647
647
648
648
649
649
668
673
673
676
680
680
681
681
685
685
685
685
688
693
693
712
714
714
717
717
735
740
740
754
757
759
777
782
782
801
806
806
821
823
826
839
844
844
860
865
865
878
883
883
901
904
904
906
906
925
930
930
945
950
950
969
971
971
974
974
992
997
997
1011
1014
1016
1034
1039
1039
1058
1063
1063
1078
1080
1083
1096
1101
1101
1117
1122
1122
1135
1140
1140
1158
1161
1161
1163
1163
1182
1187
1187
1202
1207
1207
1226
1228
1228
1231
1231
1249
1254
1254
1268
1271
1273
1291
1296
1296
1315
1320
1320
1335
1337
1340
1858
1859
1860
4
5
6
8
8
8
9
10
11
11
11
11
11
11
11
11
11
11
12
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
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
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
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
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
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
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
35
35
35
35
35
35
35
35
35
35
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
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
44
44
44
44
45
45
45
48
48
48
48
51
57
58
59
59
59
60
60
61
62
67
67
69
69
71
79
79
79
79
82
82
82
83
83
87
87
89
89
90
93
93
94
94
94
95
95
95
95
95
95
95
95
96
96
96
96
96
96
96
97
97
97
97
97
97
98
98
100
100
102
102
106
106
108
109
109
111
111
111
112
112
113
113
113
114
115
116
116
117
118
119
119
125
125
127
129
129
130
131
131
132
132
132
132
132
134
134
134
135
136
137
138
139
140
147
148
149
150
151
152
152
153
153
153
158
159
159
159
161
161
164
167
167
167
167
169
171
171
171
173
173
175
176
176
176
176
184
186
187
187
188
188
191
192
192
192
195
200
200
200
202
203
203
203
203
205
205
206
206
206
207
208
210
211
215
217
218
220
223
223
223
224
224
224
228
230
233
234
234
234
234
238
238
238
239
241
243
243
244
244
244
244
245
246
246
248
248
248
248
250
250
250
251
252
252
252
255
258
258
259
259
261
264
264
264
269
269
273
274
274
274
274
274
274
279
280
281
281
281
285
285
286
286
290
290
291
293
294
294
295
295
302
303
305
305
308
309
309
309
310
313
313
314
314
315
315
316
319
319
319
319
319
319
326
326
329
329
330
330
331
331
331
336
337
345
345
345
346
347
347
347
347
347
349
351
351
351
352
352
356
356
357
357
357
357
358
363
363
363
364
365
365
365
367
367
370
374
377
377
385
386
387
387
387
388
389
389
390
390
392
393
393
394
394
394
394
394
394
403
403
412
415
416
417
417
418
418
426
427
429
431
431
432
432
432
432
432
437
437
444
449
450
456
456
460
460
460
460
460
460
461
461
461
461
465
465
465
465
470
470
471
476
476
476
477
478
478
478
479
484
484
487
490
490
492
497
497
497
498
498
499
500
500
500
501
502
502
503
503
503
505
507
507
516
516
521
526
526
528
529
531
531
531
535
535
536
536
540
540
540
540
542
545
545
545
550
550
557
562
563
565
567
570
572
573
573
573
573
573
577
577
578
578
583
583
583
584
588
588
589
589
589
590
591
591
591
600
602
603
603
604
606
606
607
607
609
609
611
611
611
611
612
613
613
622
627
627
638
643
643
643
644
645
648
648
649
649
650
650
669
674
674
677
681
681
682
682
686
686
686
686
689
694
694
713
718
718
736
741
741
755
758
760
778
783
783
802
807
807
822
824
827
840
845
845
861
866
866
879
884
884
902
907
907
926
931
931
946
951
951
970
975
975
993
998
998
1012
1015
1017
1035
1040
1040
1059
1064
1064
1079
1081
1084
1097
1102
1102
1118
1123
1123
1136
1141
1141
1159
1164
1164
1183
1188
1188
1203
1208
1208
1227
1232
1232
1250
1255
1255
1269
1272
1274
1292
1297
1297
1316
1321
1321
1336
1338
1341
1859
1860
1861
1
4
4
5
5
5
5
6
7
8
8
9
9
9
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
12
12
13
13
13
13
13
13
13
13
13
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
21
21
21
21
21
21
21
25
25
25
25
26
26
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
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
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
32
33
33
34
34
34
34
34
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
38
38
38
38
38
38
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
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
44
44
44
44
45
45
45
45
46
49
49
49
49
51
59
59
60
60
60
60
61
61
62
62
62
63
68
68
68
70
70
80
80
80
80
81
81
83
88
88
88
88
90
90
93
93
94
95
95
95
95
96
96
96
97
97
97
98
98
98
98
98
98
98
98
98
98
99
99
101
101
101
101
103
103
103
103
107
107
107
109
111
111
111
112
112
112
113
113
113
114
114
115
117
117
117
118
119
124
126
126
129
130
130
131
132
132
133
133
133
133
134
134
134
134
134
134
135
135
135
136
137
138
138
140
141
147
148
149
150
152
152
153
154
158
158
158
159
160
160
160
165
165
166
166
167
168
168
168
169
169
169
169
169
169
170
172
172
172
174
174
174
174
176
177
177
183
184
184
187
187
188
191
193
193
196
201
201
201
201
203
203
204
204
204
204
205
205
205
205
205
205
206
208
209
211
212
216
218
221
222
223
224
224
225
229
231
234
235
235
236
238
239
239
240
240
240
240
240
240
240
242
243
243
244
244
245
245
245
245
247
247
249
249
249
249
252
253
253
253
254
255
258
259
262
262
265
270
270
272
272
272
274
274
275
275
276
276
276
276
276
276
278
280
281
282
285
286
286
287
287
290
292
294
294
295
302
306
306
307
309
309
310
310
311
311
311
311
311
311
311
314
314
315
315
316
316
317
317
320
320
320
320
325
326
327
329
330
332
332
335
337
338
343
345
346
346
347
347
347
347
347
347
347
348
348
348
350
352
352
352
353
353
356
356
357
357
358
358
358
358
365
366
366
366
368
368
371
375
375
385
385
386
387
389
390
390
391
391
391
393
394
394
395
395
395
395
403
413
415
418
418
419
419
427
428
430
430
432
432
433
433
433
438
448
450
451
457
457
461
461
461
461
462
462
462
462
466
466
466
466
469
469
471
471
478
479
479
479
480
485
485
488
488
493
498
498
498
498
498
499
499
500
502
503
503
504
504
504
504
506
516
522
527
527
528
532
532
532
536
536
537
537
541
541
541
541
543
543
546
551
551
561
563
564
566
568
571
573
574
574
574
578
578
579
579
582
582
584
584
584
589
589
591
592
592
592
601
601
603
605
607
607
608
608
610
610
611
611
612
612
612
612
613
623
628
628
639
644
644
644
645
646
649
649
650
650
651
651
670
675
675
678
682
682
683
683
687
687
687
687
690
695
714
719
719
737
742
742
756
759
761
779
784
784
803
808
808
823
825
828
841
846
846
862
867
867
880
885
885
903
908
908
927
932
932
947
952
971
976
976
994
999
999
1013
1016
1018
1036
1041
1041
1060
1065
1065
1080
1082
1085
1098
1103
1103
1119
1124
1124
1137
1142
1142
1160
1165
1165
1184
1189
1189
1204
1209
1228
1233
1233
1251
1256
1256
1270
1273
1275
1293
1298
1298
1317
1322
1322
1337
1339
1342
1860
1861
1862
1
1
4
4
5
5
5
6
6
7
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
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
19
19
19
19
19
19
20
20
22
22
24
24
24
25
25
25
25
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
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
31
31
31
31
31
31
31
31
31
31
31
32
32
33
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
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
39
39
39
39
39
39
39
39
39
39
39
39
39
39
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
43
43
43
43
43
43
43
43
43
43
43
43
44
45
45
45
46
46
46
46
47
50
50
50
50
59
59
60
60
60
62
62
62
62
62
62
62
62
63
63
64
68
69
69
76
76
77
77
80
80
81
81
81
82
82
84
89
89
89
90
94
94
96
96
96
97
98
98
98
99
99
99
99
99
99
99
99
99
100
100
104
104
104
104
108
109
110
112
112
112
113
113
113
113
115
116
116
116
117
117
118
118
119
124
129
129
131
131
131
132
132
132
133
134
134
135
135
135
135
136
136
136
137
138
138
139
139
141
141
142
142
147
148
150
150
150
151
152
152
152
153
153
153
153
155
160
161
161
161
164
166
166
166
167
167
167
167
169
169
169
170
170
170
170
171
173
173
173
175
175
175
178
178
180
184
184
184
184
184
185
186
187
187
188
192
192
194
194
194
197
202
202
202
202
202
203
203
204
205
205
205
206
206
206
206
206
207
209
209
210
210
212
212
213
217
218
219
222
223
223
223
223
224
224
224
225
225
230
232
235
235
237
237
238
238
240
240
241
241
241
241
241
243
244
245
245
246
246
248
248
250
250
250
250
251
253
254
254
255
255
255
255
257
258
258
259
266
271
271
273
273
273
274
274
276
276
277
277
277
277
279
279
281
281
282
283
286
287
287
288
288
290
290
293
294
294
294
295
295
295
295
303
305
307
307
307
308
308
309
309
310
311
311
312
312
312
312
312
315
315
316
316
317
317
321
321
321
321
325
326
326
326
326
328
328
329
329
330
331
333
333
336
338
338
344
344
345
345
347
347
348
348
348
348
348
348
349
351
353
353
353
354
354
357
358
358
359
359
364
366
367
367
369
372
386
387
390
391
391
392
392
392
392
394
394
395
395
396
396
396
396
403
414
416
418
419
419
420
420
420
428
429
433
433
434
434
434
438
439
444
449
451
451
458
458
461
462
462
463
463
463
463
467
467
467
467
470
477
479
480
480
481
486
486
494
499
499
499
499
500
500
503
504
504
505
505
505
505
505
507
507
516
523
528
528
529
531
533
533
533
533
537
537
538
538
542
542
542
542
547
551
552
552
557
562
564
564
567
569
572
574
574
575
579
579
580
580
583
585
590
590
590
592
593
593
604
606
608
608
609
609
611
611
612
613
613
613
613
624
629
640
645
645
645
646
647
650
650
651
651
652
652
671
676
676
679
683
683
684
684
688
688
688
688
691
696
715
720
720
738
743
743
757
760
762
780
785
785
804
809
809
824
826
829
842
847
847
863
868
868
881
886
904
909
909
928
933
933
948
953
972
977
977
995
1000
1000
1014
1017
1019
1037
1042
1042
1061
1066
1066
1081
1083
1086
1099
1104
1104
1120
1125
1125
1138
1143
1161
1166
1166
1185
1190
1190
1205
1210
1229
1234
1234
1252
1257
1257
1271
1274
1276
1294
1299
1299
1318
1323
1323
1338
1340
1343
1861
1862
1863
4
5
5
5
5
5
6
7
7
8
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
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
20
23
23
23
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
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
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
32
32
33
33
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
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
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
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
43
43
43
43
43
43
45
45
46
46
46
46
47
47
47
47
48
51
51
51
51
51
51
57
60
62
62
63
63
63
63
63
63
63
63
64
64
64
64
65
68
69
70
70
76
77
80
80
80
81
81
81
82
82
82
83
83
85
88
90
90
90
91
94
94
95
95
95
97
97
97
98
100
100
100
100
100
100
100
105
105
105
105
109
109
109
111
111
111
113
114
114
114
116
116
117
117
117
117
117
117
118
118
119
119
120
120
124
125
130
130
131
131
131
132
133
133
133
133
133
137
137
137
138
142
142
143
143
151
151
151
152
153
153
154
154
154
156
159
161
162
162
165
165
167
167
168
168
168
168
170
172
174
174
174
174
174
176
176
176
179
179
180
185
185
185
186
187
187
187
187
188
188
188
188
192
193
198
203
203
203
204
204
204
204
205
206
208
210
210
211
211
213
213
214
218
220
222
223
224
224
224
225
225
231
233
233
235
236
236
239
239
239
239
242
243
244
245
246
246
247
247
249
249
251
251
251
251
252
252
256
256
258
258
258
258
259
259
259
259
264
267
272
272
272
272
274
275
275
275
275
279
281
282
282
283
284
288
289
291
294
295
295
296
296
296
297
305
306
310
310
310
310
311
313
316
316
317
317
318
318
319
322
322
322
322
326
327
327
329
329
329
329
329
330
330
330
330
334
334
335
337
346
346
346
346
348
349
350
352
354
354
354
355
355
356
358
359
359
360
360
365
365
368
370
371
373
377
385
385
387
388
391
392
392
392
393
393
394
395
395
396
396
397
397
397
397
410
415
418
419
420
420
429
430
432
434
435
435
437
437
439
440
448
450
459
459
461
463
463
464
464
464
464
468
468
468
468
469
471
478
478
482
487
487
490
495
498
498
500
500
500
500
501
501
504
505
505
505
506
506
506
507
508
508
523
524
529
529
531
532
534
538
538
539
539
543
543
543
543
545
548
552
553
553
561
563
568
570
573
574
575
576
580
581
582
584
586
591
591
591
591
603
605
607
609
609
610
610
611
611
612
612
613
614
614
614
614
625
628
628
630
641
646
646
646
647
648
651
651
652
652
653
653
672
677
677
680
684
684
685
685
689
689
689
689
692
694
694
697
716
721
721
739
744
744
758
761
763
781
786
786
805
810
810
825
827
830
843
848
848
864
869
869
882
885
885
887
905
910
910
929
934
934
949
951
951
954
973
978
978
996
1001
1001
1015
1018
1020
1038
1043
1043
1062
1067
1067
1082
1084
1087
1100
1105
1105
1121
1126
1126
1139
1142
1142
1144
1162
1167
1167
1186
1191
1191
1206
1208
1208
1211
1230
1235
1235
1253
1258
1258
1272
1275
1277
1295
1300
1300
1319
1324
1324
1339
1341
1344
1862
1863
1864
4
4
5
5
6
6
7
7
8
8
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
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
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
15
15
15
15
15
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
21
24
24
24
24
24
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
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
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
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
33
33
33
33
33
33
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
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
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
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
43
45
47
47
47
47
47
48
48
48
49
52
52
52
52
52
52
57
58
60
60
64
64
64
64
64
64
65
65
65
65
66
69
70
71
71
81
81
82
82
82
83
83
83
83
84
84
84
86
88
88
89
91
91
94
95
95
95
96
96
97
97
98
99
99
101
101
101
101
106
106
106
106
109
110
110
111
112
112
113
115
115
115
116
117
117
117
117
118
118
118
118
118
119
119
120
125
126
132
132
132
132
133
133
133
133
138
138
138
139
143
143
144
144
151
152
152
152
153
153
153
153
154
154
154
154
154
155
155
157
160
160
168
168
168
168
168
171
172
172
173
174
174
175
175
175
175
175
177
177
180
180
184
185
186
187
188
188
189
189
193
193
194
194
199
204
204
204
204
204
206
206
209
211
211
212
212
214
214
214
215
221
222
223
223
223
224
224
224
224
224
225
225
225
225
225
225
225
226
232
237
237
239
239
239
243
243
243
244
245
247
247
248
248
250
250
252
252
252
252
256
259
259
260
260
264
268
272
272
273
273
273
273
275
275
275
279
281
282
283
283
284
285
287
287
288
288
289
290
292
293
294
295
295
295
295
295
296
296
296
296
296
297
297
298
298
298
306
306
307
307
310
310
310
312
314
317
317
318
318
319
319
319
323
323
323
323
327
327
327
330
330
330
331
331
335
335
336
336
338
338
346
346
346
350
353
355
355
355
356
356
356
356
357
360
360
361
361
371
372
374
377
385
385
386
386
389
392
392
393
393
394
394
394
395
396
396
397
397
398
398
398
398
411
411
411
416
419
419
420
420
421
421
430
431
432
433
433
434
434
435
436
436
438
440
440
441
449
449
451
451
460
460
464
464
465
465
465
465
469
469
469
469
469
469
470
483
488
488
490
496
498
498
499
499
501
501
501
502
505
505
506
506
507
507
507
507
508
509
509
524
524
524
525
530
530
532
532
533
533
535
539
539
540
540
544
544
544
544
545
549
553
553
554
554
562
562
564
564
571
574
576
577
579
579
580
580
581
582
582
582
583
587
592
592
603
606
608
610
610
611
611
611
611
612
612
613
613
615
615
615
615
626
629
631
642
647
647
647
648
649
652
652
653
653
654
654
673
678
678
681
685
685
686
686
690
690
690
690
693
695
698
717
722
722
740
745
745
762
764
782
787
787
789
806
811
811
828
831
844
849
849
865
870
870
883
886
888
906
911
911
930
935
935
950
952
955
974
979
979
997
1002
1002
1019
1021
1039
1044
1044
1063
1068
1068
1085
1088
1101
1106
1106
1122
1127
1127
1140
1143
1145
1163
1168
1168
1187
1192
1192
1207
1209
1212
1231
1236
1236
1254
1259
1259
1276
1278
1296
1301
1301
1320
1325
1325
1342
1345
1863
1864
1865
4
5
6
7
8
8
8
9
9
10
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
20
22
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
30
30
31
31
31
31
31
31
31
31
31
31
31
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
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
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
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
43
43
43
43
43
43
43
43
43
43
43
44
46
46
48
48
48
48
48
49
49
49
53
53
53
53
57
58
60
60
60
61
63
63
64
64
64
64
64
64
66
66
66
66
67
68
70
71
72
72
81
82
83
83
83
84
84
84
84
84
85
85
87
87
88
89
90
92
95
95
96
96
97
97
98
98
98
98
99
99
102
102
102
102
107
107
107
107
110
110
111
112
113
113
114
114
116
116
116
116
117
117
118
118
119
119
119
124
126
127
131
133
133
133
134
134
134
135
135
139
139
139
140
144
144
145
145
150
152
153
154
154
155
155
155
156
156
158
166
167
168
169
169
170
170
172
173
173
174
176
176
176
176
176
176
176
178
178
178
178
181
181
184
185
185
187
188
189
195
195
200
202
203
204
205
205
205
205
206
206
207
207
210
212
212
213
213
215
215
215
215
215
216
222
223
223
224
225
225
225
225
226
226
226
226
226
227
233
237
238
238
239
240
240
241
241
242
243
244
244
245
246
248
248
249
249
251
251
253
253
253
253
254
255
256
259
260
269
273
274
274
274
275
276
276
277
277
279
279
282
283
285
286
288
289
289
290
291
293
294
295
296
296
296
297
297
297
298
298
299
299
308
308
308
310
311
311
312
312
313
315
318
318
319
319
320
320
324
324
324
324
326
327
328
328
328
328
330
331
331
336
336
336
338
339
339
344
346
347
347
348
348
350
351
354
354
355
356
356
356
356
357
357
357
358
361
361
362
362
367
372
373
375
387
387
390
392
392
393
394
394
395
395
395
396
398
398
399
399
399
399
402
412
412
417
421
421
422
422
431
432
434
435
436
437
437
439
441
441
441
441
442
449
451
452
452
461
461
465
465
466
466
466
466
468
469
470
470
470
470
470
471
480
484
489
489
497
500
500
502
502
502
503
505
505
506
507
507
508
508
508
508
509
515
525
525
526
531
531
534
534
536
540
540
541
541
545
545
545
545
550
554
554
554
554
555
555
562
564
565
565
572
575
577
578
580
581
581
582
582
583
583
584
588
593
593
593
607
609
611
611
612
612
613
613
614
614
616
616
616
616
627
630
632
643
648
648
648
649
650
653
653
654
654
655
655
674
679
679
682
686
686
687
687
691
691
691
691
694
696
699
718
723
723
741
746
746
763
765
783
788
788
790
790
790
807
812
812
829
832
845
850
850
866
871
871
884
887
889
907
912
912
931
936
936
951
953
956
975
980
980
998
1003
1003
1020
1022
1040
1045
1045
1064
1069
1069
1086
1089
1102
1107
1107
1123
1128
1128
1141
1144
1146
1164
1169
1169
1188
1193
1193
1208
1210
1213
1232
1237
1237
1255
1260
1260
1277
1279
1297
1302
1302
1321
1326
1326
1343
1346
1864
1865
1866
5
7
7
7
7
8
9
9
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
13
13
13
13
13
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
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
21
23
23
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
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
29
29
29
29
29
29
29
29
29
29
29
30
30
32
32
32
32
32
32
32
32
32
33
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
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
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
40
40
40
40
40
41
41
41
44
45
49
49
49
49
50
50
54
54
54
54
54
60
60
61
61
61
61
62
62
63
63
63
63
63
63
64
64
65
65
65
65
65
65
68
69
71
71
73
73
81
82
83
84
84
85
85
85
86
86
88
88
90
91
93
95
95
96
96
98
98
98
98
98
98
98
99
99
99
99
99
103
103
103
103
108
108
108
108
112
114
114
115
115
115
116
116
117
117
117
117
117
118
119
119
120
120
120
120
125
127
127
132
132
133
135
135
135
135
135
135
135
137
140
140
140
141
145
145
146
146
147
153
153
153
154
154
154
155
155
156
156
157
159
162
166
167
167
167
170
170
170
170
170
170
172
173
174
174
175
177
177
177
179
179
179
179
182
182
185
185
185
185
185
185
187
187
187
188
188
188
188
189
189
189
193
194
194
194
196
196
201
203
203
206
206
206
206
206
206
206
206
206
206
208
208
211
213
213
213
214
214
215
215
216
216
216
217
223
223
224
224
224
225
225
225
225
226
226
226
226
227
227
227
227
234
238
238
239
239
241
241
241
241
241
241
243
245
245
246
247
249
249
250
250
252
252
254
254
254
256
256
256
256
259
259
259
260
260
260
270
270
273
273
274
274
275
275
275
277
277
277
277
277
277
280
280
281
281
281
283
286
287
289
290
290
290
290
290
291
292
294
295
295
295
296
296
296
297
297
297
297
298
298
298
299
299
299
299
299
299
300
306
307
307
307
309
309
309
309
312
312
312
312
312
312
314
316
319
319
319
319
320
320
321
321
325
325
326
327
327
327
327
328
328
329
329
330
330
330
331
331
331
332
336
337
337
338
339
340
340
345
345
348
348
348
348
348
348
352
355
355
356
357
357
357
358
358
358
359
362
362
363
363
367
373
374
376
383
388
388
391
393
393
394
394
394
394
395
395
396
396
396
399
399
400
400
403
403
403
403
411
412
412
412
412
413
418
419
420
420
420
422
422
423
423
432
432
432
433
435
436
437
438
438
439
440
441
441
442
442
443
449
451
452
453
453
462
462
466
466
467
467
467
467
469
471
471
471
472
480
485
490
490
496
498
501
501
503
503
503
504
506
506
507
507
507
507
508
508
509
509
509
509
516
516
516
516
524
525
525
525
525
526
527
532
532
532
533
533
533
535
535
537
541
541
542
542
545
545
546
546
551
552
554
554
555
555
556
556
562
564
565
566
566
573
576
578
579
581
582
582
583
584
584
585
589
593
594
594
608
609
610
612
612
613
613
614
614
615
615
617
617
628
631
633
644
649
649
649
650
651
654
654
655
655
656
656
675
680
680
683
687
687
688
688
692
692
695
697
700
719
724
724
742
747
747
764
766
784
789
789
790
791
791
808
813
813
830
833
846
851
851
867
872
872
885
888
890
908
913
913
932
937
937
952
954
957
976
981
981
999
1004
1004
1021
1023
1041
1046
1046
1065
1070
1070
1087
1090
1103
1108
1108
1124
1129
1129
1142
1145
1147
1165
1170
1170
1189
1194
1194
1209
1211
1214
1233
1238
1238
1256
1261
1261
1278
1280
1298
1303
1303
1322
1327
1327
1344
1347
1865
1866
1867
7
8
9
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
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
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
19
19
19
19
19
19
19
19
20
22
25
25
25
25
25
25
25
25
25
25
25
25
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
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
30
30
30
30
30
30
30
33
33
33
33
33
33
33
33
33
33
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
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
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
39
40
40
40
40
40
40
41
42
45
46
50
50
50
50
51
51
52
55
55
55
62
62
62
63
63
65
65
66
66
66
66
66
66
68
69
70
74
74
81
81
82
82
84
85
85
86
88
89
89
91
91
91
94
94
98
98
99
99
99
99
99
99
99
99
99
100
100
100
100
104
104
104
104
109
109
109
109
110
112
113
113
114
115
116
116
116
117
117
118
118
118
118
119
120
121
124
126
133
133
133
136
136
136
136
136
136
136
136
136
138
138
138
141
141
142
146
146
147
147
147
148
150
150
151
152
152
153
153
153
154
154
154
155
155
158
160
162
167
168
168
171
171
171
171
171
171
171
171
171
173
174
175
175
176
178
178
180
180
180
180
183
183
186
186
188
188
189
189
189
190
190
193
193
193
194
195
195
195
202
204
204
204
207
207
207
207
207
207
207
207
207
207
207
209
209
212
214
215
216
217
217
217
218
218
222
223
223
223
223
224
224
224
224
225
225
225
226
226
226
227
227
235
239
239
240
240
242
242
242
242
242
242
242
242
243
244
246
246
248
250
250
251
251
253
253
255
255
257
257
260
260
261
261
271
271
274
275
275
276
276
278
278
278
278
278
278
278
278
282
282
282
282
287
288
290
291
291
291
292
293
294
294
295
295
295
295
296
296
296
297
297
300
300
300
300
301
306
306
306
307
308
308
308
310
310
313
313
313
313
313
313
313
313
315
317
317
320
320
320
320
321
321
322
322
326
326
328
328
329
330
330
331
331
332
332
333
336
336
338
338
339
340
346
346
349
349
349
349
349
349
349
349
353
356
356
356
357
358
358
358
359
359
359
363
364
374
375
377
384
389
392
395
395
395
395
395
396
396
397
397
400
400
401
401
404
404
413
413
414
419
419
419
419
420
421
421
421
424
424
430
433
433
433
434
436
437
438
439
439
441
442
443
443
444
449
449
452
453
463
463
467
467
468
468
468
468
469
470
472
472
472
486
491
497
499
501
502
504
504
504
505
508
508
508
508
508
509
510
510
517
517
526
526
527
528
532
532
532
533
533
533
534
534
534
538
542
542
543
543
543
546
546
547
547
552
555
556
556
557
562
562
565
566
568
572
574
577
579
580
582
582
583
583
584
585
585
590
595
595
609
610
611
613
613
614
614
615
616
616
618
618
629
632
634
645
650
650
650
651
652
655
656
657
657
676
681
681
684
688
688
689
689
693
693
696
698
701
720
725
725
743
748
758
765
767
785
790
790
791
791
809
814
825
829
831
834
847
852
852
868
873
873
886
889
891
909
914
914
933
938
938
953
955
958
977
982
982
1000
1005
1015
1022
1024
1042
1047
1047
1066
1071
1082
1086
1088
1091
1104
1109
1109
1125
1130
1130
1143
1146
1148
1166
1171
1171
1190
1195
1195
1210
1212
1215
1234
1239
1239
1257
1262
1272
1279
1281
1299
1304
1304
1323
1328
1339
1343
1345
1348
1866
1867
1868
7
7
8
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
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
20
20
20
23
23
23
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
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
30
31
31
31
31
32
32
32
32
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
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
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
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
44
44
46
47
51
51
51
51
52
52
52
56
56
60
60
61
62
62
62
64
64
64
64
66
66
67
67
67
67
69
69
70
71
71
75
75
79
82
82
83
83
83
83
83
84
84
84
85
86
88
89
90
91
91
92
92
94
95
95
97
99
99
100
100
100
100
100
100
100
101
101
101
101
105
105
105
105
107
110
110
110
110
110
114
114
115
116
116
116
117
117
118
118
118
119
119
119
119
119
120
120
120
120
120
121
122
125
125
127
127
134
134
134
136
136
136
136
137
137
137
137
137
139
139
140
140
142
142
143
147
147
147
148
148
151
151
152
153
153
154
154
155
155
156
156
156
159
161
169
169
169
171
171
171
171
172
172
172
172
172
173
173
175
175
176
176
177
177
177
177
177
179
179
181
181
181
181
184
184
185
186
187
187
188
189
189
189
189
189
189
190
190
190
190
190
191
195
196
196
196
203
205
205
205
205
205
207
207
207
207
208
208
208
208
208
210
210
213
213
214
215
215
215
216
216
217
217
218
219
223
224
224
224
224
225
225
225
225
225
225
226
226
227
227
227
228
234
236
240
240
240
241
241
242
242
242
242
243
243
243
243
243
244
246
246
247
247
249
251
251
252
252
253
253
253
253
254
254
254
254
256
256
257
258
259
260
260
260
260
261
261
261
261
261
262
262
271
271
272
275
275
275
276
276
276
277
277
278
278
278
278
279
279
279
279
283
283
288
289
291
291
292
293
294
295
295
296
296
296
297
297
298
298
299
299
301
301
301
301
308
309
309
309
311
311
311
313
313
313
313
314
314
314
314
316
318
318
318
321
321
322
322
323
323
324
324
324
324
327
327
328
328
328
329
330
330
331
331
331
331
332
332
332
332
332
333
334
337
337
338
338
338
339
339
340
347
347
347
347
349
349
349
349
350
350
350
350
354
356
357
357
357
359
359
359
359
359
360
360
360
362
362
363
363
364
365
367
367
375
375
376
378
384
384
388
388
390
393
396
396
396
397
397
398
398
399
399
399
399
401
401
402
402
404
412
412
414
414
420
421
422
422
422
425
425
431
431
434
435
437
438
439
440
440
441
441
442
443
445
450
450
451
451
451
453
460
464
464
468
468
469
469
469
469
469
470
470
470
470
470
472
472
473
473
473
480
480
487
488
490
490
492
497
497
500
501
501
502
503
505
505
505
506
506
508
508
509
509
509
509
509
510
511
511
517
525
525
527
527
529
534
534
534
535
535
535
539
543
543
544
544
544
544
545
545
545
545
548
548
553
554
554
556
558
563
563
564
564
564
566
573
573
575
578
580
581
582
583
583
584
585
585
585
586
586
591
593
593
596
596
601
610
610
610
612
614
614
614
614
615
615
616
616
616
616
616
617
617
619
619
630
633
635
646
651
651
651
652
653
654
654
655
655
656
657
658
658
677
682
682
685
689
689
690
690
691
691
691
691
694
694
697
699
702
721
726
726
744
747
747
749
759
763
766
768
786
791
791
810
815
830
832
835
848
853
853
869
874
874
887
890
892
910
915
915
934
939
939
954
956
959
978
983
983
1001
1004
1004
1006
1016
1020
1023
1025
1043
1048
1048
1067
1072
1087
1089
1092
1105
1110
1110
1126
1131
1131
1144
1147
1149
1167
1172
1172
1191
1196
1196
1211
1213
1216
1235
1240
1240
1258
1261
1261
1263
1273
1277
1280
1282
1300
1305
1305
1324
1329
1344
1346
1349
1867
1868
1869
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
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
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
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
20
20
20
20
21
21
21
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
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
29
29
29
29
29
29
29
29
30
31
31
31
32
32
32
32
32
32
32
32
33
33
33
33
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
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
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
47
48
52
52
52
52
53
53
54
54
54
54
57
57
61
61
61
61
61
61
61
62
63
63
63
65
65
65
65
69
71
71
72
72
76
76
80
80
80
84
84
84
84
85
85
85
85
91
92
92
93
93
94
95
96
97
97
97
97
98
99
99
100
100
100
100
100
100
100
100
101
102
102
102
102
106
106
106
106
108
111
111
111
111
114
114
115
116
117
119
120
120
120
120
120
121
121
121
121
121
122
123
125
127
128
128
134
134
134
136
136
137
137
138
138
138
138
138
138
139
139
139
139
140
141
143
143
144
148
148
148
149
149
150
152
152
152
153
153
154
154
154
154
155
155
156
157
157
160
162
162
162
169
169
169
171
171
172
172
173
173
173
173
173
177
177
177
178
178
178
178
180
180
182
182
182
182
185
185
186
186
186
188
188
189
190
190
191
191
191
192
194
196
197
197
204
205
205
205
206
206
207
207
208
208
209
209
209
209
209
211
211
214
216
216
217
217
218
219
220
224
224
224
225
225
225
225
226
226
226
226
226
226
226
227
228
229
235
235
235
237
240
240
240
242
242
242
242
243
243
244
244
244
244
247
247
248
248
250
252
252
252
253
254
254
255
255
255
255
257
257
257
257
257
259
260
261
261
262
262
262
263
263
273
276
276
276
276
276
276
278
278
278
278
279
279
280
280
280
280
283
291
292
293
294
295
295
295
296
296
296
296
297
297
297
298
299
300
302
302
307
309
310
310
311
311
311
313
313
314
314
315
315
315
315
317
319
322
322
323
323
324
325
325
328
328
328
328
328
329
330
331
332
332
333
333
333
334
335
339
339
339
339
340
347
347
347
348
348
348
349
349
350
350
351
351
351
351
355
358
358
360
360
360
360
360
361
361
361
363
364
365
365
366
368
368
376
376
377
379
389
389
391
394
396
397
398
398
399
400
400
402
402
403
403
404
413
420
421
422
423
423
426
426
438
439
440
441
441
442
443
446
452
452
452
452
461
461
461
465
465
469
469
470
470
470
471
471
473
473
474
474
474
478
481
481
488
489
491
493
501
502
502
504
506
506
506
507
507
509
509
510
510
511
512
512
517
526
530
533
535
535
535
536
536
540
544
544
545
546
546
549
549
554
555
556
556
559
565
565
565
565
574
574
574
574
576
579
584
585
586
586
586
587
587
591
592
594
594
597
597
602
611
613
615
615
615
615
616
617
617
617
618
618
620
620
631
634
636
647
652
652
652
653
654
655
656
657
658
659
659
678
683
683
686
690
690
691
692
692
695
695
698
700
703
722
727
727
745
748
750
764
767
769
787
792
792
811
813
813
816
831
833
836
849
854
854
870
875
875
888
891
893
911
916
916
935
940
940
955
957
960
979
984
984
1002
1005
1007
1021
1024
1026
1044
1049
1049
1068
1070
1070
1073
1088
1090
1093
1106
1111
1111
1127
1132
1132
1145
1148
1150
1168
1173
1173
1192
1197
1197
1212
1214
1217
1236
1241
1241
1259
1262
1264
1278
1281
1283
1301
1306
1306
1325
1327
1327
1330
1345
1347
1350
1868
1869
1870
7
7
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
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
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
15
15
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
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
28
28
28
28
28
28
28
29
29
29
29
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
33
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
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
38
38
38
38
38
38
38
38
38
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
42
42
48
49
52
52
53
53
53
53
54
55
55
55
58
58
61
61
62
62
63
64
64
64
69
71
72
72
73
73
77
77
81
81
85
85
86
86
92
93
93
94
97
97
98
98
98
98
98
98
99
99
99
99
99
99
99
99
100
100
101
101
101
101
101
101
102
107
107
107
107
109
109
110
112
112
112
112
115
115
116
117
117
117
118
118
119
120
120
121
121
121
121
122
122
122
122
125
127
128
129
129
132
132
135
135
135
135
136
136
136
136
136
136
137
137
138
138
139
140
140
141
142
144
144
145
149
149
150
150
150
151
153
154
154
155
155
156
156
156
157
157
157
158
158
160
161
163
163
163
165
167
170
170
170
170
171
171
171
171
171
171
172
172
173
173
173
174
178
178
178
179
179
179
179
181
183
183
183
183
185
186
186
187
187
189
189
189
189
190
190
190
191
191
192
192
195
195
203
205
206
206
206
206
207
207
207
207
207
207
207
207
208
208
209
209
210
212
215
215
215
217
217
218
218
219
220
221
224
225
225
225
226
226
227
227
227
227
227
227
228
228
228
229
230
236
236
238
238
241
241
241
241
242
242
242
242
242
242
243
243
243
243
244
244
248
248
249
251
253
253
253
253
254
255
255
256
256
258
258
258
258
260
260
260
261
261
261
262
262
263
263
264
264
274
274
275
277
277
277
277
277
277
277
278
278
278
278
278
278
279
279
279
280
280
283
293
294
295
295
296
296
296
297
297
298
298
298
298
299
299
299
299
300
301
303
303
308
308
309
312
312
312
312
313
313
313
313
313
313
314
314
315
315
318
320
320
323
323
324
324
325
326
326
328
328
329
329
329
329
330
331
331
331
332
332
332
333
333
334
334
336
340
340
341
345
348
348
348
348
349
349
349
349
349
349
349
349
350
350
351
351
356
359
359
361
361
361
361
362
362
364
365
366
366
366
367
377
377
377
378
380
388
390
390
395
396
398
399
399
400
401
401
403
403
404
404
412
414
421
421
422
427
427
433
439
440
441
441
441
442
442
443
444
447
453
453
462
462
466
466
470
470
471
471
471
472
472
474
474
475
475
479
479
489
490
490
492
494
501
502
503
503
507
507
508
508
509
510
511
511
512
513
513
525
527
531
534
534
536
536
541
545
545
546
546
547
547
550
550
554
554
555
556
557
560
566
566
575
575
575
577
580
585
586
587
587
587
588
592
592
593
598
598
603
603
612
614
614
616
616
616
616
617
618
618
619
619
621
621
632
635
637
648
653
653
654
655
656
657
658
659
660
660
679
684
684
687
691
691
692
693
693
696
696
699
701
704
723
728
728
746
749
751
765
768
770
788
793
793
812
814
817
832
834
837
850
855
855
871
876
876
889
892
894
912
917
917
936
941
941
956
958
961
980
985
985
1003
1006
1008
1022
1025
1027
1045
1050
1050
1069
1071
1074
1089
1091
1094
1107
1112
1112
1128
1133
1133
1146
1149
1151
1169
1174
1174
1193
1198
1198
1213
1215
1218
1237
1242
1242
1260
1263
1265
1279
1282
1284
1302
1307
1307
1326
1328
1331
1346
1348
1351
1869
1870
1871
1
7
7
7
7
7
7
8
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
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
17
17
17
17
17
17
18
18
18
21
21
22
22
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
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
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
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
36
36
36
36
36
36
36
36
36
36
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
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
42
42
46
49
50
53
53
54
54
54
54
55
56
56
59
59
62
62
63
63
64
65
65
67
67
67
67
67
67
72
73
73
78
78
80
81
81
81
81
82
85
86
91
93
95
98
99
99
99
100
100
101
101
102
102
102
102
102
102
103
108
108
108
108
110
110
110
110
113
113
113
113
115
115
116
117
117
117
118
118
119
119
119
119
120
120
120
120
120
121
122
122
125
125
128
129
133
133
133
133
133
134
134
135
135
136
136
137
137
138
138
139
139
140
141
141
143
145
145
146
150
150
151
151
151
151
152
152
156
157
157
157
158
158
158
159
159
161
161
162
164
166
168
169
169
170
170
171
171
172
172
173
173
175
179
179
179
180
180
182
184
184
184
184
185
185
186
187
187
187
187
187
187
187
188
188
188
189
189
189
190
190
190
191
191
204
205
205
206
206
206
207
207
207
208
208
208
209
209
211
211
213
214
215
215
216
216
216
218
219
219
220
221
222
226
227
227
228
228
228
228
229
229
229
230
231
235
236
236
236
236
237
239
239
240
240
241
241
242
242
243
243
244
244
244
244
246
250
252
252
252
254
254
255
256
256
256
257
257
258
258
258
258
259
259
259
259
259
260
260
260
261
261
261
262
262
265
265
265
265
275
275
275
276
276
277
277
278
278
278
279
279
280
280
280
294
295
296
297
298
299
299
299
299
299
299
300
300
300
300
301
304
304
310
311
311
312
312
313
313
314
314
315
315
319
320
321
323
323
324
324
325
325
326
327
327
327
328
328
329
329
329
329
329
329
330
330
330
330
330
331
331
331
332
332
332
333
333
337
339
339
340
342
346
347
347
348
348
348
349
349
349
349
349
349
350
350
350
351
351
357
359
360
360
360
360
362
362
363
363
365
366
367
368
378
378
378
378
379
381
388
396
398
398
399
400
400
401
402
402
404
404
405
405
412
412
413
423
428
428
433
440
441
441
441
442
442
442
443
445
448
453
461
462
462
462
462
463
467
467
469
469
471
471
472
472
472
472
473
473
476
476
490
491
491
491
491
493
495
501
503
506
506
508
508
509
509
511
512
512
513
514
514
525
525
526
532
537
537
542
544
544
546
546
546
547
548
548
551
551
554
554
555
555
556
558
561
566
574
575
575
575
575
576
576
578
581
585
586
587
588
589
594
599
599
604
604
604
604
613
614
615
615
615
617
617
618
619
619
620
620
622
622
636
638
649
652
652
654
654
655
656
657
658
659
660
661
661
680
685
685
688
690
690
692
692
693
694
694
697
697
702
705
724
729
729
747
750
752
766
769
771
789
794
794
813
815
818
833
835
838
851
856
856
872
877
877
893
895
913
918
918
937
942
942
959
962
981
986
986
1004
1007
1009
1023
1026
1028
1046
1051
1051
1070
1072
1075
1090
1092
1095
1108
1113
1113
1129
1134
1134
1150
1152
1170
1175
1175
1194
1199
1199
1216
1219
1238
1243
1243
1261
1264
1266
1280
1283
1285
1303
1308
1308
1327
1329
1332
1347
1349
1352
1870
1871
1872
1
1
9
10
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
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
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
20
20
20
20
20
20
20
20
20
20
20
20
20
20
22
22
23
23
24
24
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
28
28
29
29
29
29
29
29
29
29
29
30
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
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
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
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
40
40
41
41
41
41
41
41
42
42
42
42
43
43
47
47
50
51
53
53
55
55
55
55
56
57
57
60
60
61
61
63
63
63
65
65
67
67
68
68
68
68
73
74
79
79
82
82
83
84
85
85
86
88
94
96
98
99
99
99
99
100
100
100
101
101
102
102
103
103
103
103
104
108
109
109
109
109
110
110
111
111
114
114
114
114
116
117
117
118
118
118
118
119
120
120
120
121
121
121
121
122
123
123
126
126
127
127
127
129
134
134
134
134
135
136
136
136
137
137
138
138
139
139
140
141
144
146
146
147
151
151
152
152
153
153
158
158
159
159
160
163
163
165
165
167
167
169
169
170
171
171
171
172
172
173
173
174
174
176
177
180
180
180
181
181
183
185
185
185
185
186
186
187
187
188
188
188
188
188
189
189
189
190
190
191
191
192
192
197
205
205
206
207
207
207
207
208
208
209
209
209
210
210
212
214
215
217
217
217
219
220
220
221
222
223
227
227
229
229
229
229
230
230
232
232
237
237
238
240
240
240
241
242
242
242
243
243
243
244
244
245
245
245
245
251
253
253
255
255
255
256
257
257
257
258
258
259
259
260
260
260
260
260
261
261
262
262
263
263
263
265
265
266
266
271
275
276
276
276
276
277
278
278
278
279
279
279
280
280
281
281
281
288
289
295
296
297
298
298
299
300
300
300
300
301
301
301
305
305
310
311
311
312
313
313
313
314
314
315
315
316
316
320
322
324
325
325
326
326
327
328
328
328
330
330
330
330
331
331
331
331
331
332
332
333
333
334
334
338
340
340
343
347
347
348
349
349
349
350
350
350
350
351
351
351
352
352
356
358
361
361
361
363
363
364
364
366
367
368
368
369
376
378
378
379
379
380
382
384
388
389
397
399
400
401
401
402
403
403
405
405
406
406
411
412
413
414
423
424
429
429
434
435
441
442
443
443
443
444
446
449
453
463
463
464
468
468
469
470
472
472
473
473
473
474
474
477
477
481
489
491
491
491
492
492
494
496
497
501
502
504
507
509
509
510
510
512
513
513
513
514
515
515
515
524
525
526
527
533
536
538
538
543
545
547
547
548
549
549
552
552
556
556
557
559
562
566
576
576
577
577
579
579
580
581
582
582
582
587
588
589
590
594
595
600
600
602
604
604
605
605
610
614
614
615
616
616
618
618
619
620
620
621
621
623
623
637
639
650
653
655
655
656
657
658
659
660
661
662
662
681
686
686
689
691
693
693
694
695
695
698
698
703
706
725
730
730
748
751
753
767
770
770
772
772
790
795
795
814
816
819
834
836
836
839
839
852
857
857
873
878
878
894
896
914
919
919
938
943
943
960
963
982
987
987
1005
1008
1010
1024
1027
1027
1029
1029
1047
1052
1052
1071
1073
1076
1091
1093
1093
1096
1096
1109
1114
1114
1130
1135
1135
1151
1153
1171
1176
1176
1195
1200
1200
1217
1220
1239
1244
1244
1262
1265
1267
1281
1284
1284
1286
1286
1304
1309
1309
1328
1330
1333
1348
1350
1350
1353
1353
1871
1872
1873
9
9
9
9
9
9
9
9
9
9
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
18
18
18
18
18
18
18
18
18
18
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
22
23
23
23
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
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
28
28
28
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
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
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
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
39
39
39
39
40
40
41
41
42
42
42
42
43
43
43
44
44
51
52
54
56
56
56
56
57
58
58
61
61
62
66
66
66
66
75
80
80
81
81
83
83
85
85
85
85
86
86
86
86
88
89
91
91
95
97
98
98
98
99
100
100
100
100
100
101
101
101
101
105
110
110
110
110
111
112
112
115
115
115
115
115
115
116
117
118
119
119
119
119
119
120
120
121
121
121
121
122
122
122
124
124
128
128
128
128
134
135
135
135
135
135
136
136
136
137
137
137
139
140
140
141
142
145
147
147
148
151
152
152
152
152
152
153
153
153
154
154
154
161
163
166
166
168
168
168
168
170
170
170
170
170
171
171
171
172
172
172
173
175
175
177
177
178
181
181
182
182
184
186
186
186
186
187
187
187
188
188
189
189
189
189
189
189
189
190
190
190
190
191
191
192
193
197
206
206
206
206
206
207
207
207
208
208
208
208
210
211
211
213
213
215
216
218
218
218
221
222
223
224
224
225
228
233
233
236
236
238
238
241
241
241
241
241
241
242
242
242
243
243
243
243
244
246
246
246
246
246
246
252
254
254
255
257
258
258
258
258
258
259
259
260
260
260
260
261
261
261
261
261
261
262
262
263
264
266
267
267
271
276
277
277
277
277
277
277
277
278
278
278
279
279
279
280
282
282
282
282
289
290
293
294
295
296
296
297
298
299
299
301
301
302
306
306
310
312
312
312
312
312
313
313
313
314
314
314
317
317
321
323
325
326
326
326
328
329
329
329
329
329
331
331
331
331
331
331
332
332
332
332
332
332
333
333
334
335
339
341
344
348
348
348
348
348
349
349
349
349
349
350
350
350
351
351
353
353
356
357
359
359
359
362
362
364
365
367
368
368
369
370
379
380
380
381
383
384
389
390
395
398
400
401
403
404
404
406
406
407
407
412
414
415
423
425
430
430
435
436
439
439
440
442
443
444
444
444
445
447
450
462
462
464
464
469
469
469
470
471
472
472
474
474
474
475
475
478
478
481
492
492
493
493
495
497
497
502
503
505
508
508
510
511
513
514
515
516
516
516
525
527
528
534
536
539
539
544
546
549
550
550
552
553
553
557
557
558
560
563
575
575
577
577
578
581
582
582
583
583
583
585
585
585
586
588
589
590
591
594
596
601
601
605
606
606
610
615
615
616
617
617
620
621
621
622
624
624
638
640
651
654
656
658
659
660
661
662
663
663
682
687
687
690
692
695
696
696
699
699
704
707
726
731
731
749
752
754
768
773
773
791
796
796
815
817
820
835
840
840
853
858
858
874
879
895
897
915
920
920
939
944
944
961
964
983
988
988
1006
1009
1011
1025
1030
1030
1048
1053
1053
1072
1074
1077
1092
1097
1097
1110
1115
1115
1131
1136
1152
1154
1172
1177
1177
1196
1201
1201
1218
1221
1240
1245
1245
1263
1266
1268
1282
1287
1287
1305
1310
1310
1329
1331
1334
1349
1354
1354
1872
1873
1874
8
8
8
8
8
8
8
8
8
8
8
9
9
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
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
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
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
28
28
28
28
28
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
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
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
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
39
39
39
39
40
40
40
43
43
43
45
45
52
53
53
55
57
57
58
59
59
61
61
62
62
63
65
65
65
69
69
76
81
81
82
86
86
87
87
88
92
92
96
98
100
101
101
101
101
106
110
110
111
111
111
111
112
116
116
116
116
116
117
117
117
118
120
120
120
120
121
121
121
121
121
122
122
122
122
122
123
123
125
125
129
129
133
134
135
135
135
135
136
137
138
138
139
139
139
139
139
139
140
141
141
143
146
148
148
149
151
151
151
152
153
153
153
153
153
153
154
154
154
154
155
156
157
162
163
166
167
167
168
168
168
169
169
170
170
170
170
171
172
173
173
173
174
174
174
174
176
176
178
178
179
182
182
183
183
185
186
186
187
187
187
187
187
188
188
188
189
189
189
190
190
190
190
191
191
192
192
192
193
193
193
194
204
206
206
206
206
207
208
209
209
209
210
210
210
210
211
212
212
214
214
216
217
219
219
222
223
224
224
225
225
225
226
227
228
229
234
234
237
239
241
241
241
241
242
242
243
243
244
244
245
245
245
245
247
247
247
247
247
247
253
255
255
257
257
258
258
259
259
259
259
260
260
260
261
261
262
262
262
262
263
263
263
264
264
264
265
265
265
267
275
275
277
277
277
277
277
278
278
279
280
280
281
281
281
281
281
283
283
283
283
283
283
283
290
294
295
295
296
296
297
297
297
298
298
298
299
299
299
299
300
300
300
302
302
307
307
310
312
312
312
312
313
314
315
315
316
316
316
316
318
318
322
324
326
327
327
327
328
328
329
329
330
330
330
330
331
332
332
332
333
333
333
333
334
334
334
335
335
335
336
340
342
345
346
348
348
348
348
349
350
350
351
351
352
352
352
352
354
354
356
360
360
360
361
363
363
364
365
366
368
369
370
371
377
378
378
380
382
384
388
390
391
396
396
396
396
399
401
402
403
404
405
405
407
407
408
408
412
413
415
426
431
440
440
441
442
443
443
444
444
445
445
445
446
446
446
448
451
463
469
470
470
472
473
473
475
475
475
476
476
479
479
491
491
493
493
496
498
501
503
504
506
509
509
509
509
509
511
512
514
515
516
516
517
517
517
525
526
528
535
540
540
545
547
550
551
551
553
554
554
558
559
561
564
576
579
582
584
584
586
586
586
587
589
589
590
590
591
591
592
592
597
602
602
604
604
606
614
616
616
617
618
618
621
621
621
622
622
623
625
625
632
639
641
652
655
657
659
660
661
662
663
664
664
683
688
691
693
696
697
697
699
700
700
703
705
708
727
732
732
750
753
755
769
774
774
790
792
797
797
816
818
821
836
841
841
854
859
859
875
878
878
880
889
896
898
916
921
921
940
945
956
960
962
965
984
989
989
1007
1010
1012
1026
1031
1031
1049
1054
1054
1073
1075
1078
1093
1098
1098
1111
1116
1116
1132
1135
1135
1137
1146
1153
1155
1173
1178
1178
1197
1202
1213
1217
1219
1222
1241
1246
1246
1264
1267
1269
1283
1288
1288
1306
1311
1311
1330
1332
1335
1350
1355
1355
1873
1874
1875
7
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
16
16
16
16
17
17
17
17
17
17
17
17
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
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
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
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
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
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
39
39
39
39
39
39
39
40
41
41
42
42
42
42
44
44
45
45
53
53
54
56
58
58
59
60
60
61
61
62
62
63
63
63
65
66
66
68
68
68
68
68
68
70
70
71
71
71
77
81
82
82
83
86
87
89
91
93
93
93
99
99
100
100
101
102
102
102
103
103
103
103
103
103
107
111
112
112
112
112
115
116
117
117
117
117
118
118
119
121
121
121
122
122
122
123
123
123
123
123
124
126
126
129
133
135
137
138
138
139
139
139
140
140
140
140
140
141
142
142
144
147
149
149
150
153
153
154
154
154
154
154
154
154
155
155
155
156
156
156
157
157
157
157
158
163
168
168
168
169
170
170
170
172
173
174
174
175
175
175
175
177
177
177
179
179
180
183
183
184
184
186
187
187
188
188
188
188
188
189
189
189
189
189
190
191
191
192
193
193
193
194
194
194
195
197
197
204
205
206
208
209
210
210
210
211
211
211
211
212
213
213
214
214
215
217
218
218
218
220
220
223
224
224
225
225
225
226
226
226
227
227
227
228
228
228
228
229
230
235
235
236
238
239
241
243
243
244
244
245
245
246
246
246
246
246
248
248
248
248
248
248
248
254
255
255
256
256
258
258
259
260
260
260
260
261
261
263
263
263
264
264
264
265
265
265
266
266
271
275
276
277
278
278
279
280
281
281
282
282
282
282
282
284
284
284
284
284
291
291
291
295
295
296
296
296
297
298
298
298
299
299
299
299
299
300
300
300
300
301
301
302
302
303
303
308
308
310
310
310
312
314
315
316
316
317
317
317
317
318
319
319
323
325
327
327
327
328
328
329
329
330
331
331
331
331
331
331
333
334
334
334
335
335
335
336
336
336
337
339
341
343
346
346
348
349
350
351
351
352
352
353
353
353
353
355
355
357
359
361
361
361
361
364
364
365
366
367
368
368
369
370
371
372
378
379
380
383
384
385
389
391
391
397
397
400
402
403
404
404
404
405
406
406
408
408
409
409
412
413
415
415
416
423
423
427
431
432
440
440
441
442
444
444
446
446
446
447
447
447
449
452
452
462
464
470
471
471
472
473
474
474
474
476
476
476
477
477
480
480
481
481
492
494
497
497
499
502
504
504
507
510
510
510
512
513
515
516
517
517
517
517
518
518
518
525
526
528
528
529
536
536
536
541
541
544
546
548
551
552
552
553
553
555
555
557
557
559
560
562
565
565
575
577
580
583
585
585
585
587
587
587
587
588
592
592
593
593
594
594
598
603
603
605
610
615
617
617
617
619
619
622
622
623
623
624
626
626
633
637
640
642
653
656
658
660
661
662
663
664
665
665
684
689
692
694
697
698
698
701
701
704
706
709
728
733
733
751
754
756
770
775
775
791
791
791
793
798
798
817
819
822
837
842
842
855
860
860
876
879
881
890
894
897
899
917
922
922
941
946
961
963
966
985
990
990
1008
1011
1013
1027
1032
1032
1050
1055
1055
1074
1076
1079
1094
1099
1099
1112
1117
1117
1133
1136
1138
1147
1151
1154
1156
1174
1179
1179
1198
1203
1218
1220
1223
1242
1247
1247
1265
1268
1270
1284
1289
1289
1307
1312
1312
1331
1333
1336
1351
1356
1356
1874
1875
1876
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
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
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
16
16
16
16
17
17
18
18
18
18
18
19
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
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
25
25
25
25
26
26
26
26
27
27
27
27
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
31
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
34
34
34
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
39
39
39
39
39
39
39
39
40
41
42
42
43
43
43
43
43
45
45
54
55
57
59
59
60
61
61
63
63
64
64
64
64
66
66
68
68
69
69
69
69
72
72
72
72
78
81
81
82
83
83
85
86
86
87
91
92
98
100
100
100
101
101
101
101
103
103
103
104
104
104
104
108
110
110
112
113
113
113
113
116
117
118
118
118
118
118
119
119
120
122
122
123
123
124
124
127
127
129
134
135
136
139
139
141
141
141
141
141
142
148
150
150
151
152
154
155
155
155
155
156
156
156
157
157
157
157
157
158
158
158
158
158
158
159
159
163
163
164
168
168
169
169
169
170
170
171
174
176
176
176
176
178
180
180
184
184
185
185
187
187
187
188
188
189
189
189
189
190
190
190
191
192
192
194
194
195
195
195
198
198
205
206
206
207
210
211
212
212
212
212
213
216
219
219
219
219
220
221
221
224
225
226
227
227
227
227
227
227
228
228
228
228
228
229
229
229
229
229
229
230
230
231
236
236
236
236
237
240
241
242
244
245
246
247
247
247
247
247
249
249
253
255
255
256
256
257
257
258
258
259
259
259
259
260
261
261
261
262
262
264
264
265
265
265
265
266
266
267
275
276
277
277
278
281
283
283
283
283
283
284
285
292
292
296
297
298
299
299
299
299
299
300
300
300
300
300
300
301
301
301
301
302
302
303
303
304
304
308
309
309
311
311
311
312
313
316
318
318
318
318
319
324
326
326
328
329
329
329
329
330
330
330
330
331
332
332
332
332
332
334
335
335
336
336
337
337
340
340
340
340
342
344
347
347
348
349
349
349
350
352
354
354
354
354
359
360
363
364
365
365
366
366
367
368
369
369
370
371
372
373
378
378
380
381
384
386
388
390
397
401
401
403
404
405
405
405
405
406
407
407
409
409
410
410
416
416
417
421
424
424
428
430
430
432
433
442
443
445
445
447
447
447
448
448
448
450
453
453
453
453
453
462
462
463
472
472
472
472
473
474
476
476
477
477
477
478
478
479
481
481
482
482
491
491
493
498
500
501
503
509
510
510
511
513
514
516
517
518
518
518
519
519
519
529
529
530
534
537
537
537
542
542
545
547
547
549
551
551
552
553
553
556
556
558
558
560
561
563
566
566
566
566
566
575
575
576
581
585
586
586
586
588
589
592
593
593
594
594
595
595
599
604
604
604
604
606
614
616
618
618
620
620
622
622
623
623
624
624
625
627
627
638
641
643
655
656
657
659
661
662
663
664
665
666
666
685
687
687
690
693
693
695
697
697
698
699
699
702
702
705
707
710
729
734
734
755
757
771
776
776
791
792
792
794
799
799
818
820
823
838
843
843
856
861
861
877
880
882
895
898
900
918
923
923
942
944
944
947
962
964
967
986
991
991
1012
1014
1028
1033
1033
1051
1056
1056
1075
1077
1080
1095
1100
1100
1113
1118
1118
1134
1137
1139
1152
1155
1157
1175
1180
1180
1199
1201
1201
1204
1219
1221
1224
1243
1248
1248
1269
1271
1285
1290
1290
1308
1313
1313
1332
1334
1337
1352
1357
1357
1875
1876
1877
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
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
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
16
16
16
17
18
19
19
19
19
19
19
19
19
20
20
20
21
21
21
21
21
22
22
22
22
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
25
25
26
26
26
26
26
26
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
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
38
39
39
39
39
39
39
39
42
43
44
44
44
44
55
55
56
56
58
60
60
60
60
61
62
62
64
64
65
65
67
67
67
67
73
73
79
80
81
82
83
84
84
86
86
86
86
87
87
87
87
92
92
93
93
99
99
101
102
102
102
102
104
109
110
110
111
111
114
114
114
114
118
118
119
119
119
119
119
119
119
120
120
121
121
121
123
123
123
128
128
133
134
134
137
138
138
139
139
139
139
139
140
140
142
149
151
151
152
153
153
156
156
157
157
158
158
158
159
159
159
159
159
160
160
161
164
164
165
169
169
169
170
170
172
173
173
174
174
174
174
175
178
178
180
180
180
181
181
185
185
186
186
187
188
188
189
189
190
190
190
190
190
190
190
191
191
191
193
193
196
196
205
205
207
207
208
209
209
210
210
210
210
211
214
217
218
220
220
220
220
221
222
222
223
225
226
227
228
228
228
229
229
229
230
230
230
230
230
231
231
232
235
236
237
237
237
238
240
240
243
244
244
245
245
245
245
245
246
247
247
248
248
250
250
254
254
258
258
258
259
260
260
260
260
261
261
261
261
262
262
262
263
263
265
265
265
265
266
266
276
276
276
276
277
278
278
279
280
280
281
281
281
281
282
284
284
286
291
292
292
292
292
293
297
298
300
300
300
301
301
301
301
301
302
302
302
302
303
303
304
304
305
309
309
310
310
311
311
314
315
315
316
316
316
316
317
320
320
325
329
329
330
330
330
331
331
331
331
331
332
332
332
332
333
333
333
333
333
336
336
341
341
343
345
347
347
348
348
349
350
350
351
351
351
352
352
352
352
353
360
360
361
361
364
365
366
366
367
367
367
368
368
369
369
371
372
373
374
378
378
379
379
382
385
387
389
389
391
391
397
404
404
405
405
405
405
405
406
406
406
407
408
408
410
410
411
411
417
417
422
422
429
431
433
433
434
443
444
444
446
446
448
448
449
449
449
451
454
454
454
461
462
463
464
473
473
473
474
474
475
477
477
478
478
478
479
479
480
480
482
482
491
491
492
492
499
501
502
502
504
504
510
510
511
512
514
514
515
515
517
517
518
518
518
518
518
519
519
520
520
520
530
530
535
535
538
543
543
546
546
550
552
552
553
554
554
557
557
557
559
559
564
567
567
567
574
575
576
577
582
586
586
587
587
587
587
589
590
593
593
594
594
595
595
600
604
604
605
605
605
605
615
615
617
617
621
621
623
623
624
624
625
625
626
628
628
639
642
644
656
657
658
660
660
661
662
663
664
665
666
667
667
686
688
691
696
698
698
699
700
700
703
703
706
708
711
730
735
735
756
758
772
777
777
792
792
795
800
800
821
824
839
844
844
857
862
862
878
881
883
896
899
901
919
924
924
943
945
948
963
965
968
987
992
992
1013
1015
1029
1034
1034
1052
1057
1057
1078
1081
1096
1101
1101
1114
1119
1119
1135
1138
1140
1153
1156
1158
1176
1181
1181
1200
1202
1205
1220
1222
1225
1244
1249
1249
1270
1272
1286
1291
1291
1309
1314
1314
1335
1338
1353
1358
1358
1876
1877
1878
1
7
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
11
11
11
11
11
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
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
15
15
15
15
15
15
15
16
16
17
17
17
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
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
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
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
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
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
32
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
34
34
35
35
36
36
36
36
36
36
36
37
38
39
39
40
41
41
42
42
42
42
43
56
56
59
61
61
61
61
62
63
63
65
66
66
66
66
66
73
80
81
83
84
85
87
87
88
88
94
94
96
100
102
102
102
102
105
110
112
112
115
115
115
115
119
120
120
120
120
120
120
120
121
121
121
121
121
122
122
123
124
124
124
129
129
134
134
134
134
135
135
135
135
138
139
139
139
139
139
140
140
140
140
140
141
142
142
143
150
152
152
153
157
157
157
158
158
158
158
158
158
159
159
159
160
160
161
161
162
162
166
168
168
170
170
170
170
170
171
171
173
174
174
174
174
175
175
175
175
176
181
181
182
182
186
186
187
187
189
189
189
190
190
190
191
191
191
191
191
191
191
192
192
193
194
194
206
206
206
206
208
208
208
208
209
210
210
210
210
211
211
211
211
212
215
218
218
221
223
223
224
226
226
227
227
228
228
228
228
229
229
229
229
229
229
230
230
230
231
231
232
232
233
236
238
238
238
239
241
241
241
241
244
245
245
245
245
246
246
246
246
246
247
249
249
251
251
259
259
260
261
261
261
261
261
262
262
262
262
263
263
263
263
263
263
264
264
264
266
266
266
266
267
267
276
277
277
277
277
278
278
279
279
280
281
281
281
281
282
282
282
282
282
283
285
287
293
293
294
298
299
299
300
300
300
300
301
301
301
302
302
302
303
303
303
303
304
304
306
311
311
312
312
312
312
315
316
316
316
316
317
317
317
317
318
321
321
321
321
326
330
331
331
331
331
332
332
332
332
332
333
333
333
333
334
334
334
334
334
334
335
337
337
337
337
341
344
346
348
348
348
348
349
349
351
351
352
352
352
352
352
353
353
353
353
354
362
362
367
367
368
369
369
370
370
372
372
373
373
374
374
375
375
380
380
383
386
388
389
391
392
392
405
406
406
406
407
407
407
408
409
409
409
409
411
411
412
412
412
412
415
430
432
434
434
434
434
435
444
444
445
449
449
450
450
450
452
454
455
462
464
465
474
475
475
476
478
478
479
479
479
480
480
480
480
483
483
483
483
493
493
500
502
502
504
505
505
513
515
515
516
516
518
518
519
519
519
519
520
520
520
521
521
521
521
528
539
544
544
547
547
547
547
551
553
553
554
555
555
555
555
557
558
558
558
558
565
567
568
575
577
578
583
588
588
588
588
590
591
595
595
596
596
601
606
606
606
606
615
617
618
618
622
622
624
624
625
625
626
626
626
626
627
629
629
629
629
640
643
645
659
661
661
662
663
664
664
665
665
666
666
667
667
668
668
687
689
692
697
699
699
700
701
701
701
701
704
704
704
704
707
709
712
731
736
736
757
759
773
778
778
796
801
801
822
825
840
845
845
858
863
863
879
882
884
897
900
902
920
925
925
944
946
949
964
966
969
988
993
993
1014
1016
1030
1035
1035
1053
1058
1058
1079
1082
1097
1102
1102
1115
1120
1120
1136
1139
1141
1154
1157
1159
1177
1182
1182
1201
1203
1206
1221
1223
1226
1245
1250
1250
1271
1273
1287
1292
1292
1310
1315
1315
1336
1339
1354
1359
1359
1877
1878
1879
1
2
2
7
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
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
18
18
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
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
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
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
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
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
34
34
34
34
34
37
37
37
38
39
39
39
41
42
42
42
42
43
43
43
43
43
43
44
47
56
56
57
60
62
62
62
62
63
64
64
64
64
64
64
64
66
66
67
67
67
67
67
67
69
69
73
81
81
82
84
86
87
88
92
93
93
93
95
95
100
101
101
102
103
103
103
104
104
104
104
104
104
106
108
111
113
113
116
116
116
116
120
121
121
121
121
121
121
121
121
121
121
121
121
122
122
122
122
122
123
123
124
125
125
125
128
130
130
135
135
135
135
139
139
139
139
140
140
140
140
141
141
141
141
143
143
144
144
151
153
153
154
155
157
157
157
158
158
158
158
158
158
159
159
159
159
159
159
160
160
160
167
168
168
169
169
170
170
172
172
174
174
174
174
175
175
175
175
176
176
176
176
178
180
182
182
183
187
187
188
188
188
189
190
190
190
191
192
192
192
192
192
192
192
192
192
193
193
193
193
194
195
195
198
206
206
206
208
208
209
209
210
210
210
210
211
211
211
211
212
212
212
212
214
216
217
218
219
219
222
224
224
225
228
228
228
228
229
229
229
229
229
229
230
230
230
230
230
230
231
231
231
234
236
237
239
239
239
241
241
245
245
245
245
246
246
246
246
247
247
247
247
247
247
248
248
248
250
250
252
252
254
256
258
260
260
260
261
261
262
262
262
263
263
263
263
263
263
263
264
264
264
264
265
265
265
267
267
267
267
268
268
276
277
277
278
279
280
280
281
281
281
281
282
282
282
282
283
283
283
283
283
286
288
292
292
294
294
299
299
299
299
299
300
300
300
300
300
301
301
301
301
302
302
302
304
304
305
305
307
311
312
312
312
312
316
316
316
316
317
317
317
317
318
318
318
318
319
321
321
322
322
325
327
327
329
331
331
331
332
332
332
332
332
333
333
333
334
334
334
334
334
334
335
335
335
335
336
338
338
338
338
341
347
348
348
349
350
350
352
352
352
352
352
353
353
353
353
354
354
354
354
360
361
361
361
361
363
363
368
368
369
369
370
370
371
371
375
375
376
376
376
381
381
384
387
387
389
389
389
391
392
393
393
400
404
405
405
406
407
407
407
408
408
409
412
412
412
413
413
413
413
424
431
432
433
434
434
435
435
436
440
444
445
445
446
450
450
451
451
451
453
453
454
456
456
462
463
465
471
473
474
474
474
475
475
476
476
477
479
479
480
480
480
482
484
484
484
484
489
494
494
494
501
502
503
504
505
506
506
507
514
516
516
517
517
518
518
520
520
521
521
522
522
522
522
525
537
540
545
545
545
546
547
547
548
548
550
552
553
554
554
555
557
558
559
559
559
559
566
567
569
575
576
578
584
586
587
587
587
589
589
589
589
591
592
595
596
596
597
597
602
602
607
607
607
607
615
617
617
618
619
619
621
623
623
625
625
626
626
628
630
630
630
630
641
644
644
646
646
653
660
662
662
663
664
667
667
668
668
669
669
688
690
692
693
696
698
700
700
701
705
705
705
705
708
710
710
713
713
732
737
737
751
758
760
774
779
779
797
802
802
823
826
841
846
846
859
864
864
880
883
885
898
901
901
903
903
921
926
926
945
947
950
965
967
967
970
970
989
994
994
1008
1015
1017
1031
1036
1036
1054
1059
1059
1080
1083
1098
1103
1103
1116
1121
1121
1137
1140
1142
1155
1158
1158
1160
1160
1178
1183
1183
1202
1204
1207
1222
1224
1224
1227
1227
1246
1251
1251
1265
1272
1274
1288
1293
1293
1311
1316
1316
1337
1340
1355
1360
1360
1878
1879
1880
2
2
4
5
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
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
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
19
19
19
19
19
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
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
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
26
26
26
26
26
26
26
27
27
28
28
28
28
28
28
28
28
28
30
30
30
30
30
30
30
30
30
30
30
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
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
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
37
37
37
39
40
42
42
42
42
43
43
43
43
44
44
44
44
44
44
48
55
58
59
61
63
63
63
63
64
65
65
65
65
67
68
68
68
68
69
69
69
69
69
69
81
82
82
84
84
84
84
85
87
87
87
87
88
88
88
92
92
92
93
94
94
94
101
101
101
102
102
102
104
104
104
105
105
105
105
107
109
112
114
117
117
117
117
118
121
121
121
122
122
122
122
122
122
122
123
123
123
123
123
123
124
124
124
125
126
129
129
129
129
131
131
135
138
138
140
140
140
140
141
141
142
142
142
142
142
142
144
144
145
149
152
154
154
155
155
159
159
159
160
160
160
160
160
160
161
161
161
164
168
170
170
173
173
173
173
175
175
175
175
176
176
177
177
177
177
177
177
181
184
187
188
188
188
189
189
189
189
189
191
192
193
193
193
193
193
193
193
193
193
194
194
194
194
194
194
195
195
196
196
198
209
209
209
210
210
211
211
211
211
211
212
212
213
213
213
213
213
213
214
215
217
218
219
220
220
220
223
225
225
226
230
230
230
231
231
231
231
231
231
232
232
232
235
236
237
239
239
240
240
240
244
244
246
246
246
246
247
247
247
247
247
248
248
248
248
248
248
248
248
249
249
249
253
253
256
258
259
261
261
263
263
263
264
264
264
264
264
264
264
265
265
265
265
265
265
266
266
266
266
268
268
268
268
269
276
276
279
280
280
280
282
282
282
282
283
283
283
284
284
284
284
284
284
284
287
289
293
299
300
300
301
301
302
302
302
302
302
302
303
303
303
305
305
306
306
308
311
313
313
315
315
317
317
317
317
318
318
319
319
319
319
319
319
322
323
323
327
328
329
330
332
332
333
333
333
334
334
334
335
335
335
335
335
335
336
336
336
336
336
336
337
337
339
339
339
339
344
348
348
349
350
351
351
351
352
352
353
353
353
353
353
354
354
355
355
355
355
355
355
360
360
360
361
362
362
362
362
366
369
369
369
370
371
371
372
372
376
376
377
377
377
382
385
389
389
390
390
392
393
396
405
406
407
408
409
409
410
412
413
413
413
414
414
414
414
415
415
424
432
434
435
436
436
437
440
445
446
446
447
451
451
452
452
452
457
457
462
463
465
465
466
473
473
473
474
475
475
475
476
476
478
480
480
481
481
481
482
485
485
485
485
490
495
495
499
502
502
502
504
505
506
508
509
512
515
517
517
518
518
519
522
522
523
523
523
523
525
526
528
528
537
541
546
546
548
549
549
551
553
553
555
555
556
558
559
560
560
560
560
561
565
567
570
575
576
578
578
579
585
586
586
586
587
588
588
588
590
590
592
593
595
597
597
598
598
603
603
608
608
608
615
615
618
619
622
624
624
626
626
627
627
629
631
631
631
631
642
647
647
654
658
661
663
663
664
665
668
668
669
669
670
670
689
691
694
697
699
701
701
702
706
706
706
706
709
714
714
733
738
738
752
756
759
761
775
780
780
798
803
803
818
822
824
827
842
847
847
860
865
865
881
884
886
899
904
904
922
927
927
946
948
951
966
971
971
990
995
995
1009
1013
1016
1018
1032
1037
1037
1055
1060
1060
1075
1079
1081
1084
1099
1104
1104
1117
1122
1122
1138
1141
1143
1156
1161
1161
1179
1184
1184
1203
1205
1208
1223
1228
1228
1247
1252
1252
1266
1270
1273
1275
1289
1294
1294
1312
1317
1317
1332
1336
1338
1341
1356
1361
1361
1879
1880
1881
4
5
6
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
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
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
17
17
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
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
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
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
29
29
29
29
29
29
29
29
29
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
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
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
37
38
38
40
41
41
41
43
43
43
43
44
44
45
45
45
45
45
45
53
53
59
60
62
64
64
64
64
64
65
66
66
67
67
69
69
69
69
70
70
70
70
70
70
70
70
83
85
85
85
86
88
88
88
89
89
94
95
95
95
103
103
103
103
103
105
108
109
109
113
113
113
115
118
118
118
118
118
119
119
122
122
123
123
123
123
123
123
123
123
124
124
124
124
124
125
125
125
127
130
130
132
132
134
134
135
138
139
139
140
140
142
142
142
142
142
142
142
143
143
143
143
150
153
155
155
156
158
159
160
160
161
161
161
161
162
162
164
166
169
169
169
171
171
173
174
174
174
174
175
175
177
177
177
177
177
177
178
178
178
178
178
182
185
187
188
188
189
189
190
190
190
190
190
192
194
194
194
194
194
194
194
195
195
195
195
195
196
196
197
197
205
205
208
208
209
210
210
210
211
211
213
213
213
213
213
213
214
214
214
214
216
218
218
220
221
221
221
224
224
226
226
226
227
229
230
231
231
231
232
232
232
232
232
233
233
236
240
240
240
240
241
241
241
244
245
245
246
246
248
248
248
248
248
248
249
249
249
249
249
249
250
250
250
254
254
258
259
260
261
262
262
262
264
264
264
264
265
265
265
265
265
266
266
266
266
266
267
267
267
267
268
268
269
269
269
269
270
276
276
277
277
278
278
278
280
280
281
281
282
282
284
284
284
284
284
284
284
284
284
284
285
285
285
285
285
288
290
292
294
299
300
301
301
302
302
303
303
303
303
303
304
304
306
306
307
307
309
311
311
314
314
315
316
316
317
317
319
319
319
319
319
319
320
320
320
320
321
321
323
329
329
330
331
331
332
333
333
333
334
334
334
335
335
336
336
336
336
336
337
337
337
337
337
338
338
340
340
340
340
347
347
349
349
351
352
352
352
353
353
353
353
354
355
355
355
355
355
355
356
356
356
356
362
363
363
363
367
370
370
370
371
372
372
372
373
373
377
377
377
377
378
378
381
381
383
386
390
390
391
391
391
391
391
393
397
397
397
397
405
406
407
408
408
409
410
410
411
411
412
414
414
415
415
415
415
416
416
433
434
434
435
436
438
444
446
447
447
448
452
452
453
453
453
458
458
466
466
467
475
476
476
476
477
477
479
479
481
481
482
482
482
482
486
486
486
486
490
490
494
494
496
500
503
503
503
504
504
504
505
506
510
510
510
510
513
516
516
518
518
518
518
519
519
520
523
523
524
524
524
524
525
529
529
542
547
547
547
547
549
552
554
554
556
556
557
557
557
559
560
561
561
561
561
566
568
571
579
579
580
586
588
589
589
589
591
591
593
594
598
598
599
599
603
603
604
607
607
609
609
609
616
616
617
617
617
619
623
625
625
625
627
627
628
628
628
630
632
632
632
632
643
648
648
659
662
662
664
664
664
665
666
669
669
670
670
671
671
690
692
695
698
700
700
702
702
703
703
707
707
707
707
710
715
715
734
739
739
757
760
762
776
781
781
799
804
804
823
825
828
843
848
848
861
866
866
882
885
887
900
905
905
923
928
928
947
949
952
967
972
972
991
996
996
1014
1017
1019
1033
1038
1038
1056
1061
1061
1080
1082
1085
1100
1105
1105
1118
1123
1123
1139
1142
1144
1157
1162
1162
1180
1185
1185
1204
1206
1209
1224
1229
1229
1248
1253
1253
1271
1274
1276
1290
1295
1295
1313
1318
1318
1337
1339
1342
1357
1362
1362
1880
1881
1882
1
6
7
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
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
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
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
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
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
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
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
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
31
31
31
32
32
32
32
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
34
34
34
34
35
35
35
35
35
35
35
35
35
36
37
37
37
41
41
42
42
42
43
43
45
45
45
45
45
45
46
46
46
46
54
54
54
54
60
61
63
63
64
65
65
65
65
66
66
67
68
68
70
70
70
70
70
70
70
70
71
71
71
71
84
86
86
86
86
87
88
88
88
88
89
89
89
89
89
89
90
93
95
96
96
103
103
103
104
106
109
114
114
114
116
118
119
119
119
119
119
119
119
119
120
121
121
121
121
122
123
123
123
123
124
124
124
124
124
124
124
124
124
125
125
126
126
128
130
133
133
134
138
138
139
139
140
140
140
140
142
142
143
143
144
144
144
144
151
154
155
155
156
156
157
159
159
159
159
160
160
160
160
161
162
167
169
170
172
173
173
174
175
175
175
175
175
175
177
177
178
178
178
179
179
179
179
179
180
186
187
188
189
189
190
190
190
190
190
191
191
191
191
191
191
193
193
194
194
194
194
195
195
195
195
195
195
195
196
196
197
197
198
198
198
198
205
209
209
209
210
211
211
211
211
213
213
214
214
214
215
215
215
215
217
219
219
221
221
222
222
227
227
227
228
230
230
231
231
232
232
233
233
237
240
241
241
242
242
244
244
245
246
246
246
246
248
248
248
249
249
250
250
250
250
250
250
251
251
255
255
258
259
261
261
261
261
262
263
264
265
265
265
265
265
265
266
266
266
266
266
267
267
268
268
268
268
269
269
270
270
270
270
271
276
279
279
279
279
280
280
281
282
282
282
282
284
284
285
285
285
285
286
286
286
286
286
289
289
291
291
292
292
293
300
301
301
302
302
302
302
303
304
304
304
307
307
308
308
310
311
311
311
315
315
315
315
316
317
317
317
317
319
319
320
320
321
321
321
321
322
327
329
330
330
332
332
332
332
332
333
334
334
335
335
335
336
336
336
336
336
336
337
337
337
337
337
338
338
339
339
341
341
341
341
347
350
350
351
351
352
353
353
353
353
353
354
354
355
355
356
356
357
357
357
357
361
363
364
364
368
372
373
373
373
374
374
378
378
379
379
382
382
384
387
392
392
392
392
392
392
398
398
405
405
406
407
410
411
411
412
412
413
415
415
415
416
416
416
416
417
417
417
424
424
434
435
436
439
440
445
447
447
448
449
453
453
454
454
454
459
459
467
467
474
476
477
477
478
478
482
482
483
483
483
483
487
487
487
487
495
495
497
501
504
505
505
505
505
506
511
511
514
518
518
519
519
519
519
520
520
524
524
525
525
525
525
526
528
530
530
530
537
537
543
548
548
548
553
553
557
557
558
558
558
560
560
562
562
562
562
567
569
572
580
580
587
587
589
590
590
592
592
594
595
599
599
600
600
605
608
608
610
610
610
618
618
618
618
624
628
628
629
629
629
631
633
633
633
633
644
649
649
660
665
665
665
666
667
670
670
671
671
672
672
691
693
696
699
703
703
704
704
708
708
708
708
711
716
716
735
740
740
758
761
763
777
782
782
800
805
805
824
826
829
844
849
849
862
867
867
886
888
901
906
906
924
929
929
948
950
953
968
973
973
992
997
997
1015
1018
1020
1034
1039
1039
1057
1062
1062
1081
1083
1086
1101
1106
1106
1119
1124
1124
1143
1145
1158
1163
1163
1181
1186
1186
1205
1207
1210
1225
1230
1230
1249
1254
1254
1272
1275
1277
1291
1296
1296
1314
1319
1319
1338
1340
1343
1358
1363
1363
1881
1882
1883
1
1
1
5
5
7
8
8
8
8
8
8
8
8
8
8
8
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
13
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
17
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
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
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
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
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
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
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
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
37
37
38
38
38
41
41
42
42
42
43
43
43
43
43
43
44
45
45
46
46
47
47
47
47
48
54
54
55
55
56
61
62
64
65
66
66
66
66
67
67
67
67
67
70
70
71
71
71
71
71
71
72
72
72
72
84
85
87
87
88
89
89
90
90
90
90
91
94
94
101
103
104
104
105
105
105
107
107
110
110
113
115
115
115
119
120
120
120
120
120
120
120
121
121
122
122
122
122
122
123
123
123
123
124
124
124
124
125
125
125
125
125
125
125
129
130
134
139
139
139
140
140
140
140
140
140
141
141
141
142
142
143
143
144
144
152
153
155
156
156
157
157
158
160
161
162
163
167
167
171
171
171
171
173
174
174
175
175
175
175
175
176
176
176
176
176
178
178
179
179
179
180
180
181
187
189
190
190
191
191
191
191
191
191
192
192
192
192
193
193
193
194
194
194
194
194
195
195
195
195
196
196
196
196
196
196
196
196
199
199
199
208
208
210
210
210
211
211
211
211
211
212
212
212
214
214
215
215
218
218
220
220
223
223
228
228
228
229
233
233
234
234
238
239
243
243
245
245
246
246
246
246
246
247
247
247
249
249
249
249
250
250
251
256
256
261
262
262
262
262
262
263
263
264
264
264
264
265
265
265
265
266
266
266
266
266
266
267
267
267
267
267
268
269
269
270
270
271
271
271
271
280
280
281
281
282
282
282
282
282
283
283
283
285
285
285
286
286
287
291
292
292
292
293
294
302
303
303
304
308
308
309
309
309
311
312
312
316
316
316
316
317
317
317
317
317
318
318
318
320
320
321
321
321
321
323
331
331
332
333
333
333
333
333
333
334
334
335
335
335
336
336
336
336
336
336
337
337
337
337
337
337
338
338
338
338
338
342
342
342
342
351
351
352
352
352
353
353
353
353
353
354
354
354
354
356
356
357
357
362
362
369
373
374
374
374
375
375
379
379
380
380
381
383
383
388
393
393
393
393
398
404
405
406
407
408
411
412
412
413
413
415
416
416
416
417
417
417
417
422
425
425
434
434
435
436
437
440
444
446
449
450
454
454
455
455
455
460
460
465
475
475
479
479
483
483
484
484
484
488
488
488
488
494
496
496
502
505
506
506
507
511
515
517
518
519
520
520
520
520
521
521
525
525
526
526
526
526
528
529
535
538
538
544
547
547
549
549
554
557
558
558
559
559
559
563
563
563
563
568
570
573
578
588
588
588
593
593
595
596
600
600
601
601
606
607
609
609
611
611
619
619
625
629
629
630
630
630
632
634
634
634
634
645
650
650
661
666
666
666
667
668
671
671
672
672
673
673
692
694
697
700
704
704
705
705
709
709
709
709
712
717
717
736
741
759
762
764
778
783
783
801
806
825
827
830
845
850
850
863
868
868
887
889
902
907
907
925
930
930
949
951
954
969
974
974
993
998
1016
1019
1021
1035
1040
1040
1058
1063
1082
1084
1087
1102
1107
1107
1120
1125
1125
1144
1146
1159
1164
1164
1182
1187
1187
1206
1208
1211
1226
1231
1231
1250
1255
1273
1276
1278
1292
1297
1297
1315
1320
1339
1341
1344
1359
1364
1364
1882
1883
1884
4
4
5
5
7
8
8
8
8
8
8
8
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
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
15
15
15
15
15
15
15
15
15
15
15
15
15
16
17
17
19
19
19
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
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
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
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
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
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
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
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
37
37
38
39
39
39
42
42
43
44
44
44
44
44
44
46
46
47
47
55
56
56
56
62
63
65
65
66
67
67
67
67
68
68
68
68
68
68
70
70
70
70
70
70
71
71
72
72
72
72
72
72
72
81
86
88
88
88
88
89
89
89
90
90
91
91
91
99
102
102
105
105
105
105
105
105
106
111
111
113
116
121
121
121
121
121
121
122
122
123
123
124
125
125
125
125
125
126
126
126
126
126
130
133
133
135
139
139
141
141
141
141
141
141
141
142
142
142
142
142
142
142
142
143
143
144
144
153
154
154
156
156
158
158
158
159
161
161
161
161
162
162
162
162
163
164
171
172
172
172
174
174
176
176
176
176
176
176
176
177
177
177
177
177
177
177
177
177
177
179
179
181
181
182
188
190
190
191
191
192
192
192
192
192
193
193
193
193
195
195
196
196
196
196
197
197
197
197
197
197
197
200
208
208
209
209
210
212
212
212
212
212
212
212
213
213
213
213
213
213
213
213
215
215
219
219
219
221
221
221
224
224
227
229
229
229
230
232
232
232
233
233
233
234
234
235
235
236
239
244
244
245
247
247
247
247
247
247
247
248
248
248
248
248
248
248
248
250
250
252
254
257
257
263
263
263
263
264
264
265
266
267
267
267
267
267
267
268
268
268
268
268
268
270
270
272
272
272
272
280
281
283
283
283
283
283
283
283
284
284
284
284
284
284
284
284
285
286
286
288
292
293
293
294
295
303
303
303
303
303
304
304
304
304
304
304
305
309
309
310
310
310
310
312
316
317
317
318
318
318
318
318
318
318
319
319
319
319
319
319
319
319
321
321
321
321
322
322
332
332
332
334
334
334
334
334
334
335
335
337
337
338
338
338
338
338
338
339
339
339
339
339
340
343
343
343
343
349
352
352
352
354
354
354
354
354
354
354
355
355
355
355
355
355
355
355
355
357
357
367
370
374
375
375
375
376
376
380
380
381
381
381
389
393
394
394
398
405
407
408
409
412
413
413
414
414
416
416
417
417
417
417
418
418
418
418
423
423
434
434
435
435
438
441
445
445
447
447
450
451
453
455
455
456
456
456
461
461
462
480
480
480
483
483
484
484
485
485
485
489
489
489
489
494
503
506
506
506
508
508
511
516
518
520
521
521
521
521
522
522
526
526
527
527
527
527
529
529
530
530
536
536
545
547
547
548
548
550
555
558
558
559
559
560
560
560
560
564
564
564
564
566
569
571
574
575
589
593
594
594
596
597
601
601
602
602
607
607
612
612
619
626
630
630
631
631
631
633
635
635
635
635
646
651
651
662
667
667
667
668
669
672
672
673
673
674
674
695
698
701
705
705
706
706
710
710
710
710
713
718
718
737
740
740
742
760
763
763
765
765
779
784
784
802
807
826
828
831
846
851
851
864
869
869
888
890
903
908
908
926
931
931
952
955
970
975
975
994
997
997
999
1017
1020
1020
1022
1022
1036
1041
1041
1059
1064
1083
1085
1088
1103
1108
1108
1121
1126
1126
1145
1147
1160
1165
1165
1183
1188
1188
1209
1212
1227
1232
1232
1251
1254
1254
1256
1274
1277
1277
1279
1279
1293
1298
1298
1316
1321
1340
1342
1345
1360
1365
1365
1883
1884
1885
1
5
8
8
9
9
9
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
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
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
15
17
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
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
25
25
25
25
25
25
25
25
25
25
25
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
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
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
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
34
34
34
34
35
35
35
35
35
36
36
40
40
40
42
44
44
44
45
45
45
45
47
47
54
54
56
63
64
64
66
66
67
68
68
68
68
68
68
68
68
69
69
69
69
71
71
72
72
73
73
73
73
73
73
73
81
82
84
84
87
87
87
88
88
88
89
89
89
89
90
90
92
96
100
103
103
106
106
106
106
106
106
106
106
107
109
112
112
113
114
117
119
119
120
121
121
121
122
122
122
123
123
123
124
124
124
125
125
126
126
126
127
127
127
127
131
134
136
139
140
141
142
142
143
143
143
143
143
143
143
143
143
143
144
144
144
154
159
159
159
159
160
160
161
162
162
162
162
162
163
163
163
164
165
167
172
173
173
173
174
176
177
178
178
178
178
178
178
178
178
178
178
178
178
181
182
182
189
191
192
192
192
192
192
193
193
194
194
194
194
194
195
196
196
197
197
197
198
198
198
198
198
198
201
210
210
210
212
213
214
214
214
214
214
214
214
214
214
214
219
220
221
222
222
222
222
225
225
225
228
228
228
230
230
230
230
231
231
232
233
233
233
234
234
235
235
236
236
236
237
239
239
240
245
245
245
247
248
249
249
249
249
249
249
249
249
249
249
251
253
255
258
258
262
263
263
263
264
264
265
265
265
266
266
267
268
268
268
268
268
268
269
269
269
269
269
271
273
273
273
273
280
281
283
284
285
285
285
285
285
285
285
285
285
285
289
292
293
294
294
295
301
302
303
304
304
304
305
305
305
305
305
306
310
310
311
311
313
316
318
318
318
319
320
320
320
320
320
320
320
320
320
320
323
323
332
333
333
334
334
334
334
335
335
335
336
336
336
337
338
338
339
339
339
339
339
340
340
340
340
341
341
341
344
344
344
344
349
350
352
352
352
353
353
354
355
356
356
356
356
356
356
356
356
356
356
356
364
368
370
371
375
376
376
376
377
377
377
381
381
381
382
382
382
390
393
395
395
405
406
408
410
413
414
414
415
415
418
418
418
418
419
419
419
419
436
436
439
442
445
447
448
448
451
452
454
454
454
456
456
457
457
457
462
462
462
463
465
465
477
481
481
481
484
485
485
486
486
486
490
490
490
490
490
494
495
504
506
509
509
517
518
519
521
522
522
522
523
523
527
527
528
528
528
528
531
531
546
548
548
549
549
551
556
558
560
560
560
561
561
561
561
565
565
565
565
567
567
567
570
572
572
575
575
575
576
578
578
590
590
594
595
595
597
598
602
602
603
603
603
607
608
608
613
613
619
625
627
631
631
632
632
632
634
636
636
636
636
647
652
652
663
668
668
668
669
670
673
673
674
674
675
675
696
699
702
706
706
707
707
711
711
711
711
714
719
719
738
741
743
761
766
766
780
785
785
803
805
805
808
827
829
829
832
832
847
852
852
865
870
870
882
889
891
904
909
909
927
932
932
953
956
971
976
976
995
998
1000
1018
1023
1023
1037
1042
1042
1060
1062
1062
1065
1084
1086
1086
1089
1089
1104
1109
1109
1122
1127
1127
1139
1146
1148
1161
1166
1166
1184
1189
1189
1210
1213
1228
1233
1233
1252
1255
1257
1275
1280
1280
1294
1299
1299
1317
1319
1319
1322
1341
1343
1343
1346
1346
1361
1366
1366
1884
1884
1886
4
6
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
11
11
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
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
16
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
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
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
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
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
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
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
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
35
35
35
36
36
37
37
38
41
42
44
44
44
45
46
46
46
46
55
56
64
65
65
67
67
68
68
68
69
69
69
69
69
70
70
70
70
70
70
72
72
73
73
74
74
74
74
74
74
81
85
85
88
88
88
89
89
90
90
90
91
91
93
96
101
101
104
104
104
106
106
106
106
107
107
107
107
108
109
113
113
114
115
118
120
120
120
120
121
122
122
122
123
123
123
124
124
125
125
125
125
128
128
129
132
134
135
137
139
139
142
142
143
143
144
144
144
144
155
156
160
160
160
160
160
161
161
161
163
163
164
165
166
173
174
174
174
177
178
179
179
179
179
179
179
181
182
182
182
183
190
190
191
191
191
191
191
191
192
193
193
193
193
193
194
194
195
195
195
195
196
196
196
196
196
196
197
199
199
199
199
202
206
210
210
211
211
213
214
215
215
215
215
219
221
221
222
223
223
226
226
226
229
229
231
231
231
231
231
232
232
232
236
236
236
237
237
240
240
241
245
245
246
246
248
249
250
250
250
250
251
254
256
256
259
259
262
262
262
263
264
264
264
264
265
266
266
267
267
267
269
269
269
270
270
270
270
270
272
274
274
274
274
281
281
284
285
286
286
286
286
290
292
293
295
295
295
295
296
302
302
303
303
303
304
304
304
306
306
306
307
311
311
312
312
312
314
316
316
319
319
319
319
320
321
321
321
321
324
324
332
333
333
333
334
334
334
335
335
335
335
336
336
336
336
336
337
337
338
338
339
340
340
341
341
342
342
345
345
345
345
349
352
352
353
353
354
354
355
356
357
357
357
357
357
364
369
369
371
372
373
376
377
377
377
377
378
378
382
382
382
383
383
383
391
396
396
405
406
408
408
409
411
414
415
415
416
416
416
417
417
417
419
419
419
419
420
420
420
420
425
432
437
437
440
443
445
447
448
449
449
452
453
455
455
457
457
458
458
458
462
463
463
466
466
477
482
482
482
482
485
486
486
487
487
487
490
491
491
491
491
495
496
505
510
510
518
518
519
521
521
522
523
523
523
524
524
528
528
529
529
529
529
529
530
530
530
532
532
538
545
547
549
550
550
552
557
558
560
561
561
561
562
562
562
562
566
566
566
566
568
568
571
575
576
576
579
579
590
591
595
595
596
596
598
599
603
603
603
604
604
608
609
609
614
614
626
628
630
632
632
633
633
633
635
637
637
637
637
648
653
653
664
669
669
669
670
671
674
674
675
675
676
676
697
700
703
707
707
708
708
712
712
712
712
715
720
720
739
742
744
762
767
767
781
786
786
791
804
806
809
828
833
833
848
853
853
866
871
871
883
887
890
892
905
910
910
928
933
933
954
957
972
977
977
996
999
1001
1019
1024
1024
1038
1043
1043
1061
1063
1066
1085
1090
1090
1105
1110
1110
1123
1128
1128
1140
1144
1147
1149
1162
1167
1167
1185
1190
1190
1211
1214
1229
1234
1234
1253
1256
1258
1276
1281
1281
1295
1300
1300
1318
1320
1323
1342
1347
1347
1362
1367
1367
1884
1885
1885
1887
5
7
7
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
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
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
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
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
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
26
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
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
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
33
33
33
33
33
33
33
35
35
35
37
37
38
38
38
40
42
43
43
43
43
45
45
45
46
47
47
54
54
56
64
65
66
66
68
68
68
69
69
69
70
70
70
70
70
70
70
71
71
71
71
73
74
74
74
74
74
74
75
75
75
75
75
82
84
86
86
86
88
88
89
89
89
89
89
90
90
91
91
92
94
102
102
102
102
104
104
104
106
106
107
107
108
108
108
108
109
113
114
114
115
116
119
121
122
123
123
123
124
126
126
129
129
130
130
130
130
133
135
135
135
136
138
140
140
141
141
141
143
143
143
144
144
144
144
156
156
161
161
164
164
164
165
166
167
171
174
175
175
175
176
176
176
178
179
179
180
180
183
183
184
190
190
190
191
191
192
192
192
193
194
194
194
195
195
196
197
197
198
199
200
200
200
203
207
211
211
212
212
212
212
214
215
215
219
219
222
222
223
227
227
227
228
229
229
229
229
230
232
232
232
233
237
237
237
238
238
239
241
241
241
242
246
246
247
247
247
247
247
249
250
250
255
257
257
257
257
260
260
264
265
265
265
266
268
268
270
270
270
271
271
271
271
273
275
275
275
275
282
282
283
283
283
285
286
286
291
296
296
296
296
297
303
303
303
304
305
305
305
307
308
312
312
312
313
313
315
317
317
318
318
318
320
320
320
320
321
321
325
332
332
335
335
335
336
336
336
336
337
337
340
341
341
341
342
342
342
342
342
342
343
346
346
346
346
350
352
353
353
354
354
354
354
354
354
355
355
356
357
357
358
370
370
370
370
373
374
377
378
378
378
379
379
381
383
383
383
384
384
384
392
397
397
409
409
410
412
415
416
416
416
416
416
417
417
417
418
418
418
420
420
421
421
421
421
425
433
435
438
439
441
444
445
445
448
449
453
454
454
455
455
455
455
456
458
458
459
459
459
463
464
464
465
467
467
467
483
483
483
483
483
483
486
487
487
488
488
488
492
492
492
492
494
496
497
506
511
511
519
522
522
523
524
524
524
525
525
529
529
529
529
529
530
530
530
530
530
531
531
531
538
546
548
550
551
553
558
558
558
561
562
562
562
563
563
567
567
567
567
567
568
568
568
568
569
572
576
577
577
578
580
580
580
592
596
596
596
596
597
597
599
600
604
604
605
605
607
609
610
610
615
615
629
631
633
633
634
634
634
636
638
638
638
638
649
654
654
665
670
670
670
671
672
675
675
676
676
677
677
692
696
698
701
704
708
708
709
709
713
713
713
713
716
721
721
740
743
745
763
768
768
782
787
787
792
805
807
810
829
834
834
849
854
854
867
872
872
888
891
893
906
911
911
929
934
934
949
953
955
958
973
978
978
997
1000
1002
1020
1025
1025
1039
1044
1044
1062
1064
1067
1086
1091
1091
1106
1111
1111
1124
1129
1129
1145
1148
1150
1163
1168
1168
1186
1191
1191
1206
1210
1212
1215
1230
1235
1235
1254
1257
1259
1277
1282
1282
1296
1301
1301
1319
1321
1324
1343
1348
1348
1363
1368
1368
1886
1886
1888
5
5
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
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
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
18
18
19
19
19
19
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
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
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
26
26
26
26
26
26
26
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
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
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
37
37
37
37
38
38
39
39
39
39
40
43
44
44
44
44
45
45
45
45
45
45
46
48
48
54
54
55
55
65
65
66
66
67
67
67
69
69
69
69
69
70
71
71
71
71
72
72
72
72
73
73
73
73
75
75
75
75
76
76
76
76
76
84
85
88
89
89
90
90
91
91
91
92
92
92
92
93
95
96
96
100
102
102
102
103
103
105
105
105
105
106
106
106
106
106
106
107
107
108
108
109
110
114
115
115
116
116
120
121
122
123
124
124
124
125
126
126
126
127
127
127
127
127
130
130
131
131
134
136
136
137
139
142
142
142
142
143
143
144
144
145
145
157
162
162
162
162
162
163
163
163
165
165
165
165
165
166
167
167
168
171
172
176
177
177
177
177
178
178
179
179
181
181
184
184
192
192
192
193
193
193
194
195
195
196
196
197
197
197
197
198
198
198
198
198
199
201
201
201
204
207
207
211
211
213
213
213
213
213
214
214
215
215
220
220
221
221
221
223
223
228
228
228
230
230
231
233
233
233
233
233
233
234
234
234
234
238
238
239
239
239
240
243
248
248
248
248
248
248
249
249
250
250
251
251
255
256
257
257
258
258
261
261
263
264
265
266
266
267
268
268
268
269
269
269
269
269
271
271
271
271
272
272
272
274
276
276
276
276
279
284
284
284
284
285
285
286
286
292
297
297
297
297
304
304
304
305
305
305
305
306
306
306
308
309
313
313
314
314
316
319
319
319
319
320
320
320
320
321
321
321
321
324
324
326
333
333
334
334
334
334
336
336
336
337
337
338
338
339
339
339
340
340
340
341
342
342
343
343
343
343
344
347
347
347
347
352
353
355
355
355
355
356
356
356
357
357
359
364
364
368
370
370
371
371
374
375
377
378
379
379
379
380
380
382
384
384
384
384
385
385
392
393
398
398
410
410
413
416
417
417
418
418
418
419
419
419
421
421
422
422
422
422
433
433
437
437
439
440
442
445
446
446
447
447
447
449
454
455
456
456
457
459
459
460
460
460
465
465
465
466
477
477
481
483
483
484
484
484
484
487
488
488
489
489
489
490
493
493
493
493
495
497
497
505
507
512
512
520
523
523
525
525
525
526
526
530
530
531
531
531
531
531
532
532
532
546
546
549
550
550
551
552
554
559
559
559
560
560
560
562
563
563
564
564
568
568
568
568
569
569
570
573
578
578
578
579
590
590
593
594
596
596
597
597
598
598
600
601
603
605
605
606
606
608
610
610
611
616
618
630
632
634
634
635
635
635
637
639
639
639
639
650
655
655
666
671
671
671
672
673
676
676
677
677
678
678
697
699
702
705
709
709
710
710
714
714
714
714
717
722
722
741
744
746
764
769
769
783
788
788
792
792
806
808
811
830
835
835
850
855
855
868
873
889
892
894
907
912
912
930
935
935
954
956
959
974
979
979
998
1001
1003
1021
1026
1026
1040
1045
1045
1063
1065
1068
1087
1092
1092
1107
1112
1112
1125
1130
1146
1149
1151
1164
1169
1169
1187
1192
1192
1211
1213
1216
1231
1236
1236
1255
1258
1260
1278
1283
1283
1297
1302
1302
1320
1322
1325
1344
1349
1349
1364
1369
1369
1887
1887
1889
4
5
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
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
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
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
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
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
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
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
38
38
39
39
40
40
44
46
46
46
46
46
46
46
46
49
49
56
56
65
66
67
67
68
68
68
68
70
71
72
72
72
72
73
73
73
73
74
74
74
74
74
74
76
76
76
76
77
77
77
77
85
85
86
86
91
92
92
92
93
93
93
93
94
94
96
97
97
103
103
104
104
104
104
105
105
106
106
107
107
108
108
111
113
115
116
116
121
122
122
123
124
125
125
125
125
125
126
126
127
127
127
128
128
128
128
131
131
131
135
135
136
136
136
136
137
138
140
143
143
143
144
144
144
144
144
144
144
144
144
144
144
146
146
156
156
158
160
161
162
163
163
163
163
163
163
164
164
165
165
166
166
166
167
167
168
169
172
173
177
178
178
179
179
179
179
179
179
179
179
182
182
182
191
193
193
193
193
194
194
195
195
195
196
197
197
197
198
198
198
198
199
199
199
199
200
202
202
202
205
212
212
214
214
214
215
215
215
215
215
215
215
215
222
222
222
222
224
229
229
229
229
229
231
231
231
232
233
234
234
234
234
234
234
235
235
235
239
239
240
240
240
240
241
241
244
249
249
249
249
249
250
250
250
250
250
250
250
250
252
252
257
258
259
259
262
262
264
264
266
267
268
268
268
269
269
269
270
270
270
270
272
272
273
273
273
275
277
277
277
277
280
280
280
280
284
285
285
286
286
286
286
286
286
286
286
293
295
298
298
302
303
304
304
305
305
305
306
306
306
307
307
309
310
314
314
315
315
317
320
320
321
321
321
321
321
321
321
321
322
322
325
325
327
335
335
335
335
335
335
337
337
338
339
339
339
340
340
340
341
341
342
342
342
343
343
344
344
344
344
348
348
348
348
353
353
354
354
355
356
356
357
357
357
357
357
357
357
357
357
358
360
362
365
365
371
372
372
375
376
379
380
380
380
381
381
381
383
385
385
386
386
393
393
393
393
394
397
399
399
408
414
417
417
418
418
419
419
419
420
420
422
422
423
423
423
423
438
438
440
441
443
446
448
448
448
448
455
455
455
456
457
457
460
460
461
461
461
466
466
466
466
467
467
475
478
478
484
485
485
485
485
488
489
489
490
490
490
494
494
494
494
494
496
506
506
506
506
508
510
513
513
521
521
526
526
526
527
527
530
531
531
532
532
532
532
532
533
533
550
551
551
552
553
555
560
561
561
561
561
564
564
565
565
568
568
569
569
569
569
570
570
574
579
579
579
579
580
580
588
591
591
594
597
598
598
599
599
601
602
606
606
607
607
607
609
612
615
615
617
619
619
619
619
631
633
635
635
636
636
636
638
640
640
640
640
651
656
656
667
672
672
672
673
674
677
677
678
678
679
679
698
700
703
706
710
710
711
711
715
715
715
715
718
723
723
742
745
747
765
770
770
784
789
789
792
793
793
807
809
812
831
836
836
851
856
856
869
872
872
874
890
893
895
908
913
913
931
936
936
955
957
960
975
980
980
999
1002
1004
1022
1027
1027
1041
1046
1046
1064
1066
1069
1088
1093
1093
1108
1113
1113
1126
1129
1129
1131
1147
1150
1152
1165
1170
1170
1188
1193
1193
1212
1214
1217
1232
1237
1237
1256
1259
1261
1279
1284
1284
1298
1303
1303
1321
1323
1326
1345
1350
1350
1365
1370
1370
1888
1888
1890
5
5
5
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
9
9
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
11
11
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
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
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
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
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
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
28
28
29
30
30
30
30
30
30
30
30
30
30
31
31
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
35
35
35
35
36
36
36
37
37
37
37
39
39
40
40
41
41
42
42
45
45
47
47
47
47
48
50
50
57
57
65
67
67
68
68
68
69
69
69
69
72
73
73
73
73
74
74
75
75
75
75
75
78
78
78
78
87
87
93
93
94
94
94
95
95
97
102
102
104
104
104
105
106
106
106
107
107
108
108
109
109
112
114
114
116
116
117
117
123
123
124
125
125
126
126
126
126
127
127
127
129
129
131
132
132
136
137
137
138
139
141
143
143
143
143
144
145
145
145
145
145
145
145
154
157
157
159
160
161
161
161
162
162
164
164
166
167
167
167
168
169
170
171
173
174
178
178
180
180
180
180
181
183
183
192
192
194
196
196
196
197
197
198
198
199
200
200
201
203
203
203
206
211
213
213
214
216
216
216
216
223
223
225
230
230
230
230
232
232
233
233
235
235
235
236
240
240
241
241
242
242
245
249
250
250
250
250
251
251
251
251
257
257
258
259
263
263
267
267
268
268
269
269
269
271
271
271
273
273
274
274
274
276
278
278
278
278
281
281
285
285
285
285
287
287
287
287
292
294
299
299
303
303
304
304
305
305
310
311
315
315
316
316
318
320
322
322
322
322
323
323
324
326
326
336
336
338
338
338
339
339
340
340
343
343
344
344
345
345
349
349
349
349
355
355
356
358
358
358
358
358
359
361
363
363
370
370
372
376
377
380
380
381
381
381
382
382
382
382
382
384
384
386
386
387
387
394
394
395
398
398
398
400
400
405
415
418
418
418
419
419
420
420
423
424
424
424
424
437
439
439
442
444
447
449
449
456
456
457
461
461
462
462
462
467
467
468
468
476
476
483
483
485
486
486
489
490
490
491
491
491
495
495
495
495
495
495
497
497
507
507
509
511
511
511
514
514
518
522
527
527
527
528
528
531
531
532
532
533
533
533
533
550
551
552
552
553
556
561
562
562
565
565
566
566
569
570
570
570
570
575
580
580
581
581
589
589
595
596
596
598
600
600
602
603
607
607
608
608
608
608
610
610
613
616
618
620
620
632
634
636
636
637
637
637
637
639
639
641
641
641
641
652
657
657
668
673
673
673
674
675
678
678
679
679
680
699
701
704
707
711
711
712
712
716
716
716
716
719
724
724
743
746
748
766
771
771
785
790
790
793
793
794
808
810
813
832
837
837
852
857
857
870
873
875
891
894
894
896
896
909
914
914
932
937
956
958
961
976
981
981
1000
1003
1005
1023
1028
1028
1042
1047
1047
1065
1067
1070
1089
1094
1094
1109
1114
1114
1127
1130
1132
1148
1151
1151
1153
1153
1166
1171
1171
1189
1194
1213
1215
1218
1233
1238
1238
1257
1260
1262
1280
1285
1285
1299
1304
1304
1322
1324
1327
1346
1351
1351
1366
1371
1371
1889
1889
1891
5
5
5
5
5
5
5
5
5
5
5
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
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
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
14
14
14
14
14
14
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
16
16
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
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
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
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
25
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
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
30
30
30
30
30
31
31
31
32
33
33
33
33
33
33
33
33
33
34
35
36
36
36
36
37
37
37
37
37
37
37
38
38
38
41
41
42
42
43
43
44
44
44
45
46
47
47
49
51
51
58
67
67
68
69
69
70
70
71
71
73
73
73
73
73
74
74
74
74
74
75
75
76
79
79
79
79
85
86
86
86
88
88
88
89
89
93
95
98
103
105
105
105
105
105
106
106
106
107
107
107
110
110
113
114
116
117
117
118
118
124
124
124
125
126
128
128
128
130
130
133
133
136
136
137
138
138
140
142
142
143
145
145
145
146
146
146
155
155
160
161
162
165
165
165
165
165
166
167
168
169
170
171
172
174
177
178
179
180
180
181
182
182
182
184
184
195
195
195
195
197
197
200
201
201
202
204
204
204
207
211
213
214
216
216
223
226
229
231
231
231
231
236
236
236
237
240
241
241
241
241
241
242
242
243
243
246
248
249
251
251
251
251
258
259
264
264
266
266
266
269
270
271
272
272
272
274
274
275
275
275
277
279
279
279
279
281
284
285
286
286
287
287
292
293
295
295
295
300
300
310
311
312
316
316
317
317
319
319
320
322
322
324
324
324
336
337
337
337
339
341
341
342
344
344
345
345
346
346
350
350
350
350
353
354
354
354
355
356
356
356
358
358
359
360
362
371
377
378
382
382
382
382
383
383
383
384
385
385
387
387
388
388
394
396
399
399
401
401
405
406
408
408
416
419
420
420
421
421
423
424
425
425
425
425
437
443
445
448
449
455
457
457
458
462
462
463
463
463
466
467
467
467
468
468
469
469
484
487
487
490
491
491
492
492
492
495
496
496
496
496
497
498
498
507
510
512
512
515
515
518
519
521
521
523
528
528
528
529
529
533
533
534
534
534
534
536
550
552
554
557
562
562
566
566
567
567
568
570
571
571
571
571
576
579
580
580
580
581
581
582
582
596
597
601
601
603
604
608
608
608
609
609
610
611
611
614
617
619
620
633
635
637
637
638
638
640
640
642
642
642
642
653
658
658
669
674
674
674
675
676
679
679
680
680
681
700
702
705
708
712
712
713
713
717
717
717
717
720
725
725
744
747
749
767
772
772
786
791
791
793
793
794
795
809
811
814
833
838
838
853
858
858
871
874
876
892
897
897
910
915
915
933
938
957
959
962
977
982
982
1001
1004
1006
1024
1029
1029
1043
1048
1048
1066
1068
1071
1090
1095
1095
1110
1115
1115
1128
1131
1133
1149
1154
1154
1167
1172
1172
1190
1195
1214
1216
1219
1234
1239
1239
1258
1261
1263
1281
1286
1286
1300
1305
1305
1323
1325
1328
1347
1352
1352
1367
1372
1372
1890
1890
1892
5
5
5
5
5
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
11
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
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
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
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
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
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
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
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
30
30
31
31
32
32
35
36
37
37
37
37
38
38
39
39
39
42
42
43
43
45
45
45
45
47
47
47
47
47
47
47
49
49
52
52
57
57
59
69
69
69
69
69
70
71
71
72
72
73
73
74
74
74
74
74
74
74
75
75
75
75
75
76
76
80
80
80
80
85
85
85
86
87
87
87
88
89
89
90
91
92
94
96
97
99
102
102
103
104
105
105
105
105
106
107
108
108
109
109
109
109
111
111
114
114
116
117
118
118
119
119
122
124
125
125
126
126
127
127
127
128
128
128
129
129
129
131
131
131
131
134
134
134
134
137
141
143
143
143
143
143
144
145
145
145
145
145
145
146
147
147
161
163
164
166
166
166
166
167
169
169
170
170
171
171
172
172
172
172
174
174
174
175
178
178
178
178
179
179
180
180
180
181
183
183
185
185
193
194
195
196
196
196
198
198
198
198
198
198
198
199
199
199
201
202
202
202
202
203
205
205
205
207
208
211
212
214
214
214
214
216
216
216
216
216
216
223
227
229
229
230
232
232
232
234
235
237
237
237
238
240
240
240
241
242
242
242
242
242
243
243
247
249
249
249
249
250
250
251
251
252
252
252
257
257
259
260
264
265
265
266
267
267
269
269
269
269
270
270
270
271
271
272
273
273
273
275
275
276
276
276
278
280
280
280
280
281
285
285
285
285
285
286
286
286
286
287
287
287
287
287
287
287
292
296
296
296
301
301
305
306
307
311
312
313
317
317
318
318
320
320
320
320
320
320
321
321
322
322
324
325
325
325
335
336
337
338
338
340
340
340
340
341
341
341
342
342
342
342
343
345
346
346
347
347
351
351
351
351
353
353
353
354
355
355
355
356
356
356
356
358
358
358
358
358
358
360
361
363
365
370
370
372
378
379
382
383
383
383
384
384
384
384
385
386
386
388
388
389
389
394
397
398
399
399
399
399
400
402
402
405
409
409
417
420
420
421
421
422
422
422
422
424
425
426
426
426
426
433
437
438
444
446
446
449
449
449
455
455
456
458
459
463
463
464
464
464
466
466
466
467
468
468
468
469
469
478
483
483
485
488
491
492
492
493
493
493
495
497
497
497
497
497
498
499
499
507
511
511
512
512
512
512
513
516
516
518
522
522
524
529
529
529
530
530
533
534
534
535
535
535
535
537
546
550
551
553
555
558
562
563
567
567
568
568
568
568
569
572
572
572
572
577
579
579
579
580
581
581
581
582
582
591
596
596
597
598
602
602
604
605
608
609
609
610
610
610
611
612
612
615
618
620
620
634
636
638
638
639
639
641
641
643
643
643
643
654
659
659
670
675
675
675
676
677
679
679
680
680
681
681
682
701
703
703
706
706
709
713
713
714
714
718
718
718
718
721
726
726
748
750
768
773
773
787
792
792
794
795
810
812
815
834
839
839
854
859
859
872
875
877
893
898
898
911
916
916
934
936
936
939
958
960
960
963
963
978
983
983
1005
1007
1025
1030
1030
1044
1049
1049
1067
1069
1072
1091
1096
1096
1111
1116
1116
1129
1132
1134
1150
1155
1155
1168
1173
1173
1191
1193
1193
1196
1215
1217
1217
1220
1220
1235
1240
1240
1262
1264
1282
1287
1287
1301
1306
1306
1324
1326
1329
1348
1353
1353
1368
1373
1373
1891
1891
1893
4
5
5
6
6
7
7
9
9
9
9
9
9
9
9
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
14
15
15
15
15
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
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
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
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
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
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
31
31
31
31
31
31
31
32
32
33
33
36
36
37
37
38
38
38
38
39
39
40
40
43
43
44
44
46
46
48
48
48
48
48
53
53
58
58
60
69
69
71
72
73
73
73
73
73
73
73
74
74
74
75
75
75
75
75
76
76
76
76
76
77
77
81
81
87
88
88
88
88
89
89
90
91
91
91
92
92
92
92
93
95
97
97
100
102
102
103
103
103
105
107
108
109
109
109
109
110
110
110
110
112
112
114
114
115
117
118
120
120
121
123
123
125
125
126
127
127
128
128
128
129
129
130
130
130
135
135
135
135
136
138
142
144
144
144
145
145
146
146
146
146
157
162
163
163
163
164
164
164
165
165
167
167
167
167
168
172
172
173
173
175
175
176
179
179
180
180
180
180
180
180
180
180
181
182
182
184
184
184
186
186
194
194
194
196
197
197
198
199
199
199
199
199
199
200
200
202
203
203
203
203
206
206
206
207
209
212
213
215
215
217
217
217
217
228
228
229
230
231
233
233
233
234
234
234
235
235
235
238
238
238
239
242
243
243
243
243
243
244
244
248
250
250
251
251
251
251
251
251
251
251
252
253
253
257
257
258
258
261
265
265
266
266
267
268
269
269
269
270
270
270
271
271
272
272
273
274
276
276
277
277
277
279
281
281
286
286
287
287
288
288
288
288
288
293
295
297
297
297
297
302
302
305
305
305
306
306
306
307
312
312
313
314
318
319
320
321
321
321
322
322
322
322
322
322
322
322
325
326
326
326
336
336
338
339
340
341
341
341
341
341
342
342
342
343
343
343
344
346
347
347
348
348
352
352
352
352
355
356
356
356
357
357
359
359
359
359
361
362
364
365
370
370
371
371
379
380
382
382
384
384
384
385
385
385
385
386
389
389
390
390
398
400
400
401
403
403
406
408
410
410
410
418
420
421
422
422
423
423
423
425
425
426
427
427
433
438
439
445
450
450
454
455
456
457
459
460
464
465
465
468
469
469
469
470
470
478
483
483
484
484
489
492
493
493
494
494
494
495
495
498
498
498
498
498
499
512
513
513
514
517
517
519
521
523
523
523
525
530
530
530
531
531
533
535
535
536
536
536
536
538
538
546
551
552
556
559
564
567
568
568
568
569
569
569
570
573
573
578
581
582
582
582
583
583
591
596
596
597
597
598
603
603
605
606
608
608
610
611
611
612
616
619
621
635
637
639
639
640
640
642
642
644
644
644
644
655
660
660
671
676
676
676
677
678
680
681
681
682
682
683
702
707
707
710
714
714
715
715
719
719
722
727
727
749
751
769
774
774
788
793
793
793
793
795
813
816
835
840
840
855
860
860
873
876
878
894
899
899
912
917
917
935
937
940
959
964
964
979
984
984
1006
1008
1026
1031
1031
1045
1050
1050
1070
1073
1092
1097
1097
1112
1117
1117
1130
1133
1135
1151
1156
1156
1169
1174
1174
1192
1194
1197
1216
1221
1221
1236
1241
1241
1263
1265
1283
1288
1288
1302
1307
1307
1327
1330
1349
1354
1354
1369
1374
1374
1892
1892
1894
1
1
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
15
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
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
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
26
26
26
26
26
26
26
26
26
26
26
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
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
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
33
33
34
34
34
38
38
39
39
39
40
44
44
45
45
46
46
46
48
48
48
48
48
48
48
48
49
49
49
54
54
57
59
59
65
65
71
71
72
73
74
74
74
74
74
75
75
76
76
76
76
76
76
76
77
77
77
77
78
78
80
80
80
80
82
82
86
88
89
89
91
92
92
92
92
92
93
93
93
93
93
93
94
94
96
98
101
104
104
104
105
105
105
106
109
109
109
110
110
111
111
111
111
115
115
116
116
116
116
118
121
121
126
126
126
127
127
128
131
131
131
136
136
136
136
136
136
137
143
144
144
144
145
146
146
146
146
146
146
146
146
147
147
157
161
162
163
164
164
164
164
165
165
165
165
165
165
166
166
168
168
168
169
172
173
173
174
174
174
176
176
179
181
181
181
181
182
182
183
187
187
197
197
198
198
200
200
200
200
200
203
204
204
204
204
207
207
207
210
211
213
214
215
215
215
217
217
217
217
217
217
217
217
218
218
229
229
231
232
232
233
234
234
234
235
235
235
235
236
236
236
236
239
239
239
240
241
243
244
244
244
244
245
245
249
250
252
252
252
252
254
254
259
259
262
267
268
268
269
269
270
270
271
271
271
273
273
277
277
278
278
278
280
280
280
280
280
282
282
286
286
286
286
286
288
288
288
288
288
288
288
288
288
288
289
289
295
296
298
303
303
303
304
306
306
306
306
307
307
307
307
313
313
313
313
314
315
319
320
321
322
323
323
323
323
324
326
327
327
327
339
339
340
340
342
344
344
344
345
347
348
348
349
349
353
353
353
353
354
356
357
357
357
357
357
359
359
359
359
359
359
359
359
360
360
362
363
365
372
372
380
381
383
383
384
384
384
385
385
385
386
386
386
386
390
390
391
391
399
399
399
401
401
404
404
408
409
419
422
423
423
424
424
424
426
426
426
426
426
426
426
426
427
428
428
437
439
440
446
451
451
455
457
458
460
461
465
466
466
467
469
470
470
471
471
485
485
490
493
494
494
495
495
495
496
496
497
497
497
499
499
499
499
499
512
512
513
514
514
518
518
521
522
526
531
531
531
532
532
536
536
537
537
537
537
539
539
539
539
550
552
553
557
560
565
568
569
569
570
570
570
571
572
572
572
572
574
574
579
580
582
583
583
584
584
598
598
599
604
604
606
607
609
609
610
610
610
611
612
612
617
620
622
636
638
640
640
641
641
643
643
645
645
645
645
656
661
661
672
677
677
677
678
679
681
682
682
683
683
684
703
708
708
711
715
715
716
716
718
718
718
718
720
720
723
728
728
750
752
770
775
775
789
794
794
794
814
817
836
841
841
856
861
861
874
877
879
895
900
900
913
918
918
936
938
941
960
965
965
980
985
985
1007
1009
1027
1032
1032
1046
1051
1051
1071
1074
1093
1098
1098
1113
1118
1118
1131
1134
1136
1152
1157
1157
1170
1175
1175
1193
1195
1198
1217
1222
1222
1237
1242
1242
1264
1266
1284
1289
1289
1303
1308
1308
1328
1331
1350
1355
1355
1370
1375
1375
1893
1893
1895
1
1
5
5
5
5
5
5
5
5
5
7
7
7
7
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
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
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
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
25
25
25
25
25
25
25
25
25
25
26
26
26
26
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
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
33
33
33
33
34
34
35
39
39
39
40
40
40
41
45
45
46
46
46
46
46
47
47
49
49
49
49
50
50
50
55
55
57
66
66
67
67
67
67
67
71
72
72
73
74
74
74
74
75
76
76
76
76
76
76
77
77
77
77
77
78
78
78
79
79
81
81
83
83
87
87
93
93
93
94
94
94
94
94
95
95
97
97
97
99
100
102
104
104
105
105
105
105
107
108
108
109
109
110
110
110
111
111
117
117
117
117
117
122
122
125
125
125
125
127
129
129
130
132
132
132
132
135
136
137
137
137
137
137
137
138
144
144
144
144
145
145
146
147
147
147
147
147
148
148
162
163
164
164
164
165
165
165
165
166
166
167
167
169
169
169
170
174
174
175
175
175
178
179
181
181
183
183
183
184
184
188
188
194
194
196
196
196
197
198
200
200
201
201
201
201
203
204
205
205
205
205
207
207
208
208
208
211
212
214
214
215
215
215
216
216
218
218
218
218
219
219
222
229
230
230
232
233
234
235
235
235
235
235
236
236
236
236
237
237
240
240
240
241
242
242
245
245
246
246
249
250
250
252
252
252
252
255
255
255
260
260
263
266
266
267
267
267
268
272
272
272
272
274
278
278
279
279
279
280
281
281
281
283
283
286
286
286
287
287
287
289
289
289
289
290
290
296
296
297
297
299
304
304
304
305
306
306
307
307
307
307
307
307
308
308
311
313
313
314
314
315
316
317
317
318
318
320
320
320
321
321
323
323
323
325
327
327
328
328
335
338
338
338
341
342
343
345
345
345
345
348
349
349
350
350
354
354
354
354
355
355
357
357
357
358
358
360
360
360
360
361
361
363
364
365
365
366
368
373
373
381
382
385
385
385
385
386
386
386
387
387
387
391
391
392
392
393
400
400
405
405
409
409
410
410
420
420
420
423
424
424
424
425
425
425
426
426
427
427
427
427
428
429
429
433
438
440
440
447
448
452
452
455
456
458
461
462
463
463
464
464
466
467
467
468
468
472
472
478
478
481
486
486
487
491
494
495
495
496
496
496
498
498
498
498
500
500
500
500
506
513
514
519
519
522
522
523
523
527
532
532
532
533
533
533
533
537
537
537
538
538
538
538
539
539
540
540
546
551
553
553
553
557
558
561
561
566
568
569
570
570
571
571
571
573
573
575
575
580
581
581
585
585
591
591
594
599
599
600
605
605
607
608
609
609
610
610
611
611
611
611
612
613
618
619
621
623
637
639
641
641
642
642
644
644
646
646
646
646
657
662
662
673
678
678
678
679
680
682
683
683
684
684
685
704
709
709
712
716
716
717
717
719
719
721
721
724
729
729
744
751
753
771
776
776
790
793
795
795
795
810
814
815
818
837
842
842
857
862
862
875
878
880
896
901
901
914
919
919
937
939
942
961
966
966
981
986
986
1001
1008
1010
1028
1033
1033
1047
1052
1052
1067
1071
1072
1075
1094
1099
1099
1114
1119
1119
1132
1135
1137
1153
1158
1158
1171
1176
1176
1194
1196
1199
1218
1223
1223
1238
1243
1243
1258
1265
1267
1285
1290
1290
1304
1309
1309
1324
1328
1329
1332
1351
1356
1356
1371
1376
1376
1894
1894
1896
1
1
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
15
15
15
15
15
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
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
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
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
30
31
31
31
31
31
31
31
31
31
31
31
31
34
35
35
36
40
40
40
40
41
41
41
42
46
46
47
47
47
47
48
48
48
48
48
48
49
50
50
50
50
51
56
56
57
58
67
68
68
68
68
71
71
72
73
73
74
74
74
74
75
75
76
76
76
76
77
77
77
77
78
78
78
78
78
79
79
79
80
82
82
84
84
92
93
93
93
93
94
94
94
95
95
95
96
96
98
98
98
100
100
101
103
103
106
108
108
109
109
109
109
109
109
111
111
111
112
112
118
118
118
123
123
123
125
126
126
126
126
126
126
128
128
129
131
131
131
133
133
133
133
136
138
138
138
138
138
138
139
142
145
145
145
146
146
146
146
146
146
147
147
148
148
148
148
163
164
165
165
165
166
166
166
167
167
168
168
170
170
170
171
172
175
175
176
176
176
179
179
179
179
181
181
181
181
181
181
184
185
185
189
189
192
194
195
195
196
197
197
199
200
201
202
202
202
202
205
206
206
206
206
208
209
209
209
211
212
213
216
216
217
217
217
217
217
217
219
219
219
219
223
223
223
223
229
230
231
232
232
233
235
236
236
236
236
236
237
237
237
238
238
241
241
241
242
246
246
247
247
250
250
250
250
250
251
252
252
252
252
252
252
253
253
256
256
256
261
264
265
267
267
268
268
269
270
271
273
273
275
279
279
280
280
281
281
281
281
282
282
282
284
284
286
287
287
288
288
288
288
288
288
288
290
290
290
290
298
298
300
305
305
305
306
307
307
308
308
308
308
308
309
309
314
315
315
316
317
318
319
321
321
321
321
321
322
323
323
323
323
323
323
324
324
326
329
329
336
336
336
336
336
338
339
339
341
342
342
343
345
345
346
346
346
346
349
350
350
351
351
355
355
355
355
358
358
359
359
359
359
359
359
361
361
361
361
363
364
365
366
366
367
369
374
382
383
386
386
387
387
387
388
388
388
392
392
393
393
394
394
394
394
399
401
401
406
406
411
411
418
421
421
421
424
425
425
426
426
427
428
428
428
428
429
430
430
437
439
448
449
449
449
449
453
453
455
456
458
458
459
462
463
464
465
467
468
468
473
473
476
479
479
482
487
488
492
492
495
496
496
497
497
497
499
499
501
501
501
501
507
507
507
507
512
514
515
520
520
524
524
528
531
533
533
533
534
534
534
534
538
538
539
539
539
539
540
541
541
550
552
558
559
562
562
562
562
562
567
568
569
571
571
571
571
572
572
574
574
576
576
581
586
586
589
592
592
595
600
601
606
606
608
609
610
611
612
612
613
614
619
620
620
620
620
622
624
638
640
642
642
643
643
645
645
647
647
647
647
658
663
663
674
679
679
679
680
681
683
684
684
685
685
686
705
710
710
713
717
717
718
720
720
722
722
725
730
730
745
749
752
754
772
777
777
791
793
794
796
796
815
816
819
838
843
843
858
863
863
876
879
881
897
902
902
915
920
920
938
940
943
962
967
967
982
987
987
1002
1006
1009
1011
1029
1034
1034
1048
1053
1053
1072
1073
1076
1095
1100
1100
1115
1120
1120
1133
1136
1138
1154
1159
1159
1172
1177
1177
1195
1197
1200
1219
1224
1224
1239
1244
1244
1259
1263
1266
1268
1286
1291
1291
1305
1310
1310
1329
1330
1333
1352
1357
1357
1372
1377
1377
1895
1897
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
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
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
12
12
12
13
13
13
13
13
14
14
14
14
15
15
15
15
16
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
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
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
22
22
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
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
27
27
27
27
27
27
27
27
28
28
28
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
33
35
36
37
40
41
41
42
42
42
43
45
45
45
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
52
57
57
58
59
69
69
72
72
73
74
74
74
74
74
74
74
75
76
77
77
77
78
78
78
78
79
79
79
80
80
80
81
83
83
85
85
89
92
92
92
93
93
93
93
94
94
94
94
95
95
95
96
96
99
101
101
104
104
104
105
105
105
105
107
108
109
110
110
110
110
110
110
112
112
118
119
124
124
124
124
127
127
128
128
128
129
129
129
129
132
132
134
134
134
134
136
137
139
139
139
139
139
143
143
145
145
145
145
145
145
145
145
146
146
146
146
147
147
147
147
148
164
164
164
164
165
165
165
165
166
166
166
167
169
171
171
171
172
172
173
174
176
176
177
177
180
180
182
182
182
182
183
184
184
184
185
186
186
190
190
193
193
195
195
199
199
199
200
200
200
200
200
202
203
203
206
207
207
209
210
210
210
212
212
213
214
214
214
216
216
216
216
216
216
216
216
217
217
217
218
218
218
218
224
224
232
233
233
234
235
235
235
236
236
236
236
237
237
237
237
237
238
242
242
242
243
244
247
248
251
251
251
251
252
253
253
253
253
256
256
257
257
260
260
262
265
266
266
268
270
270
270
270
271
271
271
273
274
276
279
279
280
280
281
281
282
282
283
283
283
285
285
285
286
286
287
287
287
287
287
287
287
287
287
288
288
288
289
289
289
289
296
297
297
297
299
299
301
306
306
306
306
306
306
306
307
307
307
307
308
308
309
313
313
315
317
318
319
320
322
322
322
323
324
324
324
324
325
325
325
327
327
330
337
337
337
337
341
341
341
342
342
342
346
346
347
347
347
347
350
351
351
352
352
356
356
356
357
358
358
358
358
358
358
358
358
359
359
359
360
360
360
360
364
364
366
368
369
369
373
373
375
383
384
386
388
388
388
389
389
389
393
394
395
395
399
399
400
402
407
407
409
410
410
410
412
412
419
419
422
425
425
425
426
426
426
426
427
427
428
429
429
430
431
431
438
438
440
440
449
450
450
454
454
459
459
460
463
464
465
466
468
469
469
470
474
474
477
477
482
482
486
486
488
493
493
496
497
497
498
498
498
499
502
502
508
508
512
512
513
516
521
521
522
523
523
523
525
525
529
532
532
534
534
534
535
535
539
539
539
540
540
540
541
551
551
553
553
559
560
563
563
563
568
571
571
572
572
572
572
573
573
575
575
577
577
582
583
587
587
590
590
595
595
599
599
601
602
607
607
609
610
611
612
612
614
615
621
621
623
625
639
641
643
643
644
644
646
646
648
648
659
664
664
675
680
680
680
681
682
684
685
686
687
706
711
711
714
717
717
718
718
719
721
721
723
723
726
731
731
750
753
755
773
778
778
792
795
797
797
816
817
820
839
844
844
859
864
864
880
882
898
903
903
916
921
921
939
941
944
963
968
968
983
988
988
1007
1010
1012
1030
1035
1035
1049
1054
1054
1073
1074
1077
1096
1101
1101
1116
1121
1121
1137
1139
1155
1160
1160
1173
1178
1178
1196
1198
1201
1220
1225
1225
1240
1245
1245
1264
1267
1269
1287
1292
1292
1306
1311
1311
1330
1331
1334
1353
1358
1358
1373
1378
1378
1896
1898
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
6
6
6
6
6
6
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
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
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
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
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
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
28
28
29
29
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
37
38
42
42
43
43
43
44
46
46
46
46
46
48
48
48
48
48
48
48
49
49
50
50
50
50
53
57
58
58
59
60
69
72
74
74
74
75
75
75
75
75
75
76
76
76
76
76
76
76
77
78
78
78
79
79
80
81
81
81
82
84
84
86
86
89
94
95
95
95
95
96
96
96
100
104
105
105
105
106
106
108
108
109
110
110
110
110
110
111
111
112
112
112
112
113
113
118
120
125
125
126
127
127
129
129
129
129
130
130
130
130
130
131
132
132
132
132
133
135
135
135
135
136
137
139
139
140
140
140
140
140
144
144
146
146
146
146
146
146
147
147
147
147
148
148
148
148
149
155
162
163
164
164
165
166
166
167
167
168
168
168
170
172
172
172
173
173
174
174
175
177
177
178
178
180
180
180
182
182
182
182
182
182
182
182
183
183
183
183
183
184
185
185
185
186
191
191
197
198
200
200
200
200
201
201
201
201
201
204
204
206
206
207
208
208
209
209
210
211
211
211
212
214
214
215
215
215
217
217
217
217
217
217
218
219
219
219
219
224
233
233
234
234
234
236
237
237
238
238
238
238
243
243
243
244
244
248
249
251
251
251
253
253
253
253
253
253
253
253
253
254
254
258
258
260
261
261
263
266
268
269
269
271
271
271
271
271
272
272
272
272
273
275
277
279
280
281
281
282
282
282
284
284
284
285
286
286
286
286
287
288
288
288
288
288
288
288
289
290
290
290
290
296
296
296
297
298
298
298
302
304
305
307
307
307
308
308
309
314
318
319
320
321
322
322
322
323
324
324
324
324
324
324
324
324
324
325
325
325
326
327
328
328
331
337
339
340
342
342
342
342
343
343
343
343
347
347
348
348
348
351
352
352
353
353
355
355
355
355
357
357
357
357
359
359
359
359
359
359
360
361
361
361
361
367
369
373
374
374
376
384
385
386
389
389
389
390
390
390
394
395
395
398
399
400
401
403
408
408
409
409
409
410
411
411
411
423
426
426
427
427
427
428
428
430
430
431
432
432
438
440
441
441
450
450
455
455
460
460
464
465
466
467
469
470
470
470
475
475
486
487
487
489
494
494
497
498
498
499
499
499
499
501
501
501
501
503
503
508
511
512
513
514
517
522
522
522
522
522
523
524
524
524
530
535
535
535
536
536
540
540
541
541
541
551
553
554
554
560
561
563
564
569
572
573
573
573
573
574
576
576
578
578
583
583
588
588
599
600
600
602
603
608
608
610
611
612
612
613
615
616
621
624
626
640
642
644
644
645
645
647
647
647
647
647
647
649
649
660
665
665
676
681
681
681
682
683
685
686
687
688
707
712
712
715
718
719
719
720
722
722
724
724
727
732
732
751
754
756
774
779
779
793
796
798
798
817
818
821
840
845
845
860
865
865
881
883
899
904
904
917
922
922
940
942
945
964
969
969
984
989
989
1008
1011
1013
1031
1036
1036
1050
1055
1055
1074
1075
1078
1097
1102
1102
1117
1122
1122
1138
1140
1156
1161
1161
1174
1179
1179
1197
1199
1202
1221
1226
1226
1241
1246
1246
1265
1268
1270
1288
1293
1293
1307
1312
1312
1331
1332
1335
1354
1359
1359
1374
1379
1379
1893
1897
1899
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
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
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
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
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
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
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
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
24
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
31
32
32
32
32
32
32
33
33
33
33
38
39
40
40
40
43
43
44
44
44
45
46
46
47
47
47
47
47
48
48
48
48
49
49
49
49
49
49
49
49
50
51
51
54
58
59
59
60
60
69
72
74
75
76
76
77
77
77
77
77
77
77
77
77
77
78
79
81
82
83
85
85
87
87
93
94
95
96
96
96
97
97
98
101
105
106
106
107
107
108
108
110
111
112
112
113
113
113
113
114
114
121
126
126
126
127
127
128
129
129
130
130
130
130
131
131
131
133
133
134
136
136
136
136
140
140
141
141
141
141
141
145
145
145
145
145
146
146
146
146
147
147
147
147
147
147
148
148
148
149
149
150
156
162
163
164
165
166
167
167
168
168
168
169
169
171
173
173
173
174
175
175
176
178
178
179
179
180
180
180
181
181
183
183
183
183
184
184
185
186
186
186
187
192
192
195
197
198
199
200
200
200
200
201
201
201
201
202
202
202
205
205
208
209
209
210
210
211
212
212
212
212
214
215
215
216
216
216
216
216
217
217
217
217
218
218
218
218
218
218
220
220
224
232
233
234
234
235
236
237
238
238
239
239
239
239
244
244
244
245
246
246
247
247
249
250
251
251
251
252
252
253
254
254
254
254
254
255
255
259
259
260
262
262
267
268
269
270
270
271
271
272
272
272
272
272
273
273
278
280
281
282
283
283
285
285
285
286
287
287
287
287
287
288
288
288
288
288
289
289
289
289
289
289
289
291
291
298
299
299
299
303
304
305
306
307
308
308
308
308
309
309
310
313
313
315
319
320
321
322
322
322
322
323
323
324
325
325
325
325
325
325
326
326
327
327
328
329
329
329
329
332
337
339
340
341
342
342
343
343
343
343
344
344
345
349
349
349
352
353
353
354
354
356
356
358
358
358
358
358
359
359
359
359
360
360
360
360
360
360
362
362
366
368
370
373
375
375
385
386
390
390
390
391
391
391
392
392
393
393
395
395
396
399
401
402
404
409
409
411
412
412
412
421
424
426
426
427
427
428
429
429
431
431
432
433
433
438
440
441
442
442
450
451
456
456
458
465
466
467
468
470
471
471
476
476
479
486
488
488
495
495
498
499
499
500
500
500
502
502
504
504
508
512
514
515
518
523
523
524
525
525
525
531
534
536
536
536
537
537
538
538
539
539
539
539
541
541
542
542
542
551
553
554
555
555
561
562
563
565
570
571
573
575
577
577
579
579
584
589
589
592
599
601
601
604
609
609
611
612
613
614
616
617
621
625
627
641
643
645
645
646
646
648
648
648
648
650
650
661
666
666
677
682
682
682
683
684
684
684
685
685
686
687
688
689
708
713
713
716
719
721
723
723
725
725
728
733
733
752
755
757
775
780
780
793
794
799
799
818
819
822
841
846
846
861
866
866
882
884
900
905
905
918
923
923
941
943
946
965
970
970
985
990
990
1009
1012
1014
1032
1037
1037
1051
1056
1056
1075
1076
1079
1098
1103
1103
1118
1123
1123
1139
1141
1157
1162
1162
1175
1180
1180
1198
1200
1203
1222
1227
1227
1242
1247
1247
1266
1269
1271
1289
1294
1294
1308
1313
1313
1332
1333
1336
1355
1360
1360
1375
1380
1380
1894
1896
1898
1900
5
5
5
5
5
5
5
5
5
5
5
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
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
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
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
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
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
26
26
26
26
26
28
28
28
28
28
28
28
28
28
29
31
31
31
31
31
32
32
33
33
33
33
33
33
34
34
34
35
39
40
41
41
44
44
45
45
45
46
46
46
47
47
47
47
48
48
48
48
48
48
48
48
49
49
50
50
50
51
51
51
51
51
52
52
55
57
59
60
60
72
72
74
75
76
78
78
78
78
78
79
80
82
83
84
86
86
88
88
89
89
94
94
95
95
98
101
102
104
106
107
107
109
109
110
110
110
110
111
112
112
114
114
114
114
122
126
126
126
127
127
129
130
130
131
131
131
132
132
132
132
132
134
134
137
137
137
137
141
141
142
142
142
142
144
144
145
146
146
146
146
146
146
146
147
147
148
148
149
149
149
149
149
149
150
150
151
151
157
157
163
164
164
164
165
165
166
168
169
169
169
170
170
174
174
174
175
175
176
176
179
179
180
180
181
181
182
182
182
182
182
182
184
184
184
184
184
186
187
187
188
193
193
195
197
197
197
200
200
200
201
201
201
201
202
202
202
203
203
206
209
210
210
211
211
212
212
212
213
213
213
215
215
215
216
216
216
217
217
217
217
218
218
219
219
220
220
220
220
221
221
229
234
235
235
235
236
236
237
239
240
240
240
240
244
244
245
245
246
247
248
250
251
252
252
253
253
253
253
253
253
253
255
255
255
255
255
256
260
260
261
268
268
268
268
271
271
272
272
273
273
273
273
274
274
279
281
282
284
284
286
286
286
286
286
286
287
287
288
288
288
288
288
288
289
289
289
290
290
291
291
291
291
292
292
297
299
300
300
304
305
306
306
307
307
308
308
309
309
310
311
313
313
314
314
322
323
323
323
324
324
324
324
324
324
325
325
325
326
326
326
326
326
328
328
329
330
333
339
339
339
342
342
343
343
344
344
344
345
345
350
350
350
353
354
354
355
357
357
357
357
357
357
358
359
359
359
359
359
359
360
360
361
361
362
362
362
362
363
363
364
366
369
369
371
374
386
387
391
391
392
392
392
393
394
396
397
399
400
402
405
410
410
410
412
413
413
421
425
426
426
427
427
428
430
430
432
432
433
434
434
438
438
441
442
452
455
457
457
468
469
470
470
471
472
472
477
477
479
482
487
496
496
499
499
500
500
501
501
501
503
503
505
505
512
513
515
519
523
524
524
525
526
526
532
534
537
537
538
538
539
539
539
540
540
540
542
543
543
543
551
551
554
555
562
563
566
568
571
574
576
578
578
580
580
583
583
585
590
590
592
595
600
605
610
610
614
615
617
618
619
626
628
642
644
646
646
647
649
649
649
649
651
651
662
667
667
678
683
683
684
685
686
687
688
689
690
709
714
714
717
720
722
724
724
726
726
729
734
734
753
756
756
758
758
776
781
781
792
793
794
795
800
800
819
820
823
842
847
847
862
867
867
876
883
885
901
906
906
919
924
924
944
947
966
971
971
986
991
991
1010
1013
1013
1015
1015
1033
1038
1038
1052
1057
1057
1076
1077
1080
1099
1104
1104
1119
1124
1124
1133
1140
1142
1158
1163
1163
1176
1181
1181
1201
1204
1223
1228
1228
1243
1248
1248
1267
1270
1270
1272
1272
1290
1295
1295
1309
1314
1314
1333
1334
1337
1356
1361
1361
1376
1381
1381
1897
1899
1901
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
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
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
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
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
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
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
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
28
29
29
29
29
29
29
29
29
29
29
29
29
31
31
31
31
32
32
32
32
33
33
34
34
34
35
35
35
35
35
40
41
45
45
46
46
46
46
47
47
47
48
48
49
49
49
51
51
51
52
52
52
52
52
53
53
56
58
58
60
60
61
61
73
73
74
74
74
74
75
76
77
77
78
78
79
80
81
83
84
85
87
87
87
89
89
90
90
103
105
107
108
108
109
109
110
111
111
111
111
112
112
112
112
112
112
112
113
113
117
123
124
127
127
127
127
128
128
129
129
129
130
130
130
130
131
131
132
133
133
138
138
138
138
139
143
143
143
143
145
145
147
147
147
149
149
150
150
150
150
151
151
152
152
158
158
158
158
163
163
164
164
166
167
167
167
168
168
169
170
170
170
175
175
175
175
176
176
176
176
177
179
180
180
181
181
181
181
181
181
181
181
181
181
182
182
182
183
183
183
183
185
185
189
194
194
195
198
198
198
198
200
200
200
201
201
201
201
202
202
202
202
203
205
207
208
210
211
211
212
212
213
213
213
214
214
214
214
214
214
214
216
216
216
217
217
218
218
220
220
221
221
221
221
222
222
229
230
232
232
234
234
235
235
236
237
238
238
238
239
239
240
241
241
241
241
242
245
245
246
246
247
248
249
250
251
252
252
252
252
252
252
252
252
252
253
253
253
254
254
254
254
256
260
261
261
262
266
269
269
269
269
269
271
271
271
272
272
272
272
272
272
273
273
274
274
280
282
283
285
285
286
287
287
287
287
287
287
289
289
289
289
289
289
290
291
291
292
292
292
292
293
293
298
298
305
305
305
306
306
308
309
309
309
310
310
310
310
311
312
315
315
321
323
323
323
323
323
323
323
323
323
324
324
324
324
325
325
325
325
326
326
326
327
327
327
327
329
329
331
334
337
340
340
340
340
342
342
342
342
343
343
343
343
343
344
344
345
345
345
351
351
351
354
354
354
355
355
355
356
358
358
358
358
358
358
360
360
360
360
362
362
363
363
363
363
364
364
365
367
370
372
373
375
385
387
388
392
392
393
393
393
394
395
397
398
399
400
402
402
403
406
411
411
411
411
426
428
428
429
431
431
433
433
434
435
435
439
439
440
440
440
442
453
455
456
458
458
458
458
468
469
470
471
471
472
473
473
478
478
486
488
497
497
498
500
500
501
501
502
502
502
504
504
506
506
512
513
515
515
516
520
524
524
525
525
533
538
538
539
539
540
541
541
541
543
544
544
544
552
552
553
553
553
555
563
564
564
567
567
568
569
571
571
572
575
577
579
579
581
581
581
584
584
586
591
591
599
601
606
611
611
611
615
616
618
619
620
624
627
629
643
645
646
646
647
647
648
650
650
650
650
652
652
663
668
668
679
684
684
685
686
687
688
689
690
691
710
715
715
718
721
723
725
725
727
727
730
735
735
754
759
759
777
782
782
793
793
795
796
801
801
820
821
821
824
824
843
848
848
863
868
868
877
881
884
886
902
907
907
920
925
925
945
948
967
972
972
987
992
992
1011
1016
1016
1034
1039
1039
1053
1058
1058
1077
1078
1078
1081
1081
1100
1105
1105
1120
1125
1125
1134
1138
1141
1143
1159
1164
1164
1177
1182
1182
1202
1205
1224
1229
1229
1244
1249
1249
1268
1273
1273
1291
1296
1296
1310
1315
1315
1334
1335
1335
1338
1338
1357
1362
1362
1377
1382
1382
1898
1900
1902
4
4
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
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
11
11
11
11
11
11
12
12
12
12
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
16
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
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
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
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
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
27
27
27
27
27
27
27
27
27
27
28
28
29
30
30
30
30
32
32
32
32
33
33
33
33
33
33
33
34
34
35
41
42
46
46
47
47
47
47
47
48
48
48
49
50
50
52
53
53
53
53
53
57
58
60
61
61
62
62
74
75
75
75
75
77
77
78
78
78
78
80
81
81
82
84
85
86
88
88
88
88
90
90
96
96
96
97
97
97
101
104
106
108
109
109
110
110
111
112
112
113
113
113
113
113
114
114
118
118
118
118
124
125
127
127
127
128
128
128
129
129
130
131
131
132
132
134
134
136
139
139
139
139
144
144
144
144
145
145
146
146
148
148
148
151
151
151
151
153
153
156
158
158
159
159
167
168
168
168
168
169
169
170
171
171
171
176
176
176
177
177
177
178
180
181
181
182
182
182
182
182
182
182
182
183
184
184
184
184
190
195
195
195
195
196
198
198
198
198
199
199
199
201
202
202
203
203
203
208
209
211
212
212
213
213
214
215
215
215
215
215
215
216
216
217
217
218
218
219
222
222
222
222
229
233
233
237
238
239
239
239
240
240
241
242
242
242
242
243
243
244
244
247
247
248
249
250
251
252
253
253
253
253
253
253
253
254
255
255
255
255
256
257
261
262
262
263
267
269
269
269
270
270
270
270
272
273
273
273
273
273
273
273
274
275
281
281
283
284
286
286
286
287
287
288
288
288
288
288
288
290
290
290
290
290
291
293
293
293
293
306
308
308
309
310
310
310
311
311
311
311
311
312
313
316
316
322
324
324
324
324
324
324
324
325
325
326
326
326
326
327
328
328
328
328
328
330
332
335
338
340
340
340
341
341
341
342
343
344
344
345
346
346
352
352
352
355
355
356
356
356
356
357
358
358
359
359
359
359
361
361
361
364
364
364
364
368
369
371
373
374
376
386
386
386
386
388
389
390
390
393
393
394
394
394
395
396
398
399
403
403
404
407
412
412
421
421
424
427
427
427
429
429
430
431
432
432
434
434
435
436
436
441
441
441
441
454
455
459
459
459
459
469
469
470
471
473
474
474
479
479
482
487
489
498
498
499
499
499
499
501
502
502
503
503
503
505
505
507
507
516
516
517
521
526
526
534
534
534
536
536
537
539
539
540
540
541
542
542
542
544
545
545
545
554
554
554
554
564
568
568
568
572
572
573
573
576
578
580
580
582
582
582
582
587
592
592
595
600
602
607
612
612
612
612
612
612
616
617
619
620
625
628
630
644
646
647
648
648
649
651
651
651
651
653
653
664
669
669
680
682
682
684
685
685
686
687
688
688
689
690
691
692
711
716
716
719
719
722
724
726
726
728
728
731
736
736
755
760
760
778
783
783
794
794
796
796
796
797
802
802
821
825
825
844
849
849
864
869
869
882
885
887
903
908
908
921
926
926
941
945
946
949
968
973
973
988
993
993
1012
1017
1017
1035
1040
1040
1054
1059
1059
1078
1082
1082
1101
1106
1106
1121
1126
1126
1139
1142
1144
1160
1165
1165
1178
1183
1183
1198
1202
1203
1206
1225
1230
1230
1245
1250
1250
1269
1274
1274
1292
1297
1297
1311
1316
1316
1335
1339
1339
1358
1363
1363
1378
1383
1383
1899
1901
1903
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
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
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
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
16
16
16
16
16
17
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
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
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
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
29
29
30
30
31
31
31
33
33
34
34
34
34
35
41
42
43
45
45
46
46
47
47
47
48
48
48
48
48
48
49
49
50
50
50
51
51
53
54
58
58
60
61
62
62
63
63
75
76
76
77
78
78
78
78
78
78
78
78
79
79
79
81
82
82
83
85
86
86
86
87
89
89
91
91
94
95
96
97
97
97
98
98
105
105
107
109
109
110
110
111
111
111
112
112
113
113
113
113
114
114
114
114
119
119
125
127
127
128
128
129
129
129
130
130
131
132
132
132
132
133
133
135
136
137
139
139
140
140
140
140
145
145
145
145
145
146
146
146
147
148
148
148
149
149
154
154
159
160
160
164
168
169
169
169
170
170
172
177
177
177
178
178
178
181
181
181
182
182
182
182
182
182
183
183
183
183
183
183
183
183
185
185
187
191
193
196
196
196
198
198
199
199
199
200
200
200
201
202
203
203
204
204
209
210
212
214
214
215
216
216
216
216
216
217
217
217
218
219
219
219
219
220
230
232
234
234
234
238
240
240
241
241
243
243
243
245
248
248
249
250
251
252
252
252
253
253
253
253
253
254
254
254
254
254
254
254
256
256
258
260
262
263
269
269
270
270
271
271
271
272
273
274
274
274
274
274
275
276
282
282
284
285
286
286
287
287
288
288
288
289
289
289
289
289
290
290
291
291
291
291
291
300
306
307
309
309
311
311
312
312
312
312
312
317
319
320
323
323
323
323
324
324
324
324
324
325
325
325
325
325
325
325
326
327
327
328
329
329
329
331
333
336
340
340
341
341
342
342
342
343
343
344
345
345
345
346
347
347
347
353
353
356
356
358
358
359
359
359
360
360
360
361
361
362
362
362
369
372
373
374
375
387
387
389
390
391
394
394
395
395
395
396
397
399
400
404
404
408
413
413
413
419
422
422
425
428
428
430
431
432
432
432
433
433
435
435
436
437
437
442
442
455
456
458
460
460
460
460
460
465
466
469
470
471
472
474
475
475
480
486
488
499
499
500
500
502
504
504
504
506
506
508
508
517
517
522
526
527
527
532
535
535
535
537
538
540
540
541
541
542
543
543
545
546
546
555
555
565
569
569
569
571
573
573
573
574
574
577
578
578
579
581
581
583
583
588
593
593
599
601
608
611
612
613
613
613
615
616
617
618
620
621
626
629
631
645
647
648
650
652
652
652
652
654
654
665
670
670
681
683
686
686
687
688
689
689
690
691
692
693
712
717
717
720
720
723
724
724
725
727
727
729
729
732
737
756
761
761
779
784
784
793
796
797
797
798
803
822
826
826
845
850
850
865
870
883
886
888
904
909
909
922
927
927
946
947
950
969
974
974
989
994
1013
1018
1018
1036
1041
1041
1055
1060
1079
1083
1083
1102
1107
1107
1122
1127
1140
1143
1145
1161
1166
1166
1179
1184
1184
1203
1204
1207
1226
1231
1231
1246
1251
1270
1275
1275
1293
1298
1298
1312
1317
1336
1340
1340
1359
1364
1364
1379
1384
1900
1902
1904
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
7
7
7
7
7
7
7
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
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
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
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
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
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
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
29
29
29
30
30
30
31
32
32
32
33
33
33
34
35
35
36
41
43
44
46
46
46
47
47
48
48
48
48
49
49
49
49
50
50
51
51
51
51
51
52
52
54
55
59
61
62
64
64
68
76
77
78
79
79
79
79
84
86
87
87
87
88
90
90
90
90
90
92
92
92
92
95
95
96
96
96
101
106
106
108
108
110
111
111
111
111
111
112
113
113
113
113
114
114
114
114
114
114
115
115
119
126
126
127
127
127
128
128
129
129
129
129
129
130
130
131
131
131
132
133
133
134
134
136
136
140
140
141
141
141
141
146
146
146
146
146
146
147
147
148
149
149
149
149
150
150
155
155
158
158
160
164
167
167
168
168
169
170
173
176
178
178
178
179
180
180
181
182
182
182
182
183
183
183
183
184
184
184
184
185
185
185
185
186
186
187
192
194
194
197
198
198
198
199
199
199
199
200
200
200
201
201
202
203
203
204
205
205
210
211
213
215
215
216
216
217
217
217
217
218
218
219
220
220
220
220
220
220
221
223
232
233
238
238
239
239
239
244
244
244
245
246
249
251
251
251
251
252
252
253
253
253
253
254
254
254
255
255
255
256
256
256
256
256
257
257
259
261
262
262
263
263
264
269
269
269
270
270
271
271
271
272
272
273
274
275
275
276
277
281
285
286
287
287
288
288
288
289
289
289
290
290
290
290
290
290
290
291
291
291
291
292
292
292
292
292
300
307
307
308
309
309
310
310
312
312
313
313
316
316
318
322
322
323
324
324
324
324
324
325
325
325
326
326
326
327
327
327
327
327
328
328
329
329
330
332
334
336
337
340
340
340
341
341
342
342
342
343
343
344
345
346
346
347
352
354
354
355
357
357
358
359
359
359
360
360
361
361
361
362
362
362
362
363
363
363
364
369
370
373
374
375
376
376
387
390
391
392
394
395
396
396
397
398
400
401
402
409
413
414
414
420
420
425
425
429
429
431
432
433
433
433
434
434
436
436
436
436
437
438
438
438
438
442
449
456
458
459
461
461
470
471
471
472
473
475
476
476
477
479
479
481
482
487
489
489
500
500
500
503
505
505
505
507
507
507
509
509
515
523
526
528
528
533
533
536
538
538
538
541
542
542
542
543
544
544
546
547
547
555
562
566
570
570
571
572
578
579
579
580
582
582
582
582
584
584
584
584
584
589
590
594
594
595
600
602
602
609
612
612
613
614
616
617
618
619
620
621
622
627
630
632
646
648
649
651
653
653
653
653
655
655
666
671
671
682
684
687
689
690
690
691
692
693
694
713
718
718
724
725
725
726
728
728
728
728
730
730
730
730
733
736
736
738
757
762
762
780
785
785
797
798
798
799
804
823
827
827
846
851
851
866
869
869
871
884
887
889
905
910
910
923
928
928
947
948
951
970
975
975
990
993
993
995
1014
1019
1019
1037
1042
1042
1056
1061
1080
1084
1084
1103
1108
1108
1123
1126
1126
1128
1141
1144
1146
1162
1167
1167
1180
1185
1185
1204
1205
1208
1227
1232
1232
1247
1250
1250
1252
1271
1276
1276
1294
1299
1299
1313
1318
1337
1341
1341
1360
1365
1365
1380
1383
1383
1385
1901
1903
1905
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
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
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
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
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
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
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
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
29
29
29
29
29
30
30
30
30
30
31
32
32
33
33
34
36
37
44
45
47
48
48
48
48
49
49
49
49
50
51
51
51
51
51
51
52
52
52
52
52
53
55
56
60
62
65
65
69
69
69
75
76
78
78
79
79
79
79
80
85
87
88
88
88
89
90
93
93
93
93
97
105
107
107
109
112
112
112
112
113
114
114
115
115
115
115
116
116
119
125
127
127
127
127
128
128
128
129
129
129
130
131
132
132
132
132
132
133
133
134
134
135
135
137
137
139
141
141
141
142
142
142
142
146
146
147
147
147
147
147
147
148
148
149
149
149
149
149
149
150
150
150
150
151
156
156
159
163
163
164
164
167
168
168
168
168
169
169
170
171
174
175
179
179
179
180
181
181
183
183
184
184
185
185
185
185
186
186
186
186
187
187
193
195
195
196
198
199
199
199
200
200
200
202
203
203
203
203
204
204
204
204
205
206
206
211
212
214
216
216
216
217
217
217
218
218
218
218
220
220
220
220
220
220
221
221
221
221
221
221
224
224
224
233
233
234
234
234
234
235
235
238
239
239
239
240
240
240
245
245
245
245
247
250
252
252
252
252
253
254
254
255
256
256
256
257
257
257
257
258
258
260
260
262
263
265
267
270
270
270
271
271
271
273
274
274
274
274
275
275
276
276
277
278
280
282
282
282
286
286
287
288
288
288
288
289
289
289
291
291
291
291
291
291
291
291
292
292
292
292
293
293
293
293
305
305
306
306
309
309
310
310
310
311
311
314
314
316
317
317
319
323
323
325
325
325
326
327
327
327
327
328
328
328
328
328
328
329
329
329
330
330
331
331
333
335
337
337
337
338
338
341
341
341
342
342
342
344
345
345
345
346
346
346
346
347
347
347
348
355
355
356
358
358
358
359
359
360
360
360
362
362
362
362
362
362
362
362
363
363
363
363
364
364
365
371
373
374
374
375
376
376
387
391
392
393
395
395
395
396
397
397
398
399
399
401
402
410
415
415
426
429
430
430
432
433
434
434
434
435
435
438
439
439
439
439
442
450
450
450
457
459
459
460
460
462
462
471
471
472
473
473
474
474
476
476
477
477
477
478
480
482
486
488
500
501
501
504
506
506
506
508
508
508
508
508
510
510
512
524
529
529
537
539
542
542
543
543
543
544
545
545
545
545
547
548
548
555
563
563
563
567
571
571
572
572
572
573
573
579
580
580
581
584
585
585
585
585
590
591
595
595
599
601
610
613
613
615
617
618
619
619
620
620
621
621
621
622
622
623
623
628
631
631
633
633
647
649
650
652
654
654
654
654
656
656
667
672
672
683
685
688
690
691
691
692
693
694
695
714
718
719
719
725
726
726
727
731
731
731
731
734
737
739
758
763
763
781
786
786
798
800
802
802
805
824
828
828
847
852
852
867
870
872
885
888
888
890
890
906
911
911
924
929
929
948
949
952
971
976
976
991
994
996
1015
1020
1020
1038
1043
1043
1057
1059
1059
1062
1081
1085
1085
1104
1109
1109
1124
1127
1129
1142
1145
1145
1147
1147
1163
1168
1168
1181
1186
1186
1205
1206
1209
1228
1233
1233
1248
1251
1253
1272
1277
1277
1295
1300
1300
1314
1316
1316
1319
1338
1342
1342
1361
1366
1366
1381
1384
1386
1902
1904
1906
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
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
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
11
11
11
11
11
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
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
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
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
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
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
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
30
31
31
31
32
34
34
35
35
35
36
36
37
38
40
41
41
45
46
47
48
49
49
50
50
51
51
51
52
52
52
52
52
52
52
52
53
53
53
53
53
54
56
57
61
66
66
70
70
76
76
76
76
78
78
79
79
80
80
81
81
85
85
86
88
89
89
89
90
94
94
94
94
97
97
97
98
98
98
98
98
106
106
106
108
108
108
108
110
111
112
113
113
113
113
116
116
116
116
125
127
128
128
128
129
130
131
132
132
133
133
133
133
133
134
134
135
135
136
138
139
140
143
143
143
143
145
146
148
148
148
148
149
149
149
149
150
150
150
150
150
150
150
150
151
151
151
151
152
157
157
158
158
160
163
164
167
167
168
168
168
169
169
169
169
170
170
171
175
175
176
176
176
180
180
180
181
181
181
182
182
184
185
185
186
186
187
187
187
187
187
187
194
196
196
196
198
199
200
201
203
203
204
204
204
205
205
205
205
206
207
212
212
213
215
216
217
217
218
219
219
220
220
221
221
221
221
221
221
221
221
222
222
222
222
222
222
225
225
234
235
235
235
238
238
239
239
239
240
240
240
241
241
241
246
246
246
248
251
252
252
253
253
253
253
253
254
255
256
257
258
258
258
258
261
261
261
261
263
263
263
264
266
267
269
270
271
272
274
275
275
275
276
276
277
277
278
279
281
283
283
285
286
287
287
287
288
289
289
289
289
290
291
291
292
292
292
292
292
292
292
292
292
292
293
293
293
293
294
294
294
294
300
300
305
306
309
309
309
310
310
310
310
311
311
311
312
312
315
315
316
318
318
323
323
324
324
326
326
327
329
329
329
329
331
331
332
332
334
336
338
338
338
339
340
342
343
345
346
346
346
347
347
348
348
348
349
356
356
356
357
358
359
359
361
362
362
363
363
363
363
363
363
363
363
363
363
364
364
364
364
365
365
366
366
372
374
374
374
376
376
376
377
377
392
393
394
396
396
397
398
398
399
399
400
400
402
402
402
403
411
413
413
416
416
422
427
429
431
431
431
434
435
435
435
436
436
439
440
440
440
440
451
451
458
461
461
463
463
472
473
477
477
478
478
478
479
479
481
483
487
487
487
489
489
489
502
502
502
505
507
507
507
509
509
509
509
511
511
512
513
515
515
525
526
526
530
530
535
538
540
542
543
544
544
544
545
546
546
548
549
549
564
564
568
572
572
573
574
574
577
580
581
581
582
586
586
586
586
591
592
592
596
596
600
600
600
602
602
602
611
614
616
618
619
622
622
623
623
624
624
629
634
634
648
648
650
651
653
655
655
655
655
657
657
668
673
673
684
686
689
691
692
692
693
694
695
696
715
719
720
720
723
726
727
727
728
732
732
732
732
735
738
740
759
764
764
782
787
787
793
796
801
803
806
825
829
829
848
853
853
868
871
873
886
891
891
907
912
912
925
930
930
949
950
953
972
977
977
992
995
997
1016
1021
1021
1039
1044
1044
1058
1060
1063
1082
1086
1086
1105
1110
1110
1125
1128
1130
1143
1148
1148
1164
1169
1169
1182
1187
1187
1206
1207
1210
1229
1234
1234
1249
1252
1254
1273
1278
1278
1296
1301
1301
1315
1317
1320
1339
1343
1343
1362
1367
1367
1382
1385
1387
1903
1905
1907
1
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
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
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
13
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
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
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
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
24
24
24
24
26
26
27
27
27
27
27
27
27
28
29
30
31
31
32
32
32
33
34
35
35
36
36
36
37
37
38
39
41
42
42
46
47
47
48
49
50
50
51
51
52
53
53
53
53
53
53
54
54
54
54
54
55
57
58
58
58
62
67
67
69
70
70
70
70
71
77
77
78
79
79
79
79
79
79
79
79
79
79
79
81
81
86
86
87
89
89
90
90
90
90
90
91
91
95
95
95
95
95
96
97
98
98
98
99
99
99
99
99
99
106
108
109
109
109
109
112
112
113
113
113
113
113
114
114
114
126
127
127
128
128
128
128
128
129
129
131
132
132
133
134
134
134
135
135
135
135
136
139
140
140
141
141
144
144
144
144
145
146
147
147
148
149
149
149
149
151
151
151
151
151
151
152
152
152
152
153
158
158
158
158
159
159
168
168
169
169
169
169
169
170
170
170
170
171
171
171
171
171
171
172
175
176
177
177
181
181
181
181
182
182
182
182
183
184
184
185
185
186
186
187
187
188
188
195
196
197
197
198
199
199
200
202
204
205
205
206
206
213
213
214
215
215
216
216
217
218
218
219
219
220
220
222
222
222
222
222
222
223
223
223
223
223
223
224
225
225
225
225
226
233
234
234
234
236
236
239
239
240
240
240
241
241
241
241
242
242
242
242
245
245
247
247
248
249
249
252
252
252
253
253
253
253
254
254
254
254
254
254
255
255
255
256
257
258
261
262
263
264
264
264
265
267
268
269
270
271
273
275
276
276
277
277
278
280
282
283
283
283
283
284
286
286
287
288
288
289
289
290
290
290
290
290
291
291
293
293
293
293
293
293
293
293
294
294
294
294
295
295
295
295
298
301
301
309
310
310
311
311
311
311
312
312
312
312
312
313
313
313
316
316
317
323
324
324
324
325
326
326
327
327
328
332
332
333
333
337
337
338
338
338
338
339
339
340
340
341
344
346
347
347
347
347
347
348
348
349
349
357
357
357
358
358
358
358
359
360
360
361
361
361
362
364
364
364
364
364
364
364
364
365
365
365
365
366
366
367
367
367
367
373
374
376
377
377
377
378
378
394
394
395
395
395
396
396
396
396
397
398
398
399
399
399
399
400
401
403
403
403
404
411
412
414
414
417
417
422
425
430
432
435
435
436
436
436
437
437
437
440
441
441
441
441
450
451
451
451
451
452
459
459
460
460
460
462
462
464
464
471
471
473
474
478
478
479
479
479
480
480
480
480
482
484
487
489
490
490
490
503
503
503
506
507
507
508
508
508
508
509
509
509
509
510
510
510
512
512
512
516
516
524
526
527
527
531
531
535
538
540
541
541
543
544
544
545
545
546
547
547
549
550
550
563
564
564
564
564
565
569
572
573
573
573
573
573
575
575
578
581
581
582
582
583
583
584
584
587
587
587
587
592
593
593
593
593
597
597
600
602
603
603
603
612
615
617
619
620
621
622
622
622
622
623
624
624
625
625
630
635
635
649
649
651
652
653
653
654
656
656
656
656
658
658
669
674
674
686
687
687
690
690
691
692
693
693
694
695
696
697
716
721
721
724
727
727
728
728
729
729
733
733
733
733
736
739
741
760
765
765
783
788
788
793
797
802
804
807
826
830
830
849
854
854
869
872
874
887
892
892
908
913
913
926
931
931
950
951
954
973
978
978
993
996
998
1017
1022
1022
1040
1045
1045
1059
1061
1064
1083
1087
1087
1106
1111
1111
1126
1129
1131
1144
1149
1149
1165
1170
1170
1183
1188
1188
1207
1208
1211
1230
1235
1235
1250
1253
1255
1274
1279
1279
1297
1302
1302
1316
1318
1321
1340
1344
1344
1363
1368
1368
1383
1386
1388
1904
1906
1907
1908
5
5
5
5
5
5
5
5
5
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
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
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
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
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
26
26
26
27
27
27
28
29
30
30
31
33
33
34
36
36
37
37
38
38
41
41
47
47
48
49
49
49
50
50
50
50
50
51
51
52
52
52
52
53
53
53
53
53
53
53
53
54
55
55
55
55
55
56
58
59
59
59
60
60
60
63
68
68
71
71
72
77
78
78
78
79
80
80
80
80
80
80
80
87
87
88
88
91
91
91
91
91
92
92
96
96
96
96
96
96
97
97
97
99
99
100
100
109
110
110
110
110
113
113
113
114
114
114
114
114
114
115
115
115
118
126
126
129
129
129
130
130
130
130
132
132
132
133
133
133
135
136
136
137
140
142
142
145
145
145
145
145
146
148
148
148
149
150
150
150
150
150
150
151
151
151
151
151
151
153
153
153
153
154
159
159
160
160
168
169
170
170
170
171
171
171
171
171
172
172
172
172
173
176
176
177
178
178
178
182
182
182
182
182
183
183
183
184
185
185
185
185
186
186
186
187
187
188
188
196
197
197
198
200
201
201
201
203
203
203
203
204
204
205
215
215
216
216
216
217
217
219
219
219
219
219
219
219
220
220
221
221
221
221
221
221
222
222
222
222
222
222
224
224
224
224
224
224
226
226
227
233
233
233
234
235
235
235
239
240
241
241
241
242
242
242
242
242
243
243
243
243
246
246
248
248
250
252
253
253
253
253
254
254
254
254
254
255
255
255
255
256
256
256
256
256
257
258
259
263
264
265
265
265
266
268
268
268
271
272
272
273
274
274
274
275
275
276
279
281
284
284
285
287
287
287
288
289
289
290
290
290
291
291
291
291
291
291
292
292
292
292
293
293
293
293
293
293
294
294
295
295
295
295
296
296
296
296
299
299
310
311
312
312
312
312
313
313
313
313
313
314
314
316
317
317
318
324
324
325
325
326
327
327
327
327
328
328
328
329
333
333
334
334
334
338
338
339
339
339
339
340
341
342
343
343
345
345
345
346
346
346
346
346
347
348
348
348
356
358
358
359
359
359
359
361
361
361
361
361
362
362
362
363
363
363
364
364
364
364
364
364
365
365
365
365
365
366
366
366
366
367
367
367
367
367
367
368
368
374
377
378
378
378
379
379
386
395
396
397
397
398
399
399
400
400
400
400
401
402
402
404
404
404
404
405
412
412
413
418
418
429
431
433
437
437
437
438
438
438
438
441
441
441
442
442
442
442
452
452
453
459
459
459
460
460
461
461
461
465
465
469
472
472
474
475
478
479
479
480
480
480
480
480
481
481
483
485
490
491
491
491
499
504
507
508
508
509
509
509
510
510
511
511
511
511
511
513
513
513
513
513
515
517
517
517
525
525
527
532
532
542
542
544
545
545
546
546
547
548
548
550
551
551
554
565
565
566
570
572
572
572
573
574
574
574
574
574
579
582
583
583
584
584
585
585
588
588
588
588
591
593
593
593
594
594
598
598
603
604
604
604
612
613
616
618
620
621
623
623
624
625
625
626
626
631
636
636
652
653
654
654
655
657
657
657
657
657
657
659
659
659
659
670
675
675
688
691
691
692
693
694
694
695
695
696
697
698
698
717
722
722
725
729
729
730
730
734
734
734
734
737
740
742
761
766
766
784
789
789
794
796
798
803
805
808
827
831
831
850
855
855
870
873
875
888
893
893
909
914
914
927
932
932
951
952
952
955
955
974
979
979
994
997
999
1018
1023
1023
1041
1046
1046
1060
1062
1065
1084
1088
1088
1107
1112
1112
1127
1130
1132
1145
1150
1150
1166
1171
1171
1184
1189
1189
1208
1209
1209
1212
1212
1231
1236
1236
1251
1254
1256
1275
1280
1280
1298
1303
1303
1317
1319
1322
1341
1345
1345
1364
1369
1369
1384
1387
1389
1905
1906
1908
1909
5
5
5
5
5
5
5
5
5
5
5
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
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
9
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
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
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
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
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
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
27
27
28
29
30
32
33
33
34
34
34
34
35
35
35
36
36
48
49
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
52
52
53
53
53
53
54
54
54
54
54
54
54
54
55
56
57
59
60
61
61
61
61
64
69
69
70
70
72
72
76
77
80
80
80
81
81
81
88
88
89
89
89
92
92
92
93
93
97
97
97
97
100
101
101
106
106
110
111
113
113
114
114
114
114
114
114
114
114
115
115
115
115
116
116
119
119
119
119
128
128
128
128
129
129
130
130
130
131
131
131
132
133
133
133
133
134
134
134
136
137
137
140
141
141
141
141
143
143
146
146
146
146
148
149
149
149
149
149
150
150
150
150
150
150
150
150
151
151
151
151
151
151
152
152
152
152
152
152
155
156
160
160
161
161
168
169
169
170
171
171
171
172
172
172
173
173
173
173
176
177
178
182
182
183
183
183
183
183
184
185
185
185
185
185
185
186
186
186
186
188
188
189
189
197
199
199
199
199
200
200
201
202
202
202
203
204
204
204
204
204
205
205
206
211
216
216
216
216
216
217
217
218
219
220
220
220
220
221
221
221
221
221
221
221
221
221
222
222
222
222
222
222
223
223
223
223
223
223
225
225
225
225
227
227
235
236
236
236
239
240
241
242
242
243
243
243
244
244
244
244
244
249
249
251
253
253
254
254
254
254
255
255
256
256
256
256
256
256
256
256
256
256
257
257
257
257
257
257
259
259
260
260
261
261
264
265
267
269
270
270
271
271
272
273
273
274
274
274
274
274
275
275
275
275
276
276
277
280
282
283
283
285
285
288
289
290
290
290
291
291
291
291
292
292
292
292
292
292
292
292
292
292
293
293
293
293
294
294
294
294
294
294
295
295
297
297
297
297
310
311
312
312
313
313
313
314
314
314
315
315
317
318
318
319
324
324
325
325
327
327
327
327
327
327
328
328
328
328
329
329
329
329
329
330
334
334
335
335
338
338
339
339
340
340
341
341
342
342
342
343
344
344
345
346
346
346
346
347
347
348
349
349
349
355
357
357
359
360
361
362
362
362
362
362
362
363
363
363
363
363
363
363
363
363
363
364
364
364
365
365
365
365
365
365
368
368
368
368
368
369
369
374
374
375
378
380
380
387
387
387
387
396
396
396
397
398
398
400
400
401
401
401
402
402
402
403
403
403
405
405
406
406
414
419
419
425
430
432
434
438
438
438
439
439
442
442
442
442
442
442
443
443
443
443
451
451
453
453
461
461
462
462
462
466
466
470
470
475
476
480
480
481
481
481
481
482
482
484
486
487
487
491
500
500
500
500
501
505
508
509
509
509
509
510
510
510
511
511
514
514
514
514
515
516
528
533
533
538
543
543
545
546
546
547
547
548
548
549
549
549
551
551
552
552
552
555
555
555
555
564
564
566
566
571
574
575
575
575
575
575
580
583
583
584
584
585
585
589
589
589
589
594
594
595
595
599
599
600
600
604
613
613
613
613
614
617
619
621
622
622
622
624
624
626
626
627
627
632
637
637
647
653
654
655
655
656
658
658
660
660
660
660
671
676
676
689
692
692
693
694
694
695
695
695
697
697
698
698
699
699
718
723
723
726
730
730
731
731
735
735
735
735
738
741
743
762
767
767
785
790
790
797
804
806
809
828
832
832
851
856
856
871
874
876
889
894
894
910
915
915
928
933
933
952
956
956
975
980
980
995
998
1000
1019
1024
1024
1042
1047
1047
1061
1063
1066
1085
1089
1089
1108
1113
1113
1128
1131
1133
1146
1151
1151
1167
1172
1172
1185
1190
1190
1209
1213
1213
1232
1237
1237
1252
1255
1257
1276
1281
1281
1299
1304
1304
1318
1320
1323
1342
1346
1346
1365
1370
1370
1385
1388
1390
1906
1909
1910
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
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
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
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
20
20
20
20
20
20
20
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
21
21
21
21
21
21
21
21
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
25
25
26
26
26
27
27
28
28
30
30
33
34
34
35
35
35
35
35
36
36
36
36
37
37
42
49
49
51
51
52
52
52
52
53
53
54
54
54
54
55
55
55
55
55
55
55
55
56
57
57
58
58
60
60
61
61
62
62
65
70
70
71
77
77
77
77
79
80
80
80
80
80
80
81
82
82
89
89
90
93
93
93
94
94
98
98
98
98
98
99
99
99
101
107
107
108
108
108
112
112
114
114
115
115
115
115
115
115
115
115
116
116
116
116
117
117
120
120
128
129
129
132
132
132
132
132
133
133
133
134
134
134
135
135
135
135
137
140
140
140
141
142
142
142
142
147
147
147
147
149
150
150
150
151
151
152
152
152
152
152
152
153
153
153
153
153
153
156
157
161
161
162
168
168
169
169
171
172
172
172
173
177
177
178
178
179
181
184
184
184
185
185
185
186
186
186
186
186
186
186
186
187
187
187
187
188
189
189
190
190
198
199
200
200
203
203
203
203
203
203
204
204
204
205
205
205
205
206
206
212
214
217
217
217
218
218
219
221
221
221
222
222
222
223
223
223
223
223
223
224
224
224
224
224
224
226
226
226
234
236
237
237
239
239
240
240
242
243
243
244
245
246
250
250
250
252
252
254
254
255
255
256
256
256
256
257
257
257
257
257
257
257
257
258
258
258
258
260
260
261
261
262
262
263
263
263
265
268
270
270
271
274
274
274
274
275
275
275
275
275
276
276
276
277
277
278
281
283
284
289
290
290
291
291
291
292
292
292
293
293
293
293
294
294
294
294
295
295
295
295
295
295
296
296
298
298
298
298
301
310
310
311
311
313
314
314
314
315
316
318
319
319
323
327
327
328
328
328
328
328
328
328
328
329
329
329
329
330
330
330
331
335
335
336
336
339
340
340
341
342
343
345
345
345
345
346
346
346
347
347
347
347
348
348
349
350
350
356
360
360
361
363
363
363
363
363
364
364
364
364
365
365
365
366
366
366
366
366
366
367
367
369
369
369
369
369
375
375
376
376
376
376
381
381
388
388
392
396
397
397
398
401
401
402
402
402
403
403
404
404
406
406
407
407
414
415
420
429
431
435
439
439
439
440
440
443
443
443
443
444
444
444
444
452
460
462
462
463
463
467
467
476
477
480
480
481
481
482
482
482
482
485
487
488
488
489
489
489
501
501
502
506
506
509
510
510
510
511
511
511
515
515
515
515
516
516
517
517
527
529
534
534
538
542
542
544
544
547
547
548
548
550
552
552
553
553
553
556
556
565
572
573
575
576
576
576
576
581
585
585
586
586
590
590
590
590
593
593
595
595
600
600
601
601
602
602
602
614
614
615
618
620
622
623
623
627
627
628
628
633
638
638
648
652
654
655
656
656
657
659
659
661
661
661
661
672
677
684
688
690
693
693
694
696
698
698
699
699
700
700
719
724
724
727
731
731
732
732
736
736
736
736
739
742
744
763
768
768
786
791
791
798
805
807
810
829
833
833
852
857
857
872
875
877
890
895
895
911
916
916
929
934
953
957
957
976
981
981
996
999
1001
1020
1025
1025
1043
1048
1048
1062
1064
1067
1086
1090
1090
1109
1114
1114
1129
1132
1134
1147
1152
1152
1168
1173
1173
1186
1191
1210
1214
1214
1233
1238
1238
1253
1256
1258
1277
1282
1282
1300
1305
1305
1319
1321
1324
1343
1347
1347
1366
1371
1371
1386
1389
1391
1907
1910
1911
5
5
5
5
5
5
5
5
5
5
5
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
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
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
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
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
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
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
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
23
23
23
24
24
24
24
25
25
25
25
25
25
25
25
26
27
29
29
30
31
35
35
35
35
36
36
36
36
36
37
37
37
38
38
41
42
47
50
50
51
51
52
52
52
53
53
53
54
54
55
55
55
55
56
56
56
56
56
56
57
61
61
62
62
62
66
70
71
71
72
78
78
80
80
81
81
81
81
90
90
91
91
94
94
94
95
95
98
98
98
99
99
99
99
99
99
99
100
109
109
109
109
112
113
113
113
116
116
116
116
116
116
117
117
117
117
118
118
120
128
130
130
130
132
133
133
133
134
134
134
135
135
135
135
136
136
136
136
138
142
143
143
143
143
148
148
148
148
149
150
150
150
151
151
152
152
153
153
153
153
154
154
154
154
157
157
157
161
161
161
162
162
163
169
169
169
170
170
170
170
170
171
171
171
172
173
173
179
179
180
181
182
184
185
185
185
186
187
187
187
187
187
187
188
188
188
188
188
190
191
194
199
199
201
201
201
204
204
204
204
205
205
205
206
206
206
206
206
206
207
207
207
215
217
218
218
219
219
220
220
220
221
221
221
222
222
223
223
223
224
224
224
224
224
224
225
225
225
225
225
227
227
227
235
235
240
240
241
241
241
241
241
242
242
242
243
244
246
246
251
251
251
252
253
253
255
255
256
256
257
258
258
258
258
258
258
259
259
259
259
261
261
262
262
264
264
264
264
266
269
271
272
272
275
275
275
276
276
276
277
277
277
277
278
278
278
279
282
282
283
284
284
285
290
291
292
292
292
292
292
292
293
293
294
294
294
294
295
295
295
295
296
296
296
296
297
297
299
299
299
299
301
307
311
311
312
312
312
312
312
312
313
313
313
314
315
315
317
319
319
320
320
323
324
326
329
329
329
329
329
329
330
330
330
330
330
331
332
336
336
337
337
338
340
341
341
343
343
344
346
346
347
347
347
348
348
348
348
348
348
349
349
349
359
361
361
362
362
363
363
363
364
364
364
364
364
365
365
365
365
366
366
366
366
367
367
367
367
368
370
370
370
370
377
377
377
377
377
382
382
388
396
397
398
398
399
402
402
403
403
403
405
405
407
407
408
408
414
416
420
421
425
430
432
432
436
440
440
440
441
441
443
444
444
445
445
445
445
451
453
461
461
463
468
468
472
477
478
481
482
482
483
483
483
486
488
490
490
490
490
501
507
507
509
510
510
511
511
511
512
512
512
512
516
516
516
516
518
518
527
530
533
535
535
538
543
543
545
545
545
548
548
549
549
551
553
553
554
554
554
556
564
566
573
574
574
577
577
582
585
586
586
587
587
591
591
591
591
594
596
601
601
603
603
603
603
614
616
619
621
622
623
624
624
628
628
629
629
634
639
639
653
655
656
656
657
657
658
658
660
660
662
662
662
662
673
678
689
691
694
694
695
697
699
699
700
700
701
701
720
725
725
728
732
732
733
733
737
737
737
737
740
743
745
764
769
769
787
792
792
793
798
806
808
811
830
834
834
853
858
858
873
876
878
891
896
896
912
917
917
930
935
954
958
958
977
982
982
997
1000
1002
1021
1026
1026
1044
1049
1049
1063
1065
1068
1087
1091
1091
1110
1115
1115
1130
1133
1135
1148
1153
1153
1169
1174
1174
1187
1192
1211
1215
1215
1234
1239
1239
1254
1257
1259
1278
1283
1283
1301
1306
1306
1320
1322
1325
1344
1348
1348
1367
1372
1372
1387
1390
1392
1908
1911
1912
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
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
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
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
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
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
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
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
25
25
25
25
26
26
26
26
32
33
33
36
36
37
37
37
37
37
38
38
38
38
39
39
39
49
51
51
51
51
51
52
52
53
53
53
54
54
54
54
54
56
56
57
57
58
62
62
62
63
63
67
70
70
71
72
72
78
79
79
81
81
81
81
81
81
81
81
82
82
91
91
91
92
92
95
95
95
95
96
96
96
97
99
99
99
99
99
99
100
100
100
100
100
100
100
100
101
110
110
110
112
113
113
113
113
114
114
115
115
116
116
116
116
116
116
118
118
118
118
119
119
120
126
126
128
128
129
130
131
131
132
133
133
134
135
135
135
135
135
136
136
136
136
136
137
137
137
139
141
143
144
144
144
149
149
149
149
149
149
149
150
151
151
151
152
152
152
152
152
152
152
152
154
154
158
161
162
162
163
163
164
169
170
171
171
171
171
171
172
172
172
172
177
178
178
178
180
180
181
181
182
184
184
184
185
186
186
186
186
186
187
187
187
187
187
187
187
189
189
189
189
191
192
195
197
197
200
201
202
202
202
203
204
205
205
205
206
206
206
207
207
207
207
207
208
208
216
217
220
220
220
220
220
221
221
221
222
222
222
223
223
223
223
224
225
225
225
225
225
225
226
228
228
242
242
242
242
243
243
243
243
246
247
252
252
252
252
253
254
254
254
254
255
255
255
256
256
257
257
257
257
257
258
258
258
258
258
258
258
260
260
260
260
262
262
263
263
265
265
265
268
268
270
272
272
273
273
275
275
276
277
277
277
278
278
278
278
278
279
279
280
283
283
284
285
285
290
291
291
291
291
291
291
291
292
293
293
293
293
293
293
294
294
294
294
295
295
296
296
298
298
300
300
300
300
308
313
313
313
313
314
314
314
314
316
316
318
321
321
323
324
326
326
326
327
328
328
329
329
329
329
329
329
330
331
331
331
331
332
333
337
337
338
338
338
338
339
339
339
342
342
343
344
344
345
346
347
348
348
348
349
349
349
349
349
350
350
359
362
362
362
362
363
363
364
364
364
365
365
365
365
365
366
366
367
367
367
367
369
371
371
371
371
378
378
378
378
383
383
388
396
396
397
398
399
400
400
403
403
403
403
404
404
404
404
404
404
406
406
408
408
409
409
417
419
419
421
422
429
431
437
441
441
441
442
442
443
445
445
446
446
446
446
451
451
452
464
469
469
472
478
479
480
480
482
483
483
484
484
487
489
491
491
491
501
508
508
509
509
510
512
512
513
513
513
513
516
517
517
517
517
517
517
517
519
519
531
534
536
536
542
544
544
546
546
549
549
549
550
550
552
554
554
555
555
555
556
564
564
565
574
578
578
583
585
587
587
588
588
592
592
592
592
593
593
595
597
602
602
604
604
604
614
620
622
622
622
623
624
625
629
629
630
630
635
640
640
654
656
658
658
659
659
661
661
663
663
663
663
674
676
676
679
690
692
692
695
695
695
696
698
700
700
701
701
702
702
721
726
726
729
733
733
734
734
738
738
738
738
744
746
765
770
770
788
793
793
794
796
807
809
812
831
835
835
854
859
859
877
879
892
897
897
913
918
918
931
933
933
936
955
959
959
978
983
983
1001
1003
1022
1027
1027
1045
1050
1050
1064
1066
1069
1088
1092
1092
1111
1116
1116
1134
1136
1149
1154
1154
1170
1175
1175
1188
1190
1190
1193
1212
1216
1216
1235
1240
1240
1258
1260
1279
1284
1284
1302
1307
1307
1321
1323
1326
1345
1349
1349
1368
1373
1373
1391
1393
1909
1912
1913
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
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
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
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
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
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
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
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
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
24
24
25
25
25
25
25
26
26
26
26
27
27
33
33
34
34
35
36
37
38
38
38
38
38
39
39
39
39
39
40
40
41
50
52
52
53
53
54
54
54
55
55
57
57
58
58
58
59
63
63
64
64
68
69
70
71
72
73
73
78
78
78
80
80
82
82
82
82
82
83
83
92
92
96
96
96
96
97
97
97
98
99
99
99
99
100
100
100
100
100
100
101
101
101
101
101
101
110
113
114
114
114
114
115
115
115
115
115
115
115
115
115
116
116
117
117
117
117
117
117
120
120
126
127
128
129
130
130
130
131
132
132
132
133
134
135
136
136
136
136
137
137
137
138
138
138
140
142
142
145
150
150
150
150
151
152
152
152
153
153
155
155
157
159
162
163
163
164
164
170
171
171
172
172
172
173
173
177
177
177
178
179
179
179
182
184
185
185
185
185
186
186
186
186
186
186
186
186
187
187
187
187
187
188
188
188
188
188
188
188
188
188
189
189
190
190
192
193
196
196
197
201
201
202
203
203
203
204
204
204
204
205
206
206
206
206
206
207
207
208
208
208
209
209
217
221
221
222
222
222
223
223
223
224
225
225
226
226
226
226
226
227
229
229
237
243
243
244
244
248
253
253
253
254
254
255
255
255
256
256
256
256
257
257
257
257
257
257
257
257
258
258
258
258
258
259
259
259
259
259
259
259
263
263
264
264
265
268
271
272
272
273
273
274
274
275
276
277
278
278
279
279
279
280
280
281
282
283
284
285
286
286
290
290
290
291
292
292
292
292
293
294
294
294
294
296
296
297
297
299
299
301
301
301
301
301
301
309
309
314
314
315
315
317
317
317
317
319
319
319
322
326
327
327
327
327
328
328
328
328
328
328
328
328
329
329
330
330
330
330
330
330
333
334
337
338
338
338
339
339
339
339
340
343
343
343
343
344
345
345
346
346
347
348
349
349
350
350
350
350
351
351
363
364
364
365
365
365
366
367
367
367
367
368
368
368
368
372
372
372
372
378
379
384
384
395
396
397
398
399
400
403
403
403
404
404
404
404
405
405
405
405
405
405
409
409
410
410
414
414
418
420
422
422
423
430
430
430
432
432
432
438
442
442
442
443
443
446
446
447
447
447
447
450
451
452
453
463
465
470
470
479
480
480
480
481
481
484
484
485
485
488
490
491
508
509
509
509
510
511
513
513
514
514
514
514
516
516
516
517
518
518
518
518
518
518
518
527
527
532
535
535
537
537
543
543
543
545
545
545
545
550
550
550
551
553
555
555
556
556
556
563
564
565
566
575
576
579
579
584
588
588
589
589
593
593
593
593
593
593
594
594
598
603
603
604
621
621
622
623
623
624
625
626
630
630
631
631
636
641
641
655
657
659
659
660
660
662
662
664
664
664
664
675
677
680
691
696
696
696
697
699
701
701
702
702
703
703
722
727
727
730
734
734
735
735
739
739
739
739
745
747
766
771
771
789
794
794
796
797
810
813
832
836
836
855
860
860
878
880
893
898
898
914
919
919
932
934
937
956
960
960
979
984
984
1002
1004
1023
1028
1028
1046
1051
1051
1067
1070
1089
1093
1093
1112
1117
1117
1135
1137
1150
1155
1155
1171
1176
1176
1189
1191
1194
1213
1217
1217
1236
1241
1241
1259
1261
1280
1285
1285
1303
1308
1308
1324
1327
1346
1350
1350
1369
1374
1374
1392
1394
1910
1913
1914
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
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
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
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
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
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
20
20
20
20
20
20
20
20
20
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
25
25
25
25
25
26
26
26
26
27
27
27
27
28
28
33
33
34
34
35
35
35
36
37
38
39
39
39
39
40
40
40
41
41
49
51
52
53
54
54
55
55
56
56
56
56
56
56
58
58
59
59
59
60
64
64
65
65
69
70
72
73
74
79
79
81
81
81
81
81
81
82
83
83
83
83
93
93
97
97
97
97
98
98
99
100
100
101
101
101
101
101
102
102
102
102
102
102
115
115
115
116
116
116
117
117
118
118
118
118
118
118
121
121
128
130
131
131
131
132
133
133
133
133
133
133
134
134
135
136
137
137
137
137
137
138
139
141
146
147
150
151
151
151
152
153
153
154
154
154
154
154
154
154
154
156
156
160
163
165
165
172
172
172
173
173
179
180
180
180
183
186
186
186
186
187
187
188
188
188
188
188
189
189
189
189
189
189
189
189
189
190
191
193
194
197
197
197
197
202
202
203
204
204
204
204
204
204
204
205
205
206
207
207
207
207
207
208
208
209
218
221
222
222
223
223
223
224
224
225
225
225
225
225
225
225
226
227
227
227
227
227
228
230
230
237
243
244
249
254
254
254
256
256
257
257
257
258
258
259
259
259
259
259
260
260
260
260
260
260
260
264
264
265
265
272
273
273
274
274
275
275
275
275
275
276
276
278
279
279
280
282
283
285
286
287
287
292
292
293
293
293
293
294
295
295
295
296
296
296
296
296
296
297
297
298
298
299
300
300
302
302
302
302
302
302
310
310
310
310
314
315
317
318
319
320
320
320
323
328
328
328
329
329
330
330
331
331
331
331
331
331
334
335
338
339
339
340
340
340
341
344
344
344
344
345
346
346
346
346
346
347
347
347
349
350
350
350
351
363
364
365
365
366
366
367
367
367
367
367
367
367
368
368
369
369
369
369
373
373
373
373
380
385
385
396
398
399
400
401
405
405
405
405
406
406
406
406
406
406
410
410
411
411
412
415
415
419
421
423
423
423
423
424
430
432
433
433
433
439
443
443
443
444
444
447
447
448
448
448
448
451
453
454
463
466
471
471
480
481
482
482
485
485
486
486
489
491
509
510
510
511
512
514
514
515
515
515
515
518
519
519
519
519
519
519
519
525
528
528
533
536
536
536
536
538
538
543
545
546
546
546
546
551
551
551
552
554
556
556
557
557
557
564
566
567
576
576
580
580
585
589
589
590
590
594
594
594
594
595
595
599
604
604
622
622
624
624
625
626
627
631
631
632
632
637
642
642
656
658
660
660
661
661
663
663
665
665
665
665
676
678
681
692
697
697
697
698
700
702
702
703
703
704
704
723
728
728
731
735
735
736
736
740
740
740
740
746
748
767
772
772
790
795
795
797
798
811
814
833
837
837
856
861
861
879
881
894
899
899
915
920
920
933
935
938
957
961
961
980
985
985
1003
1005
1024
1029
1029
1047
1052
1052
1068
1071
1090
1094
1094
1113
1118
1118
1136
1138
1151
1156
1156
1172
1177
1177
1190
1192
1195
1214
1218
1218
1237
1242
1242
1260
1262
1281
1286
1286
1304
1309
1309
1325
1328
1347
1351
1351
1370
1375
1375
1393
1395
1911
1914
1915
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
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
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
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
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
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
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
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
26
26
26
26
27
27
27
28
28
28
28
34
34
35
35
36
36
36
36
39
40
40
40
40
41
41
50
52
52
53
53
54
54
54
55
56
56
57
57
57
57
59
59
60
60
60
61
65
65
66
66
70
70
71
73
75
77
79
79
79
79
80
80
80
80
80
81
81
82
82
82
82
94
94
97
98
98
98
98
99
99
99
99
99
100
100
100
100
101
101
102
102
102
103
103
103
103
114
115
115
115
116
116
117
117
117
118
118
119
119
119
119
122
122
128
129
131
131
133
133
133
133
134
134
134
134
135
135
135
135
135
135
136
136
136
136
137
138
140
142
144
147
148
150
150
151
151
152
152
152
152
152
154
154
155
155
155
155
155
155
157
157
161
161
164
166
166
171
172
172
172
173
173
173
178
180
181
181
184
185
186
186
186
187
187
187
187
188
188
189
189
189
189
190
190
190
190
190
191
192
194
195
195
197
197
198
198
200
202
204
204
204
204
205
205
205
205
205
206
206
206
206
206
207
207
207
207
208
208
208
208
208
209
219
222
222
223
223
223
223
224
224
225
225
225
226
226
226
226
226
227
228
228
228
228
228
231
231
242
243
243
244
250
252
255
255
255
256
257
257
257
257
257
258
258
259
259
260
260
260
260
260
261
261
261
261
261
265
265
266
266
266
273
273
275
275
275
275
276
276
276
276
277
277
277
277
277
278
278
278
279
280
283
283
284
286
288
288
291
293
293
293
294
294
294
294
294
296
296
296
297
297
297
297
298
298
299
299
300
300
301
301
303
303
303
303
308
310
310
311
311
313
314
314
315
319
320
321
321
321
321
321
324
327
328
328
328
329
329
330
330
331
331
332
332
332
332
335
336
338
339
340
340
341
341
341
344
345
345
346
346
346
347
347
347
347
348
348
348
348
348
348
349
349
349
350
351
361
364
364
365
365
365
365
366
367
367
368
368
368
368
368
369
369
370
370
370
370
374
374
374
374
381
386
386
396
397
399
401
402
404
406
406
406
406
407
407
407
407
407
411
411
412
412
413
413
420
421
422
423
423
424
424
425
433
434
434
434
440
444
444
444
445
445
448
448
449
449
449
449
451
452
454
467
472
472
478
481
482
483
483
483
486
486
487
487
490
492
509
510
511
511
512
515
515
516
516
516
516
517
519
520
520
520
520
520
520
526
526
534
534
536
536
537
537
539
546
547
547
547
547
550
552
552
552
553
554
555
557
557
558
558
558
564
565
567
577
581
581
586
590
590
591
591
591
595
595
595
595
596
596
600
605
605
616
622
623
623
625
625
627
628
632
632
633
633
638
643
643
657
659
661
661
662
662
664
664
666
666
666
666
677
679
682
693
698
698
698
699
701
703
703
704
704
705
705
724
729
729
732
736
736
737
737
740
741
741
741
741
747
749
768
773
773
791
796
797
797
798
798
799
807
811
812
815
834
838
838
857
862
862
873
880
882
895
900
900
916
921
921
934
936
939
958
962
962
981
986
986
997
1004
1006
1025
1030
1030
1048
1053
1064
1068
1069
1072
1091
1095
1095
1114
1119
1119
1130
1137
1139
1152
1157
1157
1173
1178
1178
1191
1193
1196
1215
1219
1219
1238
1243
1243
1254
1261
1263
1282
1287
1287
1305
1310
1321
1325
1326
1329
1348
1352
1352
1371
1376
1376
1387
1394
1396
1912
1915
1916
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
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
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
12
12
12
12
12
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
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
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
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
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
27
28
28
28
29
29
29
29
34
35
35
36
36
36
36
37
37
37
40
41
41
41
49
51
55
55
55
55
55
56
60
60
61
61
61
62
66
66
67
67
70
71
71
73
73
73
73
74
76
78
80
80
81
81
81
81
81
82
82
83
83
83
83
89
95
95
97
98
98
99
99
99
99
100
100
100
101
101
102
103
104
104
104
104
114
114
114
115
116
116
116
117
117
117
117
118
123
128
129
131
131
131
132
133
134
134
135
135
136
136
136
136
136
136
137
137
137
137
137
137
138
141
143
144
148
149
149
151
153
153
153
153
153
153
153
156
156
157
158
158
161
162
162
167
167
172
172
172
172
172
173
173
173
173
173
173
173
174
179
179
185
185
185
185
186
187
187
187
188
188
188
188
190
190
191
192
193
195
196
198
199
199
202
204
204
204
205
205
206
206
206
207
207
207
207
208
208
208
208
208
209
220
224
224
224
224
224
224
225
225
225
226
228
228
228
229
229
229
229
229
232
232
237
237
243
243
243
243
244
244
244
244
244
251
253
256
256
256
256
256
257
258
258
258
258
259
259
259
259
261
261
261
262
266
266
267
267
267
271
273
274
275
276
276
277
277
278
278
278
278
279
279
279
279
283
284
284
286
286
287
289
289
292
292
295
295
295
295
295
297
299
299
300
300
302
302
304
304
304
304
311
312
312
314
314
314
314
315
315
315
315
317
317
320
321
322
325
327
327
327
328
329
329
329
330
330
330
330
336
337
338
339
341
341
341
341
342
342
342
344
346
346
347
348
348
349
349
349
349
349
350
350
350
350
350
350
357
362
364
366
366
366
366
366
366
367
369
370
370
371
371
371
375
375
375
375
382
387
387
396
397
399
399
400
402
403
405
405
407
407
407
408
408
408
412
412
413
413
421
423
424
425
425
426
430
430
434
441
445
445
445
446
446
449
449
450
450
450
450
451
452
454
454
455
463
463
468
470
473
479
482
483
484
484
487
487
488
488
488
491
493
509
510
512
512
512
512
513
516
516
517
517
517
517
518
518
521
521
521
521
535
537
538
538
540
543
543
547
548
553
553
553
554
555
556
558
558
559
559
559
564
565
567
567
568
576
576
578
582
582
583
587
591
591
592
592
592
596
596
596
596
597
601
606
617
621
622
623
624
625
625
626
626
628
629
633
633
634
634
639
644
644
658
660
662
662
663
663
665
665
667
667
667
667
678
680
683
694
699
699
699
700
702
704
704
705
705
706
706
725
730
733
737
737
738
738
741
742
742
742
742
745
748
750
769
774
774
792
797
797
798
799
799
800
812
813
816
835
839
839
858
863
874
878
881
883
896
901
901
917
922
922
935
937
940
959
963
963
982
987
998
1002
1005
1007
1026
1031
1031
1049
1054
1069
1070
1073
1092
1096
1096
1115
1120
1131
1135
1138
1140
1153
1158
1158
1174
1179
1179
1192
1194
1197
1216
1220
1220
1239
1244
1255
1259
1262
1264
1283
1288
1288
1306
1311
1326
1327
1330
1349
1353
1353
1372
1377
1388
1392
1395
1397
1913
1916
1917
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
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
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
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
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
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
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
21
21
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
25
25
25
25
26
26
26
26
26
28
29
29
29
30
30
30
30
34
36
36
36
37
37
38
38
42
42
42
42
50
50
50
52
52
52
55
55
55
56
57
61
61
61
62
62
62
63
67
67
68
68
72
74
74
74
75
77
79
79
79
80
81
81
81
81
81
81
82
82
82
82
83
83
84
84
90
96
96
97
98
98
98
99
100
100
100
100
100
101
101
101
102
102
102
102
103
104
105
105
105
105
109
116
117
117
117
119
119
122
122
124
131
131
132
132
133
134
135
137
137
138
138
138
138
139
142
144
149
150
150
150
150
152
153
153
153
154
157
157
157
159
159
162
163
163
168
168
173
173
174
174
174
174
175
186
187
188
188
188
188
188
189
191
191
192
193
194
196
197
197
197
199
202
202
205
205
205
206
206
206
206
206
207
208
208
209
209
210
216
221
224
224
224
225
225
226
226
229
229
229
230
230
230
230
230
233
233
235
238
238
244
244
245
245
245
252
253
253
255
255
257
257
257
257
258
259
259
259
259
262
262
262
263
264
267
267
268
268
272
273
273
274
275
276
277
277
279
279
280
280
285
287
287
288
290
290
295
295
295
296
298
300
300
301
301
302
303
303
305
305
305
305
310
310
312
315
315
316
316
318
318
319
319
319
321
323
326
329
329
330
330
330
337
338
342
342
342
342
343
343
343
344
344
345
347
347
348
348
348
350
350
350
351
351
351
351
358
365
366
366
366
366
366
367
368
370
370
370
371
371
372
372
372
376
376
376
376
377
383
387
388
388
400
400
401
403
404
408
408
408
409
409
409
413
413
414
414
415
422
423
423
424
425
427
431
431
432
432
432
442
442
446
446
446
447
447
450
450
451
451
451
451
455
455
456
461
464
464
469
471
472
472
474
479
479
483
483
483
484
485
488
488
489
489
489
490
492
494
500
513
513
513
513
514
517
517
518
518
518
518
522
522
522
522
528
536
536
536
538
538
538
541
544
544
545
545
545
549
554
554
554
555
555
556
557
559
559
560
560
560
568
568
569
574
577
577
579
583
583
584
588
592
592
592
592
593
593
596
596
597
597
597
597
598
602
603
605
605
607
613
622
625
626
626
627
627
629
630
634
634
635
635
640
645
645
659
661
663
663
664
664
666
666
668
668
668
668
679
681
684
695
700
700
700
701
703
705
705
706
706
707
707
726
729
729
731
734
738
738
739
739
743
743
743
743
746
749
751
770
775
775
793
795
795
798
798
799
800
800
813
814
817
836
840
840
859
862
862
864
879
882
884
897
902
902
918
923
923
936
938
941
960
964
964
983
986
986
988
1003
1006
1008
1027
1032
1032
1050
1052
1052
1055
1070
1071
1074
1093
1097
1097
1116
1119
1119
1121
1136
1139
1141
1154
1159
1159
1175
1180
1180
1193
1195
1198
1217
1221
1221
1240
1243
1243
1245
1260
1263
1265
1284
1289
1289
1307
1309
1309
1312
1327
1328
1331
1350
1354
1354
1373
1376
1376
1378
1393
1396
1398
1914
1917
1918
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
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
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
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
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
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
20
20
20
20
20
20
20
20
20
20
21
21
21
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
25
26
26
26
26
27
27
27
30
30
31
31
31
31
36
36
37
37
37
38
38
43
43
43
43
43
43
50
52
53
53
53
53
55
56
56
57
57
57
57
57
57
57
58
62
62
62
62
62
63
63
63
64
68
68
69
69
73
75
75
75
78
78
78
79
80
80
81
81
81
81
82
82
83
83
84
84
84
84
85
85
91
91
97
97
98
99
99
100
100
101
101
101
101
101
102
102
102
103
103
103
104
105
106
106
106
106
110
110
110
110
115
117
118
118
119
119
119
119
119
119
120
120
120
120
123
125
132
132
133
133
133
133
133
135
136
137
137
137
137
138
139
139
140
143
144
144
145
148
150
150
150
151
151
151
153
153
154
154
155
155
155
155
155
155
155
158
158
160
160
161
163
164
164
169
169
173
174
175
175
181
186
187
188
189
189
189
189
190
190
190
190
190
190
192
194
195
197
198
198
203
203
204
204
204
206
207
207
207
207
207
208
208
209
211
217
217
217
222
222
224
225
225
226
226
226
226
226
226
226
226
227
227
230
230
230
231
231
231
231
234
234
236
236
244
245
246
246
253
256
257
257
258
258
258
258
259
260
260
260
261
261
261
261
261
261
263
263
263
264
265
265
265
265
268
268
269
269
273
274
274
275
275
275
275
275
275
276
277
278
279
280
286
288
288
291
291
293
294
295
296
296
297
297
297
297
297
297
297
299
301
301
302
302
302
304
304
306
306
306
306
311
315
316
320
320
320
320
322
324
327
328
330
330
330
330
331
331
332
332
332
332
332
332
338
339
343
343
343
343
344
344
345
345
346
346
346
348
348
349
349
349
350
351
351
359
359
364
366
366
367
367
368
368
368
368
368
368
368
369
370
371
371
371
372
372
373
373
373
377
377
377
377
378
378
378
378
384
388
388
388
389
389
401
401
404
405
407
409
409
409
410
410
410
414
414
415
415
415
423
424
425
428
433
433
433
433
443
443
443
443
447
447
447
448
448
451
451
452
452
452
452
456
456
462
462
470
472
472
473
475
483
484
484
484
485
486
489
489
490
490
490
491
491
491
491
493
495
501
501
501
514
514
514
514
518
518
519
519
519
519
520
523
523
523
523
528
537
537
539
542
546
546
546
546
550
555
555
555
556
556
556
556
557
558
560
560
561
561
561
569
569
575
575
580
584
584
585
585
589
593
593
594
594
596
597
597
598
598
598
598
599
603
604
604
604
604
606
608
614
614
614
623
626
627
627
628
630
631
635
635
636
636
641
646
646
660
662
664
664
665
665
667
667
669
669
669
669
680
682
685
696
701
701
701
702
704
706
706
707
707
708
708
727
730
732
735
739
739
740
740
744
744
744
744
747
750
752
771
776
776
794
796
797
798
799
799
800
814
815
818
837
841
841
860
863
865
880
883
885
898
903
903
919
924
924
937
939
942
961
965
965
984
987
989
1004
1007
1009
1028
1033
1033
1051
1053
1056
1071
1072
1075
1094
1098
1098
1117
1120
1122
1137
1140
1142
1155
1160
1160
1176
1181
1181
1194
1196
1199
1218
1222
1222
1241
1244
1246
1261
1264
1266
1285
1290
1290
1308
1310
1313
1328
1329
1332
1351
1355
1355
1374
1377
1379
1394
1397
1399
1915
1918
1919
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
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
8
8
8
8
8
8
8
8
8
8
8
8
10
10
10
10
10
10
11
11
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
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
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
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
22
22
22
22
22
22
23
23
25
26
27
27
27
28
28
28
32
32
32
32
37
37
37
38
38
38
38
38
38
39
39
39
39
43
43
44
44
44
44
53
54
54
54
54
54
55
55
57
57
58
58
58
58
58
59
63
63
63
63
64
64
64
65
69
69
70
70
73
74
76
79
79
79
81
81
84
84
85
85
85
85
86
86
92
92
92
92
98
98
98
98
99
99
101
102
102
102
102
102
102
102
102
103
103
103
103
104
104
104
105
107
107
107
107
111
111
111
116
116
117
117
119
119
120
120
120
120
121
121
121
124
126
131
134
134
134
134
136
136
136
136
137
137
137
138
138
138
138
141
142
144
145
145
146
151
151
152
152
152
152
153
153
154
155
155
156
156
156
156
156
159
159
161
161
162
164
165
170
170
172
173
173
173
174
181
187
187
188
188
188
190
190
190
191
191
191
191
191
192
193
195
195
196
196
197
197
198
199
199
205
205
205
205
207
208
208
208
208
208
208
209
209
212
218
218
223
223
223
224
224
226
226
227
227
227
227
227
227
228
228
228
231
232
232
232
232
235
235
243
244
244
245
247
247
247
247
254
257
257
258
258
259
259
259
259
259
259
261
261
262
262
262
262
264
264
264
265
266
266
266
269
269
270
270
274
276
276
276
276
276
276
277
278
279
279
279
280
286
287
292
292
294
294
294
295
295
297
297
298
298
298
298
298
300
302
302
303
303
305
305
307
307
307
307
310
310
312
314
315
315
316
321
321
321
323
325
328
329
329
330
330
331
331
332
332
333
333
333
333
339
340
341
344
344
345
345
347
347
347
347
349
349
350
350
350
351
352
360
360
360
360
365
365
366
366
367
368
368
369
369
369
369
369
370
370
372
372
372
373
373
374
374
378
378
378
378
379
379
379
385
389
389
390
390
399
405
406
407
410
410
410
411
411
411
415
415
416
416
423
423
424
425
426
429
434
434
434
444
444
444
448
448
448
449
449
452
452
453
453
453
453
454
471
473
473
473
473
474
476
483
485
485
485
486
490
490
491
491
491
492
492
492
494
496
502
502
512
515
515
519
519
520
520
520
520
520
524
524
524
524
536
536
538
538
540
543
547
547
547
551
556
556
556
557
557
557
558
559
561
561
562
562
562
567
581
585
585
586
586
586
586
590
594
594
595
595
596
598
598
599
599
599
599
604
605
605
605
607
609
615
615
624
625
627
629
631
632
636
636
637
637
642
647
647
661
663
665
665
666
666
668
668
670
670
670
670
681
683
686
697
702
702
702
703
705
707
707
708
708
709
709
728
731
733
736
740
740
741
741
745
745
745
745
748
751
753
772
777
777
795
797
797
799
800
800
815
816
819
838
842
842
861
864
866
881
884
886
899
904
904
920
925
925
938
940
943
962
966
966
985
988
990
1005
1008
1010
1029
1034
1034
1052
1054
1057
1072
1073
1076
1095
1099
1099
1118
1121
1123
1138
1141
1143
1156
1161
1161
1177
1182
1182
1195
1197
1200
1219
1223
1223
1242
1245
1247
1262
1265
1267
1286
1291
1291
1309
1311
1314
1329
1330
1333
1352
1356
1356
1375
1378
1380
1395
1398
1400
1916
1919
1920
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
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
11
11
11
11
12
12
12
12
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
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
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
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
18
18
19
19
20
20
20
20
20
20
20
20
22
22
22
22
22
23
23
23
23
23
23
24
24
25
26
28
28
28
28
29
29
29
29
29
33
33
33
33
36
39
39
39
39
40
40
40
40
40
44
45
45
45
45
54
56
56
56
56
59
60
62
63
63
63
63
64
64
64
65
65
65
66
70
70
70
71
71
75
77
79
79
80
80
80
82
83
86
86
86
86
90
92
92
93
93
98
99
99
102
102
103
103
103
103
103
103
103
103
103
104
104
104
104
105
106
108
108
108
108
111
118
118
118
118
120
121
121
121
121
122
122
125
127
128
135
135
137
137
137
137
138
138
138
138
138
139
139
139
142
143
143
145
145
147
147
150
150
152
153
153
154
154
154
154
155
157
160
160
162
162
162
162
164
164
164
165
166
171
171
172
173
173
173
173
174
174
174
174
189
189
189
189
189
191
194
196
196
197
197
197
197
198
198
199
200
206
206
208
208
208
208
208
209
209
209
209
209
210
213
217
218
218
218
218
219
224
225
225
225
225
225
228
228
229
229
232
233
233
233
233
236
236
238
244
244
244
244
245
245
245
245
245
247
247
248
248
253
255
258
258
260
260
260
260
260
260
265
265
265
266
266
270
270
271
271
275
275
276
276
276
276
277
277
277
278
278
279
279
279
279
280
280
280
280
280
280
283
288
293
293
296
296
296
296
299
301
303
303
304
304
306
306
308
308
308
308
310
310
311
311
315
315
315
315
316
316
316
316
321
324
326
329
330
331
331
331
331
331
331
331
331
332
338
340
341
345
345
346
346
348
348
350
350
350
350
350
351
351
351
351
351
351
353
358
360
360
361
361
366
367
367
367
367
368
370
371
371
371
373
373
374
374
375
375
379
379
379
379
379
386
388
389
389
389
389
390
391
391
396
406
407
411
411
411
412
412
412
416
416
417
417
423
423
424
424
427
430
434
443
444
444
444
444
445
445
449
449
449
450
450
451
453
453
454
454
454
454
464
471
472
473
473
474
474
475
477
479
484
486
487
491
491
492
492
492
492
495
495
497
497
501
502
502
502
502
503
509
516
516
520
520
521
521
521
521
525
525
525
525
536
536
537
537
539
541
544
547
552
556
557
557
557
557
557
557
557
558
558
559
560
562
562
563
563
563
564
577
582
584
586
586
586
586
587
587
591
592
595
595
596
596
597
600
600
600
600
605
605
608
610
614
615
615
615
615
616
622
625
628
628
630
630
632
633
637
637
638
638
643
648
648
662
664
666
666
667
667
669
669
671
671
671
671
684
687
698
703
703
703
704
706
708
708
709
709
710
710
729
732
734
737
741
741
742
742
746
746
746
746
749
752
752
754
754
773
778
778
796
798
798
800
801
801
816
817
820
839
843
843
862
865
867
882
885
885
887
887
900
905
905
921
926
926
941
944
963
967
967
986
989
991
1006
1009
1009
1011
1011
1030
1035
1035
1053
1055
1058
1073
1074
1077
1096
1100
1100
1119
1122
1124
1139
1142
1142
1144
1144
1157
1162
1162
1178
1183
1183
1198
1201
1220
1224
1224
1243
1246
1248
1263
1266
1266
1268
1268
1287
1292
1292
1310
1312
1315
1330
1331
1334
1353
1357
1357
1376
1379
1381
1396
1399
1399
1401
1401
1917
1920
1921
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
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
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
10
10
10
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
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
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
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
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
21
21
21
21
21
21
21
21
23
23
25
25
26
29
29
29
30
30
30
30
34
34
34
34
34
34
36
40
40
41
41
41
43
43
45
46
46
56
56
56
60
61
64
64
65
65
65
66
66
66
67
70
71
71
71
72
72
73
73
76
78
79
80
81
81
81
81
82
82
83
83
93
94
94
98
99
100
100
102
102
103
103
104
104
104
104
104
104
104
104
105
105
105
105
109
109
109
109
118
118
118
122
122
123
123
126
128
128
129
131
131
135
137
138
138
139
139
139
140
140
143
148
148
151
154
154
154
154
154
156
158
158
158
161
161
163
163
165
165
166
167
172
172
172
173
173
173
174
174
175
175
181
181
189
189
189
190
192
195
197
197
198
198
199
199
200
201
206
209
209
210
210
210
211
211
214
214
219
219
220
225
225
225
225
225
226
228
228
229
229
230
230
233
234
234
234
234
237
237
238
245
245
246
246
248
249
249
256
257
259
259
260
260
260
261
261
266
266
266
267
271
271
272
272
276
277
277
277
278
280
280
281
281
281
281
283
284
286
286
289
294
294
294
294
296
296
296
300
302
304
304
305
305
307
307
309
309
309
309
312
312
316
316
317
317
325
327
330
331
331
331
332
332
333
338
339
341
341
341
342
346
346
347
347
348
351
351
351
351
352
352
352
354
361
362
362
367
367
367
369
370
371
372
374
374
375
375
376
376
380
380
380
380
387
390
390
391
392
392
396
397
399
399
407
407
407
408
412
412
412
413
413
417
417
418
418
425
425
428
431
445
445
446
446
450
450
450
451
451
451
452
454
454
454
454
455
455
455
455
464
473
474
475
475
476
478
483
485
487
488
492
492
493
493
493
498
498
503
503
504
509
510
512
512
517
517
520
520
521
521
522
522
522
522
526
526
526
526
538
538
540
542
545
553
558
558
558
558
558
559
559
560
561
561
563
563
564
564
564
564
564
565
567
567
577
583
587
587
587
588
588
592
596
596
596
597
597
598
601
601
601
601
606
609
611
616
616
617
622
623
625
625
626
631
631
633
634
638
638
639
639
644
649
649
663
665
667
667
668
668
670
672
672
672
672
685
688
699
704
704
704
705
707
709
709
710
710
711
711
730
733
735
738
742
742
743
743
747
747
747
747
750
755
755
774
779
779
797
799
799
801
802
817
818
818
821
821
840
844
844
863
866
868
883
888
888
901
906
906
922
927
942
945
964
968
968
987
990
992
1007
1012
1012
1031
1036
1036
1054
1056
1059
1074
1075
1075
1078
1078
1097
1101
1101
1120
1123
1125
1140
1145
1145
1158
1163
1163
1179
1184
1199
1202
1221
1225
1225
1244
1247
1249
1264
1269
1269
1288
1293
1293
1311
1313
1316
1331
1332
1332
1335
1335
1354
1358
1358
1377
1380
1382
1397
1402
1402
1918
1921
1922
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
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
8
8
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
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
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
19
19
21
21
21
21
26
26
30
30
31
31
31
31
35
35
35
35
35
35
36
36
36
40
41
42
44
47
47
54
56
57
57
58
58
61
62
63
63
65
65
66
66
67
67
67
68
70
72
72
73
73
74
74
77
79
81
81
82
82
82
82
83
83
84
84
84
92
92
94
98
98
99
101
101
102
103
103
103
104
104
105
105
105
105
105
105
106
106
110
110
110
110
116
118
119
119
120
120
120
120
120
120
121
121
123
123
124
127
128
129
132
132
134
135
138
138
138
139
144
145
149
149
150
150
152
152
154
155
155
156
156
157
159
159
159
162
162
162
162
162
164
164
164
164
164
166
166
168
172
173
173
174
174
174
175
179
182
182
187
187
189
190
190
191
191
191
191
191
191
191
193
195
196
198
198
199
199
200
200
201
202
205
206
209
210
211
215
215
218
218
220
220
223
225
225
226
226
226
227
227
229
229
230
230
231
231
234
235
235
235
235
238
238
245
246
247
247
249
253
257
258
258
260
260
260
261
261
262
262
262
262
262
262
262
262
267
267
267
268
272
272
273
273
276
276
276
277
277
278
278
280
281
282
282
283
287
287
290
292
294
295
295
295
295
296
297
297
298
298
300
301
303
305
305
306
306
308
308
308
310
310
310
310
313
313
316
317
326
328
329
331
331
331
331
332
332
333
333
333
333
333
333
333
333
338
342
342
342
343
347
347
347
348
348
348
351
352
352
353
355
360
360
362
365
366
367
368
368
369
369
370
371
372
373
375
375
376
376
377
377
381
381
381
381
388
389
389
391
391
393
393
396
400
400
405
408
408
408
409
413
413
413
413
414
414
418
418
419
419
421
424
426
426
428
429
432
444
444
446
446
447
451
451
451
451
452
452
455
455
455
455
456
456
456
456
473
473
474
475
477
479
479
484
486
488
489
493
493
494
494
494
499
499
502
502
504
504
509
513
513
518
518
518
521
521
522
522
523
523
523
523
526
527
527
527
527
534
539
539
541
543
546
554
557
557
559
559
559
559
559
560
561
564
564
564
565
565
565
565
568
568
584
586
586
588
588
588
592
593
597
597
597
598
598
599
602
602
602
602
607
610
612
615
615
617
617
622
626
626
627
632
632
634
635
639
639
640
640
645
650
650
664
666
668
668
669
669
671
673
673
673
673
681
685
686
689
700
705
705
705
706
708
710
710
711
711
712
712
731
734
736
739
743
743
744
744
748
748
748
748
751
756
756
775
780
780
798
799
800
801
803
818
822
822
841
845
845
864
867
869
884
889
889
902
907
907
923
928
938
942
943
946
965
969
969
988
991
993
1008
1013
1013
1032
1037
1037
1055
1057
1060
1075
1079
1079
1098
1102
1102
1121
1124
1126
1141
1146
1146
1159
1164
1164
1180
1185
1195
1199
1200
1203
1222
1226
1226
1245
1248
1250
1265
1270
1270
1289
1294
1294
1312
1314
1317
1332
1336
1336
1355
1359
1359
1378
1381
1383
1398
1403
1403
1919
1922
1923
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
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
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
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
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
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
20
20
21
21
21
21
21
21
22
22
23
23
23
23
23
23
27
27
29
29
31
31
32
32
32
32
36
36
36
36
37
37
37
37
40
40
40
41
41
41
43
43
43
45
48
48
50
50
55
55
58
58
58
58
58
58
62
63
64
67
67
68
68
68
69
71
73
73
73
74
74
75
75
75
78
80
81
81
82
82
83
83
83
84
84
84
84
84
84
84
84
85
85
92
93
102
102
102
102
102
103
103
104
104
105
105
106
106
106
106
106
107
107
111
111
117
117
118
118
120
120
121
121
121
121
122
125
128
129
130
131
133
133
133
135
135
135
135
138
138
138
139
139
139
145
145
150
150
150
150
151
151
151
153
153
156
156
156
156
156
156
158
160
160
160
165
165
165
165
165
169
173
173
174
174
174
174
174
175
175
175
175
175
175
180
180
188
188
188
189
189
191
191
192
192
192
192
192
194
196
197
199
199
200
200
201
202
203
206
206
206
206
209
209
209
210
210
210
212
216
216
219
224
224
226
227
227
227
227
227
227
227
228
230
230
230
231
231
232
232
235
236
236
236
236
238
238
239
239
245
245
245
246
246
246
247
248
257
258
259
259
259
260
260
261
262
262
263
263
263
263
263
263
268
268
268
269
273
273
274
274
277
277
277
277
277
278
280
280
280
281
281
281
283
283
284
286
288
288
288
291
293
293
295
295
296
296
298
298
298
298
298
298
301
302
304
306
306
307
307
309
309
309
311
311
314
316
316
316
317
317
317
326
329
330
330
330
331
331
332
332
333
333
334
334
334
334
339
341
343
343
343
343
344
348
348
348
348
348
348
349
349
351
351
351
351
351
352
352
352
353
354
356
360
361
366
366
369
369
369
369
369
369
370
371
372
373
376
376
377
377
378
378
382
382
382
382
389
390
394
394
397
399
401
401
401
406
406
409
410
412
412
414
414
414
414
415
415
419
419
420
420
422
427
429
430
433
445
448
452
452
452
452
453
453
454
456
456
456
456
456
457
457
464
464
473
474
475
478
480
483
485
489
490
494
494
495
495
495
500
500
503
510
512
514
514
514
519
519
519
519
523
523
524
524
524
524
527
528
528
528
528
535
540
542
544
547
555
558
560
560
560
561
562
565
565
565
566
566
566
566
567
569
569
569
577
577
585
586
587
589
589
594
596
598
598
598
599
599
603
603
608
611
613
616
623
625
627
627
627
628
633
633
635
636
640
640
641
641
646
651
651
665
667
669
669
669
669
670
670
672
674
674
674
674
686
687
690
701
706
706
706
707
709
711
711
712
712
713
713
732
735
737
740
744
744
745
745
749
749
752
757
757
776
781
781
799
801
801
804
819
823
823
842
846
846
865
868
870
885
890
890
903
908
908
924
926
926
929
943
944
947
966
970
970
989
992
994
1009
1014
1014
1033
1038
1038
1056
1058
1061
1076
1080
1080
1099
1103
1103
1122
1125
1127
1142
1147
1147
1160
1165
1165
1181
1183
1183
1186
1200
1201
1204
1223
1227
1227
1246
1249
1251
1266
1271
1271
1290
1295
1295
1313
1315
1318
1333
1337
1337
1356
1360
1360
1379
1382
1384
1399
1404
1404
1920
1923
1924
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
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
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
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
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
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
21
21
21
21
21
21
22
23
23
24
24
24
24
28
28
30
30
32
32
33
33
33
33
37
37
37
37
38
38
41
41
42
42
43
43
44
44
44
49
49
51
51
52
52
52
56
56
59
59
59
59
59
59
59
59
63
63
63
64
65
68
69
69
69
70
73
74
74
75
79
81
81
84
84
84
84
84
85
85
85
85
85
85
85
85
86
86
86
86
92
92
93
94
98
98
99
103
103
103
103
103
104
104
105
105
105
106
107
107
107
107
108
108
110
112
112
119
119
119
119
121
121
123
126
129
131
131
132
136
136
139
139
140
140
140
146
151
151
152
152
152
154
154
156
157
157
157
157
157
157
157
157
159
161
161
161
162
162
166
166
166
166
166
170
173
174
175
175
175
175
176
176
189
189
190
190
190
190
193
195
196
196
198
200
200
200
201
202
203
204
207
207
207
210
210
211
211
213
217
217
218
218
220
225
225
228
228
228
228
228
228
228
228
228
228
229
232
232
233
233
236
236
237
237
237
237
239
239
240
240
246
246
247
247
247
247
248
249
253
258
259
260
260
261
261
261
261
262
264
264
265
269
269
269
270
274
275
276
276
278
278
278
279
281
281
282
282
284
284
286
287
292
296
296
297
297
299
299
299
299
299
299
299
299
302
302
303
305
307
307
308
308
309
309
310
310
312
312
313
313
315
317
317
318
318
320
330
331
331
331
332
332
332
332
333
333
341
342
344
345
349
349
349
349
350
352
352
352
352
353
353
354
355
357
360
360
361
362
366
367
367
370
370
370
370
370
370
370
370
371
372
373
373
374
377
377
378
378
378
379
379
383
383
383
383
389
389
390
391
395
395
399
400
410
411
413
415
415
415
415
415
416
416
420
421
422
422
426
426
428
430
431
433
434
444
444
446
449
453
453
453
454
454
454
455
457
457
458
458
462
465
465
473
473
474
475
476
479
479
481
484
486
486
490
491
491
495
496
496
501
501
502
502
504
512
513
520
520
524
524
525
525
525
525
528
528
529
529
529
529
535
535
539
539
541
543
545
546
548
556
557
557
559
561
561
561
562
563
566
567
567
567
567
568
575
578
578
586
586
586
587
588
590
590
592
595
597
599
599
599
599
600
600
604
604
604
609
612
614
615
615
617
625
626
629
634
634
636
637
641
642
647
652
652
666
668
670
670
670
671
671
673
675
675
675
675
687
688
691
702
707
707
707
708
710
712
713
714
714
733
736
738
741
745
745
746
746
750
750
753
758
758
777
782
782
800
802
805
820
824
824
843
847
847
866
869
871
886
891
891
904
909
909
925
927
930
944
945
948
967
971
971
990
993
995
1010
1015
1015
1034
1039
1039
1057
1059
1062
1077
1081
1081
1100
1104
1104
1123
1126
1128
1143
1148
1148
1161
1166
1166
1182
1184
1187
1201
1202
1205
1224
1228
1228
1247
1250
1252
1267
1272
1272
1291
1296
1296
1314
1316
1319
1334
1338
1338
1357
1361
1361
1380
1383
1385
1400
1405
1405
1921
1924
1925
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
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
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
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
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
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
23
23
23
23
23
23
29
29
30
33
33
34
34
34
34
38
38
38
38
38
39
40
41
41
41
41
42
42
42
42
42
43
45
45
45
50
50
53
53
53
53
57
57
57
59
59
59
59
60
60
60
60
62
63
63
64
64
64
65
69
70
70
70
71
73
73
74
74
74
74
75
75
75
76
79
80
82
82
82
82
85
86
86
86
86
86
86
87
87
87
87
92
93
94
102
103
103
104
104
104
104
104
104
105
105
105
106
106
106
107
108
108
108
108
109
109
110
110
110
110
111
111
111
111
113
113
119
119
119
120
121
121
122
122
130
132
132
132
133
133
136
137
138
139
139
139
139
140
140
140
140
140
140
141
145
145
147
148
152
152
153
153
155
155
155
157
157
157
157
157
158
158
158
158
160
160
162
162
162
162
163
163
164
164
164
167
167
167
167
171
173
174
174
174
175
175
175
175
175
175
176
176
176
176
176
176
176
177
182
190
190
190
190
190
190
190
196
199
199
200
200
201
201
201
202
202
203
203
204
205
207
208
208
208
208
208
209
210
210
210
210
211
211
211
211
211
212
214
217
218
218
218
218
219
219
226
226
226
228
228
228
228
229
229
229
229
229
229
229
230
230
233
233
234
234
237
237
237
238
238
238
238
241
241
244
245
246
246
246
246
247
247
247
247
247
247
248
248
249
257
259
261
261
261
263
265
265
266
266
266
266
270
270
270
271
273
273
274
274
275
275
276
276
276
277
277
278
279
280
280
281
281
281
281
282
282
282
282
282
283
285
285
287
287
288
288
293
295
297
297
297
298
298
299
299
299
299
300
300
300
300
303
303
303
303
304
306
308
308
309
309
310
310
310
310
311
311
313
313
313
314
314
315
316
316
317
317
317
317
318
318
318
318
318
319
321
321
321
321
330
331
331
331
332
332
332
332
332
332
334
342
342
343
343
345
346
348
348
349
349
349
350
350
350
350
351
351
352
352
352
352
353
353
353
353
353
354
356
358
360
361
362
368
368
368
370
370
370
370
370
371
371
371
371
372
373
375
378
378
379
379
379
379
379
379
380
380
384
384
384
384
388
389
389
390
390
391
396
396
400
400
401
401
408
411
412
414
416
416
416
416
416
416
416
417
417
419
419
420
420
421
422
426
427
427
429
431
432
434
434
434
434
435
443
444
444
445
445
450
454
454
454
455
455
455
455
456
456
456
456
456
456
458
458
459
459
463
463
473
474
475
480
482
483
485
491
492
492
492
492
492
494
494
495
495
496
497
497
501
502
502
502
502
503
503
513
513
514
514
521
521
521
525
525
526
526
526
526
529
529
529
529
530
530
530
530
539
540
540
542
546
547
547
547
547
549
556
557
557
557
558
558
562
562
562
563
564
565
565
566
566
567
568
568
568
568
568
569
569
576
576
586
587
587
588
591
591
596
596
598
600
600
601
601
602
602
602
602
605
605
605
605
605
605
613
614
615
615
615
616
616
626
626
627
627
630
635
635
637
638
640
640
641
641
642
643
648
653
653
667
669
671
671
671
672
672
674
676
676
676
676
688
689
692
703
708
708
708
709
711
711
711
712
712
713
714
715
715
737
739
742
746
746
747
747
748
748
748
748
751
751
754
759
759
778
783
783
803
806
821
825
825
844
848
848
870
872
887
892
892
905
910
910
926
928
931
945
946
949
968
972
972
994
996
1011
1016
1016
1035
1040
1040
1060
1063
1078
1082
1082
1101
1105
1105
1127
1129
1144
1149
1149
1162
1167
1167
1183
1185
1188
1202
1203
1206
1225
1229
1229
1251
1253
1268
1273
1273
1292
1297
1297
1317
1320
1335
1339
1339
1358
1362
1362
1384
1386
1401
1406
1406
1922
1925
1926
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
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
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
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
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
16
16
16
16
17
17
17
17
17
17
17
18
18
19
19
19
21
22
22
22
24
24
30
30
31
34
34
35
35
35
35
37
38
38
38
39
39
39
39
40
41
42
42
43
43
43
44
46
46
46
51
51
54
54
54
57
57
57
59
59
60
60
61
61
61
61
63
65
65
65
66
67
67
70
71
71
71
72
74
75
76
76
76
77
78
79
80
82
82
82
82
83
83
85
85
86
86
86
86
86
86
86
88
88
88
88
90
94
95
103
103
103
105
105
105
105
105
105
106
106
106
107
107
107
108
109
109
109
109
110
111
111
112
112
112
114
114
117
119
120
120
121
121
121
123
123
131
133
134
134
136
136
136
138
139
140
140
141
141
141
142
143
146
146
148
149
153
153
153
154
155
155
155
157
157
158
158
158
159
159
159
159
163
163
163
163
165
165
165
168
168
168
168
172
174
175
176
176
176
176
177
177
177
177
177
178
182
188
188
190
190
190
191
191
191
191
192
192
197
200
200
202
202
202
203
203
204
205
206
207
207
207
209
209
209
209
210
211
211
212
212
212
213
215
218
219
219
220
220
226
226
226
228
228
229
229
230
230
230
230
230
231
231
234
234
235
235
238
239
239
239
239
242
242
245
245
246
247
247
248
248
248
249
249
250
258
258
258
259
260
260
260
261
262
262
263
263
264
266
266
267
267
267
271
271
271
272
274
275
276
276
277
278
278
278
278
278
280
281
281
282
282
283
283
283
284
286
286
289
289
294
295
297
297
297
299
299
299
299
300
300
301
301
301
301
301
303
303
304
304
305
307
309
309
310
311
311
312
312
313
314
314
315
315
316
317
318
318
319
319
319
320
322
322
322
330
331
332
332
333
333
333
333
333
334
334
335
344
344
346
347
349
349
349
349
350
351
351
352
352
353
353
354
354
354
355
357
358
359
362
363
368
368
368
370
370
371
371
371
371
371
372
372
372
372
373
373
373
374
376
379
379
380
380
380
380
380
381
381
385
385
385
385
389
391
391
392
397
397
402
402
408
412
413
414
415
416
416
417
417
417
417
417
418
418
420
421
422
423
426
428
428
432
433
435
435
435
436
444
446
446
451
455
455
455
456
457
457
457
457
459
459
460
460
471
475
476
481
483
484
484
484
486
486
486
492
493
493
493
493
495
496
497
498
498
502
503
503
504
504
515
515
521
522
522
526
526
527
527
527
527
527
529
529
530
530
531
531
531
531
539
541
541
547
548
548
548
550
557
558
559
559
563
563
563
564
565
566
567
568
569
569
569
570
570
584
588
588
589
592
592
597
597
597
597
599
599
599
601
601
602
603
603
606
606
606
606
606
614
615
616
617
617
628
628
631
636
636
638
639
641
642
643
644
649
654
654
668
670
672
672
672
673
673
675
677
677
677
677
689
690
693
704
709
709
709
710
712
712
713
714
715
716
716
738
740
743
747
747
748
749
749
752
752
755
760
760
779
784
784
804
807
822
826
826
845
849
849
871
873
888
893
893
906
911
911
927
929
932
946
947
950
969
973
973
995
997
1012
1017
1017
1036
1041
1041
1061
1064
1079
1083
1083
1102
1106
1106
1128
1130
1145
1150
1150
1163
1168
1168
1184
1186
1189
1203
1204
1207
1226
1230
1230
1252
1254
1269
1274
1274
1293
1298
1298
1318
1321
1336
1340
1340
1359
1363
1363
1385
1387
1402
1407
1407
1923
1926
1927
1
1
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
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
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
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
17
17
17
19
19
20
21
22
22
23
23
23
23
23
23
24
24
25
25
30
31
31
35
35
36
36
36
36
36
36
38
39
39
40
40
40
40
41
41
41
42
42
42
43
43
44
44
47
47
52
52
54
55
58
58
58
58
59
59
59
59
59
59
60
60
61
61
63
64
66
66
66
67
68
71
72
72
73
74
75
75
75
75
76
77
77
77
78
82
83
83
83
83
83
84
84
84
84
85
85
85
85
85
85
86
86
87
87
87
87
87
87
87
91
95
96
103
103
103
104
104
105
105
106
106
106
106
106
106
107
107
108
108
110
110
110
110
111
112
112
112
115
115
118
118
121
121
121
121
121
121
121
122
124
124
132
132
133
133
133
134
135
135
137
137
139
139
139
140
140
140
140
140
141
141
142
142
144
144
149
149
149
153
153
153
153
154
154
155
156
156
156
156
157
157
157
157
157
157
158
158
159
159
159
164
164
164
164
165
166
166
166
169
169
169
169
173
174
175
175
175
175
175
175
176
176
176
177
177
177
177
178
178
178
178
189
189
191
192
192
192
192
192
192
192
192
196
198
201
201
203
204
204
205
206
207
208
208
209
210
210
210
211
211
211
212
212
213
213
216
218
219
220
220
221
221
224
227
227
227
227
228
228
228
228
228
228
229
229
229
230
230
230
230
230
231
232
232
235
235
236
236
239
239
240
240
243
243
246
246
246
246
247
247
247
248
248
249
249
250
251
258
260
260
260
261
261
261
263
263
263
263
263
263
265
267
267
267
272
272
273
275
276
276
277
277
278
279
279
279
279
281
281
281
282
282
282
282
283
283
284
284
287
287
287
288
288
288
290
290
295
295
298
298
298
298
299
299
299
299
299
299
300
300
300
300
301
301
304
305
305
306
308
309
310
310
311
312
312
313
313
314
315
315
317
317
317
318
318
318
319
319
320
320
322
331
331
331
332
333
334
334
334
334
334
334
334
334
334
336
342
343
343
343
345
345
347
348
350
350
350
351
352
352
352
352
352
353
353
353
353
354
354
355
355
358
359
360
363
364
366
369
369
369
369
370
370
370
370
370
370
371
371
371
372
372
373
374
374
374
375
377
380
380
380
381
381
382
382
386
386
389
390
392
392
393
398
398
400
401
401
401
403
403
413
414
416
417
418
418
418
418
419
419
421
422
422
423
424
427
433
434
435
437
444
445
447
447
452
455
456
456
456
456
456
456
457
458
458
458
458
460
460
461
461
465
472
476
477
482
484
484
486
487
487
487
493
493
494
496
497
498
499
499
502
503
504
504
505
505
513
514
514
514
516
516
523
523
527
527
528
528
528
528
530
531
531
532
532
535
540
548
548
551
557
558
559
560
560
564
564
565
566
567
568
568
569
569
569
569
570
570
570
571
571
578
585
589
589
590
593
593
597
598
599
600
600
600
602
602
603
604
604
606
607
607
615
615
616
617
618
618
626
627
627
627
629
629
632
637
637
639
640
642
643
644
645
650
655
655
669
671
673
673
673
674
674
676
678
678
690
691
694
705
710
710
711
713
713
714
715
716
717
717
739
741
744
748
748
749
750
750
753
753
756
761
761
780
785
785
805
808
823
827
827
846
850
850
872
874
889
894
894
907
912
912
928
930
933
947
948
951
970
974
974
996
998
1013
1018
1018
1037
1042
1042
1062
1065
1080
1084
1084
1103
1107
1107
1129
1131
1146
1151
1151
1164
1169
1169
1185
1187
1190
1204
1205
1208
1227
1231
1231
1253
1255
1270
1275
1275
1294
1299
1299
1319
1322
1337
1341
1341
1360
1364
1364
1386
1388
1403
1408
1408
1924
1927
1928
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
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
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
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
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
19
20
21
21
23
23
23
23
23
24
24
24
24
24
24
24
24
24
30
32
32
36
36
37
37
37
37
37
37
37
37
37
38
38
39
39
39
39
40
40
40
41
41
41
41
41
42
42
42
43
43
46
46
48
48
53
53
56
57
57
58
58
59
59
60
60
61
61
63
64
66
66
67
67
68
69
71
71
72
73
73
74
74
74
74
75
76
76
76
76
77
78
79
84
84
84
84
84
85
85
85
87
87
88
88
88
88
88
88
88
91
91
95
95
97
104
105
105
105
105
106
106
106
106
106
107
107
107
107
107
107
109
109
111
111
111
111
112
113
113
116
116
119
119
121
122
122
122
122
122
122
122
122
122
124
124
125
132
132
132
133
133
134
134
134
135
135
137
137
137
137
138
138
138
138
139
139
139
140
140
140
141
141
141
141
149
150
154
154
154
154
155
155
155
155
156
156
156
157
157
158
158
159
159
160
165
165
165
165
165
166
166
166
167
170
170
170
170
174
174
174
174
174
174
175
175
175
175
176
176
176
176
176
176
177
177
179
179
182
182
190
190
190
190
192
193
193
193
193
193
193
193
193
199
200
202
202
204
205
205
206
206
207
208
208
208
208
208
209
209
209
210
210
210
211
211
211
212
212
217
218
219
221
221
221
221
222
225
226
226
227
227
228
228
229
229
229
229
229
230
230
230
231
231
231
232
236
236
237
237
239
240
241
241
244
244
245
245
246
246
246
246
246
247
247
247
248
248
250
250
252
261
261
261
262
262
262
264
264
264
264
264
264
264
264
266
268
268
271
271
273
273
274
276
276
277
277
277
278
279
279
279
279
279
279
279
280
280
280
280
281
281
281
282
282
282
283
283
283
287
287
287
288
288
288
289
289
289
295
295
296
296
297
297
298
298
299
299
300
300
301
301
301
301
303
303
305
307
309
309
309
311
311
312
313
313
313
314
314
315
316
316
316
316
317
317
317
318
318
318
319
319
331
332
332
332
334
334
334
335
335
335
335
335
335
335
335
335
335
337
342
342
342
343
344
344
344
348
348
349
350
350
350
350
351
351
351
351
352
352
352
352
352
353
353
353
353
354
354
354
359
359
359
361
363
363
365
367
368
368
369
369
370
370
371
371
372
372
374
375
375
375
376
378
381
381
382
382
383
383
387
387
389
390
392
392
393
394
399
399
400
400
400
401
402
402
402
408
408
414
415
416
416
417
417
417
418
419
419
420
420
422
423
424
425
426
428
434
435
435
438
438
444
445
447
447
448
453
455
455
455
455
455
456
457
457
457
457
457
457
458
459
459
461
461
462
462
465
472
472
476
476
478
483
485
487
488
488
488
494
495
497
498
499
500
500
502
503
505
505
505
505
506
513
513
513
514
515
515
515
521
521
524
524
528
528
529
529
529
529
529
529
531
533
533
539
541
549
552
557
558
560
560
560
561
563
563
565
565
566
567
568
568
568
568
569
569
570
570
570
570
571
571
571
578
585
585
589
589
590
591
594
594
599
600
601
601
601
601
601
603
603
604
605
605
608
608
615
616
616
618
618
618
619
626
626
626
627
628
628
628
633
638
638
640
641
643
644
645
646
651
656
656
670
672
674
674
674
675
675
677
679
679
691
692
692
695
695
706
709
709
711
711
712
714
714
715
716
717
718
718
740
742
745
747
747
749
749
750
751
751
754
754
757
762
762
781
786
786
806
809
824
828
828
847
851
851
873
875
890
895
895
908
913
913
929
931
934
948
949
949
952
952
971
975
975
997
999
1014
1019
1019
1038
1043
1043
1063
1066
1081
1085
1085
1104
1108
1108
1130
1132
1147
1152
1152
1165
1170
1170
1186
1188
1191
1205
1206
1206
1209
1209
1228
1232
1232
1254
1256
1271
1276
1276
1295
1300
1300
1320
1323
1338
1342
1342
1361
1365
1365
1387
1389
1404
1409
1409
1925
1928
1929
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
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
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
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
19
21
22
24
25
25
25
25
25
25
25
25
25
25
25
31
33
33
37
37
37
37
38
38
38
38
38
38
38
40
40
41
41
41
42
42
42
42
43
43
44
44
46
47
47
49
49
54
54
57
57
58
59
59
59
60
60
61
61
62
62
67
67
68
68
69
70
72
73
74
74
75
76
77
77
77
77
78
79
80
83
84
84
84
85
86
86
86
86
86
88
88
89
89
89
89
89
96
96
98
103
103
103
104
106
106
107
107
107
107
108
108
108
110
112
112
112
112
113
114
114
117
117
120
120
120
122
122
122
122
123
123
123
123
125
125
126
134
134
135
135
135
136
136
138
138
139
139
139
139
139
140
140
141
141
142
142
146
151
155
155
155
155
155
156
156
156
157
157
157
158
158
159
159
160
160
161
166
166
166
166
167
167
168
171
171
171
171
175
175
175
176
176
176
177
177
177
177
177
178
178
180
180
180
183
183
190
191
191
191
191
193
193
193
193
194
194
194
194
196
200
201
203
203
205
206
206
207
207
208
209
209
209
210
210
210
211
211
212
212
213
213
218
222
222
222
222
223
226
226
227
228
228
228
229
229
230
230
231
231
231
232
232
232
233
237
237
238
238
239
239
239
239
241
242
242
245
245
246
246
247
247
248
248
249
249
251
251
253
258
258
262
262
262
262
264
264
264
264
265
265
265
265
267
269
269
272
274
274
275
277
278
278
279
280
280
280
280
280
281
281
281
281
282
282
283
283
284
284
284
289
289
289
290
290
290
293
296
296
297
297
297
298
299
299
299
300
300
301
301
302
302
302
302
303
304
308
309
310
310
312
312
313
314
314
314
315
315
316
317
317
317
317
318
318
319
319
320
320
333
333
333
335
335
335
335
335
335
335
336
336
336
336
336
336
338
344
345
345
345
349
349
350
351
351
352
352
352
352
353
353
353
354
354
354
355
355
355
360
362
364
364
366
368
368
369
370
370
370
371
371
371
371
372
372
373
373
375
377
379
382
382
383
383
384
384
385
385
385
385
388
388
393
393
394
395
400
400
402
403
403
403
406
409
409
415
416
416
417
418
418
420
420
421
421
422
423
424
425
426
427
429
435
439
439
448
448
449
454
456
457
458
458
458
458
458
458
459
460
460
462
462
463
463
477
477
479
484
484
484
486
488
495
496
498
499
500
501
501
506
506
506
506
507
515
516
516
516
519
522
522
525
525
529
529
529
530
530
530
530
530
531
531
531
531
534
534
535
540
542
550
553
561
561
561
562
564
566
566
567
568
569
570
570
571
571
571
571
572
572
572
590
590
591
592
595
595
597
597
600
601
602
604
604
605
606
606
609
609
617
619
619
619
620
628
629
629
629
634
639
639
641
642
644
645
646
647
652
657
657
671
673
675
675
675
676
676
677
677
677
677
678
680
680
692
696
696
707
710
712
712
713
715
715
716
717
718
719
719
741
743
746
748
750
750
751
752
752
755
755
758
763
763
782
787
787
801
807
810
825
829
829
848
852
852
874
876
891
896
896
909
914
914
930
932
935
949
953
953
972
976
976
998
1000
1015
1020
1020
1039
1044
1044
1064
1067
1082
1086
1086
1105
1109
1109
1131
1133
1148
1153
1153
1166
1171
1171
1187
1189
1192
1206
1210
1210
1229
1233
1233
1255
1257
1272
1277
1277
1296
1301
1301
1321
1324
1339
1343
1343
1362
1366
1366
1388
1390
1405
1410
1410
1926
1929
1930
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
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
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
11
11
11
11
11
11
11
11
11
11
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
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
14
14
14
14
14
14
14
14
14
14
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
19
21
22
23
25
25
25
25
25
26
26
26
26
26
26
30
30
34
34
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
41
41
41
41
42
42
42
42
43
43
43
43
44
45
46
48
48
50
55
55
58
58
58
58
58
59
59
59
60
60
60
63
63
68
68
69
70
71
73
74
75
75
77
78
78
78
79
80
81
83
83
83
84
85
85
85
86
87
87
87
87
87
90
97
97
104
104
104
105
105
105
105
105
106
106
107
107
107
108
108
109
109
111
113
113
114
115
115
118
118
120
120
120
122
122
123
123
124
124
124
124
126
126
133
135
135
136
136
137
137
137
137
139
139
139
139
140
140
140
140
141
141
142
143
146
152
153
156
156
156
156
156
156
157
157
157
157
157
158
158
158
161
161
162
167
167
167
167
168
168
172
172
172
172
175
175
175
176
176
176
176
176
177
177
177
178
178
178
179
181
181
181
181
190
190
191
191
191
191
192
193
193
194
194
195
195
195
195
200
201
202
204
207
208
208
208
208
209
210
210
210
210
210
211
211
211
211
212
212
213
214
219
223
223
223
223
227
227
227
227
227
228
228
228
229
229
229
230
232
232
232
233
233
234
238
238
239
240
240
242
243
243
246
246
246
246
247
247
247
247
248
248
249
250
252
252
259
259
260
260
260
262
262
262
264
264
265
265
266
266
266
266
268
270
270
273
275
278
279
279
279
279
280
281
281
281
281
281
281
281
282
282
282
282
283
283
284
285
285
288
290
290
290
291
291
294
294
298
298
298
298
298
298
299
299
299
300
300
300
303
303
303
303
303
303
304
305
309
311
311
313
314
315
315
315
316
316
317
317
318
318
318
318
318
318
319
319
320
321
333
333
333
335
335
336
336
336
336
336
337
337
337
337
337
339
343
345
346
346
350
350
350
352
352
352
352
353
353
353
353
353
354
354
354
355
355
356
356
361
363
365
365
369
369
369
369
369
370
370
370
371
371
371
372
372
373
373
373
374
374
378
380
383
383
384
384
385
386
386
389
389
394
394
396
401
401
401
403
404
404
407
407
416
416
416
417
417
418
419
419
421
422
424
425
426
426
427
428
436
440
440
449
449
455
456
457
458
459
459
459
460
461
461
463
463
464
464
478
478
485
485
485
486
486
486
487
499
500
501
502
502
507
507
507
507
514
516
517
517
520
520
526
526
529
529
530
530
530
531
531
531
531
532
532
535
535
539
541
551
554
562
562
562
565
567
569
569
570
571
571
572
572
572
573
573
573
591
591
592
596
596
598
598
599
599
599
601
603
606
607
607
610
610
618
620
620
620
627
629
630
630
635
640
640
645
646
647
648
653
658
658
672
674
676
676
676
677
678
678
679
681
681
693
697
697
708
711
713
716
716
717
718
719
720
720
742
744
747
749
752
753
753
756
756
759
764
764
783
788
788
799
801
802
808
811
826
830
830
849
853
853
875
877
892
897
897
910
915
915
931
933
936
950
954
954
973
977
977
999
1001
1016
1021
1021
1040
1045
1045
1065
1068
1083
1087
1087
1106
1110
1110
1132
1134
1149
1154
1154
1167
1172
1172
1188
1190
1193
1207
1211
1211
1230
1234
1234
1256
1258
1273
1278
1278
1297
1302
1302
1322
1325
1340
1344
1344
1363
1367
1367
1389
1391
1406
1411
1411
1927
1930
1931
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
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
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
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
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
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
18
18
19
19
19
19
23
23
23
23
23
25
25
26
26
27
27
27
27
31
31
35
35
37
37
38
38
38
39
39
39
39
40
40
40
40
40
41
41
41
42
42
43
43
44
44
44
44
44
45
45
45
46
47
51
56
56
56
58
58
58
58
59
60
61
61
62
62
62
62
64
64
70
71
72
74
75
76
76
76
79
80
81
82
85
86
86
86
87
88
91
106
106
106
106
106
106
107
107
107
107
107
108
108
108
108
109
110
110
112
114
114
115
116
116
118
119
119
121
121
121
121
122
122
122
122
122
122
123
123
124
124
134
134
136
136
136
137
138
138
138
139
140
140
141
141
141
142
142
142
143
143
143
144
149
153
153
154
154
156
156
156
156
157
158
158
158
159
159
160
160
160
160
162
162
163
168
168
168
168
173
173
173
173
175
176
176
176
176
177
177
177
178
178
178
179
179
179
180
182
189
190
191
192
192
192
192
192
193
193
193
193
193
193
194
194
195
195
196
201
202
203
203
205
207
207
208
208
209
209
209
210
210
211
211
211
212
212
213
213
213
214
214
214
215
220
224
224
225
227
227
227
227
228
229
230
230
231
231
231
231
231
231
233
233
235
239
239
240
241
241
243
244
244
246
247
247
247
247
248
248
249
249
249
250
250
250
251
260
261
261
261
261
263
263
263
263
264
264
264
264
264
264
265
265
266
266
269
271
271
274
276
278
278
279
279
280
280
280
281
281
282
282
282
283
283
284
284
284
285
285
285
286
286
289
289
291
291
296
298
298
298
298
299
299
300
301
301
302
302
302
302
303
304
304
304
304
304
305
309
310
312
312
314
315
316
316
316
316
317
317
317
318
318
319
319
319
319
320
320
320
321
321
321
322
331
334
334
334
334
335
335
335
335
335
335
336
336
337
337
337
338
340
344
344
349
349
350
351
351
352
353
353
354
354
354
355
355
355
355
356
356
356
356
357
357
362
364
367
369
369
369
369
370
371
372
372
373
373
373
373
374
374
374
374
375
375
379
381
384
384
385
385
386
387
387
390
390
397
402
402
402
402
416
417
417
418
420
420
422
422
423
425
426
427
427
428
429
429
437
441
441
456
457
457
458
460
461
462
462
464
464
465
465
486
487
487
487
487
488
500
501
502
503
503
508
508
515
515
527
527
529
530
531
531
531
532
532
533
533
535
536
536
540
542
542
552
555
563
566
568
570
570
570
571
572
573
574
574
574
593
597
597
600
600
600
600
602
604
607
608
608
611
611
619
621
628
628
636
641
641
646
647
648
649
654
659
659
673
677
677
677
678
679
679
680
682
682
694
698
698
709
712
714
717
717
718
719
720
721
721
743
745
748
750
753
754
754
757
757
760
765
765
784
789
800
802
809
812
827
831
831
850
854
854
876
878
893
898
898
911
916
916
934
937
951
955
955
974
978
978
1000
1002
1017
1022
1022
1041
1046
1066
1069
1084
1088
1088
1107
1111
1111
1133
1135
1150
1155
1155
1168
1173
1173
1191
1194
1208
1212
1212
1231
1235
1235
1257
1259
1274
1279
1279
1298
1303
1323
1326
1341
1345
1345
1364
1368
1368
1390
1392
1407
1412
1412
1928
1931
1932
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
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
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
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
14
14
14
14
14
14
14
14
14
14
14
15
15
15
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
20
20
24
24
24
24
24
24
25
25
25
25
25
25
26
26
27
27
36
36
37
38
39
39
40
40
41
41
41
41
41
42
42
44
45
45
45
45
45
46
46
46
46
47
48
52
54
54
56
57
57
58
60
61
62
62
63
63
63
63
63
65
65
71
72
73
74
75
75
76
77
80
81
82
82
83
84
86
87
87
88
89
89
89
89
89
89
89
89
92
92
95
107
107
107
107
108
108
108
109
109
109
110
111
111
112
112
112
112
113
115
116
116
116
117
117
119
120
120
120
120
121
121
121
122
122
123
123
124
124
126
137
137
137
139
139
139
141
142
143
143
143
144
144
144
145
149
153
154
154
154
155
156
158
159
159
159
160
160
161
161
161
161
163
163
164
165
169
169
169
169
174
174
174
174
178
178
179
179
179
180
180
180
181
183
183
188
190
191
191
192
192
192
193
193
193
194
194
195
195
200
202
203
205
206
206
208
208
209
209
209
210
210
210
211
212
213
214
214
214
215
215
215
216
218
221
225
225
225
227
229
230
231
231
232
232
232
232
234
234
236
237
238
238
240
240
241
242
242
244
245
245
248
249
250
250
250
250
251
251
251
252
259
261
262
262
262
262
262
263
263
264
264
265
265
266
266
267
267
270
272
272
274
275
275
276
277
279
279
280
281
281
281
282
283
284
285
285
285
286
286
286
287
287
292
292
296
296
298
300
300
301
301
302
302
303
303
303
303
305
305
305
305
305
306
311
312
312
313
313
313
315
316
316
316
317
317
318
318
320
320
320
321
321
321
322
322
322
322
322
323
331
332
333
333
334
334
335
335
336
336
337
337
339
341
349
350
350
350
350
352
352
354
355
355
356
356
356
356
357
357
357
357
358
358
363
363
365
367
369
371
372
373
373
374
374
374
374
375
375
375
376
376
380
380
380
382
384
384
385
385
386
386
387
388
388
389
391
391
398
403
403
409
414
418
418
419
420
421
421
421
423
424
426
426
427
428
428
429
435
435
438
442
442
444
457
458
458
459
461
462
462
462
463
463
463
465
466
466
476
476
487
488
488
488
489
493
493
495
496
501
502
502
503
504
504
509
509
522
527
528
528
530
530
531
532
532
532
533
533
534
534
537
537
539
541
548
548
553
556
557
564
566
567
567
569
571
572
573
574
575
575
575
576
589
594
598
601
601
601
603
604
604
605
606
606
608
608
608
609
609
609
612
612
615
620
622
637
641
642
642
642
647
648
649
650
655
660
660
674
676
676
678
678
678
679
680
680
681
683
683
695
699
699
710
712
713
713
715
718
718
719
720
721
722
733
744
746
749
750
750
751
754
754
754
755
755
758
758
761
766
766
785
790
800
802
810
813
828
832
832
851
855
866
877
879
894
899
899
912
917
917
935
938
952
956
956
975
979
990
1001
1003
1018
1023
1023
1042
1047
1067
1070
1085
1089
1089
1108
1112
1123
1134
1136
1151
1156
1156
1169
1174
1174
1192
1195
1209
1213
1213
1232
1236
1247
1258
1260
1275
1280
1280
1299
1304
1324
1327
1342
1346
1346
1365
1369
1380
1391
1393
1408
1413
1413
1929
1932
1933
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
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
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
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
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
15
16
16
16
16
17
17
18
18
20
20
21
24
24
25
25
26
26
26
27
27
37
37
37
37
38
38
39
39
39
39
39
40
40
41
41
42
42
42
42
43
43
46
46
46
46
47
47
47
49
53
53
55
55
57
58
58
58
59
62
62
62
63
64
64
64
64
64
66
72
74
75
76
76
77
78
78
79
80
81
82
83
83
84
84
84
85
85
87
87
89
89
89
90
90
90
90
91
93
93
95
96
107
109
109
110
110
111
112
113
113
114
116
117
117
117
118
118
120
120
121
121
121
121
122
122
122
122
123
123
124
124
124
125
125
127
131
136
137
137
137
138
138
139
140
140
144
144
145
145
154
155
155
155
156
156
157
160
160
160
160
160
162
162
162
162
165
165
166
166
170
170
170
170
175
175
175
175
178
179
180
180
181
181
183
184
189
191
191
192
193
193
193
193
193
194
194
194
195
195
196
196
197
201
201
201
203
203
203
203
206
206
207
207
208
208
208
208
209
209
209
210
210
210
211
211
212
213
215
215
216
216
218
219
221
222
226
226
226
227
228
231
231
231
233
233
233
233
233
237
238
239
239
239
241
241
242
243
243
245
246
246
246
249
250
251
251
251
252
252
260
262
262
262
263
264
264
264
264
265
265
266
266
266
267
267
268
268
270
272
273
275
276
276
276
277
278
279
279
279
279
280
280
280
281
282
282
283
284
286
286
287
287
288
291
293
293
296
297
298
299
301
302
302
302
302
304
304
304
304
306
306
306
307
314
314
314
314
314
316
316
316
317
317
317
318
318
319
321
321
321
322
322
323
323
323
323
331
332
333
333
334
334
335
335
335
336
336
337
337
338
338
340
342
346
350
350
350
351
351
351
351
352
352
353
354
355
355
356
357
357
357
357
358
358
358
359
359
363
363
364
365
366
368
369
370
373
373
373
375
375
375
375
375
379
381
381
381
383
385
386
386
387
387
388
389
389
389
390
392
392
392
399
404
404
404
409
415
419
420
421
422
422
422
424
425
425
426
427
427
427
427
428
429
429
429
429
430
434
436
436
439
443
443
444
445
447
459
460
462
463
463
463
464
464
464
465
465
466
467
467
472
476
477
477
481
487
488
489
490
492
494
494
496
497
500
501
502
502
503
503
504
505
505
505
510
510
517
522
528
529
529
531
532
533
533
533
534
534
535
535
538
538
540
540
540
542
542
542
543
547
547
549
549
553
556
557
557
558
560
567
568
568
570
571
572
572
572
573
574
575
576
576
576
577
578
578
585
589
590
595
599
601
605
606
607
607
609
609
609
610
610
610
613
613
614
615
616
618
620
622
623
630
638
642
643
643
643
646
647
648
649
650
651
656
661
661
675
677
679
679
679
680
681
681
682
684
684
696
700
700
713
714
714
716
717
718
719
719
720
721
722
723
734
738
744
746
747
752
755
755
755
756
756
759
759
762
767
767
786
791
800
802
804
810
813
814
829
833
833
852
856
867
871
877
879
880
895
900
900
913
918
918
936
939
953
957
957
976
980
991
995
1001
1003
1004
1019
1024
1024
1043
1048
1057
1061
1067
1070
1071
1086
1090
1090
1109
1113
1124
1128
1134
1136
1137
1152
1157
1157
1170
1175
1175
1193
1196
1210
1214
1214
1233
1237
1248
1252
1258
1260
1261
1276
1281
1281
1300
1305
1314
1318
1324
1327
1328
1343
1347
1347
1366
1370
1381
1385
1391
1393
1394
1409
1414
1414
1930
1933
1934
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
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
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
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
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
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
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
17
17
18
18
21
22
24
25
25
25
26
26
26
27
27
28
28
31
37
38
38
38
39
39
40
40
41
41
42
42
42
42
42
43
43
43
43
44
44
46
47
47
48
54
54
55
55
56
57
57
58
58
59
59
60
61
61
62
62
63
63
63
64
66
67
75
77
78
78
79
80
81
82
83
84
85
85
85
85
85
88
88
88
88
90
91
94
94
96
97
106
107
112
113
113
113
114
115
117
118
118
118
119
119
121
121
121
121
121
122
122
122
122
122
122
123
123
123
124
125
126
126
132
136
137
138
139
139
140
140
140
140
141
141
141
141
144
154
155
155
156
156
156
156
156
157
158
159
159
160
160
161
161
161
161
161
166
166
166
167
171
171
171
171
175
176
176
176
176
176
178
180
185
189
189
192
192
192
192
192
193
193
193
193
193
194
194
194
195
197
197
198
201
203
204
204
204
207
208
208
209
209
209
210
210
210
210
210
211
211
211
211
211
212
212
213
214
219
221
222
223
226
226
227
227
227
227
229
230
230
231
231
232
232
232
233
238
240
240
240
240
240
243
244
244
246
246
246
247
247
247
250
251
252
263
263
263
263
263
264
264
264
265
265
265
265
267
268
268
268
268
269
273
274
277
277
279
279
279
280
280
280
281
281
281
282
282
282
282
283
283
284
285
289
291
294
294
297
297
298
298
300
301
301
302
302
302
302
302
303
303
303
306
306
307
307
308
314
315
315
316
317
317
317
317
318
318
318
318
319
319
320
322
322
322
323
323
324
332
334
334
334
334
334
334
335
335
335
335
336
336
336
339
339
341
343
346
350
351
352
352
353
353
353
353
353
353
353
354
355
356
357
358
358
359
359
360
364
365
366
367
368
368
369
369
371
372
372
373
373
374
374
374
380
381
381
382
382
384
386
387
387
389
390
390
390
392
393
393
393
400
404
405
405
415
415
419
419
421
423
423
425
426
426
427
427
428
429
429
430
430
430
430
431
435
436
436
437
440
444
444
445
447
448
459
461
463
464
464
464
465
465
466
466
466
466
467
468
468
472
477
478
482
490
491
493
494
494
495
501
502
503
503
504
505
505
506
506
506
511
511
517
528
528
530
530
532
532
532
534
535
535
536
536
539
539
540
542
543
543
543
548
548
549
549
550
557
558
558
560
561
569
571
572
572
573
573
574
575
576
577
577
577
579
579
579
579
585
590
591
596
600
606
607
607
607
608
610
610
610
611
611
614
614
615
616
618
619
623
624
630
639
644
644
647
648
649
650
651
652
657
662
662
676
678
680
681
682
682
683
685
685
697
701
701
715
717
718
719
720
720
721
722
723
724
739
747
748
753
756
756
756
757
757
760
760
763
768
768
787
792
805
814
815
830
834
834
853
857
872
880
881
896
901
901
914
919
919
937
940
954
958
958
977
981
996
1004
1005
1020
1025
1025
1044
1049
1062
1071
1072
1087
1091
1091
1110
1114
1129
1137
1138
1153
1158
1158
1171
1176
1176
1194
1197
1211
1215
1215
1234
1238
1253
1261
1262
1277
1282
1282
1301
1306
1319
1328
1329
1344
1348
1348
1367
1371
1386
1394
1395
1410
1415
1415
1931
1934
1935
2
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
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
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
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
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
16
16
19
19
22
23
24
24
24
25
25
25
26
26
26
29
29
31
31
38
39
39
39
40
41
41
41
42
42
42
42
43
43
43
44
44
44
44
44
44
45
45
45
45
47
48
48
49
49
55
55
55
56
57
58
58
60
60
61
62
62
62
62
62
62
63
63
64
64
64
66
67
68
72
76
78
79
80
81
82
83
83
84
84
85
85
85
85
86
86
86
86
87
87
87
91
95
95
95
97
98
106
106
107
107
107
107
107
108
108
108
111
113
113
114
114
115
115
116
118
119
119
119
119
120
120
120
120
121
121
121
121
122
123
123
123
123
123
124
124
124
125
125
125
125
125
126
127
127
133
139
139
139
140
140
140
140
141
141
141
141
142
142
142
142
142
142
143
143
145
154
156
156
156
157
157
158
159
160
160
160
160
160
160
161
161
162
162
162
162
162
166
167
167
168
172
172
172
172
175
175
176
176
176
177
177
177
177
177
178
178
179
179
181
186
190
192
192
192
192
193
194
194
194
195
195
196
196
196
196
196
198
198
199
204
205
205
205
208
209
210
210
210
210
210
211
211
211
211
211
211
212
212
212
212
212
212
213
213
213
213
213
214
214
214
214
215
215
221
222
223
224
227
227
228
228
230
231
231
231
231
231
231
232
232
233
233
233
239
240
240
241
241
241
244
245
245
246
246
247
247
247
247
248
248
248
249
249
250
250
250
251
252
253
261
263
263
263
263
264
265
266
266
266
267
267
267
267
268
268
269
269
269
270
272
274
275
278
279
280
280
281
281
281
281
282
282
282
282
282
283
283
283
283
283
284
284
284
284
284
285
285
285
285
286
286
290
295
295
298
298
301
302
302
302
302
302
302
303
303
303
304
304
304
307
307
308
308
309
311
315
316
316
317
317
317
318
318
318
318
318
318
318
318
319
319
319
319
320
320
320
320
320
320
321
321
321
323
323
323
323
323
323
324
325
332
334
334
334
334
334
335
335
336
336
337
337
338
338
338
338
340
340
342
344
352
352
353
353
353
353
353
353
354
354
354
354
354
355
355
355
356
356
356
357
358
358
359
359
359
360
360
361
361
363
365
366
367
368
369
369
372
373
373
373
373
373
373
374
374
375
375
375
381
381
382
383
383
385
387
388
388
390
391
391
392
393
394
394
394
401
406
406
418
420
420
422
424
424
426
427
427
428
429
429
430
430
430
431
431
431
431
431
432
432
436
436
437
438
441
445
445
447
448
449
457
461
462
464
465
465
465
466
466
466
466
466
466
467
467
468
469
469
469
469
476
478
479
483
491
492
494
494
495
496
502
503
504
504
505
505
505
506
506
506
507
507
507
507
512
512
531
531
533
533
533
535
536
536
537
537
540
540
543
544
544
544
549
549
549
550
551
558
559
560
561
562
564
570
572
573
574
574
575
575
576
576
577
577
578
578
578
578
579
579
580
580
589
591
592
597
601
603
607
607
607
608
608
609
611
611
611
612
612
612
612
615
615
615
615
616
618
619
620
624
625
640
645
645
648
649
650
650
651
651
652
652
653
653
658
663
663
677
679
681
682
683
683
684
686
686
698
702
702
710
716
718
719
720
721
721
721
722
722
723
723
724
724
725
740
748
749
749
753
754
757
757
757
758
758
758
758
761
761
761
761
764
769
769
788
793
806
815
816
831
835
835
854
858
873
881
882
897
902
902
915
920
920
938
941
955
959
959
978
982
997
1005
1006
1021
1026
1026
1045
1050
1063
1072
1073
1088
1092
1092
1111
1115
1130
1138
1139
1154
1159
1159
1172
1177
1177
1195
1198
1212
1216
1216
1235
1239
1254
1262
1263
1278
1283
1283
1302
1307
1320
1329
1330
1345
1349
1349
1368
1372
1387
1395
1396
1411
1416
1416
1932
1935
1936
1
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
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
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
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
17
17
17
19
19
19
19
23
24
25
26
26
26
27
27
28
28
28
28
30
30
32
40
40
40
41
42
42
43
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
46
48
49
49
56
56
57
58
58
61
61
61
62
62
63
63
63
63
64
64
65
65
66
67
68
68
73
77
77
78
78
79
80
81
82
83
85
86
86
86
87
87
87
87
87
88
88
90
90
90
90
90
90
92
95
95
96
96
96
98
98
107
107
107
107
108
108
108
108
108
108
109
109
114
115
115
116
117
119
119
120
120
120
121
123
124
124
124
124
124
124
125
125
125
126
126
126
126
126
126
128
128
134
136
136
140
140
140
141
142
142
142
142
142
142
143
143
143
143
143
143
144
144
146
146
156
156
157
158
158
159
160
160
161
161
161
161
162
162
163
163
163
163
166
167
168
168
168
173
173
173
173
176
177
178
178
178
178
178
178
178
178
178
179
179
179
179
179
180
180
182
187
190
192
194
195
195
195
196
196
197
197
197
197
199
199
200
201
201
205
209
210
211
211
211
212
212
212
213
213
213
213
213
214
214
214
214
214
215
215
215
215
216
216
221
222
223
223
225
227
227
229
229
230
231
231
232
232
232
232
233
233
233
233
234
234
240
241
241
241
242
242
242
245
245
245
246
246
247
248
248
249
249
249
249
249
250
250
250
250
250
250
250
251
251
251
252
253
253
261
263
265
266
267
267
267
268
268
268
268
269
270
270
270
273
275
276
277
279
279
280
281
281
281
282
282
283
283
284
284
284
284
284
285
285
285
285
285
286
286
286
286
287
287
291
291
291
296
296
298
298
301
302
302
303
303
303
303
304
304
304
305
305
308
308
309
309
314
314
316
317
317
318
318
319
319
320
320
320
320
320
320
321
321
321
321
321
322
322
322
324
324
324
324
324
325
332
334
334
335
336
336
336
337
338
338
339
339
339
339
341
341
343
345
346
346
353
354
354
355
355
355
355
355
355
355
356
356
356
356
356
357
357
357
358
360
361
361
362
362
363
363
364
366
366
368
369
369
369
372
373
373
374
374
374
374
375
375
376
376
382
383
384
386
387
387
388
389
389
391
391
391
392
392
392
393
394
394
395
395
402
404
404
407
419
421
421
423
425
425
427
427
427
428
428
429
431
432
432
433
433
437
438
442
446
446
447
448
449
449
459
459
462
463
465
466
466
466
467
468
468
469
470
470
470
470
476
476
477
479
479
484
492
493
495
496
503
504
505
506
507
507
507
507
508
508
508
513
513
517
517
532
532
533
533
534
534
534
537
537
537
537
538
538
540
540
541
541
544
550
550
551
559
560
560
561
562
562
565
569
571
572
572
573
574
575
575
578
578
579
579
579
579
580
581
581
589
589
590
592
592
598
602
608
608
609
609
612
612
612
616
616
616
616
617
618
619
620
620
625
626
630
630
641
646
646
649
650
653
653
654
654
659
664
678
679
679
680
682
683
683
683
684
684
685
687
687
699
703
703
711
715
717
719
720
721
722
724
724
725
725
726
741
749
750
754
755
758
758
758
762
762
762
762
765
770
770
789
794
807
816
817
832
836
836
855
859
874
882
883
898
903
903
916
921
939
942
956
960
960
979
983
998
1006
1007
1022
1027
1027
1046
1051
1064
1073
1074
1089
1093
1093
1112
1116
1131
1139
1140
1155
1160
1160
1173
1178
1196
1199
1213
1217
1217
1236
1240
1255
1263
1264
1279
1284
1284
1303
1308
1321
1330
1331
1346
1350
1350
1369
1373
1388
1396
1397
1412
1417
1417
1933
1936
1937
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
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
12
12
12
12
12
12
12
12
12
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
16
16
16
16
16
16
17
17
17
17
17
18
19
24
24
25
26
27
27
27
28
28
29
29
29
29
31
31
32
32
39
40
40
41
41
42
42
42
43
45
45
45
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
49
49
49
50
50
57
57
57
61
62
62
62
63
63
63
63
63
63
63
64
64
65
65
65
65
65
65
66
67
68
69
76
78
78
79
79
80
81
82
83
84
85
86
86
87
87
87
88
88
88
88
90
90
91
91
91
91
91
93
96
96
97
97
98
99
106
108
108
108
109
109
109
109
109
109
110
110
110
115
116
117
118
120
120
121
121
121
121
121
122
124
125
125
125
125
125
125
125
125
126
127
127
127
127
127
134
135
137
137
137
143
143
143
143
144
144
144
144
144
144
144
145
145
145
147
147
147
147
155
158
159
159
160
161
161
161
161
161
161
162
162
163
163
163
163
163
163
164
164
165
166
167
168
169
169
174
174
174
174
176
179
179
179
179
179
179
179
179
179
180
180
180
180
180
180
181
181
181
181
183
188
191
192
193
196
196
196
198
198
198
198
201
202
202
203
203
203
208
210
211
212
212
213
214
214
214
215
215
215
215
215
215
216
216
216
216
216
217
217
218
221
222
223
224
226
226
230
230
230
231
231
232
232
232
232
232
232
233
233
234
234
234
234
234
234
234
234
240
242
243
246
246
246
246
247
247
249
250
250
250
250
250
251
251
251
251
251
251
251
251
252
252
252
253
253
254
261
262
263
264
267
267
267
268
269
269
269
269
270
276
276
277
278
279
279
280
280
281
282
282
283
284
285
285
285
286
286
286
286
286
286
287
287
287
287
287
288
288
289
292
292
292
294
297
297
297
301
302
303
303
303
303
303
303
304
304
305
305
305
305
305
305
305
310
310
315
315
316
316
316
317
318
318
320
321
321
321
321
321
321
322
322
322
322
322
322
323
323
323
323
325
325
325
325
325
331
333
334
334
335
335
336
337
338
338
338
340
340
340
340
344
344
346
347
347
350
353
355
356
356
356
357
357
357
357
357
357
358
358
358
358
359
359
361
362
362
363
363
364
364
366
367
368
369
370
372
373
374
374
374
374
374
374
374
375
375
376
376
376
376
376
376
383
385
389
389
390
390
392
392
392
392
393
393
393
394
395
396
396
402
403
405
405
407
408
424
426
426
428
428
428
429
429
429
429
429
430
433
433
434
434
438
443
444
447
447
447
448
449
450
457
460
460
463
464
466
466
467
467
467
468
470
471
471
471
471
472
477
477
479
480
485
487
493
494
496
502
504
505
505
506
507
508
508
508
509
509
509
514
514
515
518
518
520
533
535
538
538
538
538
539
539
541
541
542
542
542
542
542
551
551
557
560
560
561
561
562
563
570
570
572
573
573
574
575
576
576
579
579
579
580
580
580
580
581
585
590
590
592
593
599
600
603
609
609
610
613
613
613
615
617
617
617
617
618
618
619
620
621
626
627
628
631
631
642
647
647
650
651
654
654
655
655
660
665
681
683
684
684
684
685
685
686
688
688
700
704
704
716
718
720
721
722
723
725
725
726
726
727
742
750
751
755
756
759
759
759
763
763
763
763
766
771
771
790
795
808
817
818
833
837
837
856
860
875
883
884
899
904
904
917
922
940
943
957
961
961
980
984
999
1007
1008
1023
1028
1028
1047
1052
1065
1074
1075
1090
1094
1094
1113
1117
1132
1140
1141
1156
1161
1161
1174
1179
1197
1200
1214
1218
1218
1237
1241
1256
1264
1265
1280
1285
1285
1304
1309
1322
1331
1332
1347
1351
1351
1370
1374
1389
1397
1398
1413
1418
1418
1934
1937
1938
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
9
9
9
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
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
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
17
18
18
18
19
20
20
24
25
25
26
28
28
28
30
30
30
30
39
39
40
41
41
42
42
42
43
44
45
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
49
50
50
50
51
51
55
57
58
61
61
62
63
63
63
63
65
65
65
65
65
65
66
66
66
66
66
66
67
68
69
70
77
77
79
79
81
81
82
83
83
84
85
85
86
88
88
89
89
89
89
89
89
94
97
98
98
99
100
107
107
107
107
108
109
109
109
109
110
110
110
110
110
111
111
113
117
118
119
119
120
120
121
121
121
122
122
122
122
123
124
124
125
125
125
126
126
126
126
126
126
126
126
127
128
135
135
136
137
137
138
140
140
142
143
144
144
144
144
144
145
145
145
145
145
145
145
146
146
147
147
148
148
154
155
159
159
160
160
161
161
161
163
163
163
163
163
163
164
164
164
164
164
164
165
165
167
168
169
170
170
175
175
175
175
177
177
179
180
180
180
180
180
180
180
180
181
181
181
181
181
182
182
182
183
183
184
189
191
191
192
192
193
194
195
195
196
196
197
197
197
202
204
204
204
204
208
208
209
210
211
211
211
212
213
214
214
215
215
215
215
216
216
216
216
216
217
217
217
217
218
218
222
223
224
225
226
227
230
230
231
231
231
232
232
232
232
232
234
234
234
234
234
234
235
235
235
235
235
235
240
241
244
247
247
247
248
248
250
250
251
251
251
251
251
251
252
252
252
252
252
252
253
253
254
254
255
262
262
262
262
262
262
263
263
265
266
266
267
267
268
268
268
268
269
277
278
279
279
279
280
280
281
281
281
282
282
282
283
283
283
284
285
285
286
286
286
286
287
287
287
287
287
288
288
288
288
289
289
290
290
293
295
296
296
297
298
298
301
301
302
303
303
303
305
305
305
305
305
305
306
306
306
306
306
306
306
306
311
311
317
317
317
317
318
319
319
319
321
321
322
322
322
322
322
322
322
322
323
323
323
323
323
323
324
324
324
326
326
326
326
333
333
334
334
335
336
336
337
337
337
338
338
338
339
339
339
345
345
345
347
350
350
351
353
353
353
354
356
357
357
357
357
358
358
358
358
358
359
359
359
360
362
363
363
364
364
365
367
368
368
370
371
372
372
373
374
374
374
375
375
375
375
376
376
376
376
376
376
377
377
377
377
377
377
381
386
390
391
391
393
393
393
393
394
394
394
395
396
397
397
403
403
404
408
409
409
409
419
425
427
427
427
429
429
430
430
430
430
430
430
431
434
434
435
435
436
444
448
448
448
449
450
451
458
458
464
465
465
466
467
467
468
468
468
468
471
472
472
472
472
478
480
481
486
488
488
488
488
494
494
495
505
506
506
507
508
509
509
509
510
510
510
515
515
516
516
521
522
522
532
534
536
539
539
539
539
540
540
543
543
543
543
543
543
549
552
561
561
562
562
563
564
571
571
571
573
573
575
575
576
577
577
579
580
580
580
581
581
581
581
591
593
594
600
601
601
601
601
604
607
610
611
611
614
614
614
614
618
618
618
618
619
619
620
621
622
627
628
629
629
643
648
648
651
652
655
655
656
656
661
666
682
684
685
685
685
686
686
687
689
689
701
705
705
717
719
719
721
721
722
723
724
726
726
727
727
728
743
751
752
756
757
757
760
760
760
760
764
764
764
764
767
772
772
791
796
809
818
819
834
838
838
857
861
876
884
885
900
905
905
918
923
941
944
958
962
962
981
985
1000
1008
1009
1024
1029
1029
1048
1053
1066
1075
1076
1091
1095
1095
1114
1118
1133
1141
1142
1157
1162
1162
1175
1180
1198
1201
1215
1219
1219
1238
1242
1257
1265
1266
1281
1286
1286
1305
1310
1323
1332
1333
1348
1352
1352
1371
1375
1390
1398
1399
1414
1419
1419
1935
1938
1939
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
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
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
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
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
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
17
17
17
17
18
18
18
18
19
19
19
19
19
24
26
26
27
27
27
28
28
29
29
29
40
42
42
42
42
42
43
43
43
45
45
46
46
46
46
47
47
47
47
48
48
48
48
48
48
48
48
49
49
49
49
50
51
51
51
52
52
55
55
56
57
59
61
62
63
64
64
66
66
67
67
67
67
67
67
67
68
68
69
70
80
80
83
84
84
85
85
86
87
88
88
88
89
89
90
90
95
96
98
99
99
100
108
108
108
108
109
109
109
109
110
110
110
110
111
111
111
112
112
113
113
114
118
119
121
121
122
123
123
123
123
124
125
125
125
125
125
125
125
126
126
126
126
127
127
127
127
127
127
127
127
128
137
138
140
140
140
141
141
142
143
144
144
144
144
145
145
145
145
145
146
146
146
146
147
147
148
149
149
154
155
155
156
159
160
161
161
162
164
164
165
165
165
165
165
165
166
166
167
168
168
169
170
171
176
176
176
176
179
180
180
180
180
181
181
181
181
181
181
181
181
182
182
182
183
183
184
184
184
184
185
189
190
192
192
193
194
195
196
196
196
196
196
196
197
197
198
198
198
203
205
205
205
209
210
210
211
211
211
211
212
212
212
213
214
214
215
215
215
215
215
216
216
216
216
217
217
217
218
218
218
218
219
219
222
223
223
224
225
226
228
230
231
232
232
232
233
235
235
236
236
236
236
236
236
240
240
242
244
245
248
248
248
249
249
249
249
250
251
251
251
251
251
251
252
252
252
252
252
252
252
252
253
253
253
253
254
254
255
255
263
263
263
263
263
266
267
267
267
267
267
267
268
268
268
268
269
269
269
269
270
278
279
280
280
280
281
281
282
282
282
282
283
283
283
284
284
285
285
286
286
286
286
286
287
287
287
287
288
288
288
289
289
289
289
290
290
294
297
297
297
297
297
299
299
301
302
302
303
304
306
306
306
307
307
307
307
307
307
307
307
312
312
318
318
318
319
320
321
322
322
322
322
322
323
323
323
323
323
323
323
323
323
323
324
324
324
324
325
325
325
327
327
327
327
334
334
335
336
336
337
337
338
338
338
338
338
338
338
339
339
340
340
340
346
348
351
353
353
353
353
354
354
355
356
357
357
357
357
358
358
358
358
359
359
359
360
360
360
361
363
364
364
364
365
365
366
368
368
371
372
372
373
374
375
376
376
376
377
377
378
378
378
378
378
378
381
381
382
386
387
390
391
392
392
393
394
394
394
394
394
395
395
395
395
395
396
398
398
398
398
405
410
410
410
410
410
415
417
419
420
421
426
427
430
430
430
431
431
431
431
431
432
435
435
436
436
436
436
437
445
448
449
449
449
449
450
451
465
466
468
468
469
469
469
469
472
473
473
473
473
477
479
481
487
489
489
489
494
494
495
495
496
506
506
507
507
507
508
509
510
510
511
511
511
516
516
523
523
523
523
528
532
532
533
535
536
537
540
540
540
540
541
541
541
541
544
544
544
544
544
544
544
549
549
550
553
561
562
562
562
563
563
564
572
576
576
577
578
578
579
581
581
581
582
582
582
582
590
592
594
601
602
602
602
605
607
607
608
611
615
615
615
615
619
619
619
619
619
620
620
620
621
622
628
629
644
649
649
652
653
656
656
657
657
662
667
674
678
678
682
683
684
686
686
686
687
687
687
687
687
688
690
690
690
690
702
706
706
718
722
722
723
724
725
727
727
728
728
729
744
752
753
757
761
761
761
761
765
765
765
765
768
773
773
792
797
802
810
819
820
835
839
839
858
862
877
885
886
901
906
906
919
924
931
935
941
944
945
959
963
963
982
986
1001
1009
1010
1025
1030
1030
1049
1054
1067
1076
1077
1092
1096
1096
1115
1119
1134
1142
1143
1158
1163
1163
1176
1181
1188
1192
1198
1201
1202
1216
1220
1220
1239
1243
1258
1266
1267
1282
1287
1287
1306
1311
1324
1333
1334
1349
1353
1353
1372
1376
1391
1399
1400
1415
1420
1420
1936
1939
1940
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
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
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
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
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
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
14
14
14
14
14
15
16
16
17
17
19
19
19
19
19
19
19
20
20
25
27
27
27
28
28
28
28
28
28
28
29
29
30
30
30
31
31
41
43
43
43
44
44
44
44
45
45
45
46
46
46
47
47
47
48
48
48
48
49
49
49
49
49
49
50
50
50
50
51
53
53
53
53
54
55
56
57
60
62
62
62
63
63
63
63
63
64
64
64
65
67
67
67
69
70
79
81
81
83
84
85
85
85
86
86
86
87
88
88
89
89
90
90
91
91
91
91
96
96
97
98
98
100
100
108
108
108
109
109
110
110
110
111
111
111
111
112
112
113
114
115
120
121
121
123
124
124
124
124
124
125
125
125
126
126
126
126
127
127
127
128
128
128
128
128
128
128
137
138
141
141
141
142
142
142
143
143
144
144
145
145
145
146
146
146
146
146
147
147
147
147
149
155
156
156
157
160
160
160
161
161
161
161
161
162
162
162
162
165
165
167
167
167
169
170
172
177
177
177
177
179
179
179
180
180
181
181
181
182
182
182
182
182
182
182
182
183
184
184
185
185
189
191
192
192
194
195
195
196
196
197
197
197
197
198
198
199
199
204
205
209
210
211
212
212
212
212
213
213
213
213
214
214
214
215
215
215
216
216
216
216
217
217
217
217
218
219
219
220
220
222
224
225
229
231
231
231
232
232
232
232
232
233
233
233
233
233
234
236
236
238
240
241
243
245
246
249
249
249
250
250
251
251
251
252
252
252
252
253
253
253
253
253
253
253
253
253
253
254
256
263
263
263
266
267
267
267
268
268
268
268
268
269
269
269
270
270
270
271
279
280
280
281
282
283
283
283
283
284
284
284
285
285
285
285
286
286
286
287
287
287
287
288
288
288
288
289
290
290
291
291
292
295
297
297
298
298
300
300
302
302
302
302
303
303
303
303
303
304
304
304
307
307
307
308
308
313
313
318
320
321
321
321
322
322
322
323
323
323
323
323
324
324
324
324
324
324
324
324
324
325
325
326
328
328
328
328
334
334
335
337
337
338
338
338
339
339
339
339
340
340
341
341
347
349
351
353
354
354
354
354
355
355
355
356
356
356
357
357
358
358
358
359
359
359
359
360
361
362
364
364
365
365
365
366
366
366
366
372
373
373
373
373
374
374
374
374
374
375
375
375
376
378
378
380
381
382
383
388
391
392
393
393
393
395
395
395
395
396
399
399
399
399
405
406
410
410
411
411
411
415
420
421
422
427
431
431
431
431
432
432
433
435
436
436
436
437
437
437
438
446
448
450
450
450
451
460
464
466
466
467
469
470
470
470
470
473
474
474
474
474
477
478
479
479
488
489
493
494
495
496
496
497
506
507
508
508
509
511
511
512
512
512
517
517
518
523
523
524
524
528
533
534
537
538
541
541
541
541
544
545
545
545
545
548
549
550
551
554
561
563
563
564
564
573
573
577
577
577
578
579
579
579
580
582
582
582
583
583
583
583
590
591
592
592
602
606
606
607
608
609
612
616
616
616
616
619
620
620
620
620
621
621
622
629
630
631
645
650
650
653
654
657
657
658
658
663
668
679
683
684
687
687
687
688
689
691
691
691
691
703
707
707
719
723
723
724
725
728
728
729
729
730
745
753
754
758
762
762
762
762
766
766
766
766
769
774
774
798
800
802
803
811
820
821
836
840
840
863
878
886
887
902
907
907
920
925
936
945
946
960
964
964
987
1002
1010
1011
1026
1031
1031
1055
1068
1077
1078
1093
1097
1097
1120
1135
1143
1144
1159
1164
1164
1177
1182
1193
1202
1203
1217
1221
1221
1244
1259
1267
1268
1283
1288
1288
1312
1325
1334
1335
1350
1354
1354
1377
1392
1400
1401
1416
1421
1421
1937
1940
1941
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
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
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
9
9
9
9
9
9
9
9
9
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
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
12
12
12
12
12
12
12
12
12
12
14
14
14
14
14
14
14
16
17
17
18
19
19
19
20
20
21
21
27
27
28
28
28
29
29
29
29
29
30
30
31
31
32
32
32
32
40
43
44
44
44
45
45
45
46
47
48
48
48
49
49
49
50
50
50
50
50
54
54
54
54
55
57
58
61
62
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
65
66
68
70
71
79
82
82
84
85
86
86
87
87
87
87
88
89
91
91
91
91
91
91
91
91
92
92
97
97
98
99
99
101
101
111
111
111
112
112
112
113
115
116
120
121
124
124
125
125
125
125
125
126
126
126
126
126
126
126
127
127
128
128
128
128
128
128
128
129
129
129
129
129
137
139
141
142
142
142
143
143
146
146
146
147
147
147
147
148
148
157
157
158
160
162
162
162
162
162
162
162
163
163
163
163
163
163
163
163
163
163
168
168
168
170
171
173
178
178
178
178
179
182
182
182
183
183
183
183
183
185
186
186
191
192
193
195
195
196
196
197
197
197
197
197
197
198
198
199
199
199
199
199
199
205
210
212
212
213
213
213
213
214
214
214
215
216
217
217
217
217
218
218
218
220
220
221
221
223
225
226
230
231
233
233
233
233
233
233
233
234
234
234
234
234
234
234
234
234
234
234
234
239
242
244
246
247
250
250
250
252
253
253
253
253
254
254
254
254
254
254
254
254
254
257
262
266
267
268
268
268
268
268
268
268
269
269
270
270
270
270
270
270
270
271
272
280
281
281
282
283
283
284
284
284
284
285
285
286
286
287
288
288
288
288
289
289
289
291
291
292
292
292
296
298
299
299
301
301
302
304
304
304
304
304
304
304
305
305
305
305
305
305
305
305
305
306
308
309
309
314
314
321
322
323
324
324
324
324
325
325
325
325
325
325
325
325
326
327
329
329
329
329
333
336
337
338
338
339
339
339
339
339
339
339
340
340
341
341
341
341
341
341
347
350
352
354
355
355
355
355
356
356
357
359
359
359
360
360
360
362
363
365
365
366
366
366
367
367
367
367
373
373
374
375
375
375
375
375
375
375
376
376
376
376
376
376
376
376
376
381
383
384
389
392
393
394
394
394
396
396
396
396
397
400
400
400
400
405
407
411
412
412
412
419
421
422
423
428
432
432
432
433
433
434
436
437
437
438
438
438
439
447
449
451
451
451
452
460
465
467
468
470
471
471
471
471
474
475
475
475
475
478
479
480
480
489
494
496
497
497
498
507
508
509
509
510
512
512
513
513
513
518
518
518
524
525
525
532
534
535
538
539
542
542
542
542
546
546
546
546
549
551
552
555
562
564
564
565
565
573
574
578
578
578
579
580
580
581
583
583
583
584
584
584
584
591
592
593
593
607
607
609
610
613
617
617
617
617
620
621
621
621
621
622
622
623
630
631
631
646
651
651
654
655
658
658
659
659
664
669
680
684
685
688
688
688
689
690
692
692
692
692
704
708
708
720
724
724
725
726
729
729
730
730
731
746
754
755
759
763
763
763
763
767
767
767
767
770
775
775
799
801
803
812
821
822
837
841
841
864
879
887
888
903
908
908
921
926
937
946
947
961
965
965
988
1003
1011
1012
1027
1032
1032
1056
1069
1078
1079
1094
1098
1098
1121
1136
1144
1145
1160
1165
1165
1178
1183
1194
1203
1204
1218
1222
1222
1245
1260
1268
1269
1284
1289
1289
1313
1326
1335
1336
1351
1355
1355
1378
1393
1401
1402
1417
1422
1422
1938
1941
1942
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
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
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
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
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
17
17
18
18
21
22
22
27
28
29
29
29
29
29
29
29
30
30
30
31
31
31
31
31
31
32
32
32
33
33
40
41
43
44
44
44
45
46
46
46
46
47
47
48
49
49
50
50
51
51
51
51
51
55
55
55
55
55
58
59
62
65
66
66
66
66
66
66
66
66
66
66
66
67
67
68
69
71
72
76
82
83
85
86
87
87
88
88
88
89
89
89
90
92
92
92
92
92
92
92
92
92
92
93
93
96
98
98
99
99
100
102
102
109
110
112
112
113
113
113
116
117
120
122
124
124
125
125
125
126
126
126
126
126
126
126
126
127
128
128
128
128
128
128
129
129
129
129
129
129
129
130
130
130
130
140
141
142
142
142
143
144
144
144
145
147
147
147
147
148
148
148
149
149
157
158
159
163
164
164
164
164
164
164
164
164
164
164
164
164
167
168
169
169
169
171
174
179
179
179
179
180
181
183
183
184
184
184
184
184
186
191
193
193
193
194
195
195
196
196
196
197
197
197
199
199
199
199
199
199
200
200
200
200
200
200
206
210
212
213
213
213
213
214
214
215
215
215
215
216
216
217
218
218
218
219
219
221
221
222
222
222
223
224
226
231
234
235
235
235
235
235
235
235
235
235
235
235
235
235
243
243
245
247
248
248
251
251
251
251
251
251
252
253
254
254
254
254
255
255
255
255
255
255
255
258
262
266
266
267
268
268
268
268
270
270
270
270
270
270
271
271
271
271
271
271
271
272
273
280
281
281
282
282
283
283
284
284
284
284
285
286
286
286
287
287
287
288
289
289
289
290
290
292
292
293
293
297
297
299
302
302
305
306
306
306
306
306
306
306
306
306
306
306
306
306
307
309
309
310
315
322
322
323
323
323
325
325
325
326
326
326
326
326
326
326
327
328
330
330
330
330
333
335
336
337
337
337
338
339
339
339
339
341
341
341
341
341
341
342
342
342
342
342
342
351
354
355
355
355
356
356
356
357
357
357
358
358
360
360
361
361
363
364
364
366
366
367
367
367
367
368
368
368
374
375
376
377
377
377
377
377
377
377
377
377
377
377
381
384
385
390
393
393
394
394
394
395
395
395
397
397
397
397
397
401
401
401
401
408
410
412
413
419
419
420
422
422
424
429
433
433
433
434
434
435
436
438
438
439
439
439
440
448
448
449
450
452
452
452
468
469
469
471
472
472
472
472
475
476
476
476
476
477
479
480
480
481
490
494
497
498
498
499
506
507
508
509
510
510
513
513
514
514
514
519
519
523
525
532
532
533
535
535
539
540
540
543
543
543
543
543
547
547
547
547
549
552
553
556
561
562
563
565
565
566
575
579
579
580
581
581
582
582
584
584
584
585
585
585
585
590
592
593
593
594
607
608
610
611
614
618
618
618
618
619
620
621
622
622
622
622
623
623
631
632
647
652
652
655
656
659
659
660
660
665
670
681
685
686
686
689
689
689
689
690
691
693
693
693
693
705
709
709
721
725
725
726
727
730
730
731
731
732
747
755
756
760
764
764
764
764
768
768
768
768
771
776
776
800
801
803
813
822
823
838
842
842
865
880
888
889
904
909
909
922
927
938
947
948
962
966
966
989
1004
1012
1013
1028
1033
1033
1057
1070
1079
1080
1095
1099
1099
1122
1137
1145
1146
1161
1166
1166
1179
1184
1195
1204
1205
1219
1223
1223
1246
1261
1269
1270
1285
1290
1290
1314
1327
1336
1337
1352
1356
1356
1379
1394
1402
1403
1418
1423
1423
1939
1942
1943
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
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
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
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
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
15
15
15
16
17
17
19
22
23
23
27
27
27
27
28
29
29
29
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
34
34
41
42
43
43
45
45
45
46
47
47
47
47
47
48
48
48
49
49
52
52
52
52
52
52
56
56
56
56
56
58
60
62
62
63
66
67
67
67
67
67
67
67
68
68
69
69
77
79
79
84
84
86
87
88
88
89
89
89
90
90
90
91
92
92
92
92
93
93
93
93
93
93
94
94
96
98
99
99
100
103
103
110
110
111
111
114
116
118
120
123
124
125
125
126
126
126
127
127
127
127
127
127
127
129
129
130
130
130
130
130
130
131
131
131
131
137
137
140
141
141
141
143
143
143
144
145
145
146
146
147
147
148
148
149
150
158
158
160
160
160
164
165
165
165
165
165
165
165
167
168
169
169
170
170
175
179
179
180
180
180
180
181
181
182
182
182
182
182
182
184
185
185
185
189
191
194
194
194
195
196
196
197
197
198
200
200
201
201
201
201
201
201
207
211
212
212
213
214
214
214
215
215
216
216
216
217
217
217
218
219
222
222
222
223
223
223
224
224
231
231
232
234
234
235
236
236
236
236
236
236
236
236
239
244
246
248
251
252
252
252
252
252
252
253
253
253
254
255
256
256
256
256
259
262
266
267
268
269
269
271
271
271
272
272
272
272
272
272
273
274
280
281
282
282
282
283
283
283
284
285
285
285
286
287
287
288
288
288
288
289
290
292
292
293
293
294
294
297
298
298
302
302
302
303
303
306
307
307
307
307
307
307
307
307
309
310
311
314
314
316
323
323
323
323
324
324
324
326
326
327
327
327
327
327
328
329
331
331
331
331
333
335
336
337
337
337
338
339
340
342
342
343
343
343
343
343
343
347
347
352
352
354
354
356
356
356
357
357
358
358
359
359
359
364
364
365
366
367
367
368
368
368
369
369
373
373
375
376
377
378
378
378
378
378
378
382
384
386
391
393
394
394
395
395
396
396
398
398
398
398
402
402
402
402
405
405
409
410
411
414
415
420
420
422
423
425
430
434
434
434
435
435
436
437
439
439
439
440
440
441
448
449
449
450
450
453
453
460
460
465
469
470
472
473
473
473
473
476
477
477
477
477
477
479
480
481
491
495
497
499
499
500
506
507
508
508
510
511
514
514
515
515
515
518
518
520
520
523
524
528
533
533
535
536
540
544
544
544
544
544
548
548
548
548
550
552
554
557
561
562
563
563
566
567
573
573
576
578
580
580
581
582
582
583
585
585
585
586
586
586
586
590
592
593
594
608
609
610
612
615
619
619
619
619
619
620
621
621
623
623
623
623
624
631
631
632
633
648
653
653
656
657
660
660
661
661
666
671
682
686
690
690
690
690
691
692
694
694
694
694
706
710
710
722
726
726
727
728
731
731
732
732
733
748
756
757
761
765
765
765
765
769
769
769
769
772
777
777
801
803
814
823
824
839
843
843
866
881
889
890
905
910
910
923
928
939
948
949
963
967
967
990
1005
1013
1014
1029
1034
1034
1058
1071
1080
1081
1096
1100
1100
1123
1138
1146
1147
1162
1167
1167
1180
1185
1196
1205
1206
1220
1224
1224
1247
1262
1270
1271
1286
1291
1291
1315
1328
1337
1338
1353
1357
1357
1380
1395
1403
1404
1419
1424
1424
1940
1943
1944
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
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
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
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
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
15
15
15
16
17
17
20
20
23
24
24
27
28
28
28
29
30
31
32
32
32
32
33
33
33
33
33
33
34
40
42
43
46
46
46
48
48
48
49
49
49
49
49
50
53
53
53
53
53
53
57
57
57
57
58
59
63
63
64
64
64
64
67
67
69
69
70
77
78
80
80
85
87
88
88
89
89
89
89
89
90
90
91
92
92
93
93
94
94
94
94
94
94
95
95
99
100
100
104
104
107
112
113
116
117
124
125
125
125
126
126
126
126
126
127
127
127
127
127
128
128
128
128
128
130
130
132
132
132
132
135
138
138
141
142
144
144
144
147
148
149
149
150
151
158
159
161
161
162
162
162
165
165
166
169
170
171
171
176
177
180
180
181
181
181
183
183
183
184
184
186
186
186
195
195
196
196
196
197
197
197
197
197
197
198
198
198
198
201
201
204
208
213
214
215
215
215
217
218
218
219
219
220
223
223
224
224
224
225
232
232
232
233
233
233
233
235
235
236
236
237
237
243
245
249
253
253
253
253
254
254
255
255
257
257
257
257
260
262
267
267
267
268
268
268
268
268
269
269
269
271
272
272
272
275
282
283
283
284
285
286
286
286
289
289
289
290
290
290
291
293
293
294
294
295
295
297
299
299
303
303
304
304
304
304
304
307
307
308
310
311
312
315
317
317
324
325
326
326
327
327
328
328
328
328
328
330
332
332
332
332
337
338
338
338
338
339
339
339
339
339
340
340
340
343
343
345
348
348
353
356
357
357
357
358
360
361
365
366
367
368
368
369
369
370
370
374
374
375
375
375
375
376
377
378
378
384
385
392
395
395
396
397
397
399
399
399
399
403
403
403
403
403
406
406
410
410
412
415
421
423
424
426
430
431
435
435
435
436
436
437
439
440
440
440
441
441
450
450
451
454
454
458
461
461
469
470
471
474
474
474
474
477
478
478
478
478
480
481
488
492
497
498
500
501
508
509
511
512
515
515
516
516
516
516
519
519
521
521
523
525
534
536
537
541
543
545
545
545
545
545
549
549
549
549
552
553
558
563
564
567
568
571
574
574
577
581
581
582
582
583
583
584
586
586
587
587
587
587
593
594
601
610
610
611
616
620
620
620
620
621
622
624
624
624
624
625
629
632
632
633
634
649
654
654
657
658
661
661
662
662
667
672
683
687
691
691
691
691
692
693
695
695
695
695
707
711
711
723
727
727
728
729
732
732
733
733
734
749
757
758
762
766
766
766
766
770
770
770
770
773
778
778
802
815
824
825
840
844
844
867
882
890
891
906
911
911
924
929
940
949
950
964
968
968
991
1006
1014
1015
1030
1035
1035
1059
1072
1081
1082
1097
1101
1101
1124
1139
1147
1148
1163
1168
1168
1181
1186
1197
1206
1207
1221
1225
1225
1248
1263
1271
1272
1287
1292
1292
1316
1329
1338
1339
1354
1358
1358
1381
1396
1404
1405
1420
1425
1425
1941
1944
1945
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
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
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
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
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
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
15
15
15
15
17
21
21
21
24
25
25
28
28
28
29
30
30
30
32
32
33
33
33
33
40
40
41
43
43
44
47
47
49
49
49
49
50
50
50
50
50
50
50
50
54
54
54
54
54
54
58
58
58
58
59
60
65
65
65
65
65
66
66
70
70
78
78
79
86
87
88
89
89
90
90
90
90
90
90
91
91
92
92
92
92
92
92
92
93
93
94
94
95
95
96
96
100
101
105
105
108
108
108
108
112
112
112
113
113
113
117
118
125
125
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
133
133
133
133
136
136
142
142
142
143
145
145
145
147
147
147
148
148
148
150
150
151
152
159
160
163
163
163
163
164
164
167
170
172
172
177
178
178
182
182
182
182
183
183
183
184
184
184
184
184
184
185
187
187
187
194
196
196
196
198
198
198
198
198
198
198
198
199
199
199
199
199
199
199
199
199
205
205
205
205
209
213
214
215
216
216
218
218
218
218
219
219
219
219
220
221
224
224
225
225
225
233
233
234
234
234
234
234
235
235
238
238
244
246
250
254
254
254
254
254
254
254
255
255
255
255
258
258
258
258
261
263
263
263
263
267
269
269
269
269
269
269
269
270
270
270
270
270
270
270
270
270
272
273
276
283
284
284
285
286
287
287
289
289
289
290
290
290
290
290
291
291
291
292
295
295
295
296
296
297
298
300
300
305
305
305
305
305
305
306
306
307
309
311
313
316
318
318
318
318
318
325
325
325
325
326
326
326
327
328
328
329
329
329
329
329
331
333
333
333
333
338
338
340
340
340
340
340
340
340
341
341
341
341
341
341
341
341
341
346
346
354
355
357
358
358
359
360
360
360
361
361
361
366
367
368
369
370
370
371
371
376
376
376
376
376
376
376
376
377
377
377
378
385
386
393
396
396
398
398
400
400
400
400
404
404
404
404
404
404
408
410
411
413
416
420
422
424
427
431
431
431
431
432
436
436
436
437
437
438
440
441
441
441
442
442
451
451
455
455
459
459
470
471
472
475
475
475
475
478
479
479
479
479
481
489
489
489
489
493
498
499
501
502
509
512
513
516
516
517
517
517
517
517
521
522
522
523
524
526
533
535
537
542
544
544
544
544
546
546
546
546
546
550
550
550
550
553
554
559
564
568
569
572
572
578
582
582
583
583
584
584
585
587
587
588
588
588
588
594
602
602
602
602
611
611
612
617
621
621
621
621
622
625
625
625
625
626
630
630
634
635
650
655
655
658
659
662
662
663
663
673
684
688
692
692
692
692
693
694
696
696
696
696
708
712
712
724
728
728
729
730
733
733
734
734
735
750
758
759
763
767
767
767
767
771
771
771
771
774
779
779
803
816
825
826
841
845
845
868
883
891
892
907
912
912
930
941
950
951
965
969
969
992
1007
1015
1016
1031
1036
1036
1060
1073
1082
1083
1098
1102
1102
1125
1140
1148
1149
1164
1169
1169
1187
1198
1207
1208
1222
1226
1226
1249
1264
1272
1273
1288
1293
1293
1317
1330
1339
1340
1355
1359
1359
1382
1397
1405
1406
1421
1426
1426
1942
1945
1946
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
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
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
14
16
16
18
22
25
26
26
28
30
30
30
31
31
31
32
32
33
34
34
41
41
43
44
45
45
47
48
50
50
50
51
51
51
51
51
51
55
55
55
55
55
55
59
59
59
59
59
60
61
66
66
66
66
67
67
67
67
67
67
67
67
71
71
80
87
88
89
89
90
90
90
90
90
91
91
91
91
91
92
92
93
93
93
94
94
96
96
97
97
99
102
106
106
109
109
109
110
111
113
113
114
114
117
118
119
126
128
129
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
130
134
134
134
134
141
143
143
143
143
143
143
144
145
146
146
148
148
149
149
150
151
152
153
159
160
161
164
164
164
165
165
165
165
165
165
165
165
168
171
173
173
178
180
180
181
182
183
183
183
183
184
184
185
185
185
185
186
188
188
188
194
195
196
196
197
199
200
200
200
200
200
200
200
200
200
200
200
206
206
206
210
214
214
214
215
216
216
217
219
219
219
220
220
220
221
222
225
225
226
226
226
235
235
235
235
236
236
236
236
236
236
236
236
239
239
244
246
247
251
252
253
254
255
255
255
255
255
255
256
256
259
259
259
259
262
264
264
264
270
271
271
271
271
271
271
271
271
271
271
271
272
273
274
277
284
285
285
285
286
287
287
288
290
290
291
291
291
291
292
293
296
296
296
297
297
299
301
301
306
306
306
306
306
307
307
307
307
307
307
307
307
307
308
309
309
314
317
319
319
319
319
323
324
326
326
326
327
327
327
328
329
329
330
330
330
330
330
332
334
334
334
334
339
341
342
342
342
342
342
342
342
342
342
342
342
355
356
356
357
358
359
359
360
361
361
362
362
367
367
368
370
371
371
372
372
377
377
377
377
377
377
378
378
378
378
378
378
378
378
378
379
385
386
387
394
397
397
399
399
401
401
401
401
405
405
405
405
409
412
414
417
420
421
422
422
428
432
432
432
433
437
437
437
438
438
439
440
441
442
442
442
443
443
452
452
456
456
470
472
472
473
476
476
476
476
479
480
480
480
480
480
490
490
490
494
498
499
500
502
503
510
513
514
517
517
518
518
518
522
523
523
525
527
533
534
535
535
543
545
545
545
547
547
547
547
547
551
551
551
551
553
554
555
560
565
569
570
579
583
583
583
584
585
585
585
586
588
588
589
589
589
589
593
603
603
603
611
612
612
613
618
622
622
622
622
623
626
626
626
626
627
635
636
651
656
656
659
660
663
663
664
664
674
685
689
693
693
693
693
694
695
697
697
697
697
709
713
713
725
729
729
730
731
734
734
735
735
736
751
759
760
764
768
768
768
768
772
772
772
772
775
780
780
804
817
826
827
842
846
846
869
884
892
893
908
913
913
931
942
951
952
966
970
970
993
1008
1016
1017
1032
1037
1037
1061
1074
1083
1084
1099
1103
1103
1126
1141
1149
1150
1165
1170
1170
1188
1199
1208
1209
1223
1227
1227
1250
1265
1273
1274
1289
1294
1294
1318
1331
1340
1341
1356
1360
1360
1383
1398
1406
1407
1422
1427
1427
1943
1946
1947
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
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
15
17
18
19
23
25
26
27
27
28
31
32
32
32
32
33
34
35
35
42
44
45
47
48
48
49
49
51
51
52
56
56
56
56
56
56
60
60
60
60
61
62
66
68
68
68
68
68
68
69
71
72
72
80
81
88
90
90
90
90
91
91
92
92
92
92
92
92
92
93
93
94
94
94
95
95
97
97
98
98
100
100
103
107
107
109
111
111
112
112
119
120
125
125
127
127
129
129
130
130
130
130
130
130
130
130
131
131
131
131
135
135
135
135
138
143
143
144
144
145
145
146
146
146
146
147
147
150
150
150
152
153
154
161
162
164
166
166
166
166
166
166
169
169
171
172
174
174
179
180
181
182
182
183
183
184
184
184
186
186
187
187
189
189
189
195
196
196
196
197
197
198
200
201
201
201
201
201
201
206
211
216
216
217
217
217
218
218
220
221
222
223
224
226
226
226
227
227
227
235
235
236
237
237
237
237
237
237
240
240
247
248
252
253
253
254
254
255
255
256
256
256
256
260
260
260
260
263
264
267
267
271
272
272
272
272
272
272
274
275
278
282
284
285
286
287
287
288
288
288
289
289
292
292
293
293
294
297
297
298
298
300
300
302
302
306
307
307
308
308
308
308
308
308
308
309
310
310
315
318
319
320
324
324
325
325
327
329
330
330
331
331
331
331
331
333
335
335
335
335
337
338
338
339
340
342
343
343
343
343
343
343
348
356
358
359
359
360
360
360
361
368
368
368
369
371
372
372
373
373
377
377
379
379
379
379
379
379
379
380
387
388
395
395
397
398
398
400
400
402
402
402
402
406
406
406
406
406
413
413
415
418
421
422
423
423
429
432
434
438
438
438
439
439
440
442
443
443
443
444
444
450
452
453
453
457
457
461
473
473
474
477
477
477
477
480
481
481
481
481
481
481
490
495
500
501
503
504
508
510
511
514
515
518
518
519
519
519
519
524
524
526
526
528
534
535
536
536
544
545
548
548
548
548
548
552
552
552
552
555
556
561
563
565
566
570
571
574
580
584
584
585
586
586
586
587
589
589
590
590
590
590
594
594
603
613
613
614
619
621
623
623
623
623
623
624
627
627
627
627
628
632
636
637
652
657
657
660
661
664
664
665
665
675
686
690
694
694
694
694
695
696
698
698
698
698
710
714
714
726
730
730
731
732
735
735
736
736
737
752
760
761
765
769
769
769
769
773
773
773
773
776
781
781
805
818
827
828
843
847
847
870
885
893
894
909
914
914
932
943
952
953
967
971
971
994
1009
1017
1018
1033
1038
1038
1062
1075
1084
1085
1100
1104
1104
1127
1142
1150
1151
1166
1171
1171
1189
1200
1209
1210
1224
1228
1228
1251
1266
1274
1275
1290
1295
1295
1319
1332
1341
1342
1357
1361
1361
1384
1399
1407
1408
1423
1428
1428
1944
1947
1948
1
1
1
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
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
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
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
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
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
13
13
16
16
18
18
19
24
26
27
28
28
28
29
29
29
29
32
34
35
36
36
43
45
47
47
47
50
51
52
53
57
57
57
57
57
57
61
61
61
61
62
65
68
68
70
71
72
73
80
82
89
90
90
90
91
91
91
91
92
92
92
92
93
93
93
93
93
94
95
96
96
98
98
99
99
100
100
100
101
104
108
108
113
114
120
126
126
127
127
127
128
128
129
130
130
130
131
132
132
132
132
136
136
136
136
138
143
143
144
145
145
145
145
145
146
146
148
149
151
151
151
153
154
155
162
163
166
166
170
170
171
172
175
175
180
180
182
183
184
184
184
185
185
187
187
188
188
188
190
190
190
194
196
197
197
197
197
198
198
198
198
199
201
201
212
216
216
216
217
219
220
221
222
223
224
225
226
227
227
227
228
228
234
235
237
237
237
241
241
248
253
255
255
255
255
256
256
257
257
257
257
261
261
261
261
264
268
268
269
269
269
272
272
275
279
283
284
285
287
287
287
287
288
289
290
291
293
293
293
294
295
296
298
298
299
299
301
303
303
305
307
308
308
308
308
309
310
310
311
316
319
321
326
327
328
330
331
332
332
332
332
332
334
336
336
336
336
338
339
339
339
340
340
340
340
343
343
348
357
358
358
358
361
361
362
368
368
368
369
369
370
372
373
373
374
374
376
379
379
380
381
388
396
396
397
398
399
401
401
403
403
403
403
406
407
407
407
407
409
414
416
419
420
422
423
423
424
430
435
439
439
439
440
440
441
443
444
444
445
445
451
452
453
454
458
458
461
474
474
478
478
478
478
481
481
481
481
482
482
482
482
482
496
501
504
505
509
510
511
515
516
519
519
519
520
520
520
522
525
525
527
529
533
535
536
536
537
545
549
549
549
549
549
553
553
553
553
556
562
564
565
566
571
572
574
581
585
585
586
587
587
587
590
590
591
591
591
591
594
594
594
595
614
614
620
622
623
624
624
624
624
624
628
628
628
628
629
632
637
638
653
658
658
661
662
665
665
666
666
676
687
691
695
695
695
695
696
697
699
699
699
699
711
715
715
727
731
731
732
733
736
736
737
737
738
753
761
762
766
770
770
770
770
774
774
774
774
777
782
782
806
819
828
829
844
848
848
871
886
894
895
910
915
915
933
944
953
954
968
972
972
995
1010
1018
1019
1034
1039
1039
1063
1076
1085
1086
1101
1105
1105
1128
1143
1151
1152
1167
1172
1172
1190
1201
1210
1211
1225
1229
1229
1252
1267
1275
1276
1291
1296
1296
1320
1333
1342
1343
1358
1362
1362
1385
1400
1408
1409
1424
1429
1429
1945
1948
1949
1
1
1
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
12
12
12
14
16
16
16
17
18
18
25
28
29
29
30
30
30
30
31
31
31
31
31
31
35
35
36
37
37
45
48
48
50
50
50
51
51
51
53
54
58
58
58
58
58
58
60
62
62
62
62
66
66
66
66
67
67
70
71
74
83
88
89
90
91
91
91
91
91
92
92
93
94
94
94
94
95
95
95
95
95
95
95
96
97
97
99
99
100
100
100
101
105
109
109
113
113
113
114
114
114
118
128
128
128
128
128
129
129
129
129
132
133
133
133
133
137
137
137
137
143
143
144
145
146
146
147
148
148
148
149
149
149
152
152
152
155
156
160
164
164
164
164
165
165
170
171
171
176
176
181
183
184
184
184
185
185
185
186
187
188
188
189
189
189
191
191
194
196
197
198
199
199
199
199
200
200
200
213
214
215
217
217
219
219
219
220
220
220
222
223
224
225
225
226
228
228
229
229
235
235
235
235
236
236
238
242
242
244
254
255
255
255
255
256
256
256
256
258
258
258
258
262
262
262
262
265
270
270
270
270
271
271
273
280
283
284
285
288
288
288
289
290
290
290
290
291
291
291
294
294
295
296
299
299
300
300
300
302
304
306
306
306
306
307
307
307
309
309
309
310
311
317
320
322
326
326
326
327
327
327
328
329
332
333
333
333
333
333
335
337
337
337
337
338
339
341
341
341
341
342
342
356
357
358
359
359
361
361
361
362
362
362
368
369
370
371
373
374
374
375
375
377
377
377
377
378
378
381
382
386
396
397
397
400
402
402
404
404
404
404
408
408
408
408
413
415
420
420
422
423
424
431
436
440
440
440
441
441
441
442
445
445
446
446
451
452
455
459
459
470
475
479
479
479
479
481
482
482
483
483
483
483
497
499
505
506
509
510
516
517
520
520
521
521
521
526
526
526
528
533
535
536
537
546
550
550
550
550
550
554
554
554
554
554
563
564
565
572
573
582
583
586
586
587
588
588
591
591
592
592
592
592
594
595
612
615
621
622
623
625
625
625
625
629
629
629
629
630
638
639
654
659
659
662
663
666
666
667
667
677
688
692
696
696
696
696
697
698
700
700
700
700
712
716
716
728
732
732
733
734
737
737
738
738
739
754
762
763
767
771
771
771
771
775
775
775
775
778
783
783
807
820
829
830
845
849
849
872
887
895
896
911
916
916
934
945
954
955
969
973
973
996
1011
1019
1020
1035
1040
1040
1064
1077
1086
1087
1102
1106
1106
1129
1144
1152
1153
1168
1173
1173
1191
1202
1211
1212
1226
1230
1230
1253
1268
1276
1277
1292
1297
1297
1321
1334
1343
1344
1359
1363
1363
1386
1401
1409
1410
1425
1430
1430
1946
1949
1950
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
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
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
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
9
9
9
9
9
9
9
9
9
9
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
13
13
13
17
17
18
26
26
29
30
30
32
32
32
32
32
32
32
32
36
37
38
38
46
46
48
49
51
51
52
52
54
55
59
59
59
59
59
59
59
60
61
63
63
63
63
67
67
67
68
68
68
68
68
68
68
68
75
84
88
89
90
90
91
91
91
91
92
93
93
94
95
95
95
95
95
95
96
96
96
96
96
96
96
97
98
98
100
100
101
101
106
110
110
111
112
114
114
115
115
117
118
119
129
129
129
130
130
130
130
130
130
130
130
130
133
134
134
134
134
138
138
138
138
143
144
144
144
145
146
147
148
149
149
150
150
150
153
156
157
159
160
161
165
165
165
166
166
166
166
166
166
166
166
172
177
177
182
182
183
184
185
185
186
186
187
188
189
189
190
190
190
192
192
197
198
200
200
200
201
201
201
201
201
201
201
201
201
214
214
215
215
215
216
217
218
220
220
221
221
223
224
225
226
229
229
230
230
236
236
236
237
237
237
237
237
237
237
237
239
243
243
244
245
246
253
254
255
256
256
257
257
259
259
259
259
263
263
263
263
266
271
271
271
272
272
272
272
272
272
272
272
272
273
274
281
286
286
288
289
289
290
291
291
291
292
292
295
295
296
297
300
300
301
301
301
303
305
307
307
307
308
308
308
308
308
308
308
308
310
310
310
311
318
321
323
324
325
327
327
327
328
328
328
329
330
333
334
334
334
334
334
336
338
338
338
338
342
342
342
343
343
343
343
343
343
343
343
357
357
357
358
359
359
359
360
362
362
363
363
371
372
374
375
375
376
376
378
378
378
379
379
379
379
379
379
379
379
382
383
385
386
387
398
401
403
403
405
405
405
405
409
409
409
409
414
416
421
423
424
432
437
440
441
441
441
441
442
442
442
443
446
446
447
447
456
460
460
470
471
472
476
480
480
480
480
483
484
484
484
484
498
498
499
500
506
507
517
518
521
521
522
522
522
527
527
527
529
536
537
547
551
551
551
551
551
553
554
555
555
555
555
555
564
573
574
583
583
584
585
587
587
588
589
589
592
592
593
593
593
593
611
612
613
616
622
626
626
626
626
630
630
630
630
631
639
640
655
660
660
663
664
667
667
668
668
678
689
693
697
697
697
697
698
699
701
701
701
701
713
717
717
729
733
733
734
735
738
738
739
739
740
755
763
764
768
772
772
772
772
776
776
776
776
779
784
784
808
821
830
831
846
850
850
873
888
896
897
912
917
917
935
946
955
956
970
974
974
997
1012
1020
1021
1036
1041
1041
1065
1078
1087
1088
1103
1107
1107
1130
1145
1153
1154
1169
1174
1174
1192
1203
1212
1213
1227
1231
1231
1254
1269
1277
1278
1293
1298
1298
1322
1335
1344
1345
1360
1364
1364
1387
1402
1410
1411
1426
1431
1431
1947
1951
2
2
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
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
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
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
14
14
15
15
19
27
28
28
30
31
31
33
33
33
33
33
33
35
37
38
39
41
41
43
48
49
49
50
50
55
56
59
60
60
60
60
60
61
62
64
64
64
64
67
69
69
69
69
69
69
76
85
89
90
90
91
91
91
91
92
92
94
94
95
95
95
96
96
96
96
97
97
97
97
97
97
97
98
101
101
102
102
107
111
111
112
112
113
113
117
119
120
129
131
131
131
131
131
131
131
134
135
135
135
135
139
139
139
139
143
145
146
146
147
147
148
148
149
150
151
157
158
159
161
162
165
167
167
167
167
167
167
173
178
182
183
183
184
184
185
186
188
188
190
190
190
191
191
191
193
193
198
200
202
202
202
202
202
202
202
214
215
216
217
217
218
218
219
219
224
225
226
227
230
230
231
231
236
238
238
238
238
238
238
240
244
244
245
246
247
254
254
255
255
256
260
260
260
260
264
264
264
264
267
271
272
273
273
273
273
273
273
274
275
282
288
289
289
290
290
290
291
292
296
296
297
298
301
301
301
302
302
303
304
306
307
309
309
309
309
309
309
311
311
319
322
324
325
325
326
326
327
329
330
331
334
335
335
335
335
335
337
339
339
339
339
342
344
344
344
344
344
344
358
359
359
360
360
360
360
361
361
372
373
375
376
376
377
377
378
380
380
380
380
380
380
383
384
385
387
388
399
402
404
406
406
406
406
410
410
410
410
414
416
417
422
424
433
438
440
442
442
442
442
443
443
443
444
447
447
448
448
457
461
461
471
472
473
477
481
481
481
481
484
485
485
485
485
498
499
500
501
507
508
518
519
522
522
523
523
523
527
528
529
530
537
548
552
552
552
552
552
553
555
556
556
556
556
556
565
574
575
584
584
585
586
588
588
589
590
590
593
593
594
594
594
594
611
613
614
617
623
627
627
627
627
631
631
631
631
632
640
641
656
661
664
665
668
668
669
669
679
690
694
698
698
698
698
699
700
702
702
702
702
714
718
718
730
734
734
735
736
739
739
740
740
741
756
764
765
769
773
773
773
773
777
777
777
777
780
785
801
809
822
831
832
847
851
851
874
889
897
898
913
918
936
947
956
957
971
975
975
998
1013
1021
1022
1037
1042
1066
1079
1088
1089
1104
1108
1108
1131
1146
1154
1155
1170
1175
1193
1204
1213
1214
1228
1232
1232
1255
1270
1278
1279
1294
1299
1323
1336
1345
1346
1361
1365
1365
1388
1403
1411
1412
1427
1432
1948
1952
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
3
3
4
4
4
4
4
4
4
4
4
4
4
4
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
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
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
10
10
10
10
10
10
10
10
10
11
12
12
13
13
17
19
20
21
28
29
29
30
30
30
31
32
32
33
33
33
33
33
33
36
38
39
40
41
41
42
43
43
43
44
48
48
48
51
51
51
52
56
57
61
61
61
61
61
62
63
65
65
65
65
66
69
69
69
69
69
69
72
77
78
86
89
89
92
92
93
93
93
93
93
93
95
95
95
95
96
97
97
97
97
98
98
98
99
100
102
102
103
103
108
109
109
112
114
115
120
121
128
130
131
131
131
131
131
131
132
135
136
136
136
136
136
140
140
140
140
141
143
144
146
146
146
146
146
149
150
150
150
151
152
158
159
162
163
164
167
167
167
167
167
167
172
174
178
179
185
186
186
187
189
191
191
191
192
192
192
194
194
197
199
202
202
202
202
202
202
203
206
206
216
217
217
217
217
218
220
221
225
226
227
227
228
231
231
232
232
233
235
238
238
238
238
238
238
241
245
247
248
255
256
257
257
261
261
261
261
264
264
265
265
265
265
268
270
273
273
273
273
273
273
275
276
283
285
288
288
288
291
291
291
292
292
293
297
297
298
299
302
302
303
303
304
305
306
307
309
309
309
309
309
309
310
312
319
319
323
325
327
328
330
331
332
336
336
336
336
336
338
340
340
340
340
340
341
344
344
344
344
344
344
346
359
359
359
360
361
361
362
363
368
373
374
376
377
377
377
377
377
378
378
380
380
380
380
380
380
384
385
388
389
398
400
403
404
405
407
407
407
407
411
411
411
411
417
418
423
423
432
432
434
439
443
443
443
443
444
444
444
445
448
448
449
449
453
458
459
462
473
474
478
481
482
482
482
482
485
486
486
486
486
490
490
500
501
502
508
509
511
517
519
520
523
523
524
524
524
529
530
531
536
545
545
549
553
553
553
553
553
556
557
557
557
557
557
566
566
572
575
576
585
586
587
589
589
590
591
591
594
594
594
595
595
595
603
603
614
615
618
624
624
628
628
628
628
630
632
632
632
632
633
641
642
657
662
665
666
669
669
670
670
680
691
695
699
699
699
699
700
701
703
703
703
703
715
719
731
735
735
736
737
740
740
741
741
742
757
765
766
770
774
774
774
774
778
778
778
778
781
786
802
810
823
832
833
848
852
875
890
898
899
914
919
937
948
957
958
972
976
999
1014
1022
1023
1038
1043
1067
1080
1089
1090
1105
1109
1132
1147
1155
1156
1171
1176
1194
1205
1214
1215
1229
1233
1256
1271
1279
1280
1295
1300
1324
1337
1346
1347
1362
1366
1389
1404
1412
1413
1428
1433
1949
1953
1
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
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
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
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
10
10
10
10
10
10
10
10
10
10
10
10
10
12
13
17
17
17
18
19
20
21
22
28
28
29
31
31
31
31
32
33
33
34
34
34
34
36
38
39
40
41
42
43
44
44
44
45
46
49
49
50
51
51
51
52
52
52
52
52
57
58
62
62
62
62
62
63
66
66
66
66
67
67
67
67
70
70
70
70
70
72
73
78
79
80
80
87
89
89
93
93
94
94
94
94
94
95
95
96
96
96
96
97
98
98
98
98
99
100
101
101
103
103
104
104
108
109
110
110
113
114
114
114
115
115
115
121
128
129
129
129
129
130
131
132
132
132
132
133
136
137
137
137
137
137
138
138
141
141
141
141
142
144
145
147
147
147
149
149
149
150
150
150
151
151
152
153
159
160
163
165
165
165
165
168
168
168
168
170
172
173
175
179
180
180
180
185
185
185
186
186
186
187
188
190
192
192
192
193
193
195
195
198
198
200
200
200
200
203
203
203
203
204
205
207
207
215
217
218
218
218
220
220
220
221
221
221
225
226
227
227
228
228
229
232
232
233
233
234
235
235
236
236
236
236
239
239
239
239
242
246
248
256
256
256
256
256
257
257
257
258
262
262
262
262
263
265
265
266
266
266
266
269
271
271
271
271
274
274
274
274
276
283
284
285
286
286
289
289
291
291
291
292
292
292
292
292
293
293
293
294
298
298
299
300
303
303
304
304
305
307
307
307
307
308
310
310
310
310
311
311
313
318
320
320
324
326
327
327
327
328
328
328
331
333
337
337
337
337
337
338
339
340
341
341
341
341
341
342
342
342
342
345
345
345
345
347
348
348
357
360
360
361
362
362
362
362
363
363
363
369
369
374
375
376
377
378
378
378
378
378
378
378
378
379
379
381
381
381
381
385
386
389
396
398
399
401
404
405
406
406
406
408
408
408
408
412
412
412
412
418
424
424
424
431
433
433
435
440
444
444
444
444
445
445
446
449
449
450
450
451
453
454
459
460
461
461
463
474
479
482
482
483
483
483
483
486
487
487
487
487
489
491
491
501
502
509
509
510
511
512
518
519
519
520
521
524
524
525
525
525
530
531
537
537
544
546
546
550
554
554
554
554
554
557
558
558
558
558
564
566
567
567
573
574
574
576
577
586
587
590
590
591
592
592
595
595
595
595
596
596
596
602
604
604
615
619
622
624
625
625
629
629
629
629
631
632
632
633
633
633
633
634
642
643
658
663
666
667
670
670
671
671
681
692
696
700
700
700
700
701
702
704
704
704
704
716
720
732
736
736
737
738
741
741
742
742
743
758
766
767
771
775
775
775
775
779
779
779
779
782
787
803
803
811
824
833
834
849
853
876
891
899
900
915
920
938
949
958
959
973
977
1000
1015
1023
1024
1039
1044
1068
1081
1090
1091
1106
1110
1133
1148
1156
1157
1172
1177
1195
1206
1215
1216
1230
1234
1257
1272
1280
1281
1296
1301
1325
1338
1347
1348
1363
1367
1390
1405
1413
1414
1429
1434
1950
1954
1
1
1
1
1
1
1
1
1
1
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
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
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
8
8
8
8
8
8
8
8
8
8
8
8
8
8
13
18
18
19
19
20
22
29
29
29
29
30
32
32
32
32
32
33
34
34
34
34
34
35
35
39
40
41
42
44
44
45
45
47
47
51
52
52
52
52
53
53
53
58
59
63
63
63
63
63
67
67
68
68
68
68
68
70
70
70
70
71
71
71
72
73
79
81
81
81
81
88
91
91
93
93
95
95
95
95
95
96
96
96
96
97
98
98
98
99
99
99
99
100
101
101
101
101
102
104
105
109
110
110
110
111
114
115
115
116
116
129
130
130
130
130
130
130
131
132
132
132
132
133
133
134
137
138
138
138
138
139
139
139
139
142
142
142
145
145
146
146
148
150
150
151
151
151
152
153
153
154
160
161
166
166
166
166
166
168
168
168
168
169
169
171
172
173
176
181
181
181
181
181
186
186
187
187
188
188
189
191
194
194
196
196
198
198
198
199
201
201
201
201
201
203
203
203
203
204
204
205
206
207
207
208
216
216
218
221
221
222
222
226
227
227
228
228
229
230
233
234
236
236
236
236
237
237
237
237
237
239
239
239
239
240
240
243
247
256
256
256
257
257
257
258
258
259
263
263
263
263
264
265
265
266
267
267
270
272
272
272
272
272
274
274
274
274
275
275
284
285
285
286
287
287
292
292
293
293
293
294
294
294
294
294
295
299
299
300
301
301
304
305
308
308
308
308
308
309
310
310
310
310
311
311
311
311
311
312
314
319
320
320
321
325
327
328
328
329
329
334
338
338
338
338
338
339
340
340
341
342
342
343
343
343
343
343
345
345
345
345
346
346
349
349
349
349
358
358
363
363
363
364
364
369
369
369
370
375
376
377
378
378
378
379
379
379
379
379
379
379
380
381
381
381
381
382
382
386
387
397
398
399
402
405
407
407
407
407
407
409
409
409
409
413
413
414
424
424
424
425
425
432
433
433
434
436
441
445
445
445
446
446
447
450
451
452
453
454
460
462
462
462
462
464
480
482
482
482
483
484
484
484
484
487
488
488
490
491
491
492
502
510
510
511
511
512
520
520
520
520
521
522
525
526
526
527
531
537
537
537
538
545
546
546
547
551
555
555
555
555
555
559
559
565
566
567
568
575
575
575
575
577
578
587
591
591
592
593
593
595
595
595
596
596
597
597
603
604
604
605
620
623
624
625
626
630
630
630
630
633
633
633
633
634
634
635
643
644
659
664
667
668
671
672
682
693
697
701
701
701
701
702
703
705
705
717
721
733
737
737
738
739
742
743
744
759
767
768
772
776
776
776
776
780
780
783
788
804
804
804
804
812
825
834
835
850
854
877
892
900
901
916
921
939
950
959
960
974
978
1001
1016
1024
1025
1040
1045
1069
1082
1091
1092
1107
1111
1134
1149
1157
1158
1173
1178
1196
1207
1216
1217
1231
1235
1258
1273
1281
1282
1297
1302
1326
1339
1348
1349
1364
1368
1391
1406
1414
1415
1430
1435
1949
1951
1955
2
2
2
2
2
2
2
2
2
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
11
14
18
18
18
18
19
19
19
23
29
29
30
30
31
32
32
32
33
33
34
34
34
34
34
34
35
35
35
36
36
40
42
43
45
49
49
49
49
50
52
52
52
52
52
52
53
53
53
53
53
53
53
54
54
59
60
64
64
64
64
64
68
68
68
68
68
69
69
70
70
70
70
70
71
71
71
72
72
72
80
81
81
82
82
89
93
94
96
96
96
96
96
96
97
97
98
98
98
99
99
99
100
100
100
100
101
101
102
102
105
106
110
110
111
111
112
112
113
115
115
115
115
115
116
116
116
116
116
117
129
130
130
130
130
131
131
132
132
132
132
132
133
133
134
134
135
138
139
139
139
139
139
139
140
140
142
143
143
146
147
147
147
147
147
148
149
150
150
150
150
151
151
151
151
151
151
151
152
153
153
154
155
161
162
166
166
166
167
167
168
168
168
168
168
169
169
170
170
171
172
177
181
181
182
182
182
183
184
186
186
186
186
187
187
187
187
187
188
188
189
189
190
190
192
195
195
197
197
198
199
201
201
201
202
202
203
203
203
203
203
204
204
205
205
206
207
207
208
209
218
218
218
218
219
219
221
221
221
221
222
222
222
222
222
222
223
226
227
228
229
230
231
234
235
236
236
237
237
237
237
237
238
238
239
239
239
239
239
240
240
241
241
244
248
254
255
256
257
257
257
257
257
258
258
258
258
258
259
260
264
264
264
264
265
265
266
267
268
268
271
272
272
272
273
273
274
274
274
274
274
275
275
276
276
284
285
286
289
289
289
289
290
292
292
292
292
293
293
293
293
293
293
294
294
294
294
295
295
295
296
300
300
301
301
302
302
303
305
306
308
308
308
309
309
310
310
310
310
310
310
311
311
311
312
312
312
315
320
320
321
322
325
326
326
328
328
328
328
328
329
329
329
329
329
330
335
339
339
339
339
339
339
340
341
343
343
343
343
343
344
344
345
345
345
345
345
346
346
347
347
349
349
350
350
360
360
360
360
361
363
363
363
363
364
364
364
364
364
364
364
365
369
370
376
377
378
378
379
379
379
379
379
380
380
380
380
381
381
381
381
381
381
382
382
383
383
387
388
397
398
403
406
407
407
408
408
408
410
410
410
410
414
414
414
415
416
424
425
426
433
433
434
435
437
442
446
446
446
447
447
448
451
452
452
453
461
462
462
463
463
465
481
482
483
485
485
485
485
488
489
489
491
491
492
493
503
510
511
511
512
520
520
521
521
522
523
526
527
527
527
528
529
532
537
538
546
546
547
548
552
556
556
556
556
556
560
560
565
566
569
575
575
576
576
578
579
588
592
592
593
594
594
595
596
597
598
598
604
604
605
606
621
623
624
627
631
631
631
631
633
633
634
634
635
635
636
644
645
660
665
668
669
672
673
683
694
698
702
702
702
702
703
704
706
706
718
722
734
738
738
739
740
743
744
745
760
768
769
773
777
777
777
777
781
781
784
789
804
804
805
805
813
826
835
836
851
855
878
893
901
902
917
922
940
951
960
961
975
979
1002
1017
1025
1026
1041
1046
1070
1083
1092
1093
1108
1112
1135
1150
1158
1159
1174
1179
1197
1208
1217
1218
1232
1236
1259
1274
1282
1283
1298
1303
1327
1340
1349
1350
1365
1369
1392
1407
1415
1416
1431
1436
1949
1950
1952
1956
1
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
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
6
6
6
6
6
6
6
6
6
6
6
7
7
9
12
13
14
19
19
20
24
30
31
31
32
33
33
33
33
33
34
34
34
35
35
35
35
36
36
36
43
44
49
50
50
50
51
52
53
53
53
53
53
54
54
54
54
54
55
60
61
63
65
65
65
65
65
69
69
69
69
69
69
69
70
70
70
71
71
71
72
72
81
82
83
83
89
90
93
94
94
96
96
97
97
97
98
98
98
98
99
99
99
100
100
100
101
101
102
103
106
107
111
112
112
113
114
116
116
116
116
117
117
117
118
121
131
131
131
131
131
132
132
132
133
133
133
134
134
136
139
140
140
140
140
140
141
141
144
144
147
147
148
148
148
148
149
150
151
151
151
151
152
152
152
152
153
154
154
155
162
163
163
167
167
167
167
167
168
168
168
169
169
169
170
170
178
182
183
183
183
184
185
187
187
187
188
188
188
189
189
190
190
191
191
193
196
196
198
198
202
202
202
202
202
203
203
203
204
204
204
205
205
207
208
209
218
218
219
219
219
220
220
221
222
222
222
222
223
223
223
223
224
229
230
231
232
235
236
237
238
238
238
238
238
238
238
239
239
239
240
240
240
241
241
245
248
249
255
256
258
258
258
259
259
259
260
261
265
265
265
265
266
267
269
269
272
273
273
273
273
273
274
274
274
275
275
275
276
276
276
287
289
290
290
290
291
292
293
293
293
293
294
294
294
294
295
295
295
296
296
296
297
301
301
302
302
303
303
304
306
307
309
309
309
309
309
310
310
310
311
311
311
311
312
312
316
321
322
326
327
327
329
329
329
329
330
330
330
331
331
336
340
340
340
340
340
342
344
344
344
344
344
344
344
345
345
345
346
346
346
347
347
350
351
351
360
361
361
361
361
362
363
364
364
364
364
365
365
365
365
365
366
377
378
379
380
380
380
380
380
380
380
381
381
381
381
382
382
382
382
383
383
388
389
389
404
407
408
409
409
409
411
411
411
411
415
415
415
416
417
427
434
435
438
443
444
447
447
447
448
448
449
452
453
462
463
464
464
466
474
482
486
486
486
486
489
490
490
492
493
502
504
512
513
521
522
522
523
524
527
528
528
528
529
530
533
547
548
553
557
557
557
557
557
557
561
561
570
576
577
577
579
580
587
589
593
593
594
595
595
598
599
599
605
606
615
622
628
632
632
632
632
634
635
635
636
636
637
645
646
661
666
669
670
673
674
684
695
699
703
703
703
703
704
705
707
707
719
723
735
739
739
740
741
744
745
746
761
769
770
774
778
778
778
778
782
782
785
790
805
806
806
814
827
836
837
852
856
879
894
902
903
918
923
941
952
961
962
976
980
1003
1018
1026
1027
1042
1047
1071
1084
1093
1094
1109
1113
1136
1151
1159
1160
1175
1180
1198
1209
1218
1219
1233
1237
1260
1275
1283
1284
1299
1304
1328
1341
1350
1351
1366
1370
1393
1408
1416
1417
1432
1437
1951
1953
1957
2
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
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
10
13
14
14
18
20
20
25
29
31
31
33
33
33
33
34
34
34
34
35
35
36
36
36
36
37
44
45
47
50
50
50
50
50
51
52
52
53
53
54
54
54
54
55
55
55
59
59
61
62
62
62
63
64
66
66
66
66
67
69
69
69
70
70
70
70
70
70
71
71
72
72
72
81
82
83
91
93
94
94
95
96
96
97
97
98
98
98
98
99
99
100
100
100
101
102
103
104
107
108
111
111
112
113
114
114
115
116
116
117
117
117
117
118
118
121
122
129
131
131
131
132
132
132
132
133
133
134
134
134
137
139
140
141
141
141
141
145
145
145
148
148
148
148
148
148
149
150
150
151
151
152
152
152
153
153
153
155
155
163
163
164
164
165
167
167
167
168
168
168
168
169
169
170
170
170
177
177
179
181
181
181
183
184
186
187
187
188
188
188
189
189
191
192
192
194
197
197
199
199
200
202
202
202
203
203
203
203
204
204
205
205
205
208
209
216
218
219
219
219
219
219
219
220
221
221
221
222
222
223
223
223
224
224
224
230
231
232
233
236
236
236
237
238
238
238
238
239
239
239
239
240
240
241
241
241
244
244
246
247
247
248
249
250
257
258
258
259
259
259
260
260
262
266
266
266
267
270
270
271
273
273
273
273
274
274
274
274
275
275
276
276
276
276
277
287
288
290
290
290
290
290
291
292
292
293
293
294
294
294
294
295
295
295
296
296
297
298
302
303
304
304
305
307
307
308
309
309
309
310
310
310
310
310
310
311
311
312
312
312
312
317
319
322
323
328
328
329
329
330
330
330
330
331
331
331
332
334
337
337
337
340
341
341
341
341
342
343
344
344
344
345
345
345
345
345
345
346
346
347
347
347
349
351
358
361
361
361
361
361
361
362
362
363
363
364
364
365
365
365
366
366
366
366
378
378
379
380
380
380
380
381
381
381
381
381
382
382
382
383
383
383
383
389
389
390
390
403
403
405
406
406
407
408
409
410
412
412
412
416
416
417
418
428
435
439
444
444
445
448
448
449
449
450
453
454
461
461
462
463
464
464
464
467
474
475
483
487
487
487
490
491
491
493
502
503
505
513
514
520
522
524
525
527
527
528
529
529
530
531
531
531
534
548
554
557
558
558
558
558
558
562
562
571
575
577
580
581
587
588
590
594
594
594
595
596
596
597
597
599
600
600
606
615
616
623
629
633
633
633
633
635
637
637
638
646
647
660
660
662
663
663
667
670
671
674
675
685
696
700
704
704
704
705
706
708
708
718
718
720
721
721
724
736
740
741
742
745
746
747
762
770
771
775
779
779
779
783
783
784
784
786
788
788
791
804
806
815
828
837
838
851
851
853
854
854
857
880
895
903
904
917
917
919
920
920
924
942
953
962
963
975
975
977
978
978
981
1004
1019
1027
1028
1041
1041
1043
1045
1045
1048
1072
1085
1094
1095
1108
1108
1110
1111
1111
1114
1137
1152
1160
1161
1174
1174
1176
1177
1177
1181
1199
1210
1219
1220
1232
1232
1234
1235
1235
1238
1261
1276
1284
1285
1298
1298
1300
1302
1302
1305
1329
1342
1351
1352
1365
1365
1367
1368
1368
1371
1394
1409
1417
1418
1431
1431
1433
1438
1952
1954
1958
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
1
1
1
1
1
1
1
1
1
3
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
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
9
9
9
9
9
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
14
18
18
19
26
29
30
32
33
34
34
34
34
34
35
35
35
36
37
37
38
45
46
48
50
51
51
51
51
52
52
52
53
54
55
56
60
62
63
63
64
67
67
67
67
68
69
70
70
70
70
71
71
71
71
71
72
73
81
82
83
92
94
94
96
96
97
97
98
98
99
99
99
100
100
101
102
103
104
105
108
109
110
112
114
115
115
115
116
116
117
118
118
122
130
131
132
132
132
132
133
133
133
134
135
138
139
140
141
142
142
142
146
146
146
146
148
149
149
149
149
150
150
151
151
152
153
154
156
164
164
165
166
167
168
168
168
168
169
169
169
170
171
178
180
181
182
182
185
186
186
187
187
188
189
192
193
195
198
198
200
200
201
202
203
203
203
203
204
204
204
205
206
207
209
217
219
219
220
220
220
220
221
221
222
222
223
224
225
231
232
233
234
236
237
237
237
238
238
239
239
239
239
240
240
240
241
242
245
247
248
249
251
257
257
258
258
259
260
263
265
267
267
267
271
271
272
273
274
274
274
274
274
275
275
275
276
277
277
288
289
290
291
291
291
291
292
292
293
294
294
295
295
296
297
298
299
303
304
305
305
308
308
309
309
310
310
310
310
311
311
311
311
312
313
313
318
320
324
328
328
329
329
329
330
331
331
332
338
338
341
342
342
342
342
343
344
344
345
345
345
345
346
346
346
346
346
347
348
349
350
359
361
362
362
362
362
362
363
363
364
365
366
367
367
378
379
379
380
380
381
381
381
381
382
382
382
382
383
383
384
384
390
390
391
404
406
407
407
408
409
411
413
413
413
417
417
418
429
433
440
445
445
449
449
450
450
451
454
455
462
462
463
464
465
468
475
484
488
488
488
491
491
492
492
503
506
514
515
520
521
525
526
528
529
530
530
531
532
535
546
555
558
559
559
559
559
563
563
572
575
576
581
582
588
591
595
595
596
597
597
598
600
601
601
604
616
624
630
633
634
634
634
634
638
638
639
647
648
661
663
664
668
671
672
675
676
686
697
701
705
705
705
706
707
709
709
719
721
722
725
737
741
742
743
746
747
748
763
771
772
776
780
780
780
784
784
785
787
789
792
802
804
805
816
829
838
839
852
854
855
858
881
896
904
905
918
920
921
925
943
954
963
964
976
978
979
982
1005
1020
1028
1029
1042
1044
1046
1049
1073
1086
1095
1096
1109
1111
1112
1115
1138
1153
1161
1162
1175
1177
1178
1182
1200
1211
1220
1221
1233
1235
1236
1239
1262
1277
1285
1286
1299
1301
1303
1306
1330
1343
1352
1353
1366
1368
1369
1372
1395
1410
1418
1419
1432
1434
1439
1953
1955
1959
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
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
2
2
2
2
2
2
2
2
2
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
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
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
18
19
20
27
29
31
33
33
33
34
34
35
35
35
35
36
36
37
38
38
39
46
47
50
52
52
52
52
52
52
53
54
55
56
57
61
63
64
64
65
65
66
66
66
66
68
68
68
68
69
70
70
71
71
71
72
72
72
73
74
81
83
84
93
95
96
97
98
98
99
100
100
100
101
101
101
102
103
103
103
104
104
104
105
106
109
110
110
110
111
113
114
115
115
116
116
117
118
119
119
131
132
132
133
133
133
134
135
136
139
139
140
140
141
141
141
141
141
142
142
143
143
143
146
147
147
147
148
150
150
150
150
151
152
152
153
153
154
155
157
165
166
167
168
168
169
169
169
170
171
172
179
181
181
183
183
185
186
186
187
188
189
190
190
192
192
193
194
195
195
196
199
199
201
201
202
203
203
204
204
204
205
206
207
207
207
208
210
219
221
221
221
221
223
223
224
225
226
232
232
232
233
233
233
234
235
236
238
238
238
239
239
239
240
240
240
241
242
243
246
248
249
252
256
257
258
259
260
261
264
265
265
265
265
266
266
266
266
266
268
268
268
272
272
273
274
274
275
275
275
275
276
277
278
290
290
292
292
292
292
294
294
295
296
296
297
298
299
300
301
301
303
303
304
304
304
305
306
309
309
310
310
310
311
311
311
312
312
313
314
314
319
320
320
321
325
327
328
329
330
330
331
332
332
339
339
340
340
341
341
341
341
342
343
343
343
343
344
345
345
345
346
346
346
347
347
347
348
349
349
351
361
363
363
363
363
365
366
367
368
368
378
378
378
378
379
379
379
380
380
381
381
381
382
382
382
383
383
384
384
385
385
391
392
405
407
407
408
409
410
411
411
412
412
412
412
412
414
414
414
418
418
430
433
433
434
441
446
447
447
449
449
450
450
450
450
451
451
452
455
456
462
463
464
465
466
469
485
486
486
487
487
487
487
489
489
489
491
491
492
492
493
493
507
515
516
520
522
524
524
525
525
526
527
529
530
531
531
533
536
546
546
547
556
557
557
558
558
558
558
560
560
560
560
564
564
573
575
577
582
583
592
593
593
595
595
596
596
596
596
597
598
598
599
601
602
602
604
604
605
625
631
632
632
633
633
633
633
633
635
635
635
635
639
639
640
648
649
662
664
665
669
670
670
671
671
672
673
676
677
687
698
702
703
703
704
704
704
704
706
706
706
707
708
710
710
720
722
723
726
738
739
739
741
741
742
742
742
743
744
747
748
749
764
772
773
777
778
778
779
779
779
779
781
781
781
785
785
786
788
790
793
804
806
817
830
839
840
853
855
856
859
882
897
905
906
919
921
922
926
944
955
964
965
977
979
980
983
1006
1021
1029
1030
1043
1045
1047
1050
1074
1087
1096
1097
1110
1112
1113
1116
1139
1154
1162
1163
1176
1178
1179
1183
1201
1212
1221
1222
1234
1236
1237
1240
1263
1278
1286
1287
1300
1302
1304
1307
1331
1344
1353
1354
1367
1369
1370
1373
1396
1411
1419
1420
1433
1435
1440
1954
1956
1960
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
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
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
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
8
8
8
8
8
8
8
8
10
10
12
20
20
20
20
21
21
22
22
25
28
29
30
32
32
33
33
34
35
36
36
37
37
38
38
39
39
40
45
45
45
48
48
50
50
51
51
51
52
53
53
54
54
55
55
56
56
57
58
62
65
65
66
67
67
68
69
69
69
69
71
72
73
73
73
73
73
73
74
75
79
79
81
82
83
84
85
94
94
96
96
97
99
100
101
101
102
102
102
102
102
104
104
105
105
109
109
110
110
111
111
112
112
113
114
115
117
117
118
118
119
119
120
120
130
131
131
131
131
131
133
134
135
136
137
137
137
139
140
140
141
142
142
142
142
143
144
146
146
146
146
147
148
148
148
148
148
149
151
152
153
153
153
153
153
154
154
154
155
156
156
158
166
167
167
167
169
170
171
172
173
173
173
173
179
179
180
181
182
182
184
184
184
186
187
188
189
189
190
190
191
194
195
196
196
197
199
199
199
201
202
202
202
202
204
205
206
206
206
207
207
208
208
209
209
211
217
219
219
220
222
224
224
224
225
225
226
227
228
228
228
233
234
234
234
234
236
237
237
238
238
238
239
239
240
240
241
242
243
244
247
250
253
255
257
257
257
257
259
260
260
261
261
262
264
264
265
265
266
266
267
267
267
267
269
272
273
273
273
273
275
276
276
277
278
279
286
286
286
288
290
290
291
291
292
292
293
294
295
295
295
295
296
296
297
297
298
300
301
302
304
305
305
308
309
309
310
311
311
312
312
312
312
313
313
314
315
319
319
320
320
321
322
322
326
326
328
330
331
331
332
332
333
333
340
340
341
341
341
341
342
342
343
343
344
344
344
346
346
347
347
347
348
348
348
349
349
350
350
351
352
359
361
361
362
364
366
366
367
367
368
369
369
370
370
370
377
377
378
379
379
379
380
380
380
380
380
382
383
384
384
385
385
386
386
393
399
399
399
405
405
406
407
408
408
409
410
411
412
413
413
413
415
419
419
425
425
425
431
432
432
433
434
435
435
442
447
448
450
451
451
452
454
454
454
456
457
460
460
462
463
464
464
465
467
470
483
483
483
486
487
488
488
490
490
490
491
492
493
493
493
494
494
508
512
512
512
517
518
518
520
521
521
523
525
526
530
531
532
534
537
538
538
538
545
545
546
547
548
548
557
558
559
559
561
561
565
565
567
567
567
573
573
574
575
576
577
578
584
593
594
596
596
596
596
597
597
597
600
602
603
603
603
603
604
605
606
606
625
625
625
626
631
631
632
633
633
634
634
634
636
636
640
640
641
650
663
666
670
671
672
677
678
688
699
703
704
705
705
707
709
711
711
721
724
727
739
740
742
743
743
748
749
750
765
774
778
779
780
780
782
786
786
787
791
794
802
804
805
807
818
831
841
854
857
860
883
898
907
920
923
927
945
956
966
978
981
984
1007
1022
1031
1044
1048
1051
1075
1088
1098
1111
1114
1117
1140
1155
1164
1177
1180
1184
1202
1213
1223
1235
1238
1241
1264
1279
1288
1301
1305
1308
1332
1345
1355
1368
1371
1374
1397
1412
1421
1434
1441
1955
1961
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
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
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
9
13
13
14
18
18
19
20
21
21
21
22
22
23
29
29
29
31
32
32
33
33
33
33
33
34
34
34
34
34
34
34
35
36
37
37
37
37
38
38
39
39
40
40
41
44
45
46
46
49
49
50
50
51
51
52
52
52
52
52
52
53
53
53
54
54
55
55
55
56
56
57
57
58
59
63
64
66
66
67
68
68
69
69
69
69
70
70
70
70
70
70
70
70
70
71
72
73
73
73
73
74
74
74
74
74
75
76
80
81
81
83
85
85
85
86
94
94
95
96
96
96
97
97
97
98
98
98
99
99
100
100
100
101
101
102
102
102
103
103
103
103
105
105
106
106
110
110
110
111
112
112
113
113
113
114
114
115
115
115
115
116
116
118
118
119
119
120
120
121
121
122
129
131
131
131
131
131
132
132
132
132
132
132
132
132
132
134
135
135
135
136
137
138
138
139
139
141
141
142
142
143
143
143
144
145
147
147
147
148
148
148
149
149
149
149
149
150
150
150
151
151
151
151
152
153
154
154
154
154
154
155
155
155
156
156
157
159
164
167
167
167
167
168
168
168
168
168
168
168
168
170
171
171
171
171
172
173
173
174
174
174
180
181
181
181
183
184
184
185
185
185
185
186
186
186
187
187
188
189
190
190
191
191
192
192
195
196
197
197
198
198
199
200
200
202
202
202
202
203
203
203
203
203
203
203
203
203
205
206
206
206
207
207
207
207
208
209
209
210
210
210
212
218
219
219
219
220
220
221
221
221
222
222
222
223
225
225
225
226
226
226
227
228
228
229
229
234
235
235
235
236
236
238
238
238
238
238
239
239
239
239
239
239
239
240
240
240
240
241
241
242
242
242
243
244
245
248
249
251
254
256
256
256
257
257
257
257
258
258
258
258
260
261
261
262
262
263
265
265
265
266
267
267
268
268
268
268
268
270
273
273
273
273
274
274
274
274
274
274
274
274
274
276
277
277
277
277
277
278
279
280
284
286
287
287
289
290
290
291
291
292
292
292
292
293
293
293
293
294
294
294
296
296
296
297
297
297
297
298
298
299
301
302
303
305
305
306
306
309
309
309
309
310
310
310
310
310
310
310
311
311
312
312
312
313
313
313
313
313
314
314
315
316
320
320
320
321
322
323
323
323
327
327
327
328
328
328
329
329
331
332
332
332
333
333
334
334
339
341
341
341
342
342
342
343
343
344
344
344
344
344
345
345
345
345
345
345
345
345
347
347
348
348
348
348
349
349
349
349
349
350
351
351
353
353
353
360
361
361
362
362
362
363
363
363
364
364
364
365
367
367
368
368
369
369
370
370
370
371
371
378
378
378
380
380
380
380
380
380
381
381
381
381
381
381
381
381
381
381
381
383
384
384
384
385
385
386
386
387
387
390
394
397
399
400
400
406
407
407
407
409
410
410
410
411
412
413
414
414
414
416
418
420
420
424
425
426
426
432
433
433
433
435
436
436
436
443
445
448
449
451
452
452
452
453
454
455
455
457
458
461
462
462
464
465
466
466
466
468
471
475
482
483
484
484
487
488
489
489
491
491
491
491
493
494
494
494
494
495
495
503
509
510
512
513
513
518
519
520
520
522
523
523
524
526
527
531
531
532
533
535
537
538
538
539
539
546
546
546
548
549
549
549
558
558
559
560
560
562
562
565
566
566
567
568
568
574
575
575
575
577
579
579
579
585
588
594
595
595
596
597
597
597
598
598
598
601
603
604
604
604
604
604
606
607
607
607
616
623
625
626
626
627
632
633
633
633
634
635
635
635
637
637
641
641
642
651
664
667
671
672
673
678
679
689
700
704
705
706
706
708
710
712
712
722
725
728
740
741
743
744
744
749
750
751
766
775
779
780
781
781
783
787
787
788
792
795
803
804
804
806
808
819
832
842
855
858
861
884
899
908
921
924
928
946
957
967
979
982
985
1008
1023
1032
1045
1049
1052
1076
1089
1099
1112
1115
1118
1141
1156
1165
1178
1181
1185
1203
1214
1224
1236
1239
1242
1265
1280
1289
1302
1306
1309
1333
1346
1356
1369
1372
1375
1398
1413
1422
1435
1442
1956
1962
1
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
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
12
14
15
19
20
21
22
22
23
23
30
30
32
32
33
33
33
34
34
34
34
34
35
35
35
36
36
37
37
37
38
38
38
39
40
40
41
41
42
45
47
48
49
50
50
51
51
52
53
53
54
54
55
55
55
55
56
56
56
57
57
58
58
60
64
64
65
67
68
68
69
69
69
69
70
70
70
70
71
71
71
71
71
72
72
73
73
73
74
74
74
75
75
75
76
77
82
84
86
86
87
94
95
96
96
97
98
98
98
98
98
99
99
99
99
99
100
100
101
101
101
102
103
104
104
104
106
106
107
107
111
112
113
113
113
113
114
114
114
116
116
117
118
119
119
119
120
120
121
121
122
122
122
123
130
130
131
131
132
132
132
132
133
133
133
133
134
135
135
135
136
136
136
138
139
140
142
143
144
144
144
145
146
146
147
148
148
149
149
149
150
150
150
150
151
152
152
153
153
154
154
155
155
155
156
156
156
157
157
158
160
164
165
166
167
167
168
168
168
168
169
169
169
169
170
171
171
171
172
172
172
172
174
175
175
182
182
184
184
185
185
186
186
187
188
189
189
190
190
191
191
192
192
192
193
193
196
198
198
199
199
201
201
202
202
203
203
203
203
204
204
204
204
204
205
206
206
206
207
207
207
208
209
210
210
210
211
211
213
217
218
219
219
220
220
220
221
222
223
223
224
224
225
226
226
226
227
227
227
229
230
235
236
236
237
237
238
238
239
239
239
239
239
240
240
240
241
241
241
241
242
242
242
242
243
243
243
245
246
249
249
250
252
255
255
256
257
258
259
259
260
261
261
262
262
263
263
264
266
268
268
268
269
269
269
269
271
272
273
273
274
274
274
274
275
275
275
275
275
276
277
277
277
277
278
278
278
278
278
280
281
285
288
288
289
290
291
291
292
293
293
294
294
295
295
295
296
297
297
297
298
298
298
299
300
302
304
305
306
306
307
307
308
309
309
310
310
310
310
311
311
311
312
312
312
313
313
313
313
314
314
314
314
315
316
317
321
322
323
323
324
324
326
327
328
329
330
331
332
332
332
333
333
333
334
334
335
335
340
342
343
343
343
344
344
344
344
345
345
345
345
345
346
346
346
346
347
348
348
348
348
349
349
349
350
350
350
351
352
352
354
354
359
360
361
362
362
362
363
363
364
365
365
366
366
367
368
368
369
369
370
371
371
372
379
379
380
380
381
381
381
381
381
381
381
382
382
382
382
382
382
383
384
384
384
385
385
385
386
387
387
388
388
390
391
395
398
401
408
408
410
411
411
412
414
415
415
415
417
418
419
421
421
425
427
433
434
436
436
437
437
444
445
446
450
452
453
453
453
454
456
458
459
463
465
466
467
467
469
472
475
476
483
485
489
490
490
492
492
494
494
495
495
495
496
496
503
504
510
511
514
519
521
523
524
525
527
528
531
532
532
533
534
536
538
539
540
547
549
549
550
550
558
559
560
561
561
563
563
566
567
567
569
576
576
578
580
580
586
588
589
596
596
598
598
599
599
599
602
604
605
605
605
607
607
608
608
616
617
624
627
628
634
635
636
636
636
638
638
642
642
643
652
665
668
672
673
674
679
680
690
701
706
707
707
709
711
713
713
723
726
729
742
744
745
745
750
751
752
767
776
781
782
782
784
788
788
789
793
796
805
807
809
820
833
843
856
859
862
885
900
909
922
925
929
947
958
968
980
983
986
1009
1024
1033
1046
1050
1053
1077
1090
1100
1113
1116
1119
1142
1157
1166
1179
1182
1186
1204
1215
1225
1237
1240
1243
1266
1281
1290
1303
1307
1310
1334
1347
1357
1370
1373
1376
1399
1414
1423
1436
1443
1957
1963
2
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
7
7
7
8
9
15
20
23
23
24
24
31
31
34
35
35
35
35
36
36
37
37
37
37
38
38
39
39
39
40
41
42
42
43
48
51
51
52
52
54
54
55
55
55
56
56
56
57
57
57
58
58
59
59
59
61
65
65
68
69
70
70
71
71
71
72
72
72
72
73
73
73
74
74
75
75
75
76
76
76
77
78
83
84
87
87
88
88
95
97
98
99
100
100
100
100
100
100
100
101
102
102
102
104
105
105
105
107
107
108
108
112
113
114
114
115
115
116
117
117
118
120
120
120
121
121
122
122
123
123
123
133
133
133
134
134
134
135
135
135
136
136
137
137
137
139
140
141
144
145
145
145
146
147
149
149
150
150
151
151
151
152
153
153
153
154
154
155
155
156
157
157
157
157
158
158
158
159
161
165
169
169
169
170
170
170
171
171
171
172
172
173
173
173
175
176
176
183
183
186
187
187
188
189
190
191
191
192
192
193
193
193
194
197
199
199
200
202
204
204
204
205
205
205
205
206
206
206
207
207
208
208
208
209
210
211
211
212
212
213
214
220
220
221
221
223
224
224
224
225
225
226
227
227
228
228
228
230
231
236
237
237
238
239
240
240
240
241
241
242
242
242
242
242
242
243
243
243
243
244
244
244
246
247
250
250
253
256
259
260
260
262
262
263
263
264
264
265
267
269
269
270
270
270
270
271
272
275
275
275
276
276
276
276
277
277
277
278
278
278
279
279
279
279
281
282
289
291
292
292
294
294
295
295
295
296
296
296
297
298
299
299
299
299
300
301
303
305
306
307
308
308
311
311
311
312
312
313
313
313
313
314
314
314
315
315
315
315
316
317
318
322
323
324
325
325
326
329
330
331
333
333
333
334
334
335
335
336
336
343
344
344
345
345
346
346
346
346
347
347
347
348
348
348
349
349
349
350
350
350
351
351
351
352
352
353
355
355
356
362
363
363
363
365
366
366
366
367
367
368
369
370
370
370
372
372
373
380
382
382
382
382
382
383
383
383
383
383
384
384
384
384
385
385
386
386
386
387
388
388
389
389
391
396
402
409
409
412
412
413
415
416
416
416
418
419
422
422
428
434
435
437
438
438
439
445
446
451
453
454
454
455
457
459
460
464
465
467
468
468
469
470
473
476
486
490
491
491
493
493
495
496
496
496
497
497
497
504
511
515
520
522
525
526
528
529
532
533
534
535
537
540
541
548
550
551
551
552
559
561
562
562
564
564
568
568
570
577
577
578
581
581
582
587
589
597
599
599
600
600
600
603
605
606
606
606
608
609
609
610
617
628
629
635
636
637
637
639
639
643
643
644
653
666
669
673
674
675
680
681
691
702
707
708
708
710
712
714
714
724
727
730
743
745
746
746
751
752
753
768
777
782
783
783
785
789
789
790
794
797
806
810
821
834
844
857
860
863
886
901
910
923
926
930
948
959
969
981
984
987
1010
1025
1034
1047
1051
1054
1078
1091
1101
1114
1117
1120
1143
1158
1167
1180
1183
1187
1205
1216
1226
1238
1241
1244
1267
1282
1291
1304
1308
1311
1335
1348
1358
1371
1374
1377
1400
1415
1424
1437
1444
1958
1964
1
5
8
8
8
9
10
25
32
38
38
38
38
40
42
43
43
44
52
56
56
57
59
60
60
62
66
69
70
71
71
73
73
74
74
74
76
77
77
78
79
89
89
98
100
101
101
103
105
106
106
108
108
109
109
114
115
117
118
121
122
123
124
124
136
136
136
138
140
141
145
146
146
147
148
152
152
154
154
155
158
158
159
160
162
171
172
172
172
174
176
177
184
188
191
193
194
195
198
200
200
201
206
206
207
207
207
209
211
212
214
215
225
225
226
228
229
229
231
237
238
238
243
243
243
243
244
244
245
247
248
251
254
257
264
265
266
270
271
271
272
273
277
277
278
278
278
280
280
282
283
295
296
296
297
300
300
302
304
306
308
309
309
314
314
314
314
315
316
317
318
319
324
327
330
335
336
337
337
344
345
346
346
347
348
349
349
349
350
351
352
352
353
354
357
367
367
368
371
371
373
373
383
384
385
385
385
385
387
388
389
389
390
390
397
410
413
416
417
417
417
419
423
423
435
440
446
452
454
455
455
456
460
461
468
470
471
474
491
492
492
494
497
498
498
498
512
521
529
530
534
535
536
538
541
553
562
563
563
565
565
569
569
578
583
588
598
600
601
601
601
604
606
607
607
611
630
637
638
638
640
644
644
645
654
667
670
674
675
676
681
682
692
703
708
709
709
711
713
715
715
725
728
731
744
746
747
747
752
753
754
769
778
783
784
784
786
790
790
791
795
798
822
835
845
858
861
864
887
902
911
924
927
931
949
960
970
982
985
988
1011
1026
1035
1048
1052
1055
1079
1092
1102
1115
1118
1121
1144
1159
1168
1181
1184
1188
1206
1217
1227
1239
1242
1245
1268
1283
1292
1305
1309
1312
1336
1349
1359
1372
1375
1378
1401
1416
1425
1438
1445
1959
1965
