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