0
0
0
0
1
1
2
2
3
4
4
5
6
7
8
9
11
12
13
15
16
18
19
21
23
25
27
29
31
33
35
37
39
41
44
46
48
51
53
56
58
61
63
66
69
71
74
77
80
83
85
88
91
94
97
100
102
105
108
111
113
116
119
122
124
127
130
132
135
138
140
143
146
148
151
153
155
157
160
162
164
166
168
170
171
173
175
177
178
180
181
183
184
185
186
187
188
189
190
191
191
192
192
193
193
193
193
193
193
193
194
194
194
193
193
192
191
191
190
189
188
187
186
184
183
182
180
179
177
176
174
172
170
169
167
165
163
160
158
156
154
151
149
146
144
141
139
136
133
131
128
125
123
120
117
115
112
109
106
104
101
98
95
93
90
87
84
81
78
76
73
70
68
65
62
60
58
55
53
50
48
46
43
41
39
37
35
33
31
29
27
25
23
21
20
18
17
15
14
13
11
10
9
8
7
6
5
4
4
3
3
2
2
1
1
1
1
1
1
1
1
2
2
3
3
4
4
5
6
7
8
9
10
11
12
14
15
16
18
20
21
23
25
27
29
31
33
35
37
39
41
43
46
48
50
53
55
58
60
63
66
68
71
74
77
79
82
85
88
91
94
97
100
102
105
108
111
114
117
119
122
125
128
130
133
136
139
141
144
147
149
152
154
157
159
161
163
165
168
170
171
173
175
177
179
181
182
184
185
186
188
189
190
191
192
193
193
194
194
195
195
196
196
196
196
196
196
196
197
197
197
196
195
195
194
193
192
191
190
188
187
186
184
183
181
180
178
176
174
172
170
168
166
164
162
160
157
155
152
150
147
145
142
139
137
134
131
128
126
123
120
117
114
111
109
106
103
100
97
94
91
88
86
83
80
77
74
72
69
66
64
61
58
56
53
51
48
46
44
42
39
37
35
33
31
29
27
25
23
22
20
18
17
15
14
13
11
10
9
8
7
6
5
5
4
3
3
3
2
2
2
2
2
2
2
1
1
1
2
2
3
4
4
5
6
7
8
9
10
11
13
14
16
17
19
20
22
24
26
28
30
32
34
36
38
40
43
45
47
50
52
55
57
60
62
65
68
70
73
76
79
81
84
87
90
93
96
99
101
104
107
110
112
115
118
121
124
126
129
132
134
137
140
142
145
147
150
152
155
157
159
161
163
166
168
169
171
173
175
177
178
180
181
183
184
185
187
188
189
190
191
191
192
193
193
194
194
195
195
195
195
195
195
195
194
194
194
193
192
192
191
190
189
188
187
186
185
183
182
181
179
178
176
174
172
171
169
167
165
163
161
158
156
154
151
149
146
144
141
139
136
133
131
128
125
123
120
117
115
112
109
106
104
101
98
95
92
89
87
84
81
78
75
73
70
67
65
62
60
57
55
52
50
47
45
43
41
39
36
34
32
30
28
26
25
23
21
19
18
16
15
13
12
11
10
9
8
7
6
5
4
4
3
2
2
2
1
1
1
1
1
1
1
1
2
2
3
3
4
5
5
6
7
8
9
10
11
13
14
15
17
19
20
22
24
25
27
29
31
33
35
37
40
42
44
46
49
51
53
56
58
61
64
66
69
71
74
77
80
82
85
88
91
94
97
100
102
105
108
111
113
116
119
122
124
127
130
132
135
138
140
143
145
148
150
153
155
157
160
162
164
166
168
170
172
173
175
177
179
180
182
183
184
186
187
188
189
190
191
191
192
193
193
194
194
194
195
195
195
195
195
195
195
194
194
193
192
192
191
190
189
188
187
186
184
183
182
180
179
177
175
174
172
170
168
166
164
162
160
158
155
153
150
148
145
143
140
137
135
132
129
127
124
121
119
116
113
110
107
105
102
99
96
93
90
87
84
82
79
76
73
70
68
65
62
60
57
55
52
50
47
45
43
40
38
36
34
32
30
28
26
24
22
20
19
17
15
14
12
11
10
9
7
6
5
4
4
3
2
2
1
1
0
0
0
0
0
0
0
-1
-1
-1
0
0
1
2
2
3
4
5
6
7
8
10
11
13
14
16
17
19
21
23
25
27
29
31
33
35
37
40
42
44
47
49
52
54
57
60
62
65
68
70
73
76
79
82
85
88
91
94
97
100
102
105
108
111
114
117
119
122
125
128
130
133
136
139
141
144
146
149
152
154
156
159
161
163
165
167
169
171
173
175
177
178
180
181
183
184
185
187
188
189
190
191
191
192
193
193
194
194
194
195
195
195
195
195
195
195
194
194
193
192
192
191
190
189
188
187
186
184
183
182
180
179
177
175
173
171
170
168
166
164
161
159
157
155
152
150
147
145
142
139
137
134
131
129
126
123
120
118
115
112
109
106
104
101
98
95
92
89
86
84
81
78
75
72
70
67
64
62
59
56
54
51
49
46
44
42
40
37
35
33
31
29
27
25
23
21
20
18
16
15
13
12
10
9
8
7
6
5
4
3
2
2
1
1
0
0
0
-1
-1
-1
-1
-1
-1
-1
0
0
1
1
2
3
4
5
6
7
8
9
10
11
13
14
16
18
19
21
23
25
27
29
31
33
35
37
40
42
44
47
49
52
54
57
59
62
65
67
70
73
76
78
81
84
87
90
93
96
99
102
105
107
110
113
116
119
121
124
127
130
132
135
138
140
143
146
148
151
153
156
158
160
162
165
167
169
171
172
174
176
178
179
181
182
184
185
186
187
188
190
190
191
192
193
193
194
194
195
195
195
195
195
195
195
194
194
194
193
192
192
191
190
189
188
187
186
185
183
182
180
179
177
175
174
172
170
168
166
164
162
160
157
155
153
150
148
145
142
140
137
134
132
129
126
124
121
118
115
112
110
107
104
101
98
95
93
90
87
84
81
78
75
72
70
67
64
62
59
56
54
51
49
46
44
42
40
37
35
33
31
29
27
25
23
21
20
18
16
15
13
12
10
9
8
7
6
5
4
3
2
2
1
1
0
0
0
-1
-1
-1
-1
-1
-1
-1
0
0
1
1
2
3
3
4
5
6
7
8
10
11
12
14
15
17
19
20
22
24
26
28
30
32
34
36
39
41
43
45
48
50
53
55
58
60
63
66
68
71
74
77
79
82
85
88
91
94
97
100
102
105
108
111
114
117
119
122
125
127
130
133
135
138
141
143
146
148
151
153
156
158
160
162
165
167
169
170
172
174
176
178
179
181
182
183
185
186
187
188
189
190
191
192
192
193
193
194
194
194
194
194
194
195
195
195
195
194
193
193
192
191
190
190
189
187
186
185
184
182
181
179
178
176
174
172
170
168
166
164
162
160
157
155
153
150
147
145
142
140
137
134
132
129
126
123
120
118
115
112
109
106
103
100
98
95
92
89
86
83
80
77
74
71
69
66
63
61
58
55
53
50
48
45
43
41
39
36
34
32
30
28
26
24
22
20
19
17
15
14
12
11
9
8
7
6
5
4
3
3
2
1
1
0
0
0
0
-1
-1
-1
-1
-1
-1
0
0
0
1
2
2
3
4
5
6
7
8
10
11
12
14
15
17
19
20
22
24
26
28
30
32
34
36
39
41
43
45
48
50
53
55
58
60
63
66
68
71
74
77
79
82
85
88
91
94
97
100
102
105
108
111
114
116
119
122
125
127
130
133
135
138
141
143
146
148
151
153
156
158
160
162
165
167
169
170
172
174
176
178
179
181
182
183
185
186
187
188
189
190
191
192
192
193
193
194
194
194
195
195
195
195
195
195
194
194
194
193
192
192
191
190
189
188
187
185
184
183
181
180
178
176
174
173
171
169
167
165
163
161
158
156
154
151
149
146
144
141
138
136
133
130
127
125
122
119
116
113
111
108
105
102
99
97
94
91
88
85
82
79
76
73
71
68
65
63
60
57
55
52
50
47
45
43
40
38
36
34
32
30
28
26
24
22
20
18
17
15
14
12
11
10
8
7
6
5
5
4
3
2
2
1
1
0
0
0
0
0
0
0
0
-1
-1
-1
0
1
1
2
3
4
5
6
7
8
9
10
12
13
15
16
18
20
22
23
25
28
30
32
34
36
38
40
43
45
48
50
53
55
58
60
63
66
68
71
74
77
80
82
85
88
91
94
97
100
103
105
108
111
114
117
119
122
125
128
130
133
136
138
141
144
146
149
151
154
156
158
160
162
165
167
168
170
172
174
176
177
179
180
182
183
184
186
187
188
189
190
190
191
192
192
193
193
193
194
194
194
194
194
194
194
193
193
192
191
191
190
189
188
187
186
185
184
182
181
179
178
176
174
173
171
169
167
165
163
161
159
156
154
152
149
147
144
142
139
136
134
131
128
126
123
120
117
115
112
109
106
103
101
98
95
92
89
86
83
80
78
75
72
69
67
64
61
59
56
54
51
48
46
44
41
39
37
35
33
31
29
27
25
23
21
19
17
16
14
13
11
10
9
7
6
5
4
3
3
2
1
0
0
0
-1
-1
-1
-1
-1
-1
-2
-2
-2
-2
-1
-1
0
1
1
2
3
4
5
6
7
9
10
12
13
15
16
18
20
21
23
25
28
30
32
34
36
38
41
43
45
48
50
53
56
58
61
63
66
69
72
75
78
80
83
86
89
92
95
98
101
104
107
110
112
115
118
121
124
127
129
132
135
137
140
143
145
148
151
153
155
158
160
162
164
166
168
170
172
174
176
178
179
181
182
184
185
186
187
188
189
190
191
192
192
193
193
194
194
194
194
194
194
195
195
195
194
194
193
193
192
191
190
189
188
187
186
184
183
182
180
178
177
175
173
171
169
167
165
163
161
158
156
154
151
149
146
143
141
138
135
133
130
127
124
121
119
116
113
110
107
104
101
98
96
93
90
87
84
81
78
75
72
69
66
64
61
58
56
53
51
48
46
43
41
39
36
34
32
30
28
26
24
22
20
18
16
15
13
12
10
9
8
6
5
4
3
2
2
1
0
0
-1
-1
-2
-2
-2
-2
-2
-2
-2
-3
-3
-3
-2
-2
-1
0
0
1
2
3
4
5
7
8
9
11
12
14
16
17
19
21
23
25
27
29
31
34
36
38
40
43
45
48
50
53
55
58
61
63
66
69
72
74
77
80
83
86
89
92
95
98
101
103
106
109
112
115
118
120
123
126
129
131
134
137
139
142
145
147
150
152
155
157
159
161
163
165
167
169
171
173
175
176
178
179
181
182
184
185
186
187
188
189
190
190
191
192
192
192
193
193
193
193
193
193
193
192
192
191
191
190
189
189
188
187
186
185
183
182
181
179
178
176
175
173
171
169
167
165
163
161
159
157
155
152
150
147
145
142
140
137
134
132
129
126
124
121
118
115
113
110
107
104
101
98
96
93
90
87
84
81
78
75
72
70
67
64
62
59
56
54
51
49
46
44
42
39
37
35
33
31
28
26
24
22
20
19
17
15
14
12
11
9
8
7
6
5
4
3
2
1
0
-1
-1
-2
-2
-3
-3
-3
-3
-3
-3
-3
-4
-4
-4
-3
-3
-2
-1
-1
0
1
2
3
4
5
6
8
9
11
12
14
16
17
19
21
23
25
27
29
31
34
36
38
40
43
45
48
50
53
55
58
60
63
66
69
71
74
77
80
83
86
89
92
95
97
100
103
106
109
111
114
117
120
122
125
128
131
133
136
139
141
144
146
149
151
153
156
158
160
162
164
166
168
170
171
173
175
176
178
179
181
182
183
184
185
186
187
188
189
189
190
190
191
191
191
191
191
191
191
192
192
192
191
191
190
189
188
187
186
185
184
183
182
180
179
177
176
174
172
170
169
167
165
163
161
158
156
154
152
149
146
144
141
139
136
133
131
128
125
123
120
117
114
112
109
106
103
100
97
95
92
89
86
83
80
77
74
71
69
66
63
61
58
55
53
50
48
45
43
41
38
36
34
32
30
28
26
24
22
20
18
16
15
13
12
10
9
7
6
5
4
3
2
1
0
0
-1
-1
-2
-2
-3
-3
-3
-3
-3
-3
-3
-3
-2
-2
-1
-1
0
0
1
2
3
4
5
6
7
9
10
12
13
15
16
18
20
22
24
26
28
30
32
34
36
38
40
43
45
48
50
53
55
58
60
63
66
68
71
74
77
80
82
85
88
91
94
97
100
102
105
108
111
114
116
119
122
125
127
130
133
135
138
141
143
146
148
151
153
155
157
160
162
164
166
168
170
171
173
175
177
178
180
181
182
184
185
186
187
188
189
189
190
191
191
192
192
192
192
192
192
192
193
193
193
192
192
191
191
190
189
188
187
186
185
184
182
181
180
178
176
175
173
171
169
167
165
163
161
159
157
155
152
150
147
144
142
139
136
134
131
128
126
123
120
117
115
112
109
106
103
100
98
95
92
89
86
83
80
77
74
71
68
66
63
60
58
55
53
50
47
45
43
40
38
36
34
32
29
27
25
23
21
19
18
16
14
13
11
10
8
7
6
5
4
3
2
1
0
0
-1
-1
-2
-2
-2
-3
-3
-3
-3
-3
-3
-3
-2
-2
-1
0
0
1
2
3
4
5
6
7
8
10
11
13
14
16
18
19
21
23
25
28
30
32
34
36
38
41
43
45
48
50
53
55
58
61
63
66
69
72
74
77
80
83
86
89
92
95
98
101
103
106
109
112
115
117
120
123
126
128
131
134
137
139
142
144
147
149
152
154
157
159
161
163
165
167
169
171
173
174
176
178
179
181
182
183
185
186
187
188
189
189
190
191
191
192
192
193
193
193
193
193
193
193
192
192
192
191
190
190
189
188
187
186
185
184
183
181
180
179
177
175
174
172
170
168
166
165
163
160
158
156
154
152
149
147
144
142
139
136
134
131
128
126
123
121
118
115
112
110
107
104
101
99
96
93
90
87
84
82
79
76
73
71
68
65
63
60
58
55
53
50
48
45
43
41
39
37
34
32
30
28
26
24
23
21
19
17
16
14
13
12
10
9
8
7
6
5
4
3
2
1
1
0
0
-1
-1
-1
-1
-1
-1
-1
-2
-2
-2
-1
-1
0
0
1
2
2
3
4
5
6
8
9
10
12
13
15
16
18
20
22
24
26
28
30
32
34
36
38
40
43
45
48
50
53
55
58
60
63
66
69
71
74
77
80
83
86
89
92
95
97
100
103
106
109
112
115
117
120
123
126
128
131
134
137
139
142
145
147
150
152
155
157
159
161
163
165
167
169
171
173
175
177
178
180
181
183
184
185
186
187
188
189
190
191
191
192
192
193
193
193
193
193
193
193
194
194
194
193
192
192
191
190
189
188
187
186
184
183
182
180
179
177
175
173
171
170
168
166
164
161
159
157
154
152
149
147
144
142
139
136
133
131
128
125
122
119
117
114
111
108
105
102
99
97
94
91
88
85
82
79
76
73
70
67
65
62
59
57
54
51
49
46
44
42
39
37
35
33
31
28
26
24
22
20
19
17
15
14
12
11
9
8
7
6
5
4
3
2
1
0
0
-1
-1
-2
-2
-2
-2
-2
-2
-3
-3
-3
-3
-2
-2
-1
0
0
1
2
3
4
5
6
7
8
10
11
13
14
16
18
19
21
23
25
27
29
31
33
36
38
40
42
45
47
49
52
54
57
60
62
65
67
70
73
76
78
81
84
87
90
93
95
98
101
104
106
109
112
115
117
120
123
125
128
131
133
136
138
141
143
146
148
151
153
155
158
160
162
164
166
167
169
171
173
174
176
178
179
180
182
183
184
185
186
187
188
188
189
190
190
191
191
191
191
191
191
191
192
192
192
191
191
190
190
189
188
187
186
185
184
183
182
180
179
177
176
174
172
171
169
167
165
163
161
159
157
154
152
150
147
144
142
139
137
134
131
129
126
123
121
118
115
112
110
107
104
101
99
96
93
90
87
84
81
78
76
73
70
67
65
62
59
57
54
52
49
47
45
42
40
38
36
33
31
29
27
25
23
22
20
18
16
15
13
12
11
9
8
7
6
5
4
3
2
2
1
0
0
-1
-1
-1
-1
-1
-1
-1
-2
-2
-2
-1
-1
-1
0
1
1
2
3
4
5
6
7
9
10
11
13
14
16
17
19
21
23
25
27
29
31
33
35
37
39
42
44
46
49
51
54
56
59
61
64
67
69
72
75
78
81
83
86
89
92
95
98
100
103
106
109
112
114
117
120
122
125
128
130
133
136
138
141
144
146
149
151
153
156
158
160
162
164
166
168
170
172
173
175
177
178
180
181
182
184
185
186
187
188
189
189
190
191
191
191
192
192
192
192
192
192
193
193
193
192
192
191
191
190
189
188
187
186
185
183
182
181
179
178
176
174
173
171
169
167
165
163
161
159
156
154
152
149
147
144
142
139
136
133
131
128
125
123
120
117
114
111
108
106
103
100
97
94
91
88
85
82
80
77
74
71
68
65
63
60
58
55
52
50
47
45
43
40
38
36
34
32
29
27
25
23
21
20
18
16
15
13
12
10
9
