0
0
0
0
0
0
0
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
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
3
3
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
13
13
13
13
13
14
15
17
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
26
27
27
29
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
36
36
36
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
47
47
48
48
48
48
52
52
52
52
52
52
52
52
52
54
54
54
57
57
59
60
65
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
71
71
71
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
73
76
78
78
81
85
85
86
87
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
89
89
89
89
89
89
90
90
90
91
91
91
91
91
91
92
93
94
96
97
97
99
102
102
105
109
111
114
117
125
128
135
135
135
135
135
135
135
135
135
135
135
135
136
136
136
136
136
136
137
137
137
137
137
137
138
138
138
138
138
138
139
139
139
139
140
140
140
140
140
140
140
141
141
141
141
141
141
141
141
141
141
141
142
143
144
145
146
146
146
146
146
146
146
147
147
147
147
147
147
148
149
149
149
149
150
151
151
151
151
151
151
152
153
154
155
156
157
158
159
160
161
161
161
161
161
162
162
162
162
163
163
163
163
163
164
165
165
166
166
166
166
168
168
169
172
176
180
183
183
185
189
194
199
204
204
204
204
204
206
210
210
210
214
214
214
219
225
235
244
258
270
270
270
270
270
270
271
271
272
272
272
272
272
272
272
272
272
272
272
272
272
273
274
275
275
275
275
275
276
277
277
277
278
278
278
279
279
279
279
279
279
279
280
281
281
281
281
281
281
282
282
286
289
289
293
298
303
304
305
306
