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