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