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