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