1
1
2
1
2
3
1
2
3
4
1
1
2
3
4
5
5
5
3
4
4
5
5
5
6
6
6
1
4
6
7
7
7
7
5
5
5
7
8
8
8
8
6
8
9
9
1
4
4
5
5
7
7
10
10
1
1
1
4
5
5
5
8
11
11
2
5
5
5
5
7
9
12
12
1
3
5
5
5
5
6
7
10
13
13
2
4
4
4
4
5
5
5
6
7
7
11
14
14
1
3
4
4
5
5
5
5
5
7
7
8
12
15
15
1
2
4
5
5
5
5
5
6
6
7
7
7
8
9
13
16
16
1
1
2
3
4
4
4
5
5
5
5
7
7
8
8
9
10
14
15
15
17
17
1
1
2
2
2
3
4
5
5
5
6
8
9
9
10
11
15
16
16
18
1
1
2
2
2
3
3
3
4
4
4
5
5
5
5
6
7
9
9
11
12
16
17
17
19
1
1
1
1
1
1
2
3
3
3
4
4
5
5
5
5
5
5
5
6
6
7
7
8
9
9
10
12
13
17
18
20
1
2
2
2
2
2
3
4
4
4
4
4
4
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
9
9
10
11
13
14
18
19
21
1
1
1
1
1
2
3
3
3
3
4
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
8
8
9
9
10
11
11
11
11
12
14
15
20
22
1
2
2
3
4
4
5
5
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
9
9
9
9
9
11
11
13
16
16
19
21
21
23
23
1
1
3
3
4
4
4
4
5
5
5
5
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
9
9
9
9
9
9
10
10
13
14
14
17
17
17
20
22
22
24
24
1
1
1
1
4
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
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
13
14
15
15
18
18
18
21
23
23
25
25
1
1
1
1
2
2
4
4
4
5
5
5
6
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
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
14
15
16
16
19
19
22
26
26
1
1
1
2
3
3
4
4
4
5
5
5
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
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
13
13
13
13
16
20
20
23
27
27
1
3
4
4
5
5
5
6
6
6
7
7
7
7
7
7
7
7
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
10
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
14
14
17
21
21
24
28
28
1
1
2
4
4
4
4
5
5
5
5
5
7
7
7
7
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
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
15
15
18
22
22
25
29
29
1
2
2
3
5
5
5
5
5
5
6
6
6
6
6
8
8
8
8
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
12
12
13
13
13
13
13
14
14
15
15
15
15
15
15
16
16
19
23
23
26
30
30
1
3
3
4
4
5
5
5
5
6
7
7
8
8
8
8
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
12
12
12
13
13
13
13
13
14
14
15
15
16
16
16
16
16
16
17
17
20
24
24
27
31
31
2
4
4
4
5
5
6
6
7
7
7
8
8
8
8
10
10
10
10
10
10
10
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
14
14
15
16
16
17
17
17
17
18
18
21
25
25
28
32
32
3
5
5
5
5
5
5
5
5
5
6
7
7
8
8
9
10
11
11
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
14
14
14
14
14
14
15
15
16
17
17
18
18
18
18
18
18
19
19
22
26
26
29
33
33
5
5
6
6
6
6
7
7
7
7
9
10
10
10
11
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
15
15
15
15
16
16
16
16
17
17
17
18
18
18
18
19
19
19
19
19
20
20
20
20
23
27
27
30
34
34
4
5
5
5
5
7
7
7
8
8
8
8
8
8
8
8
10
10
10
10
10
12
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
16
16
16
16
17
17
17
17
18
18
18
19
19
20
20
20
21
21
21
21
24
28
28
31
33
33
35
35
1
4
5
5
5
6
6
6
6
6
7
7
7
8
8
8
8
9
9
10
10
10
10
11
11
11
11
11
12
12
12
12
12
13
13
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
18
18
18
18
19
19
20
20
21
21
21
22
22
22
22
25
27
27
29
29
32
34
34
36
1
1
1
1
4
5
5
5
5
5
5
5
5
5
5
7
7
7
7
8
8
9
10
10
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
16
16
16
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
21
21
21
21
22
22
22
23
23
23
23
26
28
28
30
33
35
35
37
1
1
1
1
4
4
5
5
5
6
6
6
6
6
6
8
8
8
9
10
11
11
11
11
12
12
12
12
12
13
13
13
13
13
14
14
14
14
14
14
15
15
16
16
16
16
16
16
16
17
17
17
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
22
23
23
23
23
24
24
24
24
27
29
29
31
34
36
38
1
5
5
5
5
5
7
7
7
7
7
8
8
8
8
9
9
10
11
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
15
15
15
16
16
16
16
16
17
17
17
17
18
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
23
23
23
24
24
24
24
25
25
25
25
28
30
32
35
37
39
4
4
5
5
6
6
6
8
8
8
8
8
8
9
10
10
10
10
11
12
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
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
22
22
22
22
23
23
23
23
23
23
24
25
25
25
25
26
26
26
26
29
31
33
38
40
5
5
5
5
5
5
5
5
7
8
8
8
9
9
9
9
10
11
12
12
12
13
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
16
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
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
25
26
26
26
26
27
27
27
27
32
33
34
37
39
39
41
41
4
4
4
5
5
5
5
5
6
6
6
8
8
8
8
10
10
10
10
10
10
10
12
12
12
13
13
13
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
18
19
19
19
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
24
26
27
27
27
27
27
28
28
28
28
31
33
33
34
35
35
38
40
40
42
42
4
4
5
5
5
5
5
5
5
5
5
6
7
7
8
8
9
10
11
11
11
11
11
11
11
12
12
12
13
13
13
15
15
16
16
16
16
16
16
16
16
16
17
17
17
18
19
19
19
20
20
20
20
20
20
20
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
27
27
28
28
28
28
28
29
29
29
29
32
34
34
35
36
36
39
41
41
43
43
4
5
5
5
5
5
5
6
6
6
6
6
6
7
7
8
8
8
10
10
12
12
12
12
13
14
16
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
20
20
20
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
25
26
26
28
28
29
29
29
29
29
30
30
30
30
33
35
35
37
37
40
44
44
2
4
4
5
5
5
5
5
5
5
7
7
7
7
8
8
9
13
13
13
13
14
15
15
16
16
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
21
22
22
22
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
27
27
29
29
30
30
30
30
31
31
31
31
34
38
38
41
45
45
2
3
4
5
5
5
5
5
5
7
8
8
8
8
9
9
10
12
12
14
14
14
14
15
15
15
17
17
17
17
17
18
18
18
18
18
18
19
19
20
20
20
20
20
20
20
21
21
21
22
23
24
24
24
25
25
25
25
26
26
26
27
27
27
27
27
29
29
30
30
31
31
31
32
32
32
32
35
39
39
42
46
46
3
4
4
4
5
5
5
5
6
7
8
9
9
9
10
10
10
11
11
11
15
15
15
17
17
18
18
18
18
18
18
18
18
19
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
27
27
27
28
28
28
28
28
30
30
31
31
32
32
32
33
33
33
33
36
40
40
43
47
47
1
4
4
4
5
5
5
5
5
5
5
6
7
7
8
8
9
10
10
10
11
11
12
14
14
15
15
15
16
16
16
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
22
22
22
22
22
22
23
23
23
23
23
23
25
25
25
25
25
26
26
26
26
27
27
27
27
28
28
28
29
29
29
29
29
31
32
32
33
33
33
34
34
37
41
41
44
48
48
1
2
5
5
5
5
5
5
5
6
6
6
7
7
7
7
7
8
8
9
9
10
10
10
11
11
11
12
12
13
15
17
17
17
17
17
17
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
22
23
23
23
23
23
23
24
24
25
25
25
25
25
25
25
25
25
25
26
26
27
27
28
28
28
28
28
29
29
29
30
30
30
30
32
33
33
33
33
33
33
34
34
34
35
35
38
42
42
45
49
49
1
1
1
2
3
5
5
7
7
7
7
8
8
8
8
8
8
8
10
10
10
10
10
10
11
12
12
13
13
14
14
14
15
15
15
16
16
18
18
18
19
20
20
20
20
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
24
24
24
25
25
25
25
26
26
26
26
26
26
27
27
28
28
30
30
30
31
31
31
31
33
33
34
34
34
34
35
35
35
35
36
36
39
43
43
46
50
50
1
3
4
4
4
5
7
7
8
8
8
9
9
9
10
11
11
11
11
11
11
12
12
14
14
15
15
15
17
17
17
17
17
18
18
18
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
23
23
23
23
23
23
23
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
28
28
28
28
28
28
29
29
31
31
31
32
32
32
32
32
34
34
35
35
35
35
36
36
36
36
37
37
40
44
44
47
51
51
4
5
5
5
5
5
5
5
7
8
8
8
8
8
9
9
9
9
9
9
9
9
10
12
13
13
14
14
15
15
15
15
16
16
17
18
18
18
18
19
19
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
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
28
28
28
29
29
29
29
29
29
30
30
32
32
32
33
33
33
33
36
36
36
36
37
37
37
37
38
38
41
45
45
48
52
52
4
4
5
5
5
5
5
5
6
6
7
7
7
7
8
9
9
9
9
9
9
10
10
10
10
11
11
13
13
14
14
14
14
15
15
16
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
20
20
20
20
21
21
21
21
21
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
30
30
30
30
32
32
33
33
33
34
34
34
34
37
37
37
37
38
38
38
38
39
39
42
46
46
49
51
51
53
53
4
5
5
5
6
6
6
7
7
7
7
8
9
9
10
10
10
11
11
11
11
12
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
17
18
18
18
19
19
19
19
19
19
20
20
20
20
21
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
30
30
30
30
31
31
33
34
34
34
35
35
35
35
38
38
38
38
39
39
40
40
43
45
45
47
47
50
52
52
54
4
5
5
5
5
5
6
6
7
7
7
8
8
8
8
8
8
8
9
10
10
10
11
11
11
11
11
11
11
11
11
12
12
14
14
14
14
14
15
15
16
16
16
16
17
18
19
19
19
20
20
20
20
21
22
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
28
28
28
28
28
28
28
29
29
29
29
30
30
30
31
31
32
34
35
35
35
36
36
36
36
37
37
39
39
39
39
40
40
41
41
44
46
46
48
51
53
53
55
5
5
5
5
6
7
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
12
13
13
14
14
15
15
16
17
17
18
20
20
20
20
20
21
21
22
22
22
22
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
27
27
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
32
33
35
36
36
36
37
37
37
37
38
38
40
40
40
41
41
42
42
45
47
47
49
52
54
56
4
4
5
5
5
5
5
6
7
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
12
13
14
14
15
15
17
17
17
17
18
18
20
20
21
21
21
22
22
23
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
30
30
30
30
30
30
30
30
31
31
32
32
32
32
33
34
36
37
37
37
38
38
38
38
38
38
39
39
41
41
41
42
42
43
43
46
48
50
53
55
57
4
5
5
5
5
6
6
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
13
14
14
14
15
15
15
15
15
17
17
17
17
18
18
18
18
20
20
20
21
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
28
31
31
31
31
31
32
32
32
33
33
33
34
34
34
35
37
38
38
39
39
39
39
39
39
39
39
40
41
41
42
42
42
43
44
44
47
49
51
51
55
56
58
1
4
4
5
5
5
6
6
6
7
9
9
10
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
15
15
15
15
15
16
16
16
16
17
17
18
19
19
19
20
21
22
22
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
28
28
28
28
28
28
28
28
29
32
32
32
32
32
32
33
34
34
34
34
35
35
35
36
37
38
39
39
40
40
40
40
40
40
41
41
42
42
43
43
43
43
43
44
45
45
45
45
45
49
50
52
52
56
57
59
1
5
5
5
5
5
5
7
7
7
8
10
10
11
11
11
12
12
12
13
13
13
13
13
13
13
13
14
14
15
16
16
16
17
17
17
17
18
19
19
19
19
19
19
20
20
22
22
22
23
23
24
24
24
24
24
25
25
25
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
30
31
33
33
33
33
33
35
35
35
35
35
36
36
36
37
38
39
40
40
41
41
41
41
41
41
42
42
43
44
44
45
46
46
46
46
46
50
51
53
53
57
57
58
59
60
4
5
5
6
7
8
9
9
9
11
11
11
11
11
11
12
12
12
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
17
17
17
18
18
19
19
20
20
21
22
23
23
24
24
25
25
25
25
26
26
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
32
34
34
36
36
36
37
37
37
37
37
37
38
39
40
41
41
42
42
42
42
42
43
43
43
44
45
45
45
46
47
47
47
47
47
51
51
52
53
54
58
58
59
60
61
1
1
5
5
5
7
8
8
8
9
10
10
10
11
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
17
17
17
18
19
19
19
20
20
21
22
22
22
23
25
25
26
26
26
26
26
26
27
27
27
27
27
28
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
34
34
35
35
37
38
38
38
38
38
39
41
42
43
43
43
43
43
44
44
44
45
45
46
46
46
47
47
48
48
48
48
52
52
53
54
55
59
59
61
62
5
5
5
6
7
8
8
9
9
9
9
10
10
10
10
11
11
11
11
11
11
13
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
18
18
18
19
19
19
20
20
20
20
22
22
23
23
23
23
24
25
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
29
29
29
29
30
30
30
30
30
30
30
30
31
31
32
32
32
32
32
34
34
35
35
36
36
37
37
37
39
39
39
40
42
42
43
44
44
44
44
44
44
45
45
45
46
46
47
47
47
48
48
49
49
49
49
53
53
55
56
60
62
63
5
5
5
5
5
5
7
7
8
8
8
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
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
19
19
20
20
21
21
21
21
22
23
24
24
24
24
25
26
26
26
26
27
27
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
31
31
31
31
31
31
31
31
32
32
33
34
34
35
35
37
37
37
37
37
38
38
38
38
40
40
40
44
45
45
45
45
45
45
46
48
48
48
49
49
50
50
50
50
54
56
57
61
63
64
5
5
5
5
6
6
6
7
7
9
9
10
11
11
11
12
12
12
12
12
12
13
14
14
14
14
14
14
14
15
15
15
15
16
17
17
17
17
17
18
18
18
18
18
21
21
21
22
22
22
22
24
24
25
25
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
31
31
32
32
32
32
32
32
32
33
33
34
34
34
34
35
35
36
36
37
38
38
38
38
38
38
38
38
38
39
39
39
41
45
46
46
46
46
46
46
47
49
49
49
50
50
51
51
51
51
55
57
58
62
64
65
5
5
5
5
5
6
7
10
11
12
13
13
13
13
14
14
14
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
21
22
23
23
23
24
24
25
25
26
26
26
26
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
32
32
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
37
37
38
38
38
38
39
39
39
39
40
40
40
42
46
47
47
47
47
47
47
48
48
50
50
50
51
51
52
52
52
52
56
58
59
63
65
66
1
5
5
5
5
7
9
11
11
11
12
13
13
13
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
17
18
18
19
19
19
19
20
20
20
20
20
21
21
21
22
22
24
24
24
24
24
25
25
25
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
30
30
30
30
30
31
31
31
31
31
31
31
31
33
34
34
35
35
35
35
35
35
35
35
36
37
37
37
38
38
40
40
40
40
43
47
48
48
48
48
48
49
49
49
50
50
51
51
51
51
51
52
52
53
53
53
53
57
59
60
63
64
65
66
67
1
1
1
1
5
5
5
6
7
7
7
9
11
11
11
11
12
12
13
13
13
13
13
13
14
14
15
15
15
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
19
20
20
20
20
21
21
21
21
21
21
22
22
22
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
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
31
31
31
32
32
32
32
34
34
34
34
34
34
35
35
35
36
36
37
37
37
38
38
38
39
39
41
44
45
47
47
47
48
49
49
49
49
49
50
50
50
51
51
52
52
52
52
52
53
53
54
54
54
54
58
59
60
61
61
63
64
65
65
66
67
68
1
1
1
1
1
1
5
5
7
8
8
8
9
9
11
11
12
12
12
12
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
17
17
17
18
18
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
23
24
24
24
24
24
24
24
24
25
25
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
29
29
29
30
30
30
30
31
31
31
31
31
32
32
33
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
36
37
37
37
37
37
37
38
39
39
39
40
40
42
45
46
47
48
48
49
49
50
50
50
50
50
51
51
51
52
52
53
53
53
53
53
54
54
55
55
55
55
57
57
59
59
60
61
62
62
63
64
65
66
66
67
68
69
1
1
1
1
6
7
8
9
9
9
11
13
13
13
13
13
14
14
14
14
14
15
15
15
16
16
16
16
17
17
17
17
17
17
17
18
18
19
19
19
20
20
20
20
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
25
25
25
26
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
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
33
33
34
34
34
34
34
34
34
35
35
36
36
36
37
37
37
37
37
37
38
38
38
38
38
39
40
40
40
40
41
41
42
43
44
46
47
48
49
49
50
50
51
51
51
51
51
51
52
52
52
53
53
54
54
54
54
54
55
55
55
56
56
56
56
57
57
58
58
59
59
60
60
61
62
63
63
64
65
66
67
67
69
70
1
1
4
4
5
5
5
5
5
5
6
7
8
9
11
11
13
13
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
18
18
18
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
23
23
24
24
24
24
24
24
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
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
33
35
35
37
37
37
37
38
38
38
39
39
39
39
39
40
40
41
41
41
41
42
43
44
44
45
47
48
49
50
50
51
51
51
52
52
52
52
52
52
53
53
53
53
53
54
54
54
55
55
55
56
56
56
56
57
57
57
57
58
58
59
59
60
60
61
61
63
64
64
65
66
67
68
68
68
70
71
1
4
5
5
5
5
5
5
5
5
5
5
6
6
6
8
8
9
9
11
12
12
12
13
13
13
13
13
13
13
13
13
14
15
15
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
20
20
20
20
20
21
21
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
28
28
28
28
29
29
29
29
29
29
29
30
30
31
31
31
32
32
32
33
33
33
33
33
34
34
35
36
36
38
38
39
39
39
40
40
40
40
41
41
42
42
44
45
45
46
48
49
50
51
51
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
57
57
57
57
58
58
58
58
59
59
61
61
62
64
64
65
65
66
66
67
68
68
68
69
69
69
70
71
72
1
1
4
5
5
5
5
5
5
6
6
6
7
7
7
7
7
7
9
9
9
10
12
12
12
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
17
18
19
19
19
19
20
20
20
20
21
21
21
21
21
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
26
26
26
26
26
26
27
27
27
28
28
29
29
29
29
30
30
30
30
30
31
32
32
32
32
32
32
33
33
33
34
34
34
34
34
34
34
34
34
35
36
37
37
39
39
40
41
41
41
41
41
42
43
45
46
46
47
49
49
50
51
51
51
52
52
52
53
53
53
53
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
57
57
57
58
58
58
58
59
59
59
59
60
60
62
62
63
64
64
65
65
66
66
66
67
67
68
68
68
69
69
69
70
70
70
70
70
71
72
72
72
73
1
1
1
4
5
5
6
6
7
7
7
8
8
8
9
10
11
11
11
12
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
16
16
17
17
17
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
21
21
22
22
22
22
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
28
28
28
29
29
29
30
31
31
31
31
32
32
32
33
33
33
34
34
35
35
35
35
35
35
35
35
35
35
37
38
38
39
41
41
42
42
42
43
44
46
47
47
47
48
49
50
50
50
51
52
52
52
53
53
53
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
59
59
59
60
60
60
60
60
60
61
61
62
62
62
63
64
64
65
65
66
66
66
66
66
67
67
68
69
69
70
70
70
70
70
70
71
71
71
71
71
71
72
72
72
72
72
72
73
74
1
5
5
6
7
9
9
9
11
11
11
11
11
11
11
12
13
13
13
14
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
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
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
28
28
28
28
29
29
29
30
30
30
31
31
31
32
32
32
32
33
33
33
33
33
34
36
36
38
39
39
40
40
42
42
43
43
43
44
45
47
48
48
48
49
49
49
50
51
51
51
51
52
53
53
53
54
54
54
54
55
55
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
58
58
58
58
58
58
58
59
59
59
59
59
59
59
60
60
60
60
60
61
61
61
61
61
62
62
62
63
63
63
64
64
65
65
66
66
66
67
67
68
70
70
71
71
71
71
71
72
72
72
72
72
72
73
73
73
73
74
75
1
5
5
6
8
9
9
10
10
11
11
12
13
13
13
13
13
14
15
15
15
15
15
15
15
15
15
16
16
16
16
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
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
24
24
24
24
24
24
24
25
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
31
31
31
31
32
33
33
33
35
35
37
38
39
39
40
40
41
41
43
43
43
44
44
44
45
45
45
45
46
48
49
49
49
50
50
50
51
52
52
52
52
53
54
55
56
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
62
62
63
63
63
64
64
65
66
66
66
66
66
67
67
67
68
68
69
69
71
71
72
72
72
72
72
73
73
74
74
74
74
75
75
76
1
1
5
5
6
9
9
9
9
10
10
10
11
11
11
11
11
11
12
12
13
13
14
15
15
15
15
15
15
15
16
16
16
17
17
17
17
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
21
21
21
21
21
21
21
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
24
24
24
25
25
25
25
26
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
31
32
32
32
33
33
33
33
34
34
34
35
35
36
37
38
38
39
39
40
40
41
41
42
42
44
44
44
45
45
45
45
45
46
46
46
47
48
49
49
49
49
50
50
50
51
51
51
53
53
53
54
54
54
56
56
56
56
57
57
57
58
58
58
58
58
58
58
59
59
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
63
63
63
63
63
63
64
64
64
64
64
64
65
65
65
65
66
66
66
67
68
68
68
69
69
70
70
70
71
72
73
73
74
75
75
75
75
75
76
76
77
1
4
5
5
5
5
6
7
10
10
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
14
15
15
15
15
16
16
16
17
17
17
17
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
21
21
21
21
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
24
24
24
24
24
24
25
25
25
25
25
26
26
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
32
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
35
36
38
38
39
39
40
40
41
41
41
42
42
43
43
43
45
45
45
45
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
49
50
50
50
50
50
51
51
52
52
54
54
54
54
55
56
57
57
57
57
57
58
58
59
59
59
59
59
59
60
61
61
61
61
61
61
62
62
62
62
62
63
63
63
64
64
64
65
65
65
65
66
66
66
67
67
68
69
69
69
69
70
70
71
71
71
71
72
74
74
75
75
76
76
76
76
77
77
77
78
1
1
1
1
5
5
5
5
6
6
6
7
7
9
10
11
11
12
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
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
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
21
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
26
26
26
26
28
28
28
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
33
33
34
35
36
36
36
36
36
36
36
36
36
36
36
37
39
39
40
40
41
41
41
41
42
42
42
43
43
43
43
44
44
44
44
45
45
45
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
49
49
50
51
51
51
51
52
52
52
52
52
54
55
55
55
56
56
58
58
59
60
60
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
66
67
68
69
69
70
70
70
70
71
71
71
72
72
74
75
76
76
76
76
77
77
77
78
78
78
79
1
1
1
1
4
5
5
5
5
5
6
7
10
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
14
14
14
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
17
17
17
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
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
26
26
26
26
27
28
28
29
30
30
30
30
31
31
31
31
31
31
32
32
32
32
32
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
38
39
39
39
40
40
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
45
45
45
46
46
46
46
47
47
47
47
48
48
48
48
48
48
48
49
49
49
49
50
50
52
52
52
53
55
55
56
56
56
57
57
57
57
58
58
59
60
61
61
61
61
61
61
62
62
62
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
65
65
65
66
66
67
70
70
70
71
71
71
72
72
72
73
73
74
76
76
77
77
77
78
78
78
79
79
80
1
1
4
5
5
5
7
8
10
10
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
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
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
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
25
25
25
26
26
27
27
28
28
29
30
31
31
31
31
31
32
32
32
32
33
33
33
33
34
34
34
35
35
35
36
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
40
40
40
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
44
44
44
45
45
45
45
46
46
47
47
47
48
48
48
48
48
49
49
49
49
50
50
50
51
52
53
53
54
56
56
57
57
57
58
58
58
58
58
58
59
59
60
61
61
62
62
62
62
62
63
63
64
64
64
64
64
64
64
65
65
65
65
65
65
66
66
66
67
67
68
69
69
69
71
71
71
72
73
73
73
74
74
75
77
77
78
78
79
79
80
80
81
1
4
5
6
6
8
8
9
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
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
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
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
25
25
26
27
27
28
28
28
29
30
31
32
32
32
32
33
33
33
33
34
34
34
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
39
39
39
39
40
40
40
40
40
41
41
41
41
42
42
42
42
43
43
43
43
43
43
44
44
44
45
45
45
46
46
46
46
47
48
48
48
48
49
49
49
49
49
50
50
50
50
50
51
51
51
52
52
53
53
53
54
54
54
55
57
57
58
58
58
58
58
59
60
60
61
62
62
62
63
63
63
63
63
63
64
65
65
65
65
65
66
66
66
66
66
66
67
67
68
68
70
70
70
71
71
72
73
74
74
74
75
75
75
76
76
77
77
78
79
80
80
80
81
81
82
1
1
6
8
9
9
9
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
15
15
15
15
15
15
15
15
15
15
15
15
15
15
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
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
23
23
23
23
23
23
23
23
23
23
24
24
24
25
27
28
28
29
29
29
29
30
31
31
32
32
32
32
32
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
39
39
39
40
40
40
41
41
41
41
41
42
42
43
43
43
44
44
45
45
46
46
46
46
46
46
47
47
47
47
48
48
48
49
49
49
50
50
50
50
51
51
51
51
51
51
52
52
52
53
53
53
54
54
54
54
55
55
55
55
55
55
55
56
56
58
58
59
59
59
60
61
61
61
62
62
63
63
63
64
64
64
64
64
64
64
66
66
66
66
66
66
67
67
67
67
67
67
67
68
68
68
69
69
70
71
71
71
71
72
73
74
75
75
76
76
76
76
77
77
78
78
78
80
80
81
81
81
81
82
82
83
5
5
5
5
5
5
5
6
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
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
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
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
22
22
22
22
22
23
23
23
23
23
24
24
24
24
27
28
29
29
29
30
30
30
31
31
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
40
41
41
41
41
42
42
42
43
44
44
44
44
44
45
45
45
46
46
46
46
47
47
47
48
48
48
49
49
49
50
50
50
50
51
51
51
52
52
52
52
52
52
52
53
53
54
54
54
55
55
55
55
55
56
56
56
56
56
57
57
57
58
58
59
60
60
60
61
61
62
62
62
62
62
62
63
63
64
64
64
64
64
64
65
65
65
65
65
65
65
67
67
67
67
67
67
67
68
68
68
68
68
68
68
69
69
70
70
71
72
72
72
72
73
74
75
76
77
77
78
78
78
78
79
79
79
81
81
81
82
82
82
82
83
83
84
1
4
4
5
5
6
6
6
6
6
6
6
7
7
9
9
10
10
10
10
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
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
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
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
24
25
28
29
29
29
30
30
30
30
31
31
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
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
38
38
38
39
39
39
40
40
40
40
40
40
42
42
42
42
42
43
43
43
44
44
44
44
44
44
44
45
45
45
46
47
47
48
48
48
48
48
48
48
48
48
49
49
49
50
50
50
50
51
51
51
52
52
52
52
53
53
53
53
54
54
55
55
55
55
55
55
56
56
56
56
57
57
57
57
58
58
58
59
61
61
62
62
62
62
63
63
63
64
64
64
65
65
65
65
65
66
66
66
66
66
66
68
68
68
68
68
68
68
69
69
69
69
69
69
69
69
69
70
70
70
71
71
71
72
73
73
73
74
74
76
77
77
77
78
78
78
79
79
79
80
80
80
80
82
82
82
83
83
83
83
83
83
84
85
1
1
5
5
5
5
5
5
6
8
8
9
9
9
9
10
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
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
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
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
22
23
23
24
24
24
25
26
26
28
28
29
29
30
30
30
31
31
31
31
31
32
32
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
42
42
42
42
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
46
46
46
46
47
47
48
48
48
48
48
48
49
49
49
49
50
50
51
52
52
53
53
53
53
53
54
54
54
54
54
54
55
56
56
57
57
57
57
57
58
58
58
58
59
59
59
60
61
61
61
62
63
64
64
64
65
65
66
66
66
66
66
67
67
67
67
67
67
67
69
69
69
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
71
71
71
72
72
72
72
74
74
74
74
75
75
77
77
77
78
78
79
79
80
80
80
81
81
81
81
81
83
83
83
83
83
83
83
84
84
84
84
85
86
86
1
4
4
4
5
5
5
5
5
5
6
7
8
8
8
9
9
10
10
10
11
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
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
17
17
17
17
17
17
17
17
17
17
17
17
18
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
22
23
23
23
23
24
24
25
25
25
26
27
27
27
27
28
28
29
29
30
30
30
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
38
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
42
42
42
42
42
42
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
46
47
47
48
48
48
48
48
49
49
50
50
50
50
51
51
53
54
54
54
54
55
55
55
55
56
57
57
58
58
58
58
59
59
59
60
60
61
62
62
63
65
65
65
65
65
66
66
67
67
67
67
67
68
68
68
68
68
68
68
68
69
69
69
69
69
70
70
70
70
70
70
71
71
71
71
71
72
72
72
72
72
72
72
73
73
73
73
74
75
75
75
75
76
76
76
77
77
77
78
79
79
80
80
81
81
82
82
82
82
82
82
82
83
83
84
84
84
85
85
85
86
87
87
1
1
4
4
4
4
5
5
5
5
6
6
6
7
7
8
8
8
9
9
9
9
9
9
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
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
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
19
19
20
20
20
20
20
20
21
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
25
26
26
27
27
27
27
27
27
28
28
28
29
29
29
29
29
30
30
30
31
31
31
31
32
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
43
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
49
50
50
51
51
52
52
53
54
55
55
56
56
58
58
58
59
59
59
59
59
60
60
60
60
60
61
61
62
63
63
63
64
66
66
66
67
67
68
68
68
68
68
68
69
69
69
69
69
70
70
70
70
71
71
71
71
71
72
72
72
72
72
72
72
73
73
73
73
73
73
73
74
74
74
74
74
75
76
76
76
76
76
76
77
77
77
77
77
78
79
80
80
80
81
81
82
82
82
82
83
83
83
84
85
85
86
86
86
86
86
87
88
88
1
4
4
5
5
5
5
6
6
7
7
7
7
7
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
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
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
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
18
18
18
19
19
19
19
19
19
19
19
21
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
27
27
27
27
28
28
28
28
28
28
29
29
29
30
30
30
30
30
31
31
31
32
32
32
32
32
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
43
44
45
46
46
46
46
47
47
47
47
48
48
48
48
48
49
50
51
51
52
52
53
53
54
54
54
56
57
59
59
59
59
59
60
60
60
60
61
61
61
61
61
62
62
62
63
63
64
64
64
67
67
67
68
68
68
68
69
69
70
70
70
71
71
71
71
72
72
72
72
72
73
73
73
73
73
73
73
74
74
74
74
74
74
74
75
75
75
75
75
76
77
77
77
77
78
78
78
79
80
80
80
81
81
81
82
82
84
84
85
86
86
86
86
86
87
87
87
87
87
87
87
88
89
89
1
1
1
1
4
4
5
5
5
5
5
5
5
6
6
6
7
7
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
11
11
11
11
11
11
11
11
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
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
19
19
19
19
19
19
19
20
20
20
20
21
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
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
31
31
31
31
31
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
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
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
44
44
46
47
47
47
48
48
49
49
50
51
51
52
52
52
53
53
53
53
53
54
54
54
55
55
57
58
58
58
58
60
60
60
61
61
62
62
62
62
62
63
63
63
64
65
65
65
66
68
68
69
69
70
70
71
71
72
72
72
72
73
73
73
73
73
73
73
73
74
74
74
74
74
74
75
75
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
78
78
79
79
80
80
81
81
81
82
82
82
82
82
83
83
85
87
87
87
87
87
88
88
88
88
88
89
89
89
90
90
1
1
1
4
4
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
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
11
11
11
11
11
11
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
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
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
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
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
29
29
29
29
30
30
30
30
30
30
30
31
31
32
32
32
32
32
33
33
33
34
34
34
34
34
34
34
34
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
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
44
44
44
47
48
49
50
51
52
52
52
52
53
53
54
54
54
54
55
55
56
58
59
59
59
60
61
61
62
62
63
63
63
63
63
64
64
64
64
65
66
66
66
66
67
67
68
69
69
69
71
71
72
72
73
73
73
73
73
74
74
75
75
75
75
75
75
75
76
76
76
76
76
76
76
76
77
77
77
77
77
77
79
80
80
81
81
82
82
82
83
83
83
84
84
86
87
87
88
88
88
89
89
89
89
90
90
90
91
91
1
1
1
1
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
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
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
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
16
16
16
16
16
16
16
17
17
18
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
22
22
22
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
28
28
28
28
28
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
32
32
32
32
33
33
33
34
34
34
34
35
35
35
35
35
35
35
35
36
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
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
42
42
42
42
42
42
42
43
43
44
44
44
44
44
45
45
45
46
47
48
49
50
51
51
51
53
53
54
54
55
55
55
55
56
56
57
59
59
60
60
60
60
60
62
63
63
64
64
64
64
64
65
65
65
67
67
67
67
67
68
68
68
69
69
70
70
71
72
72
72
73
73
73
73
74
74
75
75
75
75
75
76
76
76
76
76
76
77
77
77
77
77
78
78
78
78
78
80
81
81
81
82
82
83
83
84
84
84
85
85
87
87
89
89
89
89
89
89
90
90
91
91
91
92
92
1
1
4
4
5
5
5
5
5
5
5
5
5
5
5
6
6
6
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
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
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
18
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
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
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
36
36
36
36
36
36
37
37
38
38
38
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
44
44
45
45
45
45
45
46
46
46
50
50
52
52
54
55
55
56
56
56
56
57
57
58
59
60
60
60
61
61
61
61
63
64
64
65
65
65
65
66
66
66
66
68
68
68
68
68
68
69
69
69
69
70
71
71
72
72
72
73
73
74
74
75
75
76
76
76
76
76
76
77
77
77
77
78
78
78
78
78
79
79
79
79
80
81
81
82
82
82
83
83
83
83
84
84
85
85
86
86
90
90
90
90
90
90
91
91
92
92
92
93
93
1
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
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
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
14
14
14
15
15
15
15
15
16
16
16
16
16
17
17
17
18
18
18
18
18
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
22
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
26
26
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
38
38
38
38
39
39
40
40
41
41
41
41
41
42
42
42
43
43
43
43
44
44
44
44
44
44
44
44
45
45
46
46
46
46
46
46
46
47
47
47
50
51
52
53
53
53
55
56
56
57
57
57
58
58
59
60
61
61
62
62
62
62
63
65
65
66
66
66
66
66
66
66
67
67
67
67
67
69
69
69
69
69
69
69
70
70
71
72
72
72
72
73
73
74
74
75
75
75
75
76
76
76
77
77
77
77
77
77
77
78
78
78
78
78
79
79
79
79
80
80
80
80
81
81
83
83
83
84
84
84
84
85
86
86
87
87
89
90
91
91
91
91
91
91
91
92
92
93
93
93
93
94
1
1
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
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
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
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
16
16
16
16
16
16
17
17
17
17
17
17
17
19
19
19
19
19
19
19
20
20
20
20
20
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
26
26
26
26
26
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
33
33
34
34
34
34
34
35
35
36
36
36
37
37
37
38
38
38
38
39
39
40
40
40
40
40
41
42
42
42
43
43
44
44
44
44
45
45
45
45
45
46
46
47
47
47
47
47
47
47
48
48
48
52
52
53
53
54
54
54
56
57
57
58
58
58
59
59
60
61
62
62
63
63
63
63
63
64
64
66
66
66
66
66
67
67
67
67
67
68
68
68
68
68
68
68
69
69
70
70
70
71
72
73
73
74
74
75
75
76
76
76
77
77
77
77
77
77
78
78
78
78
78
78
78
78
79
79
79
79
79
80
80
80
80
80
81
81
81
81
81
83
83
83
84
84
84
85
85
85
85
86
88
88
91
91
91
91
92
92
92
92
92
92
92
92
93
93
94
94
94
94
95
1
1
1
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
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
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
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
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
20
20
20
20
20
21
21
21
21
21
21
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
30
30
30
30
31
32
32
32
32
32
33
33
33
34
35
35
36
37
37
37
39
39
39
39
39
39
39
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
44
44
44
45
46
46
47
47
48
48
48
48
48
48
48
49
49
49
53
53
54
55
55
55
56
58
58
59
59
59
59
60
60
61
61
62
63
64
64
64
64
64
64
65
65
65
66
66
66
66
67
67
68
68
68
68
68
68
69
69
69
69
69
70
71
71
72
72
72
73
73
73
74
75
75
75
76
76
77
77
77
78
78
78
78
78
78
78
79
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
80
81
81
81
82
82
82
82
84
84
84
84
85
85
86
86
86
87
87
89
89
92
92
92
92
92
93
93
93
93
93
93
93
94
94
94
94
94
94
94
95
95
95
96
1
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
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
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
14
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
21
21
21
22
22
22
22
22
22
22
23
23
23
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
30
30
30
31
31
31
31
33
33
34
37
37
38
39
40
40
41
41
41
41
41
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
45
45
46
47
48
48
49
49
49
49
49
49
49
50
50
50
51
54
54
55
56
56
56
56
57
57
59
59
59
59
59
60
60
61
61
62
62
63
63
64
65
65
65
65
65
65
65
65
65
66
66
66
66
67
68
68
68
69
69
69
69
70
70
70
70
71
72
72
72
73
73
73
73
74
74
75
75
75
76
76
76
77
77
78
78
78
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
81
81
81
81
81
81
82
82
82
83
83
83
83
84
85
85
85
85
85
85
85
86
86
87
87
88
89
90
90
93
93
93
93
93
94
94
94
94
94
94
95
95
95
95
96
96
96
97
1
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
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
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
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
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
20
20
20
20
21
22
22
23
23
23
23
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
29
29
29
30
31
32
32
32
32
35
36
38
39
40
41
41
42
42
42
42
43
43
43
43
44
44
44
44
44
44
45
45
45
45
46
46
46
47
48
49
49
50
50
50
50
50
50
51
51
51
54
55
55
56
57
57
57
57
57
58
58
58
59
59
59
59
60
60
61
61
62
62
62
63
63
63
64
64
65
66
66
66
66
66
67
67
68
68
69
69
69
69
70
70
70
70
71
71
71
72
73
73
73
74
74
74
75
75
75
76
76
76
77
77
77
78
78
79
79
79
80
80
80
80
80
80
80
80
81
81
81
81
82
82
82
82
82
82
83
83
83
83
84
84
84
84
85
85
85
85
86
86
86
86
86
86
86
87
88
88
88
89
90
90
91
94
94
94
94
94
95
95
95
96
96
96
96
97
97
97
97
98
1
1
1
2
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
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
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
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
12
12
12
12
12
12
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
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
20
20
20
20
20
21
21
21
22
22
22
24
24
24
24
24
25
25
26
26
26
27
27
27
27
27
28
28
28
29
30
30
30
33
33
33
33
36
36
37
38
39
39
39
41
41
41
42
42
43
43
43
43
44
44
45
46
46
46
46
47
47
47
48
49
50
50
51
51
51
51
51
52
52
52
55
56
56
56
57
58
58
58
58
58
58
58
58
59
59
59
59
60
61
61
62
62
62
62
63
63
63
64
64
64
65
65
65
65
67
67
67
68
69
69
70
70
70
70
71
71
71
71
72
72
72
72
74
75
76
76
76
77
77
77
78
78
78
79
79
79
80
80
80
81
81
81
81
82
83
83
83
83
83
83
83
84
84
84
84
85
85
85
85
86
86
86
86
86
87
87
87
87
87
87
87
88
88
88
88
88
88
89
89
90
91
92
93
94
95
95
97
97
97
97
98
98
98
98
99
1
3
3
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
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
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
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
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
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
22
22
22
22
22
23
23
23
24
25
25
25
26
27
27
27
27
27
27
28
28
28
28
34
34
34
36
37
37
37
38
40
40
40
40
41
41
41
43
43
43
43
44
44
44
46
46
47
47
47
48
48
48
49
49
51
51
52
52
52
52
52
53
53
53
56
56
57
57
57
58
59
59
59
59
60
60
61
62
62
62
63
63
63
63
63
64
64
64
64
65
65
65
66
66
68
68
70
70
70
71
71
71
72
72
72
72
72
73
73
73
73
75
75
76
77
77
77
78
78
79
79
80
80
80
80
80
81
81
81
82
82
82
83
83
84
84
84
84
84
85
85
85
85
85
86
86
86
86
87
87
87
87
87
88
88
88
88
88
89
89
89
90
90
91
92
93
94
94
95
96
97
97
97
98
98
99
99
99
99
100
1
1
1
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
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
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
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
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
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
23
23
23
23
23
23
24
25
25
26
26
26
27
27
28
28
28
29
29
35
35
35
36
37
40
40
41
41
42
42
42
42
44
44
44
44
44
44
44
44
44
44
44
45
45
45
47
47
48
48
48
49
49
49
49
50
50
50
52
52
52
53
53
53
53
54
54
54
57
57
58
58
58
58
60
60
61
62
63
63
63
64
64
64
64
65
65
65
66
67
69
69
70
70
70
71
71
72
72
72
73
73
73
73
73
74
74
74
75
76
76
77
78
78
79
79
80
81
81
81
82
82
82
83
83
83
83
83
84
84
84
84
84
85
85
85
85
86
86
86
86
86
87
87
87
87
88
88
88
88
88
88
89
89
90
90
90
91
91
92
93
94
97
98
98
98
98
99
99
99
99
100
100
100
101
1
1
1
1
1
1
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
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
8
8
8
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
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
12
12
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
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
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
23
24
25
25
26
26
26
27
27
28
29
36
36
36
41
41
41
42
42
42
43
43
43
45
45
45
45
45
45
45
45
46
46
46
47
48
48
49
49
49
50
50
50
50
50
51
51
51
51
52
52
52
52
53
54
54
54
54
55
55
55
57
58
59
59
59
61
62
62
63
63
64
64
65
65
65
65
65
66
66
66
67
69
70
70
70
71
71
72
72
72
72
72
73
73
73
74
74
74
74
75
75
75
76
77
77
77
77
78
79
79
79
80
80
81
82
83
83
83
84
84
84
84
84
84
84
85
85
85
86
86
86
86
87
87
87
87
87
88
88
88
88
88
89
89
89
91
91
91
91
92
92
93
94
95
98
98
99
99
99
99
100
100
100
100
101
101
102
1
1
1
1
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
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
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
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
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
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
21
21
22
22
22
22
23
23
23
23
24
25
25
25
25
26
28
29
29
30
37
37
39
40
41
42
42
42
42
43
43
45
45
46
46
47
47
47
48
49
49
49
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
53
54
55
55
55
55
56
56
56
58
58
60
60
62
63
63
64
65
66
66
66
66
66
67
67
67
68
71
73
73
73
73
73
74
74
75
75
75
75
76
76
76
77
77
77
77
78
78
78
78
78
78
79
80
80
80
80
80
80
81
81
83
83
84
84
84
85
85
85
85
85
86
86
87
87
87
87
88
88
88
88
88
89
89
89
89
89
90
91
91
91
92
92
92
93
94
94
95
96
97
99
99
100
100
101
101
101
101
102
103
1
1
1
2
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
5
5
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
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
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
15
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
21
21
21
22
22
23
23
23
23
24
26
26
27
28
28
28
29
29
29
30
37
38
38
39
40
42
42
43
43
43
43
44
44
44
45
45
47
47
48
48
48
49
49
50
50
50
51
51
52
52
52
52
52
52
53
53
53
53
54
55
56
56
56
56
57
57
57
61
62
63
63
63
64
64
65
66
67
67
67
67
68
68
68
69
69
72
72
74
74
74
74
74
75
75
76
76
77
77
77
78
78
78
78
78
79
79
79
79
79
79
80
80
80
80
80
80
81
81
81
82
83
84
84
84
85
85
85
85
85
85
86
86
86
87
88
88
88
88
88
89
89
89
90
90
90
90
91
92
92
92
93
93
93
93
94
95
95
97
97
98
98
99
100
100
101
102
102
102
102
103
104
1
1
1
1
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
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
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
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
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
22
22
23
23
24
24
24
24
29
29
30
30
36
38
39
39
39
40
40
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
48
48
49
50
50
51
51
51
51
52
52
53
53
53
54
54
54
55
55
56
57
57
57
58
58
62
63
64
64
65
65
65
65
65
66
68
68
68
68
69
69
69
70
72
72
73
73
75
75
75
76
76
76
77
77
78
78
78
79
79
79
79
79
80
80
80
81
81
81
82
82
82
83
84
84
85
85
85
86
86
86
86
86
86
87
87
87
88
88
89
89
89
89
89
89
89
90
90
91
91
91
91
92
92
92
93
93
93
94
94
94
94
95
96
96
98
98
98
99
99
100
100
101
102
102
103
103
103
103
104
104
105
1
1
2
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
5
6
6
6
6
6
6
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
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
13
13
13
13
13
13
13
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
18
18
18
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
22
22
24
25
25
26
26
26
26
27
29
29
29
29
30
30
30
30
30
30
31
38
39
40
40
41
43
44
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
48
48
48
49
50
51
51
52
52
53
53
54
54
55
55
56
56
57
58
58
58
59
59
63
63
65
65
66
66
66
66
66
67
69
69
70
70
70
70
73
73
74
74
74
74
74
74
75
76
76
76
76
76
77
77
78
78
78
79
79
80
80
80
81
82
82
83
83
83
83
84
86
86
86
86
86
87
87
87
87
87
87
88
88
88
88
89
89
89
89
90
90
90
90
90
90
91
91
91
92
92
92
92
93
94
94
95
95
95
95
97
99
100
100
100
100
101
101
102
103
103
103
104
104
104
104
105
105
106
1
1
1
1
2
2
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
6
6
6
6
6
6
6
6
6
6
6
6
6
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
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
15
15
15
15
15
15
15
16
16
17
17
17
17
18
18
19
19
19
19
20
20
21
21
21
22
22
22
22
23
26
26
26
27
27
27
28
29
30
30
30
30
30
31
31
31
31
32
41
41
42
44
44
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
48
48
48
49
49
50
51
52
52
53
54
54
55
55
55
56
56
56
57
57
58
59
59
60
60
64
65
66
66
67
67
67
67
67
70
70
71
71
71
74
74
74
74
74
75
75
75
75
75
75
75
76
76
76
77
77
77
77
77
78
78
79
79
79
80
83
83
84
84
84
84
85
85
87
87
87
87
87
88
88
88
88
88
88
88
89
89
89
90
90
90
90
91
91
91
91
91
91
91
91
92
92
92
92
93
93
93
93
93
93
94
95
96
96
96
96
98
100
101
101
101
102
102
102
102
103
104
104
104
105
105
105
105
105
106
106
107
1
1
1
1
1
1
1
1
2
2
2
2
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
6
6
6
6
6
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
10
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
16
16
17
18
19
19
20
20
21
22
23
23
23
23
24
27
27
27
27
27
27
27
28
29
29
30
30
30
31
31
31
31
32
32
32
36
36
39
39
42
42
44
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
50
50
51
52
53
55
56
56
56
56
56
57
57
58
58
58
58
59
60
61
61
62
65
66
67
67
67
67
68
68
68
68
68
71
71
71
72
72
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
77
78
78
78
78
79
80
80
81
84
84
84
85
85
85
85
86
86
88
88
88
88
89
89
89
89
89
89
89
90
90
90
91
91
91
91
91
91
92
92
92
92
92
92
93
93
93
93
94
94
94
94
94
94
94
96
96
97
97
97
97
99
100
101
102
102
103
103
103
103
104
105
105
105
105
105
106
106
107
107
108
1
1
1
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
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
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
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
14
14
14
15
15
15
19
19
20
21
21
24
24
24
24
25
27
28
28
28
28
28
28
29
29
30
31
31
32
33
37
40
43
43
45
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
49
49
49
50
50
50
51
51
52
53
54
56
57
57
58
58
59
59
59
59
60
61
62
62
66
67
67
67
68
68
68
68
69
69
69
69
69
69
69
72
72
72
73
76
76
76
77
77
77
77
78
78
78
78
79
79
79
79
80
81
81
82
84
86
86
86
86
87
87
89
89
89
90
90
90
90
90
90
90
90
91
91
91
91
91
91
92
92
92
93
93
93
94
94
94
94
94
95
95
95
95
95
95
97
97
98
98
98
98
98
99
101
102
103
103
103
104
104
104
104
105
105
105
105
106
106
106
107
108
108
109
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
3
3
3
4
4
4
4
4
4
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
14
14
15
15
16
17
18
19
19
19
19
19
19
20
20
21
22
25
25
25
25
27
29
29
29
29
29
29
31
32
33
34
38
41
44
44
46
46
46
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
50
50
50
50
51
51
52
52
53
54
54
54
55
56
56
57
57
57
58
59
59
60
60
60
60
61
62
63
63
67
67
67
68
68
68
68
69
69
69
70
70
70
70
70
73
73
74
76
77
77
77
77
78
78
79
79
79
79
80
80
80
80
80
81
82
82
83
87
87
87
88
88
88
90
90
90
90
90
91
91
91
91
91
91
91
92
92
92
92
93
93
94
94
94
94
94
94
94
95
95
95
95
96
96
96
96
96
96
96
98
98
98
98
99
99
99
99
102
103
104
104
104
105
105
105
105
105
106
107
107
108
109
109
110
1
1
1
2
2
2
2
2
2
3
3
3
4
4
4
4
4
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
9
9
9
9
11
11
11
11
12
12
12
12
12
13
14
14
14
15
16
16
16
16
19
19
20
20
20
20
21
21
22
23
25
26
26
27
27
28
30
30
32
32
33
33
34
35
39
40
40
40
42
45
45
46
46
47
48
48
48
48
49
49
49
50
50
50
50
51
51
51
51
52
52
53
53
54
55
56
57
58
58
60
60
61
61
61
62
63
64
64
67
68
68
68
69
69
69
70
71
71
71
71
74
74
75
77
78
78
79
79
80
80
81
81
81
82
83
83
84
88
88
88
89
89
89
89
89
91
92
92
92
92
92
93
93
93
94
94
95
95
95
95
96
96
96
96
97
97
97
97
97
97
99
99
99
100
100
103
104
105
106
106
106
107
108
108
110
110
111
2
2
2
3
3
5
5
5
5
5
5
5
5
6
6
6
7
7
7
7
7
7
8
8
9
9
10
10
10
10
10
11
11
11
11
11
12
12
13
13
14
14
14
15
15
16
17
17
19
19
20
21
21
21
22
22
22
22
23
24
26
27
27
27
27
28
28
29
29
29
30
30
30
31
31
31
33
33
34
34
35
36
38
40
40
41
41
43
46
46
46
46
46
47
47
47
47
48
49
49
49
50
50
51
51
51
51
52
52
52
52
53
53
54
54
55
56
57
58
59
59
61
61
62
62
62
64
65
65
68
69
69
69
69
70
70
71
72
72
75
75
76
78
79
80
80
81
82
82
83
84
84
85
89
89
89
90
90
90
90
92
93
93
93
93
94
94
95
95
96
96
96
97
97
97
98
98
98
98
98
98
100
100
101
104
105
106
107
107
109
109
111
112
4
4
4
5
5
5
7
8
9
9
9
10
10
11
11
12
12
12
13
14
14
14
14
15
15
15
16
17
18
20
21
21
22
22
22
23
23
24
25
25
26
27
28
28
28
28
29
30
31
31
31
32
32
32
32
33
34
34
35
35
37
39
41
42
44
45
46
46
47
47
47
47
47
48
48
49
51
52
53
53
53
54
54
55
57
58
59
59
60
60
62
63
63
65
66
66
70
70
71
73
73
76
76
77
78
80
80
81
83
83
84
84
85
86
90
90
91
91
91
93
94
94
94
95
95
95
96
97
97
97
98
98
98
99
99
99
99
101
102
105
106
108
110
110
112
113
4
5
6
10
11
11
13
13
13
14
14
14
15
15
16
16
16
17
18
19
21
22
22
23
23
24
24
25
25
26
28
29
29
29
29
31
32
32
32
32
33
33
33
34
35
36
36
36
38
42
43
45
48
48
48
48
49
49
50
50
50
51
51
52
54
55
55
58
59
60
60
61
61
64
66
67
67
71
72
74
77
77
78
78
79
81
82
83
84
85
85
86
87
91
91
92
92
94
95
95
95
96
96
96
97
98
98
98
99
100
100
100
102
106
107
110
111
111
114
1
14
15
15
17
18
19
20
23
24
24
26
26
27
30
30
33
33
34
34
37
37
39
43
46
49
51
51
51
53
55
56
56
59
61
61
62
62
67
68
68
72
75
79
80
83
84
86
87
88
93
95
96
96
97
99
99
99
100
101
101
103
108
112
115
