0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
3
3
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
2
2
2
2
2
2
2
2
3
4
4
4
4
4
4
4
5
5
5
5
6
6
7
7
7
7
9
10
10
10
11
12
12
12
12
13
13
13
13
13
13
14
14
14
13
13
12
12
12
13
14
14
15
16
16
17
17
17
18
21
20
21
22
22
23
23
23
23
23
24
24
21
23
23
23
23
24
27
27
27
26
26
25
26
26
26
29
29
28
28
28
30
34
33
33
32
32
33
33
33
33
33
33
33
33
34
34
34
34
37
38
39
39
39
40
41
42
48
49
49
50
50
55
57
57
57
57
60
60
60
60
61
63
62
60
62
62
62
58
61
61
61
60
60
59
62
64
65
67
68
68
68
68
68
69
68
65
64
62
61
59
57
54
53
53
54
54
54
55
57
61
61
60
59
59
59
57
57
57
57
59
59
59
60
60
61
60
59
58
58
58
57
57
55
54
54
54
54
54
46
44
43
42
42
42
42
42
43
43
43
43
43
44
44
45
45
46
46
46
46
47
47
46
46
46
41
41
38
37
38
39
39
39
38
36
35
35
34
33
33
33
32
32
32
32
28
27
26
27
27
27
27
26
27
26
24
24
24
24
24
24
25
25
25
25
25
25
24
23
23
22
22
24
23
22
21
20
19
19
19
20
20
19
19
19
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
18
19
20
20
20
21
22
21
21
21
21
22
22
22
22
22
22
22
22
25
25
25
25
25
25
23
23
23
23
23
23
22
21
21
22
22
22
23
24
24
23
25
24
24
24
24
25
25
26
26
28
29
29
29
28
28
28
26
24
24
24
24
24
24
21
23
23
23
24
23
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
30
30
31
31
31
29
32
32
32
31
32
32
32
33
33
34
34
33
33
34
34
34
34
34
33
32
32
32
32
32
29
30
31
33
32
33
29
29
29
29
33
46
43
41
39
38
37
36
35
35
39
40
40
40
41
41
39
37
37
37
37
39
39
38
45
46
45
45
49
49
49
49
48
47
43
42
42
42
42
41
41
39
40
41
42
43
45
46
43
41
49
50
50
50
50
50
69
69
69
69
69
69
69
69
69