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